From 05b785083c5d222c9d4adc2600d6e8ca173846d4 Mon Sep 17 00:00:00 2001 From: zhenhui <1276357500@qq.com> Date: Mon, 2 Mar 2026 13:44:38 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 14 + .rnd | Bin 0 -> 1024 bytes LICENSE | 21 + PROJECT_ANALYSIS.md | 444 + README.md | 20 + addons/IDE.php | 17 + addons/webman/Admin.php | 188 + addons/webman/ServiceProvider.php | 92 + addons/webman/common/Login.php | 126 + addons/webman/common/System.php | 216 + addons/webman/config.php | 344 + addons/webman/controller/AdminController.php | 304 + .../controller/AppVersionController.php | 274 + .../controller/AttachmentController.php | 153 + .../controller/ChannelAdminController.php | 202 + .../webman/controller/ChannelController.php | 380 + .../controller/ChannelGameController.php | 420 + .../controller/ChannelIndexController.php | 292 + .../ChannelPlayGameRecordController.php | 91 + .../controller/ChannelPlayerController.php | 1310 +++ .../ChannelPlayerDeliveryRecordController.php | 206 + .../controller/ChannelPostController.php | 96 + .../controller/ChannelRechargeController.php | 572 ++ .../ChannelRechargeRecordController.php | 644 ++ .../ChannelWithdrawRecordController.php | 846 ++ addons/webman/controller/ConfigController.php | 33 + .../webman/controller/CurrencyController.php | 88 + .../controller/DepartmentController.php | 100 + addons/webman/controller/GameController.php | 376 + addons/webman/controller/IndexController.php | 313 + addons/webman/controller/MenuController.php | 126 + .../controller/PlayGameRecordController.php | 97 + addons/webman/controller/PlayerController.php | 1355 +++ .../PlayerDeliveryRecordController.php | 204 + addons/webman/controller/PostController.php | 74 + .../controller/RechargeRecordController.php | 400 + addons/webman/controller/RoleController.php | 344 + .../controller/SystemSettingController.php | 135 + .../controller/WithdrawRecordController.php | 383 + addons/webman/database/webman.sql | 304 + addons/webman/echart/Driver/Eloquent.php | 100 + addons/webman/echart/EchartManager.php | 18 + .../exception/HttpResponseException.php | 44 + .../webman/exception/PermissionException.php | 10 + .../filesystem/AdapterFactoryInterface.php | 16 + addons/webman/filesystem/Filesystem.php | 38 + addons/webman/filesystem/driver/Local.php | 15 + addons/webman/filesystem/driver/Oss.php | 45 + addons/webman/filesystem/driver/Qiniu.php | 35 + addons/webman/form/Driver/Config.php | 74 + addons/webman/form/Driver/Eloquent.php | 203 + addons/webman/form/FormManager.php | 19 + addons/webman/form/MyEditor.php | 16 + addons/webman/form/Uploader.php | 112 + addons/webman/form/Validator.php | 53 + addons/webman/grid/Driver/Eloquent.php | 457 + addons/webman/grid/Filter.php | 138 + addons/webman/grid/GridManager.php | 17 + addons/webman/grid/Jobs/Export.php | 37 + addons/webman/helpers.php | 284 + addons/webman/ide/Echart.php | 18 + addons/webman/ide/Grid.php | 15 + addons/webman/info.json | 11 + .../webman/lang/Ma-my/commission_record.php | 24 + addons/webman/lang/Ma-my/menu.php | 121 + addons/webman/lang/cam_dia/activity.php | 48 + .../webman/lang/cam_dia/activity_content.php | 14 + addons/webman/lang/cam_dia/admin.php | 50 + addons/webman/lang/cam_dia/announcement.php | 36 + addons/webman/lang/cam_dia/antd.php | 391 + addons/webman/lang/cam_dia/app_version.php | 32 + addons/webman/lang/cam_dia/attachment.php | 16 + addons/webman/lang/cam_dia/auth.php | 43 + addons/webman/lang/cam_dia/channel.php | 44 + .../lang/cam_dia/channel_financial_record.php | 32 + .../lang/cam_dia/channel_recharge_method.php | 19 + .../lang/cam_dia/channel_recharge_setting.php | 47 + .../webman/lang/cam_dia/commission_record.php | 24 + addons/webman/lang/cam_dia/config.php | 9 + addons/webman/lang/cam_dia/currency.php | 24 + addons/webman/lang/cam_dia/data_center.php | 21 + addons/webman/lang/cam_dia/department.php | 23 + addons/webman/lang/cam_dia/echart.php | 11 + .../lang/cam_dia/first_recharge_setting.php | 23 + addons/webman/lang/cam_dia/form.php | 17 + addons/webman/lang/cam_dia/game.php | 34 + addons/webman/lang/cam_dia/game_platform.php | 17 + addons/webman/lang/cam_dia/grid.php | 22 + addons/webman/lang/cam_dia/login.php | 11 + addons/webman/lang/cam_dia/menu.php | 123 + addons/webman/lang/cam_dia/notice.php | 14 + .../webman/lang/cam_dia/play_game_record.php | 23 + addons/webman/lang/cam_dia/player.php | 136 + .../lang/cam_dia/player_chip_record.php | 26 + .../lang/cam_dia/player_delivery_record.php | 41 + .../webman/lang/cam_dia/player_edit_log.php | 42 + addons/webman/lang/cam_dia/player_extend.php | 33 + addons/webman/lang/cam_dia/player_level.php | 25 + .../lang/cam_dia/player_money_edit_log.php | 40 + .../lang/cam_dia/player_platform_cash.php | 20 + .../lang/cam_dia/player_recharge_record.php | 90 + .../lang/cam_dia/player_wallet_transfer.php | 15 + .../lang/cam_dia/player_withdraw_record.php | 80 + addons/webman/lang/cam_dia/post.php | 13 + addons/webman/lang/cam_dia/public_msg.php | 12 + addons/webman/lang/cam_dia/slider.php | 19 + addons/webman/lang/cam_dia/system_setting.php | 30 + addons/webman/lang/cam_dia/validator.php | 23 + addons/webman/lang/en/commission_record.php | 24 + addons/webman/lang/en/menu.php | 122 + addons/webman/lang/zh-CN/activity.php | 48 + addons/webman/lang/zh-CN/activity_content.php | 14 + addons/webman/lang/zh-CN/admin.php | 50 + addons/webman/lang/zh-CN/announcement.php | 36 + addons/webman/lang/zh-CN/antd.php | 393 + addons/webman/lang/zh-CN/app_version.php | 32 + addons/webman/lang/zh-CN/attachment.php | 16 + addons/webman/lang/zh-CN/auth.php | 43 + addons/webman/lang/zh-CN/broadcast.php | 20 + addons/webman/lang/zh-CN/channel.php | 62 + .../lang/zh-CN/channel_financial_record.php | 32 + .../lang/zh-CN/channel_recharge_method.php | 19 + .../lang/zh-CN/channel_recharge_setting.php | 53 + .../webman/lang/zh-CN/commission_record.php | 24 + addons/webman/lang/zh-CN/config.php | 10 + addons/webman/lang/zh-CN/currency.php | 25 + addons/webman/lang/zh-CN/data_center.php | 21 + addons/webman/lang/zh-CN/department.php | 23 + addons/webman/lang/zh-CN/echart.php | 11 + .../lang/zh-CN/first_recharge_setting.php | 23 + addons/webman/lang/zh-CN/form.php | 17 + addons/webman/lang/zh-CN/game.php | 44 + addons/webman/lang/zh-CN/game_platform.php | 27 + addons/webman/lang/zh-CN/game_type.php | 15 + addons/webman/lang/zh-CN/grid.php | 22 + addons/webman/lang/zh-CN/login.php | 18 + addons/webman/lang/zh-CN/menu.php | 116 + addons/webman/lang/zh-CN/notice.php | 14 + addons/webman/lang/zh-CN/play_game_record.php | 23 + addons/webman/lang/zh-CN/player.php | 153 + .../webman/lang/zh-CN/player_chip_record.php | 26 + .../lang/zh-CN/player_delivery_record.php | 43 + addons/webman/lang/zh-CN/player_edit_log.php | 42 + addons/webman/lang/zh-CN/player_extend.php | 33 + addons/webman/lang/zh-CN/player_level.php | 25 + .../lang/zh-CN/player_money_edit_log.php | 40 + .../lang/zh-CN/player_platform_cash.php | 20 + addons/webman/lang/zh-CN/player_promoter.php | 79 + .../lang/zh-CN/player_recharge_record.php | 90 + .../lang/zh-CN/player_wallet_transfer.php | 15 + .../lang/zh-CN/player_withdraw_record.php | 85 + addons/webman/lang/zh-CN/post.php | 13 + addons/webman/lang/zh-CN/prize.php | 44 + .../lang/zh-CN/promoter_profit_record.php | 58 + .../promoter_profit_settlement_record.php | 52 + addons/webman/lang/zh-CN/public_msg.php | 12 + addons/webman/lang/zh-CN/qrcode.php | 65 + addons/webman/lang/zh-CN/slider.php | 19 + addons/webman/lang/zh-CN/system_setting.php | 30 + addons/webman/lang/zh-CN/validator.php | 23 + addons/webman/license | 0 addons/webman/middleware/AuthMiddleware.php | 52 + addons/webman/middleware/LoadLangPack.php | 24 + addons/webman/middleware/Permission.php | 24 + .../webman/middleware/RequestMiddleware.php | 32 + addons/webman/model/Activity.php | 78 + addons/webman/model/ActivityContent.php | 42 + addons/webman/model/AdminConfig.php | 19 + addons/webman/model/AdminDepartment.php | 66 + addons/webman/model/AdminFileAttachment.php | 21 + .../webman/model/AdminFileAttachmentCate.php | 15 + addons/webman/model/AdminMenu.php | 23 + addons/webman/model/AdminPost.php | 43 + addons/webman/model/AdminRole.php | 50 + addons/webman/model/AdminRoleDepartment.php | 14 + addons/webman/model/AdminRoleMenu.php | 14 + addons/webman/model/AdminRolePermission.php | 14 + addons/webman/model/AdminRoleUsers.php | 25 + addons/webman/model/AdminUser.php | 75 + addons/webman/model/Announcement.php | 79 + addons/webman/model/AnnouncementContent.php | 60 + addons/webman/model/ApiErrorLog.php | 28 + addons/webman/model/AppVersion.php | 53 + addons/webman/model/BankList.php | 30 + addons/webman/model/Broadcast.php | 55 + addons/webman/model/Channel.php | 126 + .../webman/model/ChannelFinancialRecord.php | 58 + addons/webman/model/ChannelRechargeMethod.php | 84 + .../model/ChannelRechargeMethodLang.php | 40 + .../webman/model/ChannelRechargeSetting.php | 76 + addons/webman/model/CommissionRecord.php | 72 + addons/webman/model/Currency.php | 52 + addons/webman/model/DrawRecord.php | 71 + addons/webman/model/ExternalApp.php | 34 + addons/webman/model/Game.php | 62 + addons/webman/model/GamePlatform.php | 32 + addons/webman/model/GameType.php | 36 + addons/webman/model/Notice.php | 116 + addons/webman/model/PhoneSmsLog.php | 46 + addons/webman/model/PlayGameRecord.php | 75 + addons/webman/model/Player.php | 282 + addons/webman/model/PlayerBank.php | 88 + .../webman/model/PlayerBankruptcyRecord.php | 48 + addons/webman/model/PlayerChipRecord.php | 84 + addons/webman/model/PlayerDeliveryRecord.php | 133 + addons/webman/model/PlayerEditLog.php | 67 + addons/webman/model/PlayerExtend.php | 186 + addons/webman/model/PlayerGamePlatform.php | 53 + addons/webman/model/PlayerGameRecord.php | 121 + addons/webman/model/PlayerLevel.php | 31 + addons/webman/model/PlayerLoginRecord.php | 56 + addons/webman/model/PlayerLotteryRecord.php | 144 + addons/webman/model/PlayerMoneyEditLog.php | 88 + addons/webman/model/PlayerPlatformCash.php | 45 + addons/webman/model/PlayerPromoter.php | 112 + addons/webman/model/PlayerRechargeRecord.php | 174 + addons/webman/model/PlayerRegisterRecord.php | 58 + addons/webman/model/PlayerTag.php | 65 + addons/webman/model/PlayerWalletTransfer.php | 68 + addons/webman/model/PlayerWithdrawRecord.php | 176 + addons/webman/model/Prize.php | 47 + addons/webman/model/PromoterProfitRecord.php | 107 + .../model/PromoterProfitSettlementRecord.php | 81 + addons/webman/model/Qrcode.php | 57 + addons/webman/model/QrcodeBatch.php | 59 + addons/webman/model/QrcodeOwner.php | 58 + addons/webman/model/SepayRecharge.php | 50 + addons/webman/model/SignIns.php | 67 + addons/webman/model/Slider.php | 46 + addons/webman/model/SystemSetting.php | 43 + addons/webman/service/Menu.php | 111 + addons/webman/service/Service.php | 10 + addons/webman/token/driver/Cache.php | 82 + addons/webman/traits/DataPermissions.php | 120 + addons/webman/traits/HasDateTimeFormatter.php | 12 + addons/webman/validator/ValidatorFactory.php | 37 + addons/webman/views/activity_tabs.vue | 386 + addons/webman/views/agent.vue | 322 + addons/webman/views/login.vue | 322 + addons/webman/views/machine_status.vue | 72 + addons/webman/views/media_play.vue | 206 + addons/webman/views/my_editor.vue | 42 + addons/webman/views/socket.vue | 350 + app/api/controller/v1/GameController.php | 240 + app/api/controller/v1/IndexController.php | 751 ++ app/api/controller/v1/PlayerController.php | 1251 +++ app/api/controller/v1/VersionController.php | 42 + app/exception/ApiHandler.php | 50 + app/exception/GameException.php | 6 + app/exception/PlayerCheckException.php | 6 + app/exception/PromoterCheckException.php | 7 + app/external/ExternalApiController.php | 260 + app/external/view/login/download.html | 14 + app/external/view/login/index.html | 14 + app/external/view/sepay/detail.html | 126 + app/external/view/sepay/detail_fail.html | 91 + app/external/view/sepay/detail_paying.html | 90 + app/external/view/sepay/detail_success.html | 91 + app/external/view/skl/detail.html | 126 + app/external/view/skl/detail_fail.html | 97 + app/external/view/skl/detail_paying.html | 97 + app/external/view/skl/detail_success.html | 97 + app/functions.php | 1379 +++ app/middleware/AccessControl.php | 25 + app/middleware/AppVersionMiddleware.php | 57 + app/middleware/ExternalAppMiddleware.php | 35 + app/middleware/Lang.php | 17 + app/middleware/SiteAuthMiddleware.php | 61 + app/middleware/StaticFile.php | 42 + app/queue/redis/CancelRecharge.php | 35 + app/queue/redis/SendBroadcasts.php | 27 + app/service/BaseSmsServices.php | 16 + app/service/DrawService.php | 158 + app/service/JpSmsServicesServices.php | 103 + app/service/OnePayServices.php | 147 + app/service/SePayServices.php | 130 + app/service/SklPayServices.php | 96 + app/service/SmsServicesServices.php | 41 + app/service/TwSmsServicesServices.php | 121 + .../game/BigGamingServiceInterface.php | 759 ++ app/service/game/CSServiceInterface.php | 371 + app/service/game/GameServiceFactory.php | 141 + app/service/game/GameServiceInterface.php | 30 + app/service/game/JDBServiceInterface.php | 511 + app/service/game/JiLiServiceInterface.php | 529 + app/service/game/JokerServiceInterface.php | 465 + app/service/game/Kiss918ServiceInterface.php | 389 + app/service/game/LionKingServiceInterface.php | 435 + app/service/game/Lucky365ServiceInterface.php | 444 + .../game/MarioClubServiceInterface.php | 411 + app/service/game/MeGa888ServiceInterface.php | 472 + .../game/MonkeyKingServiceInterface.php | 444 + app/service/game/NextSpinServiceInterface.php | 504 + .../game/PragmaticServiceInterface.php | 473 + composer.json | 82 + config/admin_node.php | 588 ++ config/app.php | 29 + config/autoload.php | 21 + config/bootstrap.php | 20 + config/channel_node.php | 502 + config/container.php | 19 + config/database.php | 37 + config/def_avatar.php | 14 + config/dependence.php | 15 + config/event.php | 3 + config/exception.php | 18 + config/game_platform.php | 251 + config/jp-sms.php | 10 + config/log.php | 64 + config/middleware.php | 28 + config/one_pay.php | 11 + .../plugin/gitfei1231/webman-api-sign/app.php | 68 + .../gitfei1231/webman-api-sign/middleware.php | 3 + config/plugin/rockys/ex-admin-webman/app.php | 4 + .../rockys/ex-admin-webman/bootstrap.php | 17 + .../plugin/rockys/ex-admin-webman/command.php | 6 + .../rockys/ex-admin-webman/filesystems.php | 39 + .../rockys/ex-admin-webman/middleware.php | 20 + .../plugin/rockys/ex-admin-webman/process.php | 11 + .../plugin/rockys/ex-admin-webman/route.php | 11 + config/plugin/tinywan/jwt/app.php | 72 + .../webman-tech/laravel-http-client/app.php | 64 + config/plugin/webman/console/app.php | 20 + config/plugin/webman/event/app.php | 4 + config/plugin/webman/event/bootstrap.php | 17 + config/plugin/webman/event/command.php | 7 + config/plugin/webman/log/app.php | 12 + config/plugin/webman/log/middleware.php | 21 + config/plugin/webman/push/app.php | 10 + config/plugin/webman/push/process.php | 21 + config/plugin/webman/push/route.php | 87 + config/plugin/webman/redis-queue/app.php | 4 + config/plugin/webman/redis-queue/command.php | 7 + config/plugin/webman/redis-queue/log.php | 32 + config/plugin/webman/redis-queue/process.php | 11 + config/plugin/webman/redis-queue/redis.php | 13 + .../workbunny/webman-ip-attribution/app.php | 11 + config/plugin/yzh52521/jwt_key/private.key | 28 + config/plugin/yzh52521/jwt_key/public.key | 9 + config/plugin/yzh52521/lock/app.php | 30 + config/process.php | 48 + config/redis.php | 22 + config/route.php | 115 + config/se-pay.php | 10 + config/server.php | 31 + config/session.php | 65 + config/skl_pay.php | 10 + config/sms.php | 10 + config/static.php | 23 + config/thinkcache.php | 22 + config/thinkorm.php | 36 + config/translation.php | 25 + config/tw-sms.php | 9 + config/view.php | 22 + .../20231019063557_create_channel.php | 49 + .../20231019082149_create_admin_configs.php | 33 + ...20231019082538_create_admin_department.php | 40 + ...200_create_admin_file_attachment_cates.php | 34 + ...19083930_create_admin_file_attachments.php | 43 + .../20231019084623_create_admin_menus.php | 40 + .../20231019085033_create_admin_post.php | 37 + ...019085352_create_admin_role_department.php | 33 + ...20231019085602_create_admin_role_menus.php | 32 + ...19085901_create_admin_role_permissions.php | 32 + ...20231019090118_create_admin_role_users.php | 32 + .../20231019090238_create_admin_roles.php | 36 + .../20231019090918_create_admin_users.php | 45 + .../20231019091927_create_announcement.php | 43 + .../20231019092731_create_api_error_log.php | 38 + ...100353_create_channel_financial_record.php | 41 + .../20231020013447_create_currency.php | 38 + .../20231020014010_create_external_app.php | 41 + .../20231020023005_create_phone_sms_log.php | 42 + .../20231020023858_create_player.php | 58 + .../20231020033110_create_player_bank.php | 38 + ...20033609_create_player_delivery_record.php | 51 + .../20231020034940_create_player_extend.php | 53 + ...31020055313_create_player_login_record.php | 40 + ...020055715_create_player_money_edit_log.php | 50 + ...1020060556_create_player_platform_cash.php | 38 + ...20061742_create_player_recharge_record.php | 60 + ...20062947_create_player_register_record.php | 42 + .../20231020070150_create_player_tag.php | 31 + ...20070340_create_player_withdraw_record.php | 61 + .../20231020071333_create_slider.php | 38 + .../20231020073448_create_system_setting.php | 38 + .../20231024093335_create_player_edit_log.php | 40 + .../20231115082108_create_notice.php | 45 + .../20240511015233_create_sign_ins.php | 38 + .../20240511032731_create_chip_changes.php | 41 + ...240511053700_modify_player_chip_amount.php | 27 + .../20240511060113_create_activity.php | 37 + ...20240511065003_create_activity_content.php | 34 + process/Monitor.php | 244 + public/404.html | 12 + public/audio/activity_examine.mp3 | Bin 0 -> 31533 bytes public/audio/lottery_examine.mp3 | Bin 0 -> 33069 bytes public/audio/recharge_examine.mp3 | Bin 0 -> 19440 bytes public/audio/withdraw_examine.mp3 | Bin 0 -> 19584 bytes public/def_avatar/nan1.png | Bin 0 -> 38027 bytes public/def_avatar/nan2.png | Bin 0 -> 39246 bytes public/def_avatar/nan3.png | Bin 0 -> 38568 bytes public/def_avatar/nan4.png | Bin 0 -> 39091 bytes public/def_avatar/nan5.png | Bin 0 -> 36789 bytes public/def_avatar/nv1.png | Bin 0 -> 37121 bytes public/def_avatar/nv2.png | Bin 0 -> 38244 bytes public/def_avatar/nv3.png | Bin 0 -> 37835 bytes public/def_avatar/nv4.png | Bin 0 -> 39150 bytes public/def_avatar/nv5.png | Bin 0 -> 37628 bytes public/exadmin/assets/@ant-design.bcfb08ae.js | 57 + public/exadmin/assets/@babel.6cd0804c.js | 4 + public/exadmin/assets/@ctrl.fa7cbd46.js | 1 + .../exadmin/assets/@fortawesome.fe0e4c2f.css | 5 + public/exadmin/assets/@kangc.1dc16e06.css | 1 + public/exadmin/assets/@kangc.86f7507c.js | 39 + public/exadmin/assets/@tinymce.24a850ec.js | 1 + public/exadmin/assets/@vue.cb43a243.js | 9 + public/exadmin/assets/@vueuse.952f4739.js | 1 + .../exadmin/assets/a-color-picker.7e391635.js | 30 + public/exadmin/assets/ali-oss.ce3a624c.js | 67 + .../exadmin/assets/ant-design-vue.6b10f349.js | 40 + .../assets/async-validator.5d25c98b.js | 1 + public/exadmin/assets/asyncRender.909685d0.js | 1 + .../exadmin/assets/autoComplete.eb6d69d8.js | 1 + public/exadmin/assets/axios.e3200588.js | 2 + public/exadmin/assets/cascader.45565a25.js | 1 + public/exadmin/assets/checkboxTag.0fd114f7.js | 1 + public/exadmin/assets/clipboard.099d05c9.js | 6 + .../exadmin/assets/colorPicker.eaaf7f9c.css | 1 + public/exadmin/assets/colorPicker.f408c0ec.js | 1 + .../compute-scroll-into-view.6058b3be.js | 1 + public/exadmin/assets/context.6c9ae94a.js | 1 + public/exadmin/assets/dayjs.38e390ea.js | 1 + .../exadmin/assets/descriptions.63e5ab75.js | 1 + public/exadmin/assets/diacritics.6be19c75.js | 1 + public/exadmin/assets/dom-align.f1b5d360.js | 1 + .../exadmin/assets/downloadFile.1bd3bd71.js | 1 + .../assets/draggableRender.ea43ba32.js | 1 + public/exadmin/assets/dynamicTag.86eeadc8.js | 1 + public/exadmin/assets/echart.cf7709a7.js | 1 + public/exadmin/assets/echarts.c3fe9bb7.js | 30 + public/exadmin/assets/entities.0d2c0164.js | 2 + public/exadmin/assets/escape-html.e5dfadb9.js | 7 + .../assets/fa-brands-400.404c746c.woff2 | Bin 0 -> 105536 bytes .../exadmin/assets/fa-brands-400.e523f49c.ttf | Bin 0 -> 181852 bytes .../assets/fa-regular-400.4e96a7e0.ttf | Bin 0 -> 60520 bytes .../assets/fa-regular-400.6a274e76.woff2 | Bin 0 -> 23940 bytes .../exadmin/assets/fa-solid-900.03f2986c.ttf | Bin 0 -> 388460 bytes .../assets/fa-solid-900.d76fb4e8.woff2 | Bin 0 -> 154228 bytes .../assets/fa-v4compatibility.0db31bef.woff2 | Bin 0 -> 4960 bytes .../assets/fa-v4compatibility.86a687cf.ttf | Bin 0 -> 10556 bytes public/exadmin/assets/form.2a54c7c4.css | 1 + public/exadmin/assets/form.ed3f1d04.js | 1 + public/exadmin/assets/grid.72bf2236.css | 1 + public/exadmin/assets/grid.c3e66c00.js | 1 + public/exadmin/assets/icon.f0cf1419.js | 1 + public/exadmin/assets/index.081aed29.css | 1 + public/exadmin/assets/index.8c22d4cb.css | 1 + public/exadmin/assets/index.b35f53c6.js | 28 + public/exadmin/assets/index.e3eff962.js | 1 + public/exadmin/assets/js-cookie.31874410.js | 1 + public/exadmin/assets/js-md5.5179c6be.js | 9 + public/exadmin/assets/linkify-it.92c30060.js | 1 + public/exadmin/assets/lodash-es.0ea26897.js | 1 + public/exadmin/assets/lodash.c9cf1bdb.js | 27 + .../assets/markdown-it-anchor.c88e5394.js | 3 + .../assets/markdown-it-attrs.3af5ab50.js | 2 + .../assets/markdown-it-container.512a5043.js | 1 + .../assets/markdown-it-emoji.e3e91710.js | 1 + .../markdown-it-table-of-contents.8a4ce16f.js | 2 + public/exadmin/assets/markdown-it.80c3a67b.js | 15 + public/exadmin/assets/mdurl.ef76b4dc.js | 2 + public/exadmin/assets/numberRange.355eb997.js | 1 + public/exadmin/assets/prismjs.c97a8414.js | 9 + public/exadmin/assets/qiniu-js.8b174ca3.js | 1 + public/exadmin/assets/querystring.62f12500.js | 1 + .../assets/regenerator-runtime.8e24db72.js | 1 + .../exadmin/assets/remoteOptions.c846a4ad.js | 1 + .../resize-observer-polyfill.8deb1e21.js | 1 + .../scroll-into-view-if-needed.5191fdbf.js | 1 + public/exadmin/assets/select.4753e345.js | 1 + public/exadmin/assets/selectIcon.7cb44740.js | 1 + public/exadmin/assets/selectIcon.fecf68db.css | 1 + public/exadmin/assets/selectTable.0026a80b.js | 1 + .../exadmin/assets/selectTable.3743dfd0.css | 1 + public/exadmin/assets/sidebar.8f138590.css | 1 + public/exadmin/assets/sidebar.da9c6767.js | 1 + .../assets/simple-uploader.js.04c42387.js | 7 + public/exadmin/assets/sortablejs.412b554c.js | 6 + public/exadmin/assets/spark-md5.2cc5764b.js | 1 + public/exadmin/assets/switch.4512364b.js | 1 + public/exadmin/assets/tinymce.140b5d43.js | 65 + public/exadmin/assets/tinymce.734381d8.js | 1 + public/exadmin/assets/tinymce.850c126b.css | 1 + public/exadmin/assets/tree.8d2d66f3.js | 1 + public/exadmin/assets/tslib.60310f1a.js | 14 + public/exadmin/assets/uc.micro.981ceb7b.js | 1 + public/exadmin/assets/upload.6e19536d.css | 1 + public/exadmin/assets/upload.e8f0332b.js | 1 + public/exadmin/assets/uploader.b72f178f.js | 1 + public/exadmin/assets/use-http.ec808253.js | 1 + public/exadmin/assets/video.3a3126dc.js | 1 + public/exadmin/assets/vue-demi.5fb18120.js | 1 + public/exadmin/assets/vue-router.a08742b9.js | 5 + public/exadmin/assets/vue-types.6e6d84ba.js | 8 + public/exadmin/assets/vue.db505ee4.js | 1 + .../exadmin/assets/vuedraggable.e7e6f001.js | 10 + public/exadmin/assets/xgplayer.51331964.js | 278 + public/exadmin/assets/zrender.59ea4400.js | 18 + public/exadmin/favicon.ico | Bin 0 -> 2227 bytes public/exadmin/file_icon/aac.png | Bin 0 -> 2492 bytes public/exadmin/file_icon/ai.png | Bin 0 -> 2332 bytes public/exadmin/file_icon/aiff.png | Bin 0 -> 2329 bytes public/exadmin/file_icon/asp.png | Bin 0 -> 2665 bytes public/exadmin/file_icon/avi.png | Bin 0 -> 2492 bytes public/exadmin/file_icon/bmp.png | Bin 0 -> 2737 bytes public/exadmin/file_icon/c.png | Bin 0 -> 2287 bytes public/exadmin/file_icon/cpp.png | Bin 0 -> 2409 bytes public/exadmin/file_icon/css.png | Bin 0 -> 2577 bytes public/exadmin/file_icon/dat.png | Bin 0 -> 2506 bytes public/exadmin/file_icon/dir.png | Bin 0 -> 296 bytes public/exadmin/file_icon/dmg.png | Bin 0 -> 2580 bytes public/exadmin/file_icon/doc.png | Bin 0 -> 2589 bytes public/exadmin/file_icon/docx.png | Bin 0 -> 2595 bytes public/exadmin/file_icon/dot.png | Bin 0 -> 2454 bytes public/exadmin/file_icon/dotx.png | Bin 0 -> 2481 bytes public/exadmin/file_icon/dwg.png | Bin 0 -> 2720 bytes public/exadmin/file_icon/dxf.png | Bin 0 -> 2526 bytes public/exadmin/file_icon/eps.png | Bin 0 -> 2620 bytes public/exadmin/file_icon/exe.png | Bin 0 -> 2331 bytes public/exadmin/file_icon/flv.png | Bin 0 -> 2393 bytes public/exadmin/file_icon/gif.png | Bin 0 -> 2433 bytes public/exadmin/file_icon/h.png | Bin 0 -> 2122 bytes public/exadmin/file_icon/html.png | Bin 0 -> 2461 bytes public/exadmin/file_icon/ics.png | Bin 0 -> 2507 bytes public/exadmin/file_icon/iso.png | Bin 0 -> 2548 bytes public/exadmin/file_icon/java.png | Bin 0 -> 2387 bytes public/exadmin/file_icon/jpg.png | Bin 0 -> 2543 bytes public/exadmin/file_icon/key.png | Bin 0 -> 2495 bytes public/exadmin/file_icon/m4v.png | Bin 0 -> 2624 bytes public/exadmin/file_icon/mid.png | Bin 0 -> 2490 bytes public/exadmin/file_icon/mov.png | Bin 0 -> 2679 bytes public/exadmin/file_icon/mp3.png | Bin 0 -> 2602 bytes public/exadmin/file_icon/mp4.png | Bin 0 -> 2581 bytes public/exadmin/file_icon/mpg.png | Bin 0 -> 2647 bytes public/exadmin/file_icon/odp.png | Bin 0 -> 2521 bytes public/exadmin/file_icon/ods.png | Bin 0 -> 2711 bytes public/exadmin/file_icon/odt.png | Bin 0 -> 2467 bytes public/exadmin/file_icon/otp.png | Bin 0 -> 2462 bytes public/exadmin/file_icon/ots.png | Bin 0 -> 2625 bytes public/exadmin/file_icon/ott.png | Bin 0 -> 2313 bytes public/exadmin/file_icon/pdf.png | Bin 0 -> 2386 bytes public/exadmin/file_icon/php.png | Bin 0 -> 2219 bytes public/exadmin/file_icon/png.png | Bin 0 -> 2595 bytes public/exadmin/file_icon/pps.png | Bin 0 -> 2400 bytes public/exadmin/file_icon/ppt.png | Bin 0 -> 2201 bytes public/exadmin/file_icon/psd.png | Bin 0 -> 2603 bytes public/exadmin/file_icon/py.png | Bin 0 -> 2305 bytes public/exadmin/file_icon/qt.png | Bin 0 -> 2369 bytes public/exadmin/file_icon/rar.png | Bin 0 -> 2424 bytes public/exadmin/file_icon/rb.png | Bin 0 -> 2272 bytes public/exadmin/file_icon/rtf.png | Bin 0 -> 2340 bytes public/exadmin/file_icon/sql.png | Bin 0 -> 2656 bytes public/exadmin/file_icon/tga.png | Bin 0 -> 2625 bytes public/exadmin/file_icon/tgz.png | Bin 0 -> 2485 bytes public/exadmin/file_icon/tiff.png | Bin 0 -> 2235 bytes public/exadmin/file_icon/txt.png | Bin 0 -> 2284 bytes public/exadmin/file_icon/wav.png | Bin 0 -> 2740 bytes public/exadmin/file_icon/xls.png | Bin 0 -> 2635 bytes public/exadmin/file_icon/xlsx.png | Bin 0 -> 2559 bytes public/exadmin/file_icon/xml.png | Bin 0 -> 2418 bytes public/exadmin/file_icon/yml.png | Bin 0 -> 2363 bytes public/exadmin/file_icon/zip.png | Bin 0 -> 2344 bytes public/exadmin/img/login-bg.b9f5c736.svg | 17 + public/exadmin/img/login-box-bg.9027741f.svg | 1 + public/exadmin/img/login_logo.png | Bin 0 -> 9496 bytes public/exadmin/img/logo.png | Bin 0 -> 9811 bytes public/exadmin/index.html | 70 + public/exadmin/tinymce/langs/cam_dia.js | 261 + public/exadmin/tinymce/langs/zh_CN.js | 261 + .../tinymce/plugins/axupimgs/loading.gif | Bin 0 -> 19215 bytes .../tinymce/plugins/axupimgs/plugin.js | 75 + .../tinymce/plugins/axupimgs/plugin.min.js | 75 + .../tinymce/plugins/axupimgs/upfiles.html | 203 + .../plugins/powerpaste/img/spinner_96.gif | Bin 0 -> 13707 bytes .../plugins/powerpaste/js/wordimport.js | 9098 +++++++++++++++++ .../tinymce/plugins/powerpaste/langs/zh_CN.js | 18 + .../tinymce/plugins/powerpaste/plugin.min.js | 7 + .../tinymce/skins/content/default/content.css | 53 + .../skins/content/default/content.min.css | 7 + .../tinymce/skins/ui/oxide/content.css | 695 ++ .../tinymce/skins/ui/oxide/content.inline.css | 689 ++ .../skins/ui/oxide/content.inline.min.css | 7 + .../tinymce/skins/ui/oxide/content.min.css | 7 + .../tinymce/skins/ui/oxide/content.mobile.css | 29 + .../skins/ui/oxide/content.mobile.min.css | 7 + .../skins/ui/oxide/fonts/tinymce-mobile.woff | Bin 0 -> 4624 bytes .../exadmin/tinymce/skins/ui/oxide/skin.css | 2897 ++++++ .../tinymce/skins/ui/oxide/skin.min.css | 7 + .../tinymce/skins/ui/oxide/skin.mobile.css | 673 ++ .../skins/ui/oxide/skin.mobile.min.css | 7 + public/exadmin/version | 1 + public/external/assets/1-CrTrFgIR.png | Bin 0 -> 244432 bytes public/external/assets/1-DXhzDscN.png | Bin 0 -> 241141 bytes public/external/assets/2-BuQDLPFv.png | Bin 0 -> 185200 bytes public/external/assets/2-DPio4Vf5.png | Bin 0 -> 249907 bytes public/external/assets/3-31LlV2yA.png | Bin 0 -> 250906 bytes public/external/assets/3-B1Awzzjp.png | Bin 0 -> 221394 bytes public/external/assets/4-DyN4R5RH.png | Bin 0 -> 208718 bytes public/external/assets/4-k8WV9w2L.png | Bin 0 -> 85237 bytes public/external/assets/5-CdGw0quJ.png | Bin 0 -> 137094 bytes public/external/assets/5-DxtZptVm.png | Bin 0 -> 133013 bytes public/external/assets/6-CiQsmfTZ.png | Bin 0 -> 115298 bytes public/external/assets/6-QMUjjPiC.png | Bin 0 -> 82350 bytes public/external/assets/7-BHXkev6c.png | Bin 0 -> 119236 bytes public/external/assets/7-ncsHMwam.png | Bin 0 -> 229319 bytes .../assets/android_load_cn-DjYGHHz0.png | Bin 0 -> 83347 bytes .../assets/android_load_en-B9mM9Ecd.png | Bin 0 -> 78407 bytes .../assets/android_load_ml-SIoGFyOc.png | Bin 0 -> 78834 bytes public/external/assets/bg-B7DXvOlP.jpg | Bin 0 -> 439087 bytes .../assets/btn_yanzheng_cn-EYtUjbFB.png | Bin 0 -> 33275 bytes .../assets/btn_yanzheng_en-5yZmu8JQ.png | Bin 0 -> 28229 bytes .../assets/btn_yanzheng_ml-C9CYm1Jd.png | Bin 0 -> 28222 bytes .../external/assets/btn_zhuce_cn-C50926uZ.png | Bin 0 -> 69824 bytes .../external/assets/btn_zhuce_en-BjHPoyWb.png | Bin 0 -> 71007 bytes .../external/assets/btn_zhuce_ml-UgZ5qZ0z.png | Bin 0 -> 69800 bytes .../assets/chenggong_wenzi_cn-g95uAhaD.png | Bin 0 -> 6683 bytes .../assets/chenggong_wenzi_en-CnKaS2q_.png | Bin 0 -> 4709 bytes .../assets/chenggong_wenzi_ml-BpALe__T.png | Bin 0 -> 4804 bytes public/external/assets/code_bg-CFw-_56r.png | Bin 0 -> 30311 bytes public/external/assets/index-BZ3xB-zH.js | 54 + public/external/assets/index-DB4XlpIQ.css | 1 + public/external/assets/index-DOEAsvH0.js | 54 + public/external/assets/index-DrUgyNgB.js | 54 + public/external/assets/index-NCwnmSOE.js | 54 + .../external/assets/ios_load_cn-DEUiai96.png | Bin 0 -> 82889 bytes .../external/assets/ios_load_en-B21344df.png | Bin 0 -> 78739 bytes .../external/assets/ios_load_ml-CD3GR_08.png | Bin 0 -> 79796 bytes .../external/assets/load_btn_cn-BDWrQvHA.png | Bin 0 -> 78730 bytes .../external/assets/load_btn_en-BkMDjFE1.png | Bin 0 -> 72407 bytes .../external/assets/load_btn_ml-It2vWF5J.png | Bin 0 -> 72097 bytes public/external/assets/logo-CyFrpVPl.png | Bin 0 -> 640749 bytes .../external/assets/success_bg-Ck7xCmfF.png | Bin 0 -> 514377 bytes .../external/assets/web_zhuce_di-gm05ZHtN.png | Bin 0 -> 6113 bytes .../assets/web_zhuce_icon02-C9dOxw-4.png | Bin 0 -> 4179 bytes .../assets/web_zhuce_icon04-BNx4GlxQ.png | Bin 0 -> 4110 bytes .../assets/web_zhuce_title-DQ1XRpsQ.png | Bin 0 -> 16589 bytes public/external/img/btn01.png | Bin 0 -> 5697 bytes public/external/img/btn02.png | Bin 0 -> 5793 bytes public/external/img/icon01.png | Bin 0 -> 6099 bytes public/external/img/icon02.png | Bin 0 -> 3098 bytes public/external/img/icon03.png | Bin 0 -> 2699 bytes public/favicon.ico | Bin 0 -> 4286 bytes public/qrcode/1.ttf | Bin 0 -> 46124 bytes public/qrcode/qrcode.jpg | Bin 0 -> 132001 bytes resource/translations/Ma_my/message.php | 106 + resource/translations/Ma_my/notice.php | 27 + resource/translations/Ma_my/validator.php | 35 + resource/translations/cam_dia/message.php | 78 + resource/translations/cam_dia/validator.php | 35 + resource/translations/en/message.php | 106 + resource/translations/en/notice.php | 27 + resource/translations/en/validator.php | 35 + resource/translations/zh_CN/message.php | 106 + resource/translations/zh_CN/notice.php | 27 + resource/translations/zh_CN/validator.php | 35 + runtime/.gitignore | 4 + runtime/logs/.gitignore | 2 + runtime/views/.gitignore | 2 + start.php | 5 + support/Request.php | 35 + support/Response.php | 24 + support/bootstrap.php | 139 + support/helpers.php | 2 + webman | 73 + windows.bat | 3 + windows.php | 136 + 677 files changed, 58662 insertions(+) create mode 100644 .gitignore create mode 100644 .rnd create mode 100644 LICENSE create mode 100644 PROJECT_ANALYSIS.md create mode 100644 README.md create mode 100644 addons/IDE.php create mode 100644 addons/webman/Admin.php create mode 100644 addons/webman/ServiceProvider.php create mode 100644 addons/webman/common/Login.php create mode 100644 addons/webman/common/System.php create mode 100644 addons/webman/config.php create mode 100644 addons/webman/controller/AdminController.php create mode 100644 addons/webman/controller/AppVersionController.php create mode 100644 addons/webman/controller/AttachmentController.php create mode 100644 addons/webman/controller/ChannelAdminController.php create mode 100644 addons/webman/controller/ChannelController.php create mode 100644 addons/webman/controller/ChannelGameController.php create mode 100644 addons/webman/controller/ChannelIndexController.php create mode 100644 addons/webman/controller/ChannelPlayGameRecordController.php create mode 100644 addons/webman/controller/ChannelPlayerController.php create mode 100644 addons/webman/controller/ChannelPlayerDeliveryRecordController.php create mode 100644 addons/webman/controller/ChannelPostController.php create mode 100644 addons/webman/controller/ChannelRechargeController.php create mode 100644 addons/webman/controller/ChannelRechargeRecordController.php create mode 100644 addons/webman/controller/ChannelWithdrawRecordController.php create mode 100644 addons/webman/controller/ConfigController.php create mode 100644 addons/webman/controller/CurrencyController.php create mode 100644 addons/webman/controller/DepartmentController.php create mode 100644 addons/webman/controller/GameController.php create mode 100644 addons/webman/controller/IndexController.php create mode 100644 addons/webman/controller/MenuController.php create mode 100644 addons/webman/controller/PlayGameRecordController.php create mode 100644 addons/webman/controller/PlayerController.php create mode 100644 addons/webman/controller/PlayerDeliveryRecordController.php create mode 100644 addons/webman/controller/PostController.php create mode 100644 addons/webman/controller/RechargeRecordController.php create mode 100644 addons/webman/controller/RoleController.php create mode 100644 addons/webman/controller/SystemSettingController.php create mode 100644 addons/webman/controller/WithdrawRecordController.php create mode 100644 addons/webman/database/webman.sql create mode 100644 addons/webman/echart/Driver/Eloquent.php create mode 100644 addons/webman/echart/EchartManager.php create mode 100644 addons/webman/exception/HttpResponseException.php create mode 100644 addons/webman/exception/PermissionException.php create mode 100644 addons/webman/filesystem/AdapterFactoryInterface.php create mode 100644 addons/webman/filesystem/Filesystem.php create mode 100644 addons/webman/filesystem/driver/Local.php create mode 100644 addons/webman/filesystem/driver/Oss.php create mode 100644 addons/webman/filesystem/driver/Qiniu.php create mode 100644 addons/webman/form/Driver/Config.php create mode 100644 addons/webman/form/Driver/Eloquent.php create mode 100644 addons/webman/form/FormManager.php create mode 100644 addons/webman/form/MyEditor.php create mode 100644 addons/webman/form/Uploader.php create mode 100644 addons/webman/form/Validator.php create mode 100644 addons/webman/grid/Driver/Eloquent.php create mode 100644 addons/webman/grid/Filter.php create mode 100644 addons/webman/grid/GridManager.php create mode 100644 addons/webman/grid/Jobs/Export.php create mode 100644 addons/webman/helpers.php create mode 100644 addons/webman/ide/Echart.php create mode 100644 addons/webman/ide/Grid.php create mode 100644 addons/webman/info.json create mode 100644 addons/webman/lang/Ma-my/commission_record.php create mode 100644 addons/webman/lang/Ma-my/menu.php create mode 100644 addons/webman/lang/cam_dia/activity.php create mode 100644 addons/webman/lang/cam_dia/activity_content.php create mode 100644 addons/webman/lang/cam_dia/admin.php create mode 100644 addons/webman/lang/cam_dia/announcement.php create mode 100644 addons/webman/lang/cam_dia/antd.php create mode 100644 addons/webman/lang/cam_dia/app_version.php create mode 100644 addons/webman/lang/cam_dia/attachment.php create mode 100644 addons/webman/lang/cam_dia/auth.php create mode 100644 addons/webman/lang/cam_dia/channel.php create mode 100644 addons/webman/lang/cam_dia/channel_financial_record.php create mode 100644 addons/webman/lang/cam_dia/channel_recharge_method.php create mode 100644 addons/webman/lang/cam_dia/channel_recharge_setting.php create mode 100644 addons/webman/lang/cam_dia/commission_record.php create mode 100644 addons/webman/lang/cam_dia/config.php create mode 100644 addons/webman/lang/cam_dia/currency.php create mode 100644 addons/webman/lang/cam_dia/data_center.php create mode 100644 addons/webman/lang/cam_dia/department.php create mode 100644 addons/webman/lang/cam_dia/echart.php create mode 100644 addons/webman/lang/cam_dia/first_recharge_setting.php create mode 100644 addons/webman/lang/cam_dia/form.php create mode 100644 addons/webman/lang/cam_dia/game.php create mode 100644 addons/webman/lang/cam_dia/game_platform.php create mode 100644 addons/webman/lang/cam_dia/grid.php create mode 100644 addons/webman/lang/cam_dia/login.php create mode 100644 addons/webman/lang/cam_dia/menu.php create mode 100644 addons/webman/lang/cam_dia/notice.php create mode 100644 addons/webman/lang/cam_dia/play_game_record.php create mode 100644 addons/webman/lang/cam_dia/player.php create mode 100644 addons/webman/lang/cam_dia/player_chip_record.php create mode 100644 addons/webman/lang/cam_dia/player_delivery_record.php create mode 100644 addons/webman/lang/cam_dia/player_edit_log.php create mode 100644 addons/webman/lang/cam_dia/player_extend.php create mode 100644 addons/webman/lang/cam_dia/player_level.php create mode 100644 addons/webman/lang/cam_dia/player_money_edit_log.php create mode 100644 addons/webman/lang/cam_dia/player_platform_cash.php create mode 100644 addons/webman/lang/cam_dia/player_recharge_record.php create mode 100644 addons/webman/lang/cam_dia/player_wallet_transfer.php create mode 100644 addons/webman/lang/cam_dia/player_withdraw_record.php create mode 100644 addons/webman/lang/cam_dia/post.php create mode 100644 addons/webman/lang/cam_dia/public_msg.php create mode 100644 addons/webman/lang/cam_dia/slider.php create mode 100644 addons/webman/lang/cam_dia/system_setting.php create mode 100644 addons/webman/lang/cam_dia/validator.php create mode 100644 addons/webman/lang/en/commission_record.php create mode 100644 addons/webman/lang/en/menu.php create mode 100644 addons/webman/lang/zh-CN/activity.php create mode 100644 addons/webman/lang/zh-CN/activity_content.php create mode 100644 addons/webman/lang/zh-CN/admin.php create mode 100644 addons/webman/lang/zh-CN/announcement.php create mode 100644 addons/webman/lang/zh-CN/antd.php create mode 100644 addons/webman/lang/zh-CN/app_version.php create mode 100644 addons/webman/lang/zh-CN/attachment.php create mode 100644 addons/webman/lang/zh-CN/auth.php create mode 100644 addons/webman/lang/zh-CN/broadcast.php create mode 100644 addons/webman/lang/zh-CN/channel.php create mode 100644 addons/webman/lang/zh-CN/channel_financial_record.php create mode 100644 addons/webman/lang/zh-CN/channel_recharge_method.php create mode 100644 addons/webman/lang/zh-CN/channel_recharge_setting.php create mode 100644 addons/webman/lang/zh-CN/commission_record.php create mode 100644 addons/webman/lang/zh-CN/config.php create mode 100644 addons/webman/lang/zh-CN/currency.php create mode 100644 addons/webman/lang/zh-CN/data_center.php create mode 100644 addons/webman/lang/zh-CN/department.php create mode 100644 addons/webman/lang/zh-CN/echart.php create mode 100644 addons/webman/lang/zh-CN/first_recharge_setting.php create mode 100644 addons/webman/lang/zh-CN/form.php create mode 100644 addons/webman/lang/zh-CN/game.php create mode 100644 addons/webman/lang/zh-CN/game_platform.php create mode 100644 addons/webman/lang/zh-CN/game_type.php create mode 100644 addons/webman/lang/zh-CN/grid.php create mode 100644 addons/webman/lang/zh-CN/login.php create mode 100644 addons/webman/lang/zh-CN/menu.php create mode 100644 addons/webman/lang/zh-CN/notice.php create mode 100644 addons/webman/lang/zh-CN/play_game_record.php create mode 100644 addons/webman/lang/zh-CN/player.php create mode 100644 addons/webman/lang/zh-CN/player_chip_record.php create mode 100644 addons/webman/lang/zh-CN/player_delivery_record.php create mode 100644 addons/webman/lang/zh-CN/player_edit_log.php create mode 100644 addons/webman/lang/zh-CN/player_extend.php create mode 100644 addons/webman/lang/zh-CN/player_level.php create mode 100644 addons/webman/lang/zh-CN/player_money_edit_log.php create mode 100644 addons/webman/lang/zh-CN/player_platform_cash.php create mode 100644 addons/webman/lang/zh-CN/player_promoter.php create mode 100644 addons/webman/lang/zh-CN/player_recharge_record.php create mode 100644 addons/webman/lang/zh-CN/player_wallet_transfer.php create mode 100644 addons/webman/lang/zh-CN/player_withdraw_record.php create mode 100644 addons/webman/lang/zh-CN/post.php create mode 100644 addons/webman/lang/zh-CN/prize.php create mode 100644 addons/webman/lang/zh-CN/promoter_profit_record.php create mode 100644 addons/webman/lang/zh-CN/promoter_profit_settlement_record.php create mode 100644 addons/webman/lang/zh-CN/public_msg.php create mode 100644 addons/webman/lang/zh-CN/qrcode.php create mode 100644 addons/webman/lang/zh-CN/slider.php create mode 100644 addons/webman/lang/zh-CN/system_setting.php create mode 100644 addons/webman/lang/zh-CN/validator.php create mode 100644 addons/webman/license create mode 100644 addons/webman/middleware/AuthMiddleware.php create mode 100644 addons/webman/middleware/LoadLangPack.php create mode 100644 addons/webman/middleware/Permission.php create mode 100644 addons/webman/middleware/RequestMiddleware.php create mode 100644 addons/webman/model/Activity.php create mode 100644 addons/webman/model/ActivityContent.php create mode 100644 addons/webman/model/AdminConfig.php create mode 100644 addons/webman/model/AdminDepartment.php create mode 100644 addons/webman/model/AdminFileAttachment.php create mode 100644 addons/webman/model/AdminFileAttachmentCate.php create mode 100644 addons/webman/model/AdminMenu.php create mode 100644 addons/webman/model/AdminPost.php create mode 100644 addons/webman/model/AdminRole.php create mode 100644 addons/webman/model/AdminRoleDepartment.php create mode 100644 addons/webman/model/AdminRoleMenu.php create mode 100644 addons/webman/model/AdminRolePermission.php create mode 100644 addons/webman/model/AdminRoleUsers.php create mode 100644 addons/webman/model/AdminUser.php create mode 100644 addons/webman/model/Announcement.php create mode 100644 addons/webman/model/AnnouncementContent.php create mode 100644 addons/webman/model/ApiErrorLog.php create mode 100644 addons/webman/model/AppVersion.php create mode 100644 addons/webman/model/BankList.php create mode 100644 addons/webman/model/Broadcast.php create mode 100644 addons/webman/model/Channel.php create mode 100644 addons/webman/model/ChannelFinancialRecord.php create mode 100644 addons/webman/model/ChannelRechargeMethod.php create mode 100644 addons/webman/model/ChannelRechargeMethodLang.php create mode 100644 addons/webman/model/ChannelRechargeSetting.php create mode 100644 addons/webman/model/CommissionRecord.php create mode 100644 addons/webman/model/Currency.php create mode 100644 addons/webman/model/DrawRecord.php create mode 100644 addons/webman/model/ExternalApp.php create mode 100644 addons/webman/model/Game.php create mode 100644 addons/webman/model/GamePlatform.php create mode 100644 addons/webman/model/GameType.php create mode 100644 addons/webman/model/Notice.php create mode 100644 addons/webman/model/PhoneSmsLog.php create mode 100644 addons/webman/model/PlayGameRecord.php create mode 100644 addons/webman/model/Player.php create mode 100644 addons/webman/model/PlayerBank.php create mode 100644 addons/webman/model/PlayerBankruptcyRecord.php create mode 100644 addons/webman/model/PlayerChipRecord.php create mode 100644 addons/webman/model/PlayerDeliveryRecord.php create mode 100644 addons/webman/model/PlayerEditLog.php create mode 100644 addons/webman/model/PlayerExtend.php create mode 100644 addons/webman/model/PlayerGamePlatform.php create mode 100644 addons/webman/model/PlayerGameRecord.php create mode 100644 addons/webman/model/PlayerLevel.php create mode 100644 addons/webman/model/PlayerLoginRecord.php create mode 100644 addons/webman/model/PlayerLotteryRecord.php create mode 100644 addons/webman/model/PlayerMoneyEditLog.php create mode 100644 addons/webman/model/PlayerPlatformCash.php create mode 100644 addons/webman/model/PlayerPromoter.php create mode 100644 addons/webman/model/PlayerRechargeRecord.php create mode 100644 addons/webman/model/PlayerRegisterRecord.php create mode 100644 addons/webman/model/PlayerTag.php create mode 100644 addons/webman/model/PlayerWalletTransfer.php create mode 100644 addons/webman/model/PlayerWithdrawRecord.php create mode 100644 addons/webman/model/Prize.php create mode 100644 addons/webman/model/PromoterProfitRecord.php create mode 100644 addons/webman/model/PromoterProfitSettlementRecord.php create mode 100644 addons/webman/model/Qrcode.php create mode 100644 addons/webman/model/QrcodeBatch.php create mode 100644 addons/webman/model/QrcodeOwner.php create mode 100644 addons/webman/model/SepayRecharge.php create mode 100644 addons/webman/model/SignIns.php create mode 100644 addons/webman/model/Slider.php create mode 100644 addons/webman/model/SystemSetting.php create mode 100644 addons/webman/service/Menu.php create mode 100644 addons/webman/service/Service.php create mode 100644 addons/webman/token/driver/Cache.php create mode 100644 addons/webman/traits/DataPermissions.php create mode 100644 addons/webman/traits/HasDateTimeFormatter.php create mode 100644 addons/webman/validator/ValidatorFactory.php create mode 100644 addons/webman/views/activity_tabs.vue create mode 100644 addons/webman/views/agent.vue create mode 100644 addons/webman/views/login.vue create mode 100644 addons/webman/views/machine_status.vue create mode 100644 addons/webman/views/media_play.vue create mode 100644 addons/webman/views/my_editor.vue create mode 100644 addons/webman/views/socket.vue create mode 100644 app/api/controller/v1/GameController.php create mode 100644 app/api/controller/v1/IndexController.php create mode 100644 app/api/controller/v1/PlayerController.php create mode 100644 app/api/controller/v1/VersionController.php create mode 100644 app/exception/ApiHandler.php create mode 100644 app/exception/GameException.php create mode 100644 app/exception/PlayerCheckException.php create mode 100644 app/exception/PromoterCheckException.php create mode 100644 app/external/ExternalApiController.php create mode 100644 app/external/view/login/download.html create mode 100644 app/external/view/login/index.html create mode 100644 app/external/view/sepay/detail.html create mode 100644 app/external/view/sepay/detail_fail.html create mode 100644 app/external/view/sepay/detail_paying.html create mode 100644 app/external/view/sepay/detail_success.html create mode 100644 app/external/view/skl/detail.html create mode 100644 app/external/view/skl/detail_fail.html create mode 100644 app/external/view/skl/detail_paying.html create mode 100644 app/external/view/skl/detail_success.html create mode 100644 app/functions.php create mode 100644 app/middleware/AccessControl.php create mode 100644 app/middleware/AppVersionMiddleware.php create mode 100644 app/middleware/ExternalAppMiddleware.php create mode 100644 app/middleware/Lang.php create mode 100644 app/middleware/SiteAuthMiddleware.php create mode 100644 app/middleware/StaticFile.php create mode 100644 app/queue/redis/CancelRecharge.php create mode 100644 app/queue/redis/SendBroadcasts.php create mode 100644 app/service/BaseSmsServices.php create mode 100644 app/service/DrawService.php create mode 100644 app/service/JpSmsServicesServices.php create mode 100644 app/service/OnePayServices.php create mode 100644 app/service/SePayServices.php create mode 100644 app/service/SklPayServices.php create mode 100644 app/service/SmsServicesServices.php create mode 100644 app/service/TwSmsServicesServices.php create mode 100644 app/service/game/BigGamingServiceInterface.php create mode 100644 app/service/game/CSServiceInterface.php create mode 100644 app/service/game/GameServiceFactory.php create mode 100644 app/service/game/GameServiceInterface.php create mode 100644 app/service/game/JDBServiceInterface.php create mode 100644 app/service/game/JiLiServiceInterface.php create mode 100644 app/service/game/JokerServiceInterface.php create mode 100644 app/service/game/Kiss918ServiceInterface.php create mode 100644 app/service/game/LionKingServiceInterface.php create mode 100644 app/service/game/Lucky365ServiceInterface.php create mode 100644 app/service/game/MarioClubServiceInterface.php create mode 100644 app/service/game/MeGa888ServiceInterface.php create mode 100644 app/service/game/MonkeyKingServiceInterface.php create mode 100644 app/service/game/NextSpinServiceInterface.php create mode 100644 app/service/game/PragmaticServiceInterface.php create mode 100644 composer.json create mode 100644 config/admin_node.php create mode 100644 config/app.php create mode 100644 config/autoload.php create mode 100644 config/bootstrap.php create mode 100644 config/channel_node.php create mode 100644 config/container.php create mode 100644 config/database.php create mode 100644 config/def_avatar.php create mode 100644 config/dependence.php create mode 100644 config/event.php create mode 100644 config/exception.php create mode 100644 config/game_platform.php create mode 100644 config/jp-sms.php create mode 100644 config/log.php create mode 100644 config/middleware.php create mode 100644 config/one_pay.php create mode 100644 config/plugin/gitfei1231/webman-api-sign/app.php create mode 100644 config/plugin/gitfei1231/webman-api-sign/middleware.php create mode 100644 config/plugin/rockys/ex-admin-webman/app.php create mode 100644 config/plugin/rockys/ex-admin-webman/bootstrap.php create mode 100644 config/plugin/rockys/ex-admin-webman/command.php create mode 100644 config/plugin/rockys/ex-admin-webman/filesystems.php create mode 100644 config/plugin/rockys/ex-admin-webman/middleware.php create mode 100644 config/plugin/rockys/ex-admin-webman/process.php create mode 100644 config/plugin/rockys/ex-admin-webman/route.php create mode 100644 config/plugin/tinywan/jwt/app.php create mode 100644 config/plugin/webman-tech/laravel-http-client/app.php create mode 100644 config/plugin/webman/console/app.php create mode 100644 config/plugin/webman/event/app.php create mode 100644 config/plugin/webman/event/bootstrap.php create mode 100644 config/plugin/webman/event/command.php create mode 100644 config/plugin/webman/log/app.php create mode 100644 config/plugin/webman/log/middleware.php create mode 100644 config/plugin/webman/push/app.php create mode 100644 config/plugin/webman/push/process.php create mode 100644 config/plugin/webman/push/route.php create mode 100644 config/plugin/webman/redis-queue/app.php create mode 100644 config/plugin/webman/redis-queue/command.php create mode 100644 config/plugin/webman/redis-queue/log.php create mode 100644 config/plugin/webman/redis-queue/process.php create mode 100644 config/plugin/webman/redis-queue/redis.php create mode 100644 config/plugin/workbunny/webman-ip-attribution/app.php create mode 100644 config/plugin/yzh52521/jwt_key/private.key create mode 100644 config/plugin/yzh52521/jwt_key/public.key create mode 100644 config/plugin/yzh52521/lock/app.php create mode 100644 config/process.php create mode 100644 config/redis.php create mode 100644 config/route.php create mode 100644 config/se-pay.php create mode 100644 config/server.php create mode 100644 config/session.php create mode 100644 config/skl_pay.php create mode 100644 config/sms.php create mode 100644 config/static.php create mode 100644 config/thinkcache.php create mode 100644 config/thinkorm.php create mode 100644 config/translation.php create mode 100644 config/tw-sms.php create mode 100644 config/view.php create mode 100644 db/migrations/20231019063557_create_channel.php create mode 100644 db/migrations/20231019082149_create_admin_configs.php create mode 100644 db/migrations/20231019082538_create_admin_department.php create mode 100644 db/migrations/20231019083200_create_admin_file_attachment_cates.php create mode 100644 db/migrations/20231019083930_create_admin_file_attachments.php create mode 100644 db/migrations/20231019084623_create_admin_menus.php create mode 100644 db/migrations/20231019085033_create_admin_post.php create mode 100644 db/migrations/20231019085352_create_admin_role_department.php create mode 100644 db/migrations/20231019085602_create_admin_role_menus.php create mode 100644 db/migrations/20231019085901_create_admin_role_permissions.php create mode 100644 db/migrations/20231019090118_create_admin_role_users.php create mode 100644 db/migrations/20231019090238_create_admin_roles.php create mode 100644 db/migrations/20231019090918_create_admin_users.php create mode 100644 db/migrations/20231019091927_create_announcement.php create mode 100644 db/migrations/20231019092731_create_api_error_log.php create mode 100644 db/migrations/20231019100353_create_channel_financial_record.php create mode 100644 db/migrations/20231020013447_create_currency.php create mode 100644 db/migrations/20231020014010_create_external_app.php create mode 100644 db/migrations/20231020023005_create_phone_sms_log.php create mode 100644 db/migrations/20231020023858_create_player.php create mode 100644 db/migrations/20231020033110_create_player_bank.php create mode 100644 db/migrations/20231020033609_create_player_delivery_record.php create mode 100644 db/migrations/20231020034940_create_player_extend.php create mode 100644 db/migrations/20231020055313_create_player_login_record.php create mode 100644 db/migrations/20231020055715_create_player_money_edit_log.php create mode 100644 db/migrations/20231020060556_create_player_platform_cash.php create mode 100644 db/migrations/20231020061742_create_player_recharge_record.php create mode 100644 db/migrations/20231020062947_create_player_register_record.php create mode 100644 db/migrations/20231020070150_create_player_tag.php create mode 100644 db/migrations/20231020070340_create_player_withdraw_record.php create mode 100644 db/migrations/20231020071333_create_slider.php create mode 100644 db/migrations/20231020073448_create_system_setting.php create mode 100644 db/migrations/20231024093335_create_player_edit_log.php create mode 100644 db/migrations/20231115082108_create_notice.php create mode 100644 db/migrations/20240511015233_create_sign_ins.php create mode 100644 db/migrations/20240511032731_create_chip_changes.php create mode 100644 db/migrations/20240511053700_modify_player_chip_amount.php create mode 100644 db/migrations/20240511060113_create_activity.php create mode 100644 db/migrations/20240511065003_create_activity_content.php create mode 100644 process/Monitor.php create mode 100644 public/404.html create mode 100644 public/audio/activity_examine.mp3 create mode 100644 public/audio/lottery_examine.mp3 create mode 100644 public/audio/recharge_examine.mp3 create mode 100644 public/audio/withdraw_examine.mp3 create mode 100644 public/def_avatar/nan1.png create mode 100644 public/def_avatar/nan2.png create mode 100644 public/def_avatar/nan3.png create mode 100644 public/def_avatar/nan4.png create mode 100644 public/def_avatar/nan5.png create mode 100644 public/def_avatar/nv1.png create mode 100644 public/def_avatar/nv2.png create mode 100644 public/def_avatar/nv3.png create mode 100644 public/def_avatar/nv4.png create mode 100644 public/def_avatar/nv5.png create mode 100644 public/exadmin/assets/@ant-design.bcfb08ae.js create mode 100644 public/exadmin/assets/@babel.6cd0804c.js create mode 100644 public/exadmin/assets/@ctrl.fa7cbd46.js create mode 100644 public/exadmin/assets/@fortawesome.fe0e4c2f.css create mode 100644 public/exadmin/assets/@kangc.1dc16e06.css create mode 100644 public/exadmin/assets/@kangc.86f7507c.js create mode 100644 public/exadmin/assets/@tinymce.24a850ec.js create mode 100644 public/exadmin/assets/@vue.cb43a243.js create mode 100644 public/exadmin/assets/@vueuse.952f4739.js create mode 100644 public/exadmin/assets/a-color-picker.7e391635.js create mode 100644 public/exadmin/assets/ali-oss.ce3a624c.js create mode 100644 public/exadmin/assets/ant-design-vue.6b10f349.js create mode 100644 public/exadmin/assets/async-validator.5d25c98b.js create mode 100644 public/exadmin/assets/asyncRender.909685d0.js create mode 100644 public/exadmin/assets/autoComplete.eb6d69d8.js create mode 100644 public/exadmin/assets/axios.e3200588.js create mode 100644 public/exadmin/assets/cascader.45565a25.js create mode 100644 public/exadmin/assets/checkboxTag.0fd114f7.js create mode 100644 public/exadmin/assets/clipboard.099d05c9.js create mode 100644 public/exadmin/assets/colorPicker.eaaf7f9c.css create mode 100644 public/exadmin/assets/colorPicker.f408c0ec.js create mode 100644 public/exadmin/assets/compute-scroll-into-view.6058b3be.js create mode 100644 public/exadmin/assets/context.6c9ae94a.js create mode 100644 public/exadmin/assets/dayjs.38e390ea.js create mode 100644 public/exadmin/assets/descriptions.63e5ab75.js create mode 100644 public/exadmin/assets/diacritics.6be19c75.js create mode 100644 public/exadmin/assets/dom-align.f1b5d360.js create mode 100644 public/exadmin/assets/downloadFile.1bd3bd71.js create mode 100644 public/exadmin/assets/draggableRender.ea43ba32.js create mode 100644 public/exadmin/assets/dynamicTag.86eeadc8.js create mode 100644 public/exadmin/assets/echart.cf7709a7.js create mode 100644 public/exadmin/assets/echarts.c3fe9bb7.js create mode 100644 public/exadmin/assets/entities.0d2c0164.js create mode 100644 public/exadmin/assets/escape-html.e5dfadb9.js create mode 100644 public/exadmin/assets/fa-brands-400.404c746c.woff2 create mode 100644 public/exadmin/assets/fa-brands-400.e523f49c.ttf create mode 100644 public/exadmin/assets/fa-regular-400.4e96a7e0.ttf create mode 100644 public/exadmin/assets/fa-regular-400.6a274e76.woff2 create mode 100644 public/exadmin/assets/fa-solid-900.03f2986c.ttf create mode 100644 public/exadmin/assets/fa-solid-900.d76fb4e8.woff2 create mode 100644 public/exadmin/assets/fa-v4compatibility.0db31bef.woff2 create mode 100644 public/exadmin/assets/fa-v4compatibility.86a687cf.ttf create mode 100644 public/exadmin/assets/form.2a54c7c4.css create mode 100644 public/exadmin/assets/form.ed3f1d04.js create mode 100644 public/exadmin/assets/grid.72bf2236.css create mode 100644 public/exadmin/assets/grid.c3e66c00.js create mode 100644 public/exadmin/assets/icon.f0cf1419.js create mode 100644 public/exadmin/assets/index.081aed29.css create mode 100644 public/exadmin/assets/index.8c22d4cb.css create mode 100644 public/exadmin/assets/index.b35f53c6.js create mode 100644 public/exadmin/assets/index.e3eff962.js create mode 100644 public/exadmin/assets/js-cookie.31874410.js create mode 100644 public/exadmin/assets/js-md5.5179c6be.js create mode 100644 public/exadmin/assets/linkify-it.92c30060.js create mode 100644 public/exadmin/assets/lodash-es.0ea26897.js create mode 100644 public/exadmin/assets/lodash.c9cf1bdb.js create mode 100644 public/exadmin/assets/markdown-it-anchor.c88e5394.js create mode 100644 public/exadmin/assets/markdown-it-attrs.3af5ab50.js create mode 100644 public/exadmin/assets/markdown-it-container.512a5043.js create mode 100644 public/exadmin/assets/markdown-it-emoji.e3e91710.js create mode 100644 public/exadmin/assets/markdown-it-table-of-contents.8a4ce16f.js create mode 100644 public/exadmin/assets/markdown-it.80c3a67b.js create mode 100644 public/exadmin/assets/mdurl.ef76b4dc.js create mode 100644 public/exadmin/assets/numberRange.355eb997.js create mode 100644 public/exadmin/assets/prismjs.c97a8414.js create mode 100644 public/exadmin/assets/qiniu-js.8b174ca3.js create mode 100644 public/exadmin/assets/querystring.62f12500.js create mode 100644 public/exadmin/assets/regenerator-runtime.8e24db72.js create mode 100644 public/exadmin/assets/remoteOptions.c846a4ad.js create mode 100644 public/exadmin/assets/resize-observer-polyfill.8deb1e21.js create mode 100644 public/exadmin/assets/scroll-into-view-if-needed.5191fdbf.js create mode 100644 public/exadmin/assets/select.4753e345.js create mode 100644 public/exadmin/assets/selectIcon.7cb44740.js create mode 100644 public/exadmin/assets/selectIcon.fecf68db.css create mode 100644 public/exadmin/assets/selectTable.0026a80b.js create mode 100644 public/exadmin/assets/selectTable.3743dfd0.css create mode 100644 public/exadmin/assets/sidebar.8f138590.css create mode 100644 public/exadmin/assets/sidebar.da9c6767.js create mode 100644 public/exadmin/assets/simple-uploader.js.04c42387.js create mode 100644 public/exadmin/assets/sortablejs.412b554c.js create mode 100644 public/exadmin/assets/spark-md5.2cc5764b.js create mode 100644 public/exadmin/assets/switch.4512364b.js create mode 100644 public/exadmin/assets/tinymce.140b5d43.js create mode 100644 public/exadmin/assets/tinymce.734381d8.js create mode 100644 public/exadmin/assets/tinymce.850c126b.css create mode 100644 public/exadmin/assets/tree.8d2d66f3.js create mode 100644 public/exadmin/assets/tslib.60310f1a.js create mode 100644 public/exadmin/assets/uc.micro.981ceb7b.js create mode 100644 public/exadmin/assets/upload.6e19536d.css create mode 100644 public/exadmin/assets/upload.e8f0332b.js create mode 100644 public/exadmin/assets/uploader.b72f178f.js create mode 100644 public/exadmin/assets/use-http.ec808253.js create mode 100644 public/exadmin/assets/video.3a3126dc.js create mode 100644 public/exadmin/assets/vue-demi.5fb18120.js create mode 100644 public/exadmin/assets/vue-router.a08742b9.js create mode 100644 public/exadmin/assets/vue-types.6e6d84ba.js create mode 100644 public/exadmin/assets/vue.db505ee4.js create mode 100644 public/exadmin/assets/vuedraggable.e7e6f001.js create mode 100644 public/exadmin/assets/xgplayer.51331964.js create mode 100644 public/exadmin/assets/zrender.59ea4400.js create mode 100644 public/exadmin/favicon.ico create mode 100644 public/exadmin/file_icon/aac.png create mode 100644 public/exadmin/file_icon/ai.png create mode 100644 public/exadmin/file_icon/aiff.png create mode 100644 public/exadmin/file_icon/asp.png create mode 100644 public/exadmin/file_icon/avi.png create mode 100644 public/exadmin/file_icon/bmp.png create mode 100644 public/exadmin/file_icon/c.png create mode 100644 public/exadmin/file_icon/cpp.png create mode 100644 public/exadmin/file_icon/css.png create mode 100644 public/exadmin/file_icon/dat.png create mode 100644 public/exadmin/file_icon/dir.png create mode 100644 public/exadmin/file_icon/dmg.png create mode 100644 public/exadmin/file_icon/doc.png create mode 100644 public/exadmin/file_icon/docx.png create mode 100644 public/exadmin/file_icon/dot.png create mode 100644 public/exadmin/file_icon/dotx.png create mode 100644 public/exadmin/file_icon/dwg.png create mode 100644 public/exadmin/file_icon/dxf.png create mode 100644 public/exadmin/file_icon/eps.png create mode 100644 public/exadmin/file_icon/exe.png create mode 100644 public/exadmin/file_icon/flv.png create mode 100644 public/exadmin/file_icon/gif.png create mode 100644 public/exadmin/file_icon/h.png create mode 100644 public/exadmin/file_icon/html.png create mode 100644 public/exadmin/file_icon/ics.png create mode 100644 public/exadmin/file_icon/iso.png create mode 100644 public/exadmin/file_icon/java.png create mode 100644 public/exadmin/file_icon/jpg.png create mode 100644 public/exadmin/file_icon/key.png create mode 100644 public/exadmin/file_icon/m4v.png create mode 100644 public/exadmin/file_icon/mid.png create mode 100644 public/exadmin/file_icon/mov.png create mode 100644 public/exadmin/file_icon/mp3.png create mode 100644 public/exadmin/file_icon/mp4.png create mode 100644 public/exadmin/file_icon/mpg.png create mode 100644 public/exadmin/file_icon/odp.png create mode 100644 public/exadmin/file_icon/ods.png create mode 100644 public/exadmin/file_icon/odt.png create mode 100644 public/exadmin/file_icon/otp.png create mode 100644 public/exadmin/file_icon/ots.png create mode 100644 public/exadmin/file_icon/ott.png create mode 100644 public/exadmin/file_icon/pdf.png create mode 100644 public/exadmin/file_icon/php.png create mode 100644 public/exadmin/file_icon/png.png create mode 100644 public/exadmin/file_icon/pps.png create mode 100644 public/exadmin/file_icon/ppt.png create mode 100644 public/exadmin/file_icon/psd.png create mode 100644 public/exadmin/file_icon/py.png create mode 100644 public/exadmin/file_icon/qt.png create mode 100644 public/exadmin/file_icon/rar.png create mode 100644 public/exadmin/file_icon/rb.png create mode 100644 public/exadmin/file_icon/rtf.png create mode 100644 public/exadmin/file_icon/sql.png create mode 100644 public/exadmin/file_icon/tga.png create mode 100644 public/exadmin/file_icon/tgz.png create mode 100644 public/exadmin/file_icon/tiff.png create mode 100644 public/exadmin/file_icon/txt.png create mode 100644 public/exadmin/file_icon/wav.png create mode 100644 public/exadmin/file_icon/xls.png create mode 100644 public/exadmin/file_icon/xlsx.png create mode 100644 public/exadmin/file_icon/xml.png create mode 100644 public/exadmin/file_icon/yml.png create mode 100644 public/exadmin/file_icon/zip.png create mode 100644 public/exadmin/img/login-bg.b9f5c736.svg create mode 100644 public/exadmin/img/login-box-bg.9027741f.svg create mode 100644 public/exadmin/img/login_logo.png create mode 100644 public/exadmin/img/logo.png create mode 100644 public/exadmin/index.html create mode 100644 public/exadmin/tinymce/langs/cam_dia.js create mode 100644 public/exadmin/tinymce/langs/zh_CN.js create mode 100644 public/exadmin/tinymce/plugins/axupimgs/loading.gif create mode 100644 public/exadmin/tinymce/plugins/axupimgs/plugin.js create mode 100644 public/exadmin/tinymce/plugins/axupimgs/plugin.min.js create mode 100644 public/exadmin/tinymce/plugins/axupimgs/upfiles.html create mode 100644 public/exadmin/tinymce/plugins/powerpaste/img/spinner_96.gif create mode 100644 public/exadmin/tinymce/plugins/powerpaste/js/wordimport.js create mode 100644 public/exadmin/tinymce/plugins/powerpaste/langs/zh_CN.js create mode 100644 public/exadmin/tinymce/plugins/powerpaste/plugin.min.js create mode 100644 public/exadmin/tinymce/skins/content/default/content.css create mode 100644 public/exadmin/tinymce/skins/content/default/content.min.css create mode 100644 public/exadmin/tinymce/skins/ui/oxide/content.css create mode 100644 public/exadmin/tinymce/skins/ui/oxide/content.inline.css create mode 100644 public/exadmin/tinymce/skins/ui/oxide/content.inline.min.css create mode 100644 public/exadmin/tinymce/skins/ui/oxide/content.min.css create mode 100644 public/exadmin/tinymce/skins/ui/oxide/content.mobile.css create mode 100644 public/exadmin/tinymce/skins/ui/oxide/content.mobile.min.css create mode 100644 public/exadmin/tinymce/skins/ui/oxide/fonts/tinymce-mobile.woff create mode 100644 public/exadmin/tinymce/skins/ui/oxide/skin.css create mode 100644 public/exadmin/tinymce/skins/ui/oxide/skin.min.css create mode 100644 public/exadmin/tinymce/skins/ui/oxide/skin.mobile.css create mode 100644 public/exadmin/tinymce/skins/ui/oxide/skin.mobile.min.css create mode 100644 public/exadmin/version create mode 100644 public/external/assets/1-CrTrFgIR.png create mode 100644 public/external/assets/1-DXhzDscN.png create mode 100644 public/external/assets/2-BuQDLPFv.png create mode 100644 public/external/assets/2-DPio4Vf5.png create mode 100644 public/external/assets/3-31LlV2yA.png create mode 100644 public/external/assets/3-B1Awzzjp.png create mode 100644 public/external/assets/4-DyN4R5RH.png create mode 100644 public/external/assets/4-k8WV9w2L.png create mode 100644 public/external/assets/5-CdGw0quJ.png create mode 100644 public/external/assets/5-DxtZptVm.png create mode 100644 public/external/assets/6-CiQsmfTZ.png create mode 100644 public/external/assets/6-QMUjjPiC.png create mode 100644 public/external/assets/7-BHXkev6c.png create mode 100644 public/external/assets/7-ncsHMwam.png create mode 100644 public/external/assets/android_load_cn-DjYGHHz0.png create mode 100644 public/external/assets/android_load_en-B9mM9Ecd.png create mode 100644 public/external/assets/android_load_ml-SIoGFyOc.png create mode 100644 public/external/assets/bg-B7DXvOlP.jpg create mode 100644 public/external/assets/btn_yanzheng_cn-EYtUjbFB.png create mode 100644 public/external/assets/btn_yanzheng_en-5yZmu8JQ.png create mode 100644 public/external/assets/btn_yanzheng_ml-C9CYm1Jd.png create mode 100644 public/external/assets/btn_zhuce_cn-C50926uZ.png create mode 100644 public/external/assets/btn_zhuce_en-BjHPoyWb.png create mode 100644 public/external/assets/btn_zhuce_ml-UgZ5qZ0z.png create mode 100644 public/external/assets/chenggong_wenzi_cn-g95uAhaD.png create mode 100644 public/external/assets/chenggong_wenzi_en-CnKaS2q_.png create mode 100644 public/external/assets/chenggong_wenzi_ml-BpALe__T.png create mode 100644 public/external/assets/code_bg-CFw-_56r.png create mode 100644 public/external/assets/index-BZ3xB-zH.js create mode 100644 public/external/assets/index-DB4XlpIQ.css create mode 100644 public/external/assets/index-DOEAsvH0.js create mode 100644 public/external/assets/index-DrUgyNgB.js create mode 100644 public/external/assets/index-NCwnmSOE.js create mode 100644 public/external/assets/ios_load_cn-DEUiai96.png create mode 100644 public/external/assets/ios_load_en-B21344df.png create mode 100644 public/external/assets/ios_load_ml-CD3GR_08.png create mode 100644 public/external/assets/load_btn_cn-BDWrQvHA.png create mode 100644 public/external/assets/load_btn_en-BkMDjFE1.png create mode 100644 public/external/assets/load_btn_ml-It2vWF5J.png create mode 100644 public/external/assets/logo-CyFrpVPl.png create mode 100644 public/external/assets/success_bg-Ck7xCmfF.png create mode 100644 public/external/assets/web_zhuce_di-gm05ZHtN.png create mode 100644 public/external/assets/web_zhuce_icon02-C9dOxw-4.png create mode 100644 public/external/assets/web_zhuce_icon04-BNx4GlxQ.png create mode 100644 public/external/assets/web_zhuce_title-DQ1XRpsQ.png create mode 100644 public/external/img/btn01.png create mode 100644 public/external/img/btn02.png create mode 100644 public/external/img/icon01.png create mode 100644 public/external/img/icon02.png create mode 100644 public/external/img/icon03.png create mode 100644 public/favicon.ico create mode 100644 public/qrcode/1.ttf create mode 100644 public/qrcode/qrcode.jpg create mode 100644 resource/translations/Ma_my/message.php create mode 100644 resource/translations/Ma_my/notice.php create mode 100644 resource/translations/Ma_my/validator.php create mode 100644 resource/translations/cam_dia/message.php create mode 100644 resource/translations/cam_dia/validator.php create mode 100644 resource/translations/en/message.php create mode 100644 resource/translations/en/notice.php create mode 100644 resource/translations/en/validator.php create mode 100644 resource/translations/zh_CN/message.php create mode 100644 resource/translations/zh_CN/notice.php create mode 100644 resource/translations/zh_CN/validator.php create mode 100644 runtime/.gitignore create mode 100644 runtime/logs/.gitignore create mode 100644 runtime/views/.gitignore create mode 100644 start.php create mode 100644 support/Request.php create mode 100644 support/Response.php create mode 100644 support/bootstrap.php create mode 100644 support/helpers.php create mode 100644 webman create mode 100644 windows.bat create mode 100644 windows.php diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..52d40e8 --- /dev/null +++ b/.gitignore @@ -0,0 +1,14 @@ +/.idea +/.vscode +/vendor +*.log +.env +/tests/tmp +/tests/.phpunit.result.cache +/public/storage +/node_modules +/build/ +/composer.lock +/phinx.php +.htaccess +nginx.htaccess diff --git a/.rnd b/.rnd new file mode 100644 index 0000000000000000000000000000000000000000..ca563051e79b9f9983a98e92d1be3771eafc3be7 GIT binary patch literal 1024 zcmV+b1poW>5?kFYVKEWIIf)aH5cEHv~h8_UHl0N@lms0tELK{^sRy2BB{3oPq$ko+5Z<}tn zPc0*0T^J#45vkE-i0v*A05hUR;6|zaOjWLx^YC5Sc`~BM$ zQAeR%h7GkliZ32D&sF29xm!OV&i0jS?};}cHWp^IZ;dS0$m6|0?h1WM z88YN`_7p|}5O&+@sr9N`uZBoJvB2$$e0j$ex^OT#==g730oP^$0I#srj&Dxb>a4z~ZPZLDm9tp6IW%je`wsYa42AYG#t zrETnzhNJTPeR#CI278;{-c{b-=4@h0swU4I3%@Kj>?I%p#fc$zYrU4-e;!qdRM^Bl z1Q$<@;PqY{C2K{+rugU8w7cqeKb7b$>VOVREkxaNq^n?!R#6Lj_qYo=_2$t9!*`>{ z7jI20T*hJ$=@qh54Um3OAYG(qGl{Xjy*nvvd)oPzJ2di`_k6 z*Rn^cx4ik$Ux|yyDZ`QHy%lwl?@LNA5;y0q2 and contributors (see https://github.com/walkor/webman/contributors) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/PROJECT_ANALYSIS.md b/PROJECT_ANALYSIS.md new file mode 100644 index 0000000..9493e88 --- /dev/null +++ b/PROJECT_ANALYSIS.md @@ -0,0 +1,444 @@ +# GGL 项目分析文档 + +## 一、项目概述 + +本项目是一个基于 **Webman(Workerman)** 框架构建的 **游戏聚合 + 支付平台** 后端系统,提供玩家端 API、第三方回调接口以及后台管理系统(ExAdmin)。 + +- **框架**: Webman (workerman/webman-framework ^1.5.0) +- **语言**: PHP >= 7.2 +- **ORM**: Illuminate Database (Eloquent) ^8.83 +- **后台管理**: ExAdmin (rockys/ex-admin-webman ^1.0) +- **HTTP 监听**: `http://0.0.0.0:8786` +- **进程数**: `cpu_count() * 4` + +--- + +## 二、项目目录结构 + +``` +ggl/ +├── addons/webman/ # ExAdmin 后台管理模块 +│ ├── controller/ # 后台控制器 (28个) +│ ├── model/ # Eloquent 数据模型 (60+) +│ ├── middleware/ # 后台中间件 +│ ├── database/ # 数据库迁移 & 种子 +│ ├── service/ # 菜单等服务 +│ ├── token/ # Token 驱动 +│ ├── traits/ # 公共 Trait +│ ├── validator/ # 验证器 +│ ├── common/ # 公共组件 (登录/系统) +│ ├── echart/ # 图表组件 +│ ├── form/ # 表单组件 +│ └── grid/ # 列表组件 +├── app/ +│ ├── api/controller/v1/ # 玩家端 API 控制器 +│ ├── external/ # 外部回调 API 控制器 +│ ├── exception/ # 异常处理 +│ ├── middleware/ # 应用中间件 +│ ├── queue/redis/ # Redis 队列消费者 +│ ├── service/ # 业务服务层 +│ │ └── game/ # 游戏平台接口适配 +│ └── functions.php # 全局函数 +├── config/ # 配置文件 +├── db/migrations/ # Phinx 数据库迁移 +├── process/ # 自定义进程 +├── public/ # Web 静态资源 +├── resource/translations/ # 多语言资源 (zh_CN, en, Ma_my, cam_dia) +├── runtime/ # 运行时文件 (日志/缓存) +├── support/ # 框架辅助文件 +├── composer.json +├── start.php # Linux 入口 +└── windows.php # Windows 入口 +``` + +--- + +## 三、核心功能模块 + +### 3.1 玩家端功能 + +| 模块 | 功能描述 | +|------|----------| +| 用户认证 | 手机号注册、短信验证码、登录、登出、忘记密码 | +| 玩家信息 | 获取玩家信息、编辑昵称 | +| 银行卡管理 | 银行列表、添加/编辑/删除银行卡 | +| 充值功能 | 充值列表、充值项配置、玩家充值、上传凭证、SePay充值 | +| 提现功能 | 提现申请、SePay提现 | +| 账单记录 | Cash In/Out列表、充提记录、游戏记录 | +| 游戏中心 | 登录游戏、获取游戏地址 | +| 抽奖系统 | 奖品列表、抽奖、抽奖记录 | +| 数据中心 | 礼品中心 | +| 版本更新 | APP 版本检测更新 | + +### 3.2 后台管理功能 + +| 模块 | 功能描述 | +|------|----------| +| 仪表盘 | 登录数据、玩家数据、充值/提现数据、图表统计 | +| 玩家管理 | 玩家列表、等级设置、标签管理、人工充值/提现、钱包管理、密码重置 | +| 游戏管理 | 游戏列表、进入游戏、奖品管理、每日库存补充、游戏服务配置 | +| 充值管理 | 充值记录、充值审核、充值方式配置、快捷支付配置 | +| 提现管理 | 提现记录、提现审核(通过/拒绝)、付款处理 | +| 渠道管理 | 渠道列表、渠道管理员、渠道配置 | +| 系统管理 | 菜单管理、角色权限管理、部门管理、岗位管理、系统设置 | +| 货币管理 | 货币列表、货币配置 | +| APP版本管理 | Android/iOS 版本管理、渠道配置、APK解压 | +| 附件管理 | 文件上传、分类管理 | +| 游戏记录 | 玩家游戏记录查询 | +| 配送记录 | 玩家配送记录查询 | + +### 3.3 第三方集成 + +| 服务 | 说明 | +|------|------| +| SKL Pay | 支付充值、提现、回调通知 | +| One Pay | 支付服务 | +| Se Pay | 支付充值、提现服务 | +| 短信服务 | Weiqucloud 短信 API(含日本/台湾短信) | +| Facebook SDK | Facebook Graph SDK 集成 | +| WebSocket 推送 | webman/push 实时消息推送 | + +### 3.4 游戏平台适配 + +通过 `GameServiceInterface` 统一接口 + `GameServiceFactory` 工厂模式,接入多个游戏平台: + +| 游戏平台 | 接口文件 | +|----------|----------| +| MEGA888 | MeGa888ServiceInterface.php | +| KISS918 | Kiss918ServiceInterface.php | +| Joker | JokerServiceInterface.php | +| JiLi | JiLiServiceInterface.php | +| JDB | JDBServiceInterface.php | +| Pragmatic | PragmaticServiceInterface.php | +| LionKing | LionKingServiceInterface.php | +| Lucky365 | Lucky365ServiceInterface.php | +| MarioClub | MarioClubServiceInterface.php | +| MonkeyKing | MonkeyKingServiceInterface.php | +| NextSpin | NextSpinServiceInterface.php | +| BigGaming | BigGamingServiceInterface.php | +| CS | CSServiceInterface.php | + +统一接口方法:`createPlayer()`、`getPlayer()`、`getSimpleGameList()`、`login()` + +--- + +## 四、API 接口清单 + +### 4.1 玩家端 API(`/api/v1`) + +> 请求方式:全部为 **POST** +> 中间件:`SiteAuthMiddleware`(需要 `Site-Id` 请求头)、`Lang`(多语言)、`AppVersionMiddleware`(版本校验) + +#### 4.1.1 认证与用户 + +| 接口路径 | 控制器方法 | 功能说明 | +|----------|-----------|----------| +| `/api/v1/phone-register` | PlayerController@phoneRegister | 手机号注册 | +| `/api/v1/send-msg` | PlayerController@sendMsg | 发送短信验证码 | +| `/api/v1/login` | PlayerController@login | 玩家登录 | +| `/api/v1/logout` | IndexController@logout | 玩家登出 | +| `/api/v1/forget-password` | PlayerController@forgetPassword | 忘记密码 | +| `/api/v1/player-info` | PlayerController@playerInfo | 获取玩家信息 | +| `/api/v1/edit-player-name` | PlayerController@editPlayerName | 编辑玩家昵称 | + +#### 4.1.2 银行卡管理 + +| 接口路径 | 控制器方法 | 功能说明 | +|----------|-----------|----------| +| `/api/v1/bank-list` | IndexController@bankList | 获取银行列表 | +| `/api/v1/bank-card-list` | IndexController@bankCardList | 获取用户银行卡列表 | +| `/api/v1/add-bank-card` | IndexController@addBankCard | 添加银行卡 | +| `/api/v1/edit-bank-card` | IndexController@editBankCard | 修改银行卡 | +| `/api/v1/delete-bank-card` | IndexController@deleteBankCard | 删除银行卡 | + +#### 4.1.3 充值相关 + +| 接口路径 | 控制器方法 | 功能说明 | +|----------|-----------|----------| +| `/api/v1/recharge-list` | PlayerController@rechargeList | 获取充值列表 | +| `/api/v1/recharge-setting-list` | PlayerController@rechargeSettingList | 获取充值项配置列表 | +| `/api/v1/recharge-info` | PlayerController@rechargeInfo | 获取充值配置详情 | +| `/api/v1/player-recharge` | IndexController@playerRecharge | 玩家充值 | +| `/api/v1/upload-certificate` | IndexController@uploadCertificate | 上传充值凭证 | +| `/api/v1/complete-recharge` | PlayerController@completeRecharge | 完成充值 | +| `/api/v1/se-recharge-list` | PlayerController@seRechargeList | SePay充值列表 | +| `/api/v1/se-recharge` | PlayerController@seRecharge | SePay充值 | + +#### 4.1.4 提现相关 + +| 接口路径 | 控制器方法 | 功能说明 | +|----------|-----------|----------| +| `/api/v1/withdrawal` | IndexController@playerWithdrawal | 玩家提现 | +| `/api/v1/se-withdrawal` | PlayerController@seWithdrawal | SePay提现 | + +#### 4.1.5 账单与记录 + +| 接口路径 | 控制器方法 | 功能说明 | +|----------|-----------|----------| +| `/api/v1/cash-out-list` | IndexController@cashOutList | Cash Out 列表 | +| `/api/v1/cash-in-list` | IndexController@cashInList | Cash In 列表 | +| `/api/v1/game-record` | PlayerController@gameRecord | 游戏记录 | +| `/api/v1/deposit-withdrawal-records` | PlayerController@depositWithdrawalRecord | 充提记录 | + +#### 4.1.6 游戏相关 + +| 接口路径 | 控制器方法 | 功能说明 | +|----------|-----------|----------| +| `/api/v1/login-game` | GameController@loginGame | 登录游戏(返回游戏地址)| +| `/api/v1/gametest` | GameController@gametest | 游戏测试接口 | + +#### 4.1.7 抽奖系统 + +| 接口路径 | 控制器方法 | 功能说明 | +|----------|-----------|----------| +| `/api/v1/prize-list` | GameController@getPrizeList | 获取奖品列表 | +| `/api/v1/lottery` | GameController@lottery | 执行抽奖 | +| `/api/v1/draw-records` | GameController@getDrawRecords | 获取抽奖记录 | + +#### 4.1.8 其他 + +| 接口路径 | 控制器方法 | 功能说明 | +|----------|-----------|----------| +| `/api/v1/get-app-update` | VersionController@getAppUpdate | 获取APP版本更新信息 | +| `/api/v1/channel-info` | IndexController@channelInfo | 获取渠道信息 | +| `/api/v1/gift-center` | PlayerController@giftCenter | 数据中心/礼品中心 | + +--- + +### 4.2 外部回调接口(`/external`) + +| 接口路径 | 请求方式 | 控制器方法 | 功能说明 | +|----------|---------|-----------|----------| +| `/external/login` | GET | ExternalApiController@login | 外部登录页面 | +| `/external/download` | GET | ExternalApiController@download | 外部下载页面 | +| `/external/skl-recharge-notify` | POST | ExternalApiController@sklRechargeNotify | SKL支付充值回调 | +| `/external/skl-withdrawal-notify` | POST | ExternalApiController@sklWithdrawalNotify | SKL支付提现回调 | +| `/external/skl-query/` | GET | ExternalApiController@sklQuery | SKL支付跳转查询 | + +--- + +### 4.3 后台管理接口 + +后台基于 ExAdmin 自动生成 CRUD 路由,默认路径前缀为 `/admin` 和 `/agent`。 + +#### 主要管理模块 + +| 模块 | 控制器 | 主要功能 | +|------|--------|----------| +| 管理员 | AdminController | 管理员列表、修改密码、编辑信息、重置密码 | +| 仪表盘 | IndexController | 登录/玩家/充值/提现数据统计、图表 | +| 玩家管理 | PlayerController | 玩家CRUD、等级/标签、人工充提、钱包、记录查询 | +| 游戏管理 | GameController | 游戏CRUD、进入游戏、奖品管理、服务配置 | +| 充值记录 | RechargeRecordController | 充值记录查询、玩家详情 | +| 提现记录 | WithdrawRecordController | 提现记录查询、玩家详情 | +| 菜单管理 | MenuController | 菜单CRUD | +| 角色管理 | RoleController | 角色CRUD、权限分配 | +| 部门管理 | DepartmentController | 部门CRUD | +| 岗位管理 | PostController | 岗位CRUD | +| 系统设置 | SystemSettingController | 系统配置、结算日期 | +| 货币管理 | CurrencyController | 货币CRUD | +| APP版本 | AppVersionController | Android/iOS版本管理 | +| 附件管理 | AttachmentController | 文件上传、分类 | +| 游戏记录 | PlayGameRecordController | 游戏记录查询 | +| 配送记录 | PlayerDeliveryRecordController | 配送记录查询 | + +#### 渠道端管理模块(`/agent`) + +| 模块 | 控制器 | 主要功能 | +|------|--------|----------| +| 渠道仪表盘 | ChannelIndexController | 渠道数据统计 | +| 渠道玩家 | ChannelPlayerController | 玩家管理、推广员绑定 | +| 渠道管理 | ChannelController | 渠道CRUD | +| 渠道管理员 | ChannelAdminController | 渠道管理员CRUD | +| 渠道充值记录 | ChannelRechargeRecordController | 充值审核(通过/拒绝)、凭证查看 | +| 渠道充值配置 | ChannelRechargeController | 充值方式、快捷支付配置 | +| 渠道提现记录 | ChannelWithdrawRecordController | 提现审核、付款处理 | +| 渠道游戏 | ChannelGameController | 游戏管理 | +| 渠道岗位 | ChannelPostController | 岗位管理 | +| 渠道游戏记录 | ChannelPlayGameRecordController | 游戏记录 | +| 渠道配送记录 | ChannelPlayerDeliveryRecordController | 配送记录 | + +--- + +## 五、中间件 + +### 5.1 应用中间件(API 请求) + +| 中间件 | 作用 | +|--------|------| +| SiteAuthMiddleware | 站点/渠道验证,通过 `Site-Id` 请求头识别渠道 | +| Lang | 多语言处理 | +| AppVersionMiddleware | APP 版本校验 | + +### 5.2 后台中间件 + +| 中间件 | 作用 | +|--------|------| +| AuthMiddleware | 后台管理员登录鉴权 | +| Permission | 角色权限校验 | +| LoadLangPack | 语言包加载 | +| RequestMiddleware | 请求预处理 | + +--- + +## 六、数据模型 + +### 6.1 玩家相关 + +| 模型 | 说明 | +|------|------| +| Player | 玩家基础信息 | +| PlayerExtend | 玩家扩展信息 | +| PlayerBank | 玩家银行卡 | +| PlayerRechargeRecord | 充值记录 | +| PlayerWithdrawRecord | 提现记录 | +| PlayerDeliveryRecord | 配送记录 | +| PlayerLoginRecord | 登录记录 | +| PlayerRegisterRecord | 注册记录 | +| PlayerEditLog | 编辑日志 | +| PlayerTag | 玩家标签 | +| PlayerLevel | 玩家等级 | +| PlayerPromoter | 推广员 | +| PlayerGamePlatform | 玩家游戏平台关联 | +| PlayerGameRecord | 游戏记录 | +| PlayerLotteryRecord | 抽奖记录 | +| PlayerChipRecord | 筹码记录 | +| PlayerBankruptcyRecord | 破产记录 | +| PlayerPlatformCash | 平台现金 | +| PlayerMoneyEditLog | 资金变动日志 | +| PlayerWalletTransfer | 钱包转账 | + +### 6.2 渠道相关 + +| 模型 | 说明 | +|------|------| +| Channel | 渠道 | +| ChannelRechargeMethod | 渠道充值方式 | +| ChannelRechargeMethodLang | 充值方式多语言 | +| ChannelRechargeSetting | 渠道充值配置 | +| ChannelFinancialRecord | 渠道财务记录 | + +### 6.3 管理后台相关 + +| 模型 | 说明 | +|------|------| +| AdminUser | 管理员用户 | +| AdminRole | 管理角色 | +| AdminMenu | 管理菜单 | +| AdminConfig | 管理配置 | +| AdminDepartment | 部门 | +| AdminPost | 岗位 | +| AdminFileAttachment | 文件附件 | + +### 6.4 业务相关 + +| 模型 | 说明 | +|------|------| +| Game | 游戏 | +| GamePlatform | 游戏平台 | +| GameType | 游戏类型 | +| Currency | 货币 | +| BankList | 银行列表 | +| Prize | 奖品 | +| DrawRecord | 抽奖记录 | +| Notice / Announcement | 公告/通知 | +| Activity / ActivityContent | 活动 | +| SepayRecharge | SePay充值记录 | +| Qrcode / QrcodeBatch / QrcodeOwner | 二维码管理 | +| PromoterProfitRecord | 推广员利润记录 | +| CommissionRecord | 佣金记录 | +| Broadcast | 广播消息 | +| AppVersion | APP版本 | +| SystemSetting | 系统设置 | +| ExternalApp | 外部应用 | +| ApiErrorLog | API 错误日志 | +| PhoneSmsLog | 短信日志 | + +--- + +## 七、技术架构 + +### 7.1 核心依赖 + +| 依赖包 | 版本 | 用途 | +|--------|------|------| +| workerman/webman-framework | ^1.5.0 | Web 框架核心 | +| illuminate/database | ^8.83 | Eloquent ORM | +| rockys/ex-admin-webman | ^1.0 | 后台管理系统 | +| tinywan/jwt | ^1.6 | JWT 鉴权 | +| webman/push | ^1.0 | WebSocket 推送 | +| webman/redis-queue | ^1.2 | Redis 消息队列 | +| workerman/crontab | ^1.0 | 定时任务 | +| symfony/translation | ^5.4 | 多语言翻译 | +| gitfei1231/webman-api-sign | ^0.0.21 | API 签名验证 | +| facebook/graph-sdk | ^5.1 | Facebook 集成 | +| endroid/qr-code | ^4.6 | 二维码生成 | +| robmorgan/phinx | ^0.14.0 | 数据库迁移 | +| yzh52521/webman-lock | ^1.0 | 分布式锁 | + +### 7.2 队列消费者 + +| 消费者 | 队列名 | 功能 | +|--------|--------|------| +| SendBroadcasts | broadcast_tasks | 广播消息发送 | +| CancelRecharge | - | 取消充值处理 | + +### 7.3 多语言支持 + +- 简体中文 (zh_CN) +- 英语 (en) +- 马来语 (Ma_my) +- 柬埔寨语 (cam_dia) + +### 7.4 存储 + +| 组件 | 配置 | +|------|------| +| MySQL | 默认数据库,utf8mb4 编码 | +| Redis | 127.0.0.1:6379,DB 1 | +| Redis Queue | 8 个消费进程,最大重试 5 次 | + +--- + +## 八、异常处理 + +| 异常类 | 说明 | +|--------|------| +| ApiHandler | API 统一异常处理 | +| GameException | 游戏相关异常 | +| PlayerCheckException | 玩家校验异常 | +| PromoterCheckException | 推广员校验异常 | + +--- + +## 九、支付服务 + +| 服务类 | 说明 | +|--------|------| +| SklPayServices | SKL 支付服务(充值/提现)| +| OnePayServices | OnePay 支付服务 | +| SePayServices | SePay 支付服务 | +| DrawService | 抽奖服务 | + +--- + +## 十、部署与运行 + +```bash +# Linux 启动 +php start.php start + +# Linux 守护进程 +php start.php start -d + +# Windows 启动 +php windows.php + +# 停止 +php start.php stop + +# 重启 +php start.php restart +``` + +默认监听地址:`http://0.0.0.0:8786` diff --git a/README.md b/README.md new file mode 100644 index 0000000..34c8bd4 --- /dev/null +++ b/README.md @@ -0,0 +1,20 @@ +# webman + +High performance HTTP Service Framework for PHP based on [Workerman](https://github.com/walkor/workerman). + +# Manual (文档) + +https://www.workerman.net/doc/webman + +# Home page (主页) +https://www.workerman.net/webman + + +# Benchmarks (压测) + +https://www.techempower.com/benchmarks/#section=test&runid=9716e3cd-9e53-433c-b6c5-d2c48c9593c1&hw=ph&test=db&l=zg24n3-1r&a=2 +![image](https://user-images.githubusercontent.com/6073368/96447814-120fc980-1245-11eb-938d-6ea408716c72.png) + +## LICENSE + +MIT diff --git a/addons/IDE.php b/addons/IDE.php new file mode 100644 index 0000000..733324b --- /dev/null +++ b/addons/IDE.php @@ -0,0 +1,17 @@ +hasMethod($method)) { + $method = $constructor->getMethod($method); + if ($constructor->name == $method->class) { + return true; + } + } + return false; + } + + /** + * 权限节点 + * @return \ExAdmin\ui\auth\Node + */ + public static function node() + { + return \ExAdmin\ui\support\Container::getInstance()->node; + } + + /** + * 权限 + * @return array + */ + public static function permission() + { + $permissionKey = 'ADMIN_PERMISSIONS_' . Admin::id(); + $adminPermissions = Cache::get($permissionKey); + if(empty($adminPermissions)){ + $adminPermissions = Admin::user()->permission->pluck('node_id')->toArray(); + Cache::set($permissionKey, $adminPermissions); + } + return $adminPermissions; + } + + /** + * 角色 + * @return array + */ + public static function role() + { + return Admin::user()->roles->pluck('id')->toArray(); + } + + /** + * 用户 + * @return mixed + */ + public static function user() + { + + return Token::user(); + } + + /** + * 用户id + * @return int|string|null + */ + public static function id() + { + return Token::id(); + } + + public static function check($class, $function, $method) + { + $node = Admin::node()->all(); + $node = array_column($node, 'id'); + $actions[] = str_replace('-', '\\', $class) . '\\' . $function; + $actions[] = str_replace('-', '\\', $class) . '\\' . $function . '-' . strtolower($method); + foreach ($actions as $action) { + if (in_array($action, $node)) { + if (Admin::id() == plugin()->webman->config('admin_auth_id')) { + return true; + } + if (!in_array($action, Admin::permission())) { + return false; + } + } + } + return true; + } + + public static function getDispatch() + { + $class = null; + $function = null; + if (request()->route->getPath() == '/ex-admin/{class}/{function}') { + $class = request()->route->param('class'); + $function = request()->route->param('function'); + } + return [$class, $function]; + } + + /** + * 上传初始化配置 + */ + public static function uploadInit() + { + $uploadDiskConfig = function ($disk) { + $config = config("plugin.rockys.ex-admin-webman.filesystems.disks.$disk"); + //上传初始化 + $uploadConfig['driver'] = 'local'; + $adapter = Filesystem::disk($disk)->getAdapter(); + if ($config['driver'] == QiniuAdapter::class) { + $uploadConfig['domain'] = $config['domain']; + $uploadConfig['uploadToken'] = $adapter->getUploadToken(null, 3600 * 3); + $uploadConfig['driver'] = 'qiniu'; + } elseif ($config['driver'] == OssAdapter::class) { + $adapter->setCdnUrl($config['domain']); + $uploadConfig['domain'] = $config['domain']; + $uploadConfig['accessKey'] = $config['access_key']; + $uploadConfig['secretKey'] = $config['secret_key']; + $uploadConfig['region'] = $config['region']; + $uploadConfig['bucket'] = $config['bucket']; + $uploadConfig['driver'] = 'oss'; + } + return $uploadConfig; + + }; + $uploadDisk = function ($disk) use ($uploadDiskConfig) { + $uploadConfig = $uploadDiskConfig($disk); + foreach ($uploadConfig as $key => $value) { + $this->$key($value); + } + $this->attr('disk', $disk); + return $this; + }; + Image::addMethod('disk', $uploadDisk); + File::addMethod('disk', $uploadDisk); + Editor::addMethod('disk', function ($disk) use ($uploadDiskConfig) { + $uploadConfig = $uploadDiskConfig($disk); + $uploadConfig['disk'] = $disk; + $this->upload($uploadConfig + ['progress' => true]); + }); + + $finder = function ($upload, $type = '') { + $grid = Container::getInstance() + ->make(\ExAdmin\ui\Route::class) + ->invokeMethod(AttachmentController::class, 'index', [ + 'size' => $upload->attr('fileSize'), + 'ext' => $upload->attr('ext'), + 'type' => $type, + 'customStyle' => null + ] + ); + $grid->selectionField('url'); + $grid->params(['selectionField' => 'url']); + $attrs = $upload->getAttrs(); + unset($attrs['progress'], $attrs['onlyShow'], $attrs['type']); + $grid->attr('tools')[0]->attrs($attrs); + $upload->attr('finder', $grid); + }; + Image::beforeEnd(function ($image) use ($finder) { + $finder($image, 'image'); + }); + File::beforeEnd(function ($file) use ($finder) { + $finder($file); + }); + } +} diff --git a/addons/webman/ServiceProvider.php b/addons/webman/ServiceProvider.php new file mode 100644 index 0000000..79440cc --- /dev/null +++ b/addons/webman/ServiceProvider.php @@ -0,0 +1,92 @@ +config(),'admin'); + admin_config($this->config('ui'),'ui'); + } + + public function route(){ + Route::group('/agent', function () { + Route::get('', function () { + $content = file_get_contents(public_path('exadmin') . '/index.html'); + return str_replace( + [ + '{{Ex-Admin}}', + '{{Ex-Admin-App-Name}}', + ], + [ + admin_sysconf('web_name'), + 'agent', + ], + $content); + }); + }); + Route::group(plugin()->webman->config('route.prefix'), function () { + Route::get('', function () { + $content = file_get_contents(public_path('exadmin') . '/index.html'); + return str_replace( + [ + '{{Ex-Admin}}', + '{{Ex-Admin-App-Name}}', + ], + [ + admin_sysconf('web_name'), + plugin()->webman->config('route.prefix'), + ], + $content); + }); + }); + Route::any('/ex-admin/{class}/{function}', function ($class, $function) { + return \ExAdmin\ui\Route::dispatch($class, $function); + })->middleware(plugin()->webman->config('route.middleware')); + } + + /** + * 安装 + * @return mixed + */ + public function install() + { + $sql = file_get_contents($this->getPath().'/database/webman.sql'); + Db::unprepared($sql); + } + /** + * 更新 + * @param string $old_version 旧版本 + * @param string $version 更新版本 + * @return mixed + */ + public function update(string $old_version,string $version) + { + + } + /** + * 卸载 + * @return mixed + */ + public function uninstall() + { + + // TODO: Implement uninstall() method. + } +} diff --git a/addons/webman/common/Login.php b/addons/webman/common/Login.php new file mode 100644 index 0000000..5866665 --- /dev/null +++ b/addons/webman/common/Login.php @@ -0,0 +1,126 @@ +header('App-Name') == 'agent' ? 'agent.vue' : 'login.vue'; + return admin_view(plugin()->webman->getPath(). '/views/' . $view)->attrs([ + 'webLogo' => admin_sysconf('web_logo'), + 'webName' => admin_sysconf('web_name'), + 'webMiitbeian' => admin_sysconf('web_miitbeian'), + 'webCopyright' => admin_sysconf('web_copyright'), + 'deBug' => env('APP_DEBUG'), + 'agent_login' => admin_trans('login.agent_login'), + 'admin_login' => admin_trans('login.admin_login'), + 'enter_account' => admin_trans('login.enter_account'), + 'enter_password' => admin_trans('login.enter_password'), + 'enter_verify' => admin_trans('login.enter_verify'), + 'login' => admin_trans('login.login'), + 'password_verify' => admin_trans('login.password_verify'), + ]); + } + + /** + * 登陆页 + * @return Component + */ + public function agent(): Component + { + return admin_view(plugin()->webman->getPath(). '/views/agent.vue')->attrs([ + 'webLogo' => admin_sysconf('web_logo'), + 'webName' => admin_sysconf('web_name'), + 'webMiitbeian' => admin_sysconf('web_miitbeian'), + 'webCopyright' => admin_sysconf('web_copyright'), + 'deBug' => env('APP_DEBUG'), + 'agent_login' => admin_trans('login.agent_login'), + 'admin_login' => admin_trans('login.admin_login'), + 'enter_account' => admin_trans('login.enter_account'), + 'enter_password' => admin_trans('login.enter_password'), + 'enter_verify' => admin_trans('login.enter_verify'), + 'login' => admin_trans('login.login'), + 'password_verify' => admin_trans('login.password_verify'), + ]); + } + + /** + * 登录验证 + * @param array $data 提交数据 + * @return Message + */ + public function check(array $data): Message + { + $validator = validator($data, [ + 'username' => 'required', + 'source' => 'required', + 'password' => 'required|min:5' + ], [ + 'username.required' => admin_trans('login.account_not_empty'), + 'password.required' => admin_trans('login.password_not_empty'), + 'source.required' => admin_trans('login.source_not_empty'), + 'password.min' => admin_trans('login.password_min_length'), + ]); + if ($validator->fails()) { + return message_error($validator->errors()->first()); + } + $cacheKey = request()->getRealIp() . date('Y-m-d'); + $errorNum = Cache::get($cacheKey); + if ($errorNum > 3 && !Container::getInstance()->captcha->check($data['verify'], $data['hash'])) { + return message_error(admin_trans('login.captcha_error')); + } + $model = plugin()->webman->config('database.user_model'); + $type = AdminDepartment::TYPE_DEPARTMENT; + if ($data['source'] == 'agent') { + $type = AdminDepartment::TYPE_CHANNEL; + } + $user = $model::where('username', $data['username'])->where('type', $type)->first(); + if (!$user || !password_verify($data['password'], $user->password)) { + Cache::set($cacheKey, $errorNum + 1); + return message_error(admin_trans('login.error')); + } + return message_success(admin_trans('login.success'))->data([ + 'token' => Token::encode($user->toArray()), + ]); + } + /** + * 获取验证码 + * @return Response + */ + public function captcha(): Response + { + $cacheKey = request()->getRealIp() . date('Y-m-d'); + $errorNum = Cache::get($cacheKey); + $captcha = Container::getInstance()->captcha->create(); + $captcha['verification'] = $errorNum > 3; + return Response::success($captcha); + } + /** + * 退出登录 + * @return Message + */ + public function logout(): Message + { + Token::logout(); + $permissionKey = 'ADMIN_PERMISSIONS_' . Admin::id(); + Cache::delete($permissionKey); + return message_success(admin_trans('login.logout')); + } +} diff --git a/addons/webman/common/System.php b/addons/webman/common/System.php new file mode 100644 index 0000000..ee5abac --- /dev/null +++ b/addons/webman/common/System.php @@ -0,0 +1,216 @@ +webman->config('route.prefix'); + } + + /** + * 头部导航右侧 + * @return array + */ + public function navbarRight(): array + { + $ws = env('WS_URL', ''); + return [ + admin_view(plugin()->webman->getPath() . '/views/socket.vue')->attrs([ + 'id' => Admin::id(), + 'type' => Admin::user()->type == 1 ? 'admin' : 'channel', + 'department_id' => Admin::user()->department_id, + 'count' => 0, + 'lang' => Container::getInstance()->translator->getLocale(), + 'ws' => $ws, + 'title' => admin_trans('admin.system_messages'), + 'examine_withdraw' => Admin::check(ChannelWithdrawRecordController::class, 'reject', '') || Admin::check(ChannelWithdrawRecordController::class, 'pass', ''), + 'examine_recharge' => Admin::check(ChannelRechargeRecordController::class, 'reject', '') || Admin::check(ChannelRechargeRecordController::class, 'pass', ''), + ]) + ]; + } + + /** + * 头部点击用户信息下拉菜单 + * @return array + */ + public function adminDropdown(): array + { + return [ + MenuItem::create()->content(admin_trans('admin.user_info')) + ->modal([AdminController::class, 'editInfo'], ['id' => Admin::id()]), + MenuItem::create()->content(admin_trans('admin.update_password')) + ->modal([AdminController::class, 'updatePassword'], ['id' => Admin::id()]), + ]; + } + + /** + * 用户信息 + * @return array + * @throws HttpResponseException + */ + public function userInfo(): array + { + try { + Token::auth(); + } catch (AuthException $exception) { + throw new HttpResponseException( + response( + json_encode(['message' => $exception->getMessage(), 'code' => $exception->getCode()]), + 401, + ['Content-Type' => 'application/json']) + ); + } + return Admin::user() + ->setVisible(['id', 'nickname', 'avatar']) + ->toArray(); + } + + /** + * 菜单 + * @return array + */ + public function menu(): array + { + return Arr::tree(admin_menu()->all()); + } + + /** + * 上传写入数据库 + * @param $data 上传入库数据 + * @return Response + */ + public function upload($data): Response + { + $model = plugin()->webman->config('database.attachment_model'); + $model::firstOrCreate($data, [ + 'uploader_id' => Admin::id(), + ]); + return Response::success(); + } + + + /** + * 验证权限 + * @param $class 类名 + * @param $function 方法 + * @param $method 请求method + * @return bool + */ + public function checkPermissions($class, $function, $method): bool + { + return Admin::check($class, $function, $method); + } + + /** + * 获取新的消息 + * @param $page + * @param $size + * @return Response + */ + public function noticeList($page, $size): Response + { + $typeArr = []; + if (Admin::check(ChannelWithdrawRecordController::class, 'reject', '') || Admin::check(ChannelWithdrawRecordController::class, 'pass', '')) { + $typeArr[] = Notice::TYPE_EXAMINE_WITHDRAW; + } + if (Admin::check(ChannelRechargeRecordController::class, 'reject', '') || Admin::check(ChannelRechargeRecordController::class, 'pass', '')) { + $typeArr[] = Notice::TYPE_EXAMINE_RECHARGE; + } + $list = []; + if (Admin::user()->type == AdminDepartment::TYPE_DEPARTMENT && !empty($typeArr)) { + $list = Notice::where('receiver', Notice::RECEIVER_ADMIN)->whereIN('type', $typeArr) + ->latest() + ->forPage($page, $size) + ->get(); + } + if (Admin::user()->type == AdminDepartment::TYPE_CHANNEL && !empty($typeArr)) { + $list = Notice::where('receiver', Notice::RECEIVER_DEPARTMENT)->whereIN('type', $typeArr) + ->latest() + ->forPage($page, $size) + ->get(); + } + $data = []; + /** @var Notice $item */ + foreach ($list as $item) { + $title = admin_trans('notice.title.' . $item->type); + $createTime = date('Y-m-d H:i:s', strtotime($item->created_at)); + switch ($item->type) { + case Notice::TYPE_EXAMINE_RECHARGE: + /** @var PlayerRechargeRecord $playerRechargeRecord */ + $playerRechargeRecord = PlayerRechargeRecord::find($item->source_id); + $content = admin_trans('notice.content.' . $item->type, '', ['{player_name}' => !empty($playerRechargeRecord->player_name) ? $playerRechargeRecord->player_name : '', '{coins}' => $playerRechargeRecord->coins, '{money}' => $playerRechargeRecord->money]); + $data[] = [ + 'id' => $item->id, + 'source_id' => $item->source_id, + 'title' => $title, + 'content' => $content, + 'type' => $item->type, + 'created_at' => $createTime, + 'status' => $playerRechargeRecord->status == PlayerRechargeRecord::STATUS_RECHARGING, + 'url' => admin_url([ChannelRechargeRecordController::class, 'examineList']) + ]; + break; + case Notice::TYPE_EXAMINE_WITHDRAW: + /** @var PlayerWithdrawRecord $playerWithdrawRecord */ + $playerWithdrawRecord = PlayerWithdrawRecord::find($item->source_id); + $content = admin_trans('notice.content.' . $item->type, '', ['{player_name}' => !empty($playerWithdrawRecord->player_name) ? $playerWithdrawRecord->player_name : $playerWithdrawRecord->player_phone, '{coins}' => $playerWithdrawRecord->coins, '{money}' => $playerWithdrawRecord->money]); + $data[] = [ + 'id' => $item->id, + 'source_id' => $item->source_id, + 'title' => $title, + 'content' => $content, + 'type' => $item->type, + 'created_at' => $createTime, + 'status' => $playerWithdrawRecord->status == PlayerWithdrawRecord::STATUS_WAIT, + 'url' => admin_url([ChannelWithdrawRecordController::class, 'examineList']) + ]; + break; + } + } + return Response::success($data); + } +} diff --git a/addons/webman/config.php b/addons/webman/config.php new file mode 100644 index 0000000..bc68dfd --- /dev/null +++ b/addons/webman/config.php @@ -0,0 +1,344 @@ + [ + 'driver' => \addons\webman\token\driver\Cache::class, + //密钥 + 'key' => 'QoYEClMJsgOSWUBkSCq26yWkApqSuH3', + //token有效时长 + 'expire' => null, + //唯一登录 + 'unique' => true, + //验证字段 + 'auth_field' => ['password'], + + 'model' => addons\webman\model\AdminUser::class, + ], + //超级管理员id + 'admin_auth_id' => 1, + + 'request_interface' => [ + //ExAdmin\ui\contract\LoginAbstract + 'login' => addons\webman\common\Login::class, + //ExAdmin\ui\contract\SystemAbstract + 'system' => addons\webman\common\System::class, + ], + 'grid' => [ + //ExAdmin\ui\Manager + 'manager' => addons\webman\grid\GridManager::class, + ], + 'form' => [ + //ExAdmin\ui\Manager + 'manager' => addons\webman\form\FormManager::class, + //ExAdmin\ui\contract\ValidatorAbstract + 'validator' => addons\webman\form\Validator::class, + //ExAdmin\ui\contract\UploaderAbstract + 'uploader' => addons\webman\form\Uploader::class, + ], + 'echart' => [ + //ExAdmin\ui\Manager + 'manager' => \addons\webman\echart\EchartManager::class, + ], + 'route' => [ + //路由前缀 + 'prefix' => env('ADMIN_ROUTE_PREFIX', '/admin'), + //中间件 + 'middleware' => [ + AuthMiddleware::class, + LoadLangPack::class, + Permission::class, + ], + ], + //菜单 + 'menu' => \addons\webman\service\Menu::class, + + //上传配置 + 'upload' => [ + //config/filesystems.php + 'disk' => 'local', + //保存目录 + 'directory' => [ + 'image' => 'images', + 'file' => 'files', + ], + //禁止上传后缀 + 'disabled_ext' => ['php'] + ], + //扫描权限目录 + 'auth_scan' => [ + __DIR__ . '/controller', + app_path("admin/controller") + ], + 'database' => [ + //用户表 + 'user_table' => 'admin_users', + 'user_model' => addons\webman\model\AdminUser::class, + //菜单表 + 'menu_table' => 'admin_menus', + 'menu_model' => addons\webman\model\AdminMenu::class, + //角色表 + 'role_table' => 'admin_roles', + 'role_model' => addons\webman\model\AdminRole::class, + //角色权限关联表 + 'role_permission_table' => 'admin_role_permissions', + 'role_permission_model' => addons\webman\model\AdminRolePermission::class, + //角色菜单关联表 + 'role_menu_table' => 'admin_role_menus', + 'role_menu_model' => addons\webman\model\AdminRoleMenu::class, + //角色用户关联表 + 'role_user_table' => 'admin_role_users', + 'role_user_model' => addons\webman\model\AdminRoleUsers::class, + //系统配置表 + 'config_table' => 'admin_configs', + 'config_model' => addons\webman\model\AdminConfig::class, + //系统附件分类表 + 'attachment_cate_table' => 'admin_file_attachment_cates', + 'attachment_cate_model' => addons\webman\model\AdminFileAttachmentCate::class, + //系统附件表 + 'attachment_table' => 'admin_file_attachments', + 'attachment_model' => addons\webman\model\AdminFileAttachment::class, + //部门表 + 'department_table' => 'admin_department', + 'department_model' => addons\webman\model\AdminDepartment::class, + //岗位表 + 'post_table' => 'admin_post', + 'post_model' => addons\webman\model\AdminPost::class, + //角色数据权限部门关联表 + 'role_department_table' => 'admin_role_department', + 'role_department_model' => addons\webman\model\AdminRoleDepartment::class, + //玩家表 + 'player_table' => 'player', + 'player_model' => \addons\webman\model\Player::class, + //玩家扩展表 + 'player_extend_table' => 'player_extend', + 'player_extend_model' => \addons\webman\model\PlayerExtend::class, + //平台 + 'player_platform_cash_table' => 'player_platform_cash', + 'player_platform_cash_model' => \addons\webman\model\PlayerPlatformCash::class, + //机台API记录 + 'api_error_log_table' => 'api_error_log', + 'api_error_log_model' => \addons\webman\model\ApiErrorLog::class, + //轮播图管理 + 'slider_table' => 'slider', + 'slider_model' => \addons\webman\model\Slider::class, + //玩家钱包编辑记录 + 'player_money_edit_log_table' => 'player_money_edit_log', + 'player_money_edit_log_model' => \addons\webman\model\PlayerMoneyEditLog::class, + //玩家资金记录 + 'player_delivery_record_table' => 'player_delivery_record', + 'player_delivery_record_model' => \addons\webman\model\PlayerDeliveryRecord::class, + //玩家登录记录 + 'player_login_record_table' => 'player_login_record', + 'player_login_record_model' => \addons\webman\model\PlayerLoginRecord::class, + //玩家注册记录 + 'player_register_record_table' => 'player_register_record', + 'player_register_record_model' => \addons\webman\model\PlayerRegisterRecord::class, + //机台游戏日志 + 'system_setting_table' => 'system_setting', + 'system_setting_model' => \addons\webman\model\SystemSetting::class, + //短信记录 + 'phone_sms_log_table' => 'phone_sms_log', + 'phone_sms_log_model' => \addons\webman\model\PhoneSmsLog::class, + //玩家充值记录 + 'player_recharge_record_table' => 'player_recharge_record', + 'player_recharge_record_model' => \addons\webman\model\PlayerRechargeRecord::class, + //玩家标签 + 'player_tag_table' => 'player_tag', + 'player_tag_model' => \addons\webman\model\PlayerTag::class, + //公告 + 'announcement_table' => 'announcement', + 'announcement_model' => \addons\webman\model\Announcement::class, + //公告内容 + 'announcement_content_table' => 'announcement_content', + 'announcement_content_model' => \addons\webman\model\AnnouncementContent::class, + //玩家提现 + 'player_withdraw_record_table' => 'player_withdraw_record', + 'player_withdraw_record_model' => \addons\webman\model\PlayerWithdrawRecord::class, + //渠道 + 'channel_table' => 'channel', + 'channel_model' => \addons\webman\model\Channel::class, + //货币 + 'currency_table' => 'currency', + 'currency_model' => \addons\webman\model\Currency::class, + //渠道充值方式 + 'channel_recharge_method_table' => 'channel_recharge_method', + 'channel_recharge_method_model' => \addons\webman\model\ChannelRechargeMethod::class, + //渠道充值方式多语言 + 'channel_recharge_method_lang_table' => 'channel_recharge_method_lang', + 'channel_recharge_method_lang_model' => \addons\webman\model\ChannelRechargeMethodLang::class, + //渠道充值配置 + 'channel_recharge_setting_table' => 'channel_recharge_setting', + 'channel_recharge_setting_model' => \addons\webman\model\ChannelRechargeSetting::class, + //财务操作记录 + 'channel_financial_record_table' => 'channel_financial_record', + 'channel_financial_record_model' => \addons\webman\model\ChannelFinancialRecord::class, + //玩家银行卡 + 'player_bank_table' => 'player_bank', + 'player_bank_model' => \addons\webman\model\PlayerBank::class, + //玩家银行卡 + 'bank_list_table' => 'bank_list', + 'bank_list_model' => \addons\webman\model\BankList::class, + //外部应用 + 'external_app_table' => 'external_app', + 'external_app_model' => \addons\webman\model\ExternalApp::class, + //玩家信息修改日志 + 'player_edit_log_table' => 'player_edit_log', + 'player_edit_log_model' => \addons\webman\model\PlayerEditLog::class, + //消息 + 'notice_table' => 'notice', + 'notice_model' => \addons\webman\model\Notice::class, + //签到记录 + 'sign_ins_table' => 'sign_ins', + 'sign_ins_model' => \addons\webman\model\SignIns::class, + //活动 + 'activity_table' => 'activity', + 'activity_model' => \addons\webman\model\Activity::class, + //活动内容 + 'activity_content_table' => 'activity_content', + 'activity_content_model' => \addons\webman\model\ActivityContent::class, + //分润记录 + 'commission_record_table' => 'commission_record', + 'commission_record_model' => \addons\webman\model\CommissionRecord::class, + //玩家打碼量記錄 + 'player_chip_record_table' => 'player_chip_record', + 'player_chip_record_model' => \addons\webman\model\PlayerChipRecord::class, + //游戏平台 + 'game_platform_table' => 'game_platform', + 'game_platform_model' => \addons\webman\model\GamePlatform::class, + //游戏平台 + 'game_table' => 'game', + 'game_model' => \addons\webman\model\Game::class, + //玩家游戏平台账号 + 'player_game_platform_table' => 'player_game_platform', + 'player_game_platform_model' => \addons\webman\model\PlayerGamePlatform::class, + //玩家钱包转出/入记录 + 'player_wallet_transfer_table' => 'player_wallet_transfer', + 'player_wallet_transfer_model' => \addons\webman\model\PlayerWalletTransfer::class, + //玩家游戏记录 + 'play_game_record_table' => 'play_game_record', + 'play_game_record_model' => \addons\webman\model\PlayGameRecord::class, + //玩家破产记录 + 'player_bankruptcy_record_table' => 'player_bankruptcy_record', + 'player_bankruptcy_record_model' => \addons\webman\model\PlayerBankruptcyRecord::class, + //APP版本管理 + 'app_version_table' => 'app_version', + 'app_version_model' => \addons\webman\model\AppVersion::class, + //玩家等级 + 'player_level_table' => 'player_level', + 'player_level_model' => \addons\webman\model\PlayerLevel::class, + //推广员 + 'player_promoter_table' => 'player_promoter', + 'player_promoter_model' => \addons\webman\model\PlayerPromoter::class, + //推广员分润记录 + 'promoter_profit_record_table' => 'promoter_profit_record', + 'promoter_profit_record_model' => \addons\webman\model\PromoterProfitRecord::class, + //推广员分润结算记录 + 'promoter_profit_settlement_record_table' => 'promoter_profit_settlement_record', + 'promoter_profit_settlement_record_model' => \addons\webman\model\PromoterProfitSettlementRecord::class, + //玩家游戏局 + 'player_game_record_table' => 'player_game_record', + 'player_game_record_model' => \addons\webman\model\PlayerGameRecord::class, + //玩家派彩记录 + 'player_lottery_record_table' => 'player_lottery_record', + 'player_lottery_record_model' => \addons\webman\model\PlayerLotteryRecord::class, + //游戏类型 + 'game_type_table' => 'game_type', + //二维码 + 'qrcode_table' => 'qr_code', + 'qrcode_model' => \addons\webman\model\Qrcode::class, + 'qrcode_batch_table' => 'qr_code_batch', + 'qrcode_batch_model' => \addons\webman\model\QrcodeBatch::class, + 'qrcode_owner_table' => 'qr_code_owner', + 'qrcode_owner_model' => \addons\webman\model\QrcodeOwner::class, + //es支付 + 'sepay_recharge_table' => 'sepay_recharge_list', + 'sepay_recharge_model' => \addons\webman\model\SepayRecharge::class, + //奖品 + 'prize_table' => 'prizes', + 'prize_model' => \addons\webman\model\Prize::class, + //抽奖记录 + 'draw_records_table' => 'draw_records', + 'draw_records_model' => \addons\webman\model\DrawRecord::class, + ], + 'cache' => [ + //缓存目录 + 'directory' => runtime_path() + ], + //后台前端UI配置 + 'ui' => [ + //语言 + 'lang' => [ + // 默认语言 + 'default' => config('app.locale', 'zh-CN'), + //语言列表 + 'list' => [ + 'zh-CN' => '中文简体', + 'en' => 'English', + 'Ma-my' => 'Melayu', // 马来语(马来西亚) + ] + ], + //布局 headerSider顶部侧边 sider侧边 + 'layout' => 'headerSider', + //主题 light 暗黑dark + 'theme' => 'light', + //主题色 + 'theme_color' => '#1890ff', + //菜单主题 dark light + 'menu_theme' => 'light', + //导航模式 sideTopMenuLayout sideMenuLayout topMenuLayout + 'navigationMode' => 'sideTopMenuLayout', + //header背景色 + 'header_background' => '#1890ff', + //侧边栏 + 'sidebar' => [ + //选中色 + 'color' => '#1890ff', + //背景色 + 'background' => '#121929', + //宽度 + 'width' => 200, + //是否收起状态 + 'collapsed' => false, + //显示隐藏 + 'visible' => true, + //菜单并排数量 + 'menu_num' => 1 + ], + //多页标签 + 'tabs' => true, + //登录路由 + 'loginRoute' => '/ex-admin/login/index', + //公用渲染路由前缀 + 'commonRoutePrefix' => 'common/', + //后台渲染路由前缀 + 'adminRoutePrefix' => '', + ], + // 币种 + 'currency' => [ + 'CYN' => 'CYN', + 'TWD' => 'TWD', + 'USD' => 'USD', + 'JPY' => 'JPY', + 'RM' => 'RM', + ], + 'admin_node' => config('admin_node'), + 'channel_node' => config('channel_node'), + 'pay_type' => [ + '人工充值', + 'EsPay', + 'OnePay', + 'SKL99', + ], + 'game' => [ + 262 => '转盘', + 263 => '砸金蛋', + 264 => '盲盒', + 265 => '刮刮乐', + 266 => 'TURN', + 267 => '摇色子', + ] +]; diff --git a/addons/webman/controller/AdminController.php b/addons/webman/controller/AdminController.php new file mode 100644 index 0000000..4b56deb --- /dev/null +++ b/addons/webman/controller/AdminController.php @@ -0,0 +1,304 @@ +model = plugin()->webman->config('database.user_model'); + + } + + /** + * 系统用户 + * @auth true + */ + public function index(): Grid + { + return Grid::create(new $this->model, function (Grid $grid) { + $grid->title(admin_trans('admin.system_user')); + $grid->model() + ->when(plugin()->webman->config('admin_auth_id') != Admin::id(), function (Builder $builder) { + $builder->whereKeyNot(plugin()->webman->config('admin_auth_id')); + }); + $exAdminFilter = Request::input('ex_admin_filter', []); + if (isset($exAdminFilter['created_at_start']) && !empty($exAdminFilter['created_at_start'])) { + $grid->model()->where('created_at', '>=', $exAdminFilter['created_at_start']); + } + if (isset($exAdminFilter['created_at_end']) && !empty($exAdminFilter['created_at_end'])) { + $grid->model()->where('created_at', '<=', $exAdminFilter['created_at_end']); + } + $grid->autoHeight(); + $grid->userInfo(); + $grid->column('username', admin_trans('admin.fields.username'))->display(function ($val, $data) { + if ($data['id'] == plugin()->webman->config('admin_auth_id')) { + return Html::create() + ->content($val) + ->content( + Badge::create()->count(admin_trans('admin.super_admin'))->numberStyle(['backgroundColor' => '#1890ff', 'marginLeft' => '5px']) + ); + } else { + return $val; + } + })->copy(); + $grid->column('phone', admin_trans('admin.fields.phone')); + $grid->column('email', admin_trans('admin.fields.mail')); + $grid->column('status', admin_trans('admin.fields.status'))->switch(); + $grid->column('type', admin_trans('admin.fields.type')) + ->display(function ($value, AdminUser $data) { + $tag = ''; + switch ($value) { + case AdminDepartment::TYPE_DEPARTMENT: + $tag = Tag::create(admin_trans('department.type.' . AdminDepartment::TYPE_DEPARTMENT))->color('#108ee9'); + break; + case AdminDepartment::TYPE_CHANNEL: + $tag = Tag::create(admin_trans('department.type.' . AdminDepartment::TYPE_CHANNEL))->color('#f50'); + break; + } + if ($data->is_super == 1) { + $tag = Tag::create(admin_trans('admin.fields.is_super'))->color('#3b5999'); + } + return Html::create()->content([ + $tag, + ]); + })->sortable(); + $grid->column('created_at', admin_trans('admin.fields.create_at')); + $grid->quickSearch(); + $grid->hideDelete(); + $grid->setForm()->modal($this->form()); + $grid->filter(function (Filter $filter) { + $filter->like()->text('username')->placeholder(admin_trans('admin.fields.username')); + $filter->like()->text('phone')->placeholder(admin_trans('admin.fields.phone')); + $filter->eq()->select('status') + ->placeholder(admin_trans('admin.fields.status')) + ->showSearch() + ->style(['width' => '200px']) + ->dropdownMatchSelectWidth() + ->options([ + 1 => admin_trans('admin.normal'), + 0 => admin_trans('admin.disable') + ]); + $filter->form()->hidden('created_at_start'); + $filter->form()->hidden('created_at_end'); + $filter->form()->dateRange('created_at_start', 'created_at_end', '')->placeholder([admin_trans('public_msg.created_at_start'), admin_trans('public_msg.created_at_end')]); + }); + + $department_model = plugin()->webman->config('database.department_model'); + $departmentList = (new $department_model)::where('type', AdminDepartment::TYPE_DEPARTMENT) + ->orWhereHas('channel', function ($query) { + $query->whereNull('deleted_at'); + }) + ->get(); + $departmentTree = [ + ['id' => 'department', 'name' => admin_trans('admin.department_tree'), 'pid' => 0], + ['id' => 'channel', 'name' => admin_trans('admin.channel_tree'), 'pid' => 0], + ]; + /** @var AdminDepartment $value */ + foreach ($departmentList as $value) { + if ($value->type == AdminDepartment::TYPE_DEPARTMENT) { + $departmentTree[] = ['id' => $value->id, 'name' => $value->name, 'pid' => $value->pid == 0 ? 'department' : $value->pid]; + } + if ($value->type == AdminDepartment::TYPE_CHANNEL) { + $departmentTree[] = ['id' => $value->id, 'name' => $value->name, 'pid' => $value->pid == 0 ? 'channel' : $value->pid]; + } + } + $grid->sidebar('department_id', $departmentTree) + ->tree() + ->hideAdd() + ->hideDel() + ->searchPlaceholder(admin_trans('admin.search_department')); + + $grid->actions(function (Actions $actions, $data) { + if ($data['id'] == plugin()->webman->config('admin_auth_id')) { + $actions->hideDel(); + } + $actions->dropdown() + ->prepend(admin_trans('admin.reset_password'), 'fas fa-key') + ->modal($this->resetPassword($data['id'])); + + }); + + $grid->deling(function ($ids) { + if (is_array($ids) && in_array(plugin()->webman->config('admin_auth_id'), $ids)) { + return message_error(admin_trans('admin.super_admin_delete')); + } + }); + + $grid->updateing(function ($ids, $data) { + if (in_array(plugin()->webman->config('admin_auth_id'), $ids)) { + if (isset($data['status']) && $data['status'] == 0) { + return message_error(admin_trans('admin.super_admin_disabled')); + } + } + }); + }); + } + + /** + * 系统用户 + * @auth true + */ + public function form(): Form + { + return Form::create(new $this->model, function (Form $form) { + $form->title(admin_trans('admin.system_user')); + $form->text('username', admin_trans('admin.fields.username')) + ->ruleChsDash() + ->rule([ + (string)Rule::unique(plugin()->webman->config('database.user_model'))->ignore($form->input('id')) => admin_trans('admin.username_exist'), + ]) + ->required() + ->disabled($form->isEdit()); + $form->text('nickname', admin_trans('admin.fields.nickname')) + ->ruleChsAlphaNum() + ->required(); + $form->image('avatar', admin_trans('admin.fields.avatar')) + ->required(); + if (!$form->isEdit()) { + $form->password('password', admin_trans('admin.fields.password')) + ->default(123456) + ->help(admin_trans('admin.pass_help')) + ->required(); + } + $form->text('phone', admin_trans('admin.fields.phone')) + ->rule([ + (string)Rule::unique(plugin()->webman->config('database.user_model'))->ignore($form->input('id')) => admin_trans('admin.phone_exist'), + ]) + ->ruleMobile(); + $form->text('email', admin_trans('admin.fields.mail'))->ruleEmail(); + if ($form->input('id') != plugin()->webman->config('admin_auth_id')) { + $form->radio('type', admin_trans('admin.fields.type')) + ->default(AdminDepartment::TYPE_DEPARTMENT) + ->disabled($form->isEdit()) + ->options([ + AdminDepartment::TYPE_DEPARTMENT => admin_trans('department.type.' . AdminDepartment::TYPE_DEPARTMENT), + AdminDepartment::TYPE_CHANNEL => admin_trans('department.type.' . AdminDepartment::TYPE_CHANNEL) + ]) + ->when('==', AdminDepartment::TYPE_DEPARTMENT, function (Form $form) { + $roleModel = plugin()->webman->config('database.role_model'); + $role = $roleModel::where('type', AdminDepartment::TYPE_DEPARTMENT)->pluck('name', 'id')->toArray(); + $form->checkbox('roles', admin_trans('admin.access_rights')) + ->options($role); + + $department = plugin()->webman->config('database.department_model'); + $options = $department::where('status', 1)->where('type', AdminDepartment::TYPE_DEPARTMENT)->get()->toArray(); + $form->treeSelect('department_id', admin_trans('admin.department')) + ->required() + ->options($options); + + })->when('==', AdminDepartment::TYPE_CHANNEL, function (Form $form) { + $roleModel = plugin()->webman->config('database.role_model'); + $role = $roleModel::where('type', AdminDepartment::TYPE_CHANNEL)->pluck('name', 'id')->toArray(); + $form->checkbox('roles', admin_trans('admin.access_rights')) + ->options($role); + + $department = plugin()->webman->config('database.department_model'); + $options = $department::where('status', 1)->where('type', AdminDepartment::TYPE_CHANNEL)->whereHas('channel', function ($query) { + $query->whereNull('deleted_at'); + }) + ->get()->toArray(); + $form->treeSelect('department_id', admin_trans('admin.channel')) + ->required() + ->options($options); + }); + $department = plugin()->webman->config('database.post_model'); + $options = $department::where('status', 1)->pluck('name', 'id')->toArray(); + $form->select('post', admin_trans('admin.post')) + ->options($options) + ->multiple(); + } + }); + } + + /** + * 修改密码 + * @auth true + * @group all + * @return Form + */ + public function updatePassword(): Form + { + return Form::create(new $this->model, function (Form $form) { + $form->password('old_password', admin_trans('admin.old_password'))->required(); + $form->password('password', admin_trans('admin.new_password')) + ->rule([ + 'confirmed' => admin_trans('admin.password_confim_validate'), + 'min:6' => admin_trans('admin.password_min_number') + ]) + ->value('') + ->required(); + $form->password('password_confirmation', admin_trans('admin.confim_password')) + ->required(); + $form->saving(function (Form $form) { + if (!password_verify($form->input('old_password'), Admin::user()->password)) { + return message_error(admin_trans('admin.old_password_error')); + } + }); + }); + } + + /** + * 个人信息 + * @auth true + * @group all + * @return Form + */ + public function editInfo(): Form + { + return Form::create(new $this->model, function (Form $form) { + $form->text('username', admin_trans('admin.fields.username')) + ->ruleChsDash()->disabled(); + $form->text('nickname', admin_trans('admin.fields.nickname')) + ->ruleChsAlphaNum(); + $form->image('avatar', admin_trans('admin.fields.avatar')); + $form->text('phone', admin_trans('admin.fields.phone')) + ->rule([ + (string)Rule::unique(plugin()->webman->config('database.user_model'))->ignore($form->input('id')) => admin_trans('admin.phone_exist'), + ]) + ->ruleMobile(); + $form->text('email', admin_trans('admin.fields.mail'))->ruleEmail(); + }); + } + + /** + * 重置密码 + * @auth true + * @group all + * @param $id + * @return Form + */ + public function resetPassword($id): Form + { + return Form::create(new $this->model, function (Form $form) { + $form->password('password', admin_trans('admin.new_password')) + ->rule([ + 'confirmed' => admin_trans('admin.password_confim_validate'), + 'min:6' => admin_trans('admin.password_min_number') + ]) + ->value('') + ->required(); + $form->password('password_confirmation', admin_trans('admin.confim_password')) + ->required(); + }); + } +} diff --git a/addons/webman/controller/AppVersionController.php b/addons/webman/controller/AppVersionController.php new file mode 100644 index 0000000..ec1e313 --- /dev/null +++ b/addons/webman/controller/AppVersionController.php @@ -0,0 +1,274 @@ +model = plugin()->webman->config('database.app_version_model'); + + } + + /** + * 版本 + * @auth true + * @return Card + */ + public function index(): Card + { + return Card::create(Tabs::create() + ->pane(admin_trans('app_version.system_key.' . AppVersion::SYSTEM_KEY_ANDROID), $this->androidList()) + ->pane(admin_trans('app_version.system_key.' . AppVersion::SYSTEM_KEY_IOS), $this->iosList()) + ->type('card') + ->destroyInactiveTabPane() + ); + } + + /** + * 安装版本 + * @return Grid + */ + public function androidList(): Grid + { + return Grid::create(new $this->model(), function (Grid $grid) { + $grid->model()->where('system_key', AppVersion::SYSTEM_KEY_ANDROID)->orderBy('id', 'desc'); + $this->getList($grid, AppVersion::SYSTEM_KEY_ANDROID); + }); + } + + /** + * 苹果版本 + * @return Grid + */ + public function iosList(): Grid + { + return Grid::create(new $this->model(), function (Grid $grid) { + $grid->model()->where('system_key', AppVersion::SYSTEM_KEY_IOS)->orderBy('id', 'desc'); + $this->getList($grid, AppVersion::SYSTEM_KEY_IOS); + }); + } + + /** + * 版本列表 + * @param $grid + * @param $systemKey + */ + public function getList($grid, $systemKey) + { + $grid->title(admin_trans('app_version.title')); + $exAdminFilter = Request::input('ex_admin_filter', []); + if (isset($exAdminFilter['created_at_start']) && !empty($exAdminFilter['created_at_start'])) { + $grid->model()->whereDate('created_at', '>=', $exAdminFilter['created_at_start']); + } + if (isset($exAdminFilter['created_at_end']) && !empty($exAdminFilter['created_at_end'])) { + $grid->model()->whereDate('created_at', '<=', $exAdminFilter['created_at_end']); + } + $grid->autoHeight(); + $grid->bordered(true); + $grid->column('channel.name', admin_trans('channel.fields.name'))->align('center'); + $grid->column('system_key', admin_trans('app_version.fields.system_key'))->align('center'); + $grid->column('app_version', admin_trans('app_version.fields.app_version')); + $grid->column('app_version_key', admin_trans('app_version.fields.app_version_key'))->align('center'); + $grid->column('apk_url', admin_trans('app_version.fields.apk_url'))->align('center'); + $grid->column('force_update', admin_trans('app_version.fields.force_update'))->switch([[1 => ''], [0 => '']])->align('center'); + $grid->column('hot_update', admin_trans('app_version.fields.hot_update'))->switch([[1 => ''], [0 => '']])->align('center'); + $grid->column('regular_update', admin_trans('app_version.fields.regular_update'))->align('center'); + $grid->column('notes', admin_trans('app_version.fields.notes'))->align('center'); + $grid->column('status', admin_trans('app_version.fields.status'))->switch([[1 => ''], [0 => '']])->align('center'); + $grid->column('created_at', admin_trans('app_version.fields.created_at'))->align('center'); + $grid->hideDelete(); + $grid->hideSelection(); + $grid->filter(function (Filter $filter) { + $filter->eq()->select('department_id') + ->showSearch() + ->style(['width' => '200px']) + ->dropdownMatchSelectWidth() + ->placeholder(admin_trans('channel.fields.name')) + ->remoteOptions(admin_url(['addons-webman-controller-ChannelController', 'getDepartmentOptions'])); + $filter->eq()->select('status') + ->placeholder(admin_trans('app_version.fields.status')) + ->options([ + 1 => admin_trans('post.normal'), + 0 => admin_trans('post.disable') + ]); + $filter->form()->hidden('created_at_start'); + $filter->form()->hidden('created_at_end'); + $filter->form()->dateRange('created_at_start', 'created_at_end', '')->placeholder([admin_trans('public_msg.created_at_start'), admin_trans('public_msg.created_at_end')]); + }); + $grid->setForm()->drawer($this->form($systemKey)); + $grid->quickSearch(); + } + + /** + * 添加修改版本 + * @auth true + */ + public function form($systemKey): Form + { + ini_set('memory_limit', '512M'); + Form::extend('myEditor', MyEditor::class); + return Form::create(new $this->model, function (Form $form) use ($systemKey) { + $form->title(admin_trans('app_version.title')); + $form->radio('system_key', admin_trans('app_version.fields.system_key')) + ->button() + ->default($systemKey) + ->options([ + AppVersion::SYSTEM_KEY_ANDROID => admin_trans('app_version.system_key.' . AppVersion::SYSTEM_KEY_ANDROID), + AppVersion::SYSTEM_KEY_IOS => admin_trans('app_version.system_key.' . AppVersion::SYSTEM_KEY_IOS), + ])->required(); + $form->dateTime('regular_update', admin_trans('app_version.fields.regular_update'))->required(); + $form->select('department_id', admin_trans('slider.fields.department_id')) + ->options($this->getChannelOptions())->required(); + $form->text('app_version', admin_trans('app_version.fields.app_version'))->rule([ + 'regex:/^\d+\.\d+\.\d+$/' => admin_trans('app_version.app_version_regex') + ])->maxlength(50)->required(); + $form->text('app_version_key', admin_trans('app_version.fields.app_version_key'))->disabled(true)->maxlength(50)->required(); + $form->watch([ + 'app_version' => function ($value, Watch $watch) { + $versionNumbers = explode('.', $value); + $newVersion = implode('', $versionNumbers); + $watch['app_version_key'] = $newVersion; + }, + ]); + $form->row(function (Form $form) { + $form->switch('status', admin_trans('app_version.fields.status'))->span(8)->required(); + $form->switch('force_update', admin_trans('app_version.fields.force_update'))->span(8)->required(); + $form->switch('hot_update', admin_trans('app_version.fields.hot_update')) + ->default(0) + ->when('==', 1, function (Form $form) { + $form->file('apk_url', admin_trans('app_version.hot_apk_url')) + ->directory('app_version') + ->type('file') + ->ext(['zip']) + ->chunkSize(1) + ->chunk() + ->limit(1) + ->fileSize('200MB')->hideFinder()->required(); + })->when('==', 0, function (Form $form) { + $form->text('apk_url', admin_trans('app_version.fields.apk_url'))->ruleUrl()->maxlength(200)->required(); + }) + ->span(8) + ->required(); + }, null); + $form->textarea('notes', admin_trans('app_version.fields.notes'))->maxlength(125)->bindAttr('rows', 3); + $form->myEditor('update_content', admin_trans('app_version.fields.update_content')); + $form->hidden('user_id')->value(!empty(Admin::user()) ? Admin::user()->id : 0); + $form->hidden('user_name')->value(!empty(Admin::user()) ? Admin::user()->username : ''); + $form->hidden('hot_update_url'); + $form->layout('vertical'); + $form->saving(function (Form $form) { + $apkUrl = $form->input('apk_url'); + $hotUpdate = $form->input('hot_update'); + $hotUpdateUrl = $form->input('hot_update_url'); + $appVersionKey = $form->input('app_version_key'); + if (!$apkUrl) { + return message_error(admin_trans('app_version.missing_package_address')); + } + if (!$appVersionKey) { + return message_error(admin_trans('app_version.app_version_key_not_found')); + } + if (AppVersion::query()->where('department_id', $form->input('department_id'))->where('app_version_key', $appVersionKey)->exists()) { + return message_error(admin_trans('app_version.app_version_key_exists')); + } + if ($hotUpdate == 1) { + $apkUrl = str_replace(env('APP_DOMAIN'), '', $apkUrl); + if (!file_exists(public_path() . $apkUrl)) { + return message_error(admin_trans('app_version.upload_update_package')); + } + if (empty($hotUpdateUrl)) { + $extension = pathinfo($apkUrl, PATHINFO_EXTENSION); + $fileName = pathinfo($apkUrl, PATHINFO_FILENAME); + if (!$extension || !$fileName) { + return message_error(admin_trans('app_version.hot_apk_url_error')); + } + // 解压压缩包 + $hotUrl = $this->decompression($appVersionKey, $extension, $apkUrl); + $form->input('hot_update_url', $hotUrl); + } + } + }); + }); + } + + /** + * 筛选部门/渠道 + * @return array + */ + public function getChannelOptions(): array + { + $channelList = Channel::query()->orderBy('created_at', 'desc')->get(); + $data = []; + /** @var Channel $channel */ + foreach ($channelList as $channel) { + $data[$channel->department_id] = $channel->name; + } + return $data; + } + + /** + * @param $appVersionKey + * @param string $type + * @param string $file + * @return string|void + * @throws \Exception + */ + public function decompression($appVersionKey, string $type = '', string $file = '') + { + try { + $file = public_path() . $file; + $savePath = '/storage/app_version/' . $appVersionKey; + $newPath = public_path() . $savePath; + if (!file_exists($newPath)) { + //检查是否有该文件夹,如果没有就创建,并给予最高权限 + mkdir($newPath, 0755, true); + } + switch ($type) { + case 'zip': + $zip = new ZipArchive; + if ($zip->open($file) === TRUE) { + $zip->extractTo($newPath); + $zip->close(); + return env('APP_DOMAIN') . $savePath; + } else { + throw new \Exception(admin_trans('app_version.decompression_failed')); + } + case 'rar': + $file = RarArchive::open($file); + if ($file !== FALSE) { + $entries = $file->getEntries(); + foreach ($entries as $entry) { + $entry->extract($newPath); + } + $file->close(); + return env('APP_DOMAIN') . $savePath; + } else { + throw new \Exception(admin_trans('app_version.decompression_failed')); + } + } + } catch (Exception $e) { + throw new \Exception($e->getMessage()); + } + } +} diff --git a/addons/webman/controller/AttachmentController.php b/addons/webman/controller/AttachmentController.php new file mode 100644 index 0000000..631f504 --- /dev/null +++ b/addons/webman/controller/AttachmentController.php @@ -0,0 +1,153 @@ +attachmentModel = plugin()->webman->config('database.attachment_model'); + $this->attachmentCateModel = plugin()->webman->config('database.attachment_cate_model'); + } + + /** + * 附件 + * @auth true + * @param string $type image图片 file文件 + * @param int $size 文件大小 + * @param array $ext 文件后缀 + * @param string $customStyle + * @param string $selectionField + * @return Grid + */ + public function index($type = '', $size = 0, $ext = [],$customStyle='card',$selectionField=''): Grid + { + $grid = Grid::create(new $this->attachmentModel); + if($selectionField){ + $grid->selectionField($selectionField); + } + $grid->title(admin_trans('attachment.title')); + $grid->model()->when($type, function (Builder $q, $value) { + $q->where('type', $value); + })->when($ext, function (Builder $q, $value) { + $q->whereIn('ext', $value); + })->when($size, function (Builder $q, $value) { + $q->where('size', '<=', $value); + }); + $grid->hideTrashed(); + $grid->autoHeight(); + $grid->sidebar('cate_id', new $this->attachmentCateModel) + ->model(function (Builder $builder) { + $builder->where(function (Builder $q) { + $q->orWhere('admin_id', Admin::id())->orWhere('permission_type', 0); + }); + + }) + ->setForm($this->cate()) + ->tree(); + $grid->custom(function ($data) { + return Html::create([ + Image::create() + ->src($data['url']) + ->style(['object-fit' => 'contain']) + ->width(80) + ->height(80)->whenShow($data['type'] == 'image'), + DownloadFile::create() + ->onlyImage() + ->style(['object-fit' => 'contain']) + ->width(80) + ->height(80) + ->url($data['url'])->whenShow($data['type'] == 'file'), + ToolTip::create()->title($data['real_name']) + ->placement('bottom') + ->content( + Html::create($data['real_name']) + ->style(['white-space' => 'nowrap', 'text-overflow' => 'ellipsis', 'overflow' => 'hidden', 'width' => '100%']) + ), + ])->style(['display' => 'flex', 'align-items' => 'center', 'flex-direction' => 'column', 'text-align' => 'center']); + }, 'ACard',$customStyle)->grid(10, 6) + ->when($customStyle=='card',function ($list){ + $list->class('ant-card')->style(['padding'=>'0 10px']); + }); + + $grid->pagination()->pageSize(24); + $grid->actions(function (Actions $actions, $data) { + $actions->icon(); + $actions->prepend( + Button::create() + ->icon('') + ->size('small') + ->shape('circle') + ->redirect($data['url']) + ); + }); + $grid->quickSearch('real_name'); + + $grid->vModel('selectedSidebar'); + + $grid->tools( + Upload::create() + ->multiple() + ->action('ex-admin/addons-webman-controller-AttachmentController/upload') + ->bindAttr('params', ['cate_id' => $grid->bindAttr('selectedSidebar')]) + ->style(['marginLeft' => '8px']) + ->eventCustom('success', 'GridRefresh') + ,false); + return $grid; + } + + /** + * 上传 + * @return mixed + */ + public function upload() + { + $class = plugin()->webman->config('form.uploader'); + $simpleUploader = new $class; + return $simpleUploader->upload(); + } + + /** + * 附件分类 + * @auth true + */ + public function cate() + { + return Form::create(new $this->attachmentCateModel(),function (Form $form){ + $options = $this->attachmentCateModel::where('admin_id', Admin::id())->get()->toArray(); + array_unshift($options, ['id' => 0, 'name' => admin_trans('attachment.cate.parent'), 'pid' => -1]); + $form->treeSelect('pid', admin_trans('attachment.cate.fields.pid')) + ->default(0) + ->required() + ->options($options); + $form->text('name', admin_trans('attachment.cate.fields.name'))->required(); + $form->radio('permission_type', admin_trans('attachment.cate.fields.permission_type')) + ->options([ + 0 => admin_trans('attachment.cate.public'), + 1 => admin_trans('attachment.cate.private'), + ]) + ->default(0); + $form->number('sort', admin_trans('attachment.cate.fields.sort'))->default($this->attachmentCateModel::max('sort') + 1); + $form->input('admin_id', Admin::id()); + }); + } +} diff --git a/addons/webman/controller/ChannelAdminController.php b/addons/webman/controller/ChannelAdminController.php new file mode 100644 index 0000000..32f26ed --- /dev/null +++ b/addons/webman/controller/ChannelAdminController.php @@ -0,0 +1,202 @@ +model = plugin()->webman->config('database.user_model'); + + } + + /** + * 渠道用户 + * @group channel + * @auth true + */ + public function index(): Grid + { + /** @var AdminUser $superAdmin */ + $superAdmin = AdminUser::where('department_id', Admin::user()->department_id)->where('is_super', 1)->first(); + return Grid::create(new $this->model, function (Grid $grid) use($superAdmin){ + $grid->title(admin_trans('admin.system_user')); + $grid->model() + ->when(plugin()->webman->config('admin_auth_id') != Admin::id(), function (Builder $builder) { + $builder->whereKeyNot(plugin()->webman->config('admin_auth_id')); + })->where('department_id', Admin::user()->department_id); + $grid->bordered(true); + $exAdminFilter = Request::input('ex_admin_filter', []); + if (isset($exAdminFilter['created_at_start']) && !empty($exAdminFilter['created_at_start'])) { + $grid->model()->where('created_at', '>=', $exAdminFilter['created_at_start']); + } + if (isset($exAdminFilter['created_at_end']) && !empty($exAdminFilter['created_at_end'])) { + $grid->model()->where('created_at', '<=', $exAdminFilter['created_at_end']); + } + $grid->autoHeight(); + $grid->userInfo(); + $grid->column('username', admin_trans('admin.fields.username'))->display(function ($val, $data) { + if ($data['id'] == plugin()->webman->config('admin_auth_id')) { + return Html::create() + ->content($val) + ->content( + Badge::create()->count(admin_trans('admin.super_admin'))->numberStyle(['backgroundColor' => '#1890ff', 'marginLeft' => '5px']) + ); + } else { + return $val; + } + })->copy(); + $grid->column('phone', admin_trans('admin.fields.phone')); + $grid->column('email', admin_trans('admin.fields.mail')); + $grid->column('status', admin_trans('admin.fields.status'))->switch(); + $grid->column('type', admin_trans('admin.fields.type')) + ->display(function ($value, AdminUser $data) { + if ($data->is_super == 1) { + $tag = Tag::create(admin_trans('admin.fields.is_super'))->color('#3b5999'); + } else { + $tag = Tag::create(admin_trans('department.type.' . AdminDepartment::TYPE_CHANNEL))->color('#f50'); + } + return Html::create()->content([ + $tag, + ]); + })->sortable(); + $grid->column('created_at', admin_trans('admin.fields.create_at')); + $grid->quickSearch(); + $grid->hideDelete(); + $grid->setForm()->modal($this->form()); + $grid->filter(function (Filter $filter) { + $filter->like()->text('username')->placeholder(admin_trans('admin.fields.username')); + $filter->like()->text('phone')->placeholder(admin_trans('admin.fields.phone')); + $filter->eq()->select('status') + ->placeholder(admin_trans('admin.fields.status')) + ->showSearch() + ->style(['width' => '200px']) + ->dropdownMatchSelectWidth() + ->options([ + 1 => admin_trans('admin.normal'), + 0 => admin_trans('admin.disable') + ]); + $filter->form()->hidden('created_at_start'); + $filter->form()->hidden('created_at_end'); + $filter->form()->dateRange('created_at_start', 'created_at_end', '')->placeholder([admin_trans('public_msg.date_start'), admin_trans('public_msg.date_end')]); + }); + + $grid->actions(function (Actions $actions, $data) use($superAdmin){ + if ($data['id'] == $superAdmin->id) { + $actions->hideDel(); + } + if ($data['id'] != $superAdmin->id) { + $actions->dropdown() + ->prepend(admin_trans('admin.reset_password'), 'fas fa-key') + ->modal($this->resetPassword($data['id'])); + } else { + $actions->dropdown(); + } + }); + + $grid->deling(function ($ids) use($superAdmin){ + if (is_array($ids) && in_array($superAdmin->id, $ids)) { + return message_error(admin_trans('admin.super_admin_delete')); + } + }); + + $grid->updateing(function ($ids, $data) use($superAdmin){ + if (in_array($superAdmin->id, $ids)) { + if (isset($data['status']) && $data['status'] == 0) { + return message_error(admin_trans('admin.super_admin_disabled')); + } + } + }); + }); + } + + /** + * 重置密码 + * @auth true + * @group channel + * @param $id + * @return Form + */ + public function resetPassword($id): Form + { + return Form::create(new $this->model, function (Form $form) { + $form->password('password', admin_trans('admin.new_password')) + ->rule([ + 'confirmed' => admin_trans('admin.password_confim_validate'), + 'min:6' => admin_trans('admin.password_min_number') + ]) + ->value('') + ->required(); + $form->password('password_confirmation', admin_trans('admin.confim_password')) + ->required(); + }); + } + + /** + * 系统用户 + * @group channel + * @auth true + */ + public function form(): Form + { + return Form::create(new $this->model, function (Form $form) { + $form->title(admin_trans('admin.system_user')); + $form->text('username', admin_trans('admin.fields.username')) + ->ruleChsDash() + ->rule([ + (string)Rule::unique(plugin()->webman->config('database.user_model'))->ignore($form->input('id')) => admin_trans('admin.username_exist'), + ]) + ->required() + ->disabled($form->isEdit()); + $form->text('nickname', admin_trans('admin.fields.nickname')) + ->ruleChsAlphaNum() + ->required(); + $form->image('avatar', admin_trans('admin.fields.avatar')) + ->required(); + if (!$form->isEdit()) { + $form->password('password', admin_trans('admin.fields.password')) + ->default(123456) + ->help(admin_trans('admin.pass_help')) + ->required(); + } + $form->text('phone', admin_trans('admin.fields.phone')) + ->rule([ + (string)Rule::unique(plugin()->webman->config('database.user_model'))->ignore($form->input('id')) => admin_trans('admin.phone_exist'), + ]) + ->ruleMobile(); + $form->text('email', admin_trans('admin.fields.mail'))->ruleEmail(); + $form->hidden('department_id')->default(Admin::user()->department_id); + if (!$form->isEdit() || $form->driver()->get('is_super') != 1) { + $roleModel = plugin()->webman->config('database.role_model'); + $role = $roleModel::where('type', AdminDepartment::TYPE_CHANNEL)->pluck('name', 'id')->toArray(); + $form->checkbox('roles', admin_trans('admin.access_rights')) + ->options($role); + $post = plugin()->webman->config('database.post_model'); + $options = $post::where('status', 1)->pluck('name', 'id')->toArray(); + $form->select('post', admin_trans('admin.post')) + ->options($options) + ->multiple(); + } + }); + } +} diff --git a/addons/webman/controller/ChannelController.php b/addons/webman/controller/ChannelController.php new file mode 100644 index 0000000..03f1242 --- /dev/null +++ b/addons/webman/controller/ChannelController.php @@ -0,0 +1,380 @@ +model = plugin()->webman->config('database.channel_model'); + + } + + /** + * 渠道 + * @auth true + */ + public function index(): Grid + { + return Grid::create(new $this->model, function (Grid $grid) { + $grid->title(admin_trans('channel.title')); + $grid->model()->with(['department'])->orderBy('created_at', 'desc'); + $grid->autoHeight(); + $grid->bordered(true); + $grid->column('department_id', admin_trans('channel.fields.id'))->align('center')->fixed(true); + $grid->column('name', admin_trans('channel.fields.name'))->align('center')->fixed(true); + $grid->column('department.leader', admin_trans('channel.fields.leader'))->align('center')->copy()->fixed(true); + $grid->column('department.phone', admin_trans('channel.fields.phone'))->align('center')->copy(); + $grid->column('player_num', admin_trans('channel.fields.player_num'))->display(function ($val, Channel $data) { + return $data->player->count(); + })->align('center'); + $grid->column('created_at', admin_trans('channel.fields.create_at'))->align('center'); + $grid->column('status', admin_trans('channel.fields.status'))->switch(); + $grid->column('lang', admin_trans('channel.fields.lang'))->display(function ($val) { + return Html::create()->content([ + admin_config('ui.lang.list')[$val] ?? '' + ]); + })->align('center'); + $grid->column('currency', admin_trans('channel.fields.currency'))->align('center'); + $grid->column('pay_type', admin_trans('channel.fields.pay_type'))->display(function ($val) { + return Html::create()->content([ + admin_trans('channel.pay_type.'.$val) + ]); + })->align('center')->align('center'); + $grid->column('game_id', admin_trans('channel.fields.game_id'))->display(function ($val) { + return Html::create()->content([ + admin_trans('channel.game.'.$val) + ]); + })->align('center')->align('center'); + $grid->column('channel_function', admin_trans('channel.fields.channel_function'))->display(function ($value, Channel $channel) { + $channelFunction = []; + if ($channel->web_login_status == 1) { + $channelFunction[] = 'web_login_status'; + } + if ($channel->recharge_status == 1) { + $channelFunction[] = 'recharge_status'; + } + if ($channel->withdraw_status == 1) { + $channelFunction[] = 'withdraw_status'; + } + if ($channel->wallet_action_status == 1) { + $channelFunction[] = 'wallet_action_status'; + } + if ($channel->promotion_status == 1) { + $channelFunction[] = 'promotion_status'; + } + $html = Html::create(); + foreach ($channelFunction as $option) { + $html->content( + Tag::create(admin_trans('channel.fields.' . $option)) + ->color('success') + ); + } + return $html; + })->align('center'); + $grid->column('player_total_amount', admin_trans('channel.fields.player_total_amount'))->display(function ($val, Channel $data) { + return $data->wallet()->sum('money'); + })->align('center'); + $grid->column('domain', admin_trans('channel.fields.domain'))->display(function ($value) { + return ToolTip::create(Str::of($value)->limit(30, ' (...)'))->title($value); + })->width('150px')->align('center')->ellipsis(true)->copy(); + $grid->column('telegram_url', admin_trans('channel.fields.whats_app'))->display(function ($value) { + return ToolTip::create(Str::of($value)->limit(30, ' (...)'))->title($value); + })->width('150px')->align('center')->ellipsis(true)->copy(); + $grid->column('package_url', admin_trans('channel.fields.package_url'))->display(function ($value) { + return ToolTip::create(Str::of($value)->limit(30, ' (...)'))->title($value); + })->width('150px')->align('center')->ellipsis(true)->copy(); + $grid->hideDelete(); + $grid->setForm()->drawer($this->form()); + $grid->filter(function (Filter $filter) { + $filter->eq()->text('id')->placeholder(admin_trans('channel.fields.id')); + $filter->like()->text('name')->placeholder(admin_trans('channel.fields.name')); + $filter->like()->text('phone')->placeholder(admin_trans('channel.fields.phone')); + $filter->like()->text('leader')->placeholder(admin_trans('channel.fields.leader')); + $filter->eq()->select('status') + ->placeholder(admin_trans('channel.fields.status')) + ->showSearch() + ->style(['width' => '200px']) + ->dropdownMatchSelectWidth() + ->options([ + 1 => admin_trans('channel.normal'), + 0 => admin_trans('channel.disable') + ]); + }); + $grid->quickSearch(function (Builder $builder, $quickSearch) { + $builder->whereHas('department', function ($query) use ($quickSearch) { + $query->where([ + ['leader', 'like', '%' . $quickSearch . '%', 'or'], + ['phone', 'like', '%' . $quickSearch . '%', 'or'], + ]); + })->orWhere('id', $quickSearch) + ->orWhere('name', $quickSearch) + ->orWhere('domain', $quickSearch); + }); + $grid->deleted(function ($ids) { + DB::beginTransaction(); + try { + $departmentIds = Arr::pluck(Channel::select('department_id')->whereIn('id', $ids)->withTrashed()->get()->toArray(), 'department_id'); + AdminDepartment::whereIn('id', $departmentIds)->delete(); + AdminUser::whereIn('department_id', $departmentIds)->delete(); + DB::commit(); + } catch (\Exception $e) { + DB::rollBack(); + } + }); + }); + } + + /** + * 渠道 + * @auth true + */ + public function form(): Form + { + return Form::create(new $this->model, function (Form $form) { + $form->title(admin_trans('channel.title')); + $form->row(function (Form $form) { + $form->text('name', admin_trans('channel.fields.name')) + ->ruleChsDash() + ->rule([ + (string)Rule::unique(plugin()->webman->config('database.channel_model'))->ignore($form->input('id')) => admin_trans('channel.name_exist'), + ]) + ->required(); + $form->text('domain', admin_trans('channel.fields.domain')) + ->ruleUrl() + ->rule([ + (string)Rule::unique(plugin()->webman->config('database.channel_model'))->ignore($form->input('id')) => admin_trans('channel.channel_exist'), + ]) + ->required()->style(['margin-left' => '10px']); + }); + $form->row(function (Form $form) { + $form->text('department.phone', admin_trans('channel.fields.phone'))->ruleNumber(); + $form->text('department.leader', admin_trans('channel.fields.leader'))->style(['margin-left' => '10px']); + }); + $form->text('telegram_url', admin_trans('channel.fields.whats_app')) + ->ruleUrl() + ->rule([ + (string)Rule::unique(plugin()->webman->config('database.channel_model'))->ignore($form->input('id')) => admin_trans('channel.telegram_url_exist'), + ]) + ->required(); + $form->text('package_url', admin_trans('channel.fields.package_url')) + ->ruleUrl() + ->rule([ + (string)Rule::unique(plugin()->webman->config('database.channel_model'))->ignore($form->input('id')) => admin_trans('channel.package_url_exist'), + ]) + ->required(); + $form->radio('currency', admin_trans('channel.fields.currency')) + ->button() + ->options(plugin()->webman->config('currency')) + ->required(); + $form->radio('lang', admin_trans('channel.fields.lang')) + ->button() + ->options(admin_config('ui.lang.list')) + ->required(); + $form->radio('game_id', admin_trans('channel.fields.game_id')) + ->button() + ->options(plugin()->webman->config('game')) + ->required(); + $form->row(function (Form $form) { + if (!$form->isEdit()) { + $form->text('user.username', admin_trans('channel.fields.username')) + ->ruleChsDash() + ->rule([ + (string)Rule::unique(plugin()->webman->config('database.user_model'), 'username')->ignore($form->input('id')) => admin_trans('admin.username_exist'), + ]) + ->required() + ->addonAfter(Copy::create($form->input('user.username'))) + ->disabled($form->isEdit()); + $form->password('user.password', admin_trans('channel.fields.password')) + ->default(123456) + ->help(admin_trans('admin.pass_help')) + ->required(); + } else { + $form->text('user.username', admin_trans('channel.fields.username')) + ->ruleChsDash() + ->addonAfter(Copy::create($form->input('user.username'))) + ->disabled($form->isEdit()); + } + }); + $channelFunction = []; + if ($form->isEdit()) { + $id = $form->driver()->get('id'); + /** @var Channel $channel */ + $channel = Channel::find($id); + if ($channel->recharge_status == 1) { + $channelFunction[] = 'recharge_status'; + } + if ($channel->withdraw_status == 1) { + $channelFunction[] = 'withdraw_status'; + } + if ($channel->web_login_status == 1) { + $channelFunction[] = 'web_login_status'; + } + if ($channel->wallet_action_status == 1) { + $channelFunction[] = 'wallet_action_status'; + } + if ($channel->promotion_status == 1) { + $channelFunction[] = 'promotion_status'; + } + } + $form->row(function (Form $form) use ($channelFunction) { + $form->checkbox('channel_function', admin_trans('channel.fields.channel_function')) + ->value($channelFunction) + ->options([ + 'web_login_status' => admin_trans('channel.fields.web_login_status'), + 'recharge_status' => admin_trans('channel.fields.recharge_status'), + 'withdraw_status' => admin_trans('channel.fields.withdraw_status'), + 'wallet_action_status' => admin_trans('channel.fields.wallet_action_status'), + 'promotion_status' => admin_trans('channel.fields.promotion_status'), + ]); + }); + $form->layout('vertical'); + $form->saving(function (Form $form) { + $channelFunction = $form->input('channel_function'); + if (!empty($channelFunction)) { + $artificial = collect(['recharge_status', 'withdraw_status']); + $intersectArtificial = $artificial->intersect($channelFunction)->toArray(); + if (!empty($intersectArtificial) && !empty($intersectQTalk)) { + return message_error(admin_trans('channel.channel_function_help')); + } + } + if (!$form->isEdit()) { + DB::beginTransaction(); + try { + $adminDepartment = new AdminDepartment(); + $adminDepartment->name = $form->input('name'); + $adminDepartment->leader = $form->input('department.leader'); + $adminDepartment->phone = $form->input('department.phone'); + $adminDepartment->type = AdminDepartment::TYPE_CHANNEL; + $adminDepartment->save(); + + $adminUser = new AdminUser(); + $adminUser->username = $form->input('user.username'); + $adminUser->password = $form->input('user.password'); + $adminUser->nickname = $form->input('name'); + $adminUser->department_id = $adminDepartment->id; + $adminUser->type = AdminDepartment::TYPE_CHANNEL; + $adminUser->is_super = 1; + $adminUser->save(); + + $adminRole = new AdminRoleUsers(); + $adminRole->role_id = AdminRole::ROLE_CHANNEL; + $adminRole->user_id = $adminUser->id; + $adminRole->save(); + + $channel = new Channel(); + $channel->name = $form->input('name'); + $channel->domain = $form->input('domain'); + $channel->telegram_url = $form->input('telegram_url'); + $channel->package_url = $form->input('package_url'); + $channel->lang = $form->input('lang'); + $channel->game_id = $form->input('game_id'); + $channel->currency = $form->input('currency'); + $channel->pay_type = $form->input('pay_type') ?? 4; + $channel->department_id = $adminDepartment->id; + $channel->user_id = $adminUser->id; + $channel->site_id = gen_uuid(); // 站点标识 + $channel->recharge_status = in_array('recharge_status', $channelFunction); + $channel->withdraw_status = in_array('withdraw_status', $channelFunction); + $channel->web_login_status = in_array('web_login_status', $channelFunction); + $channel->wallet_action_status = in_array('wallet_action_status', $channelFunction); + $channel->promotion_status = in_array('promotion_status', $channelFunction); + $channel->save(); + + DB::commit(); + } catch (\Exception $e) { + DB::rollBack(); + return message_error($e->getMessage()); + } + $adminDepartment->path = $adminDepartment->id; + $adminDepartment->save(); + return message_success(admin_trans('channel.save_success')); + } else { + $orgData = $form->driver()->get(); + /** @var Channel $channel */ + $channel = Channel::find($orgData['id']); + if (empty($channel)) { + return message_error(admin_trans('channel.not_fount')); + } + DB::beginTransaction(); + try { + $channel->name = $form->input('name'); + $channel->domain = $form->input('domain'); + $channel->telegram_url = $form->input('telegram_url'); + $channel->package_url = $form->input('package_url'); + $channel->lang = $form->input('lang'); + $channel->game_id = $form->input('game_id'); + $channel->currency = $form->input('currency'); + $channel->pay_type = $form->input('pay_type') ?? 4; + $channel->recharge_status = in_array('recharge_status', $channelFunction); + $channel->withdraw_status = in_array('withdraw_status', $channelFunction); + $channel->web_login_status = in_array('web_login_status', $channelFunction); + $channel->wallet_action_status = in_array('wallet_action_status', $channelFunction); + $channel->status = $form->input('status'); + $channel->promotion_status = in_array('promotion_status', $channelFunction); + $channel->save(); + /** @var AdminDepartment $adminDepartment */ + $adminDepartment = AdminDepartment::find($channel->department_id); + $adminDepartment->name = $form->input('name'); + $adminDepartment->leader = $form->input('department.leader'); + $adminDepartment->phone = $form->input('department.phone'); + $adminDepartment->save(); + DB::commit(); + } catch (\Exception $e) { + DB::rollBack(); + return message_error(admin_trans('channel.save_error')); + } + return message_success(admin_trans('channel.save_success')); + } + }); + }); + } + + /** + * 筛选部门/渠道 + * @return mixed + */ + public function getDepartmentOptions() + { + $request = Request::input(); + $channel = Channel::orderBy('created_at', 'desc'); + if (!empty($request['search'])) { + $channel->where('name', 'like', '%' . $request['search'] . '%'); + } + $channelList = $channel->get(); + $data = []; + /** @var Channel $channel */ + foreach ($channelList as $channel) { + $data[] = [ + 'value' => $channel->department_id, + 'label' => $channel->name, + ]; + } + return Response::success($data); + } +} diff --git a/addons/webman/controller/ChannelGameController.php b/addons/webman/controller/ChannelGameController.php new file mode 100644 index 0000000..5fabb60 --- /dev/null +++ b/addons/webman/controller/ChannelGameController.php @@ -0,0 +1,420 @@ +game = plugin()->webman->config('database.game_model'); + $this->prize = plugin()->webman->config('database.prize_model'); + } + + /** + * 游戏列表 + * @group channel + * @auth true + * @return Grid + */ + public function index(): Grid + { + return Grid::create(new $this->game(), function (Grid $grid) { + $grid->title(admin_trans('game.title')); + if (plugin()->webman->config('admin_auth_id') != Admin::id()){ + $gameId = Channel::query()->where('department_id', Admin::user()['department_id'])->value('game_id'); + $grid->model()->where('id', $gameId); + } + $grid->model()->orderBy('status', 'desc')->orderBy('id', 'asc'); + $grid->bordered(true); + $grid->autoHeight(); + $grid->column('id', admin_trans('game.fields.id'))->align('center'); + $grid->column('logo', 'LOGO')->display(function ($val, $data) { + $image = Image::create() + ->width(50) + ->height(50) + ->style(['border-radius' => '50%', 'objectFit' => 'cover']) + ->src($data['logo']); + return Html::create()->content([ + $image, + ]); + })->align('center'); + $grid->column('name', admin_trans('game.fields.name'))->align('center'); + $grid->column('game_image', admin_trans('game.fields.game_image'))->display(function ($val, $data) { + $image = Image::create() + ->width(50) + ->height(50) + ->style(['border-radius' => '50%', 'objectFit' => 'cover']) + ->src($data['game_image']); + return Html::create()->content([ + $image, + ]); + })->align('center'); + $grid->column('description', admin_trans('game.fields.description'))->align('center'); + $grid->column('status', admin_trans('game_platform.fields.status'))->switch()->align('center'); + $grid->column('updated_at', admin_trans('game.fields.updated_at'))->align('center'); + $grid->expandFilter(); + $grid->actions(function (Actions $actions, $data) { + $actions->hideDel(); + $actions->prepend( + Button::create(admin_trans('game.enter_game'))->ajax([$this, 'enterGame'], + ['id' => $data['id']]) + ); + $actions->prepend( + Button::create(admin_trans('game.view_prize'))->modal([$this, 'getPrizeList'], + ['id' => $data['id']])->width('100%') + ); + })->align('center'); + $grid->hideDelete(); + $grid->hideSelection(); + $grid->hideAdd(); + $grid->hideTrashed(); + }); + } + + /** + * 进入游戏 + * @param $id + * @group channel + * @auth true + * @return Notification + */ + public function enterGame($id): Notification + { + $game = Game::query()->where('id', $id)->first(); + if (empty($game->test_url)) { + $player = Player::query()->where('test', 1)->find($id); + $channel = Channel::query()->whereJsonContains('game_id', $id)->first(); + if (empty($channel) || empty($player)) { + return notification_error(admin_trans('admin.success'),admin_trans('game_platform.action_error'))->redirect(''); + } + $token = JwtToken::generateToken([ + 'id' => $player->uuid, + 'account' => $player->account, + 'game_id' => $id, + 'app_id' => $channel->externalApp->app_id, + 'channel' => openssl_encrypt($channel->externalApp->app_secret, 'DES-ECB', config('app.channel_des_key')), + 'access_exp' => 864000000, + 'refresh_exp' => 864000000, + ]); + $url = $game->game_url . $id . '?access_token=' . $token['access_token']; + } else { + $url = $game->test_url; + } + return notification_success(admin_trans('admin.success'), + admin_trans('game_platform.action_success'))->redirect($url); + } + + /** + * 游戏详情 + * @auth true + * @group channel + * @return Form + */ + public function form(): Form + { + return Form::create(new $this->game(), function (Form $form) { + $form->title(admin_trans('prize.title')); + $form->text('name', admin_trans('game.fields.name'))->required()->maxlength(50); + $form->image('logo', admin_trans('game.fields.logo')) + ->required(); + $form->image('game_image', admin_trans('game.fields.game_image')) + ->required(); + $form->textarea('description', admin_trans('game.fields.description'))->maxlength(500)->bindAttr('rows', 10); + $form->layout('vertical'); + }); + } + + /** + * 查看奖品 + * @param $id + * @group channel + * @return Grid + * @auth true + */ + public function getPrizeList($id): Grid + { + $num = Game::query()->where('id', $id)->value('prize_num'); + $prizeNum = Prize::query()->where('game_id', $id) + ->where('department_id', Admin::user()->department_id) + ->where('status', 1) + ->count(); + if ($prizeNum < $num) { + + for ($j = $num - $prizeNum; $j >= 1; $j--) { + Prize::query()->create([ + 'game_id' => $id, + 'department_id' => Admin::user()->department_id, + 'name' => '奖品名称', + 'probability' => 0, + 'type' => 1, + 'total_stock' => 0, + 'daily_stock' => 0, + 'total_remaining' => 0, + 'daily_remaining' => 0, + 'admin_id' => Admin::id(), + 'admin_name' => Admin::user()->username, + ]); + } + } + return Grid::create(new $this->prize(), function (Grid $grid) use($id) { + $grid->title(admin_trans('prize.title')); + $grid->model()->where('game_id', $id)->where('department_id', Admin::user()->department_id)->orderBy('probability'); + $grid->bordered(true); + $grid->autoHeight(); + $grid->column('id', admin_trans('prize.fields.id'))->align('center')->width('5%'); + $grid->column('name', admin_trans('prize.fields.name'))->align('center')->width('10%'); + $grid->column('type', admin_trans('prize.fields.type'))->display(function ($val) { + return admin_trans('prize.prize_type.' . $val); + })->align('center')->width('10%'); + $grid->column('pic', admin_trans('prize.fields.pic'))->display(function ($val, $data) { + $image = Image::create() + ->width(50) + ->height(50) + ->src($data['pic']); + return Html::create()->content([ + $image, + ]); + })->align('center'); + $grid->column('probability', admin_trans('prize.fields.probability'))->align('center')->width('10%'); + $grid->column('total_stock', admin_trans('prize.fields.total_stock'))->align('center')->width('8%'); + $grid->column('daily_stock', admin_trans('prize.fields.daily_stock'))->align('center')->width('8%'); + $grid->column('total_remaining', admin_trans('prize.fields.total_remaining'))->align('center')->width('8%'); + $grid->column('daily_remaining', admin_trans('prize.fields.daily_remaining'))->align('center')->width('8%'); + $grid->column('description', admin_trans('prize.fields.description'))->align('center')->width('20%'); + $grid->column('admin_name', admin_trans('prize.fields.admin_name'))->align('center')->width('8%'); + $grid->column('updated_at', admin_trans('prize.fields.updated_at'))->align('center')->width('8%'); + $grid->expandFilter(); + $grid->setForm()->drawer($this->editPrize($id)); + $grid->actions(function (Actions $actions, $data) { + $actions->hideDel(); + $actions->prepend( + Button::create(admin_trans('prize.replenish_daily_stock'))->ajax([$this, 'replenishDailyStock'], + ['id' => $data['id']]) + ); + })->align('center'); + $grid->hideDelete(); + $grid->hideAdd(); + $grid->hideSelection(); + $grid->hideTrashed(); + }); + } + + /** + * 补充每日库存 + * @param $id + * @group channel + * @auth true + * @return Msg + */ + public function replenishDailyStock($id): Msg + { + /** @var Prize $prize */ + $prize = Prize::query()->where('id', $id)->first(); + + if ($prize->daily_remaining < $prize->daily_stock) { + $diff = $prize->daily_stock - $prize->daily_remaining; + $prize->daily_remaining = $prize->daily_stock; + $prize->total_remaining = $prize->total_remaining + $diff; + $prize->total_stock = $prize->total_stock + $diff; + } + $prize->save(); + return message_success(admin_trans('prize.action_success')); + } + + /** + * 奖品详情 + * @auth true + * @group channel + * @param $gameId + * @return Form + */ + public function editPrize($gameId): Form + { + return Form::create(new $this->prize(), function (Form $form) use ($gameId) { + $form->title(admin_trans('prize.title')); + $form->text('name', admin_trans('prize.fields.name'))->required()->maxlength(50); + $form->select('type', admin_trans('prize.fields.type'))->options([ + Prize::PRIZE_TYPE_PHYSICAL => admin_trans('prize.prize_type.' . Prize::PRIZE_TYPE_PHYSICAL), + Prize::PRIZE_TYPE_VIRTUAL => admin_trans('prize.prize_type.' . Prize::PRIZE_TYPE_VIRTUAL), + Prize::PRIZE_TYPE_LOSE => admin_trans('prize.prize_type.' . Prize::PRIZE_TYPE_LOSE), + ])->required(); + $form->image('pic', admin_trans('prize.fields.pic')); + $form->hidden('game_id')->default($gameId); + $form->number('probability', admin_trans('prize.fields.probability'))->min(1)->max(999)->required(); + $form->number('total_stock', admin_trans('prize.fields.total_stock'))->min(1)->max(100000)->required(); + $form->number('daily_stock', admin_trans('prize.fields.daily_stock'))->min(1)->max(100000) + ->help(admin_trans('prize.daily_stock_help'))->required(); + $form->textarea('description', admin_trans('prize.fields.description'))->maxlength(500)->bindAttr('rows', 10); + $form->layout('vertical'); + $form->saving(function (Form $form) { + try { + if (!$form->isEdit()) { + $prize = new Prize(); + $prize->game_id = $form->input('game_id'); + } else { + $prizeId = $form->driver()->get('id'); + $prize = Prize::query()->find($prizeId); + } + $prize->type = $form->input('type'); + $prize->name = $form->input('name'); + $prize->pic = $form->input('pic'); + $prize->probability = $form->input('probability'); + $prize->total_remaining = $form->input('total_stock'); + $prize->daily_remaining = $form->input('daily_stock'); + $prize->total_stock = $form->input('total_stock'); + $prize->daily_stock = $form->input('daily_stock'); + if ($prize->daily_stock > $prize->total_stock) { + return message_error(admin_trans('prize.daily_stock_help')); + } + $prize->description = $form->input('description'); + $prize->admin_id = Admin::id(); + $prize->admin_name = !empty(Admin::user()) ? Admin::user()->toArray()['username'] : trans('system_automatic', [], 'message'); + $prize->department_id = !empty(Admin::user()) ? Admin::user()->toArray()['department_id'] : trans('system_automatic', [], 'message'); + $prize->save(); + } catch (\Exception $e) { + return message_error(admin_trans('form.save_fail')); + } + return message_success(admin_trans('form.save_success')); + }); + }); + } + + /** + * 筛选游戏平台 + * @return mixed + */ + public function getGamePlatformOptions() + { + $request = Request::input(); + $gamePlatform = GamePlatform::query()->orderBy('created_at', 'desc'); + if (!empty($request['search'])) { + $gamePlatform->where('name', 'like', '%' . $request['search'] . '%'); + } + $channelList = $gamePlatform->get(); + $data = []; + /** @var GamePlatform $gamePlatform */ + foreach ($channelList as $gamePlatform) { + $data[] = [ + 'value' => $gamePlatform->id, + 'label' => $gamePlatform->name, + ]; + } + return Response::success($data); + } + + /** + * 游戏类型列表 + * @auth true + */ + public function serviceList(): Grid + { + return Grid::create(new GameType(), function (Grid $grid) { + $grid->title(admin_trans('game_type.title')); + $grid->autoHeight(); + $grid->bordered(true); + $grid->column('game_type', admin_trans('game_type.fields.game_type'))->display(function ($val) { + return $val ? admin_trans('game_type.game_type.' . $val) : admin_trans('game_type.nu_set'); + })->align('center'); + + $grid->column('ratio', admin_trans('game_type.fields.ratio'))->display(function ($value) { + return $value . '%'; + })->editable( + (new Editable)->number('ratio') + ->min(1) + ->max(100) + ->addonAfter('%') + )->align('center')->ellipsis(true); + + $grid->column('updated_at', admin_trans('game_type.fields.updated_at'))->align('center')->display(function ($val) { + return $val ? date('Y-m-d H:i:s', strtotime($val)) : ''; + })->ellipsis(true); + $grid->actions(function (Action $actions) { + $actions->hideDel(); + $actions->hideEdit(); + }); + $grid->hideDelete(); + $grid->hideSelection(); + $grid->hideAdd(); + }); + } + + /** + * 游戏类型 + * @auth true + */ + public function serviceForm(): Form + { + return Form::create(new GamePlatform, function (Form $form) { + $form->title(admin_trans('game_platform.game_platform')); + $form->text('name', admin_trans('game_platform.fields.name')); + $form->text('title', admin_trans('game_platform.fields.title')); + $form->number('service_ratio', admin_trans('game_platform.fields.service_ratio'))->addonAfter('%'); + + $form->layout('vertical'); + $form->saving(function (Form $form) { + if (!$form->isEdit()) { + return message_error(admin_trans('game_platform.save_error')); + DB::beginTransaction(); + try { + $gamePlatform = new GamePlatform(); + $gamePlatform->name = $form->input('name'); + $gamePlatform->title = $form->input('title'); + $gamePlatform->service_ratio = $form->input('service_ratio'); + $gamePlatform->status = 1; + $gamePlatform->save(); + DB::commit(); + } catch (\Exception $e) { + DB::rollBack(); + return message_error($e->getMessage()); + } + return message_success(admin_trans('game_platform.save_success')); + } else { + $gamePlatform = GamePlatform::find($form->input('id')); + if (empty($gamePlatform)) { + return message_error(admin_trans('game_platform.not_fount')); + } + DB::beginTransaction(); + try { + $gamePlatform->name = $form->input('name'); + $gamePlatform->title = $form->input('title'); + $gamePlatform->service_ratio = $form->input('service_ratio'); + $gamePlatform->save(); + DB::commit(); + } catch (\Exception $e) { + DB::rollBack(); + return message_error($e->getMessage()); + } + return message_success(admin_trans('game_platform.save_success')); + } + }); + }); + } +} diff --git a/addons/webman/controller/ChannelIndexController.php b/addons/webman/controller/ChannelIndexController.php new file mode 100644 index 0000000..1948c0c --- /dev/null +++ b/addons/webman/controller/ChannelIndexController.php @@ -0,0 +1,292 @@ +rechargeData(); + $withdrawData = $this->withdrawData(); + $playerData = $this->playerData(); + $loginData = $this->loginData(); + $layout = Layout::create(); + $layout->row(function (Row $row) use ($rechargeData, $withdrawData, $playerData, $loginData) { + $row->gutter([10, 10]); + $row->column( + Card::create([ + Row::create()->column(Icon::create('fas fa-globe')->style(['fontSize' => '45px', 'color' => 'rgb(0,154,97)', 'marginRight' => '20px']), 4), + Row::create()->column(Statistic::create()->title(admin_trans('data_center.department_id')) + ->value(Admin::user()->department->id ?? '')->style(['fontSize' => '45px', 'text-align' => 'center']), 6), + Divider::create()->type('vertical')->style(['height' => '4.9em']), + Row::create()->column(Statistic::create()->title(admin_trans('data_center.department_name')) + ->value(Admin::user()->department->name ?? '')->style(['fontSize' => '45px', 'text-align' => 'center']), 8), + ])->bodyStyle(['display' => 'flex', 'align-items' => 'center'])->hoverable()->headStyle(['height' => '0px', 'border-bottom' => '0px', 'min-height' => '0px']) + , 12); + $row->column( + Card::create([ + Row::create()->column(Icon::create('fas fa-user')->style(['fontSize' => '45px', 'color' => '#409eff', 'marginRight' => '20px']), 6), + Row::create()->column(Statistic::create()->title(admin_trans('data_center.today_add_player')) + ->value($playerData['today'])->style(['fontSize' => '45px', 'text-align' => 'center']), 8), + Divider::create()->type('vertical')->style(['height' => '4.9em']), + Row::create()->column(Statistic::create()->title(admin_trans('data_center.player_all')) + ->value($playerData['all'])->style(['fontSize' => '45px', 'text-align' => 'center']), 8), + ])->bodyStyle(['display' => 'flex', 'align-items' => 'center'])->hoverable()->extra(Icon::create('MoreOutlined') + ->redirect('ex-admin/addons-webman-controller-ChannelPlayerController/index')) + ->headStyle(['height' => '0px', 'border-bottom' => '0px', 'min-height' => '0px']) + , 12); + $row->column( + Card::create([ + Row::create()->column(Icon::create('fas fa-user')->style(['fontSize' => '45px', 'color' => '#e91e63', 'marginRight' => '20px']), 6), + Row::create()->column(Statistic::create()->title(admin_trans('data_center.today_active_player')) + ->value($loginData['today'])->style(['fontSize' => '45px', 'text-align' => 'center']), 8) + ->redirect('ex-admin/addons-webman-controller-PlayerController/index',['active_player' => 1]), + Divider::create()->type('vertical')->style(['height' => '4.9em']), + Row::create()->column(Statistic::create()->title(admin_trans('data_center.mouth_active_player')) + ->value($loginData['month'])->style(['fontSize' => '45px', 'text-align' => 'center']), 8) + ->redirect('ex-admin/addons-webman-controller-PlayerController/index',['active_player' => 2]) + ])->bodyStyle(['display' => 'flex', 'align-items' => 'center'])->hoverable() + , 12); + $row->column( + Card::create([ + Row::create()->column(Icon::create('fas fa-money-bill')->style(['fontSize' => '45px', 'color' => '#409eff', 'marginRight' => '20px']), 6), + Row::create()->column(Statistic::create()->title(admin_trans('data_center.recharge_all')) + ->value(floatval($rechargeData['all']))->style(['fontSize' => '45px', 'text-align' => 'center']), 8), + ])->bodyStyle(['display' => 'flex', 'align-items' => 'center'])->hoverable()->extra(Icon::create('MoreOutlined') + ->redirect('ex-admin/addons-webman-controller-ChannelRechargeRecordController/index')) + ->headStyle(['height' => '0px', 'border-bottom' => '0px', 'min-height' => '0px']) + , 6); + + $row->column( + Card::create([ + Row::create()->column(Icon::create('fas fa-money-bill-alt')->style(['fontSize' => '45px', 'color' => '#ff9800', 'marginRight' => '20px']), 6), + Row::create()->column(Statistic::create()->title(admin_trans('data_center.withdraw_all')) + ->value(floatval($withdrawData['all']))->style(['fontSize' => '45px', 'text-align' => 'center']), 8), + ])->bodyStyle(['display' => 'flex', 'align-items' => 'center'])->hoverable()->extra(Icon::create('MoreOutlined') + ->redirect('ex-admin/addons-webman-controller-ChannelWithdrawRecordController/index')) + ->headStyle(['height' => '0px', 'border-bottom' => '0px', 'min-height' => '0px']) + , 6); + + $row->column(Card::create($this->rechargeChart())->hoverable(), 12); + $row->column(Card::create($this->withdrawChart())->hoverable(), 12); + $row->column(Card::create($this->playerChart())->hoverable(), 12); + }); + + return $layout; + } + + /** + * 获取活跃玩家数据 + * @return array + */ + public function loginData(): array + { + return [ + 'month' => PlayerLoginRecord::whereYear('created_at', date('Y'))->whereMonth('created_at', date('m'))->distinct('player_id')->count(), + 'today' => PlayerLoginRecord::whereDate('created_at', date('Y-m-d'))->distinct('player_id')->count(), + ]; + } + + /** + * 获取玩家数据 + * @return array + */ + public function playerData(): array + { + return [ + 'all' => Player::count('*'), + 'today' => Player::whereDate('created_at', date('Y-m-d'))->count(), + ]; + } + + /** + * 获取充值数据 + * @return array + */ + public function rechargeData(): array + { + return [ + 'all' => PlayerRechargeRecord::where('status', PlayerRechargeRecord::STATUS_RECHARGED_SUCCESS)->whereIn('type', [PlayerRechargeRecord::TYPE_REGULAR, PlayerRechargeRecord::TYPE_ARTIFICIAL])->sum('coins'), + 'regular' => PlayerRechargeRecord::where('status', PlayerRechargeRecord::STATUS_RECHARGED_SUCCESS)->where('type', PlayerRechargeRecord::TYPE_REGULAR)->sum('coins'), + 'artificial' => PlayerRechargeRecord::where('status', PlayerRechargeRecord::STATUS_RECHARGED_SUCCESS)->where('type', PlayerRechargeRecord::TYPE_ARTIFICIAL)->sum('coins'), + ]; + } + + /** + * 获取提现数据 + * @return array + */ + public function withdrawData(): array + { + return [ + 'all' => PlayerWithdrawRecord::where('status', PlayerWithdrawRecord::STATUS_SUCCESS)->sum('coins'), + 'self' => PlayerWithdrawRecord::where('status', PlayerWithdrawRecord::STATUS_SUCCESS)->where('type', PlayerWithdrawRecord::TYPE_SELF)->sum('coins'), + 'artificial' => PlayerWithdrawRecord::where('status', PlayerWithdrawRecord::STATUS_SUCCESS)->where('type', PlayerWithdrawRecord::TYPE_ARTIFICIAL)->sum('coins'), + ]; + } + + + /** + * 充值趋势图 + * @return LineChart + */ + public function rechargeChart(): LineChart + { + $range = Carbon::now()->subDays(15)->format('Y-m-d'); + $data = PlayerRechargeRecord::whereDate('created_at', '>=', $range) + ->where('status', PlayerRechargeRecord::STATUS_RECHARGED_SUCCESS) + ->whereIn('type', [PlayerRechargeRecord::TYPE_REGULAR, PlayerRechargeRecord::TYPE_ARTIFICIAL]) + ->groupBy('date') + ->orderBy('date', 'DESC') + ->get([ + DB::raw('Date(`created_at`) as date'), + DB::raw('SUM(`coins`) as value') + ]) + ->toArray(); + $data = $data ? array_column($data, 'value', 'date') : []; + $xAxis = []; + $yAxis = []; + for ($i = 14; $i >= 0; $i--) { + $date = Carbon::now()->subDays($i)->format('Y-m-d'); + $xAxis[] = $date; + $yAxis[] = $data[$date] ?? 0; + } + + return LineChart::create() + ->height('280px') + ->hideDateFilter() + ->header(Html::create(admin_trans('data_center.recharge_chart'))->tag('h2')->style(['text-align' => 'center'])) + ->xAxis($xAxis) + ->data(admin_trans('data_center.recharge_amount'), $yAxis); + } + + /** + * 提现趋势图 + * @return LineChart + */ + public function withdrawChart(): LineChart + { + $range = Carbon::now()->subDays(15)->format('Y-m-d'); + $data = PlayerWithdrawRecord::whereDate('created_at', '>=', $range) + ->where('status', PlayerWithdrawRecord::STATUS_SUCCESS) + ->groupBy('date') + ->orderBy('date', 'DESC') + ->get([ + DB::raw('Date(`created_at`) as date'), + DB::raw('SUM(`coins`) as value') + ]) + ->toArray(); + $data = $data ? array_column($data, 'value', 'date') : []; + $xAxis = []; + $yAxis = []; + + for ($i = 14; $i >= 0; $i--) { + $date = Carbon::now()->subDays($i)->format('Y-m-d'); + $xAxis[] = $date; + $yAxis[] = $data[$date] ?? 0; + } + + return LineChart::create() + ->height('280px') + ->hideDateFilter() + ->header(Html::create(admin_trans('data_center.withdraw_chart'))->tag('h2')->style(['text-align' => 'center'])) + ->xAxis($xAxis) + ->data(admin_trans('data_center.withdraw_amount'), $yAxis); + } + + /** + * 上传 + * @return Response|void + */ + public function myEditorUpload() + { + $file = request()->file('file'); + if ($file && $file->isValid()) { + $size = $file->getSize(); + if ($file->getSize() >= 1024 * 1024) { + return jsonFailResponse(trans('image_upload_size_fail', ['{size}' => '1M'], 'message')); + } + $extension = $file->getUploadExtension(); + if (!in_array($extension, ['png', 'jpg', 'jpeg'])) { + return jsonFailResponse(trans('image_upload_size_fail', ['{size}' => '1M'], 'message')); + } + $uploadName = $file->getUploadName(); + $basePath = public_path() . '/storage/' . date('Ymd') . DIRECTORY_SEPARATOR; + $baseUrl = env('APP_URL', 'http://127.0.0.1:8787') . '/storage/' . date('Ymd') . '/'; + $uniqueId = hash_file('md5', $file->getPathname()); + $saveFilename = $uniqueId . '.' . $file->getUploadExtension(); + $savePath = $basePath . $saveFilename; + $file->move($savePath); + + return jsonSuccessResponse('success', [ + 'origin_name' => $uploadName, + 'save_name' => $saveFilename, + 'save_path' => $savePath, + 'url' => $baseUrl . $saveFilename, + 'unique_id' => $uniqueId, + 'size' => $size, + 'mime_type' => $file->getUploadMimeType(), + 'extension' => $extension, + ]); + } + } + + /** + * 新增玩家 + * @return BarChart + */ + public function playerChart(): BarChart + { + $range = Carbon::now()->subDays(15)->format('Y-m-d'); + $data = Player::whereDate('created_at', '>=', $range) + ->groupBy('date') + ->orderBy('date', 'DESC') + ->get([ + DB::raw('Date(`created_at`) as date'), + DB::raw('COUNT(`id`) as value') + ]) + ->toArray(); + $data = $data ? array_column($data, 'value', 'date') : []; + $xAxis = []; + $yAxis = []; + for ($i = 14; $i >= 0; $i--) { + $date = Carbon::now()->subDays($i)->format('Y-m-d'); + $xAxis[] = $date; + $yAxis[] = $data[$date] ?? 0; + } + + return BarChart::create() + ->height('280px') + ->hideDateFilter() + ->header(Html::create(admin_trans('data_center.player_chart'))->tag('h2')->style(['text-align' => 'center'])) + ->xAxis($xAxis) + ->data(admin_trans('data_center.player_amount'), $yAxis); + } +} \ No newline at end of file diff --git a/addons/webman/controller/ChannelPlayGameRecordController.php b/addons/webman/controller/ChannelPlayGameRecordController.php new file mode 100644 index 0000000..75a3f95 --- /dev/null +++ b/addons/webman/controller/ChannelPlayGameRecordController.php @@ -0,0 +1,91 @@ +model = plugin()->webman->config('database.draw_records_model'); + } + + /** + * 玩家游戏记录 + * @group channel + * @auth true + */ + public function index(): Grid + { + return Grid::create(new $this->model, function (Grid $grid) { + $grid->title(admin_trans('play_game_record.title')); + $grid->model()->orderBy('created_at', 'desc'); + $exAdminFilter = Request::input('ex_admin_filter', []); + if (isset($exAdminFilter['created_at_start']) && !empty($exAdminFilter['created_at_start'])) { + $grid->model()->whereDate('created_at', '>=', $exAdminFilter['created_at_start']); + } + if (isset($exAdminFilter['created_at_end']) && !empty($exAdminFilter['created_at_end'])) { + $grid->model()->whereDate('created_at', '<=', $exAdminFilter['created_at_end']); + } + $grid->autoHeight(); + $grid->bordered(true); + $grid->hideAction(); + $grid->hideDelete(); + $grid->hideDeleteSelection(); + $grid->hideSelection(); + $grid->column('id', admin_trans('play_game_record.fields.id'))->fixed(true)->align('center'); + $grid->column('player.name', admin_trans('player.fields.name'))->display(function ($val, DrawRecord $data) { + $image = !empty($data->player->avatar) ? Avatar::create()->src(is_numeric($data->player->avatar) ? config('def_avatar.' . $data->player->avatar) : $data->player->avatar) : Avatar::create()->icon(Icon::create('UserOutlined')); + return Html::create()->content([ + $image, + Html::div()->content($val), + ]); + })->fixed(true)->align('center'); + $grid->column('channel.name', admin_trans('channel.fields.name'))->align('center'); + $grid->column('game_type', admin_trans('game.fields.game_type'))->display(function ($val) { + return $val ? admin_trans('game.game_type.' . $val) : admin_trans('game.nu_set'); + })->align('center'); + $grid->column('prize_name', admin_trans('prize.fields.name'))->align('center'); + $grid->column('prize_type', admin_trans('prize.fields.type'))->display(function ($val) { + return $val ? admin_trans('prize.prize_type.' . $val) : admin_trans('prize.nu_set'); + })->align('center'); + $grid->column('created_at', admin_trans('play_game_record.fields.create_at'))->align('center'); + $grid->filter(function (Filter $filter) { + $filter->like()->text('player.name')->placeholder(admin_trans('player.fields.name')); + $filter->eq()->select('game_type') + ->placeholder(admin_trans('play_game_record.fields.game_type')) + ->showSearch() + ->style(['width' => '200px']) + ->dropdownMatchSelectWidth() + ->options([ + Game::GAME_TYPE_EGG => admin_trans('game.game_type.' . Game::GAME_TYPE_EGG), + Game::GAME_TYPE_TURNTABLE => admin_trans('game.game_type.' . Game::GAME_TYPE_TURNTABLE), + Game::GAME_TYPE_BLINDBOX => admin_trans('game.game_type.' . Game::GAME_TYPE_BLINDBOX), + Game::GAME_TYPE_TICKET => admin_trans('game.game_type.' . Game::GAME_TYPE_TICKET), + Game::GAME_TYPE_LOTTERY => admin_trans('game.game_type.' . Game::GAME_TYPE_LOTTERY), + Game::GAME_TYPE_DICE => admin_trans('game.game_type.' . Game::GAME_TYPE_DICE), + ]); + $filter->form()->hidden('created_at_start'); + $filter->form()->hidden('created_at_end'); + $filter->form()->dateRange('created_at_start', 'created_at_end', '')->placeholder([admin_trans('public_msg.created_at_start'), admin_trans('public_msg.created_at_end')]); + }); + $grid->quickSearch(); + }); + } +} diff --git a/addons/webman/controller/ChannelPlayerController.php b/addons/webman/controller/ChannelPlayerController.php new file mode 100644 index 0000000..0481b6e --- /dev/null +++ b/addons/webman/controller/ChannelPlayerController.php @@ -0,0 +1,1310 @@ +model = plugin()->webman->config('database.player_model'); + $this->playerTag = plugin()->webman->config('database.player_tag_model'); + $this->withdraw = plugin()->webman->config('database.player_withdraw_record_model'); + $this->recharge = plugin()->webman->config('database.player_recharge_record_model'); + $this->promoter = plugin()->webman->config('database.player_promoter_model'); + $this->playerChipRecord = plugin()->webman->config('database.player_chip_record_model'); + $this->playerActivityPhaseRecord = plugin()->webman->config('database.player_activity_phase_record_model'); + $this->playerLotteryRecord = plugin()->webman->config('database.player_lottery_record_model'); + $this->playerDeliveryRecord = plugin()->webman->config('database.player_delivery_record_model'); + } + + /** + * 渠道玩家 + * @auth true + * @group channel + * @return Grid + */ + public function index(): Grid + { + /** @var Channel $channel */ + $channel = Channel::where('department_id', Admin::user()->department_id)->first(); + return Grid::create(new $this->model(), function (Grid $grid) use ($channel) { + $grid->title(admin_trans('player.title')); + $requestFilter = Request::input('ex_admin_filter', []); + if (isset($requestFilter['search_type']) && !empty($requestFilter['search_type'])) { + $grid->model()->where('is_coin', $requestFilter['search_type']); + } + if (isset($requestFilter['created_at_start']) && !empty($requestFilter['created_at_start'])) { + $grid->model()->where('player.created_at', '>=', $requestFilter['created_at_start']); + } + if (isset($requestFilter['created_at_end']) && !empty($requestFilter['created_at_end'])) { + $grid->model()->where('player.created_at', '<=', $requestFilter['created_at_end']); + } + $activePlayer = Request::input('active_player') ?? null; + if (!empty($activePlayer)){ + $grid->model()->whereHas('the_last_player_login_record', function ($query) use ($activePlayer) { + if ($activePlayer == 1){ + $query->whereDate('created_at', date('Y-m-d')); + } else { + $query->whereYear('created_at', date('Y')) + ->whereMonth('created_at', date('m')); + } + }); + } + $subQuery = PlayerDeliveryRecord::select('player_id', Db::raw('sum(amount) as amount')) + ->whereNotIn('type', [1,2,3,4,5,9,10]) + ->groupBy('player_id'); + $grid->model()->with(['player_register_record', 'the_last_player_login_record']) + ->select([ + 'player.*', + 'player_extend.recharge_amount', + 'player_extend.withdraw_amount', + 'player_platform_cash.money as money', + 'record.amount as present_coins' + ]) + ->leftjoin('player_extend', 'player.id', '=', 'player_extend.player_id') + ->leftjoin('player_platform_cash', 'player.id', '=', 'player_platform_cash.player_id') + ->leftjoinSub($subQuery, 'record', function ($join) { + $join->on('player.id', '=', 'record.player_id'); + }) + ->orderBy('player.id', 'desc'); + $grid->autoHeight(); + $grid->bordered(); + $grid->column('id', admin_trans('player.fields.id'))->fixed(true)->align('center'); + $grid->column('name', admin_trans('player.fields.name'))->display(function ($val, Player $data) { + $image = $data->avatar ? Avatar::create()->src(is_numeric($data->avatar) ? config('def_avatar.' . $data->avatar) : $data->avatar) : Avatar::create()->icon(Icon::create('UserOutlined')); + return Html::create()->content([ + $image, + Html::div()->content($val), + ]); + })->fixed(true)->align('center'); + $grid->column('uuid', admin_trans('player.fields.uuid'))->fixed(true)->ellipsis(true)->align('center'); + $grid->column('phone', admin_trans('player.fields.phone'))->fixed(true)->ellipsis(true)->align('center'); + $grid->column('money', admin_trans('player_platform_cash.platform_name.' . PlayerPlatformCash::PLATFORM_SELF))->display(function ($val, Player $data) { + return Tag::create($val)->color('orange')->style(['cursor' => 'pointer'])->modal([$this, 'playerRecord'], ['id' => $data->id])->width('70%')->title($data->name . ' ' . $data->uuid); + })->ellipsis(true)->align('center')->sortable(); + $grid->column('player_extend.recharge_amount', admin_trans('player_extend.fields.recharge_amount'))->ellipsis(true)->align('center')->sortable(); + $grid->column('player_extend.withdraw_amount', admin_trans('player_extend.fields.withdraw_amount'))->ellipsis(true)->align('center')->sortable(); + $grid->column('status', admin_trans('player.fields.status'))->switch()->ellipsis(true)->align('center'); + $grid->column('player.created_at', admin_trans('player.fields.created_at'))->display(function ($val, Player $data) { + return Html::create()->content([ + Html::div()->content(date('Y-m-d H:i:s', strtotime($data->created_at))), + Html::div()->content($data->player_register_record->ip ?? ''), + Html::div()->content($data->player_register_record->country_name ?? ''), + ]); + })->ellipsis(true)->align('center')->sortable(); + $grid->column('last_login', admin_trans('player.fields.player_login_record'))->display(function ($val, Player $data) { + return Html::create()->content([ + Html::div()->content($val ?? (!empty($data->the_last_player_login_record->created_at) ? date('Y-m-d H:i:s', strtotime($data->the_last_player_login_record->created_at)) : '')), + Html::div()->content($data->the_last_player_login_record->ip ?? ''), + Html::div()->content($data->the_last_player_login_record->country_name ?? ''), + ]); + })->ellipsis(true)->align('center')->sortable(); + $grid->filter(function (Filter $filter) use ($channel) { + $filter->like()->text('uuid')->placeholder(admin_trans('player.fields.uuid')); + $filter->like()->text('name')->placeholder(admin_trans('player.fields.name')); + $filter->like()->text('phone')->placeholder(admin_trans('player.fields.phone')); + $filter->eq()->select('level') + ->showSearch() + ->style(['width' => '200px']) + ->dropdownMatchSelectWidth() + ->placeholder(admin_trans('player.fields.level')) + ->options(playerLevelOptions()); + $filter->form()->hidden('created_at_start'); + $filter->form()->hidden('created_at_end'); + $filter->form()->dateTimeRange('created_at_start', 'created_at_end', '')->placeholder([admin_trans('public_msg.created_at_start'), admin_trans('public_msg.created_at_end')]); + }); + $grid->expandFilter(); + $grid->hideDelete(); + $grid->hideSelection(); + $grid->tools( + $grid->addButton()->modal($this->form()) + ); + $grid->actions(function (Actions $actions, Player $data) use ($channel) { + $actions->edit()->modal($this->form())->width('60%'); + $actions->hideDel(); + $dropdown = $actions->dropdown(); + if ($channel->wallet_action_status == 1) { + $dropdown->append(admin_trans('player.wallet.player_wallet'), 'MoneyCollectFilled') + ->modal($this->playerWallet([ + 'id' => $data->id, + 'money' => $data->wallet->money ?? 0, + ]))->width('600px'); + } + $dropdown->append(admin_trans('player.wallet.artificial_recharge'), 'TransactionOutlined') + ->modal($this->artificialRecharge([ + 'id' => $data->id, + 'money' => $data->wallet->money ?? 0, + ]))->width('600px')->title(Html::create(admin_trans('player.wallet.artificial_recharge'))->content( + ToolTip::create(Icon::create('QuestionCircleOutlined')->style(['marginLeft' => '5px', 'cursor' => 'pointer']))->title(admin_trans('player.wallet.artificial_recharge_tip')) + )); + $dropdown->append(admin_trans('player.wallet.artificial_withdrawal'), 'PayCircleOutlined') + ->modal($this->artificialWithdrawal([ + 'id' => $data->id, + 'money' => $data->wallet->money ?? 0, + ]))->width('600px')->title(Html::create(admin_trans('player.wallet.artificial_withdrawal'))->content( + ToolTip::create(Icon::create('QuestionCircleOutlined')->style(['marginLeft' => '5px', 'cursor' => 'pointer']))->title(admin_trans('player.wallet.artificial_withdrawal_tip')) + )); + }); + $grid->tools([ + ToolTip::create(Icon::create('QuestionCircleOutlined')->style(['margin-left' => '10px', 'margin-top' => '4px', 'line-height' => '28px', 'font-size' => '15px', 'cursor' => 'pointer']))->title(admin_trans('player.set_promoter_tip')) + ]); + $grid->updateing(function ($ids, $data) { + if (isset($ids[0]) && isset($data['player_extend'])) { + if (PlayerExtend::updateOrCreate( + ['player_id' => $ids[0]], + $data['player_extend'] + )) { + return message_success(admin_trans('player.remark_edit_success')); + } + } + }); + }); + } + + /** + * 人工提现 + * @auth true + * @group channel + * @param $data + * @return Form + */ + public function artificialWithdrawal($data): Form + { + return Form::create(new $this->model, function (Form $form) use ($data) { + $form->number('coins', admin_trans('player_withdraw_record.fields.coins')) + ->min(0) + ->max(100000000) + ->precision(2) + ->style(['width' => '100%']) + ->addonBefore(admin_trans('player.wallet.wallet') . ' ' . $data['money'] ?? 0) + ->required(); + $form->number('money', admin_trans('player_withdraw_record.fields.money')) + ->min(0) + ->max(100000000) + ->precision(2) + ->style(['width' => '100%']); + $form->text('currency', admin_trans('player_withdraw_record.fields.currency'))->maxlength(10); + $form->text('bank_name', admin_trans('player_withdraw_record.fields.bank_name'))->maxlength(50); + $form->text('account', admin_trans('player_withdraw_record.fields.account'))->maxlength(50); + $form->text('account_name', admin_trans('player_withdraw_record.fields.account_name'))->maxlength(50); + $form->textarea('remark', admin_trans('player_withdraw_record.fields.remark'))->maxlength(255)->bindAttr('rows', 4); + $form->layout('vertical'); + $form->hidden('id')->value($data['id']); + $form->saving(function (Form $form) { + /** @var Player $player */ + $player = Player::where('id', $form->input('id'))->whereNull('deleted_at')->first(); + if (empty($player)) { + return message_error(admin_trans('player.not_fount')); + } + if ($player->status == 0) { + return message_error(admin_trans('player.disable')); + } + if ($player->wallet->money < $form->input('coins')) { + return message_error(admin_trans('player.insufficient_balance')); + } + DB::beginTransaction(); + try { + // 生成订单 + $playerWithdrawRecord = new PlayerWithdrawRecord(); + $playerWithdrawRecord->player_id = $player->id; + $playerWithdrawRecord->talk_user_id = $player->talk_user_id; + $playerWithdrawRecord->department_id = $player->department_id; + $playerWithdrawRecord->tradeno = createOrderNo(); + $playerWithdrawRecord->player_name = $player->name ?? ''; + $playerWithdrawRecord->player_phone = $player->phone ?? ''; + $playerWithdrawRecord->money = $form->input('money') ?? 0; + $playerWithdrawRecord->coins = $form->input('coins') ?? 0; + $playerWithdrawRecord->fee = 0; + $playerWithdrawRecord->inmoney = bcsub($playerWithdrawRecord->money, $playerWithdrawRecord->fee, 2); // 实际提现金额 + $playerWithdrawRecord->currency = $form->input('currency') ?? 0; + $playerWithdrawRecord->bank_name = $form->input('bank_name') ?? 0; + $playerWithdrawRecord->account = $form->input('account') ?? 0; + $playerWithdrawRecord->account_name = $form->input('account_name') ?? 0; + $playerWithdrawRecord->type = PlayerWithdrawRecord::TYPE_ARTIFICIAL; + $playerWithdrawRecord->status = PlayerWithdrawRecord::STATUS_SUCCESS; + $playerWithdrawRecord->finish_time = date('Y-m-d H:i:s'); + $playerWithdrawRecord->save(); + $beforeGameAmount = $player->wallet->money; + // 玩家钱包扣减 + $player->wallet->money = bcsub($player->wallet->money, $playerWithdrawRecord->coins, 2); + // 更新玩家统计 + $player->player_extend->withdraw_amount = bcadd($player->player_extend->withdraw_amount, $playerWithdrawRecord->coins, 2); + $player->push(); + //寫入金流明細 + $playerDeliveryRecord = new PlayerDeliveryRecord; + $playerDeliveryRecord->player_id = $playerWithdrawRecord->player_id; + $playerDeliveryRecord->department_id = $playerWithdrawRecord->department_id; + $playerDeliveryRecord->target = $playerWithdrawRecord->getTable(); + $playerDeliveryRecord->target_id = $playerWithdrawRecord->id; + $playerDeliveryRecord->type = PlayerDeliveryRecord::TYPE_WITHDRAWAL; + $playerDeliveryRecord->source = 'artificial_withdrawal'; + $playerDeliveryRecord->amount = $playerWithdrawRecord->coins; + $playerDeliveryRecord->amount_before = $beforeGameAmount; + $playerDeliveryRecord->amount_after = $player->wallet->money; + $playerDeliveryRecord->tradeno = $playerWithdrawRecord->tradeno ?? ''; + $playerDeliveryRecord->remark = $playerWithdrawRecord->remark ?? ''; + $playerDeliveryRecord->save(); + DB::commit(); + } catch (\Exception $e) { + DB::rollBack(); + return message_error(admin_trans('player.artificial_withdrawal_error')); + } + return message_success(admin_trans('player.artificial_withdrawal_success')); + }); + }); + } + + /** + * 人工充值 + * @auth true + * @group channel + * @param $data + * @return Form + */ + public function artificialRecharge($data): Form + { + return Form::create(new $this->model, function (Form $form) use ($data) { + $form->number('coins', admin_trans('player_recharge_record.fields.coins')) + ->min(0) + ->max(100000000) + ->precision(2) + ->style(['width' => '100%']) + ->addonBefore(admin_trans('player.wallet.wallet') . ' ' . $data['money'] ?? 0) + ->required(); + $form->number('money', admin_trans('player_recharge_record.fields.money')) + ->min(0) + ->max(100000000) + ->precision(2) + ->style(['width' => '100%']); + $form->text('currency', admin_trans('player_recharge_record.fields.currency'))->maxlength(10); + $form->textarea('remark', admin_trans('player_recharge_record.fields.remark'))->maxlength(255)->bindAttr('rows', 4); + $form->layout('vertical'); + $form->hidden('id')->value($data['id']); + $form->saving(function (Form $form) { + /** @var Player $player */ + $player = Player::where('id', $form->input('id'))->whereNull('deleted_at')->first(); + if (empty($player)) { + return message_error(admin_trans('player.not_fount')); + } + if ($player->status == 0) { + return message_error(admin_trans('player.disable')); + } + DB::beginTransaction(); + try { + $beforeGameAmount = $player->wallet->money; + // 生成订单 + $playerRechargeRecord = new PlayerRechargeRecord(); + $playerRechargeRecord->player_id = $player->id; + $playerRechargeRecord->department_id = $player->department_id; + $playerRechargeRecord->tradeno = createOrderNo(); + $playerRechargeRecord->player_name = $player->name ?? ''; + $playerRechargeRecord->money = $form->input('money') ?? 0; + $playerRechargeRecord->inmoney = $form->input('money') ?? 0; + $playerRechargeRecord->currency = $form->input('currency') ?? ''; + $playerRechargeRecord->type = PlayerRechargeRecord::TYPE_ARTIFICIAL; + $playerRechargeRecord->coins = $form->input('coins'); + $playerRechargeRecord->status = PlayerRechargeRecord::STATUS_RECHARGED_SUCCESS; + $playerRechargeRecord->remark = $form->input('remark'); + $playerRechargeRecord->finish_time = date('Y-m-d H:i:s'); + $playerRechargeRecord->user_id = Admin::id() ?? 0; + $playerRechargeRecord->user_name = !empty(Admin::user()) ? Admin::user()->toArray()['username'] : ''; + $playerRechargeRecord->save(); + $player->wallet->money = bcadd($player->wallet->money, $playerRechargeRecord->coins, 2); + $player->player_extend->recharge_amount = bcadd($player->player_extend->recharge_amount, $playerRechargeRecord->coins, 2); + $player->push(); + + //寫入金流明細 + $playerDeliveryRecord = new PlayerDeliveryRecord; + $playerDeliveryRecord->player_id = $playerRechargeRecord->player_id; + $playerDeliveryRecord->department_id = $playerRechargeRecord->department_id; + $playerDeliveryRecord->target = $playerRechargeRecord->getTable(); + $playerDeliveryRecord->target_id = $playerRechargeRecord->id; + $playerDeliveryRecord->type = PlayerDeliveryRecord::TYPE_RECHARGE; + $playerDeliveryRecord->source = 'artificial_recharge'; + $playerDeliveryRecord->amount = $playerRechargeRecord->coins; + $playerDeliveryRecord->amount_before = $beforeGameAmount; + $playerDeliveryRecord->amount_after = $player->wallet->money; + $playerDeliveryRecord->tradeno = $playerRechargeRecord->tradeno ?? ''; + $playerDeliveryRecord->remark = $playerRechargeRecord->remark ?? ''; + $playerDeliveryRecord->save(); + + DB::commit(); + } catch (\Exception $e) { + DB::rollBack(); + return message_error(admin_trans('player.artificial_recharge_error')); + } + return message_success(admin_trans('player.artificial_recharge_success')); + }); + }); + } + + /** + * 玩家钱包 + * @auth true + * @group channel + * @param $data + * @return Form + */ + public function playerWallet($data): Form + { + return Form::create(new $this->model, function (Form $form) use ($data) { + $form->hidden('id')->default($data['id']); + $form->row(function (Form $form) { + $type = $form->getBindField('type'); + $form->radio('type', admin_trans('player.wallet.type')) + ->button() + ->disabled($form->isEdit()) + ->default(PlayerMoneyEditLog::TYPE_INCREASE) + ->options([ + admin_trans('player.wallet.deduct'), + admin_trans('player.wallet.increase'), + ])->required()->span(7); + $form->hidden('type')->bindAttr('value', $type) + ->when(PlayerMoneyEditLog::TYPE_DEDUCT, function (Form $form) { + $form->select('deduct_action', admin_trans('player.wallet.action')) + ->remoteOptions(admin_url([$this, 'getTranOptions'], ['type' => PlayerMoneyEditLog::TYPE_DEDUCT])) + ->required()->span(16)->style(['margin-left' => '22px']); + })->when(PlayerMoneyEditLog::TYPE_INCREASE, function (Form $form) { + $form->select('increase_action', admin_trans('player.wallet.action')) + ->remoteOptions(admin_url([$this, 'getTranOptions'], ['type' => PlayerMoneyEditLog::TYPE_INCREASE])) + ->required()->span(16)->style(['margin-left' => '22px']); + }); + }); + $form->number('money', admin_trans('player.wallet.money'))->min(0)->max(100000000)->precision(2)->style(['width' => '100%'])->addonBefore(admin_trans('player.wallet.wallet') . ' ' . $data['money'] ?? 0)->required(); + $form->textarea('remark', admin_trans('player.wallet.textarea'))->maxlength(255)->bindAttr('rows', 4)->required(); + $form->actions()->hideResetButton(); + $form->saving(function (Form $form) use ($data) { + /** @var Channel $channel */ + $channel = Channel::where('department_id', Admin::user()->department_id)->first(); + if ($channel->wallet_action_status == 0) { + return message_error(admin_trans('player.wallet_action_status_has_closed')); + } + return $this->store([ + 'id' => $form->input('id'), + 'type' => $form->input('type'), + 'deduct_action' => $form->input('deduct_action'), + 'increase_action' => $form->input('increase_action'), + 'money' => $form->input('money'), + 'remark' => $form->input('remark'), + ]); + }); + $form->layout('vertical'); + }); + } + + /** + * 钱包操作 + * @param $data + * @return Msg + */ + public function store($data): Msg + { + try { + DB::beginTransaction(); + playerManualSystem($data); + DB::commit(); + } catch (\Exception $e) { + DB::rollBack(); + return message_error(admin_trans('player.wallet.wallet_operation_failed')); + } + return message_success(admin_trans('player.wallet.wallet_operation_success')); + } + + /** + * 钱包操作类型 + * @param $type + * @return mixed + */ + public function getTranOptions($type) + { + $options = []; + if ($type == PlayerMoneyEditLog::TYPE_INCREASE) { + $transactionType = [ + PlayerMoneyEditLog::ACTIVITY_GIVE, + PlayerMoneyEditLog::ADMIN_INCREASE, + PlayerMoneyEditLog::OTHER + ]; + } else { + $transactionType = [ + PlayerMoneyEditLog::ADMIN_DEDUCT, + PlayerMoneyEditLog::OTHER + ]; + } + + foreach ($transactionType as $item) { + $options[] = [ + 'value' => $item, + 'label' => admin_trans('player.wallet.wallet_type.' . $item), + ]; + } + + return Response::success($options); + } + + /** + * 处理标签 + * @param array $value + * @return Html + */ + public function handleTagIds(array $value): Html + { + $options = $this->getPlayerTagOptions($value); + $html = Html::create(); + foreach ($options as $option) { + $html->content( + Tag::create($option) + ->color('success') + ); + } + return $html; + } + + /** + * 获取玩家标签选项(筛选id) + * @param array $ids + * @return array + */ + public function getPlayerTagOptions(array $ids = []): array + { + $idsStr = json_encode($ids); + $cacheKey = md5("player_tag_options_ids_$idsStr"); + if (Cache::has($cacheKey)) { + return Cache::get($cacheKey); + } else { + if (!empty($ids)) { + $data = (new PlayerTag())->whereIn('id', $ids)->select(['name', 'id'])->get()->toArray(); + $data = $data ? array_column($data, 'name', 'id') : []; + Cache::set($cacheKey, $data, 24 * 60 * 60); + + return $data; + } + return []; + } + } + + /** + * 获取玩家标签(筛选id) + * @return array + */ + public function getPlayerTagOptionsFilter(): array + { + $cacheKey = "doc_player_tag_options_filter"; + if (Cache::has($cacheKey)) { + return Cache::get($cacheKey); + } else { + $data = (new PlayerTag())->select(['name', 'id'])->get()->toArray(); + $data = $data ? array_column($data, 'name', 'id') : []; + Cache::set($cacheKey, $data, 24 * 60 * 60); + + return $data; + } + } + + /** + * 渠道玩家 + * @auth true + * @group channel + * @return Form + */ + public function form(): Form + { + $options = []; + foreach (config('def_avatar') as $key => $item) { + $options[$key] = Avatar::create()->style(['padding' => '1px'])->src($item)->shape('square'); + } + return Form::create(new $this->model(), function (Form $form) use ($options) { + if ($form->isEdit()) { + $form->title(admin_trans('player.details')); + $form->row(function (Form $form) use ($options) { + $form->column(function (Form $form) use ($options) { + $form->text('phone', admin_trans('player.fields.phone'))->maxlength(50)->ruleNumber() + ->rule([ + (string)Rule::unique(plugin()->webman->config('database.player_model'))->ignore($form->input('id')) => admin_trans('player.phone_exist'), + ]) + ->disabled(true); + $form->text('name', admin_trans('player.fields.name'))->maxlength(50); + $form->radio('avatar_type', admin_trans('player.avatar_type')) + ->button() + ->default(is_numeric($form->driver()->get('avatar')) ? 2 : 1) + ->options([ + 1 => admin_trans('player.upload_avatar'), + 2 => admin_trans('player.def_avatar') + ]) + ->when(1, function (Form $form) { + $form->file('avatar', admin_trans('player.fields.avatar')) + ->value(is_numeric($form->driver()->get('avatar')) ? '' : $form->driver()->get('avatar')) + ->ext('jpg,png,jpeg') + ->type('image') + ->fileSize('1m') + ->hideFinder() + ->paste(); + })->when(2, function (Form $form) use ($options) { + $form->radio('def_avatar', admin_trans('player.def_avatar')) + ->default(1) + ->options($options); + }); + $form->text('player_extend.id_number', admin_trans('player_extend.fields.id_number'))->ruleAlphaNum()->maxlength(20); + $form->desc('the_last_player_login_record.created_at', admin_trans('player.fields.login_at'))->value($form->input('the_last_player_login_record.created_at') ? date('Y-m-d H:i:s', strtotime($form->input('the_last_player_login_record.created_at'))) : ''); + $form->desc('created_at', admin_trans('player.fields.created_at'))->value($form->input('created_at') ? date('Y-m-d H:i:s', strtotime($form->input('created_at'))) : ''); + $form->desc('player_register_record.ip', admin_trans('player.fields.register_ip')); + $form->desc('player_register_record.register_domain', admin_trans('player.fields.register_domain')); + })->span(12); + + $form->column(function (Form $form) { + $form->text('player_extend.address', admin_trans('player_extend.fields.address'))->maxlength(255); + $form->date('player_extend.birthday', admin_trans('player_extend.fields.birthday')); + $form->text('player_extend.email', admin_trans('player_extend.fields.email'))->ruleEmail()->maxlength(20); + $form->text('player_extend.line', admin_trans('player_extend.fields.line'))->ruleAlphaNum()->maxlength(20); + $form->textarea('player_extend.remark', admin_trans('player_extend.fields.remark')) + ->showCount() + ->rule(['max:255' => admin_trans('player_extend.fields.remark')]); + $playerBank = PlayerBank::query()->where('player_id', $form->driver()->get('id'))->get()->toArray(); + foreach ($playerBank as $key => $item) { + $form->row(function (Form $form) use ($item, $key) { + $form->text('bank_name'.$key, admin_trans('player.bank_name')) + ->value($item['bank_name'] ?? 0) + ->disabled(true); + $form->text('account_name'.$key, admin_trans('player.account_name')) + ->value($item['account_name'] ?? 0) + ->disabled(true); + $form->text('account'.$key, admin_trans('player.account')) + ->value($item['account'] ?? 0) + ->disabled(true); + }); + } + })->span(12); + }); + } else { + $form->title(admin_trans('player.add_player')); + $form->text('phone', admin_trans('player.fields.phone'))->maxlength(50)->ruleAlphaNum()->required(); + $form->radio('avatar_type', admin_trans('player.avatar_type')) + ->button() + ->default(2) + ->options([ + 1 => admin_trans('player.upload_avatar'), + 2 => admin_trans('player.def_avatar') + ]) + ->when(1, function (Form $form) { + $form->image('avatar', admin_trans('player.fields.avatar'))->ext('jpg,png,jpeg')->fileSize('1m'); + })->when(2, function (Form $form) use ($options) { + $form->radio('def_avatar', admin_trans('player.def_avatar')) + ->default(1) + ->options($options); + }); + $form->select('country_code', admin_trans('player.fields.country_code'))->options([ + PhoneSmsLog::COUNTRY_CODE_MY => PhoneSmsLog::COUNTRY_CODE_MY, + ])->required(); + $form->text('name', admin_trans('player.fields.name'))->maxlength(50)->required(); + $form->password('password', admin_trans('player.new_password')) + ->rule([ + 'confirmed' => admin_trans('player.password_confim_validate'), + 'min:6' => admin_trans('player.password_min_number') + ]) + ->value('') + ->required(); + $form->password('password_confirmation', admin_trans('player.confim_password')) + ->required(); + } + $form->saved(function () { + return message_success(admin_trans('player.save_player_info_success')); + }); + $form->saving(function (Form $form) { + if ($form->isEdit()) { + $orgData = $form->driver()->get(); + /** @var Player $player */ + $player = Player::find($orgData['id']); + if (empty($player)) { + return message_error(admin_trans('player.not_fount')); + } + DB::beginTransaction(); + try { + $player->name = $form->input('name'); + $player->avatar = $form->input('avatar_type') == 1 ? $form->input('avatar') : $form->input('def_avatar'); + $player->save(); + PlayerExtend::query()->updateOrCreate(['player_id' => $orgData['id']], [ + 'address' => $form->input('player_extend.address'), + 'birthday' => $form->input('player_extend.birthday'), + 'id_number' => $form->input('player_extend.id_number'), + 'email' => $form->input('player_extend.email'), + 'line' => $form->input('player_extend.line'), + 'remark' => $form->input('player_extend.remark'), + 'player_id' => $orgData['id']]); + DB::commit(); + } catch (\Exception $e) { + DB::rollBack(); + return message_error($e->getMessage()); + } + return message_success(admin_trans('player.save_player_info_success')); + } else { + $phone = $form->input('phone'); + $password = $form->input('password'); + $country_code = $form->input('country_code'); + /** @var $player Player */ + $player = Player::query()->where('phone', $country_code.$phone)->first(); + if (!empty($player)) { + return message_error(admin_trans('player.phone_has_register')); + } + /** @var Channel $channel */ + $channel = Channel::where('department_id', Admin::user()->department_id)->first(); + if (empty($channel)) { + return message_error(admin_trans('channel.not_fount')); + } + DB::beginTransaction(); + try { + $player = new Player(); + $player->phone = $country_code.$phone; + $player->name = $form->input('name'); + if ($form->input('avatar_type') == 1) { + $player->avatar = $form->input('avatar') ?? config('def_avatar.1'); + } + if ($form->input('avatar_type') == 2) { + $player->avatar = $form->input('def_avatar') ?? config('def_avatar.1'); + } + $player->country_code = $country_code; + $player->type = Player::TYPE_PLAYER; + $player->currency = $channel->currency; + $player->password = $password; + $player->uuid = gen_uuid(); + $player->department_id = Admin::user()->department_id; + $player->recommend_code = createCode(); + $player->save(); + + addPlayerExtend($player, [ + 'email' => $data['email'] ?? '' + ]); + addRegisterRecord($player->id, PlayerRegisterRecord::TYPE_ADMIN, $player->department_id); + + DB::commit(); + } catch (\Exception $e) { + DB::rollBack(); + return message_error($e->getMessage()); + } + return message_success(admin_trans('player.save_player_info_success')); + } + }); + }); + } + + /** + * 玩家记录 + * @param $id + * @auth true + * @group channel + * @return Card + */ + public function playerRecord($id): Card + { + $tabs = Tabs::create() + ->pane(admin_trans('player.player_recharge_record'), $this->rechargeRecord($id)) + ->pane(admin_trans('player.player_withdraw_record'), $this->withdrawalRecords($id)) + ->pane(admin_trans('player.player_delivery_record'), $this->playerDeliveryRecord($id)) + ->type('card'); + return Card::create($tabs); + } + + /** + * 钱包操作 + * @param $id + * @return Grid + */ + public function playerDeliveryRecord($id): Grid + { + return Grid::create(new $this->playerDeliveryRecord, function (Grid $grid) use ($id) { + $lang = Container::getInstance()->translator->getLocale(); + $grid->title(admin_trans('promoter_profit_record.player_activity_phase_record_title')); + $grid->model() + ->where('player_id', $id) + ->whereIn('type', [ + PlayerDeliveryRecord::TYPE_MODIFIED_AMOUNT_ADD, + PlayerDeliveryRecord::TYPE_MODIFIED_AMOUNT_DEDUCT, + ]) + ->orderBy('id', 'desc'); + $exAdminFilter = Request::input('ex_admin_filter', []); + if (!empty($exAdminFilter)) { + if (isset($exAdminFilter['created_at_start']) && !empty($exAdminFilter['created_at_start'])) { + $grid->model()->where('created_at', '>=', $exAdminFilter['created_at_start']); + } + if (isset($exAdminFilter['created_at_end']) && !empty($exAdminFilter['created_at_end'])) { + $grid->model()->where('created_at', '<=', $exAdminFilter['created_at_end']); + } + } + $grid->autoHeight(); + $grid->bordered(true); + $grid->column('id', admin_trans('player_delivery_record.fields.id'))->align('center'); + $grid->column('source', admin_trans('player_delivery_record.fields.source'))->display(function ($val, PlayerDeliveryRecord $data) use ($lang) { + switch ($data->type) { + case PlayerDeliveryRecord::TYPE_MODIFIED_AMOUNT_ADD: + case PlayerDeliveryRecord::TYPE_MODIFIED_AMOUNT_DEDUCT: + return Tag::create(trans($val, [], 'message', $lang))->color('red'); + default: + return ''; + } + })->align('center'); + $grid->column('type', admin_trans('player_delivery_record.fields.type')) + ->display(function ($value) { + switch ($value) { + case PlayerDeliveryRecord::TYPE_MODIFIED_AMOUNT_ADD: + $tag = Tag::create(admin_trans('player_delivery_record.type.' . PlayerDeliveryRecord::TYPE_MODIFIED_AMOUNT_ADD))->color('#2db7f5'); + break; + case PlayerDeliveryRecord::TYPE_MODIFIED_AMOUNT_DEDUCT: + $tag = Tag::create(admin_trans('player_delivery_record.type.' . PlayerDeliveryRecord::TYPE_MODIFIED_AMOUNT_DEDUCT))->color('#108ee9'); + break; + default: + $tag = ''; + } + return Html::create()->content([ + $tag + ]); + })->align('center')->sortable(); + $grid->column('amount', admin_trans('player_delivery_record.fields.amount'))->display(function ($val, PlayerDeliveryRecord $data) { + if ($data->amount == 0) { + return Html::create()->content([$val])->style(['color' => 'green']); + } + switch ($data->type) { + case PlayerDeliveryRecord::TYPE_MODIFIED_AMOUNT_DEDUCT: + return Html::create()->content(['-' . $val])->style(['color' => '#cd201f']); + default: + return Html::create()->content(['+' . $val])->style(['color' => 'green']); + } + })->align('center'); + $grid->column('user_name', admin_trans('player_delivery_record.fields.user_name'))->display(function ($val, PlayerDeliveryRecord $data) { + $name = '--'; + if (in_array($data->type, [PlayerDeliveryRecord::TYPE_MODIFIED_AMOUNT_ADD, PlayerDeliveryRecord::TYPE_MODIFIED_AMOUNT_DEDUCT])) { + $name = $data->user_name ?? '管理员'; + } + return Html::create()->content([ + Html::div()->content($name), + ]); + }); + $grid->column('created_at', admin_trans('player_delivery_record.fields.created_at'))->align('center')->ellipsis(true); + $grid->hideDelete(); + $grid->hideSelection(); + $grid->hideTrashed(); + $grid->actions(function (Actions $actions) { + $actions->hideDel(); + }); + $grid->filter(function (Filter $filter) { + $filter->eq()->select('type') + ->placeholder(admin_trans('player_delivery_record.fields.type')) + ->showSearch() + ->style(['width' => '200px']) + ->dropdownMatchSelectWidth() + ->options([ + PlayerDeliveryRecord::TYPE_MODIFIED_AMOUNT_ADD => admin_trans('player_delivery_record.type.' . PlayerDeliveryRecord::TYPE_MODIFIED_AMOUNT_ADD), + PlayerDeliveryRecord::TYPE_MODIFIED_AMOUNT_DEDUCT => admin_trans('player_delivery_record.type.' . PlayerDeliveryRecord::TYPE_MODIFIED_AMOUNT_DEDUCT), + ]); + $filter->form()->hidden('created_at_start'); + $filter->form()->hidden('created_at_end'); + $filter->form()->dateTimeRange('created_at_start', 'created_at_end', '')->placeholder([admin_trans('public_msg.created_at_start'), admin_trans('public_msg.created_at_end')]); + }); + }); + } + + /** + * 提现记录 + * @param $id + * @return Grid + */ + public function withdrawalRecords($id): Grid + { + return Grid::create(new $this->withdraw(), function (Grid $grid) use ($id) { + $grid->title(admin_trans('player_withdraw_record.title')); + $grid->model()->with(['player'])->where('player_id', $id)->where('status', PlayerWithdrawRecord::STATUS_SUCCESS)->orderBy('created_at', 'desc'); + $exAdminFilter = Request::input('ex_admin_filter', []); + if (!empty($exAdminFilter)) { + if (isset($exAdminFilter['created_at_start']) && !empty($exAdminFilter['created_at_start'])) { + $grid->model()->where('created_at', '>=', $exAdminFilter['created_at_start']); + } + if (isset($exAdminFilter['created_at_end']) && !empty($exAdminFilter['created_at_end'])) { + $grid->model()->where('created_at', '<=', $exAdminFilter['created_at_end']); + } + if (isset($exAdminFilter['finish_time_start']) && !empty($exAdminFilter['finish_time_start'])) { + $grid->model()->where('finish_time', '>=', $exAdminFilter['finish_time_start']); + } + if (isset($exAdminFilter['finish_time_end']) && !empty($exAdminFilter['finish_time_end'])) { + $grid->model()->where('finish_time', '<=', $exAdminFilter['finish_time_end']); + } + } + $grid->bordered(); + $grid->autoHeight(); + $grid->column('id', admin_trans('player_withdraw_record.fields.id'))->ellipsis(true)->align('center')->fixed(true); + $grid->column('player_phone', admin_trans('player_withdraw_record.fields.player_phone'))->display(function ($val, PlayerWithdrawRecord $data) { + $image = (isset($data->player->avatar) && !empty($data->player->avatar)) ? Avatar::create()->src($data->player->avatar) : Avatar::create()->icon(Icon::create('UserOutlined')); + return Html::create()->content([ + $image, + Html::div()->content($val) + ]); + })->align('center')->ellipsis(true)->fixed(true); + $grid->column('tradeno', admin_trans('player_withdraw_record.fields.tradeno'))->ellipsis(true)->copy()->align('center'); + $grid->column('money', admin_trans('player_withdraw_record.fields.money'))->display(function ($val, PlayerWithdrawRecord $data) { + return $val . ' ' . ($data->currency == 'TALK' ? 'Q币' : $data->currency); + })->ellipsis(true)->align('center'); + $grid->column('coins', admin_trans('player_withdraw_record.fields.coins'))->align('center'); + $grid->column(function (Grid $grid) { + $grid->column('bank_name', admin_trans('player_withdraw_record.fields.bank_name'))->copy()->align('center'); + $grid->column('account_name', admin_trans('player_withdraw_record.fields.account_name'))->copy()->align('center'); + $grid->column('account', admin_trans('player_withdraw_record.fields.account'))->copy()->align('center'); + }, admin_trans('player_withdraw_record.player_bank'))->ellipsis(true); + $grid->column('type', admin_trans('player_withdraw_record.fields.type'))->display(function ($val) { + switch ($val) { + case PlayerRechargeRecord::TYPE_ACTIVITY: + return Tag::create(admin_trans('player_recharge_record.type.' . $val)) + ->color('#55acee'); + case PlayerRechargeRecord::TYPE_REGULAR: + return Tag::create(admin_trans('player_recharge_record.type.' . $val)) + ->color('#3b5999'); + case PlayerRechargeRecord::TYPE_ARTIFICIAL: + return Tag::create(admin_trans('player_recharge_record.type.' . $val)) + ->color('#cd201f'); + default: + return ''; + } + })->ellipsis(true)->align('center'); + $grid->column('status', admin_trans('player_withdraw_record.fields.status')) + ->display(function () { + return Tag::create(admin_trans('player_withdraw_record.status.' . PlayerWithdrawRecord::STATUS_SUCCESS))->color('#87d068'); + })->align('center')->ellipsis(true)->sortable(); + $grid->column('created_at', admin_trans('player_withdraw_record.fields.created_at'))->ellipsis(true)->sortable()->align('center'); + $grid->column('finish_time', admin_trans('player_withdraw_record.fields.finish_time'))->ellipsis(true)->fixed('right')->sortable()->align('center'); + $grid->hideDelete(); + $grid->hideSelection(); + $grid->actions(function (Actions $actions) { + $actions->hideDel(); + $actions->hideEdit(); + }); + $grid->filter(function (Filter $filter) { + $filter->like()->text('tradeno')->placeholder(admin_trans('player_withdraw_record.fields.tradeno')); + $filter->form()->hidden('created_at_start'); + $filter->form()->hidden('created_at_end'); + $filter->form()->dateTimeRange('created_at_start', 'created_at_end', '')->placeholder([admin_trans('public_msg.created_at_start'), admin_trans('public_msg.created_at_end')]); + $filter->form()->hidden('finish_time_start'); + $filter->form()->hidden('finish_time_end'); + $filter->form()->dateTimeRange('finish_time_start', 'finish_time_end', '')->placeholder([admin_trans('player_withdraw_record.fields.finish_time'), admin_trans('player_withdraw_record.fields.finish_time')]); + }); + }); + } + + /** + * 充值记录 + * @param $id + * @return Grid + */ + public function rechargeRecord($id): Grid + { + return Grid::create(new $this->recharge(), function (Grid $grid) use ($id) { + $grid->title(admin_trans('player_recharge_record.title')); + $grid->bordered(); + $grid->autoHeight(); + $grid->model()->with(['player'])->where('player_id', $id)->where('status', PlayerRechargeRecord::STATUS_RECHARGED_SUCCESS)->orderBy('created_at', 'desc'); + $exAdminFilter = Request::input('ex_admin_filter', []); + if (!empty($exAdminFilter)) { + if (isset($exAdminFilter['created_at_start']) && !empty($exAdminFilter['created_at_start'])) { + $grid->model()->where('created_at', '>=', $exAdminFilter['created_at_start']); + } + if (isset($exAdminFilter['created_at_end']) && !empty($exAdminFilter['created_at_end'])) { + $grid->model()->where('created_at', '<=', $exAdminFilter['created_at_end']); + } + if (isset($exAdminFilter['finish_time_start']) && !empty($exAdminFilter['finish_time_start'])) { + $grid->model()->where('finish_time', '>=', $exAdminFilter['finish_time_start']); + } + if (isset($exAdminFilter['finish_time_end']) && !empty($exAdminFilter['finish_time_end'])) { + $grid->model()->where('finish_time', '<=', $exAdminFilter['finish_time_end']); + } + } + $grid->column('id', admin_trans('player_recharge_record.fields.id'))->ellipsis(true)->fixed(true)->align('center'); + $grid->column('player.name', admin_trans('player_recharge_record.fields.player_name'))->display(function ($val, PlayerRechargeRecord $data) { + $image = (isset($data->player->avatar) && !empty($data->player->avatar)) ? Avatar::create()->src($data->player->avatar) : Avatar::create()->icon(Icon::create('UserOutlined')); + return Html::create()->content([ + $image, + Html::div()->content($val) + ]); + })->ellipsis(true)->fixed(true)->align('center'); + $grid->column('tradeno', admin_trans('player_recharge_record.fields.tradeno'))->ellipsis(true)->copy(); + $grid->column('channel.name', admin_trans('player_recharge_record.fields.department_id'))->ellipsis(true)->align('center'); + $grid->column('type', admin_trans('player_recharge_record.fields.type'))->display(function ($val) { + switch ($val) { + case PlayerRechargeRecord::TYPE_REGULAR: + return Tag::create(admin_trans('player_recharge_record.type.' . $val)) + ->color('#55acee'); + case PlayerRechargeRecord::TYPE_ACTIVITY: + return Tag::create(admin_trans('player_recharge_record.type.' . $val)) + ->color('#3b5999'); + case PlayerRechargeRecord::TYPE_ARTIFICIAL: + return Tag::create(admin_trans('player_recharge_record.type.' . $val)) + ->color('#cd201f'); + default: + return ''; + } + })->ellipsis(true)->align('center'); + $grid->column('money', admin_trans('player_recharge_record.fields.money'))->display(function ($val, PlayerRechargeRecord $data) { + return $val . ' ' . ($data->currency == 'TALK' ? 'Q币' : $data->currency); + })->ellipsis(true)->align('center'); + $grid->column('coins', admin_trans('player_recharge_record.fields.coins'))->ellipsis(true)->align('center'); + $grid->column(function (Grid $grid) { + $grid->column('bank_name', admin_trans('channel_recharge_method.fields.bank_name'))->copy()->align('center'); + $grid->column('sub_bank', admin_trans('channel_recharge_method.fields.sub_bank'))->copy()->align('center'); + $grid->column('owner', admin_trans('channel_recharge_method.fields.owner'))->copy()->align('center'); + $grid->column('account', admin_trans('channel_recharge_method.fields.account'))->copy()->align('center'); + }, admin_trans('channel_recharge_setting.recharge_setting_info'))->ellipsis(true); + $grid->column('status', admin_trans('player_recharge_record.fields.status'))->display(function () { + return Tag::create(admin_trans('player_recharge_record.status_success'))->color('#87d068'); + })->ellipsis(true)->align('center'); + $grid->column('created_at', admin_trans('player_recharge_record.fields.created_at'))->ellipsis(true)->sortable()->align('center'); + $grid->column('finish_time', admin_trans('player_recharge_record.fields.finish_time'))->ellipsis(true)->fixed('right')->sortable()->align('center'); + $grid->hideDelete(); + $grid->hideSelection(); + $grid->actions(function (Actions $actions) { + $actions->hideDel(); + $actions->hideEdit(); + }); + $grid->filter(function (Filter $filter) { + $filter->eq()->select('type') + ->showSearch() + ->style(['width' => '200px']) + ->dropdownMatchSelectWidth() + ->placeholder(admin_trans('player_recharge_record.fields.type')) + ->options([ + PlayerRechargeRecord::TYPE_REGULAR => admin_trans('player_recharge_record.type.' . PlayerRechargeRecord::TYPE_REGULAR), + PlayerRechargeRecord::TYPE_ACTIVITY => admin_trans('player_recharge_record.type.' . PlayerRechargeRecord::TYPE_ACTIVITY), + PlayerRechargeRecord::TYPE_ARTIFICIAL => admin_trans('player_recharge_record.type.' . PlayerRechargeRecord::TYPE_ARTIFICIAL), + ]); + $filter->like()->text('tradeno')->placeholder(admin_trans('player_recharge_record.fields.tradeno')); + $filter->form()->hidden('created_at_start'); + $filter->form()->hidden('created_at_end'); + $filter->form()->dateTimeRange('created_at_start', 'created_at_end', '')->placeholder([admin_trans('public_msg.created_at_start'), admin_trans('public_msg.created_at_end')]); + $filter->form()->hidden('finish_time_start'); + $filter->form()->hidden('finish_time_end'); + $filter->form()->dateTimeRange('finish_time_start', 'finish_time_end', '')->placeholder([admin_trans('player_recharge_record.fields.finish_time'), admin_trans('player_recharge_record.fields.finish_time')]); + + }); + }); + } + + /** + * 打码量记录 + * @param $id + * @return Grid + */ + public function playerChipRecord($id): Grid + { + return Grid::create(new $this->playerChipRecord(), function (Grid $grid) use ($id) { + $grid->title(admin_trans('player_chip_record.title')); + $grid->bordered(); + $grid->autoHeight(); + $grid->model()->with(['channel', 'player']) + ->where('player_id', $id) + ->orderBy('created_at', 'desc'); + $exAdminFilter = Request::input('ex_admin_filter', []); + $query = clone $grid->model(); + $totalData = $query->where(function ($query) use($exAdminFilter) { + if(!empty($exAdminFilter['created_at'])) { + $query->whereBetween('created_at', $exAdminFilter['created_at']); + } + })->sum('chip_amount'); + $layout = Layout::create(); + $layout->row(function (Row $row) use ($totalData) { + $row->gutter([10, 0]); + $row->column( + Card::create([ + Row::create()->column(Statistic::create()->value($totalData) + ->prefix(admin_trans('player_chip_record.fields.chip_amount')) + ->valueStyle([ + 'font-size' => '14px', + 'font-weight' => '500', + 'text-align' => 'center' + ])), + ])->bodyStyle([ + 'display' => 'flex', + 'align-items' => 'center', + 'height' => '30px', + 'padding' => '0px' + ])->hoverable()->headStyle(['height' => '0px', 'border-bottom' => '0px', 'min-height' => '0px']) + , 4); + })->style(['background' => '#fff']); + $grid->tools([ + $layout + ]); + $grid->column('id', admin_trans('player_chip_record.fields.id'))->align('center'); + $grid->column('channel.name', admin_trans('channel.fields.name'))->align('center'); + $grid->column('chip_amount', admin_trans('player_chip_record.fields.chip_amount'))->display(function ($val, PlayerChipRecord $data) { + if ($val == 0) { + return Html::create()->content(['+' . $val])->style(['color' => 'green']); + } + switch ($data->type) { + case PlayerChipRecord::TYPE_DEC: + return Html::create()->content(['-' . $val])->style(['color' => '#cd201f']); + default: + return Html::create()->content(['+' . $val])->style(['color' => 'green']); + } + })->align('center'); + $grid->column('must_chip_amount', admin_trans('player_chip_record.fields.must_chip_amount'))->display(function ($val, PlayerChipRecord $data) { + if ($val == 0) { + return Html::create()->content(['+' . $val])->style(['color' => 'green']); + } + switch ($data->type) { + case PlayerChipRecord::TYPE_DEC: + return Html::create()->content(['-' . $val])->style(['color' => '#cd201f']); + default: + return Html::create()->content(['+' . $val])->style(['color' => 'green']); + } + })->align('center'); + $grid->column('record_type', admin_trans('player_chip_record.fields.record_type'))->display(function ($val) { + switch ($val) { + case PlayerChipRecord::RECORD_TYPE_SIGN: + case PlayerChipRecord::RECORD_TYPE_RECHARGE: + case PlayerChipRecord::RECORD_TYPE_FIRST_RECHARGE_REWARD: + $tag = Tag::create(admin_trans('player_chip_record.record_type.' . $val)) + ->color('#55acee'); + break; + case PlayerChipRecord::RECORD_TYPE_ACTIVITY: + case PlayerChipRecord::RECORD_TYPE_GAME: + case PlayerChipRecord::RECORD_TYPE_BET_REBATE: + $tag = Tag::create(admin_trans('player_chip_record.record_type.' . $val)) + ->color('#3b5999'); + break; + case PlayerChipRecord::RECORD_TYPE_COMMISSION: + case PlayerChipRecord::RECORD_TYPE_BANKRUPTCY: + $tag = Tag::create(admin_trans('player_chip_record.record_type.' . $val)) + ->color('#cd201f'); + break; + default: + return ''; + } + return Html::create()->content([ + $tag, + ]); + })->align('center'); + $grid->column('amount', admin_trans('player_chip_record.fields.amount'))->align('center'); + $grid->column('created_at', admin_trans('player_chip_record.fields.created_at'))->sortable()->align('center'); + $grid->hideDelete(); + $grid->hideSelection(); + $grid->actions(function (Actions $actions) { + $actions->hideDel(); + $actions->hideEdit(); + }); + $grid->filter(function (Filter $filter) { + $filter->eq()->select('record_type') + ->showSearch() + ->style(['width' => '200px']) + ->dropdownMatchSelectWidth() + ->placeholder(admin_trans('player_chip_record.fields.record_type')) + ->options([ + PlayerChipRecord::RECORD_TYPE_SIGN => admin_trans('player_chip_record.record_type.' . PlayerChipRecord::RECORD_TYPE_SIGN), + PlayerChipRecord::RECORD_TYPE_RECHARGE => admin_trans('player_chip_record.record_type.' . PlayerChipRecord::RECORD_TYPE_RECHARGE), + PlayerChipRecord::RECORD_TYPE_ACTIVITY => admin_trans('player_chip_record.record_type.' . PlayerChipRecord::RECORD_TYPE_ACTIVITY), + PlayerChipRecord::RECORD_TYPE_GAME => admin_trans('player_chip_record.record_type.' . PlayerChipRecord::RECORD_TYPE_GAME), + PlayerChipRecord::RECORD_TYPE_COMMISSION => admin_trans('player_chip_record.record_type.' . PlayerChipRecord::RECORD_TYPE_COMMISSION), + PlayerChipRecord::RECORD_TYPE_BANKRUPTCY => admin_trans('player_chip_record.record_type.' . PlayerChipRecord::RECORD_TYPE_BANKRUPTCY), + PlayerChipRecord::RECORD_TYPE_BET_REBATE => admin_trans('player_chip_record.record_type.' . PlayerChipRecord::RECORD_TYPE_BET_REBATE), + PlayerChipRecord::RECORD_TYPE_FIRST_RECHARGE_REWARD => admin_trans('player_chip_record.record_type.' . PlayerChipRecord::RECORD_TYPE_FIRST_RECHARGE_REWARD), + ]); + $filter->between()->dateTimeRange('created_at')->placeholder([admin_trans('player_chip_record.fields.created_at'), admin_trans('player_chip_record.fields.created_at')]); + + }); + $grid->quickSearch(); + }); + } + + + + /** + * 设置推广员 + * @auth true + * @group channel + * @param $id + * @return Form + */ + public function setPromoter($id): Form + { + /** @var PlayerPromoter $promoter */ + $promoter = PlayerPromoter::with(['parent_promoter'])->where('player_id', $id)->first(); + return Form::create($promoter ?? new $this->promoter(), function (Form $form) use ($id) { + $form->push(Html::markdown('>' . admin_trans('player_promoter.submit_confirm') . '')); + /** @var PlayerPromoter $model */ + $model = $form->driver()->model(); + $maxRatio = $model->parent_promoter->ratio ?? 100; + $form->text('name') + ->value($model->name ?? '') + ->maxlength(30) + ->required()->addonBefore(admin_trans('player_promoter.fields.name')); + $form->text('ratio') + ->value($model->ratio ?? '') + ->rulePattern('^[0-9]+(.[0-9]{1,2})?$', admin_trans('validator.twoDecimal')) + ->rule([ + 'max:' . $maxRatio => admin_trans('validator.max', null, ['{max}' => $maxRatio]), + 'min:0' => admin_trans('validator.min', null, ['{min}' => 0]), + 'regex:/^[0-9]+(.[0-9]{1,2})?$/' => admin_trans('validator.twoDecimal'), + ]) + ->required() + ->addonAfter('%') + ->help(!empty($model->parent_promoter->ratio) ? admin_trans('player_promoter.ratio_help_parent', null, ['{max_ratio}' => $maxRatio]) : admin_trans('player_promoter.ratio_help_platform', null, ['{max_ratio}' => $maxRatio])) + ->placeholder(admin_trans('player_promoter.ratio_placeholder', null, ['{max_ratio}' => $maxRatio])) + ->addonBefore(admin_trans('player_promoter.fields.ratio')); + $form->saving(function (Form $form) use ($id) { + return $this->savePromoter($id, $form->input('ratio'), $form->input('name')); + }); + }); + } + + /** + * 保存推广员信息 + * @param $id + * @param $ratio + * @param string $name + * @return Msg + */ + public function savePromoter($id, $ratio, string $name = ''): Msg + { + DB::beginTransaction(); + try { + /** @var Player $player */ + $player = Player::with(['player_promoter'])->find($id); + if (empty($player)) { + throw new Exception(admin_trans('player.not_fount')); + } + if (empty($player->player_promoter) && !empty($player->recommend_id)) { + throw new Exception(admin_trans('player.player_must_not_attributed')); + } + $promoter = $player->player_promoter ?? new PlayerPromoter(); + $promoter->ratio = $ratio; + $promoter->player_id = $id; + $promoter->recommend_id = $parentPromoter->player_id ?? 0; + $promoter->department_id = $player->department_id; + $promoter->name = $name; + $promoter->path = $player->id; + $promoter->save(); + // 更新玩家信息 + $player->is_promoter = 1; + $player->recommend_code = createCode(); + $player->save(); + DB::commit(); + } catch (\Exception $e) { + DB::rollBack(); + return message_error($e->getMessage()); + } + + return message_success(admin_trans('form.save_success')); + } + + /** + * 绑定推广员 + * @auth true + * @group channel + * @param $id + * @return Form|Msg + */ + public function bindPromoter($id) + { + /** @var Player $player */ + $player = Player::query()->find($id); + if (empty($player)) { + return message_error(admin_trans('player.player_not_found')); + } + if (!empty($player->recommended_code)) { + return message_error(admin_trans('player.player_has_bind')); + } + if ($player->is_promoter > 0) { + return message_error(admin_trans('player.has_been_promoter')); + } + /** @var Channel $channel */ + $channel = Channel::query()->where('department_id', $player->department_id)->first(); + if (empty($channel)) { + return message_error(admin_trans('player.channel_not_found')); + } + if ($channel->promotion_status != 1) { + return message_error(admin_trans('player.channel_close_promoter')); + } + return Form::create($player, function (Form $form) use ($player) { + $form->push(Html::markdown('>' . admin_trans('player.bind_promoter_confirm') . '')); + $options = PlayerPromoter::query() + ->where('department_id', $player->department_id) + ->where('status', 1) + ->pluck('name', 'player_id')->toArray(); + $form->select('recommend_id') + ->style(['width' => '200px']) + ->options($options); + $form->saving(function (Form $form) use ($player) { + /** @var PlayerPromoter $recommendPlayer */ + $recommendPlayer = PlayerPromoter::query() + ->where('player_id', $form->input('recommend_id')) + ->where('department_id', $player->department_id)->first(); + if (empty($recommendPlayer)) { + return message_error(admin_trans('player.promoter_not_found')); + } + if ($recommendPlayer->player->status == 0) { + return message_error(admin_trans('player.promoter_has_disable')); + } + $player->recommend_id = $recommendPlayer->player->id; + $player->recommended_code = $recommendPlayer->player->recommend_code; + $player->save(); + $recommendPlayer->increment('player_num'); + return message_success(admin_trans('player.action_success')); + }); + }); + } + + +} diff --git a/addons/webman/controller/ChannelPlayerDeliveryRecordController.php b/addons/webman/controller/ChannelPlayerDeliveryRecordController.php new file mode 100644 index 0000000..e5f7248 --- /dev/null +++ b/addons/webman/controller/ChannelPlayerDeliveryRecordController.php @@ -0,0 +1,206 @@ +model = plugin()->webman->config('database.player_delivery_record_model'); + } + + /** + * 玩家账变 + * @group channel + * @auth true + */ + public function index(): Grid + { + $lang = Container::getInstance()->translator->getLocale(); + return Grid::create(new $this->model(), function (Grid $grid) use ($lang) { + $grid->title(admin_trans('player_delivery_record.title')); + $grid->model()->with(['player'])->orderBy('created_at', 'desc'); + $grid->autoHeight(); + $grid->bordered(true); + $exAdminFilter = Request::input('ex_admin_filter', []); + if (isset($exAdminFilter['created_at_start']) && !empty($exAdminFilter['created_at_start'])) { + $grid->model()->where('created_at', '>=', $exAdminFilter['created_at_start']); + } + if (isset($exAdminFilter['created_at_end']) && !empty($exAdminFilter['created_at_end'])) { + $grid->model()->where('created_at', '<=', $exAdminFilter['created_at_end']); + } + if (isset($exAdminFilter['search_source']) && !empty($exAdminFilter['search_source'])) { + $searchSource = $exAdminFilter['search_source']; + $grid->model()->where(function ($query) use ($searchSource) { + $query->where(function ($query) use ($searchSource) { + $query->where([ + ['source', 'like', '%' . $searchSource . '%', 'and'], + ]); + }); + }); + } + $grid->column('id', admin_trans('player_delivery_record.fields.id'))->align('center'); + $grid->column('player.uuid', admin_trans('player.fields.uuid'))->align('center'); + $grid->column('player.name', admin_trans('player.fields.name'))->display(function ($val, PlayerDeliveryRecord $data) { + $image = $data->player->avatar ? Avatar::create()->src(is_numeric($data->player->avatar) ? config('def_avatar.' . $data->player->avatar) : $data->player->avatar) : Avatar::create()->icon(Icon::create('UserOutlined')); + return Html::create()->content([ + $image, + Html::div()->content($data->player->name), + ]); + })->align('center')->filter( + FilterColumn::like()->text('player.phone') + ); + $grid->column('source', admin_trans('player_delivery_record.fields.source'))->display(function ($val, PlayerDeliveryRecord $data) use ($lang) { + switch ($data->type) { + case PlayerDeliveryRecord::TYPE_MODIFIED_AMOUNT_ADD: + case PlayerDeliveryRecord::TYPE_MODIFIED_AMOUNT_DEDUCT: + case PlayerDeliveryRecord::TYPE_RECHARGE: + case PlayerDeliveryRecord::TYPE_WITHDRAWAL: + case PlayerDeliveryRecord::TYPE_WITHDRAWAL_BACK: + return Tag::create(trans($val, [], 'message', $lang))->color('red'); + case PlayerDeliveryRecord::TYPE_REGISTER_PRESENT: + return Tag::create(trans($val, [], 'message', $lang))->color('blue'); + case PlayerDeliveryRecord::TYPE_COMMISSION: + case PlayerDeliveryRecord::TYPE_GAME_OUT: + return Tag::create(trans($val, [], 'message', $lang))->color('purple'); + case PlayerDeliveryRecord::TYPE_SIGN: + case PlayerDeliveryRecord::TYPE_GAME_IN: + case PlayerDeliveryRecord::TYPE_BET_REBATE: + case PlayerDeliveryRecord::TYPE_DAMAGE_REBATE: + case PlayerDeliveryRecord::TYPE_RECHARGE_REWARD: + case PlayerDeliveryRecord::TYPE_PROFIT: + return Tag::create(trans($val, [], 'message', $lang))->color('orange'); + default: + return ''; + } + })->align('center'); + $grid->column('type', admin_trans('player_delivery_record.fields.type')) + ->display(function ($value) { + switch ($value) { + case PlayerDeliveryRecord::TYPE_MODIFIED_AMOUNT_ADD: + $tag = Tag::create(admin_trans('player_delivery_record.type.' . PlayerDeliveryRecord::TYPE_MODIFIED_AMOUNT_ADD))->color('#2db7f5'); + break; + case PlayerDeliveryRecord::TYPE_RECHARGE: + $tag = Tag::create(admin_trans('player_delivery_record.type.' . PlayerDeliveryRecord::TYPE_RECHARGE))->color('#3C87C9'); + break; + case PlayerDeliveryRecord::TYPE_WITHDRAWAL: + $tag = Tag::create(admin_trans('player_delivery_record.type.' . PlayerDeliveryRecord::TYPE_WITHDRAWAL))->color('#C98341'); + break; + case PlayerDeliveryRecord::TYPE_MODIFIED_AMOUNT_DEDUCT: + $tag = Tag::create(admin_trans('player_delivery_record.type.' . PlayerDeliveryRecord::TYPE_MODIFIED_AMOUNT_DEDUCT))->color('#108ee9'); + break; + case PlayerDeliveryRecord::TYPE_WITHDRAWAL_BACK: + $tag = Tag::create(admin_trans('player_delivery_record.type.' . PlayerDeliveryRecord::TYPE_WITHDRAWAL_BACK))->color('#CC6600'); + break; + case PlayerDeliveryRecord::TYPE_COMMISSION: + $tag = Tag::create(admin_trans('player_delivery_record.type.' . PlayerDeliveryRecord::TYPE_COMMISSION))->color('#3C87C9'); + break; + case PlayerDeliveryRecord::TYPE_REGISTER_PRESENT: + $tag = Tag::create(admin_trans('player_delivery_record.type.' . PlayerDeliveryRecord::TYPE_REGISTER_PRESENT))->color('#3C87C9'); + break; + case PlayerDeliveryRecord::TYPE_SIGN: + $tag = Tag::create(admin_trans('player_delivery_record.type.' . PlayerDeliveryRecord::TYPE_SIGN))->color('#CC6600'); + break; + case PlayerDeliveryRecord::TYPE_GAME_IN: + $tag = Tag::create(admin_trans('player_delivery_record.type.' . PlayerDeliveryRecord::TYPE_GAME_IN))->color('#CC6600'); + break; + case PlayerDeliveryRecord::TYPE_GAME_OUT: + $tag = Tag::create(admin_trans('player_delivery_record.type.' . PlayerDeliveryRecord::TYPE_GAME_OUT))->color('#3C87C9'); + break; + case PlayerDeliveryRecord::TYPE_BET_REBATE: + $tag = Tag::create(admin_trans('player_delivery_record.type.' . PlayerDeliveryRecord::TYPE_BET_REBATE))->color('#C98341'); + break; + case PlayerDeliveryRecord::TYPE_DAMAGE_REBATE: + $tag = Tag::create(admin_trans('player_delivery_record.type.' . PlayerDeliveryRecord::TYPE_DAMAGE_REBATE))->color('#3C87C9'); + break; + case PlayerDeliveryRecord::TYPE_RECHARGE_REWARD: + $tag = Tag::create(admin_trans('player_delivery_record.type.' . PlayerDeliveryRecord::TYPE_RECHARGE_REWARD))->color('#3C87C9'); + break; + case PlayerDeliveryRecord::TYPE_PROFIT: + $tag = Tag::create(admin_trans('player_delivery_record.type.' . PlayerDeliveryRecord::TYPE_PROFIT))->color('#3C87C9'); + break; + default: + $tag = ''; + } + return Html::create()->content([ + $tag + ]); + })->align('center')->sortable(); + $grid->column('amount', admin_trans('player_delivery_record.fields.amount'))->display(function ($val, PlayerDeliveryRecord $data) { + switch ($data->type) { + case PlayerDeliveryRecord::TYPE_WITHDRAWAL: + case PlayerDeliveryRecord::TYPE_MODIFIED_AMOUNT_DEDUCT: + return Html::create()->content(['-' . $val])->style(['color' => '#cd201f']); + default: + return Html::create()->content(['+' . $val])->style(['color' => 'green']); + } + })->align('center'); + $grid->column('amount_after', admin_trans('player_delivery_record.fields.amount_after'))->align('center'); + $grid->column('amount_before', admin_trans('player_delivery_record.fields.amount_before'))->align('center'); + $grid->column('user_name', admin_trans('player_delivery_record.fields.user_name'))->display(function ($val, PlayerDeliveryRecord $data) { + $name = '玩家'; + if (in_array($data->type, [PlayerDeliveryRecord::TYPE_MODIFIED_AMOUNT_ADD, PlayerDeliveryRecord::TYPE_MODIFIED_AMOUNT_DEDUCT])) { + $name = $data->user_name ?? '管理员'; + } + return Html::create()->content([ + Html::div()->content($name), + ]); + }); + $grid->column('created_at', admin_trans('player_delivery_record.fields.created_at'))->sortable()->align('center'); + $grid->hideDelete(); + $grid->hideSelection(); + $grid->actions(function (Actions $actions) { + $actions->hideDel(); + $actions->hideEdit(); + }); + $grid->filter(function (Filter $filter) { + $filter->like()->text('player.uuid')->placeholder(admin_trans('player.fields.uuid')); + $filter->like()->text('player.name')->placeholder(admin_trans('player.fields.name')); + $filter->like()->text('search_source')->placeholder(admin_trans('player_delivery_record.fields.source')); + $filter->eq()->select('type') + ->placeholder(admin_trans('player_delivery_record.fields.type')) + ->showSearch() + ->style(['width' => '200px']) + ->dropdownMatchSelectWidth() + ->options([ + PlayerDeliveryRecord::TYPE_MODIFIED_AMOUNT_ADD => admin_trans('player_delivery_record.type.' . PlayerDeliveryRecord::TYPE_MODIFIED_AMOUNT_ADD), + PlayerDeliveryRecord::TYPE_RECHARGE => admin_trans('player_delivery_record.type.' . PlayerDeliveryRecord::TYPE_RECHARGE), + PlayerDeliveryRecord::TYPE_WITHDRAWAL => admin_trans('player_delivery_record.type.' . PlayerDeliveryRecord::TYPE_WITHDRAWAL), + PlayerDeliveryRecord::TYPE_MODIFIED_AMOUNT_DEDUCT => admin_trans('player_delivery_record.type.' . PlayerDeliveryRecord::TYPE_MODIFIED_AMOUNT_DEDUCT), + PlayerDeliveryRecord::TYPE_WITHDRAWAL_BACK => admin_trans('player_delivery_record.type.' . PlayerDeliveryRecord::TYPE_WITHDRAWAL_BACK), + PlayerDeliveryRecord::TYPE_REGISTER_PRESENT => admin_trans('player_delivery_record.type.' . PlayerDeliveryRecord::TYPE_REGISTER_PRESENT), + PlayerDeliveryRecord::TYPE_COMMISSION => admin_trans('player_delivery_record.type.' . PlayerDeliveryRecord::TYPE_COMMISSION), + PlayerDeliveryRecord::TYPE_SIGN => admin_trans('player_delivery_record.type.' . PlayerDeliveryRecord::TYPE_SIGN), + PlayerDeliveryRecord::TYPE_GAME_OUT => admin_trans('player_delivery_record.type.' . PlayerDeliveryRecord::TYPE_GAME_OUT), + PlayerDeliveryRecord::TYPE_GAME_IN => admin_trans('player_delivery_record.type.' . PlayerDeliveryRecord::TYPE_GAME_IN), + PlayerDeliveryRecord::TYPE_BET_REBATE => admin_trans('player_delivery_record.type.' . PlayerDeliveryRecord::TYPE_BET_REBATE), + PlayerDeliveryRecord::TYPE_DAMAGE_REBATE => admin_trans('player_delivery_record.type.' . PlayerDeliveryRecord::TYPE_DAMAGE_REBATE), + PlayerDeliveryRecord::TYPE_RECHARGE_REWARD => admin_trans('player_delivery_record.type.' . PlayerDeliveryRecord::TYPE_RECHARGE_REWARD), + PlayerDeliveryRecord::TYPE_PROFIT => admin_trans('player_delivery_record.type.' . PlayerDeliveryRecord::TYPE_PROFIT), + ]); + $filter->form()->hidden('created_at_start'); + $filter->form()->hidden('created_at_end'); + $filter->form()->dateTimeRange('created_at_start', 'created_at_end', '')->placeholder([admin_trans('public_msg.created_at_start'), admin_trans('public_msg.created_at_end')]); + }); + $grid->quickSearch(); + }); + } +} diff --git a/addons/webman/controller/ChannelPostController.php b/addons/webman/controller/ChannelPostController.php new file mode 100644 index 0000000..bfd4e12 --- /dev/null +++ b/addons/webman/controller/ChannelPostController.php @@ -0,0 +1,96 @@ +model = plugin()->webman->config('database.post_model'); + + } + + /** + * 岗位 + * @group channel + * @auth true + */ + public function index(): Grid + { + return Grid::create(new $this->model, function (Grid $grid) { + $grid->title(admin_trans('post.title')); + $exAdminFilter = Request::input('ex_admin_filter', []); + if (isset($exAdminFilter['created_at_start']) && !empty($exAdminFilter['created_at_start'])) { + $grid->model()->where('created_at', '>=', $exAdminFilter['created_at_start']); + } + if (isset($exAdminFilter['created_at_end']) && !empty($exAdminFilter['created_at_end'])) { + $grid->model()->where('created_at', '<=', $exAdminFilter['created_at_end']); + } + $grid->autoHeight(); + $grid->bordered(true); + $grid->column('name', admin_trans('post.fields.name')); + $grid->column('status', admin_trans('post.fields.status'))->switch([[1 => ''], [0 => '']]); + $grid->sortInput('sort', admin_trans('post.fields.sort')); + $grid->column('created_at', admin_trans('post.fields.create_at')); + $grid->filter(function (Filter $filter) { + $filter->like()->text('name')->placeholder(admin_trans('post.fields.name')); + $filter->eq()->select('status') + ->placeholder(admin_trans('post.fields.status')) + ->options([ + 1 => admin_trans('post.normal'), + 0 => admin_trans('post.disable') + ]); + $filter->form()->hidden('created_at_start'); + $filter->form()->hidden('created_at_end'); + $filter->form()->dateRange('created_at_start', 'created_at_end', '')->placeholder([admin_trans('public_msg.created_at_start'), admin_trans('public_msg.created_at_end')]);; + }); + $grid->setForm()->modal($this->form()); + $grid->quickSearch(); + }); + } + + /** + * 岗位 + * @group channel + * @auth true + */ + public function form(): Form + { + return Form::create(new $this->model, function (Form $form) { + $form->title(admin_trans('post.title')); + $form->text('name', admin_trans('post.fields.name')) + ->required(); + $form->number('sort', admin_trans('post.fields.sort'))->default(0); + $form->saving(function (Form $form) { + if (!$form->isEdit()) { + $adminPost = new AdminPost(); + $adminPost->name = $form->input('name'); + $adminPost->sort = $form->input('sort'); + $adminPost->department_id = Admin::user()->department_id; + $adminPost->type = AdminDepartment::TYPE_CHANNEL; + } else { + $adminPost = AdminPost::find($form->input('id')); + } + if (!$adminPost->save()) { + return message_error(admin_trans('form.save_error')); + } + return message_success(admin_trans('form.save_success')); + }); + }); + } +} diff --git a/addons/webman/controller/ChannelRechargeController.php b/addons/webman/controller/ChannelRechargeController.php new file mode 100644 index 0000000..389ecb2 --- /dev/null +++ b/addons/webman/controller/ChannelRechargeController.php @@ -0,0 +1,572 @@ +model = plugin()->webman->config('database.channel_recharge_setting_model'); + $this->method = plugin()->webman->config('database.channel_recharge_method_model'); + $this->sepay_model = plugin()->webman->config('database.sepay_recharge_model'); + } + + /** + * 充值账号 + * @group channel + * @auth true + */ + public function index(): Grid + { + return Grid::create(new $this->model, function (Grid $grid) { + $lang = Container::getInstance()->translator->getLocale(); + $channelRechargeMethods = ChannelRechargeMethod::query() + ->where('status', 1) + ->select(['id', 'account', 'currency']) + ->with(['methodLang' => function ($query) use ($lang) { + $query->where('lang', $lang); + }]) + ->get()->toArray(); + foreach ($channelRechargeMethods as &$item) { + $item['name'] = $item['method_lang'][0]['name'] ?? ''; + } + $grid->sidebar('method_id', $channelRechargeMethods) + ->setForm($this->methodForm()); + $grid->title(admin_trans('channel_recharge_setting.title')); + $grid->model()->with(['channel_recharge_method'])->whereHas('channel_recharge_method', function ($query) { + $query->whereNull('deleted_at'); + }); + $grid->autoHeight(); + $grid->bordered(true); + $lang = Container::getInstance()->translator->getLocale(); + $grid->tools([ + Button::create(admin_trans('channel_recharge_setting.first_recharge_setting')) + ->danger() + ->drawer($this->rechargeSetting()) + ]); + $grid->column('id', admin_trans('channel_recharge_setting.fields.id'))->align('center'); + $grid->column('title', admin_trans('channel_recharge_setting.fields.title'))->align('center'); + $grid->column('method_name', admin_trans('channel_recharge_setting.fields.method_name')) + ->display(function ($val, ChannelRechargeSetting $data) use ($lang) { + /** @var ChannelRechargeMethodLang $methodLang */ + $methodLang = $data->channel_recharge_method->methodLang->where('lang', $lang)->first(); + return $methodLang->name ?? ''; + }) + ->align('center') + ->ellipsis(true); + $grid->column('type', admin_trans('player_delivery_record.fields.type')) + ->display(function ($value) { + switch ($value) { + case ChannelRechargeSetting::TYPE_REGULAR: + $tag = Tag::create(admin_trans('channel_recharge_setting.type.' . ChannelRechargeSetting::TYPE_REGULAR))->color('#2db7f5'); + break; + case ChannelRechargeSetting::TYPE_ACTIVITY: + $tag = Tag::create(admin_trans('channel_recharge_setting.type.' . ChannelRechargeSetting::TYPE_ACTIVITY))->color('#3C87C9'); + break; + default: + $tag = ''; + } + return Html::create()->content([ + $tag + ]); + })->align('center')->sortable(); + $grid->column('chip_multiple', admin_trans('channel_recharge_setting.fields.chip_multiple'))->align('center'); + $grid->column('coins_num', admin_trans('channel_recharge_setting.fields.coins_num'))->align('center'); + $grid->column('gift_coins', admin_trans('channel_recharge_setting.fields.gift_coins'))->align('center'); + $grid->column('money', admin_trans('channel_recharge_setting.fields.money'))->align('center'); + $grid->column('user_name', admin_trans('channel_recharge_setting.fields.user_name'))->align('center'); + $grid->column('status', admin_trans('channel_recharge_setting.fields.status'))->switch()->align('center'); + $grid->filter(function (Filter $filter) { + $filter->eq()->number('coins_num')->placeholder(admin_trans('channel_recharge_setting.fields.coins_num')); + $filter->eq()->number('money')->placeholder(admin_trans('channel_recharge_setting.fields.money')); + }); + $grid->quickSearch(function (Builder $builder, $quickSearch) { + $builder->whereHas('channel_recharge_method.methodLang', function ($query) use ($quickSearch) { + $query->where([ + ['name', 'like', '%' . $quickSearch . '%', 'or'], + ['bank_name', 'like', '%' . $quickSearch . '%', 'or'], + ['sub_bank', 'like', '%' . $quickSearch . '%', 'or'], + ['account', 'like', '%' . $quickSearch . '%', 'or'], + ['owner', 'like', '%' . $quickSearch . '%', 'or'], + ]); + }); + }); + $grid->hideDelete(); + $grid->hideSelection(); + $grid->hideDeleteSelection(); + $grid->hideTrashed(); + $grid->addButton()->drawer($this->form()); + $grid->setForm()->drawer($this->form()); + $grid->actions(function (Actions $actions) { + $actions->hideEdit(); + }); + }); + } + + /** + * 充值账号配置 + * @auth true + * @group channel + * @return Form + */ + public function form(): Form + { + /** @var ChannelRechargeMethod $channelRechargeMethod */ + $channelRechargeMethod = ChannelRechargeMethod::query() + ->where('department_id', Admin::user()->department_id) + ->where('type', 2) + ->first(); + if (!$channelRechargeMethod) { + $channelRechargeMethod = [ + 'id' => '', + 'wallet_address' => '', + 'qr_code' => '', + 'rate' => '', + 'status' => '', + ]; + } + return Form::create($channelRechargeMethod, function (Form $form) use ($channelRechargeMethod) { + $form->text('wallet_address', admin_trans('channel_recharge_setting.fields.wallet_address')) + ->value($channelRechargeMethod['wallet_address']) + ->required() + ->maxlength(250); + $form->file('qr_code', admin_trans('channel_recharge_setting.fields.qr_code')) + ->ext('jpg,png,jpeg') + ->value($channelRechargeMethod['qr_code']) + ->type('image') + ->fileSize('1m') + ->required() + ->hideFinder() + ->paste(); + $form->number('rate', admin_trans('channel_recharge_setting.fields.rate')) + ->min(0) + ->max(100) + ->value($channelRechargeMethod['rate']) + ->span(24) + ->style(['width' => '50%']) + ->required() + ->precision(2); + $form->switch('status', admin_trans('channel_recharge_method.fields.status')) + ->value($channelRechargeMethod['status'])->required()->span(11); + $form->colon(false); + $form->removeAttr('labelCol'); + $form->actions()->hideResetButton(); + $form->actions()->submitButton()->content(admin_trans('form.submit')); + $form->layout('vertical'); + $form->saving(function (Form $form) use ($channelRechargeMethod) { + try { + DB::beginTransaction(); + if (!$channelRechargeMethod['id']) { + $channelRechargeMethod = new ChannelRechargeMethod(); + $channelRechargeMethod->type = 2; + $channelRechargeMethod->currency = Admin::user()->department->channel->currency; + $channelRechargeMethod->department_id = Admin::user()->department_id; + $channelRechargeMethod->user_id = Admin::id(); + $channelRechargeMethod->user_name = !empty(Admin::user()) ? Admin::user()->username : ''; + } + $channelRechargeMethod->qr_code = $form->input('qr_code'); + $channelRechargeMethod->wallet_address = $form->input('wallet_address'); + $channelRechargeMethod->status = $form->input('status'); + $channelRechargeMethod->rate = $form->input('rate'); + $channelRechargeMethod->save(); + DB::commit(); + } catch (\Exception $exception) { + DB::rollBack(); + return message_error(admin_trans('form.save_error') . $exception->getMessage()); + } + return message_success(admin_trans('form.save_success')); + }); + }); + } + + /** + * 获取充值方式 + * @return array + */ + public function getRechargeMethod(): array + { + $options = []; + $lang = Container::getInstance()->translator->getLocale(); + $methodList = ChannelRechargeMethod::query()->get(); + /** @var ChannelRechargeMethod $item */ + foreach ($methodList as $item) { + /** @var ChannelRechargeMethodLang $methodLang */ + $methodLang = $item->methodLang->where('lang', $lang)->first(); + $options[$item->id] = $methodLang->name ?? ''; + } + + return $options; + } + + /** + * 充值方式 + * @auth true + * @group channel + * @return Form + */ + public function methodForm(): Form + { + /** @var ChannelRechargeMethod $channelRechargeMethod */ + $channelRechargeMethod = ChannelRechargeMethod::query() + ->where('department_id', Admin::user()->department_id) + ->where('type', 1) + ->first(); + if (!$channelRechargeMethod) { + $channelRechargeMethod = [ + 'id' => '', + 'account' => '', + 'status' => '', + ]; + } + return Form::create($channelRechargeMethod, function (Form $form) use ($channelRechargeMethod) { + $form->row(function (Form $form) use ($channelRechargeMethod) { + $form->text('account', admin_trans('channel_recharge_method.fields.account')) + ->maxlength(100) + ->value($channelRechargeMethod['account']) + ->required() + ->span(11); + $form->push(Divider::create()->content(' ')->style(['margin-left' => '11px'])); + $form->switch('status', admin_trans('channel_recharge_method.fields.status')) + ->value($channelRechargeMethod['status'])->required()->span(11); + }); + $langList = plugin()->webman->config('ui.lang.list'); + $tabs = $form->tabs()->destroyInactiveTabPane(); + $contents = []; + if ($channelRechargeMethod['id']) { + $channelRechargeMethodLang = ChannelRechargeMethodLang::query()->where('method_id', $channelRechargeMethod['id'])->get(); + /** @var ChannelRechargeMethodLang $content */ + foreach ($channelRechargeMethodLang as $content) { + $contents[$content->lang] = [ + 'name' => $content->name, + 'bank_name' => $content->bank_name, + 'sub_bank' => $content->sub_bank, + 'owner' => $content->owner, + 'id' => $content->id, + ]; + } + } + foreach ($langList as $k => $v) { + $tabs->pane($v, function (Form $form) use ($k, $contents) { + $form->row(function (Form $form) use ($k, $contents) { + $form->text("content." . $k . ".name", admin_trans('channel_recharge_method.fields.method_name')) + ->maxlength(120) + ->value($contents[$k]['name'] ?? '') + ->required() + ->span(11); + $form->push(Divider::create()->content(' ')->style(['margin-left' => '11px'])); + $form->text("content." . $k . ".bank_name", admin_trans('channel_recharge_method.fields.bank_name')) + ->value($contents[$k]['bank_name'] ?? '') + ->maxlength(100) + ->required() + ->span(11); + })->style(['width' => '100 % ', 'margin - left' => '1px']); + $form->row(function (Form $form) use ($k, $contents) { + $form->text("content." . $k . ".sub_bank", admin_trans('channel_recharge_method.fields.sub_bank')) + ->value($contents[$k]['sub_bank'] ?? '') + ->maxlength(100) + ->required() + ->span(11); + $form->push(Divider::create()->content(' ')->style(['margin-left' => '11px'])); + $form->text("content." . $k . ".owner", admin_trans('channel_recharge_method.fields.owner')) + ->value($contents[$k]['owner'] ?? '') + ->maxlength(100) + ->required() + ->span(11); + })->style(['width' => '100 % ', 'margin - left' => '1px']); + }); + } + $form->colon(false); + $form->removeAttr('labelCol'); + $form->actions()->hideResetButton(); + $form->actions()->submitButton()->content(admin_trans('form.submit')); + $form->layout('vertical'); + $form->saving(function (Form $form) use ($channelRechargeMethod) { + try { + DB::beginTransaction(); + if ($channelRechargeMethod['id']) { + $channelRechargeMethod->account = $form->input('account'); + $channelRechargeMethod->currency = Admin::user()->department->channel->currency; + } else { + $channelRechargeMethod = new ChannelRechargeMethod(); + $channelRechargeMethod->account = $form->input('account'); + $channelRechargeMethod->currency = Admin::user()->department->channel->currency; + $channelRechargeMethod->department_id = Admin::user()->department_id; + $channelRechargeMethod->user_id = Admin::id(); + $channelRechargeMethod->user_name = !empty(Admin::user()) ? Admin::user()->username : ''; + } + $channelRechargeMethod->status = $form->input('status'); + $channelRechargeMethod->save(); + $contents = $form->input('content'); + foreach ($contents as $key => $content) { + if (empty($content['name'])) { + continue; + } + ChannelRechargeMethodLang::query()->updateOrCreate( + [ + 'lang' => $key, + 'method_id' => $channelRechargeMethod->id, + ], + [ + 'name' => $content['name'], + 'bank_name' => $content['bank_name'] ?? '', + 'sub_bank' => $content['sub_bank'] ?? '', + 'owner' => $content['owner'] ?? '' + ] + ); + } + DB::commit(); + } catch (\Exception $exception) { + DB::rollBack(); + return message_error(admin_trans('form.save_error') . $exception->getMessage()); + } + return message_success(admin_trans('form.save_success')); + }); + }); + } + + /** + * @return Form + */ + public function rechargeSetting(): Form + { + /** @var SystemSetting $systemSetting */ + $systemSetting = SystemSetting::query() + ->where('department_id', Admin::user()->department_id) + ->where('feature', 'first_recharge_setting') + ->first(); + return Form::create($systemSetting ? [ + 'id' => $systemSetting->id, + 'department_id' => $systemSetting->department_id, + 'feature' => $systemSetting->feature, + 'content' => json_decode($systemSetting->content, true), + 'status' => $systemSetting->status, + ] : [], function (Form $form) use ($systemSetting) { + $form->push( + Switches::create('status') + ->options([[1 => admin_trans('admin.open')], [0 => admin_trans('admin.close')]]) + ->field('status') + ->title('状态') + ->url('ex-admin/addons-webman-controller-ActivityController/changeStatus') + ->params([ + 'id' => $systemSetting->id, + ])->style(['margin-bottom' => '14px']) + ); + $form->hasMany('content', '', function (Form $form) { + $form->row(function (Form $form) { + $form->radio('model', admin_trans('first_recharge_setting.fields.model')) + ->button() + ->required() + ->default(SystemSetting::FIRST_RECHARGE_MODEL_ONE) + ->bindAttr('buttonStyle', $form->getBindField('buttonStyle')) + ->options([ + SystemSetting::FIRST_RECHARGE_MODEL_ONE => admin_trans('first_recharge_setting.model.' . SystemSetting::FIRST_RECHARGE_MODEL_ONE), + SystemSetting::FIRST_RECHARGE_MODEL_ADD => admin_trans('first_recharge_setting.model.' . SystemSetting::FIRST_RECHARGE_MODEL_ADD), + ])->when(SystemSetting::FIRST_RECHARGE_MODEL_ADD, function (Form $form) { + $form->text('add_number', admin_trans('first_recharge_setting.fields.add_number')) + ->rule([ + 'integer' => admin_trans('validator.integer'), + 'max:100000' => admin_trans('validator.max', null, ['{max}' => 100000000]), + 'min:1' => admin_trans('validator.min', null, ['{min}' => 1]), + ]) + ->span(24) + ->required(); + })->span(24); + $form->radio('type', admin_trans('first_recharge_setting.fields.type')) + ->button() + ->required() + ->default(SystemSetting::FIRST_RECHARGE_TYPE_VALUE) + ->bindAttr('buttonStyle', $form->getBindField('buttonStyle')) + ->options([ + SystemSetting::FIRST_RECHARGE_TYPE_VALUE => admin_trans('first_recharge_setting.type.' . SystemSetting::FIRST_RECHARGE_TYPE_VALUE), + SystemSetting::FIRST_RECHARGE_TYPE_PERCENT => admin_trans('first_recharge_setting.type.' . SystemSetting::FIRST_RECHARGE_TYPE_PERCENT), + ]) + ->when(SystemSetting::FIRST_RECHARGE_TYPE_VALUE, function (Form $form) { + $form->text('number', admin_trans('first_recharge_setting.fields.number')) + ->rule([ + 'integer' => admin_trans('validator.integer'), + 'max:100000' => admin_trans('validator.max', null, ['{max}' => 100000000]), + 'min:1' => admin_trans('validator.min', null, ['{min}' => 1]), + ]) + ->required() + ->span(24) + ->suffix('coin'); + }) + ->when(SystemSetting::FIRST_RECHARGE_TYPE_PERCENT, function (Form $form) { + $form->text('number', admin_trans('first_recharge_setting.fields.number_percent')) + ->rule([ + 'integer' => admin_trans('validator.integer'), + 'max:100000' => admin_trans('validator.max', null, ['{max}' => 100000000]), + 'min:1' => admin_trans('validator.min', null, ['{min}' => 1]), + ]) + ->required() + ->span(24) + ->suffix('%'); + }); + $form->number('chip_multiple', admin_trans('first_recharge_setting.fields.chip_amount')) + ->min(0) + ->max(100000000) + ->span(24) + ->style(['width' => '100%']) + ->required() + ->precision(2); + })->class(['activity-phase-has-many']); + })->sortField('sort')->defaultRow(1); + $form->layout('vertical'); + $form->saving(function (Form $form) { + $content = $form->input('content'); + $settingContent = []; + foreach ($content as $item) { + $settingContent[] = [ + 'model' => $item['model'], + 'type' => $item['type'], + 'add_number' => $item['add_number'] ?? 0, + 'chip_multiple' => $item['chip_multiple'], + 'number' => $item['number'], + ]; + } + if (!SystemSetting::updateOrCreate( + [ + 'department_id' => Admin::user()->department_id, + 'feature' => 'first_recharge_setting', + ], + [ + 'content' => json_encode($settingContent) + ] + )) { + return message_error(admin_trans('form.save_error')); + } + return message_success(admin_trans('form.save_success')); + }); + }); + } + + /** + * 在线充值 + * @group channel + * @auth true + */ + public function speedPayList(): Grid + { + return Grid::create(new $this->sepay_model(), function (Grid $grid) { + $grid->autoHeight(); + $grid->bordered(true); + $grid->tools([ + Button::create(admin_trans('channel_recharge_setting.manual_recharge_setting')) + ->danger() + ->drawer($this->methodForm()), + Button::create(admin_trans('channel_recharge_setting.usdt_recharge_setting')) + ->danger() + ->drawer($this->form()) + ]); + $grid->model()->where('department_id', Admin::user()->department_id)->orderBy('money'); + $grid->column('id', admin_trans('channel_recharge_setting.fields.id'))->align('center'); + $grid->column('title', admin_trans('channel_recharge_setting.fields.title'))->align('center'); + $grid->column('coins_num', admin_trans('channel_recharge_setting.fields.coins_num'))->align('center'); + $grid->column('first_coins', admin_trans('channel_recharge_setting.fields.first_coins'))->align('center'); + $grid->column('money', admin_trans('channel_recharge_setting.fields.money'))->align('center'); + $grid->column('admin_id', admin_trans('channel_recharge_setting.fields.user_name'))->display(function ($val) { + return AdminUser::query()->find($val)->username; + }) + ->align('center'); + $grid->column('status', admin_trans('channel_recharge_setting.fields.status'))->switch()->align('center'); + $grid->column('created_at', admin_trans('qrcode.qrcode_batch.created_at'))->align('center')->fixed(true); + $grid->hideDelete(); + $grid->hideSelection(); + $grid->hideDeleteSelection(); + $grid->hideTrashed(); + $grid->addButton()->drawer($this->addSpeedPay()); + $grid->actions(function (Actions $actions) { + $actions->hideEdit(); + }); + }); + } + + /** + * 在线充值配置 + * @auth true + * @group channel + * @return Form + */ + public function addSpeedPay(): Form + { + return Form::create(new $this->sepay_model(), function (Form $form) { + $form->text('title', admin_trans('channel_recharge_setting.fields.title'))->maxlength(30)->required(); + $form->number('coins_num', admin_trans('channel_recharge_setting.fields.coins_num')) + ->style(['width' => '100%']) + ->min(1) + ->max(100000000) + ->precision(2) + ->required() + ->rule([ + 'required' => admin_trans('channel_recharge_setting.rul.coins_num'), + 'min:1' => admin_trans('channel_recharge_setting.rul.coins_num_1'), + 'max:100000000' => admin_trans('channel_recharge_setting.rul.coins_num_max_100000000'), + ]) + ->placeholder(admin_trans('channel_recharge_setting.placeholder_coins_num')); + $form->number('first_coins', admin_trans('channel_recharge_setting.fields.first_coins')) + ->style(['width' => '100%']) + ->min(0) + ->max(100000000) + ->precision(2) + ->rule([ + 'required' => admin_trans('channel_recharge_setting.rul.first_coins'), + 'min:0' => admin_trans('channel_recharge_setting.rul.gift_coins_1'), + 'max:100000000' => admin_trans('channel_recharge_setting.rul.gift_coins_max_100000000'), + ]) + ->placeholder(admin_trans('channel_recharge_setting.placeholder_coins_num')); + $form->number('money', admin_trans('channel_recharge_setting.fields.money')) + ->style(['width' => '100%']) + ->min(5) + ->max(20000) + ->precision(2) + ->required() + ->placeholder(admin_trans('channel_recharge_setting.placeholder_money')); + $form->layout('vertical'); + $form->saving(function (Form $form) { + try { + $setting = new SepayRecharge(); + $setting->department_id = Admin::user()->department_id; + $setting->title = $form->input('title'); + $setting->coins_num = $form->input('coins_num'); + $setting->first_coins = $form->input('first_coins'); + $setting->money = $form->input('money'); + $setting->admin_id = Admin::id(); + $setting->save(); + } catch (\Exception $exception) { + return message_error(admin_trans('form.save_error')); + } + return message_success(admin_trans('form.save_success')); + }); + }); + } + +} diff --git a/addons/webman/controller/ChannelRechargeRecordController.php b/addons/webman/controller/ChannelRechargeRecordController.php new file mode 100644 index 0000000..e19ab4c --- /dev/null +++ b/addons/webman/controller/ChannelRechargeRecordController.php @@ -0,0 +1,644 @@ +model = plugin()->webman->config('database.player_recharge_record_model'); + } + + /** + * 渠道充值 + * @group channel + * @auth true + */ + public function index(): Grid + { + return Grid::create(new $this->model(), function (Grid $grid) { + $grid->title(admin_trans('player_recharge_record.title')); + $grid->model()->with(['player', 'channel_recharge_setting'])->whereIn('type', [PlayerRechargeRecord::TYPE_REGULAR, PlayerRechargeRecord::TYPE_ARTIFICIAL, PlayerRechargeRecord::TYPE_ACTIVITY])->orderBy('created_at', 'desc'); + $exAdminFilter = Request::input('ex_admin_filter', []); + if (!empty($exAdminFilter)) { + if (isset($exAdminFilter['created_at_start']) && !empty($exAdminFilter['created_at_start'])) { + $grid->model()->where('created_at', '>=', $exAdminFilter['created_at_start']); + } + if (isset($exAdminFilter['created_at_end']) && !empty($exAdminFilter['created_at_end'])) { + $grid->model()->where('created_at', '<=', $exAdminFilter['created_at_end']); + } + if (isset($exAdminFilter['finish_time_start']) && !empty($exAdminFilter['finish_time_start'])) { + $grid->model()->where('finish_time', '>=', $exAdminFilter['finish_time_start']); + } + if (isset($exAdminFilter['finish_time_end']) && !empty($exAdminFilter['finish_time_end'])) { + $grid->model()->where('finish_time', '<=', $exAdminFilter['finish_time_end']); + } + if (!empty($exAdminFilter['player']['uuid'])) { + $grid->model()->whereHas('player', function ($query) use ($exAdminFilter) { + $query->where('uuid', 'like', '%' . $exAdminFilter['player']['uuid'] . '%'); + }); + } + if (!empty($exAdminFilter['player']['name'])) { + $grid->model()->whereHas('player', function ($query) use ($exAdminFilter) { + $query->where('name', 'like', '%' . $exAdminFilter['player']['name'] . '%'); + }); + } + if (!empty($exAdminFilter['type'])) { + $grid->model()->where('type', $exAdminFilter['type']); + } + if (isset($exAdminFilter['status']) && (!empty($exAdminFilter['status']) || $exAdminFilter['status'] === 0)) { + $grid->model()->where('status', $exAdminFilter['status']); + } + if (!empty($exAdminFilter['tradeno'])) { + $grid->model()->where('tradeno', $exAdminFilter['tradeno']); + } + } + $query = clone $grid->model(); + $totalData = $query->selectRaw( + "ifNull(sum(IF(type = 4, money,0)), 0) as total_artificial_money, + ifNull(sum(IF(type = 1, money,0)), 0) as total_espay_money, + ifNull(sum(IF(payment_method = 'DUITNOWP2P', money,0)), 0) as total_espay_duitnow_money, + ifNull(sum(IF(payment_method = 'P2PDEPOSIT', money,0)), 0) as total_espay_deposit_money, + ifNull(sum(IF(payment_method = 'duitnowqr', money,0)), 0) as total_onepay_duitnow_money, + ifNull(sum(IF(payment_method = 'online_banking', money,0)), 0) as total_onepay_deposit_money, + ifNull(sum(IF(payment_method = 'QR', money,0)), 0) as total_skl_duitnow_money, + ifNull(sum(IF(payment_method = 'P2P', money,0)), 0) as total_skl_deposit_money" + )->first(); + $layout = Layout::create(); + $layout->row(function (Row $row) use ($totalData) { + $row->gutter([10, 0]); + $row->column( + Card::create([ + Row::create()->column(Statistic::create()->title(admin_trans('player_recharge_record.total_data.total_artificial_money')) + ->value(!empty($totalData['total_artificial_money']) ? floatval($totalData['total_artificial_money']) : 0)->style([ + 'font-size' => '15px', + 'text-align' => 'center' + ])), + ])->bodyStyle([ + 'display' => 'flex', + 'align-items' => 'center', + 'height' => '72px' + ])->hoverable()->headStyle(['height' => '0px', 'border-bottom' => '0px', 'min-height' => '0px']) + , 8); + $row->column( + Card::create([ + Row::create()->column(Statistic::create()->title(admin_trans('player_recharge_record.total_data.total_espay_money')) + ->value(!empty($totalData['total_espay_money']) ? floatval($totalData['total_espay_money']) : 0)->style([ + 'font-size' => '15px', + 'text-align' => 'center' + ])), + ])->bodyStyle([ + 'display' => 'flex', + 'align-items' => 'center', + 'height' => '72px' + ])->hoverable()->headStyle(['height' => '0px', 'border-bottom' => '0px', 'min-height' => '0px']) + , 8); + $row->column( + Card::create([ + Row::create()->column(Statistic::create()->title(admin_trans('player_recharge_record.total_data.total_espay_inmoney')) + ->value(bcadd(bcadd( + bcadd(bcmul($totalData['total_espay_duitnow_money'], 0.97, 3), bcmul($totalData['total_espay_deposit_money'], 0.985, 3), 3), + bcadd(bcmul($totalData['total_onepay_duitnow_money'], 0.984, 3), bcmul($totalData['total_onepay_deposit_money'], 0.986, 3), 3), + 3), bcadd(bcmul($totalData['total_skl_duitnow_money'], 0.987, 3), bcmul($totalData['total_skl_deposit_money'], 0.989, 3), 3), 3)) + ->style([ + 'font-size' => '15px', + 'text-align' => 'center' + ])), + ])->bodyStyle([ + 'display' => 'flex', + 'align-items' => 'center', + 'height' => '72px' + ])->hoverable()->headStyle(['height' => '0px', 'border-bottom' => '0px', 'min-height' => '0px']) + , 8); + })->style(['background' => '#fff']); + $grid->header($layout); + $grid->bordered(true); + $grid->autoHeight(); + $grid->column('id', admin_trans('player_recharge_record.fields.id'))->align('center')->fixed(true); + $grid->column('tradeno', admin_trans('player_recharge_record.fields.tradeno'))->copy()->fixed(true); + $grid->column('player.uuid', admin_trans('player.fields.uuid'))->copy()->fixed(true); + $grid->column('player.name', admin_trans('player.fields.name'))->display(function ($val, PlayerRechargeRecord $data) { + $image = isset($data->player->avatar) && !empty($data->player->avatar) ? Avatar::create()->src($data->player->avatar) : Avatar::create()->icon(Icon::create('UserOutlined')); + return Html::create()->content([ + $image, + Html::div()->content($val) + ]); + })->align('center'); + $grid->column('money', admin_trans('player_recharge_record.fields.money'))->display(function ($val, PlayerRechargeRecord $data) { + return bcdiv($val,$data->rate, 2) . ' ' . ($data->currency); + })->align('center'); + $grid->column('inmoney', admin_trans('player_recharge_record.fields.inmoney'))->display(function ($val, PlayerRechargeRecord $data) { + if ($data->payment_method == 'DUITNOWP2P') { + $ratio = 0.97; + } elseif ($data->payment_method == 'P2PDEPOSIT') { + $ratio = 0.985; + } elseif ($data->payment_method == 'duitnowqr') { + $ratio = 0.984; + } elseif ($data->payment_method == 'online_banking') { + $ratio = 0.986; + } elseif ($data->payment_method == 'P2P') { + $ratio = 0.989; + } elseif ($data->payment_method == 'QR') { + $ratio = 0.987; + } else { + $ratio = 1; + } + if ($data->currency == 'USDT') { + return bcdiv($val,$data->rate, 2) . ' ' . ($data->currency); + } + return $data->money * $ratio . ' ' . ($data->currency); + })->align('center'); + $grid->column('coins', admin_trans('player_recharge_record.fields.coins'))->align('center')->sortable(); + $grid->column('gift_coins', admin_trans('player_recharge_record.fields.gift_coins'))->align('center'); + $grid->column('type', admin_trans('player_recharge_record.fields.type'))->display(function ($val) { + switch ($val) { + case PlayerRechargeRecord::TYPE_REGULAR: + return Tag::create(admin_trans('player_recharge_record.type.' . $val)) + ->color('#55acee'); + case PlayerRechargeRecord::TYPE_ACTIVITY: + return Tag::create(admin_trans('player_recharge_record.type.' . $val)) + ->color('#3b5999'); + case PlayerRechargeRecord::TYPE_ARTIFICIAL: + return Tag::create(admin_trans('player_recharge_record.type.' . $val)) + ->color('#cd201f'); + default: + return ''; + } + })->align('center'); + $grid->column('status', admin_trans('player_recharge_record.fields.status'))->display(function ($val) { + switch ($val) { + case PlayerRechargeRecord::STATUS_WAIT: + return Tag::create(admin_trans('player_recharge_record.status_wait')) + ->color('#108ee9'); + case PlayerRechargeRecord::STATUS_RECHARGING: + return Tag::create(admin_trans('player_recharge_record.status_examine')) + ->color('#3b5999'); + case PlayerRechargeRecord::STATUS_RECHARGED_SUCCESS: + return Tag::create(admin_trans('player_recharge_record.status_success')) + ->color('#87d068'); + case PlayerRechargeRecord::STATUS_RECHARGED_FAIL: + return Tag::create(admin_trans('player_recharge_record.status_fail')) + ->color('#f50'); + case PlayerRechargeRecord::STATUS_RECHARGED_CANCEL: + return Tag::create(admin_trans('player_recharge_record.status_cancel')) + ->color('#2db7f5'); + case PlayerRechargeRecord::STATUS_RECHARGED_REJECT: + return Tag::create(admin_trans('player_recharge_record.status_reject')) + ->color('#2db7f5'); + case PlayerRechargeRecord::STATUS_RECHARGED_SYSTEM_CANCEL: + return Tag::create(admin_trans('player_recharge_record.status_system_cancel')) + ->color('#2db7f5'); + default: + return ''; + } + })->align('center'); + $grid->column('remark', admin_trans('player_recharge_record.fields.remark'))->display(function ($value) { + return Str::of($value)->limit(20, ' (...)'); + })->editable( + (new Editable)->textarea('remark') + ->showCount() + ->rows(5) + ->rule(['max:255' => admin_trans('player_recharge_record.fields.remark')]) + )->width('150px')->align('center'); + $grid->column('user_name', admin_trans('player_recharge_record.fields.user_name'))->align('center'); + $grid->column('finish_time', admin_trans('player_recharge_record.fields.finish_time'))->sortable()->align('center'); + $grid->column('created_at', admin_trans('player_recharge_record.fields.created_at'))->sortable()->align('center')->fixed('right'); + $grid->hideDelete(); + $grid->hideSelection(); + $grid->expandFilter(); + $grid->actions(function (Actions $actions) { + $actions->hideDel(); + $actions->hideEdit(); + }); + $grid->filter(function (Filter $filter) { + $filter->like()->text('player.uuid')->placeholder(admin_trans('player.fields.uuid')); + $filter->like()->text('player.name')->placeholder(admin_trans('player.fields.name')); + $filter->eq()->select('type') + ->showSearch() + ->style(['width' => '200px']) + ->dropdownMatchSelectWidth() + ->placeholder(admin_trans('player_recharge_record.fields.type')) + ->options([ + PlayerRechargeRecord::TYPE_REGULAR => admin_trans('player_recharge_record.type.' . PlayerRechargeRecord::TYPE_REGULAR), + PlayerRechargeRecord::TYPE_ARTIFICIAL => admin_trans('player_recharge_record.type.' . PlayerRechargeRecord::TYPE_ARTIFICIAL), + ]); + $filter->eq()->select('status') + ->showSearch() + ->style(['width' => '200px']) + ->dropdownMatchSelectWidth() + ->placeholder(admin_trans('player_recharge_record.fields.status')) + ->options([ + PlayerRechargeRecord::STATUS_WAIT => admin_trans('player_recharge_record.status.' . PlayerRechargeRecord::STATUS_WAIT), + PlayerRechargeRecord::STATUS_RECHARGING => admin_trans('player_recharge_record.status.' . PlayerRechargeRecord::STATUS_RECHARGING), + PlayerRechargeRecord::STATUS_RECHARGED_SUCCESS => admin_trans('player_recharge_record.status.' . PlayerRechargeRecord::STATUS_RECHARGED_SUCCESS), + PlayerRechargeRecord::STATUS_RECHARGED_FAIL => admin_trans('player_recharge_record.status.' . PlayerRechargeRecord::STATUS_RECHARGED_FAIL), + PlayerRechargeRecord::STATUS_RECHARGED_CANCEL => admin_trans('player_recharge_record.status.' . PlayerRechargeRecord::STATUS_RECHARGED_CANCEL), + PlayerRechargeRecord::STATUS_RECHARGED_REJECT => admin_trans('player_recharge_record.status.' . PlayerRechargeRecord::STATUS_RECHARGED_REJECT), + PlayerRechargeRecord::STATUS_RECHARGED_SYSTEM_CANCEL => admin_trans('player_recharge_record.status.' . PlayerRechargeRecord::STATUS_RECHARGED_SYSTEM_CANCEL), + ]); + $filter->like()->text('tradeno')->placeholder(admin_trans('player_recharge_record.fields.tradeno')); + $filter->form()->hidden('created_at_start'); + $filter->form()->hidden('created_at_end'); + $filter->form()->dateTimeRange('created_at_start', 'created_at_end', '')->placeholder([admin_trans('public_msg.created_at_start'), admin_trans('public_msg.created_at_end')]); + $filter->form()->hidden('finish_time_start'); + $filter->form()->hidden('finish_time_end'); + $filter->form()->dateTimeRange('finish_time_start', 'finish_time_end', '')->placeholder([admin_trans('player_recharge_record.fields.finish_time'), admin_trans('player_recharge_record.fields.finish_time')]); + + }); + }); + } + + /** + * 充值审核 + * @group channel + * @auth true + */ + public function examineList(): Grid + { + return Grid::create(new $this->model(), function (Grid $grid) { + $grid->title(admin_trans('player_recharge_record.examine_title')); + $grid->bordered(true); + $grid->autoHeight(); + $requestFilter = Request::input('ex_admin_filter', []); + $tradeno = Request::input('tradeno', []); + if (!empty($tradeno)) { + $grid->model()->where('tradeno', $tradeno); + } + $grid->model()->with(['player', 'channel_recharge_setting'])->whereIn('type', [PlayerRechargeRecord::TYPE_REGULAR, PlayerRechargeRecord::TYPE_ACTIVITY]) + ->whereIn('status', [PlayerRechargeRecord::STATUS_RECHARGING, PlayerRechargeRecord::STATUS_WAIT, PlayerRechargeRecord::STATUS_RECHARGED_SUCCESS, PlayerRechargeRecord::STATUS_RECHARGED_REJECT, PlayerRechargeRecord::STATUS_RECHARGED_SYSTEM_CANCEL]) + ->whereNull('payment_method') + ->orderBy('created_at', 'desc'); + if (isset($requestFilter['created_at_start']) && !empty($requestFilter['created_at_start'])) { + $grid->model()->where('created_at', '>=', $requestFilter['created_at_start']); + } + if (isset($requestFilter['created_at_end']) && !empty($requestFilter['created_at_end'])) { + $grid->model()->where('created_at', '<=', $requestFilter['created_at_end']); + } + $grid->column('id', admin_trans('player_recharge_record.fields.id'))->align('center'); + $grid->column('tradeno', admin_trans('player_recharge_record.fields.tradeno'))->copy(); + $grid->column('player.uuid', admin_trans('player.fields.uuid'))->copy(); + $grid->column('player.name', admin_trans('player.fields.name'))->display(function ($val, PlayerRechargeRecord $data) { + $image = isset($data->player->avatar) && !empty($data->player->avatar) ? Avatar::create()->src($data->player->avatar) : Avatar::create()->icon(Icon::create('UserOutlined')); + return Html::create()->content([ + $image, + Html::div()->content($val) + ]); + })->align('center'); + $grid->column('money', admin_trans('player_recharge_record.fields.money'))->display(function ($val, PlayerRechargeRecord $data) { + return bcdiv($val,$data->rate, 2) . ' ' . $data->currency; + })->align('center'); + $grid->column('coins', admin_trans('player_recharge_record.fields.coins'))->align('center'); + $grid->column('gift_coins', admin_trans('player_recharge_record.fields.gift_coins'))->align('center'); + $grid->column('status', admin_trans('player_recharge_record.fields.status'))->display(function ($val) { + switch ($val) { + case PlayerRechargeRecord::STATUS_WAIT: + return Tag::create(admin_trans('player_recharge_record.status_wait')) + ->color('#108ee9'); + case PlayerRechargeRecord::STATUS_RECHARGING: + return Tag::create(admin_trans('player_recharge_record.status_examine')) + ->color('#3b5999'); + case PlayerRechargeRecord::STATUS_RECHARGED_SUCCESS: + return Tag::create(admin_trans('player_recharge_record.status_success')) + ->color('#87d068'); + case PlayerRechargeRecord::STATUS_RECHARGED_FAIL: + return Tag::create(admin_trans('player_recharge_record.status_fail')) + ->color('#f50'); + case PlayerRechargeRecord::STATUS_RECHARGED_CANCEL: + return Tag::create(admin_trans('player_recharge_record.status_cancel')) + ->color('#2db7f5'); + case PlayerRechargeRecord::STATUS_RECHARGED_REJECT: + return Tag::create(admin_trans('player_recharge_record.status_reject')) + ->color('#2db7f5'); + case PlayerRechargeRecord::STATUS_RECHARGED_SYSTEM_CANCEL: + return Tag::create(admin_trans('player_recharge_record.status_system_cancel')) + ->color('#2db7f5'); + default: + return ''; + } + })->align('center'); + $grid->column('remark', admin_trans('player_recharge_record.fields.remark'))->display(function ($value) { + return Str::of($value)->limit(20, ' (...)'); + })->editable( + (new Editable)->textarea('remark') + ->showCount() + ->rows(5) + ->rule(['max:255' => admin_trans('player_recharge_record.fields.remark')]) + )->width('150px')->align('center'); + $grid->column('reject_reason', admin_trans('player_recharge_record.fields.reject_reason'))->display(function ($value) { + return Str::of($value)->limit(20, ' (...)'); + })->tip()->width('150px')->align('center'); + $grid->column('created_at', admin_trans('player_recharge_record.fields.created_at'))->sortable()->align('center'); + $grid->hideDelete(); + $grid->hideSelection(); + $grid->expandFilter(); + $grid->actions(function (Actions $actions, PlayerRechargeRecord $data) { + $actions->hideDel(); + $actions->hideEdit(); + $dropdown = Dropdown::create( + Button::create([ + admin_trans('player_recharge_record.btn.action'), Icon::create('DownOutlined')->style(['marginRight' => '5px']) + ]))->trigger(['click']); + + $dropdown->item(admin_trans('player_recharge_record.btn.view_channel_recharge_setting'), 'AppstoreAddOutlined') + ->modal([$this, 'rechargeSetting'], ['setting_id' => $data->setting_id]); + $dropdown->item(admin_trans('player_recharge_record.btn.view_recharge_certificate'), 'far fa-file-image') + ->modal($this->rechargeCertificate([ + 'tradeno' => $data->tradeno, + 'certificate' => $data->certificate, + ]))->title(admin_trans('player_recharge_record.view_recharge_certificate_title', null, ['{tradeno}' => $data->tradeno])); + + $dropdown->item(admin_trans('player_recharge_record.btn.examine_pass'), 'SafetyCertificateOutlined') + ->confirm(admin_trans('player_recharge_record.btn.examine_pass_confirm'), [$this, 'pass'], ['id' => $data->id]); + + $dropdown->item(admin_trans('player_recharge_record.btn.examine_reject'), 'WarningFilled') + ->modal([$this, 'reject'], ['id' => $data->id]); + $actions->prepend( + $dropdown + ); + }); + $grid->filter(function (Filter $filter) { + $filter->like()->text('player.uuid')->placeholder(admin_trans('player.fields.uuid')); + $filter->like()->text('player.name')->placeholder(admin_trans('player.fields.name')); + $filter->eq()->select('status') + ->showSearch() + ->style(['width' => '200px']) + ->dropdownMatchSelectWidth() + ->placeholder(admin_trans('player_recharge_record.fields.status')) + ->options([ + PlayerRechargeRecord::STATUS_WAIT => admin_trans('player_recharge_record.status_wait'), + PlayerRechargeRecord::STATUS_RECHARGING => admin_trans('player_recharge_record.status_examine'), + PlayerRechargeRecord::STATUS_RECHARGED_SUCCESS => admin_trans('player_recharge_record.status_examine_pass'), + PlayerRechargeRecord::STATUS_RECHARGED_REJECT => admin_trans('player_recharge_record.status_examine_reject'), + PlayerRechargeRecord::STATUS_RECHARGED_SYSTEM_CANCEL => admin_trans('player_recharge_record.status_system_cancel'), + ]); + $filter->like()->text('tradeno')->placeholder(admin_trans('player_recharge_record.fields.tradeno')); + $filter->eq()->number('money')->precision(2)->style(['width' => '200px'])->placeholder(admin_trans('player_recharge_record.fields.money')); + $filter->form()->hidden('created_at_start'); + $filter->form()->hidden('created_at_end'); + $filter->form()->dateTimeRange('created_at_start', 'created_at_end', '')->placeholder([admin_trans('public_msg.created_at_start'), admin_trans('public_msg.created_at_end')]); + }); + }); + } + + /** + * 充值订单审核拒绝 + * @auth true + * @group channel + * @param $id + * @return Form + */ + public function reject($id): Form + { + return Form::create(new $this->model(), function (Form $form) use ($id) { + $form->textarea('reject_reason')->rows(5)->required(); + $form->saving(function (Form $form) use ($id) { + /** @var PlayerRechargeRecord $playerRechargeRecord */ + $playerRechargeRecord = $this->model::find($id); + if (empty($playerRechargeRecord)) { + return message_error(admin_trans('player_recharge_record.not_fount')); + } + if ($playerRechargeRecord->type != PlayerRechargeRecord::TYPE_REGULAR && $playerRechargeRecord->type != PlayerRechargeRecord::TYPE_ACTIVITY) { + return message_error(admin_trans('player_recharge_record.recharge_record_error')); + } + switch ($playerRechargeRecord->status) { + case PlayerRechargeRecord::STATUS_RECHARGED_SUCCESS: + return message_warning(admin_trans('player_recharge_record.recharge_record_has_pass')); + case PlayerRechargeRecord::STATUS_RECHARGED_FAIL: + return message_warning(admin_trans('player_recharge_record.recharge_record_has_fail')); + case PlayerRechargeRecord::STATUS_RECHARGED_CANCEL: + return message_warning(admin_trans('player_recharge_record.recharge_record_has_cancel')); + case PlayerRechargeRecord::STATUS_RECHARGED_REJECT: + return message_warning(admin_trans('player_recharge_record.recharge_record_has_reject')); + case PlayerRechargeRecord::STATUS_RECHARGED_SYSTEM_CANCEL: + return message_warning(admin_trans('player_recharge_record.recharge_record_has_system_cancel')); + } + try { + // 生成订单 + $playerRechargeRecord->status = PlayerRechargeRecord::STATUS_RECHARGED_REJECT; + $playerRechargeRecord->reject_reason = $form->input('reject_reason'); + $playerRechargeRecord->finish_time = date('Y-m-d H:i:s'); + $playerRechargeRecord->user_id = Admin::id() ?? 0; + $playerRechargeRecord->user_name = !empty(Admin::user()) ? Admin::user()->username : ''; + if ($playerRechargeRecord->save()) { + saveChannelFinancialRecord($playerRechargeRecord, ChannelFinancialRecord::ACTION_RECHARGE_REJECT); + } + } catch (\Exception $e) { + return message_error(admin_trans('player_recharge_record.action_error')); + } + return message_success(admin_trans('player_recharge_record.action_success')); + }); + }); + } + + /** + * 充值订单审核通过 + * @param $id + * @auth true + * @group channel + * @return Msg + */ + public function pass($id): Msg + { + /** @var PlayerRechargeRecord $playerRechargeRecord */ + $playerRechargeRecord = $this->model::find($id); + if (empty($playerRechargeRecord)) { + return message_error(admin_trans('player_recharge_record.not_fount')); + } + if ($playerRechargeRecord->type != PlayerRechargeRecord::TYPE_REGULAR && $playerRechargeRecord->type != PlayerRechargeRecord::TYPE_ACTIVITY) { + return message_error(admin_trans('player_recharge_record.recharge_record_error')); + } + switch ($playerRechargeRecord->status) { + case PlayerRechargeRecord::STATUS_WAIT: + return message_warning(admin_trans('player_recharge_record.recharge_record_not_complete')); + case PlayerRechargeRecord::STATUS_RECHARGED_SUCCESS: + return message_warning(admin_trans('player_recharge_record.recharge_record_has_pass')); + case PlayerRechargeRecord::STATUS_RECHARGED_FAIL: + return message_warning(admin_trans('player_recharge_record.recharge_record_has_fail')); + case PlayerRechargeRecord::STATUS_RECHARGED_CANCEL: + return message_warning(admin_trans('player_recharge_record.recharge_record_has_cancel')); + case PlayerRechargeRecord::STATUS_RECHARGED_REJECT: + return message_warning(admin_trans('player_recharge_record.recharge_record_has_reject')); + case PlayerRechargeRecord::STATUS_RECHARGED_SYSTEM_CANCEL: + return message_warning(admin_trans('player_recharge_record.recharge_record_has_system_cancel')); + } + /** @var Channel $channel */ + $channel = Channel::where('department_id', Admin::user()->department_id)->first(); + if (empty($channel)) { + return message_error(admin_trans('channel.not_fount')); + } + DB::beginTransaction(); + try { + $firstRecharge = PlayerRechargeRecord::query() + ->where('player_id', $playerRechargeRecord->player_id) + ->where('status', 2) + ->where('setting_id', '>', 0) + ->doesntExist(); + if (!$firstRecharge) { + $playerRechargeRecord->gift_coins = 0; + } + $beforeGameAmount = $playerRechargeRecord->player->wallet->money; + // 生成订单 + $playerRechargeRecord->status = PlayerRechargeRecord::STATUS_RECHARGED_SUCCESS; + $playerRechargeRecord->finish_time = date('Y-m-d H:i:s'); + $playerRechargeRecord->user_id = Admin::id() ?? 0; + $playerRechargeRecord->user_name = !empty(Admin::user()) ? Admin::user()->username : ''; + $allCoins = bcadd($playerRechargeRecord->coins, $playerRechargeRecord->gift_coins, 2); + $playerRechargeRecord->player->wallet->money = bcadd($playerRechargeRecord->player->wallet->money, $allCoins, 2); + $playerRechargeRecord->player->player_extend->recharge_amount = bcadd($playerRechargeRecord->player->player_extend->recharge_amount, $allCoins, 2); + + // 寫入金流明細 + $playerDeliveryRecord = new PlayerDeliveryRecord; + $playerDeliveryRecord->player_id = $playerRechargeRecord->player_id; + $playerDeliveryRecord->department_id = $playerRechargeRecord->department_id; + $playerDeliveryRecord->target = $playerRechargeRecord->getTable(); + $playerDeliveryRecord->target_id = $playerRechargeRecord->id; + $playerDeliveryRecord->type = PlayerDeliveryRecord::TYPE_RECHARGE; + $playerDeliveryRecord->source = 'self_recharge'; + $playerDeliveryRecord->amount = $allCoins; + $playerDeliveryRecord->amount_before = $beforeGameAmount; + $playerDeliveryRecord->amount_after = $playerRechargeRecord->player->wallet->money; + $playerDeliveryRecord->tradeno = $playerRechargeRecord->tradeno ?? ''; + $playerDeliveryRecord->remark = $playerRechargeRecord->remark ?? ''; + $playerDeliveryRecord->save(); + // 更新渠道信息 + $channel->recharge_amount = bcadd($channel->recharge_amount, $allCoins, 2); + $channel->save(); + $playerRechargeRecord->push(); + // 記錄財務操作 + saveChannelFinancialRecord($playerRechargeRecord, ChannelFinancialRecord::ACTION_RECHARGE_PASS); + DB::commit(); + sendSocketMessage('private-recharge_withdrawal', [ + 'msg_type' => 'withdrawal', + 'player_id' => $playerRechargeRecord->player_id, + 'amount' => $playerRechargeRecord->player->wallet->money, + ]); + } catch (\Exception $e) { + DB::rollBack(); + Log::error('充值错误', [$e->getTrace()]); + return message_error(admin_trans('player_recharge_record.action_error') . $e->getMessage() . $e->getLine()); + } + return message_success(admin_trans('player_recharge_record.action_success'))->refresh(); + } + + + /** + * 查看付款凭证 + * @auth true + * @group channel + * @param $data + * @return Detail + */ + public function rechargeCertificate($data): Detail + { + return Detail::create($data, function (Detail $detail) { + $detail->item('certificate')->display(function ($val) { + if (!empty($val)) { + $image = Image::create() + ->width(100) + ->height(100) + ->style(['objectFit' => 'cover']) + ->src($val); + } + return Html::create()->content([ + $image ?? EmptyStatus::create()->style(['margin' => '0 160px !important']) + ])->style(['margin' => '0 auto']); + }); + })->column(1); + } + + /** + * 查看充值账号配置 + * @auth true + * @group channel + * @param $setting_id + * @return Detail + */ + public function rechargeSetting($setting_id): Detail + { + $lang = Container::getInstance()->translator->getLocale(); + /** @var ChannelRechargeSetting $data */ + $data = ChannelRechargeSetting::find($setting_id); + /** @var ChannelRechargeMethodLang $methodLang */ + $methodLang = $data->channel_recharge_method->methodLang->where('lang', $lang)->first(); + return Detail::create([ + 'bank_name' => $methodLang->bank_name ?? '', + 'sub_bank' => $methodLang->sub_bank ?? '', + 'owner' => $methodLang->owner ?? '', + 'account' => $data->channel_recharge_method->account, + ], function (Detail $detail) { + $detail->item('bank_name', admin_trans('channel_recharge_method.fields.bank_name')); + $detail->item('sub_bank', admin_trans('channel_recharge_method.fields.sub_bank')); + $detail->item('owner', admin_trans('channel_recharge_method.fields.owner')); + $detail->item('account', admin_trans('channel_recharge_method.fields.account')); + })->column(2); + } + + /** + * 筛选玩家下拉 + * @return mixed + */ + public function getPlayerOptions() + { + $request = Request::input(); + $player = Player::orderBy('created_at', 'desc') + ->forPage(1, 20); + if (!empty($request['search'])) { + $player->where('phone', 'like', '%' . $request['search'] . '%'); + } + $playerList = $player->get(); + $data = []; + /** @var Player $player */ + foreach ($playerList as $player) { + $data[] = [ + 'value' => $player->id, + 'label' => $player->phone, + ]; + } + return Response::success($data); + } +} diff --git a/addons/webman/controller/ChannelWithdrawRecordController.php b/addons/webman/controller/ChannelWithdrawRecordController.php new file mode 100644 index 0000000..a8a5f09 --- /dev/null +++ b/addons/webman/controller/ChannelWithdrawRecordController.php @@ -0,0 +1,846 @@ +model = plugin()->webman->config('database.player_withdraw_record_model'); + $this->rechargeModel = plugin()->webman->config('database.player_recharge_record_model'); + } + + /** + * 提现审核 + * @group channel + * @auth true + */ + public function examineList(): Grid + { + return Grid::create(new $this->model(), function (Grid $grid) { + $grid->title(admin_trans('player_withdraw_record.examine_title')); + $grid->bordered(true); + $grid->autoHeight(); + $tradeno = Request::input('tradeno', []); + if (!empty($tradeno)) { + $grid->model()->where('tradeno', $tradeno); + } + $grid->model()->with(['player']) + ->where('type', PlayerWithdrawRecord::TYPE_SELF) + ->orWhere('status',PlayerWithdrawRecord::STATUS_WAIT) + ->orderBy('created_at', 'desc') + ->orderBy('status', 'asc'); + $exAdminFilter = Request::input('ex_admin_filter', []); + if (!empty($exAdminFilter)) { + if (isset($exAdminFilter['created_at_start']) && !empty($exAdminFilter['created_at_start'])) { + $grid->model()->where('created_at', '>=', $exAdminFilter['created_at_start']); + } + if (isset($exAdminFilter['created_at_end']) && !empty($exAdminFilter['created_at_end'])) { + $grid->model()->where('created_at', '<=', $exAdminFilter['created_at_end']); + } + } + $grid->column('id', admin_trans('player_withdraw_record.fields.id'))->align('center'); + $grid->column('tradeno', admin_trans('player_withdraw_record.fields.tradeno'))->copy(); + $grid->column('player.uuid', admin_trans('player.fields.uuid'))->copy(); + $grid->column('player.name', admin_trans('player_withdraw_record.fields.player'))->display(function ($val, PlayerWithdrawRecord $data) { + if (!empty($data->player)) { + $image = isset($data->player->avatar) && !empty($data->player->avatar) ? Avatar::create()->src($data->player->avatar) : Avatar::create()->icon(Icon::create('UserOutlined')); + return Html::create()->content([ + $image, + Html::div()->content($val) + ]); + } + return ''; + })->align('center'); + $grid->column('money', admin_trans('player_withdraw_record.fields.money'))->display(function ($val, PlayerWithdrawRecord $data) { + return bcdiv($val,$data->rate, 2) . ' ' . ($data->currency == 'TALK' ? 'Q币' : $data->currency); + })->align('center'); + $grid->column('coins', admin_trans('player_withdraw_record.fields.coins'))->align('center'); + $grid->column('type', admin_trans('player_withdraw_record.fields.type'))->display(function ($val) { + switch ($val) { + case PlayerWithdrawRecord::TYPE_SELF: + return Tag::create(admin_trans('player_withdraw_record.type.' . $val)) + ->color('#3b5999'); + default: + return ''; + } + })->align('center'); + $grid->column('withdraw_setting_info', + admin_trans('player_withdraw_record.player_bank'))->display(function ( + $val, + PlayerWithdrawRecord $data + ) { + $info = []; + switch ($data->type) { + case PlayerWithdrawRecord::TYPE_USDT: + $info[] = Html::markdown('- ' . admin_trans('channel_recharge_setting.fields.wallet_address') . ': ' . $data->wallet_address); + $info[] = Html::div()->content(Image::create() + ->width(40) + ->src($data->qr_code)); + break; + case PlayerWithdrawRecord::TYPE_SELF: + $info[] = Html::markdown('- ' . admin_trans('player_withdraw_record.fields.account_name') . ': ' . $data->account_name); + $info[] = Html::markdown('- ' . admin_trans('player_withdraw_record.fields.bank_name') . ': ' . $data->bank_name); + $info[] = Html::markdown('- ' . admin_trans('player_withdraw_record.fields.account') . ': ' . $data->account); + break; + } + return Html::create()->content($info); + })->align('left'); + $grid->column('status', admin_trans('player_withdraw_record.fields.status')) + ->display(function ($value, PlayerWithdrawRecord $data) { + $rejectReason = $data->reject_reason; + switch ($value) { + case PlayerWithdrawRecord::STATUS_SUCCESS: + $tag = Tag::create(admin_trans('player_withdraw_record.status.' . PlayerWithdrawRecord::STATUS_SUCCESS))->color('#87d068'); + break; + case PlayerWithdrawRecord::STATUS_WAIT: + $tag = Tag::create(admin_trans('player_withdraw_record.status_wait'))->color('#108ee9'); + break; + case PlayerWithdrawRecord::STATUS_FAIL: + $tag = Tag::create(admin_trans('player_withdraw_record.status.' . PlayerWithdrawRecord::STATUS_FAIL))->color('#f50'); + break; + case PlayerWithdrawRecord::STATUS_PENDING_REJECT: + $tag = Tag::create(admin_trans('player_withdraw_record.status.' . PlayerWithdrawRecord::STATUS_PENDING_REJECT))->color('#cd201f'); + break; + case PlayerWithdrawRecord::STATUS_PENDING_PAYMENT: + $tag = Tag::create(admin_trans('player_withdraw_record.status.' . PlayerWithdrawRecord::STATUS_PENDING_PAYMENT))->color('#3b5999'); + break; + case PlayerWithdrawRecord::STATUS_CANCEL: + case PlayerWithdrawRecord::STATUS_SYSTEM_CANCEL: + $tag = Tag::create(admin_trans('player_withdraw_record.status.' . PlayerWithdrawRecord::STATUS_CANCEL))->color('#2db7f5'); + break; + default: + $tag = ''; + } + if (!empty($rejectReason)) { + return ToolTip::create(Badge::create( + $tag + )->count('!')->title(''))->title($rejectReason)->color('orange'); + } else { + return $tag; + } + })->align('center')->sortable(); + $grid->column('created_at', admin_trans('player_withdraw_record.fields.created_at'))->sortable()->align('center'); + $grid->column('remark', admin_trans('player_withdraw_record.fields.remark'))->display(function ($value) { + return Str::of($value)->limit(20, ' (...)'); + })->editable( + (new Editable)->textarea('remark') + ->showCount() + ->rows(5) + ->rule(['max:255' => admin_trans('player_withdraw_record.fields.remark')]) + )->width('150px')->align('center'); + $grid->hideDelete(); + $grid->hideSelection(); + $grid->expandFilter(); + $grid->actions(function (Actions $actions, PlayerWithdrawRecord $data) { + $actions->hideDel(); + $actions->hideEdit(); + $dropdown = Dropdown::create( + Button::create([ + admin_trans('player_withdraw_record.btn.action'), Icon::create('DownOutlined')->style(['marginRight' => '5px']) + ]))->trigger(['click']); + + $dropdown->item(admin_trans('player_withdraw_record.btn.view_channel_recharge_list'), 'AppstoreAddOutlined') + ->modal($this->viewRechargeList($data->player_id))->width('70%'); + + $dropdown->item(admin_trans('player_withdraw_record.btn.examine_pass'), 'SafetyCertificateOutlined') + ->confirm(admin_trans('player_withdraw_record.btn.examine_pass_confirm'), [$this, 'pass'], ['id' => $data->id])->gridRefresh(); + + $dropdown->item(admin_trans('player_withdraw_record.btn.examine_reject'), 'WarningFilled') + ->modal([$this, 'reject'], ['id' => $data->id]); + $actions->prepend( + $dropdown + ); + }); + $grid->filter(function (Filter $filter) { + $filter->like()->text('player.uuid')->placeholder(admin_trans('player.fields.uuid')); + $filter->like()->text('player.name')->placeholder(admin_trans('player.fields.name')); + $filter->eq()->select('status') + ->showSearch() + ->style(['width' => '200px']) + ->dropdownMatchSelectWidth() + ->placeholder(admin_trans('player_withdraw_record.fields.status')) + ->options([ + PlayerWithdrawRecord::STATUS_WAIT => admin_trans('player_withdraw_record.status.' . PlayerWithdrawRecord::STATUS_WAIT), + PlayerWithdrawRecord::STATUS_SUCCESS => admin_trans('player_withdraw_record.status.' . PlayerWithdrawRecord::STATUS_SUCCESS), + PlayerWithdrawRecord::STATUS_FAIL => admin_trans('player_withdraw_record.status.' . PlayerWithdrawRecord::STATUS_FAIL), + PlayerWithdrawRecord::STATUS_PENDING_PAYMENT => admin_trans('player_withdraw_record.status.' . PlayerWithdrawRecord::STATUS_PENDING_PAYMENT), + PlayerWithdrawRecord::STATUS_PENDING_REJECT => admin_trans('player_withdraw_record.status.' . PlayerWithdrawRecord::STATUS_PENDING_REJECT), + PlayerWithdrawRecord::STATUS_CANCEL => admin_trans('player_withdraw_record.status.' . PlayerWithdrawRecord::STATUS_CANCEL), + PlayerWithdrawRecord::STATUS_SYSTEM_CANCEL => admin_trans('player_withdraw_record.status.' . PlayerWithdrawRecord::STATUS_SYSTEM_CANCEL), + ]); + $filter->like()->text('tradeno')->placeholder(admin_trans('player_withdraw_record.fields.tradeno')); + $filter->eq()->number('money')->precision(2)->style(['width' => '150px'])->placeholder(admin_trans('player_withdraw_record.fields.money')); + $filter->form()->hidden('created_at_start'); + $filter->form()->hidden('created_at_end'); + $filter->form()->dateTimeRange('created_at_start', 'created_at_end', '')->placeholder([admin_trans('player_withdraw_record.fields.created_at'), admin_trans('player_withdraw_record.fields.created_at')]); + }); + }); + } + + /** + * 提现打款 + * @group channel + * @auth true + */ + public function paymentList(): Grid + { + return Grid::create(new $this->model(), function (Grid $grid) { + $grid->title(admin_trans('player_withdraw_record.payment_title')); + $grid->bordered(true); + $grid->autoHeight(); + $grid->model()->with(['player']) + ->Where('status', PlayerWithdrawRecord::STATUS_PENDING_PAYMENT) + ->orderBy('created_at', 'desc'); + $exAdminFilter = Request::input('ex_admin_filter', []); + if (!empty($exAdminFilter)) { + if (isset($exAdminFilter['created_at_start']) && !empty($exAdminFilter['created_at_start'])) { + $grid->model()->where('created_at', '>=', $exAdminFilter['created_at_start']); + } + if (isset($exAdminFilter['created_at_end']) && !empty($exAdminFilter['created_at_end'])) { + $grid->model()->where('created_at', '<=', $exAdminFilter['created_at_end']); + } + } + $grid->column('id', admin_trans('player_withdraw_record.fields.id'))->align('center'); + $grid->column('tradeno', admin_trans('player_withdraw_record.fields.tradeno'))->copy(); + $grid->column('player.uuid', admin_trans('player.fields.uuid'))->copy(); + $grid->column('player.name', admin_trans('player_withdraw_record.fields.player'))->display(function ($val, PlayerWithdrawRecord $data) { + if (!empty($data->player)) { + $image = isset($data->player->avatar) && !empty($data->player->avatar) ? Avatar::create()->src($data->player->avatar) : Avatar::create()->icon(Icon::create('UserOutlined')); + return Html::create()->content([ + $image, + Html::div()->content($val) + ]); + } + return ''; + })->align('center'); + $grid->column('money', admin_trans('player_withdraw_record.fields.money'))->display(function ($val, PlayerWithdrawRecord $data) { + return bcdiv($val,$data->rate, 2) . ' ' . ( $data->currency); + })->align('center')->sortable(); + $grid->column('coins', admin_trans('player_withdraw_record.fields.coins'))->align('center'); + $grid->column('type', admin_trans('player_withdraw_record.fields.type'))->display(function ($val) { + return Tag::create(admin_trans('player_withdraw_record.type.' . $val)) + ->color('#3b5999'); + })->align('center'); + $grid->column('withdraw_setting_info', + admin_trans('player_withdraw_record.player_bank'))->display(function ( + $val, + PlayerWithdrawRecord $data + ) { + $info = []; + switch ($data->type) { + case PlayerWithdrawRecord::TYPE_USDT: + $info[] = Html::markdown('- ' . admin_trans('channel_recharge_setting.fields.wallet_address') . ': ' . $data->wallet_address); + $info[] = Html::div()->content(Image::create() + ->width(40) + ->src($data->qr_code)); + break; + case PlayerWithdrawRecord::TYPE_SELF: + $info[] = Html::markdown('- ' . admin_trans('player_withdraw_record.fields.account_name') . ': ' . $data->account_name); + $info[] = Html::markdown('- ' . admin_trans('player_withdraw_record.fields.bank_name') . ': ' . $data->bank_name); + $info[] = Html::markdown('- ' . admin_trans('player_withdraw_record.fields.account') . ': ' . $data->account); + break; + } + return Html::create()->content($info); + })->align('left'); + $grid->column('status', admin_trans('player_withdraw_record.fields.status')) + ->display(function () { + return Html::create()->content([ + Tag::create(admin_trans('player_withdraw_record.status.' . PlayerWithdrawRecord::STATUS_PENDING_PAYMENT))->color('#3b5999') + ]); + })->sortable(); + $grid->column('created_at', admin_trans('player_withdraw_record.fields.created_at'))->sortable()->align('center'); + $grid->column('remark', admin_trans('player_withdraw_record.fields.remark'))->display(function ($value) { + return Str::of($value)->limit(20, ' (...)'); + })->tip()->width('150px')->align('center'); + $grid->hideDelete(); + $grid->hideSelection(); + $grid->expandFilter(); + $grid->actions(function (Actions $actions, PlayerWithdrawRecord $data) { + $actions->hideDel(); + $actions->hideEdit(); + $actions->prepend( + Button::create(admin_trans('player_withdraw_record.btn.complete_payment')) + ->type('danger') + ->modal($this->payment($data->id)) + ); + }); + $grid->filter(function (Filter $filter) { + $filter->like()->text('player.uuid')->placeholder(admin_trans('player.fields.uuid')); + $filter->like()->text('player.name')->placeholder(admin_trans('player.fields.name')); + $filter->like()->text('tradeno')->placeholder(admin_trans('player_withdraw_record.fields.tradeno')); + $filter->eq()->number('money')->precision(2)->style(['width' => '150px'])->placeholder(admin_trans('player_withdraw_record.fields.money')); + $filter->form()->hidden('created_at_start'); + $filter->form()->hidden('created_at_end'); + $filter->form()->dateTimeRange('created_at_start', 'created_at_end', '')->placeholder([admin_trans('player_withdraw_record.fields.created_at'), admin_trans('player_withdraw_record.fields.created_at')]); + }); + }); + } + + /** + * 提交打款凭证 + * @auth true + * @group channel + * @param $id + * @return Form + */ + public function payment($id): Form + { + return Form::create(new $this->model(), function (Form $form) use ($id) { + $form->file('certificate') + ->ext('jpg,png,jpeg') + ->type('image') + ->fileSize('2m') + ->hideFinder() + ->paste() + ->style(['margin-left' => '35%', 'margin-bottom' => '16px']) + ->help(Html::create()->content(admin_trans('player_withdraw_record.certificate_help'))->style([ + 'margin-left' => '135px', + 'display' => 'block', + 'width' => '235px' + ])); + $form->saving(function (Form $form) use ($id) { + if (empty($form->input('certificate'))) { + return message_warning(admin_trans('player_withdraw_record.certificate_required')); + } + /** @var PlayerWithdrawRecord $playerWithdrawRecord */ + $playerWithdrawRecord = $this->model::find($id); + if (empty($playerWithdrawRecord)) { + return message_error(admin_trans('player_withdraw_record.not_fount')); + } + switch ($playerWithdrawRecord->status) { + case PlayerWithdrawRecord::STATUS_WAIT: + return message_warning(admin_trans('player_withdraw_record.withdraw_record_has_not_examine')); + case PlayerWithdrawRecord::STATUS_SUCCESS: + return message_warning(admin_trans('player_withdraw_record.withdraw_record_has_complete')); + case PlayerWithdrawRecord::STATUS_FAIL: + return message_warning(admin_trans('player_withdraw_record.withdraw_record_has_fail')); + case PlayerWithdrawRecord::STATUS_CANCEL: + return message_warning(admin_trans('player_withdraw_record.withdraw_record_has_cancel')); + case PlayerWithdrawRecord::STATUS_PENDING_REJECT: + return message_warning(admin_trans('player_withdraw_record.withdraw_record_has_reject')); + case PlayerWithdrawRecord::STATUS_SYSTEM_CANCEL: + return message_warning(admin_trans('player_withdraw_record.withdraw_record_has_system_cancel')); + } + if ($playerWithdrawRecord->status != PlayerWithdrawRecord::STATUS_PENDING_PAYMENT) { + return message_error(admin_trans('player_withdraw_record.withdraw_record_status_error')); + } + /** @var Channel $channel */ + $channel = Channel::where('department_id', Admin::user()->department_id)->first(); + if (empty($channel)) { + return message_error(admin_trans('channel.not_fount')); + } + try { + // 更新订单 + $playerWithdrawRecord->certificate = $form->input('certificate'); + $playerWithdrawRecord->status = PlayerWithdrawRecord::STATUS_SUCCESS; + $playerWithdrawRecord->finish_time = date('Y-m-d H:i:s'); + if ($playerWithdrawRecord->save()) { + saveChannelFinancialRecord($playerWithdrawRecord, ChannelFinancialRecord::ACTION_WITHDRAW_PAYMENT); + // 更新渠道数据 + $channel->withdraw_amount = bcadd($channel->withdraw_amount, $playerWithdrawRecord->coins, 2); + $channel->save(); + } + } catch (\Exception $e) { + return message_error(admin_trans('player_recharge_record.action_error')); + } + + return message_success(admin_trans('player_withdraw_record.action_success')); + }); + }); + } + + /** + * 查看充值 + * @group channel + * @auth true + */ + public function viewRechargeList($playerId): Grid + { + return Grid::create(new $this->rechargeModel(), function (Grid $grid) use ($playerId) { + $grid->title(admin_trans('player_recharge_record.title')); + $grid->model()->where('status', PlayerRechargeRecord::STATUS_RECHARGED_SUCCESS)->where('player_id', $playerId)->orderBy('created_at', 'desc'); + $exAdminFilter = Request::input('ex_admin_filter', []); + if (!empty($exAdminFilter)) { + if (isset($exAdminFilter['created_at_start']) && !empty($exAdminFilter['created_at_start'])) { + $grid->model()->where('created_at', '>=', $exAdminFilter['created_at_start']); + } + if (isset($exAdminFilter['created_at_end']) && !empty($exAdminFilter['created_at_end'])) { + $grid->model()->where('created_at', '<=', $exAdminFilter['created_at_end']); + } + if (isset($exAdminFilter['finish_time_start']) && !empty($exAdminFilter['finish_time_start'])) { + $grid->model()->where('finish_time', '>=', $exAdminFilter['finish_time_start']); + } + if (isset($exAdminFilter['finish_time_end']) && !empty($exAdminFilter['finish_time_end'])) { + $grid->model()->where('finish_time', '<=', $exAdminFilter['finish_time_end']); + } + } + $grid->column('tradeno', admin_trans('player_recharge_record.fields.tradeno'))->align('center'); + $grid->column('player.uuid', admin_trans('player.fields.uuid'))->align('center'); + $grid->column('player.name', admin_trans('player_recharge_record.fields.player'))->display(function ($val, PlayerRechargeRecord $data) { + if (!empty($data->player)) { + $image = isset($data->player->avatar) && !empty($data->player->avatar) ? Avatar::create()->src($data->player->avatar) : Avatar::create()->icon(Icon::create('UserOutlined')); + return Html::create()->content([ + $image, + Html::div()->content($val) + ]); + } + return ''; + })->align('center'); + $grid->column('money', admin_trans('player_recharge_record.fields.money'))->display(function ($val, PlayerRechargeRecord $data) { + return $val . ' ' . ($data->currency == 'TALK' ? admin_trans('player_recharge_record.talk_currency') : $data->currency); + })->align('center'); + $grid->column('coins', admin_trans('player_recharge_record.fields.coins'))->align('center'); + $grid->column('status', admin_trans('player_recharge_record.fields.status'))->display(function ($val) { + switch ($val) { + case PlayerRechargeRecord::STATUS_WAIT: + return Tag::create(admin_trans('player_recharge_record.status.' . $val)) + ->color('#108ee9'); + case PlayerRechargeRecord::STATUS_RECHARGING: + return Tag::create(admin_trans('player_recharge_record.status.' . $val)) + ->color('#3b5999'); + case PlayerRechargeRecord::STATUS_RECHARGED_SUCCESS: + return Tag::create(admin_trans('player_recharge_record.status.' . $val)) + ->color('#87d068'); + case PlayerRechargeRecord::STATUS_RECHARGED_FAIL: + return Tag::create(admin_trans('player_recharge_record.status.' . $val)) + ->color('#f50'); + case PlayerRechargeRecord::STATUS_RECHARGED_CANCEL: + return Tag::create(admin_trans('player_recharge_record.status.' . $val)) + ->color('#2db7f5'); + default: + return ''; + } + })->align('center'); + $grid->column('remark', admin_trans('player_recharge_record.fields.remark'))->display(function ($value) { + return Str::of($value)->limit(20, ' (...)'); + })->editable( + (new Editable)->textarea('remark') + ->showCount() + ->rows(5) + ->rule(['max:255' => admin_trans('player_recharge_record.fields.remark')]) + )->width('150px')->align('center'); + $grid->column('user_name', admin_trans('player_recharge_record.fields.user_name'))->align('center'); + $grid->column('finish_time', admin_trans('player_recharge_record.fields.finish_time'))->sortable()->align('center'); + $grid->column('created_at', admin_trans('player_recharge_record.fields.created_at'))->sortable()->align('center'); + $grid->hideDelete(); + $grid->hideSelection(); + $grid->actions(function (Actions $actions) { + $actions->hideDel(); + $actions->hideEdit(); + }); + $grid->filter(function (Filter $filter) { + $filter->like()->text('tradeno')->placeholder(admin_trans('player_recharge_record.fields.tradeno')); + $filter->eq()->number('money')->precision(2)->style(['width' => '150px'])->placeholder(admin_trans('player_recharge_record.fields.money')); + $filter->form()->hidden('created_at_start'); + $filter->form()->hidden('created_at_end'); + $filter->form()->dateTimeRange('created_at_start', 'created_at_end', '')->placeholder([admin_trans('public_msg.created_at_start'), admin_trans('public_msg.created_at_end')]); + $filter->form()->hidden('finish_time_start'); + $filter->form()->hidden('finish_time_end'); + $filter->form()->dateTimeRange('finish_time_start', 'finish_time_end', '')->placeholder([admin_trans('player_recharge_record.fields.finish_time'), admin_trans('player_recharge_record.fields.finish_time')]); + }); + $grid->expandFilter(); + }); + } + + /** + * 提现订单审核拒绝 + * @auth true + * @group channel + * @param $id + * @return Form + */ + public function reject($id): Form + { + return Form::create(new $this->model(), function (Form $form) use ($id) { + $form->textarea('reject_reason')->rows(5)->required(); + $form->saving(function (Form $form) use ($id) { + /** @var PlayerWithdrawRecord $playerWithdrawRecord */ + $playerWithdrawRecord = $this->model::find($id); + if (empty($playerWithdrawRecord)) { + return message_error(admin_trans('player_withdraw_record.not_fount')); + } + switch ($playerWithdrawRecord->status) { + case PlayerWithdrawRecord::STATUS_SUCCESS: + return message_warning(admin_trans('player_withdraw_record.withdraw_record_has_complete')); + case PlayerWithdrawRecord::STATUS_FAIL: + return message_warning(admin_trans('player_withdraw_record.withdraw_record_has_fail')); + case PlayerWithdrawRecord::STATUS_CANCEL: + return message_warning(admin_trans('player_withdraw_record.withdraw_record_has_cancel')); + case PlayerWithdrawRecord::STATUS_PENDING_REJECT: + return message_warning(admin_trans('player_withdraw_record.withdraw_record_has_reject')); + case PlayerWithdrawRecord::STATUS_SYSTEM_CANCEL: + return message_warning(admin_trans('player_withdraw_record.withdraw_record_has_system_cancel')); + case PlayerWithdrawRecord::STATUS_PENDING_PAYMENT: + return message_warning(admin_trans('player_withdraw_record.withdraw_record_has_pass')); + } + if ($playerWithdrawRecord->status != PlayerWithdrawRecord::STATUS_WAIT) { + return message_error(admin_trans('player_withdraw_record.withdraw_record_status_error')); + } + try { + if (withdrawBack($playerWithdrawRecord, $form->input('reject_reason'))) { + saveChannelFinancialRecord($playerWithdrawRecord, ChannelFinancialRecord::ACTION_WITHDRAW_REJECT); + } + } catch (\Exception $e) { + return message_error(admin_trans('player_withdraw_record.action_error')); + } + return message_success(admin_trans('player_withdraw_record.action_success')); + }); + }); + } + + /** + * 提现订单审核通过 + * @param $id + * @auth true + * @group channel + * @return Msg + */ + public function pass($id): Msg + { + /** @var PlayerWithdrawRecord $playerWithdrawRecord */ + $playerWithdrawRecord = $this->model::find($id); + if (empty($playerWithdrawRecord)) { + return message_error(admin_trans('player_withdraw_record.not_fount')); + } + + switch ($playerWithdrawRecord->status) { + case PlayerWithdrawRecord::STATUS_SUCCESS: + return message_warning(admin_trans('player_withdraw_record.withdraw_record_has_complete')); + case PlayerWithdrawRecord::STATUS_FAIL: + return message_warning(admin_trans('player_withdraw_record.withdraw_record_has_fail')); + case PlayerWithdrawRecord::STATUS_CANCEL: + return message_warning(admin_trans('player_withdraw_record.withdraw_record_has_cancel')); + case PlayerWithdrawRecord::STATUS_PENDING_REJECT: + return message_warning(admin_trans('player_withdraw_record.withdraw_record_has_reject')); + case PlayerWithdrawRecord::STATUS_SYSTEM_CANCEL: + return message_warning(admin_trans('player_withdraw_record.withdraw_record_has_system_cancel')); + case PlayerWithdrawRecord::STATUS_PENDING_PAYMENT: + return message_warning(admin_trans('player_withdraw_record.withdraw_record_has_pass')); + } + if ($playerWithdrawRecord->status != PlayerWithdrawRecord::STATUS_WAIT) { + return message_error(admin_trans('player_withdraw_record.withdraw_record_status_error')); + } + try { + if ($playerWithdrawRecord->type == PlayerWithdrawRecord::TYPE_SKLPAYOUT) { + $params = [ + 'amount' => $playerWithdrawRecord->coins, + 'bankCode' => $playerWithdrawRecord->bank_code, + 'bankAccountNo' => $playerWithdrawRecord->account, + 'bankAccountName' => $playerWithdrawRecord->account_name, + 'orderNo' => $playerWithdrawRecord->tradeno, + ]; + $res = (new SklPayServices())->payout($params); + if ($res['code'] == 'success') { + // 更新订单 + $playerWithdrawRecord->user_id = Admin::id() ?? 0; + $playerWithdrawRecord->user_name = !empty(Admin::user()) ? Admin::user()->username : ''; + $notice = new Notice(); + $notice->department_id = $playerWithdrawRecord->player->department_id; + $notice->player_id = $playerWithdrawRecord->player_id; + $notice->source_id = $playerWithdrawRecord->id; + $notice->type = Notice::TYPE_WITHDRAW; + $notice->receiver = Notice::RECEIVER_PLAYER; + $notice->is_private = 1; + $notice->title = '下分成功'; + $notice->content = '本次申请已成功处理,下分 ' . $playerWithdrawRecord->money . ' ,请查收。 '; + $notice->save(); + if ($playerWithdrawRecord->save()) { + saveChannelFinancialRecord($playerWithdrawRecord, ChannelFinancialRecord::ACTION_WITHDRAW_PASS); + } + } else { + return message_error($res['message']); + } + } elseif (in_array($playerWithdrawRecord->type, [PlayerWithdrawRecord::TYPE_SELF, PlayerWithdrawRecord::TYPE_USDT])) { + $playerWithdrawRecord->status = PlayerWithdrawRecord::STATUS_PENDING_PAYMENT; + $playerWithdrawRecord->user_id = Admin::id() ?? 0; + $playerWithdrawRecord->user_name = !empty(Admin::user()) ? Admin::user()->username : ''; + if ($playerWithdrawRecord->save()) { + saveChannelFinancialRecord($playerWithdrawRecord, ChannelFinancialRecord::ACTION_WITHDRAW_PASS); + } + } + + } catch (\Exception $e) { + return message_error(admin_trans('player_withdraw_record.action_error')); + } + return message_success(admin_trans('player_withdraw_record.action_success')); + } + + /** + * 提现 + * @group channel + * @auth true + */ + public function index(): Grid + { + return Grid::create(new $this->model(), function (Grid $grid) { + $grid->title(admin_trans('player_withdraw_record.payment_title')); + $grid->model()->with(['player'])->orderBy('created_at', 'desc'); + $exAdminFilter = Request::input('ex_admin_filter', []); + if (!empty($exAdminFilter)) { + if (isset($exAdminFilter['created_at_start']) && !empty($exAdminFilter['created_at_start'])) { + $grid->model()->where('created_at', '>=', $exAdminFilter['created_at_start']); + } + if (isset($exAdminFilter['created_at_end']) && !empty($exAdminFilter['created_at_end'])) { + $grid->model()->where('created_at', '<=', $exAdminFilter['created_at_end']); + } + if (isset($exAdminFilter['finish_time_start']) && !empty($exAdminFilter['finish_time_start'])) { + $grid->model()->where('finish_time', '>=', $exAdminFilter['finish_time_start']); + } + if (isset($exAdminFilter['finish_time_end']) && !empty($exAdminFilter['finish_time_end'])) { + $grid->model()->where('finish_time', '<=', $exAdminFilter['finish_time_end']); + } + if (!empty($exAdminFilter['player']['uuid'])) { + $grid->model()->whereHas('player', function ($query) use ($exAdminFilter) { + $query->where('uuid', 'like', '%' . $exAdminFilter['player']['uuid'] . '%'); + }); + } + if (!empty($exAdminFilter['player']['name'])) { + $grid->model()->whereHas('player', function ($query) use ($exAdminFilter) { + $query->where('name', 'like', '%' . $exAdminFilter['player']['name'] . '%'); + }); + } + if (!empty($exAdminFilter['type'])) { + $grid->model()->where('type', $exAdminFilter['type']); + } + if (!empty($exAdminFilter['status'])) { + $grid->model()->where('status', $exAdminFilter['status']); + } + if (!empty($exAdminFilter['tradeno'])) { + $grid->model()->where('tradeno', $exAdminFilter['tradeno']); + } + } + $query = clone $grid->model(); + $totalData = $query->selectRaw( + 'ifNull(sum(money), 0) as total_money, + ifNull(sum(IF(type = 6, money,0)), 0) as total_skl_money' + )->first(); + $layout = Layout::create(); + $layout->row(function (Row $row) use ($totalData) { + $row->gutter([10, 0]); + $row->column( + Card::create([ + Row::create()->column(Statistic::create()->title(admin_trans('player_withdraw_record.total_money')) + ->value($totalData['total_money']) + ->style([ + 'font-size' => '15px', + 'text-align' => 'center' + ])), + ])->bodyStyle([ + 'display' => 'flex', + 'align-items' => 'center', + 'height' => '72px' + ])->hoverable()->headStyle(['height' => '0px', 'border-bottom' => '0px', 'min-height' => '0px']) + , 8); + $row->column( + Card::create([ + Row::create()->column(Statistic::create()->title(admin_trans('player_withdraw_record.total_inmoney')) + ->value(bcadd(bcsub($totalData['total_money'], $totalData['total_skl_money'], 3), bcmul($totalData['total_skl_money'], 1.008, 3), 3)) + ->style([ + 'font-size' => '15px', + 'text-align' => 'center' + ])), + ])->bodyStyle([ + 'display' => 'flex', + 'align-items' => 'center', + 'height' => '72px' + ])->hoverable()->headStyle(['height' => '0px', 'border-bottom' => '0px', 'min-height' => '0px']) + , 8); + })->style(['background' => '#fff']); + $grid->header($layout); + $grid->bordered(true); + $grid->autoHeight(); + $grid->column('id', admin_trans('player_withdraw_record.fields.id'))->align('center')->fixed(true); + $grid->column('tradeno', admin_trans('player_withdraw_record.fields.tradeno'))->copy()->fixed(true); + $grid->column('player.uuid', admin_trans('player.fields.uuid'))->copy()->fixed(true); + $grid->column('player.name', admin_trans('player_withdraw_record.fields.player'))->display(function ($val, PlayerWithdrawRecord $data) { + if (!empty($data->player)) { + $image = isset($data->player->avatar) && !empty($data->player->avatar) ? Avatar::create()->src($data->player->avatar) : Avatar::create()->icon(Icon::create('UserOutlined')); + return Html::create()->content([ + $image, + Html::div()->content($val) + ]); + } + return ''; + })->align('center'); + $grid->column('money', admin_trans('player_withdraw_record.fields.money'))->display(function ($val, PlayerWithdrawRecord $data) { + return bcdiv($val,$data->rate, 2) . ' ' . ($data->currency == 'TALK' ? 'Q币' : $data->currency); + })->align('center')->sortable(); + $grid->column('inmoney', admin_trans('player_recharge_record.fields.inmoney'))->display(function ($val, PlayerWithdrawRecord $data) { + if ($data->type == PlayerWithdrawRecord::TYPE_ESPAYOUT) { + $ratio = 1.005; + } elseif ($data->type == PlayerWithdrawRecord::TYPE_ONEPAYOUT){ + $ratio = 1.008; + } elseif ($data->type == PlayerWithdrawRecord::TYPE_SKLPAYOUT){ + $ratio = 1.008; + } else { + $ratio = 1; + } + if ($data->currency == 'USDT') { + return bcdiv($val,$data->rate, 2) . ' ' . ($data->currency); + } + return $data->money * $ratio . ' ' . ($data->currency); + })->align('center'); + $grid->column('coins', admin_trans('player_withdraw_record.fields.coins'))->align('center'); + $grid->column('type', admin_trans('player_withdraw_record.fields.type'))->display(function ($val) { + switch ($val) { + case PlayerWithdrawRecord::TYPE_SELF: + return Tag::create(admin_trans('player_withdraw_record.type.' . $val)) + ->color('#3b5999'); + case PlayerWithdrawRecord::TYPE_ARTIFICIAL: + return Tag::create(admin_trans('player_withdraw_record.type.' . $val)) + ->color('#cd201f'); + case PlayerWithdrawRecord::TYPE_USDT: + return Tag::create(admin_trans('player_withdraw_record.type.' . $val)) + ->color('#2db7f5'); + case PlayerWithdrawRecord::TYPE_SKLPAYOUT: + return Tag::create(admin_trans('player_withdraw_record.type.' . $val)) + ->color('#108ee9'); + default: + return ''; + } + })->align('center'); + $grid->column('withdraw_setting_info', + admin_trans('player_withdraw_record.player_bank'))->display(function ( + $val, + PlayerWithdrawRecord $data + ) { + $info = []; + switch ($data->type) { + case PlayerWithdrawRecord::TYPE_USDT: + $info[] = Html::markdown('- ' . admin_trans('channel_recharge_setting.fields.wallet_address') . ': ' . $data->wallet_address); + $info[] = Html::div()->content(Image::create() + ->width(40) + ->src($data->qr_code)); + break; + case PlayerWithdrawRecord::TYPE_SELF: + $info[] = Html::markdown('- ' . admin_trans('player_withdraw_record.fields.account_name') . ': ' . $data->account_name); + $info[] = Html::markdown('- ' . admin_trans('player_withdraw_record.fields.bank_name') . ': ' . $data->bank_name); + $info[] = Html::markdown('- ' . admin_trans('player_withdraw_record.fields.account') . ': ' . $data->account); + break; + } + return Html::create()->content($info); + })->align('left'); + $grid->column('status', admin_trans('player_withdraw_record.fields.status')) + ->display(function ($value, PlayerWithdrawRecord $data) { + $rejectReason = $data->reject_reason; + switch ($value) { + case PlayerWithdrawRecord::STATUS_SUCCESS: + $tag = Tag::create(admin_trans('player_withdraw_record.status.' . PlayerWithdrawRecord::STATUS_SUCCESS))->color('#87d068'); + break; + case PlayerWithdrawRecord::STATUS_WAIT: + $tag = Tag::create(admin_trans('player_withdraw_record.status_wait'))->color('#108ee9'); + break; + case PlayerWithdrawRecord::STATUS_FAIL: + $tag = Tag::create(admin_trans('player_withdraw_record.status.' . PlayerWithdrawRecord::STATUS_FAIL))->color('#f50'); + break; + case PlayerWithdrawRecord::STATUS_PENDING_REJECT: + $tag = Tag::create(admin_trans('player_withdraw_record.status.' . PlayerWithdrawRecord::STATUS_PENDING_REJECT))->color('#cd201f'); + break; + case PlayerWithdrawRecord::STATUS_PENDING_PAYMENT: + $tag = Tag::create(admin_trans('player_withdraw_record.status.' . PlayerWithdrawRecord::STATUS_PENDING_PAYMENT))->color('#3b5999'); + break; + case PlayerWithdrawRecord::STATUS_CANCEL: + case PlayerWithdrawRecord::STATUS_SYSTEM_CANCEL: + $tag = Tag::create(admin_trans('player_withdraw_record.status.' . PlayerWithdrawRecord::STATUS_CANCEL))->color('#2db7f5'); + break; + default: + $tag = ''; + } + if (!empty($rejectReason)) { + return ToolTip::create(Badge::create( + $tag + )->count('!')->title(''))->title($rejectReason)->color('orange'); + } else { + return $tag; + } + })->align('center')->sortable(); + $grid->column('finish_time', admin_trans('player_withdraw_record.fields.finish_time'))->sortable()->align('center'); + $grid->column('created_at', admin_trans('player_withdraw_record.fields.created_at'))->sortable()->align('center'); + $grid->column('remark', admin_trans('player_withdraw_record.fields.remark'))->display(function ($value) { + return Str::of($value)->limit(20, ' (...)'); + })->tip()->width('150px')->align('center'); + $grid->hideDelete(); + $grid->hideSelection(); + $grid->expandFilter(); + $grid->actions(function (Actions $actions) { + $actions->hideDel(); + $actions->hideEdit(); + }); + $grid->filter(function (Filter $filter) { + $filter->like()->text('player.uuid')->placeholder(admin_trans('player.fields.uuid')); + $filter->like()->text('player.name')->placeholder(admin_trans('player.fields.name')); + $filter->eq()->select('status') + ->showSearch() + ->style(['width' => '200px']) + ->dropdownMatchSelectWidth() + ->placeholder(admin_trans('player_withdraw_record.fields.status')) + ->options([ + PlayerWithdrawRecord::STATUS_WAIT => admin_trans('player_withdraw_record.status.' . PlayerWithdrawRecord::STATUS_WAIT), + PlayerWithdrawRecord::STATUS_SUCCESS => admin_trans('player_withdraw_record.status.' . PlayerWithdrawRecord::STATUS_SUCCESS), + PlayerWithdrawRecord::STATUS_FAIL => admin_trans('player_withdraw_record.status.' . PlayerWithdrawRecord::STATUS_FAIL), + PlayerWithdrawRecord::STATUS_PENDING_PAYMENT => admin_trans('player_withdraw_record.status.' . PlayerWithdrawRecord::STATUS_PENDING_PAYMENT), + PlayerWithdrawRecord::STATUS_PENDING_REJECT => admin_trans('player_withdraw_record.status.' . PlayerWithdrawRecord::STATUS_PENDING_REJECT), + PlayerWithdrawRecord::STATUS_CANCEL => admin_trans('player_withdraw_record.status.' . PlayerWithdrawRecord::STATUS_CANCEL), + PlayerWithdrawRecord::STATUS_SYSTEM_CANCEL => admin_trans('player_withdraw_record.status.' . PlayerWithdrawRecord::STATUS_SYSTEM_CANCEL), + ]); + $filter->eq()->select('type') + ->showSearch() + ->style(['width' => '200px']) + ->dropdownMatchSelectWidth() + ->placeholder(admin_trans('player_withdraw_record.fields.type')) + ->options([ + PlayerWithdrawRecord::TYPE_ESPAYOUT => admin_trans('player_withdraw_record.type.' . PlayerWithdrawRecord::TYPE_ESPAYOUT), + PlayerWithdrawRecord::TYPE_ONEPAYOUT => admin_trans('player_withdraw_record.type.' . PlayerWithdrawRecord::TYPE_ONEPAYOUT), + PlayerWithdrawRecord::TYPE_SKLPAYOUT => admin_trans('player_withdraw_record.type.' . PlayerWithdrawRecord::TYPE_SKLPAYOUT), + PlayerWithdrawRecord::TYPE_ARTIFICIAL => admin_trans('player_withdraw_record.type.' . PlayerWithdrawRecord::TYPE_ARTIFICIAL), + ]); + $filter->like()->text('tradeno')->placeholder(admin_trans('player_withdraw_record.fields.tradeno')); + $filter->form()->hidden('created_at_start'); + $filter->form()->hidden('created_at_end'); + $filter->form()->dateTimeRange('created_at_start', 'created_at_end', '')->placeholder([admin_trans('player_withdraw_record.fields.created_at'), admin_trans('player_withdraw_record.fields.created_at')]); + $filter->form()->hidden('finish_time_start'); + $filter->form()->hidden('finish_time_end'); + $filter->form()->dateTimeRange('finish_time_start', 'finish_time_end', '')->placeholder([admin_trans('player_withdraw_record.fields.finish_time'), admin_trans('player_withdraw_record.fields.finish_time')]); + }); + }); + } +} diff --git a/addons/webman/controller/ConfigController.php b/addons/webman/controller/ConfigController.php new file mode 100644 index 0000000..2d28a75 --- /dev/null +++ b/addons/webman/controller/ConfigController.php @@ -0,0 +1,33 @@ +title(admin_trans('config.title')); + $form->layout('vertical'); + $form->image('web_logo', admin_trans('config.logo'))->size(80, 80); + $form->text('web_name', admin_trans('config.name')); + $form->text('web_miitbeian', admin_trans('config.miitbeian')); + $form->text('web_copyright', admin_trans('config.copyright')); + }); + } +} diff --git a/addons/webman/controller/CurrencyController.php b/addons/webman/controller/CurrencyController.php new file mode 100644 index 0000000..2dccc02 --- /dev/null +++ b/addons/webman/controller/CurrencyController.php @@ -0,0 +1,88 @@ +model = plugin()->webman->config('database.currency_model'); + + } + + /** + * 货币 + * @auth true + */ + public function index(): Grid + { + return Grid::create(new $this->model, function (Grid $grid) { + $grid->title(admin_trans('currency.title')); + $grid->bordered(); + $grid->autoHeight(); + $grid->column('id', admin_trans('currency.fields.id'))->align('center'); + $grid->column('name', admin_trans('currency.fields.name'))->display(function ($val, Currency $data) { + return admin_trans('currency.currency_name' . '.' . $data->identifying); + })->align('center'); + $grid->column('identifying', admin_trans('currency.fields.identifying'))->align('center'); + $grid->column('ratio', admin_trans('currency.fields.ratio'))->display(function ($val) { + return floatval($val); + })->append(' ' . admin_trans('currency.game_coins'))->align('center'); + $grid->column('status', admin_trans('currency.fields.status'))->switch([[1 => ''], [0 => '']])->align('center');; + $grid->column('admin_user.username', admin_trans('admin.fields.username'))->align('center'); + $grid->column('created_at', admin_trans('currency.fields.create_at'))->align('center'); + $grid->setForm()->modal($this->form()); + $grid->hideDelete(); + $grid->hideSelection(); + $grid->actions(function (Actions $actions) { + $actions->hideDel(); + }); + }); + } + + /** + * 货币 + * @auth true + */ + public function form(): Form + { + return Form::create(new $this->model, function (Form $form) { + $disabledValue = Arr::pluck($this->model::select('identifying')->get()->toArray(), 'identifying'); + $form->title(admin_trans('currency.title')); + $form->select('identifying', admin_trans('currency.fields.identifying')) + ->disabled($form->isEdit()) + ->options(plugin()->webman->config('currency')) + ->disabledValue($disabledValue) + ->required(); + $form->number('ratio', admin_trans('currency.fields.ratio') . '=') + ->min(0) + ->max(1000000) + ->precision(4) + ->required() + ->style(['width' => '100%']) + ->addonAfter(admin_trans('currency.game_coins')); + $form->input('admin_id', Admin::id()); + $form->saving(function (Form $form) { + if (!$form->isEdit()) { + $identifying = $form->input('identifying'); + if ($this->model::where('identifying', $identifying)->first()) { + return message_error(admin_trans('currency.currency_has_exists')); + } + } + }); + }); + } +} diff --git a/addons/webman/controller/DepartmentController.php b/addons/webman/controller/DepartmentController.php new file mode 100644 index 0000000..3bd83d7 --- /dev/null +++ b/addons/webman/controller/DepartmentController.php @@ -0,0 +1,100 @@ +model = plugin()->webman->config('database.department_model'); + + } + + /** + * 部门 + * @auth true + */ + public function index(): Grid + { + return Grid::create(new $this->model, function (Grid $grid) { + $grid->title(admin_trans('department.title')); + $grid->model()->where('type', AdminDepartment::TYPE_DEPARTMENT); + $exAdminFilter = Request::input('ex_admin_filter', []); + if (!empty($exAdminFilter)) { + if (isset($exAdminFilter['created_at_start']) && !empty($exAdminFilter['created_at_start'])) { + $grid->model()->whereDate('created_at', '>=', $exAdminFilter['created_at_start']); + } + if (isset($exAdminFilter['created_at_end']) && !empty($exAdminFilter['created_at_end'])) { + $grid->model()->whereDate('created_at', '<=', $exAdminFilter['created_at_end']); + } + } + $grid->autoHeight(); + $grid->tree(); + $grid->column('name', admin_trans('department.fields.name')); + $grid->column('leader', admin_trans('department.fields.leader')); + $grid->column('mobile', admin_trans('department.fields.mobile')); + $grid->column('status', admin_trans('department.fields.status'))->switch([[1=>''],[0=>'']]); + $grid->sortInput('sort', admin_trans('department.fields.sort')); + $grid->column('created_at', admin_trans('department.fields.create_at')); + $grid->filter(function (Filter $filter) { + $filter->like()->text('name')->placeholder(admin_trans('department.fields.name')); + $filter->like()->text('leader')->placeholder(admin_trans('department.fields.leader')); + $filter->like()->text('mobile')->placeholder(admin_trans('department.fields.mobile')); + $filter->eq()->select('status')->placeholder(admin_trans('department.fields.status'))->options([ + 1 => admin_trans('department.normal'), + 0 => admin_trans('department.disable') + ]); + $filter->form()->hidden('created_at_start'); + $filter->form()->hidden('created_at_end'); + $filter->form()->dateRange('created_at_start', 'created_at_end', '')->placeholder([admin_trans('public_msg.created_at_start'), admin_trans('public_msg.created_at_end')]); + }); + $grid->setForm()->modal($this->form()); + }); + } + + /** + * 部门 + * @auth true + */ + public function form(): Form + { + return Form::create(new $this->model, function (Form $form) { + $form->title(admin_trans('department.title')); + $form->treeSelect('pid', admin_trans('department.fields.pid')) + ->options($this->model::where('type', AdminDepartment::TYPE_DEPARTMENT)->get()->toArray()); + $form->text('name', admin_trans('department.fields.name')) + ->required(); + $form->text('leader', admin_trans('department.fields.leader')); + $form->text('mobile', admin_trans('department.fields.mobile')) + ->ruleMobile(); + $form->number('sort', admin_trans('department.fields.sort'))->default(0); + + $form->saving(function (Form $form) { + if ($form->isEdit() && $form->input('id') == $form->input('pid')) { + return message_error(admin_trans('department.parent_id_repeat')); + } + }); + $form->saved(function (Form $form) { + $path = $this->model::where('id',$form->input('pid'))->value('path'); + $paths = explode(',',$path); + $paths= array_filter($paths); + $model = $form->driver()->model(); + $paths[] = $model->id; + $model->path = implode(',',$paths); + $model->save(); + }); + }); + } +} diff --git a/addons/webman/controller/GameController.php b/addons/webman/controller/GameController.php new file mode 100644 index 0000000..d1cdfd7 --- /dev/null +++ b/addons/webman/controller/GameController.php @@ -0,0 +1,376 @@ +game = plugin()->webman->config('database.game_model'); + $this->prize = plugin()->webman->config('database.prize_model'); + } + + /** + * 游戏列表 + * @auth true + * @return Grid + */ + public function index(): Grid + { + return Grid::create(new $this->game(), function (Grid $grid) { + $grid->title(admin_trans('game.title')); + if (plugin()->webman->config('admin_auth_id') != Admin::id()){ + $grid->model()->where('status', 1); + } + $grid->model()->orderBy('status', 'desc')->orderBy('id', 'asc'); + $grid->bordered(true); + $grid->autoHeight(); + $grid->column('id', admin_trans('game.fields.id'))->align('center'); + $grid->column('logo', 'LOGO')->display(function ($val, $data) { + $image = Image::create() + ->width(50) + ->height(50) + ->style(['border-radius' => '50%', 'objectFit' => 'cover']) + ->src($data['logo']); + return Html::create()->content([ + $image, + ]); + })->align('center'); + $grid->column('name', admin_trans('game.fields.name'))->align('center'); + $grid->column('game_image', admin_trans('game.fields.game_image'))->display(function ($val, $data) { + $image = Image::create() + ->width(50) + ->height(50) + ->style(['border-radius' => '50%', 'objectFit' => 'cover']) + ->src($data['game_image']); + return Html::create()->content([ + $image, + ]); + })->align('center'); + $grid->column('consume', admin_trans('game.fields.consume'))->align('center'); + $grid->column('prize_num', admin_trans('game.fields.prize_num'))->align('center'); + $grid->column('description', admin_trans('game.fields.description'))->align('center'); + $grid->column('game_url', admin_trans('game.fields.game_url'))->align('center'); + if (plugin()->webman->config('admin_auth_id') != Admin::id()){ + $grid->column('status', admin_trans('game_platform.fields.status'))->switch()->align('center'); + } + $grid->column('updated_at', admin_trans('game.fields.updated_at'))->align('center'); + $grid->expandFilter(); + $grid->setForm()->drawer($this->form()); + $grid->actions(function (Actions $actions, $data) { + $actions->hideDel(); + $actions->prepend( + Button::create(admin_trans('game.enter_game'))->ajax([$this, 'enterGame'], + ['id' => $data['id']]) + ); + $actions->prepend( + Button::create(admin_trans('game.view_prize'))->modal([$this, 'getPrizeList'], + ['id' => $data['id']])->width('100%') + ); + })->align('center'); + $grid->hideDelete(); + $grid->hideSelection(); + $grid->hideAdd(); + $grid->hideTrashed(); + }); + } + + /** + * 进入游戏 + * @param $id + * @auth true + * @return Notification + */ + public function enterGame($id): Notification + { + $game = Game::query()->where('id', $id)->first(); + $url = $game->test_url; + return notification_success(admin_trans('admin.success'), + admin_trans('game_platform.action_success'))->redirect($url); + } + + /** + * 游戏详情 + * @auth true + * @return Form + */ + public function form(): Form + { + return Form::create(new $this->game(), function (Form $form) { + $form->title(admin_trans('prize.title')); + $form->text('name', admin_trans('game.fields.name'))->required()->maxlength(50); + $form->image('logo', admin_trans('game.fields.logo'))->required(); + $form->image('game_image', admin_trans('game.fields.game_image'))->required(); + $form->number('consume', admin_trans('game.fields.consume'))->required(); + $form->number('prize_num', admin_trans('game.fields.prize_num'))->required(); + $form->textarea('description', admin_trans('game.fields.description'))->maxlength(500)->bindAttr('rows', 10); + $form->text('game_url', admin_trans('game.fields.game_url'))->required()->maxlength(500); + $form->switch('status', admin_trans('game_platform.fields.status'))->required()->span(11); + $form->layout('vertical'); + }); + } + + /** + * 查看奖品 + * @param $id + * @return Grid + * @auth true + */ + public function getPrizeList($id): Grid + { + return Grid::create(new $this->prize(), function (Grid $grid) use($id) { + $grid->title(admin_trans('prize.title')); + $grid->model()->where('game_id', $id)->orderBy('probability'); + $grid->bordered(true); + $grid->autoHeight(); + $grid->column('id', admin_trans('prize.fields.id'))->align('center')->width('5%'); + $grid->column('name', admin_trans('prize.fields.name'))->align('center')->width('10%'); + $grid->column('pic', admin_trans('prize.fields.pic'))->display(function ($val, $data) { + $image = Image::create() + ->width(50) + ->height(50) + ->src($data['pic']); + return Html::create()->content([ + $image, + ]); + })->align('center'); + $grid->column('probability', admin_trans('prize.fields.probability'))->align('center')->width('10%'); + $grid->column('total_stock', admin_trans('prize.fields.total_stock'))->align('center')->width('8%'); + $grid->column('daily_stock', admin_trans('prize.fields.daily_stock'))->align('center')->width('8%'); + $grid->column('total_remaining', admin_trans('prize.fields.total_remaining'))->align('center')->width('8%'); + $grid->column('daily_remaining', admin_trans('prize.fields.daily_remaining'))->align('center')->width('8%'); + $grid->column('description', admin_trans('prize.fields.description'))->align('center')->width('20%'); + if (plugin()->webman->config('admin_auth_id') != Admin::id()) { + $grid->column('status', admin_trans('prize.fields.status'))->switch()->align('center')->width('8%'); + } + $grid->column('admin_name', admin_trans('prize.fields.admin_name'))->align('center')->width('8%'); + $grid->column('updated_at', admin_trans('prize.fields.updated_at'))->align('center')->width('8%'); + $grid->expandFilter(); + $grid->setForm()->drawer($this->editPrize($id)); + $grid->actions(function (Actions $actions, $data) { + $actions->hideDel(); + $actions->hideEdit(); + $actions->prepend( + Button::create(admin_trans('prize.replenish_daily_stock'))->ajax([$this, 'replenishDailyStock'], + ['id' => $data['id']]) + ); + })->align('center'); + $grid->hideDelete(); + $grid->hideAdd(); + $grid->hideSelection(); + $grid->hideTrashed(); + }); + } + + /** + * 补充每日库存 + * @param $id + * @auth true + * @return Msg + */ + public function replenishDailyStock($id): Msg + { + /** @var Prize $prize */ + $prize = Prize::query()->where('id', $id)->first(); + + if ($prize->daily_remaining < $prize->daily_stock) { + $diff = $prize->daily_stock - $prize->daily_remaining; + $prize->daily_remaining = $prize->daily_stock; + $prize->total_remaining = $prize->total_remaining + $diff; + $prize->total_stock = $prize->total_stock + $diff; + } + $prize->save(); + return message_success(admin_trans('prize.action_success')); + } + + /** + * 奖品详情 + * @auth true + * @param $gameId + * @return Form + */ + public function editPrize($gameId): Form + { + return Form::create(new $this->prize(), function (Form $form) use ($gameId) { + $form->title(admin_trans('prize.title')); + $form->text('name', admin_trans('prize.fields.name'))->required()->maxlength(50); + $form->image('pic', admin_trans('prize.fields.pic')); + $form->hidden('game_id')->default($gameId); + $form->number('probability', admin_trans('prize.fields.probability'))->min(1)->max(999)->required(); + $form->number('total_stock', admin_trans('prize.fields.total_stock'))->min(1)->max(100000)->required(); + $form->number('daily_stock', admin_trans('prize.fields.daily_stock'))->min(1)->max(100000) + ->help(admin_trans('prize.daily_stock_help'))->required(); + $form->textarea('description', admin_trans('prize.fields.description'))->maxlength(500)->bindAttr('rows', 10); + $form->switch('status', admin_trans('prize.fields.status'))->default(true)->required()->span(11); + $form->layout('vertical'); + $form->saving(function (Form $form) { + try { + if (!$form->isEdit()) { + $prize = new Prize(); + $prize->game_id = $form->input('game_id'); + $prize->total_remaining = $form->input('total_stock'); + $prize->daily_remaining = $form->input('daily_stock'); + } else { + $prizeId = $form->driver()->get('id'); + $prize = Prize::query()->find($prizeId); + } + $prize->name = $form->input('name'); + $prize->pic = $form->input('pic'); + $prize->probability = $form->input('probability'); + $prize->total_stock = $form->input('total_stock'); + $prize->daily_stock = $form->input('daily_stock'); + if ($prize->daily_stock > $prize->total_stock) { + return message_error(admin_trans('prize.daily_stock_help')); + } + $prize->description = $form->input('description'); + $prize->status = $form->input('status'); + $prize->admin_id = Admin::id(); + $prize->admin_name = !empty(Admin::user()) ? Admin::user()->toArray()['username'] : trans('system_automatic', [], 'message'); + $prize->save(); + } catch (\Exception $e) { + return message_error(admin_trans('form.save_fail')); + } + return message_success(admin_trans('form.save_success')); + }); + }); + } + + /** + * 筛选游戏平台 + * @return mixed + */ + public function getGamePlatformOptions() + { + $request = Request::input(); + $gamePlatform = GamePlatform::query()->orderBy('created_at', 'desc'); + if (!empty($request['search'])) { + $gamePlatform->where('name', 'like', '%' . $request['search'] . '%'); + } + $channelList = $gamePlatform->get(); + $data = []; + /** @var GamePlatform $gamePlatform */ + foreach ($channelList as $gamePlatform) { + $data[] = [ + 'value' => $gamePlatform->id, + 'label' => $gamePlatform->name, + ]; + } + return Response::success($data); + } + + /** + * 游戏类型列表 + * @auth true + */ + public function serviceList(): Grid + { + return Grid::create(new GameType(), function (Grid $grid) { + $grid->title(admin_trans('game_type.title')); + $grid->autoHeight(); + $grid->bordered(true); + $grid->column('game_type', admin_trans('game_type.fields.game_type'))->display(function ($val) { + return $val ? admin_trans('game_type.game_type.' . $val) : admin_trans('game_type.nu_set'); + })->align('center'); + + $grid->column('ratio', admin_trans('game_type.fields.ratio'))->display(function ($value) { + return $value . '%'; + })->editable( + (new Editable)->number('ratio') + ->min(1) + ->max(100) + ->addonAfter('%') + )->align('center')->ellipsis(true); + + $grid->column('updated_at', admin_trans('game_type.fields.updated_at'))->align('center')->display(function ($val) { + return $val ? date('Y-m-d H:i:s', strtotime($val)) : ''; + })->ellipsis(true); + $grid->actions(function (Action $actions) { + $actions->hideDel(); + $actions->hideEdit(); + }); + $grid->hideDelete(); + $grid->hideSelection(); + $grid->hideAdd(); + }); + } + + /** + * 游戏类型 + * @auth true + */ + public function serviceForm(): Form + { + return Form::create(new GamePlatform, function (Form $form) { + $form->title(admin_trans('game_platform.game_platform')); + $form->text('name', admin_trans('game_platform.fields.name')); + $form->text('title', admin_trans('game_platform.fields.title')); + $form->number('service_ratio', admin_trans('game_platform.fields.service_ratio'))->addonAfter('%'); + + $form->layout('vertical'); + $form->saving(function (Form $form) { + if (!$form->isEdit()) { + return message_error(admin_trans('game_platform.save_error')); + DB::beginTransaction(); + try { + $gamePlatform = new GamePlatform(); + $gamePlatform->name = $form->input('name'); + $gamePlatform->title = $form->input('title'); + $gamePlatform->service_ratio = $form->input('service_ratio'); + $gamePlatform->status = 1; + $gamePlatform->save(); + DB::commit(); + } catch (\Exception $e) { + DB::rollBack(); + return message_error($e->getMessage()); + } + return message_success(admin_trans('game_platform.save_success')); + } else { + $gamePlatform = GamePlatform::find($form->input('id')); + if (empty($gamePlatform)) { + return message_error(admin_trans('game_platform.not_fount')); + } + DB::beginTransaction(); + try { + $gamePlatform->name = $form->input('name'); + $gamePlatform->title = $form->input('title'); + $gamePlatform->service_ratio = $form->input('service_ratio'); + $gamePlatform->save(); + DB::commit(); + } catch (\Exception $e) { + DB::rollBack(); + return message_error($e->getMessage()); + } + return message_success(admin_trans('game_platform.save_success')); + } + }); + }); + } +} diff --git a/addons/webman/controller/IndexController.php b/addons/webman/controller/IndexController.php new file mode 100644 index 0000000..d0067cf --- /dev/null +++ b/addons/webman/controller/IndexController.php @@ -0,0 +1,313 @@ +rechargeData(); + $withdrawData = $this->withdrawData(); + $playerData = $this->playerData(); + $loginData = $this->loginData(); + $layout = Layout::create(); + $layout->row(function (Row $row) use ($rechargeData, $withdrawData, $playerData, $loginData) { + $row->gutter([10, 10]); + $row->column( + Card::create([ + Row::create()->column(Icon::create('fas fa-money-bill')->style(['fontSize' => '45px', 'color' => '#409eff', 'marginRight' => '20px']), 4), + Row::create()->column(Statistic::create()->title(admin_trans('data_center.recharge_all'))->value(floatval($rechargeData['all']))->style(['fontSize' => '45px', 'text-align' => 'center']), 6), + Divider::create()->type('vertical')->style(['height' => '4.9em']), + Row::create()->column(Statistic::create()->title(admin_trans('data_center.recharge_activity'))->value(floatval($rechargeData['activity']))->style(['fontSize' => '45px', 'text-align' => 'center']), 6), + Divider::create()->type('vertical')->style(['height' => '4.9em']), + Row::create()->column(Statistic::create()->title(admin_trans('data_center.recharge_regular'))->value(floatval($rechargeData['regular']))->style(['fontSize' => '45px', 'text-align' => 'center']), 6), + ])->bodyStyle(['display' => 'flex', 'align-items' => 'center'])->hoverable()->extra(Icon::create('MoreOutlined') + ->redirect('ex-admin/addons-webman-controller-RechargeRecordController/index')) + ->headStyle(['height' => '0px', 'border-bottom' => '0px', 'min-height' => '0px']) + , 12); + + $row->column( + Card::create([ + Row::create()->column(Icon::create('fas fa-money-bill-alt')->style(['fontSize' => '45px', 'color' => '#ff9800', 'marginRight' => '20px']), 6), + Row::create()->column(Statistic::create()->title(admin_trans('data_center.withdraw_all')) + ->value(floatval($withdrawData['all']))->style(['fontSize' => '45px', 'text-align' => 'center']), 8), + Divider::create()->type('vertical')->style(['height' => '4.9em']), + Row::create()->column(Statistic::create()->title(admin_trans('data_center.withdraw_self')) + ->value(floatval($withdrawData['self']))->style(['fontSize' => '45px', 'text-align' => 'center']), 8), + ])->bodyStyle(['display' => 'flex', 'align-items' => 'center'])->hoverable()->extra(Icon::create('MoreOutlined') + ->redirect('ex-admin/addons-webman-controller-WithdrawRecordController/index')) + ->headStyle(['height' => '0px', 'border-bottom' => '0px', 'min-height' => '0px']) + , 12); + + $row->column( + Card::create([ + Row::create()->column(Icon::create('fas fa-user')->style(['fontSize' => '45px', 'color' => '#409eff', 'marginRight' => '20px']), 6), + Row::create()->column(Statistic::create()->title(admin_trans('data_center.today_add_player')) + ->value($playerData['today'])->style(['fontSize' => '45px', 'text-align' => 'center']), 8), + Divider::create()->type('vertical')->style(['height' => '4.9em']), + Row::create()->column(Statistic::create()->title(admin_trans('data_center.player_all')) + ->value($playerData['all'])->style(['fontSize' => '45px', 'text-align' => 'center']), 8), + ])->bodyStyle(['display' => 'flex', 'align-items' => 'center'])->hoverable()->extra(Icon::create('MoreOutlined') + ->redirect('ex-admin/addons-webman-controller-PlayerController/index')) + ->headStyle(['height' => '0px', 'border-bottom' => '0px', 'min-height' => '0px']) + , 12); + $row->column( + Card::create([ + Row::create()->column(Icon::create('fas fa-user')->style(['fontSize' => '45px', 'color' => '#e91e63', 'marginRight' => '20px']), 6), + Row::create()->column(Statistic::create()->title(admin_trans('data_center.today_active_player')) + ->value($loginData['today'])->style(['fontSize' => '45px', 'text-align' => 'center']), 8) + ->redirect('ex-admin/addons-webman-controller-PlayerController/index',['active_player' => 1]), + Divider::create()->type('vertical')->style(['height' => '4.9em']), + Row::create()->column(Statistic::create()->title(admin_trans('data_center.mouth_active_player')) + ->value($loginData['month'])->style(['fontSize' => '45px', 'text-align' => 'center']), 8) + ->redirect('ex-admin/addons-webman-controller-PlayerController/index',['active_player' => 2]) + ])->bodyStyle(['display' => 'flex', 'align-items' => 'center'])->hoverable() + , 12); + $row->column(Card::create($this->rechargeChart())->hoverable(), 24); + $row->column(Card::create($this->withdrawChart())->hoverable(), 12); + $row->column(Card::create($this->playerChart())->hoverable(), 12); + }); + + return $layout; + } + + /** + * 获取活跃玩家数据 + * @return array + */ + public function loginData(): array + { + return [ + 'month' => PlayerLoginRecord::whereYear('created_at', date('Y'))->whereMonth('created_at', date('m'))->distinct('player_id')->count(), + 'today' => PlayerLoginRecord::whereDate('created_at', date('Y-m-d'))->distinct('player_id')->count(), + ]; + } + + /** + * 获取玩家数据 + * @return array + */ + public function playerData(): array + { + return [ + 'all' => Player::count('*'), + 'today' => Player::whereDate('created_at', date('Y-m-d'))->count(), + ]; + } + + /** + * 获取充值数据 + * @return array + */ + public function rechargeData(): array + { + return [ + 'all' => PlayerRechargeRecord::where('status', PlayerRechargeRecord::STATUS_RECHARGED_SUCCESS)->whereIn('type', [PlayerRechargeRecord::TYPE_REGULAR, PlayerRechargeRecord::TYPE_ACTIVITY, PlayerRechargeRecord::TYPE_ARTIFICIAL])->sum('coins'), + 'activity' => PlayerRechargeRecord::where('status', PlayerRechargeRecord::STATUS_RECHARGED_SUCCESS)->where('type', PlayerRechargeRecord::TYPE_ACTIVITY)->sum('coins'), + 'regular' => PlayerRechargeRecord::where('status', PlayerRechargeRecord::STATUS_RECHARGED_SUCCESS)->where('type', PlayerRechargeRecord::TYPE_REGULAR)->sum('coins'), + 'artificial' => PlayerRechargeRecord::where('status', PlayerRechargeRecord::STATUS_RECHARGED_SUCCESS)->where('type', PlayerRechargeRecord::TYPE_ARTIFICIAL)->sum('coins'), + ]; + } + + /** + * 获取提现数据 + * @return array + */ + public function withdrawData(): array + { + return [ + 'all' => PlayerWithdrawRecord::where('status', PlayerWithdrawRecord::STATUS_SUCCESS)->sum('coins'), + 'self' => PlayerWithdrawRecord::where('status', PlayerWithdrawRecord::STATUS_SUCCESS)->where('type', PlayerWithdrawRecord::TYPE_SELF)->sum('coins'), + 'artificial' => PlayerWithdrawRecord::where('status', PlayerWithdrawRecord::STATUS_SUCCESS)->where('type', PlayerWithdrawRecord::TYPE_ARTIFICIAL)->sum('coins'), + ]; + } + + + /** + * 充值趋势图 + * @return LineChart + */ + public function rechargeChart(): LineChart + { + $range = Carbon::now()->subDays(15)->format('Y-m-d'); + $data = PlayerRechargeRecord::whereDate('created_at', '>=', $range) + ->where('status', PlayerRechargeRecord::STATUS_RECHARGED_SUCCESS) + ->whereIn('type', [PlayerRechargeRecord::TYPE_REGULAR, PlayerRechargeRecord::TYPE_ACTIVITY, PlayerRechargeRecord::TYPE_ARTIFICIAL]) + ->groupBy('date') + ->orderBy('date', 'DESC') + ->get([ + DB::raw('Date(`created_at`) as date'), + DB::raw('SUM(`coins`) as value') + ]) + ->toArray(); + $data = $data ? array_column($data, 'value', 'date') : []; + $xAxis = []; + $yAxis = []; + for ($i = 14; $i >= 0; $i--) { + $date = Carbon::now()->subDays($i)->format('Y-m-d'); + $xAxis[] = $date; + $yAxis[] = $data[$date] ?? 0; + } + return LineChart::create() + ->height('280px') + ->hideDateFilter() + ->header(Html::create(admin_trans('data_center.recharge_chart'))->tag('h2')->style(['text-align' => 'center'])) + ->xAxis($xAxis) + ->data(admin_trans('data_center.recharge_amount'), $yAxis); + } + + /** + * 提现趋势图 + * @return LineChart + */ + public function withdrawChart(): LineChart + { + $range = Carbon::now()->subDays(15)->format('Y-m-d'); + $data = PlayerWithdrawRecord::whereDate('created_at', '>=', $range) + ->where('status', PlayerWithdrawRecord::STATUS_SUCCESS) + ->groupBy('date') + ->orderBy('date', 'DESC') + ->get([ + DB::raw('Date(`created_at`) as date'), + DB::raw('SUM(`coins`) as value') + ]) + ->toArray(); + $data = $data ? array_column($data, 'value', 'date') : []; + $xAxis = []; + $yAxis = []; + + for ($i = 14; $i >= 0; $i--) { + $date = Carbon::now()->subDays($i)->format('Y-m-d'); + $xAxis[] = $date; + $yAxis[] = $data[$date] ?? 0; + } + + return LineChart::create() + ->height('280px') + ->hideDateFilter() + ->header(Html::create(admin_trans('data_center.withdraw_chart'))->tag('h2')->style(['text-align' => 'center'])) + ->xAxis($xAxis) + ->data(admin_trans('data_center.withdraw_amount'), $yAxis); + } + + /** + * 上传 + * @return Response|void + */ + public function myEditorUpload() + { + $file = request()->file('file'); + if ($file && $file->isValid()) { + $size = $file->getSize(); + if ($file->getSize() >= 1024 * 1024) { + return jsonFailResponse(trans('image_upload_size_fail', ['{size}' => '1M'], 'message')); + } + $extension = $file->getUploadExtension(); + if (!in_array($extension, ['png', 'jpg', 'jpeg'])) { + return jsonFailResponse(trans('image_upload_size_fail', ['{size}' => '1M'], 'message')); + } + $uploadName = $file->getUploadName(); + $basePath = public_path() . '/storage/' . date('Ymd') . DIRECTORY_SEPARATOR; + $baseUrl = env('APP_URL', 'http://127.0.0.1:8787') . '/storage/' . date('Ymd') . '/'; + $uniqueId = hash_file('md5', $file->getPathname()); + $saveFilename = $uniqueId . '.' . $file->getUploadExtension(); + $savePath = $basePath . $saveFilename; + $file->move($savePath); + + return jsonSuccessResponse('success', [ + 'origin_name' => $uploadName, + 'save_name' => $saveFilename, + 'save_path' => $savePath, + 'url' => $baseUrl . $saveFilename, + 'unique_id' => $uniqueId, + 'size' => $size, + 'mime_type' => $file->getUploadMimeType(), + 'extension' => $extension, + ]); + } + } + + /** + * 新增玩家 + * @return BarChart + */ + public function playerChart(): BarChart + { + $range = Carbon::now()->subDays(15)->format('Y-m-d'); + $data = Player::whereDate('created_at', '>=', $range) + ->groupBy('date') + ->orderBy('date', 'DESC') + ->get([ + DB::raw('Date(`created_at`) as date'), + DB::raw('COUNT(`id`) as value') + ]) + ->toArray(); + $data = $data ? array_column($data, 'value', 'date') : []; + $xAxis = []; + $yAxis = []; + for ($i = 14; $i >= 0; $i--) { + $date = Carbon::now()->subDays($i)->format('Y-m-d'); + $xAxis[] = $date; + $yAxis[] = $data[$date] ?? 0; + } + return BarChart::create() + ->height('280px') + ->hideDateFilter() + ->header(Html::create(admin_trans('data_center.player_chart'))->tag('h2')->style(['text-align' => 'center'])) + ->xAxis($xAxis) + ->data(admin_trans('data_center.player_amount'), $yAxis); + } + + /** + * 活動圖片上傳 + * @return Msg|Response + */ + public function activityUpload() + { + $file = request()->file('file'); + if ($file && $file->isValid()) { + if ($file->getSize() >= 1024 * 1024 * 5) { + return message_error(trans('image_upload_size_fail', ['{size}' => '5M'], 'message')); + } + $extension = $file->getUploadExtension(); + if (!in_array($extension, ['png', 'jpg', 'jpeg'])) { + return message_error(trans('image_upload_fail', [], 'message')); + } + $basePath = public_path() . '/storage/' . date('Ymd') . DIRECTORY_SEPARATOR; + $baseUrl = env('APP_URL', 'http://127.0.0.1:8787') . '/storage/' . date('Ymd') . '/'; + $uniqueId = hash_file('md5', $file->getPathname()); + $saveFilename = $uniqueId . '.' . $file->getUploadExtension(); + $savePath = $basePath . $saveFilename; + $file->move($savePath); + + return jsonSuccessResponse('success', [$baseUrl . $saveFilename]); + } else { + return message_error(trans('image_upload_fail', [], 'message')); + } + } +} \ No newline at end of file diff --git a/addons/webman/controller/MenuController.php b/addons/webman/controller/MenuController.php new file mode 100644 index 0000000..5b3d092 --- /dev/null +++ b/addons/webman/controller/MenuController.php @@ -0,0 +1,126 @@ +model = plugin()->webman->config('database.menu_model'); + } + + /** + * 系统菜单 + * @auth true + * @return Card + */ + public function index(): Card + { + return Card::create(Tabs::create() + ->destroyInactiveTabPane() + ->pane(admin_trans('menu.type.' . AdminDepartment::TYPE_DEPARTMENT), $this->menuList()) + ->pane(admin_trans('menu.type.' . AdminDepartment::TYPE_CHANNEL), $this->menuList(AdminDepartment::TYPE_CHANNEL)) + ->type('card') + ); + } + + /** + * 系统菜单 + * @param int $type 菜单类型 + * @return Grid + */ + public function menuList(int $type = AdminDepartment::TYPE_DEPARTMENT):Grid + { + return Grid::create(new $this->model(),function (Grid $grid) use($type){ + $grid->title(admin_trans('menu.title')); + $grid->model()->where('type', $type)->orderBy('sort'); + $grid->autoHeight(); + $grid->tree(); + $grid->column('name', admin_trans('menu.fields.name'))->display(function ($value, $data) { + return Html::create([ + Icon::create($data['icon']), + ' ', + $value + ]); + }); + $grid->column('url', admin_trans('menu.fields.url'))->display(function ($value) { + if (empty($value) || $value == '#') { + return $value; + } + return Html::create($value)->tag('a')->redirect($value); + }); + $grid->column('status', admin_trans('menu.fields.status'))->switch(); + $grid->column('open', admin_trans('menu.fields.open'))->switch(); + $grid->sortInput(); + $grid->quickSearch(); + $grid->setForm()->modal($this->form()); + $grid->updated(function (){ + return message_success(admin_trans('grid.update_success'))->refreshMenu(); + }); + $grid->deleted(function (){ + return message_success(admin_trans('grid.update_success'))->refreshMenu(); + }); + }); + } + + /** + * 系统菜单 + * @auth true + * @param int $pid + * @return Form + */ + public function form(int $pid = 0): Form + { + return Form::create(new $this->model,function (Form $form) use($pid){ + $form->title(admin_trans('menu.title')); + $form->text('name', admin_trans('menu.fields.name'))->required(); + $form->radio('type', admin_trans('menu.fields.type')) + ->default(AdminDepartment::TYPE_DEPARTMENT) + ->disabled($form->isEdit()) + ->options([ + AdminDepartment::TYPE_DEPARTMENT => admin_trans('menu.type.' . AdminDepartment::TYPE_DEPARTMENT), + AdminDepartment::TYPE_CHANNEL => admin_trans('menu.type.' . AdminDepartment::TYPE_CHANNEL) + ])->when('==', AdminDepartment::TYPE_DEPARTMENT, function (Form $form) use($pid){ + $menus = $this->model::where('type', AdminDepartment::TYPE_DEPARTMENT)->get()->toArray(); + array_unshift($menus, ['id' => 0, 'name' => admin_trans('menu.fields.top'), 'pid' => -1]); + $form->treeSelect('pid', admin_trans('menu.fields.pid')) + ->default($pid) + ->options($menus) + ->required(); + + })->when('==', AdminDepartment::TYPE_CHANNEL, function (Form $form) use($pid){ + $menus = $this->model::where('type', AdminDepartment::TYPE_CHANNEL)->get()->toArray(); + array_unshift($menus, ['id' => 0, 'name' => admin_trans('menu.fields.top'), 'pid' => -1]); + $form->treeSelect('pid', admin_trans('menu.fields.pid')) + ->default($pid) + ->options($menus) + ->required(); + }); + $form->autoComplete('url', admin_trans('menu.fields.url')) + ->groupOptions(Arr::tree(Admin::node()->all()),'children','title','url'); + $form->icon('icon', admin_trans('menu.fields.icon')) + ->default('far fa-circle') + ->required(); + $form->number('sort', admin_trans('menu.fields.sort')) + ->default($this->model::where('pid', $pid)->max('sort') + 1); + $form->saved(function(){ + return message_success(admin_trans('form.save_success'))->refreshMenu(); + }); + }); + } +} diff --git a/addons/webman/controller/PlayGameRecordController.php b/addons/webman/controller/PlayGameRecordController.php new file mode 100644 index 0000000..3623961 --- /dev/null +++ b/addons/webman/controller/PlayGameRecordController.php @@ -0,0 +1,97 @@ +model = plugin()->webman->config('database.draw_records_model'); + + } + + /** + * 玩家游戏记录 + * @auth true + */ + public function index(): Grid + { + return Grid::create(new $this->model, function (Grid $grid) { + $grid->title(admin_trans('play_game_record.title')); + $grid->model()->orderBy('created_at', 'desc'); + $exAdminFilter = Request::input('ex_admin_filter', []); + if (isset($exAdminFilter['created_at_start']) && !empty($exAdminFilter['created_at_start'])) { + $grid->model()->whereDate('created_at', '>=', $exAdminFilter['created_at_start']); + } + if (isset($exAdminFilter['created_at_end']) && !empty($exAdminFilter['created_at_end'])) { + $grid->model()->whereDate('created_at', '<=', $exAdminFilter['created_at_end']); + } + $grid->autoHeight(); + $grid->bordered(true); + $grid->hideAction(); + $grid->hideDelete(); + $grid->hideDeleteSelection(); + $grid->hideSelection(); + $grid->column('id', admin_trans('play_game_record.fields.id'))->fixed(true)->align('center'); + $grid->column('player.name', admin_trans('player.fields.name'))->display(function ($val, DrawRecord $data) { + $image = !empty($data->player->avatar) ? Avatar::create()->src(is_numeric($data->player->avatar) ? config('def_avatar.' . $data->player->avatar) : $data->player->avatar) : Avatar::create()->icon(Icon::create('UserOutlined')); + return Html::create()->content([ + $image, + Html::div()->content($val), + ]); + })->fixed(true)->align('center'); + $grid->column('channel.name', admin_trans('channel.fields.name'))->align('center'); + $grid->column('game_type', admin_trans('game.fields.game_type'))->display(function ($val) { + return $val ? admin_trans('game.game_type.' . $val) : admin_trans('game.nu_set'); + })->align('center'); + $grid->column('prize_name', admin_trans('prize.fields.name'))->align('center'); + $grid->column('prize_type', admin_trans('prize.fields.type'))->display(function ($val) { + return $val ? admin_trans('prize.prize_type.' . $val) : admin_trans('prize.nu_set'); + })->align('center'); + $grid->column('created_at', admin_trans('play_game_record.fields.create_at'))->align('center'); + $grid->filter(function (Filter $filter) { + $filter->like()->text('player.name')->placeholder(admin_trans('player.fields.name')); + $filter->eq()->select('game_type') + ->placeholder(admin_trans('play_game_record.fields.game_type')) + ->showSearch() + ->style(['width' => '200px']) + ->dropdownMatchSelectWidth() + ->options([ + Game::GAME_TYPE_EGG => admin_trans('game.game_type.' . Game::GAME_TYPE_EGG), + Game::GAME_TYPE_TURNTABLE => admin_trans('game.game_type.' . Game::GAME_TYPE_TURNTABLE), + Game::GAME_TYPE_BLINDBOX => admin_trans('game.game_type.' . Game::GAME_TYPE_BLINDBOX), + Game::GAME_TYPE_TICKET => admin_trans('game.game_type.' . Game::GAME_TYPE_TICKET), + Game::GAME_TYPE_LOTTERY => admin_trans('game.game_type.' . Game::GAME_TYPE_LOTTERY), + Game::GAME_TYPE_DICE => admin_trans('game.game_type.' . Game::GAME_TYPE_DICE), + ]); + $filter->eq()->select('department_id') + ->showSearch() + ->style(['width' => '200px']) + ->dropdownMatchSelectWidth() + ->placeholder(admin_trans('channel.fields.department_name')) + ->remoteOptions(admin_url(['addons-webman-controller-ChannelController', 'getDepartmentOptions'])); + $filter->form()->hidden('created_at_start'); + $filter->form()->hidden('created_at_end'); + $filter->form()->dateRange('created_at_start', 'created_at_end', '')->placeholder([admin_trans('public_msg.created_at_start'), admin_trans('public_msg.created_at_end')]); + }); + $grid->quickSearch(); + }); + } +} diff --git a/addons/webman/controller/PlayerController.php b/addons/webman/controller/PlayerController.php new file mode 100644 index 0000000..c27f08a --- /dev/null +++ b/addons/webman/controller/PlayerController.php @@ -0,0 +1,1355 @@ +model = plugin()->webman->config('database.player_model'); + $this->playerTag = plugin()->webman->config('database.player_tag_model'); + $this->withdraw = plugin()->webman->config('database.player_withdraw_record_model'); + $this->recharge = plugin()->webman->config('database.player_recharge_record_model'); + $this->playerChipRecord = plugin()->webman->config('database.player_chip_record_model'); + $this->playerDeliveryRecord = plugin()->webman->config('database.player_delivery_record_model'); + $this->playerLevel = plugin()->webman->config('database.player_level_model'); + } + + /** + * 玩家 + * @auth true + * @return Grid + */ + public function index(): Grid + { + return Grid::create(new $this->model(), function (Grid $grid) { + $grid->title(admin_trans('player.title')); + $requestFilter = Request::input('ex_admin_filter', []); + if (!empty($requestFilter)) { + if (isset($requestFilter['created_at_start']) && !empty($requestFilter['created_at_start'])) { + $grid->model()->where('player.created_at', '>=', $requestFilter['created_at_start']); + } + if (isset($requestFilter['created_at_end']) && !empty($requestFilter['created_at_end'])) { + $grid->model()->where('player.created_at', '<=', $requestFilter['created_at_end']); + } + } + $activePlayer = Request::input('active_player') ?? null; + if (!empty($activePlayer)){ + $grid->model()->whereHas('the_last_player_login_record', function ($query) use ($activePlayer) { + if ($activePlayer == 1){ + $query->whereDate('created_at', date('Y-m-d')); + } else { + $query->whereYear('created_at', date('Y')) + ->whereMonth('created_at', date('m')); + } + }); + } + $subQuery = PlayerDeliveryRecord::select('player_id', Db::raw('sum(amount) as amount')) + ->whereNotIn('type', [1,2,3,4,5,9,10]) + ->groupBy('player_id'); + $grid->model()->with(['player_register_record', 'channel', 'the_last_player_login_record']) + ->select([ + 'player.*', + 'player_extend.recharge_amount', + 'player_extend.withdraw_amount', + 'player_platform_cash.money as money', + 'record.amount as present_coins' + ]) + ->leftjoin('player_extend', 'player.id', '=', 'player_extend.player_id') + ->leftjoin('player_platform_cash', 'player.id', '=', 'player_platform_cash.player_id') + ->leftjoinSub($subQuery, 'record', function ($join) { + $join->on('player.id', '=', 'record.player_id'); + }) + ->orderBy('player.id', 'desc'); + $grid->autoHeight(); + $grid->bordered(true); + $grid->column('id', admin_trans('player.fields.id'))->fixed(true)->align('center'); + $grid->column('name', admin_trans('player.fields.name'))->display(function ($val, Player $data) { + $image = $data->avatar ? Avatar::create()->src(is_numeric($data->avatar) ? config('def_avatar.' . $data->avatar) : $data->avatar) : Avatar::create()->icon(Icon::create('UserOutlined')); + return Html::create()->content([ + $image, + Html::div()->content($val), + ]); + })->fixed(true)->align('center'); + $grid->column('uuid', admin_trans('player.fields.uuid'))->fixed(true)->ellipsis(true)->align('center'); + $grid->column('phone', admin_trans('player.fields.phone'))->fixed(true)->ellipsis(true)->align('center'); + $grid->column('money', admin_trans('player_platform_cash.platform_name.' . PlayerPlatformCash::PLATFORM_SELF))->display(function ($val, Player $data) { + return Tag::create($val)->color('orange')->style(['cursor' => 'pointer'])->modal([$this, 'playerRecord'], ['id' => $data->id])->width('70%')->title($data->name . ' ' . $data->uuid); + })->ellipsis(true)->align('center')->sortable(); + $grid->column('player_extend.recharge_amount', admin_trans('player_extend.fields.recharge_amount'))->ellipsis(true)->align('center')->sortable(); + $grid->column('player_extend.withdraw_amount', admin_trans('player_extend.fields.withdraw_amount'))->ellipsis(true)->align('center')->sortable(); + $grid->column('status', admin_trans('player.fields.status'))->switch()->ellipsis(true)->align('center'); + $grid->column('player.created_at', admin_trans('player.fields.created_at'))->display(function ($val, Player $data) { + return Html::create()->content([ + Html::div()->content(date('Y-m-d H:i:s', strtotime($data->created_at))), + Html::div()->content($data->player_register_record->ip ?? ''), + Html::div()->content($data->player_register_record->country_name ?? ''), + ]); + })->ellipsis(true)->align('center')->sortable(); + $grid->column('last_login', admin_trans('player.fields.player_login_record'))->display(function ($val, Player $data) { + return Html::create()->content([ + Html::div()->content($val ?? (!empty($data->the_last_player_login_record->created_at) ? date('Y-m-d H:i:s', strtotime($data->the_last_player_login_record->created_at)) : '')), + Html::div()->content($data->the_last_player_login_record->ip ?? ''), + Html::div()->content($data->the_last_player_login_record->country_name ?? ''), + ]); + })->ellipsis(true)->align('center')->sortable(); + $grid->filter(function (Filter $filter) { + $filter->like()->text('uuid')->placeholder(admin_trans('player.fields.uuid')); + $filter->like()->text('name')->placeholder(admin_trans('player.fields.name')); + $filter->like()->text('phone')->placeholder(admin_trans('player.fields.phone')); + $filter->eq()->select('department_id') + ->showSearch() + ->style(['width' => '200px']) + ->dropdownMatchSelectWidth() + ->placeholder(admin_trans('player.fields.department_id')) + ->remoteOptions(admin_url(['addons-webman-controller-ChannelController', 'getDepartmentOptions'])); + $filter->eq()->select('level') + ->showSearch() + ->style(['width' => '200px']) + ->dropdownMatchSelectWidth() + ->placeholder(admin_trans('player.fields.level')) + ->options(playerLevelOptions()); + $filter->form()->hidden('created_at_start'); + $filter->form()->hidden('created_at_end'); + $filter->form()->dateTimeRange('created_at_start', 'created_at_end', '')->placeholder([admin_trans('public_msg.created_at_start'), admin_trans('public_msg.created_at_end')]); + }); + $grid->expandFilter(); + $grid->hideDelete(); + $grid->hideSelection(); + $grid->tools([ + $grid->addButton()->modal($this->form()), + Button::create(admin_trans('player.level_setting')) + ->danger() + ->style(['margin-left' => '10px']) + ->drawer($this->levelSetting()) + ] + ); + $grid->actions(function (Actions $actions, Player $data) { + $actions->edit()->modal($this->form())->width('60%'); + $actions->hideDel(); + $dropdown = $actions->dropdown(); + $dropdown->prepend(admin_trans('admin.reset_password'), 'fas fa-key') + ->modal($this->resetPassword($data->id)); + $dropdown->append(admin_trans('player.wallet.player_wallet'), 'MoneyCollectFilled') + ->modal($this->playerWallet([ + 'id' => $data->id, + 'money' => $data->wallet->money ?? 0, + ]))->width('600px'); + $dropdown->append(admin_trans('player.wallet.artificial_recharge'), 'TransactionOutlined') + ->modal($this->artificialRecharge([ + 'id' => $data->id, + 'money' => $data->wallet->money ?? 0, + ]))->width('600px')->title(Html::create(admin_trans('player.wallet.artificial_recharge'))->content( + ToolTip::create(Icon::create('QuestionCircleOutlined')->style(['marginLeft' => '5px', 'cursor' => 'pointer']))->title(admin_trans('player.wallet.artificial_recharge_tip')) + )); + $dropdown->append(admin_trans('player.wallet.artificial_withdrawal'), 'PayCircleOutlined') + ->modal($this->artificialWithdrawal([ + 'id' => $data->id, + 'money' => $data->wallet->money ?? 0, + ]))->width('600px')->title(Html::create(admin_trans('player.wallet.artificial_withdrawal'))->content( + ToolTip::create(Icon::create('QuestionCircleOutlined')->style(['marginLeft' => '5px', 'cursor' => 'pointer']))->title(admin_trans('player.wallet.artificial_withdrawal_tip')) + )); + }); + $grid->updateing(function ($ids, $data) { + if (isset($ids[0]) && isset($data['player_extend'])) { + if (PlayerExtend::updateOrCreate( + ['player_id' => $ids[0]], + $data['player_extend'] + )) { + return message_success(admin_trans('player.remark_edit_success')); + } + } + }); + }); + } + + /** + * @return Form + */ + public function levelSetting(): Form + { + $list = PlayerLevel::query()->orderBy('level')->get(); + $data = []; + /** @var PlayerLevel $playerLevel */ + foreach ($list as $playerLevel) { + $data['id'][$playerLevel->level] = $playerLevel->id; + $data['level'][$playerLevel->level] = $playerLevel->level; + $data['recharge_amount'][$playerLevel->level] = $playerLevel->recharge_amount; + $data['chip_multiple'][$playerLevel->level] = $playerLevel->chip_multiple; + $data['bet_rebate_ratio'][$playerLevel->level] = $playerLevel->bet_rebate_ratio; + $data['damage_rebate_ratio'][$playerLevel->level] = $playerLevel->damage_rebate_ratio; + $data['content'][$playerLevel->level] = json_decode($playerLevel->content, true); + } + return Form::create($data, function (Form $form) { + $form->labelWidth('200'); + $form->layout('vertical'); + $langList = plugin()->webman->config('ui.lang.list'); + $tabs = $form->tabs() + ->tabPosition('left') + ->destroyInactiveTabPane(); + for ($i = 1; $i <= 13; $i++) { + $tabs->pane(admin_trans('player.level.' . $i), function (Form $form) use ($i, $langList) { + $tabs = $form->tabs()->destroyInactiveTabPane(); + foreach ($langList as $k => $v) { + $tabs->pane($v, function (Form $form) use ($k, $i) { + $form->text("content." . $i . '.' . $k . ".level_name", admin_trans('player_level.level_name')) + ->required()->maxlength(20) + ->help(admin_trans('player_level.help.level_name')); + $form->textarea("content." . $i . '.' . $k . ".content", admin_trans('player_level.level_content')) + ->rows(5) + ->required()->showCount()->maxlength(500) + ->help(admin_trans('player_level.help.level_content')); + }); + } + $form->hidden('id.' . $i); + $form->hidden('level.' . $i)->value($i); + $form->number('recharge_amount.' . $i, admin_trans('player_level.recharge_amount')) + ->min(0) + ->max(1000000000) + ->precision(0) + ->style(['width' => '300px']) + ->default(0) + ->required() + ->controls(false) + ->help(admin_trans('player_level.help.recharge_amount', null, ['{max_amount}' => 1000000000])); + $form->number('chip_multiple.' . $i, admin_trans('player_level.chip_multiple')) + ->min(0) + ->max(10000) + ->precision(2) + ->style(['width' => '300px']) + ->controls(false) + ->default(0) + ->required() + ->addonAfter('%') + ->help(admin_trans('player_level.help.chip_multiple', null, ['{max_multiple}' => 10000])); + $form->number('bet_rebate_amount.' . $i, admin_trans('player_level.bet_rebate_amount')) + ->min(0) + ->max(1000000000) + ->precision(0) + ->style(['width' => '300px']) + ->controls(false) + ->default(0) + ->required() + ->help(admin_trans('player_level.help.bet_rebate_amount', null, ['{max_amount}' => 1000000000])); + $form->number('bet_rebate_ratio.' . $i, admin_trans('player_level.bet_rebate_ratio')) + ->min(0) + ->max(100) + ->precision(2) + ->style(['width' => '300px']) + ->controls(false) + ->addonAfter('%') + ->default(0) + ->required() + ->help(admin_trans('player_level.help.bet_rebate_ratio', null, ['{max_ratio}' => 100])); + $form->number('damage_rebate_ratio.' . $i, admin_trans('player_level.damage_rebate_ratio')) + ->min(0) + ->max(100) + ->precision(2) + ->style(['width' => '300px']) + ->controls(false) + ->addonAfter('%') + ->default(0) + ->required() + ->help(admin_trans('player_level.help.damage_rebate_ratio', null, ['{max_ratio}' => 100])); + }); + } + $form->saving(function (Form $form) { + $idArr = $form->input('id'); + $levelArr = $form->input('level'); + $rechargeAmountArr = $form->input('recharge_amount'); + $chipMultipleArr = $form->input('chip_multiple'); + $betRebateAmountArr = $form->input('bet_rebate_amount'); + $betRebateRatioArr = $form->input('bet_rebate_ratio'); + $damageRebateRatioArr = $form->input('damage_rebate_ratio'); + $content = $form->input('content'); + DB::beginTransaction(); + try { + foreach ($idArr as $key => $item) { + if (empty($rechargeAmountArr[$key])) { + throw new \Exception(admin_trans('player_level.recharge_amount_not_found', null, ['{level}' => admin_trans('player_level.level') . $key])); + } + if (!empty($item)) { + $playerLevel = PlayerLevel::query()->find($item); + } else { + $playerLevel = new PlayerLevel(); + } + $playerLevel->level = $levelArr[$key]; + $playerLevel->content = json_encode($content[$key]); + $playerLevel->recharge_amount = $rechargeAmountArr[$key]; + $playerLevel->chip_multiple = $chipMultipleArr[$key]; + $playerLevel->bet_rebate_amount = $betRebateAmountArr[$key]; + $playerLevel->bet_rebate_ratio = $betRebateRatioArr[$key]; + $playerLevel->damage_rebate_ratio = $damageRebateRatioArr[$key]; + if ($key > 1 && $rechargeAmountArr[$key] <= $rechargeAmountArr[$key - 1]) { + throw new \Exception(admin_trans('player_level.recharge_amount_must_gt_upper', null, ['{level}' => admin_trans('player_level.level') . $key])); + } + if ($key > 1 && $key < 7 && $rechargeAmountArr[$key] >= $rechargeAmountArr[$key + 1]) { + throw new \Exception(admin_trans('player_level.recharge_amount_must_lt_next', null, ['{level}' => admin_trans('player_level.level') . $key])); + } + + $playerLevel->save(); + } + DB::commit(); + } catch (\Exception $e) { + DB::rollBack(); + return message_error($e->getMessage()); + } + return message_success(admin_trans('form.save_success')); + }); + }); + } + + /** + * 人工提现 + * @auth true + * @param $data + * @return Form + */ + public function artificialWithdrawal($data): Form + { + return Form::create(new $this->model, function (Form $form) use ($data) { + $form->number('coins', admin_trans('player_withdraw_record.fields.coins')) + ->min(0) + ->max(100000000) + ->precision(2) + ->style(['width' => '100%']) + ->addonBefore(admin_trans('player.wallet.wallet') . ' ' . $data['money'] ?? 0) + ->required(); + $form->number('money', admin_trans('player_withdraw_record.fields.money')) + ->min(0) + ->max(100000000) + ->precision(2) + ->style(['width' => '100%']); + $form->text('currency', admin_trans('player_withdraw_record.fields.currency'))->maxlength(10); + $form->text('bank_name', admin_trans('player_withdraw_record.fields.bank_name'))->maxlength(50); + $form->text('account', admin_trans('player_withdraw_record.fields.account'))->maxlength(50); + $form->text('account_name', admin_trans('player_withdraw_record.fields.account_name'))->maxlength(50); + $form->textarea('remark', admin_trans('player_withdraw_record.fields.remark'))->maxlength(255)->bindAttr('rows', 4); + $form->layout('vertical'); + $form->hidden('id')->value($data['id']); + $form->saving(function (Form $form) { + /** @var Player $player */ + $player = Player::where('id', $form->input('id'))->whereNull('deleted_at')->first(); + if (empty($player)) { + return message_error(admin_trans('player.not_fount')); + } + if ($player->status == 0) { + return message_error(admin_trans('player.disable')); + } + if ($player->wallet->money < $form->input('coins')) { + return message_error(admin_trans('player.insufficient_balance')); + } + DB::beginTransaction(); + try { + $beforeGameAmount = $player->wallet->money; + // 生成订单 + $playerWithdrawRecord = new PlayerWithdrawRecord(); + $playerWithdrawRecord->player_id = $player->id; + $playerWithdrawRecord->talk_user_id = $player->talk_user_id; + $playerWithdrawRecord->department_id = $player->department_id; + $playerWithdrawRecord->tradeno = createOrderNo(); + $playerWithdrawRecord->player_name = $player->name ?? ''; + $playerWithdrawRecord->player_phone = $player->phone ?? ''; + $playerWithdrawRecord->money = $form->input('money') ?? 0; + $playerWithdrawRecord->coins = $form->input('coins') ?? 0; + $playerWithdrawRecord->fee = 0; + $playerWithdrawRecord->inmoney = bcsub($playerWithdrawRecord->money, $playerWithdrawRecord->fee, 2); // 实际提现金额 + $playerWithdrawRecord->currency = $form->input('currency') ?? 0; + $playerWithdrawRecord->bank_name = $form->input('bank_name') ?? 0; + $playerWithdrawRecord->account = $form->input('account') ?? 0; + $playerWithdrawRecord->account_name = $form->input('account_name') ?? 0; + $playerWithdrawRecord->type = PlayerWithdrawRecord::TYPE_ARTIFICIAL; + $playerWithdrawRecord->status = PlayerWithdrawRecord::STATUS_SUCCESS; + $playerWithdrawRecord->finish_time = date('Y-m-d H:i:s'); + $playerWithdrawRecord->save(); + // 玩家钱包扣减 + $player->wallet->money = bcsub($player->wallet->money, $playerWithdrawRecord->coins, 2); + // 更新玩家统计 + $player->player_extend->withdraw_amount = bcadd($player->player_extend->withdraw_amount, $playerWithdrawRecord->coins, 2); + $player->push(); + //寫入金流明細 + $playerDeliveryRecord = new PlayerDeliveryRecord; + $playerDeliveryRecord->player_id = $playerWithdrawRecord->player_id; + $playerDeliveryRecord->department_id = $playerWithdrawRecord->department_id; + $playerDeliveryRecord->target = $playerWithdrawRecord->getTable(); + $playerDeliveryRecord->target_id = $playerWithdrawRecord->id; + $playerDeliveryRecord->type = PlayerDeliveryRecord::TYPE_WITHDRAWAL; + $playerDeliveryRecord->source = 'artificial_withdrawal'; + $playerDeliveryRecord->amount = $playerWithdrawRecord->coins; + $playerDeliveryRecord->amount_before = $beforeGameAmount; + $playerDeliveryRecord->amount_after = $player->wallet->money; + $playerDeliveryRecord->tradeno = $playerWithdrawRecord->tradeno ?? ''; + $playerDeliveryRecord->remark = $playerWithdrawRecord->remark ?? ''; + $playerDeliveryRecord->save(); + DB::commit(); + } catch (\Exception $e) { + DB::rollBack(); + return message_error(admin_trans('player.artificial_withdrawal_error')); + } + return message_success(admin_trans('player.artificial_withdrawal_success')); + }); + }); + } + + /** + * 人工充值 + * @auth true + * @param $data + * @return Form + */ + public function artificialRecharge($data): Form + { + return Form::create(new $this->model, function (Form $form) use ($data) { + $form->number('coins', admin_trans('player_recharge_record.fields.coins')) + ->min(0) + ->max(100000000) + ->precision(2) + ->style(['width' => '100%']) + ->addonBefore(admin_trans('player.wallet.wallet') . ' ' . $data['money'] ?? 0) + ->required(); + $form->number('money', admin_trans('player_recharge_record.fields.money')) + ->min(0) + ->max(100000000) + ->precision(2) + ->style(['width' => '100%']); + $form->text('currency', admin_trans('player_recharge_record.fields.currency'))->maxlength(10); + $form->textarea('remark', admin_trans('player_recharge_record.fields.remark'))->maxlength(255)->bindAttr('rows', 4); + $form->layout('vertical'); + $form->hidden('id')->value($data['id']); + $form->saving(function (Form $form) { + /** @var Player $player */ + $player = Player::where('id', $form->input('id'))->whereNull('deleted_at')->first(); + if (empty($player)) { + return message_error(admin_trans('player.not_fount')); + } + if ($player->status == 0) { + return message_error(admin_trans('player.disable')); + } + DB::beginTransaction(); + try { + $beforeGameAmount = $player->wallet->money; + // 生成订单 + $playerRechargeRecord = new PlayerRechargeRecord(); + $playerRechargeRecord->player_id = $player->id; + $playerRechargeRecord->department_id = $player->department_id; + $playerRechargeRecord->tradeno = createOrderNo(); + $playerRechargeRecord->player_name = $player->name ?? ''; + $playerRechargeRecord->money = $form->input('money') ?? 0; + $playerRechargeRecord->inmoney = $form->input('money') ?? 0; + $playerRechargeRecord->currency = $form->input('currency') ?? ''; + $playerRechargeRecord->type = PlayerRechargeRecord::TYPE_ARTIFICIAL; + $playerRechargeRecord->coins = $form->input('coins'); + $playerRechargeRecord->status = PlayerRechargeRecord::STATUS_RECHARGED_SUCCESS; + $playerRechargeRecord->remark = $form->input('remark'); + $playerRechargeRecord->finish_time = date('Y-m-d H:i:s'); + $playerRechargeRecord->user_id = Admin::id() ?? 0; + $playerRechargeRecord->user_name = !empty(Admin::user()) ? Admin::user()->toArray()['username'] : ''; + $playerRechargeRecord->save(); + $player->wallet->money = bcadd($player->wallet->money, $playerRechargeRecord->coins, 2); + $player->player_extend->recharge_amount = bcadd($player->player_extend->recharge_amount, $playerRechargeRecord->coins, 2); + $player->push(); + + //寫入金流明細 + $playerDeliveryRecord = new PlayerDeliveryRecord; + $playerDeliveryRecord->player_id = $playerRechargeRecord->player_id; + $playerDeliveryRecord->department_id = $playerRechargeRecord->department_id; + $playerDeliveryRecord->target = $playerRechargeRecord->getTable(); + $playerDeliveryRecord->target_id = $playerRechargeRecord->id; + $playerDeliveryRecord->type = PlayerDeliveryRecord::TYPE_RECHARGE; + $playerDeliveryRecord->source = 'artificial_recharge'; + $playerDeliveryRecord->amount = $playerRechargeRecord->coins; + $playerDeliveryRecord->amount_before = $beforeGameAmount; + $playerDeliveryRecord->amount_after = $player->wallet->money; + $playerDeliveryRecord->tradeno = $playerRechargeRecord->tradeno ?? ''; + $playerDeliveryRecord->remark = $playerRechargeRecord->remark ?? ''; + $playerDeliveryRecord->save(); + + DB::commit(); + } catch (\Exception $e) { + DB::rollBack(); + return message_error(admin_trans('player.artificial_recharge_error')); + } + return message_success(admin_trans('player.artificial_recharge_success')); + }); + }); + } + + + /** + * 处理标签 + * @param array $value + * @return Html + */ + public function handleTagIds(array $value): Html + { + $options = $this->getPlayerTagOptions($value); + $html = Html::create(); + foreach ($options as $option) { + $html->content( + Tag::create($option) + ->color('success') + ); + } + return $html; + } + + /** + * 获取玩家标签选项(筛选id) + * @param array $ids + * @return array + */ + public function getPlayerTagOptions(array $ids = []): array + { + $idsStr = json_encode($ids); + $cacheKey = md5("player_tag_options_ids_$idsStr"); + if (Cache::has($cacheKey)) { + return Cache::get($cacheKey); + } else { + if (!empty($ids)) { + $data = (new PlayerTag())->whereIn('id', $ids)->select(['name', 'id'])->get()->toArray(); + $data = $data ? array_column($data, 'name', 'id') : []; + Cache::set($cacheKey, $data, 24 * 60 * 60); + + return $data; + } + return []; + } + } + + /** + * 获取玩家标签(筛选id) + * @return array + */ + public function getPlayerTagOptionsFilter(): array + { + $cacheKey = "doc_player_tag_options_filter"; + if (Cache::has($cacheKey)) { + return Cache::get($cacheKey); + } else { + $data = (new PlayerTag())->select(['name', 'id'])->get()->toArray(); + $data = $data ? array_column($data, 'name', 'id') : []; + Cache::set($cacheKey, $data, 24 * 60 * 60); + + return $data; + } + } + + /** + * 玩家标签修改保存 + * @return Form + */ + public function playerTagForm(): Form + { + return Form::create(new $this->playerTag, function (Form $form) { + $form->text('name', '名称'); + $form->saving(function (Form $form) { + if ($form->isEdit()) { + $id = $form->driver()->get('id'); + /** @var PlayerTag $tag */ + $tag = PlayerTag::find($id); + $tag->name = $form->input('name'); + $tag->save(); + } else { + $tag = new PlayerTag(); + $tag->name = $form->input('name'); + $tag->save(); + } + return message_success(admin_trans('form.save_success'))->refreshMenu(); + }); + }); + } + + /** + * 玩家信息 + * @auth true + * @return Form + */ + public function form(): Form + { + $options = []; + foreach (config('def_avatar') as $key => $item) { + $options[$key] = Avatar::create()->style(['padding' => '1px'])->src($item)->shape('square'); + } + return Form::create(new $this->model(), function (Form $form) use ($options) { + if ($form->isEdit()) { + $form->title(admin_trans('player.details')); + $form->row(function (Form $form) use ($options) { + $form->column(function (Form $form) use ($options) { + $form->text('phone', admin_trans('player.fields.phone'))->maxlength(50)->ruleNumber()->disabled(true); + $form->text('name', admin_trans('player.fields.name'))->maxlength(50); + $form->radio('avatar_type', admin_trans('player.avatar_type')) + ->button() + ->default(is_numeric($form->driver()->get('avatar')) ? 2 : 1) + ->options([ + 1 => admin_trans('player.upload_avatar'), + 2 => admin_trans('player.def_avatar') + ]) + ->when(1, function (Form $form) { + $form->image('avatar', admin_trans('player.fields.avatar'))->value(is_numeric($form->driver()->get('avatar')) ? '' : $form->driver()->get('avatar'))->ext('jpg,png,jpeg')->fileSize('1m'); + })->when(2, function (Form $form) use ($options) { + $form->radio('def_avatar', admin_trans('player.def_avatar')) + ->default(1) + ->options($options); + }); + $form->text('player_extend.id_number', admin_trans('player_extend.fields.id_number'))->ruleAlphaNum()->maxlength(20); + $form->desc('the_last_player_login_record.created_at', admin_trans('player.fields.login_at'))->value($form->input('the_last_player_login_record.created_at') ? date('Y-m-d H:i:s', strtotime($form->input('the_last_player_login_record.created_at'))) : ''); + $form->desc('created_at', admin_trans('player.fields.created_at'))->value($form->input('created_at') ? date('Y-m-d H:i:s', strtotime($form->input('created_at'))) : ''); + $form->desc('player_register_record.ip', admin_trans('player.fields.register_ip')); + $form->desc('player_register_record.register_domain', admin_trans('player.fields.register_domain')); + })->span(12); + + $form->column(function (Form $form) { + $form->text('player_extend.address', admin_trans('player_extend.fields.address'))->maxlength(255); + $form->date('player_extend.birthday', admin_trans('player_extend.fields.birthday')); + $form->text('player_extend.email', admin_trans('player_extend.fields.email'))->ruleEmail()->maxlength(20); + $form->text('player_extend.line', admin_trans('player_extend.fields.line'))->ruleAlphaNum()->maxlength(20); + $form->textarea('player_extend.remark', admin_trans('player_extend.fields.remark')) + ->showCount() + ->rule(['max:255' => admin_trans('player_extend.fields.remark')]); + $playerBank = PlayerBank::query()->where('player_id', $form->driver()->get('id'))->get()->toArray(); + foreach ($playerBank as $key => $item) { + $form->row(function (Form $form) use ($item, $key) { + $form->text('bank_name'.$key, admin_trans('player.bank_name')) + ->value($item['bank_name'] ?? 0) + ->disabled(true); + $form->text('account_name'.$key, admin_trans('player.account_name')) + ->value($item['account_name'] ?? 0) + ->disabled(true); + $form->text('account'.$key, admin_trans('player.account')) + ->value($item['account'] ?? 0) + ->disabled(true); + }); + } + })->span(12); + }); + } else { + $form->title(admin_trans('player.add_player')); + $form->text('phone', admin_trans('player.fields.phone'))->maxlength(50)->ruleAlphaNum()->required(); + $form->radio('avatar_type', admin_trans('player.avatar_type')) + ->button() + ->default(2) + ->options([ + 1 => admin_trans('player.upload_avatar'), + 2 => admin_trans('player.def_avatar') + ]) + ->when(1, function (Form $form) { + $form->image('avatar', admin_trans('player.fields.avatar'))->ext('jpg,png,jpeg')->fileSize('1m'); + })->when(2, function (Form $form) use ($options) { + $form->radio('def_avatar', admin_trans('player.def_avatar')) + ->default(1) + ->options($options); + }); + $form->select('country_code', admin_trans('player.fields.country_code'))->options([ + PhoneSmsLog::COUNTRY_CODE_MY => PhoneSmsLog::COUNTRY_CODE_MY, + ])->required(); + $form->select('department_id', admin_trans('player.fields.department_id'))->remoteOptions(admin_url(['addons-webman-controller-ChannelController', 'getDepartmentOptions']))->required(); + $form->text('name', admin_trans('player.fields.name'))->maxlength(50)->required(); + $form->password('password', admin_trans('player.new_password')) + ->rule([ + 'confirmed' => admin_trans('player.password_confim_validate'), + 'min:6' => admin_trans('player.password_min_number') + ]) + ->value('') + ->required(); + $form->password('password_confirmation', admin_trans('player.confim_password')) + ->required(); + } + $form->saved(function () { + return message_success(admin_trans('player.save_player_info_success')); + }); + $form->saving(function (Form $form) { + if ($form->isEdit()) { + $orgData = $form->driver()->get(); + /** @var Player $player */ + $player = Player::find($orgData['id']); + if (empty($player)) { + return message_error(admin_trans('player.not_fount')); + } + DB::beginTransaction(); + try { + $player->name = $form->input('name'); + $player->avatar = $form->input('avatar_type') == 1 ? $form->input('avatar') : $form->input('def_avatar'); + $player->save(); + PlayerExtend::query()->updateOrCreate(['player_id' => $orgData['id']], [ + 'address' => $form->input('player_extend.address'), + 'birthday' => $form->input('player_extend.birthday'), + 'id_number' => $form->input('player_extend.id_number'), + 'email' => $form->input('player_extend.email'), + 'line' => $form->input('player_extend.line'), + 'remark' => $form->input('player_extend.remark'), + 'player_id' => $orgData['id']]); + DB::commit(); + } catch (\Exception $e) { + DB::rollBack(); + return message_error($e->getMessage()); + } + return message_success(admin_trans('player.save_player_info_success')); + } else { + $phone = $form->input('phone'); + $password = $form->input('password'); + $country_code = $form->input('country_code'); + /** @var $player Player */ + $player = Player::query()->where('phone', $country_code.$phone)->first(); + if (!empty($player)) { + return message_error(admin_trans('player.phone_has_register')); + } + /** @var Channel $channel */ + $channel = Channel::where('department_id', $form->input('department_id'))->first(); + if (empty($channel)) { + return jsonFailResponse(trans('channel_not_found', [], 'message')); + } + DB::beginTransaction(); + try { + $player = new Player(); + $player->phone = $country_code.$phone; + $player->name = $form->input('name'); + if ($form->input('avatar_type') == 1) { + $player->avatar = $form->input('avatar') ?? config('def_avatar.1'); + } + if ($form->input('avatar_type') == 2) { + $player->avatar = $form->input('def_avatar') ?? config('def_avatar.1'); + } + $player->country_code = $country_code; + $player->type = Player::TYPE_PLAYER; + $player->currency = $channel->currency; + $player->department_id = $channel->department_id; + $player->password = $password; + $player->uuid = gen_uuid(); + $player->recommend_code = createCode(); + $player->save(); + + addPlayerExtend($player, [ + 'email' => $data['email'] ?? '' + ]); + addRegisterRecord($player->id, PlayerRegisterRecord::TYPE_ADMIN, $player->department_id); + + DB::commit(); + } catch (\Exception $e) { + DB::rollBack(); + return message_error($e->getMessage()); + } + return message_success(admin_trans('player.save_player_info_success')); + } + }); + }); + } + + /** + * 重置密码 + * @auth true + * @param $id + * @return Form + */ + public function resetPassword($id): Form + { + return Form::create(new $this->model, function (Form $form) { + $form->password('password', admin_trans('player.new_password')) + ->rule([ + 'confirmed' => admin_trans('player.password_confim_validate'), + 'min:6' => admin_trans('player.password_min_number') + ]) + ->value('') + ->required(); + $form->password('password_confirmation', admin_trans('player.confim_password')) + ->required(); + }); + } + + /** + * 玩家钱包 + * @auth true + * @param $data + * @return Form + */ + public function playerWallet($data): Form + { + return Form::create(new $this->model, function (Form $form) use ($data) { + $form->hidden('id')->default($data['id']); + $form->row(function (Form $form) { + $type = $form->getBindField('type'); + $form->radio('type', admin_trans('player.wallet.type')) + ->button() + ->disabled($form->isEdit()) + ->default(PlayerMoneyEditLog::TYPE_INCREASE) + ->options([ + admin_trans('player.wallet.deduct'), + admin_trans('player.wallet.increase'), + ])->required()->span(7); + $form->hidden('type')->bindAttr('value', $type) + ->when(PlayerMoneyEditLog::TYPE_DEDUCT, function (Form $form) { + $form->select('deduct_action', admin_trans('player.wallet.action')) + ->remoteOptions(admin_url([$this, 'getTranOptions'], ['type' => PlayerMoneyEditLog::TYPE_DEDUCT])) + ->required()->span(16)->style(['margin-left' => '22px']); + })->when(PlayerMoneyEditLog::TYPE_INCREASE, function (Form $form) { + $form->select('increase_action', admin_trans('player.wallet.action')) + ->remoteOptions(admin_url([$this, 'getTranOptions'], ['type' => PlayerMoneyEditLog::TYPE_INCREASE])) + ->required()->span(16)->style(['margin-left' => '22px']); + }); + }); + $form->number('money', admin_trans('player.wallet.money'))->min(0)->max(100000000)->precision(2)->style(['width' => '100%'])->addonBefore(admin_trans('player.wallet.wallet') . ' ' . $data['money'] ?? 0)->required(); + $form->textarea('remark', admin_trans('player.wallet.textarea'))->maxlength(255)->bindAttr('rows', 4)->required(); + $form->actions()->hideResetButton(); + $form->saving(function (Form $form) use ($data) { + return $this->store([ + 'id' => $form->input('id'), + 'type' => $form->input('type'), + 'deduct_action' => $form->input('deduct_action'), + 'increase_action' => $form->input('increase_action'), + 'money' => $form->input('money'), + 'remark' => $form->input('remark'), + ]); + }); + $form->layout('vertical'); + }); + } + + /** + * 钱包操作 + * @param $data + * @return Msg + */ + public function store($data): Msg + { + try { + DB::beginTransaction(); + playerManualSystem($data); + DB::commit(); + } catch (\Exception $e) { + DB::rollBack(); + return message_error(admin_trans('player.wallet.wallet_operation_failed')); + } + + return message_success(admin_trans('player.wallet.wallet_operation_success')); + } + + + /** + * 钱包操作类型 + * @param $type + * @return mixed + */ + public function getTranOptions($type) + { + $options = []; + if ($type == PlayerMoneyEditLog::TYPE_INCREASE) { + $transactionType = [ + PlayerMoneyEditLog::ACTIVITY_GIVE, + PlayerMoneyEditLog::ADMIN_INCREASE, + PlayerMoneyEditLog::OTHER + ]; + } else { + $transactionType = [ + PlayerMoneyEditLog::ADMIN_DEDUCT, + PlayerMoneyEditLog::OTHER + ]; + } + + foreach ($transactionType as $item) { + $options[] = [ + 'value' => $item, + 'label' => admin_trans('player.wallet.wallet_type.' . $item), + ]; + } + + return Response::success($options); + } + + /** + * 玩家记录 + * @param $id + * @auth true + * @return Card + */ + public function playerRecord($id): Card + { + $tabs = Tabs::create() + ->pane(admin_trans('player.player_recharge_record'), $this->rechargeRecord($id)) + ->pane(admin_trans('player.player_withdraw_record'), $this->withdrawalRecords($id)) + ->pane(admin_trans('player.player_delivery_record'), $this->playerDeliveryRecord($id)); + + return Card::create($tabs); + } + + /** + * 提现记录 + * @param $id + * @return Grid + */ + public function withdrawalRecords($id): Grid + { + return Grid::create(new $this->withdraw(), function (Grid $grid) use ($id) { + $grid->title(admin_trans('player_withdraw_record.title')); + $grid->model()->with(['channel'])->where('player_id', $id)->where('status', PlayerWithdrawRecord::STATUS_SUCCESS)->orderBy('created_at', 'desc'); + $exAdminFilter = Request::input('ex_admin_filter', []); + if (!empty($exAdminFilter)) { + if (isset($exAdminFilter['created_at_start']) && !empty($exAdminFilter['created_at_start'])) { + $grid->model()->where('created_at', '>=', $exAdminFilter['created_at_start']); + } + if (isset($exAdminFilter['created_at_end']) && !empty($exAdminFilter['created_at_end'])) { + $grid->model()->where('created_at', '<=', $exAdminFilter['created_at_end']); + } + if (isset($exAdminFilter['finish_time_start']) && !empty($exAdminFilter['finish_time_start'])) { + $grid->model()->where('finish_time', '>=', $exAdminFilter['finish_time_start']); + } + if (isset($exAdminFilter['finish_time_end']) && !empty($exAdminFilter['finish_time_end'])) { + $grid->model()->where('finish_time', '<=', $exAdminFilter['finish_time_end']); + } + } + $grid->bordered(); + $grid->autoHeight(); + $grid->column('id', admin_trans('player_withdraw_record.fields.id'))->align('center'); + $grid->column('player_phone', admin_trans('player_withdraw_record.fields.player_phone'))->display(function ($val, PlayerWithdrawRecord $data) { + $image = (isset($data->player->avatar) && !empty($data->player->avatar)) ? Avatar::create()->src($data->player->avatar) : Avatar::create()->icon(Icon::create('UserOutlined')); + return Html::create()->content([ + $image, + Html::div()->content($val) + ]); + })->align('center'); + $grid->column('tradeno', admin_trans('player_withdraw_record.fields.tradeno'))->copy()->align('center'); + $grid->column('money', admin_trans('player_withdraw_record.fields.money'))->display(function ($val, PlayerWithdrawRecord $data) { + return $val . ' ' . ($data->currency == 'TALK' ? 'Q币' : $data->currency); + })->align('center'); + $grid->column('coins', admin_trans('player_withdraw_record.fields.coins'))->align('center'); + $grid->column(function (Grid $grid) { + $grid->column('bank_name', admin_trans('player_withdraw_record.fields.bank_name'))->copy()->align('center'); + $grid->column('account_name', admin_trans('player_withdraw_record.fields.account_name'))->copy()->align('center'); + $grid->column('account', admin_trans('player_withdraw_record.fields.account'))->copy()->align('center'); + }, admin_trans('player_withdraw_record.player_bank')); + $grid->column('type', admin_trans('player_withdraw_record.fields.type'))->display(function ($val) { + switch ($val) { + case PlayerWithdrawRecord::TYPE_SELF: + return Tag::create(admin_trans('player_withdraw_record.type.' . $val)) + ->color('#3b5999'); + case PlayerWithdrawRecord::TYPE_ARTIFICIAL: + return Tag::create(admin_trans('player_withdraw_record.type.' . $val)) + ->color('#cd201f'); + default: + return ''; + } + })->align('center'); + $grid->column('status', admin_trans('player_withdraw_record.fields.status')) + ->display(function () { + return Tag::create(admin_trans('player_withdraw_record.status.' . PlayerWithdrawRecord::STATUS_SUCCESS))->color('#87d068'); + })->align('center')->sortable(); + $grid->column('channel.name', admin_trans('player_withdraw_record.fields.department_id'))->align('center'); + $grid->column('finish_time', admin_trans('player_withdraw_record.fields.finish_time'))->sortable()->align('center'); + $grid->column('created_at', admin_trans('player_withdraw_record.fields.created_at'))->sortable()->align('center'); + $grid->hideDelete(); + $grid->hideSelection(); + $grid->actions(function (Actions $actions) { + $actions->hideDel(); + $actions->hideEdit(); + }); + $grid->filter(function (Filter $filter) { + $filter->like()->text('tradeno')->placeholder(admin_trans('player_withdraw_record.fields.tradeno')); + $filter->form()->hidden('created_at_start'); + $filter->form()->hidden('created_at_end'); + $filter->form()->dateTimeRange('created_at_start', 'created_at_end', '')->placeholder([admin_trans('public_msg.created_at_start'), admin_trans('public_msg.created_at_end')]); + $filter->form()->hidden('finish_time_start'); + $filter->form()->hidden('finish_time_end'); + $filter->form()->dateTimeRange('finish_time_start', 'finish_time_end', '')->placeholder([admin_trans('player_withdraw_record.fields.finish_time'), admin_trans('player_withdraw_record.fields.finish_time')]); + }); + $grid->quickSearch(); + }); + } + + /** + * 钱包操作 + * @param $id + * @return Grid + */ + public function playerDeliveryRecord($id): Grid + { + return Grid::create(new $this->playerDeliveryRecord, function (Grid $grid) use ($id) { + $lang = Container::getInstance()->translator->getLocale(); + $grid->title(admin_trans('promoter_profit_record.player_activity_phase_record_title')); + $grid->model() + ->where('player_id', $id) + ->whereIn('type', [ + PlayerDeliveryRecord::TYPE_MODIFIED_AMOUNT_ADD, + PlayerDeliveryRecord::TYPE_MODIFIED_AMOUNT_DEDUCT, + ]) + ->orderBy('id', 'desc'); + $exAdminFilter = Request::input('ex_admin_filter', []); + if (!empty($exAdminFilter)) { + if (isset($exAdminFilter['created_at_start']) && !empty($exAdminFilter['created_at_start'])) { + $grid->model()->where('created_at', '>=', $exAdminFilter['created_at_start']); + } + if (isset($exAdminFilter['created_at_end']) && !empty($exAdminFilter['created_at_end'])) { + $grid->model()->where('created_at', '<=', $exAdminFilter['created_at_end']); + } + } + $grid->autoHeight(); + $grid->bordered(true); + $grid->column('id', admin_trans('player_delivery_record.fields.id'))->align('center'); + $grid->column('source', admin_trans('player_delivery_record.fields.source'))->display(function ($val, PlayerDeliveryRecord $data) use ($lang) { + switch ($data->type) { + case PlayerDeliveryRecord::TYPE_MODIFIED_AMOUNT_ADD: + case PlayerDeliveryRecord::TYPE_MODIFIED_AMOUNT_DEDUCT: + return Tag::create(trans($val, [], 'message', $lang))->color('red'); + default: + return ''; + } + })->align('center'); + $grid->column('type', admin_trans('player_delivery_record.fields.type')) + ->display(function ($value) { + switch ($value) { + case PlayerDeliveryRecord::TYPE_MODIFIED_AMOUNT_ADD: + $tag = Tag::create(admin_trans('player_delivery_record.type.' . PlayerDeliveryRecord::TYPE_MODIFIED_AMOUNT_ADD))->color('#2db7f5'); + break; + case PlayerDeliveryRecord::TYPE_MODIFIED_AMOUNT_DEDUCT: + $tag = Tag::create(admin_trans('player_delivery_record.type.' . PlayerDeliveryRecord::TYPE_MODIFIED_AMOUNT_DEDUCT))->color('#108ee9'); + break; + default: + $tag = ''; + } + return Html::create()->content([ + $tag + ]); + })->align('center')->sortable(); + $grid->column('amount', admin_trans('player_delivery_record.fields.amount'))->display(function ($val, PlayerDeliveryRecord $data) { + if ($data->amount == 0) { + return Html::create()->content([$val])->style(['color' => 'green']); + } + switch ($data->type) { + case PlayerDeliveryRecord::TYPE_MODIFIED_AMOUNT_DEDUCT: + return Html::create()->content(['-' . $val])->style(['color' => '#cd201f']); + default: + return Html::create()->content(['+' . $val])->style(['color' => 'green']); + } + })->align('center'); + $grid->column('user_name', admin_trans('player_delivery_record.fields.user_name'))->display(function ($val, PlayerDeliveryRecord $data) { + $name = '--'; + if (in_array($data->type, [PlayerDeliveryRecord::TYPE_MODIFIED_AMOUNT_ADD, PlayerDeliveryRecord::TYPE_MODIFIED_AMOUNT_DEDUCT])) { + $name = $data->user_name ?? '管理员'; + } + return Html::create()->content([ + Html::div()->content($name), + ]); + }); + $grid->column('created_at', admin_trans('player_delivery_record.fields.created_at'))->align('center')->ellipsis(true); + $grid->hideDelete(); + $grid->hideSelection(); + $grid->hideTrashed(); + $grid->actions(function (Actions $actions) { + $actions->hideDel(); + }); + $grid->filter(function (Filter $filter) { + $filter->eq()->select('type') + ->placeholder(admin_trans('player_delivery_record.fields.type')) + ->showSearch() + ->style(['width' => '200px']) + ->dropdownMatchSelectWidth() + ->options([ + PlayerDeliveryRecord::TYPE_MODIFIED_AMOUNT_ADD => admin_trans('player_delivery_record.type.' . PlayerDeliveryRecord::TYPE_MODIFIED_AMOUNT_ADD), + PlayerDeliveryRecord::TYPE_MODIFIED_AMOUNT_DEDUCT => admin_trans('player_delivery_record.type.' . PlayerDeliveryRecord::TYPE_MODIFIED_AMOUNT_DEDUCT), + ]); + $filter->form()->hidden('created_at_start'); + $filter->form()->hidden('created_at_end'); + $filter->form()->dateTimeRange('created_at_start', 'created_at_end', '')->placeholder([admin_trans('public_msg.created_at_start'), admin_trans('public_msg.created_at_end')]); + }); + }); + } + + /** + * 充值记录 + * @param $id + * @return Grid + */ + public function rechargeRecord($id): Grid + { + return Grid::create(new $this->recharge(), function (Grid $grid) use ($id) { + $grid->title(admin_trans('player_recharge_record.title')); + $grid->bordered(); + $grid->autoHeight(); + $grid->model()->with(['channel', 'channel_recharge_setting'])->where('player_id', $id)->where('status', PlayerRechargeRecord::STATUS_RECHARGED_SUCCESS)->orderBy('created_at', 'desc'); + $grid->column('id', admin_trans('player_recharge_record.fields.id'))->align('center'); + $grid->column('player_phone', admin_trans('player_recharge_record.fields.player_phone'))->display(function ($val, PlayerRechargeRecord $data) { + $image = (isset($data->player->avatar) && !empty($data->player->avatar)) ? Avatar::create()->src($data->player->avatar) : Avatar::create()->icon(Icon::create('UserOutlined')); + return Html::create()->content([ + $image, + Html::div()->content($val) + ]); + })->align('center'); + $grid->column('tradeno', admin_trans('player_recharge_record.fields.tradeno'))->copy()->align('center'); + $grid->column('channel.name', admin_trans('player_recharge_record.fields.department_id'))->align('center'); + $grid->column('type', admin_trans('player_recharge_record.fields.type'))->display(function ($val) { + switch ($val) { + case PlayerRechargeRecord::TYPE_ACTIVITY: + return Tag::create(admin_trans('player_recharge_record.type.' . $val)) + ->color('#55acee'); + case PlayerRechargeRecord::TYPE_REGULAR: + return Tag::create(admin_trans('player_recharge_record.type.' . $val)) + ->color('#3b5999'); + case PlayerRechargeRecord::TYPE_ARTIFICIAL: + return Tag::create(admin_trans('player_recharge_record.type.' . $val)) + ->color('#cd201f'); + default: + return ''; + } + })->align('center'); + $grid->column('money', admin_trans('player_recharge_record.fields.money'))->display(function ($val, PlayerRechargeRecord $data) { + return $val . ' ' . ($data->currency == 'TALK' ? 'Q币' : $data->currency); + })->align('center'); + $grid->column('coins', admin_trans('player_recharge_record.fields.coins'))->align('center'); + $grid->column(function (Grid $grid) { + $grid->column('bank_name', admin_trans('channel_recharge_method.fields.bank_name'))->copy()->align('center'); + $grid->column('sub_bank', admin_trans('channel_recharge_method.fields.sub_bank'))->copy()->align('center'); + $grid->column('owner', admin_trans('channel_recharge_method.fields.owner'))->copy()->align('center'); + $grid->column('account', admin_trans('channel_recharge_method.fields.account'))->copy()->align('center'); + }, admin_trans('channel_recharge_setting.recharge_setting_info')); + $grid->column('status', admin_trans('player_recharge_record.fields.status'))->display(function () { + return Tag::create(admin_trans('player_recharge_record.status_success'))->color('#87d068'); + })->align('center'); + $grid->column('finish_time', admin_trans('player_recharge_record.fields.finish_time'))->sortable()->align('center'); + $grid->column('created_at', admin_trans('player_recharge_record.fields.created_at'))->sortable()->align('center'); + $grid->hideDelete(); + $grid->hideSelection(); + $grid->actions(function (Actions $actions) { + $actions->hideDel(); + $actions->hideEdit(); + }); + $grid->filter(function (Filter $filter) { + $filter->eq()->select('type') + ->showSearch() + ->style(['width' => '200px']) + ->dropdownMatchSelectWidth() + ->placeholder(admin_trans('player_recharge_record.fields.type')) + ->options([ + PlayerRechargeRecord::TYPE_REGULAR => admin_trans('player_recharge_record.type.' . PlayerRechargeRecord::TYPE_REGULAR), + PlayerRechargeRecord::TYPE_ACTIVITY => admin_trans('player_recharge_record.type.' . PlayerRechargeRecord::TYPE_ACTIVITY), + PlayerRechargeRecord::TYPE_ARTIFICIAL => admin_trans('player_recharge_record.type.' . PlayerRechargeRecord::TYPE_ARTIFICIAL), + ]); + $filter->like()->text('tradeno')->placeholder(admin_trans('player_recharge_record.fields.tradeno')); + $filter->between()->dateTimeRange('created_at')->placeholder([admin_trans('player_recharge_record.fields.created_at'), admin_trans('player_recharge_record.fields.created_at')]); + $filter->between()->dateTimeRange('finish_time')->placeholder([admin_trans('player_recharge_record.fields.finish_time'), admin_trans('player_recharge_record.fields.finish_time')]); + + }); + $grid->quickSearch(); + }); + } + + + /** + * 打码量记录 + * @param $id + * @return Grid + */ + public function playerChipRecord($id): Grid + { + return Grid::create(new $this->playerChipRecord(), function (Grid $grid) use ($id) { + $grid->title(admin_trans('player_chip_record.title')); + $grid->bordered(); + $grid->autoHeight(); + $grid->model()->with(['channel', 'player']) + ->where('player_id', $id) + ->orderBy('created_at', 'desc'); + $exAdminFilter = Request::input('ex_admin_filter', []); + $query = clone $grid->model(); + $totalData = $query->where(function ($query) use($exAdminFilter) { + if(!empty($exAdminFilter['created_at'])) { + $query->whereBetween('created_at', $exAdminFilter['created_at']); + } + })->sum('chip_amount'); + $layout = Layout::create(); + $layout->row(function (Row $row) use ($totalData) { + $row->gutter([10, 0]); + $row->column( + Card::create([ + Row::create()->column(Statistic::create()->value($totalData) + ->prefix(admin_trans('player_chip_record.fields.chip_amount')) + ->valueStyle([ + 'font-size' => '14px', + 'font-weight' => '500', + 'text-align' => 'center' + ])), + ])->bodyStyle([ + 'display' => 'flex', + 'align-items' => 'center', + 'height' => '30px', + 'padding' => '0px' + ])->hoverable()->headStyle(['height' => '0px', 'border-bottom' => '0px', 'min-height' => '0px']) + , 4); + })->style(['background' => '#fff']); + $grid->tools([ + $layout + ]); + $grid->column('id', admin_trans('player_chip_record.fields.id'))->align('center'); + $grid->column('channel.name', admin_trans('channel.fields.name'))->align('center'); + $grid->column('chip_amount', admin_trans('player_chip_record.fields.chip_amount'))->display(function ($val, PlayerChipRecord $data) { + if ($val == 0) { + return Html::create()->content(['+' . $val])->style(['color' => 'green']); + } + switch ($data->type) { + case PlayerChipRecord::TYPE_DEC: + return Html::create()->content(['-' . $val])->style(['color' => '#cd201f']); + default: + return Html::create()->content(['+' . $val])->style(['color' => 'green']); + } + })->align('center'); + $grid->column('must_chip_amount', admin_trans('player_chip_record.fields.must_chip_amount'))->display(function ($val, PlayerChipRecord $data) { + if ($val == 0) { + return Html::create()->content(['+' . $val])->style(['color' => 'green']); + } + switch ($data->type) { + case PlayerChipRecord::TYPE_DEC: + return Html::create()->content(['-' . $val])->style(['color' => '#cd201f']); + default: + return Html::create()->content(['+' . $val])->style(['color' => 'green']); + } + })->align('center'); + $grid->column('record_type', admin_trans('player_chip_record.fields.record_type'))->display(function ($val) { + switch ($val) { + case PlayerChipRecord::RECORD_TYPE_SIGN: + case PlayerChipRecord::RECORD_TYPE_RECHARGE: + case PlayerChipRecord::RECORD_TYPE_FIRST_RECHARGE_REWARD: + $tag = Tag::create(admin_trans('player_chip_record.record_type.' . $val)) + ->color('#55acee'); + break; + case PlayerChipRecord::RECORD_TYPE_ACTIVITY: + case PlayerChipRecord::RECORD_TYPE_GAME: + case PlayerChipRecord::RECORD_TYPE_BET_REBATE: + $tag = Tag::create(admin_trans('player_chip_record.record_type.' . $val)) + ->color('#3b5999'); + break; + case PlayerChipRecord::RECORD_TYPE_COMMISSION: + case PlayerChipRecord::RECORD_TYPE_BANKRUPTCY: + $tag = Tag::create(admin_trans('player_chip_record.record_type.' . $val)) + ->color('#cd201f'); + break; + default: + return ''; + } + return Html::create()->content([ + $tag, + ]); + })->align('center'); + $grid->column('amount', admin_trans('player_chip_record.fields.amount'))->align('center'); + $grid->column('created_at', admin_trans('player_chip_record.fields.created_at'))->sortable()->align('center'); + $grid->hideDelete(); + $grid->hideSelection(); + $grid->actions(function (Actions $actions) { + $actions->hideDel(); + $actions->hideEdit(); + }); + $grid->filter(function (Filter $filter) { + $filter->eq()->select('record_type') + ->showSearch() + ->style(['width' => '200px']) + ->dropdownMatchSelectWidth() + ->placeholder(admin_trans('player_chip_record.fields.record_type')) + ->options([ + PlayerChipRecord::RECORD_TYPE_SIGN => admin_trans('player_chip_record.record_type.' . PlayerChipRecord::RECORD_TYPE_SIGN), + PlayerChipRecord::RECORD_TYPE_RECHARGE => admin_trans('player_chip_record.record_type.' . PlayerChipRecord::RECORD_TYPE_RECHARGE), + PlayerChipRecord::RECORD_TYPE_ACTIVITY => admin_trans('player_chip_record.record_type.' . PlayerChipRecord::RECORD_TYPE_ACTIVITY), + PlayerChipRecord::RECORD_TYPE_GAME => admin_trans('player_chip_record.record_type.' . PlayerChipRecord::RECORD_TYPE_GAME), + PlayerChipRecord::RECORD_TYPE_COMMISSION => admin_trans('player_chip_record.record_type.' . PlayerChipRecord::RECORD_TYPE_COMMISSION), + PlayerChipRecord::RECORD_TYPE_BANKRUPTCY => admin_trans('player_chip_record.record_type.' . PlayerChipRecord::RECORD_TYPE_BANKRUPTCY), + PlayerChipRecord::RECORD_TYPE_BET_REBATE => admin_trans('player_chip_record.record_type.' . PlayerChipRecord::RECORD_TYPE_BET_REBATE), + PlayerChipRecord::RECORD_TYPE_FIRST_RECHARGE_REWARD => admin_trans('player_chip_record.record_type.' . PlayerChipRecord::RECORD_TYPE_FIRST_RECHARGE_REWARD), + ]); + $filter->between()->dateTimeRange('created_at')->placeholder([admin_trans('player_chip_record.fields.created_at'), admin_trans('player_chip_record.fields.created_at')]); + + }); + $grid->quickSearch(); + }); + } + + /** + * 取消转账 + * @param $id + * @auth true + * @return Msg + */ + public function cancelTransfer($id): Msg + { + /** @var PlayerWalletTransfer $playerWalletTransfer */ + $playerWalletTransfer = PlayerWalletTransfer::query()->where('player_id', $id)->orderBy('id', 'desc')->first(); + /** @var Player $player */ + $player = Player::query()->find($id); + if (!empty($playerWalletTransfer) && $playerWalletTransfer->type == PlayerWalletTransfer::TYPE_OUT) { + $playerWalletTransferOut = new PlayerWalletTransfer(); + $playerWalletTransferOut->player_id = $player->id; + $playerWalletTransferOut->platform_id = $playerWalletTransfer->platform_id; + $playerWalletTransferOut->department_id = $player->department_id; + $playerWalletTransferOut->type = PlayerWalletTransfer::TYPE_IN; + $playerWalletTransferOut->amount = 0; + $playerWalletTransferOut->reward = 0; + $playerWalletTransferOut->platform_no = 'cancelTransfer'; + $playerWalletTransferOut->tradeno = createOrderNo(); + $playerWalletTransferOut->save(); + $playerDeliveryRecord = new PlayerDeliveryRecord; + $playerDeliveryRecord->type = PlayerDeliveryRecord::TYPE_CANCELTRANSFER; + //寫入金流明細 + $playerDeliveryRecord->player_id = $playerWalletTransferOut->player_id; + $playerDeliveryRecord->department_id = $playerWalletTransferOut->department_id; + $playerDeliveryRecord->target = $playerWalletTransferOut->getTable(); + $playerDeliveryRecord->target_id = $playerWalletTransferOut->id; + $playerDeliveryRecord->source = 'cancel_transfer'; + $playerDeliveryRecord->amount = $playerWalletTransferOut->amount; + $playerDeliveryRecord->amount_before = $player->wallet->money; + $playerDeliveryRecord->amount_after = $player->wallet->money; + $playerDeliveryRecord->tradeno = ''; + $playerDeliveryRecord->remark = '管理员取消转账,平台ID:' . $playerWalletTransfer->platform_id; + $playerDeliveryRecord->save(); + return message_success(admin_trans('player.action_success')); + } + return message_error(admin_trans('player.action_error')); + } +} diff --git a/addons/webman/controller/PlayerDeliveryRecordController.php b/addons/webman/controller/PlayerDeliveryRecordController.php new file mode 100644 index 0000000..488404b --- /dev/null +++ b/addons/webman/controller/PlayerDeliveryRecordController.php @@ -0,0 +1,204 @@ +model = plugin()->webman->config('database.player_delivery_record_model'); + } + + /** + * 玩家账变 + * @auth true + */ + public function index(): Grid + { + $lang = Container::getInstance()->translator->getLocale(); + return Grid::create(new $this->model(), function (Grid $grid) use ($lang) { + $grid->title(admin_trans('player_delivery_record.title')); + $grid->model()->with(['player'])->orderBy('created_at', 'desc'); + $exAdminFilter = Request::input('ex_admin_filter', []); + if (isset($exAdminFilter['created_at_start']) && !empty($exAdminFilter['created_at_start'])) { + $grid->model()->where('created_at', '>=', $exAdminFilter['created_at_start']); + } + if (isset($exAdminFilter['created_at_end']) && !empty($exAdminFilter['created_at_end'])) { + $grid->model()->where('created_at', '<=', $exAdminFilter['created_at_end']); + } + if (isset($exAdminFilter['search_source']) && !empty($exAdminFilter['search_source'])) { + $searchSource = $exAdminFilter['search_source']; + $grid->model()->where(function ($query) use ($searchSource) { + $query->where([ + ['source', 'like', '%' . $searchSource . '%', 'and'], + ]); + }); + } + $grid->autoHeight(); + $grid->column('player.uuid', admin_trans('player.fields.uuid'))->align('center'); + $grid->column('player.name', admin_trans('player.fields.name'))->display(function ($val, PlayerDeliveryRecord $data) { + $image = $data->player->avatar ? Avatar::create()->src(is_numeric($data->player->avatar) ? config('def_avatar.' . $data->player->avatar) : $data->player->avatar) : Avatar::create()->icon(Icon::create('UserOutlined')); + return Html::create()->content([ + $image, + Html::div()->content($data->player->name), + ]); + })->align('center')->filter( + FilterColumn::like()->text('player.phone') + ); + $grid->column('source', admin_trans('player_delivery_record.fields.source'))->display(function ($val, PlayerDeliveryRecord $data) use ($lang) { + switch ($data->type) { + case PlayerDeliveryRecord::TYPE_MODIFIED_AMOUNT_ADD: + case PlayerDeliveryRecord::TYPE_MODIFIED_AMOUNT_DEDUCT: + case PlayerDeliveryRecord::TYPE_RECHARGE: + case PlayerDeliveryRecord::TYPE_WITHDRAWAL: + case PlayerDeliveryRecord::TYPE_WITHDRAWAL_BACK: + return Tag::create(trans($val, [], 'message', $lang))->color('red'); + case PlayerDeliveryRecord::TYPE_REGISTER_PRESENT: + return Tag::create(trans($val, [], 'message', $lang))->color('blue'); + case PlayerDeliveryRecord::TYPE_COMMISSION: + case PlayerDeliveryRecord::TYPE_GAME_OUT: + return Tag::create(trans($val, [], 'message', $lang))->color('purple'); + case PlayerDeliveryRecord::TYPE_SIGN: + case PlayerDeliveryRecord::TYPE_GAME_IN: + case PlayerDeliveryRecord::TYPE_BET_REBATE: + case PlayerDeliveryRecord::TYPE_DAMAGE_REBATE: + case PlayerDeliveryRecord::TYPE_RECHARGE_REWARD: + case PlayerDeliveryRecord::TYPE_PROFIT: + return Tag::create(trans($val, [], 'message', $lang))->color('orange'); + default: + return ''; + } + })->align('center'); + $grid->column('type', admin_trans('player_delivery_record.fields.type')) + ->display(function ($value) { + switch ($value) { + case PlayerDeliveryRecord::TYPE_MODIFIED_AMOUNT_ADD: + $tag = Tag::create(admin_trans('player_delivery_record.type.' . PlayerDeliveryRecord::TYPE_MODIFIED_AMOUNT_ADD))->color('#2db7f5'); + break; + case PlayerDeliveryRecord::TYPE_RECHARGE: + $tag = Tag::create(admin_trans('player_delivery_record.type.' . PlayerDeliveryRecord::TYPE_RECHARGE))->color('#3C87C9'); + break; + case PlayerDeliveryRecord::TYPE_WITHDRAWAL: + $tag = Tag::create(admin_trans('player_delivery_record.type.' . PlayerDeliveryRecord::TYPE_WITHDRAWAL))->color('#C98341'); + break; + case PlayerDeliveryRecord::TYPE_MODIFIED_AMOUNT_DEDUCT: + $tag = Tag::create(admin_trans('player_delivery_record.type.' . PlayerDeliveryRecord::TYPE_MODIFIED_AMOUNT_DEDUCT))->color('#108ee9'); + break; + case PlayerDeliveryRecord::TYPE_WITHDRAWAL_BACK: + $tag = Tag::create(admin_trans('player_delivery_record.type.' . PlayerDeliveryRecord::TYPE_WITHDRAWAL_BACK))->color('#CC6600'); + break; + case PlayerDeliveryRecord::TYPE_COMMISSION: + $tag = Tag::create(admin_trans('player_delivery_record.type.' . PlayerDeliveryRecord::TYPE_COMMISSION))->color('#3C87C9'); + break; + case PlayerDeliveryRecord::TYPE_REGISTER_PRESENT: + $tag = Tag::create(admin_trans('player_delivery_record.type.' . PlayerDeliveryRecord::TYPE_REGISTER_PRESENT))->color('#3C87C9'); + break; + case PlayerDeliveryRecord::TYPE_SIGN: + $tag = Tag::create(admin_trans('player_delivery_record.type.' . PlayerDeliveryRecord::TYPE_SIGN))->color('#CC6600'); + break; + case PlayerDeliveryRecord::TYPE_GAME_IN: + $tag = Tag::create(admin_trans('player_delivery_record.type.' . PlayerDeliveryRecord::TYPE_GAME_IN))->color('#CC6600'); + break; + case PlayerDeliveryRecord::TYPE_GAME_OUT: + $tag = Tag::create(admin_trans('player_delivery_record.type.' . PlayerDeliveryRecord::TYPE_GAME_OUT))->color('#3C87C9'); + break; + case PlayerDeliveryRecord::TYPE_BET_REBATE: + $tag = Tag::create(admin_trans('player_delivery_record.type.' . PlayerDeliveryRecord::TYPE_BET_REBATE))->color('#C98341'); + break; + case PlayerDeliveryRecord::TYPE_DAMAGE_REBATE: + $tag = Tag::create(admin_trans('player_delivery_record.type.' . PlayerDeliveryRecord::TYPE_DAMAGE_REBATE))->color('#3C87C9'); + break; + case PlayerDeliveryRecord::TYPE_RECHARGE_REWARD: + $tag = Tag::create(admin_trans('player_delivery_record.type.' . PlayerDeliveryRecord::TYPE_RECHARGE_REWARD))->color('#3C87C9'); + break; + case PlayerDeliveryRecord::TYPE_PROFIT: + $tag = Tag::create(admin_trans('player_delivery_record.type.' . PlayerDeliveryRecord::TYPE_PROFIT))->color('#3C87C9'); + break; + case PlayerDeliveryRecord::TYPE_CANCELTRANSFER: + $tag = Tag::create(admin_trans('player_delivery_record.type.' . PlayerDeliveryRecord::TYPE_CANCELTRANSFER))->color('#3C87C9'); + break; + default: + $tag = ''; + } + return Html::create()->content([ + $tag + ]); + })->align('center')->sortable(); + $grid->column('amount', admin_trans('player_delivery_record.fields.amount'))->display(function ($val, PlayerDeliveryRecord $data) { + switch ($data->type) { + case PlayerDeliveryRecord::TYPE_WITHDRAWAL: + case PlayerDeliveryRecord::TYPE_MODIFIED_AMOUNT_DEDUCT: + return Html::create()->content(['-' . $val])->style(['color' => '#cd201f']); + default: + return Html::create()->content(['+' . $val])->style(['color' => 'green']); + } + })->align('center'); + $grid->column('amount_after', admin_trans('player_delivery_record.fields.amount_after'))->align('center'); + $grid->column('amount_before', admin_trans('player_delivery_record.fields.amount_before'))->align('center'); + $grid->column('user_name', admin_trans('player_delivery_record.fields.user_name'))->display(function ($val, PlayerDeliveryRecord $data) { + $name = '玩家'; + if (in_array($data->type, [PlayerDeliveryRecord::TYPE_MODIFIED_AMOUNT_ADD, PlayerDeliveryRecord::TYPE_MODIFIED_AMOUNT_DEDUCT])) { + $name = $data->user_name ?? '管理员'; + } + return Html::create()->content([ + Html::div()->content($name), + ]); + }); + $grid->column('created_at', admin_trans('player_delivery_record.fields.created_at'))->sortable()->align('center'); + $grid->hideDelete(); + $grid->hideSelection(); + $grid->actions(function (Actions $actions) { + $actions->hideDel(); + $actions->hideEdit(); + }); + $grid->filter(function (Filter $filter) { + $filter->like()->text('player.uuid')->placeholder(admin_trans('player.fields.uuid')); + $filter->like()->text('player.name')->placeholder(admin_trans('player.fields.name')); + $filter->like()->text('search_source')->placeholder(admin_trans('player_delivery_record.fields.source')); + $filter->eq()->select('type') + ->placeholder(admin_trans('player_delivery_record.fields.type')) + ->showSearch() + ->style(['width' => '200px']) + ->dropdownMatchSelectWidth() + ->options([ + PlayerDeliveryRecord::TYPE_MODIFIED_AMOUNT_ADD => admin_trans('player_delivery_record.type.' . PlayerDeliveryRecord::TYPE_MODIFIED_AMOUNT_ADD), + PlayerDeliveryRecord::TYPE_RECHARGE => admin_trans('player_delivery_record.type.' . PlayerDeliveryRecord::TYPE_RECHARGE), + PlayerDeliveryRecord::TYPE_WITHDRAWAL => admin_trans('player_delivery_record.type.' . PlayerDeliveryRecord::TYPE_WITHDRAWAL), + PlayerDeliveryRecord::TYPE_MODIFIED_AMOUNT_DEDUCT => admin_trans('player_delivery_record.type.' . PlayerDeliveryRecord::TYPE_MODIFIED_AMOUNT_DEDUCT), + PlayerDeliveryRecord::TYPE_WITHDRAWAL_BACK => admin_trans('player_delivery_record.type.' . PlayerDeliveryRecord::TYPE_WITHDRAWAL_BACK), + PlayerDeliveryRecord::TYPE_REGISTER_PRESENT => admin_trans('player_delivery_record.type.' . PlayerDeliveryRecord::TYPE_REGISTER_PRESENT), + PlayerDeliveryRecord::TYPE_COMMISSION => admin_trans('player_delivery_record.type.' . PlayerDeliveryRecord::TYPE_COMMISSION), + PlayerDeliveryRecord::TYPE_SIGN => admin_trans('player_delivery_record.type.' . PlayerDeliveryRecord::TYPE_SIGN), + PlayerDeliveryRecord::TYPE_GAME_OUT => admin_trans('player_delivery_record.type.' . PlayerDeliveryRecord::TYPE_GAME_OUT), + PlayerDeliveryRecord::TYPE_GAME_IN => admin_trans('player_delivery_record.type.' . PlayerDeliveryRecord::TYPE_GAME_IN), + PlayerDeliveryRecord::TYPE_BET_REBATE => admin_trans('player_delivery_record.type.' . PlayerDeliveryRecord::TYPE_BET_REBATE), + PlayerDeliveryRecord::TYPE_DAMAGE_REBATE => admin_trans('player_delivery_record.type.' . PlayerDeliveryRecord::TYPE_DAMAGE_REBATE), + PlayerDeliveryRecord::TYPE_RECHARGE_REWARD => admin_trans('player_delivery_record.type.' . PlayerDeliveryRecord::TYPE_RECHARGE_REWARD), + PlayerDeliveryRecord::TYPE_PROFIT => admin_trans('player_delivery_record.type.' . PlayerDeliveryRecord::TYPE_PROFIT), + ]); + $filter->form()->hidden('created_at_start'); + $filter->form()->hidden('created_at_end'); + $filter->form()->dateTimeRange('created_at_start', 'created_at_end', '')->placeholder([admin_trans('public_msg.created_at_start'), admin_trans('public_msg.created_at_end')]); + + }); + $grid->quickSearch(); + }); + } +} diff --git a/addons/webman/controller/PostController.php b/addons/webman/controller/PostController.php new file mode 100644 index 0000000..f81148a --- /dev/null +++ b/addons/webman/controller/PostController.php @@ -0,0 +1,74 @@ +model = plugin()->webman->config('database.post_model'); + + } + + /** + * 岗位 + * @auth true + */ + public function index(): Grid + { + return Grid::create(new $this->model, function (Grid $grid) { + $grid->title(admin_trans('post.title')); + $exAdminFilter = Request::input('ex_admin_filter', []); + if (isset($exAdminFilter['created_at_start']) && !empty($exAdminFilter['created_at_start'])) { + $grid->model()->whereDate('created_at', '>=', $exAdminFilter['created_at_start']); + } + if (isset($exAdminFilter['created_at_end']) && !empty($exAdminFilter['created_at_end'])) { + $grid->model()->whereDate('created_at', '<=', $exAdminFilter['created_at_end']); + } + $grid->autoHeight(); + $grid->column('name', admin_trans('post.fields.name')); + $grid->column('status', admin_trans('post.fields.status'))->switch([[1 => ''], [0 => '']]); + $grid->sortInput('sort', admin_trans('post.fields.sort')); + $grid->column('created_at', admin_trans('post.fields.create_at')); + $grid->filter(function (Filter $filter) { + $filter->like()->text('name')->placeholder(admin_trans('post.fields.name')); + $filter->eq()->select('status') + ->placeholder(admin_trans('post.fields.status')) + ->options([ + 1 => admin_trans('post.normal'), + 0 => admin_trans('post.disable') + ]); + $filter->form()->hidden('created_at_start'); + $filter->form()->hidden('created_at_end'); + $filter->form()->dateRange('created_at_start', 'created_at_end', '')->placeholder([admin_trans('public_msg.created_at_start'), admin_trans('public_msg.created_at_end')]); + }); + $grid->setForm()->modal($this->form()); + $grid->quickSearch(); + }); + } + + /** + * 岗位 + * @auth true + */ + public function form(): Form + { + return Form::create(new $this->model, function (Form $form) { + $form->title(admin_trans('post.title')); + $form->text('name', admin_trans('post.fields.name')) + ->required(); + $form->number('sort', admin_trans('post.fields.sort'))->default(0); + }); + } +} diff --git a/addons/webman/controller/RechargeRecordController.php b/addons/webman/controller/RechargeRecordController.php new file mode 100644 index 0000000..95138d2 --- /dev/null +++ b/addons/webman/controller/RechargeRecordController.php @@ -0,0 +1,400 @@ +model = plugin()->webman->config('database.player_recharge_record_model'); + } + + /** + * 充值 + * @auth true + */ + public function index(): Grid + { + return Grid::create(new $this->model(), function (Grid $grid) { + $grid->title(admin_trans('player_recharge_record.title')); + $grid->model()->with(['player', 'channel', 'channel_recharge_setting', 'player.player_extend'])->orderBy('created_at', 'desc'); + $exAdminFilter = Request::input('ex_admin_filter', []); + if (!empty($exAdminFilter)) { + if (isset($exAdminFilter['created_at_start']) && !empty($exAdminFilter['created_at_start'])) { + $grid->model()->where('created_at', '>=', $exAdminFilter['created_at_start']); + } + if (isset($exAdminFilter['created_at_end']) && !empty($exAdminFilter['created_at_end'])) { + $grid->model()->where('created_at', '<=', $exAdminFilter['created_at_end']); + } + if (isset($exAdminFilter['finish_time_start']) && !empty($exAdminFilter['finish_time_start'])) { + $grid->model()->where('finish_time', '>=', $exAdminFilter['finish_time_start']); + } + if (isset($exAdminFilter['finish_time_end']) && !empty($exAdminFilter['finish_time_end'])) { + $grid->model()->where('finish_time', '<=', $exAdminFilter['finish_time_end']); + } + if (!empty($exAdminFilter['player']['uuid'])) { + $grid->model()->whereHas('player', function ($query) use ($exAdminFilter) { + $query->where('uuid', 'like', '%' . $exAdminFilter['player']['uuid'] . '%'); + }); + } + if (!empty($exAdminFilter['player']['name'])) { + $grid->model()->whereHas('player', function ($query) use ($exAdminFilter) { + $query->where('name', 'like', '%' . $exAdminFilter['player']['name'] . '%'); + }); + } + if (!empty($exAdminFilter['department_id'])) { + $grid->model()->where('department_id', $exAdminFilter['department_id']); + } + if (!empty($exAdminFilter['type'])) { + $grid->model()->where('type', $exAdminFilter['type']); + } + if (isset($exAdminFilter['status']) && (!empty($exAdminFilter['status']) || $exAdminFilter['status'] === 0)) { + $grid->model()->where('status', $exAdminFilter['status']); + } + if (!empty($exAdminFilter['tradeno'])) { + $grid->model()->where('tradeno', $exAdminFilter['tradeno']); + } + } + $query = clone $grid->model(); + $totalData = $query->selectRaw( + "ifNull(sum(IF(type = 4, money,0)), 0) as total_artificial_money, + ifNull(sum(IF(type = 1, money,0)), 0) as total_espay_money, + ifNull(sum(IF(payment_method = 'DUITNOWP2P', money,0)), 0) as total_espay_duitnow_money, + ifNull(sum(IF(payment_method = 'P2PDEPOSIT', money,0)), 0) as total_espay_deposit_money, + ifNull(sum(IF(payment_method = 'duitnowqr', money,0)), 0) as total_onepay_duitnow_money, + ifNull(sum(IF(payment_method = 'online_banking', money,0)), 0) as total_onepay_deposit_money, + ifNull(sum(IF(payment_method = 'QR', money,0)), 0) as total_skl_duitnow_money, + ifNull(sum(IF(payment_method = 'P2P', money,0)), 0) as total_skl_deposit_money" + )->first(); + $layout = Layout::create(); + $layout->row(function (Row $row) use ($totalData) { + $row->gutter([10, 0]); + $row->column( + Card::create([ + Row::create()->column(Statistic::create()->title(admin_trans('player_recharge_record.total_data.total_artificial_money')) + ->value(!empty($totalData['total_artificial_money']) ? floatval($totalData['total_artificial_money']) : 0)->style([ + 'font-size' => '15px', + 'text-align' => 'center' + ])), + ])->bodyStyle([ + 'display' => 'flex', + 'align-items' => 'center', + 'height' => '72px' + ])->hoverable()->headStyle(['height' => '0px', 'border-bottom' => '0px', 'min-height' => '0px']) + , 8); + $row->column( + Card::create([ + Row::create()->column(Statistic::create()->title(admin_trans('player_recharge_record.total_data.total_espay_money')) + ->value(!empty($totalData['total_espay_money']) ? floatval($totalData['total_espay_money']) : 0)->style([ + 'font-size' => '15px', + 'text-align' => 'center' + ])), + ])->bodyStyle([ + 'display' => 'flex', + 'align-items' => 'center', + 'height' => '72px' + ])->hoverable()->headStyle(['height' => '0px', 'border-bottom' => '0px', 'min-height' => '0px']) + , 8); + $row->column( + Card::create([ + Row::create()->column(Statistic::create()->title(admin_trans('player_recharge_record.total_data.total_espay_inmoney')) + ->value(bcadd(bcadd( + bcadd(bcmul($totalData['total_espay_duitnow_money'], 0.97, 3), bcmul($totalData['total_espay_deposit_money'], 0.985, 3), 3), + bcadd(bcmul($totalData['total_onepay_duitnow_money'], 0.984, 3), bcmul($totalData['total_onepay_deposit_money'], 0.986, 3), 3), + 3), bcadd(bcmul($totalData['total_skl_duitnow_money'], 0.987, 3), bcmul($totalData['total_skl_deposit_money'], 0.989, 3), 3), 3)) + ->style([ + 'font-size' => '15px', + 'text-align' => 'center' + ])), + ])->bodyStyle([ + 'display' => 'flex', + 'align-items' => 'center', + 'height' => '72px' + ])->hoverable()->headStyle(['height' => '0px', 'border-bottom' => '0px', 'min-height' => '0px']) + , 8); + })->style(['background' => '#fff']); + $grid->header($layout); + $grid->bordered(true); + $grid->autoHeight(); + $grid->column('id', admin_trans('player_recharge_record.fields.id'))->align('center')->fixed(true); + $grid->column('player.name', admin_trans('player.fields.name'))->display(function ($val, PlayerRechargeRecord $data) { + $image = (isset($data->player->avatar) && !empty($data->player->avatar)) ? Avatar::create()->src($data->player->avatar) : Avatar::create()->icon(Icon::create('UserOutlined')); + return Html::create()->content([ + $image, + Html::div()->content($val) + ])->style(['cursor' => 'pointer'])->modal($this->playerDetail([ + 'phone' => $data->player->phone ?? '', + 'name' => $data->player->name ?? '', + 'address' => $data->player->player_extend->address ?? '', + 'email' => $data->player->player_extend->email ?? '', + 'line' => $data->player->player_extend->line ?? '', + 'created_at' => $data->player->created_at ? date('Y-m-d H:i:s', strtotime($data->player->created_at)) : '', + ])); + })->align('center')->fixed(true); + $grid->column('player.uuid', admin_trans('player.fields.uuid'))->display(function ($val, PlayerRechargeRecord $data) { + return $data->player->uuid; + })->align('center')->fixed(true); + $grid->column('tradeno', admin_trans('player_recharge_record.fields.tradeno'))->copy(); + $grid->column('channel.name', admin_trans('player_recharge_record.fields.department_id'))->align('center'); + $grid->column('type', admin_trans('player_recharge_record.fields.type'))->display(function ($val) { + switch ($val) { + case PlayerRechargeRecord::TYPE_REGULAR: + return Tag::create(admin_trans('player_recharge_record.type.' . $val)) + ->color('#55acee'); + case PlayerRechargeRecord::TYPE_ACTIVITY: + return Tag::create(admin_trans('player_recharge_record.type.' . $val)) + ->color('#3b5999'); + case PlayerRechargeRecord::TYPE_ARTIFICIAL: + return Tag::create(admin_trans('player_recharge_record.type.' . $val)) + ->color('#cd201f'); + default: + return ''; + } + })->align('center'); + $grid->column('status', admin_trans('player_recharge_record.fields.status'))->display(function ($val, PlayerRechargeRecord $data) { + switch ($val) { + case PlayerRechargeRecord::STATUS_WAIT: + return Tag::create(admin_trans('player_recharge_record.status_wait')) + ->color('#108ee9'); + case PlayerRechargeRecord::STATUS_RECHARGING: + return Tag::create(admin_trans('player_recharge_record.status_examine')) + ->color('#3b5999'); + case PlayerRechargeRecord::STATUS_RECHARGED_SUCCESS: + return Tag::create(admin_trans('player_recharge_record.status_success')) + ->color('#87d068'); + case PlayerRechargeRecord::STATUS_RECHARGED_FAIL: + return Tag::create(admin_trans('player_recharge_record.status_fail')) + ->color('#f50'); + case PlayerRechargeRecord::STATUS_RECHARGED_CANCEL: + return Tag::create(admin_trans('player_recharge_record.status_cancel')) + ->color('#2db7f5'); + case PlayerRechargeRecord::STATUS_RECHARGED_REJECT: + return Tag::create(admin_trans('player_recharge_record.status_reject')) + ->color('#2db7f5'); + case PlayerRechargeRecord::STATUS_RECHARGED_SYSTEM_CANCEL: + return Tag::create(admin_trans('player_recharge_record.status_system_cancel')) + ->color('#2db7f5'); + default: + return ''; + } + })->align('center'); + $grid->column('money', admin_trans('player_recharge_record.fields.money'))->display(function ($val, PlayerRechargeRecord $data) { + return bcdiv($val,$data->rate, 2) . ' ' . ($data->currency); + })->align('center'); + $grid->column('inmoney', admin_trans('player_recharge_record.fields.inmoney'))->display(function ($val, PlayerRechargeRecord $data) { + if ($data->payment_method == 'DUITNOWP2P') { + $ratio = 0.97; + } elseif ($data->payment_method == 'P2PDEPOSIT') { + $ratio = 0.985; + } elseif ($data->payment_method == 'duitnowqr') { + $ratio = 0.984; + } elseif ($data->payment_method == 'online_banking') { + $ratio = 0.986; + } elseif ($data->payment_method == 'P2P') { + $ratio = 0.989; + } elseif ($data->payment_method == 'QR') { + $ratio = 0.987; + } else { + $ratio = 1; + } + if ($data->currency == 'USDT') { + return bcdiv($val,$data->rate, 2) . ' ' . ($data->currency); + } + return $data->money * $ratio . ' ' . ($data->currency); + })->align('center'); + $grid->column('coins', admin_trans('player_recharge_record.fields.coins'))->align('center')->sortable(); + $grid->column('player_tag', admin_trans('player_recharge_record.fields.player_tag')) + ->display(function ($value) { + return $this->handleTagIds($value); + }) + ->editable( + Editable::checkboxTag() + ->options($this->getPlayerTagOptionsFilter()) + )->width('150px'); + $grid->column('remark', admin_trans('player_recharge_record.fields.remark'))->display(function ($value) { + return Str::of($value)->limit(20, ' (...)'); + })->editable( + (new Editable)->textarea('remark') + ->showCount() + ->rows(5) + ->rule(['max:255' => admin_trans('player_recharge_record.fields.remark')]) + )->width('150px')->align('center'); + $grid->column('finish_time', admin_trans('player_recharge_record.fields.finish_time'))->sortable()->align('center'); + $grid->column('created_at', admin_trans('player_recharge_record.fields.created_at'))->sortable()->align('center')->fixed('right'); + $grid->hideDelete(); + $grid->hideSelection(); + $grid->expandFilter(); + $grid->actions(function (Actions $actions) { + $actions->hideDel(); + $actions->hideEdit(); + }); + $grid->filter(function (Filter $filter) { + $filter->like()->text('player.uuid')->placeholder(admin_trans('player.fields.uuid')); + $filter->like()->text('player.name')->placeholder(admin_trans('player.fields.name')); + $filter->eq()->select('department_id') + ->showSearch() + ->style(['width' => '200px']) + ->dropdownMatchSelectWidth() + ->placeholder(admin_trans('player_recharge_record.fields.department_id')) + ->remoteOptions(admin_url(['addons-webman-controller-ChannelController', 'getDepartmentOptions'])); + $filter->eq()->select('type') + ->showSearch() + ->style(['width' => '200px']) + ->dropdownMatchSelectWidth() + ->placeholder(admin_trans('player_recharge_record.fields.type')) + ->options([ + PlayerRechargeRecord::TYPE_REGULAR => admin_trans('player_recharge_record.type.' . PlayerRechargeRecord::TYPE_REGULAR), + PlayerRechargeRecord::TYPE_ARTIFICIAL => admin_trans('player_recharge_record.type.' . PlayerRechargeRecord::TYPE_ARTIFICIAL), + ]); + $filter->eq()->select('status') + ->showSearch() + ->style(['width' => '200px']) + ->dropdownMatchSelectWidth() + ->placeholder(admin_trans('player_recharge_record.fields.status')) + ->options([ + PlayerRechargeRecord::STATUS_WAIT => admin_trans('player_recharge_record.status.' . PlayerRechargeRecord::STATUS_WAIT), + PlayerRechargeRecord::STATUS_RECHARGING => admin_trans('player_recharge_record.status.' . PlayerRechargeRecord::STATUS_RECHARGING), + PlayerRechargeRecord::STATUS_RECHARGED_SUCCESS => admin_trans('player_recharge_record.status.' . PlayerRechargeRecord::STATUS_RECHARGED_SUCCESS), + PlayerRechargeRecord::STATUS_RECHARGED_FAIL => admin_trans('player_recharge_record.status.' . PlayerRechargeRecord::STATUS_RECHARGED_FAIL), + PlayerRechargeRecord::STATUS_RECHARGED_CANCEL => admin_trans('player_recharge_record.status.' . PlayerRechargeRecord::STATUS_RECHARGED_CANCEL), + PlayerRechargeRecord::STATUS_RECHARGED_REJECT => admin_trans('player_recharge_record.status.' . PlayerRechargeRecord::STATUS_RECHARGED_REJECT), + PlayerRechargeRecord::STATUS_RECHARGED_SYSTEM_CANCEL => admin_trans('player_recharge_record.status.' . PlayerRechargeRecord::STATUS_RECHARGED_SYSTEM_CANCEL), + ]); + $filter->like()->text('tradeno')->placeholder(admin_trans('player_recharge_record.fields.tradeno')); + $filter->form()->hidden('created_at_start'); + $filter->form()->hidden('created_at_end'); + $filter->form()->dateTimeRange('created_at_start', 'created_at_end', '')->placeholder([admin_trans('public_msg.created_at_start'), admin_trans('public_msg.created_at_end')]); + $filter->form()->hidden('finish_time_start'); + $filter->form()->hidden('finish_time_end'); + $filter->form()->dateTimeRange('finish_time_start', 'finish_time_end', '')->placeholder([admin_trans('player_recharge_record.fields.finish_time'), admin_trans('player_recharge_record.fields.finish_time')]); + + }); + }); + } + + /** + * 处理标签 + * @param array $value + * @return Html + */ + public function handleTagIds(array $value): Html + { + $options = $this->getPlayerTagOptions($value); + $html = Html::create(); + foreach ($options as $option) { + $html->content( + Tag::create($option) + ->color('success') + ); + } + return $html; + } + + /** + * 获取玩家标签选项(筛选id) + * @param array $ids + * @return array + */ + public function getPlayerTagOptions(array $ids = []): array + { + $idsStr = json_encode($ids); + $cacheKey = md5("player_tag_options_ids_$idsStr"); + if (Cache::has($cacheKey)) { + return Cache::get($cacheKey); + } else { + if (!empty($ids)) { + $data = (new PlayerTag())->whereIn('id', $ids)->select(['name', 'id'])->get()->toArray(); + $data = $data ? array_column($data, 'name', 'id') : []; + Cache::set($cacheKey, $data, 24 * 60 * 60); + + return $data; + } + return []; + } + } + + /** + * 获取玩家标签(筛选id) + * @return array + */ + public function getPlayerTagOptionsFilter(): array + { + $cacheKey = "doc_player_tag_options_filter"; + if (Cache::has($cacheKey)) { + return Cache::get($cacheKey); + } else { + $data = (new PlayerTag())->select(['name', 'id'])->get()->toArray(); + $data = $data ? array_column($data, 'name', 'id') : []; + Cache::set($cacheKey, $data, 24 * 60 * 60); + + return $data; + } + } + + /** + * 筛选玩家下拉 + * @return mixed + */ + public function getPlayerOptions() + { + $request = Request::input(); + $player = Player::orderBy('created_at', 'desc') + ->forPage(1, 20); + if (!empty($request['search'])) { + $player->where('phone', 'like', '%' . $request['search'] . '%'); + } + $playerList = $player->get(); + $data = []; + /** @var Player $player */ + foreach ($playerList as $player) { + $data[] = [ + 'value' => $player->id, + 'label' => $player->phone, + ]; + } + return Response::success($data); + } + + /** + * 玩家详情 + * @param array $data + * @return Detail + */ + public function playerDetail(array $data): Detail + { + return Detail::create($data, function (Detail $detail) { + $detail->item('name', admin_trans('player.fields.name')); + $detail->item('address', admin_trans('player_extend.fields.address')); + $detail->item('email', admin_trans('player_extend.fields.email')); + $detail->item('phone', admin_trans('player.fields.phone')); + $detail->item('line', admin_trans('player_extend.fields.line')); + $detail->item('created_at', admin_trans('player.fields.created_at')); + })->layout('vertical'); + } +} diff --git a/addons/webman/controller/RoleController.php b/addons/webman/controller/RoleController.php new file mode 100644 index 0000000..1a6f36b --- /dev/null +++ b/addons/webman/controller/RoleController.php @@ -0,0 +1,344 @@ +model = plugin()->webman->config('database.role_model'); + } + + /** + * 系统角色 + * @auth true + * @return Grid + */ + public function index(): Grid + { + return Grid::create(new $this->model(), function (Grid $grid) { + $grid->title(admin_trans('auth.title')); + $grid->autoHeight(); + $grid->column('name', admin_trans('auth.fields.name')); + $grid->column('type', admin_trans('auth.fields.type')) + ->display(function ($value) { + $tag = ''; + switch ($value) { + case AdminDepartment::TYPE_DEPARTMENT: + $tag = Tag::create(admin_trans('auth.type.' . AdminDepartment::TYPE_DEPARTMENT))->color('#108ee9'); + break; + case AdminDepartment::TYPE_CHANNEL: + $tag = Tag::create(admin_trans('auth.type.' . AdminDepartment::TYPE_CHANNEL))->color('#f50'); + break; + } + return Html::create()->content([ + $tag + ]); + })->sortable(); + $grid->hideSelection(); + $grid->column('desc', admin_trans('auth.fields.desc')); + $grid->column('data_type', admin_trans('auth.fields.data_type')) + ->display(function ($value, AdminRole $data) { + $tag = ''; + switch ($value) { + case AdminRole::DATA_TYPE_ALL: + $tag = Tag::create(admin_trans('auth.options.data_type.full_data_rights'))->color('#f50'); + break; + case AdminRole::DATA_TYPE_CUSTOM: + $tag = Tag::create(admin_trans('auth.options.data_type.custom_data_permissions'))->color('#2db7f5'); + break; + case AdminRole::DATA_TYPE_DEPARTMENT_BELOW: + $tag = Tag::create(admin_trans('auth.options.data_type.this_department_and_the_following_data_permissions'))->color('#87d068'); + if ($data->type == AdminDepartment::TYPE_CHANNEL) { + $tag = Tag::create(admin_trans('auth.options.data_type.channel_and_the_following_data_permissions'))->color('#87d068'); + } + break; + case AdminRole::DATA_TYPE_DEPARTMENT: + $tag = Tag::create(admin_trans('auth.options.data_type.data_permissions_for_this_department'))->color('#108ee9'); + break; + case AdminRole::DATA_TYPE_SELF: + $tag = Tag::create(admin_trans('auth.options.data_type.personal_data_rights'))->color('#108ee9'); + break; + } + return Html::create()->content([ + $tag + ]); + })->sortable(); + $grid->setForm()->modal($this->form()); + $grid->quickSearch(); + $grid->actions(function (Actions $actions, AdminRole $data) { + $dropdown = $actions->dropdown(); + $dropdown->prepend(admin_trans('auth.auth_grant'), 'safety-certificate-filled') + ->modal($this->auth($data['id'], $data['type'])); + $dropdown->prepend(admin_trans('auth.menu_grant'), 'appstore-filled') + ->modal($this->menu($data['id'], $data['type'])); + $dropdown->prepend(admin_trans('auth.data_grant'), 'fas fa-database') + ->modal($this->data($data['id'], $data['type'])); + if ($data->id == AdminRole::ROLE_CHANNEL) { + $actions->hideDel(); + } + }); + }); + + } + + /** + * 系统角色 + * @auth true + * @return Form + */ + public function form(): Form + { + return Form::create(new $this->model(), function (Form $form) { + $form->title(admin_trans('auth.title')); + $form->text('name', admin_trans('auth.fields.name'))->required(); + $form->textarea('desc', admin_trans('auth.fields.desc'))->rows(5)->required(); + $form->radio('type', admin_trans('auth.fields.type')) + ->default(AdminDepartment::TYPE_DEPARTMENT) + ->options([ + AdminDepartment::TYPE_DEPARTMENT => admin_trans('auth.type.' . AdminDepartment::TYPE_DEPARTMENT), + AdminDepartment::TYPE_CHANNEL => admin_trans('auth.type.' . AdminDepartment::TYPE_CHANNEL), + ])->disabled($form->isEdit()); + $form->number('sort', admin_trans('auth.fields.sort'))->default($this->model::max('sort') + 1); + $form->saving(function (Form $form) { + if (!$form->isEdit()) { + $type = $form->input('type'); + switch ($type) { + case AdminDepartment::TYPE_DEPARTMENT: + $form->input('data_type', AdminRole::DATA_TYPE_ALL); + break; + case AdminDepartment::TYPE_CHANNEL: + $form->input('data_type', AdminRole::DATA_TYPE_DEPARTMENT_BELOW); + break; + default: + return message_error(admin_trans('auth.role_type_error')); + } + } + }); + }); + + } + + /** + * 数据权限 + * @auth true + * @return Form + */ + public function data($id, $type) + { + return Form::create(new $this->model(), function (Form $form) use ($type) { + switch ($type) { + case AdminDepartment::TYPE_DEPARTMENT: + $options = [ + 0 => admin_trans('auth.options.data_type.full_data_rights'), + 1 => admin_trans('auth.options.data_type.custom_data_permissions'), + 2 => admin_trans('auth.options.data_type.this_department_and_the_following_data_permissions'), + 3 => admin_trans('auth.options.data_type.data_permissions_for_this_department'), + 4 => admin_trans('auth.options.data_type.personal_data_rights'), + + ]; + break; + case AdminDepartment::TYPE_CHANNEL: + $options = [ + 2 => admin_trans('auth.options.data_type.channel_and_the_following_data_permissions'), + 3 => admin_trans('auth.options.data_type.data_permissions_for_this_department'), + 4 => admin_trans('auth.options.data_type.personal_data_rights'), + ]; + break; + default: + $options = []; + } + $form->title(admin_trans('auth.title')); + $form->desc('name', admin_trans('auth.fields.name')); + $form->desc('desc', admin_trans('auth.fields.desc')); + $form->select('data_type', admin_trans('auth.fields.data_type')) + ->required() + ->options($options) + ->when(1, function (Form $form) { + $department = plugin()->webman->config('database.department_model'); + $options = $department::where('status', 1) + ->where('type', AdminDepartment::TYPE_DEPARTMENT) + ->get()->toArray(); + $tree = $form->tree('department') + ->showIcon() + ->content(Icon::create('FolderOutlined'), 'groupIcon') + ->multiple() + ->checkable() + ->bindAttr('checkStrictly', $form->getModel() . '.check_strictly') + ->options($options); + $form->popItem(); + $form->switch('check_strictly', admin_trans('auth.fields.department')) + ->default(false) + ->checkedChildren(admin_trans('auth.father_son_linkage')) + ->unCheckedChildren(admin_trans('auth.father_son_linkage')) + ->checkedValue(false) + ->unCheckedValue(true) + ->getFormItem()->content($tree); + + }); + }); + } + + /** + * 菜单权限 + * @auth true + * @param $id + * @param $type + * @return Form + */ + public function menu($id, $type): Form + { + $menuModel = plugin()->webman->config('database.menu_model'); + $tree = $menuModel::select('id', 'pid', 'name')->where('type', $type)->get()->toArray(); + $model = plugin()->webman->config('database.role_menu_model'); + $field = 'menu_id'; + $label = 'name'; + $nodeTypeList = []; + foreach ($tree as $value) { + if (!empty($value['group'])) { + /** 全部菜单 */ + if ($value['group'] == 'all') { + $nodeTypeList[] = $value; + } + /** 渠道菜单,总站菜单 */ + if ($value['group'] == ($type == AdminDepartment::TYPE_CHANNEL ? 'channel' : 'department')) { + $nodeTypeList[] = $value; + } + } else { + $nodeTypeList[] = $value; + } + } + array_unshift($nodeTypeList, ['id' => 0, $label => admin_trans('auth.all'), 'pid' => -1]); + $auths = $model::where('role_id', $id)->pluck($field); + return Form::create(new $this->model(), function (Form $form) use ($id, $model, $nodeTypeList, $field, $auths, $label) { + $form->tree('auth') + ->options($nodeTypeList, $label) + ->default($auths) + ->checkable(); + $form->saving(function (Form $form) use ($id, $model, $field) { + $auths = $form->input('auth'); + $form->removeInput('auth'); + $auths = array_filter($auths); + $auths = array_map(function ($item) use ($id, $field) { + return ['role_id' => $id, $field => $item]; + }, $auths); + $model::where('role_id', $id)->delete(); + if ($auths) { + $authsArr = array_chunk($auths, 10, true); + foreach ($authsArr as $value) { + $model::insert($value); + } + } + }); + }); + } + + /** + * 功能权限 + * @auth true + * @param $id + * @param string $type + * @return Form + */ + public function auth($id, string $type = ''): Form + { + $tree = Admin::node()->all(); + $model = plugin()->webman->config('database.role_permission_model'); + $field = 'node_id'; + $label = 'title'; + $nodeTypeList = []; + foreach ($tree as $value) { + if (!empty($value['group'])) { + /** 全部菜单 */ + if ($value['group'] == 'all') { + $nodeTypeList[] = $value; + } + /** 渠道菜单,总站菜单 */ + if ($value['group'] == ($type == AdminDepartment::TYPE_CHANNEL ? 'channel' : 'department')) { + $nodeTypeList[] = $value; + } + } else { + $nodeTypeList[] = $value; + } + } + array_unshift($nodeTypeList, ['id' => 0, $label => admin_trans('auth.all'), 'pid' => -1]); + $auths = $model::where('role_id', $id)->pluck($field); + return Form::create(new $this->model(), function (Form $form) use ($id, $model, $nodeTypeList, $field, $auths, $label) { + $form->tree('auth') + ->options($nodeTypeList, $label) + ->default($auths) + ->checkable(); + $form->saving(function (Form $form) use ($id, $model, $field) { + $auths = $form->input('auth'); + $form->removeInput('auth'); + $auths = array_filter($auths); + $auths = array_map(function ($item) use ($id, $field) { + return ['role_id' => $id, $field => $item]; + }, $auths); + $model::where('role_id', $id)->delete(); + if ($auths) { + $authsArr = array_chunk($auths, 10, true); + foreach ($authsArr as $value) { + $model::insert($value); + } + } + }); + }); + } + + public function commonAuthForm($id, $model, $tree, $type, $field, $label): Form + { + $nodeTypeList = []; + foreach ($tree as $value) { + if (!empty($value['group'])) { + /** 全部菜单 */ + if ($value['group'] == 'all') { + $nodeTypeList[] = $value; + } + /** 渠道菜单,总站菜单 */ + if ($value['group'] == ($type == AdminDepartment::TYPE_CHANNEL ? 'channel' : 'department')) { + $nodeTypeList[] = $value; + } + } else { + $nodeTypeList[] = $value; + } + } + array_unshift($nodeTypeList, ['id' => 0, $label => admin_trans('auth.all'), 'pid' => -1]); + $auths = $model::where('role_id', $id)->pluck($field); + return Form::create(new $this->model(), function (Form $form) use ($id, $model, $nodeTypeList, $field, $auths, $label) { + $form->tree('auth') + ->options($nodeTypeList, $label) + ->default($auths) + ->checkable(); + $form->saving(function (Form $form) use ($id, $model, $field) { + $auths = $form->input('auth'); + $form->removeInput('auth'); + $auths = array_filter($auths); + $auths = array_map(function ($item) use ($id, $field) { + return ['role_id' => $id, $field => $item]; + }, $auths); + $model::where('role_id', $id)->delete(); + if ($auths) { + $authsArr = array_chunk($auths,10,true); + foreach ($authsArr as $value) { + $model::insert($value); + } + } + }); + }); + } +} diff --git a/addons/webman/controller/SystemSettingController.php b/addons/webman/controller/SystemSettingController.php new file mode 100644 index 0000000..08dd7e9 --- /dev/null +++ b/addons/webman/controller/SystemSettingController.php @@ -0,0 +1,135 @@ +model = plugin()->webman->config('database.system_setting_model'); + } + + /** + * 配置列表 + * @auth true + * @return Card + */ + public function index(): Card + { + $tabs = Tabs::create()->destroyInactiveTabPane() + ->type('card') + ->pane(admin_trans('system_setting.master'), $this->settingList()); + $channelList = Channel::get(); + /** @var Channel $channel */ + foreach ($channelList as $channel) { + $tabs->pane($channel->name, $this->settingList($channel->department_id)); + } + return Card::create($tabs); + } + + /** + * 系统配置 + * @param $id + * @return Grid + */ + public function settingList($id = 0): Grid + { + return Grid::create(new $this->model(), function (Grid $grid) use ($id) { + $grid->title(admin_trans('system_setting.title')); + $grid->autoHeight(); + $grid->bordered(true); + $grid->model()->where('department_id', $id)->whereNotIn('feature', ['sign_setting', 'commission_setting', 'first_recharge_setting']); + $grid->column('feature', admin_trans('system_setting.fields.feature'))->display(function ($value) { + return admin_trans('system_setting.fields.' . $value); + })->align('center'); + + $grid->column('setting', admin_trans('system_setting.fields.setting')) + ->if(function ($value, SystemSetting $data) { + return $data->feature === 'marquee' || $data->feature === 'machine_marquee'; + })->editable( + Editable::textarea('content') + ->showCount() + ->rows(6) + ->rule(['max:100' => admin_trans('system_setting.marquee_max_len')]) + )->display(function ($value, SystemSetting $data) { + return Str::of($data->content)->limit(35, ' (...)'); + })->width('20%')->align('center') + ->if(function ($value, SystemSetting $data) { // 条件2 + return $data->feature === 'register_present'; + })->editable( + (new Editable)->text('num') + ->rule([ + 'integer' => admin_trans('validator.integer'), + 'max:10000' => admin_trans('validator.max', null, ['{max}' => 10000]), + 'min:1' => admin_trans('validator.min', null, ['{min}' => 1]), + ]) + )->display(function ($value, SystemSetting $data) { + return $data->num; + })->align('center') + ->if(function ($value, SystemSetting $data) { // 条件2 + return $data->feature === 'recharge_order_expiration'; + })->editable( + (new Editable)->text('num') + ->rule([ + 'integer' => admin_trans('validator.integer'), + 'max:180' => admin_trans('validator.max', null, ['{max}' => 180]), + 'min:15' => admin_trans('validator.min', null, ['{min}' => 15]), + ])->addonAfter(admin_trans('system_setting.minutes')) + )->display(function ($val, SystemSetting $data) { + if (!empty($data->num)) { + return $data->num . ' ' . admin_trans('system_setting.minutes'); + } + return ''; + })->if(function ($value, SystemSetting $data) { // 条件2 + return $data->feature === 'pending_minutes'; + })->editable( + (new Editable)->number('num') + ->rule([ + 'integer' => admin_trans('validator.integer'), + 'max:240' => admin_trans('validator.max', null, ['{max}' => 240]), + 'min:2' => admin_trans('validator.min', null, ['{min}' => 2]), + ])->addonAfter(admin_trans('system_setting.minutes')) + )->display(function ($val, SystemSetting $data) { + if (!empty($data->num)) { + return $data->num . ' ' . admin_trans('system_setting.minutes'); + } + return ''; + }); + + $grid->column('status', admin_trans('system_setting.fields.status'))->switch()->align('center'); + $grid->hideDelete(); + $grid->hideSelection(); + $grid->actions(function (Actions $actions) { + $actions->hideDel(); + $actions->hideEdit(); + }); + }); + } + + /** + * 结算日期 + * @return array + */ + public function getSettlementDate(): array + { + for ($i = 1; $i <= 28; $i++) { + $data[$i] = $i . admin_trans('player_promoter.date'); + } + + return $data; + } +} diff --git a/addons/webman/controller/WithdrawRecordController.php b/addons/webman/controller/WithdrawRecordController.php new file mode 100644 index 0000000..f23ccaf --- /dev/null +++ b/addons/webman/controller/WithdrawRecordController.php @@ -0,0 +1,383 @@ +model = plugin()->webman->config('database.player_withdraw_record_model'); + } + + /** + * 提現 + * @auth true + */ + public function index(): Grid + { + return Grid::create(new $this->model(), function (Grid $grid) { + $grid->title(admin_trans('player_withdraw_record.title')); + $grid->model()->with(['player', 'channel', 'player.player_extend'])->orderBy('created_at', 'desc'); + $exAdminFilter = Request::input('ex_admin_filter', []); + if (!empty($exAdminFilter)) { + if (isset($exAdminFilter['created_at_start']) && !empty($exAdminFilter['created_at_start'])) { + $grid->model()->where('created_at', '>=', $exAdminFilter['created_at_start']); + } + if (isset($exAdminFilter['created_at_end']) && !empty($exAdminFilter['created_at_end'])) { + $grid->model()->where('created_at', '<=', $exAdminFilter['created_at_end']); + } + if (isset($exAdminFilter['finish_time_start']) && !empty($exAdminFilter['finish_time_start'])) { + $grid->model()->where('finish_time', '>=', $exAdminFilter['finish_time_start']); + } + if (isset($exAdminFilter['finish_time_end']) && !empty($exAdminFilter['finish_time_end'])) { + $grid->model()->where('finish_time', '<=', $exAdminFilter['finish_time_end']); + } + if (!empty($exAdminFilter['player']['uuid'])) { + $grid->model()->whereHas('player', function ($query) use ($exAdminFilter) { + $query->where('uuid', 'like', '%' . $exAdminFilter['player']['uuid'] . '%'); + }); + } + if (!empty($exAdminFilter['player']['name'])) { + $grid->model()->whereHas('player', function ($query) use ($exAdminFilter) { + $query->where('name', 'like', '%' . $exAdminFilter['player']['name'] . '%'); + }); + } + if (!empty($exAdminFilter['department_id'])) { + $grid->model()->where('department_id', $exAdminFilter['department_id']); + } + if (!empty($exAdminFilter['type'])) { + $grid->model()->where('type', $exAdminFilter['type']); + } + if (!empty($exAdminFilter['status'])) { + $grid->model()->where('status', $exAdminFilter['status']); + } + if (!empty($exAdminFilter['tradeno'])) { + $grid->model()->where('tradeno', $exAdminFilter['tradeno']); + } + } + $query = clone $grid->model(); + $totalData = $query->selectRaw( + 'ifNull(sum(money), 0) as total_money, + ifNull(sum(IF(type = 6, money,0)), 0) as total_skl_money' + )->first(); + $layout = Layout::create(); + $layout->row(function (Row $row) use ($totalData) { + $row->gutter([10, 0]); + $row->column( + Card::create([ + Row::create()->column(Statistic::create()->title(admin_trans('player_withdraw_record.total_money')) + ->value($totalData['total_money']) + ->style([ + 'font-size' => '15px', + 'text-align' => 'center' + ])), + ])->bodyStyle([ + 'display' => 'flex', + 'align-items' => 'center', + 'height' => '72px' + ])->hoverable()->headStyle(['height' => '0px', 'border-bottom' => '0px', 'min-height' => '0px']) + , 8); + $row->column( + Card::create([ + Row::create()->column(Statistic::create()->title(admin_trans('player_withdraw_record.total_inmoney')) + ->value(bcadd(bcsub($totalData['total_money'], $totalData['total_skl_money'], 3), bcmul($totalData['total_skl_money'], 1.008, 3), 3)) + ->style([ + 'font-size' => '15px', + 'text-align' => 'center' + ])), + ])->bodyStyle([ + 'display' => 'flex', + 'align-items' => 'center', + 'height' => '72px' + ])->hoverable()->headStyle(['height' => '0px', 'border-bottom' => '0px', 'min-height' => '0px']) + , 8); + })->style(['background' => '#fff']); + $grid->header($layout); + $grid->bordered(true); + $grid->autoHeight(); + $grid->column('id', admin_trans('player_withdraw_record.fields.id'))->align('center')->fixed(true); + $grid->column('player.name', admin_trans('player.fields.name'))->display(function ($val, PlayerWithdrawRecord $data) { + $image = (isset($data->player->avatar) && !empty($data->player->avatar)) ? Avatar::create()->src($data->player->avatar) : Avatar::create()->icon(Icon::create('UserOutlined')); + return Html::create()->content([ + $image, + Html::div()->content($val) + ])->style(['cursor' => 'pointer'])->modal($this->playerDetail([ + 'phone' => $data->player->phone ?? '', + 'name' => $data->player->name ?? '', + 'address' => $data->player->player_extend->address ?? '', + 'email' => $data->player->player_extend->email ?? '', + 'line' => $data->player->player_extend->line ?? '', + 'created_at' => isset($data->player->created_at) && !empty($data->player->created_at) ? date('Y-m-d H:i:s', strtotime($data->player->created_at)) : '', + ])); + })->align('center')->fixed(true); + $grid->column('player.uuid', admin_trans('player.fields.uuid'))->display(function ($val, PlayerWithdrawRecord $data) { + return $data->player->uuid; + })->align('center')->fixed(true); + $grid->column('tradeno', admin_trans('player_withdraw_record.fields.tradeno'))->copy()->align('center'); + $grid->column('money', admin_trans('player_withdraw_record.fields.money'))->display(function ($val, PlayerWithdrawRecord $data) { + return bcdiv($val,$data->rate, 2) . ' ' . ($data->currency == 'TALK' ? 'Q币' : $data->currency); + })->align('center')->sortable(); + $grid->column('inmoney', admin_trans('player_recharge_record.fields.inmoney'))->display(function ($val, PlayerWithdrawRecord $data) { + if ($data->type == PlayerWithdrawRecord::TYPE_ESPAYOUT) { + $ratio = 1.005; + } elseif ($data->type == PlayerWithdrawRecord::TYPE_ONEPAYOUT){ + $ratio = 1.008; + } elseif ($data->type == PlayerWithdrawRecord::TYPE_SKLPAYOUT){ + $ratio = 1.008; + } else { + $ratio = 1; + } + if ($data->currency == 'USDT') { + return bcdiv($val,$data->rate, 2) . ' ' . ($data->currency); + } + return $data->money * $ratio . ' ' . ($data->currency); + })->align('center'); + $grid->column('coins', admin_trans('player_withdraw_record.fields.coins'))->align('center'); + $grid->column('type', admin_trans('player_withdraw_record.fields.type'))->display(function ($val) { + switch ($val) { + case PlayerWithdrawRecord::TYPE_SELF: + return Tag::create(admin_trans('player_withdraw_record.type.' . $val)) + ->color('#3b5999'); + case PlayerWithdrawRecord::TYPE_ARTIFICIAL: + return Tag::create(admin_trans('player_withdraw_record.type.' . $val)) + ->color('#cd201f'); + case PlayerWithdrawRecord::TYPE_USDT: + return Tag::create(admin_trans('player_withdraw_record.type.' . $val)) + ->color('#2db7f5'); + case PlayerWithdrawRecord::TYPE_SKLPAYOUT: + return Tag::create(admin_trans('player_withdraw_record.type.' . $val)) + ->color('#108ee9'); + default: + return ''; + } + })->align('center'); + $grid->column('withdraw_setting_info', + admin_trans('player_withdraw_record.player_bank'))->display(function ( + $val, + PlayerWithdrawRecord $data + ) { + $info = []; + switch ($data->type) { + case PlayerWithdrawRecord::TYPE_USDT: + $info[] = Html::markdown('- ' . admin_trans('channel_recharge_setting.fields.wallet_address') . ': ' . $data->wallet_address); + $info[] = Html::div()->content(Image::create() + ->width(40) + ->src($data->qr_code)); + break; + case PlayerWithdrawRecord::TYPE_SELF: + $info[] = Html::markdown('- ' . admin_trans('player_withdraw_record.fields.account_name') . ': ' . $data->account_name); + $info[] = Html::markdown('- ' . admin_trans('player_withdraw_record.fields.bank_name') . ': ' . $data->bank_name); + $info[] = Html::markdown('- ' . admin_trans('player_withdraw_record.fields.account') . ': ' . $data->account); + break; + } + return Html::create()->content($info); + })->align('left'); + $grid->column('status', admin_trans('player_withdraw_record.fields.status')) + ->display(function ($value, PlayerWithdrawRecord $data) { + $rejectReason = $data->reject_reason; + switch ($value) { + case PlayerWithdrawRecord::STATUS_SUCCESS: + $tag = Tag::create(admin_trans('player_withdraw_record.status.' . PlayerWithdrawRecord::STATUS_SUCCESS))->color('#87d068'); + break; + case PlayerWithdrawRecord::STATUS_WAIT: + $tag = Tag::create(admin_trans('player_withdraw_record.status_wait'))->color('#108ee9'); + break; + case PlayerWithdrawRecord::STATUS_FAIL: + $tag = Tag::create(admin_trans('player_withdraw_record.status.' . PlayerWithdrawRecord::STATUS_FAIL))->color('#f50'); + break; + case PlayerWithdrawRecord::STATUS_PENDING_REJECT: + $tag = Tag::create(admin_trans('player_withdraw_record.status.' . PlayerWithdrawRecord::STATUS_PENDING_REJECT))->color('#cd201f'); + break; + case PlayerWithdrawRecord::STATUS_PENDING_PAYMENT: + $tag = Tag::create(admin_trans('player_withdraw_record.status.' . PlayerWithdrawRecord::STATUS_PENDING_PAYMENT))->color('#3b5999'); + break; + case PlayerWithdrawRecord::STATUS_CANCEL: + case PlayerWithdrawRecord::STATUS_SYSTEM_CANCEL: + $tag = Tag::create(admin_trans('player_withdraw_record.status.' . PlayerWithdrawRecord::STATUS_CANCEL))->color('#2db7f5'); + break; + default: + $tag = ''; + } + if (!empty($rejectReason)) { + return ToolTip::create(Badge::create( + $tag + )->count('!')->title(''))->title($rejectReason)->color('orange'); + } else { + return $tag; + } + })->align('center')->sortable(); + $grid->column('channel.name', admin_trans('player_withdraw_record.fields.department_id'))->align('center'); + $grid->column('finish_time', admin_trans('player_withdraw_record.fields.finish_time'))->sortable()->align('center'); + $grid->column('created_at', admin_trans('player_withdraw_record.fields.created_at'))->sortable()->align('center'); + $grid->column('player_tag', admin_trans('player_withdraw_record.fields.player_tag')) + ->display(function ($value) { + return $this->handleTagIds($value); + }) + ->editable( + Editable::checkboxTag() + ->options($this->getPlayerTagOptionsFilter()) + )->width('150px'); + $grid->column('remark', admin_trans('player_withdraw_record.fields.remark'))->display(function ($value) { + return Str::of($value)->limit(20, ' (...)'); + })->editable( + (new Editable)->textarea('remark') + ->showCount() + ->rows(5) + ->rule(['max:255' => admin_trans('player_withdraw_record.fields.remark')]) + )->width('150px')->align('center'); + $grid->hideDelete(); + $grid->hideSelection(); + $grid->expandFilter(); + $grid->actions(function (Actions $actions) { + $actions->hideDel(); + $actions->hideEdit(); + }); + $grid->filter(function (Filter $filter) { + $filter->like()->text('player.uuid')->placeholder(admin_trans('player.fields.uuid')); + $filter->like()->text('player.name')->placeholder(admin_trans('player.fields.name')); + $filter->eq()->select('department_id') + ->showSearch() + ->style(['width' => '200px']) + ->dropdownMatchSelectWidth() + ->placeholder(admin_trans('player_withdraw_record.fields.department_id')) + ->remoteOptions(admin_url(['addons-webman-controller-ChannelController', 'getDepartmentOptions'])); + $filter->eq()->select('type') + ->showSearch() + ->style(['width' => '200px']) + ->dropdownMatchSelectWidth() + ->placeholder(admin_trans('player_withdraw_record.fields.type')) + ->options([ + PlayerWithdrawRecord::TYPE_USDT => admin_trans('player_withdraw_record.type.' . PlayerWithdrawRecord::TYPE_USDT), + PlayerWithdrawRecord::TYPE_SELF => admin_trans('player_withdraw_record.type.' . PlayerWithdrawRecord::TYPE_SELF), + PlayerWithdrawRecord::TYPE_ARTIFICIAL => admin_trans('player_withdraw_record.type.' . PlayerWithdrawRecord::TYPE_ARTIFICIAL), + PlayerWithdrawRecord::TYPE_SKLPAYOUT => admin_trans('player_withdraw_record.type.' . PlayerWithdrawRecord::TYPE_SKLPAYOUT), + ]); + $filter->eq()->select('status') + ->showSearch() + ->style(['width' => '200px']) + ->dropdownMatchSelectWidth() + ->placeholder(admin_trans('player_withdraw_record.fields.status')) + ->options([ + PlayerWithdrawRecord::STATUS_WAIT => admin_trans('player_withdraw_record.status.' . PlayerWithdrawRecord::STATUS_WAIT), + PlayerWithdrawRecord::STATUS_SUCCESS => admin_trans('player_withdraw_record.status.' . PlayerWithdrawRecord::STATUS_SUCCESS), + PlayerWithdrawRecord::STATUS_FAIL => admin_trans('player_withdraw_record.status.' . PlayerWithdrawRecord::STATUS_FAIL), + PlayerWithdrawRecord::STATUS_PENDING_PAYMENT => admin_trans('player_withdraw_record.status.' . PlayerWithdrawRecord::STATUS_PENDING_PAYMENT), + PlayerWithdrawRecord::STATUS_PENDING_REJECT => admin_trans('player_withdraw_record.status.' . PlayerWithdrawRecord::STATUS_PENDING_REJECT), + PlayerWithdrawRecord::STATUS_CANCEL => admin_trans('player_withdraw_record.status.' . PlayerWithdrawRecord::STATUS_CANCEL), + PlayerWithdrawRecord::STATUS_SYSTEM_CANCEL => admin_trans('player_withdraw_record.status.' . PlayerWithdrawRecord::STATUS_SYSTEM_CANCEL), + ]); + $filter->like()->text('tradeno')->placeholder(admin_trans('player_withdraw_record.fields.tradeno')); + $filter->form()->hidden('created_at_start'); + $filter->form()->hidden('created_at_end'); + $filter->form()->dateTimeRange('created_at_start', 'created_at_end', '')->placeholder([admin_trans('public_msg.created_at_start'), admin_trans('public_msg.created_at_end')]); + $filter->form()->hidden('finish_time_start'); + $filter->form()->hidden('finish_time_end'); + $filter->form()->dateTimeRange('finish_time_start', 'finish_time_end', '')->placeholder([admin_trans('player_withdraw_record.fields.finish_time'), admin_trans('player_withdraw_record.fields.finish_time')]); + + }); + }); + } + + /** + * 处理标签 + * @param array $value + * @return Html + */ + public function handleTagIds(array $value): Html + { + $options = $this->getPlayerTagOptions($value); + $html = Html::create(); + foreach ($options as $option) { + $html->content( + Tag::create($option) + ->color('success') + ); + } + return $html; + } + + /** + * 获取玩家标签选项(筛选id) + * @param array $ids + * @return array + */ + public function getPlayerTagOptions(array $ids = []): array + { + $idsStr = json_encode($ids); + $cacheKey = md5("player_tag_options_ids_$idsStr"); + if (Cache::has($cacheKey)) { + return Cache::get($cacheKey); + } else { + if (!empty($ids)) { + $data = (new PlayerTag())->whereIn('id', $ids)->select(['name', 'id'])->get()->toArray(); + $data = $data ? array_column($data, 'name', 'id') : []; + Cache::set($cacheKey, $data, 24 * 60 * 60); + + return $data; + } + return []; + } + } + + /** + * 获取玩家标签(筛选id) + * @return array + */ + public function getPlayerTagOptionsFilter(): array + { + $cacheKey = "doc_player_tag_options_filter"; + if (Cache::has($cacheKey)) { + return Cache::get($cacheKey); + } else { + $data = (new PlayerTag())->select(['name', 'id'])->get()->toArray(); + $data = $data ? array_column($data, 'name', 'id') : []; + Cache::set($cacheKey, $data, 24 * 60 * 60); + + return $data; + } + } + + /** + * 玩家详情 + * @param array $data + * @return Detail + */ + public function playerDetail(array $data): Detail + { + return Detail::create($data, function (Detail $detail) { + $detail->item('name', admin_trans('player.fields.name')); + $detail->item('address', admin_trans('player_extend.fields.address')); + $detail->item('email', admin_trans('player_extend.fields.email')); + $detail->item('phone', admin_trans('player.fields.phone')); + $detail->item('line', admin_trans('player_extend.fields.line')); + $detail->item('created_at', admin_trans('player.fields.created_at')); + })->layout('vertical'); + } +} diff --git a/addons/webman/database/webman.sql b/addons/webman/database/webman.sql new file mode 100644 index 0000000..59ac9aa --- /dev/null +++ b/addons/webman/database/webman.sql @@ -0,0 +1,304 @@ +/* + Navicat Premium Data Transfer + + Source Server : 本地 + Source Server Type : MySQL + Source Server Version : 50739 (5.7.39) + Source Host : localhost:3306 + Source Schema : webman + + Target Server Type : MySQL + Target Server Version : 50739 (5.7.39) + File Encoding : 65001 + + Date: 01/11/2022 20:09:35 +*/ + +SET NAMES utf8mb4; +SET FOREIGN_KEY_CHECKS = 0; + +-- ---------------------------- +-- Table structure for admin_configs +-- ---------------------------- +DROP TABLE IF EXISTS `admin_configs`; +CREATE TABLE `admin_configs` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '配置字段', + `value` mediumtext COLLATE utf8mb4_unicode_ci COMMENT '配置值', + `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updated_at` datetime DEFAULT NULL COMMENT '更新时间', + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='系统配置表'; + +-- ---------------------------- +-- Records of admin_configs +-- ---------------------------- +BEGIN; +INSERT INTO `admin_configs` (`id`, `name`, `value`, `created_at`, `updated_at`) VALUES (1, 'web_name', 'Ex-Admin', '2022-10-17 05:02:50', NULL); +INSERT INTO `admin_configs` (`id`, `name`, `value`, `created_at`, `updated_at`) VALUES (2, 'web_logo', '/exadmin/img/logo.png', '2022-10-17 05:02:50', NULL); +INSERT INTO `admin_configs` (`id`, `name`, `value`, `created_at`, `updated_at`) VALUES (3, 'web_miitbeian', '', '2022-10-17 05:02:50', NULL); +INSERT INTO `admin_configs` (`id`, `name`, `value`, `created_at`, `updated_at`) VALUES (4, 'web_copyright', '©版权所有 2014-2021', '2022-10-17 05:02:50', NULL); +COMMIT; + +-- ---------------------------- +-- Table structure for admin_department +-- ---------------------------- +DROP TABLE IF EXISTS `admin_department`; +CREATE TABLE `admin_department` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `pid` int(11) DEFAULT '0' COMMENT '上级部门', + `name` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '部门名称', + `leader` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '负责人', + `phone` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '手机号', + `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态:1=正常,0=禁用', + `sort` int(11) NOT NULL DEFAULT '0' COMMENT '排序', + `path` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `deleted_at` timestamp NULL DEFAULT NULL, + `created_at` timestamp NULL DEFAULT NULL, + `updated_at` timestamp NULL DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='部门表'; + +-- ---------------------------- +-- Records of admin_department +-- ---------------------------- +BEGIN; +INSERT INTO `admin_department` (`id`, `pid`, `name`, `leader`, `phone`, `status`, `sort`, `path`, `deleted_at`, `created_at`, `updated_at`) VALUES (1, 0, '超级管理员', '', NULL, 1, 0, '1', NULL, '2022-10-17 05:02:50', '2022-11-01 12:04:28'); +COMMIT; + +-- ---------------------------- +-- Table structure for admin_file_attachment_cates +-- ---------------------------- +DROP TABLE IF EXISTS `admin_file_attachment_cates`; +CREATE TABLE `admin_file_attachment_cates` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '分类名称', + `pid` int(11) NOT NULL DEFAULT '0' COMMENT '上级id', + `permission_type` tinyint(4) NOT NULL DEFAULT '0' COMMENT '0所有人,1仅自己', + `sort` int(11) NOT NULL DEFAULT '0' COMMENT '排序', + `admin_id` int(11) NOT NULL DEFAULT '0' COMMENT '后台用户id', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='系统附件分类'; + +-- ---------------------------- +-- Records of admin_file_attachment_cates +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for admin_file_attachments +-- ---------------------------- +DROP TABLE IF EXISTS `admin_file_attachments`; +CREATE TABLE `admin_file_attachments` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `cate_id` int(11) NOT NULL COMMENT '分类id', + `uploader_id` int(11) NOT NULL DEFAULT '0' COMMENT '上传人id', + `type` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'image图片 file文件', + `file_type` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '文件类型', + `name` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '附件名称', + `real_name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '原始文件名', + `path` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '路径', + `url` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '访问url', + `ext` varchar(10) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '文件后缀', + `disk` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'disk', + `size` bigint(20) NOT NULL COMMENT '文件大小', + `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updated_at` datetime DEFAULT NULL COMMENT '更新时间', + `deleted_at` datetime DEFAULT NULL COMMENT '删除时间', + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='系统附件'; + +-- ---------------------------- +-- Records of admin_file_attachments +-- ---------------------------- +BEGIN; +INSERT INTO `admin_file_attachments` (`id`, `cate_id`, `uploader_id`, `type`, `file_type`, `name`, `real_name`, `path`, `url`, `ext`, `disk`, `size`, `created_at`, `updated_at`, `deleted_at`) VALUES (1, 0, 1, 'image', 'image/png', '39380f58597e5c734118d4381348d011.png', '9V2A6493.png', 'images/39380f58597e5c734118d4381348d011.png', 'http://localhost/storage/images/39380f58597e5c734118d4381348d011.png', 'png', 'local', 2360037, '2022-11-01 18:32:17', '2022-11-01 20:08:14', '2022-11-01 20:08:14'); +INSERT INTO `admin_file_attachments` (`id`, `cate_id`, `uploader_id`, `type`, `file_type`, `name`, `real_name`, `path`, `url`, `ext`, `disk`, `size`, `created_at`, `updated_at`, `deleted_at`) VALUES (2, 0, 1, 'image', 'image/png', '39380f58597e5c734118d4381348d011.png', '9V2A6493.png', 'images/39380f58597e5c734118d4381348d011.png', 'http://0.0.0.0:8787/storage/images/39380f58597e5c734118d4381348d011.png', 'png', 'local', 2360037, '2022-11-01 18:33:00', '2022-11-01 20:08:16', '2022-11-01 20:08:16'); +INSERT INTO `admin_file_attachments` (`id`, `cate_id`, `uploader_id`, `type`, `file_type`, `name`, `real_name`, `path`, `url`, `ext`, `disk`, `size`, `created_at`, `updated_at`, `deleted_at`) VALUES (3, 0, 1, 'image', 'image/png', '4cc63343847a09d643800c48c97df81c.png', '720.png', 'images/4cc63343847a09d643800c48c97df81c.png', 'http://0.0.0.0:8787/storage/images/4cc63343847a09d643800c48c97df81c.png', 'png', 'local', 24337, '2022-11-01 18:50:15', '2022-11-01 20:08:18', '2022-11-01 20:08:18'); +COMMIT; + +-- ---------------------------- +-- Table structure for admin_menus +-- ---------------------------- +DROP TABLE IF EXISTS `admin_menus`; +CREATE TABLE `admin_menus` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '名称', + `icon` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '图标', + `url` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '链接', + `plugin` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '插件名称', + `pid` int(11) NOT NULL DEFAULT '0' COMMENT '父级id', + `sort` int(11) NOT NULL DEFAULT '0' COMMENT '排序', + `status` tinyint(4) NOT NULL DEFAULT '1' COMMENT '状态(0:禁用,1:启用)', + `open` tinyint(4) NOT NULL DEFAULT '1' COMMENT '菜单展开(0:收起,1:展开)', + `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updated_at` datetime DEFAULT NULL COMMENT '更新时间', + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='系统菜单表'; + +-- ---------------------------- +-- Records of admin_menus +-- ---------------------------- +BEGIN; +INSERT INTO `admin_menus` (`id`, `name`, `icon`, `url`, `plugin`, `pid`, `sort`, `status`, `open`, `created_at`, `updated_at`) VALUES (1, 'system', 'SettingFilled', '', '', 0, 0, 1, 1, '2022-10-17 05:02:50', NULL); +INSERT INTO `admin_menus` (`id`, `name`, `icon`, `url`, `plugin`, `pid`, `sort`, `status`, `open`, `created_at`, `updated_at`) VALUES (2, 'system_manage', 'SettingFilled', '', '', 1, 1, 1, 1, '2022-10-17 05:02:50', NULL); +INSERT INTO `admin_menus` (`id`, `name`, `icon`, `url`, `plugin`, `pid`, `sort`, `status`, `open`, `created_at`, `updated_at`) VALUES (3, '首页', 'fas fa-home', 'ex-admin/addons-webman-controller-IndexController/index', '', 1, 0, 1, 1, '2022-10-17 05:02:50', '2022-11-01 20:08:50'); +INSERT INTO `admin_menus` (`id`, `name`, `icon`, `url`, `plugin`, `pid`, `sort`, `status`, `open`, `created_at`, `updated_at`) VALUES (4, 'config_manage', 'far fa-circle', 'ex-admin/addons-webman-controller-ConfigController/form', '', 2, 2, 1, 1, '2022-10-17 05:02:50', NULL); +INSERT INTO `admin_menus` (`id`, `name`, `icon`, `url`, `plugin`, `pid`, `sort`, `status`, `open`, `created_at`, `updated_at`) VALUES (5, 'attachment_manage', 'far fa-circle', 'ex-admin/addons-webman-controller-AttachmentController/index', '', 2, 3, 1, 1, '2022-10-17 05:02:50', NULL); +INSERT INTO `admin_menus` (`id`, `name`, `icon`, `url`, `plugin`, `pid`, `sort`, `status`, `open`, `created_at`, `updated_at`) VALUES (6, 'permissions_manage', 'fas fa-users', '', '', 1, 4, 1, 1, '2022-10-17 05:02:50', NULL); +INSERT INTO `admin_menus` (`id`, `name`, `icon`, `url`, `plugin`, `pid`, `sort`, `status`, `open`, `created_at`, `updated_at`) VALUES (7, 'admin', 'far fa-circle', 'ex-admin/addons-webman-controller-AdminController/index', '', 6, 5, 1, 1, '2022-10-17 05:02:50', NULL); +INSERT INTO `admin_menus` (`id`, `name`, `icon`, `url`, `plugin`, `pid`, `sort`, `status`, `open`, `created_at`, `updated_at`) VALUES (8, 'role_manage', 'far fa-circle', 'ex-admin/addons-webman-controller-RoleController/index', '', 6, 6, 1, 1, '2022-10-17 05:02:50', NULL); +INSERT INTO `admin_menus` (`id`, `name`, `icon`, `url`, `plugin`, `pid`, `sort`, `status`, `open`, `created_at`, `updated_at`) VALUES (9, 'menu_manage', 'far fa-circle', 'ex-admin/addons-webman-controller-MenuController/index', '', 6, 7, 1, 1, '2022-10-17 05:02:50', NULL); +INSERT INTO `admin_menus` (`id`, `name`, `icon`, `url`, `plugin`, `pid`, `sort`, `status`, `open`, `created_at`, `updated_at`) VALUES (10, 'department_manage', 'far fa-circle', 'ex-admin/addons-webman-controller-DepartmentController/index', '', 6, 8, 1, 1, '2022-10-17 05:02:50', NULL); +INSERT INTO `admin_menus` (`id`, `name`, `icon`, `url`, `plugin`, `pid`, `sort`, `status`, `open`, `created_at`, `updated_at`) VALUES (11, 'post_manage', 'far fa-circle', 'ex-admin/addons-webman-controller-PostController/index', '', 6, 9, 1, 1, '2022-10-17 05:02:50', NULL); +INSERT INTO `admin_menus` (`id`, `name`, `icon`, `url`, `plugin`, `pid`, `sort`, `status`, `open`, `created_at`, `updated_at`) VALUES (12, 'plug_manage', 'fas fa-plug', 'ex-admin/ExAdmin-ui-plugin-Controller/index', '', 0, 10, 1, 1, '2022-10-17 05:02:50', NULL); +COMMIT; + +-- ---------------------------- +-- Table structure for admin_post +-- ---------------------------- +DROP TABLE IF EXISTS `admin_post`; +CREATE TABLE `admin_post` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '岗位名称', + `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态:1=正常,0=禁用', + `sort` int(11) NOT NULL DEFAULT '0' COMMENT '排序', + `deleted_at` timestamp NULL DEFAULT NULL, + `created_at` timestamp NULL DEFAULT NULL, + `updated_at` timestamp NULL DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='岗位表'; + +-- ---------------------------- +-- Records of admin_post +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for admin_role_department +-- ---------------------------- +DROP TABLE IF EXISTS `admin_role_department`; +CREATE TABLE `admin_role_department` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `role_id` int(11) NOT NULL DEFAULT '0' COMMENT '角色id', + `department_id` int(11) NOT NULL DEFAULT '0' COMMENT '部门id', + `created_at` timestamp NULL DEFAULT NULL, + `updated_at` timestamp NULL DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='角色数据权限部门关联表'; + +-- ---------------------------- +-- Records of admin_role_department +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for admin_role_menus +-- ---------------------------- +DROP TABLE IF EXISTS `admin_role_menus`; +CREATE TABLE `admin_role_menus` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `role_id` int(11) NOT NULL DEFAULT '0' COMMENT '角色id', + `menu_id` int(11) NOT NULL DEFAULT '0' COMMENT '菜单id', + PRIMARY KEY (`id`), + KEY `admin_role_menus_role_id_menu_id_index` (`role_id`,`menu_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='系统角色菜单表'; + +-- ---------------------------- +-- Records of admin_role_menus +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for admin_role_permissions +-- ---------------------------- +DROP TABLE IF EXISTS `admin_role_permissions`; +CREATE TABLE `admin_role_permissions` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `role_id` int(11) NOT NULL DEFAULT '0' COMMENT '角色id', + `node_id` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '0' COMMENT '节点id', + PRIMARY KEY (`id`), + KEY `admin_role_permissions_role_id_node_id_index` (`role_id`,`node_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='系统角色权限表'; + +-- ---------------------------- +-- Records of admin_role_permissions +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for admin_role_users +-- ---------------------------- +DROP TABLE IF EXISTS `admin_role_users`; +CREATE TABLE `admin_role_users` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `role_id` int(11) NOT NULL DEFAULT '0' COMMENT '角色id', + `user_id` int(11) NOT NULL DEFAULT '0' COMMENT '用户id', + PRIMARY KEY (`id`), + KEY `admin_role_users_role_id_user_id_index` (`role_id`,`user_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='系统角色用户表'; + +-- ---------------------------- +-- Records of admin_role_users +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for admin_roles +-- ---------------------------- +DROP TABLE IF EXISTS `admin_roles`; +CREATE TABLE `admin_roles` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '权限角色名称', + `desc` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '备注说明', + `sort` int(11) NOT NULL DEFAULT '0' COMMENT '排序', + `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updated_at` datetime DEFAULT NULL COMMENT '更新时间', + `check_strictly` tinyint(1) NOT NULL DEFAULT '0', + `data_type` tinyint(4) NOT NULL DEFAULT '0' COMMENT '数据权限类型:0=全部数据权限,1=自定义数据权限,2=本部门及以下数据权限,3=本部门数据权限,4=本人数据权限', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='系统角色表'; + +-- ---------------------------- +-- Records of admin_roles +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for admin_users +-- ---------------------------- +DROP TABLE IF EXISTS `admin_users`; +CREATE TABLE `admin_users` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `username` varchar(120) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '用户账号', + `password` varchar(80) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '密码', + `nickname` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '姓名', + `avatar` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '头像', + `email` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '邮箱', + `phone` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '手机号', + `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态(0:禁用,1:启用)', + `remember_token` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', + `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updated_at` datetime DEFAULT NULL COMMENT '更新时间', + `deleted_at` datetime DEFAULT NULL COMMENT '删除时间', + `department_id` int(11) DEFAULT NULL COMMENT '部门id', + `post` json DEFAULT NULL COMMENT '岗位', + PRIMARY KEY (`id`), + UNIQUE KEY `admin_users_username_unique` (`username`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='系统用户表'; + +-- ---------------------------- +-- Records of admin_users +-- ---------------------------- +BEGIN; +INSERT INTO `admin_users` (`id`, `username`, `password`, `nickname`, `avatar`, `email`, `phone`, `status`, `remember_token`, `created_at`, `updated_at`, `deleted_at`, `department_id`, `post`) VALUES (1, 'admin', '$2y$10$fU0gFdv53meVyTqcSugSfudnj/CLiNAnZ1j/X3cdHWXCTVt8DoK7G', 'admin', '/exadmin/img/logo.png', '', '', 1, '', '2022-10-17 05:02:50', '2022-11-01 12:04:11', NULL, 1, NULL); +COMMIT; + +SET FOREIGN_KEY_CHECKS = 1; diff --git a/addons/webman/echart/Driver/Eloquent.php b/addons/webman/echart/Driver/Eloquent.php new file mode 100644 index 0000000..f60c8e4 --- /dev/null +++ b/addons/webman/echart/Driver/Eloquent.php @@ -0,0 +1,100 @@ +builder = $this->repository->newQuery(); + } + + /** + * 筛选 + * @param array $rule + * @return mixed + */ + public function filter(array $rule) + { + new Filter($this->builder,$rule); + } + + public function count($text,\Closure $query = null, $dateField = 'created_at'){ + $this->parseAggregate(__FUNCTION__,$text,'*',$query,$dateField); + } + + public function max($text, $field, \Closure $query = null, $dateField = 'created_at'){ + $this->parseAggregate(__FUNCTION__,$text,$field,$query,$dateField); + } + + public function min($text, $field, \Closure $query = null, $dateField = 'created_at'){ + $this->parseAggregate(__FUNCTION__,$text,$field,$query,$dateField); + } + + public function sum($text, $field, \Closure $query = null, $dateField = 'created_at'){ + $this->parseAggregate(__FUNCTION__,$text,$field,$query,$dateField); + } + + public function avg($text, $field, \Closure $query = null, $dateField = 'created_at'){ + $this->parseAggregate(__FUNCTION__,$text,$field,$query,$dateField); + } + + protected function parseAggregate($method,$text, $field, \Closure $query = null, $dateField = 'created_at'){ + $data = []; + if($this->echart instanceof LineChart){ + foreach (array_column($this->echart->xAxisData,'value') as $item) { + $data[] = $this->aggregate($method,$field,$query,$dateField,$item); + } + }else{ + $data = $this->aggregate($method,$field,$query,$dateField,$this->echart->getDateFilterValue()); + } + + $this->echart->data($text,$data); + } + + protected function aggregate($method,$field,\Closure $query = null,$dateField= 'created_at',$dateValue=null){ + $builder = clone $this->builder; + if($query){ + call_user_func($query,$builder); + } + + if($dateValue){ + switch ($dateValue) { + case 'yesterday': + $builder->whereBetween($dateField,[Carbon::yesterday()->format("Y-m-d 00:00:00"),Carbon::yesterday()->format("Y-m-d 23:59:59")]); + break; + case 'today': + $builder->whereBetween($dateField,[Carbon::today()->format("Y-m-d 00:00:00"),Carbon::today()->format("Y-m-d 23:59:59")]); + break; + case 'week': + $start = Carbon::now()->startOfWeek()->toDateString(); + $end = Carbon::now()->endOfWeek()->toDateString(); + $builder->whereBetween($dateField,[$start,$end]); + break; + case 'month': + $builder->whereBetween($dateField,[Carbon::now()->startOfMonth()->format("Y-m-d 00:00:00"),Carbon::now()->endOfMonth()->format("Y-m-d 23:59:59")]); + break; + case 'year': + $builder->whereBetween($dateField,[Carbon::now()->startOfYear()->format("Y-m-d 00:00:00"),Carbon::now()->endOfYear()->format("Y-m-d 23:59:59")]); + break; + default: + $builder->whereBetween($dateField,$dateValue); + } + } + + return $builder->$method($field); + + } +} diff --git a/addons/webman/echart/EchartManager.php b/addons/webman/echart/EchartManager.php new file mode 100644 index 0000000..4bd9824 --- /dev/null +++ b/addons/webman/echart/EchartManager.php @@ -0,0 +1,18 @@ +driver = new Eloquent(); + } + } +} diff --git a/addons/webman/exception/HttpResponseException.php b/addons/webman/exception/HttpResponseException.php new file mode 100644 index 0000000..0b3ccbb --- /dev/null +++ b/addons/webman/exception/HttpResponseException.php @@ -0,0 +1,44 @@ +response = $response; + } + + /** + * Get the underlying response instance. + * + * @return Response + */ + public function getResponse() + { + return $this->response; + } + public function render(Request $request): ?Response + { + return $this->getResponse(); // TODO: Change the autogenerated stub + } +} \ No newline at end of file diff --git a/addons/webman/exception/PermissionException.php b/addons/webman/exception/PermissionException.php new file mode 100644 index 0000000..4dbb4f2 --- /dev/null +++ b/addons/webman/exception/PermissionException.php @@ -0,0 +1,10 @@ +make($config); + if($driver instanceof \League\Flysystem\Filesystem){ + $filesystem = $driver; + }else{ + $filesystem = new \League\Flysystem\Filesystem($driver,$config); + } + return new FilesystemAdapter($filesystem); + } + public static function __callStatic($name, $arguments) + { + $self = new static(); + if($name == 'disk'){ + return $self->driver(...$arguments); + }else{ + return $self->driver()->$name(...$arguments); + } + } +} \ No newline at end of file diff --git a/addons/webman/filesystem/driver/Local.php b/addons/webman/filesystem/driver/Local.php new file mode 100644 index 0000000..2b51b34 --- /dev/null +++ b/addons/webman/filesystem/driver/Local.php @@ -0,0 +1,15 @@ +addPlugin(new FileUrl()); + $filesystem->addPlugin(new SignUrl()); + $filesystem->addPlugin(new TemporaryUrl()); + $filesystem->addPlugin(new SignatureConfig()); + $filesystem->addPlugin(new SetBucket()); + $filesystem->addPlugin(new Verify()); + $filesystem->addPlugin(new Kernel()); + return $filesystem; + } +} \ No newline at end of file diff --git a/addons/webman/filesystem/driver/Qiniu.php b/addons/webman/filesystem/driver/Qiniu.php new file mode 100644 index 0000000..22bc222 --- /dev/null +++ b/addons/webman/filesystem/driver/Qiniu.php @@ -0,0 +1,35 @@ +addPlugin(new FetchFile()); + $flysystem->addPlugin(new UploadToken()); + $flysystem->addPlugin(new FileUrl()); + $flysystem->addPlugin(new PrivateDownloadUrl()); + $flysystem->addPlugin(new RefreshFile()); + + return $flysystem; + } +} \ No newline at end of file diff --git a/addons/webman/form/Driver/Config.php b/addons/webman/form/Driver/Config.php new file mode 100644 index 0000000..fd3f431 --- /dev/null +++ b/addons/webman/form/Driver/Config.php @@ -0,0 +1,74 @@ +dispatchEvent('saving',[$this->form]); + if ($result instanceof Message) { + return $result; + } + foreach ($data as $field => $value) { + admin_sysconf($field, $value); + } + + $savedResult = $this->dispatchEvent('saved',[$this->form]); + if ($savedResult instanceof Message) { + return $savedResult; + } + if($this->form->isStepfinish()){ + $result = call_user_func($this->form->getSteps()->getFinish(),new StepResult($this->form,$data, $result, $id)); + return Response::success($result,'',202); + } + return message_success(admin_trans('form.save_success')); + } + + /** + * 返回唯一标识字段,一般数据库主键自增字段 + * @return string + */ + public function getPk(): string + { + return 'id'; + } + + /** + * 获取数据 + * @param string $field 字段 + * @return mixed + */ + public function get(string $field = null) + { + return admin_sysconf($field); + } + + /** + * 编辑数据 + * @param mixed $id + * @return mixed + */ + public function edit($id) + { + // TODO: Implement edit() method. + } + + +} diff --git a/addons/webman/form/Driver/Eloquent.php b/addons/webman/form/Driver/Eloquent.php new file mode 100644 index 0000000..1d331c3 --- /dev/null +++ b/addons/webman/form/Driver/Eloquent.php @@ -0,0 +1,203 @@ +trashed()) { + $this->data = $this->repository->withTrashed()->find($id); + } else { + $this->data = $this->repository->find($id); + } + return $this->data; + } + + public function trashed(): bool + { + return in_array(SoftDeletes::class, class_uses_recursive($this->repository)); + } + + public function model() + { + return $this->repository; + } + + /** + * 数据保存 + * @param array $data + * @return Message|Response + */ + public function save(array $data, $id = null) + { + //验证数据 + $result = $this->form->validator()->check($data, !is_null($id)); + if ($result instanceof Response) { + return $result; + } + $this->form->input($data); + $result = $this->dispatchEvent('saving', [$this->form]); + if ($result instanceof Message) { + return $result; + } + $tableField = $this->getTableFields($this->repository->getTable()); + if (!is_null($id)) { + $this->repository = $this->edit($id); + } + Db::connection($this->repository->getConnectionName())->beginTransaction(); + try { + foreach ($this->form->input() as $field => $value) { + if (in_array($field, $tableField)) { + $this->repository->setAttribute($field, $value); + } + } + if (!in_array($this->repository::CREATED_AT, $tableField) || !in_array($this->repository::UPDATED_AT, $tableField)) { + $this->repository->timestamps = false; + } + $result = $this->repository->save(); + foreach ($this->form->input() as $field => $value) { + if (method_exists($this->repository, $field)) { + $relationMethod = $this->repository->$field(); + if ($relationMethod instanceof BelongsToMany) { + $relationMethod->sync($value); + } elseif ($relationMethod instanceof HasOne || $relationMethod instanceof MorphOne || $relationMethod instanceof BelongsTo || $relationMethod instanceof MorphTo) { + $model = $this->repository->$field; + if (!$model) { + $model = $relationMethod->make(); + } + $this->relationSave($model, $value); + } elseif ($relationMethod instanceof HasMany || $relationMethod instanceof MorphMany) { + $pk = $relationMethod->getModel()->getKeyName(); + + $realtionUpdateIds = array_column($value, $pk); + if (!empty($this->repository->$field)) { + $deleteIds = $this->repository->$field->pluck($pk)->toArray(); + $deleteIds = array_diff($deleteIds, $realtionUpdateIds); + if (count($deleteIds) > 0) { + $this->repository->$field()->whereIn($pk, $deleteIds)->delete(); + } + } + $foreignKey = $relationMethod->getForeignKeyName(); + $parentKey = $relationMethod->getParentKey(); + + foreach ($value as $key => &$val) { + $model = $relationMethod->getModel()->newModelInstance(); + if (!empty($val[$pk])) { + $model = $model->find($val[$pk]); + } + $val[$foreignKey] = $parentKey; + + $this->relationSave($model, $val); + } + } + } + } + Db::connection($this->repository->getConnectionName())->commit(); + } catch (\Exception $exception) { + Db::connection($this->repository->getConnectionName())->rollBack(); + if (config('app.debug')) { + throw $exception; + } + + } + $savedResult = $this->dispatchEvent('saved', [$this->form]); + if ($savedResult instanceof Message) { + return $savedResult; + } + if ($this->form->isStepfinish()) { + $result = call_user_func($this->form->getSteps()->getFinish(), new StepResult($this->form, $data, $result, $id)); + return Response::success($result, '', 202); + } + if ($result) { + return message_success(admin_trans('form.save_success')); + } + return message_error(admin_trans('form.save_fail')); + } + protected function getTableFields($table){ + $tableFields = Db::connection($this->repository->getConnectionName())->select('SHOW FULL COLUMNS FROM '.$table); + $fields = []; + foreach ($tableFields as $tableField){ + $tableField = json_decode(json_encode($tableField),true); + $tableField = array_change_key_case($tableField); + $fields[] = $tableField['field']; + } + return $fields; + } + protected function relationSave(Model $model, array $data) + { + $tableField = $this->getTableFields($model->getTable()); + + foreach ($data as $field => $value) { + if (in_array($field, $tableField)) { + $model->$field = $value; + } + } + if (!in_array($model::CREATED_AT, $tableField) || !in_array($model::UPDATED_AT, $tableField)) { + $model->timestamps = false; + } + $model->save(); + } + + /** + * 返回唯一标识字段,一般数据库主键自增字段 + * @return string + */ + public function getPk(): string + { + return $this->repository->getKeyName(); + } + + /** + * 获取数据 + * @param string $field 字段 + * @return mixed + */ + public function get(string $field = null) + { + if (is_null($field)) { + return $this->data->toArray(); + } + $value = Arr::get($this->data, $field); + if (method_exists($this->repository, $field)) { + $relation = $this->repository->$field(); + if ($relation instanceof BelongsToMany) { + if (empty($value)) { + return []; + } else { + return $value->pluck($relation->getRelatedKeyName()); + } + } + } + return $value; + } + + +} diff --git a/addons/webman/form/FormManager.php b/addons/webman/form/FormManager.php new file mode 100644 index 0000000..94e7d1b --- /dev/null +++ b/addons/webman/form/FormManager.php @@ -0,0 +1,19 @@ +driver = new Eloquent(); + } + } + +} diff --git a/addons/webman/form/MyEditor.php b/addons/webman/form/MyEditor.php new file mode 100644 index 0000000..167cf8a --- /dev/null +++ b/addons/webman/form/MyEditor.php @@ -0,0 +1,16 @@ +attr('html-raw',true) + ->content(file_get_contents( plugin()->webman->getPath(). '/views/my_editor.vue')); + + return parent::jsonSerialize(); + } +} \ No newline at end of file diff --git a/addons/webman/form/Uploader.php b/addons/webman/form/Uploader.php new file mode 100644 index 0000000..5f07aa9 --- /dev/null +++ b/addons/webman/form/Uploader.php @@ -0,0 +1,112 @@ +disk)->put($filename, $content); + } + + /** + * 是否存在 + * @param string $path 路径 + * @return bool + */ + public function exists(string $path): bool + { + return Filesystem::disk($this->disk)->exists($path); + } + + /** + * 返回访问url + * @param string $path 路径 + * @return string + */ + public function url(string $path): string + { + + return Filesystem::disk($this->disk)->url($path); + } + + /** + * 临时目录 + * @return string + */ + protected function tempDirectory(): string + { + return runtime_path('tmp'); + } + + /** + * 写入文件 + * @param $content 文件内容 + * @param $filename 文件名 + * @return bool|string + */ + public function putContent($content, $filename) + { + $path = $this->directory . $filename . '.' . $this->extension; + return Filesystem::disk($this->disk)->put($path, $content); + } + + /** + * 上传 + * @param \Closure $complete + * @param bool $exists 判断秒传 + * @return Response + */ + public function upload(\Closure $complete = null, bool $exists = false) + { + return parent::upload(function (UploadedFile $file) { + if ($this->form) { + $component = $this->form->getImageComponent(); + if ($component) { + $thumbnail = $component->getThumbnail(); + //图片处理 + $interventionCall = $component->getInterventionCall(); + if (count($interventionCall) > 0) { + $image = Image::make($file->getRealPath()); + foreach ($interventionCall as $call) { + call_user_func_array([$image, $call['method']], $call['arguments']); + } + $file = $image->encode(null, null)->getEncoded(); + } + //生成缩略图 + if (count($thumbnail) > 0) { + if ($file instanceof UploadedFile) { + $data = $file->getRealPath(); + $filename = request()->input('identifier'); + } else { + $data = $file; + $filename = md5($data); + } + foreach ($thumbnail as $name => $size) { + $image = Image::make($data); + list($width, $height) = $size; + $content = $image->resize($width, $height) + ->encode(null, null) + ->getEncoded(); + $this->putContent($content, $filename . '-' . $name); + } + } + + } + } + return $file; + }, request()->input('type') == 'file'); // TODO: Change the autogenerated stub + } +} diff --git a/addons/webman/form/Validator.php b/addons/webman/form/Validator.php new file mode 100644 index 0000000..ba0c759 --- /dev/null +++ b/addons/webman/form/Validator.php @@ -0,0 +1,53 @@ +updateRule : $this->createRule; + $rules = []; + $messages = []; + foreach ($ruleArr as $field => $row) { + $rule = []; + if($row instanceof \Closure){ + $row = call_user_func_array($row,[$data,$this->form]); + } + foreach ($row as $key => $item) { + if (is_numeric($key)) { + $rule[] = $item; + } else { + $rule[] = $key; + $index = strpos($key, ':'); + if ($index !== false) { + $key = substr($key, 0, $index); + } + $messages["{$field}.{$key}"] = $item; + } + } + $rules[$field] = $rule; + } + $validator = validator($data, $rules, $messages); + if ($validator->fails()) { + return Response::success($validator->errors()->getMessages(), '', 422); + } + if($this->form->getSteps()){ + + if(!$this->form->isStepfinish()){ + return Response::success([], '', 201); + } + } + return true; + } +} diff --git a/addons/webman/grid/Driver/Eloquent.php b/addons/webman/grid/Driver/Eloquent.php new file mode 100644 index 0000000..e453a36 --- /dev/null +++ b/addons/webman/grid/Driver/Eloquent.php @@ -0,0 +1,457 @@ +builder = $this->repository->newQuery(); + if ($this->trashed() && $this->grid->isTrashed()) { + $this->builder->onlyTrashed(); + } + $this->setPk($this->repository->getKeyName()); + } + + /** + * 是否有回收站 + * @return bool + */ + public function trashed(): bool + { + return in_array(SoftDeletes::class, class_uses_recursive($this->repository)); + } + + + /** + * 恢复数据 + * @param array $ids 恢复id + * @return Message + */ + public function restore(array $ids): Message + { + $this->repository->whereIn($this->getPk(), $ids)->restore(); + return message_success(admin_trans('grid.restore_success')); + } + + /** + * 删除 + * @param array $ids 删除id + * @param bool $all 是否删除全部 + * @return Message + */ + public function delete(array $ids, bool $all = false): Message + { + $arg = $all ?: $ids; + $result = $this->dispatchEvent('deling', [$arg]); + if ($result instanceof Message) { + return $result; + } + if ($this->grid->isTrashed()) { + $result = $this->builder->when($all, function ($query) { + $query->onlyTrashed(); + }, function ($query) use ($ids) { + $query->whereIn($this->getPk(), $ids); + })->forceDelete(); + } else { + $result = $this->builder->when($all, function ($query) { + $query->whereRaw('1=1'); + }, function ($query) use ($ids) { + $query->whereIn($this->getPk(), $ids); + })->delete(); + } + $deletedResult = $this->dispatchEvent('deleted', [$arg]); + if ($deletedResult instanceof Message) { + return $deletedResult; + } + if ($result) { + return message_success(admin_trans('grid.delete_success')); + } + return message_error(admin_trans('grid.delete_error')); + } + + /** + * 拖拽排序 + * @param int $id 排序id + * @param int $sort 排序位置 + * @param string $field 字段 + * @return Message + */ + public function dragSort($id, int $sort, string $field): Message + { + $result = $this->dispatchEvent('sorting', [$id, $sort, $field]); + if ($result instanceof Message) { + return $result; + } + $pk = $this->getPk(); + $selectRaw = "{$pk},(@rownum := @rownum+1),case when @rownum = {$sort} then @rownum := @rownum+1 else @rownum := @rownum end AS rownum"; + + $sortSql = $this->builder->from(Db::raw("(SELECT @rownum := -1) r," . $this->repository->getTable())) + ->selectRaw($selectRaw) + ->reorder($field) + ->where($pk, '<>', $id) + ->toSql(); + $this->repository->where($pk, $id)->update([$field => $sort]); + + Db::connection($this->repository->getConnectionName())->statement("update {$this->repository->getTable()} inner join ({$sortSql}) a on a.{$pk}={$this->repository->getTable()}.{$pk} set `{$field}`=a.rownum", $this->builder->getBindings()); + + return message_success(admin_trans('grid.sort_success')); + } + + /** + * 输入框排序 + * @param int $id 排序id + * @param int $sort 排序位置 + * @param string $field 字段 + * @return Message + */ + public function inputSort($id, int $sort, string $field): Message + { + $result = $this->dispatchEvent('sorting', [$id, $sort, $field]); + if ($result instanceof Message) { + return $result; + } + $this->repository->where($this->getPk(), $id)->update([$field => $sort]); + return message_success(admin_trans('grid.sort_success')); + } + + /** + * 更新 + * @param array $ids 更新条件id集合 + * @param array $data 更新数据 + * @return Message + */ + public function update(array $ids, array $data): Message + { + + $result = $this->dispatchEvent('updateing', [$ids, $data]); + if ($result instanceof Message) { + return $result; + } + foreach ($ids as $id) { + $model = $this->repository->find($id); + foreach ($data as $field => $value) { + $model->$field = $value; + } + $model->save(); + } + $result = $this->dispatchEvent('updated', [$ids, $data]); + if ($result instanceof Message) { + return $result; + } + return message_success(admin_trans('grid.update_success')); + } + + /** + * 表格列触发排序 + * @param string $field 字段 + * @param string $sort 排序 asc desc + * @return mixed + */ + public function tableSort($field, $sort) + { + $this->builder->reorder($field, $sort); + } + + /** + * 筛选 + * @param array $rule + */ + public function filter(array $rule) + { + new Filter($this->builder, $rule); + } + + /** + * 快捷搜索 + * @param string $keyword 关键词 + * @param string|array|\Closure $search 搜索设置 + * @return mixed + */ + public function quickSearch($keyword, $search) + { + if ($keyword === '' || $keyword === null) { + return; + } + if ($search instanceof \Closure) { + $this->builder->where(function ($query) use ($search, $keyword) { + call_user_func_array($search, [$query, $keyword]); + }); + } + if (is_string($search)) { + $search = [$search]; + } + if (is_array($search)) { + $this->builder->where(function ($query) use ($search, $keyword) { + foreach ($search as $field) { + $query->orWhere($field, "LIKE", "%$keyword%"); + } + }); + } elseif (is_null($search)) { + + $this->builder->where(function ($query) use ($keyword) { + $tableField[$this->repository->getTable()] = $this->getTableField(); + $table = $this->repository->getTable(); + $wheres = []; + foreach ($this->grid->getColumns() as $column) { + $field = $column->attr('dataIndex'); + $using = $column->using; + $fields = explode('.', $field); + if (count($fields) > 1) { + $field = array_pop($fields); + $model = $this->repository; + foreach ($fields as $relation) { + $model = $model->$relation()->getRelated(); + } + if (!array_key_exists($model->getTable(), $tableField)) { + $tableField[$model->getTable()] = $this->getTableFieldInfo($model->getTable()); + } + $relation = implode('.', $fields); + $relationTableField = $tableField[$model->getTable()]; + $where = $this->buildOrWhere($field, $relationTableField, $using, $keyword); + + } else { + $relation = $table; + $where = $this->buildOrWhere($field, $tableField[$table], $using, $keyword); + } + if (count($where) > 0) { + if (isset($wheres[$relation])) { + $wheres[$relation] = array_merge($wheres[$relation], $where); + } else { + $wheres[$relation] = $where; + } + } + } + foreach ($wheres as $relation => $where) { + if ($relation == $table) { + $this->addOrWhereBinding($query, $where); + } else { + $query->orWhereHas($relation, function ($q) use ($where) { + $q->where(function ($query) use ($where) { + $this->addOrWhereBinding($query, $where); + }); + }); + } + } + }); + + } + } + + protected function addOrWhereBinding($query, $wheres) + { + foreach ($wheres as $where) { + $query->orWhere(...$where); + } + } + + protected function parseDateTime($type, $originValue) + { + if (in_array($type, ['datetime', 'timestamp', 'date'])) { + $value = strtotime($originValue); + if ($value === false) { + return $value; + } + if ('date' == $type) { + $value = date('Y-m-d', $value); + } else { + $value = date('Y-m-d H:i:s', $value); + } + } else { + $value = $originValue; + } + return $value; + } + + protected function buildOrWhere($field, $tableField, $using, $keyword) + { + $where = []; + if (array_key_exists($field, $tableField)) { + if (count($using) > 0) { + foreach ($using as $key => $value) { + if (strpos($value, $keyword) !== false) { + $where[] = [$field, "=", $key]; + } + } + } else { + $value = $this->parseDateTime($tableField[$field]['type'], $keyword); + if ($value !== false) { + if ($keyword == $value) { + $where[] = [$field, "LIKE", "%$keyword%"]; + } else { + $where[] = [$field, "=", $value]; + } + } + } + } + return $where; + } + + /** + * 预关联加载 + */ + protected function with() + { + $eagerLoad = $this->builder->getEagerLoads(); + $relations = []; + foreach ($this->grid->getColumns() as $column) { + $field = $column->attr('dataIndex'); + $fields = explode('.', $field); + if (count($fields) > 1) { + array_pop($fields); + $relation = implode('.', $fields); + if (method_exists($this->repository, $relation)) { + $relations[] = $relation; + } + } + } + $relations = array_merge($relations, $eagerLoad); + $this->builder->setEagerLoads([]); + $this->builder->with($relations); + } + + /** + * 数据源 + * @param int $page 第几页 + * @param int $size 分页大小 + * @param bool $hidePage 是否分页 + * @return mixed + */ + public function data(int $page, int $size, bool $hidePage) + { + $totalBuilder = clone $this->builder; + $totalBuilder = $totalBuilder->select(DB::raw('count(*) as total'))->get(); + if (count($totalBuilder) > 1) { + $total = $totalBuilder->count(); + } else { + $total = $totalBuilder->sum('total'); + } + $this->setTotal($total); + $this->with(); + if ($hidePage) { + return $this->builder->get(); + } else { + return $this->builder->forPage($page, $size)->get(); + } + } + + /** + * 返回总条数 + * @return int + */ + public function total(): int + { + return $this->total; + } + + /** + * 导出数据 + * @param array $selectIds 导出选中id + * @param array $columns 导出列 + * @param bool $all 是否导出全部 + * @return Response + */ + public function export(array $selectIds, array $columns, bool $all): Response + { + $progressKey = Request::input('ex_admin_progress_key', uniqid()); + $export = $this->grid->getExport(); + $export->setProgressKey($progressKey); + try { + if (Request::input('ex_admin_queue')) { + $request = (new Request())->getRequest(); + + $data = Request::input() + ['ex_admin_progress_key' => $progressKey, 'ex_admin_request' => [ + 'method' => Request::getMethod(), + 'server' => $request->server->all(), + 'header' => $request->headers->all(), + ]]; + Client::send('ex-admin-grid-export', $data); + } else { + $arr = []; + foreach ($columns as $column) { + if (isset($column['title']) && !empty($column['title'])) { + $arr[$column['dataIndex']] = $column['title']; + } + if (isset($column['children']) && !empty($column['children'])) { + foreach ($column['children'] as $children) { + if (isset($children['title']) && !empty($children['title'])) { + $arr[$children['dataIndex']] = $children['title']; + } + } + } + } + $columns = $arr; + $this->builder->when(!$all, function (Builder $builder) use ($selectIds) { + $builder->whereKey($selectIds); + }); + $count = $this->builder->count(); + $export->columns($columns)->count($count); + $this->builder->chunk(500, function ($data) use ($export) { + $data = $this->grid->parseColumn($data, true); + $export->write($data, function ($export) { + $export->save(Filesystem::path('')); + return Filesystem::url($export->getFilename() . '.' . $export->getExtension()); + }); + }); + } + } catch (\Throwable $exception) { + $export->exportError(); + } + return $export->export(); + } + + protected function getTableFieldInfo($table) + { + $tableFields = Db::connection($this->repository->getConnectionName())->select('SHOW FULL COLUMNS FROM ' . $table); + $fields = []; + foreach ($tableFields as $tableField) { + $tableField = json_decode(json_encode($tableField), true); + $tableField = array_change_key_case($tableField); + $fields[$tableField['field']] = $tableField; + } + return $fields; + } + + protected function getTableField() + { + if (count($this->tableField) == 0) { + $this->tableField = $this->getTableFieldInfo($this->repository->getTable()); + } + return $this->tableField; + } + + /** + * @return Builder|mixed + */ + public function model() + { + return $this->builder; + } +} diff --git a/addons/webman/grid/Filter.php b/addons/webman/grid/Filter.php new file mode 100644 index 0000000..3789bdf --- /dev/null +++ b/addons/webman/grid/Filter.php @@ -0,0 +1,138 @@ +getModel()->getConnectionName())->select('SHOW FULL COLUMNS FROM '.$table); + $fields = []; + foreach ($tableFields as $tableField){ + $tableField = json_decode(json_encode($tableField),true); + $tableField = array_change_key_case($tableField); + $fields[] = $tableField['field']; + } + return $fields; + } + public function __construct(Builder $builder,$rule) + { + $tableField = $this->getTableFields($builder,$builder->getModel()->getTable()); + $builder->where(function ($query) use($rule,$tableField){ + $this->builder = $query; + foreach ($rule as $item) { + if(is_numeric($item['value']) || !empty($item['value'])){ + $fields = explode( '->',$item['field']); + $field = current($fields); + if($item['relation'] || in_array($field, $tableField)){ + $this->parseFilter($item['type'],$item['relation'],$item['rule'], $item['field'], $item['value']); + } + } + } + }); + } + + /** + * 关联筛选 + + * @param string $rule 规则类型 + * @param string $field 字段 + * @param mixed $value 筛选值 + * @param string $relation 关联方法 + */ + public function whereHas($relation, $rule, $field, $value) + { + $this->builder->whereHas($relation, function ($builder) use ($rule, $field, $value) { + $this->parseFilter($rule,null, $field, $value, $builder); + }); + } + + /** + * 解析筛选 + * @param string $type 类型 + * @param string $relation 关联方法 + * @param string $rule 规则类型 + * @param string $field 字段 + * @param mixed $value 筛选值 + * @param Builder $builder + */ + public function parseFilter($type,$relation,$rule, $field, $value, $builder = null) + { + if (is_null($builder)) { + $builder = $this->builder; + } + if($relation){ + return $builder->whereHas($relation, function ($query) use ($type,$rule, $field, $value) { + $this->parseFilter($type,null,$rule, $field, $value, $query); + }); + } + if($type == 'cascader'){ + return $builder->where(function ($query) use($rule,$value){ + foreach ($value as $row){ + $query->orWhere(function ($q) use($rule,$row){ + foreach ($row as $field=>$val){ + $this->parseFilter('normal',null,$rule,$field,$val,$q); + } + }); + } + }); + } + if ($field == 'player_tag') { + $rule = 'findIn'; + } + switch ($rule) { + case 'eq': + $builder->where($field, $value); + break; + case 'neq': + $builder->where($field, '!=', $value); + break; + case 'egt': + $builder->where($field, '>=', $value); + break; + case 'elt': + $builder->where($field, '<=', $value); + break; + case 'gt': + $builder->where($field, '>', $value); + break; + case 'lt': + $builder->where($field, '<', $value); + break; + case 'between': + $builder->whereBetween($field, $value); + break; + case 'notBetween': + $builder->whereNotBetween($field, $value); + break; + case 'like': + $builder->where($field, 'LIKE', "%$value%"); + break; + case 'json': + list($field,$node) = explode('->',$field); + $builder->whereRaw("JSON_EXTRACT({$field},'$.{$node}') = '{$value}'"); + break; + case 'jsonLike': + list($field,$node) = explode('->',$field); + $builder->whereRaw("JSON_EXTRACT({$field},'$.{$node}') LIKE '%{$value}%'"); + break; + case 'jsonArrLike': + list($field,$node) = explode('->',$field); + $builder->whereRaw("JSON_EXTRACT({$field},'$[*].{$node}') LIKE '%{$value}%'"); + break; + case 'in': + $builder->whereIn($field, $value); + break; + case 'notIn': + $builder->whereNotIn($field, $value); + break; + case 'findIn': + $builder->whereRaw("FIND_IN_SET('{$value}',{$field})"); + break; + } + } +} diff --git a/addons/webman/grid/GridManager.php b/addons/webman/grid/GridManager.php new file mode 100644 index 0000000..129ac80 --- /dev/null +++ b/addons/webman/grid/GridManager.php @@ -0,0 +1,17 @@ +driver = new Eloquent(); + } + } +} diff --git a/addons/webman/grid/Jobs/Export.php b/addons/webman/grid/Jobs/Export.php new file mode 100644 index 0000000..0582c5a --- /dev/null +++ b/addons/webman/grid/Jobs/Export.php @@ -0,0 +1,37 @@ +initialize($data,$data,[],[],[],$data['ex_admin_request']['server']); + $q->headers = new HeaderBag($data['ex_admin_request']['header']); + $q->setMethod($data['ex_admin_request']['method']); + }); + $class = str_replace('-', '\\', $data['ex_admin_class']); + Container::getInstance() + ->make(Route::class) + ->invokeMethod($class, $data['ex_admin_function'], $data) + ->jsonSerialize(); + } +} diff --git a/addons/webman/helpers.php b/addons/webman/helpers.php new file mode 100644 index 0000000..8ff4fab --- /dev/null +++ b/addons/webman/helpers.php @@ -0,0 +1,284 @@ +webman->config('database.config_model'); + if (is_null($name)) { + return $model::get()->toArray(); + } + if (is_null($value)) { + $value = $model::where('name', $name)->value('value'); + if (is_null($value)) { + return $value; + }; + $json = json_decode($value, true); + if (is_array($json)) { + return $json; + } else { + return $value; + } + } else { + if (is_array($value)) { + $value = json_encode($value, JSON_UNESCAPED_UNICODE); + } + return $model::updateOrCreate(['name' => $name], ['value' => $value]); + } + } +} + +if (!function_exists('validator')) { + /** + * Create a new Validator instance. + * + * @param array $data + * @param array $rules + * @param array $messages + * @param array $customAttributes + * @return ValidatorFactory + */ + function validator(array $data = [], array $rules = [], array $messages = [], array $customAttributes = []) + { + $factory = new ValidatorFactory(); + if (func_num_args() === 0) { + return $factory; + } + $factory->setPresenceVerifier(new \Illuminate\Validation\DatabasePresenceVerifier(\Illuminate\Database\Eloquent\Model::getConnectionResolver())); + + return $factory->make($data, $rules, $messages, $customAttributes); + } +} + +if (!function_exists('getGameTypeCateName')) { + /** + * 获取游戏类型转义名称 + * @param $val + * @return string + */ + function getGameTypeCateName($val): string + { + return admin_trans('game_type.game_type_cate.' . $val); + } +} + +if (!function_exists('floorToCoinsSecond')) { + function floorToCoinsSecond($number) + { + if (!is_numeric($number)) { + return $number; + } + + return number_format(($number * 100) / 100, 2); + } +} + +if (!function_exists('playerManualSystem')) { + /** + * 系统加点 + * @param $data + * @throws Exception + */ + function playerManualSystem($data) + { + $money = (float)$data['money']; + if ($money <= 0) { + throw new Exception(admin_trans('player.wallet.operation_amount_error')); + } + if ($data['type'] == PlayerMoneyEditLog::TYPE_INCREASE) { + if (!in_array($data['increase_action'], [ + PlayerMoneyEditLog::ACTIVITY_GIVE, + PlayerMoneyEditLog::RECHARGE, + PlayerMoneyEditLog::VIP_RECHARGE, + PlayerMoneyEditLog::OTHER, + PlayerMoneyEditLog::ADMIN_INCREASE + ])) { + throw new Exception(admin_trans('player.wallet.wallet_type_error')); + } + $action = $data['increase_action']; + } else { + if ($data['deduct_action'] != PlayerMoneyEditLog::ADMIN_DEDUCT) { + throw new Exception(admin_trans('player.wallet.wallet_type_error')); + } + $action = $data['deduct_action']; + } + /** @var Player $player */ + $player = Player::find($data['id']); + $tradeno = date('YmdHis') . rand(10000, 99999); + $originMoney = $player->wallet->money; + + $playerMoneyEditLog = new PlayerMoneyEditLog; + $playerMoneyEditLog->player_id = $player->id; + $playerMoneyEditLog->department_id = $player->department_id; + $playerMoneyEditLog->type = $data['type']; + $playerMoneyEditLog->action = $action; + $playerMoneyEditLog->tradeno = $tradeno; + $playerMoneyEditLog->currency = $player->currency; + $playerMoneyEditLog->money = $money; + $playerMoneyEditLog->inmoney = $money; + $playerMoneyEditLog->remark = $data['remark']; + $playerMoneyEditLog->user_id = Admin::id() ?? 0; + $playerMoneyEditLog->user_name = !empty(Admin::user()) ? Admin::user()->toArray()['username'] : trans('system_automatic', [], 'message'); + $playerMoneyEditLog->save(); + + $afterMoney = playerUpdateMoney($player, $playerMoneyEditLog, $data['type'], $money, 'wallet_modify', $playerMoneyEditLog->type == PlayerMoneyEditLog::TYPE_INCREASE ? PlayerDeliveryRecord::TYPE_MODIFIED_AMOUNT_ADD : PlayerDeliveryRecord::TYPE_MODIFIED_AMOUNT_DEDUCT); + + $playerMoneyEditLog->origin_money = $originMoney; + $playerMoneyEditLog->after_money = $afterMoney; + $playerMoneyEditLog->save(); + } +} + + +if (!function_exists('playerUpdateMoney')) { + /** + * 玩家主錢包加扣點 + * @param Player $player 玩家信息 + * @param object $target 资料表 + * @param int $type 加点扣点 + * @param float $money 金额 + * @param string $source 来源 + * @param int $deliveryType 类型 + * @throws Exception + */ + function playerUpdateMoney(Player $player, object $target, int $type, float $money, string $source, int $deliveryType) + { + if (!in_array($type, [PlayerMoneyEditLog::TYPE_DEDUCT, PlayerMoneyEditLog::TYPE_INCREASE])) { + throw new Exception(admin_trans('player.wallet.wallet_type_error')); + } + + if (!$player->id) { + throw new Exception(admin_trans('player.wallet.player_error')); + } + + if (!$target->id) { + throw new Exception(admin_trans('player.wallet.wallet_action_log_not_found')); + } + + //玩家加點數 + /** @var PlayerPlatformCash $machineWallet */ + $machineWallet = PlayerPlatformCash::where('platform_id', PlayerPlatformCash::PLATFORM_SELF)->where('player_id', $player->id)->first(); + $originMoney = $machineWallet->money; + if ($type == PlayerMoneyEditLog::TYPE_INCREASE) { + $machineWallet->money = bcadd($machineWallet->money, $money, 2); + } else { + if ($money > $originMoney) { + throw new Exception(admin_trans('player.wallet.insufficient_player_money')); + } + $machineWallet->money = bcsub($machineWallet->money, $money, 2); + } + $machineWallet->save(); + //寫入金流明細 + $playerDeliveryRecord = new PlayerDeliveryRecord; + $playerDeliveryRecord->player_id = $player->id; + $playerDeliveryRecord->department_id = $player->department_id; + $playerDeliveryRecord->target = $target->getTable(); + $playerDeliveryRecord->target_id = $target->id; + $playerDeliveryRecord->type = $deliveryType; + $playerDeliveryRecord->source = $source; + $playerDeliveryRecord->amount = $money; + $playerDeliveryRecord->amount_before = $originMoney; + $playerDeliveryRecord->amount_after = $machineWallet->money; + $playerDeliveryRecord->tradeno = $target->tradeno ?? ''; + $playerDeliveryRecord->remark = $target->remark ?? ''; + $playerDeliveryRecord->user_id = Admin::id() ?? 0; + $playerDeliveryRecord->user_name = !empty(Admin::user()) ? Admin::user()->toArray()['username'] : trans('system_automatic', [], 'message'); + $playerDeliveryRecord->save(); + + return $machineWallet->money; + } +} + +if (!function_exists('isTime')) { + /** + * 是否是时间格式 + * @param $timeStr + * @return bool + */ + function isTime($timeStr): bool + { + //年-月-日 + $regex1 = '/^\d{4}-\d{2}-\d{2}$/'; + //时:分:秒 + $regex2 = '/^\d{2}:\d{2}:\d{2}$/'; + //年-月-日 时:分:秒 + $regex3 = '/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/'; + + if (preg_match($regex1, $timeStr) || preg_match($regex2, $timeStr) || preg_match($regex3, $timeStr)) { + return true; + } else { + return false; + } + } +} + +if (!function_exists('getSeatOptions')) { + /** + * 炮台位置 + * @return array + */ + function getSeatOptions(): array + { + return [ + 1 => admin_trans('machine.seat.1'), + 2 => admin_trans('machine.seat.2'), + 3 => admin_trans('machine.seat.3'), + 4 => admin_trans('machine.seat.4'), + 5 => admin_trans('machine.seat.5'), + 6 => admin_trans('machine.seat.6'), + 7 => admin_trans('machine.seat.7'), + 8 => admin_trans('machine.seat.8'), + ]; + } +} + +if (!function_exists('getAdminUserListOptions')) { + /** + * 获取管理员列表 + * @param int $departmentId + * @param int $type + * @return array + */ + function getAdminUserListOptions(int $departmentId = 1, int $type = 1): array + { + $optionList = []; + $userList = AdminUser::query()->where('status', 1)->where('type', $type)->where('department_id', $departmentId)->whereNull('deleted_at')->get(); + /** @var AdminUser $item */ + foreach ($userList as $item) { + $optionList[$item->id] = $item->nickname; + } + + return $optionList; + } +} + +if (!function_exists('getDayOfWeek')) { + + /** + * 数字转星期 + * @param $number + * @return string + */ + function getDayOfWeek($number): string + { + if ($number >= 0 && $number < 7) { + return admin_trans('activity.week.' . $number); + } else { + return ''; + } + } +} \ No newline at end of file diff --git a/addons/webman/ide/Echart.php b/addons/webman/ide/Echart.php new file mode 100644 index 0000000..2fc2986 --- /dev/null +++ b/addons/webman/ide/Echart.php @@ -0,0 +1,18 @@ +=1.1.4", + "author": "rocky", + "namespace": "addons\\webman", + "require": [] +} \ No newline at end of file diff --git a/addons/webman/lang/Ma-my/commission_record.php b/addons/webman/lang/Ma-my/commission_record.php new file mode 100644 index 0000000..c6dc956 --- /dev/null +++ b/addons/webman/lang/Ma-my/commission_record.php @@ -0,0 +1,24 @@ + 'Main dan dapatkan rekod', + 'fields' => [ + 'id' => 'ID', + 'recharge_amount' => 'Jumlah deposit awal', + 'total_amount' => 'Jumlah komisi', + 'damage_amount' => 'Jumlah kehilangan pelanggan', + 'amount' => 'Komisi semasa', + 'ratio' => 'kadar komisi', + 'date' => 'Tarikh penyelesaian', + 'create_at' => 'Masa ciptaan', + 'commission_first_recharge' => 'Muat pertama pengguna', + 'commission_damage' => 'Customer loss commission ratio', + 'commission_chip_multiple' => 'Banyak volum pengekodan', + ], + 'player_info' => 'Maklumat pemain', + 'parent_player_info' => 'Pemain berkongsi keuntungan', + 'commission_setting' => 'Main untuk mendapatkan konfigurasi', + 'commission_first_recharge' => 'Memundang pengguna baru, pengguna baru boleh menerima {$usd}USD untuk muat semula pertama mereka', + 'commission_damage' => '{$ratio}% daripada kerugian pelanggan harian akan diberikan kepada anda sebagai komisen.', + 'commission_chip_multiple' => 'Komisen untuk aktiviti ini adalah sama seperti COINS yang Top Up', +]; diff --git a/addons/webman/lang/Ma-my/menu.php b/addons/webman/lang/Ma-my/menu.php new file mode 100644 index 0000000..d69b2dd --- /dev/null +++ b/addons/webman/lang/Ma-my/menu.php @@ -0,0 +1,121 @@ + 'Tambah Menu', + 'title' => 'Pengurusan Menu Sistem', + 'fields' => [ + 'top' => 'Menu Puncak', + 'pid' => 'Menu Atasan', + 'name' => 'Nama Menu', + 'url' => 'Pautan Menu', + 'icon' => 'Ikon Menu', + 'sort' => 'Susunan', + 'status' => 'Status', + 'open' => 'Kembang Menu', + 'super_status' => 'Status Super Admin', + 'type' => 'Jenis Menu', + ], + 'options' => [ + 'admin_visible' => [ + [1 => 'Paparkan'], + [0 => 'Sembunyikan'] + ] + ], + 'type' => [ + AdminDepartment::TYPE_DEPARTMENT => 'Menu Stesen Utama', + AdminDepartment::TYPE_CHANNEL => 'Menu Saluran', + ], + 'titles' => [ + 'home' => 'Laman Utama', + 'system' => 'Sistem', + 'system_manage' => 'Pengurusan Sistem', + 'config_manage' => 'Pengurusan Konfigurasi', + 'attachment_manage' => 'Pengurusan Lampiran', + 'permissions_manage' => 'Pengurusan Kebenaran', + 'admin' => 'Pengurusan Pengguna', + 'role_manage' => 'Pengurusan Peranan', + 'menu_manage' => 'Pengurusan Menu', + 'plug_manage' => 'Pengurusan Plugin', + 'department_manage' => 'Pengurusan Jabatan', + 'post_manage' => 'Pengurusan Jawatan', + /** Admin Pusat */ + 'admin_manage' => 'Pengurusan Admin Utama', + 'data_center' => 'Pusat Data', + // Pengurusan Pengguna + 'user_manage' => 'Pengurusan Pemain', + 'user_manage_list' => 'Senarai Pemain', + 'accounting_change_records' => 'Rekod Perubahan Akaun', + // Data Kewangan + 'financial_data' => 'Data Kewangan', + 'recharge_record' => 'Rekod Pengisian', + 'withdrawal_records' => 'Rekod Pengeluaran', + // Pusat Laporan + 'report_center' => 'Pusat Laporan', + // Pengurusan Klien + 'client_manager' => 'Pengurusan Klien', + 'rotation_chart_manager' => 'Pengurusan Gambar Putar', + 'announcement_manager' => 'Pengurusan Pengumuman', + 'system_settings' => 'Tetapan Sistem', + // Pengurusan Saluran + 'channel_manager' => 'Pengurusan Saluran', + 'channel_list' => 'Senarai Saluran', + 'currency_manager' => 'Pengurusan Mata Wang', + /** Saluran Backend */ + 'channel_manage' => 'Pengurusan Saluran', + 'channel_data_center' => 'Pusat Data', + // Pengurusan Pemain + 'channel_player_manage' => 'Pengurusan Pemain', + 'channel_player_list' => 'Senarai Pemain', + 'channel_player_accounting_change_records' => 'Rekod Perubahan Akaun', + // Konfigurasi Front-end + 'channel_client_manager' => 'Pengurusan Klien', + 'channel_rotation_chart_manager' => 'Pengurusan Gambar Putar', + 'channel_marquee_manager' => 'Pengurusan Marquee', + 'channel_announcement_manager' => 'Pengurusan Pengumuman', + // Pengurusan Kewangan + 'channel_financial_manager' => 'Pengurusan Kewangan', + 'channel_recharge_review' => 'Semakan Pengisian', + 'channel_withdrawal_review' => 'Semakan Pengeluaran', + 'channel_withdrawal_and_payment' => 'Pembayaran Pengeluaran', + 'channel_recharge_record' => 'Rekod Pengisian', + 'channel_withdrawal_records' => 'Rekod Pengeluaran', + 'channel_recharge_channel_configuration' => 'Konfigurasi Saluran Pengisian', + 'channel_financial_operation_records' => 'Rekod Operasi Kewangan', + // Pengurusan Kebenaran + 'channel_auth_manager' => 'Pengurusan Kebenaran', + 'channel_admin_user_manager' => 'Pengurusan Pengguna', + 'channel_post_manager' => 'Pengurusan Jawatan', + // Pusat Log + 'log_center' => 'Pusat Log', + 'player_edit_log' => 'Log Suntingan Profil Pemain', + 'player_money_edit_log' => 'Log Operasi Dompet', + // Pengurusan Permainan + 'game_manage' => 'Pengurusan Permainan', + 'game_record' => 'Rekod Permainan', + 'game_out_in' => 'Rekod Pindah Masuk/Keluar Permainan', + 'game_list' => 'Senarai Permainan', + 'version_manager' => 'Pengurusan Versi', + 'activity_manager' => 'Pengurusan Aktiviti', + 'activity_list' => 'Senarai Aktiviti', + 'recharge_manager' => 'Pengurusan Pengisian', + 'recharge_channels' => 'Saluran Pengisian', + 'play_and_earn' => 'Main Sambil Cari Duit', + 'play_and_earn_record' => 'Rekod Main Cari Duit', + // Pengurusan Promosi + 'channel_player_promoter' => 'Pengurusan Promosi', + 'channel_player_promoter_list' => 'Senarai Promoter', + 'profit_record' => 'Laporan berkongsi keuntungan', + 'profit_settlement_record' => 'Bahagi rekod penyelesaian keuntungan', + '游戏类型列表' => 'Senarai Jenis Permainan', + //qrcode + '二维码管理' => 'Pengurusan kod QR', + '二维码批次列表' => 'Senarai batch kod QR', + '持码人列表' => 'Senarai pemegang kod', + '广播管理' => 'pengurusan siaran', + '手动广播管理' => 'Pengurusan siaran manual', + '自动广播管理' => 'Pengurusan siaran automatik', + '公告管理' => 'Pengurusan pengumuman', + '公告列表' => 'Senarai Pengumuman', + ] +]; diff --git a/addons/webman/lang/cam_dia/activity.php b/addons/webman/lang/cam_dia/activity.php new file mode 100644 index 0000000..d0cd4b5 --- /dev/null +++ b/addons/webman/lang/cam_dia/activity.php @@ -0,0 +1,48 @@ + 'សកម្មភាព', + 'fields' => [ + 'id' => 'ID', + 'status' => 'ស្ថានភាព', + 'is_show' => 'បង្អួចលេចឡើងទំព័រដើម', + 'sort' => 'តម្រៀប', + 'link' => 'ប្រភេទ', + 'recharge_id' => 'ការកំណត់រចនាសម្ព័ន្ធបញ្ចូលទឹកប្រាក់', + 'start_time' => 'ម៉ោងចាប់ផ្តើម', + 'end_time' => 'ពេលវេលាបញ្ចប់', + 'created_at' => 'ពេលវេលាបង្កើត', + 'time_frame' => 'ម៉ោងបើក', + ], + 'created_at_start' => 'ម៉ោងចាប់ផ្តើម', + 'created_at_end' => 'ពេលវេលាបញ្ចប់', + 'not_fount' => 'រកមិនឃើញសកម្មភាព', + 'activity_content_must' => 'សូមបំពេញខ្លឹមសារសកម្មភាព', + 'rang_time' => 'ម៉ោងបើក', + 'activity_content' => 'មាតិកាសកម្មភាព', + 'activity_info' => 'ព័ត៌មានសកម្មភាព', + 'sign_setting' => 'ការកំណត់ការចូល', + 'chip_amount' => 'ចំនួនសរសេរកូដ', + 'chip_multiple' => 'កូដច្រើន', + 'reward_amount' => 'ចំនួនរង្វាន់', + 'type_not_found' => 'សូមជ្រើសរើសរបៀបសកម្ម', + 'type_error' => 'កំហុសរបៀបសកម្មភាព', + 'cycle_type_not_found' => 'សូមជ្រើសរើសប្រភេទវដ្ត', + 'cycle_type_error' => 'កំហុស​ប្រភេទ​វដ្ត', + 'cycle_data_not_found' => 'សូមជ្រើសរើសការកំណត់រចនាសម្ព័ន្ធប្រភេទវដ្ត', + 'cycle_data_error' => 'សូមជ្រើសរើសការកំណត់រចនាសម្ព័ន្ធប្រភេទវដ្ត', + 'cycle_week' => 'រៀងរាល់សប្តាហ៍ {week} បើក', + 'cycle_month' => 'រៀងរាល់ខែ, {month} ចាប់ផ្តើម', + 'status' => 'ស្ថានភាព', + 'week' => ['ថ្ងៃអាទិត្យ', 'ច័ន្ទ', 'ថ្ងៃអង្គារ', 'ថ្ងៃពុធ', 'ថ្ងៃព្រហស្បតិ៍', 'សុក្រ', 'ថ្ងៃសៅរ៍'], + 'sign_setting_date' => [ + 'ថ្ងៃដំបូង', + 'ថ្ងៃទីពីរ', + 'ថ្ងៃទីបី', + 'ថ្ងៃទីបួន', + 'ថ្ងៃទីប្រាំ', + 'ថ្ងៃទីប្រាំមួយ', + 'ថ្ងៃទីប្រាំពីរ' + ], +]; diff --git a/addons/webman/lang/cam_dia/activity_content.php b/addons/webman/lang/cam_dia/activity_content.php new file mode 100644 index 0000000..be07e7e --- /dev/null +++ b/addons/webman/lang/cam_dia/activity_content.php @@ -0,0 +1,14 @@ + 'ខ្លឹមសារសកម្មភាព', + 'fields' => [ + 'id' => 'ID', + 'name' => 'ឈ្មោះសកម្មភាព', + 'activity_id' => 'លេខសម្គាល់សកម្មភាព', + 'lang' => 'កំណត់អត្តសញ្ញាណភាសា', + 'picture' => 'រូបភាពសំខាន់នៃសកម្មភាព', + 'created_at' => 'ពេលវេលាបង្កើត', + ] +]; diff --git a/addons/webman/lang/cam_dia/admin.php b/addons/webman/lang/cam_dia/admin.php new file mode 100644 index 0000000..7c9bdc3 --- /dev/null +++ b/addons/webman/lang/cam_dia/admin.php @@ -0,0 +1,50 @@ + 'ព័ត៌មានផ្ទាល់ខ្លួន', + 'system_user' => 'អ្នកប្រើប្រាស់ប្រព័ន្ធ', + 'not_access_permission' => 'គ្មានការអនុញ្ញាតឱ្យចូលដំណើរការប្រតិបត្តិការនេះទេ', + 'super_admin' => 'អ្នកគ្រប់គ្រងជាន់ខ្ពស់', + 'super_admin_delete' => 'អ្នកគ្រប់គ្រងជាន់ខ្ពស់មិនអាចលុបបានទេ!', + 'super_admin_disabled' => 'អ្នកគ្រប់គ្រងជាន់ខ្ពស់មិនអាចបិទបានទេ!', + 'reset_password' => 'កំណត់ពាក្យសម្ងាត់ឡើងវិញ', + 'old_password' => 'ពាក្យសម្ងាត់ចាស់', + 'old_password_error' => 'ពាក្យសម្ងាត់ចាស់ខុស', + 'new_password' => 'ពាក្យសម្ងាត់ថ្មី', + 'confim_password' => 'បញ្ជាក់ពាក្យសម្ងាត់', + 'access_rights' => 'សិទ្ធិចូលប្រើ', + 'normal' => 'ធម្មតា', + 'disable' => 'បិទ', + 'true' => 'បាទ', + 'false' => 'ទេ', + 'username_exist' => 'ឈ្មោះអ្នកប្រើប្រាស់ស្ទួនមាន', + 'phone_exist' => 'លេខទូរស័ព្ទមានរួចហើយ', + 'password_min_number' => 'ពាក្យសម្ងាត់ត្រូវតែមានយ៉ាងហោចណាស់ 6 ខ្ទង់', + 'password_confim_validate' => 'ពាក្យ​សម្ងាត់​បញ្ចូល​មិន​ស៊ីសង្វាក់គ្នា', + 'update_password' => 'ប្តូរពាក្យសម្ងាត់', + 'open' => 'បើក', + 'close' => 'បិទ', + 'department' => 'នាយកដ្ឋាន', + 'channel' => 'ឆានែល', + 'department_tree' => 'នាយកដ្ឋានកណ្តាល', + 'channel_tree' => 'ប៉ុស្តិ៍រង', + 'pass_help' => 'ពាក្យសម្ងាត់ចាប់ផ្តើម 123456 វាត្រូវបានណែនាំថាពាក្យសម្ងាត់មានអក្សរធំ និងអក្សរតូច លេខ និងនិមិត្តសញ្ញា', + 'search_department' => 'នាយកដ្ឋានស្វែងរក', + 'post' => 'ប្រកាស', + 'admin_user' => 'អ្នកគ្រប់គ្រង', + 'success' => 'ជោគជ័យ', + 'error' => 'បរាជ័យ', + 'system_messages' => 'សារប្រព័ន្ធ', + 'fields' => [ + 'username' => 'ឈ្មោះអ្នកប្រើប្រាស់', + 'nickname' => 'ឈ្មោះហៅក្រៅអ្នកប្រើប្រាស់', + 'avatar' => 'រូបតំណាងអ្នកប្រើប្រាស់', + 'password' => 'ពាក្យសម្ងាត់', + 'phone' => 'លេខទូរស័ព្ទ', + 'mail' => 'ប្រអប់សំបុត្រ', + 'status' => 'ស្ថានភាពគណនី', + 'create_at' => 'ពេលវេលាបង្កើត', + 'type' => 'ប្រភេទ', + 'is_super' => 'ការគ្រប់គ្រងឆានែល', + ], +]; diff --git a/addons/webman/lang/cam_dia/announcement.php b/addons/webman/lang/cam_dia/announcement.php new file mode 100644 index 0000000..22a2586 --- /dev/null +++ b/addons/webman/lang/cam_dia/announcement.php @@ -0,0 +1,36 @@ + 'ការគ្រប់គ្រងការប្រកាស', + 'fields' => [ + 'id' => 'ID', + 'title' => 'ចំណងជើង', + 'content' => 'មាតិកា', + 'valid_time' => 'ពេលវេលាត្រឹមត្រូវ', + 'push_time' => 'ម៉ោងផ្សាយ', + 'status' => 'ស្ថានភាព', + 'department_id' => 'ឆានែល', + 'sort' => 'តម្រៀប', + 'priority' => 'អាទិភាព', + 'admin_id' => 'លេខសម្គាល់អ្នកគ្រប់គ្រង', + 'admin_name' => 'ឈ្មោះអ្នកគ្រប់គ្រង', + 'created_at' => 'ពេលវេលាបង្កើត', + 'type' => 'ប្រភេទប្រកាស', + ], + 'priority' => [ + Announcement::PRIORITY_ORDINARY => 'ធម្មតា', + Announcement::PRIORITY_SENIOR => 'កម្រិតខ្ពស់', + Announcement::PRIORITY_EMERGENT => 'គ្រាអាសន្ន', + ], + 'type' => [ + Announcement::TYPE_BULLETIN => 'សេចក្តីប្រកាសនៃព្រឹត្តិបត្រ', + Announcement::TYPE_EVEBT => 'ព្រឹត្តិការណ៍ព្រឹត្តិការណ៍', + ], + 'help' => [ + 'valid_time' => 'ប្រសិនបើទុកឲ្យទទេ វានឹងមានសុពលភាពជាអចិន្ត្រៃយ៍', + 'push_time' => 'ការប្រកាសនេះនឹងមិនត្រូវបានបង្ហាញដល់អតិថិជនរហូតដល់ក្រោយពេលចេញផ្សាយ', + 'title' => 'ចំណងជើងប្រកាសអាចមានរហូតដល់ 200 ពាក្យ', + ] +]; diff --git a/addons/webman/lang/cam_dia/antd.php b/addons/webman/lang/cam_dia/antd.php new file mode 100644 index 0000000..9c14bba --- /dev/null +++ b/addons/webman/lang/cam_dia/antd.php @@ -0,0 +1,391 @@ + "zh-cn", + "Pagination" => [ + "items_per_page" => "ធាតុ/ទំព័រ", + "jump_to" => "លោតទៅ", + "jump_to_confirm" => "បញ្ជាក់", + "page" => "ទំព័រ", + "prev_page" => "ទំព័រមុន", + "next_page" => "ទំព័របន្ទាប់", + "prev_5" => "5 ទំព័រទៅមុខ", + "next_5" => "ទំព័រ 5 បន្ទាប់", + "prev_3" => "3 ទំព័រទៅមុខ", + "next_3" => "3 ទំព័រត្រឡប់មកវិញ" + ], + "DatePicker" => [ + "lang" => [ + "placeholder" => "សូមជ្រើសរើសកាលបរិច្ឆេទ", + "yearPlaceholder" => "សូមជ្រើសរើសមួយឆ្នាំ", + "quarterPlaceholder" => "សូមជ្រើសរើសមួយភាគបួន", + "monthPlaceholder" => "សូមជ្រើសរើសខែ", + "weekPlaceholder" => "សូមជ្រើសរើសមួយសប្តាហ៍", + "rangePlaceholder" => [ + "កាលបរិច្ឆេទចាប់ផ្តើម", + "កាលបរិច្ឆេទបញ្ចប់" + ], + "rangeYearPlaceholder" => [ + "ឆ្នាំចាប់ផ្តើម", + "ចុងឆ្នាំ" + ], + "rangeMonthPlaceholder" => [ + "ខែចាប់ផ្តើម", + "ចុងខែ" + ], + "rangeWeekPlaceholder" => [ + "សប្តាហ៍ចាប់ផ្តើម", + "ចុងសប្តាហ៍" + ], + "locale" => "zh_CN", + "today" => "ថ្ងៃនេះ", + "now" => "នៅពេលនេះ", + "backToToday" => "ត្រលប់ទៅថ្ងៃនេះ", + "ok" => "យល់ព្រម", + "timeSelect" => "ជ្រើសរើសពេលវេលា", + "dateSelect" => "ជ្រើសរើសកាលបរិច្ឆេទ", + "weekSelect" => "ជ្រើសរើសសប្តាហ៍", + "clear" => "ច្បាស់", + "month" => "ខែ", + "year" => "ឆ្នាំ", + "previousMonth" => "ខែមុន (កូនសោទំព័រឡើង)", + "nextMonth" => "ខែបន្ទាប់ (ប៊ូតុងចុះក្រោមដើម្បីបង្វែរទំព័រ)", + "monthSelect" => "ជ្រើសរើសខែ", + "yearSelect" => "ជ្រើសរើសឆ្នាំ", + "decadeSelect" => "ជ្រើសរើសទសវត្សរ៍", + "yearFormat" => "YYYY year", + "dayFormat" => "ថ្ងៃ D", + "dateFormat" => "M, D, YYYY", + "dateTimeFormat" => "YYYY ឆ្នាំ M ខែ D ថ្ងៃ HH ម៉ោង mm នាទី ss វិនាទី", + "previousYear" => "ឆ្នាំមុន (គ្រាប់ចុចបញ្ជា បូកនឹងគ្រាប់ចុចព្រួញខាងឆ្វេង)", + "nextYear" => "ឆ្នាំក្រោយ (គ្រាប់ចុចបញ្ជា បូកនឹងគ្រាប់ចុចព្រួញស្ដាំ)", + "previousDecade" => "ទសវត្សរ៍មុន", + "nextDecade" => "ជំនាន់ក្រោយ", + "previousCentury" => "សតវត្សមុន", + "nextCentury" => "សតវត្សបន្ទាប់" + ], + "timePickerLocale" => [ + "placeholder" => "សូមជ្រើសរើសពេលវេលា", + "rangePlaceholder" => [ + "ពេលវេលាចាប់ផ្តើម", + "ពេលវេលាបញ្ចប់" + ] + ] + ], + "TimePicker" => [ + "placeholder" => "សូមជ្រើសរើសពេលវេលា", + "rangePlaceholder" => [ + "ពេលវេលាចាប់ផ្តើម", + "ពេលវេលាបញ្ចប់" + ] + ], + "Calendar" => [ + "lang" => [ + "placeholder" => "សូមជ្រើសរើសកាលបរិច្ឆេទ", + "yearPlaceholder" => "សូមជ្រើសរើសមួយឆ្នាំ", + "quarterPlaceholder" => "សូមជ្រើសរើសមួយភាគបួន", + "monthPlaceholder" => "សូមជ្រើសរើសខែ", + "weekPlaceholder" => "សូមជ្រើសរើសមួយសប្តាហ៍", + "rangePlaceholder" => [ + "កាលបរិច្ឆេទចាប់ផ្តើម", + "កាលបរិច្ឆេទបញ្ចប់" + ], + "rangeYearPlaceholder" => [ + "ឆ្នាំចាប់ផ្តើម", + "ចុងឆ្នាំ" + ], + "rangeMonthPlaceholder" => [ + "ខែចាប់ផ្តើម", + "ចុងខែ" + ], + "rangeWeekPlaceholder" => [ + "សប្តាហ៍ចាប់ផ្តើម", + "ចុងសប្តាហ៍" + ], + "locale" => "zh_CN", + "today" => "ថ្ងៃនេះ", + "now" => "នៅពេលនេះ", + "backToToday" => "ត្រលប់ទៅថ្ងៃនេះ", + "ok" => "យល់ព្រម", + "timeSelect" => "ជ្រើសរើសពេលវេលា", + "dateSelect" => "ជ្រើសរើសកាលបរិច្ឆេទ", + "weekSelect" => "ជ្រើសរើសសប្តាហ៍", + "clear" => "ច្បាស់", + "month" => "ខែ", + "year" => "ឆ្នាំ", + "previousMonth" => "ខែមុន (កូនសោទំព័រឡើង)", + "nextMonth" => "ខែបន្ទាប់ (ប៊ូតុងចុះក្រោមដើម្បីបង្វែរទំព័រ)", + "monthSelect" => "ជ្រើសរើសខែ", + "yearSelect" => "ជ្រើសរើសឆ្នាំ", + "decadeSelect" => "ជ្រើសរើសទសវត្សរ៍", + "yearFormat" => "YYYY year", + "dayFormat" => "ថ្ងៃ D", + "dateFormat" => "M, D, YYYY", + "dateTimeFormat" => "YYYY ឆ្នាំ M ខែ D ថ្ងៃ HH ម៉ោង mm នាទី ss វិនាទី", + "previousYear" => "ឆ្នាំមុន (គ្រាប់ចុចបញ្ជា បូកនឹងគ្រាប់ចុចព្រួញខាងឆ្វេង)", + "nextYear" => "ឆ្នាំក្រោយ (គ្រាប់ចុចបញ្ជា បូកនឹងគ្រាប់ចុចព្រួញស្ដាំ)", + "previousDecade" => "ទសវត្សរ៍មុន", + "nextDecade" => "ជំនាន់ក្រោយ", + "previousCentury" => "សតវត្សមុន", + "nextCentury" => "សតវត្សបន្ទាប់" + ], + "timePickerLocale" => [ + "placeholder" => "សូមជ្រើសរើសពេលវេលា", + "rangePlaceholder" => [ + "ពេលវេលាចាប់ផ្តើម", + "ពេលវេលាបញ្ចប់" + ] + ] + ], + "global" => [ + "placeholder" => "សូមជ្រើសរើស" + ], + "Table" => [ + "filterTitle" => "តម្រង", + "filterConfirm" => "បញ្ជាក់", + "filterReset" => "កំណត់ឡើងវិញ", + "filterEmptyText" => "គ្មានធាតុតម្រង", + "selectAll" => "ជ្រើសរើសទាំងអស់នៅលើទំព័រនេះ", + "selectInvert" => "បញ្ច្រាសទំព័របច្ចុប្បន្ន", + "selectNone" => "ជម្រះទាំងអស់", + "selectionAll" => "ជ្រើសរើសទាំងអស់", + "sortTitle" => "តម្រៀប", + "expand" => "ពង្រីកជួរ", + "collapse" => "បិទជួរដេក", + "triggerDesc" => "ចុចដើម្បីបញ្ជាចុះក្រោម", + "triggerAsc" => "ចុចដើម្បីឡើង", + "cancelSort" => "បោះបង់ការតម្រៀប" + ], + "Modal" => [ + "okText" => "យល់ព្រម", + "cancelText" => "បោះបង់", + "justOkText" => "យល់ហើយ" + ], + "Popconfirm" => [ + "cancelText" => "បោះបង់", + "okText" => "យល់ព្រម" + ], + "Transfer" => [ + "searchPlaceholder" => "សូមបញ្ចូលមាតិកាស្វែងរក", + "itemUnit" => "ធាតុ", + "itemsUnit" => "ធាតុ", + "remove" => "លុប", + "selectCurrent" => "ជ្រើសរើសទំព័របច្ចុប្បន្នទាំងអស់", + "removeCurrent" => "លុបទំព័របច្ចុប្បន្ន", + "selectAll" => "ជ្រើសរើសទាំងអស់", + "removeAll" => "យកចេញទាំងអស់", + "selectInvert" => "បង្វែរទំព័របច្ចុប្បន្ន" + ], + "Upload" => [ + "uploading" => "ការផ្ទុកឯកសារ", + "removeFile" => "លុបឯកសារ", + "uploadError" => "កំហុសក្នុងការបង្ហោះ", + "previewFile" => "មើលឯកសារ", + "downloadFile" => "ទាញយកឯកសារ" + ], + "Empty" => [ + "description" => "មិនទាន់មានទិន្នន័យ" + ], + "Icon" => [ + "icon" => "រូបតំណាង" + ], + "Text" => [ + "edit" => "កែសម្រួល", + "copy" => "ចម្លង", + "copied" => "ចម្លងដោយជោគជ័យ", + "expand" => "ពង្រីក" + ], + "PageHeader" => [ + "back" => "ត្រឡប់" + ], + "Form" => [ + "optional" => "(ស្រេចចិត្ត)", + "defaultValidateMessages" => [ + "default" => "កំហុសក្នុងការផ្ទៀងផ្ទាត់វាល $[label]", + "required" => "សូមបញ្ចូល $[label]", + "enum" => "$[label] ត្រូវតែជាផ្នែកមួយនៃ [$[enum]]", + "whitespace" => "$[label] មិនអាចជាតួអក្សរទទេបានទេ", + "date" => [ + "format" => "$[label] date format is invalid", + "parse" => "$[label] មិនអាចបំប្លែងទៅជាកាលបរិច្ឆេទបានទេ", + "invalid" => "$[label] គឺជាកាលបរិច្ឆេទមិនត្រឹមត្រូវ" + ], + "types" => [ + "string" => "$[label] មិនមែនជា $[type] ត្រឹមត្រូវទេ", + "method" => "$[label] មិនមែនជា $[type] ត្រឹមត្រូវទេ", + "array" => "$[label] មិនមែនជា $[type] ត្រឹមត្រូវទេ", + "object" => "$[label] មិនមែនជា $[type] ត្រឹមត្រូវទេ", + "number" => "$[label] មិនមែនជា $[type] ត្រឹមត្រូវទេ", + "date" => "$[label] មិនមែនជា $[type] ត្រឹមត្រូវទេ", + "boolean" => "$[label] មិនមែនជា $[type] ត្រឹមត្រូវទេ", + "integer" => "$[label] មិនមែនជា $[type] ត្រឹមត្រូវទេ", + "float" => "$[label] មិនមែនជា $[type] ត្រឹមត្រូវទេ", + "regexp" => "$[label] មិនមែនជា $[type] ត្រឹមត្រូវទេ", + "email" => "$[label] មិនមែនជា $[type] ត្រឹមត្រូវទេ", + "url" => "$[label] មិនមែនជា $[type] ត្រឹមត្រូវទេ", + "hex" => "$[label] មិនមែនជា $[type] ត្រឹមត្រូវទេ" + ], + "string" => [ + "len" => "$[label] ត្រូវតែជាតួអក្សរ $[len]", + "min" => "$[label]យ៉ាងហោចណាស់ $[min] តួអក្សរ", + "max" => "$[label] គឺច្រើនបំផុត $[max] តួអក្សរ", + "range" => "$[label] ត្រូវតែស្ថិតនៅចន្លោះតួអក្សរ $[min]-$[max]" + ], + "number" => [ + "len" => "$[label] ត្រូវតែស្មើ $[len]", + "min" => "តម្លៃអប្បបរមានៃ $[label] គឺ $[min]", + "max" => "តម្លៃអតិបរមានៃ $[label] គឺ $[max]", + "range" => "$[label] ត្រូវតែនៅចន្លោះ $[min]-$[max]" + ], + "array" => [ + "len" => "ត្រូវតែ $[len]$[label]", + "min" => "យ៉ាងហោចណាស់ $[min]$[label]", + "max" => "ច្រើនបំផុត $[max]$[label]", + "range" => "បរិមាណនៃ $[label] ត្រូវតែនៅចន្លោះ $[min]-$[max]" + ], + "pattern" => [ + "mismatch" => "$[label] មិនត្រូវគ្នានឹងលំនាំ $[pattern]" + ] + ] + ], + "Image" => [ + "preview" => "មើលជាមុន" + ], + 'FormMany' => [ + 'up' => 'ឡើងលើ', + 'down' => 'ផ្លាស់ទីចុះក្រោម', + 'add' => 'បន្ថែម', + 'remove' => 'យកចេញ', + 'clear' => 'ច្បាស់', + ], + 'TabsTag' => [ + 'closeOther' => 'បិទផ្សេងទៀត', + 'closeLeft' => 'បិទ​ឆ្វេង', + 'closeRight' => 'បិទខាងស្តាំ', + 'back' => 'ត្រឡប់ទៅទំព័រមុន', + ], + 'Uploader' => [ + 'finder' => 'ធនធាន', + 'upload' => 'ផ្ទុកឡើង', + 'success' => 'ផ្ទុកឡើងដោយជោគជ័យ', + 'error' => 'កំហុសមិនស្គាល់', + 'check' => 'ផ្ទៀងផ្ទាត់', + 'uploading' => 'កំពុងផ្ទុកឡើង', + ], + 'Grid' => [ + 'confirmRecoverySelected' => 'ប្រតិបត្តិការនេះនឹងស្ដារទិន្នន័យដែលបានជ្រើសរើសឡើងវិញទេ? ', + 'confirmClearSelected' => 'ប្រតិបត្តិការនេះនឹងលុបទិន្នន័យដែលបានជ្រើសរើសឬ? ', + 'confirmClear' => 'ប្រតិបត្តិការនេះនឹងលុប និងសម្អាតទិន្នន័យទាំងអស់? ', + 'continue' => 'បន្ត?', + 'empty' => 'មិនទាន់មានទិន្នន័យទេ', + 'search' => 'ស្វែងរក', + 'quickSearchText' => 'សូមបញ្ចូលពាក្យគន្លឹះ', + 'export' => 'នាំចេញ', + 'exportPage' => 'នាំចេញទំព័របច្ចុប្បន្ន', + 'exportSelect' => 'នាំចេញជួរដែលបានជ្រើសរើស', + 'exportAll' => 'នាំចេញទាំងអស់', + 'exportProgress' => 'វឌ្ឍនភាពនាំចេញ', + 'exportFail' => 'ការនាំចេញបរាជ័យ', + 'exportSuccess' => 'នាំចេញដោយជោគជ័យ សូមចុច', + 'download' => 'ទាញយក', + 'sortTop' => 'កំពូល', + 'sortBottom' => 'កំណត់ទៅបាត', + 'sortDrag' => 'ការតម្រៀបអូស', + 'confirm' => 'យល់ព្រម', + 'reset' => 'កំណត់ឡើងវិញ', + 'dataList' => 'បញ្ជីទិន្នន័យ', + 'recycle' => 'ធុងសំរាមកែច្នៃ', + 'collapseFilter' => 'បង្រួមតម្រង', + 'expandFilter' => 'ពង្រីកតម្រង', + 'clearTrash' => 'លុបធុងសំរាមចោល', + 'clearData' => 'ជម្រះទិន្នន័យ', + 'restoreSelected' => 'ស្ដារ​បាន​ជ្រើសរើស', + 'deleteSelected' => 'លុបបានជ្រើសរើស', + 'selectedAction' => 'សូមពិនិត្យទិន្នន័យប្រតិបត្តិការ', + ], + 'SelectTable' => [ + 'select' => 'ជ្រើសរើស', + 'selected' => 'បានជ្រើសរើស', + 'confirm' => 'យល់ព្រម', + 'cancel' => 'បោះបង់', + ], + 'Confirm' => [ + 'title' => 'ប្រអប់បញ្ចូល' + ], + 'Copy' => [ + 'success' => 'ចម្លងដោយជោគជ័យ', + 'error' => 'ចម្លងបានបរាជ័យ', + ], + 'Logout' => [ + 'title' => 'ចេញ', + 'content' => 'តើអ្នកប្រាកដក្នុងការចាកចេញពីប្រព័ន្ធមែនទេ?', + ], + 'Header' => [ + 'refresh' => 'ធ្វើឱ្យស្រស់', + 'light' => 'ងងឹត', + 'dark' => 'ពណ៌ភ្លឺ', + ], + 'Setting' => [ + 'lang' => 'ភាសា', + 'theme_color' => 'ពណ៌ស្បែក', + 'sidebar_color' => 'របារចំហៀងជ្រើសរើសពណ៌', + 'sidebar_background' => 'ពណ៌ផ្ទៃខាងក្រោយរបារចំហៀង', + 'header_background' => 'ពណ៌ផ្ទៃខាងក្រោយកំពូល', + 'layout' => 'ប្លង់', + 'menu_layout' => 'ប្លង់ម៉ឺនុយ', + 'menu_style' => 'រចនាប័ទ្មម៉ឺនុយ', + 'sidebar' => [ + 'label' => 'របារចំហៀង', + 'width' => 'ទទឹង', + 'visible' => 'បង្ហាញ', + 'collapsed' => 'ដួលរលំ', + 'menu_num' => 'ចំនួនម៉ឺនុយនៅជាប់គ្នា', + ], + 'tabs' => 'ផ្ទាំងច្រើន', + 'light' => 'ពណ៌ភ្លឺ', + 'dark' => 'ងងឹត', + 'sider' => 'ចំហៀង', + 'header_sider' => 'ផ្នែកខាងលើ', + 'header' => 'កំពូល', + 'defualt' => 'ស្តារការកំណត់លំនាំដើមឡើងវិញ', + + ], + 'Sidebar' => [ + 'all' => 'ទាំងអស់' + ], + 'Dayjs' => [ + 'weekdays' => explode('_', "ថ្ងៃអាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍"), + 'weekdaysShort' => explode('_', "ថ្ងៃអាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍"), + 'weekdaysMin' => explode('_', "ថ្ងៃអាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍"), + 'months' => explode('_', "មករា កុម្ភៈ មីនា មេសា ឧសភា មិថុនា កក្កដា សីហា កញ្ញា កញ្ញា តុលា វិច្ឆិកា ធ្នូ"), + 'monthsShort' => explode('_', "មករា កុម្ភៈ មីនា មេសា ឧសភា មិថុនា កក្កដា សីហា កញ្ញា កញ្ញា តុលា វិច្ឆិកា ធ្នូ"), + 'weekStart' => 1, + 'yearStart' => 4, + 'formats' => [ + 'LT' => "HH=>mm", + 'LTS' => "HH=>mm=>ss", + 'L' => "YYYY/MM/DD", + 'LL' => "YYYY ឆ្នាំ M ខែ D ថ្ងៃ", + 'LLL' => "Ah point mm នាទីនៅ M ខែ D ថ្ងៃ YYYY ឆ្នាំ", + 'LLLL' => "YYYY ឆ្នាំ M ខែ D ថ្ងៃ ddddAh ចំណុច mm នាទី", + 'l' => "YYYY/M/D", + 'll' => "M, D, YYYY", + 'lll' => "YYYYឆ្នាំMខែDថ្ងៃHH=>mm", + 'llll' => "YYYYឆ្នាំMខែDថ្ងៃdddd HH=>mm" + ], + 'relativeTime' => [ + 'future' => "ក្នុង %s", + 'past' => "%s មុន", + 's' => "ពីរបីវិនាទី", + 'm' => "1 នាទី", + 'mm' => "%d នាទី", + 'h' => "1 ម៉ោង", + 'hh' => "%d ម៉ោង", + 'd' => "1 ថ្ងៃ", + 'dd' => "%d ថ្ងៃ", + 'M' => "1 ខែ", + 'MM' => "%d ខែ", + 'y' => "1 ឆ្នាំ", + 'yy' => "%d ឆ្នាំ" + ] + ], +]; diff --git a/addons/webman/lang/cam_dia/app_version.php b/addons/webman/lang/cam_dia/app_version.php new file mode 100644 index 0000000..6d6c9ae --- /dev/null +++ b/addons/webman/lang/cam_dia/app_version.php @@ -0,0 +1,32 @@ + 'ការគ្រប់គ្រងកំណែ', + 'fields' => [ + 'id' => 'ID', + 'system_key' => 'ការកំណត់អត្តសញ្ញាណប្រព័ន្ធ', + 'app_version' => 'លេខកំណែ', + 'app_version_key' => 'ការកំណត់អត្តសញ្ញាណកំណែ', + 'apk_url' => 'អាសយដ្ឋានកញ្ចប់ដំឡើង', + 'force_update' => 'បង្ខំឱ្យអាប់ដេត', + 'type' => 'ប្រភេទ', + 'hot_update' => 'អាប់ដេតក្តៅ', + 'regular_update' => 'ការធ្វើបច្ចុប្បន្នភាពជាប្រចាំ', + 'update_content' => 'ធ្វើបច្ចុប្បន្នភាពមាតិកា', + 'notes' => 'កំណត់ត្រាប្រតិបត្តិការ', + 'status' => 'ស្ថានភាព', + 'created_at' => 'ពេលវេលាបង្កើត', + ], + 'system_key' => [ + 'android' => 'Android', + 'ios' => 'Ios(Apple)', + ], + 'app_version_regex' => 'សូមបំពេញលេខកំណែដែលត្រឹមត្រូវ', + 'hot_apk_url' => 'កញ្ចប់អាប់ដេតក្តៅ', + 'missing_package_address' => 'បាត់អាសយដ្ឋានកញ្ចប់ដំឡើង', + 'app_version_key_not_found' => 'បាត់អត្តសញ្ញាណកំណែ', + 'upload_update_package' => 'សូមបង្ហោះកញ្ចប់អាប់ដេតក្តៅ', + 'hot_apk_url_error' => 'បញ្ហាអាសយដ្ឋានកញ្ចប់អាប់ដេតក្តៅ', + 'decompression_failed' => 'ការបង្ហាប់បានបរាជ័យ', + 'app_version_key_exists' => 'កំណែនេះត្រូវបានចេញផ្សាយ', +]; diff --git a/addons/webman/lang/cam_dia/attachment.php b/addons/webman/lang/cam_dia/attachment.php new file mode 100644 index 0000000..c8c8a2d --- /dev/null +++ b/addons/webman/lang/cam_dia/attachment.php @@ -0,0 +1,16 @@ + 'ការគ្រប់គ្រងឯកសារភ្ជាប់', + 'download' => 'ទាញយក', + 'cate' => [ + 'fields' => [ + 'name' => 'ឈ្មោះប្រភេទ', + 'pid' => 'ការចាត់ថ្នាក់ខ្ពស់', + 'permission_type' => 'ប្រភេទការអនុញ្ញាត', + 'sort' => 'តម្រៀប', + ], + 'parent' => 'ប្រភេទកំពូល', + 'public' => 'គ្រប់គ្នា', + 'private' => 'ឯកជន', + ], +]; diff --git a/addons/webman/lang/cam_dia/auth.php b/addons/webman/lang/cam_dia/auth.php new file mode 100644 index 0000000..c7dc712 --- /dev/null +++ b/addons/webman/lang/cam_dia/auth.php @@ -0,0 +1,43 @@ + 'ការគ្រប់គ្រងសិទ្ធិចូលប្រើ', + 'parent' => 'ឪពុកម្តាយ', + 'field_title_grant' => 'ការអនុញ្ញាតលើវាល (លាក់វាលដែលបានជ្រើសរើស)', + 'field_grant' => 'ការអនុញ្ញាតលើវាល', + 'data_grant' => 'ការអនុញ្ញាតទិន្នន័យ', + 'auth_grant' => 'ការអនុញ្ញាតមុខងារ', + 'menu_grant' => 'ការអនុញ្ញាតម៉ឺនុយ', + 'select_user' => 'ជ្រើសរើសមនុស្សម្នាក់', + 'select_group' => 'ជ្រើសរើសអង្គការ', + 'select_user_tip' => 'មានសិទ្ធិមើលទិន្នន័យរួមទាំងអ្នកដែលបានជ្រើសរើស', + 'select_group_tip' => 'មានសិទ្ធិមើលទិន្នន័យដែលមានអង្គការដែលបានជ្រើសរើស', + 'all' => 'ជ្រើសរើសទាំងអស់', + 'father_son_linkage' => 'ទំនាក់ទំនងឪពុក និងកូន', + 'role_type_error' => 'កំហុសប្រភេទតួនាទី', + 'fields' => [ + 'name' => 'ឈ្មោះ', + 'desc' => 'ការពិពណ៌នា', + 'status' => 'ស្ថានភាព', + 'sort' => 'តម្រៀប', + 'data_type' => 'ជួរទិន្នន័យ', + 'department' => 'បញ្ជីនាយកដ្ឋាន', + 'type' => 'ប្រភេទតួនាទី', + ], + 'options' => [ + 'data_type' => [ + 'full_data_rights' => 'សិទ្ធិទិន្នន័យពេញលេញ', + 'data_permissions_for_this_department' => 'ការអនុញ្ញាតទិន្នន័យសម្រាប់នាយកដ្ឋាននេះ', + 'this_department_and_the_following_data_permissions' => 'នាយកដ្ឋាននេះ និងការអនុញ្ញាតទិន្នន័យខាងក្រោម', + 'personal_data_rights' => 'សិទ្ធិទិន្នន័យផ្ទាល់ខ្លួន', + 'custom_data_permissions' => 'ការអនុញ្ញាតទិន្នន័យផ្ទាល់ខ្លួន', + 'channel_and_the_following_data_permissions' => 'ការអនុញ្ញាតទិន្នន័យទាំងអស់សម្រាប់ស្ថានីយរង' + ] + ], + 'type' => [ + AdminDepartment::TYPE_DEPARTMENT => 'តួនាទីស្ថានីយ', + AdminDepartment::TYPE_CHANNEL => 'តួនាទីឆានែល', + ], +]; diff --git a/addons/webman/lang/cam_dia/channel.php b/addons/webman/lang/cam_dia/channel.php new file mode 100644 index 0000000..05eb637 --- /dev/null +++ b/addons/webman/lang/cam_dia/channel.php @@ -0,0 +1,44 @@ + 'ការគ្រប់គ្រងឆានែល', + 'normal' => 'បើក', + 'disable' => 'កំពុង​ថែទាំ', + 'name_exist' => 'ឈ្មោះឆានែលស្ទួនមាន', + 'channel_exist' => 'ឈ្មោះដែនឆានែលស្ទួនមាន', + 'telegram_url_exist' => 'សេវាអតិថិជនរបស់ប៉ុស្តិ៍ Telegram មានរួចហើយ', + 'package_url_exist' => 'អាសយដ្ឋានដំឡើងឆានែលមានរួចហើយ', + 'save_error' => 'រក្សាទុកបានបរាជ័យ', + 'save_success' => 'រក្សាទុកដោយជោគជ័យ', + 'not_fount' => 'មិនមានឆានែលទេ', + 'fields' => [ + 'id' => 'លេខសម្គាល់ឆានែល', + 'name' => 'ឈ្មោះឆានែល', + 'domain' => 'ឈ្មោះដែនឆានែល', + 'player_num' => 'ចំនួនអ្នកលេង', + 'coin_num' => 'ចំនួនអ្នកជំនួញកាក់', + 'lang' => 'ភាសាលំនាំដើម', + 'currency' => 'រូបិយប័ណ្ណ', + 'department_id' => 'លេខសម្គាល់នាយកដ្ឋាន', + 'status' => 'ស្ថានភាព', + 'telegram_url' => 'សេវាអតិថិជន Telegram', + 'package_url' => 'អាសយដ្ឋានកញ្ចប់ដំឡើង', + 'recharge_amount' => 'បញ្ចូលទឹកប្រាក់ជាផ្លូវការ', + 'withdraw_amount' => 'ការដកប្រាក់ជាផ្លូវការ', + 'third_recharge_amount' => 'បញ្ចូលទឹកប្រាក់ភាគីទីបី', + 'third_withdraw_amount' => 'ការដកភាគីទីបី', + 'player_total_amount' => 'សមតុល្យគណនីអ្នកលេងសរុប', + 'phone' => 'លេខទូរស័ព្ទ', + 'leader' => 'អ្នកទទួលខុសត្រូវ', + 'create_at' => 'ពេលវេលាបង្កើតឆានែល', + 'username' => 'ចូលគណនី', + 'password' => 'ពាក្យសម្ងាត់ចូល', + 'channel_function' => 'អនុគមន៍​ស្ថានីយ', + 'web_login_status' => 'ចូលគេហទំព័រ', + 'recharge_status' => 'ការបញ្ចូលថ្មតាមវេទិកា', + 'withdraw_status' => 'ការដកវេទិកា', + 'wallet_action_status' => 'ប្រតិបត្តិការកាបូបអ្នកលេង', + 'department_name' => 'ឆានែល', + ], + 'channel_function_help' => 'សៀវភៅដៃ (បញ្ចូលទឹកប្រាក់ ដកប្រាក់) មិនអាចប្រើក្នុងពេលតែមួយជាមួយកាក់ Q (ផ្ទេរចូល ផ្ទេរចេញ)' +]; diff --git a/addons/webman/lang/cam_dia/channel_financial_record.php b/addons/webman/lang/cam_dia/channel_financial_record.php new file mode 100644 index 0000000..08cf79e --- /dev/null +++ b/addons/webman/lang/cam_dia/channel_financial_record.php @@ -0,0 +1,32 @@ + 'កំណត់ត្រាប្រតិបត្តិការហិរញ្ញវត្ថុ', + 'content' => 'លេខស៊េរី {setting_id}', + 'fields' => [ + 'id' => 'ID', + 'department_id' => 'លេខសម្គាល់នាយកដ្ឋាន/ឆានែល', + 'player_id' => 'លេខសម្គាល់អ្នកលេង', + 'player' => 'ព័ត៌មានអ្នកលេង', + 'target' => 'តារាងទិន្នន័យ', + 'target_id' => 'លេខសម្គាល់តារាងទិន្នន័យ', + 'action' => 'ឥរិយាបទប្រតិបត្តិការ', + 'tradeno' => 'ប្រតិបត្តិ​ការ​បញ្ជា', + 'user_id' => 'ប្រតិបត្តិការបញ្ជាទិញ', + 'user_name' => 'ប្រតិបត្តិករ', + 'created_at' => 'ពេលវេលាប្រតិបត្តិការ', + ], + 'action' => [ + ChannelFinancialRecord::ACTION_RECHARGE_PASS => 'ការពិនិត្យមើលការបញ្ចូលទឹកប្រាក់បានកន្លងផុតទៅ', + ChannelFinancialRecord::ACTION_RECHARGE_REJECT => 'ការបដិសេធការពិនិត្យមើលឡើងវិញ', + ChannelFinancialRecord::ACTION_WITHDRAW_PASS => 'ការត្រួតពិនិត្យការដកប្រាក់បានកន្លងផុតទៅ', + ChannelFinancialRecord::ACTION_WITHDRAW_REJECT => 'ការបដិសេធការពិនិត្យមើលការដកប្រាក់', + ChannelFinancialRecord::ACTION_WITHDRAW_PAYMENT => 'ការបង់ប្រាក់ពេញលេញ', + ChannelFinancialRecord::ACTION_RECHARGE_SETTING_ADD => 'បន្ថែមគណនីបញ្ចូលទឹកប្រាក់', + ChannelFinancialRecord::ACTION_RECHARGE_SETTING_STOP => 'បិទគណនីបញ្ចូលទឹកប្រាក់', + ChannelFinancialRecord::ACTION_RECHARGE_SETTING_ENABLE => 'បើកគណនីបញ្ចូលទឹកប្រាក់', + ChannelFinancialRecord::ACTION_RECHARGE_SETTING_EDIT => 'កែសម្រួលគណនីបញ្ចូលទឹកប្រាក់', + ], +]; diff --git a/addons/webman/lang/cam_dia/channel_recharge_method.php b/addons/webman/lang/cam_dia/channel_recharge_method.php new file mode 100644 index 0000000..1a04a4f --- /dev/null +++ b/addons/webman/lang/cam_dia/channel_recharge_method.php @@ -0,0 +1,19 @@ + 'បញ្ចូលទឹកប្រាក់ក្នុងការកំណត់រចនាសម្ព័ន្ធគណនី', + 'recharge_setting_info' => 'គណនីប្រមូល', + 'fields' => [ + 'id' => 'ID', + 'method_name' => 'ឈ្មោះវិធីសាស្ត្របញ្ចូលទឹកប្រាក់', + 'currency' => 'រូបិយប័ណ្ណ', + 'name' => 'បញ្ចូលឈ្មោះឡើងវិញ', + 'bank_name' => 'ធនាគារបើកគណនី', + 'sub_bank' => 'សាខា', + 'owner' => 'ឈ្មោះអ្នកប្រើប្រាស់', + 'account' => 'គណនីធនាគារ', + 'user_name' => 'អ្នកបង្កើត', + 'status' => 'ស្ថានភាព', + 'created_at' => 'ពេលវេលាបង្កើត', + ] +]; diff --git a/addons/webman/lang/cam_dia/channel_recharge_setting.php b/addons/webman/lang/cam_dia/channel_recharge_setting.php new file mode 100644 index 0000000..c850afa --- /dev/null +++ b/addons/webman/lang/cam_dia/channel_recharge_setting.php @@ -0,0 +1,47 @@ + 'ការកំណត់រចនាសម្ព័ន្ធវិធីបញ្ចូលទឹកប្រាក់', + 'placeholder_name' => 'សូមបញ្ចូលឈ្មោះបញ្ចូលទឹកប្រាក់', + 'placeholder_method' => 'សូមជ្រើសរើសវិធីសាស្ត្របញ្ចូលទឹកប្រាក់', + 'placeholder_chip_multiple' => 'សូមបញ្ចូលការសរសេរកូដច្រើន', + 'placeholder_coins_num' => 'សូមបញ្ចូលចំនួនកាក់បញ្ចូលទឹកប្រាក់', + 'placeholder_money' => 'សូមបញ្ចូលចំនួនទឹកប្រាក់បញ្ចូលទឹកប្រាក់ឡើងវិញ', + 'recharge_setting_info' => 'បញ្ចូលព័ត៌មានគណនីឡើងវិញ', + 'first_recharge_setting' => 'ការកំណត់បញ្ចូលទឹកប្រាក់ដំបូង', + 'fields' => [ + 'id' => 'ID', + 'department_id' => 'លេខសម្គាល់ផ្នែក/ឆានែល', + 'title' => 'ចំណងជើង', + 'method_name' => 'វិធីសាស្ត្របញ្ចូលទឹកប្រាក់', + 'method_id' => 'លេខសម្គាល់វិធីសាស្រ្តបញ្ចូលទឹកប្រាក់', + 'chip_multiple' => 'កូដច្រើន', + 'coins_num' => 'បរិមាណកាក់', + 'gift_coins' => 'កាក់អំណោយ', + 'money' => 'ចំនួន', + 'type' => 'ប្រភេទបញ្ចូលថ្ម', + 'user_id' => 'លេខសម្គាល់អ្នកគ្រប់គ្រង', + 'user_name' => 'អ្នកបង្កើត', + 'status' => 'ស្ថានភាព', + 'created_at' => 'ពេលវេលាបង្កើត', + ], + 'rul' => [ + 'chip_multiple_required' => 'ត្រូវការលេខកូដច្រើន', + 'chip_multiple_min_0' => 'ការសរសេរកូដច្រើនគឺយ៉ាងហោចណាស់ 0', + 'chip_multiple_max_100000000' => 'ពហុកូដអតិបរមាត្រូវបានកំណត់ទៅ 100 លាន', + 'coins_num_required' => 'ចំនួនកាក់ត្រូវបានទាមទារ', + 'coins_num_min_1' => 'ចំនួនកាក់អប្បបរមាគឺ 1', + 'coins_num_max_100000000' => 'ចំនួនកាក់អតិបរមាត្រូវបានកំណត់ទៅ 100 លាន', + 'gift_coins_min_1' => 'ចំនួនកាក់អប្បបរមាគឺ 1', + 'gift_coins_max_100000000' => 'ចំនួនអតិបរមានៃកាក់អំណោយត្រូវបានកំណត់ទៅ 100 លាន', + 'money_required' => 'តម្រូវឱ្យបញ្ចូលទឹកប្រាក់បន្ថែម', + 'money_min_1' => 'ចំនួនបញ្ចូលទឹកប្រាក់អប្បបរមាគឺ 1', + 'money_max_100000000' => 'ចំនួនបញ្ចូលទឹកប្រាក់អតិបរមាត្រូវបានកំណត់ទៅ 100 លាន', + ], + 'type' => [ + ChannelRechargeSetting::TYPE_REGULAR => 'បញ្ចូលថ្មធម្មតា', + ChannelRechargeSetting::TYPE_ACTIVITY => 'ការបញ្ចូលទឹកប្រាក់សកម្មភាព', + ] +]; diff --git a/addons/webman/lang/cam_dia/commission_record.php b/addons/webman/lang/cam_dia/commission_record.php new file mode 100644 index 0000000..cac5386 --- /dev/null +++ b/addons/webman/lang/cam_dia/commission_record.php @@ -0,0 +1,24 @@ + 'លេង និងរកកំណត់ត្រា', + 'fields' => [ + 'id' => 'ID', + 'recharge_amount' => 'ចំនួនបញ្ចូលទឹកប្រាក់ដំបូង', + 'total_amount' => 'កម្រៃជើងសារសរុប', + 'damage_amount' => 'ចំនួនការខូចខាតរបស់អតិថិជន', + 'amount' => 'គណៈកម្មការបច្ចុប្បន្ន', + 'ratio' => 'សមាមាត្រគណៈកម្មការ', + 'date' => 'កាលបរិច្ឆេទទូទាត់', + 'create_at' => 'ពេលវេលាបង្កើត', + 'commission_first_recharge' => 'ការបញ្ចូលទឹកប្រាក់ដំបូងរបស់អ្នកប្រើ', + 'commission_damage' => 'សមាមាត្រការខាតបង់របស់អតិថិជន', + 'commission_chip_multiple' => 'ចំនួនកូដច្រើន', + ], + 'player_info' => 'ព័ត៌មានអ្នកលេង', + 'parent_player_info' => 'អ្នកលេងចែករំលែកប្រាក់ចំណេញ', + 'commission_setting' => 'លេង និងរកបានការកំណត់រចនាសម្ព័ន្ធ', + 'commission_first_recharge' => 'អញ្ជើញអ្នកប្រើប្រាស់ថ្មី អ្នកប្រើប្រាស់ថ្មីអាចទទួលបាន {$usd}USD សម្រាប់ការបញ្ចូលទឹកប្រាក់ដំបូងរបស់ពួកគេ', + 'commission_damage' => '{$ratio}% នៃការបាត់បង់អតិថិជនប្រចាំថ្ងៃរបស់អ្នកប្រើប្រាស់ នឹងត្រូវបានផ្តល់ឱ្យអ្នកជាកម្រៃជើងសារ', + 'commission_chip_multiple' => 'កម្រៃជើងសារសម្រាប់ព្រឹត្តិការណ៍គឺដូចគ្នានឹងការបញ្ចូលទឹកប្រាក់ COINS ហើយ {$chip_multiple} ដងនៃចំនួនលេខកូដអាចដកបាន', +]; diff --git a/addons/webman/lang/cam_dia/config.php b/addons/webman/lang/cam_dia/config.php new file mode 100644 index 0000000..353e43c --- /dev/null +++ b/addons/webman/lang/cam_dia/config.php @@ -0,0 +1,9 @@ + 'ការកំណត់រចនាសម្ព័ន្ធ', + 'logo' => 'LOGO គេហទំព័រ', + 'name' => 'ឈ្មោះគេហទំព័រ', + 'miitbeian' => 'លេខចុះឈ្មោះគេហទំព័រ', + 'copyright' => 'ព័ត៌មានរក្សាសិទ្ធិគេហទំព័រ', +]; diff --git a/addons/webman/lang/cam_dia/currency.php b/addons/webman/lang/cam_dia/currency.php new file mode 100644 index 0000000..e8a5ff1 --- /dev/null +++ b/addons/webman/lang/cam_dia/currency.php @@ -0,0 +1,24 @@ + 'ការគ្រប់គ្រងរូបិយប័ណ្ណ', + 'normal' => 'ធម្មតា', + 'disable' => 'បិទ', + 'currency' => 'រូបិយប័ណ្ណ', + 'game_coins' => 'ពិន្ទុហ្គេម', + 'currency_has_exists' => 'រូបិយប័ណ្ណនេះមានការកំណត់រចនាសម្ព័ន្ធរួចហើយ', + 'fields' => [ + 'id' => 'លេខសម្គាល់រូបិយប័ណ្ណ', + 'name' => 'ឈ្មោះរូបិយប័ណ្ណ', + 'identifying' => 'ការកំណត់អត្តសញ្ញាណរូបិយប័ណ្ណ', + 'ratio' => '1 តម្លៃរូបិយប័ណ្ណ', + 'status' => 'ស្ថានភាព', + 'create_at' => 'ពេលវេលាបង្កើត', + ], + 'currency_name' => [ + 'CYN' => 'រ៉ែនមីនប៊ី', + 'TWD' => 'ដុល្លារតៃវ៉ាន់ថ្មី', + 'USD' => 'USD', + 'JPY' => 'ប្រាក់យ៉េនជប៉ុន', + ], +]; diff --git a/addons/webman/lang/cam_dia/data_center.php b/addons/webman/lang/cam_dia/data_center.php new file mode 100644 index 0000000..c897b72 --- /dev/null +++ b/addons/webman/lang/cam_dia/data_center.php @@ -0,0 +1,21 @@ + 'បញ្ចូលទឹកប្រាក់សរុប', + 'recharge_activity' => 'ការបញ្ចូលទឹកប្រាក់សកម្មភាព', + 'recharge_regular' => 'បញ្ចូលថ្មធម្មតា', + 'withdraw_all' => 'ការដកប្រាក់សរុប', + 'withdraw_self' => 'ការដកជាផ្លូវការ', + 'withdraw_business' => 'ការផ្ទេរអាជីវកម្មកាក់', + 'today_add_player' => 'សមាជិកថ្មីថ្ងៃនេះ', + 'player_all' => 'សមាជិកសរុប', + 'today_active_player' => 'អ្នកលេងសកម្មថ្ងៃនេះ', + 'mouth_active_player' => 'អ្នកលេងសកម្មក្នុងខែនេះ', + 'recharge_chart' => 'តារាងនិន្នាការបញ្ចូលទឹកប្រាក់', + 'recharge_amount' => 'ចំនួនបញ្ចូលទឹកប្រាក់', + 'withdraw_chart' => 'គំនូសតាងនិន្នាការនៃការដកប្រាក់', + 'withdraw_amount' => 'ដកប្រាក់', + 'player_chart' => 'បន្ថែមអ្នកលេងថ្មី', + 'player_amount' => 'ចំនួនអ្នកលេង', + 'department_id' => 'លេខសម្គាល់ឆានែល', + 'department_name' => 'ឈ្មោះឆានែល', +]; diff --git a/addons/webman/lang/cam_dia/department.php b/addons/webman/lang/cam_dia/department.php new file mode 100644 index 0000000..6e9aaaf --- /dev/null +++ b/addons/webman/lang/cam_dia/department.php @@ -0,0 +1,23 @@ + 'នាយកដ្ឋានគ្រប់គ្រង', + 'normal' => 'ធម្មតា', + 'disable' => 'បិទ', + 'parent_id_repeat' => 'នាយកដ្ឋានជាន់ខ្ពស់មិនអាចជានាយកដ្ឋាននេះបានទេ', + 'fields' => [ + 'pid' => 'នាយកដ្ឋានជាន់ខ្ពស់', + 'name' => 'ឈ្មោះនាយកដ្ឋាន', + 'leader' => 'អ្នកទទួលខុសត្រូវ', + 'mobile' => 'លេខទូរស័ព្ទ', + 'status' => 'ស្ថានភាព', + 'sort' => 'តម្រៀប', + 'create_at' => 'ពេលវេលាបង្កើត', + ], + 'type' => [ + AdminDepartment::TYPE_DEPARTMENT => 'នាយក', + AdminDepartment::TYPE_CHANNEL => 'អ្នកគ្រប់គ្រងប៉ុស្តិ៍', + ], +]; diff --git a/addons/webman/lang/cam_dia/echart.php b/addons/webman/lang/cam_dia/echart.php new file mode 100644 index 0000000..2ea2b8f --- /dev/null +++ b/addons/webman/lang/cam_dia/echart.php @@ -0,0 +1,11 @@ + 'ចំណុច', + 'to' => 'ទៅ', + 'month' => 'ខែ', + 'yesterday' => 'ម្សិលមិញ', + 'today' => 'ថ្ងៃនេះ', + 'this_week' => 'សប្តាហ៍នេះ', + 'this_month' => 'ខែនេះ', + 'this_year' => 'ឆ្នាំនេះ', +]; diff --git a/addons/webman/lang/cam_dia/first_recharge_setting.php b/addons/webman/lang/cam_dia/first_recharge_setting.php new file mode 100644 index 0000000..57d1a36 --- /dev/null +++ b/addons/webman/lang/cam_dia/first_recharge_setting.php @@ -0,0 +1,23 @@ + 'រង្វាន់ដាក់ប្រាក់ដំបូង', + 'fields' => [ + 'model' => 'គំរូការចេញ', + 'type' => 'ប្រភេទរង្វាន់', + 'number' => 'កាក់រង្វាន់', + 'number_percent' => 'ភាគរយរង្វាន់', + 'chip_amount' => 'ការដកលេខកូដច្រើន', + 'add_number' => 'ការបញ្ចូលទឹកប្រាក់បន្ថែម', + ], + 'model' => [ + SystemSetting::FIRST_RECHARGE_MODEL_ONE => 'ការចេញផ្សាយតែមួយដង', + SystemSetting::FIRST_RECHARGE_MODEL_ADD => 'ការចេញបណ្តុំ', + ], + 'type' => [ + SystemSetting::FIRST_RECHARGE_TYPE_VALUE => 'ចំនួនថេរ', + SystemSetting::FIRST_RECHARGE_TYPE_PERCENT => 'ភាគរយ', + ] +]; diff --git a/addons/webman/lang/cam_dia/form.php b/addons/webman/lang/cam_dia/form.php new file mode 100644 index 0000000..f6a43fb --- /dev/null +++ b/addons/webman/lang/cam_dia/form.php @@ -0,0 +1,17 @@ + 'បន្ថែម', + 'edit' => 'កែសម្រួល', + 'please_enter' => 'សូមបញ្ចូល', + 'please_select' => 'សូមជ្រើសរើស', + 'cancel' => 'បោះបង់', + 'submit' => 'បញ្ជូន', + 'reset' => 'កំណត់ឡើងវិញ', + 'complete' => 'ពេញលេញ', + 'pre_step' => 'ជំហាន​មុន', + 'next_step' => 'ជំហានបន្ទាប់', + 'operation_complete' => 'ប្រតិបត្តិការបានបញ្ចប់', + 'resubmit' => 'ដាក់ស្នើឡើងវិញ', + 'save_success' => 'ទិន្នន័យត្រូវបានរក្សាទុកដោយជោគជ័យ', + 'save_fail' => 'ការរក្សាទុកទិន្នន័យបរាជ័យ', +]; diff --git a/addons/webman/lang/cam_dia/game.php b/addons/webman/lang/cam_dia/game.php new file mode 100644 index 0000000..955fb75 --- /dev/null +++ b/addons/webman/lang/cam_dia/game.php @@ -0,0 +1,34 @@ + 'បញ្ជីហ្គេម', + 'fields' => [ + 'id' => 'លេខសម្គាល់ហ្គេម', + 'name' => 'ឈ្មោះហ្គេម', + 'game_code' => 'លេខសម្គាល់ហ្គេម', + 'platform_game_type' => 'ប្រភេទហ្គេម (អ្នកផ្តល់ហ្គេម)', + 'status' => 'ស្ថានភាព', + 'create_at' => 'ពេលវេលាបង្កើត', + 'game_type' => 'ប្រភេទហ្គេម', + 'platform_name' => 'វេទិកាហ្គេម', + 'player_num' => 'ចំនួនអ្នកលេង', + 'is_hot' => 'តើវាក្តៅទេ', + 'is_new' => 'តើវាថ្មីទេ', + 'is_online' => 'តើវាអនឡាញទេ', + ], + 'game_platform' => 'ព័ត៌មានអ្នកផ្គត់ផ្គង់ហ្គេម', + 'app_id' => 'លេខសៀរៀលគណនី៖ {app_id}', + 'app_secret' => 'សោគណនី៖ {app_secret}', + 'domain' => 'អាសយដ្ឋាន API៖ {domain}', + 'admin_url' => 'URL ខាងក្រោយ៖ {admin_url}', + 'admin_user' => 'ឈ្មោះអ្នកប្រើចូលខាងក្រោយ៖ {admin_user}', + 'nu_set' => 'មិនបានកំណត់រចនាសម្ព័ន្ធ', + 'unit' => 'មនុស្ស', + 'game_status' => 'ស្ថានភាពហ្គេម', + 'is_online' => [ + 'មិនអនឡាញ', + 'អនឡាញ' + ] +]; diff --git a/addons/webman/lang/cam_dia/game_platform.php b/addons/webman/lang/cam_dia/game_platform.php new file mode 100644 index 0000000..f261c72 --- /dev/null +++ b/addons/webman/lang/cam_dia/game_platform.php @@ -0,0 +1,17 @@ + 'បញ្ជីហ្គេម', + 'fields' => [ + 'id' => 'លេខសម្គាល់ក្រុមហ៊ុនផលិតហ្គេម', + 'title' => 'ឈ្មោះអ្នកផ្គត់ផ្គង់ហ្គេម', + 'status' => 'ស្ថានភាព', + ], + 'game_platform' => 'ព័ត៌មានអ្នកផ្គត់ផ្គង់ហ្គេម', + 'update_game_list' => 'ធ្វើបច្ចុប្បន្នភាពបញ្ជីហ្គេម', + 'update_game_list_confirm' => 'តើអ្នកប្រាកដថាចង់ធ្វើបច្ចុប្បន្នភាពបញ្ជីក្រុមហ៊ុនផលិតហ្គេមមែនទេ?', + 'action_error' => 'ប្រតិបត្តិការបានបរាជ័យ', + 'action_success' => 'សកម្មភាពជោគជ័យ', + 'enter_game' => 'ចូលសាលហ្គេម', + 'enter_game_confirm' => 'តើអ្នកប្រាកដថាចង់ចូលទៅក្នុងកន្លែងទទួលអ្នកផលិតហ្គេមមែនទេ?', +]; diff --git a/addons/webman/lang/cam_dia/grid.php b/addons/webman/lang/cam_dia/grid.php new file mode 100644 index 0000000..75a0327 --- /dev/null +++ b/addons/webman/lang/cam_dia/grid.php @@ -0,0 +1,22 @@ + 'បញ្ជី', + 'add' => 'បន្ថែម', + 'edit' => 'កែសម្រួល', + 'detail' => 'ព័ត៌មានលម្អិត', + 'delete' => 'លុប', + 'sort' => 'តម្រៀប', + 'action' => 'សកម្មភាព', + 'confim_delete' => 'បញ្ជាក់ការលុប? ', + 'confim_restore' => 'បញ្ជាក់ការងើបឡើងវិញ? ', + 'restore' => 'ស្ដារទិន្នន័យ', + 'update_success' => 'ធ្វើបច្ចុប្បន្នភាពបានជោគជ័យ', + 'delete_success' => 'លុបដោយជោគជ័យ', + 'restore_success' => 'ស្តារឡើងវិញដោយជោគជ័យ', + 'delete_error' => 'លុបបានបរាជ័យ', + 'sort_success' => 'តម្រៀបជោគជ័យ', + 'user_info' => 'ព័ត៌មានអ្នកប្រើប្រាស់', + 'pagination' => [ + 'total' => 'ធាតុសរុប {total}', + ], +]; diff --git a/addons/webman/lang/cam_dia/login.php b/addons/webman/lang/cam_dia/login.php new file mode 100644 index 0000000..e877e62 --- /dev/null +++ b/addons/webman/lang/cam_dia/login.php @@ -0,0 +1,11 @@ + 'គណនីចូលមិនអាចទទេបានទេ', + 'password_not_empty' => 'ពាក្យសម្ងាត់ចូលមិនអាចទទេបានទេ', + 'password_min_length' => 'ពាក្យសម្ងាត់ត្រូវតែមានយ៉ាងហោចណាស់ 5 ខ្ទង់', + 'success' => 'ចូលដោយជោគជ័យ', + 'logout' => 'បាន​ចេញ', + 'error' => 'ពាក្យសម្ងាត់គណនីខុស', + 'captcha_error' => 'កំហុសកូដផ្ទៀងផ្ទាត់', + 'source_not_empty' => 'ប្រភពមិនអាចទទេបានទេ', +]; diff --git a/addons/webman/lang/cam_dia/menu.php b/addons/webman/lang/cam_dia/menu.php new file mode 100644 index 0000000..fd80be6 --- /dev/null +++ b/addons/webman/lang/cam_dia/menu.php @@ -0,0 +1,123 @@ + 'បន្ថែមម៉ឺនុយ', + 'title' => 'ការគ្រប់គ្រងម៉ឺនុយប្រព័ន្ធ', + 'fields' => [ + 'top' => 'ម៉ឺនុយកំពូល', + 'pid' => 'ម៉ឺនុយមុន', + 'name' => 'ឈ្មោះម៉ឺនុយ', + 'url' => 'តំណម៉ឺនុយ', + 'icon' => 'រូបតំណាងម៉ឺនុយ', + 'sort' => 'តម្រៀប', + 'status' => 'ស្ថានភាព', + 'open' => 'ពង្រីកម៉ឺនុយ', + 'super_status' => 'ស្ថានភាពអ្នកគ្រប់គ្រងជាន់ខ្ពស់', + 'type' => 'ប្រភេទម៉ឺនុយ', + ], + 'options' => [ + 'admin_visible' => [ + [1 => 'អេក្រង់'], + [0 => 'លាក់'] + ] + ], + 'type' => [ + AdminDepartment::TYPE_DEPARTMENT => 'ម៉ឺនុយស្ថានីយ', + AdminDepartment::TYPE_CHANNEL => 'ម៉ឺនុយឆានែល', + ], + 'titles' => [ + 'home' => 'ផ្ទះ', + 'system' => 'ប្រព័ន្ធ', + 'system_manage' => 'ការគ្រប់គ្រងប្រព័ន្ធ', + 'config_manage' => 'ការគ្រប់គ្រងការកំណត់រចនាសម្ព័ន្ធ', + 'attachment_manage' => 'ការគ្រប់គ្រងឯកសារភ្ជាប់', + 'permissions_manage' => 'ការគ្រប់គ្រងការអនុញ្ញាត', + 'admin' => 'ការគ្រប់គ្រងអ្នកប្រើប្រាស់', + 'role_manage' => 'ការគ្រប់គ្រងតួនាទី', + 'menu_manage' => 'ការគ្រប់គ្រងម៉ឺនុយ', + 'plug_manage' => 'ការគ្រប់គ្រងកម្មវិធីជំនួយ', + 'department_manage' => 'ផ្នែកគ្រប់គ្រង', + 'post_manage' => 'ការគ្រប់គ្រងប្រៃសណីយ៍', + + 'admin_manage' => 'ផ្នែកខាងក្រោយទូទៅ', + 'data_center' => 'មជ្ឈមណ្ឌលទិន្នន័យ', + + 'user_manage' => 'ការគ្រប់គ្រងអ្នកលេង', + 'user_manage_list' => 'បញ្ជីអ្នកលេង', + 'accounting_change_records' => 'ការកត់ត្រាការផ្លាស់ប្តូរគណនេយ្យ', + + 'financial_data' => 'ទិន្នន័យហិរញ្ញវត្ថុ', + 'recharge_record' => 'កំណត់ត្រាបញ្ចូលថ្ម', + 'withdrawal_records' => 'កំណត់ត្រានៃការដកប្រាក់', + + 'report_center' => 'មជ្ឈមណ្ឌលរបាយការណ៍', + + 'client_manager' => 'ការគ្រប់គ្រងអតិថិជន', + 'rotation_chart_manager' => 'ការគ្រប់គ្រងតារាងបង្វិល', + 'announcement_manager' => 'ការគ្រប់គ្រងការប្រកាស', + 'system_settings' => 'ការកំណត់ប្រព័ន្ធ', + + 'channel_manager' => 'ការគ្រប់គ្រងឆានែល', + 'channel_list' => 'បញ្ជីឆានែល', + 'currency_manager' => 'ការគ្រប់គ្រងរូបិយប័ណ្ណ', + + 'channel_manage' => 'ឆានែលខាងក្រោយ', + 'channel_data_center' => 'មជ្ឈមណ្ឌលទិន្នន័យ', + + 'channel_player_manage' => 'ការគ្រប់គ្រងអ្នកលេង', + 'channel_player_list' => 'បញ្ជីអ្នកលេង', + 'channel_player_accounting_change_records' => 'កំណត់ត្រាការផ្លាស់ប្តូរគណនេយ្យ', + + 'channel_client_manager' => 'ការគ្រប់គ្រងអតិថិជន', + 'channel_rotation_chart_manager' => 'ការគ្រប់គ្រងគំនូសតាងរង្វង់មូល', + 'channel_marquee_manager' => 'ការគ្រប់គ្រង Marquee', + 'channel_announcement_manager' => 'ការគ្រប់គ្រងការប្រកាស', + + 'channel_financial_manager' => 'ការគ្រប់គ្រងហិរញ្ញវត្ថុ', + 'channel_recharge_review' => 'ការពិនិត្យមើលឡើងវិញ', + 'channel_withdrawal_review' => 'ការពិនិត្យការដកប្រាក់', + 'channel_withdrawal_and_payment' => 'ការដកប្រាក់', + 'channel_recharge_record' => 'កំណត់ត្រាបញ្ចូលថ្ម', + 'channel_withdrawal_records' => 'កំណត់ត្រាការដកប្រាក់', + 'channel_recharge_channel_configuration' => 'ការកំណត់រចនាសម្ព័ន្ធឆានែលបញ្ចូលទឹកប្រាក់', + 'channel_financial_operation_records' => 'កំណត់ត្រាប្រតិបត្តិការហិរញ្ញវត្ថុ', + + 'channel_auth_manager' => 'ការគ្រប់គ្រងការអនុញ្ញាត', + 'channel_admin_user_manager' => 'ការគ្រប់គ្រងអ្នកប្រើប្រាស់', + 'channel_post_manager' => 'ការគ្រប់គ្រងប្រកាស', + + 'log_center' => 'មជ្ឈមណ្ឌលកំណត់ហេតុ', + 'player_edit_log' => 'កំណត់ហេតុការកែប្រែទម្រង់អ្នកលេង', + 'player_money_edit_log' => 'កំណត់ហេតុប្រតិបត្តិការកាបូប', + + 'game_manage' => 'ការគ្រប់គ្រងហ្គេម', + 'game_record' => 'កំណត់ត្រាហ្គេម', + 'game_out_in' => 'ការផ្ទេរទិន្នន័យចូល/ចេញហ្គេម', + 'game_list' => 'បញ្ជីហ្គេម', + 'version_manager' => 'ការគ្រប់គ្រងកំណែ', + 'activity_manager' => 'ការគ្រប់គ្រងសកម្មភាព', + 'activity_list' => 'បញ្ជីសកម្មភាព', + 'recharge_manager' => 'ការគ្រប់គ្រងការបញ្ចូលទឹកប្រាក់', + 'recharge_channels' => 'ឆានែលបញ្ចូលថ្ម', + 'play_and_earn' => 'លេង និងរកលុយ', + 'play_and_earn_record' => 'លេង និងរកកំណត់ត្រា', + 'dian' => 'ចំណុច', + // Promotion Management + 'channel_player_promoter' => 'Promotion Management', + 'channel_player_promoter_list' => 'Promoter List', + 'profit_record' => 'របាយការណ៍​ចែករំលែក​ទម្រង់', + 'profit_settlement_record' => 'បំបែក​កំណត់​សម្រាប់​ការ​តម្រៀប​បំផុត', + '游戏类型列表' => 'បញ្ជី​ប្រភេទ​ល្បែង', + //qrcode + '二维码管理' => 'ការ​គ្រប់គ្រង​កូដ QR', + '二维码批次列表' => 'បញ្ជី​បាត់​កូដ QR', + '持码人列表' => 'បញ្ជី​មាន​គ្រប់គ្រង​កូដ', + '广播管理' => 'ការ​គ្រប់គ្រង​ការ​ផ្លាស់ប្ដូរ', + '手动广播管理' => 'ការ​គ្រប់គ្រង​ផ្សាយ​ដោយ​ដៃ​', + '自动广播管理' => 'ការ​គ្រប់គ្រង​ការ​ផ្សាយ​ដោយ​ស្វ័យ​ប្រវត្តិ', + '公告管理' => 'ការ​គ្រប់គ្រង​ការ​ប្រកាស', + '公告列表' => 'បញ្ជី​ការ​ប្រកាស', + ], +]; diff --git a/addons/webman/lang/cam_dia/notice.php b/addons/webman/lang/cam_dia/notice.php new file mode 100644 index 0000000..35ed5d2 --- /dev/null +++ b/addons/webman/lang/cam_dia/notice.php @@ -0,0 +1,14 @@ + [ + Notice::TYPE_EXAMINE_RECHARGE => 'ការជូនដំណឹងអំពីការបញ្ចូលទឹកប្រាក់របស់អ្នកលេងឡើងវិញដែលកំពុងរង់ចាំការពិនិត្យ', + Notice::TYPE_EXAMINE_WITHDRAW => 'ការជូនដំណឹងអំពីការដកកីឡាករដែលរង់ចាំការពិនិត្យឡើងវិញ', + ], + 'content' => [ + Notice::TYPE_EXAMINE_RECHARGE => 'ការបញ្ជាទិញបញ្ចូលទឹកប្រាក់ថ្មីដែលកំពុងរង់ចាំការពិនិត្យឡើងវិញ អ្នកលេង៖ {player_name} បញ្ចូលពិន្ទុហ្គេមឡើងវិញ៖ {coins} ចំនួនទឹកប្រាក់បញ្ចូលទឹកប្រាក់៖ {money}!', + Notice::TYPE_EXAMINE_WITHDRAW => 'ការបញ្ជាទិញដកប្រាក់ថ្មីដែលកំពុងរង់ចាំការពិនិត្យឡើងវិញ អ្នកលេង៖ {player_name} ពិន្ទុហ្គេមដកប្រាក់៖ {coins} ចំនួនដកប្រាក់៖ {money}!', + ], +]; diff --git a/addons/webman/lang/cam_dia/play_game_record.php b/addons/webman/lang/cam_dia/play_game_record.php new file mode 100644 index 0000000..f4907c4 --- /dev/null +++ b/addons/webman/lang/cam_dia/play_game_record.php @@ -0,0 +1,23 @@ + 'កំណត់ត្រាហ្គេមរបស់អ្នកលេង', + 'fields' => [ + 'id' => 'ID', + 'game_code' => 'លេខហ្គេម', + 'bet' => 'ចំនួនភ្នាល់', + 'win' => 'ចំនួនឈ្នះ', + 'reward' => 'ប្រាក់រង្វាន់ (មិនរាប់បញ្ចូលក្នុងការឈ្នះ)', + 'order_no' => 'លេខបញ្ជាទិញ (វេទិកាហ្គេម)', + 'status' => 'ស្ថានភាព', + 'platform_action_at' => 'ពេលវេលាទូទាត់ (វេទិកាហ្គេម)', + 'action_at' => 'ពេលវេលាទូទាត់', + 'create_at' => 'ពេលវេលាបង្កើត', + ], + 'status' => [ + PlayGameRecord::STATUS_UNSETTLED => 'មិនចែកចាយ', + PlayGameRecord::STATUS_SETTLED => 'ប្រាក់ចំណេញត្រូវបានបែងចែក', + ], +]; diff --git a/addons/webman/lang/cam_dia/player.php b/addons/webman/lang/cam_dia/player.php new file mode 100644 index 0000000..18b81c9 --- /dev/null +++ b/addons/webman/lang/cam_dia/player.php @@ -0,0 +1,136 @@ + 'បញ្ជីឈ្មោះអ្នកលេង', + 'details' => 'ព័ត៌មានលំអិតរបស់អ្នកលេង', + 'player' => 'អ្នកលេង', + 'coin_recharge_money' => 'ចំនួនបញ្ចូលទឹកប្រាក់', + 'coin_recharge_coins' => 'បញ្ចូលពិន្ទុ', + 'coin_recharge_title' => 'អ្នកកំពុងបញ្ចូលទឹកប្រាក់ {uuid} សូមបញ្ចូលចំនួនទឹកប្រាក់ទូទាត់ និងពិន្ទុបញ្ចូលទឹកប្រាក់', + 'coin_recharge_error' => 'ការបញ្ចូលលុយរបស់អ្នកចែកបៀបានបរាជ័យ', + 'coin_recharge_success' => 'អ្នកចែកបៀបញ្ចូលលុយបានជោគជ័យ', + 'artificial_recharge_error' => 'ការបញ្ចូលថ្មដោយដៃបានបរាជ័យ', + 'artificial_recharge_success' => 'ការបញ្ចូលថ្មដោយដៃបានជោគជ័យ', + 'artificial_withdrawal_error' => 'ការដកប្រាក់ដោយដៃបានបរាជ័យ', + 'artificial_withdrawal_success' => 'ការដកប្រាក់ដោយដៃបានជោគជ័យ', + 'insufficient_balance' => 'សមតុល្យគណនីមិនគ្រប់គ្រាន់', + 'fields' => [ + 'id' => 'ID', + 'phone' => 'លេខទូរស័ព្ទ (លេខគណនី)', + 'level' => 'កម្រិតអ្នកលេង', + 'name' => 'ឈ្មោះហៅក្រៅរបស់អ្នកប្រើ', + 'currency' => 'រូបិយប័ណ្ណ', + 'email' => 'អ៊ីមែល', + 'line' => 'បន្ទាត់', + 'department_id' => 'ឆានែល', + 'status' => 'ស្ថានភាពគណនី', + 'status_withdraw' => 'មុខងារដកប្រាក់', + 'status_transfer' => 'មុខងារផ្ទេរ', + 'status_open_coins' => 'ផ្តល់ការអនុញ្ញាត', + 'created_at' => 'ពេលវេលាចុះឈ្មោះ', + 'avatar' => 'រូបតំណាងអ្នកលេង', + 'machine_play_num' => 'ចំនួនម៉ាស៊ីនដែលអាចលេងបាន', + 'login_at' => 'ពេលចូលចុងក្រោយ', + 'register_ip' => 'ចុះឈ្មោះ IP', + 'register_domain' => 'ចុះឈ្មោះឈ្មោះដែន', + 'country_code' => 'លេខកូដប្រទេស/តំបន់', + 'player_tag' => 'ស្លាក', + 'uuid' => 'អ្នកលេង UID', + 'type' => 'ប្រភេទអ្នកលេង', + 'player_login_record' => 'ពេលវេលាចូលចុងក្រោយ', + 'play_password' => 'ពាក្យសម្ងាត់ទូទាត់', + 'password' => 'ពាក្យសម្ងាត់ចូល', + 'recommend_code' => 'លេខកូដផ្សព្វផ្សាយ', + 'recommend_promoter_name' => 'អ្នកផ្សព្វផ្សាយ', + 'chip_amount' => 'ចំនួនកូដបច្ចុប្បន្ន', + 'must_chip_amount' => 'ចំនួនលេខកូដគោលដៅ', + ], + 'player_no_change' => 'អ្នកលេងមិនបានផ្លាស់ប្តូរទេ', + 'not_fount' => 'រកមិនឃើញអ្នកលេង', + 'disable' => 'អ្នកលេងនេះត្រូវបានបិទ', + 'change_player_content' => 'ផ្លាស់ប្តូរអ្នកលេងហ្គេម៖ {form} ➜ {to}', + 'player_change_success' => 'ការផ្លាស់ប្តូរអ្នកលេងបានជោគជ័យ', + 'player_machine_limit' => 'ការផ្លាស់ប្តូរអ្នកលេងបានបរាជ័យ អ្នកលេងនេះអាចលេងបានតែ {machinePlayNum} stations ច្រើនបំផុត ការផ្លាស់ប្តូរដោយជោគជ័យ', + 'password_min_number' => 'ពាក្យសម្ងាត់ត្រូវតែមានយ៉ាងហោចណាស់ 6 ខ្ទង់', + 'password_confim_validate' => 'ពាក្យសម្ងាត់បញ្ចូលមិនស៊ីសង្វាក់គ្នា', + 'update_password' => 'ប្តូរពាក្យសម្ងាត់', + 'reset_password' => 'កំណត់ពាក្យសម្ងាត់ឡើងវិញ', + 'old_password' => 'ពាក្យសម្ងាត់ចាស់', + 'old_password_error' => 'កំហុសពាក្យសម្ងាត់ចាស់', + 'new_password' => 'ពាក្យសម្ងាត់ថ្មី', + 'confim_password' => 'បញ្ជាក់ពាក្យសម្ងាត់', + 'remark_edit_success' => 'ការកត់សម្គាល់បានធ្វើបច្ចុប្បន្នភាពដោយជោគជ័យ', + 'player_info' => 'ព័ត៌មានអ្នកលេង', + 'save_player_info_success' => 'រក្សាទុកដោយជោគជ័យ', + 'add_player' => 'បន្ថែមអ្នកលេង', + 'phone_has_register' => 'លេខទូរស័ព្ទត្រូវបានចុះឈ្មោះ', + 'avatar_type' => 'រូបតំណាង', + 'upload_avatar' => 'បង្ហោះរូបតំណាង', + 'def_avatar' => 'រូបតំណាងលំនាំដើម', + 'action_error' => 'ប្រតិបត្តិការបានបរាជ័យ', + 'action_success' => 'សកម្មភាពជោគជ័យ', + 'phone_exist' => 'លេខទូរស័ព្ទត្រូវបានចុះឈ្មោះ', + 'player_recharge_record' => 'កំណត់ត្រាបញ្ចូលថ្ម', + 'player_withdraw_record' => 'កំណត់ត្រានៃការដកប្រាក់', + 'player_game_record' => 'កំណត់ត្រាហ្គេម', + 'confirm' => [ + 'change_player_confirm' => 'បញ្ជាក់ដើម្បីផ្លាស់ប្តូរអ្នកលេង? ', + ], + 'btn' => [ + 'change_player' => 'ផ្លាស់ប្តូរអ្នកលេង', + ], + 'wallet' => [ + 'player_wallet' => 'កាបូបអ្នកលេង', + 'deduct' => 'ដកពិន្ទុ', + 'increase' => 'បន្ថែមចំណុច', + 'wallet_from' => 'ព័ត៌មានកាបូប', + 'wallet' => 'សមតុល្យកាបូប', + 'type' => 'ប្រភេទ', + 'action' => 'សកម្មភាព', + 'money' => 'ចំនួន', + 'textarea' => 'ចំណាំ', + 'wallet_operation_failed' => 'ប្រតិបត្តិការកាបូបបានបរាជ័យ', + 'wallet_operation_success' => 'ប្រតិបត្តិការកាបូបជោគជ័យ', + 'player_apply_manual_system_add' => 'ចំនួនប្រព័ន្ធដោយដៃត្រូវបានចែកចាយទៅកាបូបសំខាន់របស់អ្នកលេង', + 'operation_amount_error' => 'ចំនួនប្រតិបត្តិការមានកំហុស', + 'wallet_type_error' => 'កំហុសប្រភេទប្រតិបត្តិការ', + 'player_error' => 'កំហុសអ្នកលេង', + 'wallet_action_log_not_found' => 'កំណត់ហេតុប្រតិបត្តិការកាបូបរបស់អ្នកលេងមិនមានទេ', + 'insufficient_player_money' => 'សមតុល្យអ្នកលេងមិនគ្រប់គ្រាន់', + 'unlimited' => 'គ្មានដែនកំណត់', + 'modify' => 'កែប្រែសមតុល្យ', + 'artificial_recharge' => 'បញ្ចូលទឹកប្រាក់ដោយដៃ', + 'artificial_withdrawal' => 'ការដកប្រាក់ដោយដៃ', + 'artificial_recharge_tip' => 'ការបញ្ចូលទឹកប្រាក់ដោយដៃ គ្មានការអន្តរាគមន៍ដោយដៃត្រូវបានទាមទារសម្រាប់ការត្រួតពិនិត្យ បន្ទាប់ពីបញ្ចូលទឹកប្រាក់ត្រូវបានបញ្ចប់ ពិន្ទុហ្គេមនឹងត្រូវបានចេញដោយផ្ទាល់ទៅកាន់គណនីរបស់អ្នកលេង ហើយព័ត៌មាននៃការបញ្ចូលទឹកប្រាក់នឹងត្រូវបានកត់ត្រាទុក។', + 'artificial_withdrawal_tip' => 'ការដកប្រាក់ដោយដៃមិនតម្រូវឱ្យមានការអន្តរាគមន៍ និងការពិនិត្យមើលដោយដៃទេ បន្ទាប់ពីការដកប្រាក់ត្រូវបានបញ្ចប់ សមតុល្យកាបូបរបស់អ្នកលេងនឹងត្រូវបានកាត់ដោយផ្ទាល់ ហើយព័ត៌មានអំពីការដកប្រាក់នឹងត្រូវបានកត់ត្រាទុក។', + 'wallet_type' => [ + PlayerMoneyEditLog::RECHARGE => 'បញ្ចូលទឹកប្រាក់', + PlayerMoneyEditLog::VIP_RECHARGE => 'បញ្ចូលទឹកប្រាក់ VIP', + PlayerMoneyEditLog::ACTIVITY_GIVE => 'ប្រាក់រង្វាន់សកម្មភាព', + PlayerMoneyEditLog::ADMIN_DEDUCT => 'អ្នកគ្រប់គ្រងដកពិន្ទុ', + PlayerMoneyEditLog::ADMIN_INCREASE => 'អ្នកគ្រប់គ្រងបន្ថែមពិន្ទុ', + PlayerMoneyEditLog::OTHER => 'ផ្សេងទៀត', + ] + ], + 'player_delivery_record' => 'ប្រតិបត្តិការកាបូប', + 'wallet_action_status_has_closed' => 'មុខងារប្រតិបត្តិការកាបូបឆានែលត្រូវបានបិទ!', + 'level_setting' => 'កម្រិតអ្នកលេង', + 'level' => [ + 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' + ], + 'no_level' => 'គ្មានកម្រិត', +]; diff --git a/addons/webman/lang/cam_dia/player_chip_record.php b/addons/webman/lang/cam_dia/player_chip_record.php new file mode 100644 index 0000000..acf23b4 --- /dev/null +++ b/addons/webman/lang/cam_dia/player_chip_record.php @@ -0,0 +1,26 @@ + 'បញ្ជីចំនួននៃការសរសេរកូដ', + 'fields' => [ + 'id' => 'ID', + 'name' => 'ឈ្មោះហ្គេម', + 'chip_amount' => 'ចំនួនកូដបច្ចុប្បន្ន', + 'must_chip_amount' => 'ចំនួនលេខកូដគោលដៅ', + 'record_type' => 'ប្រភេទ', + 'amount' => 'ចំនួនដែលបានកើតឡើង', + 'created_at' => 'ពេលវេលាបង្កើត', + ], + 'record_type' => [ + PlayerChipRecord::RECORD_TYPE_SIGN => 'ចូល', + PlayerChipRecord::RECORD_TYPE_RECHARGE => 'បញ្ចូលថ្មធម្មតា', + PlayerChipRecord::RECORD_TYPE_ACTIVITY => 'ការបញ្ចូលទឹកប្រាក់សកម្មភាព', + PlayerChipRecord::RECORD_TYPE_GAME => 'ការភ្នាល់ហ្គេម', + PlayerChipRecord::RECORD_TYPE_COMMISSION => 'ការចែករំលែកប្រាក់ចំណេញ', + PlayerChipRecord::RECORD_TYPE_BANKRUPTCY => 'ក្ស័យធន', + PlayerChipRecord::RECORD_TYPE_BET_REBATE => 'ការបញ្ចុះតម្លៃលេខកូដ', + PlayerChipRecord::RECORD_TYPE_FIRST_RECHARGE_REWARD => 'រង្វាន់ដាក់ប្រាក់ដំបូង', + ], +]; diff --git a/addons/webman/lang/cam_dia/player_delivery_record.php b/addons/webman/lang/cam_dia/player_delivery_record.php new file mode 100644 index 0000000..a5ea419 --- /dev/null +++ b/addons/webman/lang/cam_dia/player_delivery_record.php @@ -0,0 +1,41 @@ + 'កំណត់ត្រាផ្លាស់ប្តូរគណនី', + 'fields' => [ + 'id' => 'ID', + 'player_id' => 'អ្នកលេង', + 'target' => 'តារាងទិន្នន័យប្រតិបត្តិការ', + 'target_id' => 'លេខសម្គាល់ទិន្នន័យ', + 'type' => 'ប្រភេទ', + 'source' => 'វត្ថុជួញដូរ', + 'amount' => 'ពិន្ទុហ្គេម', + 'user_id' => 'លេខសម្គាល់អ្នកគ្រប់គ្រង', + 'user_name' => 'ប្រតិបត្តិករ', + 'amount_before' => 'ពិន្ទុមុនការផ្លាស់ប្តូរ', + 'amount_after' => 'ពិន្ទុបន្ទាប់ពីការផ្លាស់ប្តូរ', + 'tradeno' => 'លេខបញ្ជាទិញ', + 'remark' => 'ចំណាំ', + 'updated_at' => 'ពេលធ្វើបច្ចុប្បន្នភាព', + 'created_at' => 'ពេលវេលាបង្កើត', + ], + 'type' => [ + PlayerDeliveryRecord::TYPE_MODIFIED_AMOUNT_ADD => '(ផ្ទៃខាងក្រោយការគ្រប់គ្រង) បន្ថែមពិន្ទុ', + PlayerDeliveryRecord::TYPE_RECHARGE => 'បញ្ចូលទឹកប្រាក់', + PlayerDeliveryRecord::TYPE_WITHDRAWAL => 'ការដកប្រាក់', + PlayerDeliveryRecord::TYPE_MODIFIED_AMOUNT_DEDUCT => '(ផ្ទៃខាងក្រោយការគ្រប់គ្រង) ពិន្ទុកាត់', + PlayerDeliveryRecord::TYPE_WITHDRAWAL_BACK => 'ការដកប្រាក់ថយក្រោយ', + PlayerDeliveryRecord::TYPE_REGISTER_PRESENT => 'ចុះឈ្មោះដោយឥតគិតថ្លៃ', + PlayerDeliveryRecord::TYPE_COMMISSION => 'កម្រៃជើងសារសងប្រាក់វិញ', + PlayerDeliveryRecord::TYPE_SIGN => 'ចូល', + PlayerDeliveryRecord::TYPE_GAME_OUT => 'ការផ្ទេរហ្គេម', + PlayerDeliveryRecord::TYPE_GAME_IN => 'ការផ្ទេរហ្គេម', + PlayerDeliveryRecord::TYPE_BET_REBATE => 'ការបង្វិលសងសម្រាប់ចំនួនលេខកូដ', + PlayerDeliveryRecord::TYPE_DAMAGE_REBATE => 'ការបង្វិលសងការខូចខាតអតិថិជន', + PlayerDeliveryRecord::TYPE_RECHARGE_REWARD => 'រង្វាន់ដាក់ប្រាក់ដំបូង', + ], + 'detail' => 'ព័ត៌មានលម្អិត', + 'chart' => 'គំនូសតាង', +]; diff --git a/addons/webman/lang/cam_dia/player_edit_log.php b/addons/webman/lang/cam_dia/player_edit_log.php new file mode 100644 index 0000000..a421ffc --- /dev/null +++ b/addons/webman/lang/cam_dia/player_edit_log.php @@ -0,0 +1,42 @@ + 'កំណត់ហេតុការកែប្រែទម្រង់អ្នកលេង', + 'fields' => [ + 'id' => 'លេខ', + 'origin_data' => 'ទិន្នន័យដើម', + 'new_data' => 'ទិន្នន័យក្រោយប្រតិបត្តិការ', + 'create_at' => 'ពេលវេលាប្រតិបត្តិការ', + ], + 'details' => 'ព័ត៌មានលម្អិតអំពីប្រតិបត្តិការ', + 'created_at_start' => 'កំណត់ពេលចាប់ផ្តើម', + 'created_at_end' => 'កំណត់ពេលបញ្ចប់', + 'admin_user' => 'អ្នកគ្រប់គ្រង', + 'action_info' => 'ព័ត៌មានលម្អិតអំពីសកម្មភាព', + 'action' => [ + 'status_open' => 'បើកគណនីអ្នកលេង', + 'status_stop' => 'បិទដំណើរការគណនីអ្នកលេង', + 'status_withdraw_open' => 'បើកមុខងារដកប្រាក់', + 'status_withdraw_close' => 'បិទមុខងារដកប្រាក់', + 'status_open_coins_open' => 'បើកមុខងារដកប្រាក់របស់អ្នកលេង', + 'status_open_coins_close' => 'បិទមុខងារប្រាក់រង្វាន់អ្នកលេង', + 'name' => 'កែប្រែឈ្មោះអ្នកលេង៖ ', + 'phone' => 'កែប្រែលេខទូរស័ព្ទរបស់អ្នកលេង៖ ', + 'country_code' => 'កែប្រែប្រទេស/លេខកូដតំបន់របស់អ្នកលេង៖ ', + 'play_password' => 'កែប្រែពាក្យសម្ងាត់ទូទាត់៖ ', + 'password' => 'ផ្លាស់ប្តូរពាក្យសម្ងាត់ចូល៖ ', + 'avatar' => 'កែប្រែរូបតំណាង៖ ', + 'sex' => 'កែប្រែភេទ៖ ', + 'email' => 'កែប្រែអ៊ីមែល៖ ', + 'qq' => 'កែប្រែ QQ: ', + 'telegram' => 'កែប្រែ telegram: ', + 'birthday' => 'កែប្រែថ្ងៃកំណើត៖ ', + 'id_number' => 'កែប្រែអត្តសញ្ញាណប័ណ្ណ៖ ', + 'address' => 'កែប្រែអាសយដ្ឋាន៖ ', + 'wechat' => 'កែប្រែ Wechat ID: ', + 'whatsapp' => 'កែប្រែ whatsapp: ', + 'facebook' => 'កែប្រែ facebook: ', + 'line' => 'កែប្រែបន្ទាត់៖ ', + 'remark' => 'កំណត់ចំណាំការកែប្រែ៖ ', + ], +]; diff --git a/addons/webman/lang/cam_dia/player_extend.php b/addons/webman/lang/cam_dia/player_extend.php new file mode 100644 index 0000000..aec2341 --- /dev/null +++ b/addons/webman/lang/cam_dia/player_extend.php @@ -0,0 +1,33 @@ + [ + 'id' => 'ID', + 'player_id' => 'លេខសម្គាល់អ្នកលេង', + 'sex' => 'ភេទ', + 'email' => 'អ៊ីមែល', + 'ip' => 'អាសយដ្ឋាន IP', + 'qq' => 'គណនី QQ', + 'telegram' => 'តេឡេក្រាម', + 'birthday' => 'ខួបកំណើត', + 'id_number' => 'អត្តសញ្ញាណប័ណ្ណ', + 'address' => 'អាសយដ្ឋាន', + 'wechat' => 'លេខសម្គាល់ Wechat', + 'whatsapp' => 'Whatsapp', + 'facebook' => 'ហ្វេសប៊ុក', + 'line' => 'បន្ទាត់', + 'remark' => 'ចំណាំ', + 'coin_recharge_amount' => 'ការបញ្ចូលទឹកប្រាក់របស់អ្នកជំនួញកាក់', + 'present_out' => 'ផ្ទេរចេញ', + 'present_in' => 'ផ្ទេរ', + 'recharge_amount' => 'ពិន្ទុបញ្ចូលទឹកប្រាក់សរុប', + 'withdraw_amount' => 'ពិន្ទុដកសរុប', + 'present_out_amount' => 'ពិន្ទុដែលបានផ្ទេរសរុប', + 'present_in_amount' => 'ពិន្ទុផ្ទេរសរុប', + 'third_recharge_amount' => 'ពិន្ទុបញ្ចូលទឹកប្រាក់ភាគីទីបីសរុប', + 'third_withdraw_amount' => 'ពិន្ទុដកភាគីទីបីសរុប', + 'created_at' => 'ពេលវេលាបង្កើត', + 'updated_at' => 'ពេលធ្វើបច្ចុប្បន្នភាព', + ], + 'remark_limit' => 'តួអក្សរចំណាំមិនអាចលើសពី 255 តួអក្សរបានទេ' +]; diff --git a/addons/webman/lang/cam_dia/player_level.php b/addons/webman/lang/cam_dia/player_level.php new file mode 100644 index 0000000..e70f09d --- /dev/null +++ b/addons/webman/lang/cam_dia/player_level.php @@ -0,0 +1,25 @@ + 'កម្រិតអ្នកលេង', + 'recharge_amount' => 'ចំនួនបញ្ចូលទឹកប្រាក់', + 'chip_multiple' => 'ដកលេខកូដច្រើន', + 'bet_rebate_amount' => 'ចំនួនលេខកូដដែលត្រូវការសម្រាប់ការបង្វិលសង', + 'bet_rebate_ratio' => 'សមាមាត្របង្វិលសងនៃចំនួនលេខកូដ', + 'damage_rebate_ratio' => 'សមាមាត្រសងការខូចខាតអតិថិជន', + 'help' => [ + 'recharge_amount' => 'ការកំណត់រចនាសម្ព័ន្ធចំនួនបញ្ចូលទឹកប្រាក់អតិបរមាអាចត្រូវបានកំណត់ត្រឹម {max_amount}', + 'chip_multiple' => 'ចំនួនអតិបរមានៃចំនួនកូដដកប្រាក់អាចត្រូវបានកំណត់ត្រឹម {max_multiple}', + 'bet_rebate_amount' => 'ចំនួនអតិបរមានៃលេខកូដដែលត្រូវការសម្រាប់ការបង្វិលសងអាចត្រូវបានកំណត់ត្រឹម {max_amount}', + 'bet_rebate_ratio' => 'សមាមាត្រការបង្វិលសងអតិបរមាសម្រាប់បរិមាណនៃការសរសេរកូដអាចត្រូវបានកំណត់ត្រឹម {max_ratio}', + 'damage_rebate_ratio' => 'សមាមាត្របង្វិលសងការខូចខាតអតិថិជនអតិបរមាអាចត្រូវបានកំណត់ត្រឹម {max_ratio}', + 'level_name' => 'បញ្ចូលតួអក្សរអតិបរមាចំនួន 20 សម្រាប់ឈ្មោះកម្រិត', + 'level_content' => 'ការណែនាំកម្រិតអាចបញ្ចូលរហូតដល់ 500 តួអក្សរ', + ], + 'recharge_amount_must_gt_upper' => '{level}, ការកំណត់រចនាសម្ព័ន្ធចំនួនទឹកប្រាក់បញ្ចូលត្រូវតែធំជាងកម្រិតមុន', + 'recharge_amount_must_lt_next' => '{level}, ការកំណត់រចនាសម្ព័ន្ធចំនួនទឹកប្រាក់បញ្ចូលត្រូវតែតិចជាងកម្រិតមុន ឬបន្ទាប់', + 'recharge_amount_not_found' => '{level}, ការកំណត់រចនាសម្ព័ន្ធចំនួនបញ្ចូលទឹកប្រាក់ត្រូវបានទាមទារ', + 'level' => 'កម្រិតអ្នកលេង', + 'level_name' => 'ឈ្មោះកម្រិត', + 'level_content' => 'កម្រិតនៃការពិពណ៌នាមាតិកា', +]; diff --git a/addons/webman/lang/cam_dia/player_money_edit_log.php b/addons/webman/lang/cam_dia/player_money_edit_log.php new file mode 100644 index 0000000..bb26ef9 --- /dev/null +++ b/addons/webman/lang/cam_dia/player_money_edit_log.php @@ -0,0 +1,40 @@ + 'កំណត់ហេតុប្រតិបត្តិការកាបូប', + 'fields' => [ + 'id' => 'លេខ', + 'money' => 'ចំនួន', + 'action' => 'ប្រភេទសកម្មភាព', + 'origin_money' => 'ចំនួនដើម', + 'after_money' => 'ចំនួនទឹកប្រាក់បន្ទាប់ពីការផ្លាស់ប្តូរ', + 'create_at' => 'ពេលវេលាប្រតិបត្តិការ', + 'remark' => 'ចំណាំ', + ], + 'created_at_start' => 'កំណត់ពេលចាប់ផ្តើម', + 'created_at_end' => 'កំណត់ពេលបញ្ចប់', + 'admin_user' => 'អ្នកគ្រប់គ្រង', + 'player_info' => 'ព័ត៌មានអ្នកលេង', + 'action_info' => 'ព័ត៌មានសកម្មភាព', + 'action' => [ + PlayerMoneyEditLog::RECHARGE => 'បញ្ចូលទឹកប្រាក់', + PlayerMoneyEditLog::VIP_RECHARGE => 'បញ្ចូលទឹកប្រាក់ VIP', + PlayerMoneyEditLog::ACTIVITY_GIVE => 'ប្រាក់រង្វាន់សកម្មភាព', + PlayerMoneyEditLog::ADMIN_DEDUCT => 'អ្នកគ្រប់គ្រងដកពិន្ទុ', + PlayerMoneyEditLog::OTHER => 'ផ្សេងទៀត', + ], + 'total_data' => [ + 'total_recharge' => 'បញ្ចូលថ្ម', + 'total_vip_recharge' => 'បញ្ចូលទឹកប្រាក់ VIP', + 'total_testing_machine' => 'ម៉ាស៊ីនសាកល្បង', + 'total_other' => 'ផ្សេងៗ', + 'total_activity_give' => 'ការផ្ដល់ជូនសកម្មភាព', + 'total_triple_seven_give' => 'Total_triple_seven_give', + 'total_composite_machine_give' => 'ម៉ាស៊ីនផ្សំដែលបានផ្តល់ជាអំណោយ', + 'total_electronic_give' => 'រង្វាន់អេឡិចត្រូនិក', + 'total_admin_deduct' => 'អ្នកគ្រប់គ្រងដកពិន្ទុ', + 'total_real_person_give' => 'មនុស្សពិតផ្តល់ឱ្យ', + ], +]; diff --git a/addons/webman/lang/cam_dia/player_platform_cash.php b/addons/webman/lang/cam_dia/player_platform_cash.php new file mode 100644 index 0000000..e712a59 --- /dev/null +++ b/addons/webman/lang/cam_dia/player_platform_cash.php @@ -0,0 +1,20 @@ + 'កាបូបវេទិកា', + 'fields' => [ + 'id' => 'ID', + 'player_id' => 'លេខសម្គាល់អ្នកលេង', + 'platform_id' => 'លេខសម្គាល់វេទិកា', + 'platform_name' => 'ឈ្មោះវេទិកា', + 'money' => 'ពិន្ទុ', + 'status' => 'ស្ថានភាពវេទិកាហ្គេម', + 'created_at' => 'ពេលវេលាបង្កើត', + 'updated_at' => 'ពេលធ្វើបច្ចុប្បន្នភាព', + ], + 'platform_name' => [ + PlayerPlatformCash::PLATFORM_SELF => 'សមតុល្យកាបូប' + ] +]; diff --git a/addons/webman/lang/cam_dia/player_recharge_record.php b/addons/webman/lang/cam_dia/player_recharge_record.php new file mode 100644 index 0000000..b81fb88 --- /dev/null +++ b/addons/webman/lang/cam_dia/player_recharge_record.php @@ -0,0 +1,90 @@ + 'ការបញ្ចូលទិន្នន័យឡើងវិញ', + 'examine_title' => 'បញ្ចូលកំណត់ត្រាសវនកម្ម', + 'status_wait' => 'កំពុងសាកថ្ម', + 'status_examine' => 'គណនីមិនទាន់សម្រេច', + 'status_recharging' => 'ត្រូវបង់', + 'status_success' => 'បញ្ចូលថ្មរួចរាល់', + 'status_fail' => 'ការបញ្ចូលថ្មបានបរាជ័យ', + 'status_cancel' => 'បោះបង់ការបញ្ចូលទឹកប្រាក់ឡើងវិញ', + 'status_reject' => 'បដិសេធ', + 'status_system_cancel' => 'បិទ', + 'status_examine_pass' => 'បញ្ចូលទឹកប្រាក់រួចរាល់', + 'status_examine_reject' => 'ការបដិសេធសវនកម្ម', + 'not_fount' => 'រកមិនឃើញការបញ្ជាទិញបញ្ចូលទឹកប្រាក់', + 'recharge_record_error' => 'កំហុសក្នុងការបញ្ជាទិញឡើងវិញ', + 'action_error' => 'ប្រតិបត្តិការបានបរាជ័យ', + 'action_success' => 'សកម្មភាពជោគជ័យ', + 'view_recharge_certificate_title' => 'មើលប័ណ្ណទូទាត់សម្រាប់ការបញ្ជាទិញ {tradeno}', + 'recharge_record_not_complete' => 'ការបញ្ចូលទឹកប្រាក់របស់អ្នកលេងមិនទាន់បានបញ្ចប់ទេ', + 'recharge_record_has_pass' => 'ការបញ្ជាទិញបញ្ចូលទឹកប្រាក់ត្រូវបានអនុម័ត', + 'recharge_record_has_fail' => 'បញ្ចូលទឹកប្រាក់បញ្ជាទិញបានបរាជ័យ', + 'recharge_record_has_cancel' => 'អ្នកលេងបានលុបចោលការបញ្ជាទិញការផ្លាស់ប្តូរ', + 'recharge_record_has_reject' => 'ការបញ្ជាទិញបញ្ចូលទឹកប្រាក់ត្រូវបានច្រានចោល', + 'recharge_record_has_system_cancel' => 'ប្រព័ន្ធបានអស់ពេល និងបិទការបញ្ជាទិញ', + 'talk_currency' => 'រូបិយប័ណ្ណ Q', + 'fields' => [ + 'id' => 'ID', + 'player_id' => 'អ្នកលេង', + 'department_id' => 'ឆានែល', + 'tradeno' => 'បញ្ចូលលេខបញ្ជាទិញ', + 'status' => 'ស្ថានភាព', + 'type' => 'ប្រភេទ', + 'player_name' => 'ឈ្មោះអ្នកលេង', + 'player_phone' => 'លេខទូរស័ព្ទអ្នកលេង', + 'money' => 'ចំនួនបញ្ចូលទឹកប្រាក់', + 'inmoney' => 'ចំនួនពិត', + 'certificate' => 'ប័ណ្ណទូទាត់', + 'coins' => 'កាក់', + 'gift_coins' => 'កាក់អំណោយ', + 'player_tag' => 'ស្លាក', + 'remark' => 'ចំណាំ', + 'reject_reason' => 'ហេតុផលបដិសេធ', + 'user_name' => 'ប្រតិបត្តិករ', + 'currency' => 'រូបិយប័ណ្ណ', + 'finish_time' => 'ពេល​បញ្ចប់', + 'cancel_time' => 'បោះបង់ពេលវេលា', + 'created_at' => 'ពេលវេលាបង្កើត', + ], + 'type' => [ + PlayerRechargeRecord::TYPE_REGULAR => 'បញ្ចូលថ្មធម្មតា', + PlayerRechargeRecord::TYPE_ACTIVITY => 'ការបញ្ចូលទឹកប្រាក់សកម្មភាព', + PlayerRechargeRecord::TYPE_ARTIFICIAL => 'បញ្ចូលទឹកប្រាក់ដោយដៃ', + ], + 'status' => [ + PlayerRechargeRecord::STATUS_WAIT => 'ត្រូវបញ្ចូលថ្មឡើងវិញ', + PlayerRechargeRecord::STATUS_RECHARGING => 'ការបង់ប្រាក់មិនទាន់សម្រេច (ការសវនកម្មមិនទាន់សម្រេច)', + PlayerRechargeRecord::STATUS_RECHARGED_SUCCESS => 'បញ្ចូលថ្មបានជោគជ័យ', + PlayerRechargeRecord::STATUS_RECHARGED_FAIL => 'បញ្ចូលថ្មបានបរាជ័យ', + PlayerRechargeRecord::STATUS_RECHARGED_CANCEL => 'បោះបង់ការបញ្ចូលទឹកប្រាក់', + PlayerRechargeRecord::STATUS_RECHARGED_REJECT => 'ពិនិត្យមើលការបដិសេធ', + PlayerRechargeRecord::STATUS_RECHARGED_SYSTEM_CANCEL => 'បិទ', + ], + 'action' => [ + 'action_error' => 'ប្រតិបត្តិការបានបរាជ័យ', + 'action_success' => 'សកម្មភាពជោគជ័យ', + 'action_not_fount' => 'សកម្មភាពមិនត្រូវបានកំណត់', + 'open_num' => 'ពិន្ទុបើកចំហ', + 'no_fount_player' => 'គ្មានអ្នកលេងនៅក្នុងហ្គេមទេ', + 'open_custom' => 'បើកពិន្ទុតាមបំណង', + 'down' => 'ចំណុចទាប', + ], + 'btn' => [ + 'action' => 'សកម្មភាព', + 'view_channel_recharge_setting' => 'មើលគណនីបញ្ចូលទឹកប្រាក់ឆានែល', + 'view_recharge_certificate' => 'មើលវិញ្ញាបនបត្រទូទាត់', + 'examine_pass' => 'ប្រឡងជាប់', + 'examine_reject' => 'ការបដិសេធការប្រឡង', + 'examine_pass_confirm' => 'សូមបញ្ជាក់ថាការបង់ប្រាក់ត្រូវបានទទួល បន្ទាប់ពីចុចប៊ូតុងអនុម័ត ប្រព័ន្ធនឹងចេញពិន្ទុហ្គេមដោយស្វ័យប្រវត្តិ', + 'examine_reject_confirm' => 'ការបដិសេធការពិនិត្យឡើងវិញ បន្ទាប់ពីការបដិសេធ អ្នកលេងនឹងមិនអាចបំពេញការបញ្ចូលទឹកប្រាក់បានទេ ហើយស្ថានភាពនៃកំណត់ត្រានេះមិនអាចផ្លាស់ប្តូរបានទេ', + ], + 'total_data' => [ + 'total_self_inmoney' => 'ចំនួនសរុបនៃការបញ្ចូលទឹកប្រាក់ក្នុងវេទិកា', + 'total_artificial_inmoney' => 'ចំនួនសរុបនៃការបញ្ចូលទឹកប្រាក់ដោយដៃ', + 'total_coins' => 'ពិន្ទុហ្គេមបញ្ចូលទឹកប្រាក់សរុប', + ], +]; diff --git a/addons/webman/lang/cam_dia/player_wallet_transfer.php b/addons/webman/lang/cam_dia/player_wallet_transfer.php new file mode 100644 index 0000000..7a0ce4f --- /dev/null +++ b/addons/webman/lang/cam_dia/player_wallet_transfer.php @@ -0,0 +1,15 @@ + 'កំណត់ត្រាផ្ទេរចូល/ចេញអ្នកលេង', + 'fields' => [ + 'id' => 'ID', + 'amount' => 'ចំនួន', + 'reward' => 'ចំនួនទឹកប្រាក់ឈ្នះ', + 'platform_no' => 'លេខបញ្ជាទិញ (វេទិកាហ្គេម)', + 'tradeno' => 'លេខបញ្ជាទិញ', + 'create_at' => 'ពេលវេលាបង្កើត', + 'department_name' => 'ឈ្មោះឆានែល', + 'platform_name' => 'វេទិកាហ្គេម', + ], +]; diff --git a/addons/webman/lang/cam_dia/player_withdraw_record.php b/addons/webman/lang/cam_dia/player_withdraw_record.php new file mode 100644 index 0000000..cadb70c --- /dev/null +++ b/addons/webman/lang/cam_dia/player_withdraw_record.php @@ -0,0 +1,80 @@ + 'កំណត់ត្រាដកប្រាក់', + 'payment_title' => 'ការដកប្រាក់ និងកំណត់ត្រាការទូទាត់', + 'examine_title' => 'កំណត់ត្រាសវនកម្មការដកប្រាក់', + 'status_wait' => 'ត្រូវពិនិត្យ', + 'status_success' => 'ការដកប្រាក់បានជោគជ័យ', + 'status_fail' => 'ការដកប្រាក់បានបរាជ័យ', + 'not_fount' => 'រកមិនឃើញការបញ្ជាទិញបញ្ចូលទឹកប្រាក់', + 'withdraw_record_error' => 'កំហុសក្នុងការបញ្ជាទិញឡើងវិញ', + 'action_error' => 'ប្រតិបត្តិការបានបរាជ័យ', + 'action_success' => 'សកម្មភាពជោគជ័យ', + 'withdraw_record_not_complete' => 'ការដកប្រាក់របស់អ្នកលេងមិនទាន់បានបញ្ចប់ទេ', + 'withdraw_record_has_complete' => 'ការដកប្រាក់ត្រូវបានបញ្ចប់', + 'withdraw_record_has_fail' => 'ការបញ្ជាទិញដកប្រាក់បានបរាជ័យ', + 'withdraw_record_has_cancel' => 'អ្នកលេងបានលុបចោលការបញ្ជាទិញហើយ', + 'withdraw_record_has_reject' => 'ការបញ្ជាទិញដកប្រាក់ត្រូវបានច្រានចោល', + 'withdraw_record_has_system_cancel' => 'ប្រព័ន្ធបានអស់ពេល និងបិទការបញ្ជាទិញ', + 'withdraw_record_has_pass' => 'ការបញ្ជាទិញដកប្រាក់ត្រូវបានអនុម័ត', + 'withdraw_record_status_error' => 'ការលើកលែងការបញ្ជាទិញដកប្រាក់', + 'withdraw_record_has_not_examine' => 'ការបញ្ជាទិញមិនទាន់ត្រូវបានពិនិត្យនៅឡើយ', + 'certificate_help' => 'មានតែទម្រង់ផ្ទុកឡើង jpg, png, និង jpeg ត្រូវបានអនុញ្ញាត ទំហំឯកសារអតិបរមាមិនអាចលើសពី 2M អ្នកអាចអូស និងទម្លាក់ទៅបន្ទាត់ចំនុចដើម្បីផ្ទុកឡើង។', + 'certificate_required' => 'សូមបង្ហោះប័ណ្ណទូទាត់', + 'player_bank' => 'គណនីអ្នកលេង', + 'fields' => [ + 'id' => 'ID', + 'player' => 'ព័ត៌មានអ្នកលេង', + 'player_id' => 'អ្នកលេង', + 'department_id' => 'ឆានែល', + 'tradeno' => 'លេខបញ្ជាការដកប្រាក់', + 'status' => 'ស្ថានភាព', + 'type' => 'ប្រភេទ', + 'player_name' => 'ឈ្មោះអ្នកលេង', + 'player_phone' => 'លេខទូរស័ព្ទអ្នកលេង', + 'money' => 'ចំនួនដកប្រាក់', + 'inmoney' => 'ចំនួនដកប្រាក់', + 'player_tag' => 'ស្លាក', + 'remark' => 'ចំណាំ', + 'currency' => 'រូបិយប័ណ្ណ', + 'finish_time' => 'ពេល​បញ្ចប់', + 'cancel_time' => 'បោះបង់ពេលវេលា', + 'created_at' => 'ចាប់ផ្តើមពេលដកប្រាក់', + 'coins' => 'ពិន្ទុហ្គេម', + 'bank_name' => 'ឈ្មោះធនាគារ', + 'account_name' => 'ឈ្មោះគណនី', + 'account' => 'លេខកាត', + ], + 'status' => [ + PlayerWithdrawRecord::STATUS_WAIT => 'ការដកប្រាក់ (រង់ចាំការពិនិត្យឡើងវិញ)', + PlayerWithdrawRecord::STATUS_SUCCESS => 'ដកប្រាក់ដោយជោគជ័យ', + PlayerWithdrawRecord::STATUS_FAIL => 'ការដកប្រាក់បានបរាជ័យ', + PlayerWithdrawRecord::STATUS_PENDING_PAYMENT => 'ការបង់ប្រាក់ដែលមិនទាន់សម្រេច', + PlayerWithdrawRecord::STATUS_PENDING_REJECT => 'សវនកម្មបានបរាជ័យ', + PlayerWithdrawRecord::STATUS_CANCEL => 'បោះបង់ការដក', + PlayerWithdrawRecord::STATUS_SYSTEM_CANCEL => 'ប្រព័ន្ធត្រូវបានលុបចោល', + ], + 'type' => [ + PlayerWithdrawRecord::TYPE_SELF => 'ការដកប្រាក់ពីវេទិកា', + PlayerWithdrawRecord::TYPE_ARTIFICIAL => 'ការដកប្រាក់ដោយដៃ', + ], + 'total_data' => [ + 'total_talk_inmoney' => 'ចំនួនសរុបនៃការដក QTalk', + 'total_self_inmoney' => 'ចំនួនសរុបនៃការដកប្រាក់ពីវេទិកា', + 'total_artificial_inmoney' => 'ចំនួនសរុបនៃការដកប្រាក់ដោយដៃ', + 'total_coins' => 'ពិន្ទុហ្គេមដកប្រាក់សរុប', + ], + 'btn' => [ + 'action' => 'សកម្មភាព', + 'view_channel_recharge_list' => 'មើលកំណត់ត្រាបញ្ចូលទឹកប្រាក់', + 'view_game_list' => 'មើលកំណត់ត្រាហ្គេម', + 'examine_pass' => 'ប្រឡងជាប់', + 'examine_reject' => 'ការបដិសេធការប្រឡង', + 'complete_payment' => 'ការទូទាត់ពេញលេញ', + 'examine_pass_confirm' => 'បន្ទាប់ពីឆ្លងកាត់ការត្រួតពិនិត្យ ការបញ្ជាទិញនឹងចូលទៅក្នុងដំណើរការទូទាត់ហិរញ្ញវត្ថុ សូមពិនិត្យដោយប្រុងប្រយ័ត្ន និងបញ្ជាក់', + 'examine_reject_confirm' => 'បដិសេធការពិនិត្យឡើងវិញ ចុចលើការពិនិត្យឡើងវិញ ហើយឆ្លងកាត់ ប្រព័ន្ធនឹងចេញពិន្ទុហ្គេមដោយស្វ័យប្រវត្តិ', + ], +]; diff --git a/addons/webman/lang/cam_dia/post.php b/addons/webman/lang/cam_dia/post.php new file mode 100644 index 0000000..af8fab9 --- /dev/null +++ b/addons/webman/lang/cam_dia/post.php @@ -0,0 +1,13 @@ + 'ការគ្រប់គ្រងទីតាំង', + 'normal' => 'ធម្មតា', + 'disable' => 'បិទ', + 'fields' => [ + 'name' => 'ឈ្មោះមុខតំណែង', + 'status' => 'ស្ថានភាព', + 'sort' => 'តម្រៀប', + 'create_at' => 'ពេលវេលាបង្កើត', + ], +]; diff --git a/addons/webman/lang/cam_dia/public_msg.php b/addons/webman/lang/cam_dia/public_msg.php new file mode 100644 index 0000000..84a2ddb --- /dev/null +++ b/addons/webman/lang/cam_dia/public_msg.php @@ -0,0 +1,12 @@ + 'កាលបរិច្ឆេទចាប់ផ្តើម', + 'date_end' => 'កាលបរិច្ឆេទបញ្ចប់', + 'created_at_start' => 'ម៉ោងចាប់ផ្តើម', + 'created_at_end' => 'ពេលវេលាបញ្ចប់', + 'status' => [ + 'បិទ', + 'បើក', + ], +]; diff --git a/addons/webman/lang/cam_dia/slider.php b/addons/webman/lang/cam_dia/slider.php new file mode 100644 index 0000000..082d0e6 --- /dev/null +++ b/addons/webman/lang/cam_dia/slider.php @@ -0,0 +1,19 @@ + 'រូបភាពរង្វង់មូល', + 'fields' => [ + 'id' => 'ID', + 'url' => 'អាសយដ្ឋានភ្ជាប់', + 'department_id' => 'ឆានែល', + 'content' => 'មាតិកា', + 'picture_url' => 'រូបភាព', + 'status' => 'ស្ថានភាព', + 'sort' => 'តម្រៀប', + 'created_at' => 'ពេលវេលាបង្កើត', + ], + 'url_max_length' => 'អាសយដ្ឋានតំណអាចមានរហូតដល់ 200 តួអក្សរ', + 'help' => [ + 'picture_url_size' => 'ទំហំរូបភាពដែលបានណែនាំ 1080*458', + ] +]; diff --git a/addons/webman/lang/cam_dia/system_setting.php b/addons/webman/lang/cam_dia/system_setting.php new file mode 100644 index 0000000..b9a9227 --- /dev/null +++ b/addons/webman/lang/cam_dia/system_setting.php @@ -0,0 +1,30 @@ + 'ការកំណត់រចនាសម្ព័ន្ធ', + 'fields' => [ + 'register_present' => 'ពិន្ទុអំណោយសម្រាប់ការចុះឈ្មោះដោយជោគជ័យ', + 'marquee' => 'ផ្លាកយីហោអតិថិជន', + 'machine_maintain' => 'រយៈពេលថែទាំម៉ាស៊ីនប្រចាំសប្តាហ៍', + 'feature' => 'មុខងារ', + 'setting' => 'ការកំណត់រចនាសម្ព័ន្ធ', + 'status' => 'ស្ថានភាព', + 'recharge_order_expiration' => 'បញ្ចូលម៉ោងផុតកំណត់នៃការបញ្ជាទិញឡើងវិញ', + ], + 'marquee_max_len' => 'Marquee អាចមានរហូតដល់ 100 តួអក្សរ', + 'week' => [ + 1 => 'ថ្ងៃច័ន្ទ', + 2 => 'ថ្ងៃអង្គារ', + 3 => 'ថ្ងៃពុធ', + 4 => 'ថ្ងៃព្រហស្បតិ៍', + 5 => 'ថ្ងៃសុក្រ', + 6 => 'ថ្ងៃសៅរ៍', + 7 => 'ថ្ងៃអាទិត្យ', + ], + 'week_str' => 'សប្តាហ៍', + 'minutes' => 'នាទី', + 'time_range' => 'ជួរកាលបរិច្ឆេទ', + 'master' => 'ការកំណត់រចនាសម្ព័ន្ធសរុប', + 'not_fount' => 'រកមិនឃើញការកំណត់', + 'action_success' => 'សកម្មភាពជោគជ័យ', +]; diff --git a/addons/webman/lang/cam_dia/validator.php b/addons/webman/lang/cam_dia/validator.php new file mode 100644 index 0000000..62dd190 --- /dev/null +++ b/addons/webman/lang/cam_dia/validator.php @@ -0,0 +1,23 @@ + 'មិនអាចទទេបានទេ', + 'email' => 'ទម្រង់អ៊ីមែលមិនត្រូវគ្នា', + 'idCard' => 'ទម្រង់អត្តសញ្ញាណប័ណ្ណមិនត្រូវគ្នា', + 'url' => 'មិនមែនជាអាសយដ្ឋាន URL ត្រឹមត្រូវ', + 'number' => 'ត្រូវតែជាលេខ', + 'integer' => 'ត្រូវតែជាចំនួនគត់', + 'float' => 'ត្រូវតែជាលេខអណ្តែតទឹក', + 'mobile' => 'ទម្រង់មិនត្រូវគ្នា', + 'leng' => 'ប្រវែងមិនបំពេញតាមតម្រូវការ', + 'alpha' => 'អាចជាអក្សរ', + 'alphaNum' => 'អាចជាអក្សរក្រមលេខ', + 'alphaDash' => 'តែអក្សរ លេខ សញ្ញា_ និងសញ្ញា-', + 'chs' => 'តែអក្សរចិន', + 'chsAlpha' => 'តែអក្សរចិន និងអក្សរ', + 'chsAlphaNum' => 'តែអក្សរចិន អក្សរ និងលេខ', + 'chsDash' => 'មានតែអក្សរចិន អក្សរ លេខ គូស_ និងសញ្ញា-', + 'max' => 'អតិបរមាអាចកំណត់បានតែ {max}', + 'min' => 'ការកំណត់អប្បបរមាអាចត្រឹមតែ {min}', + 'twoDecimal' => 'លេខវិជ្ជមានអាចមានរហូតដល់ 2 ខ្ទង់ទសភាគ', +]; \ No newline at end of file diff --git a/addons/webman/lang/en/commission_record.php b/addons/webman/lang/en/commission_record.php new file mode 100644 index 0000000..b7677e4 --- /dev/null +++ b/addons/webman/lang/en/commission_record.php @@ -0,0 +1,24 @@ + 'Play and earn records', + 'fields' => [ + 'id' => 'ID', + 'recharge_amount' => 'Recharge amount', + 'total_amount' => 'Total amount', + 'damage_amount' => 'Damage amount', + 'amount' => 'Amount', + 'ratio' => 'Ratio', + 'date' => 'Settlement date', + 'create_at' => 'Creation time', + 'commission_first_recharge' => 'User first charge', + 'commission_damage' => 'Customer loss commission ratio', + 'commission_chip_multiple' => 'Multiple of coding volume', + ], + 'player_info' => 'Player information', + 'parent_player_info' => 'Profit sharing players', + 'commission_setting' => 'Play to earn configuration', + 'commission_first_recharge' => 'Inviting new users, new users can receive {$usd}USD for their first recharge', + 'commission_damage' => '{$ratio}% of the daily customer loss will be given to you as commission.', + 'commission_chip_multiple' => 'The commission for the activity is the same as the Deposit of COINS.', +]; diff --git a/addons/webman/lang/en/menu.php b/addons/webman/lang/en/menu.php new file mode 100644 index 0000000..9f76cc1 --- /dev/null +++ b/addons/webman/lang/en/menu.php @@ -0,0 +1,122 @@ + 'Add Menu', + 'title' => 'System Menu Management', + 'fields' => [ + 'top' => 'Top Menu', + 'pid' => 'Parent Menu', + 'name' => 'Menu Name', + 'url' => 'Menu Link', + 'icon' => 'Menu Icon', + 'sort' => 'Sort', + 'status' => 'Status', + 'open' => 'Menu Expansion', + 'super_status' => 'Super Admin Status', + 'type' => 'Menu Type', + ], + 'options' => [ + 'admin_visible' => [ + [1 => 'Show'], + [0 => 'Hide'] + ] + ], + 'type' => [ + AdminDepartment::TYPE_DEPARTMENT => 'Main Station Menu', + AdminDepartment::TYPE_CHANNEL => 'Channel Menu', + ], + 'titles' => [ + 'home' => 'Home', + 'system' => 'System', + 'system_manage' => 'System Management', + 'config_manage' => 'Configuration Management', + 'attachment_manage' => 'Attachment Management', + 'permissions_manage' => 'Permissions Management', + 'admin' => 'User Management', + 'role_manage' => 'Role Management', + 'menu_manage' => 'Menu Management', + 'plug_manage' => 'Plugin Management', + 'department_manage' => 'Department Management', + 'post_manage' => 'Position Management', + /** Main Admin */ + 'admin_manage' => 'Main Admin', + 'data_center' => 'Data Center', + // User Management + 'user_manage' => 'Player Management', + 'user_manage_list' => 'Player List', + 'accounting_change_records' => 'Account Change Records', + // Financial Data + 'financial_data' => 'Financial Data', + 'recharge_record' => 'Recharge Records', + 'withdrawal_records' => 'Withdrawal Records', + // Report Center + 'report_center' => 'Report Center', + // Client Management + 'client_manager' => 'Client Management', + 'rotation_chart_manager' => 'Carousel Management', + 'announcement_manager' => 'Announcement Management', + 'system_settings' => 'System Settings', + // Channel Management + 'channel_manager' => 'Channel Management', + 'channel_list' => 'Channel List', + 'currency_manager' => 'Currency Management', + /** Channel Admin */ + 'channel_manage' => 'Channel Admin', + 'channel_data_center' => 'Data Center', + // Player Management + 'channel_player_manage' => 'Player Management', + 'channel_player_list' => 'Player List', + 'channel_player_accounting_change_records' => 'Account Change Records', + // Frontend Configuration + 'channel_client_manager' => 'Client Management', + 'channel_rotation_chart_manager' => 'Carousel Management', + 'channel_marquee_manager' => 'Marquee Management', + 'channel_announcement_manager' => 'Announcement Management', + // Financial Management + 'channel_financial_manager' => 'Financial Management', + 'channel_recharge_review' => 'Recharge Review', + 'channel_withdrawal_review' => 'Withdrawal Review', + 'channel_withdrawal_and_payment' => 'Withdrawal Payment', + 'channel_recharge_record' => 'Recharge Records', + 'channel_withdrawal_records' => 'Withdrawal Records', + 'channel_recharge_channel_configuration' => 'Recharge Channel Configuration', + 'channel_financial_operation_records' => 'Financial Operation Records', + // Permissions Management + 'channel_auth_manager' => 'Permissions Management', + 'channel_admin_user_manager' => 'User Management', + 'channel_post_manager' => 'Position Management', + // Log Center + 'log_center' => 'Log Center', + 'player_edit_log' => 'Player Edit Log', + 'player_money_edit_log' => 'Wallet Operation Log', + // Game Management + 'game_manage' => 'Game Management', + 'game_record' => 'Game Records', + 'game_out_in' => 'Game Transfer In/Out Records', + 'game_list' => 'Game List', + 'version_manager' => 'Version Management', + 'activity_manager' => 'Activity Management', + 'activity_list' => 'Activity List', + 'recharge_manager' => 'Recharge Management', + 'recharge_channels' => 'Recharge Channels', + 'play_and_earn' => 'Play and Earn', + 'play_and_earn_record' => 'Play and Earn Records', + // Promotion Management + 'channel_player_promoter' => 'Promotion Management', + 'channel_player_promoter_list' => 'Promoter List', + 'profit_record' => 'Profit sharing report', + 'profit_settlement_record' => 'Split profit settlement record', + '游戏类型列表' => 'GameType List', + //qrcode + '二维码管理' => 'Qrcode', + '二维码批次列表' => 'Qrcode List', + '持码人列表' => 'Qrcode Holder', + '广播管理' => 'Broadcast', + '手动广播管理' => 'Hand Broadcast', + '自动广播管理' => 'Auto Broadcast', + '公告管理' => 'Announcement', + '公告列表' => 'Announcement List', + ] +]; diff --git a/addons/webman/lang/zh-CN/activity.php b/addons/webman/lang/zh-CN/activity.php new file mode 100644 index 0000000..d84f86d --- /dev/null +++ b/addons/webman/lang/zh-CN/activity.php @@ -0,0 +1,48 @@ + '活动', + 'fields' => [ + 'id' => 'ID', + 'status' => '状态', + 'is_show' => '首页弹窗', + 'sort' => '排序', + 'link' => '类型', + 'recharge_id' => '充值配置', + 'start_time' => '开始时间', + 'end_time' => '结束时间', + 'created_at' => '创建时间', + 'time_frame' => '开放时间', + ], + 'created_at_start' => '开始时间', + 'created_at_end' => '结束时间', + 'not_fount' => '活动未找到', + 'activity_content_must' => '请填写活动内容', + 'rang_time' => '开放时间', + 'activity_content' => '活动内容', + 'activity_info' => '活动信息', + 'sign_setting' => '签到设置', + 'chip_amount' => '打码量', + 'chip_multiple' => '打码倍数', + 'reward_amount' => '奖励金额', + 'type_not_found' => '请选择活动模式', + 'type_error' => '活动模式错误', + 'cycle_type_not_found' => '请选择周期类型', + 'cycle_type_error' => '周期类型错误', + 'cycle_data_not_found' => '请选择周期类型配置', + 'cycle_data_error' => '请选择周期类型配置', + 'cycle_week' => ' 每周,{week}开启', + 'cycle_month' => ' 每月,{month}号开启', + 'status' => '状态', + 'week' => ['星期天', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'], + 'sign_setting_date' => [ + '第一日', + '第二日', + '第三日', + '第四日', + '第五日', + '第六日', + '第七日', + ] +]; diff --git a/addons/webman/lang/zh-CN/activity_content.php b/addons/webman/lang/zh-CN/activity_content.php new file mode 100644 index 0000000..b71861e --- /dev/null +++ b/addons/webman/lang/zh-CN/activity_content.php @@ -0,0 +1,14 @@ + '活动内容', + 'fields' => [ + 'id' => 'ID', + 'name' => '活动名称', + 'activity_id' => '活动ID', + 'lang' => '语言标识', + 'picture' => '活动主图', + 'created_at' => '创建时间', + ], +]; diff --git a/addons/webman/lang/zh-CN/admin.php b/addons/webman/lang/zh-CN/admin.php new file mode 100644 index 0000000..e42a711 --- /dev/null +++ b/addons/webman/lang/zh-CN/admin.php @@ -0,0 +1,50 @@ + '个人信息', + 'system_user'=>'系统用户', + 'not_access_permission' => '没有访问该操作的权限', + 'super_admin'=>'超级管理员', + 'super_admin_delete'=>'超级管理员不可以删除!', + 'super_admin_disabled'=>'超级管理员不可以禁用!', + 'reset_password'=>'重置密码', + 'old_password'=>'旧密码', + 'old_password_error'=>'旧密码错误', + 'new_password'=>'新密码', + 'confim_password' => '确认密码', + 'access_rights' => '访问权限', + 'normal' => '正常', + 'disable' => '禁用', + 'true' => '是', + 'false' => '否', + 'username_exist' => '用户名存在重复', + 'phone_exist' => '手机号已存在', + 'password_min_number' => '密码最少6位数', + 'password_confim_validate' => '输入密码不一致', + 'update_password' => '修改密码', + 'open' => '开启', + 'close' => '关闭', + 'department' => '所属部门', + 'channel' => '所属渠道', + 'department_tree' => '总站部门', + 'channel_tree' => '子站渠道', + 'pass_help' => '初始化密码123456,建议密码包含大小写字母、数字、符号', + 'search_department' => '搜索部门', + 'post' => '岗位', + 'admin_user' => '管理员', + 'success' => '成功', + 'error' => '失败', + 'system_messages' => '系統消息', + 'fields' => [ + 'username' => '用户名', + 'nickname' => '用户昵称', + 'avatar' => '用户头像', + 'password' => '密码', + 'phone' => '手机号', + 'mail' => '邮箱', + 'status' => '账号状态', + 'create_at' => '创建时间', + 'type' => '类型', + 'is_super'=>'渠道超管', + ], +]; diff --git a/addons/webman/lang/zh-CN/announcement.php b/addons/webman/lang/zh-CN/announcement.php new file mode 100644 index 0000000..8e0ae2e --- /dev/null +++ b/addons/webman/lang/zh-CN/announcement.php @@ -0,0 +1,36 @@ + '公告管理', + 'fields' => [ + 'id' => 'ID', + 'title' => '标题', + 'content' => '内容', + 'valid_time' => '有效时间', + 'push_time' => '发布时间', + 'status' => '状态', + 'department_id' => '渠道', + 'sort' => '排序', + 'priority' => '优先级', + 'admin_id' => '管理员ID', + 'admin_name' => '管理员名称', + 'created_at' => '创建时间', + 'type' => '公告类型', + ], + 'priority' => [ + Announcement::PRIORITY_ORDINARY => '普通', + Announcement::PRIORITY_SENIOR => '高级', + Announcement::PRIORITY_EMERGENT => '紧急', + ], + 'type' => [ + Announcement::TYPE_BULLETIN => '公告', + Announcement::TYPE_EVEBT => '事件', + ], + 'help' => [ + 'valid_time' => '不填时为永久有效', + 'push_time' => '过发布时间该公告才对客户展示', + 'title' => '公告标题最多200个字', + ] +]; diff --git a/addons/webman/lang/zh-CN/antd.php b/addons/webman/lang/zh-CN/antd.php new file mode 100644 index 0000000..b1c3c0b --- /dev/null +++ b/addons/webman/lang/zh-CN/antd.php @@ -0,0 +1,393 @@ + "zh-cn", + "Pagination" => [ + "items_per_page" => "条/页", + "jump_to" => "跳至", + "jump_to_confirm" => "确定", + "page" => "页", + "prev_page" => "上一页", + "next_page" => "下一页", + "prev_5" => "向前 5 页", + "next_5" => "向后 5 页", + "prev_3" => "向前 3 页", + "next_3" => "向后 3 页" + ], + "DatePicker" => [ + "lang" => [ + "placeholder" => "请选择日期", + "yearPlaceholder" => "请选择年份", + "quarterPlaceholder" => "请选择季度", + "monthPlaceholder" => "请选择月份", + "weekPlaceholder" => "请选择周", + "rangePlaceholder" => [ + "开始日期", + "结束日期" + ], + "rangeYearPlaceholder" => [ + "开始年份", + "结束年份" + ], + "rangeMonthPlaceholder" => [ + "开始月份", + "结束月份" + ], + "rangeWeekPlaceholder" => [ + "开始周", + "结束周" + ], + "locale" => "zh_CN", + "today" => "今天", + "now" => "此刻", + "backToToday" => "返回今天", + "ok" => "确 定", + "timeSelect" => "选择时间", + "dateSelect" => "选择日期", + "weekSelect" => "选择周", + "clear" => "清除", + "month" => "月", + "year" => "年", + "previousMonth" => "上个月 (翻页上键)", + "nextMonth" => "下个月 (翻页下键)", + "monthSelect" => "选择月份", + "yearSelect" => "选择年份", + "decadeSelect" => "选择年代", + "yearFormat" => "YYYY年", + "dayFormat" => "D日", + "dateFormat" => "YYYY年M月D日", + "dateTimeFormat" => "YYYY年M月D日 HH时mm分ss秒", + "previousYear" => "上一年 (Control键加左方向键)", + "nextYear" => "下一年 (Control键加右方向键)", + "previousDecade" => "上一年代", + "nextDecade" => "下一年代", + "previousCentury" => "上一世纪", + "nextCentury" => "下一世纪" + ], + "timePickerLocale" => [ + "placeholder" => "请选择时间", + "rangePlaceholder" => [ + "开始时间", + "结束时间" + ] + ] + ], + "TimePicker" => [ + "placeholder" => "请选择时间", + "rangePlaceholder" => [ + "开始时间", + "结束时间" + ] + ], + "Calendar" => [ + "lang" => [ + "placeholder" => "请选择日期", + "yearPlaceholder" => "请选择年份", + "quarterPlaceholder" => "请选择季度", + "monthPlaceholder" => "请选择月份", + "weekPlaceholder" => "请选择周", + "rangePlaceholder" => [ + "开始日期", + "结束日期" + ], + "rangeYearPlaceholder" => [ + "开始年份", + "结束年份" + ], + "rangeMonthPlaceholder" => [ + "开始月份", + "结束月份" + ], + "rangeWeekPlaceholder" => [ + "开始周", + "结束周" + ], + "locale" => "zh_CN", + "today" => "今天", + "now" => "此刻", + "backToToday" => "返回今天", + "ok" => "确 定", + "timeSelect" => "选择时间", + "dateSelect" => "选择日期", + "weekSelect" => "选择周", + "clear" => "清除", + "month" => "月", + "year" => "年", + "previousMonth" => "上个月 (翻页上键)", + "nextMonth" => "下个月 (翻页下键)", + "monthSelect" => "选择月份", + "yearSelect" => "选择年份", + "decadeSelect" => "选择年代", + "yearFormat" => "YYYY年", + "dayFormat" => "D日", + "dateFormat" => "YYYY年M月D日", + "dateTimeFormat" => "YYYY年M月D日 HH时mm分ss秒", + "previousYear" => "上一年 (Control键加左方向键)", + "nextYear" => "下一年 (Control键加右方向键)", + "previousDecade" => "上一年代", + "nextDecade" => "下一年代", + "previousCentury" => "上一世纪", + "nextCentury" => "下一世纪" + ], + "timePickerLocale" => [ + "placeholder" => "请选择时间", + "rangePlaceholder" => [ + "开始时间", + "结束时间" + ] + ] + ], + "global" => [ + "placeholder" => "请选择" + ], + "Table" => [ + "filterTitle" => "筛选", + "filterConfirm" => "确定", + "filterReset" => "重置", + "filterEmptyText" => "无筛选项", + "selectAll" => "全选当页", + "selectInvert" => "反选当页", + "selectNone" => "清空所有", + "selectionAll" => "全选所有", + "sortTitle" => "排序", + "expand" => "展开行", + "collapse" => "关闭行", + "triggerDesc" => "点击降序", + "triggerAsc" => "点击升序", + "cancelSort" => "取消排序" + ], + "Modal" => [ + "okText" => "确定", + "cancelText" => "取消", + "justOkText" => "知道了" + ], + "Popconfirm" => [ + "cancelText" => "取消", + "okText" => "确定" + ], + "Transfer" => [ + "searchPlaceholder" => "请输入搜索内容", + "itemUnit" => "项", + "itemsUnit" => "项", + "remove" => "删除", + "selectCurrent" => "全选当页", + "removeCurrent" => "删除当页", + "selectAll" => "全选所有", + "removeAll" => "删除全部", + "selectInvert" => "反选当页" + ], + "Upload" => [ + "uploading" => "文件上传中", + "removeFile" => "删除文件", + "uploadError" => "上传错误", + "previewFile" => "预览文件", + "downloadFile" => "下载文件" + ], + "Empty" => [ + "description" => "暂无数据" + ], + "Icon" => [ + "icon" => "图标" + ], + "Text" => [ + "edit" => "编辑", + "copy" => "复制", + "copied" => "复制成功", + "expand" => "展开" + ], + "PageHeader" => [ + "back" => "返回" + ], + "Form" => [ + "optional" => "(可选)", + "defaultValidateMessages" => [ + "default" => "字段验证错误$[label]", + "required" => "请输入$[label]", + "enum" => "$[label]必须是其中一个[$[enum]]", + "whitespace" => "$[label]不能为空字符", + "date" => [ + "format" => "$[label]日期格式无效", + "parse" => "$[label]不能转换为日期", + "invalid" => "$[label]是一个无效日期" + ], + "types" => [ + "string" => "$[label]不是一个有效的$[type]", + "method" => "$[label]不是一个有效的$[type]", + "array" => "$[label]不是一个有效的$[type]", + "object" => "$[label]不是一个有效的$[type]", + "number" => "$[label]不是一个有效的$[type]", + "date" => "$[label]不是一个有效的$[type]", + "boolean" => "$[label]不是一个有效的$[type]", + "integer" => "$[label]不是一个有效的$[type]", + "float" => "$[label]不是一个有效的$[type]", + "regexp" => "$[label]不是一个有效的$[type]", + "email" => "$[label]不是一个有效的$[type]", + "url" => "$[label]不是一个有效的$[type]", + "hex" => "$[label]不是一个有效的$[type]" + ], + "string" => [ + "len" => "$[label]须为$[len]个字符", + "min" => "$[label]最少$[min]个字符", + "max" => "$[label]最多$[max]个字符", + "range" => "$[label]须在$[min]-$[max]字符之间" + ], + "number" => [ + "len" => "$[label]必须等于$[len]", + "min" => "$[label]最小值为$[min]", + "max" => "$[label]最大值为$[max]", + "range" => "$[label]须在$[min]-$[max]之间" + ], + "array" => [ + "len" => "须为$[len]个$[label]", + "min" => "最少$[min]个$[label]", + "max" => "最多$[max]个$[label]", + "range" => "$[label]数量须在$[min]-$[max]之间" + ], + "pattern" => [ + "mismatch" => "$[label]与模式不匹配$[pattern]" + ] + ] + ], + "Image" => [ + "preview" => "预览" + ], + + //自定义组件语言 + 'FormMany' => [ + 'up' => '上移', + 'down' => '下移', + 'add' => '添加', + 'remove' => '移除', + 'clear' => '清空', + ], + 'TabsTag' => [ + 'closeOther' => '关闭其他', + 'closeLeft' => '关闭左侧', + 'closeRight' => '关闭右侧', + 'back' => '返回上一页', + ], + 'Uploader' => [ + 'finder'=>'资源', + 'upload' => '上传', + 'success'=>'上传成功', + 'error'=>'未知错误', + 'check'=>'校验中', + 'uploading'=>'上传中', + ], + 'Grid' => [ + 'confirmRecoverySelected' => '此操作将恢复选中数据?', + 'confirmClearSelected' => '此操作将删除选中数据?', + 'confirmClear' => '此操作将删除清空所有数据?', + 'continue' => '是否继续?', + 'empty' => '暂无数据', + 'search' => '搜索', + 'quickSearchText' => '请输入关键字', + 'export' => '导出', + 'exportPage' => '导出当前页', + 'exportSelect' => '导出选中行', + 'exportAll' => '导出全部', + 'exportProgress' => '导出进度', + 'exportFail' => '导出失败', + 'exportSuccess' => '已导出成功,请点击', + 'download' => '下载', + 'sortTop' => '置顶', + 'sortBottom' => '置底', + 'sortDrag' => '拖动排序', + 'confirm' => '确定', + 'reset' => '重置', + 'dataList' => '数据列表', + 'recycle' => '回收站', + 'collapseFilter' => '收起筛选', + 'expandFilter' => '展开筛选', + 'clearTrash' => '清空回收站', + 'clearData' => '清空数据', + 'restoreSelected' => '恢复选中', + 'deleteSelected' => '删除选中', + 'selectedAction' => '请勾选操作数据', + ], + 'SelectTable' => [ + 'select' => '选择', + 'selected' => '已选中', + 'confirm' => '确定', + 'cancel' => '取消', + ], + 'Confirm' => [ + 'title' => '提示' + ], + 'Copy' => [ + 'success' => '复制成功', + 'error' => '复制失败', + ], + 'Logout' => [ + 'title' => '退出登录', + 'content' => '是否确认退出系统?', + ], + 'Header' => [ + 'refresh' => '刷新', + 'light' => '深色', + 'dark' => '亮色', + ], + 'Setting' => [ + 'lang' => '语言', + 'theme_color' => '主题色', + 'sidebar_color' => '侧边栏选中色', + 'sidebar_background' => '侧边栏背景色', + 'header_background' => '顶部背景色', + 'layout' => '布局', + 'menu_layout' => '菜单布局', + 'menu_style' => '菜单样式', + 'sidebar' => [ + 'label' => '侧边栏', + 'width' => '宽度', + 'visible' => '显示', + 'collapsed' => '收起', + 'menu_num' => '菜单并排数量', + ], + 'tabs' => '多标签', + 'light' => '亮色', + 'dark' => '暗色', + 'sider' => '侧边', + 'header_sider' => '顶部-侧边', + 'header' => '顶部', + 'defualt' => '恢复默认配置', + + ], + 'Sidebar' => [ + 'all'=>'全部' + ], + 'Dayjs' => [ + 'weekdays' => explode('_',"星期日_星期一_星期二_星期三_星期四_星期五_星期六"), + 'weekdaysShort' => explode('_',"周日_周一_周二_周三_周四_周五_周六"), + 'weekdaysMin' => explode('_',"日_一_二_三_四_五_六"), + 'months' => explode('_',"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月"), + 'monthsShort' => explode('_',"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月"), + 'weekStart' => 1, + 'yearStart' => 4, + 'formats' => [ + 'LT' => "HH=>mm", + 'LTS' => "HH=>mm=>ss", + 'L' => "YYYY/MM/DD", + 'LL' => "YYYY年M月D日", + 'LLL' => "YYYY年M月D日Ah点mm分", + 'LLLL' => "YYYY年M月D日ddddAh点mm分", + 'l' => "YYYY/M/D", + 'll' => "YYYY年M月D日", + 'lll' => "YYYY年M月D日 HH=>mm", + 'llll' => "YYYY年M月D日dddd HH=>mm" + ], + 'relativeTime' => [ + 'future' => "%s内", + 'past' => "%s前", + 's' => "几秒", + 'm' => "1 分钟", + 'mm' => "%d 分钟", + 'h' => "1 小时", + 'hh' => "%d 小时", + 'd' => "1 天", + 'dd' => "%d 天", + 'M' => "1 个月", + 'MM' => "%d 个月", + 'y' => "1 年", + 'yy' => "%d 年" + ] + ], +]; diff --git a/addons/webman/lang/zh-CN/app_version.php b/addons/webman/lang/zh-CN/app_version.php new file mode 100644 index 0000000..70aaea6 --- /dev/null +++ b/addons/webman/lang/zh-CN/app_version.php @@ -0,0 +1,32 @@ + '版本管理', + 'fields' => [ + 'id' => 'ID', + 'system_key' => '系统标识', + 'app_version' => '版本号', + 'app_version_key' => '版本标识', + 'apk_url' => '安装包地址', + 'force_update' => '强制更新', + 'type' => '类型', + 'hot_update' => '热更新', + 'regular_update' => '定时更新', + 'update_content' => '更新内容', + 'notes' => '操作备注', + 'status' => '状态', + 'created_at' => '创建时间', + ], + 'system_key' => [ + 'android' => 'Android(安卓)', + 'ios' => 'Ios(苹果)', + ], + 'app_version_regex' => '请填写正确的版本号', + 'hot_apk_url' => '热更新包', + 'missing_package_address' => '缺少安装包地址', + 'app_version_key_not_found' => '缺少版本标识', + 'upload_update_package' => '请上传热更新包', + 'hot_apk_url_error' => '热更新包地址错误', + 'decompression_failed' => '解压失败', + 'app_version_key_exists' => '该版本已发布', +]; diff --git a/addons/webman/lang/zh-CN/attachment.php b/addons/webman/lang/zh-CN/attachment.php new file mode 100644 index 0000000..a4ae78a --- /dev/null +++ b/addons/webman/lang/zh-CN/attachment.php @@ -0,0 +1,16 @@ +'附件管理', + 'download'=>'下载', + 'cate'=>[ + 'fields'=>[ + 'name'=>'分类名称', + 'pid'=>'上级分类', + 'permission_type'=>'权限类型', + 'sort'=>'排序', + ], + 'parent'=>'顶级分类', + 'public'=>'所有人', + 'private'=>'私有', + ] +]; diff --git a/addons/webman/lang/zh-CN/auth.php b/addons/webman/lang/zh-CN/auth.php new file mode 100644 index 0000000..007fc2a --- /dev/null +++ b/addons/webman/lang/zh-CN/auth.php @@ -0,0 +1,43 @@ +'访问权限管理', + 'parent'=>'父级', + 'field_title_grant'=>'字段权限(隐藏选中的字段)', + 'field_grant'=>'字段权限', + 'data_grant'=>'数据权限', + 'auth_grant'=>'功能权限', + 'menu_grant'=>'菜单权限', + 'select_user'=>'选个人', + 'select_group'=>'选组织', + 'select_user_tip'=>'具有包含所选人员的查看数据权限', + 'select_group_tip'=>'具有包含所选组织的查看数据数据权限', + 'all'=>'全选', + 'father_son_linkage'=>'父子联动', + 'role_type_error'=>'角色类型错误', + 'fields'=>[ + 'name'=>'名称', + 'desc'=>'描述', + 'status'=>'状态', + 'sort'=>'排序', + 'data_type'=>'数据范围', + 'department'=>'部门列表', + 'type'=>'角色类型', + ], + 'options'=>[ + 'data_type'=>[ + 'full_data_rights' => '全部数据权限', + 'data_permissions_for_this_department' => '本部门数据权限', + 'this_department_and_the_following_data_permissions' => '本部门及以下数据权限', + 'personal_data_rights' => '本人数据权限', + 'custom_data_permissions' => '自定义数据权限', + 'channel_and_the_following_data_permissions' => '子站全部数据权限' + ] + ], + 'type' => [ + AdminDepartment::TYPE_DEPARTMENT => '总站角色', + AdminDepartment::TYPE_CHANNEL => '渠道角色', + ], +]; diff --git a/addons/webman/lang/zh-CN/broadcast.php b/addons/webman/lang/zh-CN/broadcast.php new file mode 100644 index 0000000..3baa875 --- /dev/null +++ b/addons/webman/lang/zh-CN/broadcast.php @@ -0,0 +1,20 @@ + '广播管理', + 'fields' => [ + 'id' => 'ID', + 'copy_num' => '重复次数', + 'title' => '游戏平台', + 'num' => '金额', + 'phone' => '手机号', + 'min_money' => '展示最小金额', + 'max_money' => '展示最大金额', + 'date' => '展示日期', + 'status' => '状态', + 'creator_id' => '创建人', + 'created_at' => '创建时间', + 'updated_at' => '更新时间', + ], +]; diff --git a/addons/webman/lang/zh-CN/channel.php b/addons/webman/lang/zh-CN/channel.php new file mode 100644 index 0000000..c33df20 --- /dev/null +++ b/addons/webman/lang/zh-CN/channel.php @@ -0,0 +1,62 @@ + '渠道管理', + 'normal' => '开启中', + 'disable' => '维护中', + 'name_exist' => '渠道名存在重复', + 'channel_exist' => '渠道域名存在重复', + 'telegram_url_exist' => '渠道Telegram客服已存在', + 'package_url_exist' => '渠道安装地址已存在', + 'save_error' => '保存失败', + 'save_success' => '保存成功', + 'not_fount' => '渠道不存在', + 'fields' => [ + 'id' => '渠道ID', + 'name' => '渠道名称', + 'domain' => '渠道域名', + 'player_num' => '玩家数量', + 'coin_num' => '币商数量', + 'lang' => '默认语言', + 'currency' => '币种', + 'department_id' => '部门id', + 'status' => '状态', + 'telegram_url' => 'Telegram客服', + 'package_url' => '安装包地址', + 'recharge_amount' => '官方充值', + 'withdraw_amount' => '官方提现', + 'third_recharge_amount' => '第三方充值', + 'third_withdraw_amount' => '第三方提现', + 'player_total_amount' => '玩家账户总余额', + 'phone' => '手机号', + 'leader' => '负责人', + 'create_at' => '渠道创建时间', + 'username' => '登录账号', + 'password' => '登录密码', + 'channel_function' => '子站功能', + 'web_login_status' => '网页登录', + 'recharge_status' => '平台充值', + 'withdraw_status' => '平台提现', + 'wallet_action_status' => '玩家钱包操作', + 'department_name' => '渠道', + 'promotion_status' => '推广员功能', + 'pay_type' => '支付方式', + 'game_id' => '游戏', + 'whats_app' => 'WhatsApp', + ], + 'channel_function_help' => '人工(充值,提现)无法和Q币(转入,转出)同时使用', + 'pay_type' => [ + '人工充值', + 'EsPay', + 'OnePay', + 'SKL99', + ], + 'game' => [ + 262 => '转盘', + 263 => '砸金蛋', + 264 => '盲盒', + 265 => '刮刮乐', + 266 => 'TURN', + 267 => '摇色子', + ] +]; diff --git a/addons/webman/lang/zh-CN/channel_financial_record.php b/addons/webman/lang/zh-CN/channel_financial_record.php new file mode 100644 index 0000000..bfd48ba --- /dev/null +++ b/addons/webman/lang/zh-CN/channel_financial_record.php @@ -0,0 +1,32 @@ + '财务操作记录', + 'content' => '序号{setting_id}', + 'fields' => [ + 'id' => 'ID', + 'department_id' => '部门/渠道ID', + 'player_id' => '玩家ID', + 'player' => '玩家信息', + 'target' => '資料表', + 'target_id' => '資料表ID', + 'action' => '操作行为', + 'tradeno' => '操作订单', + 'user_id' => '操作订单', + 'user_name' => '操作人', + 'created_at' => '操作时间', + ], + 'action' => [ + ChannelFinancialRecord::ACTION_RECHARGE_PASS => '充值审核通过', + ChannelFinancialRecord::ACTION_RECHARGE_REJECT => '充值审核拒绝', + ChannelFinancialRecord::ACTION_WITHDRAW_PASS => '提现审核通过', + ChannelFinancialRecord::ACTION_WITHDRAW_REJECT => '提现审核拒绝', + ChannelFinancialRecord::ACTION_WITHDRAW_PAYMENT => '完成打款', + ChannelFinancialRecord::ACTION_RECHARGE_SETTING_ADD => '添加充值账户', + ChannelFinancialRecord::ACTION_RECHARGE_SETTING_STOP => '停用充值账户', + ChannelFinancialRecord::ACTION_RECHARGE_SETTING_ENABLE => '启用充值账户', + ChannelFinancialRecord::ACTION_RECHARGE_SETTING_EDIT => '编辑充值账户', + ] +]; diff --git a/addons/webman/lang/zh-CN/channel_recharge_method.php b/addons/webman/lang/zh-CN/channel_recharge_method.php new file mode 100644 index 0000000..bc5e1f8 --- /dev/null +++ b/addons/webman/lang/zh-CN/channel_recharge_method.php @@ -0,0 +1,19 @@ + '充值账户配置', + 'recharge_setting_info' => '收款账户', + 'fields' => [ + 'id' => 'ID', + 'method_name' => '充值方式名', + 'currency' => '币种', + 'name' => '充值名', + 'bank_name' => '开户行', + 'sub_bank' => '支行', + 'owner' => '户名', + 'account' => '银行账户', + 'user_name' => '创建人', + 'status' => '状态', + 'created_at' => '创建时间', + ] +]; diff --git a/addons/webman/lang/zh-CN/channel_recharge_setting.php b/addons/webman/lang/zh-CN/channel_recharge_setting.php new file mode 100644 index 0000000..61ad497 --- /dev/null +++ b/addons/webman/lang/zh-CN/channel_recharge_setting.php @@ -0,0 +1,53 @@ + '充值方式配置', + 'placeholder_name' => '请输入充值名', + 'placeholder_method' => '请选择充值方式', + 'placeholder_chip_multiple' => '请输入打码倍数', + 'placeholder_coins_num' => '请输入充值coins数量', + 'placeholder_money' => '请输入充值金额', + 'recharge_setting_info' => '充值账户信息', + 'first_recharge_setting' => '首充设置', + 'manual_recharge_setting' => '手动充值设置', + 'usdt_recharge_setting' => 'USDT充值设置', + 'fields' => [ + 'id' => 'ID', + 'department_id' => '部门/渠道id', + 'title' => '标题', + 'method_name' => '充值方式', + 'method_id' => '充值方式id', + 'wallet_address' => '钱包地址', + 'qr_code' => '二维码', + 'rate' => '汇率', + 'chip_multiple' => '打码倍数', + 'coins_num' => 'coins数量', + 'gift_coins' => '赠送coins', + 'first_coins' => '首充赠送coins', + 'money' => '金额', + 'type' => '充值类型', + 'user_id' => '管理员id', + 'user_name' => '创建人', + 'status' => '状态', + 'created_at' => '创建时间', + ], + 'rul' => [ + 'chip_multiple_required' => '打码倍数必填', + 'chip_multiple_min_0' => '打码倍数最少为0', + 'chip_multiple_max_100000000' => '打码倍数最大设置1亿', + 'coins_num_required' => 'coins数量必填', + 'coins_num_min_1' => 'coins数量最少为1', + 'coins_num_max_100000000' => 'coins数量最大设置1亿', + 'gift_coins_min_1' => 'coins数量最少为1', + 'gift_coins_max_100000000' => '赠送coins数量最大设置1亿', + 'money_required' => '充值金额必填', + 'money_min_1' => '充值金额最少为1', + 'money_max_100000000' => '充值金额最大设置1亿', + ], + 'type' => [ + ChannelRechargeSetting::TYPE_REGULAR => '普通充值', + ChannelRechargeSetting::TYPE_ACTIVITY => '活动充值', + ] +]; diff --git a/addons/webman/lang/zh-CN/commission_record.php b/addons/webman/lang/zh-CN/commission_record.php new file mode 100644 index 0000000..eb48d7e --- /dev/null +++ b/addons/webman/lang/zh-CN/commission_record.php @@ -0,0 +1,24 @@ + '玩赚记录', + 'fields' => [ + 'id' => 'ID', + 'recharge_amount' => '首充金额', + 'total_amount' => '总佣金', + 'damage_amount' => '客损金额', + 'amount' => '当期佣金', + 'ratio' => '佣金比例', + 'date' => '结算日期', + 'create_at' => '创建时间', + 'commission_first_recharge' => '用户首充', + 'commission_damage' => '客损佣金比', + 'commission_chip_multiple' => '打码量倍数', + ], + 'player_info' => '玩家信息', + 'parent_player_info' => '分润玩家', + 'commission_setting' => '玩赚配置', + 'commission_first_recharge' => '邀请新用户,新用户首笔充值可获得 {$usd}USD', + 'commission_damage' => '用户每日客损的 {$ratio}% 会作为佣金给到您', + 'commission_chip_multiple' => '活动的佣金同充值COINS', +]; diff --git a/addons/webman/lang/zh-CN/config.php b/addons/webman/lang/zh-CN/config.php new file mode 100644 index 0000000..b0b2405 --- /dev/null +++ b/addons/webman/lang/zh-CN/config.php @@ -0,0 +1,10 @@ + '系统配置', + 'logo' => '网站LOGO', + 'name' => '网站名称', + 'miitbeian' => '网站备案号', + 'copyright' => '网站版权信息', + +]; diff --git a/addons/webman/lang/zh-CN/currency.php b/addons/webman/lang/zh-CN/currency.php new file mode 100644 index 0000000..dfae30e --- /dev/null +++ b/addons/webman/lang/zh-CN/currency.php @@ -0,0 +1,25 @@ + '货币管理', + 'normal'=>'正常', + 'disable'=>'禁用', + 'currency'=>'货币', + 'game_coins'=>'游戏点', + 'currency_has_exists'=>'该货币已存在配置', + 'fields' => [ + 'id' => '货币ID', + 'name' => '货币名称', + 'identifying' => '货币标识', + 'ratio' => '1货币价格', + 'status' => '状态', + 'create_at' => '创建时间', + ], + 'currency_name' => [ + 'CYN' => '人民币', + 'TWD' => '新台币', + 'USD' => '美元', + 'JPY' => '日元', + 'RM' => '马币', + ], +]; diff --git a/addons/webman/lang/zh-CN/data_center.php b/addons/webman/lang/zh-CN/data_center.php new file mode 100644 index 0000000..35ea270 --- /dev/null +++ b/addons/webman/lang/zh-CN/data_center.php @@ -0,0 +1,21 @@ +'总充值', + 'recharge_activity'=>'活动充值', + 'recharge_regular'=>'普通充值', + 'withdraw_all'=>'总提现', + 'withdraw_self'=>'官方提现', + 'withdraw_business'=>'币商转入', + 'today_add_player'=>'今日新增会员', + 'player_all'=>'总会员', + 'today_active_player'=>'今日活跃玩家', + 'mouth_active_player'=>'本月活跃玩家', + 'recharge_chart' => '充值趋势图', + 'recharge_amount' => '充值金额', + 'withdraw_chart' => '提现趋势图', + 'withdraw_amount' => '提现金额', + 'player_chart' => '新增玩家', + 'player_amount' => '玩家数量', + 'department_id' => '渠道ID', + 'department_name' => '渠道名', +]; diff --git a/addons/webman/lang/zh-CN/department.php b/addons/webman/lang/zh-CN/department.php new file mode 100644 index 0000000..d7e7a15 --- /dev/null +++ b/addons/webman/lang/zh-CN/department.php @@ -0,0 +1,23 @@ + '部门管理', + 'normal'=>'正常', + 'disable'=>'禁用', + 'parent_id_repeat'=>'上级部门不能为本部门', + 'fields' => [ + 'pid' => '上级部门', + 'name' => '部门名称', + 'leader' => '负责人', + 'mobile' => '手机号', + 'status' => '状态', + 'sort' => '排序', + 'create_at' => '创建时间', + ], + 'type' => [ + AdminDepartment::TYPE_DEPARTMENT => '总站管理员', + AdminDepartment::TYPE_CHANNEL => '渠道管理员', + ], +]; diff --git a/addons/webman/lang/zh-CN/echart.php b/addons/webman/lang/zh-CN/echart.php new file mode 100644 index 0000000..2f2409c --- /dev/null +++ b/addons/webman/lang/zh-CN/echart.php @@ -0,0 +1,11 @@ + '点', + 'to' => '到', + 'month' => '月', + 'yesterday' => '昨天', + 'today' => '今天', + 'this_week' => '本周', + 'this_month' => '本月', + 'this_year' => '今年', +]; diff --git a/addons/webman/lang/zh-CN/first_recharge_setting.php b/addons/webman/lang/zh-CN/first_recharge_setting.php new file mode 100644 index 0000000..dcb6711 --- /dev/null +++ b/addons/webman/lang/zh-CN/first_recharge_setting.php @@ -0,0 +1,23 @@ + '首充奖励', + 'fields' => [ + 'model' => '发放模式', + 'type' => '奖励类型', + 'number' => '奖励coin', + 'number_percent' => '奖励百分比', + 'chip_amount' => '提现打码倍数', + 'add_number' => '累计充值', + ], + 'model' => [ + SystemSetting::FIRST_RECHARGE_MODEL_ONE => '一次性发放', + SystemSetting::FIRST_RECHARGE_MODEL_ADD => '累计发放', + ], + 'type' => [ + SystemSetting::FIRST_RECHARGE_TYPE_VALUE => '固定额度', + SystemSetting::FIRST_RECHARGE_TYPE_PERCENT => '百分比', + ] +]; diff --git a/addons/webman/lang/zh-CN/form.php b/addons/webman/lang/zh-CN/form.php new file mode 100644 index 0000000..7fa6432 --- /dev/null +++ b/addons/webman/lang/zh-CN/form.php @@ -0,0 +1,17 @@ +'添加', + 'edit' => '编辑', + 'please_enter' => '请输入', + 'please_select' => '请选择', + 'cancel' => '取消', + 'submit' => '提交', + 'reset' => '重置', + 'complete' => '完成', + 'pre_step' => '上一步', + 'next_step' => '下一步', + 'operation_complete' => '操作完成', + 'resubmit' => '重新提交', + 'save_success' => '数据保存成功', + 'save_fail' => '数据保存失败', +]; diff --git a/addons/webman/lang/zh-CN/game.php b/addons/webman/lang/zh-CN/game.php new file mode 100644 index 0000000..049a755 --- /dev/null +++ b/addons/webman/lang/zh-CN/game.php @@ -0,0 +1,44 @@ + '游戏列表', + 'fields' => [ + 'id' => '游戏ID', + 'name' => '游戏名称', + 'game_image' => '游戏图片', + 'consume' => '抽奖消耗', + 'prize_num' => '奖品数量', + 'logo' => '游戏图标', + 'description' => '描述信息', + 'game_type' => '游戏类型', + 'game_url' => '游戏链接', + 'status' => '状态', + 'create_at' => '创建时间', + 'updated_at' => '修改时间', + ], + 'game_platform' => '游戏供应商信息', + 'app_id' => '账号序列号 : {app_id}', + 'app_secret' => '账号密钥 : {app_secret}', + 'domain' => 'API地址 : {domain}', + 'admin_url' => '后台网址 : {admin_url}', + 'admin_user' => '后台登入用户名 : {admin_user}', + 'nu_set' => ' 未配置 ', + 'unit' => '人', + 'game_status' => '游戏状态', + 'is_online' => [ + '未上线', + '已上线' + ], + 'view_prize' => '查看奖品', + 'enter_game' => '进入游戏', + 'game_type' => [ + Game::GAME_TYPE_EGG => '砸金蛋', + Game::GAME_TYPE_TURNTABLE => '转盘', + Game::GAME_TYPE_BLINDBOX => '盲盒', + Game::GAME_TYPE_TICKET => '刮刮乐', + Game::GAME_TYPE_LOTTERY => '抽奖', + Game::GAME_TYPE_DICE => '摇色子', + ], +]; diff --git a/addons/webman/lang/zh-CN/game_platform.php b/addons/webman/lang/zh-CN/game_platform.php new file mode 100644 index 0000000..0a9900a --- /dev/null +++ b/addons/webman/lang/zh-CN/game_platform.php @@ -0,0 +1,27 @@ + '游戏列表', + 'fields' => [ + 'id' => '游戏厂商ID', + 'name' => '平台名称', + 'title' => '游戏供应商名', + 'status' => '状态', + 'created_at' => '创建时间', + 'service_ratio' => '供应商分润比例', + ], + 'game_platform' => '游戏供应商信息', + 'update_game_list' => '更新游戏列表', + 'update_game_list_confirm' => '您确定要更新该游戏厂商列表吗?', + 'action_error' => '操作失败', + 'action_success' => '操作成功', + 'enter_game' => '进入游戏大厅', + 'enter_game_confirm' => '您确定要进入该游戏厂商大厅吗?', + 'status' => [ + 0 => '禁用', + 1 => '启用' + ], + 'save_error' => '保存失败', + 'save_success' => '保存成功', + 'not_fount' => '供应商不存在', +]; diff --git a/addons/webman/lang/zh-CN/game_type.php b/addons/webman/lang/zh-CN/game_type.php new file mode 100644 index 0000000..7816f9e --- /dev/null +++ b/addons/webman/lang/zh-CN/game_type.php @@ -0,0 +1,15 @@ + '游戏类型列表', + 'fields' => [ + 'id' => 'ID', + 'game_type' => '游戏类型', + 'ratio' => '返佣', + 'created_at' => '创建时间', + 'updated_at' => '修改时间' + ], + 'nu_set' => ' 未配置 ', +]; diff --git a/addons/webman/lang/zh-CN/grid.php b/addons/webman/lang/zh-CN/grid.php new file mode 100644 index 0000000..3e7371f --- /dev/null +++ b/addons/webman/lang/zh-CN/grid.php @@ -0,0 +1,22 @@ + '列表', + 'add'=>'添加', + 'edit' => '编辑', + 'detail' => '详情', + 'delete' => '删除', + 'sort' => '排序', + 'action' => '操作', + 'confim_delete' => '确认删除?', + 'confim_restore' => '确认恢复?', + 'restore' => '恢复数据', + 'update_success' => '更新成功', + 'delete_success' => '删除成功', + 'restore_success' => '恢复成功', + 'delete_error' => '删除失败', + 'sort_success' => '排序成功', + 'user_info' => '用户信息', + 'pagination'=>[ + 'total' => '共 {total} 条', + ] +]; diff --git a/addons/webman/lang/zh-CN/login.php b/addons/webman/lang/zh-CN/login.php new file mode 100644 index 0000000..ebae51f --- /dev/null +++ b/addons/webman/lang/zh-CN/login.php @@ -0,0 +1,18 @@ + '登录账号不能为空', + 'password_not_empty' => '登录密码不能为空', + 'password_min_length' => '密码最少5位数', + 'success' => '登陆成功', + 'logout' => '已退出登录', + 'error' => '账号密码错误', + 'captcha_error' => '验证码错误', + 'source_not_empty' => '来源不能为空', + 'agent_login' => '子站登录', + 'admin_login' => '登录', + 'enter_account' => '请输入账号', + 'enter_password' => '请输入密码', + 'enter_verify' => '请输入验证码', + 'password_verify' => '密码输入长度不能少于5位', + 'login' => '登录', +]; diff --git a/addons/webman/lang/zh-CN/menu.php b/addons/webman/lang/zh-CN/menu.php new file mode 100644 index 0000000..fa0eb53 --- /dev/null +++ b/addons/webman/lang/zh-CN/menu.php @@ -0,0 +1,116 @@ + '添加菜单', + 'title' => '系统菜单管理', + 'fields' => [ + 'top' => '顶级菜单', + 'pid' => '上级菜单', + 'name' => '菜单名称', + 'url' => '菜单链接', + 'icon' => '菜单图标', + 'sort' => '排序', + 'status' => '状态', + 'open' => '菜单展开', + 'super_status' => '超级管理员状态', + 'type' => '菜单类型', + ], + 'options' => [ + 'admin_visible' => [ + [1 => '显示'], + [0 => '隐藏'] + ] + ], + 'type' => [ + AdminDepartment::TYPE_DEPARTMENT => '总站菜单', + AdminDepartment::TYPE_CHANNEL => '渠道菜单', + ], + 'titles' => [ + 'home' => '首页', + 'system' => '系统', + 'system_manage' => '系统管理', + 'config_manage' => '配置管理', + 'attachment_manage' => '附件管理', + 'permissions_manage' => '权限管理', + 'admin' => '用户管理', + 'role_manage' => '角色管理', + 'menu_manage' => '菜单管理', + 'plug_manage' => '插件管理', + 'department_manage' => '部门管理', + 'post_manage' => '岗位管理', + /** 总后台 */ + 'admin_manage' => '总后台', + 'data_center' => '数据中心', + //用户管理 + 'user_manage' => '玩家管理', + 'user_manage_list' => '玩家列表', + 'accounting_change_records' => '账变记录', + //财务数据 + 'financial_data' => '财务数据', + 'recharge_record' => '充值记录', + 'withdrawal_records' => '提现记录', + //报表中心 + 'report_center' => '报表中心', + //客户端管理 + 'client_manager' => '客户端管理', + 'rotation_chart_manager' => '轮播图管理', + 'announcement_manager' => '公告管理', + 'system_settings' => '系统设置', + //渠道管理 + 'channel_manager' => '渠道管理', + 'channel_list' => '渠道列表', + 'currency_manager' => '货币管理', + /** 渠道后台 */ + 'channel_manage' => '渠道后台', + 'channel_data_center' => '数据中心', + //玩家管理 + 'channel_player_manage' => '玩家管理', + 'channel_player_list' => '玩家列表', + 'channel_player_accounting_change_records' => '账变记录', + //前端配置 + 'channel_client_manager' => '客户端管理', + 'channel_rotation_chart_manager' => '轮播图管理', + 'channel_marquee_manager' => '跑马灯管理', + 'channel_announcement_manager' => '公告管理', + //财务管理 + 'channel_financial_manager' => '财务管理', + 'channel_recharge_review' => '充值审核', + 'channel_withdrawal_review' => '提现审核', + 'channel_withdrawal_and_payment' => '提现打款', + 'channel_recharge_record' => '充值记录', + 'channel_withdrawal_records' => '提现记录', + 'channel_recharge_channel_configuration' => '充值渠道配置', + 'channel_financial_operation_records' => '财务操作记录', + //权限管理 + 'channel_auth_manager' => '权限管理', + 'channel_admin_user_manager' => '用户管理', + 'channel_post_manager' => '岗位管理', + //日志中心 + 'log_center' => '日志中心', + 'player_edit_log' => '玩家资料修改日志', + 'player_money_edit_log' => '钱包操作日志', + //游戏管理 + 'game_manage' => '游戏管理', + 'game_record' => '游戏记录', + 'game_out_in' => '游戏转入/出记录', + 'game_list' => '游戏列表', + 'version_manager' => '版本管理', + 'activity_manager' => '活动管理', + 'activity_list' => '活动列表', + 'recharge_manager' => '充值管理', + 'recharge_channels' => '充值渠道', + 'play_and_earn' => '边玩边赚', + 'play_and_earn_record' => '玩赚记录', + //推广管理 + 'channel_player_promoter' => '推广管理', + 'channel_player_promoter_list' => '推广员列表', + 'profit_record' => '分润报表', + 'profit_settlement_record' => '分润结算记录', + //二维码 + 'qrcode' => '二维码管理', + 'qrcode_list' => '二维码批次列表', + 'qrcode_holder' => '持码人列表', + ] +]; diff --git a/addons/webman/lang/zh-CN/notice.php b/addons/webman/lang/zh-CN/notice.php new file mode 100644 index 0000000..9eaa5a1 --- /dev/null +++ b/addons/webman/lang/zh-CN/notice.php @@ -0,0 +1,14 @@ + [ + Notice::TYPE_EXAMINE_RECHARGE => '玩家充值待审核通知', + Notice::TYPE_EXAMINE_WITHDRAW => '玩家提现待审核通知', + ], + 'content' => [ + Notice::TYPE_EXAMINE_RECHARGE => '新的充值订单待审核, 玩家: {player_name}, 充值游戏点: {coins} 充值金额: {money}!', + Notice::TYPE_EXAMINE_WITHDRAW => '新的提现订单待审核, 玩家: {player_name}, 提现游戏点: {coins} 提现金额: {money}!', + ], +]; diff --git a/addons/webman/lang/zh-CN/play_game_record.php b/addons/webman/lang/zh-CN/play_game_record.php new file mode 100644 index 0000000..dff176e --- /dev/null +++ b/addons/webman/lang/zh-CN/play_game_record.php @@ -0,0 +1,23 @@ + '玩家游戏记录', + 'fields' => [ + 'id' => 'ID', + 'game_code' => '游戏编号', + 'bet' => '押注额', + 'win' => '贏取额', + 'reward' => '奖金(不计入贏取)', + 'order_no' => '单号(游戏平台)', + 'status' => '状态', + 'platform_action_at' => '结算时间(游戏平台)', + 'action_at' => '结算时间', + 'create_at' => '创建时间', + ], + 'status' => [ + PlayGameRecord::STATUS_UNSETTLED => '未分润', + PlayGameRecord::STATUS_SETTLED => '已分润', + ] +]; diff --git a/addons/webman/lang/zh-CN/player.php b/addons/webman/lang/zh-CN/player.php new file mode 100644 index 0000000..c99849a --- /dev/null +++ b/addons/webman/lang/zh-CN/player.php @@ -0,0 +1,153 @@ + '玩家列表', + 'details' => '玩家详情', + 'player' => '玩家', + 'coin_recharge_money' => '充值金额', + 'coin_recharge_coins' => '充值点数', + 'coin_recharge_title' => '您正在给{uuid}充值, 请输入收款金额和充值点数', + 'coin_recharge_error' => '币商充值失败', + 'coin_recharge_success' => '币商充值成功', + 'artificial_recharge_error' => '人工充值失败', + 'artificial_recharge_success' => '人工充值成功', + 'artificial_withdrawal_error' => '人工提现失败', + 'artificial_withdrawal_success' => '人工提现成功', + 'insufficient_balance' => '账户余额不足', + 'fields' => [ + 'id' => 'ID', + 'phone' => '手机号(账号)', + 'level' => '玩家等级', + /** TODO 翻译 */ + 'name' => '用户昵称', + 'currency' => '币种', + 'email' => '邮箱', + 'line' => 'line', + 'department_id' => '渠道', + 'status' => '账号状态', + 'status_withdraw' => '取款功能', + 'status_transfer' => '转点功能', + 'status_open_coins' => '开赠权限', + 'created_at' => '注册时间', + 'avatar' => '玩家头像', + 'machine_play_num' => '可玩机台数', + 'login_at' => '最近登录时间', + 'register_ip' => '注册IP', + 'register_domain' => '注册域名', + 'country_code' => '国家/地区号', + 'player_tag' => '标签', + 'uuid' => '玩家UID', + 'type' => '玩家类型', + 'player_login_record' => '最后登录时间', + 'play_password' => '支付密码', + 'password' => '登录密码', + 'recommend_code' => '推广码', + 'recommend_promoter_name' => '所属推广员', + 'chip_amount' => '当前打码量', + 'must_chip_amount' => '目标打码量', + 'is_promoter' => '是否为推广员', + ], + 'player_no_change' => '玩家沒有變動', + 'not_fount' => '未找到该玩家', + 'disable' => '该玩家已被禁用', + 'change_player_content' => '更換遊戲玩家: {form} ➜ {to}', + 'player_change_success' => '玩家更换成功', + 'player_machine_limit' => '玩家更換失敗,此玩家最多只能遊玩{machinePlayNum}台更换成功', + 'password_min_number' => '密码最少6位数', + 'password_confim_validate' => '输入密码不一致', + 'update_password' => '修改密码', + 'reset_password' => '重置密码', + 'old_password' => '旧密码', + 'old_password_error' => '旧密码错误', + 'new_password' => '新密码', + 'confim_password' => '确认密码', + 'remark_edit_success' => '备注更新成功', + 'player_info' => '玩家信息', + 'save_player_info_success' => '保存成功', + 'add_player' => '添加玩家', + 'phone_has_register' => '手机号已注册', + 'avatar_type' => '头像', + 'upload_avatar' => '上传头像', + 'def_avatar' => '默认头像', + 'action_error' => '操作失败', + 'action_success' => '操作成功', + 'phone_exist' => '手机号已注册', + 'player_recharge_record' => '充值记录', + 'player_withdraw_record' => '提现记录', + 'player_game_record' => '游戏记录', + 'confirm' => [ + 'change_player_confirm' => '是否确认更改玩家?', + ], + 'btn' => [ + 'change_player' => '更改玩家', + ], + 'wallet' => [ + 'player_wallet' => '玩家钱包', + 'deduct' => '扣点', + 'increase' => '加点', + 'wallet_from' => '钱包信息', + 'wallet' => '钱包余额', + 'type' => '类型', + 'action' => '操作', + 'money' => '金额', + 'textarea' => '备注', + 'wallet_operation_failed' => '钱包操作失败', + 'wallet_operation_success' => '钱包操作成功', + 'player_apply_manual_system_add' => '人工系统金额已派发到玩家主钱包', + 'operation_amount_error' => '操作金额错误', + 'wallet_type_error' => '操作类型错误', + 'player_error' => '玩家错误', + 'wallet_action_log_not_found' => '玩家钱包操作日志不存在', + 'insufficient_player_money' => '玩家余额不足', + 'unlimited' => '不限制', + 'modify' => '修改余额', + 'artificial_recharge' => '人工充值', + 'artificial_withdrawal' => '人工提现', + 'artificial_recharge_tip' => '人工充值,无需人工介入审核,充值完成后游戏点将直接发放给玩家账户,并记录充值信息.', + 'artificial_withdrawal_tip' => '人工提现,无需人工介入审核,提现完成后将直接扣除玩家钱包余额,并记录提现信息.', + 'wallet_type' => [ + PlayerMoneyEditLog::RECHARGE => '充值', + PlayerMoneyEditLog::VIP_RECHARGE => 'VIP充值', + PlayerMoneyEditLog::ACTIVITY_GIVE => '活動外贈', + PlayerMoneyEditLog::ADMIN_DEDUCT => '管理员扣点', + PlayerMoneyEditLog::ADMIN_INCREASE => '管理员加点', + PlayerMoneyEditLog::OTHER => '其他', + ] + ], + 'player_delivery_record' => '钱包操作', + 'wallet_action_status_has_closed' => '已关闭渠道钱包操作功能!', + 'level_setting' => '玩家等级', + 'level' => [ + 1 => 'level 1', + 2 => 'level 2', + 3 => 'level 3', + 4 => 'level 4', + 5 => 'level 5', + 6 => 'level 6', + 7 => 'level 7', + 8 => 'level 8', + 9 => 'level 9', + 10 => 'level 10', + 11 => 'level 11', + 12 => 'level 12', + 13 => 'level 13' + ], + 'no_level' => '无等级', + 'set_promoter' => '设置推广员', + 'set_promoter_tip' => '玩家账户必须满足, 未归属于莫个推广员才能被设置为一级推广员, 二级推广员由一级推广员在客户端设置.', + 'not_promoter' => '非推广员', + 'promoter' => '推广员', + 'present_coins' => '赠送coins', + 'account' => '账户', + 'account_name' => '账户名', + 'bank_name' => '银行名称', + 'bind_promoter' => '绑定推广员', + 'bind_promoter_confirm' => '提示: 推广员关系一旦绑定将无法解除, 请确认是否绑定?', + 'player_report' => '玩家报表', + 'bet_total' => '电子游戏打码量', + 'diff_total' => '电子游戏输赢', + 'cancel_transfer' => '取消转账', + 'cancel_transfer_confirm' => '您正在取消玩家 {uuid} 在游戏平台的转账操作, 玩家在该平台的余额须手动在后台增加, 请确认是否继续?', +]; diff --git a/addons/webman/lang/zh-CN/player_chip_record.php b/addons/webman/lang/zh-CN/player_chip_record.php new file mode 100644 index 0000000..aa07ce0 --- /dev/null +++ b/addons/webman/lang/zh-CN/player_chip_record.php @@ -0,0 +1,26 @@ + '打码量列表', + 'fields' => [ + 'id' => 'ID', + 'name' => '游戏名称', + 'chip_amount' => '当前打码量', + 'must_chip_amount' => '目标打码量', + 'record_type' => '类型', + 'amount' => '发生金额', + 'created_at' => '创建时间', + ], + 'record_type' => [ + PlayerChipRecord::RECORD_TYPE_SIGN => '签到', + PlayerChipRecord::RECORD_TYPE_RECHARGE => '普通充值', + PlayerChipRecord::RECORD_TYPE_ACTIVITY => '活动充值', + PlayerChipRecord::RECORD_TYPE_GAME => '游戏押注', + PlayerChipRecord::RECORD_TYPE_COMMISSION => '分润', + PlayerChipRecord::RECORD_TYPE_BANKRUPTCY => '破产', + PlayerChipRecord::RECORD_TYPE_BET_REBATE => '打码返水', + PlayerChipRecord::RECORD_TYPE_FIRST_RECHARGE_REWARD => '首充奖励', + ] +]; diff --git a/addons/webman/lang/zh-CN/player_delivery_record.php b/addons/webman/lang/zh-CN/player_delivery_record.php new file mode 100644 index 0000000..e4bc2b9 --- /dev/null +++ b/addons/webman/lang/zh-CN/player_delivery_record.php @@ -0,0 +1,43 @@ + '账变记录', + 'fields' => [ + 'id' => 'ID', + 'player_id' => '玩家', + 'target' => '交易資料表', + 'target_id' => '資料id', + 'type' => '类型', + 'source' => '交易对象', + 'amount' => '游戏点', + 'user_id' => '管理员id', + 'user_name' => '操作人', + 'amount_before' => '变更前点数', + 'amount_after' => '变更后点数', + 'tradeno' => '单号', + 'remark' => '备注', + 'updated_at' => '更新时间', + 'created_at' => '创建时间', + ], + 'type' => [ + PlayerDeliveryRecord::TYPE_MODIFIED_AMOUNT_ADD => '(管理后台)加点', + PlayerDeliveryRecord::TYPE_RECHARGE => '充值', + PlayerDeliveryRecord::TYPE_WITHDRAWAL => '提现', + PlayerDeliveryRecord::TYPE_MODIFIED_AMOUNT_DEDUCT => '(管理后台)扣点', + PlayerDeliveryRecord::TYPE_WITHDRAWAL_BACK => '提现回退', + PlayerDeliveryRecord::TYPE_REGISTER_PRESENT => '注册赠送', + PlayerDeliveryRecord::TYPE_COMMISSION => '返佣金', + PlayerDeliveryRecord::TYPE_SIGN => '签到', + PlayerDeliveryRecord::TYPE_GAME_OUT => '游戏转出', + PlayerDeliveryRecord::TYPE_GAME_IN => '游戏转入', + PlayerDeliveryRecord::TYPE_BET_REBATE => '打码量返水', + PlayerDeliveryRecord::TYPE_DAMAGE_REBATE => '客损返水', + PlayerDeliveryRecord::TYPE_RECHARGE_REWARD => '首充奖励', + PlayerDeliveryRecord::TYPE_PROFIT => '推广员分润', + PlayerDeliveryRecord::TYPE_CANCELTRANSFER => '管理员取消转账', + ], + 'detail' => '详情', + 'chart' => '图表', +]; diff --git a/addons/webman/lang/zh-CN/player_edit_log.php b/addons/webman/lang/zh-CN/player_edit_log.php new file mode 100644 index 0000000..9f45a22 --- /dev/null +++ b/addons/webman/lang/zh-CN/player_edit_log.php @@ -0,0 +1,42 @@ + '玩家资料修改日志', + 'fields' => [ + 'id' => '编号', + 'origin_data' => '原数据', + 'new_data' => '操作后数据', + 'create_at' => '操作时间', + ], + 'details' => '操作详情', + 'created_at_start' => '日志开始时间', + 'created_at_end' => '日志结束时间', + 'admin_user' => '管理员', + 'action_info' => '操作详情', + 'action' => [ + 'status_open' => '启用玩家账户', + 'status_stop' => '停用玩家账户', + 'status_withdraw_open' => '开启提现功能', + 'status_withdraw_close' => '关闭提现功能', + 'status_open_coins_open' => '启用玩家提现功能', + 'status_open_coins_close' => '关闭玩家开赠功能', + 'name' => '修改玩家名称: ', + 'phone' => '修改玩家手机号: ', + 'country_code' => '修改玩家国家/地区号: ', + 'play_password' => '修改支付密码: ', + 'password' => '修改登录密码: ', + 'avatar' => '修改头像: ', + 'sex' => '修改性别: ', + 'email' => '修改邮箱: ', + 'qq' => '修改QQ: ', + 'telegram' => '修改telegram: ', + 'birthday' => '修改生日: ', + 'id_number' => '修改身份证: ', + 'address' => '修改地址: ', + 'wechat' => '修改微信号: ', + 'whatsapp' => '修改whatsapp: ', + 'facebook' => '修改facebook: ', + 'line' => '修改Line: ', + 'remark' => '修改备注: ', + ] +]; diff --git a/addons/webman/lang/zh-CN/player_extend.php b/addons/webman/lang/zh-CN/player_extend.php new file mode 100644 index 0000000..12f193f --- /dev/null +++ b/addons/webman/lang/zh-CN/player_extend.php @@ -0,0 +1,33 @@ + [ + 'id' => 'ID', + 'player_id' => '玩家ID', + 'sex' => '性别', + 'email' => '邮箱', + 'ip' => 'IP地址', + 'qq' => 'QQ账号', + 'telegram' => 'Telegram', + 'birthday' => '生日', + 'id_number' => '身份证', + 'address' => '地址', + 'wechat' => '微信号', + 'whatsapp' => 'Whatsapp', + 'facebook' => 'Facebook', + 'line' => 'Line', + 'remark' => '备注', + 'coin_recharge_amount' => '币商充值', + 'present_out' => '转出', + 'present_in' => '转入', + 'recharge_amount' => '总充值点数', + 'withdraw_amount' => '总提现点数', + 'present_out_amount' => '总转出点数', + 'present_in_amount' => '总转入点数', + 'third_recharge_amount' => '第三方总充值点数', + 'third_withdraw_amount' => '第三方总提现点数', + 'created_at' => '创建时间', + 'updated_at' => '更新时间', + ], + 'remark_limit' => '备注字符不能超过255个字' +]; diff --git a/addons/webman/lang/zh-CN/player_level.php b/addons/webman/lang/zh-CN/player_level.php new file mode 100644 index 0000000..2e3855a --- /dev/null +++ b/addons/webman/lang/zh-CN/player_level.php @@ -0,0 +1,25 @@ + '玩家等级', + 'recharge_amount' => '充值金额', + 'chip_multiple' => '提现打码量倍数', + 'bet_rebate_amount' => '返水所需打码量额度', + 'bet_rebate_ratio' => '打码量返水比值', + 'damage_rebate_ratio' => '客损返水比值', + 'help' => [ + 'recharge_amount' => '充值金额配置最大只能设置{max_amount}', + 'chip_multiple' => '提现打码量倍数最大只能设置{max_multiple}', + 'bet_rebate_amount' => '返水所需打码量额度最大只能设置{max_amount}', + 'bet_rebate_ratio' => '打码量返水比值最大只能设置{max_ratio}', + 'damage_rebate_ratio' => '客损返水比值最大只能设置{max_ratio}', + 'level_name' => '等级名称最多输入20个字符', + 'level_content' => '等级介绍最多输入500个字符', + ], + 'recharge_amount_must_gt_upper' => '{level},充值金额配置必须大于上一个等级', + 'recharge_amount_must_lt_next' => '{level},充值金额配置必须小于上下个等级', + 'recharge_amount_not_found' => '{level},充值金额配置为必填项', + 'level' => '玩家等级', + 'level_name' => '等级名称', + 'level_content' => '等级描述内容', +]; diff --git a/addons/webman/lang/zh-CN/player_money_edit_log.php b/addons/webman/lang/zh-CN/player_money_edit_log.php new file mode 100644 index 0000000..99c984d --- /dev/null +++ b/addons/webman/lang/zh-CN/player_money_edit_log.php @@ -0,0 +1,40 @@ + '钱包操作日志', + 'fields' => [ + 'id' => '编号', + 'money' => '金额', + 'action' => '操作类型', + 'origin_money' => '原始金额', + 'after_money' => '异动后金額', + 'create_at' => '操作时间', + 'remark' => '备注', + ], + 'created_at_start' => '日志开始时间', + 'created_at_end' => '日志结束时间', + 'admin_user' => '管理员', + 'player_info' => '玩家信息', + 'action_info' => '操作信息', + 'action' => [ + PlayerMoneyEditLog::RECHARGE => '充值', + PlayerMoneyEditLog::VIP_RECHARGE => 'VIP充值', + PlayerMoneyEditLog::ACTIVITY_GIVE => '活動外贈', + PlayerMoneyEditLog::ADMIN_DEDUCT => '管理员扣点', + PlayerMoneyEditLog::OTHER => '其他', + ], + 'total_data' => [ + 'total_recharge' => '充值', + 'total_vip_recharge' => 'VIP充值', + 'total_testing_machine' => '测试机台', + 'total_other' => '其他', + 'total_activity_give' => '活動外贈', + 'total_triple_seven_give' => '三七鋼珠外贈', + 'total_composite_machine_give' => '複合機外贈', + 'total_electronic_give' => '電子外贈', + 'total_admin_deduct' => '管理员扣点', + 'total_real_person_give' => '真人外贈', + ], +]; diff --git a/addons/webman/lang/zh-CN/player_platform_cash.php b/addons/webman/lang/zh-CN/player_platform_cash.php new file mode 100644 index 0000000..63e624c --- /dev/null +++ b/addons/webman/lang/zh-CN/player_platform_cash.php @@ -0,0 +1,20 @@ + '平台钱包', + 'fields' => [ + 'id' => 'ID', + 'player_id' => '玩家ID', + 'platform_id' => '平台ID', + 'platform_name' => '平台名称', + 'money' => '点数', + 'status' => '游戏平台状态', + 'created_at' => '创建时间', + 'updated_at' => '更新时间', + ], + 'platform_name' => [ + PlayerPlatformCash::PLATFORM_SELF => '钱包余额' + ] +]; diff --git a/addons/webman/lang/zh-CN/player_promoter.php b/addons/webman/lang/zh-CN/player_promoter.php new file mode 100644 index 0000000..8bcd34b --- /dev/null +++ b/addons/webman/lang/zh-CN/player_promoter.php @@ -0,0 +1,79 @@ + '推广员', + 'ratio_placeholder' => '最大分润比例{max_ratio}%', + 'ratio_help_parent' => '上级分润 {max_ratio}% 可给下级推广员分润最大 {max_ratio}%', + 'ratio_help_platform' => '平台分润 {max_ratio}% 可给推广员分润最大 {max_ratio}%', + 'ratio_max_error' => '分润比例设置错误最大不能超过 {max_ratio}%', + 'ratio_min_error' => '分润比例设置错误最大不能超过 {min_ratio}%', + 'submit_confirm' => '已成为推广员的玩家,将无法再设置为非推广员.', + 'promoter_player_info' => '个人信息', + 'parent_promoter_player_info' => '上级信息', + 'promoter_info' => '推广员信息', + 'promoter_team_info' => '团队信息', + 'name_max_length' => '备注名最大30个字', + 'settlement' => '分润结算', + 'settlementclear' => '分润清零', + 'not_fount' => '推广员不存在', + 'has_disable' => '推广员已禁用', + 'profit_amount_error' => '结算分润异常请对账后处理!', + 'settlement_clear_confirm' => '您正在对推广员 {uuid} 进行分润清零操作, 当前可结算分润(个人) {amount}, 请确认是否清零?', + 'settlement_confirm' => '您正在对推广员 {uuid} 进行结算操作, 当前可结算分润(个人) {amount}, 结算分润为负时将会累计到下期, 请确认是否结算?', + 'profit_amount_not_found' => '无可结算的分润!', + 'profit_amount_must_positive' => '可结算分润必须为正数!', + 'promoter_players' => '直系玩家', + 'promoter_team' => '直系团队', + 'settlement_null' => '无需结算', + 'promotion_function_disabled' => '渠道已禁用推广功能', + 'settlement_date_text' => '结算日期为每月的', + 'date' => '日', + 'settlement_date' => '结算日', + 'settlement_clear' => '分润清算', + 'promoter_profit_record' => '分润报表', + 'promoter_profit_record_detail' => '分润明细', + 'profit_settlement_confirm' => '对推广员进行结算操作,该操作不可逆确定要进行操作吗?', + 'fields' => [ + 'id' => 'ID', + 'status' => '状态', + 'player_num' => '玩家数量', + 'team_num' => '团队数量', + 'team_withdraw_total_amount' => '当期总提现', + 'team_recharge_total_amount' => '当前总充值', + 'total_profit_amount' => '总分润(个人)', + 'profit_amount' => '当前分润(总)', + 'profit_amount_team' => '下级提供分润', + 'player_profit_amount' => '直属分润', + 'adjust_amount' => '分润调整', + 'can_settlement_amount' => '当期应结算分润', + 'settlement_amount' => '已结算金额', + 'last_profit_amount' => '上期结算金额', + 'last_settlement_time' => '上次结算日期', + 'team_total_profit_amount' => '总分润(团队)', + 'team_profit_amount' => '当前分润(团队)', + 'team_settlement_amount' => '团队已结算金额', + 'ratio' => '分润比例', + 'name' => '推广员', + 'recommend_promoter_name' => '所属推广员', + 'parent_promoter_name' => '上级推广员', + 'created_at' => '创建时间', + 'updated_at' => '更新时间', + ], + 'status' => [ + '禁用', + '启用', + ], + 'action_error' => '设置失败', + 'action_success' => '设置成功', + 'settlement_date_text_null' => '未设置', + 'bath_settlement' => '批量结算', + 'bath_settlement_queue' => '批量结算任务', + 'settlement_amount_tip' => '当已结算金额为负数时, 推广员结算最终金额需扣除对应金额.', + 'adjust_amount_tip' => '分润调整金额将会, 计算到当期分润金额中, 结算完成后该金额将重置.', + 'can_settlement_amount_tip' => '当期可结算金额计算方式(直属分润 + 下级提供分润 + 调整金额).', + 'formula_tip' => '计算公式: ({up} + {admin_sub}) - ({activity} + {present} + {admin_add} + {down} + {lottery}) * {ratio}% = {profit_amount}', + 'source_promoter_name' => '来源推广员', + 'promoter_max_ratio' => '分润比最大可设置{max_ratio}%', + 'promoter_min_ratio' => '分润比最小可设置{min_ratio}%', +]; diff --git a/addons/webman/lang/zh-CN/player_recharge_record.php b/addons/webman/lang/zh-CN/player_recharge_record.php new file mode 100644 index 0000000..8fc5a3f --- /dev/null +++ b/addons/webman/lang/zh-CN/player_recharge_record.php @@ -0,0 +1,90 @@ + '充值记录', + 'examine_title' => '充值审核记录', + 'status_wait' => '充值中', + 'status_examine' => '待查账', + 'status_recharging' => '待支付', + 'status_success' => '完成充值', + 'status_fail' => '充值失败', + 'status_cancel' => '取消充值', + 'status_reject' => '已拒绝', + 'status_system_cancel' => '已关闭', + 'status_examine_pass' => '完成充值', + 'status_examine_reject' => '审核拒绝', + 'not_fount' => '未找到充值订单', + 'recharge_record_error' => '充值订单错误', + 'action_error' => '操作失败', + 'action_success' => '操作成功', + 'view_recharge_certificate_title' => '查看订单 {tradeno} 的付款凭证', + 'recharge_record_not_complete' => '玩家充值还未完成', + 'recharge_record_has_pass' => '充值订单已通过审核', + 'recharge_record_has_fail' => '充值订单支付失败', + 'recharge_record_has_cancel' => '玩家已取消改订单', + 'recharge_record_has_reject' => '该充值订单已被拒绝', + 'recharge_record_has_system_cancel' => '系统已超时关闭该订单', + 'talk_currency' => 'Q币', + 'fields' => [ + 'id' => 'ID', + 'player_id' => '玩家', + 'department_id' => '渠道', + 'tradeno' => '充值单号', + 'status' => '状态', + 'type' => '类型', + 'player_name' => '玩家名称', + 'player_phone' => '玩家手机号', + 'money' => '充值金额', + 'inmoney' => '实际金额', + 'certificate' => '付款凭证', + 'coins' => 'coins', + 'gift_coins' => '赠送coins', + 'player_tag' => '标签', + 'remark' => '备注', + 'reject_reason' => '拒绝原因', + 'user_name' => '操作人', + 'currency' => '币种', + 'finish_time' => '完成时间', + 'cancel_time' => '取消时间', + 'created_at' => '创建时间', + ], + 'type' => [ + PlayerRechargeRecord::TYPE_REGULAR => '普通充值', + PlayerRechargeRecord::TYPE_ACTIVITY => '活动充值', + PlayerRechargeRecord::TYPE_ARTIFICIAL => '人工充值', + ], + 'status' => [ + PlayerRechargeRecord::STATUS_WAIT => '待充值', + PlayerRechargeRecord::STATUS_RECHARGING => '待支付(待查账)', + PlayerRechargeRecord::STATUS_RECHARGED_SUCCESS => '充值成功', + PlayerRechargeRecord::STATUS_RECHARGED_FAIL => '充值失败', + PlayerRechargeRecord::STATUS_RECHARGED_CANCEL => '取消充值', + PlayerRechargeRecord::STATUS_RECHARGED_REJECT => '审核拒绝', + PlayerRechargeRecord::STATUS_RECHARGED_SYSTEM_CANCEL => '已关闭', + ], + 'action' => [ + 'action_error' => '操作失败', + 'action_success' => '操作成功', + 'action_not_fount' => '操作未定义', + 'open_num' => '开分值', + 'no_fount_player' => '沒有正在遊戲中的玩家', + 'open_custom' => '开分自定', + 'down' => '下分', + ], + 'btn' => [ + 'action' => '操作', + 'view_channel_recharge_setting' => '查看渠道充值账号', + 'view_recharge_certificate' => '查看付款凭证', + 'examine_pass' => '审核通过', + 'examine_reject' => '审核拒绝', + 'examine_pass_confirm' => '请确认已收到款项, 点击审核通过后, 系统将会自动发放游戏点数', + 'examine_reject_confirm' => '审核拒绝, 拒绝后玩家将无法完成充值, 该条记录状态无法更改', + ], + 'total_data' => [ + 'total_espay_money' => '三方充值总金额', + 'total_espay_inmoney' => '三方充值实际总金额', + 'total_artificial_money' => '人工充值总金额', + ], +]; diff --git a/addons/webman/lang/zh-CN/player_wallet_transfer.php b/addons/webman/lang/zh-CN/player_wallet_transfer.php new file mode 100644 index 0000000..7f993d0 --- /dev/null +++ b/addons/webman/lang/zh-CN/player_wallet_transfer.php @@ -0,0 +1,15 @@ + '玩家转出/入记录', + 'fields' => [ + 'id' => 'ID', + 'amount' => '金额', + 'reward' => '中奖金额', + 'platform_no' => '单号(游戏平台)', + 'tradeno' => '单号', + 'create_at' => '创建时间', + 'department_name' => '渠道名称', + 'platform_name' => '游戏平台', + ], +]; diff --git a/addons/webman/lang/zh-CN/player_withdraw_record.php b/addons/webman/lang/zh-CN/player_withdraw_record.php new file mode 100644 index 0000000..8cecb76 --- /dev/null +++ b/addons/webman/lang/zh-CN/player_withdraw_record.php @@ -0,0 +1,85 @@ + '提现记录', + 'payment_title' => '提现打款记录', + 'examine_title' => '提现审核记录', + 'status_wait' => '待审核', + 'status_success' => '提现成功', + 'status_fail' => '提现失败', + 'not_fount' => '未找到充值订单', + 'withdraw_record_error' => '充值订单错误', + 'action_error' => '操作失败', + 'action_success' => '操作成功', + 'withdraw_record_not_complete' => '玩家提现还未完成', + 'withdraw_record_has_complete' => '提现订单已完成', + 'withdraw_record_has_fail' => '提现订单支已失败', + 'withdraw_record_has_cancel' => '玩家已取消该订单', + 'withdraw_record_has_reject' => '该提现订单已被拒绝', + 'withdraw_record_has_system_cancel' => '系统已超时关闭该订单', + 'withdraw_record_has_pass' => '该提现订单已通过审核', + 'withdraw_record_status_error' => '提现订单异常', + 'withdraw_record_has_not_examine' => '该订单还未审核', + 'certificate_help' => '只允许上传类型格式 jpg,png,jpeg,文件最大不可超过2M,可拖拽到虚线上传', + 'certificate_required' => '请上传打款凭证', + 'player_bank' => '玩家账户', + 'total_money' => '提現总金额', + 'total_inmoney' => '提現实际总金额', + 'fields' => [ + 'id' => 'ID', + 'player' => '玩家信息', + 'player_id' => '玩家', + 'department_id' => '渠道', + 'tradeno' => '提現单号', + 'status' => '状态', + 'type' => '类型', + 'player_name' => '玩家名称', + 'player_phone' => '玩家手机号', + 'money' => '提現金额', + 'inmoney' => '提現金额', + 'player_tag' => '标签', + 'remark' => '备注', + 'currency' => '币种', + 'finish_time' => '完成时间', + 'cancel_time' => '取消时间', + 'created_at' => '发起提现时间', + 'coins' => '游戏点数', + 'bank_name' => '银行名称', + 'account_name' => '账户名', + 'account' => '卡号', + ], + 'status' => [ + PlayerWithdrawRecord::STATUS_WAIT => '提現中(待审核)', + PlayerWithdrawRecord::STATUS_SUCCESS => '提現成功', + PlayerWithdrawRecord::STATUS_FAIL => '提現失敗', + PlayerWithdrawRecord::STATUS_PENDING_PAYMENT => '待打款', + PlayerWithdrawRecord::STATUS_PENDING_REJECT => '审核不通过', + PlayerWithdrawRecord::STATUS_CANCEL => '取消提现', + PlayerWithdrawRecord::STATUS_SYSTEM_CANCEL => '系统取消', + ], + 'type' => [ + PlayerWithdrawRecord::TYPE_USDT => 'usdt提现', + PlayerWithdrawRecord::TYPE_SELF => '平台提现', + PlayerWithdrawRecord::TYPE_ARTIFICIAL => '人工提现', + PlayerWithdrawRecord::TYPE_ESPAYOUT => 'EsPay提现', + PlayerWithdrawRecord::TYPE_ONEPAYOUT => 'OnePay提现', + PlayerWithdrawRecord::TYPE_SKLPAYOUT => 'Skl提现', + ], + 'total_data' => [ + 'total_artificial_money' => '人工提现总金额', + 'total_espay_money' => '三方支付提现总金额', + 'total_espay_inmoney' => '三方支付提现实际总金额', + ], + 'btn' => [ + 'action' => '操作', + 'view_channel_recharge_list' => '查看充值记录', + 'view_game_list' => '查看游戏记录', + 'examine_pass' => '审核通过', + 'examine_reject' => '审核拒绝', + 'complete_payment' => '完成打款', + 'examine_pass_confirm' => '审核通过后, 订单将进入财务打款流程, 请仔细核对确认', + 'examine_reject_confirm' => '审核拒绝, 点击审核通过后, 系统将会自动发放游戏点数', + ], +]; diff --git a/addons/webman/lang/zh-CN/post.php b/addons/webman/lang/zh-CN/post.php new file mode 100644 index 0000000..3596379 --- /dev/null +++ b/addons/webman/lang/zh-CN/post.php @@ -0,0 +1,13 @@ + '岗位管理', + 'normal'=>'正常', + 'disable'=>'禁用', + 'fields' => [ + 'name' => '岗位名称', + 'status' => '状态', + 'sort' => '排序', + 'create_at' => '创建时间', + ], +]; diff --git a/addons/webman/lang/zh-CN/prize.php b/addons/webman/lang/zh-CN/prize.php new file mode 100644 index 0000000..4e92724 --- /dev/null +++ b/addons/webman/lang/zh-CN/prize.php @@ -0,0 +1,44 @@ + '游戏列表', + 'fields' => [ + 'id' => '奖品ID', + 'name' => '奖品名称', + 'pic' => '图片', + 'probability' => '权重', + 'type' => '奖品类型', + 'total_stock' => '总库存', + 'daily_stock' => '每日库存', + 'total_remaining' => '总剩余库存', + 'daily_remaining' => '每日剩余库存', + 'description' => '奖品描述', + 'status' => '状态', + 'admin_name' => '管理员', + 'updated_at' => '修改时间', + ], + 'game_type' => [ + Game::GAME_TYPE_EGG => '砸金蛋', + Game::GAME_TYPE_TURNTABLE => '转盘', + Game::GAME_TYPE_BLINDBOX => '盲盒', + Game::GAME_TYPE_TICKET => '刮刮乐', + Game::GAME_TYPE_LOTTERY => '抽奖', + Game::GAME_TYPE_DICE => '摇色子', + ], + 'prize_type' => [ + Prize::PRIZE_TYPE_PHYSICAL => '实物奖品', + Prize::PRIZE_TYPE_VIRTUAL => '虚拟奖品', + Prize::PRIZE_TYPE_LOSE => ' 未中奖', + ], + 'help' => [ + 'name' => '请输入游戏名称', + 'picture_size' => '游戏图片大小不能超过 1MB', + ], + 'view_prize' => '查看奖品', + 'daily_stock_help' => '每日库存不能大于总库存', + 'replenish_daily_stock' => '补充每日库存', + 'action_success' => '操作成功', +]; diff --git a/addons/webman/lang/zh-CN/promoter_profit_record.php b/addons/webman/lang/zh-CN/promoter_profit_record.php new file mode 100644 index 0000000..fec6068 --- /dev/null +++ b/addons/webman/lang/zh-CN/promoter_profit_record.php @@ -0,0 +1,58 @@ + '分润报表', + 'promoter_info' => '推广员信息', + 'profit_record' => '报表信息', + 'player_info' => '玩家信息', + 'settlement_detail' => '结算详情', + 'player_game_record' => '机台上下分', + 'player_activity_phase_record' => '活动奖励', + 'player_lottery_record' => '彩金奖励', + 'player_recharge_record' => '充值记录', + 'player_withdraw_record' => '提现记录', + 'player_delivery_record' => '管理员钱包操作', + 'player_present_record' => '系统赠送', + 'fields' => [ + 'id' => 'ID', + 'player_id' => '玩家ID', + 'department_id' => '渠道ID', + 'promoter_player_id' => '推广员玩家id', + 'status' => '结算状态', + 'withdraw_amount' => '提现金额', + 'recharge_amount' => '充值金额', + 'bonus_amount' => '活动奖励金额', + 'admin_deduct_amount' => '管理员扣点', + 'admin_add_amount' => '管理员加点', + 'present_amount' => '系统赠送', + 'machine_up_amount' => '机台上点', + 'machine_down_amount' => '机台下点', + 'lottery_amount' => '彩金奖金', + 'profit_amount' => '分润金额', + 'settlement_tradeno' => '结算单号', + 'ratio' => '分润比例', + 'actual_ratio' => '实际分润比', + 'settlement_time' => '结算时间', + 'created_at' => '创建时间', + 'date' => '数据产生日期', + 'updated_at' => '更新时间', + 'total_amount' => '金额', + 'open_point' => '上分', + 'wash_point' => '下分', + ], + 'status' => [ + PromoterProfitRecord::STATUS_UNCOMPLETED => '未结算', + PromoterProfitRecord::STATUS_COMPLETED => '已结算', + ], + 'player_promoter' => [ + 'phone' => '推广员手机号', + 'uuid' => '推广员UUID' + ], + 'settlement_time_start' => '结算开始时间', + 'settlement_time_end' => '结算结束时间', + 'date_tip' => '数据凌晨3点更新前一日0点到24点数据', + 'profit_amount_tip' => '分润结算公式 (机台上分 + 管理员扣点) - (活动奖励 + 系统赠送 + 管理员加点 + 机台下分 + 彩金奖励). ', +]; diff --git a/addons/webman/lang/zh-CN/promoter_profit_settlement_record.php b/addons/webman/lang/zh-CN/promoter_profit_settlement_record.php new file mode 100644 index 0000000..6058f99 --- /dev/null +++ b/addons/webman/lang/zh-CN/promoter_profit_settlement_record.php @@ -0,0 +1,52 @@ + '结算记录', + 'fields' => [ + 'id' => 'ID', + 'total_withdraw_amount' => '提现金额', + 'total_recharge_amount' => '充值金额', + 'total_bonus_amount' => '活动赠送金额', + 'total_admin_deduct_amount' => '管理员扣点', + 'total_admin_add_amount' => '管理员加点', + 'total_present_amount' => '赠送金额', + 'total_machine_up_amount' => '机台上点', + 'total_machine_down_amount' => '机台下点', + 'total_lottery_amount' => '彩金奖金', + 'total_profit_amount' => '结算分润', + 'tradeno' => '结算单号', + 'type' => '类型', + 'last_profit_amount' => '上次结算分润(个人)', + 'adjust_amount' => '结算调整金额', + 'actual_amount' => '实际到账金额', + 'user_id' => '机台下点', + 'user_name' => '结算管理员', + 'created_at' => '结算时间', + 'updated_at' => '更新时间', + ], + 'status' => [ + PromoterProfitRecord::STATUS_UNCOMPLETED => '未结算', + PromoterProfitRecord::STATUS_COMPLETED => '已结算', + ], + 'type' => [ + PromoterProfitSettlementRecord::TYPE_SETTLEMENT => '结算', + PromoterProfitSettlementRecord::TYPE_CLEAR => '清算', + ], + 'player_promoter' => [ + 'phone' => '推广员手机号', + 'uuid' => '推广员UUID' + ], + 'settlement_time_start' => '结算开始时间', + 'settlement_time_end' => '结算结束时间', + 'profit_settlement_info' => '分润数据', + 'settlement_data' => '结算数据', + 'settlement_detail' => '分润报表', + 'channel_settlement_promoter_null' => '没有需要结算的推广员', + 'success' => '推广员结算成功', + 'channel_promotion_closed' => '推广员功能已关闭', + 'channel_closed' => '该渠道已关闭', +]; diff --git a/addons/webman/lang/zh-CN/public_msg.php b/addons/webman/lang/zh-CN/public_msg.php new file mode 100644 index 0000000..603e597 --- /dev/null +++ b/addons/webman/lang/zh-CN/public_msg.php @@ -0,0 +1,12 @@ + '开始日期', + 'date_end' => '结束日期', + 'created_at_start' => '开始时间', + 'created_at_end' => '结束时间', + 'status' => [ + '禁用', + '启用', + ], +]; diff --git a/addons/webman/lang/zh-CN/qrcode.php b/addons/webman/lang/zh-CN/qrcode.php new file mode 100644 index 0000000..da103be --- /dev/null +++ b/addons/webman/lang/zh-CN/qrcode.php @@ -0,0 +1,65 @@ + '二维码', + 'fields' => [ + 'id' => 'ID', + 'batch_id' => '批次ID', + 'verify_code' => '验证码', + 'tag_code' => '标识码', + 'score' => '积分值', + 'scan_user_id' => '扫码人ID', + 'scan_nickname' => '扫码人', + 'brand_id' => '创建人ID', + 'scan_phone' => '扫码人电话', + 'scan_time' => '扫码时间', + 'status' => '状态', + 'created_at' => '创建时间', + 'updated_at' => '更新时间', + 'is_export' =>'导出状态', + ], + 'status' => [ + '作废', + '正常', + '已使用', + '不可用' + ], + 'qrcode_owner' => [ + 'id' => 'ID', + 'name' => '持码人名称', + 'phone' => '持码人手机号', + 'brand_id' => '创建人ID', + 'creator' => '创建人', + 'status' => '状态', + 'created_at' => '创建时间', + 'updated_at' => '更新时间', + ], + 'qrcode_batch' => [ + 'id' => 'ID', + 'batch_code' => '二维码批次码', + 'score' => '面值', + 'total_score' => '总价值', + 'batch_count' => '持码数量', + 'owner_id' => '持码人ID', + 'creator' => '创建人', + 'brand_id' => '创建人ID', + 'status' => '状态', + 'created_at' => '创建时间', + 'updated_at' => '更新时间', + 'batch_count_set' => '持码数量每批次最多200' + ], + 'is_used' => '已扫码数量', + 'is_used_score' => '已扫码价值', + 'is_discard' => '已作废', + 'is_used' => '已扫码数量', + 'surplus' => '剩余数量', + 'export' => '导出', + 'check' => '查看', + 'discard' => '作废', + 'wait' => '导出时请耐心等待', + 'is_export' => [ + '未导出', + '已导出' + ], +]; diff --git a/addons/webman/lang/zh-CN/slider.php b/addons/webman/lang/zh-CN/slider.php new file mode 100644 index 0000000..62a8f39 --- /dev/null +++ b/addons/webman/lang/zh-CN/slider.php @@ -0,0 +1,19 @@ + '轮播图', + 'fields' => [ + 'id' => 'ID', + 'url' => '链接地址', + 'department_id' => '渠道', + 'content' => '内容', + 'picture_url' => '图片', + 'status' => '状态', + 'sort' => '排序', + 'created_at' => '创建时间', + ], + 'url_max_length'=>'链接地址最多200个字符', + 'help' => [ + 'picture_url_size' => '建議圖片尺寸 1080 * 458', + ] +]; diff --git a/addons/webman/lang/zh-CN/system_setting.php b/addons/webman/lang/zh-CN/system_setting.php new file mode 100644 index 0000000..1d66b93 --- /dev/null +++ b/addons/webman/lang/zh-CN/system_setting.php @@ -0,0 +1,30 @@ + '系统配置', + 'fields' => [ + 'register_present' => '注册成功赠送点数', + 'marquee' => '客户端跑马灯', + 'machine_maintain' => '每周机台维护时间段', + 'feature' => '功能', + 'setting' => '配置', + 'status' => '状态', + 'recharge_order_expiration' => '充值订单过期时间', + ], + 'marquee_max_len'=>'跑马灯最多100个字符', + 'week'=> [ + 1 => '星期一', + 2 => '星期二', + 3 => '星期三', + 4 => '星期四', + 5 => '星期五', + 6 => '星期六', + 7 => '星期天', + ], + 'week_str' => '星期', + 'minutes' => '分钟', + 'time_range' => '日期范围', + 'master' => '总配置', + 'not_fount' => '配置未找到', + 'action_success' => '操作成功', +]; diff --git a/addons/webman/lang/zh-CN/validator.php b/addons/webman/lang/zh-CN/validator.php new file mode 100644 index 0000000..e971bd2 --- /dev/null +++ b/addons/webman/lang/zh-CN/validator.php @@ -0,0 +1,23 @@ + '不能为空', + 'email' => '邮箱格式不符', + 'idCard' => '身份证格式不符', + 'url' => '不是有效的URL地址', + 'number' => '必须是数字', + 'integer' => '必须是整数', + 'float' => '必须是浮点数', + 'mobile' => '格式不符', + 'leng' => '长度不符合要求 ', + 'alpha' => '只能是字母', + 'alphaNum' => '只能是字母数字', + 'alphaDash' => '只能是字母、数字和下划线_及破折号-', + 'chs' => '只能是汉字', + 'chsAlpha' => '只能是汉字、字母', + 'chsAlphaNum' => '只能是汉字、字母和数字', + 'chsDash' => '只能是汉字、字母、数字和下划线_及破折号-', + 'max' => '最大只能设置{max}', + 'min' => '最小只能设置{min}', + 'twoDecimal' => '正数小数点最多2位', +]; \ No newline at end of file diff --git a/addons/webman/license b/addons/webman/license new file mode 100644 index 0000000..e69de29 diff --git a/addons/webman/middleware/AuthMiddleware.php b/addons/webman/middleware/AuthMiddleware.php new file mode 100644 index 0000000..9da1a79 --- /dev/null +++ b/addons/webman/middleware/AuthMiddleware.php @@ -0,0 +1,52 @@ +type == AdminDepartment::TYPE_CHANNEL) { + if (!empty($user->department_id)) { + /** @var Channel $channel */ + $channel = Channel::where('department_id', $user->department_id)->first(); + if ($channel->status == 0 || $channel->department->status == 0) { + throw new AuthException('渠道已禁用', 40006); + } + if (!empty($channel->deleted_at) || !empty($channel->department->deleted_at)) { + throw new AuthException('渠道已删除', 40007); + } + } else { + throw new AuthException('账号异常', 40008); + } + } + if ($user->status == 0) { + throw new AuthException('账号已禁用', 40009); + } + } catch (AuthException $exception) { + return response( + json_encode(['message' => $exception->getMessage(), 'code' => $exception->getCode()]), + 401, + ['Content-Type' => 'application/json']); + } + } + return $handler($request); + } +} \ No newline at end of file diff --git a/addons/webman/middleware/LoadLangPack.php b/addons/webman/middleware/LoadLangPack.php new file mode 100644 index 0000000..80d4ae1 --- /dev/null +++ b/addons/webman/middleware/LoadLangPack.php @@ -0,0 +1,24 @@ +webman->config('ui.lang'); + Arr::set($lang,'default',$request->cookie('ex_admin_lang',$lang['default'])); + admin_config(['lang'=>$lang], 'ui'); + Container::getInstance()->translator->setLocale($lang['default']); + Container::getInstance()->translator->load(plugin()->webman->getPath() . DIRECTORY_SEPARATOR . 'lang', 'ex_admin_ui'); + return $handler($request); + } +} diff --git a/addons/webman/middleware/Permission.php b/addons/webman/middleware/Permission.php new file mode 100644 index 0000000..29f1afc --- /dev/null +++ b/addons/webman/middleware/Permission.php @@ -0,0 +1,24 @@ +input('_ajax',$request->method()); + if(!Admin::check($class,$function,$method)){ + return response( + json_encode(['message' => admin_trans('admin.not_access_permission')]), + 405, + ['Content-Type' => 'application/json']); + } + return $handler($request); + } +} diff --git a/addons/webman/middleware/RequestMiddleware.php b/addons/webman/middleware/RequestMiddleware.php new file mode 100644 index 0000000..ca6458d --- /dev/null +++ b/addons/webman/middleware/RequestMiddleware.php @@ -0,0 +1,32 @@ +file() as $key=>$file){ + $files[$key] = new UploadedFile($file->getPathname(),$file->getUploadName(),$file->getUploadMineType(),$file->getUploadErrorCode(),true); + } + $q->initialize($request->get(),$request->all(),[],$request->cookie(),$files,$_SERVER,$request->rawBody()); + $q->server->set('REQUEST_URI',$request->path()); + $q->headers = new HeaderBag($request->header()); + $q->setMethod($request->method()); + }); + + return $handler($request); + } +} \ No newline at end of file diff --git a/addons/webman/model/Activity.php b/addons/webman/model/Activity.php new file mode 100644 index 0000000..ddc0bcb --- /dev/null +++ b/addons/webman/model/Activity.php @@ -0,0 +1,78 @@ + 'department_id']; + + const TYPE_CYCLE = 1; // 周期模式 + const TYPE_CUSTOM = 2; // 自定义模式 + + //数据权限字段 + public function __construct(array $attributes = []) + { + parent::__construct($attributes); + $this->setTable(plugin()->webman->config('database.activity_table')); + } + + /** + * 渠道信息 + * @return BelongsTo + */ + public function channel(): BelongsTo + { + return $this->belongsTo(plugin()->webman->config('database.channel_model'), 'department_id', 'department_id')->withTrashed(); + } + + /** + * 活动内容 + * @return hasMany + */ + public function activity_content(): hasMany + { + return $this->hasMany(plugin()->webman->config('database.activity_content_model'), 'activity_id'); + } + + /** + * 充值配置 + * @return BelongsTo + */ + public function channelRechargeSetting(): BelongsTo + { + return $this->belongsTo(plugin()->webman->config('database.channel_recharge_setting_model'), 'recharge_id')->withTrashed(); + } +} diff --git a/addons/webman/model/ActivityContent.php b/addons/webman/model/ActivityContent.php new file mode 100644 index 0000000..6cd498c --- /dev/null +++ b/addons/webman/model/ActivityContent.php @@ -0,0 +1,42 @@ +setTable(plugin()->webman->config('database.activity_content_table')); + } + + /** + * 活动 + * @return BelongsTo + */ + public function activity(): BelongsTo + { + return $this->belongsTo(plugin()->webman->config('database.activity_model'), 'activity_id')->withTrashed(); + } +} diff --git a/addons/webman/model/AdminConfig.php b/addons/webman/model/AdminConfig.php new file mode 100644 index 0000000..44a3f2b --- /dev/null +++ b/addons/webman/model/AdminConfig.php @@ -0,0 +1,19 @@ +setTable(plugin()->webman->config('database.config_table')); + } +} diff --git a/addons/webman/model/AdminDepartment.php b/addons/webman/model/AdminDepartment.php new file mode 100644 index 0000000..49404d9 --- /dev/null +++ b/addons/webman/model/AdminDepartment.php @@ -0,0 +1,66 @@ +setTable(plugin()->webman->config('database.department_table')); + } + + protected static function booted() + { + //创建时间倒序 + static::addGlobalScope('sort', function (Builder $builder) { + $builder->latest(); + }); + } + + protected function getPidAttribute($value) + { + return (int)$value; + } + + /** + * 渠道信息 + * @return HasOne + */ + public function channel(): HasOne + { + return $this->hasOne(plugin()->webman->config('database.channel_model'), 'department_id'); + } +} diff --git a/addons/webman/model/AdminFileAttachment.php b/addons/webman/model/AdminFileAttachment.php new file mode 100644 index 0000000..d67520b --- /dev/null +++ b/addons/webman/model/AdminFileAttachment.php @@ -0,0 +1,21 @@ +setTable(plugin()->webman->config('database.attachment_table')); + } +} diff --git a/addons/webman/model/AdminFileAttachmentCate.php b/addons/webman/model/AdminFileAttachmentCate.php new file mode 100644 index 0000000..4814541 --- /dev/null +++ b/addons/webman/model/AdminFileAttachmentCate.php @@ -0,0 +1,15 @@ +setTable(plugin()->webman->config('database.attachment_cate_table')); + } +} diff --git a/addons/webman/model/AdminMenu.php b/addons/webman/model/AdminMenu.php new file mode 100644 index 0000000..f24fd8b --- /dev/null +++ b/addons/webman/model/AdminMenu.php @@ -0,0 +1,23 @@ +setTable(plugin()->webman->config('database.menu_table')); + } + + protected function getNameAttribute($value) + { + return admin_trans('menu.titles.' . $value, $value); + } +} diff --git a/addons/webman/model/AdminPost.php b/addons/webman/model/AdminPost.php new file mode 100644 index 0000000..b46633b --- /dev/null +++ b/addons/webman/model/AdminPost.php @@ -0,0 +1,43 @@ + 'department_id']; + public function __construct(array $attributes = []) + { + parent::__construct($attributes); + + $this->setTable(plugin()->webman->config('database.post_table')); + } + protected static function booted() + { + //创建时间倒序 + static::addGlobalScope('sort', function (Builder $builder) { + $builder->latest(); + }); + } +} diff --git a/addons/webman/model/AdminRole.php b/addons/webman/model/AdminRole.php new file mode 100644 index 0000000..b434a14 --- /dev/null +++ b/addons/webman/model/AdminRole.php @@ -0,0 +1,50 @@ +setTable(plugin()->webman->config('database.role_table')); + } + /** + * 部门 + * @return \Illuminate\Database\Eloquent\Relations\BelongsToMany + */ + public function department(){ + return $this->belongsToMany(plugin()->webman->config('database.department_model'),plugin()->webman->config('database.role_department_model'), 'role_id', 'department_id'); + } + protected function setCheckStrictlyAttribute($value) + { + $this->attributes['check_strictly'] = (int)$value; + } + protected function getCheckStrictlyAttribute($value) + { + return (boolean)$value; + } +} diff --git a/addons/webman/model/AdminRoleDepartment.php b/addons/webman/model/AdminRoleDepartment.php new file mode 100644 index 0000000..9273125 --- /dev/null +++ b/addons/webman/model/AdminRoleDepartment.php @@ -0,0 +1,14 @@ +setTable(plugin()->webman->config('database.role_department_table')); + } +} diff --git a/addons/webman/model/AdminRoleMenu.php b/addons/webman/model/AdminRoleMenu.php new file mode 100644 index 0000000..a55ee88 --- /dev/null +++ b/addons/webman/model/AdminRoleMenu.php @@ -0,0 +1,14 @@ +setTable(plugin()->webman->config('database.role_menu_table')); + } +} diff --git a/addons/webman/model/AdminRolePermission.php b/addons/webman/model/AdminRolePermission.php new file mode 100644 index 0000000..312dbda --- /dev/null +++ b/addons/webman/model/AdminRolePermission.php @@ -0,0 +1,14 @@ +setTable(plugin()->webman->config('database.role_permission_table')); + } +} diff --git a/addons/webman/model/AdminRoleUsers.php b/addons/webman/model/AdminRoleUsers.php new file mode 100644 index 0000000..9b579ab --- /dev/null +++ b/addons/webman/model/AdminRoleUsers.php @@ -0,0 +1,25 @@ +setTable(plugin()->webman->config('database.role_user_table')); + } +} diff --git a/addons/webman/model/AdminUser.php b/addons/webman/model/AdminUser.php new file mode 100644 index 0000000..144a7ed --- /dev/null +++ b/addons/webman/model/AdminUser.php @@ -0,0 +1,75 @@ +'array']; + protected $fillable = ['username', 'password', 'nickname', 'avatar']; + + use SoftDeletes, HasDateTimeFormatter; + + public function __construct(array $attributes = []) + { + parent::__construct($attributes); + $this->setTable(plugin()->webman->config('database.user_table')); + } + + /** + * 角色 + * @return \Illuminate\Database\Eloquent\Relations\BelongsToMany + */ + public function roles(){ + return $this->belongsToMany(plugin()->webman->config('database.role_model'),plugin()->webman->config('database.role_user_model'), 'user_id', 'role_id'); + } + + /** + * 部门 + * @return \Illuminate\Database\Eloquent\Relations\BelongsTo + */ + public function department(){ + return $this->belongsTo(plugin()->webman->config('database.department_model'), 'department_id'); + } + + /** + * 功能 + * @return \Illuminate\Database\Eloquent\Relations\HasManyThrough + */ + public function permission() + { + return $this->hasManyThrough(plugin()->webman->config('database.role_permission_model'), plugin()->webman->config('database.role_user_model'), 'user_id', 'role_id','id','role_id'); + } + + /** + * 密码哈希加密 + * @param $value + */ + public function setPasswordAttribute($value){ + $this->attributes['password'] = password_hash($value,PASSWORD_DEFAULT); + } +} diff --git a/addons/webman/model/Announcement.php b/addons/webman/model/Announcement.php new file mode 100644 index 0000000..2977cc1 --- /dev/null +++ b/addons/webman/model/Announcement.php @@ -0,0 +1,79 @@ + 'department_id']; + + const PRIORITY_ORDINARY = 1; // 普通 + const PRIORITY_SENIOR = 2; // 高级 + const PRIORITY_EMERGENT = 3; // 紧急 + + const TYPE_BULLETIN = 1; // 公告 + const TYPE_EVEBT = 2; // 事件 + + public function __construct(array $attributes = []) + { + parent::__construct($attributes); + $this->setTable(plugin()->webman->config('database.announcement_table')); + } + + /** + * 游戏类别 + * @return BelongsTo + */ + public function adminUser(): BelongsTo + { + return $this->belongsTo(plugin()->webman->config('database.user_model'), 'admin_id'); + } + + /** + * 渠道信息 + * @return BelongsTo + */ + public function channel(): BelongsTo + { + return $this->belongsTo(plugin()->webman->config('database.channel_model'), 'department_id', 'department_id')->withTrashed(); + } + + /** + * 渠道信息 + * @return hasMany + */ + public function content(): hasMany + { + return $this->hasMany(plugin()->webman->config('database.announcement_content_model'), 'announcement_id'); + } +} diff --git a/addons/webman/model/AnnouncementContent.php b/addons/webman/model/AnnouncementContent.php new file mode 100644 index 0000000..6eb965a --- /dev/null +++ b/addons/webman/model/AnnouncementContent.php @@ -0,0 +1,60 @@ + 'department_id']; + + protected $fillable = [ + 'content', 'title', 'lang', 'announcement_id', 'department_id', + ]; + + public function __construct(array $attributes = []) + { + parent::__construct($attributes); + $this->setTable(plugin()->webman->config('database.announcement_content_table')); + } + + + /** + * 渠道信息 + * @return BelongsTo + */ + public function channel(): BelongsTo + { + return $this->belongsTo(plugin()->webman->config('database.channel_model'), 'department_id', 'department_id')->withTrashed(); + } + + /** + * 渠道信息 + * @return BelongsTo + */ + public function announcement(): BelongsTo + { + return $this->belongsTo(plugin()->webman->config('database.announcement_model'), 'announcement_id')->withTrashed(); + } +} diff --git a/addons/webman/model/ApiErrorLog.php b/addons/webman/model/ApiErrorLog.php new file mode 100644 index 0000000..2bd501e --- /dev/null +++ b/addons/webman/model/ApiErrorLog.php @@ -0,0 +1,28 @@ +setTable(plugin()->webman->config('database.api_error_log_table')); + } +} diff --git a/addons/webman/model/AppVersion.php b/addons/webman/model/AppVersion.php new file mode 100644 index 0000000..72799c8 --- /dev/null +++ b/addons/webman/model/AppVersion.php @@ -0,0 +1,53 @@ +setTable(plugin()->webman->config('database.app_version_table')); + } + + /** + * 渠道信息 + * @return BelongsTo + */ + public function channel(): BelongsTo + { + return $this->belongsTo(plugin()->webman->config('database.channel_model'), 'department_id', 'department_id')->withTrashed(); + } +} diff --git a/addons/webman/model/BankList.php b/addons/webman/model/BankList.php new file mode 100644 index 0000000..9d5b0f1 --- /dev/null +++ b/addons/webman/model/BankList.php @@ -0,0 +1,30 @@ +setTable(plugin()->webman->config('database.bank_list_table')); + } + +} diff --git a/addons/webman/model/Broadcast.php b/addons/webman/model/Broadcast.php new file mode 100644 index 0000000..31c99d9 --- /dev/null +++ b/addons/webman/model/Broadcast.php @@ -0,0 +1,55 @@ +format('Y-m-d H:i:s'); + } + + public function __construct(array $attributes = []) + { + parent::__construct($attributes); + } + +} diff --git a/addons/webman/model/Channel.php b/addons/webman/model/Channel.php new file mode 100644 index 0000000..2d6246b --- /dev/null +++ b/addons/webman/model/Channel.php @@ -0,0 +1,126 @@ +setTable(plugin()->webman->config('database.channel_table')); + } + + /** + * 部门 + * @return BelongsTo + */ + public function department(): BelongsTo + { + return $this->belongsTo(plugin()->webman->config('database.department_model'), 'department_id')->withTrashed(); + } + + /** + * 管理员用户 + * @return BelongsTo + */ + public function user(): BelongsTo + { + return $this->belongsTo(plugin()->webman->config('database.user_model'), 'user_id')->withTrashed(); + } + + /** + * 管理员用户 + * @return hasMany + */ + public function player(): hasMany + { + return $this->hasMany(plugin()->webman->config('database.player_model'), 'department_id', 'department_id'); + } + + /** + * 管理员用户 + * @return hasManyThrough + */ + public function wallet(): hasManyThrough + { + return $this->hasManyThrough(plugin()->webman->config('database.player_platform_cash_model'), plugin()->webman->config('database.player_model'), 'department_id', 'player_id', 'department_id', 'id'); + } + + /** + * 模型的 "booted" 方法 + * + * @return void + */ + protected static function booted() + { + static::created(function (Channel $channel) { + $cacheKey = "channel_" . $channel->site_id; + Cache::set($cacheKey, $channel->toArray()); + // 创建渠道系统配置 + SystemSetting::insert([ + [ + 'department_id' => $channel->department_id, + 'feature' => 'marquee', + 'created_at' => date('Y-m-d H:i:s'), + ], + [ + 'department_id' => $channel->department_id, + 'feature' => 'machine_marquee', + 'created_at' => date('Y-m-d H:i:s'), + ] + ]); + }); + static::deleted(function (Channel $channel) { + $cacheKey = "channel_" . $channel->site_id; + Cache::delete($cacheKey); + }); + static::updated(function (Channel $channel) { + $cacheKey = "channel_" . $channel->site_id; + Cache::set($cacheKey, $channel->toArray()); + }); + } +} diff --git a/addons/webman/model/ChannelFinancialRecord.php b/addons/webman/model/ChannelFinancialRecord.php new file mode 100644 index 0000000..c735cbc --- /dev/null +++ b/addons/webman/model/ChannelFinancialRecord.php @@ -0,0 +1,58 @@ + 'department_id']; + + CONST ACTION_RECHARGE_PASS = 1; // 充值审核通过 + CONST ACTION_RECHARGE_REJECT = 2; // 充值审核拒绝 + CONST ACTION_WITHDRAW_PASS = 3; // 提现审核通过 + CONST ACTION_WITHDRAW_REJECT = 4; // 提现审核拒绝 + CONST ACTION_WITHDRAW_PAYMENT = 5; // 提现打款 + CONST ACTION_RECHARGE_SETTING_ADD = 6; // 添加充值配置 + CONST ACTION_RECHARGE_SETTING_STOP = 7; // 停用充值配置 + CONST ACTION_RECHARGE_SETTING_ENABLE = 8; // 启用充值配置 + CONST ACTION_RECHARGE_SETTING_EDIT = 9; // 修改充值配置 + + public function __construct(array $attributes = []) + { + parent::__construct($attributes); + $this->setTable(plugin()->webman->config('database.channel_financial_record_table')); + } + + /** + * 玩家信息 + * @return BelongsTo + */ + public function player(): BelongsTo + { + return $this->belongsTo(plugin()->webman->config('database.player_model'),'player_id'); + } +} diff --git a/addons/webman/model/ChannelRechargeMethod.php b/addons/webman/model/ChannelRechargeMethod.php new file mode 100644 index 0000000..931e7c9 --- /dev/null +++ b/addons/webman/model/ChannelRechargeMethod.php @@ -0,0 +1,84 @@ + 'department_id']; + + public function __construct(array $attributes = []) + { + parent::__construct($attributes); + + $this->setTable(plugin()->webman->config('database.channel_recharge_method_table')); + } + + /** + * 部门 + * @return BelongsTo + */ + public function department(): BelongsTo + { + return $this->belongsTo(plugin()->webman->config('database.department_model'), 'department_id')->withTrashed(); + } + + /** + * 管理员用户 + * @return BelongsTo + */ + public function user(): BelongsTo + { + return $this->belongsTo(plugin()->webman->config('database.user_model'), 'user_id')->withTrashed(); + } + + /** + * 多语言 + * @return hasMany + */ + public function methodLang(): hasMany + { + return $this->hasMany(plugin()->webman->config('database.channel_recharge_method_lang_model'), 'method_id'); + } + + /** + * 充值配置 + * @return hasMany + */ + public function channelRechargeSetting(): hasMany + { + return $this->hasMany(plugin()->webman->config('database.channel_recharge_setting_model'), 'method_id'); + } +} diff --git a/addons/webman/model/ChannelRechargeMethodLang.php b/addons/webman/model/ChannelRechargeMethodLang.php new file mode 100644 index 0000000..49c6773 --- /dev/null +++ b/addons/webman/model/ChannelRechargeMethodLang.php @@ -0,0 +1,40 @@ +setTable(plugin()->webman->config('database.channel_recharge_method_lang_table')); + } + + /** + * 充值方式 + * @return BelongsTo + */ + public function rechargeMethod(): BelongsTo + { + return $this->belongsTo(plugin()->webman->config('database.channel_recharge_method_model'), 'method_id')->withTrashed(); + } +} diff --git a/addons/webman/model/ChannelRechargeSetting.php b/addons/webman/model/ChannelRechargeSetting.php new file mode 100644 index 0000000..ae57f4c --- /dev/null +++ b/addons/webman/model/ChannelRechargeSetting.php @@ -0,0 +1,76 @@ + 'department_id']; + + public function __construct(array $attributes = []) + { + parent::__construct($attributes); + + $this->setTable(plugin()->webman->config('database.channel_recharge_setting_table')); + } + + /** + * 部门 + * @return BelongsTo + */ + public function department(): BelongsTo + { + return $this->belongsTo(plugin()->webman->config('database.department_model'), 'department_id')->withTrashed(); + } + + /** + * 管理员用户 + * @return BelongsTo + */ + public function user(): BelongsTo + { + return $this->belongsTo(plugin()->webman->config('database.user_model'), 'user_id')->withTrashed(); + } + + /** + * 充值账户 + * @return BelongsTo + */ + public function channel_recharge_method(): BelongsTo + { + return $this->belongsTo(plugin()->webman->config('database.channel_recharge_method_model'), 'method_id')->withTrashed(); + } +} diff --git a/addons/webman/model/CommissionRecord.php b/addons/webman/model/CommissionRecord.php new file mode 100644 index 0000000..5bbe4ed --- /dev/null +++ b/addons/webman/model/CommissionRecord.php @@ -0,0 +1,72 @@ + 'department_id']; + //简写省略id,默认后台用户表的id + + public function __construct(array $attributes = []) + { + parent::__construct($attributes); + $this->setTable(plugin()->webman->config('database.commission_record_table')); + } + + /** + * 渠道信息 + * @return BelongsTo + */ + public function channel(): BelongsTo + { + return $this->belongsTo(plugin()->webman->config('database.channel_model'), 'department_id', 'department_id')->withTrashed(); + } + + /** + * 玩家信息 + * @return BelongsTo + */ + public function player(): BelongsTo + { + return $this->belongsTo(plugin()->webman->config('database.player_model'), 'player_id'); + } + + /** + * 分润玩家信息 + * @return BelongsTo + */ + public function parentPlayer(): BelongsTo + { + return $this->belongsTo(plugin()->webman->config('database.player_model'), 'parent_player_id'); + } +} diff --git a/addons/webman/model/Currency.php b/addons/webman/model/Currency.php new file mode 100644 index 0000000..b593d55 --- /dev/null +++ b/addons/webman/model/Currency.php @@ -0,0 +1,52 @@ +setTable(plugin()->webman->config('database.currency_table')); + } + + /** + * 游戏类别 + * @return BelongsTo + */ + public function admin_user(): BelongsTo + { + return $this->belongsTo(plugin()->webman->config('database.user_model'), 'admin_id'); + } + + /** + * 比值 + * + * @param $value + * @return float + */ + public function getRatioAttribute($value): float + { + return floatval($value); + } +} diff --git a/addons/webman/model/DrawRecord.php b/addons/webman/model/DrawRecord.php new file mode 100644 index 0000000..ca4f274 --- /dev/null +++ b/addons/webman/model/DrawRecord.php @@ -0,0 +1,71 @@ + 'department_id']; + protected $table = 'draw_records'; + public $timestamps = false; + protected $fillable = ['uid', 'prize_id', 'prize_type', 'prize_name', 'prize_pic', 'game_id', 'game_type', 'department_id', 'draw_time', 'ip', 'consume']; + + /** + * 奖品信息 + * @return BelongsTo + */ + public function prize(): BelongsTo + { + return $this->belongsTo(plugin()->webman->config('database.prize_model'), 'prize_id', 'id'); + } + + /** + * 玩家信息 + * @return BelongsTo + */ + public function player(): BelongsTo + { + return $this->belongsTo(plugin()->webman->config('database.player_model'), 'uid')->withTrashed(); + } + + /** + * 渠道信息 + * @return BelongsTo + */ + public function channel(): BelongsTo + { + return $this->belongsTo(plugin()->webman->config('database.channel_model'), 'department_id', 'department_id')->withTrashed(); + } + + +} \ No newline at end of file diff --git a/addons/webman/model/ExternalApp.php b/addons/webman/model/ExternalApp.php new file mode 100644 index 0000000..3d1736b --- /dev/null +++ b/addons/webman/model/ExternalApp.php @@ -0,0 +1,34 @@ +setTable(plugin()->webman->config('database.external_app_table')); + } +} diff --git a/addons/webman/model/Game.php b/addons/webman/model/Game.php new file mode 100644 index 0000000..c2edfdd --- /dev/null +++ b/addons/webman/model/Game.php @@ -0,0 +1,62 @@ +setTable(plugin()->webman->config('database.game_table')); + } + + /** + * 平台信息 + * @return BelongsTo + */ + public function gamePlatform(): BelongsTo + { + return $this->belongsTo(plugin()->webman->config('database.game_platform_model'), 'platform_id')->withTrashed(); + } + +} diff --git a/addons/webman/model/GamePlatform.php b/addons/webman/model/GamePlatform.php new file mode 100644 index 0000000..9935649 --- /dev/null +++ b/addons/webman/model/GamePlatform.php @@ -0,0 +1,32 @@ +setTable(plugin()->webman->config('database.game_platform_table')); + } +} diff --git a/addons/webman/model/GameType.php b/addons/webman/model/GameType.php new file mode 100644 index 0000000..7220eac --- /dev/null +++ b/addons/webman/model/GameType.php @@ -0,0 +1,36 @@ +setTable(plugin()->webman->config('database.game_type_table')); + } + +} diff --git a/addons/webman/model/Notice.php b/addons/webman/model/Notice.php new file mode 100644 index 0000000..c1e53fa --- /dev/null +++ b/addons/webman/model/Notice.php @@ -0,0 +1,116 @@ + 'department_id']; + + const TYPE_SYSTEM = 1; // 系统 + const TYPE_EXAMINE_RECHARGE = 2; // 充值审核 + const TYPE_EXAMINE_WITHDRAW = 3; // 提现审核 + const TYPE_PAY = 4; // 三方充值 + const TYPE_WITHDRAW = 5; // 三方提现 + + const RECEIVER_PLAYER = 1; // 玩家 + const RECEIVER_ADMIN = 2; // 总站 + const RECEIVER_DEPARTMENT = 3; // 子站 + + /** + * 时间转换 + * @param DateTimeInterface $date + * @return string + */ + protected function serializeDate(DateTimeInterface $date): string + { + return $date->format('Y-m-d H:i:s'); + } + + public function __construct(array $attributes = []) + { + parent::__construct($attributes); + $this->setTable(plugin()->webman->config('database.notice_table')); + } + + /** + * 游戏类别 + * @return BelongsTo + */ + public function adminUser(): BelongsTo + { + return $this->belongsTo(plugin()->webman->config('database.user_model'), 'admin_id'); + } + + /** + * 渠道信息 + * @return BelongsTo + */ + public function channel(): BelongsTo + { + return $this->belongsTo(plugin()->webman->config('database.channel_model'), 'department_id', 'department_id')->withTrashed(); + } + + /** + * 玩家信息 + * @return BelongsTo + */ + public function player(): BelongsTo + { + return $this->belongsTo(plugin()->webman->config('database.player_model'), 'player_id', 'department_id')->withTrashed(); + } + + /** + * 模型的 "booted" 方法 + * + * @return void + */ + protected static function booted() + { + static::created(function (Notice $notice) { + if ($notice->is_private == 1) { + sendSocketMessage('player-' . $notice->player_id, [ + 'msg_type' => 'player_notice_num', + 'notice_num' => Notice::query() + ->where('player_id', $notice->player_id) + ->where('receiver', Notice::RECEIVER_PLAYER) + ->where('is_private', 1) + ->where('status', 0) + ->count('*'), + ]); + } + }); + } +} diff --git a/addons/webman/model/PhoneSmsLog.php b/addons/webman/model/PhoneSmsLog.php new file mode 100644 index 0000000..ebb9ee4 --- /dev/null +++ b/addons/webman/model/PhoneSmsLog.php @@ -0,0 +1,46 @@ +setTable(plugin()->webman->config('database.phone_sms_log_table')); + } +} diff --git a/addons/webman/model/PlayGameRecord.php b/addons/webman/model/PlayGameRecord.php new file mode 100644 index 0000000..d334672 --- /dev/null +++ b/addons/webman/model/PlayGameRecord.php @@ -0,0 +1,75 @@ + 'department_id']; + public function __construct(array $attributes = []) + { + parent::__construct($attributes); + $this->setTable(plugin()->webman->config('database.play_game_record_table')); + } + + /** + * 渠道信息 + * @return BelongsTo + */ + public function channel(): BelongsTo + { + return $this->belongsTo(plugin()->webman->config('database.channel_model'), 'department_id', 'department_id')->withTrashed(); + } + + /** + * 玩家信息 + * @return BelongsTo + */ + public function player(): BelongsTo + { + return $this->belongsTo(plugin()->webman->config('database.player_model'), 'player_id')->withTrashed(); + } + + /** + * 平台信息 + * @return BelongsTo + */ + public function gamePlatform(): BelongsTo + { + return $this->belongsTo(plugin()->webman->config('database.game_platform_model'), 'platform_id')->withTrashed(); + } +} diff --git a/addons/webman/model/Player.php b/addons/webman/model/Player.php new file mode 100644 index 0000000..db3151d --- /dev/null +++ b/addons/webman/model/Player.php @@ -0,0 +1,282 @@ + 'department_id']; + //简写省略id,默认后台用户表的id + + /** + * 时间转换 + * @param DateTimeInterface $date + * @return string + */ + protected function serializeDate(DateTimeInterface $date): string + { + return $date->format('Y-m-d H:i:s'); + } + + public function __construct(array $attributes = []) + { + parent::__construct($attributes); + $this->setTable(plugin()->webman->config('database.player_table')); + } + + public function wallet(): HasOne + { + return $this->hasOne(plugin()->webman->config('database.player_platform_cash_model'))->where('platform_id', PlayerPlatformCash::PLATFORM_SELF); + } + + public function player_level(): BelongsTo + { + return $this->belongsTo(plugin()->webman->config('database.player_level_model'), 'level', 'level'); + } + + /** + * 玩家扩展信息 + * @return HasOne + */ + public function player_extend(): HasOne + { + return $this->hasOne(plugin()->webman->config('database.player_extend_model'), 'player_id'); + } + + public function player_promoter(): HasOne + { + return $this->hasOne(PlayerPromoter::class, 'player_id'); + } + + /** + * 渠道信息 + * @return BelongsTo + */ + public function channel(): BelongsTo + { + return $this->belongsTo(plugin()->webman->config('database.channel_model'), 'department_id', 'department_id')->withTrashed(); + } + + /** + * 提现信息 + * @return hasMany + */ + public function player_withdraw_record(): hasMany + { + return $this->hasMany(plugin()->webman->config('database.player_withdraw_record_model'), 'player_id'); + } + + /** + * 提现信息 + * @return hasMany + */ + public function player_recharge_record(): hasMany + { + return $this->hasMany(plugin()->webman->config('database.player_recharge_record_model'), 'player_id'); + } + + /** + * 推荐玩家 + * @return BelongsTo + */ + public function recommend_player(): BelongsTo + { + return $this->belongsTo(plugin()->webman->config('database.player_model'), 'recommend_id'); + } + + public function the_last_player_login_record(): HasOne + { + return $this->hasOne(PlayerLoginRecord::class, 'player_id')->latest(); + } + + public function player_register_record(): HasOne + { + return $this->hasOne(PlayerRegisterRecord::class, 'player_id'); + } + + /** + * 密码哈希加密 + * @param $value + */ + public function setPasswordAttribute($value) + { + $this->attributes['password'] = password_hash($value, PASSWORD_DEFAULT); + } + + /** + * 支付密码哈希加密 + * @param $value + */ + public function setPlayPasswordAttribute($value) + { + $this->attributes['play_password'] = password_hash($value, PASSWORD_DEFAULT); + } + + /** + * 获取器 - 标签id + * @param $value + * @return false|string[] + */ + public function getPlayerTagAttribute($value) + { + return array_filter(explode(',', $value)); + } + + /** + * 修改器 - 标签id + * @param $value + * @return string + */ + public function setPlayerTagAttribute($value): string + { + $idsStr = json_encode($value); + $cacheKey = md5("player_tag_options_ids_$idsStr"); + Cache::delete($cacheKey); + + return $this->attributes['player_tag'] = implode(',', $value); + } + + /** + * 获取器 - 玩家头像 + * @param $value + * @return false|string[] + */ + public function getAvatarAttribute($value) + { + return is_numeric($value) ? config('def_avatar.' . $value) : $value; + } + + /** + * 玩家平台账号 + * @return hasMany + */ + public function playerGamePlatform(): hasMany + { + return $this->hasMany(plugin()->webman->config('database.player_game_platform_model'), 'player_id'); + } + + /** + * 所属推广员 + * @return BelongsTo + */ + public function recommend_promoter(): BelongsTo + { + return $this->belongsTo(plugin()->webman->config('database.player_promoter_model'), 'recommend_id', 'player_id'); + } + + /** + * 模型的 "booted" 方法 + * + * @return void + */ + protected static function booted() + { + static::updated(function (Player $player) { + $columns = [ + 'type', + 'status', + 'status_withdraw', + 'status_open_coins', + 'status_open_coins', + 'name', + 'phone', + 'country_code', + 'play_password', + 'password', + 'flag', + 'avatar', + 'player_tag', + ]; + if ($player->wasChanged($columns) && !empty(Admin::user())) { + $orData = $player->getOriginal(); + $changeData = $player->getChanges(); + $orDataArr = []; + $newDataArr = []; + foreach ($changeData as $key => $item) { + if (empty($item) == empty($orData[$key])) { + continue; + } + if ($key == 'updated_at') { + $orData[$key] = date('Y-m-d H:i:s', strtotime($orData[$key])); + } + $orDataArr[$key] = $orData[$key]; + $newDataArr[$key] = $item; + } + if (!empty($newDataArr)) { + $playerEditLog = new PlayerEditLog(); + $playerEditLog->player_id = $player->id; + $playerEditLog->department_id = $player->department_id; + $playerEditLog->origin_data = json_encode($orDataArr); + $playerEditLog->new_data = json_encode($newDataArr); + $playerEditLog->user_id = Admin::id() ?? 0; + $playerEditLog->user_name = !empty(Admin::user()) ? Admin::user()->username : ''; + $playerEditLog->save(); + } + } + }); + } +} diff --git a/addons/webman/model/PlayerBank.php b/addons/webman/model/PlayerBank.php new file mode 100644 index 0000000..437e46f --- /dev/null +++ b/addons/webman/model/PlayerBank.php @@ -0,0 +1,88 @@ +setTable(plugin()->webman->config('database.player_bank_table')); + } + + /** + * 玩家信息 + * @return BelongsTo + */ + public function player(): BelongsTo + { + return $this->belongsTo(plugin()->webman->config('database.player_model'), 'player_id')->withTrashed(); + } + + /** + * 模型事件 - 删除前 + */ + protected static function boot() + { + parent::boot(); + + static::deleting(function (PlayerBank $playerBank) { + if (!empty($playerBank->qr_code)) { + $imagePath = self::extractImagePathFromUrl($playerBank->qr_code); + + if ($imagePath) { + deleteToGCS($imagePath); + } + } + }); + } + + /** + * 从 URL 中提取图片路径 + */ + private static function extractImagePathFromUrl($url): string + { + if (filter_var($url, FILTER_VALIDATE_URL)) { + $parsedUrl = parse_url($url); + if (isset($parsedUrl['path'])) { + $path = $parsedUrl['path']; + + // 移除可能的存储桶名称 + $bucketName = env('GOOGLE_CLOUD_STORAGE_BUCKET', 'yjbfile'); + $bucketPrefix = '/' . $bucketName . '/'; + + if (str_starts_with($path, $bucketPrefix)) { + return substr($path, strlen($bucketPrefix)); + } + + return ltrim($path, '/'); + } + } + + return $url; + } +} diff --git a/addons/webman/model/PlayerBankruptcyRecord.php b/addons/webman/model/PlayerBankruptcyRecord.php new file mode 100644 index 0000000..9f49967 --- /dev/null +++ b/addons/webman/model/PlayerBankruptcyRecord.php @@ -0,0 +1,48 @@ +setTable(plugin()->webman->config('database.player_bankruptcy_record_table')); + } // 減少 + + /** + * 玩家信息 + * @return BelongsTo + */ + public function player(): BelongsTo + { + return $this->belongsTo(plugin()->webman->config('database.player_model'), 'player_id')->withTrashed(); + } + + /** + * 渠道信息 + * @return BelongsTo + */ + public function channel(): BelongsTo + { + return $this->belongsTo(plugin()->webman->config('database.channel_model'), 'department_id', 'department_id')->withTrashed(); + } +} diff --git a/addons/webman/model/PlayerChipRecord.php b/addons/webman/model/PlayerChipRecord.php new file mode 100644 index 0000000..c5d93cf --- /dev/null +++ b/addons/webman/model/PlayerChipRecord.php @@ -0,0 +1,84 @@ + 'department_id']; + const TYPE_INC = 1; // 增加 + const TYPE_DEC = 2; // 减少 + + const RECORD_TYPE_SIGN = 1; // 签到 + const RECORD_TYPE_RECHARGE = 2; // 充值 + const RECORD_TYPE_ACTIVITY = 3; // 活动 + const RECORD_TYPE_GAME = 4; // 游戏 + const RECORD_TYPE_COMMISSION = 5; // 分润 + const RECORD_TYPE_BANKRUPTCY = 6; // 破产 + const RECORD_TYPE_BET_REBATE = 7; // 打码返水 + const RECORD_TYPE_FIRST_RECHARGE_REWARD = 8; // 首充奖励 + + public function __construct(array $attributes = []) + { + parent::__construct($attributes); + $this->setTable(plugin()->webman->config('database.player_chip_record_table')); + } // 減少 + + /** + * 玩家信息 + * @return BelongsTo + */ + public function player(): BelongsTo + { + return $this->belongsTo(plugin()->webman->config('database.player_model'), 'player_id')->withTrashed(); + } + + /** + * 渠道信息 + * @return BelongsTo + */ + public function channel(): BelongsTo + { + return $this->belongsTo(plugin()->webman->config('database.channel_model'), 'department_id', 'department_id')->withTrashed(); + } + + /** + * 来源 + * @return MorphTo + */ + public function source(): MorphTo + { + return $this->morphTo(); + } +} diff --git a/addons/webman/model/PlayerDeliveryRecord.php b/addons/webman/model/PlayerDeliveryRecord.php new file mode 100644 index 0000000..bfb48f5 --- /dev/null +++ b/addons/webman/model/PlayerDeliveryRecord.php @@ -0,0 +1,133 @@ + 'department_id']; + + const TYPE_MODIFIED_AMOUNT_ADD = 1; // (管理后台)加点 + const TYPE_RECHARGE = 2; // 充值 + const TYPE_WITHDRAWAL = 3; // 提现 + const TYPE_MODIFIED_AMOUNT_DEDUCT = 4; // (管理后台)扣点 + const TYPE_WITHDRAWAL_BACK = 5; // 提现失败返还 + const TYPE_REGISTER_PRESENT = 6; // 注册赠送 + const TYPE_COMMISSION = 7; // 返佣 + const TYPE_SIGN = 8; // 签到 + const TYPE_GAME_OUT = 9; // 游戏转出 + const TYPE_GAME_IN = 10; // 游戏转入 + const TYPE_BET_REBATE = 11; // 打码量返水 + const TYPE_DAMAGE_REBATE = 12; // 客损返水 + const TYPE_RECHARGE_REWARD = 13; // 首充值奖励 + const TYPE_PROFIT = 14; // 推广员分润 + const TYPE_CANCELTRANSFER = 15; // 管理员取消转账 + + protected $fillable = [ + 'player_id', + 'target', + 'target_id', + 'department_id', + 'type', + 'source', + 'amount', + 'amount_after', + 'amount_before', + 'amount_platform_before', + 'amount_platform_after', + 'tradeno', + 'remark', + 'operator_audit', + 'operator_withdraw', + 'created_at', + 'updated_at', + ]; + + /** + * 时间转换 + * @param DateTimeInterface $date + * @return string + */ + protected function serializeDate(DateTimeInterface $date): string + { + return $date->format('Y-m-d H:i:s'); + } + + public function __construct(array $attributes = []) + { + parent::__construct($attributes); + $this->setTable(plugin()->webman->config('database.player_delivery_record_table')); + } + + /** + * 玩家信息 + * @return BelongsTo + */ + public function player(): BelongsTo + { + return $this->belongsTo(plugin()->webman->config('database.player_model'), 'player_id')->withTrashed(); + } + + /** + * 金额 + * + * @param $value + * @return float + */ + public function getAmountAttribute($value): float + { + return floatval($value); + } + + /** + * 異動前金額 + * + * @param $value + * @return float + */ + public function getAmountBeforeAttribute($value): float + { + return floatval($value); + } + + /** + * 異動后金額 + * + * @param $value + * @return float + */ + public function getAmountAfterAttribute($value): float + { + return floatval($value); + } +} diff --git a/addons/webman/model/PlayerEditLog.php b/addons/webman/model/PlayerEditLog.php new file mode 100644 index 0000000..924cc22 --- /dev/null +++ b/addons/webman/model/PlayerEditLog.php @@ -0,0 +1,67 @@ + 'department_id']; + + public function __construct(array $attributes = []) + { + parent::__construct($attributes); + $this->setTable(plugin()->webman->config('database.player_edit_log_table')); + } + + /** + * 玩家信息 + * @return BelongsTo + */ + public function player(): BelongsTo + { + return $this->BelongsTo(plugin()->webman->config('database.player_model'), 'player_id')->withTrashed(); + } + + /** + * 渠道信息 + * @return BelongsTo + */ + public function channel(): BelongsTo + { + return $this->belongsTo(plugin()->webman->config('database.channel_model'), 'department_id', 'department_id')->withTrashed(); + } + + /** + * 管理员用户 + * @return BelongsTo + */ + public function user(): BelongsTo + { + return $this->belongsTo(plugin()->webman->config('database.user_model'), 'user_id')->withTrashed(); + } +} diff --git a/addons/webman/model/PlayerExtend.php b/addons/webman/model/PlayerExtend.php new file mode 100644 index 0000000..c81c354 --- /dev/null +++ b/addons/webman/model/PlayerExtend.php @@ -0,0 +1,186 @@ +setTable(plugin()->webman->config('database.player_extend_table')); + } + + /** + * 玩家信息 + * @return BelongsTo + */ + public function player(): BelongsTo + { + return $this->belongsTo(plugin()->webman->config('database.player_model'), 'player_id')->withTrashed(); + } + + /** + * 总充值点数 + * + * @param $value + * @return float + */ + public function getRechargeAmountAttribute($value): float + { + return floatval($value); + } + + /** + * 总提现金额 + * + * @param $value + * @return float + */ + public function getWithdrawAmountAttribute($value): float + { + return floatval($value); + } + + /** + * 总提转入金额 + * + * @param $value + * @return float + */ + public function getPresentInAmountAttribute($value): float + { + return floatval($value); + } + + /** + * 总提转出金额 + * + * @param $value + * @return float + */ + public function getPresentOutAmountAttribute($value): float + { + return floatval($value); + } + + /** + * 第三方总充值点数 + * + * @param $value + * @return float + */ + public function getThirdRechargeAmountAttribute($value): float + { + return floatval($value); + } + + /** + * 第三方总提现金额 + * + * @param $value + * @return float + */ + public function getThirdWithdrawAmountAttribute($value): float + { + return floatval($value); + } + + /** + * 币商充值总金额 + * + * @param $value + * @return float + */ + public function getCoinRechargeAmountAttribute($value): float + { + return floatval($value); + } + + protected static function booted() + { + static::updated(function (PlayerExtend $playerExtend) { + $columns = [ + 'sex', + 'email', + 'qq', + 'telegram', + 'birthday', + 'id_number', + 'address', + 'wechat', + 'whatsapp', + 'facebook', + 'line', + 'remark', + ]; + if ($playerExtend->wasChanged($columns) && !empty(Admin::user())) { + $orData = $playerExtend->getOriginal(); + $changeData = $playerExtend->getChanges(); + $orDataArr = []; + $newDataArr = []; + foreach ($changeData as $key => $item) { + if (empty($item) == empty($orData[$key])) { + continue; + } + if ($key == 'updated_at') { + $orData[$key] = date('Y-m-d H:i:s', strtotime($orData[$key])); + } + $orDataArr[$key] = $orData[$key]; + $newDataArr[$key] = $item; + } + if (!empty($newDataArr)) { + $playerEditLog = new PlayerEditLog(); + $playerEditLog->player_id = $playerExtend->player_id; + $playerEditLog->department_id = $playerExtend->player->department_id; + $playerEditLog->origin_data = json_encode($orDataArr); + $playerEditLog->new_data = json_encode($newDataArr); + $playerEditLog->user_id = Admin::id() ?? 0; + $playerEditLog->user_name = !empty(Admin::user()) ? Admin::user()->username : ''; + $playerEditLog->save(); + } + } + }); + } +} diff --git a/addons/webman/model/PlayerGamePlatform.php b/addons/webman/model/PlayerGamePlatform.php new file mode 100644 index 0000000..8c92456 --- /dev/null +++ b/addons/webman/model/PlayerGamePlatform.php @@ -0,0 +1,53 @@ +setTable(plugin()->webman->config('database.player_game_platform_table')); + } + + /** + * 游戏平台 + * @return BelongsTo + */ + public function gamePlatform(): BelongsTo + { + return $this->belongsTo(plugin()->webman->config('database.game_platform_model'), 'platform_id'); + } + + /** + * 玩家信息 + * @return BelongsTo + */ + public function player(): BelongsTo + { + return $this->belongsTo(plugin()->webman->config('database.player_model'), 'player_id'); + } +} diff --git a/addons/webman/model/PlayerGameRecord.php b/addons/webman/model/PlayerGameRecord.php new file mode 100644 index 0000000..c94bda6 --- /dev/null +++ b/addons/webman/model/PlayerGameRecord.php @@ -0,0 +1,121 @@ +setTable(plugin()->webman->config('database.player_game_record_table')); + } + + /** + * 上分 + * + * @param $value + * @return float + */ + public function getOpenPointAttribute($value): float + { + return floatval($value); + } + + /** + * 下分 + * + * @param $value + * @return float + */ + public function getWashPointAttribute($value): float + { + return floatval($value); + } + + /** + * 余点数 + * + * @param $value + * @return float + */ + public function getAfterGameAmountAttribute($value): float + { + return floatval($value); + } + + /** + * 机台信息 + * @return BelongsTo + */ + public function machine(): BelongsTo + { + return $this->belongsTo(plugin()->webman->config('database.machine_model'), 'machine_id')->withTrashed(); + } + + /** + * 玩家信息 + * @return BelongsTo + */ + public function player(): BelongsTo + { + return $this->belongsTo(plugin()->webman->config('database.player_model'), 'player_id')->withTrashed(); + } + + /** + * 模型的 "booted" 方法 + * + * @return void + */ + protected static function booted() + { + if (config('app.profit', 'task') == 'event') { + static::updated(function (PlayerGameRecord $playerGameRecord) { + $oldStatus = $playerGameRecord->getOriginal('status'); // 原始值 + $newStatus = $playerGameRecord->status; + // 游戏结束并且产生盈亏后计算分润 + if ($oldStatus != $newStatus && $newStatus == PlayerGameRecord::STATUS_END && $playerGameRecord->open_point != $playerGameRecord->wash_point) { + Event::emit('promotion.playerGame', $playerGameRecord); + } + }); + } + } + + public function last_player_game_log(): HasOne + { + return $this->hasOne(PlayerGameLog::class, 'game_record_id')->latest(); + } +} diff --git a/addons/webman/model/PlayerLevel.php b/addons/webman/model/PlayerLevel.php new file mode 100644 index 0000000..b96b9d5 --- /dev/null +++ b/addons/webman/model/PlayerLevel.php @@ -0,0 +1,31 @@ +setTable(plugin()->webman->config('database.player_level_table')); + } +} diff --git a/addons/webman/model/PlayerLoginRecord.php b/addons/webman/model/PlayerLoginRecord.php new file mode 100644 index 0000000..0fb0278 --- /dev/null +++ b/addons/webman/model/PlayerLoginRecord.php @@ -0,0 +1,56 @@ + 'department_id']; + + protected $fillable = [ + 'player_id', + 'login_domain', + 'ip', + 'country_name', + 'city_name', + 'remark', + 'department_id', + ]; + + public function __construct(array $attributes = []) + { + parent::__construct($attributes); + $this->setTable(plugin()->webman->config('database.player_login_record_table')); + } + + /** + * 玩家信息 + * @return BelongsTo + */ + public function player(): BelongsTo + { + return $this->belongsTo(plugin()->webman->config('database.player_model'), 'player_id')->withTrashed(); + } +} diff --git a/addons/webman/model/PlayerLotteryRecord.php b/addons/webman/model/PlayerLotteryRecord.php new file mode 100644 index 0000000..c56e168 --- /dev/null +++ b/addons/webman/model/PlayerLotteryRecord.php @@ -0,0 +1,144 @@ + 'department_id']; + + const STATUS_UNREVIEWED = 0; // 未审核 + const STATUS_REJECT = 1; // 未通过 + const STATUS_PASS = 2; // 通过 + const STATUS_COMPLETE = 3; // 已完成 + + public function __construct(array $attributes = []) + { + parent::__construct($attributes); + $this->setTable(plugin()->webman->config('database.player_lottery_record_table')); + } + + /** + * 渠道信息 + * @return BelongsTo + */ + public function channel(): BelongsTo + { + return $this->belongsTo(plugin()->webman->config('database.channel_model'), 'department_id', 'department_id')->withTrashed(); + } + + /** + * 玩家信息 + * @return BelongsTo + */ + public function player(): BelongsTo + { + return $this->belongsTo(plugin()->webman->config('database.player_model'), 'player_id')->withTrashed(); + } + + /** + * 机台信息 + * @return BelongsTo + */ + public function machine(): BelongsTo + { + return $this->belongsTo(plugin()->webman->config('database.machine_model'), 'machine_id')->withTrashed(); + } + + /** + * 彩金信息 + * @return BelongsTo + */ + public function lottery(): BelongsTo + { + return $this->belongsTo(plugin()->webman->config('database.lottery_model'), 'lottery_id')->withTrashed(); + } + + /** + * 派彩金额 + * + * @param $value + * @return float + */ + public function getAmountAttribute($value): float + { + return floatval($value); + } + + /** + * 金额比例 + * + * @param $value + * @return float + */ + public function getLotteryRateAttribute($value): float + { + return floatval($value); + } + + /** + * 派彩系数 + * + * @param $value + * @return float + */ + public function getCateRateAttribute($value): float + { + return floatval($value); + } + + /** + * 派彩系数 + * + * @param $value + * @return float + */ + public function getLotteryPoolAmountAttribute($value): float + { + return floatval($value); + } +} \ No newline at end of file diff --git a/addons/webman/model/PlayerMoneyEditLog.php b/addons/webman/model/PlayerMoneyEditLog.php new file mode 100644 index 0000000..189b4df --- /dev/null +++ b/addons/webman/model/PlayerMoneyEditLog.php @@ -0,0 +1,88 @@ + 'department_id']; + + const TYPE_DEDUCT = 0; // 扣点 + const TYPE_INCREASE = 1; // 加点 + + const RECHARGE = 0; // 充值 + const VIP_RECHARGE = 1; // vip充值 + const OTHER = 2; // 其他 + const ACTIVITY_GIVE = 3; // 活動外贈 + const ADMIN_DEDUCT = 4; // 管理员扣点 + const ADMIN_INCREASE = 5; // 管理员加点 + + public function __construct(array $attributes = []) + { + parent::__construct($attributes); + $this->setTable(plugin()->webman->config('database.player_money_edit_log_table')); + } + + /** + * 玩家信息 + * @return BelongsTo + */ + public function player(): BelongsTo + { + return $this->BelongsTo(plugin()->webman->config('database.player_model'), 'player_id')->withTrashed(); + } + + /** + * 渠道信息 + * @return BelongsTo + */ + public function channel(): BelongsTo + { + return $this->belongsTo(plugin()->webman->config('database.channel_model'), 'department_id', 'department_id')->withTrashed(); + } + + /** + * 管理员用户 + * @return BelongsTo + */ + public function user(): BelongsTo + { + return $this->belongsTo(plugin()->webman->config('database.user_model'), 'user_id')->withTrashed(); + } +} diff --git a/addons/webman/model/PlayerPlatformCash.php b/addons/webman/model/PlayerPlatformCash.php new file mode 100644 index 0000000..0dea470 --- /dev/null +++ b/addons/webman/model/PlayerPlatformCash.php @@ -0,0 +1,45 @@ +setTable(plugin()->webman->config('database.player_platform_cash_table')); + } + + /** + * 点数 + * + * @param $value + * @return float + */ + public function getMoneyAttribute($value): float + { + return floatval($value); + } +} diff --git a/addons/webman/model/PlayerPromoter.php b/addons/webman/model/PlayerPromoter.php new file mode 100644 index 0000000..e287a33 --- /dev/null +++ b/addons/webman/model/PlayerPromoter.php @@ -0,0 +1,112 @@ + 'department_id']; + + /** + * 时间转换 + * @param DateTimeInterface $date + * @return string + */ + protected function serializeDate(DateTimeInterface $date): string + { + return $date->format('Y-m-d H:i:s'); + } + + public function __construct(array $attributes = []) + { + parent::__construct($attributes); + $this->setTable(plugin()->webman->config('database.player_promoter_table')); + } + + /** + * 渠道信息 + * @return BelongsTo + */ + public function channel(): BelongsTo + { + return $this->belongsTo(plugin()->webman->config('database.channel_model'), 'department_id', 'department_id')->withTrashed(); + } + + /** + * 玩家信息 + * @return BelongsTo + */ + public function player(): BelongsTo + { + return $this->belongsTo(plugin()->webman->config('database.player_model'), 'player_id')->withTrashed(); + } + + /** + * 上级推广员 + * @return hasOne + */ + public function parent_promoter(): hasOne + { + return $this->hasOne(plugin()->webman->config('database.player_promoter_model'), 'player_id', 'recommend_id'); + } + + /** + * 下级推广员 + ** @return hasMany + */ + public function sub_promoter() + { + return $this->hasMany(plugin()->webman->config('database.player_promoter_model'), 'recommend_id', 'player_id'); + } + + /** + * 下级推广员 + ** @return hasMany + */ + public function max_sub_promoter() + { + return $this->hasOne(plugin()->webman->config('database.player_promoter_model'), 'recommend_id', 'player_id') + ->orderBy('ratio','desc'); + } + +} diff --git a/addons/webman/model/PlayerRechargeRecord.php b/addons/webman/model/PlayerRechargeRecord.php new file mode 100644 index 0000000..37add14 --- /dev/null +++ b/addons/webman/model/PlayerRechargeRecord.php @@ -0,0 +1,174 @@ + 'department_id']; + + const STATUS_WAIT = 0; // 充值中 + const STATUS_RECHARGING = 1; // 待审核 + const STATUS_RECHARGED_SUCCESS = 2; // 充值成功(管理员通过) + const STATUS_RECHARGED_FAIL = 3; // 充值失败 + const STATUS_RECHARGED_CANCEL = 4; // 充值取消(玩家取消) + const STATUS_RECHARGED_REJECT = 5; // 拒绝(管理员拒绝) + const STATUS_RECHARGED_SYSTEM_CANCEL = 6; // 已关闭(系统取消) + + const TYPE_REGULAR = 1; // 普通充值 + const TYPE_ACTIVITY = 2; // 活动充值 + const TYPE_ARTIFICIAL = 4; // 人工充值 + + public function __construct(array $attributes = []) + { + parent::__construct($attributes); + $this->setTable(plugin()->webman->config('database.player_recharge_record_table')); + } + + /** + * 玩家信息 + * @return BelongsTo + */ + public function player(): BelongsTo + { + return $this->belongsTo(plugin()->webman->config('database.player_model'), 'player_id')->withTrashed(); + } + + /** + * 渠道信息 + * @return BelongsTo + */ + public function channel(): BelongsTo + { + return $this->belongsTo(plugin()->webman->config('database.channel_model'), 'department_id', 'department_id')->withTrashed(); + } + + /** + * 充值配置信息 + * @return BelongsTo + */ + public function channel_recharge_setting(): BelongsTo + { + return $this->belongsTo(plugin()->webman->config('database.channel_recharge_setting_model'), 'setting_id')->withTrashed(); + } + + /** + * 获取器 - 标签id + * @param $value + * @return false|string[] + */ + public function getPlayerTagAttribute($value) + { + return array_filter(explode(',', $value)); + } + + /** + * 修改器 - 标签id + * @param $value + * @return string + */ + public function setPlayerTagAttribute($value): string + { + return $this->attributes['player_tag'] = implode(',', $value); + } + + /** + * 金额 + * + * @param $value + * @return float + */ + public function getMoneyAttribute($value): float + { + return floatval($value); + } + + /** + * 时间金额 + * + * @param $value + * @return float + */ + public function getInmoneyAttribute($value): float + { + return floatval($value); + } + + /** + * 游戏点数 + * + * @param $value + * @return float + */ + public function getCoinsAttribute($value): float + { + return floatval($value); + } + + /** + * 模型的 "booted" 方法 + * + * @return void + */ + protected static function booted() + { + if (config('app.profit', 'task') == 'event') { + static::updated(function (PlayerRechargeRecord $playerRechargeRecord) { + $oldStatus = $playerRechargeRecord->getOriginal('status'); // 原始值 + $newStatus = $playerRechargeRecord->status; + // 游戏结束并且产生盈亏后计算分润 + if ($oldStatus != $newStatus && $newStatus == PlayerRechargeRecord::STATUS_RECHARGED_SUCCESS) { + Event::emit('promotion.playerRecharge', $playerRechargeRecord); + } + }); + } + } +} diff --git a/addons/webman/model/PlayerRegisterRecord.php b/addons/webman/model/PlayerRegisterRecord.php new file mode 100644 index 0000000..1222268 --- /dev/null +++ b/addons/webman/model/PlayerRegisterRecord.php @@ -0,0 +1,58 @@ +setTable(plugin()->webman->config('database.player_register_record_table')); + } + + /** + * 玩家信息 + * @return belongsTo + */ + public function player(): BelongsTo + { + return $this->belongsTo(plugin()->webman->config('database.player_model'),'player_id')->withTrashed(); + } +} diff --git a/addons/webman/model/PlayerTag.php b/addons/webman/model/PlayerTag.php new file mode 100644 index 0000000..943c5ce --- /dev/null +++ b/addons/webman/model/PlayerTag.php @@ -0,0 +1,65 @@ +setTable(plugin()->webman->config('database.player_tag_table')); + } + + /** + * 时间转换 + * @param DateTimeInterface $date + * @return string + */ + protected function serializeDate(DateTimeInterface $date): string + { + return $date->format('Y-m-d H:i:s'); + } + + /** + * 模型的 "booted" 方法 + * + * @return void + */ + protected static function booted() + { + static::created(function () { + $cacheKey = "doc_player_tag_options_filter"; + $data = (new PlayerTag())->select(['name', 'id'])->get()->toArray(); + $data = $data ? array_column($data, 'name', 'id') : []; + Cache::set($cacheKey, $data, 24 * 60 * 60); + }); + static::deleted(function () { + $cacheKey = "doc_player_tag_options_filter"; + $data = (new PlayerTag())->select(['name', 'id'])->get()->toArray(); + $data = $data ? array_column($data, 'name', 'id') : []; + Cache::set($cacheKey, $data, 24 * 60 * 60); + }); + static::updated(function () { + $cacheKey = "doc_player_tag_options_filter"; + $data = (new PlayerTag())->select(['name', 'id'])->get()->toArray(); + $data = $data ? array_column($data, 'name', 'id') : []; + Cache::set($cacheKey, $data, 24 * 60 * 60); + }); + } +} diff --git a/addons/webman/model/PlayerWalletTransfer.php b/addons/webman/model/PlayerWalletTransfer.php new file mode 100644 index 0000000..7e44c31 --- /dev/null +++ b/addons/webman/model/PlayerWalletTransfer.php @@ -0,0 +1,68 @@ + 'department_id']; + const TYPE_OUT = 1; // 转出 + const TYPE_IN = 2; // 转入 + //数据权限字段 + public function __construct(array $attributes = []) + { + parent::__construct($attributes); + $this->setTable(plugin()->webman->config('database.player_wallet_transfer_table')); + } + + /** + * 渠道信息 + * @return BelongsTo + */ + public function channel(): BelongsTo + { + return $this->belongsTo(plugin()->webman->config('database.channel_model'), 'department_id', 'department_id')->withTrashed(); + } + + /** + * 玩家信息 + * @return BelongsTo + */ + public function player(): BelongsTo + { + return $this->belongsTo(plugin()->webman->config('database.player_model'), 'player_id')->withTrashed(); + } + + /** + * 平台信息 + * @return BelongsTo + */ + public function gamePlatform(): BelongsTo + { + return $this->belongsTo(plugin()->webman->config('database.game_platform_model'),'platform_id')->withTrashed(); + } +} diff --git a/addons/webman/model/PlayerWithdrawRecord.php b/addons/webman/model/PlayerWithdrawRecord.php new file mode 100644 index 0000000..5fe2031 --- /dev/null +++ b/addons/webman/model/PlayerWithdrawRecord.php @@ -0,0 +1,176 @@ + 'department_id']; + + const STATUS_WAIT = 1; // 提现中(待审核) + const STATUS_SUCCESS = 2; // 成功 + const STATUS_FAIL = 3; // 提现失败 + const STATUS_PENDING_PAYMENT = 4; // 待打款(审核通过) + const STATUS_PENDING_REJECT = 5; // 审核拒绝 + const STATUS_CANCEL = 6; // 玩家取消 + const STATUS_SYSTEM_CANCEL = 7; // 系统取消 + + const TYPE_USDT = 1; // usdt + const TYPE_SELF = 2; // 渠道提现 + const TYPE_ARTIFICIAL = 3; // 人工提现 + const TYPE_ESPAYOUT = 4; // ES代付 + const TYPE_ONEPAYOUT = 5; // ONE代付 + const TYPE_SKLPAYOUT = 6; // SKL代付 + + public function __construct(array $attributes = []) + { + parent::__construct($attributes); + $this->setTable(plugin()->webman->config('database.player_withdraw_record_table')); + } + + /** + * 渠道信息 + * @return BelongsTo + */ + public function channel(): BelongsTo + { + return $this->belongsTo(plugin()->webman->config('database.channel_model'), 'department_id', 'department_id')->withTrashed(); + } + + /** + * 玩家信息 + * @return BelongsTo + */ + public function player(): BelongsTo + { + return $this->belongsTo(plugin()->webman->config('database.player_model'), 'player_id'); + } + + /** + * 获取器 - 标签id + * @param $value + * @return false|string[] + */ + public function getPlayerTagAttribute($value) + { + return array_filter(explode(',', $value)); + } + + /** + * 修改器 - 标签id + * @param $value + * @return string + */ + public function setPlayerTagAttribute($value): string + { + return $this->attributes['player_tag'] = implode(',', $value); + } + + /** + * 实际金额 + * + * @param $value + * @return float + */ + public function getInmoneyAttribute($value): float + { + return floatval($value); + } + + /** + * 金额 + * + * @param $value + * @return float + */ + public function getMoneyAttribute($value): float + { + return floatval($value); + } + + /** + * 游戏点数 + * + * @param $value + * @return float + */ + public function getCoinsAttribute($value): float + { + return floatval($value); + } + + /** + * 手续费 + * + * @param $value + * @return float + */ + public function getFeeAttribute($value): float + { + return floatval($value); + } + + /** + * 模型的 "booted" 方法 + * + * @return void + */ + protected static function booted() + { + if (config('app.profit', 'task') == 'event') { + static::updated(function (PlayerWithdrawRecord $playerWithdrawRecord) { + $oldStatus = $playerWithdrawRecord->getOriginal('status'); // 原始值 + $newStatus = $playerWithdrawRecord->status; + // 游戏结束并且产生盈亏后计算分润 + if ($oldStatus != $newStatus && $newStatus == PlayerWithdrawRecord::STATUS_SUCCESS) { + Event::emit('promotion.playerWithdraw', $playerWithdrawRecord); + } + }); + } + } +} diff --git a/addons/webman/model/Prize.php b/addons/webman/model/Prize.php new file mode 100644 index 0000000..45dd370 --- /dev/null +++ b/addons/webman/model/Prize.php @@ -0,0 +1,47 @@ +setTable(plugin()->webman->config('database.promoter_profit_record_table')); + } + + /** + * 玩家信息 + * @return BelongsTo + */ + public function player(): BelongsTo + { + return $this->belongsTo(plugin()->webman->config('database.player_model'), 'player_id'); + } + + /** + * 推广员信息 + * @return BelongsTo + */ + public function promoter(): BelongsTo + { + return $this->belongsTo(plugin()->webman->config('database.player_promoter_model'), 'promoter_player_id', 'player_id'); + } + + /** + * 来源推广员 + * @return BelongsTo + */ + public function source_promoter(): BelongsTo + { + return $this->belongsTo(plugin()->webman->config('database.player_promoter_model'), 'source_player_id', 'player_id'); + } + + /** + * 推广员玩家信息 + * @return BelongsTo + */ + public function player_promoter(): BelongsTo + { + return $this->belongsTo(plugin()->webman->config('database.player_model'), 'promoter_player_id'); + } + + /** + * 结算信息 + * @return BelongsTo + */ + public function settlement(): BelongsTo + { + return $this->belongsTo(plugin()->webman->config('database.promoter_profit_settlement_record_model'), 'settlement_id'); + } +} \ No newline at end of file diff --git a/addons/webman/model/PromoterProfitSettlementRecord.php b/addons/webman/model/PromoterProfitSettlementRecord.php new file mode 100644 index 0000000..355b37b --- /dev/null +++ b/addons/webman/model/PromoterProfitSettlementRecord.php @@ -0,0 +1,81 @@ +setTable(plugin()->webman->config('database.promoter_profit_settlement_record_table')); + } + + /** + * 推广员信息 + * @return BelongsTo + */ + public function promoter(): BelongsTo + { + return $this->belongsTo(plugin()->webman->config('database.player_promoter_model'), 'promoter_player_id', 'player_id'); + } + + /** + * 推广员玩家信息 + * @return BelongsTo + */ + public function player_promoter(): BelongsTo + { + return $this->belongsTo(plugin()->webman->config('database.player_model'), 'promoter_player_id'); + } + + /** + * 管理员用户 + * @return BelongsTo + */ + public function user(): BelongsTo + { + return $this->belongsTo(plugin()->webman->config('database.user_model'), 'user_id')->withTrashed(); + } +} \ No newline at end of file diff --git a/addons/webman/model/Qrcode.php b/addons/webman/model/Qrcode.php new file mode 100644 index 0000000..699534a --- /dev/null +++ b/addons/webman/model/Qrcode.php @@ -0,0 +1,57 @@ +format('Y-m-d H:i:s'); + } + + public function __construct(array $attributes = []) + { + parent::__construct($attributes); + $this->setTable(plugin()->webman->config('database.qrcode_table')); + } + + public function qrcode_batch(): BelongsTo + { + return $this->belongsTo(plugin()->webman->config('database.qrcode_batch_model'), 'batch_id', 'id'); + } + +} diff --git a/addons/webman/model/QrcodeBatch.php b/addons/webman/model/QrcodeBatch.php new file mode 100644 index 0000000..350d152 --- /dev/null +++ b/addons/webman/model/QrcodeBatch.php @@ -0,0 +1,59 @@ +format('Y-m-d H:i:s'); + } + + public function __construct(array $attributes = []) + { + parent::__construct($attributes); + $this->setTable(plugin()->webman->config('database.qrcode_batch_table')); + } + + + public function qrcode_owner(): BelongsTo + { + return $this->belongsTo(plugin()->webman->config('database.qrcode_owner_model'), 'owner_id'); + } + + public function qrcode(): HasMany + { + return $this->hasMany(plugin()->webman->config('database.qrcode_model'), 'batch_id'); + } + +} diff --git a/addons/webman/model/QrcodeOwner.php b/addons/webman/model/QrcodeOwner.php new file mode 100644 index 0000000..e77c4ae --- /dev/null +++ b/addons/webman/model/QrcodeOwner.php @@ -0,0 +1,58 @@ +format('Y-m-d H:i:s'); + } + + public function __construct(array $attributes = []) + { + parent::__construct($attributes); + $this->setTable(plugin()->webman->config('database.qrcode_owner_table')); + } + + public function qrcode_batch(): hasMany + { + return $this->hasMany(plugin()->webman->config('database.qrcode_batch_model'), 'owner_id'); + } + + public function qrcode(): hasManyThrough + { + return $this->hasManyThrough(plugin()->webman->config('database.qrcode_model'), plugin()->webman->config('database.qrcode_batch_model'), 'owner_id', 'batch_id'); + } + +} diff --git a/addons/webman/model/SepayRecharge.php b/addons/webman/model/SepayRecharge.php new file mode 100644 index 0000000..a638e51 --- /dev/null +++ b/addons/webman/model/SepayRecharge.php @@ -0,0 +1,50 @@ +format('Y-m-d H:i:s'); + } + + public function __construct(array $attributes = []) + { + parent::__construct($attributes); + $this->setTable(plugin()->webman->config('database.sepay_recharge_table')); + } + + + +} diff --git a/addons/webman/model/SignIns.php b/addons/webman/model/SignIns.php new file mode 100644 index 0000000..7993bc4 --- /dev/null +++ b/addons/webman/model/SignIns.php @@ -0,0 +1,67 @@ + 'department_id']; + //简写省略id,默认后台用户表的id + + public function __construct(array $attributes = []) + { + parent::__construct($attributes); + $this->setTable(plugin()->webman->config('database.sign_ins_table')); + } + + /** + * 渠道信息 + * @return BelongsTo + */ + public function channel(): BelongsTo + { + return $this->belongsTo(plugin()->webman->config('database.channel_model'), 'department_id', 'department_id')->withTrashed(); + } + + /** + * 玩家信息 + * @return BelongsTo + */ + public function player(): BelongsTo + { + return $this->belongsTo(plugin()->webman->config('database.player_model'), 'player_id'); + } + + /** + * 时间转换 + * @param DateTimeInterface $date + * @return string + */ + protected function serializeDate(DateTimeInterface $date): string + { + return $date->format('Y-m-d H:i:s'); + } +} diff --git a/addons/webman/model/Slider.php b/addons/webman/model/Slider.php new file mode 100644 index 0000000..0abb4d1 --- /dev/null +++ b/addons/webman/model/Slider.php @@ -0,0 +1,46 @@ +'department_id']; + public function __construct(array $attributes = []) + { + parent::__construct($attributes); + $this->setTable(plugin()->webman->config('database.slider_table')); + } + + /** + * 渠道信息 + * @return BelongsTo + */ + public function channel(): BelongsTo + { + return $this->belongsTo(plugin()->webman->config('database.channel_model'), 'department_id', 'department_id')->withTrashed(); + } +} diff --git a/addons/webman/model/SystemSetting.php b/addons/webman/model/SystemSetting.php new file mode 100644 index 0000000..9d8f141 --- /dev/null +++ b/addons/webman/model/SystemSetting.php @@ -0,0 +1,43 @@ + 'department_id']; + + public function __construct(array $attributes = []) + { + parent::__construct($attributes); + $this->setTable(plugin()->webman->config('database.system_setting_table')); + } + + const FIRST_RECHARGE_MODEL_ONE = 1; // 一次性发放 + const FIRST_RECHARGE_MODEL_ADD = 2; // 累计发放 + + const FIRST_RECHARGE_TYPE_VALUE = 1; // 固定值 + const FIRST_RECHARGE_TYPE_PERCENT = 2; // 百分比 +} \ No newline at end of file diff --git a/addons/webman/service/Menu.php b/addons/webman/service/Menu.php new file mode 100644 index 0000000..15711a4 --- /dev/null +++ b/addons/webman/service/Menu.php @@ -0,0 +1,111 @@ +model = plugin()->webman->config('database.menu_model'); + } + + /** + * 菜单 + * @return array + */ + public function all(): array + { + $departmentId = Admin::user()->department_id; + /** @var Channel $channel */ + if (Admin::user()->type == AdminDepartment::TYPE_CHANNEL) { + $channel = Channel::where('department_id', $departmentId)->first(); + } + return $this->model::where('status', 1) + ->where('type', Admin::user()->type) + ->when(plugin()->webman->config('admin_auth_id') != Admin::id(), function ($query) { + $model = plugin()->webman->config('database.role_menu_model'); + $menuIds = $model::whereIn('role_id', Admin::role())->pluck('menu_id'); + $query->whereIn('id', $menuIds); + }) + ->when(isset($channel) && !empty($channel) && $channel->withdraw_status == 0, function ($query) { + $query->where('id', '!=', 59); + }) + ->when(isset($channel) && !empty($channel) && $channel->promotion_status == 0, function ($query) { + $query->whereNotIn('id', [73, 74, 75, 76]); + }) + ->when(isset($channel) && !empty($channel) && $channel->coin_status == 0, function ($query) { + $query->whereNotIn('id', [37, 38, 39, 40]); + }) + ->orderBy('sort')->get()->toArray(); + } + + /** + * 获取菜单 + * @param array $data + * @return array + */ + public function get($id) + { + return $this->model::find($id)->toArray(); + } + + /** + * 更新菜单 + * @param int $id + * @param array $data + * @return mixed + */ + public function update($id, $data) + { + $this->model::where('id', $id)->update($data); + } + + /** + * 创建菜单 + * @param array $data + * @return int + */ + public function create(array $data): int + { + $result = $this->model::create($data); + return $result->id; + } + + /** + * 启用菜单 + * @param $plugin + * @return mixed + */ + public function enable($plugin) + { + $this->model::where('plugin', $plugin)->update(['status' => 1]); + } + + /** + * 禁用菜单 + * @param $plugin + * @return mixed + */ + public function disable($plugin) + { + $this->model::where('plugin', $plugin)->update(['status' => 0]); + } + + /** + * 删除菜单 + * @param $plugin + * @return mixed + */ + public function delete($plugin) + { + $this->model::where('plugin', $plugin)->delete(); + } +} diff --git a/addons/webman/service/Service.php b/addons/webman/service/Service.php new file mode 100644 index 0000000..1367b0e --- /dev/null +++ b/addons/webman/service/Service.php @@ -0,0 +1,10 @@ +model->getKeyName(); + } + + /** + * 获取当前用户 + * @return mixed + */ + public function user($id) + { + return $this->model->find($id); + } +} \ No newline at end of file diff --git a/addons/webman/traits/DataPermissions.php b/addons/webman/traits/DataPermissions.php new file mode 100644 index 0000000..4fdc754 --- /dev/null +++ b/addons/webman/traits/DataPermissions.php @@ -0,0 +1,120 @@ +withoutGlobalScope('dataAuth'); + } + + /** + * 数据权限字段 + * @var array + */ + public function initializeDataPermissions() + { + $adminId = Admin::id(); + if ($adminId && plugin()->webman->config('admin_auth_id') != $adminId) { + + static::addGlobalScope('dataAuth', function ($builder) { + $adminId = Admin::id(); + if (request()->app != 'api' && $adminId && plugin()->webman->config('admin_auth_id') != $adminId) { + $role_user_table = plugin()->webman->config('database.role_user_table'); + $role_table = plugin()->webman->config('database.role_table'); + $role = DB::connection($this->getConnectionName())->table($role_table) + ->selectRaw($role_table . '.id,data_type') + ->where($role_user_table . '.user_id', $adminId) + ->join($role_user_table, $role_user_table . '.role_id', '=', $role_table . '.id') + ->orderBy('data_type') + ->first(); + $builder->where(function ($query) use ($role, $adminId) { + $table = $this->getTable(); + $user_table = plugin()->webman->config('database.user_table'); + switch ($role->data_type) { + case $this->CUSTOM_DATA_PERMISSIONS: + $role_department_table = plugin()->webman->config('database.role_department_table'); + $query->where(function ($q) use ($table, $query, $user_table, $role_department_table, $role) { + $this->eachDataAuth(function ($field, $adminField) use ($table, $q, $user_table, $role_department_table, $role) { + $db = DB::connection($this->getConnectionName())->table($user_table) + ->selectRaw($user_table . '.' . $adminField) + ->whereNull($user_table . '.deleted_at') + ->join($role_department_table, $role_department_table . '.department_id', '=', $user_table . '.department_id') + ->where($role_department_table . '.role_id', $role->id); + $q->whereRaw($table . '.' . $field . ' IN (' . $db->toSql() . ')', $db->getBindings()); + }); + })->orWhere(function ($q) use ($table) { + $this->eachDataAuth(function ($field, $adminField) use ($table, $q) { + $q->where($table . '.' . $field, Admin::user()->$adminField); + }); + }); + break; + case $this->THIS_DEPARTMENT_AND_THE_FOLLOWING_DATA_PERMISSIONS: + $department_id = Admin::user()->department_id; + $department_table = plugin()->webman->config('database.department_table'); + $this->eachDataAuth(function ($field, $adminField) use ($table, $query, $department_id, $user_table, $department_table) { + $db = DB::connection($this->getConnectionName())->table($user_table) + ->selectRaw($user_table . '.' . $adminField) + ->whereNull($user_table . '.deleted_at') + ->join($department_table, $department_table . '.id', '=', $user_table . '.department_id') + ->whereRaw("FIND_IN_SET({$department_id},{$department_table}.path)"); + $query->whereRaw($table . '.' . $field . ' IN (' . $db->toSql() . ')', $db->getBindings()); + }); + break; + case $this->DATA_PERMISSIONS_FOR_THIS_DEPARTMENT: + $department_id = Admin::user()->department_id; + $this->eachDataAuth(function ($field, $adminField) use ($table, $query, $department_id, $user_table) { + $db = DB::connection($this->getConnectionName())->table($user_table) + ->selectRaw($user_table . '.' . $adminField) + ->whereNull($user_table . '.deleted_at') + ->where('department_id', $department_id); + $query->whereRaw($table . '.' . $field . ' IN (' . $db->toSql() . ')', $db->getBindings()); + }); + break; + case $this->PERSONAL_DATA_RIGHTS: + $this->eachDataAuth(function ($field, $adminField) use ($table, $query) { + $query->where($table . '.' . $field, Admin::user()->$adminField); + }); + break; + } + }); + } + }); + } + } + + private function eachDataAuth(\Closure $closure) + { + foreach ($this->dataAuth as $key => $field) { + if (is_numeric($key)) { + $adminField = 'id'; + } else { + $adminField = $key; + } + call_user_func_array($closure, [$field, $adminField]); + } + } +} diff --git a/addons/webman/traits/HasDateTimeFormatter.php b/addons/webman/traits/HasDateTimeFormatter.php new file mode 100644 index 0000000..405fcc7 --- /dev/null +++ b/addons/webman/traits/HasDateTimeFormatter.php @@ -0,0 +1,12 @@ +format($this->getDateFormat()); + } +} \ No newline at end of file diff --git a/addons/webman/validator/ValidatorFactory.php b/addons/webman/validator/ValidatorFactory.php new file mode 100644 index 0000000..89f8b7d --- /dev/null +++ b/addons/webman/validator/ValidatorFactory.php @@ -0,0 +1,37 @@ +factory = new Validation\Factory($this->loadTranslator()); + } + + protected function loadTranslator() + { + $path = config('translation.path'); + $locale = config('translation.locale'); + + $filesystem = new Filesystem(); + $loader = new Translation\FileLoader($filesystem, $path); + $loader->addNamespace('lang', $path); + $loader->load($locale, 'validation', 'lang'); + + return new Translation\Translator($loader, $locale); + } + + public function __call($method, $args) + { + return call_user_func_array([$this->factory, $method], $args); + } +} \ No newline at end of file diff --git a/addons/webman/views/activity_tabs.vue b/addons/webman/views/activity_tabs.vue new file mode 100644 index 0000000..2914878 --- /dev/null +++ b/addons/webman/views/activity_tabs.vue @@ -0,0 +1,386 @@ + + \ No newline at end of file diff --git a/addons/webman/views/agent.vue b/addons/webman/views/agent.vue new file mode 100644 index 0000000..5806110 --- /dev/null +++ b/addons/webman/views/agent.vue @@ -0,0 +1,322 @@ + + + diff --git a/addons/webman/views/login.vue b/addons/webman/views/login.vue new file mode 100644 index 0000000..d72e860 --- /dev/null +++ b/addons/webman/views/login.vue @@ -0,0 +1,322 @@ + + + diff --git a/addons/webman/views/machine_status.vue b/addons/webman/views/machine_status.vue new file mode 100644 index 0000000..1a50ddd --- /dev/null +++ b/addons/webman/views/machine_status.vue @@ -0,0 +1,72 @@ + + \ No newline at end of file diff --git a/addons/webman/views/media_play.vue b/addons/webman/views/media_play.vue new file mode 100644 index 0000000..f4ba03b --- /dev/null +++ b/addons/webman/views/media_play.vue @@ -0,0 +1,206 @@ + + + \ No newline at end of file diff --git a/addons/webman/views/my_editor.vue b/addons/webman/views/my_editor.vue new file mode 100644 index 0000000..efdd507 --- /dev/null +++ b/addons/webman/views/my_editor.vue @@ -0,0 +1,42 @@ + + + \ No newline at end of file diff --git a/addons/webman/views/socket.vue b/addons/webman/views/socket.vue new file mode 100644 index 0000000..f55b1e7 --- /dev/null +++ b/addons/webman/views/socket.vue @@ -0,0 +1,350 @@ + + + \ No newline at end of file diff --git a/app/api/controller/v1/GameController.php b/app/api/controller/v1/GameController.php new file mode 100644 index 0000000..91d78f6 --- /dev/null +++ b/app/api/controller/v1/GameController.php @@ -0,0 +1,240 @@ +intVal()->setName(trans('platform_id', [], 'message'))) + ->key('game_code', v::stringVal()->setName(trans('game_code', [], 'message'))) + ->key('app_type', v::notEmpty()->intVal()->in([ + GameServiceFactory::DEVICE_TYPE_WEB, + GameServiceFactory::DEVICE_TYPE_IOS, + GameServiceFactory::DEVICE_TYPE_ANDROID, + ])->setName(trans('app_type', [], 'message'))); + + $data = $request->all(); + /** @var GamePlatform $gamePlatform */ + $gamePlatform = GamePlatform::query()->find($data['platform_id']); + if (empty($gamePlatform)) { + return jsonFailResponse(trans('game_platform_not_found', [], 'message')); + } + if ($gamePlatform->status == 0) { + return jsonFailResponse(trans('game_platform_disabled', [], 'message')); + } + /** @var Game $game */ + $game = Game::query() + ->whereHas('gamePlatform', function ($query) { + $query->where('status', 1)->whereNull('deleted_at'); + }) + ->where('platform_id', $data['platform_id']) + ->where('game_code', $data['game_code']) + ->first(); + if (empty($game)) { + return jsonFailResponse(trans('game_not_found', [], 'message')); + } + if ($game->status == 0) { + return jsonFailResponse(trans('game_disabled', [], 'message')); + } + $lang = locale(); + $lang = Str::replace('_', '-', $lang); + try { + $validator->assert($data); + $res = GameServiceFactory::createService(strtoupper($gamePlatform->name), $player)->login( + [ + 'CallBackUrl' => '', + 'lang' => $lang, + 'gameCode' => $game->game_code, + 'appType' => $data['app_type'], + 'platformGameType' => $game->platform_game_type + ] + ); + if ($player->wallet->money > 0) { + GameServiceFactory::createService(strtoupper($gamePlatform->name), $player)->balanceTransferOut(); + } + } catch (AllOfException $e) { + return jsonFailResponse(getValidationMessages($e)); + } catch (\Exception $e) { + return jsonFailResponse($e->getMessage()); + } + if ($gamePlatform->name == 'MEGA888') { + $response = [ + 'link_game' => $res['url'], + 'jump_url' => 'lobbymegarelease://', + 'jump_url_android' => 'lobbymegarelease://?account='.$res['account'].'&password='.$res['password'], + 'jump_url_ios' => 'lobbymegarelease://account='.$res['account'].'&password='.$res['password'], + 'account' => $res['account'], + 'password' => $res['password'], + ]; + } elseif ($gamePlatform->name == 'KISS918') { + $response = [ + 'link_game' => $res['url'], + 'jump_url_android' => 'lobbykiss://lobbykiss?account='.$res['account'].'&password='.$res['password'], + 'jump_url_ios' => 'lobbykissgame://account='.$res['account'].'&password='.$res['password'], + 'account' => $res['account'], + 'password' => $res['password'], + ]; + } else { + $response = ['link_game' => $res]; + } + return jsonSuccessResponse('success',$response); + } + + /** + * 游戏列表 + * @param Request $request + * @return Response + * @throws PlayerCheckException|GameException + */ + public function gameList(Request $request): Response + { + checkPlayer(); + $validator = v::key('game_type', v::notEmpty()->intVal()->setName(trans('game_type', [], 'message')), false) + ->key('is_hot', v::optional(v::in([0, 1]))->setName(trans('is_hot', [], 'message')), false); + + $data = $request->all(); + try { + $validator->assert($data); + } catch (AllOfException $e) { + return jsonFailResponse(getValidationMessages($e)); + } + $size = $data['size'] ?? 20; + $query = Game::query() + ->with(['gamePlatform' => function ($query) { + $query->select(['id', 'name', 'status']); + }]) + ->whereHas('gamePlatform', function ($query) { + $query->where('status', 1)->whereNull('deleted_at'); + }) + ->where('status', 1) + ->where('is_online', 1) + ->when(!empty($data['game_type']), function ($query) use ($data) { + $query->where('game_type', $data['game_type']); + }) + ->when(isset($data['is_hot']) && is_numeric($data['is_hot']), function ($query) use ($data) { + $query->where('is_hot', $data['is_hot']); + }) + ->when(isset($data['platform_id']) && is_numeric($data['platform_id']), function ($query) use ($data) { + $query->where('platform_id', $data['platform_id']); + }); + $list = $query->select(['id', 'platform_id', 'game_code', 'game_type', 'game_image', 'name', 'status', 'player_num_range', 'is_hot', 'is_new', 'sort']) + ->forPage($data['page'] ?? 1, $size) + ->orderBy('sort', 'desc') + ->orderBy('id', 'desc') + ->get(); + $totalGames = $query->count(); + /** @var Game $game */ + foreach ($list as $game) { + $game->player_num_range = empty($game->player_num_range) ? 0 : getGamePlayerNum($game->id, $game->player_num_range); + } + + return jsonSuccessResponse('success', [ + 'list' => $list, + 'game_platform' => GamePlatform::query()->where('status', 1)->select(['id', 'title'])->get(), + 'current_page' => $data['page'] ?? 1, + 'total_page' => ceil($totalGames / $size) + ]); + } + + /** + * 奖品列表 + */ + public function getPrizeList(Request $request) + { + $player = checkPlayer(); + $prizes = Prize::query() + ->select('pic', 'name', 'id', 'type') + ->where('department_id', $player->department_id) + ->where('status', 1) + ->orderBy('probability') + ->get() + ->toArray(); + $data = [ + 'point' => $player->wallet->money, + 'description' => Game::query()->where('id', $player->channel->game_id)->value('description'), + 'prize_list' => $prizes, + ]; + return jsonSuccessResponse('success',$data); + } + + /** + * 抽奖 + */ + public function lottery(Request $request): Response + { + $player = checkPlayer(); + if ($player->wallet->money <= 0) { + return jsonFailResponse('玩家暂无抽奖机会', [], 1000); + } + $drawService = new DrawService(); + $result = $drawService->execute($player, $player->channel->game_id, $player->department_id, $request->getRealIp()); + return jsonSuccessResponse('success',$result); + } + + /** + * 抽奖记录 + */ + public function getDrawRecords(Request $request): Response + { + $player = checkPlayer(); + $validator = v::key('page', v::intVal()->setName(trans('page', [], 'message'))) + ->key('size', v::intVal()->setName(trans('size', [], 'message'))) + ->key('start_date', v::stringVal()->setName(trans('start_date', [], 'message'))) + ->key('end_date', v::stringVal()->setName(trans('end_date', [], 'message'))); + $data = $request->all(); + try { + $validator->assert($data); + } catch (AllOfException $e) { + return jsonFailResponse(getValidationMessages($e)); + } + $size = $data['size'] ?? 20; + + $query = DrawRecord::query() + ->where('department_id', $player->department_id) + ->where('uid', $player->id) + ->where('game_id', $player->channel->game_id) + ->whereBetween('created_at', [$data['start_date'],date('Y-m-d', strtotime("{$data['end_date']} +1 days"))]); + $record = clone $query; + $list = $query + ->select('consume', 'prize_pic', 'prize_name', 'prize_type', 'draw_time', 'ip') + ->forPage($data['page'] ?? 1, $data['size'] ?? 10) + ->orderBy('id', 'desc') + ->get() + ->toArray(); + $totalRecords = $record->count(); + return jsonSuccessResponse('success', [ + 'list' => $list, + 'total_page' => ceil($totalRecords / $size) + ]); + } + + public function gametest(Request $request): Response + { + return jsonSuccessResponse('', []); + } +} diff --git a/app/api/controller/v1/IndexController.php b/app/api/controller/v1/IndexController.php new file mode 100644 index 0000000..e16e336 --- /dev/null +++ b/app/api/controller/v1/IndexController.php @@ -0,0 +1,751 @@ +all(); + $validator = v::key('bank_name', v::optional(v::stringType()->length(1, 100)->setName(trans('bank_name', [], 'message')))) + ->key('account', v::optional(v::stringType()->length(1, 255)->setName(trans('bank_account', [], 'message')))) + ->key('account_name', v::optional(v::stringType()->length(1, 100)->setName(trans('bank_account_name', [], 'message')))) + ->key('bank_code', v::optional(v::stringType()->length(1, 100)->setName(trans('bank_code', [], 'message')))) + ->key('wallet_address', v::optional(v::stringType()->length(1, 255)->setName(trans('wallet_address', [], 'message')))) + ->key('qr_code', v::optional(v::stringType()->setName(trans('qr_code', [], 'message')))); + + try { + $validator->assert($data); + } catch (AllOfException $e) { + return jsonFailResponse(getValidationMessages($e)); + } + if (!empty($data['account']) && PlayerBank::query()->where('account', $data['account']) + ->where('pay_type', $player->channel->pay_type)->exists()) { + return jsonFailResponse(trans('bank_card_has_bind', [], 'message')); + } + $payType = $player->channel->pay_type; + + //USDT判断 + if (!empty($data['wallet_address'])) { + $payType = 4; + if (PlayerBank::query()->where('wallet_address', $data['wallet_address'])->where('pay_type', 4)->exists()) { + return jsonFailResponse(trans('bank_card_has_bind', [], 'message')); + } + } + $bankNum = PlayerBank::query() + ->where('player_id', $player->id) + ->where('status', 1) + ->where('pay_type', $player->channel->pay_type) + ->count(); + if ($bankNum > 2) { + return jsonFailResponse(trans('bank_card_max_three', [], 'message')); + } + $playerBank = new PlayerBank(); + $playerBank->player_id = $player->id; + $playerBank->bank_name = $data['bank_name']; + $playerBank->account = $data['account']; + $playerBank->account_name = $data['account_name']; + $playerBank->wallet_address = $data['wallet_address'] ?? ''; + $playerBank->qr_code = $data['qr_code'] ?? ''; + $playerBank->bank_code = $data['bank_code']; + $playerBank->pay_type = $payType; + if (!$playerBank->save()) { + return jsonFailResponse(trans('add_bank_card_fail', [], 'message')); + } + + return jsonSuccessResponse(trans('add_bank_card_success', [], 'message')); + } + + /** + * 修改银行卡 + * @param Request $request + * @return Response + * @throws GameException + * @throws PlayerCheckException + */ + public function editBankCard(Request $request): Response + { + $player = checkPlayer(); + $data = $request->all(); + $validator = v::key('bank_name', v::notEmpty()->stringType()->length(1, 100)->setName(trans('bank_name', [], 'message'))) + ->key('account_name', v::notEmpty()->stringType()->length(1, 100)->setName(trans('bank_account_name', [], 'message'))) + ->key('bank_code', v::notEmpty()->stringType()->length(1, 100)->setName(trans('bank_code', [], 'message'))) + ->key('id', v::notEmpty()->stringType()->length(1, 100)->setName(trans('id', [], 'message'))); + + try { + $validator->assert($data); + } catch (AllOfException $e) { + return jsonFailResponse(getValidationMessages($e)); + } + if (PlayerBank::query()->where('player_id', $player->id)->where('status', 1)->count() > 2) { + return jsonFailResponse(trans('bank_card_max_three', [], 'message')); + } + $playerBank = PlayerBank::query()->find($data['id']); + if ($playerBank->player_id != $player->id) { + return jsonFailResponse(trans('edit_bank_card_fail', [], 'message')); + } + $playerBank->bank_name = $data['bank_name']; + $playerBank->account = $data['account']; + $playerBank->account_name = $data['account_name']; + $playerBank->bank_code = $data['bank_code']; + if (!$playerBank->save()) { + return jsonFailResponse(trans('edit_bank_card_fail', [], 'message')); + } + return jsonSuccessResponse(trans('edit_bank_card_success', [], 'message')); + } + + /** + * 银行卡列表 + * @param Request $request + * @return Response + * @throws PlayerCheckException|GameException + */ + public function bankCardList(Request $request): Response + { + $player = checkPlayer(); + $data = $request->all(); + $validator = v::key('page', v::intVal()->setName(trans('page', [], 'message'))) + ->key('size', v::intVal()->setName(trans('size', [], 'message'))); + + try { + $validator->assert($data); + } catch (AllOfException $e) { + return jsonFailResponse(getValidationMessages($e)); + } + + return jsonSuccessResponse('success', [ + 'bank_list' => PlayerBank::query() + ->where('player_id', $player->id) + ->where('status', 1) + ->where('pay_type', $player->channel->pay_type) + ->whereNull('deleted_at') + ->select(['id', 'bank_name', 'account', 'account_name']) + ->forPage($data['page'] ?? 1, $data['size'] ?? 10) + ->orderBy('created_at', 'desc') + ->get() + ->toArray(), + ]); + } + + /** + * 银行卡列表 + * @return Response + * @throws PlayerCheckException|GameException|\think\Exception + */ + public function bankList(): Response + { + $player = checkPlayer(false); + return jsonSuccessResponse('success', [ + 'bank_list' => BankList::query() + ->select(['bank_name', 'bank_code']) + ->where('pay_type', $player->channel->pay_type) + ->where('type', '!=', 1) + ->whereNull('deleted_at') + ->get() + ->toArray(), + ]); + } + + /** + * 删除银行卡 + * @param Request $request + * @return Response + * @throws PlayerCheckException|GameException + */ + public function deleteBankCard(Request $request): Response + { + $player = checkPlayer(); + $data = $request->all(); + $validator = v::key('id', v::intVal()->notEmpty()->setName(trans('bank_card_id', [], 'message'))); + try { + $validator->assert($data); + } catch (AllOfException $e) { + return jsonFailResponse(getValidationMessages($e)); + } + + $bankCard = PlayerBank::withTrashed()->where('player_id', $player->id)->where('id', $data['id'])->first(); + if (!$bankCard) { + return jsonFailResponse(trans('bank_card_not_found', [], 'message')); + } + if ($bankCard->status == 0) { + return jsonFailResponse(trans('bank_card_disabled', [], 'message')); + } + if (!empty($bankCard->deleted_at)) { + return jsonFailResponse(trans('bank_card_deleted', [], 'message')); + } + $bankCard->delete(); + + return jsonSuccessResponse(trans('success', [], 'message')); + } + + /** + * 上传支付凭证 + * @param Request $request + * @return Response + * @throws GameException + * @throws PlayerCheckException + */ + public function uploadCertificate(Request $request): Response + { + checkPlayer(); + $file = $request->file('certificate'); + $filePath = ''; + if ($file && $file->isValid()) { + if ($file->getSize() > 3 * 1024 * 1024) { + return jsonFailResponse(trans('image_upload_size_fail', ['{size}' => '3M'], 'message')); + } + $allowedExtensions = ['png', 'jpg', 'jpeg']; + $extension = $file->getUploadExtension(); + if (!in_array($extension, $allowedExtensions)) { + return jsonFailResponse(trans('image_upload_fail', [], 'message')); + } + $savePath = '/storage/certificate/' . date("Ymd", time()) . "/"; + $newPath = public_path() . $savePath; + if (!file_exists($newPath)) { + //检查是否有该文件夹,如果没有就创建,并给予最高权限 + mkdir($newPath, 0755, true); + } + $extension = $file->getUploadExtension(); + $filename = time() . '_' . uniqid() . ".{$extension}"; //文件名 + $newPath = $newPath . $filename; + $file->move($newPath); + $filePath = env('APP_URL', 'http://127.0.0.1:8787') . $savePath . $filename; + } + if (!$filePath) { + return jsonFailResponse(trans('failed_to_upload_recharge_voucher', [], 'message')); + } + + return jsonSuccessResponse('success', ['file_path' => $filePath]); + } + + /** + * 玩家充值 + * @param Request $request + * @return Response + * @throws PlayerCheckException + * @throws Exception + */ + public function playerRecharge(Request $request): Response + { + $player = checkPlayer(); + $data = $request->all(); + $validator = v::key('id', v::notEmpty()->intVal()->setName(trans('recharge_setting_id', [], 'message'))) + ->key('certificate', v::notEmpty()->url()->notEmpty()->setName(trans('certificate', [], 'message'))); + + try { + $validator->assert($data); + } catch (AllOfException $e) { + return jsonFailResponse(getValidationMessages($e)); + } + + $rechargeRecord = PlayerRechargeRecord::where('player_id', $player->id) + ->where('status', PlayerRechargeRecord::STATUS_WAIT) + ->where('type', PlayerRechargeRecord::TYPE_REGULAR) + ->first(); + if (!empty($rechargeRecord)) { + return jsonFailResponse(trans('has_not_unfinished_recharge', [], 'message')); + } + /** @var Channel $channel */ + $channel = Channel::where('department_id', $player->department_id)->first(); + if (empty($channel)) { + return jsonFailResponse(trans('channel_not_found', [], 'message')); + } + if ($channel->recharge_status == 0) { + return jsonFailResponse(trans('recharge_closed', [], 'message')); + } + $lang = locale(); + $lang = Str::replace('_', '-', $lang); + /** @var ChannelRechargeSetting $channelRechargeSetting */ + $channelRechargeSetting = ChannelRechargeSetting::with(['channel_recharge_method' => function ($query) use ($lang) { + $query->select(['id', 'account', 'currency'])->with(['methodLang' => function ($query) use ($lang) { + $query->select(['id', 'bank_name', 'sub_bank', 'owner', 'name', 'method_id', 'lang'])->where('lang', $lang); + }]); + }])->whereHas('channel_recharge_method', function ($query) { + $query->whereNull('deleted_at')->where('status', 1); + }) + ->where('department_id', $player->department_id) + ->where('status', 1) + ->where('id', $data['id']) + ->whereNull('deleted_at') + ->first(); + if (empty($channelRechargeSetting)) { + return jsonFailResponse(trans('channel_recharge_setting_not_found', [], 'message')); + } + try { + $allCoins = bcadd($channelRechargeSetting->coins_num, $channelRechargeSetting->gift_coins, 2); + // 生成充值订单 + $playerRechargeRecord = new PlayerRechargeRecord(); + $playerRechargeRecord->player_id = $player->id; + $playerRechargeRecord->department_id = $player->department_id; + $playerRechargeRecord->tradeno = createOrderNo(); + $playerRechargeRecord->player_name = $player->name ?? ''; + $playerRechargeRecord->money = $channelRechargeSetting->money; + $playerRechargeRecord->inmoney = $channelRechargeSetting->money; + $playerRechargeRecord->setting_id = $channelRechargeSetting->id; + $playerRechargeRecord->coins = $channelRechargeSetting->coins_num; + $playerRechargeRecord->gift_coins = $channelRechargeSetting->gift_coins; + $playerRechargeRecord->currency = $channelRechargeSetting->channel_recharge_method->currency; + $playerRechargeRecord->type = $channelRechargeSetting->type; + $playerRechargeRecord->status = PlayerRechargeRecord::STATUS_RECHARGING; + $playerRechargeRecord->certificate = $data['certificate'] ?? ''; + $playerRechargeRecord->bank_name = $channelRechargeSetting->channel_recharge_method->methodLang[0]['bank_name'] ?? ''; + $playerRechargeRecord->sub_bank = $channelRechargeSetting->channel_recharge_method->methodLang[0]['sub_bank'] ?? ''; + $playerRechargeRecord->owner = $channelRechargeSetting->channel_recharge_method->methodLang[0]['owner'] ?? ''; + $playerRechargeRecord->account = $channelRechargeSetting->channel_recharge_method->account; + $playerRechargeRecord->chip_amount = bcmul($allCoins, $channelRechargeSetting->chip_multiple, 2); + $playerRechargeRecord->save(); + } catch (Exception $e) { + return jsonFailResponse($e->getMessage()); + } + + sendSocketMessage('private-admin_group-channel-' . request()->department_id, [ + 'msg_type' => 'player_examine_recharge_order', + 'id' => $rechargeRecord->id, + 'player_id' => $player->id, + 'player_name' => $player->name, + 'player_phone' => $player->phone, + 'money' => $playerRechargeRecord->money, + 'status' => $playerRechargeRecord->status, + 'tradeno' => $playerRechargeRecord->tradeno, + ]); + + return jsonSuccessResponse('success', [ + 'tradeno' => $playerRechargeRecord->tradeno, + 'order_id' => $playerRechargeRecord->id, + 'money' => $playerRechargeRecord->money, + 'coins' => $allCoins, + 'currency' => $playerRechargeRecord->currency, + 'status' => $playerRechargeRecord->status, + 'created_at' => strtotime($playerRechargeRecord->created_at), + 'recharge_setting' => $channelRechargeSetting + ]); + } + + /** + * 提现记录 + * @param Request $request + * @return Response + * @throws PlayerCheckException|GameException + */ + public function cashOutList(Request $request): Response + { + $player = checkPlayer(); + $data = $request->all(); + $validator = v::key('page', v::intVal()->setName(trans('page', [], 'message'))) + ->key('size', v::intVal()->setName(trans('size', [], 'message'))); + + try { + $validator->assert($data); + } catch (AllOfException $e) { + return jsonFailResponse(getValidationMessages($e)); + } + $size = $data['size'] ?? 10; + $totalRecords = PlayerWithdrawRecord::query() + ->where('player_id', $player->id) + ->count(); + + return jsonSuccessResponse('success', [ + 'list' => PlayerWithdrawRecord::where('player_id', $player->id) + ->select(['id', 'coins', 'after_coins', 'created_at', 'status']) + ->forPage($data['page'] ?? 1, $data['size'] ?? 10) + ->orderBy('created_at', 'desc') + ->get() + ->toArray(), + 'total_page' => ceil($totalRecords / $size) + ]); + } + + /** + * 玩家提现 + * @param Request $request + * @return Response + * @throws PlayerCheckException + * @throws Exception + */ + public function playerWithdrawal(Request $request): Response + { + $player = checkPlayer(); + $data = $request->all(); + $validator = v::key('amount', v::intVal()->notEmpty()->min(100)->setName(trans('withdrawal_amount', [], 'message'))) + ->key('bank_id', v::intVal()->setName(trans('withdrawal_bank', [], 'message'))); + + try { + $validator->assert($data); + } catch (AllOfException $e) { + return jsonFailResponse(getValidationMessages($e)); + } + /** @var Channel $channel */ + $channel = Channel::where('department_id', $player->department_id)->first(); + if ($player->status_withdraw != 1) { + return jsonFailResponse(trans('player_withdraw_closed', [], 'message')); + } + if ($player->wallet->money < $data['amount']) { + return jsonFailResponse(trans('insufficient_balance', [], 'message')); + } + if ($channel->withdraw_status == 0) { + return jsonFailResponse(trans('self_withdraw_closed', [], 'message')); + } + if (empty($data['bank_id'])) { + return jsonFailResponse(trans('please_select_player_bank', [], 'message')); + } + /** @var Currency $currency */ + $currency = Currency::where('identifying', $channel->currency)->where('status', 1)->whereNull('deleted_at')->first(); + if (empty($currency)) { + return jsonFailResponse(trans('currency_no_setting', [], 'message')); + } + /** @var PlayerBank $playerBank */ + $playerBank = PlayerBank::where('id', $data['bank_id'])->where('player_id', $player->id)->where('status', 1)->whereNull('deleted_at')->first(); + if (empty($playerBank)) { + return jsonFailResponse(trans('player_bank_not_found', [], 'message')); + } + if ($player->must_chip_amount > $player->chip_amount) { + return jsonFailResponse(trans('must_chip_amount_incomplete', [], 'message')); + } + DB::beginTransaction(); + try { + $money = bcdiv($data['amount'], $currency->ratio, 2); + // 生成订单 + $playerWithdrawRecord = new PlayerWithdrawRecord(); + $beforeGameAmount = $player->wallet->money; + // 玩家钱包扣减 + $player->wallet->money = bcsub($player->wallet->money, $data['amount'], 2); + $playerWithdrawRecord->player_id = $player->id; + $playerWithdrawRecord->department_id = $player->department_id; + $playerWithdrawRecord->tradeno = createOrderNo(); + $playerWithdrawRecord->player_name = $player->name ?? ''; + $playerWithdrawRecord->player_phone = $player->phone ?? ''; + $playerWithdrawRecord->money = $money; + $playerWithdrawRecord->coins = $data['amount']; + $playerWithdrawRecord->after_coins = $player->wallet->money; + $playerWithdrawRecord->fee = 0; + $playerWithdrawRecord->inmoney = bcsub($playerWithdrawRecord->money, $playerWithdrawRecord->fee, 2); // 实际提现金额 + $playerWithdrawRecord->currency = $channel->currency; + $playerWithdrawRecord->bank_name = $playerBank->bank_name; + $playerWithdrawRecord->account = $playerBank->account; + $playerWithdrawRecord->account_name = $playerBank->account_name; + $playerWithdrawRecord->type = PlayerWithdrawRecord::TYPE_SELF; + $playerWithdrawRecord->status = PlayerWithdrawRecord::STATUS_WAIT; + $playerWithdrawRecord->save(); + + // 更新玩家统计 + $player->player_extend->withdraw_amount = bcadd($player->player_extend->withdraw_amount, $playerWithdrawRecord->coins, 2); + $player->push(); + //寫入金流明細 + $playerDeliveryRecord = new PlayerDeliveryRecord; + $playerDeliveryRecord->player_id = $playerWithdrawRecord->player_id; + $playerDeliveryRecord->department_id = $playerWithdrawRecord->department_id; + $playerDeliveryRecord->target = $playerWithdrawRecord->getTable(); + $playerDeliveryRecord->target_id = $playerWithdrawRecord->id; + $playerDeliveryRecord->type = PlayerDeliveryRecord::TYPE_WITHDRAWAL; + $playerDeliveryRecord->source = 'channel_withdrawal'; + $playerDeliveryRecord->amount = $playerWithdrawRecord->coins; + $playerDeliveryRecord->amount_before = $beforeGameAmount; + $playerDeliveryRecord->amount_after = $player->wallet->money; + $playerDeliveryRecord->tradeno = $playerWithdrawRecord->tradeno ?? ''; + $playerDeliveryRecord->remark = $playerWithdrawRecord->remark ?? ''; + $playerDeliveryRecord->save(); + DB::commit(); + } catch (\Exception $e) { + DB::rollBack(); + return jsonFailResponse(trans('system_error', [], 'message') . $e->getMessage()); + } + + $notice = new Notice(); + $notice->department_id = $playerWithdrawRecord->department_id; + $notice->player_id = $playerWithdrawRecord->player_id; + $notice->source_id = $playerWithdrawRecord->id; + $notice->type = Notice::TYPE_EXAMINE_WITHDRAW; + $notice->receiver = Notice::RECEIVER_DEPARTMENT; + $notice->is_private = 0; + $notice->title = '渠道提现待审核'; + $notice->content = '提现订单待审核,玩家' . (empty($playerWithdrawRecord->player_name) ? $playerWithdrawRecord->player_name : $playerWithdrawRecord->player_phone) . ', 提现游戏点: ' . $playerWithdrawRecord->point . ' 提现金额: ' . $playerWithdrawRecord->money; + $notice->save(); + + if ($playerWithdrawRecord->status == PlayerWithdrawRecord::STATUS_FAIL) { + return jsonFailResponse(trans('withdraw_fail', [], 'message')); + } + sendSocketMessage('private-admin_group-channel-' . $channel->department_id, [ + 'msg_type' => 'player_create_withdraw_order', + 'id' => $playerWithdrawRecord->id, + 'player_id' => $player->id, + 'player_name' => $player->name, + 'player_phone' => $player->phone, + 'money' => $playerWithdrawRecord->money, + 'status' => $playerWithdrawRecord->status, + 'tradeno' => $playerWithdrawRecord->tradeno, + ]); + return jsonSuccessResponse('success', [ + 'tradeno' => $playerWithdrawRecord->tradeno, + 'order_id' => $playerWithdrawRecord->id, + 'money' => $playerWithdrawRecord->money, + 'currency' => $playerWithdrawRecord->currency, + 'status' => $playerWithdrawRecord->status, + ]); + } + + /** + * 首页活动 + * @return Response + * @throws PlayerCheckException|GameException + */ + public function homeActivity(): Response + { + $player = checkPlayer(); + $list = Activity::query() + ->where('department_id', $player->department_id) + ->where('status', 1) + ->limit(3) + ->orderBy('sort', 'desc') + ->get(); + + $lang = locale(); + $lang = Str::replace('_', '-', $lang); + $activityList = []; + /** @var Activity $activity */ + foreach ($list as $activity) { + /** @var ActivityContent $activityContent */ + $activityContent = $activity->activity_content->where('lang', $lang)->first(); + if ($activity->type == Activity::TYPE_CUSTOM) { + if (strtotime($activity->start_time) > time() || strtotime($activity->end_time) < time()) { + continue; + } + } + if ($activity->type == Activity::TYPE_CYCLE) { + if ($activity->cycle_type == 'Week' && $activity->cycle_data != Carbon::now()->dayOfWeek) { + continue; + } + if ($activity->cycle_type == 'Month' && $activity->cycle_data != Carbon::now()->day) { + continue; + } + } + $activityList[] = [ + 'id' => $activity->id, + 'start_time' => $activity->start_time, + 'end_time' => $activity->end_time, + 'name' => $activityContent->name ?? '', + 'lang' => $activityContent->lang, + 'picture' => $activityContent->picture ?? '', + 'recharge_id' => $activity->recharge_id, + 'method_id' => $activity->channelRechargeSetting->method_id, + ]; + } + + return jsonSuccessResponse('success', [ + 'list' => $activityList, + ]); + } + + /** + * cash in记录 + * @param Request $request + * @return Response + * @throws PlayerCheckException|GameException + */ + public function cashInList(Request $request): Response + { + $player = checkPlayer(); + $data = $request->all(); + $validator = v::key('page', v::intVal()->setName(trans('page', [], 'message'))) + ->key('size', v::intVal()->setName(trans('size', [], 'message'))); + + try { + $validator->assert($data); + } catch (AllOfException $e) { + return jsonFailResponse(getValidationMessages($e)); + } + $size = $data['size'] ?? 10; + $totalRecords = PlayerRechargeRecord::query() + ->where('player_id', $player->id) + ->count(); + $list = PlayerRechargeRecord::leftJoin('player_delivery_record as pdr',function ($join){ + $join->on( 'pdr.target_id', '=', 'player_recharge_record.id') + ->where('pdr.type', '=', PlayerDeliveryRecord::TYPE_RECHARGE); + })->where('player_recharge_record.player_id', $player->id) + ->select(['player_recharge_record.id', 'player_recharge_record.status', 'player_recharge_record.coins', 'pdr.amount_after', 'player_recharge_record.created_at']) + ->forPage($data['page'] ?? 1, $data['size'] ?? 10) + ->orderBy('player_recharge_record.created_at', 'desc') + ->get() + ->toArray(); + foreach ($list as &$item) { + $item['created_at'] = Carbon::parse($item['created_at'])->format('Y/m/d H:i'); + $item['amount_after'] = round($item['amount_after'], 2); + } + return jsonSuccessResponse('success', [ + 'list' => $list, + 'total_page' => ceil($totalRecords / $size) + ]); + } + + /** + * 消息列表 + * @param Request $request + * @return Response + * @throws PlayerCheckException|GameException + */ + public function noticeList(Request $request): Response + { + $player = checkPlayer(); + $data = $request->all(); + $validator = v::key('page', v::intVal()->setName(trans('page', [], 'message'))) + ->key('size', v::intVal()->setName(trans('size', [], 'message'))); + + try { + $validator->assert($data); + } catch (AllOfException $e) { + return jsonFailResponse(getValidationMessages($e)); + } + $noticeList = Notice::query() + ->leftJoin('player_withdraw_record', 'player_withdraw_record.id', '=', 'notice.source_id') + ->select(['notice.id', 'notice.player_id', 'notice.title', 'notice.type', 'notice.content', 'notice.created_at', 'player_withdraw_record.status', 'player_withdraw_record.money']) + ->where('notice.player_id', $player->id) + ->where('notice.receiver', Notice::RECEIVER_PLAYER) + ->where('notice.is_private', 1) + ->whereNull('notice.deleted_at') + ->forPage($data['page'], $data['size']) + ->orderBy('notice.status', 'asc') + ->orderBy('notice.id', 'desc') + ->get(); + foreach ($noticeList as &$item) { + $item['title'] = trans('title.' . $item->type.'.'.$item->status, + ['{point}' => $item->money], + 'notice'); + $item['content'] = trans('content.' . $item->type.'.'.$item->status, + ['{point}' => $item->money], + 'notice'); + } + // 更新为已读状态 + Notice::where('status', 0) + ->where('receiver', Notice::RECEIVER_PLAYER) + ->where('is_private', 1) + ->where('player_id', $player->id) + ->whereNull('deleted_at') + ->update([ + 'status' => 1 + ]); + + return jsonSuccessResponse('success', [ + 'list' => $noticeList + ]); + } + + /** + * 渠道信息 + * @return Response + * @throws PlayerCheckException|GameException + */ + public function channelInfo(): Response + { + $player = checkPlayer(); + return jsonSuccessResponse('success', [ + 'channel_info' => Channel::query() + ->where('department_id', $player->department_id) + ->first(), + ]); + } + + /** + * 提现记录 + * @param Request $request + * @return Response + * @throws PlayerCheckException|GameException + */ + public function withdrawList(Request $request): Response + { + checkPlayer(); + $date = date('Y-m-d'); + $list = PlayerWithdrawRecord::with('player:id,uuid,phone') + ->where('status', 2) + ->whereDate('finish_time', $date) + ->select(['money', 'player_id', 'updated_at']) + ->orderBy('finish_time', 'desc') + ->get() + ->toArray(); + foreach ($list as &$item) { + $PlayerWalletTransfer = PlayerWalletTransfer::query()->where('player_id', $item['player_id']) + ->where('type', PlayerWalletTransfer::TYPE_IN) + ->where('created_at', '<=', $item['updated_at']) + ->orderBy('id', 'desc') + ->first(); + $item['game'] = $PlayerWalletTransfer->gamePlatform->title; + } + unset($item); + $copyList = []; + $broadcast = Broadcast::query() + ->select('title','num','phone','updated_at') + ->where('status', 1) + ->where('type', 1) + ->wheredate('date', $date) + ->get() + ->toArray(); + foreach ($broadcast as $item) { + $copyList[] = [ + 'money' => $item['num'], + 'player_id' => 0, + 'updated_at' => $item['updated_at'], + 'player' => [ + 'id' => 0, + 'uuid' => 0, + 'phone' => $item['phone'], + ], + 'game' => $item['title'] + ]; + } + $data = array_merge($list, $copyList); + $key = array_column($data,'updated_at'); + array_multisort($key, SORT_DESC, $data); + return jsonSuccessResponse('success', [ + 'list' => $data, + ]); + } +} diff --git a/app/api/controller/v1/PlayerController.php b/app/api/controller/v1/PlayerController.php new file mode 100644 index 0000000..eadcd8a --- /dev/null +++ b/app/api/controller/v1/PlayerController.php @@ -0,0 +1,1251 @@ +notEmpty()->setName(trans('phone', [], 'message'))) + ->key('type', v::in([1, 2])->notEmpty()->setName(trans('type', [], 'message'))) + ->key('code', v::stringType()->setName(trans('code', [], 'message')), false) + ->key('password', v::stringType()->setName(trans('password', [], 'message')), false); + $data = $request->all(); + try { + $validator->assert($data); + //手机号规则 + if(!validateMalaysianPhoneNumber($data['phone'])){ + throw new Exception(trans('phone_val_error', [], 'message')); + } + $pattern = '/(\+60|60|0060)01\d{8,9}/'; + if (preg_match($pattern, $data['phone'])) { + $data['phone'] = substr_replace($data['phone'], '601', 0, 4); + } + /** @var Player $player */ + $player = Player::where('phone', $data['phone']) + ->where('department_id', request()->department_id) + ->first(); + if(empty($player)){ + throw new Exception(trans('player_not_found', [], 'message')); + } + //密码登录 + if($data['type'] == 1){ + if(!isset($data['password']) || !password_verify($data['password'],$player->password)){ + throw new Exception(trans('password_error', [], 'message')); + } + }else{ + //验证码错误 + $phone_code = Redis::get(setSmsKey($data['phone'], PhoneSmsLog::TYPE_LOGIN)); + if(!$phone_code){ + throw new Exception(trans('phone_sms_expire', [], 'message')); + } + if(!isset($data['code']) || empty($data['code']) || $phone_code != $data['code']){ + throw new Exception(trans('phone_sms_error', [], 'message')); + } + } + if ($player->status == Player::STATUS_STOP) { + throw new Exception(trans('account_stop', [], 'message')); + } + $player->last_login = date('Y-m-d H:i:s'); + addLoginRecord($player->id); + } catch (AllOfException $e) { + throw new Exception(getValidationMessages($e)); + } catch (Exception $e) { + throw new Exception($e->getMessage()); + } + + return jsonSuccessResponse('success', [ + 'token' => JwtToken::generateToken([ + 'id' => $player->id, + 'avatar' => $player->avatar, + 'name' => $player->name, + 'type' => $player->type, + 'currency' => $player->currency, + 'recommended_code' => $player->recommended_code, + ]), + ]); + } + + /** + * 手机号注册 + * @param Request $request + * @return Response + * @throws Exception + */ + public function phoneRegister(Request $request): Response + { + $data = $request->all(); + $validator = v::key('phone', v::stringType()->notEmpty()->setName(trans('phone', [], 'message'))) + ->key('code', v::stringType()->setName(trans('code', [], 'message'))) + ->key('password', v::stringType()->setName(trans('password', [], 'message'))) + ->key('confim_password', v::stringType()->setName(trans('confim_password', [], 'message'))) + ->key('nickname', v::stringType()->setName(trans('nickname', [], 'message'))); + try { + $validator->assert($data); + //网页注册 + if(!empty($data['web_register']) && empty($data['recommended_code'])){ + throw new Exception(trans('recommend_player_not_found', [], 'message')); + } + //手机号规则 + if(!validateMalaysianPhoneNumber($data['phone'])){ + throw new Exception(trans('phone_val_error', [], 'message')); + } + $pattern = '/(\+60|60|0060)01\d{8,9}/'; + if (preg_match($pattern, $data['phone'])) { + $data['phone'] = substr_replace($data['phone'], '601', 0, 4); + } + //两次密码不一致 + if($data['password'] != $data['confim_password']){ + throw new Exception(trans('confim_password_differ', [], 'message')); + } + //验证码错误 + $phone_code = Redis::get(setSmsKey($data['phone'], PhoneSmsLog::TYPE_REGISTER)); + if(!$phone_code){ + throw new Exception(trans('phone_sms_expire', [], 'message')); + } + if(!isset($data['code']) || empty($data['code']) || $phone_code != $data['code']){ + throw new Exception(trans('phone_sms_error', [], 'message')); + } + /** @var Player $player */ + $player = Player::where('phone', $data['phone']) + ->where('department_id', request()->department_id) + ->first(); + //手机号已被注册 + if($player){ + throw new Exception(trans('phone_has_registered', [], 'message')); + } + $create_player['phone'] = $data['phone']; + $create_player['password'] = $data['password']; + $create_player['name'] = $data['nickname']; + $player = createPlayer(request()->department_id,$create_player); + } catch (AllOfException $e) { + throw new Exception(getValidationMessages($e)); + } catch (Exception $e) { + throw new Exception(trans('create_player_fail', [], 'message') . $e->getMessage()); + } + return jsonSuccessResponse('success', [ + 'token' => JwtToken::generateToken([ + 'id' => $player->id, + 'avatar' => $player->avatar, + 'name' => $player->name, + 'type' => $player->type, + 'currency' => $player->currency, + 'recommended_code' => $player->recommended_code, + ]), + ]); + } + + /** + * 忘记密码 + * @param Request $request + * @return Response + * @throws \Exception + */ + public function forgetPassword(Request $request): Response + { + $data = $request->all(); + $validator = v::key('phone', v::stringType()->notEmpty()->setName(trans('phone', [], 'message'))) + ->key('code', v::stringType()->setName(trans('code', [], 'message'))) + ->key('password', v::stringType()->setName(trans('password', [], 'message'))) + ->key('confim_password', v::stringType()->setName(trans('confim_password', [], 'message'))); + try { + $validator->assert($data); + //手机号规则 + if(!validateMalaysianPhoneNumber($data['phone'])){ + throw new Exception(trans('phone_val_error', [], 'message')); + } + $pattern = '/(\+60|60|0060)01\d{8,9}/'; + if (preg_match($pattern, $data['phone'])) { + $data['phone'] = substr_replace($data['phone'], '601', 0, 4); + } + //两次密码不一致 + if($data['password'] != $data['confim_password']){ + throw new Exception(trans('confim_password_differ', [], 'message')); + } + //验证码错误 + $phone_code = Redis::get(setSmsKey($data['phone'], PhoneSmsLog::TYPE_CHANGE_PASSWORD)); + if(!$phone_code){ + throw new Exception(trans('phone_sms_expire', [], 'message')); + } + if(!isset($data['code']) || empty($data['code']) || $phone_code != $data['code']){ + throw new Exception(trans('phone_sms_error', [], 'message')); + } + + /** @var Player $player */ + $player = Player::where('phone', $data['phone']) + ->where('department_id', request()->department_id) + ->first(); + if(empty($player)){ + throw new Exception(trans('player_not_found', [], 'message')); + } + $player->password = $data['password']; + $player->push(); + } catch (AllOfException $e) { + throw new Exception(getValidationMessages($e)); + } catch (Exception $e) { + throw new Exception($e->getMessage()); + } + return jsonSuccessResponse(trans('password_revise_suc', [], 'message')); + } + + /** + * 发送验证码 + * @param Request $request + * @return Response + * @throws \Exception + */ + public function sendMsg(Request $request): Response + { + $data = $request->all(); + $validator = v::key('phone', v::stringType()->notEmpty()->setName(trans('phone', [], 'message'))) + ->key('type', v::stringType()->setName(trans('type', [], 'message')), false); + try { + $validator->assert($data); + //手机号规则 + if(!validateMalaysianPhoneNumber($data['phone'])){ + throw new Exception(trans('phone_val_error', [], 'message')); + } + $pattern = '/(\+60|60|0060)01\d{8,9}/'; + if (preg_match($pattern, $data['phone'])) { + $data['phone'] = substr_replace($data['phone'], '601', 0, 4); + } + if ($data['type'] == 1 || $data['type'] == 3) { + $player = Player::query()->where('phone', $data['phone'])->first(); + if(empty($player)){ + throw new Exception(trans('player_not_found', [], 'message')); + } + } + $env = config('app.env'); + $config = config('sms'); + $code = ($env == 'pro' ? random_int(10000, 99999) : config('sms.default_code')); + //发送验证码 + $params = [ + "userId" => $config['userId'], + "account"=> $config['account'], + "password"=> $config['password'], + "mobile"=> $data['phone'], + "content"=> '【Samsung88】您的验证码为'.$code.',5分钟内有效。', + "sendTime"=> "", + "action"=> "sendhy", + "custom"=> "1" + ]; + $result = doCurl($config['aliwy_url'], $params); + if($result['code'] == 200 && $result['data']['status'] == 'Success'){ + $key = setSmsKey($data['phone'], $data['type']); + $phoneSmsLog = new PhoneSmsLog(); + $phoneSmsLog->player_id = isset($data['player_id']) ? $data['player_id'] : 0; + $phoneSmsLog->code = $code; + $phoneSmsLog->phone = $data['phone']; + $phoneSmsLog->send_times = 1; + $phoneSmsLog->type = $data['type']; + $phoneSmsLog->expire_time = date("Y-m-d H:i:s", time() + 300); + $phoneSmsLog->response = $result ? json_encode($result) : ''; + Redis::set($key, $code, 'EX', 300); + $phoneSmsLog->status = 1; + $phoneSmsLog->save(); + }else{ + throw new Exception($result['data']['message']); + } + } catch (AllOfException $e) { + throw new Exception(getValidationMessages($e)); + }catch (Exception $e) { + throw new Exception($e->getMessage()); + } + return jsonSuccessResponse(trans('phone_sms_send_success', [], 'message')); + } + + /** + * 获取用户信息 + * @param Request $request + * @return Response + * @throws GameException + * @throws PlayerCheckException + */ + public function playerInfo(Request $request): Response + { + $player = checkPlayer(); + + $prizes = Prize::query() + ->select('pic', 'name', 'id', 'type') + ->where('department_id', $player->department_id) + ->where('status', 1) + ->orderBy('probability') + ->get() + ->toArray(); + $game = Game::query()->select('description', 'game_url')->first(); + return jsonSuccessResponse('success', [ + 'id' => $player->id, + 'phone' => $player->phone, + 'avatar' => $player->avatar, + 'currency' => $player->currency, + 'uuid' => $player->uuid, + 'money' => $player->wallet->money, + 'name' => $player->name, + 'recharge_amount' => $player->player_extend->recharge_amount ?? 0, + 'game_description' => $game->description, + 'game_url' => $game->game_url, + 'prize_list' => $prizes, + 'bank_list' => PlayerBank::query() + ->select('id', 'bank_name', 'account', 'account_name', 'bank_code') + ->where('player_id', $player->id) + ->where('status', 1) + ->where('pay_type', '!=', 4) + ->get(), + 'usdt' => PlayerBank::query() + ->select('id', 'wallet_address', 'qr_code') + ->where('player_id', $player->id) + ->where('status', 1) + ->where('pay_type', 4) + ->first(), + 'whats_app' => Channel::query()->where('department_id', $player->department_id)->value('telegram_url'), + ]); + } + + /** + * 获取充值列表 + * @return Response + * @throws PlayerCheckException|GameException + */ + public function rechargeList(): Response + { + $player = checkPlayer(); + $lang = locale(); + $lang = Str::replace('_', '-', $lang); + $channelRechargeMethod = ChannelRechargeMethod::query() + ->with(['methodLang' => function ($query) use ($lang) { + $query->select(['id', 'bank_name', 'sub_bank', 'owner', 'name', 'method_id', 'lang'])->where('lang', $lang); + }]) + ->where('status', 1) + ->where('department_id', $player->department_id) + ->orderBy('created_at', 'desc') + ->select(['id', 'account', 'currency']) + ->get(); + $list = []; + /** @var ChannelRechargeMethod $item */ + foreach ($channelRechargeMethod as $item) { + $list[] = [ + 'id' => $item->id, + 'account' => $item->account, + 'currency' => $item->currency, + 'name' => $item->methodLang[0]['name'] ?? '', + 'bank_name' => $item->methodLang[0]['bank_name'] ?? '', + 'sub_bank' => $item->methodLang[0]['sub_bank'] ?? '', + 'owner' => $item->methodLang[0]['sub_bank'] ?? '', + ]; + } + + return jsonSuccessResponse('success', [ + 'list' => $list, + ]); + } + + /** + * 获取充值项列表 + * @param Request $request + * @return Response + * @throws PlayerCheckException|GameException + */ + public function rechargeSettingList(Request $request): Response + { + $player = checkPlayer(); + $data = $request->all(); + $validator = v::key('method_id', v::oneOf(v::intVal(), v::equals(''))->setName(trans('method_id', [], 'message')), false) + ->key('setting_id', v::oneOf(v::intVal(), v::equals(''))->setName(trans('setting_id', [], 'message')), false) + ->key('type', v::in([ChannelRechargeSetting::TYPE_REGULAR, ChannelRechargeSetting::TYPE_ACTIVITY, ''])->setName(trans('recharge_type', [], 'message')), false); + try { + $validator->assert($data); + } catch (AllOfException $e) { + return jsonFailResponse(getValidationMessages($e)); + } + $list = ChannelRechargeSetting::query() + ->whereHas('channel_recharge_method', function ($query) { + $query->where('status', 1); + }) + ->when(!empty($data['method_id']), function ($query) use ($data) { + $query->where('method_id', $data['method_id']); + }) + ->when(!empty($data['setting_id']), function ($query) use ($data) { + $query->where('id', $data['setting_id']); + }) + ->when(!empty($data['type']), function ($query) use ($data) { + $query->where('type', $data['type']); + }) + ->where('department_id', $player->department_id) + ->where('status', 1) + ->orderBy('coins_num', 'asc') + ->select(['id', 'title', 'chip_multiple', 'coins_num', 'money', 'type', 'method_id']) + ->get(); + + return jsonSuccessResponse('success', [ + 'list' => $list, + ]); + } + + /** + * 充值详情 + * @param Request $request + * @return Response + * @throws PlayerCheckException|GameException + */ + public function rechargeInfo(Request $request): Response + { + $player = checkPlayer(); + $data = $request->all(); + $validator = v::key('id', v::intVal()->notEmpty()->setName(trans('recharge_id', [], 'message'))); + try { + $validator->assert($data); + } catch (AllOfException $e) { + return jsonFailResponse(getValidationMessages($e)); + } + $lang = locale(); + $lang = Str::replace('_', '-', $lang); + /** @var ChannelRechargeSetting $recharge */ + $recharge = ChannelRechargeSetting::query() + ->with(['channel_recharge_method' => function ($query) use ($lang) { + $query->select(['id', 'account', 'currency'])->with(['methodLang' => function ($query) use ($lang) { + $query->select(['id', 'bank_name', 'sub_bank', 'owner', 'name', 'method_id', 'lang'])->where('lang', $lang); + }]); + }]) + ->where('department_id', $player->department_id) + ->where('id', $data['id']) + ->select(['id', 'title', 'chip_multiple', 'coins_num', 'gift_coins', 'money', 'type', 'method_id', 'status']) + ->first(); + + if (!$recharge) { + return jsonFailResponse(trans('recharge_setting_not_found', [], 'message')); + } + if ($recharge->status == 0) { + return jsonFailResponse(trans('recharge_setting_disabled', [], 'message')); + } + + return jsonSuccessResponse(trans('success', [], 'message'), [ + 'recharge_setting' => $recharge + ]); + } + + /** + * 编辑玩家名称 + * @param Request $request + * @return Response + * @throws PlayerCheckException|GameException + */ + public function editPlayerName(Request $request): Response + { + $player = checkPlayer(); + $data = $request->all(); + $validator = v::key('player_name', v::stringVal()->length(1, 50)->setName(trans('player_name', [], 'message'))); + + try { + $validator->assert($data); + } catch (AllOfException $e) { + return jsonFailResponse(getValidationMessages($e)); + } + if (Player::withTrashed()->where('name', $data['player_name'])->where('id', '!=', $player->id)->exists()) { + return jsonFailResponse(trans('player_name_has_exist', [], 'message')); + } + $player->name = $data['player_name'] ?? ''; + $player->save(); + + return jsonSuccessResponse('success'); + } + + /** + * 數據中心 + * @return Response + * @throws PlayerCheckException|GameException + */ + public function giftCenter(): Response + { + $player = checkPlayer(); + + return jsonSuccessResponse('success', [ + 'chip_amount' => $player->chip_amount, + 'must_chip_amount' => $player->must_chip_amount, + 'coins' => $player->wallet->money, + ]); + } + + /** + * 获取四方充值列表 + * @return Response + * @throws PlayerCheckException|GameException + */ + public function seRechargeList(): Response + { + $player = checkPlayer(false); + $list = SepayRecharge::query()->where('department_id', $player->department_id) + ->where('status', 1) + ->orderBy('money') + ->select(['id', 'title', 'coins_num', 'gift_coins', 'first_coins', 'money']) + ->get()->toArray(); + $time = date('H:i:s'); + foreach ($list as &$value){ + $value['P2PDEPOSIT'] = 0; + $value['DUITNOWP2P'] = 0; + if ($value['money'] >= 5 && $value['money'] <= 1000) { + $value['P2PDEPOSIT'] = 1; + if ($time >= '23:50:00' || $time <= '01:05:00') { + $value['P2PDEPOSIT'] = 0; + } + } + if ($value['money'] >= 30 && $value['money'] <= 20000) { + $value['DUITNOWP2P'] = 1; + } + $firstRecharge = PlayerRechargeRecord::query() + ->where('player_id', $player->id) + ->where('status', 2) + ->where('setting_id', $value['id']) + ->first(); + if ($firstRecharge) { + $value['first_coins'] = '0.00'; + } + } + unset($value); + $bankList = []; + $bankSelect = 0; + + if (in_array($player->channel->pay_type, [2, 3])) { + $bankSelect = 1; + $bankList = BankList::query() + ->select(['bank_name', 'bank_code']) + ->where('pay_type', $player->channel->pay_type) + ->where('type', 1) + ->whereNull('deleted_at') + ->get() + ->toArray(); + } + $rechargeSetting = ChannelRechargeMethod::query() + ->with('methodLang') + ->select(['id', 'account', 'wallet_address', 'qr_code', 'type']) + ->where('department_id', $player->department_id) + ->where('status', 1) + ->get()->toArray(); + foreach ($rechargeSetting as &$item) { + if ($item['type'] == 1) { + $item['name'] = 'artificial'; + } else { + $item['name'] = 'usdt'; + } + } + unset($item); + $rechargeSetting[] = [ + 'name' => 'SKL', + 'type' => 3, + ]; + return jsonSuccessResponse('success', [ + 'list' => $list, + 'bank_select' => $bankSelect, + 'bank_list' => $bankList, + 'recharge_setting' => $rechargeSetting + ]); + } + + /** + * 玩家充值 + * @param Request $request + * @return Response + * @throws PlayerCheckException + * @throws GameException + */ + public function seRecharge(Request $request): Response + { + $player = checkPlayer(); + $data = $request->all(); + $validator = v::key('amount', v::notEmpty()->intVal()->setName(trans('recharge_amount', [], 'message'))) + ->key('type', v::notEmpty()->intVal()->setName(trans('type', [], 'message'))); + + try { + $validator->assert($data); + } catch (AllOfException $e) { + return jsonFailResponse(getValidationMessages($e)); + } + /** @var Channel $channel */ + $channel = Channel::where('department_id', $player->department_id)->first(); + if (empty($channel)) { + return jsonFailResponse(trans('channel_not_found', [], 'message')); + } + /** @var SepayRecharge $sepayInfo */ + $sepayInfo = SepayRecharge::query()->where('department_id', $player->department_id) + ->where('money', $data['amount'])->first(); + $firstCoins = 0; + $allCoins = $data['amount']; + if(!empty($sepayInfo)) { + if ($sepayInfo->first_coins > 0) { + $firstRecharge = PlayerRechargeRecord::query() + ->where('player_id', $player->id) + ->where('status', 2) + ->where('setting_id', $sepayInfo->id) + ->doesntExist(); + if ($firstRecharge) { + $firstCoins = $sepayInfo->first_coins; + } + } + $allCoins = bcadd($sepayInfo->coins_num, $firstCoins, 2); + } + $orderNo = createOrderNo(); + // 生成充值订单 + $playerRechargeRecord = new PlayerRechargeRecord(); + $playerRechargeRecord->player_id = $player->id; + $playerRechargeRecord->department_id = $player->department_id; + $playerRechargeRecord->tradeno = $orderNo; + $playerRechargeRecord->player_name = $player->name ?? ''; + $playerRechargeRecord->money = $data['amount']; + $playerRechargeRecord->inmoney = $data['amount']; + $playerRechargeRecord->setting_id = $sepayInfo->id ?? 0; + $playerRechargeRecord->coins = $data['amount']; + $playerRechargeRecord->gift_coins = $firstCoins; + $playerRechargeRecord->currency = 'RM'; + //手动支付 + if ($data['type'] == 1) { + $playerRechargeRecord->type = PlayerRechargeRecord::TYPE_REGULAR; + $playerRechargeRecord->status = PlayerRechargeRecord::STATUS_WAIT; + $playerRechargeRecord->save(); + //USDT支付 + } elseif ($data['type'] == 2) { + $rate = ChannelRechargeMethod::query() + ->where('department_id', $player->department_id) + ->where('type', 2) + ->value('rate'); + $playerRechargeRecord->rate = $rate; + $playerRechargeRecord->currency = 'USDT'; + $playerRechargeRecord->type = PlayerRechargeRecord::TYPE_REGULAR; + $playerRechargeRecord->status = PlayerRechargeRecord::STATUS_WAIT; + $playerRechargeRecord->save(); + //三方支付 + }elseif ($data['type'] == 3) { + if ($data['payment_code'] == 'DUITNOWP2P') { + $paymentCode = 'QR'; + } else { + $paymentCode = $data['bank_code']; + } + $params = [ + 'amount' => $data['amount'], + 'paymentCode' => $paymentCode, + 'name' => 'ggl-ds ' . $player->uuid, + 'orderNo' => $orderNo, + ]; + $res = (new SklPayServices())->deposit($params); + + if (!isset($res['status']) && empty($res['code'])) { + DB::beginTransaction(); + try { + $pay_url = $res['transaction_link']; + $playerRechargeRecord->payment_method = $params['paymentCode'] == 'QR' ? 'QR' : 'P2P'; + $playerRechargeRecord->external_reference = $res['transaction_id']; + $playerRechargeRecord->type = PlayerRechargeRecord::TYPE_REGULAR; + $playerRechargeRecord->status = PlayerRechargeRecord::STATUS_WAIT; + $playerRechargeRecord->remark = 'SKL99'; + $playerRechargeRecord->save(); + DB::commit(); + } catch (\Exception $e) { + DB::rollBack(); + return jsonFailResponse($e->getMessage()); + } + return jsonSuccessResponse('success', ['pay_url' => $pay_url]); + } else { + return jsonFailResponse($res['error']); + } + } + + sendSocketMessage('private-admin_group-channel-' . request()->department_id, [ + 'msg_type' => 'player_examine_recharge_order', + 'id' => $playerRechargeRecord->id, + 'player_id' => $player->id, + 'player_name' => $player->name, + 'player_phone' => $player->phone, + 'money' => $playerRechargeRecord->money, + 'status' => $playerRechargeRecord->status, + 'tradeno' => $playerRechargeRecord->tradeno, + ]); + + $rechargeSetting = ChannelRechargeMethod::query() + ->with('methodLang') + ->select(['id', 'account', 'wallet_address', 'qr_code', 'type']) + ->where('department_id', $player->department_id) + ->where('status', 1) + ->where('type', $data['type']) + ->get()->toArray(); + return jsonSuccessResponse('success', [ + 'tradeno' => $playerRechargeRecord->tradeno, + 'order_id' => $playerRechargeRecord->id, + 'money' => $playerRechargeRecord->money, + 'coins' => $allCoins, + 'currency' => $playerRechargeRecord->currency, + 'status' => $playerRechargeRecord->status, + 'created_at' => strtotime($playerRechargeRecord->created_at), + 'recharge_setting' => $rechargeSetting + ]); + } + + /** + * 完成充值 + * @param Request $request + * @return Response + * @throws PlayerCheckException + * @throws PushException|GameException + */ + public function completeRecharge(Request $request): Response { + $player = checkPlayer(); + $data = $request->post(); + $validator = v::key('id', v::notEmpty()->intVal()->setName(trans('recharge_record_id', [], 'message'))) + ->key('certificate', v::notEmpty()->stringVal()->setName(trans('certificate', [], 'message'))); + try { + $validator->assert($data); + } catch (AllOfException $e) { + return jsonFailResponse(getValidationMessages($e)); + } + /** @var PlayerRechargeRecord $rechargeRecord */ + $rechargeRecord = PlayerRechargeRecord::query() + ->where('player_id', $player->id) + ->where('id', $data['id']) + ->first(); + if (empty($rechargeRecord)) { + return jsonFailResponse(trans('recharge_record_not_found', [], 'message')); + } + switch ($rechargeRecord->status) { + case PlayerRechargeRecord::STATUS_RECHARGING: + return jsonFailResponse(trans('recharge_record_review_in_progress', [], 'message')); + case PlayerRechargeRecord::STATUS_RECHARGED_SUCCESS: + return jsonFailResponse(trans('recharge_completed', [], 'message')); + case PlayerRechargeRecord::STATUS_RECHARGED_FAIL: + return jsonFailResponse(trans('recharge_failed', [], 'message')); + case PlayerRechargeRecord::STATUS_RECHARGED_CANCEL: + return jsonFailResponse(trans('player_has_cancelled_recharge', [], 'message')); + case PlayerRechargeRecord::STATUS_RECHARGED_REJECT: + return jsonFailResponse(trans('recharge_order_review_failed', [], 'message')); + case PlayerRechargeRecord::STATUS_RECHARGED_SYSTEM_CANCEL: + return jsonFailResponse(trans('system_cancels_order', [], 'message')); + } + $rechargeRecord->status = PlayerRechargeRecord::STATUS_RECHARGING; + $rechargeRecord->certificate = $data['certificate']; + $rechargeRecord->save(); + + sendSocketMessage('private-admin_group-channel-' . $player->department_id, [ + 'msg_type' => 'player_examine_recharge_order', + 'id' => $rechargeRecord->id, + 'player_id' => $player->id, + 'player_name' => $player->name, + 'player_phone' => $player->phone, + 'money' => $rechargeRecord->money, + 'status' => $rechargeRecord->status, + 'tradeno' => $rechargeRecord->tradeno, + ]); + + return jsonSuccessResponse('success'); + } + + /** + * 玩家提现 + * @param Request $request + * @return Response + * @throws PlayerCheckException + * @throws GameException + */ + public function seWithdrawal(Request $request): Response + { + $player = checkPlayer(); + $data = $request->all(); + $validator = v::key('amount', v::intVal()->notEmpty()->min(100)->max(20000)->setName(trans('withdrawal_amount', [], 'message'))) + ->key('bank_id', v::intVal()->setName(trans('withdrawal_bank', [], 'message'))) + ->key('type', v::intVal()->setName(trans('type', [], 'message'))); + + try { + $validator->assert($data); + } catch (AllOfException $e) { + return jsonFailResponse(getValidationMessages($e)); + } + + /** @var Channel $channel */ + $channel = Channel::where('department_id', $player->department_id)->first(); + if ($player->status_withdraw != 1) { + return jsonFailResponse(trans('player_withdraw_closed', [], 'message')); + } + if ($player->wallet->money < $data['amount']) { + return jsonFailResponse(trans('insufficient_balance', [], 'message')); + } + if ($channel->withdraw_status == 0) { + return jsonFailResponse(trans('self_withdraw_closed', [], 'message')); + } + if (empty($data['bank_id'])) { + return jsonFailResponse(trans('please_select_player_bank', [], 'message')); + } + /** @var Currency $currency */ + $currency = Currency::where('identifying', $channel->currency)->where('status', 1)->whereNull('deleted_at')->first(); + if (empty($currency)) { + return jsonFailResponse(trans('currency_no_setting', [], 'message')); + } + /** @var PlayerBank $playerBank */ + $playerBank = PlayerBank::where('id', $data['bank_id']) + ->where('player_id', $player->id) + ->where('status', 1) + ->whereNull('deleted_at') + ->first(); + if (empty($playerBank)) { + return jsonFailResponse(trans('player_bank_not_found', [], 'message')); + } + //计算汇率 + $money = bcdiv($data['amount'], $currency->ratio, 2); + //大于5000需要后台审核 + /*if ($money >= 5000) { + DB::beginTransaction(); + try { + $money = bcdiv($data['amount'], $currency->ratio, 2); + // 生成订单 + $playerWithdrawRecord = new PlayerWithdrawRecord(); + $beforeGameAmount = $player->wallet->money; + // 玩家钱包扣减 + $player->wallet->money = bcsub($player->wallet->money, $data['amount'], 2); + $playerWithdrawRecord->player_id = $player->id; + $playerWithdrawRecord->department_id = $player->department_id; + $playerWithdrawRecord->tradeno = createOrderNo(); + $playerWithdrawRecord->player_name = $player->name ?? ''; + $playerWithdrawRecord->player_phone = $player->phone ?? ''; + $playerWithdrawRecord->money = $money; + $playerWithdrawRecord->coins = $data['amount']; + $playerWithdrawRecord->after_coins = $player->wallet->money; + $playerWithdrawRecord->fee = 0; + $playerWithdrawRecord->inmoney = bcsub($playerWithdrawRecord->money, $playerWithdrawRecord->fee, 2); // 实际提现金额 + $playerWithdrawRecord->currency = $channel->currency; + $playerWithdrawRecord->bank_name = $playerBank->bank_name; + $playerWithdrawRecord->bank_code = $playerBank->bank_code; + $playerWithdrawRecord->account = $playerBank->account; + $playerWithdrawRecord->account_name = $playerBank->account_name; + $playerWithdrawRecord->type = PlayerWithdrawRecord::TYPE_SELF; + $playerWithdrawRecord->status = PlayerWithdrawRecord::STATUS_WAIT; + $playerWithdrawRecord->save(); + + // 更新玩家统计 + $player->player_extend->withdraw_amount = bcadd($player->player_extend->withdraw_amount, $playerWithdrawRecord->coins, 2); + $player->push(); + //寫入金流明細 + $playerDeliveryRecord = new PlayerDeliveryRecord; + $playerDeliveryRecord->player_id = $playerWithdrawRecord->player_id; + $playerDeliveryRecord->department_id = $playerWithdrawRecord->department_id; + $playerDeliveryRecord->target = $playerWithdrawRecord->getTable(); + $playerDeliveryRecord->target_id = $playerWithdrawRecord->id; + $playerDeliveryRecord->type = PlayerDeliveryRecord::TYPE_WITHDRAWAL; + $playerDeliveryRecord->source = 'channel_withdrawal'; + $playerDeliveryRecord->amount = $playerWithdrawRecord->coins; + $playerDeliveryRecord->amount_before = $beforeGameAmount; + $playerDeliveryRecord->amount_after = $player->wallet->money; + $playerDeliveryRecord->tradeno = $playerWithdrawRecord->tradeno ?? ''; + $playerDeliveryRecord->remark = $playerWithdrawRecord->remark ?? ''; + $playerDeliveryRecord->save(); + DB::commit(); + } catch (\Exception $e) { + DB::rollBack(); + return jsonFailResponse(trans('system_error', [], 'message') . $e->getMessage()); + } + + $notice = new Notice(); + $notice->department_id = $playerWithdrawRecord->department_id; + $notice->player_id = $playerWithdrawRecord->player_id; + $notice->source_id = $playerWithdrawRecord->id; + $notice->type = Notice::TYPE_EXAMINE_WITHDRAW; + $notice->receiver = Notice::RECEIVER_DEPARTMENT; + $notice->is_private = 0; + $notice->title = '渠道提现待审核'; + $notice->content = '提现订单待审核,玩家' . (empty($playerWithdrawRecord->player_name) ? $playerWithdrawRecord->player_name : $playerWithdrawRecord->player_phone) . ', 提现游戏点: ' . $playerWithdrawRecord->point . ' 提现金额: ' . $playerWithdrawRecord->money; + $notice->save(); + + if ($playerWithdrawRecord->status == PlayerWithdrawRecord::STATUS_FAIL) { + return jsonFailResponse(trans('withdraw_fail', [], 'message')); + } + sendSocketMessage('private-admin_group-channel-' . $channel->department_id, [ + 'msg_type' => 'player_create_withdraw_order', + 'id' => $playerWithdrawRecord->id, + 'player_id' => $player->id, + 'player_name' => $player->name, + 'player_phone' => $player->phone, + 'money' => $playerWithdrawRecord->money, + 'status' => $playerWithdrawRecord->status, + 'tradeno' => $playerWithdrawRecord->tradeno, + ]); + return jsonSuccessResponse('success', [ + 'tradeno' => $playerWithdrawRecord->tradeno, + 'order_id' => $playerWithdrawRecord->id, + 'money' => $playerWithdrawRecord->money, + 'currency' => $playerWithdrawRecord->currency, + 'status' => $playerWithdrawRecord->status, + ]); + }*/ + + // 生成订单 + $orderNo = createOrderNo(); + $playerWithdrawRecord = new PlayerWithdrawRecord(); + $beforeGameAmount = $player->wallet->money; + // 玩家钱包扣减 + $player->wallet->money = bcsub($player->wallet->money, $data['amount'], 2); + $playerWithdrawRecord->player_id = $player->id; + $playerWithdrawRecord->department_id = $player->department_id; + $playerWithdrawRecord->tradeno = $orderNo; + $playerWithdrawRecord->player_name = $player->name ?? ''; + $playerWithdrawRecord->player_phone = $player->phone ?? ''; + $playerWithdrawRecord->money = $money; + $playerWithdrawRecord->coins = $data['amount']; + $playerWithdrawRecord->after_coins = $player->wallet->money; + $playerWithdrawRecord->fee = 0; + $playerWithdrawRecord->inmoney = bcsub($playerWithdrawRecord->money, $playerWithdrawRecord->fee, 2); // 实际提现金额 + $playerWithdrawRecord->currency = $channel->currency; + + DB::beginTransaction(); + try { + //银行卡提现 + if ($data['type'] == 1) { + $playerWithdrawRecord->bank_name = $playerBank->bank_name; + $playerWithdrawRecord->bank_code = $playerBank->bank_code; + $playerWithdrawRecord->account = $playerBank->account; + $playerWithdrawRecord->account_name = $playerBank->account_name; + $playerWithdrawRecord->type = PlayerWithdrawRecord::TYPE_SELF; + $playerWithdrawRecord->status = PlayerWithdrawRecord::STATUS_WAIT; + $playerWithdrawRecord->save(); + //USDT提现 + } elseif ($data['type'] == 2) { + $rate = ChannelRechargeMethod::query() + ->where('department_id', $player->department_id) + ->where('type', 2) + ->value('rate'); + $playerWithdrawRecord->rate = $rate; + $playerWithdrawRecord->currency = 'USDT'; + $playerWithdrawRecord->wallet_address = $playerBank->wallet_address; + $playerWithdrawRecord->qr_code = $playerBank->qr_code; + $playerWithdrawRecord->type = PlayerWithdrawRecord::TYPE_USDT; + $playerWithdrawRecord->status = PlayerWithdrawRecord::STATUS_WAIT; + $playerWithdrawRecord->save(); + //三方提现 + } else { + $params = [ + 'amount' => $money, + 'bankCode' => $playerBank->bank_code, + 'bankAccountNo' => $playerBank->account, + 'bankAccountName' => $playerBank->account_name, + 'orderNo' => $orderNo, + ]; + $res = (new SklPayServices())->payout($params); + if ($res['code'] == 'success') { + $playerWithdrawRecord->bank_name = $playerBank->bank_name; + $playerWithdrawRecord->bank_code = $playerBank->bank_code; + $playerWithdrawRecord->account = $playerBank->account; + $playerWithdrawRecord->account_name = $playerBank->account_name; + $playerWithdrawRecord->talk_tradeno = $res['data']['reference_number']; + $playerWithdrawRecord->type = PlayerWithdrawRecord::TYPE_SKLPAYOUT; + $playerWithdrawRecord->status = PlayerWithdrawRecord::STATUS_WAIT; + $playerWithdrawRecord->save(); + } else { + return jsonFailResponse($res['error']); + } + } + DB::commit(); + } catch (\Exception $e) { + DB::rollBack(); + return jsonFailResponse(trans('system_error', [], 'message') . $e->getMessage()); + } + + // 更新玩家统计 + $player->player_extend->withdraw_amount = bcadd($player->player_extend->withdraw_amount, $playerWithdrawRecord->coins, 2); + $player->push(); + + //寫入金流明細 + $playerDeliveryRecord = new PlayerDeliveryRecord; + $playerDeliveryRecord->player_id = $playerWithdrawRecord->player_id; + $playerDeliveryRecord->department_id = $playerWithdrawRecord->department_id; + $playerDeliveryRecord->target = $playerWithdrawRecord->getTable(); + $playerDeliveryRecord->target_id = $playerWithdrawRecord->id; + $playerDeliveryRecord->type = PlayerDeliveryRecord::TYPE_WITHDRAWAL; + $playerDeliveryRecord->source = 'channel_withdrawal'; + $playerDeliveryRecord->amount = $playerWithdrawRecord->coins; + $playerDeliveryRecord->amount_before = $beforeGameAmount; + $playerDeliveryRecord->amount_after = $player->wallet->money; + $playerDeliveryRecord->tradeno = $playerWithdrawRecord->tradeno ?? ''; + $playerDeliveryRecord->remark = ''; + $playerDeliveryRecord->save(); + + return jsonSuccessResponse('success', [ + 'tradeno' => $playerWithdrawRecord->tradeno, + 'money' => $playerWithdrawRecord->money, + 'currency' => $playerWithdrawRecord->currency, + 'status' => $playerWithdrawRecord->status, + ]); + } + + + /** + * 玩家账变记录 + * @param Request $request + * @return Response + * @throws PlayerCheckException|PromoterCheckException + */ + public function playerDeliveryRecord(Request $request): Response + { + $player = checkPlayer(false); + $validator = v::key('page', v::intVal()->setName(trans('page', [], 'message'))) + ->key('type', v::stringVal()->setName(trans('date_type', [], 'message'))) + ->key('size', v::intVal()->setName(trans('size', [], 'message'))); + $data = $request->all(); + try { + $validator->assert($data); + } catch (AllOfException $e) { + return jsonFailResponse(getValidationMessages($e)); + } + try { + $playerDeliveryRecordModel = PlayerDeliveryRecord::where('player_id', $player->id); + switch ($data['type']) { + case 'today': // 今天 + $playerDeliveryRecordModel->whereDate('created_at', date('Y-m-d')); + break; + case 'week': // 本周 + $playerDeliveryRecordModel->where('created_at', '>=', \Carbon\Carbon::today()->startOfWeek())->where('created_at', '<=', Carbon::today()->endOfWeek()); + break; + case 'month': // 本月 + $playerDeliveryRecordModel->where('created_at', '>=', Carbon::today()->firstOfMonth())->where('created_at', '<=', Carbon::today()->endOfMonth()); + break; + case 'sub_month': // 上月 + $playerDeliveryRecordModel->where('created_at', '>=', Carbon::today()->subMonth()->firstOfMonth())->where('created_at', '<=', Carbon::today()->subMonth()->endOfMonth()); + break; + default: + $playerDeliveryRecordModel->whereDate('created_at', date('Y-m-d')); + break; + } + $inType = implode(',', [ + PlayerDeliveryRecord::TYPE_MODIFIED_AMOUNT_ADD, + PlayerDeliveryRecord::TYPE_PRESENT_IN, + PlayerDeliveryRecord::TYPE_GAME_IN, + PlayerDeliveryRecord::TYPE_ACTIVITY_BONUS, + PlayerDeliveryRecord::TYPE_REGISTER_PRESENT, + PlayerDeliveryRecord::TYPE_PROFIT, + PlayerDeliveryRecord::TYPE_LOTTERY, + ]); + $outType = implode(',', [ + PlayerDeliveryRecord::TYPE_PRESENT_OUT, + PlayerDeliveryRecord::TYPE_GAME_OUT, + PlayerDeliveryRecord::TYPE_MODIFIED_AMOUNT_DEDUCT, + ]); + $totalModel = clone $playerDeliveryRecordModel; + $totalData = $totalModel->selectRaw('sum(IF(type in (' . $inType . '), amount, 0)) as total_in, sum(IF(type in (' . $outType . '), amount, 0)) as total_out, sum(IF(type = ' . PlayerDeliveryRecord::TYPE_WITHDRAWAL . ', amount, 0)) as total_withdrawal, sum(IF(type = ' . PlayerDeliveryRecord::TYPE_WITHDRAWAL_BACK . ', amount, 0)) as total_withdrawal_back, sum(IF(type = ' . PlayerDeliveryRecord::TYPE_RECHARGE . ', amount, 0)) as total_recharge')->first(); + + $playerDeliveryRecord = $playerDeliveryRecordModel->forPage($data['page'], $data['size']) + ->orderBy('id', 'desc') + ->get(); + $list = []; + /** @var PlayerDeliveryRecord $item */ + foreach ($playerDeliveryRecord as $item) { + switch ($item->type) { + case PlayerDeliveryRecord::TYPE_MODIFIED_AMOUNT_ADD: + $item->target = trans('target.modified_amount_add', [], 'message'); + break; + case PlayerDeliveryRecord::TYPE_PRESENT_IN: + $item->target = trans('target.present_in', [], 'message'); + break; + case PlayerDeliveryRecord::TYPE_PRESENT_OUT: + $item->target = trans('target.present_out', [], 'message'); + $item->amount = '-' . $item->amount; + break; + case PlayerDeliveryRecord::TYPE_GAME_OUT: + $item->target = trans('target.machine_up', [], 'message'); + $item->amount = '-' . $item->amount; + break; + case PlayerDeliveryRecord::TYPE_GAME_IN: + $item->target = trans('target.machine_down', [], 'message'); + break; + case PlayerDeliveryRecord::TYPE_RECHARGE: + switch ($item->source) { + case 'artificial_recharge': + $item->target = trans('target.artificial_recharge', [], 'message'); + break; + case 'self_recharge': + $item->target = trans('target.self_recharge', [], 'message'); + break; + case 'talk_recharge': + $item->target = trans('target.talk_recharge', [], 'message'); + break; + case 'coin_recharge': + $item->target = trans('target.coin_recharge', [], 'message'); + break; + } + break; + case PlayerDeliveryRecord::TYPE_WITHDRAWAL: + switch ($item['source']) { + case 'artificial_withdrawal': + $item->target = trans('target.artificial_withdrawal', [], 'message'); + break; + case 'talk_withdrawal': + $item->target = trans('target.talk_withdrawal', [], 'message'); + break; + case 'channel_withdrawal': + $item->target = trans('target.channel_withdrawal', [], 'message'); + break; + } + $item->amount = '-' . $item->amount; + break; + case PlayerDeliveryRecord::TYPE_MODIFIED_AMOUNT_DEDUCT: + $item->target = trans('target.modified_amount_deduct', [], 'message'); + $item->amount = '-' . $item->amount; + break; + case PlayerDeliveryRecord::TYPE_WITHDRAWAL_BACK: + $item->target = trans('target.withdrawal_back', [], 'message'); + break; + case PlayerDeliveryRecord::TYPE_ACTIVITY_BONUS: + $item->target = trans('target.activity_bonus', [], 'message'); + break; + case PlayerDeliveryRecord::TYPE_REGISTER_PRESENT: + $item->target = trans('target.register_present', [], 'message'); + break; + case PlayerDeliveryRecord::TYPE_PROFIT: + $item->target = trans('target.profit', [], 'message'); + break; + default: + break; + } + $list[] = [ + 'id' => $item->id, + 'amount' => $item->amount, + 'source' => $item->target, + 'amount_after' => $item->amount_after, + 'created_at' => date('Y-m-d H:i:s', strtotime($item->created_at)), + ]; + } + } catch (\Exception $e) { + return jsonFailResponse($e->getMessage()); + } + + return jsonSuccessResponse('success', [ + 'list' => $list, + 'player' => [ + 'uuid' => $player->uuid, + 'name' => $player->name, + 'promoter_uuid' => $player->uuid, + ], + 'total_data' => [ + 'total_in' => $totalData['total_in'] ?? 0, + 'total_out' => $totalData['total_out'] ?? 0, + 'total_withdrawal' => bcsub($totalData['total_withdrawal'] ?? 0, $totalData['total_withdrawal_back'] ?? 0, 2), + 'total_recharge' => $totalData['total_recharge'] ?? 0, + ], + 'date_type' => [ + 'today' => Carbon::today()->format('Y-m-d'), + 'week' => Carbon::today()->startOfWeek()->format('Y-m-d') . '~' . Carbon::today()->endOfWeek()->format('Y-m-d'), + 'month' => Carbon::today()->firstOfMonth()->format('Y-m-d') . '~' . Carbon::today()->endOfMonth()->format('Y-m-d'), + 'sub_month' => Carbon::today()->subMonth()->firstOfMonth()->format('Y-m-d') . '~' . Carbon::today()->subMonth()->endOfMonth()->format('Y-m-d'), + ] + ]); + } + + /** + * 游戏记录 + * @param Request $request + * @return Response + * @throws PlayerCheckException|GameException + */ + public function gameRecord(Request $request): Response + { + $player = checkPlayer(); + $data = $request->all(); + $validator = v::key('page', v::intVal()->setName(trans('page', [], 'message'))) + ->key('size', v::intVal()->setName(trans('size', [], 'message'))); + + try { + $validator->assert($data); + } catch (AllOfException $e) { + return jsonFailResponse(getValidationMessages($e)); + } + + $records = DrawRecord::query() + ->select('prize_pic', 'prize_name', 'prize_type', 'draw_time', 'ip') + ->where('uid', $player->id) + ->orderBy('id', 'desc') + ->forPage($data['page'], $data['size']) + ->get() + ->toArray(); + return jsonSuccessResponse('success', $records); + } + + /** + * 充提记录 + * @param Request $request + * @return Response + * @throws PlayerCheckException|GameException + */ + public function depositWithdrawalRecord(Request $request): Response + { + $player = checkPlayer(); + $data = $request->all(); + $validator = v::key('page', v::intVal()->setName(trans('page', [], 'message'))) + ->key('size', v::intVal()->setName(trans('size', [], 'message'))) + ->key('type', v::intVal()->setName(trans('type', [], 'message'))) + ->key('start_date', v::stringVal()->setName(trans('start_date', [], 'message'))) + ->key('end_date', v::stringVal()->setName(trans('end_date', [], 'message'))); + + try { + $validator->assert($data); + } catch (AllOfException $e) { + return jsonFailResponse(getValidationMessages($e)); + } + // 1. 构建充值查询 + $rechargeQuery = DB::table('player_recharge_record') + ->select('money', 'created_at', 'status', DB::raw("1 as type")) + ->where('player_id', $player->id) + ->whereBetween('created_at', [$data['start_date'],date('Y-m-d', strtotime("{$data['end_date']} +1 days"))]); + + // 2. 构建提现查询 + $withdrawQuery = DB::table('player_withdraw_record') + ->select('money', 'created_at', 'status', DB::raw("2 as type")) + ->where('player_id', $player->id) + ->whereBetween('created_at', [$data['start_date'],date('Y-m-d', strtotime("{$data['end_date']} +1 days"))]); + // 3. 根据类型参数过滤 + if ($data['type'] == 1) { + $query = $rechargeQuery; + } elseif ($data['type'] == 2) { + $query = $withdrawQuery; + } else { + $query = $rechargeQuery->unionAll($withdrawQuery); + } + // 4. 处理排序和分页 + $records = DB::table(DB::raw("({$query->toSql()}) as combined_transactions")) + ->mergeBindings($query) // 重要:合并 SQL 绑定参数 + ->orderBy('created_at', 'desc') + ->forPage($data['page'], $data['size']) + ->get()->toArray(); + return jsonSuccessResponse('success', $records); + } +} diff --git a/app/api/controller/v1/VersionController.php b/app/api/controller/v1/VersionController.php new file mode 100644 index 0000000..399c5b6 --- /dev/null +++ b/app/api/controller/v1/VersionController.php @@ -0,0 +1,42 @@ +header('app-version-key', ''); + // 传入检测的系统 + $system_key = $request->header('system-key', ''); + if (empty($version_key) || empty($system_key)) { + return jsonFailResponse(trans('incomplete_parameters', [], 'message')); + } + $data = AppVersion::query() + ->where('app_version_key', '>=', $version_key) + ->where(['status' => 1]) + ->where('status', 1) + ->where('system_key', $system_key) + ->where('department_id', request()->department_id) + ->whereDate('regular_update', '<', date("Y-m-d H:i:s", time())) + ->select(['id', 'system_key', 'app_version', 'app_version_key', 'apk_url', 'hot_update_url', 'force_update', 'hot_update', 'regular_update', 'update_content', 'notes']) + ->orderBy('id', 'desc') + ->first(); + + return jsonSuccessResponse('success', [ + 'data' => $data + ]); + } +} \ No newline at end of file diff --git a/app/exception/ApiHandler.php b/app/exception/ApiHandler.php new file mode 100644 index 0000000..7dc84b1 --- /dev/null +++ b/app/exception/ApiHandler.php @@ -0,0 +1,50 @@ + + * @copyright walkor + * @link http://www.workerman.net/ + * @license http://www.opensource.org/licenses/mit-license.php MIT License + */ + +namespace app\exception; + +use Respect\Validation\Exceptions\NestedValidationException; +use Respect\Validation\Exceptions\ValidationException; +use Throwable; +use Tinywan\Jwt\Exception\JwtTokenException; +use Tinywan\Jwt\Exception\JwtTokenExpiredException; +use Webman\Exception\ExceptionHandler; +use Webman\Http\Request; +use Webman\Http\Response; + +/** + * Class Handler + * @package support\exception + */ +class ApiHandler extends ExceptionHandler +{ + public $dontReport = [ + NestedValidationException::class, + ValidationException::class, + ]; + + public function render(Request $request, Throwable $exception): Response + { + if ($exception instanceof JwtTokenExpiredException || $exception instanceof JwtTokenException) { + return json([ + 'code' => 401, + 'msg' => $exception->getMessage() + ]); + } + return json([ + 'code' => $exception->getCode(), + 'msg' => $exception->getMessage() + ]); + } +} \ No newline at end of file diff --git a/app/exception/GameException.php b/app/exception/GameException.php new file mode 100644 index 0000000..3bb5c71 --- /dev/null +++ b/app/exception/GameException.php @@ -0,0 +1,6 @@ +all(); + if ($data['status'] && $data['invoice_no']) { + /** @var PlayerRechargeRecord $playerRechargeRecord */ + $playerRechargeRecord = PlayerRechargeRecord::query()->where('tradeno', $data['invoice_no'])->where('status', 0)->first(); + if(empty($playerRechargeRecord) || $playerRechargeRecord->money != $data['amount']){ + return 'FAIL'; + } + if ($data['status'] == 'SUCCESS') { + if ($playerRechargeRecord->gift_coins > 0) { + $firstRecharge = PlayerRechargeRecord::query() + ->where('player_id', $playerRechargeRecord->player_id) + ->where('status', 2) + ->where('setting_id', $playerRechargeRecord->setting_id) + ->first(); + if ($firstRecharge) { + $playerRechargeRecord->gift_coins = 0; + } + } + $addMoney = bcadd($playerRechargeRecord->coins, $playerRechargeRecord->gift_coins, 2); + DB::beginTransaction(); + try { + /** @var Player $player */ + $player = Player::query()->find($playerRechargeRecord->player_id); + $playerRechargeRecord->status = PlayerRechargeRecord::STATUS_RECHARGED_SUCCESS; + $playerRechargeRecord->finish_time = date("Y-m-d H:i:s"); + $playerRechargeRecord->notify_result = json_encode($data); + $playerRechargeRecord->save(); + $beforeGameAmount = $player->wallet->money; + // 更新钱包 + $player->wallet->money = bcadd($player->wallet->money, $addMoney, 2); + $player->player_extend->recharge_amount = bcadd($player->player_extend->recharge_amount, $addMoney, 2); + $player->push(); + //寫入金流明細 + $playerDeliveryRecord = new PlayerDeliveryRecord; + $playerDeliveryRecord->player_id = $player->id; + $playerDeliveryRecord->department_id = $player->department_id; + $playerDeliveryRecord->target = $playerRechargeRecord->getTable(); + $playerDeliveryRecord->target_id = $playerRechargeRecord->id; + $playerDeliveryRecord->type = PlayerDeliveryRecord::TYPE_RECHARGE; + $playerDeliveryRecord->source = 'self_recharge'; + $playerDeliveryRecord->amount = $addMoney; + $playerDeliveryRecord->amount_before = $beforeGameAmount; + $playerDeliveryRecord->amount_after = $player->wallet->money; + $playerDeliveryRecord->tradeno = ''; + $playerDeliveryRecord->remark = ''; + $playerDeliveryRecord->save(); + DB::commit(); + sendSocketMessage('private-recharge_withdrawal', [ + 'msg_type' => 'recharge', + 'player_id' => $player->id, + 'amount' => $player->wallet->money, + ]); + } catch (\Exception $e) { + DB::rollBack(); + Log::info('sklRecharge', (array)$data); + return json_encode(['status' => 'RECEIVED']); + } + return json_encode(['status' => 'RECEIVED']); + } else { + $playerRechargeRecord->status = PlayerRechargeRecord::STATUS_RECHARGED_FAIL; + $playerRechargeRecord->cancel_time = date('Y-m-d H:i:s'); + $playerRechargeRecord->notify_result = json_encode($data); + $playerRechargeRecord->save(); + return json_encode(['status' => 'RECEIVED']); + } + } else { + return json_encode(['status' => 'RECEIVED']); + } + } + + /** + * SKL代付回调 + * @param Request $request + * @return string + */ + public function sklWithdrawalNotify(Request $request): string + { + $data = $request->all(); + if ($data['status'] && $data['invoice_no']) { + //查询订单是否存在 + /** @var PlayerWithdrawRecord $playerWithdrawRecord */ + $playerWithdrawRecord = PlayerWithdrawRecord::query()->where('tradeno', $data['invoice_no'])->where('status', 1)->first(); + if(empty($playerWithdrawRecord) || $playerWithdrawRecord->money != $data['amount']){ + return 'FAIL'; + } + if ($data['status'] == 'SUCCESS') { + $playerWithdrawRecord->status = PlayerWithdrawRecord::STATUS_SUCCESS; + $playerWithdrawRecord->finish_time = date('Y-m-d H:i:s'); + $playerWithdrawRecord->notify_result = json_encode($data); + $playerWithdrawRecord->talk_tradeno = $data['transferOut_id']; + $playerWithdrawRecord->save(); + $broadcast = Broadcast::query() + ->where('type', 2) + ->where('status', 1) + ->where('min_money', '<=', $data['amount']) + ->first(); + if (isset($broadcast)){ + $queue = 'broadcast_tasks'; + $broadcast_data = [ + 'user_id' => substr($playerWithdrawRecord->player->phone, 2), + 'money' => $data['amount'] + ]; + for ($i = 0; $i < $broadcast->copy_num; $i++) { + Redis::send($queue, $broadcast_data); + } + } + $notice = new Notice(); + $notice->department_id = $playerWithdrawRecord->player->department_id; + $notice->player_id = $playerWithdrawRecord->player_id; + $notice->source_id = $playerWithdrawRecord->id; + $notice->type = Notice::TYPE_WITHDRAW; + $notice->receiver = Notice::RECEIVER_PLAYER; + $notice->is_private = 1; + $notice->title = '下分成功'; + $notice->content = '本次申请已成功处理,下分 ' . $playerWithdrawRecord->money . ' ,请查收。 '; + $notice->save(); + return json_encode(['status' => 'RECEIVED']); + } else { + DB::beginTransaction(); + try { + /** @var Player $player */ + $player = Player::query()->find($playerWithdrawRecord->player_id); + $playerWithdrawRecord->status = PlayerWithdrawRecord::STATUS_FAIL; + $playerWithdrawRecord->cancel_time = date('Y-m-d H:i:s'); + $playerWithdrawRecord->notify_result = json_encode($data); + $playerWithdrawRecord->talk_tradeno = $data['transferOut_id']; + $playerWithdrawRecord->save(); + $beforeGameAmount = $player->wallet->money; + // 更新钱包 + $player->wallet->money = bcadd($player->wallet->money, $playerWithdrawRecord->coins, 2); + $player->push(); + //寫入金流明細 + $playerDeliveryRecord = new PlayerDeliveryRecord; + $playerDeliveryRecord->player_id = $player->id; + $playerDeliveryRecord->department_id = $player->department_id; + $playerDeliveryRecord->target = $playerWithdrawRecord->getTable(); + $playerDeliveryRecord->target_id = $playerWithdrawRecord->id; + $playerDeliveryRecord->type = PlayerDeliveryRecord::TYPE_WITHDRAWAL_BACK; + $playerDeliveryRecord->source = 'channel_withdrawal'; + $playerDeliveryRecord->amount = $playerWithdrawRecord->coins; + $playerDeliveryRecord->amount_before = $beforeGameAmount; + $playerDeliveryRecord->amount_after = $player->wallet->money; + $playerDeliveryRecord->tradeno = ''; + $playerDeliveryRecord->remark = '提现失败返还金额'; + $playerDeliveryRecord->save(); + $notice = new Notice(); + $notice->department_id = $player->department_id; + $notice->player_id = $player->id; + $notice->source_id = $playerWithdrawRecord->id; + $notice->type = Notice::TYPE_WITHDRAW; + $notice->receiver = Notice::RECEIVER_PLAYER; + $notice->is_private = 1; + $notice->title = '下分失败'; + $notice->content = '本次申请下分 ' . $playerWithdrawRecord->money . ' 已退回,请查收。 '; + $notice->save(); + DB::commit(); + sendSocketMessage('private-recharge_withdrawal', [ + 'msg_type' => 'withdrawal', + 'player_id' => $player->id, + 'amount' => $player->wallet->money, + ]); + } catch (\Exception $e) { + DB::rollBack(); + Log::info('sklWithdrawal', (array)$data); + return json_encode(['status' => 'RECEIVED']); + } + return json_encode(['status' => 'RECEIVED']); + } + } else { + return json_encode(['status' => 'RECEIVED']); + } + } + + /** + * SKL订单查询 + * @param Request $request + * @return Response + */ + public function sklQuery(Request $request): Response + { + $validator = v::key('transactionId', v::stringType()->notEmpty()->setName(trans('certificate', [], 'message'))); + $data = $request->get(); + try { + $validator->assert($data); + } catch (AllOfException $e) { + return jsonFailResponse(getValidationMessages($e)); + } + $params = [ + 'orderNo' => $data['transactionId'], + ]; + $res = (new SklPayServices())->query($params); + if ($res['status'] == 'SUCCESS') { + return view('skl/detail_success'); + } elseif ($res['status'] == 'FAILED') { + return view('skl/detail_fail'); + } elseif ($res['status'] == 'PENDING_QR') { + return view('skl/detail_paying'); + } elseif ($res['status'] == 'VERIFIED') { + return view('skl/detail_paying'); + } else { + return view('sepay/detail_fail'); + } + } + +} diff --git a/app/external/view/login/download.html b/app/external/view/login/download.html new file mode 100644 index 0000000..afe9833 --- /dev/null +++ b/app/external/view/login/download.html @@ -0,0 +1,14 @@ + + + + + + + SamSung88 + + + + +
+ + diff --git a/app/external/view/login/index.html b/app/external/view/login/index.html new file mode 100644 index 0000000..5985cd9 --- /dev/null +++ b/app/external/view/login/index.html @@ -0,0 +1,14 @@ + + + + + + + SamSung88 + + + + +
+ + diff --git a/app/external/view/sepay/detail.html b/app/external/view/sepay/detail.html new file mode 100644 index 0000000..f24e5e1 --- /dev/null +++ b/app/external/view/sepay/detail.html @@ -0,0 +1,126 @@ + + + + + + + 页面 + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/external/view/sepay/detail_fail.html b/app/external/view/sepay/detail_fail.html new file mode 100644 index 0000000..cc7d0ed --- /dev/null +++ b/app/external/view/sepay/detail_fail.html @@ -0,0 +1,91 @@ + + + + + + + 页面 + + + + + + + + + + + \ No newline at end of file diff --git a/app/external/view/sepay/detail_paying.html b/app/external/view/sepay/detail_paying.html new file mode 100644 index 0000000..8b4211b --- /dev/null +++ b/app/external/view/sepay/detail_paying.html @@ -0,0 +1,90 @@ + + + + + + + 页面 + + + + + + + + + + + \ No newline at end of file diff --git a/app/external/view/sepay/detail_success.html b/app/external/view/sepay/detail_success.html new file mode 100644 index 0000000..df256dd --- /dev/null +++ b/app/external/view/sepay/detail_success.html @@ -0,0 +1,91 @@ + + + + + + + 页面 + + + + + + + +
+ 关闭 +
支付成功
+
+ +
+ + + \ No newline at end of file diff --git a/app/external/view/skl/detail.html b/app/external/view/skl/detail.html new file mode 100644 index 0000000..ffe9cf2 --- /dev/null +++ b/app/external/view/skl/detail.html @@ -0,0 +1,126 @@ + + + + + + + 页面 + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/external/view/skl/detail_fail.html b/app/external/view/skl/detail_fail.html new file mode 100644 index 0000000..3ec0709 --- /dev/null +++ b/app/external/view/skl/detail_fail.html @@ -0,0 +1,97 @@ + + + + + + + 页面 + + + + + + + + + + + \ No newline at end of file diff --git a/app/external/view/skl/detail_paying.html b/app/external/view/skl/detail_paying.html new file mode 100644 index 0000000..c77646d --- /dev/null +++ b/app/external/view/skl/detail_paying.html @@ -0,0 +1,97 @@ + + + + + + + 页面 + + + + + + + + + + + \ No newline at end of file diff --git a/app/external/view/skl/detail_success.html b/app/external/view/skl/detail_success.html new file mode 100644 index 0000000..917114b --- /dev/null +++ b/app/external/view/skl/detail_success.html @@ -0,0 +1,97 @@ + + + + + + + 页面 + + + + + + + +
+ 关闭 +
支付成功
+
+ +
+ + + \ No newline at end of file diff --git a/app/functions.php b/app/functions.php new file mode 100644 index 0000000..dab1d54 --- /dev/null +++ b/app/functions.php @@ -0,0 +1,1379 @@ + 'application/json'], json_encode([ + 'code' => 200, + 'msg' => $message, + 'data' => $data, + ], JSON_UNESCAPED_UNICODE)); +} + +/** + * @param array $data + * @param string $message + * @param integer $code + * @return Response + */ +function jsonFailResponse(string $message = '', array $data = [], int $code = 100): Response +{ + return new Response(200, ['Content-Type' => 'application/json'], json_encode([ + 'code' => $code, + 'msg' => $message, + 'data' => $data, + ], JSON_UNESCAPED_UNICODE)); +} + +/** + * 生成唯一邀请码 + * @return string + */ +function createCode(): string +{ + + $code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; + $rand = $code[rand(0, 25)] . strtoupper(dechex(date('m'))) . date('d') . substr(time(), -5) . substr(microtime(), 2, 5) . sprintf('%02d', rand(0, 99)); + + for ($a = md5($rand, true), $s = '0123456789ABCDEFGHIJKLMNOPQRSTUV', $d = '', $f = 0; $f < 8; $g = ord($a[$f]), $d .= $s[($g ^ ord($a[$f + 8])) - $g & 0x1F], $f++) ; + + return $d; +} + +/** + * 获取验证消息 + * @param AllOfException $e + * @return mixed + */ +function getValidationMessages(AllOfException $e) +{ + $message = $e->getMessages([ + 'notOptional' => trans('required', [], 'validator'), + 'notEmpty' => trans('required', [], 'validator'), + 'email' => trans('email', [], 'validator'), + 'idCard' => trans('idCard', [], 'validator'), + 'url' => trans('url', [], 'validator'), + 'number' => trans('number', [], 'validator'), + 'integer' => trans('integer', [], 'validator'), + 'float' => trans('float', [], 'validator'), + 'mobile' => trans('mobile', [], 'validator'), + 'length' => trans('length', [], 'validator'), + 'alpha' => trans('alpha', [], 'validator'), + 'alnum' => trans('alnum', [], 'validator'), + 'alphaDash' => trans('alphaDash', [], 'validator'), + 'chs' => trans('chs', [], 'validator'), + 'chsAlpha' => trans('chsAlpha', [], 'validator'), + 'chsAlphaNum' => trans('chsAlphaNum', [], 'validator'), + 'chsDash' => trans('chsDash', [], 'validator'), + 'equals' => trans('equals', [], 'validator'), + 'in' => trans('in', [], 'validator'), + 'image' => trans('image', [], 'validator'), + 'creditCard' => trans('creditCard', [], 'validator'), + 'digit' => trans('digit', [], 'validator'), + 'base64' => trans('base64', [], 'validator'), + 'arrayVal' => trans('arrayVal', [], 'validator'), + ])['key']; + $message = is_array($message) ? Arr::first($message) : $message; + + return $message ?? trans('validation_error', [], 'message'); +} + +/** + * 生成uuid + * @return string + */ +function gen_uuid(): string +{ + do { + $timestamp = time(); + $randomNumber = str_pad(rand(0, 9999), 4, '0', STR_PAD_LEFT); + $uniqueNumericId = substr($timestamp, -5) . $randomNumber; + + } while (Player::query()->where('uuid', $uniqueNumericId)->withTrashed()->exists()); + + return $uniqueNumericId; +} + +/** + * 金额转换 + * @param $number + * @return float|int + */ +function floorToCoinsSecondNumber($number) +{ + return floor($number * 100) / 100; +} + +/** + * 添加用户登录信息 + * @param $id + * @return PlayerLoginRecord|Model + */ +function addLoginRecord($id) +{ + $ip = request()->getRealIp(); + if (!empty($ip)) { + try { + $location = new Location(); + $result = $location->getLocation($ip); + } catch (IpAttributionException $exception) { + Log::error('获取ip信息错误'); + } + } + $country_name = ($result['country'] ?? '') . ($result['city'] ?? ''); + $domain = isset($_SERVER['HTTP_ORIGIN']) ? parse_url($_SERVER['HTTP_ORIGIN']) : null; + + return PlayerLoginRecord::create([ + 'player_id' => $id, + 'login_domain' => !empty($domain) ? $domain['host'] : null, + 'ip' => $ip, + 'country_name' => $country_name, + 'city_name' => $result['city'] ?? '', + 'remark' => $request->remark ?? null, + 'department_id' => request()->department_id, + ]); +} + +/** + * 添加用户注册信息 + * @param $id + * @param $type + * @param $department_id + * @return PlayerRegisterRecord|Model + */ +function addRegisterRecord($id, $type, $department_id) +{ + $ip = request()->getRealIp(); + if (!empty($ip)) { + try { + $location = new Location(); + $result = $location->getLocation($ip); + } catch (IpAttributionException $exception) { + Log::error('获取ip信息错误'); + } + } + $country_name = ($result['country'] ?? '') . ($result['city'] ?? ''); + $domain = isset($_SERVER['HTTP_ORIGIN']) ? parse_url($_SERVER['HTTP_ORIGIN']) : null; + + return PlayerRegisterRecord::create([ + 'player_id' => $id, + 'register_domain' => !empty($domain) ? $domain['host'] : null, + 'ip' => $ip, + 'country_name' => $country_name, + 'city_name' => $result['city'] ?? '', + 'device' => 'app', + 'type' => $type, + 'department_id' => $department_id, + ]); +} + +/** + * 保存头像到本地 + * @param $avatar + * @return string + */ +function saveAvatar($avatar): string +{ + if (empty($avatar)) { + return ''; + } + try { + if (strpos($avatar, 'http://') === 0 || strpos($avatar, 'https://') === 0) { + $client = new Client(['verify' => false]); //忽略SSL错误 + $fileName = md5($avatar) . '.jpg'; + $path = public_path() . '/storage/avatar/'; + if (!is_dir($path) && !mkdir($path, 0777, true)) { + throw new Exception('创建文件夹失败'); + } + $client->request('GET', $avatar, ['sink' => public_path('/storage/avatar/' . $fileName)]); + } else { + throw new Exception('网络地址错误'); + } + } catch (Exception|GuzzleException $e) { + Log::error('保存头像错误' . $e->getMessage()); + return ''; + } + + return '/storage/avatar/' . $fileName; +} + +/** + * 生成唯一单号 + * @return string + */ +function createOrderNo(): string +{ + + $yCode = ['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']; + return $yCode[intval(date('Y')) - 2011] . strtoupper(dechex(date('m'))) . date('d') . substr(time(), -5) . substr(microtime(), 2, 5) . sprintf('%02d', rand(0, 99)); +} + +/** + * 设置短信key + * @param string $phone 手机号 + * @param int $type 模式 1 为修改密码短信 + * @return string + */ +function setSmsKey(string $phone, int $type): string +{ + switch ($type) { + case PhoneSmsLog::TYPE_LOGIN: + return 'sms-login' . $phone; + case PhoneSmsLog::TYPE_REGISTER: + return 'sms-register' . $phone; + case PhoneSmsLog::TYPE_CHANGE_PASSWORD: + return 'sms-change-password' . $phone; + case PhoneSmsLog::TYPE_CHANGE_PAY_PASSWORD: + return 'sms-change-pay-password' . $phone; + case PhoneSmsLog::TYPE_CHANGE_PHONE: + return 'sms-change-phone' . $phone; + case PhoneSmsLog::TYPE_BIND_NEW_PHONE: + return 'sms-type-bind-new-phone' . $phone; + case PhoneSmsLog::TYPE_TALK_BIND: + return 'sms-type-talk-bind' . $phone; + default: + return 'sms-' . $phone; + } +} + +/** + * 验证短信 + * @param string $country_code 国家编号 + * @param string $phone 手机号 + * @param string $code 验证码 + * @param int $type 类型 + * @return string + */ +function verifySMS(string $country_code, string $phone, string $code, int $type): string +{ + switch ($country_code) { + case PhoneSmsLog::COUNTRY_CODE_JP: + $phone = ltrim($phone, '0'); + break; + case PhoneSmsLog::COUNTRY_CODE_MY: + $phone = ltrim($phone, '0'); + break; + default: + break; + } + $phoneCode = Cache::get(setSmsKey($phone, $type)); + + return $phoneCode == $code; +} + +/** + * 获取短信消息 + * @param int $type 模式 1 为修改密码短信 + * @param string $source 来源 + * @return string + */ +function getContent(int $type, string $source): string +{ + switch ($type) { + case PhoneSmsLog::TYPE_LOGIN: + return config($source . '-sms.login_content'); + case PhoneSmsLog::TYPE_REGISTER: + return config($source . '-sms.register_content'); + case PhoneSmsLog::TYPE_CHANGE_PASSWORD: + return config($source . '-sms.change_password_content'); + case PhoneSmsLog::TYPE_CHANGE_PAY_PASSWORD: + return config($source . '-sms.change_pay_password'); + case PhoneSmsLog::TYPE_CHANGE_PHONE: + return config($source . '-sms.change_phone'); + case PhoneSmsLog::TYPE_BIND_NEW_PHONE: + return config($source . '-sms.bind_new_phone'); + case PhoneSmsLog::TYPE_TALK_BIND: + return config($source . '-sms.talk_bind'); + default: + return config($source . '-sms.sm_content'); + } +} + +/** + * 提现订单回滚 + * @param PlayerWithdrawRecord $playerWithdrawRecord + * @param string $rejectReason + * @param int $withdrawStatus + * @return string + * @throws Exception + */ +function withdrawBack(PlayerWithdrawRecord $playerWithdrawRecord, string $rejectReason = '', int $withdrawStatus = PlayerWithdrawRecord::STATUS_PENDING_REJECT): string +{ + DB::beginTransaction(); + try { + // 更新提现订单 + $playerWithdrawRecord->status = $withdrawStatus; + $playerWithdrawRecord->reject_reason = $rejectReason; + $playerWithdrawRecord->finish_time = date('Y-m-d H:i:s'); + $playerWithdrawRecord->user_id = Admin::id() ?? 0; + $playerWithdrawRecord->user_name = !empty(Admin::user()) ? Admin::user()->username : ''; + // 更新玩家钱包 + $beforeGameAmount = $playerWithdrawRecord->player->wallet->money; + $playerWithdrawRecord->player->wallet->money = bcadd($playerWithdrawRecord->player->wallet->money, $playerWithdrawRecord->coins, 2); + // 跟新玩家统计 + $playerWithdrawRecord->player->player_extend->withdraw_amount = bcsub($playerWithdrawRecord->player->player_extend->withdraw_amount, $playerWithdrawRecord->coins, 2); + $playerWithdrawRecord->push(); + //寫入金流明細 + $playerDeliveryRecord = new PlayerDeliveryRecord; + $playerDeliveryRecord->player_id = $playerWithdrawRecord->player_id; + $playerDeliveryRecord->department_id = $playerWithdrawRecord->department_id; + $playerDeliveryRecord->target = $playerWithdrawRecord->getTable(); + $playerDeliveryRecord->target_id = $playerWithdrawRecord->id; + $playerDeliveryRecord->type = PlayerDeliveryRecord::TYPE_WITHDRAWAL_BACK; + $playerDeliveryRecord->source = 'withdraw_back'; + $playerDeliveryRecord->amount = $playerWithdrawRecord->coins; + $playerDeliveryRecord->amount_before = $beforeGameAmount; + $playerDeliveryRecord->amount_after = $playerWithdrawRecord->player->wallet->money; + $playerDeliveryRecord->tradeno = $playerWithdrawRecord->tradeno ?? ''; + $playerDeliveryRecord->remark = $playerWithdrawRecord->remark ?? ''; + $playerDeliveryRecord->save(); + + DB::commit(); + sendSocketMessage('private-recharge_withdrawal', [ + 'msg_type' => 'withdrawal', + 'player_id' => $playerWithdrawRecord->player_id, + 'amount' => $playerWithdrawRecord->player->wallet->money, + ]); + } catch (\Exception $e) { + DB::rollBack(); + throw new Exception($e->getMessage()); + } + return true; +} + +/** + * 添加渠道财务操作 + * @param $target + * @param $action + * @return void + */ +function saveChannelFinancialRecord($target, $action) +{ + $channelFinancialRecord = new ChannelFinancialRecord(); + $channelFinancialRecord->action = $action; + $channelFinancialRecord->department_id = Admin::user()->department_id ?? 0; + $channelFinancialRecord->player_id = $target->player_id ?? 0; + $channelFinancialRecord->target = $target->getTable(); + $channelFinancialRecord->target_id = $target->id; + $channelFinancialRecord->user_id = Admin::id() ?? 0; + $channelFinancialRecord->tradeno = $target->tradeno ?? ''; + $channelFinancialRecord->user_name = Admin::user()->username ?? ''; + $channelFinancialRecord->save(); +} + +/** + * 上传base64图片 + * @param $img + * @param $path + * @return false|string + */ +function uploadBaseImg($img, $path) +{ + if (preg_match('/^(data:\s*image\/(\w+);base64,)/', $img, $result)) { + $type = $result[2];//图片后缀 + $savePath = '/storage/' . $path . '/' . date("Ymd", time()) . "/"; + $newPath = public_path() . $savePath; + if (!file_exists($newPath)) { + //检查是否有该文件夹,如果没有就创建,并给予最高权限 + mkdir($newPath, 0755, true); + } + + $filename = time() . '_' . uniqid() . ".{$type}"; //文件名 + $newPath = $newPath . $filename; + //写入操作 + if (file_put_contents($newPath, base64_decode(str_replace($result[1], '', $img)))) { + return env('APP_URL', 'http://127.0.0.1:8787') . $savePath . $filename; + } + return false; + } + return false; +} + +/** + * 检查充值订单取消超时订单 + * @throws Exception + */ +function cancelRecharge() +{ + /** @var SystemSetting $setting */ + $setting = SystemSetting::where('status', 1)->where('feature', 'recharge_order_expiration')->first(); + if (!empty($setting)) { + $playerRechargeRecord = PlayerRechargeRecord::where('type', PlayerRechargeRecord::TYPE_REGULAR) + ->where('status', PlayerRechargeRecord::STATUS_WAIT) + ->where('created_at', '<', Carbon::now()->subMinutes($setting->num)) + ->get(); + /** @var PlayerRechargeRecord $order */ + foreach ($playerRechargeRecord as $order) { + $order->status = PlayerRechargeRecord::STATUS_RECHARGED_SYSTEM_CANCEL; + $order->cancel_time = date('Y-m-d H:i:s'); + $order->save(); + } + } +} + +/** + * 发送socket消息 + * @param $channels + * @param $content + * @param string $form + * @return bool|string + * @throws PushException + */ +function sendSocketMessage($channels, $content, string $form = 'system') +{ + try { + // 发送进入保留状态消息 + $api = new Api( + config('plugin.webman.push.app.api'), + config('plugin.webman.push.app.app_key'), + config('plugin.webman.push.app.app_secret') + ); + return $api->trigger($channels, 'message', [ + 'from_uid' => $form, + 'content' => json_encode($content) + ]); + } catch (Exception $e) { + Log::error('sendSocketMessage', [$e->getMessage()]); + return false; + } +} + +/** + * 获取渠道信息 + * @param $siteId + * @return array + */ +function getChannel($siteId): array +{ + $cacheKey = "channel_" . $siteId; + $channel = Cache::get($cacheKey); + if (empty($channel)) { + $channel = Channel::where('id', $siteId)->whereNull('deleted_at')->first()->toArray(); + if (!empty($channel)) { + $cacheKey = "channel_" . $channel->site_id; + Cache::set($cacheKey, $channel->toArray()); + } else { + return []; + } + } + return $channel; +} + +/** + * 获取堆栈信息 + * @return void + */ +function getStackList(): void +{ + $line = []; + $debugList = array_reverse(debug_backtrace()); + foreach ($debugList as $key => $val) { + $class = $val['class'] ?? ""; + $arg = $val['args']; + $parameter = ''; + $stringLine = ''; + if (!empty($arg) && is_array($arg)) { + foreach ($arg as $v) { + $className = $v; + if (is_object($v)) { + $className = get_class($v); + } elseif (is_array($v)) { + $className = json_encode($v); + } + $parameter .= $className . ','; + } + } + $stringLine .= '程序执行' . $key . ':=>'; + $stringLine .= '[1.所在文件(' . $val['file'] . ')],'; + $stringLine .= '[2.函数调用情况[第' . $val['line'] . '行]:' . $class . '->' . $val['function'] . '(' . $parameter . ')]' . "\n"; + $line[] = $stringLine; + } + Log::error("堆栈信息", $line); +} + +/** + * 获取毫秒级 + * @return float + */ +function millisecond(): float +{ + list($millisecond, $sec) = explode(' ', microtime()); + return (float)sprintf('%.0f', (floatval($millisecond) + floatval($sec)) * 1000); +} + +/** + * 创建玩家 + * @param $departmentId + * @param $data + * @return Player + * @throws Exception + */ +function createPlayer($departmentId, $data): Player +{ + /** @var Channel $channel */ + $channel = Channel::where('department_id', $departmentId)->first(); + if (empty($channel)) { + throw new Exception(trans('channel_not_found', [], 'message')); + } + DB::beginTransaction(); + try { + $count = Player::whereBetween('created_at', [date('Y-m-d') . ' 00:00:00', date('Y-m-d') . ' 23:59:59'])->count('*'); + if (empty($data['avatar'])) { + $defAvatars = config('def_avatar') ?? []; + $randomKey = array_rand($defAvatars); + $randomAvatar = $defAvatars[$randomKey] ?? ''; + } else { + $randomAvatar = $data['avatar']; + } + $player = new Player(); + $player->uuid = gen_uuid(); + $player->type = Player::TYPE_PLAYER; + $player->currency = $channel->currency; + $player->department_id = $channel->department_id; + $player->avatar = $randomAvatar; + $player->device_number = $data['device_number'] ?? ''; + $player->name = $data['name'] ?? 'channel_' . $departmentId . date('Ymd') . $count; + $player->facebook_id = $data['facebook_id'] ?? ''; + $player->phone = $data['phone'] ?? ''; + if(isset($data['password'])){ + $player->password = $data['password']; + } + if(isset($data['recommend_id'])){ + $player->recommend_id = $data['recommend_id']; + } + $player->recommended_code = $data['recommended_code'] ?? ''; + $player->status = Player::STATUS_ENABLE; + $player->recommend_code = createCode(); + $player->save(); + + addPlayerExtend($player, [ + 'email' => $data['email'] ?? '' + ]); + + addRegisterRecord($player->id, PlayerRegisterRecord::TYPE_CLIENT, $player->department_id); + DB::commit(); + } catch (\Exception $e) { + DB::rollBack(); + Log::error(trans('register_player_failed', [], 'message') . $e->getMessage()); + throw new Exception(); + } + unset($player->password); + return $player; +} + + +/** + * 增加玩家扩展信息 + * @param Player $player + * @param array $extend + * @return void + */ +function addPlayerExtend(Player $player, array $extend = []) +{ + $registerPresent = SystemSetting::where('feature', 'register_present')->where('status', 1)->value('num') ?? 0; + $playerPlatformCash = new PlayerPlatformCash(); + $playerPlatformCash->player_id = $player->id; + $playerPlatformCash->platform_id = PlayerPlatformCash::PLATFORM_SELF; + $playerPlatformCash->money = $registerPresent; + $playerPlatformCash->save(); + + $playerExtend = new PlayerExtend(); + $playerExtend->player_id = $player->id; + $playerExtend->email = $extend['email']; + $playerExtend->save(); + + if (isset($registerPresent) && $registerPresent > 0) { + //添加玩家钱包日志 + $playerMoneyEditLog = new PlayerMoneyEditLog; + $playerMoneyEditLog->player_id = $player->id; + $playerMoneyEditLog->department_id = $player->department_id; + $playerMoneyEditLog->type = PlayerMoneyEditLog::TYPE_INCREASE; + $playerMoneyEditLog->action = PlayerMoneyEditLog::OTHER; + $playerMoneyEditLog->tradeno = date('YmdHis') . rand(10000, 99999); + $playerMoneyEditLog->currency = $player->currency; + $playerMoneyEditLog->money = $registerPresent; + $playerMoneyEditLog->inmoney = $registerPresent; + $playerMoneyEditLog->remark = ''; + $playerMoneyEditLog->user_id = Admin::id() ?? 0; + $playerMoneyEditLog->user_name = !empty(Admin::user()) ? Admin::user()->toArray()['username'] : trans('system_automatic', [], 'message'); + $playerMoneyEditLog->save(); + //寫入金流明細 + $playerDeliveryRecord = new PlayerDeliveryRecord; + $playerDeliveryRecord->player_id = $player->id; + $playerDeliveryRecord->department_id = $player->department_id; + $playerDeliveryRecord->target = $playerMoneyEditLog->getTable(); + $playerDeliveryRecord->target_id = $playerMoneyEditLog->id; + $playerDeliveryRecord->type = PlayerDeliveryRecord::TYPE_REGISTER_PRESENT; + $playerDeliveryRecord->source = 'register_present'; + $playerDeliveryRecord->amount = $playerMoneyEditLog->money; + $playerDeliveryRecord->amount_before = 0; + $playerDeliveryRecord->amount_after = $registerPresent; + $playerDeliveryRecord->tradeno = $playerMoneyEditLog->tradeno ?? ''; + $playerDeliveryRecord->remark = $playerMoneyEditLog->remark ?? ''; + $playerDeliveryRecord->save(); + } +} + +/** + * @return Player + * @throws GameException + * @throws PlayerCheckException + * @throws \Exception + */ +function checkPlayer(): Player +{ + $departmentId = request()->department_id; + $id = JwtToken::getCurrentId(); + /** @var Player $player */ + $player = Player::where('id', $id)->where('department_id', $departmentId)->first(); + if (empty($player)) { + throw new PlayerCheckException(trans('player_not_fount', [], 'message'), 100); + } + + if ($player->status == Player::STATUS_STOP) { + throw new PlayerCheckException(trans('player_stop', [], 'message'), 100); + } + + return $player; +} + + +/** + * 组装请求 + * @param string $url + * @param array $params + * @return array|mixed + * @throws Exception + */ +function doCurl(string $url, array $params = []) +{ + $response = Http::timeout(7) + ->contentType('application/json') + ->accept('application/json') + ->asJson() + ->post($url, $params); + if (!$response->ok()) { + throw new Exception(trans('system_busy', [], 'message')); + } + $data = $response->json(); + if (empty($data)) { + throw new Exception(trans('system_busy', [], 'message')); + } + + return $data; +} + +/** + * 组装请求 + * @param $id + * @param array $range + * @return array|mixed|null + */ +function getGamePlayerNum($id, array $range = []) +{ + $cacheKey = 'game_player_num_' . $id; + $playerNum = Cache::get($cacheKey); + if ($playerNum === null) { + $playerNum = rand($range[0] ?? 0, $range[1] ?? 0); + Cache::set($cacheKey, $playerNum, 30 * 60); + } + + return $playerNum; +} + +/** + * 分润结算 + * @return void + */ +function commissionSettlement() +{ + $date = Carbon::now()->subDay()->format('Y-m-d'); + $data = PlayGameRecord::query() + ->selectRaw('SUM(bet) - SUM(win) AS damage_amount, player_id, parent_player_id, department_id,sum(deficit) as deficit') + ->whereDate('created_at', $date) + ->where('status', 0) + ->groupBy('player_id', 'parent_player_id', 'department_id') + ->get(); + Log::info('分润结算开始------------------'); + if ($data->isEmpty()) { + return; + } + // 提取父玩家ID + $playerIds = $data->pluck('parent_player_id')->unique()->toArray(); + // 获取玩家数据 + $players = Player::query() + ->with(['player_extend']) + ->whereIn('id', $playerIds) + ->get() + ->keyBy('id'); + // 获取系统设置 + $systemSettingMap = SystemSetting::query() + ->where('status', 1) + ->where('feature', 'commission_setting') + ->get() + ->keyBy('department_id'); + $commissionRecord = []; + $unsettledCommissionAmount = []; + foreach ($data->toArray() as $item) { + /** @var SystemSetting $systemSettingData */ + //边玩边赚,只返给上级 + $systemSettingData = $systemSettingMap->get($item['department_id']); + if(empty($systemSettingData)){ + continue; + } + $systemSetting = json_decode($systemSettingData->content, true); + if ($item['deficit'] == 0) { + continue; + } + if ($systemSetting && !empty($systemSetting['commission_damage']) && is_numeric($systemSetting['commission_damage']) && $systemSetting['commission_damage'] > 0) { + $commissionAmount = max(bcmul($item['damage_amount'], bcdiv($systemSetting['commission_damage'], 100, 2), 2), 0); + /** @var Player $player */ + $player = $players->get($item['parent_player_id']); + if ($player) { + $commissionRecord[] = [ + 'player_id' => $item['player_id'], + 'department_id' => $item['department_id'], + 'parent_player_id' => $item['parent_player_id'], + 'recharge_amount' => 0, + 'chip_amount' => 0, + 'total_amount' => $player->player_extend->commission_amount, + 'damage_amount' => $item['damage_amount'], + 'amount' => $commissionAmount, + 'ratio' => $systemSetting['commission_damage'], + 'date' => $date, + 'created_at' => date('Y-m-d H:i:s'), + 'updated_at' => date('Y-m-d H:i:s'), + ]; + + if (!isset($unsettledCommissionAmount[$item['parent_player_id']])) { + $unsettledCommissionAmount[$item['parent_player_id']] = $commissionAmount; + } else { + $unsettledCommissionAmount[$item['parent_player_id']] = bcadd($unsettledCommissionAmount[$item['parent_player_id']], $commissionAmount, 2); + } + } + } + } + + // 前天发生账变的玩家 + $playerList = Player::with(['wallet']) + ->whereHas('wallet', function ($query) use ($date) { + $query->where('updated_at', '>=', $date . ' 00:00:00'); + }) + ->get(); + // 账变记录 + $playerDeliveryRecords = collect(PlayerDeliveryRecord::whereDate('updated_at', '2024-11-26') + ->groupBy('player_id') + ->whereIn('type', [ + PlayerDeliveryRecord::TYPE_MODIFIED_AMOUNT_ADD, + PlayerDeliveryRecord::TYPE_MODIFIED_AMOUNT_DEDUCT, + PlayerDeliveryRecord::TYPE_REGISTER_PRESENT, + PlayerDeliveryRecord::TYPE_GAME_OUT, + PlayerDeliveryRecord::TYPE_GAME_IN, + PlayerDeliveryRecord::TYPE_RECHARGE, + ]) + ->get([ + DB::raw("SUM(if(`type`=" . PlayerDeliveryRecord::TYPE_MODIFIED_AMOUNT_ADD . ",`amount`,0)) as admin_add_amount"), + DB::raw("SUM(if(`type`=" . PlayerDeliveryRecord::TYPE_MODIFIED_AMOUNT_DEDUCT . ",`amount`,0)) as admin_deduct_amount"), + DB::raw("SUM(if(`type`=" . PlayerDeliveryRecord::TYPE_REGISTER_PRESENT . ",`amount`,0)) as present_amount"), + DB::raw("SUM(if(`type`=" . PlayerDeliveryRecord::TYPE_RECHARGE . ",`amount`,0)) as recharge_amount"), + 'player_id' + ])->toArray()) + ->keyBy('player_id') + ->toArray(); + // 提现记录 + $playerWithdrawRecord = collect(PlayerWithdrawRecord::whereDate('updated_at', $date) + ->where('status', PlayerWithdrawRecord::STATUS_SUCCESS) + ->groupBy('player_id') + ->get([ + DB::raw('SUM(`money`) as withdraw_amount'), + 'player_id' + ])) + ->keyBy('player_id') + ->toArray(); + /** @var Player $player */ + foreach ($playerList as $player) { + $change = [ + 'recharge_amount' => $playerDeliveryRecords[$player->id]['recharge_amount'] ?? 0, + 'admin_add_amount' => $playerDeliveryRecords[$player->id]['admin_add_amount'] ?? 0, + 'admin_deduct_amount' => $playerDeliveryRecords[$player->id]['admin_deduct_amount'] ?? 0, + 'present_amount' => $playerDeliveryRecords[$player->id]['present_amount'] ?? 0, + 'bonus_amount' => $playerDeliveryRecords[$player->id]['bonus_amount'] ?? 0, + 'withdraw_amount' => $playerWithdrawRecord[$player->id]['withdraw_amount'] ?? 0, + 'date' => $date, + ]; + $change_list[$player->id] = $change; + } + + DB::beginTransaction(); + try { + $playerUpdates = []; + $playerDeliveryRecord = []; + $promoterProfitRecords = []; // 保存所有的PromoterProfitRecord + foreach ($unsettledCommissionAmount as $key => $amount) { + /** @var Player $player */ + $player = $players->get($key); + if ($player) { + $commissionAmount = bcadd($amount, $player->player_extend->unsettled_commission_amount, 2); + if ($commissionAmount > 0) { + $player->player_extend->commission_amount = bcadd($player->player_extend->commission_amount, $commissionAmount, 2); + $player->player_extend->unsettled_commission_amount = 0; + $beforeAmount = $player->wallet->money; + $player->wallet->money = bcadd($player->wallet->money, $commissionAmount, 2); + $playerDeliveryRecord[] = [ + 'player_id' => $player->id, + 'department_id' => $player->department_id, + 'target' => 'commission_record', + 'target_id' => 0, + 'type' => PlayerDeliveryRecord::TYPE_COMMISSION, + 'source' => 'commission', + 'amount' => $commissionAmount, + 'amount_before' => $beforeAmount, + 'amount_after' => $player->wallet->money, + 'tradeno' => '', + 'remark' => '', + 'created_at' => date('Y-m-d H:i:s'), + 'updated_at' => date('Y-m-d H:i:s'), + ]; + } else { + $player->player_extend->unsettled_commission_amount = $commissionAmount; + } + $playerUpdates[] = $player; + } + } + if (!empty($playerUpdates)) { + /** @var Player $player */ + foreach ($playerUpdates as $player) { + $player->push(); + } + } + if (!empty($commissionRecord)) { + CommissionRecord::query()->insert($commissionRecord); + } + if (!empty($playerDeliveryRecord)) { + PlayerDeliveryRecord::query()->insert($playerDeliveryRecord); + } + PlayGameRecord::query() + ->whereDate('created_at', $date) + ->update([ + 'status' => 1, + 'action_at' => date('Y-m-d H:i:s'), + ]); + foreach ($data as $value) { + $up_ids = []; + //玩家为代理 + if(isset($value->player->player_promoter->path)){ + $path = $value->player->player_promoter->path; + $up_ids = explode(',',$path); + //代理不给自己返利 + array_pop($up_ids); + }else{ + //查询玩家无限上级 + if(isset($value->player->recommend_id)){ + $path = PlayerPromoter::where('player_id',$value->player->recommend_id)->value('path'); + $up_ids = explode(',',$path); + }else{ + //未绑定上级的玩家不参与返利计算 + continue; + } + } + $up_list = PlayerPromoter::whereIn('player_id',$up_ids)->orderBy('id','asc')->get(); + foreach($up_list as $k => &$up_val){ + $player_profit_amount = 0;//直属玩家提供的分润 + $diff_ratio = 0;//每级代理获得的分润比例 + if(isset($up_list[$k+1])){ + //上级代理获得的返利比例 + $diff_ratio = bcsub($up_val->ratio, $up_list[$k+1]->ratio, 2); + }else{ + $diff_ratio = $up_val->ratio; + $player_profit_amount = bcdiv(bcmul($diff_ratio, $value->deficit, 2),100,2); + } + $rebate = bcdiv(bcmul($diff_ratio, $value->deficit, 2),100,2); + //更新推广员信息表 + $up_val->player_profit_amount = bcadd($up_val->player_profit_amount,$player_profit_amount,2);//直属玩家提供的分润 + $up_val->profit_amount = bcadd($up_val->profit_amount,$rebate,2);//总分润 + $team_withdraw_total_amount = isset($change_list[$up_val->player_id]['withdraw_amount']) ? $change_list[$up_val->player_id]['withdraw_amount'] : 0; + $up_val->team_withdraw_total_amount = bcadd($up_val->team_withdraw_total_amount, $team_withdraw_total_amount, 2); + $team_recharge_total_amount = isset($change_list[$up_val->player_id]['recharge_amount']) ? $change_list[$up_val->player_id]['recharge_amount'] : 0; + $up_val->team_recharge_total_amount = bcadd($up_val->team_recharge_total_amount, $team_recharge_total_amount, 2); + $up_val->total_profit_amount = bcadd($up_val->total_profit_amount, $rebate, 2); + $up_val->team_total_profit_amount = bcadd($up_val->team_total_profit_amount, bcmul($value->deficit,bcdiv($up_val->ratio,100,2), 2),2); + $up_val->team_profit_amount = bcadd($up_val->team_profit_amount, bcmul($value->deficit,bcdiv($up_val->ratio,100,2), 2), 2); + + $up_val->save(); + $promoter_profit_record = []; + $promoter_profit_record['player_id'] = $value->player_id;//玩家id + $promoter_profit_record['department_id'] = $up_val->department_id; + $promoter_profit_record['promoter_player_id'] = $up_val->player_id;//获得分润的id + $promoter_profit_record['source_player_id'] = $value->player->recommend_id;//玩家上级id + $promoter_profit_record['withdraw_amount'] = isset($change_list[$up_val->player_id]['withdraw_amount']) ? $change_list[$up_val->player_id]['withdraw_amount'] : 0; + $promoter_profit_record['recharge_amount'] = isset($change_list[$up_val->player_id]['recharge_amount']) ? $change_list[$up_val->player_id]['recharge_amount'] : 0; + $promoter_profit_record['bonus_amount'] = isset($change_list[$up_val->player_id]['bonus_amount']) ? $change_list[$up_val->player_id]['bonus_amount'] : 0; + $promoter_profit_record['admin_deduct_amount'] = isset($change_list[$up_val->player_id]['admin_deduct_amount']) ? $change_list[$up_val->player_id]['admin_deduct_amount'] : 0; + $promoter_profit_record['admin_add_amount'] = isset($change_list[$up_val->player_id]['admin_add_amount']) ? $change_list[$up_val->player_id]['admin_add_amount'] : 0; + $promoter_profit_record['present_amount'] = isset($change_list[$up_val->player_id]['present_amount']) ? $change_list[$up_val->player_id]['present_amount'] : 0; + $promoter_profit_record['ratio'] = $up_val->ratio; + $promoter_profit_record['actual_ratio'] = $diff_ratio; + $promoter_profit_record['date'] = $date; + $promoter_profit_record['model'] = PromoterProfitRecord::MODEL_TASK; + $promoter_profit_record['profit_amount'] = $rebate; + $promoter_profit_record['player_profit_amount'] = $player_profit_amount; + $created_at = Carbon::now(); + $promoter_profit_record['created_at'] = $created_at; + $promoter_profit_record['updated_at'] = $created_at; + $promoterProfitRecords[] = $promoter_profit_record; + + } + unset($up_val); + } + PromoterProfitRecord::insert($promoterProfitRecords); + DB::commit(); + } catch (\Exception $e) { + DB::rollBack(); + Log::error('CommissionSettlement', [$e->getMessage(), $e->getTraceAsString()]); + } + Log::info('分润结算结束------------------'); +} + +/** + * 客损返水结算 + * @return void + */ +function damageRebate() +{ + $date = Carbon::now()->subDay()->format('Y-m-d'); + $data = CommissionRecord::query()->where('date', $date)->get(); + Log::info('客损返水结算------------------'); + if ($data->isEmpty()) { + return; + } + // 提取玩家ID + $playerIds = $data->pluck('player_id')->unique()->toArray(); + // 获取玩家数据 + $players = Player::query() + ->with(['wallet', 'player_level']) + ->whereIn('id', $playerIds) + ->get() + ->keyBy('id'); + + DB::beginTransaction(); + try { + /** @var CommissionRecord $item */ + foreach ($data as $item) { + /** @var Player $player */ + $player = $players->get($item->player_id); + $playerLevel = $player->player_level; + if (!empty($playerLevel) && $playerLevel->damage_rebate_ratio > 0 && $item->damage_amount > 0) { + $damageAmount = bcmul($item->damage_amount, $playerLevel->damage_rebate_ratio, 2); + $beforeGameAmount = $player->wallet->money; + if ($damageAmount > 0) { + // 更新钱包 + $player->wallet->money = bcadd($player->wallet->money, $damageAmount, 2); + if ($playerLevel->chip_multiple) { + $chipAmount = bcmul($damageAmount, $playerLevel->chip_multiple); + if ($chipAmount) { + $beforeMustChipAmount = $player->must_chip_amount; + $player->must_chip_amount = bcadd($player->must_chip_amount, $chipAmount, 2); + // 记录打码量明细 + $playerChipRecord = new PlayerChipRecord(); + $playerChipRecord->player_id = $player->id; + $playerChipRecord->department_id = $player->department_id; + $playerChipRecord->type = PlayerChipRecord::TYPE_INC; + $playerChipRecord->record_type = PlayerChipRecord::RECORD_TYPE_BET_REBATE; + $playerChipRecord->amount = $chipAmount; + + $playerChipRecord->chip_amount = 0; + $playerChipRecord->before_chip_amount = $player->chip_amount; + $playerChipRecord->after_chip_amount = $player->chip_amount; + + $playerChipRecord->must_chip_amount = $chipAmount; + $playerChipRecord->before_must_chip_amount = $beforeMustChipAmount; + $playerChipRecord->after_must_chip_amount = $player->must_chip_amount; + + $playerChipRecord->source_type = CommissionRecord::class; + $playerChipRecord->source_id = $item->id; + $playerChipRecord->save(); + } + } + // 根据打码量返水玩家 + $playerDeliveryRecord = new PlayerDeliveryRecord; + $playerDeliveryRecord->player_id = $player->id; + $playerDeliveryRecord->department_id = $player->department_id; + $playerDeliveryRecord->target = $item->getTable(); + $playerDeliveryRecord->target_id = $item->id; + $playerDeliveryRecord->type = PlayerDeliveryRecord::TYPE_DAMAGE_REBATE; + $playerDeliveryRecord->source = 'damage_rebate'; + $playerDeliveryRecord->amount = $damageAmount; + $playerDeliveryRecord->amount_before = $beforeGameAmount; + $playerDeliveryRecord->amount_after = $player->wallet->money; + $playerDeliveryRecord->tradeno = ''; + $playerDeliveryRecord->remark = ''; + $playerDeliveryRecord->save(); + } + } + $player->push(); + } + DB::commit(); + } catch (\Exception $e) { + DB::rollBack(); + Log::error('damageRebate', [$e->getMessage(), $e->getTraceAsString()]); + } + Log::info('客损返水结算结束------------------'); +} + +/** + * 玩家等级选项 + * @return array + */ +function playerLevelOptions(): array +{ + $options = []; + for ($i = 0; $i <= 13; $i++) { + if ($i == 0) { + $options[$i] = admin_trans('player.no_level'); + } else { + $options[$i] = admin_trans('player.level.' . $i); + } + } + return $options; +} + +/** + * 自动生成密码 + * @return string + */ +function generateRandomPassword(): string +{ + $uppercase = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; + $lowercase = 'abcdefghijklmnopqrstuvwxyz'; + $numbers = '0123456789'; + + $password = ''; + + $password .= $uppercase[rand(0, strlen($uppercase) - 1)]; + + $password .= $lowercase[rand(0, strlen($lowercase) - 1)]; + + $password .= $numbers[rand(0, strlen($numbers) - 1)]; + + $length = rand(7, 12); // Random length between 7 and 12 + $remainingLength = $length - 3; + + $allChars = $uppercase . $lowercase . $numbers; + + for ($i = 0; $i < $remainingLength; $i++) { + $password .= $allChars[rand(0, strlen($allChars) - 1)]; + } + + return str_shuffle($password); +} + +/** + * 生成用户名 + * @param int $length + * @return string + */ +function generateUniqueUsername(int $length = 10): string +{ + $characters = 'abcdefghijklmnopqrstuvwxyz0123456789'; // 可选的字符集合 + $uniqueUsername = ''; // 初始化唯一用户名 + + // 生成不重复的用户名 + for ($i = 0; $i < $length; $i++) { + $uniqueUsername .= $characters[rand(0, strlen($characters) - 1)]; + } + + return $uniqueUsername; +} + + +/** + * 组装请求 + * @param string $url + * @param array $params + * @return array|mixed|null + * @throws Exception + */ +function dogGetCurl(string $url, array $params = []) +{ + $response = Http::timeout(7) + ->contentType('application/json') + ->accept('application/json') + ->asJson() + ->get($url, $params); + if (!$response->ok()) { + throw new Exception(trans('system_busy', [], 'message')); + } + $data = $response->json(); + if (empty($data)) { + throw new Exception(trans('system_busy', [], 'message')); + } + return $data; +} + +/** + * 设置推广员 + * @param $id + * @param $ratio + * @param $name + * @return true + * @throws Exception + */ +function setPromoter($id, $ratio, $name,$recommend_id): bool +{ + DB::beginTransaction(); + try { + /** @var Player $player */ + $player = Player::find($id); + if (empty($player)) { + throw new Exception(trans('player_not_found', [], 'message')); + } + if (!empty($player->player_promoter)) { + throw new Exception(trans('player_is_promoter', [], 'message')); + } + if ($player->status == Player::STATUS_STOP) { + throw new Exception(trans('player_stop', [], 'message')); + } + if($recommend_id != $player->recommend_id){ + throw new Exception(trans('not_sub_recommend_player', [], 'message')); + } + $promoter = new PlayerPromoter(); + + /** @var PlayerPromoter $parentPromoter */ + $parentPromoter = PlayerPromoter::where('player_id', $player->recommend_id)->first(); + $maxRatio = $parentPromoter->ratio ?? 100; + if ($ratio > $maxRatio) { + throw new Exception(trans('ratio_max_error', ['{max_ratio}' => $maxRatio], 'message')); + } + + $orgPromoter = $player->is_promoter; + $path = []; + if (isset($parentPromoter->path) && !empty($parentPromoter->path)) { + $path = explode(',', $parentPromoter->path); + } + $path[] = $player->id; + $promoter->ratio = $ratio; + $promoter->player_id = $player->id; + $promoter->recommend_id = $parentPromoter->player_id ?? 0; + $promoter->department_id = $player->department_id; + $promoter->name = !empty($name) ? $name : $player->name; + $promoter->path = implode(',', $path); + $promoter->save(); + // 更新玩家信息 + $player->is_promoter = 1; + $player->recommend_code = createCode(); + $player->save(); + $parentPromoter && $orgPromoter == 0 && $parentPromoter->increment('team_num'); + DB::commit(); + } catch (\Exception $e) { + DB::rollBack(); + throw new Exception($e->getMessage()); + } + + return true; +} + +/** + * 验证手机号格式 + * @param $phoneNumber + * @return true + */ +function validateMalaysianPhoneNumber($phoneNumber): bool +{ + $pattern = '/^(01\d{8,9}|(\+60|60|0060)(0?1)\d{8,9})$/'; + return preg_match($pattern, $phoneNumber); +} + +/** + * post表单请求 + * @param string $url + * @param array $params + * @return array|mixed + * @throws Exception + */ +function doFormCurl(string $url, array $params = []) +{ + $response = Http::timeout(10)->asForm()->post($url, $params); + if (!$response->ok()) { + throw new Exception(trans('system_busy', [], 'message')); + } + $data = $response->json(); + if (empty($data)) { + throw new Exception(trans('system_busy', [], 'message')); + } + + return $data; +} + +/** + * 结算 + * @param $id + * @param int $userId + * @param string $userName + * @return void + * @throws Exception + */ +function doSettlement($id, int $userId = 0, string $userName = '') +{ + /** @var PlayerPromoter $playerPromoter */ + $playerPromoter = PlayerPromoter::where('player_id', $id)->first(); + if (empty($playerPromoter)) { + throw new Exception(trans('profit_amount_not_found', [], 'message')); + } + if ($playerPromoter->status == 0) { + throw new Exception(trans('player_promoter_has_disable', [], 'message')); + } + if (!isset($playerPromoter->profit_amount)) { + throw new Exception(trans('profit_amount_not_found', [], 'message')); + } + $profitAmount = PromoterProfitRecord::where('status', PromoterProfitRecord::STATUS_UNCOMPLETED) + ->where('promoter_player_id', $id) + ->first([ + DB::raw('SUM(`withdraw_amount`) as total_withdraw_amount'), + DB::raw('SUM(`recharge_amount`) as total_recharge_amount'), + DB::raw('SUM(`bonus_amount`) as total_bonus_amount'), + DB::raw('SUM(`admin_deduct_amount`) as total_admin_deduct_amount'), + DB::raw('SUM(`admin_add_amount`) as total_admin_add_amount'), + DB::raw('SUM(`present_amount`) as total_present_amount'), + DB::raw('SUM(`profit_amount`) as total_profit_amount'), + DB::raw('SUM(`player_profit_amount`) as total_player_profit_amount'), + ]) + ->toArray(); + + DB::beginTransaction(); + try { + $promoterProfitSettlementRecord = new PromoterProfitSettlementRecord(); + $promoterProfitSettlementRecord->department_id = $playerPromoter->player->department_id; + $promoterProfitSettlementRecord->promoter_player_id = $playerPromoter->player_id; + $promoterProfitSettlementRecord->total_withdraw_amount = $profitAmount['total_withdraw_amount'] ?? 0; + $promoterProfitSettlementRecord->total_recharge_amount = $profitAmount['total_recharge_amount'] ?? 0; + $promoterProfitSettlementRecord->total_bonus_amount = $profitAmount['total_bonus_amount'] ?? 0; + $promoterProfitSettlementRecord->total_admin_deduct_amount = $profitAmount['total_admin_deduct_amount'] ?? 0; + $promoterProfitSettlementRecord->total_admin_add_amount = $profitAmount['total_admin_add_amount'] ?? 0; + $promoterProfitSettlementRecord->total_present_amount = $profitAmount['total_present_amount'] ?? 0; + $promoterProfitSettlementRecord->total_profit_amount = $profitAmount['total_profit_amount'] ?? 0; + $promoterProfitSettlementRecord->total_player_profit_amount = $profitAmount['total_player_profit_amount'] ?? 0; + $promoterProfitSettlementRecord->last_profit_amount = $playerPromoter->last_profit_amount; + $promoterProfitSettlementRecord->adjust_amount = $playerPromoter->adjust_amount; + $promoterProfitSettlementRecord->type = PromoterProfitSettlementRecord::TYPE_SETTLEMENT; + $promoterProfitSettlementRecord->tradeno = createOrderNo(); + $promoterProfitSettlementRecord->user_id = $userId; + $promoterProfitSettlementRecord->user_name = $userName; + $settlement = $amount = bcadd($promoterProfitSettlementRecord->total_profit_amount, + $promoterProfitSettlementRecord->adjust_amount, 2); + if ($amount > 0) { + if ($playerPromoter->settlement_amount < 0) { + $diffAmount = bcadd($amount, $playerPromoter->settlement_amount, 2); + $settlement = max($diffAmount, 0); + } + } + $promoterProfitSettlementRecord->actual_amount = $settlement; + $promoterProfitSettlementRecord->save(); + // 更新结算报表 + PromoterProfitRecord::where('status', PromoterProfitRecord::STATUS_UNCOMPLETED) + ->where('promoter_player_id', $id) + ->update([ + 'status' => PromoterProfitRecord::STATUS_COMPLETED, + 'settlement_time' => date('Y-m-d H:i:s'), + 'settlement_tradeno' => $promoterProfitSettlementRecord->tradeno, + 'settlement_id' => $promoterProfitSettlementRecord->id, + ]); + // 结算后这些数据清零 + $playerPromoter->profit_amount = 0; + $playerPromoter->player_profit_amount = 0; + $playerPromoter->team_recharge_total_amount = 0; + $playerPromoter->team_withdraw_total_amount = 0; + $playerPromoter->adjust_amount = 0; + // 更新数据 + $playerPromoter->team_profit_amount = bcsub($playerPromoter->team_profit_amount, + $promoterProfitSettlementRecord->total_profit_amount, 2); + $playerPromoter->last_profit_amount = $settlement; + $playerPromoter->settlement_amount = bcadd($playerPromoter->settlement_amount, $amount, 2); + $playerPromoter->team_settlement_amount = bcadd($playerPromoter->team_settlement_amount, + $promoterProfitSettlementRecord->total_profit_amount, 2); + $playerPromoter->last_settlement_time = date('Y-m-d', strtotime('-1 day')); + + if (!empty($playerPromoter->path)) { + PlayerPromoter::where('player_id', '!=', $playerPromoter->player_id) + ->whereIn('player_id', explode(',', $playerPromoter->path)) + ->update([ + 'team_profit_amount' => DB::raw("team_profit_amount - {$promoterProfitSettlementRecord->total_profit_amount}"), + 'team_settlement_amount' => DB::raw("team_settlement_amount + $promoterProfitSettlementRecord->total_profit_amount"), + ]); + } + if ($settlement > 0) { + // 增加钱包余额 + $amountBefore = $playerPromoter->player->wallet->money; + $amountAfter = bcadd($amountBefore, $settlement, 2); + $playerDeliveryRecord = new PlayerDeliveryRecord; + $playerDeliveryRecord->player_id = $playerPromoter->player_id; + $playerDeliveryRecord->department_id = $playerPromoter->department_id; + $playerDeliveryRecord->target = $promoterProfitSettlementRecord->getTable(); + $playerDeliveryRecord->target_id = $promoterProfitSettlementRecord->id; + $playerDeliveryRecord->type = PlayerDeliveryRecord::TYPE_PROFIT; + $playerDeliveryRecord->source = 'profit'; + $playerDeliveryRecord->amount = $settlement; + $playerDeliveryRecord->amount_before = $amountBefore; + $playerDeliveryRecord->amount_after = $amountAfter; + $playerDeliveryRecord->tradeno = $promoterProfitSettlementRecord->tradeno ?? ''; + $playerDeliveryRecord->remark = ''; + $playerDeliveryRecord->save(); + $playerPromoter->player->wallet->money = $amountAfter; + } + $playerPromoter->push(); + DB::commit(); + } catch (\Exception $e) { + DB::rollback(); + throw new Exception($e->getMessage()); + } +} \ No newline at end of file diff --git a/app/middleware/AccessControl.php b/app/middleware/AccessControl.php new file mode 100644 index 0000000..3291469 --- /dev/null +++ b/app/middleware/AccessControl.php @@ -0,0 +1,25 @@ +method() == 'OPTIONS' ? response('') : $handler($request); + + // 给响应添加跨域相关的http头 + $response->withHeaders([ + 'Access-Control-Allow-Credentials' => 'true', + 'Access-Control-Allow-Origin' => $request->header('origin', '*'), + 'Access-Control-Allow-Methods' => $request->header('access-control-request-method', '*'), + 'Access-Control-Allow-Headers' => $request->header('access-control-request-headers', '*'), + ]); + + return $response; + } +} \ No newline at end of file diff --git a/app/middleware/AppVersionMiddleware.php b/app/middleware/AppVersionMiddleware.php new file mode 100644 index 0000000..5c9eadb --- /dev/null +++ b/app/middleware/AppVersionMiddleware.php @@ -0,0 +1,57 @@ + + * @copyright walkor + * @link http://www.workerman.net/ + * @license http://www.opensource.org/licenses/mit-license.php MIT License + */ + +namespace app\middleware; + +use addons\webman\model\AppVersion; +use Webman\Http\Request; +use Webman\Http\Response; +use Webman\MiddlewareInterface; + +/** + * 站点验证中间件 + * Class SiteAuthMiddleware + * @package app\middleware + */ +class AppVersionMiddleware implements MiddlewareInterface +{ + public function process(Request $request, callable $handler): Response + { + // 更新比较时,查询的是版本标识,大于传入的版本标识时,返回新版本的数据 + $versionKey = $request->header('app-version-key'); + $systemKey = $request->header('system-key'); + // 传入检测的系统 + if (empty($versionKey) || empty($systemKey)) { + return jsonFailResponse('缺少版本号或版本标识'); + } + $data = AppVersion::query() + ->where('app_version_key', '>', $versionKey) + ->where(['status' => 1]) + ->where('status', 1) + ->where('force_update', 1) + ->where('system_key', $systemKey) + ->where('department_id', request()->department_id) + ->whereDate('regular_update', '<', date("Y-m-d H:i:s", time())) + ->select(['id', 'system_key', 'app_version', 'app_version_key', 'apk_url', 'hot_update_url', 'force_update', 'hot_update', 'regular_update', 'update_content', 'notes']) + ->orderBy('id', 'desc') + ->first(); + if (!empty($data)) { + return jsonFailResponse('有新版本', [ + 'data' => $data + ], 406); + } + + return $handler($request); + } +} diff --git a/app/middleware/ExternalAppMiddleware.php b/app/middleware/ExternalAppMiddleware.php new file mode 100644 index 0000000..f1cc7ce --- /dev/null +++ b/app/middleware/ExternalAppMiddleware.php @@ -0,0 +1,35 @@ +whereNull('deleted_at')->where('status', 1)->first(); + if (empty($externalApp)) { + throw new \Exception('应用不存在'); + } + // 验证服务器ip + if (!empty($externalApp->white_ip) && !in_array(request()->getRealIp(), explode(',', $externalApp->white_ip))) { + throw new \Exception('IP认证不通过'); + } + } catch (\Exception $e) { + return jsonFailResponse($e->getMessage(), [], 0); + } + return $handler($request); + } +} \ No newline at end of file diff --git a/app/middleware/Lang.php b/app/middleware/Lang.php new file mode 100644 index 0000000..421ceb5 --- /dev/null +++ b/app/middleware/Lang.php @@ -0,0 +1,17 @@ +header('Lang') ?? 'zh_CN'; + locale(session('lang', Str::replace('-', '_', $lang))); + return $handler($request); + } +} diff --git a/app/middleware/SiteAuthMiddleware.php b/app/middleware/SiteAuthMiddleware.php new file mode 100644 index 0000000..e5a9832 --- /dev/null +++ b/app/middleware/SiteAuthMiddleware.php @@ -0,0 +1,61 @@ + + * @copyright walkor + * @link http://www.workerman.net/ + * @license http://www.opensource.org/licenses/mit-license.php MIT License + */ + +namespace app\middleware; + +use addons\webman\model\Channel; +use support\Cache; +use Webman\Http\Request; +use Webman\Http\Response; +use Webman\MiddlewareInterface; + +/** + * 站点验证中间件 + * Class SiteAuthMiddleware + * @package app\middleware + */ +class SiteAuthMiddleware implements MiddlewareInterface +{ + public function process(Request $request, callable $handler): Response + { + // 站点标识 + $siteId = $request->header('Site-Id'); + // 排除接口 + if ($request->path() == '/api/v1/talk-pay-notify') { + return $handler($request); + } + if (empty($siteId)) { + return response('fail', 400); + } + $cacheKey = "channel_" . $siteId; + $channel = Cache::get($cacheKey); + if (empty($channel)) { + /** @var Channel $channel */ + $channel = Channel::where('site_id', $siteId)->whereNull('deleted_at')->first(); + if (!empty($channel)) { + $cacheKey = "channel_" . $channel->site_id; + Cache::set($cacheKey, $channel->toArray()); + } else { + return response('fail', 400); + } + } + if ($channel['status'] == 0 || !empty($channel['deleted_at'])) { + return response('fail', 400); + } + $request->department_id = $channel['department_id']; + $request->site_id = $siteId; + + return $handler($request); + } +} diff --git a/app/middleware/StaticFile.php b/app/middleware/StaticFile.php new file mode 100644 index 0000000..cce75dc --- /dev/null +++ b/app/middleware/StaticFile.php @@ -0,0 +1,42 @@ + + * @copyright walkor + * @link http://www.workerman.net/ + * @license http://www.opensource.org/licenses/mit-license.php MIT License + */ + +namespace app\middleware; + +use Webman\Http\Request; +use Webman\Http\Response; +use Webman\MiddlewareInterface; + +/** + * Class StaticFile + * @package app\middleware + */ +class StaticFile implements MiddlewareInterface +{ + public function process(Request $request, callable $next): Response + { + // Access to files beginning with. Is prohibited + if (strpos($request->path(), '/.') !== false) { + return response('

403 forbidden

', 403); + } + /** @var Response $response */ + $response = $next($request); + // Add cross domain HTTP header + /*$response->withHeaders([ + 'Access-Control-Allow-Origin' => '*', + 'Access-Control-Allow-Credentials' => 'true', + ]);*/ + return $response; + } +} diff --git a/app/queue/redis/CancelRecharge.php b/app/queue/redis/CancelRecharge.php new file mode 100644 index 0000000..ee06305 --- /dev/null +++ b/app/queue/redis/CancelRecharge.php @@ -0,0 +1,35 @@ +where('status', PlayerRechargeRecord::STATUS_WAIT) + ->where('id', $data['id']) + ->first(); + if (!empty($playerRechargeRecord)) { + $playerRechargeRecord->status = PlayerRechargeRecord::STATUS_RECHARGED_SYSTEM_CANCEL; + $playerRechargeRecord->cancel_time = date('Y-m-d H:i:s'); + $playerRechargeRecord->save(); + } + } +} \ No newline at end of file diff --git a/app/queue/redis/SendBroadcasts.php b/app/queue/redis/SendBroadcasts.php new file mode 100644 index 0000000..5bfd623 --- /dev/null +++ b/app/queue/redis/SendBroadcasts.php @@ -0,0 +1,27 @@ +getMessage()); + } + } +} diff --git a/app/service/BaseSmsServices.php b/app/service/BaseSmsServices.php new file mode 100644 index 0000000..28c7319 --- /dev/null +++ b/app/service/BaseSmsServices.php @@ -0,0 +1,16 @@ +where('game_id', $gameId) + ->where('department_id', $departmentId) + ->where('status', 1) + ->where('total_remaining', '>', 0) + ->where('daily_remaining', '>', 0) + ->lockForUpdate() + ->get() + ->toArray(); + + if (empty($prizes)) { + DB::rollBack(); + return [ + 'success' => false, + 'message' => '当前游戏不可用' + ]; + } + + $game = Game::query()->select('id', 'game_type', 'consume')->where('id', $gameId)->first()->toArray(); + // 2. 计算中奖结果 + $result = $this->calculateWinning($player,$prizes, $game['consume']); + $prizeId = $result['prize_id']; + $prizeName = $result['prize_name']; + $prizeType = $result['prize_type']; + + $game['department_id'] = $departmentId; + // 3. 记录抽奖信息 + $this->createRecord($player->id, $result, $game, $ip); + + if ($result['prize_type'] == 3) { + $message = '很遗憾,未中奖'; + } else { + $message = '恭喜获得' . $prizeName; + } + DB::commit(); + return [ + 'prize_id' => $prizeId, + 'prize_name' => $prizeName, + 'prize_type' => $prizeType, + 'consume' => $game['consume'], + 'message' => $message + ]; + } catch (Exception $e) { + DB::rollBack(); + Log::error("抽奖失败:{$e->getMessage()}", [ + 'user_id' => $player->id, + 'trace' => $e->getTraceAsString() + ]); + return [ + 'success' => false, + 'message' => '抽奖过程异常,请稍后再试' + ]; + } + } + + /** + * 计算中奖结果 + * @param array $prizes 有效奖品列表 + * @return array 中奖信息 + * @throws Exception + */ + private function calculateWinning($player, array $prizes, $consume): array + { + // 计算总概率权重 + $totalProb = array_sum(array_column($prizes, 'probability')); + if ($totalProb <= 0) { + return ['prize_id' => null, 'type' => Prize::PRIZE_TYPE_LOSE, 'prize_name' => '未中奖', 'prize_pic' => null]; + } + $player->wallet->decrement('money', $consume); + // 生成随机数(0到总权重之间) + $random = mt_rand(1, $totalProb * 10000) / 10000; // 提高精度 + + $currentSum = 0; + foreach ($prizes as $prize) { + $currentSum += $prize['probability']; + if ($random <= $currentSum) { + // 检查并扣减库存 + $this->deductStock($prize['id']); + return [ + 'prize_id' => $prize['id'], + 'prize_type' => $prize['type'], + 'prize_name' => $prize['name'], + 'prize_pic' => $prize['pic'] + ]; + } + } + + return ['prize_id' => null, 'type' => Prize::PRIZE_TYPE_LOSE, 'prize_name' => '未中奖', 'prize_pic' => null]; + } + + /** + * 扣减库存 + * @param int $prizeId 奖品ID + * @throws Exception + */ + private function deductStock(int $prizeId): void + { + $prize = Prize::query()->findOrFail($prizeId); + + // 再次检查库存(防止并发超卖) + if ($prize->total_remaining <= 0 || $prize->daily_remaining <= 0) { + throw new \Exception("奖品库存不足"); + } + + $prize->decrement('total_remaining'); + $prize->decrement('daily_remaining'); + $prize->save(); + } + + /** + * 创建抽奖记录 + * @param int $userId 用户ID + * @param array|null $prize 奖品 + * @param string $ip IP地址 + */ + private function createRecord(int $userId, ?array $prize, array $game, string $ip): void + { + DrawRecord::query()->create([ + 'uid' => $userId, + 'prize_id' => $prize['prize_id'], + 'prize_type' => $prize['prize_type'], + 'prize_name' => $prize['prize_name'], + 'prize_pic' => $prize['prize_pic'], + 'game_id' => $game['id'], + 'consume' => $game['consume'], + 'game_type' => $game['game_type'], + 'department_id' => $game['department_id'], + 'draw_time' => date('Y-m-d H:i:s'), + 'ip' => $ip + ]); + } +} \ No newline at end of file diff --git a/app/service/JpSmsServicesServices.php b/app/service/JpSmsServicesServices.php new file mode 100644 index 0000000..8cae9d9 --- /dev/null +++ b/app/service/JpSmsServicesServices.php @@ -0,0 +1,103 @@ +domain = config('jp-sms.domain'); + $this->appKey = config('jp-sms.app_key'); + $this->appcode = config('jp-sms.appcode'); + $this->appSecret = config('jp-sms.app_secret'); + } + + /** + * 执行请求 + * @param string $api 接口 + * @param array $params 参数 + * @return mixed + */ + public function doCurl(string $api, array $params) + { + $result = Http::timeout(10)->get($this->domain . $api, $params); + + return json_decode($result, true); + } + + /** + * 日本供应商短信发送 + * @param $phone + * @param $type + * @param int $playerId + * @return bool + * @throws Exception + */ + public function send($phone, $type, int $playerId = 0): bool + { + $env = config('app.env'); + $api = config('jp-sms.batchSend'); + $code = ($env == 'pro' ? random_int(10000, 99999) : config('sms.default_code')); + $key = setSmsKey($phone, $type); + $uid = gen_uuid(); + $msg = Str::replaceFirst('{code}', $code, getContent($type, 'jp')); + //驗證通過 + if ($env == 'pro') { + $result = $this->doCurl($api, [ + 'appKey' => $this->appKey, + 'appcode' => $this->appcode, + 'appSecret' => $this->appSecret, + 'uid' => $uid, + 'phone' => PhoneSmsLog::COUNTRY_CODE_JP . $phone, + 'msg' => $msg + ]); + } else { + $result = $env; + } + $phoneSmsLog = new PhoneSmsLog(); + $phoneSmsLog->player_id = $playerId; + $phoneSmsLog->code = $code; + $phoneSmsLog->phone = PhoneSmsLog::COUNTRY_CODE_JP . $phone; + $phoneSmsLog->uid = $uid; + $phoneSmsLog->send_times = 1; + $phoneSmsLog->type = $type; + $phoneSmsLog->expire_time = date("Y-m-d H:i:s", time() + $this->expireTime); + $phoneSmsLog->response = $result ? json_encode($result) : ''; + if ($env == 'pro') { + if (isset($result) && $result['code'] == '00000') { + if (isset($result['result']) && $result['result'][0]['status'] == '00000') { + Cache::set($key, $code, $this->expireTime); + $phoneSmsLog->status = 1; + $phoneSmsLog->save(); + return true; + } + } + } else { + Cache::set($key, $code, $this->expireTime); + $phoneSmsLog->status = 1; + $phoneSmsLog->save(); + return true; + } + $phoneSmsLog->status = 0; + $phoneSmsLog->save(); + + throw new Exception(trans('phone_code_send_failed', [], 'message')); + } +} diff --git a/app/service/OnePayServices.php b/app/service/OnePayServices.php new file mode 100644 index 0000000..f4589e3 --- /dev/null +++ b/app/service/OnePayServices.php @@ -0,0 +1,147 @@ +merchantId = config('one_pay.merchantId'); + $this->key = config('one_pay.key'); + $this->api_key = config('one_pay.api_key'); + $this->domain = config('one_pay.domain'); + $this->notifyUrl = config('one_pay.notifyUrl'); + $this->payoutNotifyUrl = config('one_pay.payoutNotifyUrl'); + $this->returnUrl = config('one_pay.returnUrl'); + } + + /** + * 执行请求 + * @param string $api 接口 + * @param array $params 参数 + */ + public function doCurl(string $api, array $params): array + { + $result = Http::timeout(10)->asForm()->post($this->domain.$api, $params); + Log::channel('pay_log')->info('onepay:'.$api,json_decode($result, true)); + return json_decode($result, true); + } + + /** + * 创建签名 + * @throws GameException + */ + public function getAuth(): string + { + $data = [ + 'username' => $this->merchantId, + 'api_key' => $this->api_key, + ]; + $result = $this->doCurl('merchant/auth',$data); + if ($result['status'] == 'true') { + return $result['auth']; + } else { + throw new GameException($result['message'], 0); + } + } + + /** + * 创建签名 + * @param array $params 参数 + */ + public function calculateSignature(array $params): string + { + ksort($params); + $signature_string = ''; + foreach ($params as $key => $value) { + $signature_string .= $key . ':' . $value . '&'; + } + $signature_string .= 'key:' . $this->key; + return strtoupper(md5($signature_string)); + } + + /** + * 验证返回签名 + * @param array $params 参数 + */ + public function verifySign(array $params): string + { + return md5($this->key.$params['order_id']); + } + + /** + * 存款 + * @param array $params 参数 + * @throws GameException + */ + public function deposit(array $params): array + { + $data = [ + 'username' => $params['uuid'], + 'auth' => $this->getAuth(), + 'amount' => $params['amount'], + 'currency' => 'MYR', + 'orderid' => $params['orderNo'], + 'email' => $params['email'], + 'phone_number' => $params['phone'], + 'redirect_url' => $this->returnUrl.'?orderNo='.$params['orderNo'], + 'pay_method' => $params['paymentCode'], + 'callback_url' => $this->notifyUrl, + ]; + if ($data['pay_method'] == 'online_banking') { + $data['bank_id'] = $params['bank_id']; + } + return $this->doCurl('merchant/generate_orders',$data); + } + + /** + * 代付 + * @param array $params 参数 + * @throws GameException + */ + public function payout(array $params): array + { + $data = [ + 'auth' => $this->getAuth(), + 'amount' => $params['amount'], + 'currency' => 'MYR', + 'orderid' => $params['orderNo'], + 'bank_id' => $params['bankCode'], + 'holder_name' => $params['bankAccountName'], + 'account_no' => $params['bankAccountNo'], + 'callback_url' => $this->payoutNotifyUrl, + ]; + return $this->doCurl('merchant/withdraw_orders',$data); + } + + /** + * 订单查询 + * @param array $params 参数 + */ + public function query(array $params): array + { + $data = [ + 'username' => $this->merchantId, + 'id' => $params['orderNo'], + ]; + return $this->doCurl('merchant/check_status',$data); + } + +} diff --git a/app/service/SePayServices.php b/app/service/SePayServices.php new file mode 100644 index 0000000..981399c --- /dev/null +++ b/app/service/SePayServices.php @@ -0,0 +1,130 @@ +merchantId = config('se-pay.merchantId'); + $this->key = config('se-pay.MD5'); + $this->domain = config('se-pay.domain'); + $this->notifyUrl = config('se-pay.notifyUrl'); + $this->payoutNotifyUrl = config('se-pay.payoutNotifyUrl'); + $this->returnUrl = config('se-pay.returnUrl'); + } + + /** + * 执行请求 + * @param string $api 接口 + * @param array $params 参数 + */ + public function doCurl(string $api, array $params): array + { + $result = Http::timeout(10)->asForm()->post($this->domain.$api, $params); + Log::channel('pay_log')->info('sepay:'.$api,json_decode($result, true)); + return json_decode($result, true); + } + + /** + * 创建签名 + * @param array $params 参数 + */ + public function calculateSignature(array $params): string + { + ksort($params); + $signature_string = ''; + foreach ($params as $key => $value) { + $signature_string .= $key . ':' . $value . '&'; + } + $signature_string .= 'key:' . $this->key; + return strtoupper(md5($signature_string)); + } + + /** + * 验证返回签名 + * @param array $params 参数 + */ + public function verifySign(array $params): string + { + ksort($params); + unset($params['signMsg']); + $signature_string = ''; + foreach ($params as $key => $value) { + $signature_string .= $key . ':' . $value . '&'; + } + $signature_string .= 'key:' . $this->key; + return strtoupper(md5($signature_string)); + } + + /** + * 存款 + * @param array $params 参数 + */ + public function deposit(array $params): array + { + $params['notifyUrl'] = $this->notifyUrl; + $params['returnUrl'] = $this->returnUrl.'?orderNo='.$params['orderNo']; + $request_str = base64_encode(json_encode($params)); + $data = [ + 'merchantNo' => $this->merchantId, + 'request' => $request_str, + 'version' => '1.0', + ]; + $signature = $this->calculateSignature($data); + $data['signMsg'] = $signature; + return $this->doCurl('qrh5',$data); + } + + /** + * 代付 + * @param array $params 参数 + */ + public function payout(array $params): array + { + $params['notifyUrl'] = $this->payoutNotifyUrl; + $request_str = base64_encode(json_encode($params)); + $data = [ + 'merchantNo' => $this->merchantId, + 'request' => $request_str, + 'version' => '1.0', + ]; + $signature = $this->calculateSignature($data); + $data['signMsg'] = $signature; + return $this->doCurl('payout',$data); + } + + /** + * 订单查询 + * @param array $params 参数 + */ + public function query(array $params): array + { + $request_str = base64_encode(json_encode($params)); + $data = [ + 'merchantNo' => $this->merchantId, + 'request' => $request_str, + 'version' => '1.0', + ]; + $signature = $this->calculateSignature($data); + $data['signMsg'] = $signature; + return $this->doCurl('query',$data); + } + +} diff --git a/app/service/SklPayServices.php b/app/service/SklPayServices.php new file mode 100644 index 0000000..9946fcf --- /dev/null +++ b/app/service/SklPayServices.php @@ -0,0 +1,96 @@ +merchantId = config('skl_pay.merchantId'); + $this->api_key = config('skl_pay.api_key'); + $this->domain = config('skl_pay.domain'); + $this->notifyUrl = config('skl_pay.notifyUrl'); + $this->payoutNotifyUrl = config('skl_pay.payoutNotifyUrl'); + $this->returnUrl = config('skl_pay.returnUrl'); + } + + /** + * 执行请求 + * @param string $api 接口 + * @param array $params 参数 + */ + public function doCurl(string $api, array $params): array + { + $result = Http::timeout(10)->asJson()->post($this->domain.$api, $params); + Log::channel('pay_log')->info('sklpay:'.$api,json_decode($result, true)); + return json_decode($result, true); + } + + /** + * 存款 + * @param array $params 参数 + * @throws GameException + */ + public function deposit(array $params): array + { + $data = [ + 'api_token' => $this->api_key, + 'amount' => $params['amount'], + 'gateway' => $params['paymentCode'], + 'pusername' => $params['name'], + 'invoice_no' => $params['orderNo'], + ]; + return $this->doCurl('/api/transaction/init',$data); + } + + /** + * 代付 + * @param array $params 参数 + * @throws GameException + */ + public function payout(array $params): array + { + $data = [ + 'api_token' => $this->api_key, + 'amount' => $params['amount'], + 'to_bank' => $params['bankCode'], + 'to_bank_account_no' => $params['bankAccountNo'], + 'account_holder' => $params['bankAccountName'], + 'invoice_no' => $params['orderNo'], + ]; + return $this->doCurl('/api/transfer_out/init',$data); + } + + /** + * 订单查询 + * @param array $params 参数 + */ + public function query(array $params): array + { + $data = [ + 'transaction_id' => $params['orderNo'], + ]; + return $this->doCurl('/api/transaction/get_status',$data); + } + +} diff --git a/app/service/SmsServicesServices.php b/app/service/SmsServicesServices.php new file mode 100644 index 0000000..fd391e2 --- /dev/null +++ b/app/service/SmsServicesServices.php @@ -0,0 +1,41 @@ +send($phone, $type, $playerId, $name); + case PhoneSmsLog::COUNTRY_CODE_JP: + return (new JpSmsServicesServices())->send($phone, $type, $playerId); + default: + throw new Exception(trans('country_code_error', [], 'message')); + } + } +} diff --git a/app/service/TwSmsServicesServices.php b/app/service/TwSmsServicesServices.php new file mode 100644 index 0000000..8c05312 --- /dev/null +++ b/app/service/TwSmsServicesServices.php @@ -0,0 +1,121 @@ +domain = config('tw-sms.domain'); + $this->username = config('tw-sms.username'); + $this->password = config('tw-sms.password'); + } + + /** + * 执行请求 + * @param string $api 接口 + * @param array $params 参数 + * @return mixed + * @throws Exception + */ + public function doCurl(string $api, array $params) + { + $result = Http::timeout(10)->post($this->domain . $api . '?' . http_build_query($params)); + if ($result->ok()) { + $arr = preg_split('/[;\r\n]+/s', $result->body()); + $data = []; + foreach ($arr as $item) { + $arr = explode('=', $item); + if (!empty($arr) && isset($arr[0]) && isset($arr[1])) { + $data[$arr[0]] = $arr[1]; + } + } + return $data; + } + throw new Exception(trans('phone_code_send_failed', [], 'message')); + } + + /** + * 日本供应商短信发送 + * @param $phone + * @param $type + * @param int $playerId + * @param string $name + * @return bool + * @throws Exception + */ + public function send($phone, $type, int $playerId = 0, string $name = ''): bool + { + $env = config('app.env'); + $api = config('tw-sms.sm_send_api'); + $code = ($env == 'pro' ? random_int(10000, 99999) : config('sms.default_code')); + $key = setSmsKey($phone, $type); + $uid = gen_uuid(); + $msg = Str::replaceFirst('{code}', $code, getContent($type, 'tw')); + //驗證通過 + if ($env == 'pro') { + $result = $this->doCurl($api, [ + 'username' => $this->username, + 'password' => $this->password, + 'dstaddr' => $phone, + 'destname' => $name, + 'dlvtime' => '', + 'vldtime' => $this->expireTime, + 'smbody' => $msg, + 'CharsetURL' => 'UTF-8', + ]); + Log::info('短信发送结果', [$result]); + } else { + $result = $env; + } + $phoneSmsLog = new PhoneSmsLog(); + $phoneSmsLog->player_id = $playerId; + $phoneSmsLog->code = $code; + $phoneSmsLog->phone = PhoneSmsLog::COUNTRY_CODE_TW . $phone; + $phoneSmsLog->uid = $uid; + $phoneSmsLog->send_times = 1; + $phoneSmsLog->type = $type; + $phoneSmsLog->expire_time = date("Y-m-d H:i:s", time() + $this->expireTime); + $phoneSmsLog->response = $result ? json_encode($result) : ''; + if ($env == 'pro') { + if (isset($result['statuscode'])) { + /* 0 預約傳送中1 已送達業者2 已送達業者4 已送達⼿機5 內容有錯誤6 ⾨號有錯誤7 簡訊已停⽤8 逾時無送達9 預約已取消*/ + switch ($result['statuscode']) { + case '0': + case '1': + case '2': + case '4': + Cache::set($key, $code, $this->expireTime); + $phoneSmsLog->status = 1; + $phoneSmsLog->save(); + return true; + } + } + } else { + Cache::set($key, $code, $this->expireTime); + $phoneSmsLog->status = 1; + $phoneSmsLog->save(); + return true; + } + $phoneSmsLog->status = 0; + $phoneSmsLog->save(); + + throw new Exception(trans('phone_code_send_failed', [], 'message')); + } +} diff --git a/app/service/game/BigGamingServiceInterface.php b/app/service/game/BigGamingServiceInterface.php new file mode 100644 index 0000000..e309a5e --- /dev/null +++ b/app/service/game/BigGamingServiceInterface.php @@ -0,0 +1,759 @@ + 'Casino', + '5' => 'Fishing', + '8' => 'Bingo', + '1' => 'Slot', + ]; + + public $localGameType = [ + '2' => '2',//赌场 + '4' => '4',//捕鱼 + '5' => '5',//真人视讯 + ]; + + public $failCode = [ + 'S200' => '重復請求', + 'F0001' => '無效的簽名', + 'F0002' => '無效的SN', + 'F0003' => '無效的參數', + 'F0004' => '無效的貨幣', + 'F0005' => '玩家已存在', + 'F0006' => '玩家不存在', + 'F0007' => '會員不存在', + 'F0008' => '執行失敗', + 'F0009' => '無效的方法', + 'F0010' => '無效的用戶狀態', + 'F0011' => '玩家狀態無需更新', + 'F0012' => '超出數據範圍', + 'F0013' => '無匹配數據', + 'F0014' => '登入位置被禁止', + 'F0015' => '分數不足夠', + 'F0016' => '不支持禮碼', + 'F0017' => '交易流水號不得重複', + 'F0018' => '系統繁忙', + 'F0019' => '日期時間各式錯誤', + 'F0020' => '超出時間限制範圍(開始時間與結束時間之間不能大於120分鐘)', + 'F0021' => '執行取消', + 'M0001' => '系統維護', + 'M0002' => '系統錯誤', + ]; + + /** + * @param Player|null $player + * @param $type + * @throws Exception + */ + public function __construct($type, Player $player = null) + { + $config = config('game_platform.' . $type); + $this->appId = $config['app_id']; + $this->apiDomain = $config['api_domain']; + $this->domain = $config['domain']; + $this->appSecret = $config['app_secret']; + $this->sn = $config['sn']; + $this->adminUser = $config['admin_user']; + $this->secretCode = base64_encode(sha1($config['admin_pass'], true)); + $this->platform = GamePlatform::query()->where('name', $type)->first(); + if (!empty($player)) { + $this->player = $player; + $this->getLoginId(); + } + } + + /** + * 生成请求url + * @return string + */ + public function createUrl(): string + { + return $this->apiDomain; + } + + //生成签名 + public function createSign($params): string + { + $str = ''; + foreach ($params as $v) { + $str .= $v; + } + return md5($str); + } + + /** + * 生成请求数据 + * @param $postData + * @param $method + * @return array + */ + public function buildParams($postData, $method): array + { + return array( + "jsonrpc" => "2.0", + "method" => $method, + "params" => $postData, + "id" => $this->player->uuid ?? uniqid() + ); + } + + /** + * 创建代理账号 + * @throws GameException|\think\Exception + */ + public function createAgent() + { + $params = [ + 'random' => $this->player->uuid ?? uniqid(), + 'sn' => $this->sn, + 'loginId' => 'testagent123', + 'secretKey' => $this->appSecret, + ]; + $params['sign'] = $this->createSign($params); + unset($params['secretKey']); + $params['password'] = '123456ss'; + $postData = $this->buildParams($params, 'open.agent.create'); + $result = doCurl($this->apiDomain,$postData); + if (!empty($result['result']) && empty($result['error'])){ + return $result; + }else{ + throw new GameException($result['error']['message'], 0); + } + } + + /** + * 更新游戏列表 + * @return false + */ + public function getSimpleGameList(): bool + { + return false; + } + + /** + * 获取玩家ID + * @throws Exception + */ + protected function getLoginId() + { + /** @var PlayerGamePlatform $playerGamePlatform */ + $playerGamePlatform = PlayerGamePlatform::query()->where('platform_id', $this->platform->id)->where('player_id',$this->player->id)->first(); + if (!empty($playerGamePlatform)) { + return $this->loginId = $playerGamePlatform->player_code; + } + return $this->createPlayer([ + 'uuid' => $this->player->uuid, + 'name' => $this->player->name, + ]); + } + + /** + * 创建玩家 + * @param array $data + * @return array|mixed|Response + * @throws GameException|Exception + */ + public function createPlayer(array $data = []) + { + $params = [ + 'random' => $data['uuid'], + 'sn' => $this->sn, + 'secretCode' => $this->secretCode, + ]; + $params['digest'] = $this->createSign($params); + $params['loginId'] = $data['uuid']; + $params['nickname'] = $data['name']; + $params['agentLoginId'] = $this->adminUser; + unset($params['secretCode']); + $postData = $this->buildParams($params, 'open.user.create'); + $result = doCurl($this->apiDomain,$postData); + if (!empty($result['result']) && empty($result['error'])){ + $playerGamePlatform = new PlayerGamePlatform(); + $playerGamePlatform->player_id = $this->player->id; + $playerGamePlatform->platform_id = $this->platform->id; + $playerGamePlatform->player_name = $data['name']; + $playerGamePlatform->player_code = $result['result']['loginId']; + $playerGamePlatform->save(); + $this->loginId = $playerGamePlatform->player_code; + return $result; + }else{ + throw new GameException($result['error']['message'], 0); + } + } + + /** + * 获取玩家信息 + * @return array|mixed|Response + * @throws GameException|Exception + */ + public function getPlayer() + { + $params = [ + 'random' => $this->player->uuid ?? uniqid(), + 'sn' => $this->sn, + 'loginId' => $this->loginId, + 'secretCode' => $this->secretCode, + ]; + $params['digest'] = $this->createSign($params); + unset($params['secretCode']); + $postData = $this->buildParams($params, 'open.user.get'); + $result = doCurl($this->apiDomain,$postData); + if (!empty($result['result']) && empty($result['error'])){ + return $result; + }else{ + throw new GameException($result['error']['message'], 0); + } + } + + /** + * 玩家进入游戏 + * @param array $data + * @return string + * @throws GameException|\think\Exception + */ + public function login(array $data = []): string + { + $params = [ + 'random' => $this->player->uuid ?? uniqid(), + 'sn' => $this->sn, + 'loginId' => $this->loginId, + 'secretCode' => $this->secretCode, + ]; + $params['digest'] = $this->createSign($params); + $params['isMobileUrl'] = 1; + unset($params['secretCode']); + $postData = $this->buildParams($params, 'open.video.game.url'); + $result = doCurl($this->apiDomain,$postData); + if (!empty($result['error'])) { + throw new GameException($result['error']['message'], 0); + } + return $result['result']; + } + + /** + * 获取玩家游戏平台余额 + * @throws GameException|\think\Exception + */ + public function getBalance() + { + $params = [ + 'random' => $this->player->uuid ?? uniqid(), + 'sn' => $this->sn, + 'loginId' => $this->loginId, + 'secretCode' => $this->secretCode, + ]; + $params['digest'] = $this->createSign($params); + unset($params['secretCode']); + $postData = $this->buildParams($params, 'open.balance.get'); + $result = doCurl($this->apiDomain,$postData); + if (empty($result['error'])){ + return $result['result']; + }else{ + throw new GameException('Big Gaming System Error,Please contact the administrator', 0); + } + } + + /** + * 玩家钱包转入游戏平台 + * @return array|mixed|null + * @throws GameException|\think\Exception + */ + public function balanceTransferOut() + { + return $this->setBalanceTransfer(PlayerWalletTransfer::TYPE_OUT, $this->player->wallet->money); + } + + /** + * 游戏平台转入玩家钱包 + * @return array|mixed|null + * @throws GameException|\think\Exception + */ + public function balanceTransferIn() + { + $balance = $this->getBalance(); + return $this->setBalanceTransfer(PlayerWalletTransfer::TYPE_IN, -$balance); + } + + /** + * 轉帳進出額度 + * @param $type + * @param float $amount + * @param float $reward + * @return array|mixed|null + * @throws GameException|\think\Exception + */ + protected function setBalanceTransfer($type, float $amount = 0, float $reward = 0) + { + if ($amount == 0) { + // 记录玩家钱包转出转入记录 + $this->createWalletTransfer($type, $amount, $reward); + return true; + } + $params = [ + 'random' => $this->player->uuid ?? uniqid(), + 'sn' => $this->sn, + 'loginId' => $this->loginId, + 'amount' => $amount, + 'secretCode' => $this->secretCode, + ]; + $params['digest'] = $this->createSign($params); + unset($params['secretCode']); + $postData = $this->buildParams($params, 'open.balance.transfer'); + $result = doCurl($this->apiDomain,$postData); + if (!empty($result['error'])) { + throw new GameException($result['error']['message'], 0); + } + // 记录玩家钱包转出转入记录 + $this->createWalletTransfer($type, $amount, $reward); + return $result; + } + + /** + * 查询额度转移纪录 + * @return array|mixed|Response + * @throws GameException|\think\Exception + */ + public function getTransferList(string $startTime = '', string $endTime = '', int $page = 1, int $pageSize = 15) + { + $params = [ + 'random' => $this->player->uuid ?? uniqid(), + 'sn' => $this->sn, + 'secretKey' => $this->appSecret, + ]; + $params['sign'] = $this->createSign($params); + $params['loginId'] = $this->loginId; + $params['startTime'] = $startTime; + $params['endTime'] = $endTime; + $params['timeZone'] = 1; + unset($params['secretKey']); + $postData = $this->buildParams($params, 'open.balance.transfer.query'); + $result = doCurl($this->apiDomain,$postData); + if (!empty($result['error'])) { + throw new GameException($result['error']['message'], 0); + } + return $result; + } + + /** + * 查询注单统计结果 + * @return array|mixed|Response + * @throws GameException|\think\Exception + */ + public function getOrderSum(string $startTime = '', string $endTime = '', int $page = 1, int $pageSize = 500) + { + $params = [ + 'random' => $this->player->uuid ?? uniqid(), + 'sn' => $this->sn, + 'secretKey' => $this->appSecret, + ]; + $params['sign'] = $this->createSign($params); + $params['loginIds'] = [$this->loginId]; + $params['startTime'] = $startTime; + $params['endTime'] = $endTime; + unset($params['secretKey']); + $postData = $this->buildParams($params, 'open.sn.order.sum'); + $result = doCurl($this->apiDomain,$postData); + if (!empty($result['error'])) { + throw new GameException($result['error']['message'], 0); + } + return $result; + } + + /** + * 按玩家统计注单 + * @return array|mixed|Response + * @throws GameException|\think\Exception + */ + public function getUserOrderSum(string $startTime = '', string $endTime = '') + { + $params = [ + 'random' => $this->player->uuid ?? uniqid(), + 'sn' => $this->sn, + 'secretKey' => $this->appSecret, + ]; + $params['sign'] = $this->createSign($params); + $params['startTime'] = $startTime; + $params['endTime'] = $endTime; + unset($params['secretKey']); + $postData = $this->buildParams($params, 'open.user.order.sum'); + $result = doCurl($this->apiDomain,$postData); + if (!empty($result['error'])) { + throw new GameException($result['error']['message'], 0); + } + return $result['result']; + } + + /** + * 查询玩家游戏记录 + * @return array|mixed|Response + * @throws GameException|\think\Exception + */ + public function getUserGameRecord(string $startTime = '', string $endTime = '') + { + $params = [ + 'random' => $this->player->uuid ?? uniqid(), + 'sn' => $this->sn, + 'loginId' => $this->loginId, + 'secretKey' => $this->appSecret, + ]; + $params['sign'] = $this->createSign($params); + $params['startTime'] = $startTime; + $params['endTime'] = $endTime; + unset($params['secretKey']); + $postData = $this->buildParams($params, 'open.video.round.query'); + $result = doCurl($this->apiDomain,$postData); + if (!empty($result['error'])) { + throw new GameException($result['error']['message'], 0); + } + return $result['result']; + } + + /** + * 查询玩家游戏记录 + * @return array|mixed|Response + * @throws GameException|\think\Exception + */ + public function handleOrderHistories() + { + try { + $page = 1; + $list = []; + $timezone = new DateTimeZone('America/New_York'); + $start = new DateTime('-6 minutes', $timezone); + $end = new DateTime('-5 minutes', $timezone); + $startTime = $start->format('Y-m-d H:i:s'); + $endTime = $end->format('Y-m-d H:i:s'); + $data = $this->getAgentOrderRecord($startTime, $endTime, $page); + $fishData = $this->getUserFishOrderRecord($startTime, $endTime, $page); + if (!empty($data['result'])) { + $total = $data['result']['total'] ?? 0; + if ($total > 0) { + $pageSize = 200; + if (!empty($data['result']['items'])) { + foreach ($data['result']['items'] as $item) { + $list[] = [ + 'uuid' => $item['loginId'], + 'platform_id' => $this->platform->id, + 'game_code' => $item['playNameEn'], + 'bet' => abs($item['bAmount']), + 'win' => $item['aAmount'], + 'order_no' => $item['orderId'], + 'original_data' => json_encode($item,JSON_UNESCAPED_UNICODE), + 'platform_action_at' => $item['lastUpdateTime'], + 'game_type' => 5, + 'created_at' => date('Y-m-d H:i:s'), + 'updated_at' => date('Y-m-d H:i:s'), + ]; + + } + } + if ($total > $pageSize) { + $totalPages = ceil($total / $pageSize); + for ($page = 2; $page <= $totalPages; $page++) { + $nextData = $this->getAgentOrderRecord($startTime,$endTime,$page); + if (!empty($nextData['result']['items'])) { + foreach ($nextData['result']['items'] as $item) { + $list[] = [ + 'uuid' => $item['loginId'], + 'platform_id' => $this->platform->id, + 'game_code' => $item['playNameEn'], + 'bet' => abs($item['bAmount']), + 'win' => $item['aAmount'], + 'order_no' => $item['orderId'], + 'original_data' => json_encode($item,JSON_UNESCAPED_UNICODE), + 'platform_action_at' => $item['lastUpdateTime'], + 'game_type' => 5, + 'created_at' => date('Y-m-d H:i:s'), + 'updated_at' => date('Y-m-d H:i:s'), + ]; + } + } + } + } + } + } + if (!empty($fishData['result'])) { + $fishTotal = $fishData['result']['total'] ?? 0; + if ($fishTotal > 0) { + $pageSize = 200; + if (!empty($fishData['result']['items'])) { + foreach ($fishData['result']['items'] as $item) { + $list[] = [ + 'uuid' => $item['loginId'], + 'platform_id' => $this->platform->id, + 'game_code' => $item['gameType'], + 'bet' => abs($item['betAmount']), + 'win' => $item['calcAmount'], + 'order_no' => $item['betId'], + 'original_data' => json_encode($item, JSON_UNESCAPED_UNICODE), + 'platform_action_at' => $item['orderTimeBj'], + 'game_type' => 4, + 'created_at' => date('Y-m-d H:i:s'), + 'updated_at' => date('Y-m-d H:i:s'), + ]; + } + } + if ($fishTotal > $pageSize) { + $totalPages = ceil($fishTotal / $pageSize); + for ($page = 2; $page <= $totalPages; $page++) { + $nextFishData = $this->getUserFishOrderRecord($startTime,$endTime,$page); + if (!empty($nextFishData['result']['items'])) { + foreach ($nextFishData['result']['items'] as $item) { + $list[] = [ + 'uuid' => $item['loginId'], + 'platform_id' => $this->platform->id, + 'game_code' => $item['gameType'], + 'bet' => abs($item['betAmount']), + 'win' => $item['calcAmount'], + 'order_no' => $item['betId'], + 'original_data' => json_encode($item, JSON_UNESCAPED_UNICODE), + 'platform_action_at' => $item['orderTimeBj'], + 'game_type' => 4, + 'created_at' => date('Y-m-d H:i:s'), + 'updated_at' => date('Y-m-d H:i:s'), + ]; + } + } + } + } + } + } + } catch (Exception $e) { + return []; + } + + return $list; + } + + /** + * 查询玩家注单 + * @return array|mixed|Response + * @throws GameException|\think\Exception + */ + public function getUserOrderRecord(string $startTime = '', string $endTime = '', $page = 1) + { + $pageSize = 200; + $params = [ + 'random' => $this->player->uuid ?? uniqid(), + 'sn' => $this->sn, + 'secretKey' => $this->appSecret, + ]; + $params['sign'] = $this->createSign($params); + $params['startTime'] = $startTime; + $params['endTime'] = $endTime; + $params['pageIndex'] = $page; + $params['pageSize'] = $pageSize; + unset($params['secretKey']); + $postData = $this->buildParams($params, 'open.order.query'); + $result = doCurl($this->apiDomain,$postData); + if (!empty($result['error'])) { + throw new GameException($result['error']['message'], 0); + } + return $result; + } + + /** + * 查询玩家注单详情 + * @return array|mixed|Response + * @throws GameException|\think\Exception + */ + public function getUserOrderDetail($orderId) + { + $params = [ + 'random' => $this->player->uuid ?? uniqid(), + 'sn' => $this->sn, + 'orderId' => $orderId, + 'reqTime' => date('Y-m-d H:i:s'), + 'secretKey' => $this->appSecret, + ]; + $params['sign'] = $this->createSign($params); + unset($params['secretKey']); + $postData = $this->buildParams($params, 'open.sn.video.order.detail'); + $result = doCurl($this->apiDomain,$postData); + if (!empty($result['error'])) { + throw new GameException($result['error']['message'], 0); + } + return $result['result']; + } + + /** + * 查询玩家注单详情地址 + * @return array|mixed|Response + * @throws GameException|\think\Exception + */ + public function getUserOrderDetailUrl($orderId) + { + $params = [ + 'random' => $this->player->uuid ?? uniqid(), + 'sn' => $this->sn, + 'orderId' => $orderId, + 'secretKey' => $this->appSecret, + ]; + $params['sign'] = $this->createSign($params); + unset($params['secretKey']); + $postData = $this->buildParams($params, 'open.sn.video.order.detail.url.get'); + $result = doCurl($this->apiDomain,$postData); + if (!empty($result['error'])) { + throw new GameException($result['error']['message'], 0); + } + + return $result['result']; + } + + /** + * 查询玩家捕鱼注单 + * @return array|mixed|Response + * @throws GameException|\think\Exception + */ + public function getUserFishOrderRecord(string $startTime = '', string $endTime = '', $page = 1) + { + $pageSize = 200; + $params = [ + 'random' => $this->player->uuid ?? uniqid(), + 'sn' => $this->sn, + 'secretKey' => $this->appSecret, + ]; + $params['sign'] = $this->createSign($params); + $params['gameType'] = 1; + $params['agentLoginId'] = $this->adminUser; + $params['startTime'] = $startTime; + $params['endTime'] = $endTime; + $params['pageIndex'] = $page; + $params['pageSize'] = $pageSize; + unset($params['secretKey']); + $postData = $this->buildParams($params, 'open.order.bg.query'); + $result = doCurl($this->apiDomain,$postData); + if (!empty($result['error'])) { + throw new GameException($result['error']['message'], 0); + } + return $result; + } + + /** + * 查询代理注单 + * @return array|mixed|Response + * @throws GameException|\think\Exception + */ + public function getAgentOrderRecord(string $startTime = '', string $endTime = '', $page = 1) + { + $pageSize = 200; + $params = [ + 'random' => $this->player->uuid ?? uniqid(), + 'sn' => $this->sn, + 'secretCode' => $this->secretCode, + ]; + $params['digest'] = $this->createSign($params); + $params['agentLoginId'] = $this->adminUser; + $params['startTime'] = $startTime; + $params['endTime'] = $endTime; + $params['pageIndex'] = $page; + $params['pageSize'] = $pageSize; + unset($params['secretCode']); + $postData = $this->buildParams($params, 'open.order.agent.query'); + $result = doCurl($this->apiDomain,$postData); + if (!empty($result['error'])) { + throw new GameException($result['error']['message'], 0); + } + return $result; + } + + /** + * 查询投注限红盘口 + * @return array|mixed|Response + * @throws GameException|\think\Exception + */ + public function getLimitations() + { + $params = [ + 'random' => $this->player->uuid ?? uniqid(), + 'sn' => $this->sn, + 'time' => date('Y-m-d H:i:s'), + 'secretKey' => $this->appSecret, + ]; + $params['sign'] = $this->createSign($params); + unset($params['secretKey']); + $postData = $this->buildParams($params, 'open.game.limitations.get'); + $result = doCurl($this->apiDomain,$postData); + if (!empty($result['error'])) { + throw new GameException($result['error']['message'], 0); + } + return $result; + } + + /** + * 修改投注限红盘口 + * @return array|mixed|Response + * @throws GameException|\think\Exception + */ + public function setLimitations($value) + { + $params = [ + 'random' => $this->player->uuid ?? uniqid(), + 'sn' => $this->sn, + 'time' => date('Y-m-d H:i:s'), + 'secretKey' => $this->appSecret, + ]; + $params['sign'] = $this->createSign($params); + $params['loginId'] = $this->loginId; + $params['value'] = $value; + unset($params['secretKey']); + $postData = $this->buildParams($params, 'open.game.limitations.set'); + $result = doCurl($this->apiDomain,$postData); + if (!empty($result['error'])) { + throw new GameException($result['error']['message'], 0); + } + return $result; + } + + /** + * 获取限红盘口列表 + * @return array|mixed|Response + * @throws GameException|\think\Exception + */ + public function getLimitationsList() + { + $params = [ + 'random' => $this->player->uuid ?? uniqid(), + 'sn' => $this->sn, + 'time' => date('Y-m-d H:i:s'), + 'secretKey' => $this->appSecret, + ]; + $params['sign'] = $this->createSign($params); + unset($params['secretKey']); + $postData = $this->buildParams($params, 'open.game.limitations.list'); + $result = doCurl($this->apiDomain,$postData); + if (!empty($result['error'])) { + throw new GameException($result['error']['message'], 0); + } + return $result; + } + +} \ No newline at end of file diff --git a/app/service/game/CSServiceInterface.php b/app/service/game/CSServiceInterface.php new file mode 100644 index 0000000..7a3d031 --- /dev/null +++ b/app/service/game/CSServiceInterface.php @@ -0,0 +1,371 @@ + 'CARD & BOARDGAME', + 'ES' => 'E-GAMES', + 'SB' => 'SPORTBOOK', + 'LC' => 'LIVE-CASINO', + 'SL' => 'SLOTS', + 'LK' => 'LOTTO', + 'FH' => 'FISH HUNTER', + 'PK' => 'POKER', + 'MG' => 'MINI GAME', + 'OT' => 'OTHERS' + ]; + public $failCode = [ + '61' => '货币不兼容', + '70' => '集成系统余额不足', + '71' => '单据号不正确', + '72' => '余额不足', + '73' => '转账金额不正确', + '74' => '转账金额不能多过两个小数点 0.00', + '75' => '不允许在游戏中进行转移', + '81' => '会员账号不存在', + '82' => '会员账号已存在', + '83' => '代理号已存在', + '90' => '请求参数不正确', + '91' => '代理号不正确', + '92' => '供应商代号不正确', + '93' => '请求参数类型不正确', + '94' => '账号不正确', + '95' => '密码不正确', + '96' => '旧密码不正确', + '97' => '请求链接/域名不正确', + '98' => '账号/密码错误', + '99' => '加密错误', + '600' => '前期检验失败。 存款/取款 操作已被无视', + '601' => '此产品的存款 功能暂时停用维修', + '602' => '此产品的取款 功能暂时停用维修', + '603' => '即将执行在线系统维护,为了避免维护时导致的系统不稳定,转账API暂时停止(暂停时间大约5~10分钟,若提早完毕会提早解放)', + '992' => '平台不兼容请求的游戏类型', + '991' => '代理号已冻结', + '994' => '接口访问被禁止', + '995' => '平台未开通', + '996' => '平台不支持', + '998' => '请联系客服', + '999' => '系统维护中', + '9999' => '未知错误', + '-987' => '交易单号不存在;产品不支持', + '-997' => '系统错误,请联络客服。', + '-998' => '集成系统接口余额不足', + '-999' => '接口错误', + ]; + private $apiDomain; + private $providerCode; + private $appId; + private $appSecret; + private $path = [ + 'createPlayer' => '/createMember.aspx', + 'getGameList' => '/getGameList.aspx', + 'getBalance' => '/getBalance.aspx', + 'getLoginH5' => '/launchGames.aspx', + 'getDLoginH5' => '/launchDGames.ashx', + 'changePassword' => '/changePassword.aspx', + 'checkAgentCredit' => '/checkAgentCredit.aspx', + 'checkMemberProductUsername' => '/checkMemberProductUsername.aspx', + 'launchAPP' => '/launchAPP.ashx', + 'checkTransaction' => '/checkTransaction.ashx', + 'setBalanceTransfer' => '/makeTransfer.aspx', + 'getDailyWager' => '/getDailyWager.ashx', + 'fetchArchieve' => '/fetchArchieve.aspx', + 'markbyjson' => '/markbyjson.aspx', + 'markArchieve' => '/markArchieve.ashx', + 'getGameRecord' => '/fetchbykey.aspx', + ]; + private $lang = [ + 'zh-CN' => 'zh-ch', + 'en' => 'en_us', + 'zh_tc' => 'zh_tc', + 'en-us' => 'en-us', + 'id' => 'id', + 'th' => 'th', + 'my' => 'my', + 'vi' => 'vi', + 'fi_fi' => 'fi_fi', + 'kr_ko' => 'kr_ko', + 'hi_hi' => 'hi_hi', + 'br_po' => 'br_po', + 'lo_la' => 'lo_la', + 'cam_dia' => 'cam_dia', // 柬埔寨语 + ]; + + /** + * @param Player|null $player + * @param $type + * @throws Exception + */ + public function __construct($type, Player $player = null) + { + $config = config('game_platform.' . $type); + $this->appId = $config['app_id']; + $this->appSecret = $config['app_secret']; + $this->apiDomain = $config['api_domain']; + $this->providerCode = $config['provider_code']; + $this->platform = GamePlatform::query()->where('name', $type)->first(); + if (!empty($player)) { + $this->player = $player; + /** @var PlayerGamePlatform $playerGamePlatform */ + $playerGamePlatform = $this->player->playerGamePlatform->where('platform_id', $this->platform->id)->first(); + if (empty($playerGamePlatform)) { + $this->createPlayer(); + } else { + $this->playerGamePlatform = $playerGamePlatform; + } + } + } + + /** + * 创建玩家 MD5(operatorcode + username +secret_key) + * @return array|mixed|Response + * @throws GameException|\think\Exception + */ + public function createPlayer() + { + $userName = mb_strtolower($this->providerCode . generateUniqueUsername()); + $params = [ + 'operatorcode' => $this->appId, + 'username' => $userName, + ]; + $params['signature'] = mb_strtoupper(md5($this->appId . $userName . $this->appSecret)); + $res = dogGetCurl($this->createUrl('createPlayer'), $params); + if ($res['errCode'] != $this->successCode) { + throw new GameException($this->failCode[$res['errCode']], 0); + } + $playerGamePlatform = new PlayerGamePlatform(); + $playerGamePlatform->player_id = $this->player->id; + $playerGamePlatform->platform_id = $this->platform->id; + $playerGamePlatform->player_name = $this->player->name; + $playerGamePlatform->player_code = $userName; + $playerGamePlatform->player_password = generateRandomPassword(); + $playerGamePlatform->save(); + $this->playerGamePlatform = $playerGamePlatform; + return $res; + } + + /** + * 生成请求url + * @param $method + * @return string + */ + public function createUrl($method): string + { + return $this->apiDomain . $this->path[$method]; + } + + /** + * 查询玩家游戏平台帐号接口 MD5(operatorcode + providercode + username + secret_key) + * @return array|mixed|Response + * @throws GameException|\think\Exception + */ + public function getPlayer() + { + $params = [ + 'operatorcode' => $this->appId, + 'providercode' => $this->providerCode, + 'username' => $this->playerGamePlatform->player_code, + ]; + $params['signature'] = mb_strtoupper(md5($this->appId . $this->providerCode . $this->playerGamePlatform->player_code . $this->appSecret)); + $res = dogGetCurl($this->createUrl('checkMemberProductUsername'), $params); + if ($res['errCode'] != $this->successCode) { + throw new GameException($this->failCode[$res['errCode']], 0); + } + + return $res; + } + + /** + * 获取游戏列表 MD5(operatorcode.toLower() + providercode.toUpper() + secret_key) + * @return array|mixed|Response + * @throws GameException|\think\Exception + */ + public function getSimpleGameList() + { + $params = [ + 'providercode' => $this->providerCode, + 'operatorcode' => $this->appId, + 'lang' => 'en', + 'html' => '0', + 'reformatJson' => 'yes', + ]; + $params['signature'] = strtoupper(md5(mb_strtolower($this->appId) . mb_strtoupper($this->providerCode) . $this->appSecret)); + $data = dogGetCurl($this->createUrl('getGameList'), $params); + if ($data['errCode'] != $this->successCode) { + throw new GameException($this->failCode[$data['errCode']], 0); + } + if (!empty($data['gamelist'])) { + $gameList = json_decode($data['gamelist'], true); + foreach ($gameList as $game) { + try { + Game::query()->updateOrCreate( + [ + 'platform_id' => $this->platform->id, + 'game_code' => $game['g_code'] + ], + [ + 'platform_game_type' => $game['p_type'], + 'game_data' => json_encode($game), + 'name' => $game['gameName']['gameName_enus'] ?? '', + 'game_image' => $game['imgFileName'] ?? '', + ] + ); + } catch (Exception $e) { + Log::error($e->getMessage()); + } + } + } + return $data; + } + + /** + * 登录游戏MD5(operatorcode + password + providercode + type + username + secret_key) + * @param array $data + * @return string + * @throws GameException|\think\Exception + */ + public function login(array $data = []): string + { + $params = [ + 'operatorcode' => $this->appId, + 'providercode' => $this->providerCode, + 'username' => $this->playerGamePlatform->player_code, + 'password' => $this->playerGamePlatform->player_password, + 'type' => $data['platformGameType'], + 'gameid' => $data['gameCode'] ?? 0, + 'lang' => 'en', + 'html5' => 1, + ]; + $params['signature'] = mb_strtoupper(md5($this->appId . $this->playerGamePlatform->player_password . $this->providerCode . $data['platformGameType'] . $this->playerGamePlatform->player_code . $this->appSecret)); + $res = dogGetCurl($this->createUrl('getLoginH5'), $params); + + if ($res['errCode'] != $this->successCode) { + Log::error($this->failCode[$res['errCode']], ['res' => $res]); + throw new GameException($this->failCode[$res['errCode']], 0); + } + return $res['gameUrl']; + } + + + /** + * 玩家钱包转入游戏平台 + * @return array|mixed|null + * @throws GameException|\think\Exception + */ + public function balanceTransferOut() + { + + return $this->setBalanceTransfer(PlayerWalletTransfer::TYPE_OUT, intval($this->player->wallet->money)); + } + + /** + * 资金转账接口MD5(amount + operatorcode + password + providercode + referenceid + type + username + secret_key) + * @param $type + * @param float $amount + * @return array|mixed|null + * @throws GameException + * @throws \think\Exception + */ + protected function setBalanceTransfer($type, float $amount = 0) + { + if ($type == PlayerWalletTransfer::TYPE_OUT) { + $platformType = 0; + } else { + $platformType = 1; + } + + $no = createOrderNo(); + $params = [ + 'operatorcode' => $this->appId, + 'providercode' => $this->providerCode, + 'username' => $this->playerGamePlatform->player_code, + 'password' => $this->playerGamePlatform->player_password, + 'referenceid' => $no, + 'type' => $platformType, + 'amount' => $amount + ]; + $params['signature'] = mb_strtoupper(md5($amount . $this->appId . $this->playerGamePlatform->player_password . $this->providerCode . $no . $platformType . $this->playerGamePlatform->player_code . $this->appSecret)); + $res = dogGetCurl($this->createUrl('setBalanceTransfer'), $params); + if ($res['errCode'] != $this->successCode) { + throw new GameException($this->failCode[$res['errCode']], 0); + } + // 记录玩家钱包转出转入记录 + $this->createWalletTransfer($type, $amount, 0, $res['innerCode'] ?? ''); + + return $res; + } + + /** + * 玩家钱包转入游戏平台 + * @return array|mixed|null + * @throws GameException|\think\Exception + */ + public function balanceTransferIn() + { + $balance = $this->getBalance(); + return $this->setBalanceTransfer(PlayerWalletTransfer::TYPE_IN, $balance['balance'] ?? 0); + } + + /** + * 獲取玩家餘額信息 + * 簽名密鑰方式 MD5(operatorcode + password + providercode + username + secret_key) + * @return array|mixed|Response + * @throws GameException|\think\Exception + */ + public function getBalance() + { + $params = [ + 'operatorcode' => $this->appId, + 'providercode' => $this->providerCode, + 'username' => $this->playerGamePlatform->player_code, + 'password' => $this->playerGamePlatform->player_password + ]; + $params['signature'] = mb_strtoupper(md5($this->appId . $this->playerGamePlatform->player_password . $this->providerCode . $this->playerGamePlatform->player_code . $this->appSecret)); + $res = dogGetCurl($this->createUrl('getBalance'), $params); + if ($res['errCode'] != $this->successCode) { + throw new GameException($this->failCode[$res['errCode']], 0); + } + + return $res; + } + + /** + * 依據時間獲取遊戲紀錄 + * MD5 (Id+Method+SN+StartTime+EndTime+APISecretKey) + * @param int $pageIndex + * @param string $startTime + * @param string $endTime + * @return array|mixed|null + * @throws GameException + */ + public function getGameRecordByTime(int $pageIndex = 1, string $startTime = '', string $endTime = '') + { + + } + + /** + * 獲取玩家遊戲歷史紀錄 + * MD5 (Id+Method+SN+APISecretKey) + * @return array|mixed|null + * @throws GameException + */ + public function getGameRecord() + { + } +} \ No newline at end of file diff --git a/app/service/game/GameServiceFactory.php b/app/service/game/GameServiceFactory.php new file mode 100644 index 0000000..405e31d --- /dev/null +++ b/app/service/game/GameServiceFactory.php @@ -0,0 +1,141 @@ +player_id = $this->player->id; + $playerWalletTransfer->platform_id = $this->platform->id; + $playerWalletTransfer->department_id = $this->player->department_id; + $playerWalletTransfer->type = $type; + $playerWalletTransfer->amount = abs($amount); + $playerWalletTransfer->reward = abs($reward); + $playerWalletTransfer->platform_no = $platformNo; + $playerWalletTransfer->tradeno = createOrderNo(); + $playerWalletTransfer->save(); + $beforeGameAmount = $this->player->wallet->money; + $playerDeliveryRecord = new PlayerDeliveryRecord; + if ($type == PlayerWalletTransfer::TYPE_OUT) { + $this->player->wallet->money = 0; + $playerDeliveryRecord->type = PlayerDeliveryRecord::TYPE_GAME_OUT; + } + if ($type == PlayerWalletTransfer::TYPE_IN) { + $this->player->wallet->money = bcadd($this->player->wallet->money, bcadd(abs($amount), abs($reward), 2), 2); + $playerDeliveryRecord->type = PlayerDeliveryRecord::TYPE_GAME_IN; + } + $this->player->push(); + //寫入金流明細 + $playerDeliveryRecord->player_id = $playerWalletTransfer->player_id; + $playerDeliveryRecord->department_id = $playerWalletTransfer->department_id; + $playerDeliveryRecord->target = $playerWalletTransfer->getTable(); + $playerDeliveryRecord->target_id = $playerWalletTransfer->id; + $playerDeliveryRecord->source = 'play_game'; + $playerDeliveryRecord->amount = $playerWalletTransfer->amount; + $playerDeliveryRecord->amount_before = $beforeGameAmount; + $playerDeliveryRecord->amount_after = $this->player->wallet->money; + $playerDeliveryRecord->tradeno = ''; + $playerDeliveryRecord->remark = ''; + $playerDeliveryRecord->save(); + } +} \ No newline at end of file diff --git a/app/service/game/GameServiceInterface.php b/app/service/game/GameServiceInterface.php new file mode 100644 index 0000000..8887440 --- /dev/null +++ b/app/service/game/GameServiceInterface.php @@ -0,0 +1,30 @@ + 'Slot', + '12' => 'Casino', + '13' => 'Arcade', + '16' => 'Fishing' + ]; + public $failCode = [ + '0000' => '成功', + '9999' => '失敗', + '9001' => '未授權訪問', + '9002' => '域名為空或域名長度小於 2', + '9003' => '域名驗證失敗。', + '9004' => '加密數據為空或加密數據的長度等於 0。', + '9005' => '斷言(SAML)未通過時間戳驗證。', + '9006' => '從加密數據中提取 SAML 參數失敗。', + '9007' => '未知操作。', + '9008' => '與之前的值相同。', + '9009' => '超時。', + '9010' => '讀取超時。', + '9011' => '重複交易。', + '9012' => '請稍後再試。', + '9013' => '系統正在維護。', + '9014' => '檢測到多帳戶登錄。', + '9015' => '數據不存在。', + '9016' => '無效令牌。', + '9019' => '請求速率限制超過。', + '9020' => '每次登錄只能獲得一次遊戲票。', + '9021' => '違反一次性會話策略。', + '9022' => '遊戲正在維護。', + '9023' => '不支持的貨幣。', + '9024' => '贏取倍數必須大於或等於 10 倍。', + '9025' => '不支持重放遊戲。', + '9026' => '获胜金额应大于0。', + '9027' => '不支持演示。', + '8000' => '輸入參數錯誤,請檢查您的參數是否正確。', + '8001' => '參數不能為空。', + '8002' => '參數必須是正整數。', + '8003' => '參數不能為負數。', + '8005' => '日期秒格式錯誤', + '8006' => '時間不符合。', + '8007' => '參數只能使用數字。', + '8008' => '找不到參數。', + '8009' => '時間間隔超過允許範圍。', + '8010' => '參數長度太長。', + '8013' => '日期分鐘格式參數錯誤。', + '8014' => '參數不得超過指定的小數位。', + '7001' => '找不到指定的父 ID。', + '7002' => '父級已暫停。', + '7003' => '父級已鎖定。', + '7004' => '父級已關閉。', + '7405' => '您已登出!', + '7501' => '找不到用戶 ID。', + '7502' => '用戶已暫停。', + '7503' => '用戶已鎖定。', + '7504' => '用戶已關閉。', + '7505' => '用戶未在玩遊戲。', + '7506' => '演示帳戶已滿。', + '7601' => '無效的用戶 ID。請僅使用 a-z、0-9 之間的字符。', + '7602' => '帳戶已存在。請選擇其他用戶 ID。', + '7603' => '無效的用戶名。', + '7604' => '密碼必須至少 6 個字符,包含 1 個字母和 1 個數字。', + '7605' => '無效的操作代碼。請僅使用數字 2、3、4、5。', + '6001' => '您的現金餘額不足以取款。', + '6002' => '用戶餘額為零。', + '6003' => '取款金額為負。', + '6004' => '重複轉帳。', + '6005' => '重複的序列號。', + '6009' => '存款金額超過上限。', + '6010' => '餘額超過上限。', + '6011' => '分配的信用額超過上限。', + '6012' => '序列號正在進行中。', + '6901' => '用戶正在玩遊戲,不允許轉移餘額。' + ]; + private $apiDomain; + private $domain; + private $iv; + private $key; + private $dc; + private $parent; + private $lang = [ + 'zh-CN' => 'cn', + 'zh-TW' => 'cn', + 'jp' => 'jpn', + 'en' => 'en', + 'th' => 'th', + 'vi' => 'vi', + 'kr_ko' => 'ko', + 'id' => 'id', + ]; + + public $localGameType = [ + '0' => '1',//斯洛 + '32' => '1',//斯洛 + '50' => '1',//斯洛 + '55' => '1',//斯洛 + '57' => '1',//斯洛 + '58' => '1',//斯洛 + '66' => '1',//斯洛 + '80' => '1',//斯洛 + '90' => '1',//斯洛 + '130' => '1',//斯洛 + '7' => '4',//捕鱼 + '31' => '4',//捕鱼 + '70' => '4',//捕鱼 + '59' => '4',//捕鱼 + '67' => '4',//捕鱼 + '91' => '4',//捕鱼 + '8' => '8',//宾果 + '12' => '8',//宾果 + '60' => '8',//宾果 + '9' => '8',//宾果 + '22' => '8',//宾果 + '30' => '8',//宾果 + '56' => '8',//宾果 + '75' => '8',//宾果 + '81' => '8',//宾果 + '92' => '8',//宾果 + '131' => '8',//宾果 + '120' => '8',//宾果 + '18' => '2',//赌场 + '93' => '2',//赌场 + '132' => '2',//赌场 + '41' => '5',//真人视讯 + '101' => '5',//真人视讯 + ]; + + /** + * @param Player|null $player + * @param $type + * @throws Exception + */ + public function __construct($type, Player $player = null) + { + $config = config('game_platform.' . $type); + $this->iv = $config['iv']; + $this->apiDomain = $config['api_domain'].'/apiRequest.do'; + $this->domain = $config['domain']; + $this->key = $config['key']; + $this->dc = $config['dc']; + $this->parent = $config['admin_user']; + $this->platform = GamePlatform::query()->where('name', $type)->first(); + if (!empty($player)) { + $this->player = $player; + $this->getLoginId(); + } + } + + /** + * 生成请求数据 + * @param $source + * @return string + */ + public function padString($source): string + { + $paddingChar = ' '; + $size = 16; + $x = strlen($source) % $size; + $padLength = $size - $x; + $source .= str_repeat($paddingChar, $padLength); + return $source; + } + + /** + * 生成请求数据 + * @param $params + * @return array + */ + public function buildParams($params): array + { + $data = $this->padString(json_encode($params)); + $encryptData = openssl_encrypt($data, 'AES-128-CBC', $this->key, OPENSSL_NO_PADDING, $this->iv); + $reqBase64 = base64_encode($encryptData); + return [ + 'dc' => $this->dc, + 'x' => str_replace(array('+','/','=') , array('-','_','') , $reqBase64) + ]; + } + + /** + * @throws Exception + */ + protected function getLoginId() + { + /** @var PlayerGamePlatform $playerGamePlatform */ + $playerGamePlatform = PlayerGamePlatform::query() + ->where('platform_id', $this->platform->id) + ->where('player_id',$this->player->id) + ->first(); + if (!empty($playerGamePlatform)) { + return $this->loginId = $playerGamePlatform->player_code; + } + return $this->createPlayer([ + 'uuid' => $this->player->uuid, + 'name' => $this->player->name, + ]); + } + + /** + * 创建玩家 + * @param array $data + * @return array|mixed|Response + * @throws GameException|\think\Exception + */ + public function createPlayer(array $data = []) + { + $params = [ + 'action' => 12, + 'ts' => round(microtime(true) * 1000), + 'lang' => 'cn', + 'parent' => $this->parent, + 'uid' => $this->player->uuid, + 'name' => $this->player->name ?: $this->player->uuid + ]; + $request = $this->buildParams($params); + $res = doFormCurl($this->apiDomain, $request); + if ($res['status'] != $this->successCode) { + throw new GameException($this->failCode[$res['status']], 0); + } + $playerGamePlatform = new PlayerGamePlatform(); + $playerGamePlatform->player_id = $this->player->id; + $playerGamePlatform->platform_id = $this->platform->id; + $playerGamePlatform->player_name = $data['name']; + $playerGamePlatform->player_code = $data['uuid']; + $playerGamePlatform->save(); + $this->loginId = $playerGamePlatform->player_code; + return $res; + } + + public function getPlayer() + { + // TODO: Implement getPlayer() method. + } + + /** + * 获取游戏摘要MD5 (id+method+sn+APlSecretKey) + * @return array|mixed|Response + * @throws GameException|\think\Exception + */ + public function getSimpleGameList() + { + $params = [ + 'action' => 49, + 'ts' => round(microtime(true) * 1000), + 'parent' => $this->parent, + 'lang' => 'en', + ]; + $request = $this->buildParams($params); + $res = doFormCurl($this->apiDomain, $request); + if ($res['status'] != $this->successCode) { + throw new GameException($this->failCode[$res['status']], 0); + } + $insertData = []; + if (!empty($res['data'])) { + foreach ($res['data'] as $data) { + foreach($data['list'] as $item){ + $insertData[] = [ + 'platform_id' => $this->platform->id, + 'game_code' => $item['mType'], + 'platform_game_type' => $data['gType'], + 'game_type' => $this->localGameType[$data['gType']], + 'name' => $item['name'], + 'game_image' => $item['image'], + ]; + } + } + } + if (!empty($insertData)) { + Game::query()->upsert($insertData, ['platform_id', 'game_code']); + } + return $insertData; + } + + /** + * 获取游戏摘要MD5 (id+method+sn+APlSecretKey) + * @param array $data + * @return string + * @throws GameException|\think\Exception + */ + public function login(array $data = []): string + { + $params = [ + 'action' => 11, + 'ts' => round(microtime(true) * 1000), + 'lang' => $this->lang[$data['lang']] ?? 'en', + 'uid' => $this->loginId, + 'gType' => $data['platformGameType'], + 'mType' => $data['gameCode'], + 'windowMode' => 2, + 'isAPP' => true, + ]; +// if($data['platformGameType'] || $data['gameCode']){ +// $params['gType'] = $data['platformGameType']; +// $params['mType'] = $data['gameCode']; +// $params['windowMode'] = 2; +// $params['isAPP'] = true; +// } + $request = $this->buildParams($params); + $res = doFormCurl($this->apiDomain, $request); + if ($res['status'] != $this->successCode) { + throw new GameException($this->failCode[$res['status']], 0); + } + return $res['path'] ?? ''; + } + + /** + * 玩家钱包转入游戏平台 + * @return array|mixed|null + * @throws GameException|\think\Exception + */ + public function balanceTransferOut() + { + return $this->setBalanceTransfer(PlayerWalletTransfer::TYPE_OUT, $this->player->wallet->money); + } + + /** + * 转入游戏平台玩家钱包 + * @return array|mixed|null + * @throws GameException|\think\Exception + */ + public function balanceTransferIn() + { + //提现之前把用户踢下线 + if($this->checkPlay()){ + $this->userLogout(); + sleep(1); + } + $balance = $this->getBalance(); + if($balance == 0){ + // 记录玩家钱包转出转入记录 + $this->createWalletTransfer(PlayerWalletTransfer::TYPE_IN, 0, 0); + return true; + } + return $this->setBalanceTransfer(PlayerWalletTransfer::TYPE_IN, $balance ? -$balance : 0); + } + + /** + * 轉帳進出額度 + * @param $type + * @param float $amount + * @param float $reward + * @return array|mixed|null + * @throws GameException|\think\Exception + */ + protected function setBalanceTransfer($type, float $amount = 0, float $reward = 0) + { + $params = [ + 'action' => 19, + 'ts' => round(microtime(true) * 1000), + 'parent' => $this->parent, + 'uid' => $this->loginId, + 'serialNo' => createOrderNo(), + 'amount' => $amount ?? 0, + ]; + $request = $this->buildParams($params); + $res = doFormCurl($this->apiDomain, $request); + if ($res['status'] != $this->successCode) { + throw new GameException($this->failCode[$res['status']], 0); + } + // 记录玩家钱包转出转入记录 + $this->createWalletTransfer($type, $amount, $reward); + return $res; + } + + /** + * 獲取玩家餘額信息 + * @return array|mixed|Response + * @throws GameException|\think\Exception + */ + public function getBalance() + { + $params = [ + 'action' => 15, + 'ts' => round(microtime(true) * 1000), + 'parent' => $this->parent, + 'uid' => $this->loginId, + ]; + + $request = $this->buildParams($params); + $res = doFormCurl($this->apiDomain, $request); + if ($res['status'] != $this->successCode) { + throw new GameException('JDB System Error,Please contact the administrator', 0); + } + + return $res['data'][0]['balance'] ?? 0; + } + + /** + * 查询玩家状态 + * @throws GameException|\think\Exception + */ + public function checkPlay(): bool + { + $params = [ + 'action' => 52, + 'ts' => round(microtime(true) * 1000), + 'parent' => $this->parent, + 'uid' => $this->loginId, + ]; + + $request = $this->buildParams($params); + $res = doFormCurl($this->apiDomain, $request); + //游戏中 + if($res['status'] == $this->successCode){ + return true; + } + //不在游戏中 + if($res['status'] == 7505){ + return false; + } + throw new GameException($this->failCode[$res['status']], 0); + } + + /** + * 玩家踢下线 + * @throws GameException|\think\Exception + */ + public function userLogout(): bool + { + $params = [ + 'action' => 17, + 'ts' => round(microtime(true) * 1000), + 'parent' => $this->parent, + 'uid' => $this->loginId, + ]; + + $request = $this->buildParams($params); + $res = doFormCurl($this->apiDomain, $request); + if ($res['status'] != $this->successCode) { + throw new GameException($this->failCode[$res['status']], 0); + } + + return true; + } + + /** + * 取得區間內遊戲紀錄 + * @return array + * @throws Exception + */ + public function handleOrderHistories(): array + { + $list = []; + try { + $data = $this->getGameHistories(); + if (!empty($data)) { + foreach ($data as $item) { + if ($item['gType'] == 9 && !empty($item['hasGamble'])) { + $item['bet'] = $item['gambleBet']; + } + $list[] = [ + 'uuid' => $item['playerId'], + 'platform_id' => $this->platform->id, + 'game_code' => $item['mtype'], + 'bet' => abs($item['bet']), + 'win' => max($item['win'], 0), + 'order_no' => $item['historyId'], + 'game_type' => $item['gType'], + 'original_data' => json_encode($item,JSON_UNESCAPED_UNICODE), + 'platform_action_at' => date('Y-m-d H:i:s', strtotime($item['lastModifyTime'])), + 'created_at' => date('Y-m-d H:i:s'), + 'updated_at' => date('Y-m-d H:i:s'), + ]; + } + } + } catch (Exception $e) { + return []; + } + + return $list; + } + + /** + * 取得區間內遊戲紀錄 + * @return array + * @throws GameException|\think\Exception + */ + public function getGameHistories(): array + { + $params = [ + 'action' => 29, + 'ts' => round(microtime(true) * 1000), + 'parent' => $this->parent, + 'starttime' => date('d-m-Y H:i:00', strtotime('-5 minutes')), + 'endtime' => date('d-m-Y H:i:00', strtotime('-4 minutes')), + ]; + $request = $this->buildParams($params); + $res = doFormCurl($this->apiDomain, $request); + if ($res['status'] != $this->successCode) { + throw new GameException($this->failCode[$res['status']], 0); + } + return $res['data'] ?? []; + } +} \ No newline at end of file diff --git a/app/service/game/JiLiServiceInterface.php b/app/service/game/JiLiServiceInterface.php new file mode 100644 index 0000000..9ad6bf5 --- /dev/null +++ b/app/service/game/JiLiServiceInterface.php @@ -0,0 +1,529 @@ + 'Casino', + '5' => 'Fishing', + '8' => 'Bingo', + '1' => 'Slot', + ]; + + public $localGameType = [ + '2' => '2',//赌场 + '5' => '4',//捕鱼 + '8' => '8',//宾果 + '1' => '1',//斯洛 + ]; + + public $failCode = [ + 'S200' => '重復請求', + 'F0001' => '無效的簽名', + 'F0002' => '無效的SN', + 'F0003' => '無效的參數', + 'F0004' => '無效的貨幣', + 'F0005' => '玩家已存在', + 'F0006' => '玩家不存在', + 'F0007' => '會員不存在', + 'F0008' => '執行失敗', + 'F0009' => '無效的方法', + 'F0010' => '無效的用戶狀態', + 'F0011' => '玩家狀態無需更新', + 'F0012' => '超出數據範圍', + 'F0013' => '無匹配數據', + 'F0014' => '登入位置被禁止', + 'F0015' => '分數不足夠', + 'F0016' => '不支持禮碼', + 'F0017' => '交易流水號不得重複', + 'F0018' => '系統繁忙', + 'F0019' => '日期時間各式錯誤', + 'F0020' => '超出時間限制範圍(開始時間與結束時間之間不能大於120分鐘)', + 'F0021' => '執行取消', + 'M0001' => '系統維護', + 'M0002' => '系統錯誤', + ]; + + /** + * @param Player|null $player + * @param $type + * @throws Exception + */ + public function __construct($type, Player $player = null) + { + $config = config('game_platform.' . $type); + $this->appId = $config['app_id']; + $this->apiDomain = $config['api_domain']; + $this->domain = $config['domain']; + $this->appSecret = $config['app_secret']; + $this->platform = GamePlatform::query()->where('name', $type)->first(); + if (!empty($player)) { + $this->player = $player; + $this->getLoginId(); + } + } + + /** + * 生成请求url + * @param $method + * @return string + */ + public function createUrl($method): string + { + return $this->apiDomain.$method; + } + + public function createSign($params): string + { + $date = new DateTime('now', new DateTimeZone('UTC')); + $date->setTimezone(new DateTimeZone('America/Puerto_Rico')); + $key_g = md5($date->format('ymj').$this->appId.$this->appSecret); + $paramStr = urldecode(http_build_query($params)); + $key = mt_rand(100000,999999).MD5($paramStr.$key_g).mt_rand(100000,999999); + return $key; + } + + /** + * 更新游戏列表 + * @return array|mixed|Response + * @throws GameException|\think\Exception + */ + public function getSimpleGameList() + { + $params = [ + 'AgentId' => $this->appId + ]; + $signature = $this->createSign($params); + $params['Key'] = $signature; + $result = doFormCurl($this->createUrl('GetGameList'), $params); + if ($result['ErrorCode'] == 0 && !empty($result['Data'])) { + foreach ($result['Data'] as $game) { + if($game['GameCategoryId'] == 3){ + continue; + } + Game::query()->updateOrCreate( + [ + 'platform_id' => $this->platform->id, + 'game_code' => $game['GameId'], + ], + [ + 'platform_game_type' => $game['GameCategoryId'], + 'game_type' => $this->localGameType[$game['GameCategoryId']], + 'name' => $game['name']['en-US'], + ] + ); + } + }else{ + throw new GameException($result['Message'], 0); + } + return $result; + } + + /** + * 获取游戏列表 + * @return array|mixed|Response + * @throws GameException|\think\Exception + */ + public function getGamesList() + { + $params = [ + 'AgentId' => $this->appId + ]; + $signature = $this->createSign($params); + $params['Key'] = $signature; + $result = doFormCurl($this->createUrl('GetGameList'), $params); + if ($result['ErrorCode'] == 0 && !empty($result['Data'])) { + return $result; + }else{ + throw new GameException($result['Message'], 0); + } + } + + /** + * 获取玩家ID + * @throws Exception + */ + protected function getLoginId() + { + /** @var PlayerGamePlatform $playerGamePlatform */ + $playerGamePlatform = PlayerGamePlatform::query()->where('platform_id', $this->platform->id)->where('player_id',$this->player->id)->first(); + if (!empty($playerGamePlatform)) { + return $this->loginId = $playerGamePlatform->player_code; + } + return $this->createPlayer([ + 'uuid' => $this->player->uuid, + 'name' => $this->player->name, + ]); + } + + /** + * 创建玩家 + * @param array $data + * @return array|mixed|Response + * @throws GameException|Exception + */ + public function createPlayer(array $data = []) + { + $params = [ + 'Account' => $data['uuid'], + 'AgentId' => $this->appId + ]; + $signature = $this->createSign($params); + $params['Key'] = $signature; + $result = doFormCurl($this->createUrl('CreateMember'), $params); + + if (!in_array($result['ErrorCode'],[0,101])) { + Log::error($result['Message'], ['res' => $result]); + throw new GameException($result['Message'], 0); + } + $playerGamePlatform = new PlayerGamePlatform(); + $playerGamePlatform->player_id = $this->player->id; + $playerGamePlatform->platform_id = $this->platform->id; + $playerGamePlatform->player_name = $data['name']; + $playerGamePlatform->player_code = $data['uuid']; + $playerGamePlatform->save(); + $this->loginId = $playerGamePlatform->player_code; + return $result; + } + + /** + * 获取玩家 + * @return array|mixed|Response + * @throws GameException|Exception + */ + public function getPlayer() + { + $params = [ + 'Accounts' => $this->loginId, + 'AgentId' => $this->appId + ]; + $signature = $this->createSign($params); + $params['Key'] = $signature; + $result = doFormCurl($this->createUrl('GetMemberInfo'), $params); + if ($result['ErrorCode'] != 0) { + throw new GameException($result['Message'], 0); + } + return $result; + } + + /** + * 玩家进入游戏 + * @param array $data + * @return string + * @throws GameException|\think\Exception + */ + public function login(array $data = []): string + { + $params = [ + 'Account'=> $this->loginId, + 'GameId'=> intval($data['gameCode']), + 'Lang'=> $data['lang'], + 'AgentId' => $this->appId + ]; + $signature = $this->createSign($params); + $params['Key'] = $signature; + $result = doFormCurl($this->createUrl('LoginWithoutRedirect'), $params); + if ($result['ErrorCode'] == 0 && !empty($result['Data'])) { + $link = $result['Data']; + }else{ + throw new GameException($result['Message'], 0); + } + return $link; + } + + /** + * 获取玩家游戏平台余额 + * @return array|mixed|Response + * @throws GameException|\think\Exception + */ + public function getBalance() + { + $params = [ + 'Accounts' => $this->loginId, + 'AgentId' => $this->appId + ]; + $signature = $this->createSign($params); + $params['Key'] = $signature; + $result = doFormCurl($this->createUrl('GetMemberInfo'), $params); + if ($result['ErrorCode'] != 0) { + throw new GameException('JiLi System Error,Please contact the administrator', 0); + } + return bcdiv($result['Data'][0]['Balance'], 100 , 2); + } + + /** + * 玩家钱包转入游戏平台 + * @return array|mixed|null + * @throws GameException|\think\Exception + */ + public function balanceTransferOut() + { + return $this->setBalanceTransfer(PlayerWalletTransfer::TYPE_IN, $this->player->wallet->money); + } + + /** + * 游戏平台转入玩家钱包 + * @return array|mixed|null + * @throws GameException|\think\Exception + */ + public function balanceTransferIn() + { + $balance = $this->getBalance(); + return $this->setBalanceTransfer(PlayerWalletTransfer::TYPE_OUT, $balance); + } + + /** + * 轉帳進出額度 + * @param $type + * @param float $amount + * @param float $reward + * @return array|mixed|null + * @throws GameException|\think\Exception + */ + protected function setBalanceTransfer($type, float $amount = 0, float $reward = 0) + { + + if ($type == 2 && $amount == 0 && $reward == 0) { + throw new GameException('转出/入金额错误', 0); + } + $params = [ + 'Account' => $this->loginId, + 'TransactionId' => createOrderNo(), + 'Amount' => $amount, + 'TransferType' => $type, + 'AgentId' => $this->appId + ]; + $signature = $this->createSign($params); + $params['Key'] = $signature; + $result = doFormCurl($this->createUrl('ExchangeTransferByAgentId'), $params); + if ($result['ErrorCode'] != 0) { + throw new GameException($result['Message'], 0); + } + if($type == 1){ + $type = 2; + }else{ + $type = 1; + } + // 记录玩家钱包转出转入记录 + $this->createWalletTransfer($type, $amount, $reward, $result['Data']['TransactionId'] ?? ''); + return $result; + } + + /** + * 查询额度转移纪录 + * @return array|mixed|Response + * @throws GameException|\think\Exception + */ + public function getTransferList(string $startTime = '', string $endTime = '', int $page = 1, int $pageSize = 10) + { + $params = [ + 'StartTime' => $startTime, + 'EndTime' => $endTime, + 'Page' => $page, + 'PageLimit' => $pageSize, + 'AgentId' => $this->appId + ]; + $signature = $this->createSign($params); + $params['Key'] = $signature; + $result = doFormCurl($this->createUrl('GetTransferRecordByTime'), $params); + if ($result['ErrorCode'] != 0) { + throw new GameException($result['Message'], 0); + } + return $result['Data']; + } + + /** + * 查询一笔额度转移纪录 + * @return array|mixed|Response + * @throws GameException|\think\Exception + */ + public function getTransferById(string $transactionId) + { + $params = [ + 'TransactionId' => $transactionId, + 'AgentId' => $this->appId + ]; + $signature = $this->createSign($params); + $params['Key'] = $signature; + $result = doFormCurl($this->createUrl('CheckTransferByTransactionId'), $params); + if ($result['ErrorCode'] != 0) { + throw new GameException($result['Message'], 0); + } + return $result['Data']; + } + + /** + * 查询游戏纪录 + * @return array|mixed|Response + * @throws GameException|\think\Exception + */ + public function getGameRecordList(string $startTime = '', string $endTime = '', int $page = 1, int $pageSize = 10000, int $gameId = null) + { + $params = [ + 'StartTime' => $startTime, + 'EndTime' => $endTime, + 'Page' => $page, + 'PageLimit' => $pageSize, + 'AgentId' => $this->appId + ]; + $signature = $this->createSign($params); + $params['Key'] = $signature; + if(!empty($gameId)){ + $params['GameId'] = $gameId; + } + $result = doFormCurl($this->createUrl('GetBetRecordByTime'), $params); + if ($result['ErrorCode'] != 0) { + throw new GameException($result['Message'], 0); + } + return $result['Data']; + } + + /** + * 查询指定游戏记录详情 + * @return array|mixed|Response + * @throws GameException|\think\Exception + */ + public function getGameRecordById(string $wagersId) + { + $params = [ + 'WagersId' => $wagersId, + 'AgentId' => $this->appId + ]; + $signature = $this->createSign($params); + $params['Key'] = $signature; + $lang = locale(); + $lang = Str::replace('_', '-', $lang); + $params['Lang'] = $lang; + $result = doFormCurl($this->createUrl('GetGameDetailUrl'), $params); + if ($result['ErrorCode'] != 0) { + throw new GameException($result['Message'], 0); + } + return $result['Data']; + } + + /** + * 查询指定玩家游戏记录 + * @return array|mixed|Response + * @throws GameException|\think\Exception + */ + public function getUserGameRecord(string $startTime = '', string $endTime = '', int $page = 1, int $pageSize = 10, int $gameId = null, int $gameType = null) + { + $params = [ + 'StartTime' => $startTime, + 'EndTime' => $endTime, + 'Page' => $page, + 'PageLimit' => $pageSize, + 'Account' => $this->loginId, + 'AgentId' => $this->appId + ]; + $signature = $this->createSign($params); + $params['Key'] = $signature; + if(!empty($gameId)){ + $params['GameId'] = $gameId; + } + if(!empty($gameType)){ + $params['GameType'] = $gameType; + } + $lang = locale(); + $lang = Str::replace('_', '-', $lang); + $params['Lang'] = $lang; + $result = doFormCurl($this->createUrl('GetUserBetRecordByTime'), $params); + if ($result['ErrorCode'] != 0) { + throw new GameException($result['Message'], 0); + } + return $result['Data']; + } + + /** + * 查询玩家游戏记录 + * @param string $startTime + * @param string $endTime + * @return array + */ + public function handleOrderHistories(string $startTime = '', string $endTime = ''): array + { + try { + $page = 1; + $list = []; + $timezone = new DateTimeZone('Etc/GMT+4'); + $start = new DateTime('-6 minutes', $timezone); + $end = new DateTime('-5 minutes', $timezone); + $startTime = $start->format('Y-m-d\TH:i:s'); + $endTime = $end->format('Y-m-d\TH:i:s'); + $data = $this->getGameRecordList($startTime, $endTime, $page); + if (!empty($data['Result'])) { + $total = $data['Pagination']['TotalNumber'] ?? 0; + if ($total > 0) { + $pageSize = 10000; + if (!empty($data['Result'])) { + foreach ($data['Result'] as $item) { + $list[] = [ + 'uuid' => $item['Account'], + 'platform_id' => $this->platform->id, + 'game_code' => $item['GameId'], + 'bet' => abs(bcdiv($item['Turnover'], 100, 2)), + 'win' => bcdiv($item['PayoffAmount'],100, 2), + 'order_no' => $item['WagersId'], + 'original_data' => json_encode($item,JSON_UNESCAPED_UNICODE), + 'platform_action_at' => date('Y-m-d H:i:s', strtotime($item['SettlementTime'])), + 'game_type' => $item['GameCategoryId'], + 'created_at' => date('Y-m-d H:i:s'), + 'updated_at' => date('Y-m-d H:i:s'), + ]; + + } + } + if ($total > $pageSize) { + $totalPages = ceil($total / $pageSize); + for ($page = 2; $page <= $totalPages; $page++) { + $nextData = $this->getGameRecordList($startTime,$endTime,$page); + if (!empty($nextData['Result'])) { + foreach ($nextData['Result'] as $item) { + $list[] = [ + 'uuid' => $item['Account'], + 'platform_id' => $this->platform->id, + 'game_code' => $item['GameId'], + 'bet' => abs(bcdiv($item['Turnover'], 100, 2)), + 'win' => bcdiv($item['PayoffAmount'],100, 2), + 'order_no' => $item['WagersId'], + 'original_data' => json_encode($item,JSON_UNESCAPED_UNICODE), + 'platform_action_at' => date('Y-m-d H:i:s', strtotime($item['SettlementTime'])), + 'game_type' => $item['GameCategoryId'], + 'created_at' => date('Y-m-d H:i:s'), + 'updated_at' => date('Y-m-d H:i:s'), + ]; + } + } + } + } + } + } + } catch (Exception $e) { + return []; + } + + return $list; + } + +} \ No newline at end of file diff --git a/app/service/game/JokerServiceInterface.php b/app/service/game/JokerServiceInterface.php new file mode 100644 index 0000000..fd7c720 --- /dev/null +++ b/app/service/game/JokerServiceInterface.php @@ -0,0 +1,465 @@ + 'Casino', + 'Fishing' => 'Fishing', + 'Bingo' => 'Bingo', + 'Slot' => 'Slot', + ]; + + public $localGameType = [ + 'ECasino' => '2', + 'Fishing' => '4', + 'Bingo' => '8', + 'Slot' => '1', + ]; + + public $failCode = [ + 'S200' => '重復請求', + 'F0001' => '無效的簽名', + 'F0002' => '無效的SN', + 'F0003' => '無效的參數', + 'F0004' => '無效的貨幣', + 'F0005' => '玩家已存在', + 'F0006' => '玩家不存在', + 'F0007' => '會員不存在', + 'F0008' => '執行失敗', + 'F0009' => '無效的方法', + 'F0010' => '無效的用戶狀態', + 'F0011' => '玩家狀態無需更新', + 'F0012' => '超出數據範圍', + 'F0013' => '無匹配數據', + 'F0014' => '登入位置被禁止', + 'F0015' => '分數不足夠', + 'F0016' => '不支持禮碼', + 'F0017' => '交易流水號不得重複', + 'F0018' => '系統繁忙', + 'F0019' => '日期時間各式錯誤', + 'F0020' => '超出時間限制範圍(開始時間與結束時間之間不能大於120分鐘)', + 'F0021' => '執行取消', + 'M0001' => '系統維護', + 'M0002' => '系統錯誤', + ]; + + private $lang = [ + 'zh-CN' => 'zh_ch', + 'en' => 'en_us', + 'zh_tc' => 'zh_tc', + 'th_th' => 'th_th', + 'Ma_my' => 'Ma_my', + 'vi_nam' => 'vi_nam', + 'Fi_fi' => 'Fi_fi', + 'Kr_ko' => 'Kr_ko', + 'Hi_hi' => 'Hi_hi', + 'My_mar' => 'My_mar', + 'Br_po' => 'Br_po', + 'cam_dia' => 'cam_dia', // 柬埔寨语 + ]; + + /** + * @param Player|null $player + * @param $type + * @throws Exception + */ + public function __construct($type, Player $player = null) + { + $config = config('game_platform.' . $type); + $this->appId = $config['app_id']; + $this->apiDomain = $config['api_domain']; + $this->domain = $config['domain']; + $this->appSecret = $config['app_secret']; + $this->platform = GamePlatform::query()->where('name', $type)->first(); + if (!empty($player)) { + $this->player = $player; + $this->getLoginId(); + } + } + + /** + * 生成请求url + * @param $method + * @return string + */ + public function createUrl($signature): string + { + return $this->apiDomain."?AppID=".$this->appId."&Signature=".$signature; + } + + public function createSign($params): string + { + ksort($params); + $signature = urlencode(base64_encode(hash_hmac("sha1", urldecode(http_build_query($params,'', '&')), $this->appSecret, TRUE))); + + return $signature; + } + + /** + * 更新游戏列表 + * @return array|mixed|Response + * @throws GameException|\think\Exception + */ + public function getSimpleGameList() + { + $params = [ + 'Method' => 'ListGames', + 'Timestamp' => time(), + ]; + $signature = $this->createSign($params); + + $result = doCurl($this->createUrl($signature), $params); + if (isset($result['ListGames'])) { + foreach ($result['ListGames'] as $game) { + Game::query()->updateOrCreate( + [ + 'platform_id' => $this->platform->id, + 'game_code' => $game['GameCode'], + ], + [ + 'platform_game_type' => $game['GameType'], + 'game_type' => $this->localGameType[$game['GameType']], + 'name' => $game['GameName'], + ] + ); + } + }else{ + throw new GameException($result['Message'], 0); + } + return $result; + } + + /** + * 获取游戏列表 + * @return array|mixed|Response + * @throws GameException|\think\Exception + */ + public function getGamesList() + { + $params = [ + 'Method' => 'ListGames', + 'Timestamp' => time(), + ]; + $signature = $this->createSign($params); + + $result = doCurl($this->createUrl($signature), $params); + if (isset($result['ListGames'])) { + return $result; + }else{ + throw new GameException($result['Message'], 0); + } + } + + /** + * 获取游戏列表 + * @return array|mixed|Response + * @throws GameException|\think\Exception + */ + public function playFreeGame() + { + $params = [ + 'Method' => 'PLAY', + 'Username' => $this->player->name, + 'Timestamp' => time(), + ]; + $signature = $this->createSign($params); + + $result = doCurl($this->createUrl($signature), $params); + if (isset($result['Token'])) { + return $forwardUrl = $this->domain."?token=".$result['Token']."&game=1jeqx59c7ztqg&mobile=false"; + }else{ + throw new GameException($result['Message'], 0); + } + } + + /** + * 玩游戏 + * @return array|mixed|Response + * @throws GameException|\think\Exception + */ + public function playGame() + { + $params = [ + 'Method' => 'PLAY', + 'Username' => $this->player->name, + 'RequestID' => createOrderNo(), + 'Amount' => $amount, + 'Timestamp' => time(), + ]; + $signature = $this->createSign($params); + + $result = doCurl($this->createUrl($signature), $params); + if (isset($result['Token'])) { + return $forwardUrl = $this->domain."?token=".$result['Token']."&game=1jeqx59c7ztqg&mobile=false"; + }else{ + throw new GameException($result['Message'], 0); + } + } + + /** + * @throws Exception + */ + protected function getLoginId() + { + /** @var PlayerGamePlatform $playerGamePlatform */ + $playerGamePlatform = $this->player->playerGamePlatform->where('platform_id', $this->platform->id)->first(); + if (!empty($playerGamePlatform)) { + return $this->loginId = $playerGamePlatform->player_code; + } + return $this->createPlayer([ + 'uuid' => $this->player->uuid, + 'name' => $this->player->name, + ]); + } + + /** + * 创建玩家 + * @param array $data + * @return array|mixed|Response + * @throws GameException|Exception + */ + public function createPlayer(array $data = []) + { + $params = [ + 'Method' => 'CU', + 'Username' => $data['uuid'], + 'Timestamp' => time(), + ]; + $signature = $this->createSign($params); + + $res = doCurl($this->createUrl($signature), $params); + if (empty($res['Status']) || $res['Status'] != 'OK') { + Log::error($res['Message'], ['res' => $res]); + throw new GameException($res['Message'], 0); + } + $playerGamePlatform = new PlayerGamePlatform(); + $playerGamePlatform->player_id = $this->player->id; + $playerGamePlatform->platform_id = $this->platform->id; + $playerGamePlatform->player_name = $data['name']; + $playerGamePlatform->player_code = $data['uuid']; + $playerGamePlatform->save(); + $this->loginId = $playerGamePlatform->player_code; + return $res; + } + + /** + * 获取玩家 + * @return array|mixed|Response + * @throws GameException|Exception + */ + public function getPlayer() + { + $params = [ + 'ID' => createOrderNo(), + 'Method' => 'GetPlayer', + 'SN' => $this->appId, + 'LoginId' => $this->loginId, + ]; + $params['Signature'] = $this->createSign($params); + $data = doCurl($this->createUrl('getPlayer'), $params); + if ($data['code'] != $this->successCode) { + throw new GameException($this->failCode[$data['code']], 0); + } + + return $data; + } + + /** + * 玩家进入游戏 + * @param array $data + * @return string + * @throws GameException|\think\Exception + */ + public function login(array $data = []): string + { + $params = [ + 'Method' => 'PLAY', + 'Username' => $this->loginId, + 'RequestID' => createOrderNo(), + 'Amount' => 0, + 'Timestamp' => time(), + ]; + $signature = $this->createSign($params); + + $res = doCurl($this->createUrl($signature), $params); + if (empty($res['Token'])) { + Log::error($res['Message'], ['res' => $res]); + throw new GameException($res['Message'], 0); + } + if (!empty($data['gameCode'])) { + $link = $this->domain.'?token='.$res['Token'].'&game='.$data['gameCode'].'&mobile=1&lang=en'; + }else{ + $link = $this->domain . ($res['data']['loginUrl'] ?? '') . '&' . $parametersValue; + } + return $link; + } + + /** + * 设置用户状态 + * @return array|mixed|Response + * @throws GameException|\think\Exception + */ + public function setPlayerStatus($status) + { + + $params = [ + 'Method' => 'SS', + 'Username' => $this->loginId, + 'Status' => $status, + 'Timestamp' => time(), + ]; + $signature = $this->createSign($params); + + $res = doCurl($this->createUrl($signature), $params); + if ($res['Status'] != 'OK') { + throw new GameException($this->failCode[$res['Status']], 0); + } + + return $res; + } + + /** + * 获取玩家游戏平台余额 + * @return array|mixed|Response + * @throws GameException|\think\Exception + */ + public function getBalance() + { + + $params = [ + 'Method' => 'GC', + 'Username' => $this->loginId, + 'Timestamp' => time(), + ]; + $signature = $this->createSign($params); + + $res = doCurl($this->createUrl($signature), $params); + + if (empty($res['Credit']) && !empty($res['Message'])) { + throw new GameException($res['Message'], 0); + } + + return $res; + } + + /** + * 玩家钱包转入游戏平台 + * @return array|mixed|null + * @throws GameException|\think\Exception + */ + public function balanceTransferOut() + { + return $this->setBalanceTransfer(PlayerWalletTransfer::TYPE_OUT, $this->player->wallet->money); + } + + /** + * 游戏平台转入玩家钱包 + * @return array|mixed|null + * @throws GameException|\think\Exception + */ + public function balanceTransferIn() + { + $params = [ + 'Method' => 'WAC', + 'Username' => $this->loginId, + 'Timestamp' => time(), + 'RequestID' => createOrderNo(), + ]; + $signature = $this->createSign($params); + + $res = doCurl($this->createUrl($signature), $params); + + if (empty($res['RequestID']) || $res['RequestID'] != $params['RequestID'] || $res['Amount'] == 0) { + throw new GameException($res['Message'], 0); + } + // 记录玩家钱包转出转入记录 + $this->createWalletTransfer(PlayerWalletTransfer::TYPE_IN, $res['Amount'], 0, $res['RequestID'] ?? ''); + + return $res; + } + + /** + * 轉帳進出額度 + * 簽名密鑰方式 MD5 (Id+Method+SN+LoginId+APISecretKey) + * @param $type + * @param float $amount + * @param float $reward + * @return array|mixed|null + * @throws GameException|\think\Exception + */ + protected function setBalanceTransfer($type, float $amount = 0, float $reward = 0) + { + if ($amount == 0 && $reward == 0) { + throw new GameException('转出/入金额错误', 0); + } + + $params = [ + 'Method' => 'TC', + 'Username' => $this->loginId, + 'Timestamp' => time(), + 'RequestID' => createOrderNo(), + 'Amount' => $amount, + ]; + $signature = $this->createSign($params); + + $res = doCurl($this->createUrl($signature), $params); + + if (empty($res['RequestID']) || $res['RequestID'] != $params['RequestID']) { + // Log::error($res['Message'], ['res' => $res]); + throw new GameException($res['Message'], 0); + } + // 记录玩家钱包转出转入记录 + $this->createWalletTransfer($type, $amount, $reward, $res['RequestID'] ?? ''); + + return $res; + } + + /** + * 依據時間獲取遊戲紀錄 + * MD5 (Id+Method+SN+StartTime+EndTime+APISecretKey) + * @param int $pageIndex + * @param string $startTime + * @param string $endTime + * @return array|mixed|null + * @throws GameException|\think\Exception + */ + public function getGameRecordByTime(string $startTime = '', string $endTime = '') + { + $params = [ + 'Method' => 'TSM', + 'StartDate' => $startTime, + 'EndDate' => $endTime, + 'NextId' => '', + 'Delay' => 0, + 'Timestamp' => time(), + ]; + $signature = $this->createSign($params); + + $res = doCurl($this->createUrl($signature), $params); + + // if (empty($res['data'])) { + // throw new GameException($res['Message'], 0); + // } + + return $res; + } +} \ No newline at end of file diff --git a/app/service/game/Kiss918ServiceInterface.php b/app/service/game/Kiss918ServiceInterface.php new file mode 100644 index 0000000..d5997ee --- /dev/null +++ b/app/service/game/Kiss918ServiceInterface.php @@ -0,0 +1,389 @@ + 'Casino', + '5' => 'Fishing', + '8' => 'Bingo', + '1' => 'Slot', + ]; + + public $localGameType = [ + '2' => '2',//赌场 + '5' => '4',//捕鱼 + '8' => '2',//宾果 + '1' => '1',//斯洛 + ]; + + public $failCode = [ + 'S200' => '重復請求', + 'F0001' => '無效的簽名', + 'F0002' => '無效的SN', + 'F0003' => '無效的參數', + 'F0004' => '無效的貨幣', + 'F0005' => '玩家已存在', + 'F0006' => '玩家不存在', + 'F0007' => '會員不存在', + 'F0008' => '執行失敗', + 'F0009' => '無效的方法', + 'F0010' => '無效的用戶狀態', + 'F0011' => '玩家狀態無需更新', + 'F0012' => '超出數據範圍', + 'F0013' => '無匹配數據', + 'F0014' => '登入位置被禁止', + 'F0015' => '分數不足夠', + 'F0016' => '不支持禮碼', + 'F0017' => '交易流水號不得重複', + 'F0018' => '系統繁忙', + 'F0019' => '日期時間各式錯誤', + 'F0020' => '超出時間限制範圍(開始時間與結束時間之間不能大於120分鐘)', + 'F0021' => '執行取消', + 'M0001' => '系統維護', + 'M0002' => '系統錯誤', + ]; + private $admin_user; + + /** + * @param Player|null $player + * @param $type + * @throws Exception + */ + public function __construct($type, Player $player = null) + { + $config = config('game_platform.' . $type); + $this->auth = $config['auth']; + $this->admin_user = $config['admin_user']; + $this->apiDomain = $config['api_domain']; + $this->recordApi = $config['record_api']; + $this->domain = $config['domain']; + $this->appSecret = $config['app_secret']; + $this->platform = GamePlatform::query()->where('name', $type)->first(); + if (!empty($player)) { + $this->player = $player; + $this->getLoginId(); + } + } + + public function createSign($params): string + { + $str = implode('', $params); + return strtoupper(md5(strtolower($str))); + } + + /** + * 更新游戏列表 + * @return false + */ + public function getSimpleGameList(): bool + { + return false; + } + + /** + * 获取玩家ID + * @throws Exception + */ + protected function getLoginId() + { + /** @var PlayerGamePlatform $playerGamePlatform */ + $playerGamePlatform = PlayerGamePlatform::query()->where('platform_id', $this->platform->id)->where('player_id',$this->player->id)->first(); + if (!empty($playerGamePlatform)) { + $this->password = $playerGamePlatform->player_password; + return $this->loginId = $playerGamePlatform->player_code; + } + return $this->createPlayer([ + 'uuid' => $this->player->uuid, + 'name' => $this->player->name, + ]); + } + + /** + * 创建玩家 + * @param array $data + * @return array|mixed|Response + * @throws GameException|Exception + */ + public function createPlayer(array $data = []) + { + $time = round(microtime(true)*1000); + $randomParams = [ + 'action' => 'RandomUserName', + 'userName' => $this->admin_user, + 'time' => $time, + 'authcode' => $this->auth, + ]; + $signature = $this->createSign([$this->auth, $randomParams['userName'], $time ,$this->appSecret]); + $randomParams['sign'] = $signature; + $randomUser = dogGetCurl($this->apiDomain.'ashx/account/account.ashx', $randomParams);; + if(!$randomUser['success'] || empty($randomUser['account'])){ + throw new GameException($randomUser['msg'], 0); + } + $password = uniqid(); + $params = [ + 'action' => 'addUser', + 'agent' => $this->admin_user, + 'PassWd' => $password, + 'pwdtype' => 1, + 'userName' => $randomUser['account'], + 'Name' => $data['name'], + 'Tel' => $this->player->phone ?? '', + 'Memo' => $data['name'], + 'UserType' => 1, + 'time' => $time, + 'authcode' => $this->auth, + ]; + $signature = $this->createSign([$this->auth, $params['userName'], $time ,$this->appSecret]); + $params['sign'] = $signature; + $result = dogGetCurl($this->apiDomain.'ashx/account/account.ashx', $params);; + if ($result['code'] == 0 && $result['success']) { + $playerGamePlatform = new PlayerGamePlatform(); + $playerGamePlatform->player_id = $this->player->id; + $playerGamePlatform->platform_id = $this->platform->id; + $playerGamePlatform->player_name = $data['name']; + $playerGamePlatform->player_code = $randomUser['account']; + $playerGamePlatform->player_password = $password; + $playerGamePlatform->save(); + $this->loginId = $playerGamePlatform->player_code; + $this->password = $playerGamePlatform->player_password; + return $result; + }else{ + throw new GameException($result['msg'], 0); + } + } + + /** + * 获取玩家 + * @return array|mixed|Response + * @throws Exception + */ + public function getPlayer() + { + $time = round(microtime(true)*1000); + $params = [ + 'action' => 'getUserInfo', + 'userName' => $this->loginId, + 'time' => $time, + 'authcode' => $this->auth, + ]; + $signature = $this->createSign([$this->auth, $this->loginId, $time ,$this->appSecret]); + $params['sign'] = $signature; + $result = dogGetCurl($this->apiDomain.'ashx/account/account.ashx', $params); + if($result['success']){ + return $result; + }else{ + throw new GameException('Kiss 918 System Error,Please contact the administrator', 0); + } + } + + /** + * 玩家进入游戏 + * @param array $data + * @return array + */ + public function login(array $data = []): array + { + return ['url' => 'https://yop1.918kiss.com/', 'account' => $this->loginId, 'password' => $this->password]; + } + + /** + * 获取玩家游戏平台余额 + * @return string|null + * @throws Exception + */ + public function getBalance(): string + { + $playerInfo = $this->getPlayer(); + return $playerInfo['MoneyNum']; + } + + /** + * 玩家钱包转入游戏平台 + * @return array|mixed|null + * @throws GameException|\think\Exception + */ + public function balanceTransferOut() + { + if($this->player->wallet->money <= 0){ + return true; + } + return $this->setBalanceTransfer(PlayerWalletTransfer::TYPE_OUT, $this->player->wallet->money); + } + + /** + * 游戏平台转入玩家钱包 + * @return array|mixed|null + * @throws Exception + */ + public function balanceTransferIn() + { + $balance = $this->getBalance(); + if($balance == 0){ + // 记录玩家钱包转出转入记录 + $this->createWalletTransfer(PlayerWalletTransfer::TYPE_IN, 0, 0); + return true; + } + return $this->setBalanceTransfer(PlayerWalletTransfer::TYPE_IN, -$balance); + } + + /** + * 轉帳進出額度 + * @param $type + * @param float $amount + * @param float $reward + * @return array|mixed|null + * @throws GameException|\think\Exception + */ + protected function setBalanceTransfer($type, float $amount = 0, float $reward = 0) + { + $time = round(microtime(true)*1000); + $params = [ + 'action' => 'setServerScore', + 'orderid' => date('YmdHis').uniqid(), + 'scoreNum' => $amount, + 'userName' => $this->loginId, + 'ActionUser' => $this->loginId, + 'ActionIp' => request()->getRealIp(), + 'time' => $time, + 'authcode' => $this->auth, + ]; + $signature = $this->createSign([$this->auth, $this->loginId, $time ,$this->appSecret]); + $params['sign'] = $signature; + $result = dogGetCurl($this->apiDomain.'ashx/account/setScore.ashx', $params); + if($result['code'] != 0 || !$result['success']){ + throw new GameException($result['msg'], 0); + } + // 记录玩家钱包转出转入记录 + $this->createWalletTransfer($type, $amount, $reward, $params['orderid']); + return $result; + } + + /** + * 查询游戏纪录 + * @return array|mixed|Response + * @throws GameException|\think\Exception + */ + public function getGameRecordList(string $startTime = '', string $endTime = '', $uuid, int $page = 1, int $pageSize = 1000) + { + $time = round(microtime(true)*1000); + $params = [ + 'pageIndex' => $page, + 'pageSize' => $pageSize, + 'userName' => $this->loginId, + 'sDate' => $startTime, + 'eDate' => $endTime, + 'time' => $time, + 'authcode' => $this->auth, + ]; + $signature = $this->createSign([$this->auth, $this->loginId, $time ,$this->appSecret]); + $params['sign'] = $signature; + $result = dogGetCurl($this->apiDomain, $params); + if($result['code'] == 0 || !$result['success']){ + throw new GameException($result['msg'], 0); + } + return $result; + } + + /** + * 查询全部玩家账单 + * @return array|mixed|Response + * @throws GameException|\think\Exception + */ + public function getReportRecord(string $startTime = '', string $endTime = '') + { + $time = round(microtime(true)*1000); + $params = [ + 'userName' => $this->admin_user, + 'sDate' => $startTime, + 'eDate' => $endTime, + 'Type' => 'ServerTotalReport', + 'time' => $time, + 'authcode' => $this->auth, + ]; + $signature = $this->createSign([$this->auth, $this->admin_user, $time ,$this->appSecret]); + $params['sign'] = $signature; + $result = dogGetCurl($this->recordApi.'ashx/AgentTotalReport.ashx', $params); + if(!$result['success'] && !empty($result['results'])){ + throw new GameException($result['msg'], 0); + } + return $result['results']; + } + + /** + * 查询单个玩家单日输赢 + * @return array|mixed|Response + * @throws GameException|\think\Exception + */ + public function getAccountReport(string $startTime = '', string $endTime = '', $playerCode) + { + $time = round(microtime(true)*1000); + $params = [ + 'userName' => $playerCode, + 'sDate' => $startTime, + 'eDate' => $endTime, + 'time' => $time, + 'authcode' => $this->auth, + ]; + $signature = $this->createSign([$this->auth, $playerCode, $time ,$this->appSecret]); + $params['sign'] = $signature; + $result = dogGetCurl($this->apiDomain.'ashx/AccountReport.ashx', $params); + if($result['code'] == 0 || !$result['success']){ + throw new GameException($result['msg'], 0); + } + return $result; + } + + /** + * 查询玩家游戏记录 + * @return array + */ + public function handleOrderHistories(): array + { + try { + $list = []; + $startTime = date('Y-m-d'); + $endTime = date('Y-m-d'); + $data = $this->getReportRecord($startTime, $endTime); + if (!empty($data)) { + foreach ($data as $item) { + $list[] = [ + 'player_code' => $item['Account'], + 'platform_id' => $this->platform->id, + 'game_code' => 'Kiss918', + 'bet' => $item['press'], + 'win' => $item['win'], + 'order_no' => $item['idx'].date('Ymd'), + 'original_data' => json_encode($item,JSON_UNESCAPED_UNICODE), + 'platform_action_at' => $startTime, + 'game_type' => 1, + 'created_at' => date('Y-m-d H:i:s'), + 'updated_at' => date('Y-m-d H:i:s'), + ]; + + } + } + } catch (Exception $e) { + return []; + } + return $list; + } + +} \ No newline at end of file diff --git a/app/service/game/LionKingServiceInterface.php b/app/service/game/LionKingServiceInterface.php new file mode 100644 index 0000000..ae7bd85 --- /dev/null +++ b/app/service/game/LionKingServiceInterface.php @@ -0,0 +1,435 @@ + '/UserInfo/CreatePlayer', + 'getPlayer' => '/UserInfo/GetPlayer', + 'getGameList' => '/Game/GetGameList', + 'getSimpleGameList' => '/Game/GetSimpleGameList', + 'getLoginH5' => '/UserInfo/GetLoginH5', + 'setPlayerStatus' => '/UserInfo/SetPlayerStatus', + 'getBalance' => '/Account/GetBalance', + 'setBalanceTransfer' => '/Account/SetBalanceTransfer', + 'getGameRecordByTime' => '/Game/GetGameRecordByTime', + 'getGameRecord' => '/Game/GetGameRecord', + 'removeRecords' => '/Game/RemoveRecords', + ]; + + public $successCode = 'S100'; + + public $loginId; + + public $gameType = [ + '10' => 'Slot', + '12' => 'Casino', + '13' => 'Arcade', + '16' => 'Fishing' + ]; + + public $failCode = [ + 'S200' => '重復請求', + 'F0001' => '無效的簽名', + 'F0002' => '無效的SN', + 'F0003' => '無效的參數', + 'F0004' => '無效的貨幣', + 'F0005' => '玩家已存在', + 'F0006' => '玩家不存在', + 'F0007' => '會員不存在', + 'F0008' => '執行失敗', + 'F0009' => '無效的方法', + 'F0010' => '無效的用戶狀態', + 'F0011' => '玩家狀態無需更新', + 'F0012' => '超出數據範圍', + 'F0013' => '無匹配數據', + 'F0014' => '登入位置被禁止', + 'F0015' => '分數不足夠', + 'F0016' => '不支持禮碼', + 'F0017' => '交易流水號不得重複', + 'F0018' => '系統繁忙', + 'F0019' => '日期時間各式錯誤', + 'F0020' => '超出時間限制範圍(開始時間與結束時間之間不能大於120分鐘)', + 'F0021' => '執行取消', + 'M0001' => '系統維護', + 'M0002' => '系統錯誤', + ]; + + private $lang = [ + 'zh-CN' => 'zh_ch', + 'en' => 'en_us', + 'zh_tc' => 'zh_tc', + 'th_th' => 'th_th', + 'Ma_my' => 'Ma_my', + 'vi_nam' => 'vi_nam', + 'Fi_fi' => 'Fi_fi', + 'Kr_ko' => 'Kr_ko', + 'Hi_hi' => 'Hi_hi', + 'My_mar' => 'My_mar', + 'Br_po' => 'Br_po', + 'cam_dia' => 'cam_dia', // 柬埔寨语 + ]; + + /** + * @param Player|null $player + * @param $type + * @throws Exception + */ + public function __construct($type, Player $player = null) + { + $config = config('game_platform.' . $type); + $this->appId = $config['app_id']; + $this->apiDomain = $config['api_domain']; + $this->domain = $config['domain']; + $this->appSecret = $config['app_secret']; + $this->platform = GamePlatform::query()->where('name', $type)->first(); + if (!empty($player)) { + $this->player = $player; + $this->getLoginId(); + } + } + + /** + * @throws Exception + */ + protected function getLoginId() + { + /** @var PlayerGamePlatform $playerGamePlatform */ + $playerGamePlatform = $this->player->playerGamePlatform->where('platform_id', $this->platform->id)->first(); + if (!empty($playerGamePlatform)) { + return $this->loginId = $playerGamePlatform->player_code; + } + return $this->createPlayer([ + 'uuid' => $this->player->uuid, + 'name' => $this->player->name, + ]); + } + + /** + * 创建玩家 + * @param array $data + * @return array|mixed|Response + * @throws GameException|Exception + */ + public function createPlayer(array $data = []) + { + $params = [ + 'ID' => createOrderNo(), + 'Method' => 'CreatePlayer', + 'SN' => $this->appId, + 'PlayerCode' => $data['uuid'], + ]; + $params['Signature'] = $this->createSign($params); + $params['PlayerName'] = $data['uuid']; + $res = doCurl($this->createUrl('createPlayer'), $params); + if ($res['code'] != $this->successCode) { + throw new GameException($this->failCode[$res['code']], 0); + } + $playerGamePlatform = new PlayerGamePlatform(); + $playerGamePlatform->player_id = $this->player->id; + $playerGamePlatform->platform_id = $this->platform->id; + $playerGamePlatform->player_name = $data['name']; + $playerGamePlatform->player_code = $data['uuid']; + $playerGamePlatform->save(); + $this->loginId = $playerGamePlatform->player_code; + return $res; + } + + /** + * 创建玩家 + * @return array|mixed|Response + * @throws GameException|Exception + */ + public function getPlayer() + { + $params = [ + 'ID' => createOrderNo(), + 'Method' => 'GetPlayer', + 'SN' => $this->appId, + 'LoginId' => $this->loginId, + ]; + $params['Signature'] = $this->createSign($params); + $data = doCurl($this->createUrl('getPlayer'), $params); + if ($data['code'] != $this->successCode) { + throw new GameException($this->failCode[$data['code']], 0); + } + + return $data; + } + + /** + * 获取游戏摘要MD5 (id+method+sn+APlSecretKey) + * @return array|mixed|Response + * @throws GameException|\think\Exception + */ + public function getSimpleGameList() + { + $params = [ + 'ID' => createOrderNo(), + 'Method' => 'GetSimpleGameList', + 'SN' => $this->appId, + ]; + $params['Signature'] = $this->createSign($params); + $data = doCurl($this->createUrl('getSimpleGameList'), $params); + if ($data['code'] != $this->successCode) { + throw new GameException($this->failCode[$data['code']], 0); + } + if (!empty($data['data']['games'])) { + foreach ($data['data']['games'] as $game) { + Game::query()->updateOrCreate( + [ + 'platform_id' => $this->platform->id, + 'game_code' => $game['gameCode'], + ], + [ + 'platform_game_type' => $game['type'], + ] + ); + } + } + return $data; + } + + /** + * 获取游戏摘要MD5 (id+method+sn+APlSecretKey) + * @param array $data + * @return string + * @throws GameException|\think\Exception + */ + public function login(array $data = []): string + { + $params = [ + 'ID' => createOrderNo(), + 'Method' => 'GetLoginH5', + 'SN' => $this->appId, + 'LoginId' => $this->loginId, + ]; + $params['Signature'] = $this->createSign($params); + $res = doCurl($this->createUrl('getLoginH5'), $params); + if ($res['code'] != $this->successCode) { + Log::error($this->failCode[$res['code']], ['res' => $res]); + throw new GameException($this->failCode[$res['code']], 0); + } + $responseH5 = [ + 'Language' => $this->lang[$data['lang']] ?? 'ch', + "GameId" => $data['gameCode'], + 'CallbackAddress' => $data['callBackUrl'] ?? '', + "AppType" => $data['appType'] ?? 1, + "DeviceType" => 1, + ]; + $jsonString = json_encode($responseH5); + $parametersValue = base64_encode($jsonString); + $link = $this->domain . '/linkgame' . ($res['data']['loginUrl'] ?? '') . '&' . $parametersValue; + if (!empty($data['gameCode'])) { + $link .= '&' . $data['gameCode']; + } + return $link; + } + + /** + * 設置登入玩家狀態。當玩家處於禁用狀態,該玩家無法在平台進行任何操作,如果玩家在遊戲進行中該玩家將會自動退出遊戲。 + * 簽名密鑰方式 Md5(Id+Method+SN+LoginId+APISecretKey) + * @return array|mixed|Response + * @throws GameException|\think\Exception + */ + public function setPlayerStatus($status) + { + $params = [ + 'ID' => createOrderNo(), + 'Method' => 'GetSimpleGameList', + 'SN' => $this->appId, + 'LoginId' => $this->loginId, + ]; + $params['Signature'] = $this->createSign($params); + $params['Status'] = $status; + $data = doCurl($this->createUrl('setPlayerStatus'), $params); + if ($data['code'] != $this->successCode) { + throw new GameException($this->failCode[$data['code']], 0); + } + + return $data; + } + + /** + * 獲取玩家餘額信息 + * 簽名密鑰方式 MD5 (Id+Method+SN+LoginId+APISecretKey) + * @return array|mixed|Response + * @throws GameException|\think\Exception + */ + public function getBalance() + { + $params = [ + 'ID' => createOrderNo(), + 'Method' => 'GetBalance', + 'SN' => $this->appId, + 'LoginId' => $this->loginId, + ]; + $params['Signature'] = $this->createSign($params); + $data = doCurl($this->createUrl('getBalance'), $params); + if ($data['code'] != $this->successCode) { + throw new GameException($this->failCode[$data['code']], 0); + } + + return $data; + } + + /** + * 玩家钱包转入游戏平台 + * @return array|mixed|null + * @throws GameException|\think\Exception + */ + public function balanceTransferOut() + { + return $this->setBalanceTransfer(PlayerWalletTransfer::TYPE_OUT, $this->player->wallet->money); + } + + /** + * 玩家钱包转入游戏平台 + * @return array|mixed|null + * @throws GameException|\think\Exception + */ + public function balanceTransferIn() + { + $balance = $this->getBalance(); + return $this->setBalanceTransfer(PlayerWalletTransfer::TYPE_IN, !empty($balance['data']['result']) ? -$balance['data']['result'] : 0, !empty($balance['data']['reward']) ? -$balance['data']['reward'] : 0); + } + + /** + * 轉帳進出額度 + * 簽名密鑰方式 MD5 (Id+Method+SN+LoginId+APISecretKey) + * @param $type + * @param float $amount + * @param float $reward + * @return array|mixed|null + * @throws GameException|\think\Exception + */ + protected function setBalanceTransfer($type, float $amount = 0, float $reward = 0) + { + if ($amount == 0 && $reward == 0) { + throw new GameException('转出/入金额错误', 0); + } + $params = [ + 'ID' => createOrderNo(), + 'Method' => 'SetBalanceTransfer', + 'SN' => $this->appId, + 'LoginId' => $this->loginId, + ]; + $params['Signature'] = $this->createSign($params); + $params['Amount'] = $amount; + $params['Reward'] = $reward; + $res = doCurl($this->createUrl('setBalanceTransfer'), $params); + if ($res['code'] != $this->successCode) { + throw new GameException($this->failCode[$res['code']], 0); + } + // 记录玩家钱包转出转入记录 + $this->createWalletTransfer($type, $amount, $reward, $res['data']['refId'] ?? ''); + + return $res; + } + + /** + * 依據時間獲取遊戲紀錄 + * MD5 (Id+Method+SN+StartTime+EndTime+APISecretKey) + * @param int $pageIndex + * @param string $startTime + * @param string $endTime + * @return array|mixed|null + * @throws GameException|\think\Exception + */ + public function getGameRecordByTime(int $pageIndex = 1, string $startTime = '', string $endTime = '') + { + $params = [ + 'ID' => createOrderNo(), + 'Method' => 'GetGameRecordByTime', + 'SN' => $this->appId, + 'StartTime' => $startTime, + 'EndTime' => $endTime, + ]; + $pageSize = 500; + $params['Signature'] = $this->createSign($params); + $params['PageSize'] = $pageSize; + $params['PageIndex'] = $pageIndex; + $res = doCurl($this->createUrl('getGameRecordByTime'), $params); + if ($res['code'] != $this->successCode) { + throw new GameException($this->failCode[$res['code']], 0); + } + + return $res; + } + + /** + * 獲取玩家遊戲歷史紀錄 + * MD5 (Id+Method+SN+APISecretKey) + * @return array|mixed|null + * @throws GameException|\think\Exception + */ + public function getGameRecord() + { + $params = [ + 'ID' => createOrderNo(), + 'Method' => 'GetGameRecord', + 'SN' => $this->appId, + ]; + $params['Signature'] = $this->createSign($params); + $res = doCurl($this->createUrl('getGameRecord'), $params); + if ($res['code'] != $this->successCode) { + throw new GameException($this->failCode[$res['code']], 0); + } + + return $res; + } + + /** + * 刪除遊戲紀錄 + * MD5 (Id+Method+SN+IdsToBeRemoved+APISecretKey) + * @return array|mixed|null + * @throws GameException|\think\Exception + */ + public function removeRecords($idsToBeRemoved) + { + $params = [ + 'ID' => createOrderNo(), + 'Method' => 'RemoveRecords', + 'SN' => $this->appId, + 'IdsToBeRemoved' => implode(',', $idsToBeRemoved), + ]; + $params['Signature'] = $this->createSign($params); + $res = doCurl($this->createUrl('removeRecords'), $params); + if ($res['code'] != $this->successCode) { + throw new GameException($this->failCode[$res['code']], 0); + } + + return $res; + } + + public function createSign($params): string + { + return md5(implode('', $params) . $this->appSecret); + } + + /** + * 生成请求url + * @param $method + * @return string + */ + public function createUrl($method): string + { + return $this->apiDomain . $this->path[$method]; + } +} \ No newline at end of file diff --git a/app/service/game/Lucky365ServiceInterface.php b/app/service/game/Lucky365ServiceInterface.php new file mode 100644 index 0000000..81c5bc3 --- /dev/null +++ b/app/service/game/Lucky365ServiceInterface.php @@ -0,0 +1,444 @@ + '/UserInfo/CreatePlayer', + 'getPlayer' => '/UserInfo/GetPlayer', + 'getGameList' => '/Game/GetGameList', + 'getSimpleGameList' => '/Game/GetSimpleGameList', + 'getLoginH5' => '/UserInfo/GetLoginH5', + 'setPlayerStatus' => '/UserInfo/SetPlayerStatus', + 'getBalance' => '/Account/GetBalance', + 'setBalanceTransfer' => '/Account/SetBalanceTransfer', + 'getGameRecordByTime' => '/Game/GetGameRecordByTime', + 'getGameRecord' => '/Game/GetGameRecord', + 'removeRecords' => '/Game/RemoveRecords', + ]; + + public $successCode = 'S100'; + + public $loginId; + + public $gameType = [ + '10' => 'Slot', + '12' => 'Casino', + '13' => 'Arcade', + '16' => 'Fishing' + ]; + + public $localGameType = [ + '10' => '1', + '12' => '2', + '13' => '3', + '16' => '4', + ]; + + public $failCode = [ + 'S200' => '重復請求', + 'F0001' => '無效的簽名', + 'F0002' => '無效的SN', + 'F0003' => '無效的參數', + 'F0004' => '無效的貨幣', + 'F0005' => '玩家已存在', + 'F0006' => '玩家不存在', + 'F0007' => '會員不存在', + 'F0008' => '執行失敗', + 'F0009' => '無效的方法', + 'F0010' => '無效的用戶狀態', + 'F0011' => '玩家狀態無需更新', + 'F0012' => '超出數據範圍', + 'F0013' => '無匹配數據', + 'F0014' => '登入位置被禁止', + 'F0015' => '分數不足夠', + 'F0016' => '不支持禮碼', + 'F0017' => '交易流水號不得重複', + 'F0018' => '系統繁忙', + 'F0019' => '日期時間各式錯誤', + 'F0020' => '超出時間限制範圍(開始時間與結束時間之間不能大於120分鐘)', + 'F0021' => '執行取消', + 'M0001' => '系統維護', + 'M0002' => '系統錯誤', + ]; + + private $lang = [ + 'zh-CN' => 'zh_ch', + 'en' => 'en_us', + 'zh_tc' => 'zh_tc', + 'th_th' => 'th_th', + 'Ma_my' => 'Ma_my', + 'vi_nam' => 'vi_nam', + 'Fi_fi' => 'Fi_fi', + 'Kr_ko' => 'Kr_ko', + 'Hi_hi' => 'Hi_hi', + 'My_mar' => 'My_mar', + 'Br_po' => 'Br_po', + 'cam_dia' => 'cam_dia', // 柬埔寨语 + ]; + + /** + * @param Player|null $player + * @param $type + * @throws Exception + */ + public function __construct($type, Player $player = null) + { + $config = config('game_platform.' . $type); + $this->appId = $config['app_id']; + $this->apiDomain = $config['api_domain']; + $this->domain = $config['domain']; + $this->appSecret = $config['app_secret']; + $this->platform = GamePlatform::query()->where('name', $type)->first(); + if (!empty($player)) { + $this->player = $player; + $this->getLoginId(); + } + } + + /** + * @throws Exception + */ + protected function getLoginId() + { + /** @var PlayerGamePlatform $playerGamePlatform */ + $playerGamePlatform = PlayerGamePlatform::query()->where('platform_id', $this->platform->id)->where('player_id',$this->player->id)->first(); + if (!empty($playerGamePlatform)) { + return $this->loginId = $playerGamePlatform->player_code; + } + return $this->createPlayer([ + 'uuid' => $this->player->uuid, + 'name' => $this->player->name, + ]); + } + + /** + * 创建玩家 + * @param array $data + * @return array|mixed|Response + * @throws GameException|Exception + */ + public function createPlayer(array $data = []) + { + $params = [ + 'ID' => createOrderNo(), + 'Method' => 'CreatePlayer', + 'SN' => $this->appId, + 'PlayerCode' => $data['uuid'], + ]; + $params['Signature'] = $this->createSign($params); + $params['PlayerName'] = $data['uuid']; + $res = doCurl($this->createUrl('createPlayer'), $params); + + if ($res['code'] != $this->successCode) { + throw new GameException($this->failCode[$res['code']], 0); + } + $playerGamePlatform = new PlayerGamePlatform(); + $playerGamePlatform->player_id = $this->player->id; + $playerGamePlatform->platform_id = $this->platform->id; + $playerGamePlatform->player_name = $data['name']; + $playerGamePlatform->player_code = $data['uuid']; + $playerGamePlatform->save(); + $this->loginId = $playerGamePlatform->player_code; + return $res; + } + + /** + * 创建玩家 + * @return array|mixed|Response + * @throws GameException|Exception + */ + public function getPlayer() + { + $params = [ + 'ID' => createOrderNo(), + 'Method' => 'GetPlayer', + 'SN' => $this->appId, + 'LoginId' => $this->loginId, + ]; + $params['Signature'] = $this->createSign($params); + $data = doCurl($this->createUrl('getPlayer'), $params); + if ($data['code'] != $this->successCode) { + throw new GameException($this->failCode[$data['code']], 0); + } + + return $data; + } + + /** + * 获取游戏摘要MD5 (id+method+sn+APlSecretKey) + * @return array|mixed|Response + * @throws GameException|\think\Exception + */ + public function getSimpleGameList() + { + $params = [ + 'ID' => createOrderNo(), + 'Method' => 'GetSimpleGameList', + 'SN' => $this->appId, + ]; + $params['Signature'] = $this->createSign($params); + $data = doCurl($this->createUrl('getSimpleGameList'), $params); + if ($data['code'] != $this->successCode) { + throw new GameException($this->failCode[$data['code']], 0); + } + if (!empty($data['data']['games'])) { + foreach ($data['data']['games'] as $game) { + Game::query()->updateOrCreate( + [ + 'platform_id' => $this->platform->id, + 'game_code' => $game['gameCode'], + ], + [ + 'platform_game_type' => $game['type'], + 'game_type' => $this->localGameType[$game['type']], + 'name' => $game['gameName'], + ] + ); + } + } + return $data; + } + + /** + * 获取游戏摘要MD5 (id+method+sn+APlSecretKey) + * @param array $data + * @return string + * @throws GameException|\think\Exception + */ + public function login(array $data = []): string + { + $params = [ + 'ID' => createOrderNo(), + 'Method' => 'GetLoginH5', + 'SN' => $this->appId, + 'LoginId' => $this->loginId, + ]; + $params['Signature'] = $this->createSign($params); + $res = doCurl($this->createUrl('getLoginH5'), $params); + if ($res['code'] != $this->successCode) { + Log::error($this->failCode[$res['code']], ['res' => $res]); + throw new GameException($this->failCode[$res['code']], 0); + } + $responseH5 = [ + 'Language' => $this->lang[$data['lang']] ?? 'ch', + "GameId" => $data['gameCode'], + 'CallbackAddress' => $data['callBackUrl'] ?? '', + "AppType" => $data['appType'] ?? 1, + "DeviceType" => 1, + ]; + $jsonString = json_encode($responseH5); + $parametersValue = base64_encode($jsonString); + + if (!empty($data['gameCode'])) { + $link = $this->domain .'/linkgame'. ($res['data']['loginUrl'] ?? '') . '&' . $parametersValue . '&' . $data['gameCode']; + }else{ + $link = $this->domain . ($res['data']['loginUrl'] ?? '') . '&' . $parametersValue; + } + return $link; + } + + /** + * 設置登入玩家狀態。當玩家處於禁用狀態,該玩家無法在平台進行任何操作,如果玩家在遊戲進行中該玩家將會自動退出遊戲。 + * 簽名密鑰方式 Md5(Id+Method+SN+LoginId+APISecretKey) + * @return array|mixed|Response + * @throws GameException|\think\Exception + */ + public function setPlayerStatus($status) + { + $params = [ + 'ID' => createOrderNo(), + 'Method' => 'GetSimpleGameList', + 'SN' => $this->appId, + 'LoginId' => $this->loginId, + ]; + $params['Signature'] = $this->createSign($params); + $params['Status'] = $status; + $data = doCurl($this->createUrl('setPlayerStatus'), $params); + if ($data['code'] != $this->successCode) { + throw new GameException($this->failCode[$data['code']], 0); + } + + return $data; + } + + /** + * 獲取玩家餘額信息 + * 簽名密鑰方式 MD5 (Id+Method+SN+LoginId+APISecretKey) + * @return array|mixed|Response + * @throws GameException|\think\Exception + */ + public function getBalance() + { + $params = [ + 'ID' => createOrderNo(), + 'Method' => 'GetBalance', + 'SN' => $this->appId, + 'LoginId' => $this->loginId, + ]; + $params['Signature'] = $this->createSign($params); + $data = doCurl($this->createUrl('getBalance'), $params); + if ($data['code'] != $this->successCode) { + throw new GameException('Lucky365 System Error,Please contact the administrator', 0); + } + + return $data; + } + + /** + * 玩家钱包转入游戏平台 + * @return array|mixed|null + * @throws GameException|\think\Exception + */ + public function balanceTransferOut() + { + return $this->setBalanceTransfer(PlayerWalletTransfer::TYPE_OUT, $this->player->wallet->money); + } + + /** + * 玩家钱包转入游戏平台 + * @return array|mixed|null + * @throws GameException|\think\Exception + */ + public function balanceTransferIn() + { + $balance = $this->getBalance(); + return $this->setBalanceTransfer(PlayerWalletTransfer::TYPE_IN, !empty($balance['data']['result']) ? -$balance['data']['result'] : 0, !empty($balance['data']['reward']) ? -$balance['data']['reward'] : 0); + } + + /** + * 轉帳進出額度 + * 簽名密鑰方式 MD5 (Id+Method+SN+LoginId+APISecretKey) + * @param $type + * @param float $amount + * @param float $reward + * @return array|mixed|null + * @throws GameException|\think\Exception + */ + protected function setBalanceTransfer($type, float $amount = 0, float $reward = 0) + { + $params = [ + 'ID' => createOrderNo(), + 'Method' => 'SetBalanceTransfer', + 'SN' => $this->appId, + 'LoginId' => $this->loginId, + ]; + $params['Signature'] = $this->createSign($params); + $params['Amount'] = $amount; + $params['Reward'] = $reward; + $res = doCurl($this->createUrl('setBalanceTransfer'), $params); + if ($res['code'] != $this->successCode) { + throw new GameException($this->failCode[$res['code']], 0); + } + // 记录玩家钱包转出转入记录 + $this->createWalletTransfer($type, $amount, $reward, $res['data']['refId'] ?? ''); + + return $res; + } + + /** + * 依據時間獲取遊戲紀錄 + * MD5 (Id+Method+SN+StartTime+EndTime+APISecretKey) + * @param int $pageIndex + * @param string $startTime + * @param string $endTime + * @return array|mixed|null + * @throws GameException|\think\Exception + */ + public function getGameRecordByTime(int $pageIndex = 1, string $startTime = '', string $endTime = '') + { + $params = [ + 'ID' => createOrderNo(), + 'Method' => 'GetGameRecordByTime', + 'SN' => $this->appId, + 'StartTime' => $startTime, + 'EndTime' => $endTime, + ]; + $pageSize = 500; + $params['Signature'] = $this->createSign($params); + $params['PageSize'] = $pageSize; + $params['PageIndex'] = $pageIndex; + $res = doCurl($this->createUrl('getGameRecordByTime'), $params); + if ($res['code'] != $this->successCode) { + throw new GameException($this->failCode[$res['code']], 0); + } + + return $res; + } + + /** + * 獲取玩家遊戲歷史紀錄 + * MD5 (Id+Method+SN+APISecretKey) + * @return array|mixed|null + * @throws GameException|\think\Exception + */ + public function getGameRecord() + { + $params = [ + 'ID' => createOrderNo(), + 'Method' => 'GetGameRecord', + 'SN' => $this->appId, + ]; + $params['Signature'] = $this->createSign($params); + $res = doCurl($this->createUrl('getGameRecord'), $params); + if ($res['code'] != $this->successCode) { + throw new GameException($this->failCode[$res['code']], 0); + } + + return $res; + } + + /** + * 刪除遊戲紀錄 + * MD5 (Id+Method+SN+IdsToBeRemoved+APISecretKey) + * @return array|mixed|null + * @throws GameException|\think\Exception + */ + public function removeRecords($idsToBeRemoved) + { + $params = [ + 'ID' => createOrderNo(), + 'Method' => 'RemoveRecords', + 'SN' => $this->appId, + 'IdsToBeRemoved' => implode(',', $idsToBeRemoved), + ]; + $params['Signature'] = $this->createSign($params); + $res = doCurl($this->createUrl('removeRecords'), $params); + if ($res['code'] != $this->successCode) { + throw new GameException($this->failCode[$res['code']], 0); + } + + return $res; + } + + public function createSign($params): string + { + return md5(implode('', $params) . $this->appSecret); + } + + /** + * 生成请求url + * @param $method + * @return string + */ + public function createUrl($method): string + { + return $this->apiDomain . $this->path[$method]; + } +} \ No newline at end of file diff --git a/app/service/game/MarioClubServiceInterface.php b/app/service/game/MarioClubServiceInterface.php new file mode 100644 index 0000000..6fd4f9b --- /dev/null +++ b/app/service/game/MarioClubServiceInterface.php @@ -0,0 +1,411 @@ + 'Casino', + '5' => 'Fishing', + '8' => 'Bingo', + '1' => 'Slot', + ]; + + public $localGameType = [ + 'FISHING' => '4',//捕鱼 + 'SLOT' => '1',//斯洛 + '1' => '1', + '4' => '4', + ]; + + public $failCode = [ + 'S200' => '重復請求', + 'F0001' => '無效的簽名', + 'F0002' => '無效的SN', + 'F0003' => '無效的參數', + 'F0004' => '無效的貨幣', + 'F0005' => '玩家已存在', + 'F0006' => '玩家不存在', + 'F0007' => '會員不存在', + 'F0008' => '執行失敗', + 'F0009' => '無效的方法', + 'F0010' => '無效的用戶狀態', + 'F0011' => '玩家狀態無需更新', + 'F0012' => '超出數據範圍', + 'F0013' => '無匹配數據', + 'F0014' => '登入位置被禁止', + 'F0015' => '分數不足夠', + 'F0016' => '不支持禮碼', + 'F0017' => '交易流水號不得重複', + 'F0018' => '系統繁忙', + 'F0019' => '日期時間各式錯誤', + 'F0020' => '超出時間限制範圍(開始時間與結束時間之間不能大於120分鐘)', + 'F0021' => '執行取消', + 'M0001' => '系統維護', + 'M0002' => '系統錯誤', + ]; + + /** + * @param Player|null $player + * @param $type + * @throws Exception + */ + public function __construct($type, Player $player = null) + { + $config = config('game_platform.' . $type); + $this->appId = $config['app_id']; + $this->apiDomain = $config['api_domain']; + $this->appSecret = $config['app_secret']; + $this->platform = GamePlatform::query()->where('name', $type)->first(); + if (!empty($player)) { + $this->player = $player; + $this->getLoginId(); + } + } + + /** + * 生成签名 + * @param $time + * @return string + */ + public function createSign($time): string + { + return md5($this->appId.$time.$this->appSecret); + } + + /** + * 更新游戏列表 + * @return array|mixed|Response + * @throws GameException|\think\Exception + */ + public function getSimpleGameList() + { + $time = time(); + $params = [ + 'api_id' => $this->appId, + 'timestamp' => $time, + ]; + $params['sign'] = $this->createSign($time); + $result = doFormCurl($this->apiDomain.'/getGames',$params); + if ($result['code'] == 0 && !empty($result['gameList'])) { + foreach ($result['gameList'] as $game) { + Game::query()->updateOrCreate( + [ + 'platform_id' => $this->platform->id, + 'game_code' => $game['gameCode'], + ], + [ + 'platform_game_type' => $game['gameType'], + 'game_type' => $this->localGameType[$game['gameType']] ?? '', + 'name' => $game['gameName'], + 'game_image' => $game['gameIconUrl'] + ] + ); + } + }else{ + throw new GameException($result['Message'], 0); + } + return $result; + } + + /** + * 获取游戏列表 + * @return array|mixed|Response + * @throws GameException|\think\Exception + */ + public function getGamesList() + { + $time = time(); + $params = [ + 'api_id' => $this->appId, + 'timestamp' => $time, + ]; + $params['sign'] = $this->createSign($time); + $result = doFormCurl($this->apiDomain.'/getGames',$params); + if ($result['code'] == 0 && !empty($result['gameList'])) { + return $result; + }else{ + throw new GameException($result['Message'], 0); + } + } + + /** + * 获取玩家ID + * @throws Exception + */ + protected function getLoginId() + { + /** @var PlayerGamePlatform $playerGamePlatform */ + $playerGamePlatform = PlayerGamePlatform::query()->where('platform_id', $this->platform->id)->where('player_id',$this->player->id)->first(); + if (!empty($playerGamePlatform)) { + return $this->loginId = $playerGamePlatform->player_code; + } + return $this->createPlayer([ + 'uuid' => $this->player->uuid, + 'name' => $this->player->name, + ]); + } + + /** + * 创建玩家 + * @param array $data + * @return array|mixed|Response + * @throws GameException|Exception + */ + public function createPlayer(array $data = []) + { + $time = time(); + $params = [ + 'api_id' => $this->appId, + 'timestamp' => $time, + 'user_id' => $data['uuid'], + ]; + $params['sign'] = $this->createSign($time); + $result = doFormCurl($this->apiDomain.'/api/acc/created',$params); + + if ($result['code'] != 0) { + Log::error($result['msg'], ['res' => $result]); + throw new GameException($result['msg'], 0); + } + $playerGamePlatform = new PlayerGamePlatform(); + $playerGamePlatform->player_id = $this->player->id; + $playerGamePlatform->platform_id = $this->platform->id; + $playerGamePlatform->player_name = $data['name']; + $playerGamePlatform->player_code = $data['uuid']; + $playerGamePlatform->save(); + $this->loginId = $playerGamePlatform->player_code; + return $result; + } + + /** + * 获取玩家 + * @return array|mixed|Response + * @throws GameException|Exception + */ + public function getPlayer() + { + $time = time(); + $params = [ + 'api_id' => $this->appId, + 'timestamp' => $time, + 'user_id' => $this->loginId, + 'language' => 'en', + ]; + $params['sign'] = $this->createSign($time); + $result = doFormCurl($this->apiDomain.'/api/acc/gameLogIn',$params); + if ($result['code'] != 0) { + throw new GameException($result['msg'], 0); + } + return $result; + } + + /** + * 玩家进入游戏 + * @param array $data + * @return string + * @throws GameException|\think\Exception + */ + public function login(array $data = []): string + { + $time = time(); + $params = [ + 'api_id' => $this->appId, + 'timestamp' => $time, + 'user_id' => $this->loginId, + 'game_code' => $data['gameCode'], + 'language' => 'en', + ]; + $params['sign'] = $this->createSign($time); + $result = doFormCurl($this->apiDomain.'/api/acc/gameLogIn',$params); + if ($result['code'] == 0 && !empty($result['gameUrl'])) { + $link = $result['gameUrl']; + }else{ + throw new GameException($result['msg'], 0); + } + return $link; + } + + /** + * 获取玩家游戏平台余额 + * @return array|mixed|Response + * @throws GameException|\think\Exception + */ + public function getBalance() + { + $time = time(); + $params = [ + 'api_id' => $this->appId, + 'timestamp' => $time, + 'user_id' => $this->loginId, + ]; + $params['sign'] = $this->createSign($time); + $result = doFormCurl($this->apiDomain.'/api/acc/getBalance',$params); + if ($result['code'] != 0) { + throw new GameException('MarioClub System Error,Please contact the administrator', 0); + } + return $result['balance']; + } + + /** + * 玩家钱包转入游戏平台 + * @return array|mixed|null + * @throws GameException|\think\Exception + */ + public function balanceTransferOut() + { + return $this->setBalanceTransfer(PlayerWalletTransfer::TYPE_OUT, $this->player->wallet->money); + } + + /** + * 游戏平台转入玩家钱包 + * @return array|mixed|null + * @throws GameException|\think\Exception + */ + public function balanceTransferIn() + { + $balance = $this->getBalance(); + if($balance == 0){ + // 记录玩家钱包转出转入记录 + $this->createWalletTransfer(PlayerWalletTransfer::TYPE_IN, 0, 0); + return true; + } + return $this->setBalanceTransfer(PlayerWalletTransfer::TYPE_IN, $balance); + } + + /** + * 轉帳進出額度 + * @param $type + * @param float $amount + * @param float $reward + * @return array|mixed|null + * @throws GameException|\think\Exception + */ + protected function setBalanceTransfer($type, float $amount = 0, float $reward = 0) + { + if ($type == 1) { + $action = 'deposit'; + } else { + $action = 'withdraw'; + } + $time = time(); + $params = [ + 'api_id' => $this->appId, + 'timestamp' => $time, + 'user_id' => $this->loginId, + 'amount' => $amount, + 'action' => $action, + ]; + $params['sign'] = $this->createSign($time); + $result = doFormCurl($this->apiDomain.'/api/acc/updateBalance',$params); + if ($result['code'] != 0) { + throw new GameException($result['msg'], 0); + } + // 记录玩家钱包转出转入记录 + $this->createWalletTransfer($type, $amount, $reward, $result['transId'] ?? ''); + return $result; + } + + /** + * 查询额度转移纪录 + * @return array|mixed|Response + * @throws GameException|\think\Exception + */ + public function getTransferList(string $startTime = '', string $endTime = '', int $page = 1, int $pageSize = 10) + { + $time = time(); + $params = [ + 'api_id' => $this->appId, + 'timestamp' => $time, + 'user_id' => $this->loginId, + 'date_from' => date('d/m/Y', strtotime($startTime)), + 'date_to' => date('d/m/Y', strtotime($endTime)), + ]; + $params['sign'] = $this->createSign($time); + $result = doFormCurl($this->apiDomain.'/api/acc/getTransactionLog',$params); + if ($result['code'] != 0) { + throw new GameException($result['msg'], 0); + } + return $result['walletLogDTO']; + } + + /** + * 查询游戏纪录 + * @param string $startTime + * @param string $endTime + * @return array + * @throws GameException + * @throws \think\Exception + */ + public function getGameRecordList(string $startTime = '', string $endTime = ''): array + { + $time = time(); + $params = [ + 'api_id' => $this->appId, + 'timestamp' => $time, + 'date_from' => $startTime, + 'date_to' => $endTime, + ]; + $params['sign'] = $this->createSign($time); + $result = doFormCurl($this->apiDomain.'/api/acc/getGameLog',$params); + if ($result['code'] != 0) { + throw new GameException($result['msg'], 0); + } + return $result['userGameLogDTO']; + } + + /** + * 查询玩家游戏记录 + * @return array + */ + public function handleOrderHistories(): array + { + try { + $list = []; + $startTime = date('d/m/Y H:i:s', strtotime('-3 minutes')); + $endTime = date('d/m/Y H:i:s', strtotime('-2 minutes')); + $data = $this->getGameRecordList($startTime, $endTime); + if (!empty($data)) { + foreach ($data as $item) { + $list[] = [ + 'uuid' => $item['loginId'], + 'platform_id' => $this->platform->id, + 'game_code' => $item['gameCode'], + 'bet' => $item['betAmount'], + 'win' => bcadd($item['betAmount'], $item['winAmount'], 2), + 'order_no' => $item['logId'], + 'original_data' => json_encode($item,JSON_UNESCAPED_UNICODE), + 'platform_action_at' => date('Y-m-d H:i:s', $item['createdDate']/1000), + 'game_type' => $item['gameTypeId'], + 'created_at' => date('Y-m-d H:i:s'), + 'updated_at' => date('Y-m-d H:i:s'), + ]; + + } + } + } catch (Exception $e) { + return []; + } + + return $list; + } + +} \ No newline at end of file diff --git a/app/service/game/MeGa888ServiceInterface.php b/app/service/game/MeGa888ServiceInterface.php new file mode 100644 index 0000000..e2c4d0b --- /dev/null +++ b/app/service/game/MeGa888ServiceInterface.php @@ -0,0 +1,472 @@ + 'Casino', + '5' => 'Fishing', + '8' => 'Bingo', + '1' => 'Slot', + ]; + + public $localGameType = [ + '2' => '2',//赌场 + '5' => '4',//捕鱼 + '8' => '8',//宾果 + '1' => '1',//斯洛 + ]; + + public $failCode = [ + 'S200' => '重復請求', + 'F0001' => '無效的簽名', + 'F0002' => '無效的SN', + 'F0003' => '無效的參數', + 'F0004' => '無效的貨幣', + 'F0005' => '玩家已存在', + 'F0006' => '玩家不存在', + 'F0007' => '會員不存在', + 'F0008' => '執行失敗', + 'F0009' => '無效的方法', + 'F0010' => '無效的用戶狀態', + 'F0011' => '玩家狀態無需更新', + 'F0012' => '超出數據範圍', + 'F0013' => '無匹配數據', + 'F0014' => '登入位置被禁止', + 'F0015' => '分數不足夠', + 'F0016' => '不支持禮碼', + 'F0017' => '交易流水號不得重複', + 'F0018' => '系統繁忙', + 'F0019' => '日期時間各式錯誤', + 'F0020' => '超出時間限制範圍(開始時間與結束時間之間不能大於120分鐘)', + 'F0021' => '執行取消', + 'M0001' => '系統維護', + 'M0002' => '系統錯誤', + ]; + + /** + * @param Player|null $player + * @param $type + * @throws Exception + */ + public function __construct($type, Player $player = null) + { + $config = config('game_platform.' . $type); + $this->appId = $config['app_id']; + $this->apiDomain = $config['api_domain']; + $this->appSecret = $config['app_secret']; + $this->sn = $config['sn']; + $this->platform = GamePlatform::query()->where('name', $type)->first(); + if (!empty($player)) { + $this->player = $player; + $this->getLoginId(); + } + } + + /** + * 生成请求url + * @return string + */ + public function createUrl(): string + { + return $this->apiDomain; + } + + //生成签名 + public function createSign($params): string + { + $str = ''; + foreach ($params as $v) { + $str .= $v; + } + return md5($str); + } + + /** + * 生成请求数据 + * @param $postData + * @param $method + * @return array + */ + function buildParams($postData, $method): array + { + return array( + "jsonrpc" => "2.0", + "method" => $method, + "params" => $postData, + "id" => $this->player->uuid ?? uniqid() + ); + } + + /** + * 获取下载地址 + * @throws GameException|\think\Exception + */ + public function getDownload() + { + $params = [ + 'random' => $this->player->uuid ?? uniqid(), + 'sn' => $this->sn, + 'secretCode' => $this->appSecret, + ]; + $params['digest'] = $this->createSign($params); + $params['agentLoginId'] = $this->appId; + $postData = $this->buildParams($params, 'open.mega.app.url.download'); + $result = doCurl($this->apiDomain,$postData); + if(!empty($result['result'])){ + return $result['result']; + }else{ + throw new GameException($result['error']['message'], 0); + } + } + + /** + * 更新游戏列表 + * @return false + */ + public function getSimpleGameList(): bool + { + return false; + } + + /** + * 获取玩家ID + * @throws Exception + */ + protected function getLoginId() + { + /** @var PlayerGamePlatform $playerGamePlatform */ + $playerGamePlatform = PlayerGamePlatform::query()->where('platform_id', $this->platform->id)->where('player_id',$this->player->id)->first(); + if (!empty($playerGamePlatform)) { + $this->password = $playerGamePlatform->player_password; + return $this->loginId = $playerGamePlatform->player_code; + } + return $this->createPlayer([ + 'uuid' => $this->player->uuid, + 'name' => $this->player->name, + ]); + } + + /** + * 创建玩家 + * @param array $data + * @return array|mixed|Response + * @throws GameException|Exception + */ + public function createPlayer(array $data = []) + { + $params = [ + 'random' => $data['uuid'] ?? uniqid(), + 'sn' => $this->sn, + 'secretCode' => $this->appSecret, + ]; + $params['digest'] = $this->createSign($params); + $params['agentLoginId'] = $this->appId; + $params['nickname'] = $data['name']; + $postData = $this->buildParams($params, 'open.mega.user.create'); + $result = doCurl($this->apiDomain,$postData); + if (!empty($result['result']) && empty($result['error'])) { + $playerGamePlatform = new PlayerGamePlatform(); + $playerGamePlatform->player_id = $this->player->id; + $playerGamePlatform->platform_id = $this->platform->id; + $playerGamePlatform->player_name = $data['name']; + $playerGamePlatform->player_code = $result['result']['loginId']; + $playerGamePlatform->player_password = uniqid(); + $playerGamePlatform->save(); + $this->loginId = $playerGamePlatform->player_code; + $this->password = $playerGamePlatform->player_password; + return $result; + }else{ + throw new GameException($result['error']['message'], 0); + } + } + + /** + * 获取玩家信息 + * @return array|mixed|Response + * @throws GameException|Exception + */ + public function getPlayer() + { + $params = [ + 'random' => $this->player->uuid ?? uniqid(), + 'sn' => $this->sn, + 'loginId' => $this->loginId, + 'secretCode' => $this->appSecret, + ]; + $params['digest'] = $this->createSign($params); + $postData = $this->buildParams($params, 'open.mega.user.get'); + $result = doCurl($this->apiDomain,$postData); + if (!empty($result['result']) && empty($result['error'])) { + return $result; + }else{ + throw new GameException($result['error']['message'], 0); + } + } + + /** + * 玩家进入游戏 + * @param array $data + * @return array + * @throws GameException + * @throws \think\Exception + */ + public function login(array $data = []): array + { + return ['url' => $this->getDownload(), 'account' => $this->loginId, 'password' => $this->password]; + } + + /** + * 获取玩家游戏平台余额 + * @throws GameException|\think\Exception + */ + public function getBalance() + { + $params = [ + 'random' => $this->player->uuid ?? uniqid(), + 'sn' => $this->sn, + 'loginId' => $this->loginId, + 'secretCode' => $this->appSecret, + ]; + $params['digest'] = $this->createSign($params); + $postData = $this->buildParams($params, 'open.mega.balance.get'); + $result = doCurl($this->apiDomain,$postData); + if (empty($result['error'])) { + return $result['result']; + }else{ + throw new GameException('MeGa888 System Error,Please contact the administrator', 0); + } + } + + /** + * 玩家钱包转入游戏平台 + * @return array|mixed|null + * @throws GameException|\think\Exception + */ + public function balanceTransferOut() + { + return $this->setBalanceTransfer(PlayerWalletTransfer::TYPE_OUT, $this->player->wallet->money); + } + + /** + * 游戏平台转入玩家钱包 + * @return array|mixed|null + * @throws GameException|\think\Exception + */ + public function balanceTransferIn() + { + if($this->getBalance() == 0){ + // 记录玩家钱包转出转入记录 + $this->createWalletTransfer(PlayerWalletTransfer::TYPE_IN, 0, 0); + return true; + } + return $this->autoTransfer(); + } + + /** + * 轉帳進出額度 + * @param $type + * @param float $amount + * @param float $reward + * @return array|mixed|null + * @throws GameException|\think\Exception + */ + protected function setBalanceTransfer($type, float $amount = 0, float $reward = 0) + { + $params = [ + 'random' => $this->player->uuid ?? uniqid(), + 'sn' => $this->sn, + 'loginId' => $this->loginId, + 'amount' => $amount, + 'secretCode' => $this->appSecret, + ]; + $params['digest'] = $this->createSign($params); + $postData = $this->buildParams($params, 'open.mega.balance.transfer'); + $result = doCurl($this->apiDomain,$postData); + if (!empty($result['error'])) { + throw new GameException($result['error']['message'], 0); + } + // 记录玩家钱包转出转入记录 + $this->createWalletTransfer($type, $amount, $reward); + return $result; + } + + /** + * 自动下分 + * @return array|mixed|null + * @throws GameException|\think\Exception + */ + public function autoTransfer() + { + $params = [ + 'random' => $this->player->uuid ?? uniqid(), + 'sn' => $this->sn, + 'loginId' => $this->loginId, + 'secretCode' => $this->appSecret, + ]; + $params['digest'] = $this->createSign($params); + $postData = $this->buildParams($params, 'open.mega.balance.auto.transfer.out'); + $result = doCurl($this->apiDomain,$postData); + if (!empty($result['error'])) { + throw new GameException($result['error']['message'], 0); + } + // 记录玩家钱包转出转入记录 + $this->createWalletTransfer(PlayerWalletTransfer::TYPE_IN, $result['result'], 0); + return $result; + } + + /** + * 查询额度转移纪录 + * @return array|mixed|Response + * @throws GameException|\think\Exception + */ + public function getTransferList(string $startTime = '', string $endTime = '', int $page = 1, int $pageSize = 15) + { + $params = [ + 'random' => $this->player->uuid ?? uniqid(), + 'sn' => $this->sn, + 'secretCode' => $this->appSecret, + ]; + $params['digest'] = $this->createSign($params); + $params['loginId'] = $this->loginId; + $params['agentLoginId'] = $this->appId; + $params['startTime'] = $startTime; + $params['endTime'] = $endTime; + $params['timeZone'] = 1; + $postData = $this->buildParams($params, 'open.mega.balance.transfer.query'); + $result = doCurl($this->apiDomain,$postData); + if (!empty($result['error'])) { + throw new GameException($result['error']['message'], 0); + } + return $result; + } + + /** + * 查询玩家游戏记录 + * @return array|mixed|Response + * @throws GameException|\think\Exception + */ + public function getUserGameRecord(string $startTime = '', string $endTime = '') + { + $params = [ + 'random' => $this->player->uuid ?? uniqid(), + 'sn' => $this->sn, + 'loginId' => $this->loginId, + 'secretCode' => $this->appSecret, + ]; + $params['digest'] = $this->createSign($params); + $params['startTime'] = $startTime; + $params['endTime'] = $endTime; + $params['timeZone'] = 1; + $postData = $this->buildParams($params, 'open.mega.player.game.log.url.get'); + $result = doCurl($this->apiDomain,$postData); + if (!empty($result['error'])) { + throw new GameException($result['error']['message'], 0); + } + return $result['result']; + } + + /** + * 查询全部玩家账单 + * @return array|mixed|Response + * @throws GameException|\think\Exception + */ + public function getReportRecord(string $startTime = '', string $endTime = '') + { + $params = [ + 'random' => $this->player->uuid ?? uniqid(), + 'sn' => $this->sn, + 'agentLoginId' => $this->appId, + 'secretCode' => $this->appSecret, + ]; + $params['digest'] = $this->createSign($params); + $params['startTime'] = $startTime; + $params['endTime'] = $endTime; + $params['timeZone'] = 1; + $params['type'] = 1; + $postData = $this->buildParams($params, 'open.mega.player.total.report'); + $result = doCurl($this->apiDomain,$postData); + if (!empty($result['error'])) { + throw new GameException($result['error']['message'], 0); + } + return $result['result']; + } + + /** + * 获取电子游戏注单分页列表 + * @return array|mixed|Response + * @throws GameException|\think\Exception + */ + public function getGameOrderById(string $startTime = '', string $endTime = '') + { + $params = [ + 'random' => $this->player->uuid ?? uniqid(), + 'sn' => $this->sn, + 'loginId' => $this->loginId, + 'secretCode' => $this->appSecret, + ]; + $params['digest'] = $this->createSign($params); + $params['startTime'] = $startTime; + $params['endTime'] = $endTime; + $params['timeZone'] = 1; + $postData = $this->buildParams($params, 'open.mega.game.order.page'); + $result = doCurl($this->apiDomain,$postData); + if (!empty($result['error'])) { + throw new GameException($result['error']['message'], 0); + } + return $result; + } + + /** + * 查询玩家游戏记录 + * @return array + */ + public function handleOrderHistories(): array + { + try { + $list = []; + $startTime = date('Y-m-d'); + $endTime = date('Y-m-d'); + $data = $this->getReportRecord($startTime, $endTime); + if (!empty($data)) { + foreach ($data as $item) { + $list[] = [ + 'player_code' => $item['loginId'], + 'platform_id' => $this->platform->id, + 'game_code' => 'MeGa888', + 'bet' => $item['bet'], + 'win' => $item['win'], + 'order_no' => $item['userId'].date('Ymd'), + 'original_data' => json_encode($item,JSON_UNESCAPED_UNICODE), + 'platform_action_at' => $startTime, + 'game_type' => 1, + 'created_at' => date('Y-m-d H:i:s'), + 'updated_at' => date('Y-m-d H:i:s'), + ]; + + } + } + } catch (Exception $e) { + return []; + } + + return $list; + } +} \ No newline at end of file diff --git a/app/service/game/MonkeyKingServiceInterface.php b/app/service/game/MonkeyKingServiceInterface.php new file mode 100644 index 0000000..ccac132 --- /dev/null +++ b/app/service/game/MonkeyKingServiceInterface.php @@ -0,0 +1,444 @@ + 'Slot', + '12' => 'Casino', + '13' => 'Arcade', + '16' => 'Fishing' + ]; + public $failCode = [ + 'S200' => '重復請求', + '150001' => '無效的簽名', + '150002' => '無效的SN', + '150003' => '無效的參數', + '150004' => '無效的貨幣', + '150005' => '玩家已存在', + '150006' => '玩家不存在', + '150007' => '次级代理不存在', + '150008' => '執行失敗', + '150009' => '無效的方法', + '150010' => '無效的用戶狀態', + '150011' => '玩家狀態無需更新', + '150012' => '超出數據範圍', + '150013' => '無匹配數據', + '150014' => '登入位置被禁止', + '150015' => '分數不足夠', + '150016' => '不支持禮碼', + '150017' => '交易流水號不得重複', + '150018' => '系統繁忙', + '150019' => '日期時間各式錯誤', + '150020' => '超出時間限制範圍(開始時間與結束時間之間不能大於120分鐘)', + ]; + private $apiDomain; + private $domain; + private $appId; + private $appSecret; + private $path = [ + 'createPlayer' => '/UserInfo/CreatePlayer', + 'getPlayer' => '/UserInfo/GetPlayer', + 'getGameList' => '/Game/GetGameList', + 'getSimpleGameList' => '/Game/GetSimpleGameList', + 'getLoginH5' => '/UserInfo/GetLoginH5', + 'setPlayerStatus' => '/UserInfo/SetPlayerStatus', + 'getBalance' => '/Account/GetBalance', + 'setBalanceTransfer' => '/Account/SetBalanceTransfer', + 'getGameRecordByTime' => '/Game/GetGameRecordByTime', + 'getGameRecord' => '/Game/GetGameRecord', + 'removeRecords' => '/Game/RemoveRecords', + ]; + private $lang = [ + 'zh-CN' => 'zh-ch', + 'en' => 'en_us', + 'zh_tc' => 'zh_tc', + 'en-us' => 'en-us', + 'id' => 'id', + 'th' => 'th', + 'my' => 'my', + 'vi' => 'vi', + 'fi_fi' => 'fi_fi', + 'kr_ko' => 'kr_ko', + 'hi_hi' => 'hi_hi', + 'br_po' => 'br_po', + 'lo_la' => 'lo_la', + 'cam_dia' => 'en_us', // 柬埔寨语 + ]; + + /** + * @param Player|null $player + * @param $type + * @throws Exception + */ + public function __construct($type, Player $player = null) + { + $config = config('game_platform.' . $type); + $this->appId = $config['app_id']; + $this->apiDomain = $config['api_domain']; + $this->domain = $config['domain']; + $this->appSecret = $config['app_secret']; + $this->platform = GamePlatform::query()->where('name', $type)->first(); + if (!empty($player)) { + $this->player = $player; + $this->getLoginId(); + } + } + + /** + * @throws Exception + */ + protected function getLoginId() + { + /** @var PlayerGamePlatform $playerGamePlatform */ + $playerGamePlatform = $this->player->playerGamePlatform->where('platform_id', $this->platform->id)->first(); + if (!empty($playerGamePlatform)) { + return $this->loginId = $playerGamePlatform->player_code; + } + return $this->createPlayer([ + 'uuid' => $this->player->uuid, + 'name' => $this->player->name, + ]); + } + + /** + * 创建玩家 + * @param array $data + * @return array|mixed|Response + * @throws GameException|\think\Exception + */ + public function createPlayer(array $data = []) + { + $params = [ + 'ID' => createOrderNo(), + 'Method' => 'CreatePlayer', + 'SN' => $this->appId, + 'PlayerCode' => $data['uuid'], + ]; + $params['Signature'] = $this->createSign($params); + $params['PlayerName'] = $data['uuid']; + Log::info('MonkeyKing请求参数', [$params]); + $res = doCurl($this->createUrl('createPlayer'), $params); + Log::info('MonkeyKing请求返回数据', [$res]); + if ($res['code'] != $this->successCode) { + throw new GameException($this->failCode[$res['code']], 0); + } + $playerGamePlatform = new PlayerGamePlatform(); + $playerGamePlatform->player_id = $this->player->id; + $playerGamePlatform->platform_id = $this->platform->id; + $playerGamePlatform->player_name = $data['name']; + $playerGamePlatform->player_code = $data['uuid']; + $playerGamePlatform->save(); + $this->loginId = $playerGamePlatform->player_code; + return $res; + } + + public function createSign($params): string + { + return md5(implode('', $params) . $this->appSecret); + } + + /** + * 生成请求url + * @param $method + * @return string + */ + public function createUrl($method): string + { + return $this->apiDomain . $this->path[$method]; + } + + /** + * 创建玩家 + * @return array|mixed|Response + * @throws GameException|\think\Exception + */ + public function getPlayer() + { + $params = [ + 'ID' => createOrderNo(), + 'Method' => 'GetPlayer', + 'SN' => $this->appId, + 'LoginId' => $this->loginId, + ]; + $params['Signature'] = $this->createSign($params); + Log::info('MonkeyKing请求参数', [$params]); + $data = doCurl($this->createUrl('getPlayer'), $params); + Log::info('MonkeyKing请求返回数据', [$data]); + if ($data['code'] != $this->successCode) { + throw new GameException($this->failCode[$data['code']], 0); + } + + return $data; + } + + /** + * 获取游戏摘要MD5 (id+method+sn+APlSecretKey) + * @return array|mixed|Response + * @throws GameException|\think\Exception + */ + public function getSimpleGameList() + { + $params = [ + 'ID' => createOrderNo(), + 'Method' => 'GetSimpleGameList', + 'SN' => $this->appId, + ]; + $params['Signature'] = $this->createSign($params); + Log::info('MonkeyKing请求参数', [$params]); + $data = doCurl($this->createUrl('getSimpleGameList'), $params); + Log::info('MonkeyKing请求返回数据', [$data]); + if ($data['code'] != $this->successCode) { + throw new GameException($this->failCode[$data['code']], 0); + } + if (!empty($data['data']['games'])) { + foreach ($data['data']['games'] as $game) { + Game::query()->updateOrCreate( + [ + 'platform_id' => $this->platform->id, + 'game_code' => $game['gameCode'], + 'platform_game_type' => $game['type'], + ] + ); + } + } + return $data; + } + + /** + * 获取游戏摘要MD5 (id+method+sn+APlSecretKey) + * @param array $data + * @return string + * @throws GameException|\think\Exception + */ + public function login(array $data = []): string + { + $params = [ + 'ID' => createOrderNo(), + 'Method' => 'GetLoginH5', + 'SN' => $this->appId, + 'LoginId' => $this->loginId, + ]; + $params['Signature'] = $this->createSign($params); + Log::info('MonkeyKing请求参数', [$params]); + $res = doCurl($this->createUrl('getLoginH5'), $params); + Log::info('MonkeyKing请求返回数据', [$res]); + if ($res['code'] != $this->successCode) { + throw new GameException($this->failCode[$res['code']], 0); + } + $responseH5 = [ + 'Language' => $this->lang[$data['lang']] ?? 'ch', + "GameId" => $data['gameCode'], + 'CallbackAddress' => $data['callBackUrl'] ?? '', + "AppType" => $data['appType'] ?? 1, + "DeviceType" => 1, + ]; + $jsonString = json_encode($responseH5); + $parametersValue = base64_encode($jsonString); + + return $this->domain . '/linkgame' . ($res['data']['loginUrl'] ?? '') . '&' . $parametersValue . '&' . $data['gameCode']; + } + + /** + * 設置登入玩家狀態。當玩家處於禁用狀態,該玩家無法在平台進行任何操作,如果玩家在遊戲進行中該玩家將會自動退出遊戲。 + * 簽名密鑰方式 Md5(Id+Method+SN+LoginId+APISecretKey) + * @return array|mixed|Response + * @throws GameException|\think\Exception + */ + public function setPlayerStatus($status) + { + $params = [ + 'ID' => createOrderNo(), + 'Method' => 'GetSimpleGameList', + 'SN' => $this->appId, + 'LoginId' => $this->loginId, + ]; + $params['Signature'] = $this->createSign($params); + $params['Status'] = $status; + Log::info('MonkeyKing请求参数', [$params]); + $data = doCurl($this->createUrl('setPlayerStatus'), $params); + Log::info('MonkeyKing请求返回数据', [$data]); + if ($data['code'] != $this->successCode) { + throw new GameException($this->failCode[$data['code']], 0); + } + + return $data; + } + + /** + * 玩家钱包转入游戏平台 + * @return array|mixed|null + * @throws GameException|\think\Exception + */ + public function balanceTransferOut() + { + return $this->setBalanceTransfer(PlayerWalletTransfer::TYPE_OUT, $this->player->wallet->money); + } + + /** + * 轉帳進出額度 + * 簽名密鑰方式 MD5 (Id+Method+SN+LoginId+APISecretKey) + * @param $type + * @param float $amount + * @param float $reward + * @return array|mixed|null + * @throws GameException|\think\Exception + */ + protected function setBalanceTransfer($type, float $amount = 0, float $reward = 0) + { + if ($amount == 0 && $reward == 0) { + throw new GameException('转出/入金额错误', 0); + } + $params = [ + 'ID' => createOrderNo(), + 'Method' => 'SetBalanceTransfer', + 'SN' => $this->appId, + 'LoginId' => $this->loginId, + ]; + $params['Signature'] = $this->createSign($params); + $params['Amount'] = $amount; + $params['Reward'] = $reward; + Log::info('MonkeyKing请求参数', [$params]); + $res = doCurl($this->createUrl('setBalanceTransfer'), $params); + Log::info('MonkeyKing请求返回数据', [$res]); + if ($res['code'] != $this->successCode) { + Log::error($this->failCode[$res['code']], ['res' => $res]); + throw new GameException($this->failCode[$res['code']], 0); + } + // 记录玩家钱包转出转入记录 + $this->createWalletTransfer($type, $amount, $reward, $res['data']['refId'] ?? ''); + + return $res; + } + + /** + * 玩家钱包转入游戏平台 + * @return array|mixed|null + * @throws GameException|\think\Exception + */ + public function balanceTransferIn() + { + $balance = $this->getBalance(); + return $this->setBalanceTransfer(PlayerWalletTransfer::TYPE_IN, !empty($balance['data']['result']) ? -$balance['data']['result'] : 0, !empty($balance['data']['reward']) ? -$balance['data']['reward'] : 0); + } + + /** + * 獲取玩家餘額信息 + * 簽名密鑰方式 MD5 (Id+Method+SN+LoginId+APISecretKey) + * @return array|mixed|Response + * @throws GameException|\think\Exception + */ + public function getBalance() + { + $params = [ + 'ID' => createOrderNo(), + 'Method' => 'GetBalance', + 'SN' => $this->appId, + 'LoginId' => $this->loginId, + ]; + $params['Signature'] = $this->createSign($params); + Log::info('MonkeyKing请求参数', [$params]); + $data = doCurl($this->createUrl('getBalance'), $params); + Log::info('MonkeyKing请求返回数据', [$data]); + if ($data['code'] != $this->successCode) { + throw new GameException($this->failCode[$data['code']], 0); + } + + return $data; + } + + /** + * 依據時間獲取遊戲紀錄 + * MD5 (Id+Method+SN+StartTime+EndTime+APISecretKey) + * @param int $pageIndex + * @param string $startTime + * @param string $endTime + * @return array|mixed|null + * @throws GameException|\think\Exception + */ + public function getGameRecordByTime(int $pageIndex = 1, string $startTime = '', string $endTime = '') + { + $params = [ + 'ID' => createOrderNo(), + 'Method' => 'GetGameRecordByTime', + 'SN' => $this->appId, + 'StartTime' => $startTime, + 'EndTime' => $endTime, + ]; + $pageSize = 500; + $params['Signature'] = $this->createSign($params); + $params['PageSize'] = $pageSize; + $params['PageIndex'] = $pageIndex; + Log::info('MonkeyKing请求参数', [$params]); + $res = doCurl($this->createUrl('getGameRecordByTime'), $params); + Log::info('MonkeyKing请求返回数据', [$res]); + if ($res['code'] != $this->successCode) { + throw new GameException($this->failCode[$res['code']], 0); + } + + return $res; + } + + /** + * 獲取玩家遊戲歷史紀錄 + * MD5 (Id+Method+SN+APISecretKey) + * @return array|mixed|null + * @throws GameException|\think\Exception + */ + public function getGameRecord() + { + $params = [ + 'ID' => createOrderNo(), + 'Method' => 'GetGameRecord', + 'SN' => $this->appId, + ]; + $params['Signature'] = $this->createSign($params); + Log::info('MonkeyKing请求参数', [$params]); + $res = doCurl($this->createUrl('getGameRecord'), $params); + Log::info('MonkeyKing请求返回数据', [$res]); + if ($res['code'] != $this->successCode) { + throw new GameException($this->failCode[$res['code']], 0); + } + + return $res; + } + + /** + * 刪除遊戲紀錄 + * MD5 (Id+Method+SN+IdsToBeRemoved+APISecretKey) + * @return array|mixed|null + * @throws GameException|\think\Exception + */ + public function removeRecords($idsToBeRemoved) + { + $params = [ + 'ID' => createOrderNo(), + 'Method' => 'RemoveRecords', + 'SN' => $this->appId, + 'IdsToBeRemoved' => implode(',', $idsToBeRemoved), + ]; + $params['Signature'] = $this->createSign($params); + Log::info('MonkeyKing请求参数', [$params]); + $res = doCurl($this->createUrl('removeRecords'), $params); + Log::info('MonkeyKing请求返回数据', [$res]); + if ($res['code'] != $this->successCode) { + throw new GameException($this->failCode[$res['code']], 0); + } + + return $res; + } +} \ No newline at end of file diff --git a/app/service/game/NextSpinServiceInterface.php b/app/service/game/NextSpinServiceInterface.php new file mode 100644 index 0000000..35aa202 --- /dev/null +++ b/app/service/game/NextSpinServiceInterface.php @@ -0,0 +1,504 @@ + 'ListGames',//获取游戏列表 + 'createPlayer' => '/UserInfo/CreatePlayer', + 'getPlayer' => '/UserInfo/GetPlayer', + 'getGameList' => '/Game/GetGameList', + 'getSimpleGameList' => '/Game/GetSimpleGameList', + 'getLoginH5' => '/UserInfo/GetLoginH5', + 'setPlayerStatus' => '/UserInfo/SetPlayerStatus', + 'getBalance' => '/Account/GetBalance', + 'setBalanceTransfer' => '/Account/SetBalanceTransfer', + 'getGameRecordByTime' => '/Game/GetGameRecordByTime', + 'getGameRecord' => '/Game/GetGameRecord', + 'removeRecords' => '/Game/RemoveRecords', + ]; + + public $successCode = 'S100'; + + public $loginId; + + public $gameType = [ + 'AD' => 'Casino', + 'SM' => 'Fishing', + ]; + + public $localGameType = [ + 'AD' => '2', + 'SM' => '4', + ]; + + public $failCode = [ + 'S200' => '重復請求', + 'F0001' => '無效的簽名', + 'F0002' => '無效的SN', + 'F0003' => '無效的參數', + 'F0004' => '無效的貨幣', + 'F0005' => '玩家已存在', + 'F0006' => '玩家不存在', + 'F0007' => '會員不存在', + 'F0008' => '執行失敗', + 'F0009' => '無效的方法', + 'F0010' => '無效的用戶狀態', + 'F0011' => '玩家狀態無需更新', + 'F0012' => '超出數據範圍', + 'F0013' => '無匹配數據', + 'F0014' => '登入位置被禁止', + 'F0015' => '分數不足夠', + 'F0016' => '不支持禮碼', + 'F0017' => '交易流水號不得重複', + 'F0018' => '系統繁忙', + 'F0019' => '日期時間各式錯誤', + 'F0020' => '超出時間限制範圍(開始時間與結束時間之間不能大於120分鐘)', + 'F0021' => '執行取消', + 'M0001' => '系統維護', + 'M0002' => '系統錯誤', + ]; + + private $lang = [ + 'zh-CN' => 'zh_ch', + 'en' => 'en_us', + 'zh_tc' => 'zh_tc', + 'th_th' => 'th_th', + 'Ma_my' => 'Ma_my', + 'vi_nam' => 'vi_nam', + 'Fi_fi' => 'Fi_fi', + 'Kr_ko' => 'Kr_ko', + 'Hi_hi' => 'Hi_hi', + 'My_mar' => 'My_mar', + 'Br_po' => 'Br_po', + 'cam_dia' => 'cam_dia', // 柬埔寨语 + ]; + + /** + * @param Player|null $player + * @param $type + * @throws Exception + */ + public function __construct($type, Player $player = null) + { + $config = config('game_platform.' . $type); + $this->appId = $config['app_id']; + $this->apiDomain = $config['api_domain']; + $this->domain = $config['domain']; + $this->appSecret = $config['app_secret']; + $this->platform = GamePlatform::query()->where('name', $type)->first(); + if (!empty($player)) { + $this->player = $player; + $this->getLoginId(); + } + } + + public function httpRequest($url,$api,$method = 'POST',$fields) + { + $fields = json_encode(["merchantCode"=> "ZCH6747", + "serialNo"=>"20240722224255982841"]); + $curl = curl_init(); + curl_setopt_array($curl, [ + CURLOPT_URL => $url, + CURLOPT_RETURNTRANSFER => true, + CURLOPT_ENCODING => "", + CURLOPT_MAXREDIRS => 10, + CURLOPT_TIMEOUT => 30, + CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, + CURLOPT_CUSTOMREQUEST => $method, + CURLOPT_POSTFIELDS => $fields, + CURLOPT_HTTPHEADER => [ + "API: $api", + "Accept: */*", + "Accept-Encoding: gzip, deflate, br", + "Connection: keep-alive", + "Content-Type: application/json", + "DataType: JSON", + "User-Agent: PostmanRuntime-ApipostRuntime/1.1.0" + ], + ]); + $response = curl_exec($curl); + curl_close($curl); + $data = json_decode($response,true); + return $data; + } + + /** + * 更新游戏列表 + * @return array|mixed|Response + * @throws GameException|\think\Exception + */ + public function getSimpleGameList() + { + $api = 'getGames'; + $method = 'POST'; + $serialNo = createOrderNo(); + $fields = json_encode([ + "merchantCode" => $this->appId, + "serialNo" => $serialNo + ]); + + $result = $this->httpRequest($this->apiDomain,$api,$method,$fields); + if (isset($result['games']) && $result['code'] == 0) { + foreach ($result['games'] as $game) { + Game::query()->updateOrCreate( + [ + 'platform_id' => $this->platform->id, + 'game_code' => $game['gameCode'], + ], + [ + 'platform_game_type' => $game['category'], + 'game_type' => $this->localGameType[$game['category']], + 'name' => $game['gameName'], + ] + ); + } + }else{ + throw new GameException($result['msg'], 0); + } + return $result; + } + + /** + * 获取游戏列表 + * @return array|mixed|Response + * @throws GameException|\think\Exception + */ + public function getGamesList() + { + $api = 'getGames'; + $method = 'POST'; + $serialNo = createOrderNo(); + $fields = json_encode([ + "merchantCode" => $this->appId, + "serialNo" => $serialNo + ]); + + $result = $this->httpRequest($this->apiDomain,$api,$method,$fields); + if (isset($result['games']) && $result['code'] == 0) { + return $result['games']; + }else{ + throw new GameException($result['msg'], 0); + } + } + + /** + * 玩游戏 + * @return array|mixed|Response + * @throws GameException|\think\Exception + */ + public function playGame() + { + $params = [ + 'Method' => 'PLAY', + 'Username' => $this->player->name, + 'RequestID' => createOrderNo(), + 'Amount' => $amount, + 'Timestamp' => time(), + ]; + $signature = $this->createSign($params); + + $result = doCurl($this->createUrl($signature), $params); + if (isset($result['Token'])) { + return $forwardUrl = $this->domain."?token=".$result['Token']."&game=1jeqx59c7ztqg&mobile=false"; + }else{ + throw new GameException($result['Message'], 0); + } + } + + /** + * @throws Exception + */ + protected function getLoginId() + { + /** @var PlayerGamePlatform $playerGamePlatform */ + $playerGamePlatform = $this->player->playerGamePlatform->where('platform_id', $this->platform->id)->first(); + if (!empty($playerGamePlatform)) { + return $this->loginId = $playerGamePlatform->player_code; + } + return $this->createPlayer([ + 'uuid' => $this->player->uuid, + 'name' => $this->player->name, + ]); + } + + /** + * 创建玩家 + * @param array $data + * @return array|mixed|Response + * @throws GameException|Exception + */ + public function createPlayer(array $data = []) + { + $params = [ + 'ID' => createOrderNo(), + 'Method' => 'CreatePlayer', + 'SN' => $this->appId, + 'PlayerCode' => $data['uuid'], + ]; + $params['Signature'] = $this->createSign($params); + $params['PlayerName'] = $data['uuid']; + $res = doCurl($this->createUrl('createPlayer'), $params); + if ($res['code'] != $this->successCode) { + throw new GameException($this->failCode[$res['code']], 0); + } + $playerGamePlatform = new PlayerGamePlatform(); + $playerGamePlatform->player_id = $this->player->id; + $playerGamePlatform->platform_id = $this->platform->id; + $playerGamePlatform->player_name = $data['name']; + $playerGamePlatform->player_code = $data['uuid']; + $playerGamePlatform->save(); + $this->loginId = $playerGamePlatform->player_code; + return $res; + } + + /** + * 创建玩家 + * @return array|mixed|Response + * @throws GameException|Exception + */ + public function getPlayer() + { + $params = [ + 'ID' => createOrderNo(), + 'Method' => 'GetPlayer', + 'SN' => $this->appId, + 'LoginId' => $this->loginId, + ]; + $params['Signature'] = $this->createSign($params); + $data = doCurl($this->createUrl('getPlayer'), $params); + if ($data['code'] != $this->successCode) { + throw new GameException($this->failCode[$data['code']], 0); + } + + return $data; + } + + /** + * 获取游戏摘要MD5 (id+method+sn+APlSecretKey) + * @param array $data + * @return string + * @throws GameException|\think\Exception + */ + public function login(array $data = []): string + { + $params = [ + 'ID' => createOrderNo(), + 'Method' => 'GetLoginH5', + 'SN' => $this->appId, + 'LoginId' => $this->loginId, + ]; + $params['Signature'] = $this->createSign($params); + $res = doCurl($this->createUrl('getLoginH5'), $params); + if ($res['code'] != $this->successCode) { + Log::error($this->failCode[$res['code']], ['res' => $res]); + throw new GameException($this->failCode[$res['code']], 0); + } + $responseH5 = [ + 'Language' => $this->lang[$data['lang']] ?? 'ch', + "GameId" => $data['gameCode'], + 'CallbackAddress' => $data['callBackUrl'] ?? '', + "AppType" => $data['appType'] ?? 1, + "DeviceType" => 1, + ]; + $jsonString = json_encode($responseH5); + $parametersValue = base64_encode($jsonString); + $link = $this->domain . '/linkgame' . ($res['data']['loginUrl'] ?? '') . '&' . $parametersValue; + if (!empty($data['gameCode'])) { + $link .= '&' . $data['gameCode']; + } + return $link; + } + + /** + * 設置登入玩家狀態。當玩家處於禁用狀態,該玩家無法在平台進行任何操作,如果玩家在遊戲進行中該玩家將會自動退出遊戲。 + * 簽名密鑰方式 Md5(Id+Method+SN+LoginId+APISecretKey) + * @return array|mixed|Response + * @throws GameException|\think\Exception + */ + public function setPlayerStatus($status) + { + $params = [ + 'ID' => createOrderNo(), + 'Method' => 'GetSimpleGameList', + 'SN' => $this->appId, + 'LoginId' => $this->loginId, + ]; + $params['Signature'] = $this->createSign($params); + $params['Status'] = $status; + $data = doCurl($this->createUrl('setPlayerStatus'), $params); + if ($data['code'] != $this->successCode) { + throw new GameException($this->failCode[$data['code']], 0); + } + + return $data; + } + + /** + * 獲取玩家餘額信息 + * 簽名密鑰方式 MD5 (Id+Method+SN+LoginId+APISecretKey) + * @return array|mixed|Response + * @throws GameException|\think\Exception + */ + public function getBalance() + { + $params = [ + 'ID' => createOrderNo(), + 'Method' => 'GetBalance', + 'SN' => $this->appId, + 'LoginId' => $this->loginId, + ]; + $params['Signature'] = $this->createSign($params); + $data = doCurl($this->createUrl('getBalance'), $params); + if ($data['code'] != $this->successCode) { + throw new GameException($this->failCode[$data['code']], 0); + } + + return $data; + } + + /** + * 玩家钱包转入游戏平台 + * @return array|mixed|null + * @throws GameException|\think\Exception + */ + public function balanceTransferOut() + { + return $this->setBalanceTransfer(PlayerWalletTransfer::TYPE_OUT, $this->player->wallet->money); + } + + /** + * 玩家钱包转入游戏平台 + * @return array|mixed|null + * @throws GameException|\think\Exception + */ + public function balanceTransferIn() + { + $balance = $this->getBalance(); + return $this->setBalanceTransfer(PlayerWalletTransfer::TYPE_IN, !empty($balance['data']['result']) ? -$balance['data']['result'] : 0, !empty($balance['data']['reward']) ? -$balance['data']['reward'] : 0); + } + + /** + * 轉帳進出額度 + * 簽名密鑰方式 MD5 (Id+Method+SN+LoginId+APISecretKey) + * @param $type + * @param float $amount + * @param float $reward + * @return array|mixed|null + * @throws GameException|\think\Exception + */ + protected function setBalanceTransfer($type, float $amount = 0, float $reward = 0) + { + if ($amount == 0 && $reward == 0) { + throw new GameException('转出/入金额错误', 0); + } + $params = [ + 'ID' => createOrderNo(), + 'Method' => 'SetBalanceTransfer', + 'SN' => $this->appId, + 'LoginId' => $this->loginId, + ]; + $params['Signature'] = $this->createSign($params); + $params['Amount'] = $amount; + $params['Reward'] = $reward; + $res = doCurl($this->createUrl('setBalanceTransfer'), $params); + if ($res['code'] != $this->successCode) { + throw new GameException($this->failCode[$res['code']], 0); + } + // 记录玩家钱包转出转入记录 + $this->createWalletTransfer($type, $amount, $reward, $res['data']['refId'] ?? ''); + + return $res; + } + + /** + * 依據時間獲取遊戲紀錄 + * MD5 (Id+Method+SN+StartTime+EndTime+APISecretKey) + * @param int $pageIndex + * @param string $startTime + * @param string $endTime + * @return array|mixed|null + * @throws GameException|\think\Exception + */ + public function getGameRecordByTime(int $pageIndex = 1, string $startTime = '', string $endTime = '') + { + $params = [ + 'ID' => createOrderNo(), + 'Method' => 'GetGameRecordByTime', + 'SN' => $this->appId, + 'StartTime' => $startTime, + 'EndTime' => $endTime, + ]; + $pageSize = 500; + $params['Signature'] = $this->createSign($params); + $params['PageSize'] = $pageSize; + $params['PageIndex'] = $pageIndex; + $res = doCurl($this->createUrl('getGameRecordByTime'), $params); + if ($res['code'] != $this->successCode) { + throw new GameException($this->failCode[$res['code']], 0); + } + + return $res; + } + + /** + * 獲取玩家遊戲歷史紀錄 + * MD5 (Id+Method+SN+APISecretKey) + * @return array|mixed|null + * @throws GameException|\think\Exception + */ + public function getGameRecord() + { + $params = [ + 'ID' => createOrderNo(), + 'Method' => 'GetGameRecord', + 'SN' => $this->appId, + ]; + $params['Signature'] = $this->createSign($params); + $res = doCurl($this->createUrl('getGameRecord'), $params); + if ($res['code'] != $this->successCode) { + throw new GameException($this->failCode[$res['code']], 0); + } + + return $res; + } + + /** + * 刪除遊戲紀錄 + * MD5 (Id+Method+SN+IdsToBeRemoved+APISecretKey) + * @return array|mixed|null + * @throws GameException|\think\Exception + */ + public function removeRecords($idsToBeRemoved) + { + $params = [ + 'ID' => createOrderNo(), + 'Method' => 'RemoveRecords', + 'SN' => $this->appId, + 'IdsToBeRemoved' => implode(',', $idsToBeRemoved), + ]; + $params['Signature'] = $this->createSign($params); + $res = doCurl($this->createUrl('removeRecords'), $params); + if ($res['code'] != $this->successCode) { + throw new GameException($this->failCode[$res['code']], 0); + } + + return $res; + } +} \ No newline at end of file diff --git a/app/service/game/PragmaticServiceInterface.php b/app/service/game/PragmaticServiceInterface.php new file mode 100644 index 0000000..517c925 --- /dev/null +++ b/app/service/game/PragmaticServiceInterface.php @@ -0,0 +1,473 @@ + 'Casino', + '5' => 'Fishing', + '8' => 'Bingo', + '1' => 'Slot', + ]; + + public $localGameType = [ + '2' => '2',//赌场 + '5' => '4',//捕鱼 + '8' => '8',//宾果 + 'vs' => '1',//斯洛 + 'lg' => '5',//真人游戏 + ]; + + public $failCode = [ + 'S200' => '重復請求', + 'F0001' => '無效的簽名', + 'F0002' => '無效的SN', + 'F0003' => '無效的參數', + 'F0004' => '無效的貨幣', + 'F0005' => '玩家已存在', + 'F0006' => '玩家不存在', + 'F0007' => '會員不存在', + 'F0008' => '執行失敗', + 'F0009' => '無效的方法', + 'F0010' => '無效的用戶狀態', + 'F0011' => '玩家狀態無需更新', + 'F0012' => '超出數據範圍', + 'F0013' => '無匹配數據', + 'F0014' => '登入位置被禁止', + 'F0015' => '分數不足夠', + 'F0016' => '不支持禮碼', + 'F0017' => '交易流水號不得重複', + 'F0018' => '系統繁忙', + 'F0019' => '日期時間各式錯誤', + 'F0020' => '超出時間限制範圍(開始時間與結束時間之間不能大於120分鐘)', + 'F0021' => '執行取消', + 'M0001' => '系統維護', + 'M0002' => '系統錯誤', + ]; + + /** + * @param Player|null $player + * @param $type + * @throws Exception + */ + public function __construct($type, Player $player = null) + { + $config = config('game_platform.' . $type); + $this->apiDomain = $config['api_domain']; + $this->domain = $config['domain']; + $this->appId = $config['name']; + $this->secureLogin = $config['secure_login']; + $this->providerId = $config['provider_id']; + $this->appSecret = $config['app_secret']; + $this->platform = GamePlatform::query()->where('name', $type)->first(); + if (!empty($player)) { + $this->player = $player; + $this->getLoginId(); + } + } + + /** + * 生成请求url + * @param $method + * @return string + */ + public function createUrl($method): string + { + return $this->apiDomain.$method; + } + + public function createSign($params): string + { + ksort($params); + return md5(http_build_query($params, '', '&') . $this->appSecret); + } + + /** + * 更新游戏列表 + * @return array|mixed|Response + * @throws GameException|\think\Exception + */ + public function getSimpleGameList() + { + $params = [ + 'secureLogin' => $this->secureLogin, + ]; + $signature = $this->createSign($params); + $params['hash'] = $signature; + $result = doFormCurl($this->createUrl('/IntegrationService/v3/http/CasinoGameAPI/getCasinoGames/'), $params); + if ($result['error'] == 0 && !empty($result['gameList'])) { + foreach ($result['gameList'] as $game) { + if ($game['gameTypeID'] != 'vs') { + continue; + } + Game::query()->updateOrCreate( + [ + 'platform_id' => $this->platform->id, + 'game_code' => $game['gameID'], + ], + [ + 'platform_game_type' => $game['gameTypeID'], + 'game_type' => $this->localGameType[$game['gameTypeID']], + 'name' => $game['gameName'], +// 'game_image' => $this->apiDomain.'/gs2c/common/lobby/v1/apps/slots-lobby-assets/'.$game['gameID'].'/'.$game['gameID'].'_325x234_NB.png' + ] + ); + } + }else{ + throw new GameException($result['description'], 0); + } + return $result; + } + + /** + * 获取游戏列表 + * @return array|mixed|Response + * @throws GameException|\think\Exception + */ + public function getGamesList() + { + $params = [ + 'secureLogin' => $this->secureLogin, + ]; + $signature = $this->createSign($params); + $params['hash'] = $signature; + $result = doFormCurl($this->createUrl('/IntegrationService/v3/http/CasinoGameAPI/getCasinoGames/'), $params); + if ($result['error'] == 0 && !empty($result['gameList'])) { + return $result; + }else{ + throw new GameException($result['description'], 0); + } + } + + /** + * 获取玩家ID + * @throws Exception + */ + protected function getLoginId() + { + /** @var PlayerGamePlatform $playerGamePlatform */ + $playerGamePlatform = PlayerGamePlatform::query()->where('platform_id', $this->platform->id)->where('player_id',$this->player->id)->first(); + if (!empty($playerGamePlatform)) { + return $this->loginId = $playerGamePlatform->player_code; + } + return $this->createPlayer([ + 'uuid' => $this->player->uuid, + 'name' => $this->player->name, + ]); + } + + /** + * 创建玩家 + * @param array $data + * @return array|mixed|Response + * @throws GameException|Exception + */ + public function createPlayer(array $data = []) + { + $params = [ + 'secureLogin' => $this->secureLogin, + 'externalPlayerId' => $data['uuid'], + 'currency' => 'MYR', + ]; + $signature = $this->createSign($params); + $params['hash'] = $signature; + $result = doFormCurl($this->createUrl('/IntegrationService/v3/http/CasinoGameAPI/player/account/create/'), $params); + if ($result['error'] != 0 || empty($result['playerId'])) { + Log::error($result['description'], ['res' => $result]); + throw new GameException($result['description'], 0); + } + $playerGamePlatform = new PlayerGamePlatform(); + $playerGamePlatform->player_id = $this->player->id; + $playerGamePlatform->platform_id = $this->platform->id; + $playerGamePlatform->player_name = $data['name']; + $playerGamePlatform->player_code = $data['uuid']; + $playerGamePlatform->save(); + $this->loginId = $playerGamePlatform->player_code; + return $result; + } + + /** + * 获取玩家 + * @return false + * @throws Exception + */ + public function getPlayer(): bool + { + return false; + } + + /** + * 玩家进入游戏 + * @param array $data + * @return string + * @throws GameException|\think\Exception + */ + public function login(array $data = []): string + { + $params = [ + 'secureLogin' => $this->secureLogin, + 'externalPlayerId' => $this->loginId, + 'gameId' => $data['gameCode'], + 'language' => 'en', + ]; + $signature = $this->createSign($params); + $params['hash'] = $signature; + $result = doFormCurl($this->createUrl('/IntegrationService/v3/http/CasinoGameAPI/game/start/'), $params); + if ($result['error'] == 0 && !empty($result['gameURL'])) { + $link = $result['gameURL']; + }else{ + throw new GameException($result['description'], 0); + } + return $link; + } + + /** + * 获取玩家游戏平台余额 + * @return array|mixed|Response + * @throws GameException|\think\Exception + */ + public function getBalance() + { + $params = [ + 'secureLogin' => $this->secureLogin, + 'externalPlayerId' => $this->loginId, + ]; + $signature = $this->createSign($params); + $params['hash'] = $signature; + $result = doFormCurl($this->createUrl('/IntegrationService/v3/http/CasinoGameAPI/balance/current/'), $params); + if ($result['error'] != 0) { + throw new GameException('Pragmatic System Error,Please contact the administrator', 0); + } + return $result['balance']; + } + + /** + * 玩家钱包转入游戏平台 + * @return array|mixed|null + * @throws GameException|\think\Exception + */ + public function balanceTransferOut() + { + return $this->setBalanceTransfer(PlayerWalletTransfer::TYPE_OUT, $this->player->wallet->money); + } + + /** + * 游戏平台转入玩家钱包 + * @return array|mixed|null + * @throws GameException|\think\Exception + */ + public function balanceTransferIn() + { + $balance = $this->getBalance(); + if($balance == 0){ + // 记录玩家钱包转出转入记录 + $this->createWalletTransfer(PlayerWalletTransfer::TYPE_IN, 0, 0); + return true; + } + return $this->setBalanceTransfer(PlayerWalletTransfer::TYPE_IN, $balance ? -$balance : 0); + } + + /** + * 轉帳進出額度 + * @param $type + * @param float $amount + * @param float $reward + * @return array|mixed|null + * @throws GameException|\think\Exception + */ + protected function setBalanceTransfer($type, float $amount = 0, float $reward = 0) + { + $params = [ + 'secureLogin' => $this->secureLogin, + 'externalPlayerId' => $this->loginId, + 'externalTransactionId' => createOrderNo(), + 'amount' => $amount, + ]; + $signature = $this->createSign($params); + $params['hash'] = $signature; + $result = doFormCurl($this->createUrl('/IntegrationService/v3/http/CasinoGameAPI/balance/transfer/'), $params); + if ($result['error'] != 0) { + throw new GameException($result['description'], 0); + } + // 记录玩家钱包转出转入记录 + $this->createWalletTransfer($type, $amount, $reward, $result['transactionId'] ?? ''); + return $result; + } + + /** + * 转账记录 + * @param $startTime + * @return array|mixed|null + * @throws GameException + * @throws \think\Exception + */ + protected function transferTransactions($startTime) + { + $params = [ + 'secureLogin' => $this->secureLogin, + //'timepoint' => $startTime ?? round(microtime(true) * 1000), + ]; + $signature = $this->createSign($params); + $params['hash'] = $signature; + $result = doFormCurl($this->createUrl('/IntegrationService/v3/http/CasinoGameAPI/balance/transfer/transactions/'), $params); + if ($result['error'] != 0) { + throw new GameException($result['description'], 0); + } + return $result; + } + /** + * 踢出游戏 + * @return array|mixed|Response + * @throws GameException|Exception + */ + public function terminateSession() + { + $params = [ + 'secureLogin' => $this->secureLogin, + 'externalPlayerId' => $this->loginId, + ]; + $signature = $this->createSign($params); + $params['hash'] = $signature; + $result = doFormCurl($this->createUrl('/IntegrationService/v3/http/CasinoGameAPI/game/session/terminate'), $params); + if ($result['error'] == 0) { + throw new GameException($result['description'], 0); + } + return $result; + } + + /** + * 重播链接 + * @return array|mixed|Response + * @throws GameException|Exception + */ + public function replayLink($roundId) + { + $params = [ + 'secureLogin' => $this->secureLogin, + 'externalPlayerId' => $this->loginId, + 'roundId' => $roundId, + ]; + $signature = $this->createSign($params); + $params['hash'] = $signature; + $result = doFormCurl($this->createUrl('/IntegrationService/v3/http/ReplayAPI/getSharedLink'), $params); + if ($result['error'] == 0) { + throw new GameException($result['description'], 0); + } + return $result; + } + + /** + * 查询游戏纪录 + * @return array + */ + public function getGameRecordList(): array + { + $params = [ + 'login' => $this->secureLogin, + 'password' => $this->appSecret, + 'timepoint' => round(microtime(true) * 1000) - 90000, + ]; + $query = http_build_query($params, '', '&'); + $url = $this->createUrl('/IntegrationService/v3/DataFeeds/gamerounds/finished/?' . $query); + $response = Http::timeout(10)->get($url); + $result = $response->body(); + return $this->parseCustomCsv($result); + } + + /** + * CSV转数组 + * @param $input + * @return array + */ + public function parseCustomCsv($input): array + { + $lines = explode("\n", trim($input)); // 分割为行数组 + + // 解析timepoint + $timepoint = (int) substr($lines[0], strpos($lines[0], '=') + 1); + array_shift($lines); // 移除timepoint行 + + // 处理CSV部分 + $header = str_getcsv(array_shift($lines)); // 获取标题行 + $result = [ + 'timepoint' => $timepoint, + 'data' => [] + ]; + + foreach ($lines as $line) { + $row = str_getcsv($line); + if (count($row) !== count($header)) continue; // 跳过列数不匹配的行 + + // 组合关联数组并转换数据类型 + $entry = array_combine($header, array_map(function($value) { + if ($value === 'null') return null; // 转换null字符串 + if (is_numeric($value)) { // 转换数字类型 + return (strpos($value, '.') !== false) ? (float)$value : (int)$value; + } + return $value; + }, $row)); + + $result['data'][] = $entry; + } + + return $result; + } + + /** + * 查询玩家游戏记录 + * @return array + */ + public function handleOrderHistories(): array + { + try { + $list = []; + $data = $this->getGameRecordList(); + if (!empty($data['data'])) { + foreach ($data['data'] as $item) { + $list[] = [ + 'uuid' => $item['extPlayerID'], + 'platform_id' => $this->platform->id, + 'game_code' => $item['gameID'], + 'bet' => $item['bet'], + 'win' => $item['win'], + 'order_no' => $item['playSessionID'], + 'original_data' => json_encode($item,JSON_UNESCAPED_UNICODE), + 'platform_action_at' => date('Y-m-d H:i:s', strtotime($item['endDate'])), + 'game_type' => 'vs', + 'created_at' => date('Y-m-d H:i:s'), + 'updated_at' => date('Y-m-d H:i:s'), + ]; + + } + } + } catch (Exception $e) { + return []; + } + + return $list; + } + +} \ No newline at end of file diff --git a/composer.json b/composer.json new file mode 100644 index 0000000..3433957 --- /dev/null +++ b/composer.json @@ -0,0 +1,82 @@ +{ + "name": "workerman/webman", + "type": "project", + "keywords": [ + "high performance", + "http service" + ], + "homepage": "https://www.workerman.net", + "license": "MIT", + "description": "High performance HTTP Service Framework.", + "authors": [ + { + "name": "walkor", + "email": "walkor@workerman.net", + "homepage": "https://www.workerman.net", + "role": "Developer" + } + ], + "support": { + "email": "walkor@workerman.net", + "issues": "https://github.com/walkor/webman/issues", + "forum": "https://wenda.workerman.net/", + "wiki": "https://workerman.net/doc/webman", + "source": "https://github.com/walkor/webman" + }, + "require": { + "php": ">=7.2", + "workerman/webman-framework": "^1.5.0", + "monolog/monolog": "^2.0", + "rockys/ex-admin-webman": "^1.0", + "ext-pdo": "*", + "zjkal/time-helper": "^1.1", + "psr/container": "1.1.1", + "ext-json": "*", + "gitfei1231/webman-api-sign": "^0.0.21", + "workerman/validation": "^3.0", + "symfony/translation": "^5.4", + "webman/event": "^1.0", + "tinywan/jwt": "^1.6", + "php-di/php-di": "6", + "doctrine/annotations": "1.14", + "webman-tech/laravel-http-client": "^1.1", + "workbunny/webman-ip-attribution": "^1.0", + "workerman/crontab": "^1.0", + "webman/push": "^1.0", + "ext-bcmath": "*", + "yzh52521/webman-lock": "^1.0", + "robmorgan/phinx": "^0.14.0", + "ext-simplexml": "*", + "webman/log": "^1.1", + "webman/redis-queue": "^1.2", + "illuminate/database": "^8.83", + "facebook/graph-sdk": "^5.1", + "ext-zip": "*", + "endroid/qr-code": "^4.6" + }, + "suggest": { + "ext-event": "For better performance. " + }, + "autoload": { + "psr-4": { + "": "./", + "app\\": "./app", + "App\\": "./app", + "app\\View\\Components\\": "./app/view/components" + }, + "files": [ + "./support/helpers.php" + ] + }, + "scripts": { + "post-package-install": [ + "support\\Plugin::install" + ], + "post-package-update": [ + "support\\Plugin::install" + ], + "pre-package-uninstall": [ + "support\\Plugin::uninstall" + ] + } +} diff --git a/config/admin_node.php b/config/admin_node.php new file mode 100644 index 0000000..8458af5 --- /dev/null +++ b/config/admin_node.php @@ -0,0 +1,588 @@ + 'addons\webman\controller\AdminController\updatePassword', + 'pid' => 0, + 'action' => 'updatePassword', + 'method' => '', + 'group' => 'all', + 'url' => 'ex-admin/addons-webman-controller-AdminController/updatePassword', + 'title' => '修改密码', + ], + [ + 'id' => 'addons\webman\controller\AdminController\editInfo', + 'pid' => 0, + 'action' => 'editInfo', + 'method' => '', + 'group' => 'all', + 'url' => 'ex-admin/addons-webman-controller-AdminController/editInfo', + 'title' => '个人信息', + ], + [ + 'id' => 'addons\webman\controller\AdminController\resetPassword', + 'pid' => 0, + 'action' => 'resetPassword', + 'method' => '', + 'group' => 'all', + 'url' => 'ex-admin/addons-webman-controller-AdminController/resetPassword', + 'title' => '重置密码', + ], + [ + 'id' => 'addons\webman\controller\IndexController\index', + 'pid' => 0, + 'action' => 'index', + 'method' => 'get', + 'group' => 'department', + 'url' => 'ex-admin/addons-webman-controller-IndexController/index', + 'title' => '数据中心', + ], + // 权限管理 + [ + 'id' => 'addons\webman\controller\AdminController-', + 'pid' => 0, + 'url' => '', + 'group' => 'department', + 'title' => '权限管理', + 'children' => [] + ], + // 用户管理 + [ + 'id' => 'addons\webman\controller\AdminController\index', + 'pid' => 'addons\webman\controller\AdminController-', + 'action' => 'index', + 'method' => 'get', + 'group' => 'department', + 'url' => 'ex-admin/addons-webman-controller-AdminController/index', + 'title' => '用户管理', + ], + [ + 'id' => 'addons\webman\controller\AdminController\index-delete', + 'pid' => 'addons\webman\controller\AdminController\index', + 'action' => 'index', + 'method' => 'delete', + 'group' => 'department', + 'url' => 'ex-admin/addons-webman-controller-AdminController/index', + 'title' => '删除系统用户', + ], + [ + 'id' => 'addons\webman\controller\AdminController\form-post', + 'pid' => 'addons\webman\controller\AdminController\index', + 'action' => 'form', + 'method' => 'post', + 'group' => 'department', + 'url' => 'ex-admin/addons-webman-controller-AdminController/form', + 'title' => '系统用户添加', + ], + [ + 'id' => 'addons\webman\controller\AdminController\form-put', + 'pid' => 'addons\webman\controller\AdminController\index', + 'action' => 'form', + 'method' => 'put', + 'group' => 'department', + 'url' => 'ex-admin/addons-webman-controller-AdminController/form', + 'title' => '系统用户修改', + ], + // 角色管理 + [ + 'id' => 'addons\webman\controller\RoleController\index', + 'pid' => 'addons\webman\controller\AdminController-', + 'action' => 'index', + 'method' => 'get', + 'group' => 'department', + 'url' => 'ex-admin/addons-webman-controller-RoleController/index', + 'title' => '角色管理', + ], + [ + 'id' => 'addons\webman\controller\RoleController\index-delete', + 'pid' => 'addons\webman\controller\RoleController\index', + 'action' => 'index', + 'method' => 'delete', + 'group' => 'department', + 'url' => 'ex-admin/addons-webman-controller-RoleController/index', + 'title' => '删除系统角色', + ], + [ + 'id' => 'addons\webman\controller\RoleController\form-post', + 'pid' => 'addons\webman\controller\RoleController\index', + 'action' => 'form', + 'method' => 'post', + 'group' => 'department', + 'url' => 'ex-admin/addons-webman-controller-RoleController/form', + 'title' => '添加系统角色', + ], + [ + 'id' => 'addons\webman\controller\RoleController\form-put', + 'pid' => 'addons\webman\controller\RoleController\index', + 'action' => 'form', + 'method' => 'put', + 'group' => 'department', + 'url' => 'ex-admin/addons-webman-controller-RoleController/form', + 'title' => '编辑系统角色', + ], + [ + 'id' => 'addons\webman\controller\RoleController\data', + 'pid' => 'addons\webman\controller\RoleController\index', + 'action' => 'data', + 'method' => '', + 'group' => 'department', + 'url' => 'ex-admin/addons-webman-controller-RoleController/data', + 'title' => '数据权限', + ], + [ + 'id' => 'addons\webman\controller\RoleController\menu-post', + 'pid' => 'addons\webman\controller\RoleController\index', + 'action' => 'menu', + 'method' => 'post', + 'group' => 'department', + 'url' => 'ex-admin/addons-webman-controller-RoleController/menu', + 'title' => '添加菜单权限', + ], + [ + 'id' => 'addons\webman\controller\RoleController\menu-put', + 'pid' => 'addons\webman\controller\RoleController\index', + 'action' => 'menu', + 'method' => 'put', + 'group' => 'department', + 'url' => 'ex-admin/addons-webman-controller-RoleController/menu', + 'title' => '编辑菜单权限', + ], + [ + 'id' => 'addons\webman\controller\RoleController\auth-post', + 'pid' => 'addons\webman\controller\RoleController\index', + 'action' => 'auth', + 'method' => 'post', + 'group' => 'department', + 'url' => 'ex-admin/addons-webman-controller-RoleController/auth', + 'title' => '添加功能权限', + ], + [ + 'id' => 'addons\webman\controller\RoleController\auth-put', + 'pid' => 'addons\webman\controller\RoleController\index', + 'action' => 'auth', + 'method' => 'put', + 'group' => 'department', + 'url' => 'ex-admin/addons-webman-controller-RoleController/auth', + 'title' => '编辑功能权限', + ], + //菜单管理 + [ + 'id' => 'addons\webman\controller\MenuController\index', + 'pid' => 'addons\webman\controller\AdminController-', + 'action' => 'index', + 'method' => '', + 'group' => 'department', + 'url' => 'ex-admin/addons-webman-controller-MenuController/index', + 'title' => '菜单管理', + ], + [ + 'id' => 'addons\webman\controller\MenuController\form-post', + 'pid' => 'addons\webman\controller\MenuController\index', + 'action' => 'form', + 'method' => 'post', + 'group' => 'department', + 'url' => 'ex-admin/addons-webman-controller-MenuController/form', + 'title' => '添加系统菜单', + ], + [ + 'id' => 'addons\webman\controller\MenuController\form-put', + 'pid' => 'addons\webman\controller\MenuController\index', + 'action' => 'form', + 'method' => 'put', + 'group' => 'department', + 'url' => 'ex-admin/addons-webman-controller-MenuController/form', + 'title' => '编辑系统菜单', + ], + //部门管理 + [ + 'id' => 'addons\webman\controller\DepartmentController\index', + 'pid' => 'addons\webman\controller\AdminController-', + 'action' => 'index', + 'method' => 'get', + 'group' => 'department', + 'url' => 'ex-admin/addons-webman-controller-DepartmentController/index', + 'title' => '部门管理', + ], + [ + 'id' => 'addons\webman\controller\DepartmentController\index-delete', + 'pid' => 'addons\webman\controller\DepartmentController\index', + 'action' => 'index', + 'method' => 'delete', + 'group' => 'department', + 'url' => 'ex-admin/addons-webman-controller-DepartmentController/index', + 'title' => '删除部门', + ], + [ + 'id' => 'addons\webman\controller\DepartmentController\form-post', + 'pid' => 'addons\webman\controller\DepartmentController\index', + 'action' => 'form', + 'method' => 'post', + 'group' => 'department', + 'url' => 'ex-admin/addons-webman-controller-DepartmentController/form', + 'title' => '添加部门', + ], + [ + 'id' => 'addons\webman\controller\DepartmentController\form-put', + 'pid' => 'addons\webman\controller\DepartmentController\index', + 'action' => 'form', + 'method' => 'put', + 'group' => 'department', + 'url' => 'ex-admin/addons-webman-controller-DepartmentController/form', + 'title' => '编辑部门', + ], + //岗位管理 + [ + 'id' => 'addons\webman\controller\PostController\index', + 'pid' => 'addons\webman\controller\AdminController-', + 'action' => 'index', + 'method' => 'get', + 'group' => 'department', + 'url' => 'ex-admin/addons-webman-controller-PostController/index', + 'title' => '岗位管理', + ], + [ + 'id' => 'addons\webman\controller\PostController\index-delete', + 'pid' => 'addons\webman\controller\PostController\index', + 'action' => 'index', + 'method' => 'delete', + 'group' => 'department', + 'url' => 'ex-admin/addons-webman-controller-PostController/index', + 'title' => '删除岗位', + ], + [ + 'id' => 'addons\webman\controller\PostController\form-post', + 'pid' => 'addons\webman\controller\PostController\index', + 'action' => 'form', + 'method' => 'post', + 'group' => 'department', + 'url' => 'ex-admin/addons-webman-controller-PostController/form', + 'title' => '添加岗位', + ], + [ + 'id' => 'addons\webman\controller\PostController\form-put', + 'pid' => 'addons\webman\controller\PostController\index', + 'action' => 'form', + 'method' => 'put', + 'group' => 'department', + 'url' => 'ex-admin/addons-webman-controller-PostController/form', + 'title' => '编辑岗位', + ], + //玩家管理 + [ + 'id' => 'addons\webman\controller\PlayerController-', + 'pid' => 0, + 'url' => '', + 'group' => 'department', + 'title' => '玩家管理', + 'children' => [] + ], + [ + 'id' => 'addons\webman\controller\PlayerDeliveryRecordController\index', + 'pid' => 'addons\webman\controller\PlayerController-', + 'action' => 'index', + 'method' => 'get', + 'group' => 'department', + 'url' => 'ex-admin/addons-webman-controller-PlayerController/index', + 'title' => '账变记录', + ], + [ + 'id' => 'addons\webman\controller\PlayerController\index', + 'pid' => 'addons\webman\controller\PlayerController-', + 'action' => 'index', + 'method' => 'get', + 'group' => 'department', + 'url' => 'ex-admin/addons-webman-controller-PlayerController/index', + 'title' => '玩家列表', + ], + [ + 'id' => 'addons\webman\controller\PlayerController\artificialWithdrawal', + 'pid' => 'addons\webman\controller\PlayerController\index', + 'action' => 'artificialWithdrawal', + 'method' => '', + 'group' => 'department', + 'url' => 'ex-admin/addons-webman-controller-PlayerController/artificialWithdrawal', + 'title' => '人工提现' + ], + [ + 'id' => 'addons\webman\controller\PlayerController\artificialRecharge', + 'pid' => 'addons\webman\controller\PlayerController\index', + 'action' => 'artificialRecharge', + 'method' => '', + 'group' => 'department', + 'url' => 'ex-admin/addons-webman-controller-PlayerController/artificialRecharge', + 'title' => '人工充值' + ], + [ + 'id' => 'addons\webman\controller\PlayerController\index-delete', + 'pid' => 'addons\webman\controller\PlayerController\index', + 'action' => 'index', + 'method' => 'delete', + 'group' => 'department', + 'url' => 'ex-admin/addons-webman-controller-PlayerController/index', + 'title' => '删除玩家', + ], + [ + 'id' => 'addons\webman\controller\PlayerController\form-post', + 'pid' => 'addons\webman\controller\PlayerController\index', + 'action' => 'form', + 'method' => 'post', + 'group' => 'department', + 'url' => 'ex-admin/addons-webman-controller-PlayerController/form', + 'title' => '添加玩家', + ], + [ + 'id' => 'addons\webman\controller\PlayerController\form-put', + 'pid' => 'addons\webman\controller\PlayerController\index', + 'action' => 'form', + 'method' => 'put', + 'group' => 'department', + 'url' => 'ex-admin/addons-webman-controller-PlayerController/form', + 'title' => '编辑玩家', + ], + [ + 'id' => 'addons\webman\controller\PlayerController\resetPassword', + 'pid' => 'addons\webman\controller\PlayerController\index', + 'action' => 'resetPassword', + 'method' => '', + 'group' => 'department', + 'url' => 'ex-admin/addons-webman-controller-PlayerController/resetPassword', + 'title' => '重置密码', + ], + [ + 'id' => 'addons\webman\controller\PlayerController\playerWallet', + 'pid' => 'addons\webman\controller\PlayerController\index', + 'action' => 'playerWallet', + 'method' => '', + 'group' => 'department', + 'url' => 'ex-admin/addons-webman-controller-PlayerController/playerWallet', + 'title' => '玩家钱包', + ], + [ + 'id' => 'addons\webman\controller\PlayerController\playerRecord', + 'pid' => 'addons\webman\controller\PlayerController\index', + 'action' => 'playerRecord', + 'method' => '', + 'group' => 'department', + 'url' => 'ex-admin/addons-webman-controller-PlayerController/playerRecord', + 'title' => '钱包记录', + ], + //渠道管理 + [ + 'id' => 'addons\webman\controller\ChannelController-', + 'pid' => 0, + 'url' => '', + 'group' => 'department', + 'title' => '渠道管理', + 'children' => [] + ], + [ + 'id' => 'addons\webman\controller\CurrencyController\index', + 'pid' => 'addons\webman\controller\ChannelController-', + 'action' => 'index', + 'method' => 'get', + 'group' => 'department', + 'url' => 'ex-admin/addons-webman-controller-CurrencyController/index', + 'title' => '货币列表', + ], + [ + 'id' => 'addons\webman\controller\CurrencyController\form-post', + 'pid' => 'addons\webman\controller\CurrencyController\index', + 'action' => 'form', + 'method' => 'post', + 'group' => 'department', + 'url' => 'ex-admin/addons-webman-controller-CurrencyController/form', + 'title' => '添加货币', + ], + [ + 'id' => 'addons\webman\controller\CurrencyController\form-put', + 'pid' => 'addons\webman\controller\CurrencyController\index', + 'action' => 'form', + 'method' => 'put', + 'group' => 'department', + 'url' => 'ex-admin/addons-webman-controller-CurrencyController/form', + 'title' => '编辑货币', + ], + [ + 'id' => 'addons\webman\controller\ChannelController\index', + 'pid' => 'addons\webman\controller\ChannelController-', + 'action' => 'index', + 'method' => 'get', + 'group' => 'department', + 'url' => 'ex-admin/addons-webman-controller-ChannelController/index', + 'title' => '渠道列表', + ], + [ + 'id' => 'addons\webman\controller\ChannelController\index-delete', + 'pid' => 'addons\webman\controller\ChannelController\index', + 'action' => 'index', + 'method' => 'delete', + 'group' => 'department', + 'url' => 'ex-admin/addons-webman-controller-ChannelController/index', + 'title' => '删除渠道', + ], + [ + 'id' => 'addons\webman\controller\ChannelController\form-post', + 'pid' => 'addons\webman\controller\ChannelController\index', + 'action' => 'form', + 'method' => 'post', + 'group' => 'department', + 'url' => 'ex-admin/addons-webman-controller-ChannelController/form', + 'title' => '添加渠道', + ], + [ + 'id' => 'addons\webman\controller\ChannelController\form-put', + 'pid' => 'addons\webman\controller\ChannelController\index', + 'action' => 'form', + 'method' => 'put', + 'group' => 'department', + 'url' => 'ex-admin/addons-webman-controller-ChannelController/form', + 'title' => '编辑渠道', + ], + //客户端管理 + [ + 'id' => 'addons\webman\controller\AnnouncementController-', + 'pid' => 0, + 'url' => '', + 'group' => 'department', + 'title' => '客户端管理', + 'children' => [] + ], + [ + 'id' => 'addons\webman\controller\SystemSettingController\index', + 'pid' => 'addons\webman\controller\AnnouncementController-', + 'action' => 'index', + 'method' => 'get', + 'group' => 'department', + 'url' => 'ex-admin/addons-webman-controller-SystemSettingController/form', + 'title' => '系统设置', + ], + [ + 'id' => 'addons\webman\controller\AnnouncementController\index', + 'pid' => 'addons\webman\controller\AnnouncementController-', + 'action' => 'index', + 'method' => 'get', + 'group' => 'department', + 'url' => 'ex-admin/addons-webman-controller-AnnouncementController/index', + 'title' => '公告列表', + ], + [ + 'id' => 'addons\webman\controller\AnnouncementController\index-delete', + 'pid' => 'addons\webman\controller\AnnouncementController\index', + 'action' => 'index', + 'method' => 'delete', + 'group' => 'department', + 'url' => 'ex-admin/addons-webman-controller-AnnouncementController/index', + 'title' => '删除公告', + ], + [ + 'id' => 'addons\webman\controller\AnnouncementController\form-post', + 'pid' => 'addons\webman\controller\AnnouncementController\index', + 'action' => 'form', + 'method' => 'post', + 'group' => 'department', + 'url' => 'ex-admin/addons-webman-controller-AnnouncementController/form', + 'title' => '添加公告', + ], + [ + 'id' => 'addons\webman\controller\AnnouncementController\form-put', + 'pid' => 'addons\webman\controller\AnnouncementController\index', + 'action' => 'form', + 'method' => 'put', + 'group' => 'department', + 'url' => 'ex-admin/addons-webman-controller-AnnouncementController/form', + 'title' => '编辑公告', + ], + [ + 'id' => 'addons\webman\controller\SliderController\index', + 'pid' => 'addons\webman\controller\AnnouncementController-', + 'action' => 'index', + 'method' => 'get', + 'group' => 'department', + 'url' => 'ex-admin/addons-webman-controller-SliderController/index', + 'title' => '轮播图列表', + ], + [ + 'id' => 'addons\webman\controller\SliderController\index-delete', + 'pid' => 'addons\webman\controller\SliderController\index', + 'action' => 'index', + 'method' => 'delete', + 'group' => 'department', + 'url' => 'ex-admin/addons-webman-controller-SliderController/index', + 'title' => '删除轮播图', + ], + [ + 'id' => 'addons\webman\controller\SliderController\form-post', + 'pid' => 'addons\webman\controller\SliderController\index', + 'action' => 'form', + 'method' => 'post', + 'group' => 'department', + 'url' => 'ex-admin/addons-webman-controller-SliderController/form', + 'title' => '添加轮播图', + ], + [ + 'id' => 'addons\webman\controller\SliderController\form-put', + 'pid' => 'addons\webman\controller\SliderController\index', + 'action' => 'form', + 'method' => 'put', + 'group' => 'department', + 'url' => 'ex-admin/addons-webman-controller-SliderController/form', + 'title' => '编辑轮播图', + ], + //系统管理 + [ + 'id' => 'addons\webman\controller\ConfigController-', + 'pid' => 0, + 'url' => '', + 'group' => 'department', + 'title' => '系统管理', + 'children' => [] + ], + [ + 'id' => 'addons\webman\controller\ConfigController\form-get', + 'pid' => 'addons\webman\controller\ConfigController-', + 'action' => 'form', + 'method' => 'get', + 'group' => 'department', + 'url' => 'ex-admin/addons-webman-controller-ConfigController/form', + 'title' => '查看系统配置', + ], + [ + 'id' => 'addons\webman\controller\ConfigController\form-post', + 'pid' => 'addons\webman\controller\ConfigController-', + 'action' => 'form', + 'method' => 'post', + 'group' => 'department', + 'url' => 'ex-admin/addons-webman-controller-ConfigController/form', + 'title' => '编辑系统配置', + ], + [ + 'id' => 'addons\webman\controller\AttachmentController\index', + 'pid' => 'addons\webman\controller\ConfigController-', + 'action' => 'index', + 'method' => 'get', + 'group' => 'department', + 'url' => 'ex-admin/addons-webman-controller-AttachmentController/index', + 'title' => '附件列表', + ], + [ + 'id' => 'addons\webman\controller\AttachmentController\index-delete', + 'pid' => 'addons\webman\controller\AttachmentController\index', + 'action' => 'index', + 'method' => 'delete', + 'group' => 'department', + 'url' => 'ex-admin/addons-webman-controller-AttachmentController/index', + 'title' => '删除附件', + ], + [ + 'id' => 'addons\webman\controller\AttachmentController\cate', + 'pid' => 'addons\webman\controller\AttachmentController\index', + 'action' => 'cate', + 'method' => '', + 'group' => 'department', + 'url' => 'ex-admin/addons-webman-controller-AttachmentController/index', + 'title' => '附件分类', + ], +]; diff --git a/config/app.php b/config/app.php new file mode 100644 index 0000000..4078e5f --- /dev/null +++ b/config/app.php @@ -0,0 +1,29 @@ + + * @copyright walkor + * @link http://www.workerman.net/ + * @license http://www.opensource.org/licenses/mit-license.php MIT License + */ + +use support\Request; + +return [ + 'debug' => env('APP_DEBUG', true), + 'error_reporting' => E_ALL, + 'default_timezone' => 'Asia/Shanghai', + 'request_class' => Request::class, + 'public_path' => base_path() . DIRECTORY_SEPARATOR . 'public', + 'runtime_path' => base_path(false) . DIRECTORY_SEPARATOR . 'runtime', + 'controller_suffix' => 'Controller', + 'controller_reuse' => false, + 'currency' => env('currency', 'TWD'), + 'env' => env('APP_ENV', 'pro'), + 'profit' => 'task', // 分润结算模式(task任务模式每天结算前天, event事件模式实时结算) +]; \ No newline at end of file diff --git a/config/autoload.php b/config/autoload.php new file mode 100644 index 0000000..69a8135 --- /dev/null +++ b/config/autoload.php @@ -0,0 +1,21 @@ + + * @copyright walkor + * @link http://www.workerman.net/ + * @license http://www.opensource.org/licenses/mit-license.php MIT License + */ + +return [ + 'files' => [ + base_path() . '/app/functions.php', + base_path() . '/support/Request.php', + base_path() . '/support/Response.php', + ] +]; diff --git a/config/bootstrap.php b/config/bootstrap.php new file mode 100644 index 0000000..6bcb734 --- /dev/null +++ b/config/bootstrap.php @@ -0,0 +1,20 @@ + + * @copyright walkor + * @link http://www.workerman.net/ + * @license http://www.opensource.org/licenses/mit-license.php MIT License + */ + +return [ + support\bootstrap\Session::class, + support\bootstrap\LaravelDb::class, + Webman\ThinkOrm\ThinkOrm::class, + Webman\ThinkCache\ThinkCache::class, +]; diff --git a/config/channel_node.php b/config/channel_node.php new file mode 100644 index 0000000..0486693 --- /dev/null +++ b/config/channel_node.php @@ -0,0 +1,502 @@ + 'addons\webman\controller\ChannelIndexController\index', + 'pid' => 0, + 'action' => 'index', + 'method' => '', + 'group' => 'channel', + 'url' => 'ex-admin/addons-webman-controller-ChannelIndexController/index', + 'title' => '数据中心', + ], + + //用户管理 + [ + 'id' => 'addons\webman\controller\ChannelAdminController-', + 'pid' => 0, + 'url' => '', + 'group' => 'channel', + 'title' => '权限管理', + 'children' => [] + ], + [ + 'id' => 'addons\webman\controller\ChannelAdminController\index', + 'pid' => 'addons\webman\controller\ChannelAdminController-', + 'action' => 'index', + 'method' => 'get', + 'group' => 'channel', + 'url' => 'ex-admin/addons-webman-controller-ChannelAdminController/index', + 'title' => '系统用户列表', + ], + [ + 'id' => 'addons\webman\controller\ChannelAdminController\index-delete', + 'pid' => 'addons\webman\controller\ChannelAdminController\index', + 'action' => 'index', + 'method' => 'delete', + 'group' => 'channel', + 'url' => 'ex-admin/addons-webman-controller-ChannelAdminController/index', + 'title' => '删除系统用户', + ], + [ + 'id' => 'addons\webman\controller\ChannelAdminController\resetPassword', + 'pid' => 'addons\webman\controller\ChannelAdminController\index', + 'action' => 'resetPassword', + 'method' => 'post', + 'group' => 'channel', + 'url' => 'ex-admin/addons-webman-controller-ChannelAdminController/resetPassword', + 'title' => '重置密码', + ], + [ + 'id' => 'addons\webman\controller\ChannelAdminController\form-post', + 'pid' => 'addons\webman\controller\ChannelAdminController\index', + 'action' => 'form', + 'method' => 'post', + 'group' => 'channel', + 'url' => 'ex-admin/addons-webman-controller-ChannelAdminController/form', + 'title' => '添加系统用户', + ], + [ + 'id' => 'addons\webman\controller\ChannelAdminController\form-put', + 'pid' => 'addons\webman\controller\ChannelAdminController\index', + 'action' => 'form', + 'method' => 'put', + 'group' => 'channel', + 'url' => 'ex-admin/addons-webman-controller-ChannelAdminController/form', + 'title' => '编辑系统用户', + ], + [ + 'id' => 'addons\webman\controller\ChannelPostController\index', + 'pid' => 'addons\webman\controller\ChannelAdminController-', + 'action' => 'index', + 'method' => 'get', + 'group' => 'channel', + 'url' => 'ex-admin/addons-webman-controller-ChannelPostController/index', + 'title' => '岗位列表', + ], + [ + 'id' => 'addons\webman\controller\ChannelPostController\index-delete', + 'pid' => 'addons\webman\controller\ChannelPostController\index', + 'action' => 'index', + 'method' => 'delete', + 'group' => 'channel', + 'url' => 'ex-admin/addons-webman-controller-ChannelPostController/index', + 'title' => '删除岗位', + ], + [ + 'id' => 'addons\webman\controller\ChannelPostController\form-post', + 'pid' => 'addons\webman\controller\ChannelPostController\index', + 'action' => 'form', + 'method' => 'post', + 'group' => 'channel', + 'url' => 'ex-admin/addons-webman-controller-ChannelPostController/form', + 'title' => '添加岗位', + ], + [ + 'id' => 'addons\webman\controller\ChannelPostController\form-put', + 'pid' => 'addons\webman\controller\ChannelPostController\index', + 'action' => 'form', + 'method' => 'put', + 'group' => 'channel', + 'url' => 'ex-admin/addons-webman-controller-ChannelPostController/form', + 'title' => '编辑岗位', + ], + // 渠道玩家质料修改日志 + [ + 'id' => 'addons\webman\controller\ChannelPlayerEditLogController-', + 'pid' => 0, + 'url' => '', + 'group' => 'channel', + 'title' => '日志中心', + 'children' => [] + ], + [ + 'id' => 'addons\webman\controller\ChannelPlayerEditLogController\index', + 'pid' => 'addons\webman\controller\ChannelPlayerEditLogController-', + 'action' => 'index', + 'method' => 'get', + 'group' => 'channel', + 'url' => 'ex-admin/addons-webman-controller-ChannelPlayerEditLogController/index', + 'title' => '玩家质料修改日志', + ], + [ + 'id' => 'addons\webman\controller\ChannelPlayerMoneyEditLogController\index', + 'pid' => 'addons\webman\controller\ChannelPlayerEditLogController-', + 'action' => 'index', + 'method' => 'get', + 'group' => 'channel', + 'url' => 'ex-admin/addons-webman-controller-ChannelPlayerMoneyEditLogController/index', + 'title' => '玩家钱包操作日志', + ], + //玩家管理 + [ + 'id' => 'addons\webman\controller\ChannelPlayerController-', + 'pid' => 0, + 'url' => '', + 'group' => 'channel', + 'title' => '玩家管理', + 'children' => [] + ], + [ + 'id' => 'addons\webman\controller\ChannelPlayerController\index', + 'pid' => 'addons\webman\controller\ChannelPlayerController-', + 'action' => 'index', + 'method' => 'get', + 'group' => 'channel', + 'url' => 'ex-admin/addons-webman-controller-ChannelPlayerController/index', + 'title' => '玩家列表', + ], + [ + 'id' => 'addons\webman\controller\ChannelPlayerController\form-post', + 'pid' => 'addons\webman\controller\ChannelPlayerController\index', + 'action' => 'form', + 'method' => 'post', + 'group' => 'channel', + 'url' => 'ex-admin/addons-webman-controller-ChannelPlayerController/form', + 'title' => '添加玩家', + ], + [ + 'id' => 'addons\webman\controller\ChannelPlayerController\form-put', + 'pid' => 'addons\webman\controller\ChannelPlayerController\index', + 'action' => 'form', + 'method' => 'put', + 'group' => 'channel', + 'url' => 'ex-admin/addons-webman-controller-ChannelPlayerController/form', + 'title' => '编辑玩家', + ], + [ + 'id' => 'addons\webman\controller\ChannelPlayerController\index-delete', + 'pid' => 'addons\webman\controller\ChannelPlayerController\index', + 'action' => 'index', + 'method' => 'delete', + 'group' => 'channel', + 'url' => 'ex-admin/addons-webman-controller-ChannelPlayerController/index', + 'title' => '删除玩家', + ], + [ + 'id' => 'addons\webman\controller\ChannelPlayerController\playerRecord', + 'pid' => 'addons\webman\controller\ChannelPlayerController\index', + 'action' => 'playerRecord', + 'method' => '', + 'group' => 'channel', + 'url' => 'ex-admin/addons-webman-controller-ChannelPlayerController/playerRecord', + 'title' => '钱包余额-查看记录', + ], + [ + 'id' => 'addons\webman\controller\ChannelPlayerController\playerWallet', + 'pid' => 'addons\webman\controller\ChannelPlayerController\index', + 'action' => 'playerWallet', + 'method' => '', + 'group' => 'channel', + 'url' => 'ex-admin/addons-webman-controller-ChannelPlayerController/playerWallet', + 'title' => '玩家钱包', + ], + [ + 'id' => 'addons\webman\controller\ChannelPlayerController\artificialWithdrawal', + 'pid' => 'addons\webman\controller\ChannelPlayerController\index', + 'action' => 'artificialWithdrawal', + 'method' => '', + 'group' => 'channel', + 'url' => 'ex-admin/addons-webman-controller-ChannelPlayerController/artificialWithdrawal', + 'title' => '人工提现', + ], + [ + 'id' => 'addons\webman\controller\ChannelPlayerController\artificialRecharge', + 'pid' => 'addons\webman\controller\ChannelPlayerController\index', + 'action' => 'artificialRecharge', + 'method' => '', + 'group' => 'channel', + 'url' => 'ex-admin/addons-webman-controller-ChannelPlayerController/artificialRecharge', + 'title' => '人工充值', + ], + [ + 'id' => 'addons\webman\controller\ChannelPlayerDeliveryRecordController\index', + 'pid' => 'addons\webman\controller\ChannelPlayerController-', + 'action' => 'index', + 'method' => 'get', + 'group' => 'channel', + 'url' => 'ex-admin/addons-webman-controller-ChannelPlayerDeliveryRecordController/index', + 'title' => '账变记录', + ], + //轮播图管理 + [ + 'id' => 'addons\webman\controller\ChannelSliderController-', + 'pid' => 0, + 'url' => '', + 'group' => 'channel', + 'title' => '客户端管理', + 'children' => [] + ], + [ + 'id' => 'addons\webman\controller\ChannelSliderController\index', + 'pid' => 'addons\webman\controller\ChannelSliderController-', + 'action' => 'index', + 'method' => 'get', + 'group' => 'channel', + 'url' => 'ex-admin/addons-webman-controller-ChannelSliderController/index', + 'title' => '轮播图列表', + ], + [ + 'id' => 'addons\webman\controller\ChannelSliderController\index-delete', + 'pid' => 'addons\webman\controller\ChannelSliderController\index', + 'action' => 'index', + 'method' => 'delete', + 'group' => 'channel', + 'url' => 'ex-admin/addons-webman-controller-ChannelSliderController/index', + 'title' => '删除轮播图', + ], + [ + 'id' => 'addons\webman\controller\ChannelSliderController\form-post', + 'pid' => 'addons\webman\controller\ChannelSliderController\index', + 'action' => 'form', + 'method' => 'post', + 'group' => 'channel', + 'url' => 'ex-admin/addons-webman-controller-ChannelSliderController/form', + 'title' => '添加轮播图', + ], + [ + 'id' => 'addons\webman\controller\ChannelSliderController\form-put', + 'pid' => 'addons\webman\controller\ChannelSliderController\index', + 'action' => 'form', + 'method' => 'put', + 'group' => 'channel', + 'url' => 'ex-admin/addons-webman-controller-ChannelSliderController/form', + 'title' => '编辑轮播图', + ], + [ + 'id' => 'addons\webman\controller\ChannelMarqueeController\index', + 'pid' => 'addons\webman\controller\ChannelSliderController-', + 'action' => 'index', + 'method' => 'get', + 'group' => 'channel', + 'url' => 'ex-admin/addons-webman-controller-ChannelMarqueeController/index', + 'title' => '跑马灯列表', + ], + [ + 'id' => 'addons\webman\controller\ChannelAnnouncementController\index', + 'pid' => 'addons\webman\controller\ChannelSliderController-', + 'action' => 'index', + 'method' => 'get', + 'group' => 'channel', + 'url' => 'ex-admin/addons-webman-controller-ChannelAnnouncementController/index', + 'title' => '公告列表', + ], + [ + 'id' => 'addons\webman\controller\ChannelAnnouncementController\index-delete', + 'pid' => 'addons\webman\controller\ChannelAnnouncementController\index', + 'action' => 'index', + 'method' => 'delete', + 'group' => 'channel', + 'url' => 'ex-admin/addons-webman-controller-ChannelAnnouncementController/index', + 'title' => '删除公告', + ], + [ + 'id' => 'addons\webman\controller\ChannelAnnouncementController\form-post', + 'pid' => 'addons\webman\controller\ChannelAnnouncementController\index', + 'action' => 'form', + 'method' => 'post', + 'group' => 'channel', + 'url' => 'ex-admin/addons-webman-controller-ChannelAnnouncementController/form', + 'title' => '添加公告', + ], + [ + 'id' => 'addons\webman\controller\ChannelAnnouncementController\form-put', + 'pid' => 'addons\webman\controller\ChannelAnnouncementController\index', + 'action' => 'form', + 'method' => 'put', + 'group' => 'channel', + 'url' => 'ex-admin/addons-webman-controller-ChannelAnnouncementController/form', + 'title' => '编辑公告', + ], + //财务管理 + [ + 'id' => 'addons\webman\controller\ChannelRechargeRecordController-', + 'pid' => 0, + 'url' => '', + 'group' => 'channel', + 'title' => '财务管理', + 'children' => [] + ], + [ + 'id' => 'addons\webman\controller\ChannelWithdrawRecordController\index', + 'pid' => 'addons\webman\controller\ChannelRechargeRecordController-', + 'action' => 'index', + 'method' => 'get', + 'group' => 'channel', + 'url' => 'ex-admin/addons-webman-controller-ChannelWithdrawRecordController/index', + 'title' => '提现记录', + ], + [ + 'id' => 'addons\webman\controller\ChannelRechargeController\index', + 'pid' => 'addons\webman\controller\ChannelRechargeRecordController-', + 'action' => 'index', + 'method' => 'get', + 'group' => 'channel', + 'url' => 'ex-admin/addons-webman-controller-ChannelRechargeController/index', + 'title' => '充值渠道配置', + ], + [ + 'id' => 'addons\webman\controller\ChannelRechargeController\methodForm-post', + 'pid' => 'addons\webman\controller\ChannelRechargeController\index', + 'action' => 'methodForm', + 'method' => 'post', + 'group' => 'channel', + 'url' => 'ex-admin/addons-webman-controller-ChannelRechargeController/methodForm', + 'title' => '添加充值方式', + ], + [ + 'id' => 'addons\webman\controller\ChannelRechargeController\methodForm', + 'pid' => 'addons\webman\controller\ChannelRechargeController\index', + 'action' => 'methodForm', + 'method' => '', + 'group' => 'channel', + 'url' => 'ex-admin/addons-webman-controller-ChannelRechargeController/methodForm', + 'title' => '编辑充值方式', + ], + [ + 'id' => 'addons\webman\controller\ChannelRechargeController\form', + 'pid' => 'addons\webman\controller\ChannelRechargeController\index', + 'action' => 'form', + 'method' => '', + 'group' => 'channel', + 'url' => 'ex-admin/addons-webman-controller-ChannelRechargeController/form', + 'title' => '添加充值账户', + ], + [ + 'id' => 'addons\webman\controller\ChannelRechargeController\speedPayList', + 'pid' => 'addons\webman\controller\ChannelRechargeRecordController-', + 'action' => 'speedPayList', + 'method' => 'get', + 'group' => 'channel', + 'url' => 'ex-admin/addons-webman-controller-ChannelRechargeController/speedPayList', + 'title' => '在线充值', + ], + [ + 'id' => 'addons\webman\controller\ChannelRechargeController\addSpeedPay', + 'pid' => 'addons\webman\controller\ChannelRechargeRecordController-', + 'action' => 'addSpeedPay', + 'method' => '', + 'group' => 'channel', + 'url' => 'ex-admin/addons-webman-controller-ChannelRechargeController/addSpeedPay', + 'title' => '在线充值配置', + ], + [ + 'id' => 'addons\webman\controller\ChannelRechargeRecordController\index', + 'pid' => 'addons\webman\controller\ChannelRechargeRecordController-', + 'action' => 'index', + 'method' => 'get', + 'group' => 'channel', + 'url' => 'ex-admin/addons-webman-controller-ChannelRechargeRecordController/index', + 'title' => '充值记录', + ], + [ + 'id' => 'addons\webman\controller\ChannelRechargeRecordController\examineList', + 'pid' => 'addons\webman\controller\ChannelRechargeRecordController-', + 'action' => 'examineList', + 'method' => 'get', + 'group' => 'channel', + 'url' => 'ex-admin/addons-webman-controller-ChannelRechargeRecordController/examineList', + 'title' => '充值审核', + ], + [ + 'id' => 'addons\webman\controller\ChannelRechargeRecordController\reject', + 'pid' => 'addons\webman\controller\ChannelRechargeRecordController\examineList', + 'action' => 'reject', + 'method' => '', + 'group' => 'channel', + 'url' => 'ex-admin/addons-webman-controller-ChannelRechargeRecordController/reject', + 'title' => '审核拒绝', + ], + [ + 'id' => 'addons\webman\controller\ChannelRechargeRecordController\pass', + 'pid' => 'addons\webman\controller\ChannelRechargeRecordController\examineList', + 'action' => 'pass', + 'method' => '', + 'group' => 'channel', + 'url' => 'ex-admin/addons-webman-controller-ChannelRechargeRecordController/pass', + 'title' => '审核通过', + ], + [ + 'id' => 'addons\webman\controller\ChannelRechargeRecordController\rechargeCertificate', + 'pid' => 'addons\webman\controller\ChannelRechargeRecordController\examineList', + 'action' => 'rechargeCertificate', + 'method' => '', + 'group' => 'channel', + 'url' => 'ex-admin/addons-webman-controller-ChannelRechargeRecordController/rechargeCertificate', + 'title' => '查看付款凭证', + ], + [ + 'id' => 'addons\webman\controller\ChannelRechargeRecordController\rechargeSetting', + 'pid' => 'addons\webman\controller\ChannelRechargeRecordController\examineList', + 'action' => 'rechargeSetting', + 'method' => '', + 'group' => 'channel', + 'url' => 'ex-admin/addons-webman-controller-ChannelRechargeRecordController/rechargeSetting', + 'title' => '查看充值账号配置', + ], + [ + 'id' => 'addons\webman\controller\ChannelWithdrawRecordController\examineList', + 'pid' => 'addons\webman\controller\ChannelRechargeRecordController-', + 'action' => 'examineList', + 'method' => 'get', + 'group' => 'channel', + 'url' => 'ex-admin/addons-webman-controller-ChannelWithdrawRecordController/examineList', + 'title' => '提现审核', + ], + [ + 'id' => 'addons\webman\controller\ChannelWithdrawRecordController\viewRechargeList', + 'pid' => 'addons\webman\controller\ChannelWithdrawRecordController\examineList', + 'action' => 'viewRechargeList', + 'method' => 'get', + 'group' => 'channel', + 'url' => 'ex-admin/addons-webman-controller-ChannelWithdrawRecordController/viewRechargeList', + 'title' => '查看充值记录', + ], + [ + 'id' => 'addons\webman\controller\ChannelWithdrawRecordController\viewGameList', + 'pid' => 'addons\webman\controller\ChannelWithdrawRecordController\examineList', + 'action' => 'viewGameList', + 'method' => 'get', + 'group' => 'channel', + 'url' => 'ex-admin/addons-webman-controller-ChannelWithdrawRecordController/viewGameList', + 'title' => '查看游戏记录', + ], + [ + 'id' => 'addons\webman\controller\ChannelWithdrawRecordController\reject', + 'pid' => 'addons\webman\controller\ChannelWithdrawRecordController\examineList', + 'action' => 'reject', + 'method' => '', + 'group' => 'channel', + 'url' => 'ex-admin/addons-webman-controller-ChannelWithdrawRecordController/reject', + 'title' => '审核拒绝', + ], + [ + 'id' => 'addons\webman\controller\ChannelWithdrawRecordController\pass', + 'pid' => 'addons\webman\controller\ChannelWithdrawRecordController\examineList', + 'action' => 'pass', + 'method' => '', + 'group' => 'channel', + 'url' => 'ex-admin/addons-webman-controller-ChannelWithdrawRecordController/pass', + 'title' => '审核通过', + ], + [ + 'id' => 'addons\webman\controller\ChannelWithdrawRecordController\paymentList', + 'pid' => 'addons\webman\controller\ChannelRechargeRecordController-', + 'action' => 'paymentList', + 'method' => 'get', + 'group' => 'channel', + 'url' => 'ex-admin/addons-webman-controller-ChannelWithdrawRecordController/paymentList', + 'title' => '提现打款', + ], + [ + 'id' => 'addons\webman\controller\ChannelWithdrawRecordController\payment', + 'pid' => 'addons\webman\controller\ChannelWithdrawRecordController\paymentList', + 'action' => 'payment', + 'method' => '', + 'group' => 'channel', + 'url' => 'ex-admin/addons-webman-controller-ChannelWithdrawRecordController/payment', + 'title' => '提交打款凭证', + ] +]; diff --git a/config/container.php b/config/container.php new file mode 100644 index 0000000..13edbac --- /dev/null +++ b/config/container.php @@ -0,0 +1,19 @@ + + * @copyright walkor + * @link http://www.workerman.net/ + * @license http://www.opensource.org/licenses/mit-license.php MIT License + */ + +$builder = new \DI\ContainerBuilder(); +$builder->addDefinitions(config('dependence', [])); +$builder->useAutowiring(true); +$builder->useAnnotations(true); +return $builder->build(); \ No newline at end of file diff --git a/config/database.php b/config/database.php new file mode 100644 index 0000000..bb9d168 --- /dev/null +++ b/config/database.php @@ -0,0 +1,37 @@ + + * @copyright walkor + * @link http://www.workerman.net/ + * @license http://www.opensource.org/licenses/mit-license.php MIT License + */ + +return [ + 'default' => env('DB_CONNECTION', 'mysql'), + 'connections' => [ + 'mysql' => [ + 'driver' => 'mysql', + 'host' => env('DB_HOST', '127.0.0.1'), + 'port' => env('DB_PORT', '3306'), + 'database' => env('DB_DATABASE', 'forge'), + 'username' => env('DB_USERNAME', 'forge'), + 'password' => env('DB_PASSWORD', ''), + 'unix_socket' => env('DB_SOCKET', ''), + 'charset' => 'utf8mb4', + 'collation' => 'utf8mb4_unicode_ci', + 'prefix' => '', + 'prefix_indexes' => true, + 'strict' => true, + 'engine' => null, + 'options' => [ + \PDO::ATTR_TIMEOUT => 3 + ], + ] + ] +]; \ No newline at end of file diff --git a/config/def_avatar.php b/config/def_avatar.php new file mode 100644 index 0000000..7851b62 --- /dev/null +++ b/config/def_avatar.php @@ -0,0 +1,14 @@ + env('APP_URL', 'http://127.0.0.1:8787') . '/def_avatar/nan1.png', + 2 => env('APP_URL', 'http://127.0.0.1:8787') . '/def_avatar/nan2.png', + 3 => env('APP_URL', 'http://127.0.0.1:8787') . '/def_avatar/nan3.png', + 5 => env('APP_URL', 'http://127.0.0.1:8787') . '/def_avatar/nan4.png', + 6 => env('APP_URL', 'http://127.0.0.1:8787') . '/def_avatar/nan5.png', + 7 => env('APP_URL', 'http://127.0.0.1:8787') . '/def_avatar/nv1.png', + 8 => env('APP_URL', 'http://127.0.0.1:8787') . '/def_avatar/nv2.png', + 9 => env('APP_URL', 'http://127.0.0.1:8787') . '/def_avatar/nv3.png', + 10 => env('APP_URL', 'http://127.0.0.1:8787') . '/def_avatar/nv4.png', + 11 => env('APP_URL', 'http://127.0.0.1:8787') . '/def_avatar/nv5.png', +]; diff --git a/config/dependence.php b/config/dependence.php new file mode 100644 index 0000000..8e964ed --- /dev/null +++ b/config/dependence.php @@ -0,0 +1,15 @@ + + * @copyright walkor + * @link http://www.workerman.net/ + * @license http://www.opensource.org/licenses/mit-license.php MIT License + */ + +return []; \ No newline at end of file diff --git a/config/event.php b/config/event.php new file mode 100644 index 0000000..0b67a5f --- /dev/null +++ b/config/event.php @@ -0,0 +1,3 @@ + + * @copyright walkor + * @link http://www.workerman.net/ + * @license http://www.opensource.org/licenses/mit-license.php MIT License + */ + +return [ + '' => support\exception\Handler::class, + 'api' => \app\exception\ApiHandler::class, +]; \ No newline at end of file diff --git a/config/game_platform.php b/config/game_platform.php new file mode 100644 index 0000000..0b32846 --- /dev/null +++ b/config/game_platform.php @@ -0,0 +1,251 @@ + [ + 'api_domain' => 'https://api365.sungaming.games', + 'domain' => 'https://game.lucky365.cc', + 'app_id' => 'BB428C0141FE47578AD3DFAB1F075F72', + 'app_secret' => '8C060E85E1F947A39F9E03AC7AF26846', + 'admin_url' => 'https://www.lkagent.cc/', + 'admin_user' => 'L365API3051MYS', + ], + 'MEGA888' => [ + 'api_domain' => 'https://mgapi-ali.yidaiyiluclub.com/mega-cloud/api/', + 'domain' => 'https://www.weimen99f.net', + 'app_id' => 'Mega1-4961', + 'app_secret' => 'Wp1yT/dlinuMXbq0g+6OlrFQhgA=', + 'sn' => 'ld00', + 'admin_url' => 'https://k3.mega166.com', + 'admin_user' => 'Mega14961s1', + ], + 'JILI' => [ + 'api_domain' => 'https://wb-api-2.jiscc77s.com/api1/', + 'domain' => 'https://play.mking11.com/', + 'app_id' => 'ON9_samsung88_MYR', + 'app_secret' => 'df4a08fcd94b48c7a8f5c5e6c5abda0e560a5a66', + 'admin_url' => 'https://wb-api4.jlfafafa3.com/', + 'admin_user' => 'ON9_samsung88_MYR', + ], + 'BIGGAMING' => [ + 'api_domain' => 'http://n1api.trarot.com/open-cloud/api/', + 'domain' => 'https://www.weimen99f.net', + 'app_id' => '181837', + 'app_secret' => '54E260D5AB1B4B1A9EF84DC392B998F9', + 'sn' => 'ty15', + 'admin_url' => 'http://ty158266.bgvip66.com', + 'admin_user' => 'Samsung88', + 'admin_pass' => 'Abcd1234', + ], + 'KISS918' => [ + 'api_domain' => 'http://api.918kiss.com:9991/', + 'record_api' => 'http://api.918kiss.com:9919/', + 'domain' => '', + 'app_id' => 'a06kiss', + 'auth' => 'feXZAjPKxYsBBExSaabu', + 'app_secret' => '7a958AFsf6W296WF3Ugf', + 'admin_url' => 'aiu.918kiss.com', + 'admin_user' => 'a06kiss', + ], + 'PRAGMATIC' => [ + 'api_domain' => 'https://api-2133.ppgames.net', + 'domain' => '', + 'name' => 'Samsung88', + 'secure_login' => 'pvd_samsung88', + 'provider_id' => 'PragmaticPlay', + 'app_secret' => '0cAcD962C0544f12', + 'admin_url' => 'https://backoffice-2133.ppgames.net/', + 'admin_user' => 'samsung88_admin', + ], + 'JDB' => [ + 'api_domain' => 'http://api.jdb1688.net', + 'domain' => '', + 'dc' => 'COLR', + 'iv' => 'bb6c659d4b3177c5', + 'key' => 'e2a648e621621dd1', + 'admin_url' => 'https://agent.jdb1688.net', + 'admin_user' => 'samsung88', + 'admin_psw' => 'Abcd1234', + 'platform_game_type' => [ + 'CB', + 'FH', + 'LK', + 'OT', + 'SL', + ] + ], + 'MARIOCLUB' => [ + 'api_domain' => 'https://api.marioclub88.online', + 'domain' => 'https://play.mking11.com/', + 'app_id' => 'ALMYR', + 'app_secret' => 'da725f16bb1274b8abd11d8f5d3b919b80809e0986eb024dacecdc5d8c310483', + 'admin_url' => 'https://ag.marioclub88.info/', + 'admin_user' => 'ALMYR', + ], + 'JOKER' => [ + 'api_domain' => 'https://w.apiext88.net', + 'domain' => 'https://www.weimen99f.net', + 'app_id' => 'FP17', + 'provider_code' => 'JOKER', + 'app_secret' => '1di6o3at6apks', + 'admin_url' => 'https://www.partnerbo888a.net', + 'admin_user' => 'FP17M', + 'platform_game_type' => [ + 'FH', + 'LK', + 'OT', + 'SL', + ] + ], + 'ASIAGAMING' => [ + 'api_domain' => 'gsmd.336699bet.com', + 'domain' => '', + 'app_id' => 'd08u', + 'provider_code' => 'AG', + 'app_secret' => 'ec88090da0e6fab55d3c778116128330', + 'admin_url' => 'http://mdbo.1199119.com/', + 'admin_user' => 'awin16868usd', + 'platform_game_type' => [ + 'FH', + 'LC', + 'SL' + ] + ], + 'TFGAMING' => [ + 'api_domain' => 'gsmd.336699bet.com', + 'domain' => '', + 'app_id' => 'd08u', + 'provider_code' => 'TF', + 'app_secret' => 'ec88090da0e6fab55d3c778116128330', + 'admin_url' => 'tfas.r4espt.com', + 'admin_user' => 'win168ausdusdo01', + 'platform_game_type' => [ + 'ES', + 'SB', + ] + ], + 'IBC' => [ + 'api_domain' => 'gsmd.336699bet.com', + 'domain' => '', + 'app_id' => 'd08u', + 'provider_code' => 'IB', + 'app_secret' => 'ec88090da0e6fab55d3c778116128330', + 'admin_url' => 'https://ibsbo.gsoft688.com/Account/Login.aspx', + 'admin_user' => 'M77', + 'platform_game_type' => [ + 'ES', + 'SB', + ] + ], + 'PLAYSTAR' => [ + 'api_domain' => 'gsmd.336699bet.com', + 'domain' => '', + 'app_id' => 'd08u', + 'provider_code' => 'ps', + 'app_secret' => 'ec88090da0e6fab55d3c778116128330', + 'admin_url' => 'https://pssgadmin.always988.com/', + 'admin_user' => 'pvwin168ausdcs01', + 'platform_game_type' => [ + 'FH', + 'SL', + ] + ], + 'AWC68' => [ + 'api_domain' => 'gsmd.336699bet.com', + 'domain' => '', + 'app_id' => 'd08u', + 'provider_code' => 'S6', + 'app_secret' => 'ec88090da0e6fab55d3c778116128330', + 'admin_url' => 'https://gciag.usplaynet.com', + 'admin_user' => 'testwin186usd', + 'platform_game_type' => [ + 'FH', + 'LC', + 'OT', + 'SL' + ] + ], + 'GAMEPLAY' => [ + 'api_domain' => 'gsmd.336699bet.com', + 'domain' => '', + 'app_id' => 'd08u', + 'provider_code' => 'G8', + 'app_secret' => 'ec88090da0e6fab55d3c778116128330', + 'admin_url' => 'https://gpbo.gsoft688.com/Account/Login.aspx', + 'admin_user' => 'W88_A1', + 'platform_game_type' => [ + 'SL', + 'LK', + 'LC', + 'APP' + ] + ], + 'NEXTSPIN' => [ + 'api_domain' => 'gsmd.336699bet.com', + 'domain' => '', + 'app_id' => 'd08u', + 'provider_code' => 'NS', + 'app_secret' => 'ec88090da0e6fab55d3c778116128330', + 'admin_url' => 'http://bo.88golddragon.com/', + 'admin_user' => 'W88_A1', + 'platform_game_type' => [ + 'FH', + 'SL', + ] + ], + 'WMCASINO' => [ + 'api_domain' => 'gsmd.336699bet.com', + 'domain' => '', + 'app_id' => 'd08u', + 'provider_code' => 'WC', + 'app_secret' => 'ec88090da0e6fab55d3c778116128330', + 'admin_url' => 'https://hp8.pokp02.net/', + 'admin_user' => 'd08usdapi', + 'platform_game_type' => [ + 'LC', + ] + ], + 'SPADEGAMING' => [ + 'api_domain' => 'gsmd.336699bet.com', + 'domain' => '', + 'app_id' => 'd08u', + 'provider_code' => 'SG', + 'app_secret' => 'ec88090da0e6fab55d3c778116128330', + 'admin_url' => 'http://backoffice.hugedolphin.com/login.jsp', + 'admin_user' => 'd08usdapi', + 'platform_game_type' => [ + 'FH', + 'SL', + ] + ], + 'FUNKYGAME' => [ + 'api_domain' => 'gsmd.336699bet.com', + 'domain' => '', + 'app_id' => 'd08u', + 'provider_code' => 'FK', + 'app_secret' => 'ec88090da0e6fab55d3c778116128330', + 'admin_url' => 'http://bo.funkygames.io/', + 'admin_user' => 'WIN168AUSD', + 'platform_game_type' => [ + 'FH', + 'LK', + 'OT', + 'SL', + ] + ], + 'R5' => [ + 'api_domain' => 'gsmd.336699bet.com', + 'domain' => '', + 'app_id' => 'd08u', + 'provider_code' => 'R5', + 'app_secret' => 'ec88090da0e6fab55d3c778116128330', + 'admin_url' => 'http://bo.klonostek.com', + 'admin_user' => 'cp_opwin168ausd', + 'platform_game_type' => [ + 'FH', + 'LK', + 'OT', + 'SL', + ] + ], + 'bankruptcy_money' => 5 +]; diff --git a/config/jp-sms.php b/config/jp-sms.php new file mode 100644 index 0000000..fc0e817 --- /dev/null +++ b/config/jp-sms.php @@ -0,0 +1,10 @@ + 'Ybz2h8', + 'appcode' => '1000', + 'appsecret' => 'iny93x', + 'domain' => 'http://47.242.85.7:9090', + 'batchSend' => '/sms/batch/v2', + 'balance' => '/sms/balance/v1', +]; diff --git a/config/log.php b/config/log.php new file mode 100644 index 0000000..307c435 --- /dev/null +++ b/config/log.php @@ -0,0 +1,64 @@ + + * @copyright walkor + * @link http://www.workerman.net/ + * @license http://www.opensource.org/licenses/mit-license.php MIT License + */ + +return [ + 'default' => [ + 'handlers' => [ + [ + 'class' => Monolog\Handler\RotatingFileHandler::class, + 'constructor' => [ + runtime_path() . '/logs/webman.log', + 7, //$maxFiles + Monolog\Logger::DEBUG, + ], + 'formatter' => [ + 'class' => Monolog\Formatter\LineFormatter::class, + 'constructor' => [null, 'Y-m-d H:i:s', true], + ], + ] + ], + ], + 'game_log' => [ + 'handlers' => [ + [ + 'class' => Monolog\Handler\RotatingFileHandler::class, + 'constructor' => [ + runtime_path() . '/logs/game_log.log', + 7, //$maxFiles + Monolog\Logger::DEBUG, + ], + 'formatter' => [ + 'class' => Monolog\Formatter\LineFormatter::class, + 'constructor' => [null, 'Y-m-d H:i:s', true], + ], + ] + ], + ], + 'pay_log' => [ + 'handlers' => [ + [ + 'class' => Monolog\Handler\RotatingFileHandler::class, + 'constructor' => [ + runtime_path() . '/logs/pay_log.log', + 7, //$maxFiles + Monolog\Logger::DEBUG, + ], + 'formatter' => [ + 'class' => Monolog\Formatter\LineFormatter::class, + 'constructor' => [null, 'Y-m-d H:i:s', true], + ], + ] + ], + ], +]; diff --git a/config/middleware.php b/config/middleware.php new file mode 100644 index 0000000..5362b8e --- /dev/null +++ b/config/middleware.php @@ -0,0 +1,28 @@ + + * @copyright walkor + * @link http://www.workerman.net/ + * @license http://www.opensource.org/licenses/mit-license.php MIT License + */ + +use app\middleware\AppVersionMiddleware; +use app\middleware\Lang; +use app\middleware\SiteAuthMiddleware; + +return [ + // api应用中间件 + 'api' => [ +// ApiSignMiddleware::class +// AccessControl::class, + SiteAuthMiddleware::class, + Lang::class, + AppVersionMiddleware::class + ], +]; \ No newline at end of file diff --git a/config/one_pay.php b/config/one_pay.php new file mode 100644 index 0000000..481b041 --- /dev/null +++ b/config/one_pay.php @@ -0,0 +1,11 @@ + 'AliWin', + 'key' => 'KFfWS8j5Lu1gfef4akclTxSb0', + 'api_key' => 'HHIgy4B7uL8QU5XcSwFVALERY', + 'domain' => 'https://api.one1pay.asia/', + 'notifyUrl' => 'https://api.sumsung888.top/external/one-recharge-notify', + 'payoutNotifyUrl' => 'https://api.sumsung888.top/external/one-withdrawal-notify', + 'returnUrl' => 'https://api.sumsung888.top/external/onepay-query' +]; diff --git a/config/plugin/gitfei1231/webman-api-sign/app.php b/config/plugin/gitfei1231/webman-api-sign/app.php new file mode 100644 index 0000000..3df5a50 --- /dev/null +++ b/config/plugin/gitfei1231/webman-api-sign/app.php @@ -0,0 +1,68 @@ + true, + + /** + * 配置 driver + * 数组配置驱动 \Wengg\WebmanApiSign\Driver\ArrayDriver::class + * 数据库配置驱动 \Wengg\WebmanApiSign\Driver\DatabaseDriver::class (使用的是 ThinkORM) + * 如需要自定义驱动,继承 \Wengg\WebmanApiSign\Driver\BaseDriver::class + */ + 'driver' => \Wengg\WebmanApiSign\Driver\ArrayDriver::class, + 'encrypt' => 'sha256', //加密sign方式, + 'timeout' => 0, //timestamp超时时间秒,0不限制 + 'table' => 'app_sign', //表名 + + /** + * 防重放请求是否开启 true只能请求一次,时间是上面 timeout内 + * replay 主要借助与 timeout + noncestr随机值进行验证, 一定的时间内noncestr如果重复,那就判定重放请求 + * noncestr 建议生成随机唯一UUID 或者你使用 13位时间戳+18位随机数。1678159075243(13位)+随机数(18位) + */ + 'replay' => false, + + /** + * 如果使用 DatabaseDriver 需要缓存查询后的数据 + * 设置缓存时间即可缓存对应的app_id数据 + * db_cache_time => null 关闭缓存 + */ + 'db_cache_time' => 604800, // null 关闭缓存 + + //字段对照,可从(header,get,post)获取的值 + 'fields' => [ + 'app_id' => 'appId', //app_id + 'app_key' => 'appKey', //app_key rsa加密才需要传,appKey为前端随机生成的app_secret秘钥,用于加密sign和报文数据 + 'timestamp' => 'timestamp', //时间戳 + 'noncestr' => 'nonceStr', //随机字符串 + 'signature' => 'signature', //签名字符串 + ], + + //driver为ArrayDriver时生效,对应table + 'app_sign' => [ + [ + 'app_id' => '1661408635', //应用id + 'app_name' => '默认', //应用名称 + 'status' => 1, //状态:0=禁用,1=启用 + 'expired_at' => null, //过期时间,例如:2023-01-01 00:00:00,null不限制 + 'app_secret' => 'D81668E7B3F24F4DAB32E5B88EAE27AC', //应用秘钥 不启用RSA使用 + 'encrypt_body' => 0, //状态:0=禁用,1=启用 算法:aes-128-cbc 是否加密body传入加密后的报文字符串,启用RSA需要使用自动生成的app_secret进行对称加密,否则使用固定的app_secret进行对称加密 + 'rsa_status' => 0, //状态:0=禁用,1=启用 启用RSA,主要用rsa加密随机生成的app_secret,而不使用固定app_secret + /** + * sign私钥 RS256加密 + */ + 'private_key' => << << true, +]; \ No newline at end of file diff --git a/config/plugin/rockys/ex-admin-webman/bootstrap.php b/config/plugin/rockys/ex-admin-webman/bootstrap.php new file mode 100644 index 0000000..2736c41 --- /dev/null +++ b/config/plugin/rockys/ex-admin-webman/bootstrap.php @@ -0,0 +1,17 @@ + + * @copyright walkor + * @link http://www.workerman.net/ + * @license http://www.opensource.org/licenses/mit-license.php MIT License + */ + +return [ + \ExAdmin\webman\ServiceProvider::class +]; diff --git a/config/plugin/rockys/ex-admin-webman/command.php b/config/plugin/rockys/ex-admin-webman/command.php new file mode 100644 index 0000000..5674a6e --- /dev/null +++ b/config/plugin/rockys/ex-admin-webman/command.php @@ -0,0 +1,6 @@ + env('FILESYSTEM_DRIVER', 'local'), + + /* + |-------------------------------------------------------------------------- + | Filesystem Disks + |-------------------------------------------------------------------------- + | + | Here you may configure as many filesystem "disks" as you wish, and you + | may even configure multiple disks of the same driver. Defaults have + | been setup for each driver as an example of the required options. + | + | Supported Drivers: "local", "ftp", "sftp", "s3" + | + */ + + 'disks' => [ + 'local' => [ + 'driver' => \addons\webman\filesystem\driver\Local::class, + 'root' => public_path('storage'), + 'url' => env('APP_URL','http://127.0.0.1:8787').'/storage', + 'visibility' => 'public', + ], + ], +]; diff --git a/config/plugin/rockys/ex-admin-webman/middleware.php b/config/plugin/rockys/ex-admin-webman/middleware.php new file mode 100644 index 0000000..afe4437 --- /dev/null +++ b/config/plugin/rockys/ex-admin-webman/middleware.php @@ -0,0 +1,20 @@ + + * @copyright walkor + * @link http://www.workerman.net/ + * @license http://www.opensource.org/licenses/mit-license.php MIT License + */ + +return [ + '' => [ + \ExAdmin\webman\middleware\RequestMiddleware::class + ] + +]; \ No newline at end of file diff --git a/config/plugin/rockys/ex-admin-webman/process.php b/config/plugin/rockys/ex-admin-webman/process.php new file mode 100644 index 0000000..84aa769 --- /dev/null +++ b/config/plugin/rockys/ex-admin-webman/process.php @@ -0,0 +1,11 @@ + [ + 'handler' => Webman\RedisQueue\Process\Consumer::class, + 'count' => 8, // 可以设置多进程同时消费 + 'constructor' => [ + // 消费者类目录 + 'consumer_dir' => base_path() . '/addons/webman/grid/Jobs' + ] + ] +]; \ No newline at end of file diff --git a/config/plugin/rockys/ex-admin-webman/route.php b/config/plugin/rockys/ex-admin-webman/route.php new file mode 100644 index 0000000..612e9ab --- /dev/null +++ b/config/plugin/rockys/ex-admin-webman/route.php @@ -0,0 +1,11 @@ +webman){ + plugin()->webman->route(); +} + + + + + + + diff --git a/config/plugin/tinywan/jwt/app.php b/config/plugin/tinywan/jwt/app.php new file mode 100644 index 0000000..f2e7811 --- /dev/null +++ b/config/plugin/tinywan/jwt/app.php @@ -0,0 +1,72 @@ + true, + 'jwt' => [ + // 算法类型 HS256、HS384、HS512、RS256、RS384、RS512、ES256、ES384、Ed25519 + 'algorithms' => 'HS256', + // access令牌秘钥 + 'access_secret_key' => '2022d3d3LmJq', + // access令牌过期时间,单位:秒。默认 15天 + 'access_exp' => 1296000, + // refresh令牌秘钥 + 'refresh_secret_key' => '2022KTxigxc9o50c', + // refresh令牌过期时间,单位:秒。默认 30 天 + 'refresh_exp' => 2592000, + // refresh 令牌是否禁用,默认不禁用 false + 'refresh_disable' => false, + // 令牌签发者 + 'iss' => 'webman.tinywan.cn', + // 某个时间点后才能访问,单位秒。(如:30 表示当前时间30秒后才能使用) + 'nbf' => 0, + // 时钟偏差冗余时间,单位秒。建议这个余地应该不大于几分钟。 + 'leeway' => 60, + // 单设备登录 + 'is_single_device' => true, + // 缓存令牌时间,单位:秒。默认 15 天 + 'cache_token_ttl' => 1296000, + // 缓存令牌前缀 + 'cache_token_pre' => 'JWT:TOKEN:', + 'cache_refresh_token_pre' => 'JWT:REFRESH_TOKEN:', + // 用户信息模型 + 'user_model' => function($uid){ + return []; + }, + + /** + * access令牌私钥 + */ + 'access_private_key' => << << << << true, + /** + * 日志相关 + */ + 'log' => [ + /** + * 日志是否启用,建议启用 + */ + 'enable' => false, + /** + * 日志的 channel + */ + 'channel' => 'default', + /** + * 日志的级别 + */ + 'level' => 'info', + /** + * 日志格式 + * 启用 custom 时无实际作用 + * @link \GuzzleHttp\MessageFormatter::format() + */ + 'format' => \GuzzleHttp\MessageFormatter::CLF, + /** + * 自定义日志 + * + * 返回 WebmanTech\LaravelHttpClient\Guzzle\Log\CustomLogInterface 时使用 @see WebmanTech\LaravelHttpClient\Guzzle\Log\Middleware::__invoke() + * 返回 null 时使用 guzzle 的 @see GuzzleHttp\Middleware::log() + * 返回 callable 时使用自定义 middleware @link https://docs.guzzlephp.org/en/stable/handlers-and-middleware.html#middleware + * + * 建议使用 CustomLogInterface 形式,支持慢请求、请求时长、更多配置 + */ + 'custom' => function (array $config) { + /** + * @see \WebmanTech\LaravelHttpClient\Guzzle\Log\CustomLog::$config + */ + $config = [ + 'log_channel' => $config['channel'], + ]; + return new \WebmanTech\LaravelHttpClient\Guzzle\Log\CustomLog($config); + } + ], + /** + * guzzle 全局的 options + * @link https://laravel.com/docs/8.x/http-client#guzzle-options + */ + 'guzzle' => [ + 'debug' => false, + 'timeout' => 10, + ], + /** + * 扩展 Http 功能,一般可用于快速定义 api 信息 + * @link https://laravel.com/docs/8.x/http-client#macros + */ + 'macros' => [ + /*'httpbin' => function() { + return Http::baseUrl('https://httpbin.org') + ->asJson(); + }*/ + ], +]; diff --git a/config/plugin/webman/console/app.php b/config/plugin/webman/console/app.php new file mode 100644 index 0000000..aec978f --- /dev/null +++ b/config/plugin/webman/console/app.php @@ -0,0 +1,20 @@ + true, + + 'build_dir' => BASE_PATH . DIRECTORY_SEPARATOR . 'build', + + 'phar_filename' => 'webman.phar', + + 'bin_filename' => 'webman.bin', + + 'signature_algorithm'=> Phar::SHA256, //set the signature algorithm for a phar and apply it. The signature algorithm must be one of Phar::MD5, Phar::SHA1, Phar::SHA256, Phar::SHA512, or Phar::OPENSSL. + + 'private_key_file' => '', // The file path for certificate or OpenSSL private key file. + + 'exclude_pattern' => '#^(?!.*(composer.json|/.github/|/.idea/|/.git/|/.setting/|/runtime/|/vendor-bin/|/build/|/vendor/webman/admin/))(.*)$#', + + 'exclude_files' => [ + '.env', 'LICENSE', 'composer.json', 'composer.lock', 'start.php', 'webman.phar', 'webman.bin' + ] +]; diff --git a/config/plugin/webman/event/app.php b/config/plugin/webman/event/app.php new file mode 100644 index 0000000..8f9c426 --- /dev/null +++ b/config/plugin/webman/event/app.php @@ -0,0 +1,4 @@ + true, +]; \ No newline at end of file diff --git a/config/plugin/webman/event/bootstrap.php b/config/plugin/webman/event/bootstrap.php new file mode 100644 index 0000000..e5b09ba --- /dev/null +++ b/config/plugin/webman/event/bootstrap.php @@ -0,0 +1,17 @@ + + * @copyright walkor + * @link http://www.workerman.net/ + * @license http://www.opensource.org/licenses/mit-license.php MIT License + */ + +return [ + Webman\Event\BootStrap::class, +]; diff --git a/config/plugin/webman/event/command.php b/config/plugin/webman/event/command.php new file mode 100644 index 0000000..e860cf7 --- /dev/null +++ b/config/plugin/webman/event/command.php @@ -0,0 +1,7 @@ + true, + 'exception' => [ + // 是否记录异常到日志 + 'enable' => true, + // 不会记录到日志的异常类 + 'dontReport' => [ + support\exception\BusinessException::class + ] + ] +]; diff --git a/config/plugin/webman/log/middleware.php b/config/plugin/webman/log/middleware.php new file mode 100644 index 0000000..acf9763 --- /dev/null +++ b/config/plugin/webman/log/middleware.php @@ -0,0 +1,21 @@ + + * @copyright walkor + * @link http://www.workerman.net/ + * @license http://www.opensource.org/licenses/mit-license.php MIT License + */ + +use Webman\Log\Middleware; + +return [ + '' => [ + Middleware::class + ] +]; \ No newline at end of file diff --git a/config/plugin/webman/push/app.php b/config/plugin/webman/push/app.php new file mode 100644 index 0000000..4ae960d --- /dev/null +++ b/config/plugin/webman/push/app.php @@ -0,0 +1,10 @@ + true, + 'websocket' => 'websocket://0.0.0.0:3132', + 'api' => 'http://127.0.0.1:3233', + 'app_key' => '20f94408fc4c52845f162e92a253c7a3', + 'app_secret' => '3151f8648a6ccd9d4515386f34127e28', + 'channel_hook' => 'http://127.0.0.1:8787/plugin/webman/push/hook', + 'auth' => '/plugin/webman/push/auth' +]; \ No newline at end of file diff --git a/config/plugin/webman/push/process.php b/config/plugin/webman/push/process.php new file mode 100644 index 0000000..01c545d --- /dev/null +++ b/config/plugin/webman/push/process.php @@ -0,0 +1,21 @@ + [ + 'handler' => Server::class, + 'listen' => config('plugin.webman.push.app.websocket'), + 'count' => 1, // 必须是1 + 'reloadable' => false, // 执行reload不重启 + 'constructor' => [ + 'api_listen' => config('plugin.webman.push.app.api'), + 'app_info' => [ + config('plugin.webman.push.app.app_key') => [ + 'channel_hook' => config('plugin.webman.push.app.channel_hook'), + 'app_secret' => config('plugin.webman.push.app.app_secret'), + ], + ] + ] + ] +]; \ No newline at end of file diff --git a/config/plugin/webman/push/route.php b/config/plugin/webman/push/route.php new file mode 100644 index 0000000..ea54c37 --- /dev/null +++ b/config/plugin/webman/push/route.php @@ -0,0 +1,87 @@ + + * @copyright walkor + * @link http://www.workerman.net/ + * @license http://www.opensource.org/licenses/mit-license.php MIT License + */ + +use support\Request; +use Webman\Route; +use Webman\Push\Api; + +/** + * 推送js客户端文件 + */ +Route::get('/plugin/webman/push/push.js', function (Request $request) { + return response()->file(base_path().'/vendor/webman/push/src/push.js'); +}); + +/** + * 私有频道鉴权,这里应该使用session辨别当前用户身份,然后确定该用户是否有权限监听channel_name + */ +Route::post(config('plugin.webman.push.app.auth'), function (Request $request) { + $pusher = new Api(str_replace('0.0.0.0', '127.0.0.1', config('plugin.webman.push.app.api')), config('plugin.webman.push.app.app_key'), config('plugin.webman.push.app.app_secret')); + $channel_name = $request->post('channel_name'); + $session = $request->session(); + // 这里应该通过session和channel_name判断当前用户是否有权限监听channel_name + $has_authority = true; + if ($has_authority) { + return response($pusher->socketAuth($channel_name, $request->post('socket_id'))); + } else { + return response('Forbidden', 403); + } +}); + +/** + * 当频道上线以及下线时触发的回调 + * 频道上线:是指某个频道从没有连接在线到有连接在线的事件 + * 频道下线:是指某个频道的所有连接都断开触发的事件 + */ +Route::post(parse_url(config('plugin.webman.push.app.channel_hook'), PHP_URL_PATH), function (Request $request) { + + // 没有x-pusher-signature头视为伪造请求 + if (!$webhook_signature = $request->header('x-pusher-signature')) { + return response('401 Not authenticated', 401); + } + + $body = $request->rawBody(); + + // 计算签名,$app_secret 是双方使用的密钥,是保密的,外部无从得知 + $expected_signature = hash_hmac('sha256', $body, config('plugin.webman.push.app.app_secret'), false); + + // 安全校验,如果签名不一致可能是伪造的请求,返回401状态码 + if ($webhook_signature !== $expected_signature) { + return response('401 Not authenticated', 401); + } + + // 这里存储这上线 下线的channel数据 + $payload = json_decode($body, true); + + $channels_online = $channels_offline = []; + + foreach ($payload['events'] as $event) { + if ($event['name'] === 'channel_added') { + $channels_online[] = $event['channel']; + } else if ($event['name'] === 'channel_removed') { + $channels_offline[] = $event['channel']; + } + } + + // 业务根据需要处理上下线的channel,例如将在线状态写入数据库,通知其它channel等 + // 上线的所有channel + echo 'online channels: ' . implode(',', $channels_online) . "\n"; + // 下线的所有channel + echo 'offline channels: ' . implode(',', $channels_offline) . "\n"; + + return 'OK'; +}); + + + diff --git a/config/plugin/webman/redis-queue/app.php b/config/plugin/webman/redis-queue/app.php new file mode 100644 index 0000000..8f9c426 --- /dev/null +++ b/config/plugin/webman/redis-queue/app.php @@ -0,0 +1,4 @@ + true, +]; \ No newline at end of file diff --git a/config/plugin/webman/redis-queue/command.php b/config/plugin/webman/redis-queue/command.php new file mode 100644 index 0000000..8bfe2a1 --- /dev/null +++ b/config/plugin/webman/redis-queue/command.php @@ -0,0 +1,7 @@ + + * @copyright walkor + * @link http://www.workerman.net/ + * @license http://www.opensource.org/licenses/mit-license.php MIT License + */ + +return [ + 'default' => [ + 'handlers' => [ + [ + 'class' => Monolog\Handler\RotatingFileHandler::class, + 'constructor' => [ + runtime_path() . '/logs/redis-queue/queue.log', + 7, //$maxFiles + Monolog\Logger::DEBUG, + ], + 'formatter' => [ + 'class' => Monolog\Formatter\LineFormatter::class, + 'constructor' => [null, 'Y-m-d H:i:s', true], + ], + ] + ], + ] +]; diff --git a/config/plugin/webman/redis-queue/process.php b/config/plugin/webman/redis-queue/process.php new file mode 100644 index 0000000..c8d4da1 --- /dev/null +++ b/config/plugin/webman/redis-queue/process.php @@ -0,0 +1,11 @@ + [ + 'handler' => Webman\RedisQueue\Process\Consumer::class, + 'count' => 8, // 可以设置多进程同时消费 + 'constructor' => [ + // 消费者类目录 + 'consumer_dir' => app_path() . '/queue/redis' + ] + ] +]; \ No newline at end of file diff --git a/config/plugin/webman/redis-queue/redis.php b/config/plugin/webman/redis-queue/redis.php new file mode 100644 index 0000000..e106f7e --- /dev/null +++ b/config/plugin/webman/redis-queue/redis.php @@ -0,0 +1,13 @@ + [ + 'host' => 'redis://127.0.0.1:6379', + 'options' => [ + 'auth' => null, // 密码,字符串类型,可选参数 + 'db' => 1, // 数据库 + 'prefix' => '', // key 前缀 + 'max_attempts' => 5, // 消费失败后,重试次数 + 'retry_seconds' => 5, // 重试间隔,单位秒 + ] + ], +]; diff --git a/config/plugin/workbunny/webman-ip-attribution/app.php b/config/plugin/workbunny/webman-ip-attribution/app.php new file mode 100644 index 0000000..575fd95 --- /dev/null +++ b/config/plugin/workbunny/webman-ip-attribution/app.php @@ -0,0 +1,11 @@ + true, + + 'default' => '--', + 'language' => ['zh-CN'], + + 'db-country' => null, + 'db-city' => null, + 'db-asn' => null, +]; \ No newline at end of file diff --git a/config/plugin/yzh52521/jwt_key/private.key b/config/plugin/yzh52521/jwt_key/private.key new file mode 100644 index 0000000..7242374 --- /dev/null +++ b/config/plugin/yzh52521/jwt_key/private.key @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDmA8qKaS3+AIkj +t2IsdFQw8kKHVARk2aPBxkV3qIhpaFpvs/uDA5NkGVR/uFFFsSAOGx6JCsdZRQv7 +byR0NUjyM8iKeHKnSwQwfjuUZkhDd/mVem0RX7GaJJjTqCPYdsZUo1XqCjgHHNUr +drx7FoUMUz6Jr9fsYhVL5huDflsQbAFx5JoHY2xQ1ZEahYbV5dZp2Np0s3JsF7rf +/WtvUYxg/Mk+8coroMi8OPE/+2PUxxFVyyheNjMIYAvMMQxb3+NowNL8lpz8ZmQa +mlWgxDp4d9h+DQWyL+vyJKpqH9azKjlBLsDhPpD/gS7wzyfsuLfePC2rkhrt8zbF +cDPX0B81AgMBAAECggEBALuDLbPmiQMABsziLBuXfick6E2QlcBtmM1YyLsC3qon +00orDQhCev7ok3VHmqHZAwvc2ejYq6k/28PPWIWQBvbEdmFEThvJ0RGDZyjUtWaj +QQm184JtY8kIuroZ4ZcPRSIswdZ5HDHYNIQpWQBzXGWu21W9z6Y6U6g7YASzlqNs +DZ3fLXxSRi+r2/TN/gQTFhygvseeTOI76ULiSsB7gocQxpp5tLtBznXqEu74OWoR +wH+cwvrxaNnx+zGIJsIGYpaJSZmOvkgAJQ6GTGT65l71O/DX2syOsMFI1k5y7Gjb +9jOIivtjbzfP4qFBRKpH2jI56o7/SFenzNe/Iv9DVUECgYEA9Bt0LxUuEEdpjwea ++WM1DcLIRuls85S+sSwe72t4mw22b2H7Ta0iP3YXQ2DN+duzXWxsfr2N0XGUDuw3 +n+WhHqLTA21WFBTdorr0FvgeHPRRnlHS7kjD4AMZS4/wlMhc571fZc2KrJfL/gIr +htWbLudaI7b4ZNm8oZtjKsh2jXECgYEA8TiS/MGm05xuq1Gucp/YkUNkEVhpjZeI +0m7DHxaOrE322v2HnhyvlZDR+gioStS/EjLbaJ8eJlbjMVmRlrGvIhbzUM77unhF +hQLFvEYNEMuUUbVqb3qqJOD+HnO3KDdXTSguhhTuoRxkpbPSrZ9Y5BEAWMDlLBsG +sq6+j173HAUCgYBFtFk24Jtotpuj5g4QzI1nwokiBqG/5GeXe/vRbiTgUcgYgiga +hCfVa0k1Sj1G7b+IG9/XSRVoC0C2CinQFOgvMVuEDQKZdWPchfoRXQRsTC/KP581 +v71/CCN++jk+owA0hFTrYwgIRMhRXhlDxVcsy49nx2WilrJQi2iD3P5NYQKBgQDA +rh0TEqhsbY8k/5jl7HK0De2XwVSHClz7IghwA7exQJGHeW5jyKwkP0rKezHanDeH +lOIXnsoZe9v8ZnxZr9Kh20095ifDWiDFz2IdMqNrIAJ4hf3f0E6qKKIztuC9mf79 +HbST25KFVMW8anhFwXviqQXq3yHv6iKeheCnawbd9QKBgQCuD0vgx+8/6sKpowx3 +n11zi1pPv3gEUmAW9ivL/xHHKZbymTZkjPHiRVv6ddlQiLigRnArvyQnhKCSwiVi +T/G8hR2axKuEJw0Z6feKRj590ZN2OrbDgEXz45OOvMMktFY+wjJsa9Qouj4Od5br +6mIaRJhf1EUlYdMKMJo2f2Te8w== +-----END PRIVATE KEY----- diff --git a/config/plugin/yzh52521/jwt_key/public.key b/config/plugin/yzh52521/jwt_key/public.key new file mode 100644 index 0000000..b94f96b --- /dev/null +++ b/config/plugin/yzh52521/jwt_key/public.key @@ -0,0 +1,9 @@ +-----BEGIN PUBLIC KEY----- +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5gPKimkt/gCJI7diLHRU +MPJCh1QEZNmjwcZFd6iIaWhab7P7gwOTZBlUf7hRRbEgDhseiQrHWUUL+28kdDVI +8jPIinhyp0sEMH47lGZIQ3f5lXptEV+xmiSY06gj2HbGVKNV6go4BxzVK3a8exaF +DFM+ia/X7GIVS+Ybg35bEGwBceSaB2NsUNWRGoWG1eXWadjadLNybBe63/1rb1GM +YPzJPvHKK6DIvDjxP/tj1McRVcsoXjYzCGALzDEMW9/jaMDS/Jac/GZkGppVoMQ6 +eHfYfg0Fsi/r8iSqah/Wsyo5QS7A4T6Q/4Eu8M8n7Li33jwtq5Ia7fM2xXAz19Af +NQIDAQAB +-----END PUBLIC KEY----- diff --git a/config/plugin/yzh52521/lock/app.php b/config/plugin/yzh52521/lock/app.php new file mode 100644 index 0000000..fa331be --- /dev/null +++ b/config/plugin/yzh52521/lock/app.php @@ -0,0 +1,30 @@ + true, + 'storage' => 'redis', // file/redis, 建议使用 redis,file 不支持 ttl + 'storage_configs' => [ + 'file' => [ + 'class' => FlockStore::class, + 'construct' => [ + 'lockPath' => runtime_path() . '/lock', + ], + ], + 'redis' => [ + 'class' => RedisStore::class, + 'construct' => function () { + return [ + 'redis' => \support\Redis::connection('default')->client(), + ]; + }, + ], + ], + 'default_config' => [ + 'ttl' => 300, // 默认锁超时时间 + 'auto_release' => true, // 是否自动释放,建议设置为 true + 'prefix' => 'lock_', // 锁前缀 + ], +]; \ No newline at end of file diff --git a/config/process.php b/config/process.php new file mode 100644 index 0000000..3315a27 --- /dev/null +++ b/config/process.php @@ -0,0 +1,48 @@ + + * @copyright walkor + * @link http://www.workerman.net/ + * @license http://www.opensource.org/licenses/mit-license.php MIT License + */ + +use process\CommissionSettlement; +use process\MegaPlayGameRecord; +use process\SyncPlayGameRecord; +use process\SendBroadcast; +use Workerman\Worker; + +return [ + // File update detection and automatic reload + 'monitor' => [ + 'handler' => process\Monitor::class, + 'reloadable' => false, + 'constructor' => [ + // Monitor these directories + 'monitorDir' => array_merge([ + app_path(), + config_path(), + base_path() . '/addons', + base_path() . '/process', + base_path() . '/support', + base_path() . '/plugin', + base_path() . '/resource', + base_path() . '/.env', + ], glob(base_path() . '/plugin/*/app'), glob(base_path() . '/plugin/*/config'), glob(base_path() . '/plugin/*/api')), + // Files with these suffixes will be monitored + 'monitorExtensions' => [ + 'php', 'html', 'htm', 'env' + ], + 'options' => [ + 'enable_file_monitor' => !Worker::$daemonize && DIRECTORY_SEPARATOR === '/', + 'enable_memory_monitor' => DIRECTORY_SEPARATOR === '/', + ] + ] + ], +]; diff --git a/config/redis.php b/config/redis.php new file mode 100644 index 0000000..af852bf --- /dev/null +++ b/config/redis.php @@ -0,0 +1,22 @@ + + * @copyright walkor + * @link http://www.workerman.net/ + * @license http://www.opensource.org/licenses/mit-license.php MIT License + */ + +return [ + 'default' => [ + 'host' => '127.0.0.1', + 'password' => null, + 'port' => 6379, + 'database' => 1, + ], +]; diff --git a/config/route.php b/config/route.php new file mode 100644 index 0000000..9ebd6c9 --- /dev/null +++ b/config/route.php @@ -0,0 +1,115 @@ + + * @copyright walkor + * @link http://www.workerman.net/ + * @license http://www.opensource.org/licenses/mit-license.php MIT License + */ + +use app\api\controller\v1\AnnouncementController; +use app\api\controller\v1\GameController; +use app\api\controller\v1\IndexController; +use app\api\controller\v1\PlayerController; +use app\api\controller\v1\VersionController; +use app\api\controller\v1\PromoterController; +use Webman\Route; +use app\api\controller\v1\QrcodeController; +use app\external\ExternalApiController; + +Route::options('[{path:.+}]', function () { + return response(''); +}); + +Route::group('/api', function () { + Route::group('/v1', function () { + // 获取版本更新信息 + Route::post('/get-app-update', [VersionController::class, 'getAppUpdate']); + // 渠道信息 + Route::post('/channel-info', [IndexController::class, 'channelInfo']); + //手机号注册 + Route::post('/phone-register', [PlayerController::class, 'phoneRegister']); + //发送验证码 + Route::post('/send-msg', [PlayerController::class, 'sendMsg']); + //忘记密码 + Route::post('/forget-password', [PlayerController::class, 'forgetPassword']); + // 玩家登录 + Route::post('/login', [PlayerController::class, 'login']); + // 获取用户信息 + Route::post('/player-info', [PlayerController::class, 'playerInfo']); + // 编辑昵称 + Route::post('/edit-player-name', [PlayerController::class, 'editPlayerName']); + // 用户银行卡列表 + Route::post('/bank-card-list', [IndexController::class, 'bankCardList']); + // 添加银行卡 + Route::post('/add-bank-card', [IndexController::class, 'addBankCard']); + // 修改银行卡 + Route::post('/edit-bank-card', [IndexController::class, 'editBankCard']); + // 银行卡列表 + Route::post('/bank-list', [IndexController::class, 'bankList']); + // 删除银行卡 + Route::post('/delete-bank-card', [IndexController::class, 'deleteBankCard']); + // 充值列表 + Route::post('/recharge-list', [PlayerController::class, 'rechargeList']); + // 充值项列表 + Route::post('/recharge-setting-list', [PlayerController::class, 'rechargeSettingList']); + // 充值配置详情 + Route::post('/recharge-info', [PlayerController::class, 'rechargeInfo']); + // 登出 + Route::post('/logout', [IndexController::class, 'logout']); + // 玩家充值 + Route::post('/player-recharge', [IndexController::class, 'playerRecharge']); + // 數據中心 + Route::post('/gift-center', [PlayerController::class, 'giftCenter']); + // cash out列表 + Route::post('/cash-out-list', [IndexController::class, 'cashOutList']); + // cash in列表 + Route::post('/cash-in-list', [IndexController::class, 'cashInList']); + // 玩家提现 + Route::post('/withdrawal', [IndexController::class, 'playerWithdrawal']); + // 登录游戏返回游戏地址 + Route::post('/login-game', [GameController::class, 'loginGame']); + // 上传充值凭证 + Route::post('/upload-certificate', [IndexController::class, 'uploadCertificate']); + //se支付 + Route::post('/se-recharge-list', [PlayerController::class, 'seRechargeList']); + Route::post('/se-recharge', [PlayerController::class, 'seRecharge']); + //完成充值 + Route::post('/complete-recharge', [PlayerController::class, 'completeRecharge']); + Route::post('/se-withdrawal', [PlayerController::class, 'seWithdrawal']); + Route::post('/gametest', [GameController::class, 'gametest']); + // 游戏记录 + Route::post('/game-record', [PlayerController::class, 'gameRecord']); + //获取奖品列表 + Route::post('/prize-list', [GameController::class, 'getPrizeList']); + //抽奖 + Route::post('/lottery', [GameController::class, 'lottery']); + //抽奖记录 + Route::post('/draw-records', [GameController::class, 'getDrawRecords']); + //充提记录 + Route::post('/deposit-withdrawal-records', [PlayerController::class, 'depositWithdrawalRecord']); + }); +}); + +// 外部API +Route::group('/external', function () { + Route::get('/login', [ExternalApiController::class, 'login']); + Route::get('/download', [ExternalApiController::class, 'download']); + //skl支付回调 + Route::post('/skl-recharge-notify', [ExternalApiController::class, 'sklRechargeNotify']); + //skl提现回调 + Route::post('/skl-withdrawal-notify', [ExternalApiController::class, 'sklWithdrawalNotify']); + //skl支付跳转 + Route::get('/skl-query/', [ExternalApiController::class, 'sklQuery']); +}); + +Route::disableDefaultRoute(); + + + + diff --git a/config/se-pay.php b/config/se-pay.php new file mode 100644 index 0000000..bfa168d --- /dev/null +++ b/config/se-pay.php @@ -0,0 +1,10 @@ + 'SPMSAM88', + 'MD5' => '52HDSG5Y62T56268D526VSDT5C252Y6R', + 'domain' => 'https://public.wangspay.com/', + 'notifyUrl' => 'https://ss-api.liulao.top/external/se-recharge-notify', + 'payoutNotifyUrl' => 'https://ss-api.liulao.top/external/se-withdrawal-notify', + 'returnUrl' => 'https://ss-api.liulao.top/external/sepay-query' +]; diff --git a/config/server.php b/config/server.php new file mode 100644 index 0000000..10aa38d --- /dev/null +++ b/config/server.php @@ -0,0 +1,31 @@ + + * @copyright walkor + * @link http://www.workerman.net/ + * @license http://www.opensource.org/licenses/mit-license.php MIT License + */ + +return [ + 'listen' => env('APP_LISTEN','http://0.0.0.0:8786'), + 'transport' => 'tcp', + 'context' => [], + 'name' => 'ggl', + 'count' => cpu_count() * 4, + 'user' => '', + 'group' => '', + 'reusePort' => false, + 'event_loop' => '', + 'stop_timeout' => 2, + 'pid_file' => runtime_path() . '/webman.pid', + 'status_file' => runtime_path() . '/webman.status', + 'stdout_file' => runtime_path() . '/logs/stdout.log', + 'log_file' => runtime_path() . '/logs/workerman.log', + 'max_package_size' => 10 * 1024 * 1024 +]; diff --git a/config/session.php b/config/session.php new file mode 100644 index 0000000..043f8c4 --- /dev/null +++ b/config/session.php @@ -0,0 +1,65 @@ + + * @copyright walkor + * @link http://www.workerman.net/ + * @license http://www.opensource.org/licenses/mit-license.php MIT License + */ + +use Webman\Session\FileSessionHandler; +use Webman\Session\RedisSessionHandler; +use Webman\Session\RedisClusterSessionHandler; + +return [ + + 'type' => 'file', // or redis or redis_cluster + + 'handler' => FileSessionHandler::class, + + 'config' => [ + 'file' => [ + 'save_path' => runtime_path() . '/sessions', + ], + 'redis' => [ + 'host' => '127.0.0.1', + 'port' => 6379, + 'auth' => '', + 'timeout' => 2, + 'database' => '', + 'prefix' => 'redis_session_', + ], + 'redis_cluster' => [ + 'host' => ['127.0.0.1:7000', '127.0.0.1:7001', '127.0.0.1:7001'], + 'timeout' => 2, + 'auth' => '', + 'prefix' => 'redis_session_', + ] + ], + + 'session_name' => 'PHPSID', + + 'auto_update_timestamp' => false, + + 'lifetime' => 7*24*60*60, + + 'cookie_lifetime' => 365*24*60*60, + + 'cookie_path' => '/', + + 'domain' => '', + + 'http_only' => true, + + 'secure' => false, + + 'same_site' => '', + + 'gc_probability' => [1, 1000], + +]; diff --git a/config/skl_pay.php b/config/skl_pay.php new file mode 100644 index 0000000..0861ef2 --- /dev/null +++ b/config/skl_pay.php @@ -0,0 +1,10 @@ + 'ggl-ds', + 'api_key' => 'v2.local.FTKkFQnfL0lB4x2KQ_P9ptA7TS-NWUWD4xlkGdVQC4tWZaqOoX-CvK9Wzbqy2AAH0pYyjnzJaL85wWuFA_tRrxAMFQGzPFlwNEocjwdzDDeU5UxyJYLOeuF_I_tccJbWoopXm902wHdSrzDfvwgOVrp23J5TwxO4D9vuHXoNPbDsjumVy71eJ_0bOGW80rK1ucHZa8o4sXut4WgTg6sThivARBgdoc5c6f9nlxErixjNWFj4TaAa77SJfc3hGPmUDD5vPa0IygoLY2lCjcVVUtvpIzqIW_twvawWVB5wcpDJaMRP9IlxF53lxNR27pR2-_5y-VfCrsFYhlBqcs-8iUbct6L6Y0XrqgCxaarip9W7xBNkssdRUp4KRSsxAoe6tveASXqtPCQ.bnVsbA', + 'domain' => 'https://apiv1.skl99.net', + 'notifyUrl' => 'https://gglapi.golucky88.com/external/skl-recharge-notify', + 'payoutNotifyUrl' => 'https://gglapi.golucky88.com/external/skl-withdrawal-notify', + 'returnUrl' => 'https://gglapi.golucky88.com/external/skl-query' +]; diff --git a/config/sms.php b/config/sms.php new file mode 100644 index 0000000..e53d774 --- /dev/null +++ b/config/sms.php @@ -0,0 +1,10 @@ + [886], + 'default_code' => 8888, + "userId" => "dengshikeji2", + "account" => "dengshikeji2", + "password" => "dengshikeji2", + 'aliwy_url' => 'http://smsapi.weiqucloud.com/sms/httpSmsInterface2', +]; diff --git a/config/static.php b/config/static.php new file mode 100644 index 0000000..6313679 --- /dev/null +++ b/config/static.php @@ -0,0 +1,23 @@ + + * @copyright walkor + * @link http://www.workerman.net/ + * @license http://www.opensource.org/licenses/mit-license.php MIT License + */ + +/** + * Static file settings + */ +return [ + 'enable' => true, + 'middleware' => [ // Static file Middleware + //app\middleware\StaticFile::class, + ], +]; \ No newline at end of file diff --git a/config/thinkcache.php b/config/thinkcache.php new file mode 100644 index 0000000..487f18f --- /dev/null +++ b/config/thinkcache.php @@ -0,0 +1,22 @@ + 'file', + 'stores' => [ + 'file' => [ + 'type' => 'File', + // 缓存保存目录 + 'path' => runtime_path() . '/cache/', + // 缓存前缀 + 'prefix' => '', + // 缓存有效期 0表示永久缓存 + 'expire' => 0, + ], + 'redis' => [ + 'type' => 'redis', + 'host' => '127.0.0.1', + 'port' => 6379, + 'prefix' => '', + 'expire' => 0, + ], + ], +]; \ No newline at end of file diff --git a/config/thinkorm.php b/config/thinkorm.php new file mode 100644 index 0000000..02966f9 --- /dev/null +++ b/config/thinkorm.php @@ -0,0 +1,36 @@ + 'mysql', + 'connections' => [ + 'mysql' => [ + // 数据库类型 + 'type' => 'mysql', + // 服务器地址 + 'hostname' => '127.0.0.1', + // 数据库名 + 'database' => 'test', + // 数据库用户名 + 'username' => 'root', + // 数据库密码 + 'password' => '123456', + // 数据库连接端口 + 'hostport' => '3306', + // 数据库连接参数 + 'params' => [ + // 连接超时3秒 + \PDO::ATTR_TIMEOUT => 3, + ], + // 数据库编码默认采用utf8 + 'charset' => 'utf8', + // 数据库表前缀 + 'prefix' => '', + // 断线重连 + 'break_reconnect' => true, + // 关闭SQL监听日志 + 'trigger_sql' => true, + // 自定义分页类 + 'bootstrap' => '' + ], + ], +]; diff --git a/config/translation.php b/config/translation.php new file mode 100644 index 0000000..dbe3d19 --- /dev/null +++ b/config/translation.php @@ -0,0 +1,25 @@ + + * @copyright walkor + * @link http://www.workerman.net/ + * @license http://www.opensource.org/licenses/mit-license.php MIT License + */ + +/** + * Multilingual configuration + */ +return [ + // Default language + 'locale' => 'zh_CN', + // Fallback language + 'fallback_locale' => ['zh_CN', 'en', 'Ma_my'], + // Folder where language files are stored + 'path' => base_path() . '/resource/translations', +]; \ No newline at end of file diff --git a/config/tw-sms.php b/config/tw-sms.php new file mode 100644 index 0000000..898180f --- /dev/null +++ b/config/tw-sms.php @@ -0,0 +1,9 @@ + 'https://smsapi.mitake.com.tw', + 'username' => '42913099', + 'password' => '701001', + 'sm_send_api' => '/api/mtk/SmSend', + 'sm_query_api' => '/api/mtk/SmQuery', +]; diff --git a/config/view.php b/config/view.php new file mode 100644 index 0000000..e3a7b85 --- /dev/null +++ b/config/view.php @@ -0,0 +1,22 @@ + + * @copyright walkor + * @link http://www.workerman.net/ + * @license http://www.opensource.org/licenses/mit-license.php MIT License + */ + +use support\view\Raw; +use support\view\Twig; +use support\view\Blade; +use support\view\ThinkPHP; + +return [ + 'handler' => Raw::class +]; diff --git a/db/migrations/20231019063557_create_channel.php b/db/migrations/20231019063557_create_channel.php new file mode 100644 index 0000000..8c70c97 --- /dev/null +++ b/db/migrations/20231019063557_create_channel.php @@ -0,0 +1,49 @@ +hasTable('channel'); + if (!$exists) { + $table = $this->table('channel', ['comment' => '渠道']); + $table->addColumn('name', 'string', ['limit' => 120, 'null' => false, 'default' => '', 'comment' => '渠道名称']) + ->addColumn('domain', 'string', ['limit' => 80, 'null' => false, 'default' => '', 'comment' => '渠道域名']) + ->addColumn('lang', 'string', ['limit' => 20, 'null' => false, 'default' => '', 'comment' => '语言']) + ->addColumn('currency', 'string', ['limit' => 10, 'null' => false, 'default' => '', 'comment' => '币别代码']) + ->addColumn('department_id', 'integer', ['limit' => MysqlAdapter::INT_REGULAR, 'signed' => true, 'null' => false, 'default' => 0, 'comment' => '部门id']) + ->addColumn('site_id', 'string', ['limit' => 100, 'signed' => true, 'null' => false, 'default' => 0, 'comment' => '渠道编号']) + ->addColumn('user_id', 'integer', ['limit' => MysqlAdapter::INT_REGULAR, 'null' => false, 'default' => 0, 'comment' => '管理员id']) + ->addColumn('status', 'integer', ['limit' => MysqlAdapter::INT_TINY, 'null' => false, 'default' => 1, 'comment' => '状态(0:禁用,1:启用)']) + ->addColumn('recharge_status', 'integer', ['limit' => MysqlAdapter::INT_TINY, 'null' => false, 'default' => 1, 'comment' => '平台充值(0:禁用,1:启用)']) + ->addColumn('withdraw_status', 'integer', ['limit' => MysqlAdapter::INT_TINY, 'null' => false, 'default' => 1, 'comment' => '平台提现状态(0:禁用,1:启用)']) + ->addColumn('web_login_status', 'integer', ['limit' => MysqlAdapter::INT_TINY, 'null' => false, 'default' => 1, 'comment' => 'web登录状态(0:禁用,1:启用)']) + ->addColumn('recharge_amount', 'decimal', ['precision' => 10, 'scale' => 2, 'signed' => true, 'null' => false, 'default' => 0, 'comment' => '官方总充值金额']) + ->addColumn('withdraw_amount', 'decimal', ['precision' => 10, 'scale' => 2, 'signed' => true, 'null' => false, 'default' => 0, 'comment' => '官方总提现金额']) + ->addColumn('wallet_action_status', 'integer', ['limit' => MysqlAdapter::INT_TINY, 'null' => false, 'default' => 1, 'comment' => '玩家钱包操作功能']) + ->addColumn('created_at', 'timestamp', ['comment' => '创建时间']) + ->addColumn('updated_at', 'timestamp', ['comment' => '更新时间']) + ->addColumn('deleted_at', 'timestamp', ['comment' => '删除时间']) + ->addIndex(['name'], ['unique' => true, 'name' => 'uni_name']) + ->addIndex(['department_id'], ['name' => 'idx_department_id']) + ->addIndex(['user_id'], ['name' => 'idx_user_id']) + ->create(); + } + } +} diff --git a/db/migrations/20231019082149_create_admin_configs.php b/db/migrations/20231019082149_create_admin_configs.php new file mode 100644 index 0000000..8fc042d --- /dev/null +++ b/db/migrations/20231019082149_create_admin_configs.php @@ -0,0 +1,33 @@ +hasTable('admin_configs'); + if (!$exists) { + $table = $this->table('admin_configs', ['comment' => '系统配置表']); + $table->addColumn('name', 'string', ['limit' => 100, 'null' => false, 'default' => '', 'comment' => '配置字段']) + ->addColumn('value', 'text', ['limit' => MysqlAdapter::TEXT_MEDIUM, 'comment' => '工控返回']) + ->addColumn('created_at', 'datetime', ['comment' => '创建时间']) + ->addColumn('updated_at', 'datetime', ['comment' => '更新时间']) + ->create(); + } + } +} diff --git a/db/migrations/20231019082538_create_admin_department.php b/db/migrations/20231019082538_create_admin_department.php new file mode 100644 index 0000000..69131db --- /dev/null +++ b/db/migrations/20231019082538_create_admin_department.php @@ -0,0 +1,40 @@ +hasTable('admin_department'); + if (!$exists) { + $table = $this->table('admin_department', ['comment' => '部门表']); + $table->addColumn('pid', 'integer', ['limit' => MysqlAdapter::INT_REGULAR, 'signed' => false, 'null' => false, 'default' => 0, 'comment' => '上级部门']) + ->addColumn('name', 'string', ['limit' => 100, 'null' => false, 'default' => '', 'comment' => '部门名称']) + ->addColumn('leader', 'string', ['limit' => 255, 'null' => false, 'default' => '', 'comment' => '负责人']) + ->addColumn('phone', 'string', ['limit' => 255, 'null' => false, 'default' => '', 'comment' => '手机号']) + ->addColumn('status', 'integer', ['limit' => MysqlAdapter::INT_TINY, 'null' => false, 'default' => 1, 'comment' => '状态:1=正常,0=禁用']) + ->addColumn('type', 'integer', ['limit' => MysqlAdapter::INT_TINY, 'null' => false, 'default' => 1, 'comment' => '1 部门 2渠道']) + ->addColumn('sort', 'integer', ['limit' => MysqlAdapter::INT_REGULAR, 'null' => false, 'default' => 0, 'comment' => '排序']) + ->addColumn('path', 'string', ['limit' => 255, 'null' => false, 'default' => '', 'comment' => '手机号']) + ->addColumn('created_at', 'timestamp', ['comment' => '创建时间']) + ->addColumn('updated_at', 'timestamp', ['comment' => '更新时间']) + ->addColumn('deleted_at', 'timestamp', ['comment' => '删除时间']) + ->create(); + } + } +} diff --git a/db/migrations/20231019083200_create_admin_file_attachment_cates.php b/db/migrations/20231019083200_create_admin_file_attachment_cates.php new file mode 100644 index 0000000..46fd7d0 --- /dev/null +++ b/db/migrations/20231019083200_create_admin_file_attachment_cates.php @@ -0,0 +1,34 @@ +hasTable('admin_file_attachment_cates'); + if (!$exists) { + $table = $this->table('admin_file_attachment_cates', ['comment' => '系统附件分类']); + $table->addColumn('name', 'string', ['limit' => 100, 'null' => false, 'default' => '', 'comment' => '分类名称']) + ->addColumn('pid', 'integer', ['limit' => MysqlAdapter::INT_REGULAR, 'signed' => false, 'null' => false, 'default' => 0, 'comment' => '上级id']) + ->addColumn('permission_type', 'integer', ['limit' => MysqlAdapter::INT_TINY, 'null' => false, 'default' => 0, 'comment' => '0所有人,1仅自己']) + ->addColumn('sort', 'integer', ['limit' => MysqlAdapter::INT_REGULAR, 'null' => false, 'default' => 0, 'comment' => '排序']) + ->addColumn('admin_id', 'integer', ['limit' => MysqlAdapter::INT_REGULAR, 'signed' => false, 'null' => false, 'default' => 0, 'comment' => '后台用户id']) + ->create(); + } + } +} diff --git a/db/migrations/20231019083930_create_admin_file_attachments.php b/db/migrations/20231019083930_create_admin_file_attachments.php new file mode 100644 index 0000000..768f7d4 --- /dev/null +++ b/db/migrations/20231019083930_create_admin_file_attachments.php @@ -0,0 +1,43 @@ +hasTable('admin_file_attachments'); + if (!$exists) { + $table = $this->table('admin_file_attachments', ['comment' => '系统附件分类']); + $table->addColumn('cate_id', 'integer', ['limit' => MysqlAdapter::INT_REGULAR, 'signed' => false, 'null' => false, 'default' => 0, 'comment' => '分类id']) + ->addColumn('uploader_id', 'integer', ['limit' => MysqlAdapter::INT_REGULAR, 'signed' => false, 'null' => false, 'default' => 0, 'comment' => '上传人id']) + ->addColumn('type', 'string', ['limit' => 255, 'null' => false, 'default' => '', 'comment' => 'image图片 file文件']) + ->addColumn('file_type', 'string', ['limit' => 100, 'null' => false, 'default' => '', 'comment' => '文件类型']) + ->addColumn('name', 'string', ['limit' => 100, 'null' => false, 'default' => '', 'comment' => '附件名称']) + ->addColumn('real_name', 'string', ['limit' => 255, 'null' => false, 'default' => '', 'comment' => '原始文件名']) + ->addColumn('path', 'string', ['limit' => 255, 'null' => false, 'default' => '', 'comment' => '路径']) + ->addColumn('url', 'string', ['limit' => 255, 'null' => false, 'default' => '', 'comment' => '访问url']) + ->addColumn('ext', 'string', ['limit' => 10, 'null' => false, 'default' => '', 'comment' => '文件后缀']) + ->addColumn('disk', 'string', ['limit' => 20, 'null' => false, 'default' => '', 'comment' => 'disk']) + ->addColumn('size', 'integer', ['limit' => MysqlAdapter::INT_BIG, 'null' => false, 'default' => 0, 'comment' => '文件大小']) + ->addColumn('created_at', 'datetime', ['comment' => '创建时间']) + ->addColumn('updated_at', 'datetime', ['comment' => '更新时间']) + ->addColumn('deleted_at', 'datetime', ['comment' => '删除时间']) + ->create(); + } + } +} diff --git a/db/migrations/20231019084623_create_admin_menus.php b/db/migrations/20231019084623_create_admin_menus.php new file mode 100644 index 0000000..1414568 --- /dev/null +++ b/db/migrations/20231019084623_create_admin_menus.php @@ -0,0 +1,40 @@ +hasTable('admin_menus'); + if (!$exists) { + $table = $this->table('admin_menus', ['comment' => '系统菜单表']); + $table->addColumn('name', 'string', ['limit' => 100, 'null' => false, 'default' => '', 'comment' => '名称']) + ->addColumn('icon', 'string', ['limit' => 100, 'null' => false, 'default' => '', 'comment' => '图标']) + ->addColumn('url', 'string', ['limit' => 100, 'null' => false, 'default' => '', 'comment' => '链接']) + ->addColumn('plugin', 'string', ['limit' => 100, 'null' => false, 'default' => '', 'comment' => '插件名称']) + ->addColumn('pid', 'integer', ['limit' => MysqlAdapter::INT_REGULAR, 'signed' => false, 'null' => false, 'default' => 0, 'comment' => '父级id']) + ->addColumn('sort', 'integer', ['limit' => MysqlAdapter::INT_REGULAR, 'null' => false, 'default' => 0, 'comment' => '排序']) + ->addColumn('type', 'integer', ['limit' => MysqlAdapter::INT_TINY, 'null' => false, 'default' => 1, 'comment' => '类型 1 总站 2渠道']) + ->addColumn('status', 'integer', ['limit' => MysqlAdapter::INT_TINY, 'null' => false, 'default' => 1, 'comment' => '状态(0:禁用,1:启用)']) + ->addColumn('open', 'integer', ['limit' => MysqlAdapter::INT_TINY, 'null' => false, 'default' => 1, 'comment' => '菜单展开(0:收起,1:展开)']) + ->addColumn('created_at', 'datetime', ['comment' => '创建时间']) + ->addColumn('updated_at', 'datetime', ['comment' => '更新时间']) + ->create(); + } + } +} diff --git a/db/migrations/20231019085033_create_admin_post.php b/db/migrations/20231019085033_create_admin_post.php new file mode 100644 index 0000000..344c283 --- /dev/null +++ b/db/migrations/20231019085033_create_admin_post.php @@ -0,0 +1,37 @@ +hasTable('admin_post'); + if (!$exists) { + $table = $this->table('admin_post', ['comment' => '岗位']); + $table->addColumn('name', 'string', ['limit' => 100, 'null' => false, 'default' => '', 'comment' => '岗位名称']) + ->addColumn('status', 'integer', ['limit' => MysqlAdapter::INT_TINY, 'null' => false, 'default' => 1, 'comment' => '状态(0:禁用,1:启用)']) + ->addColumn('sort', 'integer', ['limit' => MysqlAdapter::INT_REGULAR, 'null' => false, 'default' => 0, 'comment' => '排序']) + ->addColumn('department_id', 'integer', ['limit' => MysqlAdapter::INT_REGULAR, 'null' => false, 'default' => 0, 'comment' => '部门id']) + ->addColumn('type', 'integer', ['limit' => MysqlAdapter::INT_TINY, 'null' => false, 'default' => 1, 'comment' => '类型 1 总站 2渠道']) + ->addColumn('deleted_at', 'datetime', ['comment' => '更新时间']) + ->addColumn('created_at', 'datetime', ['comment' => '创建时间']) + ->addColumn('updated_at', 'datetime', ['comment' => '更新时间']) + ->create(); + } + } +} diff --git a/db/migrations/20231019085352_create_admin_role_department.php b/db/migrations/20231019085352_create_admin_role_department.php new file mode 100644 index 0000000..ab5cec4 --- /dev/null +++ b/db/migrations/20231019085352_create_admin_role_department.php @@ -0,0 +1,33 @@ +hasTable('admin_role_department'); + if (!$exists) { + $table = $this->table('admin_role_department', ['comment' => '角色数据权限部门关联表']); + $table->addColumn('role_id', 'integer', ['limit' => MysqlAdapter::INT_REGULAR, 'null' => false, 'default' => 0, 'comment' => '角色id']) + ->addColumn('department_id', 'integer', ['limit' => MysqlAdapter::INT_REGULAR, 'null' => false, 'default' => 0, 'comment' => '渠道/部门id']) + ->addColumn('created_at', 'datetime', ['comment' => '创建时间']) + ->addColumn('updated_at', 'datetime', ['comment' => '更新时间']) + ->create(); + } + } +} diff --git a/db/migrations/20231019085602_create_admin_role_menus.php b/db/migrations/20231019085602_create_admin_role_menus.php new file mode 100644 index 0000000..37828b2 --- /dev/null +++ b/db/migrations/20231019085602_create_admin_role_menus.php @@ -0,0 +1,32 @@ +hasTable('admin_role_menus'); + if (!$exists) { + $table = $this->table('admin_role_menus', ['comment' => '系统角色菜单表']); + $table->addColumn('role_id', 'integer', ['limit' => MysqlAdapter::INT_REGULAR, 'null' => false, 'default' => 0, 'comment' => '角色id']) + ->addColumn('menu_id', 'integer', ['limit' => MysqlAdapter::INT_REGULAR, 'null' => false, 'default' => 0, 'comment' => '菜单id']) + ->addIndex(['role_id', 'menu_id'], ['name' => 'idx_role_id_menu_id']) + ->create(); + } + } +} diff --git a/db/migrations/20231019085901_create_admin_role_permissions.php b/db/migrations/20231019085901_create_admin_role_permissions.php new file mode 100644 index 0000000..1f922a1 --- /dev/null +++ b/db/migrations/20231019085901_create_admin_role_permissions.php @@ -0,0 +1,32 @@ +hasTable('admin_role_permissions'); + if (!$exists) { + $table = $this->table('admin_role_permissions', ['comment' => '系统角色权限表']); + $table->addColumn('role_id', 'integer', ['limit' => MysqlAdapter::INT_REGULAR, 'null' => false, 'default' => 0, 'comment' => '角色id']) + ->addColumn('node_id', 'string', ['limit' => 255, 'null' => false, 'default' => '0', 'comment' => '节点id']) + ->addIndex(['role_id', 'node_id'], ['name' => 'idx_role_id_node_id']) + ->create(); + } + } +} diff --git a/db/migrations/20231019090118_create_admin_role_users.php b/db/migrations/20231019090118_create_admin_role_users.php new file mode 100644 index 0000000..2bc0f73 --- /dev/null +++ b/db/migrations/20231019090118_create_admin_role_users.php @@ -0,0 +1,32 @@ +hasTable('admin_role_users'); + if (!$exists) { + $table = $this->table('admin_role_users', ['comment' => '系统角色用户表']); + $table->addColumn('role_id', 'integer', ['limit' => MysqlAdapter::INT_REGULAR, 'null' => false, 'default' => 0, 'comment' => '角色id']) + ->addColumn('user_id', 'integer', ['limit' => MysqlAdapter::INT_REGULAR, 'null' => false, 'default' => 0, 'comment' => '用户id']) + ->addIndex(['role_id', 'user_id'], ['name' => 'idx_role_id_user_id']) + ->create(); + } + } +} diff --git a/db/migrations/20231019090238_create_admin_roles.php b/db/migrations/20231019090238_create_admin_roles.php new file mode 100644 index 0000000..3771826 --- /dev/null +++ b/db/migrations/20231019090238_create_admin_roles.php @@ -0,0 +1,36 @@ +hasTable('admin_roles'); + if (!$exists) { + $table = $this->table('admin_roles', ['comment' => '系统角色表']); + $table->addColumn('name', 'string', ['limit' => 20, 'null' => false, 'default' => '', 'comment' => '权限角色名称']) + ->addColumn('desc', 'string', ['limit' => 255, 'null' => false, 'default' => '', 'comment' => '备注说明']) + ->addColumn('sort', 'integer', ['limit' => MysqlAdapter::INT_REGULAR, 'null' => false, 'default' => 0, 'comment' => '排序']) + ->addColumn('created_at', 'datetime', ['comment' => '创建时间']) + ->addColumn('updated_at', 'datetime', ['comment' => '更新时间']) + ->addColumn('check_strictly', 'integer', ['limit' => MysqlAdapter::INT_TINY, 'null' => false, 'default' => 0, 'comment' => '数据权限类型:0=全部数据权限,1=自定义数据权限,2=本部门及以下数据权限,3=本部门数据权限,4=本人数据权限']) + ->addColumn('type', 'integer', ['limit' => MysqlAdapter::INT_TINY, 'null' => false, 'default' => 1, 'comment' => '1 总后台 2渠道后台']) + ->create(); + } + } +} diff --git a/db/migrations/20231019090918_create_admin_users.php b/db/migrations/20231019090918_create_admin_users.php new file mode 100644 index 0000000..13e46cc --- /dev/null +++ b/db/migrations/20231019090918_create_admin_users.php @@ -0,0 +1,45 @@ +hasTable('admin_users'); + if (!$exists) { + $table = $this->table('admin_users', ['comment' => '系统用户表']); + $table->addColumn('username', 'string', ['limit' => 120, 'null' => false, 'default' => '', 'comment' => '用户账号']) + ->addColumn('password', 'string', ['limit' => 80, 'null' => false, 'default' => '', 'comment' => '密码']) + ->addColumn('nickname', 'string', ['limit' => 255, 'null' => false, 'default' => '', 'comment' => '姓名']) + ->addColumn('avatar', 'string', ['limit' => 255, 'null' => false, 'default' => '', 'comment' => '头像']) + ->addColumn('email', 'string', ['limit' => 50, 'null' => false, 'default' => '', 'comment' => '邮箱']) + ->addColumn('phone', 'string', ['limit' => 20, 'null' => false, 'default' => '', 'comment' => '手机号']) + ->addColumn('type', 'integer', ['limit' => MysqlAdapter::INT_TINY, 'null' => false, 'default' => 1, 'comment' => '1 部门 2渠道']) + ->addColumn('is_super', 'integer', ['limit' => MysqlAdapter::INT_TINY, 'null' => false, 'default' => 0, 'comment' => '是否超管']) + ->addColumn('status', 'integer', ['limit' => MysqlAdapter::INT_TINY, 'null' => false, 'default' => 1, 'comment' => '状态(0:禁用,1:启用)']) + ->addColumn('remember_token', 'string', ['limit' => 100, 'null' => false, 'default' => '', 'comment' => '备注说明']) + ->addColumn('department_id', 'integer', ['limit' => MysqlAdapter::INT_REGULAR, 'null' => false, 'default' => 0, 'comment' => '部门id']) + ->addColumn('post', 'text', ['limit' => MysqlAdapter::TEXT_LONG, 'comment' => '岗位']) + ->addColumn('created_at', 'datetime', ['comment' => '创建时间']) + ->addColumn('updated_at', 'datetime', ['comment' => '更新时间']) + ->addColumn('deleted_at', 'datetime', ['comment' => '删除时间']) + ->addIndex(['username'], ['name' => 'uni_username', 'unique' => true]) + ->create(); + } + } +} diff --git a/db/migrations/20231019091927_create_announcement.php b/db/migrations/20231019091927_create_announcement.php new file mode 100644 index 0000000..c1a74df --- /dev/null +++ b/db/migrations/20231019091927_create_announcement.php @@ -0,0 +1,43 @@ +hasTable('announcement'); + if (!$exists) { + $table = $this->table('announcement', ['comment' => '公告']); + $table->addColumn('department_id', 'integer', ['limit' => MysqlAdapter::INT_REGULAR, 'null' => false, 'default' => 0, 'comment' => '部门/渠道id']) + ->addColumn('title', 'string', ['limit' => 255, 'null' => false, 'default' => '', 'comment' => '内容']) + ->addColumn('content', 'string', ['limit' => 255, 'null' => false, 'default' => '', 'comment' => '姓名']) + ->addColumn('valid_time', 'datetime', ['null' => true, 'comment' => '有效时间']) + ->addColumn('push_time', 'datetime', ['null' => true, 'comment' => '发布时间']) + ->addColumn('status', 'integer', ['limit' => MysqlAdapter::INT_TINY, 'null' => false, 'default' => 1, 'comment' => '狀態,0=停用, 1=啟用']) + ->addColumn('priority', 'integer', ['limit' => MysqlAdapter::INT_TINY, 'null' => true, 'comment' => '优先级']) + ->addColumn('admin_id', 'integer', ['limit' => MysqlAdapter::INT_REGULAR, 'signed' => false, 'null' => false, 'default' => 0, 'comment' => '管理员id']) + ->addColumn('admin_name', 'string', ['limit' => 20, 'null' => false, 'default' => '', 'comment' => '管理员名称']) + ->addColumn('created_at', 'datetime', ['comment' => '创建时间']) + ->addColumn('updated_at', 'datetime', ['comment' => '更新时间']) + ->addColumn('deleted_at', 'datetime', ['comment' => '删除时间']) + ->addIndex(['department_id'], ['name' => 'idx_department_id']) + ->addIndex(['admin_id'], ['name' => 'idx_admin_id']) + ->create(); + } + } +} diff --git a/db/migrations/20231019092731_create_api_error_log.php b/db/migrations/20231019092731_create_api_error_log.php new file mode 100644 index 0000000..3d43493 --- /dev/null +++ b/db/migrations/20231019092731_create_api_error_log.php @@ -0,0 +1,38 @@ +hasTable('api_error_log'); + if (!$exists) { + $table = $this->table('api_error_log', ['comment' => 'api请求错误日志']); + $table->addColumn('player_id', 'integer', ['limit' => MysqlAdapter::INT_REGULAR, 'null' => false, 'default' => 0, 'comment' => '玩家id']) + ->addColumn('target', 'string', ['limit' => 255, 'null' => false, 'default' => '', 'comment' => '资源表']) + ->addColumn('target_id', 'integer', ['limit' => MysqlAdapter::INT_REGULAR, 'signed' => false, 'null' => false, 'default' => 0, 'comment' => '资源id']) + ->addColumn('url', 'string', ['limit' => 255, 'null' => false, 'default' => '', 'comment' => '请求地址']) + ->addColumn('params', 'string', ['limit' => 255, 'null' => false, 'default' => '', 'comment' => '参数']) + ->addColumn('content', 'string', ['limit' => 255, 'null' => false, 'default' => '', 'comment' => '错误内容']) + ->addColumn('created_at', 'timestamp', ['comment' => '创建时间']) + ->addColumn('updated_at', 'timestamp', ['comment' => '更新时间']) + ->addIndex(['player_id'], ['name' => 'idx_player_id']) + ->create(); + } + } +} diff --git a/db/migrations/20231019100353_create_channel_financial_record.php b/db/migrations/20231019100353_create_channel_financial_record.php new file mode 100644 index 0000000..f565263 --- /dev/null +++ b/db/migrations/20231019100353_create_channel_financial_record.php @@ -0,0 +1,41 @@ +hasTable('channel_financial_record'); + if (!$exists) { + $table = $this->table('channel_financial_record', ['comment' => '渠道财务记录']); + $table->addColumn('department_id', 'integer', ['limit' => MysqlAdapter::INT_REGULAR, 'signed' => true, 'null' => false, 'default' => 0, 'comment' => '部门/渠道id']) + ->addColumn('player_id', 'integer', ['limit' => MysqlAdapter::INT_REGULAR, 'signed' => true, 'null' => false, 'default' => 0, 'comment' => '玩家id']) + ->addColumn('target', 'string', ['limit' => 50, 'null' => false, 'default' => '', 'comment' => '資料表']) + ->addColumn('target_id', 'integer', ['limit' => MysqlAdapter::INT_REGULAR, 'signed' => true, 'null' => false, 'default' => 0, 'comment' => '資料id']) + ->addColumn('action', 'integer', ['limit' => MysqlAdapter::INT_TINY, 'null' => false, 'default' => 0, 'comment' => '操作']) + ->addColumn('tradeno', 'string', ['limit' => 100, 'null' => false, 'default' => '', 'comment' => '單號']) + ->addColumn('user_id', 'integer', ['limit' => MysqlAdapter::INT_REGULAR, 'null' => false, 'default' => 0, 'comment' => '管理员id']) + ->addColumn('user_name', 'string', ['limit' => 120, 'null' => false, 'default' => '', 'comment' => '管理员名称']) + ->addColumn('created_at', 'datetime', ['comment' => '创建时间']) + ->addColumn('updated_at', 'datetime', ['comment' => '更新时间']) + ->addIndex(['department_id'], ['name' => 'idx_department_id']) + ->addIndex(['user_id'], ['name' => 'idx_user_id']) + ->create(); + } + } +} diff --git a/db/migrations/20231020013447_create_currency.php b/db/migrations/20231020013447_create_currency.php new file mode 100644 index 0000000..b177abc --- /dev/null +++ b/db/migrations/20231020013447_create_currency.php @@ -0,0 +1,38 @@ +hasTable('currency'); + if (!$exists) { + $table = $this->table('currency', ['comment' => '货币配置']); + $table->addColumn('name', 'string', ['limit' => 120, 'null' => false, 'default' => '', 'comment' => '货币名称']) + ->addColumn('identifying', 'string', ['limit' => 80, 'null' => false, 'default' => '', 'comment' => '货币标识']) + ->addColumn('ratio', 'decimal', ['precision' => 14, 'scale' => 4, 'signed' => true, 'null' => false, 'default' => 0, 'comment' => '1货币 = 点数']) + ->addColumn('status', 'integer', ['limit' => MysqlAdapter::INT_TINY, 'null' => false, 'default' => 1, 'comment' => '狀態,0=停用, 1=啟用']) + ->addColumn('admin_id', 'integer', ['limit' => MysqlAdapter::INT_REGULAR, 'null' => false, 'default' => 0, 'comment' => '管理员id']) + ->addColumn('created_at', 'datetime', ['comment' => '创建时间']) + ->addColumn('updated_at', 'datetime', ['comment' => '更新时间']) + ->addColumn('deleted_at', 'datetime', ['comment' => '删除时间']) + ->addIndex(['identifying'], ['name' => 'uni_identifying', 'unique' => true]) + ->create(); + } + } +} diff --git a/db/migrations/20231020014010_create_external_app.php b/db/migrations/20231020014010_create_external_app.php new file mode 100644 index 0000000..5112008 --- /dev/null +++ b/db/migrations/20231020014010_create_external_app.php @@ -0,0 +1,41 @@ +hasTable('external_app'); + if (!$exists) { + $table = $this->table('external_app', ['comment' => '外部应用']); + $table->addColumn('name', 'string', ['limit' => 120, 'null' => false, 'default' => '', 'comment' => '应用名称']) + ->addColumn('white_ip', 'text', ['limit' => MysqlAdapter::TEXT_REGULAR, 'comment' => '白化IP']) + ->addColumn('app_id', 'string', ['limit' => 255, 'null' => false, 'default' => '', 'comment' => 'app_id']) + ->addColumn('app_secret', 'string', ['limit' => 255, 'null' => false, 'default' => '', 'comment' => 'app_secret']) + ->addColumn('user_id', 'integer', ['limit' => MysqlAdapter::INT_REGULAR, 'null' => false, 'default' => 0, 'comment' => '管理员id']) + ->addColumn('user_name', 'string', ['limit' => 20, 'null' => false, 'default' => '', 'comment' => '管理员名称']) + ->addColumn('status', 'integer', ['limit' => MysqlAdapter::INT_TINY, 'null' => false, 'default' => 1, 'comment' => '狀態,0=停用, 1=啟用']) + ->addColumn('created_at', 'datetime', ['comment' => '创建时间']) + ->addColumn('updated_at', 'datetime', ['comment' => '更新时间']) + ->addColumn('deleted_at', 'datetime', ['comment' => '删除时间']) + ->addIndex(['name'], ['name' => 'uni_name', 'unique' => true]) + ->addIndex(['user_id'], ['name' => 'idx_user_id']) + ->create(); + } + } +} diff --git a/db/migrations/20231020023005_create_phone_sms_log.php b/db/migrations/20231020023005_create_phone_sms_log.php new file mode 100644 index 0000000..b8bf2e6 --- /dev/null +++ b/db/migrations/20231020023005_create_phone_sms_log.php @@ -0,0 +1,42 @@ +hasTable('phone_sms_log'); + if (!$exists) { + $table = $this->table('phone_sms_log', ['comment' => '手机短信日志']); + $table->addColumn('player_id', 'integer', ['limit' => MysqlAdapter::INT_REGULAR, 'signed' => false, 'null' => false, 'default' => 0, 'comment' => '玩家id']) + ->addColumn('phone', 'string', ['limit' => 20, 'null' => false, 'default' => '', 'comment' => '手机号']) + ->addColumn('code', 'string', ['limit' => 10, 'null' => false, 'default' => '', 'comment' => '驗證碼']) + ->addColumn('type', 'integer', ['limit' => MysqlAdapter::INT_TINY, 'null' => false, 'comment' => '类型 1 登录 2注册 3修改密码']) + ->addColumn('expire_time', 'datetime', ['default' => null, 'comment' => '過期時間']) + ->addColumn('status', 'integer', ['limit' => MysqlAdapter::INT_TINY, 'null' => false, 'default' => 0, 'comment' => '狀態,0=失敗, 1=成功']) + ->addColumn('send_times', 'integer', ['limit' => MysqlAdapter::INT_REGULAR, 'null' => false, 'default' => 1, 'comment' => '發送次數']) + ->addColumn('response', 'text', ['limit' => MysqlAdapter::TEXT_REGULAR, 'comment' => '簡訊商回傳內容']) + ->addColumn('uid', 'string', ['limit' => 40, 'null' => false, 'default' => '', 'comment' => '短信发送编号']) + ->addColumn('created_at', 'timestamp', ['comment' => '创建时间']) + ->addColumn('updated_at', 'timestamp', ['comment' => '更新时间']) + ->addIndex(['player_id'], ['name' => 'idx_player_id']) + ->addIndex(['phone'], ['name' => 'idx_phone']) + ->create(); + } + } +} diff --git a/db/migrations/20231020023858_create_player.php b/db/migrations/20231020023858_create_player.php new file mode 100644 index 0000000..98706f6 --- /dev/null +++ b/db/migrations/20231020023858_create_player.php @@ -0,0 +1,58 @@ +hasTable('player'); + if (!$exists) { + $table = $this->table('player', ['comment' => '玩家']); + $table->addColumn('talk_user_id', 'integer', ['limit' => MysqlAdapter::INT_REGULAR, 'default' => null, 'comment' => '来聊聊账号id']) + ->addColumn('uuid', 'string', ['limit' => 20, 'null' => false, 'default' => '', 'comment' => 'uuid']) + ->addColumn('department_id', 'integer', ['limit' => MysqlAdapter::INT_REGULAR, 'null' => false, 'default' => 0, 'comment' => '部门id']) + ->addColumn('recommend_id', 'integer', ['limit' => MysqlAdapter::INT_BIG, 'default' => null, 'comment' => '推广id']) + ->addColumn('type', 'integer', ['limit' => MysqlAdapter::INT_TINY, 'signed' => false, 'null' => false, 'default' => 1, 'comment' => '1 玩家']) + ->addColumn('status', 'integer', ['limit' => MysqlAdapter::INT_TINY, 'null' => false, 'default' => 1, 'comment' => '帐号状态 1啟用 0停用']) + ->addColumn('status_withdraw', 'integer', ['limit' => MysqlAdapter::INT_TINY, 'signed' => false, 'null' => false, 'default' => 1, 'comment' => '取款状态 1啟用 0停用']) + ->addColumn('status_transfer', 'integer', ['limit' => MysqlAdapter::INT_TINY, 'null' => false, 'default' => 1, 'comment' => '轉點功能']) + ->addColumn('name', 'string', ['limit' => 50, 'null' => false, 'default' => '', 'comment' => '姓名']) + ->addColumn('phone', 'string', ['limit' => 25, 'null' => false, 'default' => '', 'comment' => '手机号']) + ->addColumn('country_code', 'string', ['limit' => 20, 'null' => false, 'default' => '', 'comment' => '手機國際碼']) + ->addColumn('recommend_code', 'string', ['limit' => 10, 'null' => false, 'default' => '', 'comment' => '玩家推广码']) + ->addColumn('recommended_code', 'string', ['limit' => 10, 'null' => false, 'default' => '', 'comment' => '输入推广码']) + ->addColumn('play_password', 'string', ['limit' => 125, 'null' => false, 'default' => '', 'comment' => '玩家支付密码']) + ->addColumn('password', 'string', ['limit' => 125, 'null' => false, 'default' => '', 'comment' => '玩家密碼']) + ->addColumn('currency', 'string', ['limit' => 5, 'null' => false, 'default' => '', 'comment' => '币别代码']) + ->addColumn('flag', 'string', ['limit' => 125, 'null' => false, 'default' => '', 'comment' => '玩家標籤']) + ->addColumn('avatar', 'string', ['limit' => 255, 'null' => false, 'default' => '', 'comment' => '头像']) + ->addColumn('created_at', 'timestamp', ['comment' => '创建时间']) + ->addColumn('updated_at', 'timestamp', ['comment' => '更新时间']) + ->addColumn('deleted_at', 'timestamp', ['comment' => '删除时间']) + ->addColumn('player_tag', 'string', ['limit' => 255, 'null' => false, 'default' => '', 'comment' => '玩家標籤']) + ->addIndex(['status'], ['name' => 'idx_status']) + ->addIndex(['currency'], ['name' => 'idx_currency']) + ->addIndex(['talk_user_id'], ['name' => 'idx_talk_user_id']) + ->addIndex(['recommend_id'], ['name' => 'idx_recommend_id']) + ->addIndex(['department_id'], ['name' => 'idx_department_id']) + ->addIndex(['uuid'], ['name' => 'idx_uuid']) + ->addIndex(['phone'], ['name' => 'idx_phone']) + ->create(); + } + } +} diff --git a/db/migrations/20231020033110_create_player_bank.php b/db/migrations/20231020033110_create_player_bank.php new file mode 100644 index 0000000..63fbad2 --- /dev/null +++ b/db/migrations/20231020033110_create_player_bank.php @@ -0,0 +1,38 @@ +hasTable('player_bank'); + if (!$exists) { + $table = $this->table('player_bank', ['comment' => '玩家银行账户']); + $table->addColumn('player_id', 'integer', ['limit' => MysqlAdapter::INT_REGULAR, 'null' => false, 'default' => 0, 'comment' => '玩家id']) + ->addColumn('bank_name', 'string', ['limit' => 100, 'null' => false, 'default' => '', 'comment' => '银行名称']) + ->addColumn('account', 'string', ['limit' => 100, 'null' => false, 'default' => '', 'comment' => '银行账号']) + ->addColumn('account_name', 'string', ['limit' => 100, 'null' => false, 'default' => '', 'comment' => '账户所属人']) + ->addColumn('status', 'integer', ['limit' => MysqlAdapter::INT_TINY, 'null' => false, 'default' => 1, 'comment' => '状态(0:禁用,1:启用)']) + ->addColumn('created_at', 'datetime', ['comment' => '创建时间']) + ->addColumn('updated_at', 'datetime', ['comment' => '更新时间']) + ->addColumn('deleted_at', 'datetime', ['comment' => '删除时间']) + ->addIndex(['player_id'], ['name' => 'idx_player_id']) + ->create(); + } + } +} diff --git a/db/migrations/20231020033609_create_player_delivery_record.php b/db/migrations/20231020033609_create_player_delivery_record.php new file mode 100644 index 0000000..a9ce2ab --- /dev/null +++ b/db/migrations/20231020033609_create_player_delivery_record.php @@ -0,0 +1,51 @@ +hasTable('player_delivery_record'); + if (!$exists) { + $table = $this->table('player_delivery_record', ['comment' => '玩家变账记录']); + $table->addColumn('player_id', 'integer', ['limit' => MysqlAdapter::INT_REGULAR, 'signed' => false, 'null' => false, 'comment' => '玩家id']) + ->addColumn('department_id', 'integer', ['limit' => MysqlAdapter::INT_REGULAR, 'signed' => false, 'null' => false, 'comment' => '渠道/部门id']) + ->addColumn('code', 'string', ['limit' => 50, 'null' => false, 'default' => '', 'comment' => '機台編號']) + ->addColumn('target', 'string', ['limit' => 50, 'null' => false, 'default' => '', 'comment' => '交易資料表']) + ->addColumn('target_id', 'integer', ['limit' => MysqlAdapter::INT_REGULAR, 'signed' => false, 'null' => false, 'default' => 0, 'comment' => '資料id']) + ->addColumn('type', 'integer', ['limit' => MysqlAdapter::INT_TINY, 'signed' => false, 'null' => false, 'comment' => '类型']) + ->addColumn('source', 'string', ['limit' => 255, 'null' => false, 'default' => '', 'comment' => '来源']) + ->addColumn('amount', 'decimal', ['precision' => 32, 'scale' => 2, 'null' => false, 'default' => 0, 'comment' => '金额']) + ->addColumn('user_id', 'integer', ['limit' => MysqlAdapter::INT_REGULAR, 'signed' => true, 'null' => false, 'default' => 0, 'comment' => '操作管理员id']) + ->addColumn('user_name', 'string', ['limit' => 50, 'null' => false, 'default' => '', 'comment' => '操作管理员名称']) + ->addColumn('amount_before', 'decimal', ['precision' => 32, 'scale' => 2, 'null' => false, 'default' => 0, 'comment' => '異動前金額']) + ->addColumn('amount_after', 'decimal', ['precision' => 32, 'scale' => 2, 'null' => false, 'default' => 0, 'comment' => '金额']) + ->addColumn('tradeno', 'string', ['limit' => 255, 'null' => false, 'default' => '', 'comment' => '單號']) + ->addColumn('remark', 'string', ['limit' => 255, 'null' => false, 'default' => '', 'comment' => '备注']) + ->addColumn('created_at', 'timestamp', ['comment' => '创建时间']) + ->addColumn('updated_at', 'timestamp', ['comment' => '更新时间']) + ->addIndex(['player_id'], ['name' => 'idx_player_id']) + ->addIndex(['type'], ['name' => 'idx_type']) + ->addIndex(['source'], ['name' => 'idx_source']) + ->addIndex(['amount'], ['name' => 'idx_amount']) + ->addIndex(['tradeno'], ['name' => 'idx_tradeno']) + ->addIndex(['department_id'], ['name' => 'idx_department_id']) + ->create(); + } + } +} diff --git a/db/migrations/20231020034940_create_player_extend.php b/db/migrations/20231020034940_create_player_extend.php new file mode 100644 index 0000000..3e6468f --- /dev/null +++ b/db/migrations/20231020034940_create_player_extend.php @@ -0,0 +1,53 @@ +hasTable('player_extend'); + if (!$exists) { + $table = $this->table('player_extend', ['comment' => '玩家扩展数据']); + $table->addColumn('player_id', 'integer', ['limit' => MysqlAdapter::INT_REGULAR, 'null' => false, 'default' => 0, 'comment' => '玩家id']) + ->addColumn('sex', 'integer', ['limit' => MysqlAdapter::INT_TINY, 'signed' => false, 'default' => null, 'comment' => '性別 1男 2女 3三性']) + ->addColumn('email', 'string', ['limit' => 125, 'null' => false, 'default' => '', 'comment' => '信箱']) + ->addColumn('ip', 'string', ['limit' => 125, 'null' => false, 'default' => '', 'comment' => '注册IP']) + ->addColumn('qq', 'string', ['limit' => 125, 'null' => false, 'default' => '', 'comment' => 'qq号']) + ->addColumn('telegram', 'string', ['limit' => 125, 'null' => false, 'default' => '', 'comment' => 'telegram']) + ->addColumn('birthday', 'date', ['default' => null, 'comment' => '生日']) + ->addColumn('id_number', 'string', ['limit' => 20, 'null' => false, 'default' => '', 'comment' => '身分證']) + ->addColumn('address', 'string', ['limit' => 255, 'null' => false, 'default' => '', 'comment' => '地址']) + ->addColumn('wechat', 'string', ['limit' => 125, 'null' => false, 'default' => '', 'comment' => '微信号']) + ->addColumn('facebook', 'string', ['limit' => 125, 'null' => false, 'default' => '', 'comment' => 'facebook']) + ->addColumn('line', 'string', ['limit' => 125, 'null' => false, 'default' => '', 'comment' => 'line']) + ->addColumn('remark', 'string', ['limit' => 255, 'null' => false, 'default' => '', 'comment' => '备注']) + ->addColumn('recharge_amount', 'decimal', ['precision' => 10, 'scale' => 2, 'signed' => true, 'null' => false, 'default' => 0, 'comment' => '总充值金额']) + ->addColumn('withdraw_amount', 'decimal', ['precision' => 10, 'scale' => 2, 'signed' => true, 'null' => false, 'default' => 0, 'comment' => '总提现金额']) + ->addColumn('present_in_amount', 'decimal', ['precision' => 10, 'scale' => 2, 'signed' => true, 'null' => false, 'default' => 0, 'comment' => '总提转入金额']) + ->addColumn('present_out_amount', 'decimal', ['precision' => 10, 'scale' => 2, 'signed' => true, 'null' => false, 'default' => 0, 'comment' => '总提转出金额']) + ->addColumn('third_recharge_amount', 'decimal', ['precision' => 10, 'scale' => 2, 'signed' => true, 'null' => false, 'default' => 0, 'comment' => '第三方总充值金额']) + ->addColumn('third_withdraw_amount', 'decimal', ['precision' => 10, 'scale' => 2, 'signed' => true, 'null' => false, 'default' => 0, 'comment' => '第三方总提现金额']) + ->addColumn('coin_recharge_amount', 'decimal', ['precision' => 10, 'scale' => 2, 'signed' => true, 'null' => false, 'default' => 0, 'comment' => '币商充值总金额']) + ->addColumn('created_at', 'timestamp', ['comment' => '创建时间']) + ->addColumn('updated_at', 'timestamp', ['comment' => '更新时间']) + ->addColumn('deleted_at', 'timestamp', ['comment' => '删除时间']) + ->addIndex(['player_id'], ['name' => 'uni_player_id', 'unique' => true]) + ->create(); + } + } +} diff --git a/db/migrations/20231020055313_create_player_login_record.php b/db/migrations/20231020055313_create_player_login_record.php new file mode 100644 index 0000000..7c29a3b --- /dev/null +++ b/db/migrations/20231020055313_create_player_login_record.php @@ -0,0 +1,40 @@ +hasTable('player_login_record'); + if (!$exists) { + $table = $this->table('player_login_record', ['comment' => '玩家登录记录']); + $table->addColumn('player_id', 'integer', ['limit' => MysqlAdapter::INT_REGULAR, 'null' => false, 'default' => 0, 'comment' => '玩家id']) + ->addColumn('department_id', 'integer', ['limit' => MysqlAdapter::INT_REGULAR, 'null' => false, 'default' => 0, 'comment' => '渠道/部门id']) + ->addColumn('login_domain', 'string', ['limit' => 125, 'null' => false, 'default' => '', 'comment' => '登錄域名']) + ->addColumn('ip', 'string', ['limit' => 125, 'null' => false, 'default' => '', 'comment' => 'ip']) + ->addColumn('country_name', 'string', ['limit' => 125, 'null' => false, 'default' => '', 'comment' => '國家名稱']) + ->addColumn('city_name', 'string', ['limit' => 125, 'null' => false, 'default' => '', 'comment' => '地區名稱']) + ->addColumn('remark', 'string', ['limit' => 125, 'null' => false, 'default' => '', 'comment' => '備註']) + ->addColumn('created_at', 'timestamp', ['comment' => '创建时间']) + ->addColumn('updated_at', 'timestamp', ['comment' => '更新时间']) + ->addIndex(['player_id'], ['name' => 'idx_player_id']) + ->addIndex(['department_id'], ['name' => 'idx_department_id']) + ->create(); + } + } +} diff --git a/db/migrations/20231020055715_create_player_money_edit_log.php b/db/migrations/20231020055715_create_player_money_edit_log.php new file mode 100644 index 0000000..9438e69 --- /dev/null +++ b/db/migrations/20231020055715_create_player_money_edit_log.php @@ -0,0 +1,50 @@ +hasTable('player_money_edit_log'); + if (!$exists) { + $table = $this->table('player_money_edit_log', ['comment' => '玩家钱包管理员调整日志']); + $table->addColumn('player_id', 'integer', ['limit' => MysqlAdapter::INT_REGULAR, 'null' => false, 'default' => 0, 'comment' => '玩家id']) + ->addColumn('type', 'integer', ['limit' => MysqlAdapter::INT_TINY, 'null' => false, 'default' => 0, 'comment' => '類型 1=存 0=出']) + ->addColumn('action', 'string', ['limit' => 20, 'null' => false, 'default' => '', 'comment' => '手動輸入類型']) + ->addColumn('tradeno', 'string', ['limit' => 20, 'null' => false, 'default' => '', 'comment' => '單號']) + ->addColumn('currency', 'string', ['limit' => 10, 'null' => false, 'default' => '', 'comment' => '幣種']) + ->addColumn('money', 'decimal', ['precision' => 14, 'scale' => 2, 'null' => false, 'default' => 0, 'comment' => '金額']) + ->addColumn('origin_money', 'decimal', ['precision' => 14, 'scale' => 2, 'null' => false, 'default' => 0, 'comment' => '原始金額']) + ->addColumn('after_money', 'decimal', ['precision' => 14, 'scale' => 2, 'null' => false, 'default' => 0, 'comment' => '異動後金額']) + ->addColumn('inmoney', 'decimal', ['precision' => 14, 'scale' => 2, 'null' => false, 'default' => 0, 'comment' => '實際金額']) + ->addColumn('subsidy_money', 'decimal', ['precision' => 14, 'scale' => 2, 'null' => false, 'default' => 0, 'comment' => '補助金額']) + ->addColumn('bet_multiple', 'decimal', ['precision' => 8, 'scale' => 2, 'null' => false, 'default' => 0, 'comment' => '流水倍數']) + ->addColumn('bet_num', 'decimal', ['precision' => 14, 'scale' => 2, 'null' => false, 'default' => 0, 'comment' => '流水']) + ->addColumn('remark', 'string', ['limit' => 255, 'null' => false, 'default' => '', 'comment' => '資金調整備註']) + ->addColumn('user_id', 'integer', ['limit' => MysqlAdapter::INT_REGULAR, 'null' => false, 'default' => 0, 'comment' => '管理员id']) + ->addColumn('user_name', 'string', ['limit' => 20, 'null' => false, 'default' => '', 'comment' => '管理员名称']) + ->addColumn('deleted_at', 'timestamp', ['comment' => '更新时间']) + ->addColumn('created_at', 'timestamp', ['comment' => '创建时间']) + ->addColumn('updated_at', 'timestamp', ['comment' => '更新时间']) + ->addIndex(['tradeno'], ['name' => 'idx_tradeno', 'unique' => true]) + ->addIndex(['user_id'], ['name' => 'idx_user_id']) + ->addIndex(['player_id'], ['name' => 'idx_player_id']) + ->create(); + } + } +} diff --git a/db/migrations/20231020060556_create_player_platform_cash.php b/db/migrations/20231020060556_create_player_platform_cash.php new file mode 100644 index 0000000..e0a216c --- /dev/null +++ b/db/migrations/20231020060556_create_player_platform_cash.php @@ -0,0 +1,38 @@ +hasTable('player_platform_cash'); + if (!$exists) { + $table = $this->table('player_platform_cash', ['comment' => '玩家钱包']); + $table->addColumn('player_id', 'integer', ['limit' => MysqlAdapter::INT_REGULAR, 'null' => false, 'default' => 0, 'comment' => '玩家id']) + ->addColumn('platform_id', 'integer', ['limit' => MysqlAdapter::INT_REGULAR, 'null' => false, 'default' => 0, 'comment' => '平台id']) + ->addColumn('platform_name', 'string', ['limit' => 255, 'null' => false, 'default' => '', 'comment' => '平台名稱']) + ->addColumn('money', 'decimal', ['precision' => 16, 'scale' => 2, 'null' => false, 'default' => 0, 'comment' => '點數']) + ->addColumn('status', 'integer', ['limit' => MysqlAdapter::INT_TINY, 'null' => false, 'default' => 1, 'comment' => '钱包状态']) + ->addColumn('created_at', 'timestamp', ['comment' => '创建时间']) + ->addColumn('updated_at', 'timestamp', ['comment' => '更新时间']) + ->addIndex(['player_id'], ['name' => 'idx_player_id']) + ->addIndex(['platform_id'], ['name' => 'idx_platform_id']) + ->create(); + } + } +} diff --git a/db/migrations/20231020061742_create_player_recharge_record.php b/db/migrations/20231020061742_create_player_recharge_record.php new file mode 100644 index 0000000..f0fb0b4 --- /dev/null +++ b/db/migrations/20231020061742_create_player_recharge_record.php @@ -0,0 +1,60 @@ +hasTable('player_recharge_record'); + if (!$exists) { + $table = $this->table('player_recharge_record', ['comment' => '玩家充值记录']); + $table->addColumn('player_id', 'integer', ['limit' => MysqlAdapter::INT_REGULAR, 'null' => false, 'default' => 0, 'comment' => '玩家id']) + ->addColumn('department_id', 'integer', ['limit' => MysqlAdapter::INT_REGULAR, 'null' => false, 'default' => 0, 'comment' => '部门/渠道id']) + ->addColumn('talk_user_id', 'integer', ['limit' => MysqlAdapter::INT_REGULAR, 'default' => null, 'comment' => '来聊聊账号id']) + ->addColumn('setting_id', 'integer', ['limit' => MysqlAdapter::INT_REGULAR, 'default' => null, 'comment' => '充值账号配置id']) + ->addColumn('tradeno', 'string', ['limit' => 100, 'null' => false, 'default' => '', 'comment' => '單號']) + ->addColumn('status', 'integer', ['limit' => MysqlAdapter::INT_TINY, 'null' => false, 'default' => 0, 'comment' => '狀態, 0=充值中 1=待审核, 2=成功, 3=失败, 4=取消(用户取消) 5=拒绝 6=已关闭(后端取消任务)']) + ->addColumn('type', 'integer', ['limit' => MysqlAdapter::INT_TINY, 'null' => false, 'default' => 1, 'comment' => '1来聊聊充值(第三方充值) 2渠道充值(官方充值) 3币商转入']) + ->addColumn('player_name', 'string', ['limit' => 20, 'null' => false, 'default' => null, 'comment' => '玩家姓名']) + ->addColumn('player_phone', 'string', ['limit' => 20, 'null' => false, 'default' => null, 'comment' => '玩家手機號碼']) + ->addColumn('point', 'decimal', ['precision' => 14, 'scale' => 2, 'null' => false, 'default' => 0, 'comment' => '充值点数']) + ->addColumn('money', 'decimal', ['precision' => 14, 'scale' => 2, 'null' => false, 'default' => 0, 'comment' => '充值金額']) + ->addColumn('inmoney', 'decimal', ['precision' => 14, 'scale' => 2, 'null' => false, 'default' => 0, 'comment' => '實際充值金額']) + ->addColumn('currency', 'string', ['limit' => 10, 'null' => false, 'default' => null, 'comment' => '幣種']) + ->addColumn('user_id', 'integer', ['limit' => MysqlAdapter::INT_REGULAR, 'signed' => true, 'null' => false, 'default' => 0, 'comment' => '管理员id']) + ->addColumn('user_name', 'string', ['limit' => 50, 'null' => false, 'default' => '', 'comment' => '管理员']) + ->addColumn('player_tag', 'string', ['limit' => 100, 'null' => false, 'default' => '', 'comment' => '玩家標籤']) + ->addColumn('remark', 'string', ['limit' => 255, 'null' => false, 'default' => '', 'comment' => '備註']) + ->addColumn('reject_reason', 'string', ['limit' => 255, 'null' => false, 'default' => '', 'comment' => '拒绝原因']) + ->addColumn('notify_result', 'string', ['limit' => 255, 'null' => false, 'default' => '', 'comment' => '異步通知回傳結果']) + ->addColumn('certificate', 'string', ['limit' => 255, 'null' => false, 'default' => '', 'comment' => '付款凭证']) + ->addColumn('finish_time', 'datetime', ['comment' => '入款成功时间']) + ->addColumn('cancel_time', 'datetime', ['comment' => '取消時間']) + ->addColumn('created_at', 'timestamp', ['comment' => '创建时间']) + ->addColumn('updated_at', 'timestamp', ['comment' => '更新时间']) + ->addIndex(['tradeno'], ['name' => 'uni_tradeno', 'unique' => true]) + ->addIndex(['status'], ['name' => 'idx_status']) + ->addIndex(['type'], ['name' => 'idx_type']) + ->addIndex(['player_name'], ['name' => 'idx_player_name']) + ->addIndex(['player_id'], ['name' => 'idx_player_id']) + ->addIndex(['talk_user_id'], ['name' => 'idx_talk_user_id']) + ->addIndex(['department_id'], ['name' => 'idx_department_id']) + ->create(); + } + } +} diff --git a/db/migrations/20231020062947_create_player_register_record.php b/db/migrations/20231020062947_create_player_register_record.php new file mode 100644 index 0000000..f2f1abf --- /dev/null +++ b/db/migrations/20231020062947_create_player_register_record.php @@ -0,0 +1,42 @@ +hasTable('player_register_record'); + if (!$exists) { + $table = $this->table('player_register_record', ['comment' => '玩家注册记录']); + $table->addColumn('player_id', 'integer', ['limit' => MysqlAdapter::INT_REGULAR, 'null' => false, 'default' => 0, 'comment' => '玩家id']) + ->addColumn('department_id', 'integer', ['limit' => MysqlAdapter::INT_REGULAR, 'null' => false, 'default' => 0, 'comment' => '部门/渠道id']) + ->addColumn('register_domain', 'string', ['limit' => 125, 'null' => false, 'default' => '', 'comment' => '登錄域名']) + ->addColumn('ip', 'string', ['limit' => 125, 'null' => false, 'default' => '', 'comment' => 'ip']) + ->addColumn('country_name', 'string', ['limit' => 125, 'null' => false, 'default' => '', 'comment' => '國家名稱']) + ->addColumn('city_name', 'string', ['limit' => 125, 'null' => false, 'default' => '', 'comment' => '地區名稱']) + ->addColumn('type', 'integer', ['limit' => MysqlAdapter::INT_TINY, 'signed' => true, 'null' => false, 'default' => 0, 'comment' => '類型 0未讀 1已讀']) + ->addColumn('remark', 'string', ['limit' => 125, 'null' => false, 'default' => '', 'comment' => '備註']) + ->addColumn('device', 'string', ['limit' => 125, 'null' => false, 'default' => '', 'comment' => '使用設備']) + ->addColumn('created_at', 'timestamp', ['comment' => '创建时间']) + ->addColumn('updated_at', 'timestamp', ['comment' => '更新时间']) + ->addIndex(['player_id'], ['name' => 'idx_player_id']) + ->addIndex(['department_id'], ['name' => 'idx_department_id']) + ->create(); + } + } +} diff --git a/db/migrations/20231020070150_create_player_tag.php b/db/migrations/20231020070150_create_player_tag.php new file mode 100644 index 0000000..f56d5e1 --- /dev/null +++ b/db/migrations/20231020070150_create_player_tag.php @@ -0,0 +1,31 @@ +hasTable('player_tag'); + if (!$exists) { + $table = $this->table('player_tag', ['comment' => '玩家标签']); + $table->addColumn('name', 'string', ['limit' => 125, 'null' => false, 'default' => '', 'comment' => '标签名称']) + ->addColumn('created_at', 'timestamp', ['comment' => '创建时间']) + ->addColumn('updated_at', 'timestamp', ['comment' => '更新时间']) + ->create(); + } + } +} diff --git a/db/migrations/20231020070340_create_player_withdraw_record.php b/db/migrations/20231020070340_create_player_withdraw_record.php new file mode 100644 index 0000000..48f7891 --- /dev/null +++ b/db/migrations/20231020070340_create_player_withdraw_record.php @@ -0,0 +1,61 @@ +hasTable('player_withdraw_record'); + if (!$exists) { + $table = $this->table('player_withdraw_record', ['comment' => '玩家提现记录']); + $table->addColumn('player_id', 'integer', ['limit' => MysqlAdapter::INT_REGULAR, 'null' => false, 'default' => 0, 'comment' => '玩家id']) + ->addColumn('department_id', 'integer', ['limit' => MysqlAdapter::INT_REGULAR, 'null' => false, 'default' => 0, 'comment' => '部门/渠道id']) + ->addColumn('talk_user_id', 'integer', ['limit' => MysqlAdapter::INT_REGULAR, 'default' => null, 'comment' => '来聊聊账号id']) + ->addColumn('player_tag', 'string', ['limit' => 255, 'null' => false, 'default' => '', 'comment' => '玩家標籤']) + ->addColumn('tradeno', 'string', ['limit' => 100, 'null' => false, 'default' => '', 'comment' => '單號']) + ->addColumn('status', 'integer', ['limit' => MysqlAdapter::INT_TINY, 'null' => false, 'default' => 1, 'comment' => '狀態, 1=提现中(待审核), 2=成功, 3=失败 , 4=待打款, 5=不通过, 6=玩家取消, 7=系统取消']) + ->addColumn('type', 'integer', ['limit' => MysqlAdapter::INT_TINY, 'null' => false, 'default' => 1, 'comment' => '1=来聊聊 , 2=银行卡']) + ->addColumn('player_name', 'string', ['limit' => 20, 'null' => false, 'default' => null, 'comment' => '玩家姓名']) + ->addColumn('player_phone', 'string', ['limit' => 20, 'null' => false, 'default' => null, 'comment' => '玩家手機號碼']) + ->addColumn('point', 'decimal', ['precision' => 14, 'scale' => 2, 'null' => false, 'default' => 0, 'comment' => '游戏点数']) + ->addColumn('money', 'decimal', ['precision' => 14, 'scale' => 2, 'null' => false, 'default' => 0, 'comment' => '出款金額']) + ->addColumn('inmoney', 'decimal', ['precision' => 14, 'scale' => 2, 'null' => false, 'default' => 0, 'comment' => '實際出款金額']) + ->addColumn('fee', 'decimal', ['precision' => 14, 'scale' => 2, 'null' => false, 'default' => 0, 'comment' => '手續費']) + ->addColumn('bank_name', 'string', ['limit' => 100, 'null' => false, 'default' => null, 'comment' => '银行名称']) + ->addColumn('account', 'string', ['limit' => 100, 'null' => false, 'default' => null, 'comment' => '银行账号']) + ->addColumn('account_name', 'string', ['limit' => 100, 'null' => false, 'default' => null, 'comment' => '账户所属人']) + ->addColumn('currency', 'string', ['limit' => 100, 'null' => false, 'default' => null, 'comment' => '幣種']) + ->addColumn('remark', 'string', ['limit' => 255, 'null' => false, 'default' => '', 'comment' => '備註']) + ->addColumn('reject_reason', 'string', ['limit' => 255, 'null' => false, 'default' => '', 'comment' => '拒绝原因']) + ->addColumn('finish_time', 'datetime', ['comment' => '出款成功時間']) + ->addColumn('cancel_time', 'datetime', ['comment' => '取消時間']) + ->addColumn('created_at', 'timestamp', ['comment' => '创建时间']) + ->addColumn('updated_at', 'timestamp', ['comment' => '更新时间']) + ->addColumn('user_id', 'integer', ['limit' => MysqlAdapter::INT_REGULAR, 'signed' => true, 'null' => false, 'default' => 0, 'comment' => '管理员id']) + ->addColumn('user_name', 'string', ['limit' => 50, 'null' => false, 'default' => '', 'comment' => '管理员']) + ->addColumn('certificate', 'string', ['limit' => 255, 'null' => false, 'default' => '', 'comment' => '打款凭证']) + ->addIndex(['tradeno'], ['name' => 'uni_tradeno', 'unique' => true]) + ->addIndex(['status'], ['name' => 'idx_status']) + ->addIndex(['player_name'], ['name' => 'idx_player_name']) + ->addIndex(['player_id'], ['name' => 'idx_player_id']) + ->addIndex(['talk_user_id'], ['name' => 'idx_talk_user_id']) + ->addIndex(['department_id'], ['name' => 'idx_department_id']) + ->create(); + } + } +} diff --git a/db/migrations/20231020071333_create_slider.php b/db/migrations/20231020071333_create_slider.php new file mode 100644 index 0000000..91b7619 --- /dev/null +++ b/db/migrations/20231020071333_create_slider.php @@ -0,0 +1,38 @@ +hasTable('slider'); + if (!$exists) { + $table = $this->table('slider', ['comment' => '轮播图']); + $table->addColumn('department_id', 'integer', ['limit' => MysqlAdapter::INT_REGULAR, 'null' => false, 'default' => 0, 'comment' => '部门/渠道id']) + ->addColumn('url', 'string', ['limit' => 255, 'null' => false, 'default' => '', 'comment' => '超連結']) + ->addColumn('content', 'text', ['limit' => MysqlAdapter::TEXT_REGULAR, 'comment' => '內文']) + ->addColumn('picture_url', 'string', ['limit' => 255, 'null' => false, 'default' => '', 'comment' => '圖片位置']) + ->addColumn('status', 'integer', ['limit' => MysqlAdapter::INT_TINY, 'null' => false, 'default' => 1, 'comment' => '狀態,0=停用, 1=啟用']) + ->addColumn('sort', 'integer', ['limit' => MysqlAdapter::INT_REGULAR, 'null' => false, 'default' => 0, 'comment' => '排序']) + ->addColumn('created_at', 'timestamp', ['comment' => '创建时间']) + ->addColumn('updated_at', 'timestamp', ['comment' => '更新时间']) + ->addColumn('deleted_at', 'timestamp', ['comment' => '删除时间']) + ->create(); + } + } +} diff --git a/db/migrations/20231020073448_create_system_setting.php b/db/migrations/20231020073448_create_system_setting.php new file mode 100644 index 0000000..dc27afc --- /dev/null +++ b/db/migrations/20231020073448_create_system_setting.php @@ -0,0 +1,38 @@ +hasTable('system_setting'); + if (!$exists) { + $table = $this->table('system_setting', ['comment' => '系统设计']); + $table->addColumn('department_id', 'integer', ['limit' => MysqlAdapter::INT_REGULAR, 'null' => false, 'default' => 0, 'comment' => '部门/渠道id']) + ->addColumn('feature', 'string', ['limit' => 255, 'null' => false, 'default' => '', 'comment' => '功能名稱']) + ->addColumn('num', 'integer', ['limit' => MysqlAdapter::INT_REGULAR, 'default' => null, 'comment' => '數量']) + ->addColumn('content', 'text', ['limit' => MysqlAdapter::TEXT_REGULAR, 'comment' => '內容']) + ->addColumn('date_start', 'string', ['limit' => 255, 'null' => false, 'default' => '', 'comment' => '开始时间']) + ->addColumn('date_end', 'string', ['limit' => 255, 'null' => false, 'default' => '', 'comment' => '结束时间']) + ->addColumn('status', 'integer', ['limit' => MysqlAdapter::INT_REGULAR, 'null' => false, 'default' => 1, 'comment' => '1啟用 0停用']) + ->addColumn('created_at', 'timestamp', ['comment' => '创建时间']) + ->addColumn('updated_at', 'timestamp', ['comment' => '更新时间']) + ->create(); + } + } +} diff --git a/db/migrations/20231024093335_create_player_edit_log.php b/db/migrations/20231024093335_create_player_edit_log.php new file mode 100644 index 0000000..5b6d519 --- /dev/null +++ b/db/migrations/20231024093335_create_player_edit_log.php @@ -0,0 +1,40 @@ +hasTable('player_edit_log'); + if (!$exists) { + $table = $this->table('player_edit_log', ['comment' => '玩家信息修改记录']); + $table->addColumn('player_id', 'integer', ['limit' => MysqlAdapter::INT_REGULAR, 'null' => false, 'default' => 0, 'comment' => '玩家id']) + ->addColumn('department_id', 'integer', ['limit' => MysqlAdapter::INT_REGULAR, 'null' => false, 'default' => 0, 'comment' => '渠道/部门id']) + ->addColumn('origin_data', 'text', ['limit' => MysqlAdapter::TEXT_REGULAR, 'comment' => '原数据']) + ->addColumn('new_data', 'text', ['limit' => MysqlAdapter::TEXT_REGULAR, 'comment' => '新数据']) + ->addColumn('user_id', 'integer', ['limit' => MysqlAdapter::INT_REGULAR, 'signed' => false, 'null' => false, 'default' => 0, 'comment' => '管理员id']) + ->addColumn('user_name', 'string', ['limit' => 50, 'null' => false, 'default' => '', 'comment' => '管理员姓名']) + ->addColumn('created_at', 'timestamp', ['comment' => '创建时间']) + ->addColumn('updated_at', 'timestamp', ['comment' => '更新时间']) + ->addIndex(['player_id'], ['name' => 'idx_player_id']) + ->addIndex(['department_id'], ['name' => 'idx_department_id']) + ->addIndex(['user_id'], ['name' => 'idx_user_id']) + ->create(); + } + } +} diff --git a/db/migrations/20231115082108_create_notice.php b/db/migrations/20231115082108_create_notice.php new file mode 100644 index 0000000..53fe739 --- /dev/null +++ b/db/migrations/20231115082108_create_notice.php @@ -0,0 +1,45 @@ +hasTable('notice'); + if (!$exists) { + $table = $this->table('notice', ['comment' => '消息']); + $table->addColumn('department_id', 'integer', ['limit' => MysqlAdapter::INT_REGULAR, 'null' => false, 'default' => 0, 'comment' => '部门/渠道id']) + ->addColumn('player_id', 'integer', ['limit' => MysqlAdapter::INT_REGULAR, 'null' => false, 'default' => 0, 'comment' => '玩家id']) + ->addColumn('source_id', 'integer', ['limit' => MysqlAdapter::INT_REGULAR, 'null' => false, 'default' => 0, 'comment' => '来源id']) + ->addColumn('type', 'integer', ['limit' => MysqlAdapter::INT_TINY, 'null' => false, 'default' => 1, 'comment' => '1 系统, 2派彩']) + ->addColumn('title', 'string', ['limit' => 255, 'null' => false, 'default' => '', 'comment' => '标题']) + ->addColumn('content', 'string', ['limit' => 500, 'null' => false, 'default' => '', 'comment' => '内容']) + ->addColumn('status', 'integer', ['limit' => MysqlAdapter::INT_TINY, 'null' => false, 'default' => 0, 'comment' => '狀態,0=未读, 1=已读']) + ->addColumn('receiver', 'integer', ['limit' => MysqlAdapter::INT_TINY, 'null' => false, 'default' => 1, 'comment' => '接受方,1=玩家, 2=总后台, 2=子站']) + ->addColumn('is_private', 'integer', ['limit' => MysqlAdapter::INT_TINY, 'null' => false, 'default' => 1, 'comment' => '是否私人消息,0=否, 1=是']) + ->addColumn('admin_id', 'integer', ['limit' => MysqlAdapter::INT_REGULAR, 'signed' => false, 'null' => false, 'default' => 0, 'comment' => '管理员id']) + ->addColumn('admin_name', 'string', ['limit' => 20, 'null' => false, 'default' => '', 'comment' => '管理员名称']) + ->addColumn('created_at', 'datetime', ['comment' => '创建时间']) + ->addColumn('updated_at', 'datetime', ['comment' => '更新时间']) + ->addColumn('deleted_at', 'datetime', ['comment' => '删除时间']) + ->addIndex(['department_id'], ['name' => 'idx_department_id']) + ->addIndex(['admin_id'], ['name' => 'idx_admin_id']) + ->create(); + } + } +} diff --git a/db/migrations/20240511015233_create_sign_ins.php b/db/migrations/20240511015233_create_sign_ins.php new file mode 100644 index 0000000..59fc57d --- /dev/null +++ b/db/migrations/20240511015233_create_sign_ins.php @@ -0,0 +1,38 @@ +hasTable('sign_ins'); + if (!$exists) { + $table = $this->table('sign_ins', ['comment' => '玩家签到表']); + $table->addColumn('player_id', 'integer', ['limit' => MysqlAdapter::INT_REGULAR, 'null' => false, 'default' => 0, 'comment' => '玩家id']) + ->addColumn('department_id', 'integer', ['limit' => MysqlAdapter::INT_REGULAR, 'null' => false, 'default' => 0, 'comment' => '渠道/部门id']) + ->addColumn('sign_date', 'date', ['default' => null, 'comment' => '签到日期']) + ->addColumn('reward_amount', 'decimal', ['precision' => 10, 'scale' => 2, 'signed' => true, 'null' => false, 'default' => 0, 'comment' => '签到奖励']) + ->addColumn('chip_amount', 'decimal', ['precision' => 10, 'scale' => 2, 'null' => false, 'default' => 0, 'comment' => '打码量']) + ->addColumn('created_at', 'timestamp', ['comment' => '创建时间']) + ->addColumn('updated_at', 'timestamp', ['comment' => '更新时间']) + ->addIndex(['player_id'], ['name' => 'idx_player_id']) + ->addIndex(['department_id'], ['name' => 'idx_department_id']) + ->create(); + } + } +} diff --git a/db/migrations/20240511032731_create_chip_changes.php b/db/migrations/20240511032731_create_chip_changes.php new file mode 100644 index 0000000..9219108 --- /dev/null +++ b/db/migrations/20240511032731_create_chip_changes.php @@ -0,0 +1,41 @@ +hasTable('chip_changes'); + if (!$exists) { + $table = $this->table('chip_changes', ['comment' => '打码量变化']); + $table->addColumn('player_id', 'integer', ['limit' => MysqlAdapter::INT_REGULAR, 'null' => false, 'default' => 0, 'comment' => '玩家id']) + ->addColumn('department_id', 'integer', ['limit' => MysqlAdapter::INT_REGULAR, 'null' => false, 'default' => 0, 'comment' => '渠道/部门id']) + ->addColumn('type', 'integer', ['limit' => MysqlAdapter::INT_TINY, 'null' => false, 'default' => 1, 'comment' => '1 增加 2减少']) + ->addColumn('source_type', 'string', ['limit' => 125, 'null' => false, 'default' => '', 'comment' => '来源']) + ->addColumn('source_id', 'integer', ['limit' => MysqlAdapter::INT_REGULAR, 'null' => false, 'default' => 0, 'comment' => '0 充值 1活动 2游戏']) + ->addColumn('chip_amount', 'decimal', ['precision' => 10, 'scale' => 2, 'null' => false, 'default' => 0, 'comment' => '打码量']) + ->addColumn('before_chip_amount', 'decimal', ['precision' => 10, 'scale' => 2, 'null' => false, 'default' => 0, 'comment' => '变化前打码量']) + ->addColumn('after_chip_amount', 'decimal', ['precision' => 10, 'scale' => 2, 'null' => false, 'default' => 0, 'comment' => '变化后打码量']) + ->addColumn('created_at', 'timestamp', ['comment' => '创建时间']) + ->addColumn('updated_at', 'timestamp', ['comment' => '更新时间']) + ->addIndex(['player_id'], ['name' => 'idx_player_id']) + ->addIndex(['department_id'], ['name' => 'idx_department_id']) + ->create(); + } + } +} diff --git a/db/migrations/20240511053700_modify_player_chip_amount.php b/db/migrations/20240511053700_modify_player_chip_amount.php new file mode 100644 index 0000000..92c3f78 --- /dev/null +++ b/db/migrations/20240511053700_modify_player_chip_amount.php @@ -0,0 +1,27 @@ +table('player'); + $table->addColumn('chip_amount', 'decimal', ['precision' => 10, 'scale' => 2, 'null' => false, 'default' => 0, 'comment' => '当前打码量']) + ->addColumn('must_chip_amount', 'decimal', ['precision' => 10, 'scale' => 2, 'null' => false, 'default' => 0, 'comment' => '达成打码量']) + ->update(); + } +} diff --git a/db/migrations/20240511060113_create_activity.php b/db/migrations/20240511060113_create_activity.php new file mode 100644 index 0000000..b9989c0 --- /dev/null +++ b/db/migrations/20240511060113_create_activity.php @@ -0,0 +1,37 @@ +table('activity', ['comment' => '活动']); + $table->addColumn('department_id', 'integer', ['limit' => MysqlAdapter::INT_REGULAR, 'null' => false, 'default' => 0, 'comment' => '渠道/部门id']) + ->addColumn('status', 'integer', ['limit' => MysqlAdapter::INT_TINY, 'signed' => false, 'null' => false, 'default' => 0, 'comment' => '狀態,0=停用, 1=啟用']) + ->addColumn('sort', 'integer', ['limit' => MysqlAdapter::INT_REGULAR, 'signed' => false, 'null' => false, 'default' => 0, 'comment' => '排序']) + ->addColumn('link', 'string', ['limit' => 255, 'null' => false, 'default' => '', 'comment' => '连接地址']) + ->addColumn('recharge_id', 'integer', ['limit' => MysqlAdapter::INT_REGULAR, 'null' => false, 'default' => 0, 'comment' => '充值配置id']) + ->addColumn('start_time', 'datetime', ['default' => null, 'comment' => '开始时间']) + ->addColumn('end_time', 'datetime', ['default' => null, 'comment' => '结束时间']) + ->addColumn('deleted_at', 'timestamp', ['comment' => '删除时间']) + ->addColumn('created_at', 'timestamp', ['comment' => '创建时间']) + ->addColumn('updated_at', 'timestamp', ['comment' => '更新时间']) + ->addIndex(['department_id'], ['name' => 'idx_department_id']) + ->create(); + } +} diff --git a/db/migrations/20240511065003_create_activity_content.php b/db/migrations/20240511065003_create_activity_content.php new file mode 100644 index 0000000..b39ca8d --- /dev/null +++ b/db/migrations/20240511065003_create_activity_content.php @@ -0,0 +1,34 @@ +table('activity_content', ['comment' => '活动内容']); + $table->addColumn('name', 'string', ['limit' => 255, 'null' => false, 'default' => '', 'comment' => '活动名称']) + ->addColumn('activity_id', 'integer', ['limit' => MysqlAdapter::INT_REGULAR, 'null' => false, 'default' => 0, 'comment' => '活动ID']) + ->addColumn('lang', 'string', ['limit' => 20, 'null' => false, 'default' => '', 'comment' => '语言标识']) + ->addColumn('link', 'string', ['limit' => 255, 'null' => false, 'default' => '', 'comment' => '连接地址']) + ->addColumn('picture', 'string', ['limit' => 255, 'null' => false, 'default' => '', 'comment' => '主图']) + ->addColumn('created_at', 'timestamp', ['comment' => '创建时间']) + ->addColumn('updated_at', 'timestamp', ['comment' => '更新时间']) + ->addIndex(['activity_id'], ['name' => 'idx_activity_id']) + ->create(); + } +} diff --git a/process/Monitor.php b/process/Monitor.php new file mode 100644 index 0000000..2a52eb8 --- /dev/null +++ b/process/Monitor.php @@ -0,0 +1,244 @@ + + * @copyright walkor + * @link http://www.workerman.net/ + * @license http://www.opensource.org/licenses/mit-license.php MIT License + */ + +namespace process; + +use FilesystemIterator; +use RecursiveDirectoryIterator; +use RecursiveIteratorIterator; +use SplFileInfo; +use Workerman\Timer; +use Workerman\Worker; + +/** + * Class FileMonitor + * @package process + */ +class Monitor +{ + /** + * @var array + */ + protected $paths = []; + + /** + * @var array + */ + protected $extensions = []; + + /** + * @var string + */ + public static $lockFile = __DIR__ . '/../runtime/monitor.lock'; + + /** + * Pause monitor + * @return void + */ + public static function pause() + { + file_put_contents(static::$lockFile, time()); + } + + /** + * Resume monitor + * @return void + */ + public static function resume(): void + { + clearstatcache(); + if (is_file(static::$lockFile)) { + unlink(static::$lockFile); + } + } + + /** + * Whether monitor is paused + * @return bool + */ + public static function isPaused(): bool + { + clearstatcache(); + return file_exists(static::$lockFile); + } + + /** + * FileMonitor constructor. + * @param $monitorDir + * @param $monitorExtensions + * @param array $options + */ + public function __construct($monitorDir, $monitorExtensions, array $options = []) + { + static::resume(); + $this->paths = (array)$monitorDir; + $this->extensions = $monitorExtensions; + if (!Worker::getAllWorkers()) { + return; + } + $disableFunctions = explode(',', ini_get('disable_functions')); + if (in_array('exec', $disableFunctions, true)) { + echo "\nMonitor file change turned off because exec() has been disabled by disable_functions setting in " . PHP_CONFIG_FILE_PATH . "/php.ini\n"; + } else { + if ($options['enable_file_monitor'] ?? true) { + Timer::add(1, function () { + $this->checkAllFilesChange(); + }); + } + } + + $memoryLimit = $this->getMemoryLimit($options['memory_limit'] ?? null); + if ($memoryLimit && ($options['enable_memory_monitor'] ?? true)) { + Timer::add(60, [$this, 'checkMemory'], [$memoryLimit]); + } + } + + /** + * @param $monitorDir + * @return bool + */ + public function checkFilesChange($monitorDir): bool + { + static $lastMtime, $tooManyFilesCheck; + if (!$lastMtime) { + $lastMtime = time(); + } + clearstatcache(); + if (!is_dir($monitorDir)) { + if (!is_file($monitorDir)) { + return false; + } + $iterator = [new SplFileInfo($monitorDir)]; + } else { + // recursive traversal directory + $dirIterator = new RecursiveDirectoryIterator($monitorDir, FilesystemIterator::SKIP_DOTS | FilesystemIterator::FOLLOW_SYMLINKS); + $iterator = new RecursiveIteratorIterator($dirIterator); + } + $count = 0; + foreach ($iterator as $file) { + $count ++; + /** var SplFileInfo $file */ + if (is_dir($file->getRealPath())) { + continue; + } + // check mtime + if ($lastMtime < $file->getMTime() && in_array($file->getExtension(), $this->extensions, true)) { + $var = 0; + exec('"'.PHP_BINARY . '" -l ' . $file, $out, $var); + if ($var) { + $lastMtime = $file->getMTime(); + continue; + } + $lastMtime = $file->getMTime(); + echo $file . " update and reload\n"; + // send SIGUSR1 signal to master process for reload + if (DIRECTORY_SEPARATOR === '/') { + posix_kill(posix_getppid(), SIGUSR1); + } else { + return true; + } + break; + } + } + if (!$tooManyFilesCheck && $count > 1000) { + echo "Monitor: There are too many files ($count files) in $monitorDir which makes file monitoring very slow\n"; + $tooManyFilesCheck = 1; + } + return false; + } + + /** + * @return bool + */ + public function checkAllFilesChange(): bool + { + if (static::isPaused()) { + return false; + } + foreach ($this->paths as $path) { + if ($this->checkFilesChange($path)) { + return true; + } + } + return false; + } + + /** + * @param $memoryLimit + * @return void + */ + public function checkMemory($memoryLimit) + { + if (static::isPaused() || $memoryLimit <= 0) { + return; + } + $ppid = posix_getppid(); + $childrenFile = "/proc/$ppid/task/$ppid/children"; + if (!is_file($childrenFile) || !($children = file_get_contents($childrenFile))) { + return; + } + foreach (explode(' ', $children) as $pid) { + $pid = (int)$pid; + $statusFile = "/proc/$pid/status"; + if (!is_file($statusFile) || !($status = file_get_contents($statusFile))) { + continue; + } + $mem = 0; + if (preg_match('/VmRSS\s*?:\s*?(\d+?)\s*?kB/', $status, $match)) { + $mem = $match[1]; + } + $mem = (int)($mem / 1024); + if ($mem >= $memoryLimit) { + posix_kill($pid, SIGINT); + } + } + } + + /** + * Get memory limit + * @return float + */ + protected function getMemoryLimit($memoryLimit) + { + if ($memoryLimit === 0) { + return 0; + } + $usePhpIni = false; + if (!$memoryLimit) { + $memoryLimit = ini_get('memory_limit'); + $usePhpIni = true; + } + + if ($memoryLimit == -1) { + return 0; + } + $unit = strtolower($memoryLimit[strlen($memoryLimit) - 1]); + if ($unit === 'g') { + $memoryLimit = 1024 * (int)$memoryLimit; + } else if ($unit === 'm') { + $memoryLimit = (int)$memoryLimit; + } else if ($unit === 'k') { + $memoryLimit = ((int)$memoryLimit / 1024); + } else { + $memoryLimit = ((int)$memoryLimit / (1024 * 1024)); + } + if ($memoryLimit < 30) { + $memoryLimit = 30; + } + if ($usePhpIni) { + $memoryLimit = (int)(0.8 * $memoryLimit); + } + return $memoryLimit; + } +} diff --git a/public/404.html b/public/404.html new file mode 100644 index 0000000..2bde119 --- /dev/null +++ b/public/404.html @@ -0,0 +1,12 @@ + + + 404 Not Found - webman + + +
+

404 Not Found

+
+
+
webman
+ + diff --git a/public/audio/activity_examine.mp3 b/public/audio/activity_examine.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..d41dd5a27922d54ce95ff960a3c2ba130f6afa80 GIT binary patch literal 31533 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

ANhX~A$ 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�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 F{|{n5LfQZT literal 0 HcmV?d00001 diff --git a/public/audio/lottery_examine.mp3 b/public/audio/lottery_examine.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..667b7e5eed3cb0765cf03066c24e1b9a6c8c26aa GIT binary patch literal 33069 zcmZ77byQSe)HwXhP&0HlN=rL*%h25+DcvC5B14CCBi)^XfJLWt2`JK?0)m2YU-&-H zv(~$Q_YdaYVa=Kkdu`6zXP`5-LC)Nfz-Z5cE1EJRf>*DIq&E3N{-y^LakiriS|93HAVEoT*2vEcAZT5d}|L^O) zzYjp|0#Hit-=G5ke&oGYRSE(CNfJ4n=bk5@3a^A*>Afa=n90uIqa(b8yfK#7A8Q3$>rF0r z+COh~?3k@cVExp?J3T3McQceAg3j`rLgT4vXBiB;05^>(hO(7n7{w#qF%8%%3pBD> z{W@ddo$67KTfOy#Xw&|kV4=Yq4U;C7XTFQC&H#r8zh2n?<6mpV*1E3Y5P;|}>h1Oo z&AFDx?h`5rtSa!^e^>Zh$~9EYT$?VIvfeILwqy}gVzJa>lqIxB^bQ^kfL;v`12tAz0LxI@w(~IOLZE_ z*AM>c|2O^%hH*uk;>Je56z)pbY}-nuFZB@0Q!U(PS`sRE2TqP;rXjhZ{&6<8dG#*G zO@B(;jheqT{+sjot@=j-gKGBORHkg;%i{{6 zrG*tAr9n9yIqlL&NWtOr=GlblNykb++jPI3(Y`E9gv4}^Ak^+L0!`ubo~~MjptR%% zMlX@b+*Jw;lw6Zb1+EFT4@b?6dhB}-eh`Vj7x$+uo@<1&iQc-GxkH_k-mw0J`b&_H z^RC~JmB2XE6@#IA8vPvOH%%;c`ZkNk4RsQ4BBA{|Hq zYK#lRcpm%{p_AUp(9*KZZULTRz%8T0ck4`ev{8!)BcEFvhs2j$j>>_n1XzsQ!XM$wJnYjm;A&nS!Y{m^}R8{}iUOmPo*m^;+sJ z4+9D@9f}zSJ@ui*KX3YB)2acVjm@=p?=!7;*YMH4*D4)!k|a*tf$&Ao^*4F3TZT0y zsiaufAr+`}d=U_VmywdUFETWFo`2`A{5D`y8I~U=R(Euv!LFb z6-n0^)~k17_@!5EK~mCvQ^{1EgcSgh&sVup8VvbEsggnp?j}Bw|1s;G~^DDi*@G2{?xlhOZL<@S8 zq~+C@W%p#YGPt>@TFMxifZwHOa%MkS%JCUi2y1d5wFxt`W`%-vDZqVkCBDsDHeA9 z3^6&cCW)Txd)qWlTDyU7uOyyEZ3*rg+h{&d7X9TT|9y}EhAKnSNRxuz2xfVVFzNEd z!2xQ%B~4!IeAJ#kc50&b1xf>DUDjK!E2; zKJoA(o^JCe!HY`6#01G~-__fD9&^o>$*GVz!-%?DRkYLP#*E@M9OeDEU~-SzA`zVFrTND^~$jGU#72AhLymdh1%5)Rd?Py^uXN zgMpSZjiTRWKd?W_FWcR%mC=-nCX6SN;XI2Y*gvae=otE@XUt>l*v=Px7u)YE&^fJ5 zpNA!i$0(ECA9LHmgt`?`u(lw~$ZLz_)r9C*&`~Ns_|cG9hB_9taJdleyaVs_7`ka> z_^X9Usx>WD-gbH_^ZKo4r{3xPA6;Lp+XyVNz$UA|2j)UqhirI`G!( zoqD}z$No47UK!id^HXCIX_4_9U}7w@L4 z+$FJ*i*v~l3BoPWZSvq9`61HVidrs^q${d^< z?jZ!~n}NT+;84H;MDV^F8a(^5=IUnzVI*$GDHVo%`n2bD`EQBjIfeF6RAw@foyi(O%HJ4d z&FdK9$}_2w&iUbeoB6QB0a}CzM>v%bHLIojOZAopTr+rSk`#aQ++VY0hwhoVtCf`w zZ_w81<3JfPDUXZq`#$D(rZ1C`XiVW&5{J(q)~>Gpfxfr4eZikhugv><#xs?=nC-x+ zuVKegyJ61G2!MdF2W5l8e-r;pE6)ii_uu%5b)Wx~cA=$TV9X`Q;ynree|5lXHm};R z^OoroNeQCFe}(#G9B>zkV79ME5QB&TpVk+iABRpjWAT}j^lQOYN^tuinuFVqQtMbg zX;kb-_3~(J_;e#ccN)x-%vKVj`HwDjgSX_D6}8Im0Pk@b!<&-MAjiK#@@*gp{_4CV z#{mh%KH;S!XOE<8a|ZRuB4&ZRsDj^$;0buWLr4b{F}xvGi)I%j@*2{pF!?6?yJvqd zzj()K`M>dp5P;c#cCYxPl+2iV{O=OFzqeb&m_Bl}v#|d1j9mJfA@%0jca>bNwf|t1d_-(!d=3RfbKD|MB7=I$s0nH`ni|`S>w{I)6vw~c#A(3y=V`>q&G{cJ$WKS`QxXm}Jtf6vxMp8qW1Quj2-xzbS5g) zetoL4ju0h#+wQ-Wd_*cPYh-tY=4Us*aC~<+wMkG|f1P2bI25B+;1VT>MOoS3+>pjp zM@L6FZX$qC%i*GdQ!mB|Sjtlp?wKk+Q72v=32vV6{AnrOD8DcNHMFY9ejfO%%}J0x zANMCH;igZ+HQB0YR#0zjSiubZt5NgdX91M_f&;fDP^OqNUH2BQh`CiO2W>T$EpHGWyanL#e<5fQE`^{BFJa(82lguQ(;giDDLsE)& zPzbs|_;~;&)jX>Kx;iN)e8;Jlv_I0a-`}1`N=phc6a@Y}VjpC+EV%hlHNr8d3Cj~j zNw2cg(Aj=L)d8!V(%pZ)Uh2*B+k?kCU7r9Aa4}I_j9z%;U2}vKhV~(gL!#Rqtv`j@ zCQ+NkRuw;XP(4;gKB1d}I1~$@O}PFuzoS#>{2oGv8Zz?sd{At_^llj*ChFK^*@sY7 z4$F`d#tza{h>n4$Kx0<&+y3>6QZXy`V)00AJ& z!iW&=K5|vTXn#F@{i5BRQ_5yAYt8Xr(^z20{k?U!> z?QLxOyFJULlboXdM*79sf^6yszcc__DA60`SCc}dISE9?@LqkZQK3|BPLNYARsh9# z_Wg}wm~vS0`ty7m2 zUT!)v;$KHHPoVM3gXF(eHie$z-zdjWB$75wd$haq_rueEe)c8`%5ZbMOUYB5zW~9z z|LT850Ol5`b|fy-t-@FpR7$3KRDAN{FPVMI@cMgMo>E6R8k9*2NB|5-^v?;iB&J9y z>7P)1-!=c3T0JlA8Q|f|ea6MbJKCPWoR%i<7#&D`%k@;10)Rs4@Xs)@W=X0|eecIf z>eUhjYAP(l&o8G7F&a7hreqD!jH9e8F`hhg-e%{ND}Tz?dtjI*pZ1~2@1$Li#-;2} zKpHN#jYKMUSgQm7c%}S=2NvJcO{$mgvOt!>3s@Qu=mb0{lo_jHT3+V1z+L^s=S2YQVTdsPdq!(pvsq`>LYI zrV6=kl3rZ*e$t(|0A*Sw&m$>Qb|vYBIL7p+dez$k(%Jk%6O5!D4O$#}$v<4KK8k2P z2Jx>XE2f}fWO^e*6rt$iA0GVL08BRCwIZwWjEnowJ1RTCx8Rz|`9+|f)-UY=h51DA zZV?PTeSHR%bbY6j!z^y?NVxTSRT{r6x;&HR=4R$lniL7~Wafc6xS>2xC7#lyG<1Co--~Nh9!>hW$QNGRCnLm)QgTFng1l1lQM7?S z3+bV+{aYB}-2Cc6ZwfVa{k)X#P+b(QZ8E78)l`1e7EQKlmAuSO!5ZgN^k?Dg;~?zZe+O zAeq`)|Li9JDL$`3WA`CiN>8CC{2C53(=Qp~&TkNr-{Um~3L5%57U?3WgtPm09Mg6Y z8!P|3CUwF>7noVe9-%`%LFot!F_=BULHxd!`K4e`QPa<*RGFnsJ3WcciVuN(4ETIB zfhBb$53iYT)!;DySYEt~&+5%V=OTzxRfAn#oqSVU`EW-kK12W={-c1bM>(pyk)mZ3 z90T?JqfX`*?h0sLFF*KM0N5uno598&B@3pbSEmX76&f-8=iK8c;?rsoXa@ z`~v2lG31XdExF54IfV_G67H&Jj;@*&sOSL4%;Bbj7F_3Nec4%&R*}{1Ggpc5O|NVdcA65WH z%Vt**-a5s}!S(4hR+Iq9K$-seI@{a{l}Ae#E2v)p*MB{2QV&rKP@B`%klt5ReId?O zgi`HBNp3@nz~j$5fuP2obnu^*fAcRp-^-bSn9+W|R^En8)=1pp$S?~W-zUp#UZWXx zu%|1-SJLctiS*TPe_lAXowOP-G=`9y32wGEOc+;>e?8JJ_$jAwb$(H$(ov8}m2H(? zSi^VWz5g~l+Sb>lH7<=JG*w4>rqT_L`iyXI>LLDoNGudC&uyst6knq2Z7S~DV%0v% z(dvtIi!!!aC+umCCyjY2wT|7wG3?We+y3ogI{}HG*xgd5Y7VcR9p;4OyM5H_-)JXR z`1$oom&ihtZesex%9!Q5`Yg>!C{RL+zl|On342!L85!ws!2%|H7+cz`9iA^zxaIvK zEe&gsd%--E@f*{7_Bwqae0<)gBsjR3C9MwzXpsQ>hIs29Kdm?OQj&BdESmyfd#OQE zHA)FkJlx$yD`({%{Gv!$R-oNZqg*$8qEq`N^be(Fg*+NU4IY?x_1k?Z|J|N_06Fz% z$$vAbVM^R%kfG|&q#c!3jCANf4fJtm7Is8fT??vx^u070glXqy&O0sNUlNlnt7m`Z zpT&p70L@cq*bs&-1Rj5_8;<+ryC2@0F1jBAKBn@Lxi3pzaj+K-sdfR%mRT^=LNqL7 zp}7*)hMLq+zjU(^UF?{@PKILWSEVP`2jKUe@{@u`cc0Fh-8nGA8o88o-#qwb0hpiJ zef~R1ai`UZ_u^)~yP+uj#gOG7_KV=)hiP$aMwGXl4u5G}CXsCjuZJ0hRs*rhsUm4DAsXznQRa(c!fgP>X}C%~qX?efS z{GGgeE|8aDfl{d4_u+W^a*E`%l6}w{J6!SyY>AzTWxL6gBQR_EdgDc~-HG2b3M`)A z2*7ltAmj1jL+gXz0)Tm`*;SO< zcR$6hVUEgLfYNG%qwXQr*_#?vu1f-qvV#{LZtFDe@fvqWrCrh+Z>Rx1!AZ(`bMz!1 z0{23!O<~W>)!lCynen;2{$(|vaW?DFBQ<4KINGi7Lh-e+)5COQ6hL{+5tPi0+!Nf+NcC_@(&7Wj@y<(V))@e^w zXK?xK=Th~;ROO0==C_5wi9a$a#6U(v4<%l(46}R`x?HOujL6?SW zRwJZ(dfsS3Y;h^3G$Ts*?kci`z%2>}mgp$i$A17>fbi?4GbKs%F-@q=KnD)hyNEbj z;9W9p$L7n{R~h(d(AOp_+t`JXHwnt$7_OPTy({e-*#APDAw3!=%A*`f!{UR>~(io~9k+=s?%PAJZCt z3QT?_f+9cj+VeG@#-7Hh`nNoa)bY75EZkQ4s+FFqo)B{HIUxY4 ze8~_G4Hjj3tVrUiXD>#}mV%6Bp<86ZYL7pC{6#w9<3WOfAJ?UCbKEDk(1=XI{ilw3 zqrxh9rN=X`zWnmbWD0@L_3t8Py{0NNpb7xk1vQEK zpe_t97dAYiglp@1@$_%X-bF}%pXKB=N!##QTv(+?V#`$P%yw}#T-Z@0Qn0+jf{@_S z8kdF?It-ycW7u69>zey>gQ>#sj9HnNxaV)+9%BzHcPc9|DPZCrO#BI`V2|qDx9f?Fw8c7TRh@m@dV&RZ7hT#o)Hj4Sjc6Q22N;zl4~* zO%F4A@arS7th22SnH0J;qH8)@;?~TQ^*&(D@>j@{$iZ+L@?zEd3i1t(J^ps6;e6V} z*QQMkjFkYo;St|lJxO@P8m36+`bql(^zq;)jXLQFes5c|O;Zv4` zU!}jV+#N`Cn93a=Db`49ry>1i=;a!hPCHU(a1Lxg{0RJ-He-GE0h=K3rz(@;ReM&k z-|DMIQ>iug!gjaDHgUPvR2=6Ee)g-H{@vEXqO&l)RV;9s-1)(8fW+b~GOo>13$aQ# z42p#Qv5vy$PHSVW&q*ac(|4q*$8>c+aeMct&9}EnHLc^A8V9{g0SOhRAx9MuOot%* z`qhF$3metK*DTi=BT&mCWTc<-w*_?G6)q5AQYc}dO^%dD(8LjiSA9rH;2R+#;*=Jx z_OpFtPclk!UYFP~tWE177d#^BG8xT@i;mhVQ{G4X667?{>oLmv4z@oLHy~m%aPyLt z05Ea^a`WgS{@QKIJLlD>I-HvS>yOj3s^!77V2-T|iYk0j7n?Ygm+!;xy0C2lY8Xtb z`$ImjK?>Uiz4!Yu#c`hhO&e*I8-ryucO}7V7qT}qnJmlk5E{+$NXCB|4GE=v*>+iI ze%U5X_&F!9TDA9b6ocJ0G;67oe}sWRj{xyLY1F_QS*^puA8qy8Hk5Rh2qa)I% zQ6`{~P)gxtHlY714A0zp%daVUb zL7q$j9wxn}y(=o$cYvt!X>0TtAgiejpo!~h25zXOxQMLjet+68<=pXJxBDg3%qBut zec1BEkquo6t2!~2B^nC(VBzww;Y0lG@9Vcb$pmmzpjpBfl9d?uwlWO$T(@)-OS6lWnEVDN9z8n=j7LF1lsLZ}7$QkCmjQ3% zLY{&kEhbsxr~2eFUt^1zfi9 za6q??M+Pqw-&=N-mzB@@qQX4$4}KQ_ z_QT&WuCcc}`EhmWuY%|nEXrcIe6Bn_VRUZTxqrHFS>RIP0`6@Po{g%L$;q8))Z?1k z=k_Sj0fx8xY2iqK9kDA!X5k$EEVHXSiy}HklQOj$4nKUC^~4XuS0FAlRbtw+sj>~D zsV?TNOAmu(nY@545BTo}AC7jqXTe&gOgQ#EFJolrxfH?uR+CCRf=PYy!j?W2zQ@rv z-J+qPW%cpDv4e%1&FS(=D2>UmUt6aH_u)nX1w#LmKUfs*4uehb5FR|PPkreWb>na^ zL$(j>62U9688GHmwxnG-?GP5$41R`o3M7g__aysw^uj5P&$7Q$EMMGE9(YZA_YcHQ zp&SC@!hmPYH?5>q!wzUw?k{z|irPe{=&~el4VK1=x$-n@epSK@wEXJ*n$Rx5#66y# z9d%V_hkvj(uSU-8uLobM{W)O!S+4xkc}oj@O<&xk>iDIS7V89mLolx%@5lB=nq&58 zQ9nY#H~bCY>)HS6A6FzS&C_Y8(W;w0fwTP_clGB{UiEsdet2Viv;)vWGjA)3Nj5mL+VjQN#ckkCA+*N!YM~z!)z>NQo4Nm=jAL#-At* zA<%b;lW3DlWl-rMCY)$^Q`V|^J+CQ|YI3jD36#+ntG*Jvq3zB^u1C%Bt@m`8)AXaIR-SlZqNpMh9nQifE$e!y@z*dZ$Dd4zj8YGDw?9I)#WFN>xs5`9PvdpqN&LJ z`De*p9Pcirzu_|L?shf5hCftrn-*J;D_8@mF6jp0arXGijf(wm0;#N9*4VW^HO|^Q zEsp-83-$4cWQZmX%{1#8!!&PBKmPAsL5#6{UPTee?pNk`v$w6EHx=!d`_P5n92{CM%LBo%bA&RAgObIvDmNqdkeUT#gP|OeH6TUHQ5o0AIh&dD=}<-hSK4GFXU?ywW5 zCdEaaH<> zH1*h}NlSc7ov8~6Q05mOud`1Uak)IiKOYGT*N}*790=jTeInRs4s;UQF{C9a9pI^K zwMk1q{n@VW%g{|gzMO8hkR9HQWoFumCVL3j#zP<_vXPe;J z%PQu)5B>@yVKx_6M+Oo?P*~drKSdQdBy6J-;8b%YWgX?FVZE#k(NP61=d?J}IsjDG zOQ_6#EW(3dkV9|7C|b2n?)i)3?#E7ci_OAc{uV<;l#J*bzd}3jUJ3RB+5a4htzJ`* zFd48;Gpr$^3;id)3@6p~zfjZLbgG|E+n|HIiZw``s_e(^Q^QZAN~TN~>uTxRBgsW# zo89OwlC-+@4bsmnxO8WN*V|~r6v3aAbs6nU9@7zHXQTIpARqi*_w}cl>1_xSMV8n_ z{1T_7yRTcU9*_RSJS_<=C!!yML3gg@>ydMvVoS_|RvEzmQ+PH^QJ;mE(IAi5+&o)O zs$I0p?3A^3I)(K~ROX3tc1I7mf`L)VhVP?VnTv(@dPXjkUY^Q+2{)a~H3#k|uef0S z1`U~I(ECmPHv%G{;HR(OT6`=5*)GcQ3e$L2OgfeKG((cCl3l;3h(0`;awl6f)C}B5 z4-jbsYl^8j*Mh;{vX!!1rvLRH{E%3qd7c$n&hBn0NB=J3X-3;2Nv}HIZK)_gU;FE4b~}%fl6MVY!`(-18B`K7^sYy(a6$!pU;X!u#O%Sz z2Al#+*Eqa%7?nQ5E#qo}2joBNk*CoIYDDcxe!c3QgxF{@B8^!j2G4(Sbh;etR@-(- z{a^fbJM4Du`wu$R&iofKZXapEGc~+Y@g*dbRJ&|SsfL;L8Mo@oCkZLM8{9Jc;vWq3 z+%pmd+@nUnivdVK=St3Z=_vg%Vfen4tl~u{yy5{E2F!|R;=lV7f5(Kyyjl$9B4=#{ z&`kMJ5abz8R26?2w1i9#=W4`m;k^3zCiG)<%naKCwL`fJ{_QNO+C(hZSaqgwM zAUoe8xD@H_0xl`sui-R+|HO%#O5gxS!D)y&F1(NaA%A=Tn4+1>P8r4;54Ovza;P}F zklw3-FcUy;z(AvhUB6|{!s(K~XC42av&l<^yLx^J(;$zO+CHbhF1acCDfoW4r*%%8 zdYx%^<>7toQe01#lxT2S|GbZg&?F+62^ZmyslmHjIDrJQxAF^D7E0_IRqGk36Oy&% z|Ao%o?HkaRg5Z%XXY3ds+4qWjU z3Nz0#*AuAHzuu{jh1*w!2OegIay#6PT{Y4|{R`TDc}LV+$`9;iC- zvQocD5sv}yZh&4ZZ;LUDv|8R8zg7(n>gdwI|q!JP%XE_Ou z;!_wC6*$+}E>b&q#G5OIOczkUlsWrD!Qy_6+?fucZYh1Xl4GL7w*n+{Se ziWb_v7>2~bg-Uf7QG^rIJ`RN1Uce-cn%MeG67AqoH>Z3rb=A!^pX|KJH@gn<7Ezy` zJrzDhT=v#Ha2w>Zk0%iGeXD5vu60(z67Z#KdP2EtWiR2&rIny$jkZ~i| z4TMr2meU6`p;6D7CfnCpwp}j$@O!$UfVm2mRqCm?R_}k*_P6!(^;JUvzvWIBKHc@DTq(q!NLldpRzF7DFo6r>=Zu4El9XbhQp5xQ@iD{p1?Ub6$Bvaim%C1H8BS4WsG>IuhL(| zcVwKhq4XB*sZnkdV}N$_BM7^Ff0~b9uUric@&vzw`(Nr_8@+xf62(lVJ0UjDUnnqY z6jfov3IGsFWl!2HaRcMcWX*6Yng-Y#dcJ)ph3Bd{OLM?E-h1$?er&^ozwUnh*U)#f z)M|<|xBk;Pta#s`f(q+H``ZvyL$xQ`IM=tT!c+%tCXkBHp^Sa6v#kOI_~`%|Z#o!2 zdMg0;MlktAuA<=uUqK}YbaW~@4a(Dx>+V#m}Qn z@lz_=H3Qb8@b7mjyVq17KWh8jHFphy`#l=(TRA2ftgWpTrM{GEBA$%Elqiqndp@YHLPX+?G3t~2P-$@}`BC*{3l;FN|J)9;l(tSQ)4BMoGQsPp!+ z09q|OMGDK`Jf*&z?c{rrW!;~hN(w7nx`&4E+tAa!K~iY4ot<1B(tm~)J& zFXx22a#eGF9+O+FpA0}l(wwlU?ZBP1%j+0iC@h0$+fJ_5yD_S&(i*^BVkLt7!3bT? zvNcb}+0Dfu>sh};jdny+I7B`Pw&x)%jr#dTy^f0k9l6_rLAMYk{iKFI9PLiH=4XD4>k7*BQfGMVCOp8JjzCXhzWOJGpi+hOwS0v29&U^GT zx;q3EO(77d*W>)gFSwNlFv1Up38eP=QU~GTsO^b27OcvI^zI!?C)Nx z4ZkLY7KGh{HE!1zgiCUPmWA^pbgwfTwMrCRK;!do&4a2SM6@!Kr_Ch4! za24sXqVHRmOe&SJWlCq|hpLO!OVOq^?R2r@MA2v$m*d(-Yoww4&&1CYJ4Afa5$9uC zB1=0$x)JmzKg-@$S4Vp>z}TLsjELdvFgeUt%W@g0rBkzK73%v#t_=O^4=wW3kc+Hxu&|!?!5W8+vpg;DpUOLZA?|Rk2L`r z+S6U@5$&D_{~8i&^0VDG&V*Dphh}kv){$e;bKwP02%VZrmHE(9v7Zu;&eblhX zqEv@28q8`e2Vb4&u0zACUI7LcF^g$w!b8S?R8rkd`1_gA5;UUZHXi&7NNkcsyTQic zZpI{TztaRPOk=*!Z*Z~7t^3Mw;SMi{!Wedp&>a);-RGgZwJ(=1xRUo-KMo2kyWA=Q zE-}2rseGlLhTqFrN>b{YGi!upEZ>;HZjOIdG&GP^zy=z;W{+N|oBFCREp4gD_k;08 zJkncbSSrdHzpAXOG#IFC#rMNHu{!cP*ck2Aq>Yu7t4;(ie!Ok2f&!2j3VvJbB>G;) zsNw7wn5w!K|DRTD6l4iThz63Nujjx1=Q4oRZ4tOrs+`SD=+b^kS6%zX@TB8cweQ5w z2I2^jCcZ6|s}tt)p))B+I`v)kcxE%pm1N3&r7~mKpZ24|7poBjFQ~BTZPV$(tFr(c zIX`qpjxrn+E$!8!@Kjvs6bdaZhAcUm z;5BbnZUYMQy&gzOOarMO2(A~I3zHDRuP9d`({bcXk=RA!7``Y;qZRbqA;M|qhI7Z$ zCqjzIk%rP7n1dKgcFeB+Hnv)CsO9gHaoTo9(#^eUIO05c3yOJ zE*)#8WsuslpFzQYOw;BmN)(WoQxvy!#um5!Hag~W% zdJVBT?!^{ncr*o@f=QQW6^eeBxRFr8%X56&lP^aGSW1Ts_mosy z3TaDCP$XadRb}WZ9>K51Z@*2RN8Oaow;UKG^_C1=t^IuQ;6DPeOLLw(f7V9*5>} z)L<|TEhQy2)gvl#ZYol&2pNkcC`SYaI(oMi^Xv_p_FQwzENm+jb4#t|7b3K1nqUUw zImQd;&pO_U)#&}K<_OzbZm|ddIuZ+EtY2rr6e9en_Tmz{>s#>(@UV-0WX-Qv4C_1n zgZTP3-dvOIZ%Di;Wb+ddDu0fgBAM_mfiF%qEr3s|%27!#!oY@|L`cQqPpDETi!Qw) zYbG4`LPfEsn2?R{*3W!Rt0;rnX?mV!u5oA$m9iIXmHBS+oSgmb{I|dU9@7z6D&S)a zC6Mb^w_gnTn@^?~s70)9UO){gry?M3O>ffE?W?bz&*5_9jOWFJs?6MvKEQ$U+sszr z!M_WEWf|*^GAT*Prm(}xV*Fk`o3UXV3^W|gia`DRy?tmzdr@n*xylT@MkBK+tz@t_ zeH(A3ijd;#N|c7hCgbS=m;e{R$d;hqLqf05+Z8}iG|!Uy6;-asx;&m)_le@&i=7;X z?Rh(wVO+V0Hz zW2B2@2&u|ONvP1#yg6y34M!Rrl3y6ErL$=b(nvyM=N|mWp*S|A^0<}FA;Q?z%o(_J z<;DkwOer(%d(XHFf5|Ay<|${eQ{Om7gIAwNm0c$|hpNYPX?2xw9N7uGQ8yr~g_M%o z5HtW-Rv=cVGm*vN#8}4ZY7!QKAaNdLLMGEVj0DO1LUp)euqRaro>Iy=tRh2JBT+Zp zYDXMkEd&*75UD^BbWF;mAFMKOV)=*tygk2RVnm)Kg*qkh5)2*T>13@J9fq@?)_YpK zj*h-&d$tzIW4tgy1wnoA9{||dxCpf(9VxX82ZyqlM*As+!!H`#ThtmqNWliy8bM8W zX@&B)e|nj8W~o>5d|Q+;-5rR>7Ah`24weQoE^d$Al*qG)dP@*j6=U9=-p_;${>!0ib zSf+$hT#b7uPK@{SU)W_OfgXwR-r;cX8V#K_>j2lkm<~^}?bWGyOw*&BdAmtgQKCmS zn|Tb2I!1d)v{w6QZ#oo;tY|cm)d2p&NqLNNCly>8(ve>ahv?X1;+8z2m6RN04p?9Gdks?bV0)ZzHi}L&V1#ZMw5c_xUg4{}ntn z)DZoomYvU47F2TwzU)gJDt-2XJb!kNB`H5v#q2jB=&4|~PCxN@5R2BCp+gdsR2I$5 zBmn4R(2|`|kbjOj@MTg3LaETB2BQj{F_7X6v&;YmD(&*I?m?SV-NY66Cp{z~eAA3G zWW$iN*(U;j*n@B95o?-+&D)+|1az(R7(bw?j2fka*JaVT^~e0gERTdqqEMv6GKSlX zBy=k;G7dA2fS6>h2mi`_|29G?Dy}62p6t+miR0#}x6Q(0gN3}@e?v>PvU6xMo@;c! zX!^{giKu(Cs>gjV9oxKP<>t7cTXP4K+I+(TJ7_UkPO*8P|e4c=ag;T!rrT`+53 z35QDHT0Y9(lZzpkH8afHM4%)8M&~|(9OGWFRnARUb#$u+vdSjKV`Jd}q7VK(0BbW_ zV;ju_#e$Ia4|$fzqP4EV$vGvL+Vl6qwe@2ltGTt|%Z9t|Di)%@M)>QQxTGmgq2)h~ zYbFew>KDm|01^axDGN4{9F^Zvf7M_y!#5h=NUY>1&HgN^DBV-xIG+okOWI4r>UG13 zT2zEAneWV_NHGXP)S@RHSF(6dyRsFiCQy^;s0iq~{=70*{7WA;q+EBogl0`3Lo$qA zEldzkm-4H>jQghO1^uIh&U&UuYAy2^nCu7d|IMHFJhiSyi*6l)T5${taU$(`&w}&z zfJ1^P*Svgr!r!4or6kT+k8Wl03w&=v-nn~7^~9U>kd;K?*F7%Zgdou62my>}CjKys z_nve~&GK+kcCZNL2rq@XAPN;(JB|{TtH;htH*PK4QB0v_9>pMmcaf)qvvTP*@b12? zvsz>~C$`)G<_SN~S9p>~hQS_g6zspP?jU?JOgOsaNzomO%HJOyMtgt$0_sDSMEBT$ z=OTI1G#!WbfBnCyl?F>2L*PkOoabZ|80S?vF)rV(&Yhom_vUw@Jx<2T$bEYDfz^We zh2G}dVe8+VA!Hz!Tk#Qx>O}D8=fuY{cg!>tG6m=RtTgwh$p`?9Y9|}yt8k_loOGWX z7ftPlg;jd2bA||0tUZaSN4erZOqsQ&FQ@rElCFxYu~jR+nkyxSvQDk|PYn?d_y!n_ zr^#Hy%5ZfvYqM@iialn%B&LxGJH#9{X2Tq#-l2gjW{`z4_|FZ z2&k#Uk{JxeQj%aO73eadZe1Z7tR%CW+M4S3tQ95cW4WzZj8((fo*Bb$Ek-=AvqN;R#tKuNaasA?)D zgI8Ve@-G-A*d4<&8B502T*2GR{BOD!tfRk8n&^NT^yZTU^@p zH}*^WmcL^X_3CS(+G5p?-R@9Tri90j{4E;uy}W5etYHU(OoY1Q^<1PN=$Ts|5TI8h z&7(Y)<9Jj2^sJ*#I%(G^ntXH;PD z`+onGhDAlAl9XD?k=F$lgW%j$1$E#-l`pNw>mN@fy>%xoA#q%fL0vRo9q{&eRL?UV zyiIpDU2!$M`pBmrW#cH>d4(qfp>?%ZyZ?hQw3X;ka2hSuId-&|ouBoW2S*?p)?U_e zeWRiqGQv*~c^U=RPL^9rr27BbJL{k}ySG6w7z|(rf|I|8hsqduOr55Yx4;u> zCW13qj>lJ8xw`-Q2XI)747l(#yM?11e}|AkGV2_T1Ther$|CKw*ELcxb4@rhoNQZr z3O;qTUAHn%Um!R9=#fjIF?m~%^J-<^&H$6d%6X}$ymf(+quiN~g!NSQ<$uVRHqu#- zt*JkVnm)JKiQ)`4k|EOS;KRy29#$56>#uTS*%-A`<+s7f-hfm%@u8dwCefF9ZGs{g zOo@WCDuS#5_*wuUaV+(l+1T8g-xTeQj@^xSxiB$dfd?M8jB=FIFzWO@|1N;XVx<*D zsReT6aB4V>U`S`EfssQ>hLS%Qx5u&I?^r!#-3 zd|&nEdW!36$`A9MHDjDAT93n}j4!T27$W%C(zfF9mS(|jp8&*?)mT5U(B8wm3W8#j|=SA<0FVfz257w7Wt&d zeXiLl({9r#EV_$d@0L=XR;}=oshAHodvxe6N&oO+H1d{D^g?uUX$R;8fNv7cD$^)v z-aDb2oS(y0jEG=|(%#G1(P*eV95bcyQ+s3Qstb=eHAbfECEAr!k9_%u`m;wzH+-pj z4{l9Gt`EfRQqRuL_BPDL-!(0UOwWMydSSRy>v_~P60Xj_9k`evcrig3Blf}mkzd4g zDWx`w5NGM)rjF?(N4#PQ;- zhp|t|2}ij~LrY!A6oZab_&u{>Q!Dl8BkXz7O!5zJAa-+lPrgeo9$PrICn(&mf4#Jg zEW{0FKk~6Hf6n=Sz=8e@O7jH8-}t=^0LQwMiIvh> zO0$+JIS}ijP5}e!ITqFnG(3A!N>OsrYZ%O*5H;#i_fl8v#ZT11hlf_HfZKpSfD(v- zMMl3zJHf=}VWWBq$m6G*?k#QP!ik$0af6TYSq8bs8TS`T+{^YBe-QM<;#5fb{ zi^&d)+YqPz+nfV*FaDn|zxsLBd^j||GFU)1`@I31q7xI2hs#Eqierz*9c{`kLun2~&&TOT7j7Jo)w{bXXNoH^8 z9S$ezJ)jPze|q-XN;@pZ7uwVsR__G4`DN|AMY}?t#{sZ|0a?7`qyaX;?^BB9oz~U^ zGE>wzT23D}u)?DJSNYJw{Oc1i8q)S-Ii7#sQd-lR%??+o!YiKP^{Oh5`=e2;q`hu1 zW8!OIv#H_Pe&aHS`lzXo>JxzSFe%pK`ZLWz3hiz~lVe;Vnyt;Oh?vt4Ic{CsH>!N| zd+Rwy=^ppvXA_P!>cpauX3-tQU(g*Cc6i1r#vG)7rIg)N^ch=O;)WyOh}^Nm$uBz9kV3U{;^n_>nhptjXQpE(3mO6v+@lb$|#{m?GKN z=b5e-+-v^j<#lYXdO9)};q-DSQYUl7T4wZnCUth~Mu@{G^0M((-Ndh^TfnYIAB$(uT31hFh7iND{BZ=A9$QntX#`UlcdxDatB$etdg zizl!(Wm=3#o*qj!rSZ<)PfhBzar1mV6CFP;wDFC!AGWuNgATL~TE^m=(k^_}70wwV z*PNoq_L9!W_I#PCTiw+>&<{s~2Bvl+Atf(V;oR z_E{y5wXENwqAbmZPs*Ct8HcjMd*sRI>!_>#ZziAdTxbSmtUu^oQX9Z##)%3KvQAt2rlL5R)0FY&B^G-u5VH~ogh^|nQ-cOeo~hvV0g#Al zo~&8B^z6UqcUy4f?NI8{G*~z_iPg7{Q4;_kJmXX2<^-Hd^HXplNin>JQC6#5i##k2 z#^qtJXJVxDqHIa>pwMOslN`V;E(TEYBa@IHKC9(ev=Dx7&x?t8WL7*((+;i7PiVm=6 z$xO>x%d2@M9ehS!`smrYdWF7v75ds{cAFUzgrd}5S%XNEbcJymhF^8Ya~*!WcubL% zE%X#mPU?+JbdpkvDa~M2$g57C-_0@i{96IT9>_cY`FGbpR`A0pXz^QuWIrm!vJ5$i zhGLO^7Ox14J##z0E{AwL2Yc_bY~S}?7hgNnUaX`Pc^fPiA8Z?2QT*mqp!p(FiK8Pv z{(=Afo|nI)?XB}Co05#NkL3oTuk3V9OsoO3QHNy9J{;j5ens`~6QlW&K_7H?DK9?H z)}qjaIiUF1=ItP47^)V8?7!oM40Oy+lVSRo4l=lF-wwTI&?0g!P&QW zv#^o25`67)^;N9qVk&zcafW=^Ngo`Sq^PSA8~b3YDph{cp}eACo}4h?7p5F4xY7tZ z6*pv>qEO+Bl+KEbC=b@YyK2>2uOMm*R+i@?BY@tZE^jkBe;H_Gu`OSExtRNKU(1ph zXJuvtKiNA>JLAO9+UC1#tbv-#-}tu#xP}s@!)7h+Tve`%=o#gTOVSqqGz)>|7QKoS zM@&foI+-k{u{PgKC3apd4}RCSwWN6_+xE|cu0N+OB90DsITHZN4oNX%LxGjRWbpO3 zC$rddXd0!|rU`|{#7dmQnb})GB;vlW9~72EYYaEt+N>41iy=EYvRrHOzMW?OF2F$k zh(YZh|H!cX!NtIj4_#Z_GuY?kv|1P!76v9m*FMW3yAqd^Gw;IDYh?Ed^#t3PP>I;4 zQbj7<`}YL!HGkM_)}n@g$k`P=Nxu;FIEJ^H2IOB9Jy4ZM_(){w#H3QdHK*~1n3euE zw8uDPT-Z-%ZCAl0Lg{H^UOcqxk`q!~+Gt`YrI~};N;EBR?)16mno;-Fpj7mO9qAqy zbQ>`}?wT;jiQ2X-HF(>G?9mOmzL%F{wyG>el;KRGznpcV(%<}RQvgrX%XExyAUuuQ zk-s6?Eo51hv+ac8De4UJpw}ju2u07w8|qV(up?B@6kj}tx>S7C-~iqT3U>vS8EZ&;ND@BOO-xT=XJzdBL*OjvQhg&`mzQoL4>#Vof>siJ% zae~%U99hlNd_9_6p*V01RIq}NT+%2eLOGC=4tb+3y?+KK&s^lJ)Kq+zxHhObFobn@ zMUjYpM1J8+hqJ`XB_X~cn+OWFUu(7^2Db^_RbTSppI-Zx6nkG7NpaJN#=@apwS47Rf08U}$E=@KGn>({%eaHQ6>f=u4ZTv?p_u zO=#Pw>i2cx;1+pQ8xh5`S#eZ2`ilq$eJbvE8;TVl76AS)|Je5Ca_UboiP>rQghR;4 zu?n7~rIo$4ri5yFvG~S#qX>1-FwHK8i?>)7UoL+SWL+1e67RBoY4|UHjOW9%#&uGN7nR12kHBOL)?9jQ%Vc?{7@WC>0vC(i^XKY*dP>N>QLh6G^&; zNER}BGN#ANT4E$j8_7EN{DyGsXWNqMclitK(e{lc_-T3}3%0v_xz(zdw=a;t-Ut~o zyIi`1{Q&;kqKNBgEaL|(6EVNsW_6yT{PA|nVNqtJ%~sWrx3<)_wDuH?8+pILw>^){ zT_4`eG2iw>P8I9yM>&Ayqd#v+y4z2H)gE;5r+F9@+5|s95C-?ZIhC1#v4*3zckL@6 zZ!l*GOFw^TMt04MP62?t)Gq0Vvb3rf^lPo3@cK%*c25WWK7<|Eha(UARPw0;{>EQf z0oY;>?TUg7UMsThde@YQdg_M1QHNhVAeDd@FvRAy$DHBki?(f&;<aV)W6JE zL`%6oVkk_Ijq&@AJbn5DslM)$TDk>G9LVNqCh)oUf0sYlN@bHDjNgrydhjM5e^t3X zL^k8qL5Zc;F>AIN6nj|z0l|2=+ImZI#Phz~$x#-0Vc9KmZT8+zWCD`pEZ?$JQSfYb zrxgQkYWZrbWz(2xZ6nsq#CXdZjaNRJe>oPeO)YOJeWe%a{y_7upBe=QWT5k`XMwR^*8@I08nyP zve;V>@TbFdYAs}-6xP*BTb$6s>6(cOPHsRJOVbFVb<{Fq6Fsxo)ysWKCBkB*-+D3w zV6rU~@_?D9DkmE4MJBWt=Hde^8MSY)g^0qg9m1XE#cPN0>c|<#kb>eF**JxmXn?!J zd1RVZ8|mQF zuXY>u{*aMV4Yg#Y?F2-!UDyhh_&wa+9aDbuaRu3X(+3!d!a0M&aWFEV>=D~oKiGug z^oX#R63u*Q4XJwg;;i-XuRcDpFi}(Dgclop7CY8(zQoJPWjU{+nS9-u4cZO0!Fvtq1)-V3DzBb$&g~=kG z=xsOGJBg9>R$611$uxVaZHRyjzxhMJ@cvMWlqG7#BP9Qr(+x@AEB=|b>G}fUg$2?Q zYKQ^!;SwqoC<7iUqAEqT>Kd=6ohDW-UsO_aagyWWMp6V^KFWE~SmnI3J@H^g z`SFn!1J76RN;mKpBM;}{Almn#>(pv_WEJ>3gC`9@G*38)hUbb!$PR$_VLLvkD`$5mfAR!!T$wInBIzYljJHEDSXev|pai z53$lDNf1O09;{wlP6q069)R=QxdaK!*&OX(ymxb`PPSu=kNt`qxEh~%-ZgWpu$3)t zhE8LT6Y@8HuO3c7{Nza$pGG%d0z^0{>LM_Z()%NnX^_gb2ntv$fL2!$44I3B6)Nki zzxG!Kl9S)GHoD??o-mHEP4BMk?)Tt&gJ{r00XG!I)LVb|62F}Y0xRKSM@%?KyI-b9 z2scr!?5AP3`oOdcl!lX~VMr=(DcE7viL%BFMwhCqwO~+#h_;wBCeiX3sL6 z(moqrEOMnqn-bTmbx=-CpKhK*a&ZvXLaOC3l57j002o9@O0n~I{{aEVZDdoa%zN*z zTjtc5AHJjpFVnUp2`rqqmHl|5h)a)|ERQxc&B82j9F_)#Sp@(dtw4Lbq93q!k)dMOg>8Z66|KXw8vGS$%gM_5ERI!z?1M$W?pZrcqC~);6_&u-}Jt`Jh zz-d-3#Vyvn3#kdqJ#*^l+BV5|+#&Rf>OZi2coH}VvOP1m-YEhAfLydsudU5Be$KID zz1MGgz@g7D;)+jGl7&u_Lp30c$b~AoRNoaLfWu)nSe%HIgRM~}wrg78GcTUJY9X|_ zEa_>us3i+bwUHIHyZhukPactXe+f52FL&&6-RCJG491?wmUAo%eAys&DmXgC{odinC7LnV?0VJ^6=Pa$L11qSx3(+6~Kq$qwCLHW$HynDz&mUIK zYu4Yg2n3SsDwNQN1vdB&ANx8y(wHfqDc|tWN9Mbn*J1eH^S1%mS)Jyicl9TE61c>I z!s9~4A$)bo$P@8dHQD~S+%8_V+?5U-FgOSdNCC?MZ1c4KU!RM2R~e}ISDeJnt$V9gX_UDu@5ssAQQRyOedH$+U zA~aeeXiIb2QjwZwzjiCDS3o!?!hrzaE`g~rFvyf;xoJ8rTtG(9yr?R`pt6s_?dAFv z`|PPi{oRR~uA(oUHS2NXJ%2BN{n0J(7qb(;dO^kO&~Vqgm=6%8EJ%K+-~?TfG*}{z zQlL6Bs%)p~y`ET>{abXGaFrY|J}I1{89!dnNF-a`5vSv!Ln<{U<7?9A`#}eH$0;pF zW8=|o2ktv@fS!&p5l#b9>;t7Y1kkhgj}i2E#iKMca2k^%lox&Vp7QH}$|02GP;Jg6 zZAo6K?djI|fe;@P2eqSxG+&(VAo993-%{-{61iHd{=;C>6c$}??wG&{` z{>*}WIUSNEW!sVk-N_R(KCjK0qk4v;N$%ty!gNvGd88mk^@Is|J92bRtIlSs9`!Az zwlU8QhV!!ss%SOUUBh?g4|mUb^GciXMRinnVuWMPy9PZa&9hm2uV)1^c`J?qnWt~B zx_MNPWi{ytWpSG(BiiaYS_=RQMrT}=wn&VVt!%^vq)V|4aRo+S-}*(RDrG*D)`S*e zR2mYX8IU`Op+4Q?4j|MJuLVwkft*PC}t z_{2gY0<0uVkt|Ya;Nb43nUEfs8--56M?RV-(h$nL=h5rsN{{`v>v-=9{+*ZlA(2}~ z6ViA8UdWs0&qHFr)VKGEw+W<`r)V%u<>|sO`DZJoV~)&%QXC7DGD843774@L(vT`q zx#6VUZh;4jA(&>)U?Mc>78Par%c!1$LsBjOwghE!<(Q(0_<7Wal;Ts|D?7D&{bvMw^5I(aQ1T80iQJ_Z?|7^8MYQ>1psSPf zRuZ|=l5iEFTh*pt^qT{$r#zX#lHC=T0_=waB(G)QSG zm1KlllI>mHew%|X0MgHxFxErMa>(2i6c74){yPXKPIi%L%>byuY}H+Kclmb(Z{l8w zCKt+D1Qid9e9|6)HO8P{OFZ1kRJLm@eIm;v$N^+;CR;$gjYP_CiSz9z0JB*8UXgw(96^TK8O-YAu6kM_shuYs3_MY zADcj(Kti|oLoRJ!o?;T^A3E~sf}bf~ebm51o2obi#t*_ z;>_rM-M}h4^9%&mz=yQvHYbZAPOeNMqtT+vE*a!RbzzLUziarrMu>gcrB$dSztehG zEzfAL8@Ex`VZc$Om1F^GtuLW^zbZotP$JAkE#5%Mo_YKDtJt#z!sn$U7~8eC(jr?R zr1|>Js|5W;wTDxLs@b=J^j8%k>_*+RU+?)7@79l|rUT3lAQlYAnv;%+qaAWV#YX>c zQ$BMpu)M3vAPlWE4h&T)I8j)0l2)e!_A-+np0kZ%u#mK5ORkFiIrXu3-GaIGw~t>k zzrRON-F#?qJtrarTN2*VayWL(r8PnHkyMvcq&Plqp} zT18was3T)uhZ8cfHLYIENGuVb1PA64{7ec#HnjO&yXMhg(Q$g!)qzMkU?QfOPF{JX zSk{>t0ttW5U+(f}<8-t_B!;E9qRUUS@a&DM8Zb>caud*%W)vS|f7;sPPp&lJgFK|m zQvG=n%4etl*yTjJEWrVJ6hf|obebkEz5b->#^WTxl_Kj};gae-oN`%660* z^Kn9`V0_*ycIXPONj!tc5wZ2js#>ZX&f{_#?QLSRowI8RZORB~pS0M#Wrttj^se9l6a6Cn6=h&g&8)=dLHpp#Xld4_#aVhi2j(9c!?yAtVS9=%5;EgO1}F2Thwpoe1Woc*jF56rF|t`qAW2kWm(! z^yTxU;L{TZ9O(hGeA7_HVy)w;OrpR4Uv+o&OWU1F^E9-06RJE;!l|FtdYWh#%ONkq zYWIT#JQDH3q3lqsX$JVSJdiP~^^%etd5b$%10s%6%Ta1Bouit|Gm-S?EM}6TrJVZb zAfB83-5UeQR8sHUink3f zY2|3J(y1KuGr}K~z1#ExzcYRqRx#TnPVrXgAa1d!H(`v zQ1PtT+Q0Q@I`8UV`MOk6y2kU8RGfx})je!V?lEy?rNh23xXTdIK&K{R-7E+cUU!$D z1LdAv-VPeLJO`4Cxf3Cj)A@ti&lPIW19_=bM>}es3nCY^X+Xfr=tLo0Mkq!tU**GB z15Ktn9B+FEYM|#+1SM*krgQFl;^S;t#-_p!5SSi|X-p%7f|63;W7yVmw?7&-PwOfQ z@JS|s5Q)5aqwcCM;mQ-A_i`I7Yzl*upvkQ~T6_~piS1a)_2bd){qJ|+?)pF0NR`<^ zi<4x#u?Slf-5IrY*6F)TPOFpxWf($JuwM*5w%t3%3=$j+Z#32KbQSTnw<{h$1MinMtEcF#UIApl}$07P3_ zoZLz|F$cny(prq?)_)pY|JhkL-`8$(O)JncjFyud582fbd{>CN0>G9acvZ+txn9JJ zyqX^QrhY6ipM}L2U+ExAlM(np&9EWpfhB~r5i{tB>e>9uDU9Pw7(eWWIPewMmWZ-L zxi(kZJ^zop`r%S9LW|dHnQ$E45?Ns2=7&o{_Dvj=P?-CHlkD*Jp}&fl@*>i{jbljT zDlJ7$>;ZDn^~CgxM_W=2i-7`?9BA|f5t)wTjO=0a!FPFX3|@2&#$6LJJT za2O2jxw#<*+$SPAnRnnSG$I0!#b(Bdi%8%oms5ubHB>ZN{k?z6UHrCdr_E;6ZwswF z#7zikjj$0^kwYv(51;z!<*KR-cS0A!pH`ml7;z?)`58Dp<{Wl||*<%K6*1clp0-sU1Q`9QPx)9EV8@YbHsjw5|E1zDjNMq~BX1};Qqx-0CP!$2t-_9~w4}Ne zTrS?2J}Qe@-!DbjcP7(q){nk-dem6Tx|0A2@e|tolbgyi&yTEycm)$Bjy|P^5s}ED zSi9tF(Dl^t-tM_%Ri*~uS+mcE+RO}xSQ?G!s1EJ-t1T>arpj|x-eO`9;8_e(iil2j ze_V~AMkCSP@_{7&}93vuV4Kkq$fXgJl29^hAII}7T~=pp`y-Bi!|>bu-LI@+-@et%+Z=)~Aa)a|HugF|9jG*p&e$mFlW?3I#E^I;^jGCo8~;PLQWdArDJ5pl;}a?(Fg)8EoAV7 z6Z1fWL_4YN?mIIclX^^A^5N;P8@xyG+g>h9Qq$b3q)s(&ZvNS7Phj5?%cGUlJ#)gX z?t?lczuv4U93NsICmY_~L7HUTZrnCxhm z?n}XT$3nX4E zj)iFAWud$cQ&!kG1a5*|;%Y21{EdD?fRhNb{+iCyqI`TiCwIX))!0|uzSh2k@4=2D z9px(}0Kn$^sz$eUUj037uR0o;^Fxr6_V}HVKs~Ii0a4+0?|&av zMJ}3vG3tjBtakaMTgJtX=vb!e?AE2JgEAR*42^!=xUrt-JMr9oQ#<9?wYTD=6DcCf zK@u+_bY)eg)Z_&3@9Bp4KRtrdTo60vWV$Vr`BmT^MDw+yE*iSu+&c_g+q(qcTmnRe zD>AAr_19!wbR|y}PFuY%e+3x_D^9U=vi6M0m70Z~{3^6~PjR-_s26AbYNSS3msIKQ z+q=(SP|l7fDu`N8(yGn>=$ayyYWaVU^?$w;G#LY$FUXWXKgq2$AA$I9 z#XpNWTpMx$z^$>c?@HL_0ciit`2Uyt$NkIy|9RB^&$quH|Nr{`pFaNSXaD;Dr;Yz- zfB*XbPapqu>tFx>wDJG!?_dA_>EoYn{pzQ#QlLqK^iy~2=MT;O>cptnvBTiyaX<^ztOujHc@wRA zF~SBs!bQdVC(P~cnB9PDVi*MdZ`Im)vfoG^{2tq9g!;Ue)GMC`93JBBp6iZ*j>`SU z{zgu@p}Pqmtlm#B4?sU4cmXgT*DH8ypYABqe+=XObQd zbi)@8+*2riiO7IhF9xH^9&{UrhBk6%@t!7c|Kve=svb;NiT`F&G+rui_{wsI6~a6R zf=EIsJ)gZ0qCZk23K6xNOOCS{9ZSV_md^z%F%IlqO@1;uG(`u!XO`QQOuoAOig4JW z97c=6MAC`U!ao!}gPqPw*c(o@wfX*?o9gI&+wSY%uNbkeNfSYm8={(+@DuLzwF+a6 zh0-i&6l3|dBs4p-n52FWd@%;ctsAfN(0+fSt^LzwlKOY@2h0=B_wqRRZq*AO82bA6 zE3_RTYgypAtUNH)>uCZWfv+E-J=e8wyFZ=882W5De9b%S$?^RNdhI-0L@8B@mjFh(?R#T{F3hA=+@DDT?BVcRQ=$9^_(dT zd{fn;Lr1uVM~C*lMAmoNyYw1UB4dbV>DRcy6H!rR#-Uqb{hpf}jp13wCY99;HJ;MX z&?Zq}Ey%VV!~lf1A-r>HGy(iRIbc(-Ec7V>vtz*@c7>huENyj2?JA)s<- zXfPRtOiP2$Zszitq{f|zYtO$SF~3{DhpVdn6LLf63@Q-CY+(-HHbFuuiO9H%>;6fd zo2!{)6gwlEKRPi|H~!u2FNquPDy_U7SDQ4il-~%iQEu?dYtG? zlR)}aUKLpS{z8xykf@AspLt+gX+06Bi?`Rs?PVv2d2lJo`p!*4AfGIo{~A-~|NQL| z`{ajSYOf!=MSYvaRO4?D`!M>0M5%hrMazwu&TEgBXu{K#5AXgKURrWuSfaVMv%A_< zn9`|K@C8ePP6>5NwBqEtz5bX)JAN>;i~|7N^HeeVX)Vu-0?>`TF5~puHSq;WzN$Fr z%GtMO!P}YyLP=Za@RRqZ=`asIl|<^jiI2iX_4~;hs!lfTPhW-0#_oG<=gaSW*;K1m zBm4-G+$8?yGQ6ciS$t!4MlM+Z&u%1F`JK}z2@<~v?9v`!l{>K)Pt z6({i`65>4E72#3e6wyTeHT%44P@!%1r) z3))-%%ZEyef5M1a_K-+;u9=S4ncvFwRrkY}la+p%mlZCezy-ch9ssNyEjw^@K^r$_ z?z(?+9Mp$4u%4vGI@2h(^;$CFdsuS6eZ_DuAZV4Q<_H&*E|D(W@_IMyx@Yo}rPd^7 z?@PtsJt(Xg6mUqSln97H7!|D({z$SPau#HG9#ueFIE#>~B5Wtuq7zGF5VTn^L@-uwGmbP(}p+levhR zI6Mfy-~0l`UM$;jmInYH5>l6MVwp7Bwug#mtGv( zMR<97e0HzLHqWp?TB#@m2V*8Q&>5FD%E=SLJYcZ-{w0NcxQP?#&Bjrd2|D+r{BJO| zQ+UPRo!Ji%x2q%rWSC}rPJoPVh3sKw@&4nClR7Atmj0L-9@X@>5PwA2yF5nmzF7O9 zpit4fk~^&=A~eJx`Vc~wBTVqm$hiA1FY5%DmEo>bX}`bh~BX*siEPe^qHJg&3hqQX2f zWF6hJ;O_&SVoT%Dc)t?>;6ryH0_H0l5`O03Nl}CYz}WDX_F}4?0J~SfQ;&0-{XuzweB@R<45^B z+0wZ89;qd09|L|GIKzi9Z^Bo)zyFAF{63h-W1b*QLY>8OXIQUvM{WIACUJUBWKgSe zdpjy6D#y~^%f`oPTDJ5kwUT$fDJl1i*q?!(*`zDRFRy!mqx*V=ccM(nwN@ViXvq^r ze9iQxMoP}d54Zb$1i9ko;Jys0aG1vl+<4x61qp4<-z}_`C&(oqWlJ2_@!RnWES>1x zzWM9GKvUYlQZ|#pN*qHrPC3Y4M%CY{ZityIPvug2OHeP8cOOZmYaM}72x9BDzfe)# zBetJwMI+JtbSX^dIU`fH~*$Vqg!DJr)z54h8{$&t&rpLE1OiZU;+seWBx@@{-@ z<4}LG*~tgy2?X1nFMRSrR!Bvjjv?*Yl3Dxmdt&@A&E})2n~zN{$07+%G09^q>0%I0 zbDV6E^c$+al~%qW8ilWhS-N{5N`(R#~^!VW%b_4YKD^xGnz*4_=Fi+wu!{&ug z-lO)SpOQ|aG<5X}T27r<-&O?ftJ?nN5N2nhkFd&zs1;Uxxx6Xh-|xCD3f@$kv1&5r!w0@)RSsOlO?!LZ)%*Y_(_jn%1jE>#ltf~9K_2`mhk(|g;DoSGiJo|pr< zifYF*>ESIMI6r@p&uzqtOarOb+@a!NHOC{JQzgo6vM~P{5s#PJfrLp3Wi-&^jebA~ zCG*m_>I3g*1QgWY$zUBw4PitC39CrvHO_-~ssG2v$BAo$o8POJtde0y z;&F&Dk0cw}!i-TrWFv^0-sa+FOGJ$l+3!ZNjqvqZc(B`zo{F2Hz#5|*4!*I9E*cMg zvW}^`ck-Y%9|5RHHVPCW_X-)4(Y9Exp=R3BFFAy8{0y2kkXn&<23 zUL%wJ#Niw_*}iaNBv)v37^yuj#nh9+cWn6J3h$Yfzjv+!%;>z#=P(Zr*xaCQ_`BT&?rad25w34S2`= zH9rR_M$2U_m!&Wdg-~sLl^*+4KN$FZs#WZE?+yqZwf7ad2(Kf3tvQiG8y!YWbQY`Y zRetOi@&z2f(!SMa*QVTU@!5W-O8WyyHBmN}qW1#{OhT5^yn^vu*O%b~sm>`1stbd7N`_sd}ffQJ*<{)^t1(W!C~p z{7U`fLJ8rA(W0ef+g^BC0Ix#g2z!>DiZvB#td=Bv>gw(?UaQ%--0N2RaO1=!xmPcK zQ@=_Smb&z{%m`M0@v9N$;b6GzTQQB*Lr|KU+A;9TpE24FZam5(e?ix~AofXw^w@!x|Q#(`x1i(OfVO zF8Q4XWM@PU4s}7rB~)~>$Y^^N#$X&5Mx*`+acYV`Wt@J~vznA28$Sl=B%iWn3QU>)+Q=^X z*jpz(=ink<0tt9*^^CyJAG^ntS1X3}m3D;mUuQsK_Sl+NaXskt-qX@y_Ia9D6qd7& z3Cm)pfay?r)ylQ&iFRx5i41y;64Fx3op?!UZCAb{z$LD=Tid@xXu4mBP?nj^dCB`l z;cn4!Ke!J~FVBy#Gvnc z+2vC7(f8egD<+BQNa~5L9rF9Ir7Bm}iodH%Scl%>v+<1b@Hj}6>lG}`{o%5iM*Sc* z1CbIsmo6<^fO*8gch;p8vyj;9w$NC?W6MfNEP?$DMP(x`rxtx3qtk9o*hFH-g&|?V zwcZsEaOKGeGC<14K(}N)h)g!)Ax$$j*%UOW;pdTz&yJRC^T?=$SI&HxkQB`9A>pSs zxCy_4#Q874-STaTC7DAw<^iq4;XLT>XS2ZR9Q?_x@w53pj7xuT7c!a76U?IuPLg@P zzZmdyTg9%>mMz4V|BTOQM65p70^HM&q}@W3?%SErM!>HzURc_rbWV#)s|Qs2$TY)& zgc02mJeRh~&GcMq-9dGrF$`;}PEz*(x&6bgk2j}s&X_T#wtY(Ri(Xu$1i62vg!DRm zzR?Nb7#lnvp!YqCi}NWLn7zZSyhvzadB82t$Q;aL3O0C~L$Nww#F0ZCZd);KfJGqp zO{PlNbZI*!-?*#Y*mHFgV^p9ZknHjdi(&6CfpzUCl2Kopl((dRG;1k*1;2}#s}wBS zLug#K4}>FQ$QhHK6f1B0bKyOqw$pQi?8l=P?soQ!=pXt<{xRPHcw_&p#Pd z#~0=a;ML@Yn5KInoJmWU&ku%Ux?Sq`DB0Zi&&KnWGHCw2+}^l@fb}q2UPoFicz!)2 z`*$+=zZXy2ai{)uEClEe;nxp;zg}>oTuta;Sk+sNh5!tB;moXohm_A`&fi#YtcuPWmdDCiq@6xI(sc?pdZn zVNW)Z95Rk;(e3#MErWVIsnFu4AGjm$tAG0C{^9&3GX9vEO)hCEu%uvp+qNv7+*5aQ z-#yCme*X4HmST(W-8!#Dy1vfAC!0SIr3ovmyOT#;911U7jyYmmPOHL>-XYIfYd2XB<4ShWwxRndx%bJ&?Xm`>>v}Y-T&B#YARB_dnlt>9> zJsTQRrnL{RtQ^FoQN>vlcrb)Y;ItZo)c91IUL-H?;&=)<_z|c2$={gT!#up?3f8qI z5J+oH7cG(NsXN9{SEbaFNG4KvWOSim9spcX@_~l$-Vc(2=oQuq$=x{jwXS2(PKw< z3+;F^(WhyyEj&mNd;vD^O#n2%D*Z6+&8!wJhNQ(C8*{EQh46GK=>~(t?GwjE&qmUh z$U)82C2kW6SoI#LaZ&!10Y8sUXJ;B5+jxk^Qdq>a(A0%rX!+-E?*NR6(x_{))rVLxVqdCF^o*!g>c*D zM|F^M#3Td~p!S(Xk_JF)=4{R8Gukbeuhx#OjLl;QT^UTa(=3@iXRFZBl=Y*J0%HgezLTV<+I9?YqJu|BF4`%a6)zmpIc_(7@~ z2j;n8A0iO z%X2o$i-TG{rB?3zs-!0ZqpSZo0T)TIEgNlRNcre;BTRrdMeiEs!6TQTo_sZF3nvUY z@!uw$1ep6k@qy~>QCo5fDmfA+_U)6nbi1jIc>LF-z|9FKV~O%C|H{6iO?%!f-?G9J za|WWM3FM=)L2~eTHV*DaUoV#k12C2Ng^C#{k6}ozfvez_3aSLpZhy^>D=p0}yuCk; zFF)i~d8oi4l@p)747iJC)I9hQeha81OHds)2|JWb z8)jHq27wt@f*k@@kLq9GYQ1}jI|#^jfCnXi@wI3a*H&%<(C}#m9huj_7s2V+ug(a~ z5Xl_81TY=ww@qIl0bg;3W3T4SXn7jf7HC1;@F@fo`{|eG38eb==Fh~=#@6J4@7H`( z^8O{dJ2f-6OqhoooGDb%JrV=rnGhCV&W_-j*<)GISSQd5;+0n@0e}e>mlv{V`BC~k zH>7b=@yM!9*r}wzoL93x;DXv(fA;6Qkp-blg;kq2C59za(*D(ll{st)cHfJ>Ud>b{ zS%k=7iLLlp{laQHR)s)pl+t8`Kwe`%{*J9IrPGQ4H7`-4&Lj`?P=cGfFh!V00zBH6 zYP2%YRD+=n62OVC0jT()?hZm3JRJdt4LS6JraHTxtFY_Cga1b@_p)o9!Z&)CG`U_H z%y6L9THamgpL3o`bCHw|SxDrAxRCIBzphEh*2BD`#*G!@$9DyyNyv(yy{F?rXJ zX|%LA-`EbGU0hT3PyAQ~-fzx}I>bA?dSKR)&Pj!N)WI|j4MwvNlf&BTv1^vH=M7)G z>*w?Uz#_MQ@@`=Mp~YtQx6kaEaFw0*qLyLu2r= z5lt&GWoPg$TlZcR2yIRBugAs%@c=X61ar;-uQ*?b^8jg9ZHjsDKd zl=tLRf=2fe{SLRv2KZ|O^H_i{6vDb!2AqIny99Z&1YS8_R>i*_xUB|Zv|63%TR2fCW zN?eN^_5rn4YpV};YcXlL`tI+!Gxq+ZKgEWSXk8<64fQ+{Q~-~s!{y(nj)T(lONtdK zwO}3>as__303%{JNDaDnASELqIJ{pxktDJY9?jb6te*Fq)L)YvuK@uf86O9%@9^^Q z(eCQ`P6)r%k{eBT!*V`+G;S_4mF&8$f613{;o;oIlA*l(8X-6P0M9ip36Dy_ZS)9n zR&TK|{%y+f-(O6;_RV~X&--8^48d5SJPsGZq*^ydS*_Ch`LloHI{~~`LY2?`4Y*&_ zBHk4Q@pwC`G{@-rZ(8(qSxx`_)7Aa>w)G#r_WH*8&x?=mR)PEB8=`;TJTG2x?99iF z@4fx%+w&Rk7st-5+s3yeFaEe#P2SG?IFbd$6a&)r=Dtmj!u45gd%pL3U$o3VRP)e> zq)yEpuRm^tU*=(Xg;;$_$4871hULRf_R|J8U`Y?55WQj=4I8;8G6c^vvny2}8nKAR zG5Qy9dm|S*xXWb}w}S!->v^h^}J2mqjmA$s}L3P$i3&Cxll0*7MLeEGOyA8s^1 zD`dWib*`m&g`Pl&N zQbmKtFiTp_0=2g}H$@7ko^d{QlC(a!W$kFlgkumZ?t9bE$9i*n;%?l~ka^N5?|LhW zrEWYG{qb`p=r1{Bi}EP~v0A&FnLY)LMPCDpXhJp?KP?btPli%S^;;c*WY<2RJ)HjLDG11Tk_C5VQC?MniX zGQ9JkGGY66?O8hpc{tLMYN`>Po;X-OHu7eh1QEwI4F)#j>#gnRv`ggMUGo!W=Cj* z-y<2k6%zs>PD<{lF*y=^?5GAH2ZFap@E%M_2x{LeXaeE$aNh1qiAhS(YxT<} z0vW*K*F&~K^}uC2Y3!XE zpB_<{#r2E;{^+>{3ZZxfHoQdqxgRk11{2yQa=wPoLgWr2J*^x?)=r=`u1VT~?v>0( z>KVa2f#AfA31|!?7Evbm$_4>d^>Yl0Gn;=Ec-#Jk){o@zuXrQ=5cAjGY9de#dof~O z$=N?tUluq{4XJrpYYEa1PM`r7gSOzX1kg}PK=oB7?PRPT!43(q>$(hI2^L{tt4rp# zqBCg2(RKF7iKR_3U$3f3`Jq$#B47VCGsD7O$C`;jB`K_m=7vYkl`JF-JvL{av#s<{L#dHSH-d!UlPIP`n2jLJ)E=C) zz5vDxx#ci%HSHPEzkD|-+>^?T@^y1+SGKn{3I(A&Rx2Yn?U1b-nxDN&aK@Qns-`N{ z#cXx#MJwh>Wfn@40fX8;8^g|t7SCkP2$-i3T)#i_$pO-!lmU7^pM*Hk;CMjt}{o=)e zqcse)2kiD6KGS^@pL@@p$X?4>Z0DrTd5Cv9m%bBN>OpeVXq*a@$)75DLt>f|W~;t{ z!z?@JdmTI!86{qsqV%B->1ZHcO^kR;Y?Of+g^)%!0@wQS+`aQxA9Oc#JnLYdwLm(U z{EOU9re9*5smBXJ%tglv_VHj|xyFye;=^JYY9xqq_OT9a7i>|lsLr&`H+?%{o?g<# zZRgH@6eZ0?KXvlvH~B~fp=v`prJx}AxqzBuUAo;;pCKm4TX*KaZN)JZ<|-o#Khl$Z z8_HSx5(_w4yA#h$k<_sB>o*tk2supjMixaTC4V*!1$tEsXhG3p0!asddxIQwJTyH%agDHRN z1!PXr(zYc|=77iQND-(rbqN(C6Ha$9r>nfOvfN5tyG%%z6GEs{w&uqgKvZJ=_~HcP zSOp*x;~XU2X3$&0ef8HDQ(iha!`duOVeWzx_eqgo+BoDRrD^OZT@T)tA1X$JXk*Q` zoW#^8@i7Ud>yZY6sFC3}rF$e`9)N}ylM~b%x^8$zoilLAzW*3S&^h^u;?=^}iDIJT zN@VL_?a7hBjwg=1rY3FR1WvhGo)rtKY_;Zh7y4nGx!$xH$$z{Y50?5#V=%t*&+!Lx zsnhVQ+*x?Vkr$P$e(+5Sr&P8k+T@Mv%h=y+nBE0uq*hf~@AOkEd3bjcSd&`@NLj1xC&@st$80p#e4Qa%MwQJ|( zB|H>{&DU7bT(b?Qw&nlhC8&}wMOH9WZisg=x_gXQsawrU@ zd{j&ax9OX!%?8*0Y%MwvWQ|r5#N)v#4r*&Sw1Rn}xaWit;Fz6v_k38D7fX%)4At<_ z5s#7@=C6pwIit_Vo#uJqC6)?cDWoETYS<;M5?kaE6E0f_IaE&BQsb>F8)AoP;0LHXmCa zJA<8M*1ld_Ty6rR)=uBT4e%3{k46qGq8c9;R8n=AONVic}u0PiC z7{-xnA9ROy<<(GOPu1;_@${4*dU%HDGqL0|#>x;MZ4_N?-RmQ8_(4J>-dcU6op57dsblQpMdCJ8YxTVp=kf!G2MuGZSgW zvDl5?Sjaf{lLbi|Cx#|f0%=S5vxy`|m&(8UFD#1biAtk=Y+jjHjkN96`x^9(j*Ml# z?loFAkE6ozw5E#sl;J;BdZMo5$@6Rhtf)nS|Chqi7?%+|6n(OC}mO z{)}#lsK7=RcwU#n3d@HOT&PlMGK*A~6RNdJm3PjIoV{$ztglq?<{PYLzclA=n{H z$zvjndO+`Y;;R)>D5)bB46Qbn4sLU-slak*B1~GkV7b^)X-` zda!Th474};{K7=nm2%jlGN)f%5X4*!R0&zhn0hPP7bH+hS*ZfEHPE>HghuZ9?s6$S zH=KkL&gjO&^NQyy-c!@p=jD1k8`x_bWi8-XoP(M2)#)ewfD|S`p5+r(=fFT&Ut{4c zk=ERglpuHht+DsM_;0Xsq9`v~V!O&#zo6y4KKQoJLX`pYyav10mYR%&w&unkuAP@# z>L1R@Xtt3#%tZK;ZuY3&C1OZYSLa?%llnhz)c&X)I03ryHdTI7Nr-a-a+oclMk*R+ zg0xwNj)`q5stGu+{Esp+ethbND)Oc69+Fm%5n`#wUxX!19$V3r|E_Rl(GNI~;KqKg zK(nDfkMHW{0FPlVdJzIWRRJGh9yzj8v;`9bB-73NZt0T>mSNpD8KxR4eh1kYuPcTM zRIF(uB(Q%6BfKEQCcX>zZT*HThm<5UyGMv!<8PFA&nH{-0E{p4Kb+4$dx6)t-Cta> z^MFw_(IVZFfQ}y2{;OZboqZi0(7axRaKgS2BgY67eQJS{myrmlPaaY3PZwUjtGX1% z1#A=l>QRQ|ytqeDZ0xKTgh5L$W3dtYUrG_VY~Z|K7LXzm$7rLaP6^TV&HVc3LrQ*! z>gd=S=ly$8YZ}2Xwc|Tbko|X$Ce%#^XUjL!Q-kUjIm6w9Rn@kb)UVpc=79^A5$#0T zlvP(@x5BaLfTSqR`Y`<;$(78fAE6FE6r{LcQoI926CjKB8$g-eeG+E>_HX>um)y=|h;(+qE8EIyWfZ||i*S(Q z!%ww$!-`UuAz@E0W|p{&L3?E#$r~}8!;y!*snhAKooPs$;}fLXQX0C`D68kx32LK zUl#)hj~mm6;SzLBnqz5{F-CQW4%89-qb`%J&GSHitr{Uy2xtDNp44k#q5ecTpkvsQh14-&ElUmfO&x|3A#)?l7;^2W?~lhpwy zMNIP_#hFyr={y?7K~s1Hp8)RyY}enBVT=tl%UA+3o;{OnzFnBCB1-!Kz+N89V{L+B zkd*jT@d?HIwEZ<|W;hzjP@^-A5xT___CASKz0giUqe<>Qh$>j(J3zZjfW5CPn8?kU z$DD#p|0-}SEP~*L&kO0gA2MRfFN5 z-Rb;H#Dv6=Xz@eRg*}Q?j~;UAQi0EbJ#&;;k-;xE(jWR0jxzY~*gC$l9ku1&wTZbg z%;U_D#GPxJ{@f+A+Km~~G2xO5Pt&o@w9QZ4(WbO;spk&12wf<`{o_ril$wK&#XQ;2Jj{&`cPJ(~WGj#8gx)BA5nY$pas)KQ5x6=XH^QoV0; zR)Vs8DT=L5rugDZurWXGqzW3vty?2rFPb-|ggRmCKA?+}|2&P9h#%O!uNs*jv9c^xkgVHF8u`)uSH%0X28G|#9PWl~pHG}C-s`Sd z(LeQHjFsIrGFR9GuFkputh?@U4ARY8o)b^QR{*ef@jTUaC#q{m3d>HY2Z}D4#P|_$ za`NJ==0akN+Vm=OWwUoq03kePu|W7@50(!;CECJ-$vf%%B<^o1C@w#Zy+ba$A~5K0 z8o?TxY}u(x?%&2fZrmAvTMpq!-JkxxJ?_|=m6{6QH_eF+DOR=9nQ_}XT4~T`(4ULZ z{MGZsA!hBbwZ}d%5V^XZ+ghGk>Pa&s?*?3);+BhZF}0?GX?ekUEdj= z@0XwJQAnNpcK6?wI`^Qr_a$Y*Oq|vvpj++SEB9VM?Si z`g{G7Ns;d{N;I1;6K!T3Z8q`ewojtRWl zg{KpyuHfFHXQP-=SyFhbH2$kcNr4lYC!jo2jJ7#c(l3c4j+q@D`PGFPgq~+-*o6Iv zRg2#AEUNzf4X&_vi)nq=*2_&RO8@L2r5CRW0l*u>kFUtsHK;5|oeAK1rTJip#5<16 zQ0!*b`pAS#DfYR%2$egog5zU&facf6o6S2|kZP1x9WI=0R)+H{AN5T2a@lifX1GDJ z1``Lc_M-(Bj-F1&m3AspQOcZ3mhqU`yex>6(bb&(+@tFVnzP6M8;ea}U7eYosR7?& zm)=Zo{kv{Fg(R-okjne#w`~pJ6{;$FQ!K4g0z&s=W6Ko)gmD%Q3h)szs!$MP*U!DF z7udtumhT}`wOVvCZ}29KeaQ8deTYz>mVCAhuo8%&NMkRetJ$h~wplb?5LMHHbA zq+n3O66Yz?4GT`dL`TO-AY`lPWFcw_JvjA$U*1ILCeJ60|3e{lPlU6sFSJb}UdyFT zF{eisfR+)H1s0TJlA>smh|`Fi{_?nIeoU2DWv%oPE^ifrhnCcPpJm>2Bjwx{bm9{C zzFSh@6||z|{2Rxk2J?iG{@Gqd_eIj;;vyd5?wol&JSB28USRo|pLq<&T#ebf`#de~ zds@%=YLDrOivQy=4bhSz(SDh%`qWS?fsd>xC`KZ9QVw4&4eEwo5jyIN`va+;wHjCW z+W%G0Y(md-P21m|fRbkOhjM|2oX_1{oKC*5oK;Tk8ASnOsI}pD6%Qh!aS9vhv(gd8?l_Wg~h9W zgUl^Yh4H$0vmcMOctDZNu_$Imht0tKBq_}eXI2s;f-r0R+deIpO6Ej|5WBFjl)&I1 zc{Ve2o*xuL%W1Y|f|>sDkxWWXQbw7p7Hw!_MQxc=;vZ_6-lpVNR66-|$_I}*9*@5Z zo;pq=df>gSvTsCZou$plRLgI805!opz2KR*btWUxbIfisjo;OH&Ui&Gvrd7XrlqsJ zu%JRF4CcIJiQV?XpEN;bC`$`;aFO!LA5P~KqpRAn z=Y6M=Iw~qORD3l}TjR8I^o`V?cFb19(`Vy;+8}JMa@$OumXuuRz@z4*r6%RPFoYc2 zd(|>Rv!IGt0Opwj|M^gmJ395A8c8kxHx-=npvZ4H!?{vgR8|W5mWliIj{Hh;zw*c< zH7*(jM(c_6#+@`D1AxJ_j9d%!D1UmJ{+GlDRPHFAiRAx0o3Bd@18%Y9kifp~$KPDa``eT0noFmvX>q2(b$u`SngX@Us$D8F)HLSicF-IQiaV?)8@ z$p-$!X(fQha z*z^qm{*5<{lT)MALb<||7cO`gn@g1qIvm-K4c?HXFmPwnVBwjJu8g$2q*I~n(?HJS z35sXckAA~5D-sy2&LkI#xI?JUq5T03eixC^F$=MRf46h0`+_Ce3~pO81YX=N{hP#- zrj<0C(zJQg&CO-m{ge^I>xIm|soDcD4IIw|3Yt!QTnGMvd@C_m;>%m4Q^jN zBtQPcRs!M6U7v|qw+pTzgeF98ieER|fsFrtUvTtl`99@}XYde&9GOij{$7Ks zmjI7{Vi=Vlr=~?NMf7`C;6O@`LbY7NJu*5Xh?3YXluAww#2FYPgqOkjJ&2ksQbDmK z%Q#2}!$z_`6}#ot$vL8$f0=eDC7DPXL{Gi9t`pB*a|~@H5wwKMM3%!-`Rn+ChYG)q z;O72)nQTh5;nXirYwG(96%SZGr?2i2Qm*<@ytr!b$$&CIf9{%w(KWkV%C(UxF=x4_ z1v<2N<6%=pcLE&mu!K;G*;m3*zI32Du7M(}N7YX*fTH#G%o-%jRh2*qsxKeZ??qf~ z8qSUUt8a-Nyk!@J*T-*~dt2^g@r{0D*V!{cQwkI+C(53uQ8`JXV)6{rsb%rp8*M?@ zmO<+<&o4S9?l`TfA8a|scF8j%T#;iQ0wGo{MgG8tQa z65&R<5;t=OYKVBw0k~4eL8up9vaAQVF1*xkn}N>n(lEUnu0oOMUrlt2GF0*XMBy9(Nr{8iWl7)Ci*yw(x;8ZXO zr%y}-f%XHl)e_{MJ9P%sqy`N-E!I{-6{pnL1^#b)@LnL=q>g<+zztQ>4uXSAYA8{0 zI7vlNiFb2usf&=6Q<^X!jy+g&38y8e6dNBn`oXSU2PIF)_dIq$|ac zB}$V(80Y-P?}f$|VV*haQT}3RA2R1ca4;1v*P%?pfmAlnMAYsqBwo=z_BT3lsb(Z^ zS<&-|yWjBO)CDzfVqw?&ey ze?c!BUn3GJ0*Xr*r%mPWJ}?7#`K?l9)xLtT&zNfI99NRee9S4nblG@m#*&WJNj}Uo zN*l6W(cLS}b?(RSYYVK-zU}mzRPS=)9P~+-#H?jRpJ!V>NR5M*=V&h-swq?I7Abvx z?gXb4hvbl`I7NWO?2ECP*7kkfm6eO0XPE^dXrZx)rI3M8%L1V6_)4hyALwsgl8Djb z4$>xh-17{Ck?SIbUV}{Ku`jqUW{M=w7gtU*ap*jY)S-+pPbZD<%*CizO6{OIFrdUj7BA6Ap>x5-{f&wH>c) zUOO1vRD8PYVTj?FiN#=5$9QdyEeG?|Q+DuIn0)`iYev&F8y3cmuiwd-1}~$mPEHUn zTd=eashR!-U9_=5cLFyom_Bbj`E&iZw6CwPKYARkA03lOg*(d;AP2o~SfBcqNkFA4 z9ram;7>O!Kpwf!8d}_=>!q#XP)&8f-OMN$cg|R#kwcD4fk&{lnWG$HA$Y3XMz|93lJqj_W|3Gg^k3{^T4x@;dS`^RgG$8EmN ze5G|asa>yHDM2P@Pc1`MFHUL@{pN^ECzBQUosrIp@8fL*o%Wl~8(O=DlDJj|zZ+ak z?fn2@?GGtr4uWKk<-d9B=J{dy%n*C~NTKzkh$I@eGV|OKh|##Ss{g2N`$8-sOfpYy zN78$xOZcGwx~JRB%hg2r!e|Ug+;W%_(v2MlXI^E^Bm^5_z8#u7VLBPr}E_*fq+cVG^Be(a)=?{cG{#GNDe& z4skPvT5@8}s?VgMf_0}x$R%D;h-O83m&S4j9!^zdSg|itgF1Z_iHw)ieeCSc%mjNL zR%Ylp8$)@m=2;IDPd(D7187$Eh%cisz4vsYP$bUb^5^v^BZ3LOy>qc)SUv!i2se7U znGC$iaX*Q)_c|T3{>oxoc;`{fK5b&?Qx}0d535q3Q*3?eQb(ejgt(!d0F~c5cZKr{ zyr_NKh|W-jw1cS#lnl*!CBj^PNoQ2GiZ2F!l5Ue{JYPvH*Xj#W?CAyj!(KB6^mMc4 zvSb^T>Az)QEC0E3dOp~AK0x$ABcfmJa}#IpL((bC^F*611cDPA*D@gDLB@9vN0_kx zgy8?Q$oo5&8HIt8+ej2gPRbl<>+Ppwd6{?eP9B)ry63b!tYgR|-nO81T&07GavEcs zpXCAff^tkx;uIjy^L_}vC6|0foTNZ%Fc>K?tfiUmmQ3#>fhLRIwxoD7L10RqWB4b0 zRUM#T6u zF;qg+dFO>9!N2ouxH?Z;x3L$L>7J8HxQa(-?CqBYj^Kx?fynfa^Y5%ph2BXt=F{$s8 zKOGhMUV#sz6S@K@H| zpwOlhqa%oG>+Z0jiO0s-=3R3{Jfb6kbl+AsYSTMY1z{FUX-UyJ!#s~P9pg)k^5JbC z(4zDs6ms0frW`Q-4?Sf9=J`#b=$Ktj9N`3ezQmgVg8%)T^I!MW3z#PWE&&M+ZVC?W zzv=TX{!i!g-~D+Y|C7)EI$mJy`G5A;|H|V(zx$tj{&OP#as7Yt`Hy-0=e7UI=RYU% QAJ_l?kk5Y<|JSblUk{D`WdHyG literal 0 HcmV?d00001 diff --git a/public/audio/withdraw_examine.mp3 b/public/audio/withdraw_examine.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..57a7abf187a0a85e7c6be412d7c051ab852547b1 GIT binary patch literal 19584 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 F{{pm+e7FDr literal 0 HcmV?d00001 diff --git a/public/def_avatar/nan1.png b/public/def_avatar/nan1.png new file mode 100644 index 0000000000000000000000000000000000000000..b73e69d87ab92e84c77652e94ce5e38146728e39 GIT binary patch literal 38027 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 literal 0 HcmV?d00001 diff --git a/public/def_avatar/nan2.png b/public/def_avatar/nan2.png new file mode 100644 index 0000000000000000000000000000000000000000..1dc2d6fc24215d0c3e07082c2b83d2803f467bc7 GIT binary patch literal 39246 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 Eg2*>#6951J literal 0 HcmV?d00001 diff --git a/public/def_avatar/nan4.png b/public/def_avatar/nan4.png new file mode 100644 index 0000000000000000000000000000000000000000..10fd0611737a49d8e3e8a1989072710bd7419cfc GIT binary patch literal 39091 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 Hu0mjfmzjy7 literal 0 HcmV?d00001 diff --git a/public/def_avatar/nan5.png b/public/def_avatar/nan5.png new file mode 100644 index 0000000000000000000000000000000000000000..f4c0443941c545221fb9e53b768e10c5b99c92aa GIT binary patch literal 36789 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 literal 0 HcmV?d00001 diff --git a/public/def_avatar/nv1.png b/public/def_avatar/nv1.png new file mode 100644 index 0000000000000000000000000000000000000000..fa7d4f797247689e2525db7127a239df2ab77cb5 GIT binary patch literal 37121 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 z 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�lZlSZZ{TiJ7c+p_#;W>#hGn@X}I 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 literal 0 HcmV?d00001 diff --git a/public/def_avatar/nv4.png b/public/def_avatar/nv4.png new file mode 100644 index 0000000000000000000000000000000000000000..27af90722e857aaa194f5037454e5416ffbfcae0 GIT binary patch literal 39150 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.round(r.h)<=240?n=t?Math.round(r.h)-T*e:Math.round(r.h)+T*e:n=t?Math.round(r.h)+T*e:Math.round(r.h)-T*e,n<0?n+=360:n>=360&&(n-=360),n}function Ti(r,e,t){if(r.h===0&&r.s===0)return r.s;var n;return t?n=r.s-zi*e:e===bb?n=r.s+zi:n=r.s+_b*e,n>1&&(n=1),t&&e===hb&&n>.1&&(n=.1),n<.06&&(n=.06),Number(n.toFixed(2))}function Mi(r,e,t){var n;return t?n=r.v+Ab*e:n=r.v-Lb*e,n>1&&(n=1),Number(n.toFixed(2))}function x(r){for(var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},t=[],n=w(r),a=hb;a>0;a-=1){var i=ji(n),f=M(w({h:$i(i,a,!0),s:Ti(i,a,!0),v:Mi(i,a,!0)}));t.push(f)}t.push(M(n));for(var u=1;u<=bb;u+=1){var o=ji(n),v=M(w({h:$i(o,u),s:Ti(o,u),v:Mi(o,u)}));t.push(v)}return e.theme==="dark"?Bb.map(function(p){var m=p.index,g=p.opacity,O=M(Db(w(e.backgroundColor||"#141414"),w(t[m]),g*100));return O}):t}var B={red:"#F5222D",volcano:"#FA541C",orange:"#FA8C16",gold:"#FAAD14",yellow:"#FADB14",lime:"#A0D911",green:"#52C41A",cyan:"#13C2C2",blue:"#1890FF",geekblue:"#2F54EB",purple:"#722ED1",magenta:"#EB2F96",grey:"#666666"},s={},D={};Object.keys(B).forEach(function(r){s[r]=x(B[r]),s[r].primary=s[r][5],D[r]=x(B[r],{theme:"dark",backgroundColor:"#141414"}),D[r].primary=D[r][5]});s.red;s.volcano;s.gold;s.orange;s.yellow;s.lime;s.green;s.cyan;s.blue;s.geekblue;s.purple;s.magenta;s.grey;var Fi=[],z=[],xb="insert-css: You need to provide a CSS string. Usage: insertCss(cssString[, options]).";function Eb(){var r=document.createElement("style");return r.setAttribute("type","text/css"),r}function Nb(r,e){if(e=e||{},r===void 0)throw new Error(xb);var t=e.prepend===!0?"prepend":"append",n=e.container!==void 0?e.container:document.querySelector("head"),a=Fi.indexOf(n);a===-1&&(a=Fi.push(n)-1,z[a]={});var i;return z[a]!==void 0&&z[a][t]!==void 0?i=z[a][t]:(i=z[a][t]=Eb(),t==="prepend"?n.insertBefore(i,n.childNodes[0]):n.appendChild(i)),r.charCodeAt(0)===65279&&(r=r.substr(1,r.length)),i.styleSheet?i.styleSheet.cssText+=r:i.textContent+=r,i}function Hi(r){for(var e=1;e * { + line-height: 1; +} + +.anticon svg { + display: inline-block; +} + +.anticon::before { + display: none; +} + +.anticon .anticon-icon { + display: block; +} + +.anticon[tabindex] { + cursor: pointer; +} + +.anticon-spin::before, +.anticon-spin { + display: inline-block; + -webkit-animation: loadingCircle 1s infinite linear; + animation: loadingCircle 1s infinite linear; +} + +@-webkit-keyframes loadingCircle { + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} + +@keyframes loadingCircle { + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} +`,Vi=!1,Sb=function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:Ib;Hb(function(){Vi||(typeof window!="undefined"&&window.document&&window.document.documentElement&&Nb(e,{prepend:!0}),Vi=!0)})},Ub=["icon","primaryColor","secondaryColor"];function Wb(r,e){if(r==null)return{};var t=Gb(r,e),n,a;if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(r);for(a=0;a=0)&&(!Object.prototype.propertyIsEnumerable.call(r,n)||(t[n]=r[n]))}return t}function Gb(r,e){if(r==null)return{};var t={},n=Object.keys(r),a,i;for(i=0;i=0)&&(t[a]=r[a]);return t}function H(r){for(var e=1;er.length)&&(e=r.length);for(var t=0,n=new Array(e);tr.length)&&(e=r.length);for(var t=0,n=new Array(e);t=0)&&(!Object.prototype.propertyIsEnumerable.call(r,n)||(t[n]=r[n]))}return t}function uy(r,e){if(r==null)return{};var t={},n=Object.keys(r),a,i;for(i=0;i=0)&&(t[a]=r[a]);return t}R("#1890ff");var P=function(e,t){var n,a=Li({},e,t.attrs),i=a.class,f=a.icon,u=a.spin,o=a.rotate,v=a.tabindex,p=a.twoToneColor,m=a.onClick,g=iy(a,ty),O=(n={anticon:!0},N(n,"anticon-".concat(f.name),Boolean(f.name)),N(n,i,i),n),d=u===""||!!u||f.name==="loading"?"anticon-spin":"",h=v;h===void 0&&m&&(h=-1,g.tabindex=h);var S=o?{msTransform:"rotate(".concat(o,"deg)"),transform:"rotate(".concat(o,"deg)")}:void 0,_=Pb(p),$=ry(_,2),A=$[0],b=$[1];return l("span",Li({role:"img","aria-label":f.name},g,{onClick:m,class:O}),[l(q,{class:d,icon:f,primaryColor:A,secondaryColor:b,style:S},null)])};P.props={spin:Boolean,rotate:Number,icon:Object,twoToneColor:String};P.displayName="AntdIcon";P.inheritAttrs=!1;P.getTwoToneColor=wb;P.setTwoToneColor=R;var c=P;function Bi(r){for(var e=1;e=0)&&(!Object.prototype.propertyIsEnumerable.call(r,n)||(t[n]=r[n]))}return t}function _pe(r,e){if(r==null)return{};var t={},n=Object.keys(r),a,i;for(i=0;i=0)&&(t[a]=r[a]);return t}var V=function(e,t){var n=t.attrs,a=t.slots,i=F({},e,n),f=i.class,u=i.component,o=i.viewBox,v=i.spin,p=i.rotate,m=i.tabindex,g=i.onClick,O=Vpe(i,Cpe),d=a.default&&a.default(),h=d&&d.length,S=a.component;Sb();var _=zb({anticon:!0},f,f),$={"anticon-spin":v===""||!!v},A=p?{msTransform:"rotate(".concat(p,"deg)"),transform:"rotate(".concat(p,"deg)")}:void 0,b=F({},Rb,{viewBox:o,class:$,style:A});o||delete b.viewBox;var Tb=function(){return u?l(u,b,{default:function(){return[d]}}):S?S(b):h?(Boolean(o)||d.length===1&&d[0]&&d[0].type,l("svg",F({},b,{viewBox:o}),[d])):null},L=m;return L===void 0&&g&&(L=-1,O.tabindex=L),l("span",F({role:"img"},O,{onClick:g,class:_}),[Tb()])};V.props={spin:Boolean,rotate:Number,viewBox:String,ariaLabel:String};V.inheritAttrs=!1;V.displayName="Icon";var jb=V,Ape=["type"];function gb(r){for(var e=1;e=0)&&(!Object.prototype.propertyIsEnumerable.call(r,n)||(t[n]=r[n]))}return t}function Dpe(r,e){if(r==null)return{};var t={},n=Object.keys(r),a,i;for(i=0;i=0)&&(t[a]=r[a]);return t}var $b=new Set;function xpe(r){return typeof r=="string"&&r.length&&!$b.has(r)}function C(r){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,t=r[e];if(xpe(t)){var n=document.createElement("script");n.setAttribute("src",t),n.setAttribute("data-namespace",t),r.length>e+1&&(n.onload=function(){C(r,e+1)},n.onerror=function(){C(r,e+1)}),$b.add(t),document.body.appendChild(n)}}function Epe(){var r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},e=r.scriptUrl,t=r.extraCommonProps,n=t===void 0?{}:t;typeof document!="undefined"&&typeof window!="undefined"&&typeof document.createElement=="function"&&(Array.isArray(e)?C(e.reverse()):C([e]));var a=function(f,u){var o=u.attrs,v=u.slots,p=gb({},f,o),m=p.type,g=Bpe(p,Ape),O=v.default&&v.default(),d=null;m&&(d=l("use",{"xlink:href":"#".concat(m)},null)),O&&O.length&&(d=O);var h=gb({},n,g);return l(jb,h,{default:function(){return[d]}})};return a.props={spin:Boolean,rotate:Number,type:String},a.inheritAttrs=!1,a.displayName="Iconfont",a}var Wpe=Object.freeze({__proto__:null,[Symbol.toStringTag]:"Module",createFromIconfontCN:Epe,default:jb,AccountBookFilled:yP,AccountBookOutlined:zP,AccountBookTwoTone:MP,AimOutlined:VP,AlertFilled:BP,AlertOutlined:NP,AlertTwoTone:UP,AlibabaOutlined:ZP,AlignCenterOutlined:kP,AlignLeftOutlined:rS,AlignRightOutlined:cS,AlipayCircleFilled:fS,AlipayCircleOutlined:pS,AlipayOutlined:hS,AlipaySquareFilled:SS,AliwangwangFilled:$S,AliwangwangOutlined:HS,AliyunOutlined:AS,AmazonCircleFilled:xS,AmazonOutlined:RS,AmazonSquareFilled:GS,AndroidFilled:JS,AndroidOutlined:ew,AntCloudOutlined:aw,AntDesignOutlined:uw,ApartmentOutlined:sw,ApiFilled:mw,ApiOutlined:yw,ApiTwoTone:zw,AppleFilled:Mw,AppleOutlined:Vw,AppstoreAddOutlined:Bw,AppstoreFilled:Nw,AppstoreOutlined:Uw,AppstoreTwoTone:Zw,AreaChartOutlined:kw,ArrowDownOutlined:rz,ArrowLeftOutlined:cz,ArrowRightOutlined:fz,ArrowUpOutlined:pz,ArrowsAltOutlined:hz,AudioFilled:Sz,AudioMutedOutlined:$z,AudioOutlined:Hz,AudioTwoTone:Az,AuditOutlined:xz,BackwardFilled:Rz,BackwardOutlined:Gz,BankFilled:Jz,BankOutlined:ej,BankTwoTone:aj,BarChartOutlined:uj,BarcodeOutlined:sj,BarsOutlined:mj,BehanceCircleFilled:yj,BehanceOutlined:zj,BehanceSquareFilled:Mj,BehanceSquareOutlined:Vj,BellFilled:Bj,BellOutlined:Nj,BellTwoTone:Uj,BgColorsOutlined:Zj,BlockOutlined:kj,BoldOutlined:r$,BookFilled:c$,BookOutlined:f$,BookTwoTone:p$,BorderBottomOutlined:h$,BorderHorizontalOutlined:S$,BorderInnerOutlined:$$,BorderLeftOutlined:H$,BorderOuterOutlined:A$,BorderOutlined:x$,BorderRightOutlined:R$,BorderTopOutlined:G$,BorderVerticleOutlined:J$,BorderlessTableOutlined:eT,BoxPlotFilled:aT,BoxPlotOutlined:uT,BoxPlotTwoTone:sT,BranchesOutlined:mT,BugFilled:yT,BugOutlined:zT,BugTwoTone:MT,BuildFilled:VT,BuildOutlined:BT,BuildTwoTone:NT,BulbFilled:UT,BulbOutlined:ZT,BulbTwoTone:kT,CalculatorFilled:rM,CalculatorOutlined:cM,CalculatorTwoTone:fM,CalendarFilled:pM,CalendarOutlined:hM,CalendarTwoTone:SM,CameraFilled:$M,CameraOutlined:HM,CameraTwoTone:AM,CarFilled:xM,CarOutlined:RM,CarTwoTone:GM,CaretDownFilled:JM,CaretDownOutlined:eF,CaretLeftFilled:aF,CaretLeftOutlined:uF,CaretRightFilled:sF,CaretRightOutlined:mF,CaretUpFilled:yF,CaretUpOutlined:zF,CarryOutFilled:MF,CarryOutOutlined:VF,CarryOutTwoTone:BF,CheckCircleFilled:Sy,CheckCircleOutlined:Hy,CheckCircleTwoTone:NF,CheckOutlined:eP,CheckSquareFilled:UF,CheckSquareOutlined:ZF,CheckSquareTwoTone:kF,ChromeFilled:rH,ChromeOutlined:cH,CiCircleFilled:fH,CiCircleOutlined:pH,CiCircleTwoTone:hH,CiOutlined:SH,CiTwoTone:$H,ClearOutlined:HH,ClockCircleFilled:AH,ClockCircleOutlined:xH,ClockCircleTwoTone:RH,CloseCircleFilled:hy,CloseCircleOutlined:xy,CloseCircleTwoTone:GH,CloseOutlined:Gy,CloseSquareFilled:JH,CloseSquareOutlined:eC,CloseSquareTwoTone:aC,CloudDownloadOutlined:uC,CloudFilled:sC,CloudOutlined:mC,CloudServerOutlined:yC,CloudSyncOutlined:zC,CloudTwoTone:MC,CloudUploadOutlined:VC,ClusterOutlined:BC,CodeFilled:NC,CodeOutlined:UC,CodeSandboxCircleFilled:ZC,CodeSandboxOutlined:kC,CodeSandboxSquareFilled:rV,CodeTwoTone:cV,CodepenCircleFilled:fV,CodepenCircleOutlined:pV,CodepenOutlined:hV,CodepenSquareFilled:SV,CoffeeOutlined:$V,ColumnHeightOutlined:HV,ColumnWidthOutlined:AV,CommentOutlined:xV,CompassFilled:RV,CompassOutlined:GV,CompassTwoTone:JV,CompressOutlined:e_,ConsoleSqlOutlined:a_,ContactsFilled:u_,ContactsOutlined:s_,ContactsTwoTone:m_,ContainerFilled:y_,ContainerOutlined:z_,ContainerTwoTone:M_,ControlFilled:V_,ControlOutlined:B_,ControlTwoTone:N_,CopyFilled:U_,CopyOutlined:Z_,CopyTwoTone:k_,CopyrightCircleFilled:rA,CopyrightCircleOutlined:cA,CopyrightCircleTwoTone:fA,CopyrightOutlined:pA,CopyrightTwoTone:hA,CreditCardFilled:SA,CreditCardOutlined:$A,CreditCardTwoTone:HA,CrownFilled:AA,CrownOutlined:xA,CrownTwoTone:RA,CustomerServiceFilled:GA,CustomerServiceOutlined:JA,CustomerServiceTwoTone:eL,DashOutlined:aL,DashboardFilled:uL,DashboardOutlined:sL,DashboardTwoTone:mL,DatabaseFilled:yL,DatabaseOutlined:zL,DatabaseTwoTone:ML,DeleteColumnOutlined:VL,DeleteFilled:BL,DeleteOutlined:NL,DeleteRowOutlined:UL,DeleteTwoTone:ZL,DeliveredProcedureOutlined:kL,DeploymentUnitOutlined:rB,DesktopOutlined:cB,DiffFilled:fB,DiffOutlined:pB,DiffTwoTone:hB,DingdingOutlined:SB,DingtalkCircleFilled:$B,DingtalkOutlined:HB,DingtalkSquareFilled:AB,DisconnectOutlined:xB,DislikeFilled:RB,DislikeOutlined:GB,DislikeTwoTone:JB,DollarCircleFilled:eD,DollarCircleOutlined:aD,DollarCircleTwoTone:uD,DollarOutlined:sD,DollarTwoTone:mD,DotChartOutlined:yD,DoubleLeftOutlined:zD,DoubleRightOutlined:MD,DownCircleFilled:VD,DownCircleOutlined:BD,DownCircleTwoTone:ND,DownOutlined:Jy,DownSquareFilled:UD,DownSquareOutlined:ZD,DownSquareTwoTone:kD,DownloadOutlined:rx,DragOutlined:cx,DribbbleCircleFilled:fx,DribbbleOutlined:px,DribbbleSquareFilled:hx,DribbbleSquareOutlined:Sx,DropboxCircleFilled:$x,DropboxOutlined:Hx,DropboxSquareFilled:Ax,EditFilled:xx,EditOutlined:Rx,EditTwoTone:Gx,EllipsisOutlined:sP,EnterOutlined:Jx,EnvironmentFilled:eE,EnvironmentOutlined:aE,EnvironmentTwoTone:uE,EuroCircleFilled:sE,EuroCircleOutlined:mE,EuroCircleTwoTone:yE,EuroOutlined:zE,EuroTwoTone:ME,ExceptionOutlined:VE,ExclamationCircleFilled:py,ExclamationCircleOutlined:Ry,ExclamationCircleTwoTone:BE,ExclamationOutlined:NE,ExpandAltOutlined:UE,ExpandOutlined:ZE,ExperimentFilled:kE,ExperimentOutlined:rN,ExperimentTwoTone:cN,ExportOutlined:fN,EyeFilled:pN,EyeInvisibleFilled:hN,EyeInvisibleOutlined:SN,EyeInvisibleTwoTone:$N,EyeOutlined:HN,EyeTwoTone:AN,FacebookFilled:xN,FacebookOutlined:RN,FallOutlined:GN,FastBackwardFilled:JN,FastBackwardOutlined:eq,FastForwardFilled:aq,FastForwardOutlined:uq,FieldBinaryOutlined:sq,FieldNumberOutlined:mq,FieldStringOutlined:yq,FieldTimeOutlined:zq,FileAddFilled:Mq,FileAddOutlined:Vq,FileAddTwoTone:Bq,FileDoneOutlined:Nq,FileExcelFilled:Uq,FileExcelOutlined:Zq,FileExcelTwoTone:kq,FileExclamationFilled:rR,FileExclamationOutlined:cR,FileExclamationTwoTone:fR,FileFilled:pR,FileGifOutlined:hR,FileImageFilled:SR,FileImageOutlined:$R,FileImageTwoTone:HR,FileJpgOutlined:AR,FileMarkdownFilled:xR,FileMarkdownOutlined:RR,FileMarkdownTwoTone:GR,FileOutlined:JR,FilePdfFilled:eI,FilePdfOutlined:aI,FilePdfTwoTone:uI,FilePptFilled:sI,FilePptOutlined:mI,FilePptTwoTone:yI,FileProtectOutlined:zI,FileSearchOutlined:MI,FileSyncOutlined:VI,FileTextFilled:BI,FileTextOutlined:NI,FileTextTwoTone:UI,FileTwoTone:ZI,FileUnknownFilled:kI,FileUnknownOutlined:rU,FileUnknownTwoTone:cU,FileWordFilled:fU,FileWordOutlined:pU,FileWordTwoTone:hU,FileZipFilled:SU,FileZipOutlined:$U,FileZipTwoTone:HU,FilterFilled:AU,FilterOutlined:xU,FilterTwoTone:RU,FireFilled:GU,FireOutlined:JU,FireTwoTone:eW,FlagFilled:aW,FlagOutlined:uW,FlagTwoTone:sW,FolderAddFilled:mW,FolderAddOutlined:yW,FolderAddTwoTone:zW,FolderFilled:MW,FolderOpenFilled:VW,FolderOpenOutlined:BW,FolderOpenTwoTone:NW,FolderOutlined:UW,FolderTwoTone:ZW,FolderViewOutlined:kW,FontColorsOutlined:rG,FontSizeOutlined:cG,ForkOutlined:fG,FormOutlined:pG,FormatPainterFilled:hG,FormatPainterOutlined:SG,ForwardFilled:$G,ForwardOutlined:HG,FrownFilled:AG,FrownOutlined:xG,FrownTwoTone:RG,FullscreenExitOutlined:GG,FullscreenOutlined:JG,FunctionOutlined:eQ,FundFilled:aQ,FundOutlined:uQ,FundProjectionScreenOutlined:sQ,FundTwoTone:mQ,FundViewOutlined:yQ,FunnelPlotFilled:zQ,FunnelPlotOutlined:MQ,FunnelPlotTwoTone:VQ,GatewayOutlined:BQ,GifOutlined:NQ,GiftFilled:UQ,GiftOutlined:ZQ,GiftTwoTone:kQ,GithubFilled:rZ,GithubOutlined:cZ,GitlabFilled:fZ,GitlabOutlined:pZ,GlobalOutlined:hZ,GoldFilled:SZ,GoldOutlined:$Z,GoldTwoTone:HZ,GoldenFilled:AZ,GoogleCircleFilled:xZ,GoogleOutlined:RZ,GooglePlusCircleFilled:GZ,GooglePlusOutlined:JZ,GooglePlusSquareFilled:eY,GoogleSquareFilled:aY,GroupOutlined:uY,HddFilled:sY,HddOutlined:mY,HddTwoTone:yY,HeartFilled:zY,HeartOutlined:MY,HeartTwoTone:VY,HeatMapOutlined:BY,HighlightFilled:NY,HighlightOutlined:UY,HighlightTwoTone:ZY,HistoryOutlined:kY,HolderOutlined:rJ,HomeFilled:cJ,HomeOutlined:fJ,HomeTwoTone:pJ,HourglassFilled:hJ,HourglassOutlined:SJ,HourglassTwoTone:$J,Html5Filled:HJ,Html5Outlined:AJ,Html5TwoTone:xJ,IdcardFilled:RJ,IdcardOutlined:GJ,IdcardTwoTone:JJ,IeCircleFilled:eX,IeOutlined:aX,IeSquareFilled:uX,ImportOutlined:sX,InboxOutlined:mX,InfoCircleFilled:$y,InfoCircleOutlined:Ay,InfoCircleTwoTone:yX,InfoOutlined:zX,InsertRowAboveOutlined:MX,InsertRowBelowOutlined:VX,InsertRowLeftOutlined:BX,InsertRowRightOutlined:NX,InstagramFilled:UX,InstagramOutlined:ZX,InsuranceFilled:kX,InsuranceOutlined:rk,InsuranceTwoTone:ck,InteractionFilled:fk,InteractionOutlined:pk,InteractionTwoTone:hk,IssuesCloseOutlined:Sk,ItalicOutlined:$k,KeyOutlined:Hk,LaptopOutlined:Ak,LayoutFilled:xk,LayoutOutlined:Rk,LayoutTwoTone:Gk,LeftCircleFilled:Jk,LeftCircleOutlined:eK,LeftCircleTwoTone:aK,LeftOutlined:uK,LeftSquareFilled:sK,LeftSquareOutlined:mK,LeftSquareTwoTone:yK,LikeFilled:zK,LikeOutlined:MK,LikeTwoTone:VK,LineChartOutlined:BK,LineHeightOutlined:NK,LineOutlined:UK,LinkOutlined:ZK,LinkedinFilled:kK,LinkedinOutlined:ree,Loading3QuartersOutlined:cee,LoadingOutlined:fy,LockFilled:fee,LockOutlined:pee,LockTwoTone:hee,LoginOutlined:See,LogoutOutlined:$ee,MacCommandFilled:Hee,MacCommandOutlined:Aee,MailFilled:xee,MailOutlined:Ree,MailTwoTone:Gee,ManOutlined:Jee,MedicineBoxFilled:ete,MedicineBoxOutlined:ate,MedicineBoxTwoTone:ute,MediumCircleFilled:ste,MediumOutlined:mte,MediumSquareFilled:yte,MediumWorkmarkOutlined:zte,MehFilled:Mte,MehOutlined:Vte,MehTwoTone:Bte,MenuFoldOutlined:Nte,MenuOutlined:Ute,MenuUnfoldOutlined:Zte,MergeCellsOutlined:kte,MessageFilled:r1e,MessageOutlined:c1e,MessageTwoTone:f1e,MinusCircleFilled:p1e,MinusCircleOutlined:h1e,MinusCircleTwoTone:S1e,MinusOutlined:$1e,MinusSquareFilled:H1e,MinusSquareOutlined:A1e,MinusSquareTwoTone:x1e,MobileFilled:R1e,MobileOutlined:G1e,MobileTwoTone:J1e,MoneyCollectFilled:ere,MoneyCollectOutlined:are,MoneyCollectTwoTone:ure,MonitorOutlined:sre,MoreOutlined:mre,NodeCollapseOutlined:yre,NodeExpandOutlined:zre,NodeIndexOutlined:Mre,NotificationFilled:Vre,NotificationOutlined:Bre,NotificationTwoTone:Nre,NumberOutlined:Ure,OneToOneOutlined:Zre,OrderedListOutlined:kre,PaperClipOutlined:r4e,PartitionOutlined:c4e,PauseCircleFilled:f4e,PauseCircleOutlined:p4e,PauseCircleTwoTone:h4e,PauseOutlined:S4e,PayCircleFilled:$4e,PayCircleOutlined:H4e,PercentageOutlined:A4e,PhoneFilled:x4e,PhoneOutlined:R4e,PhoneTwoTone:G4e,PicCenterOutlined:J4e,PicLeftOutlined:ene,PicRightOutlined:ane,PictureFilled:une,PictureOutlined:sne,PictureTwoTone:mne,PieChartFilled:yne,PieChartOutlined:zne,PieChartTwoTone:Mne,PlayCircleFilled:Vne,PlayCircleOutlined:Bne,PlayCircleTwoTone:Nne,PlaySquareFilled:Une,PlaySquareOutlined:Zne,PlaySquareTwoTone:kne,PlusCircleFilled:r2e,PlusCircleOutlined:c2e,PlusCircleTwoTone:f2e,PlusOutlined:p2e,PlusSquareFilled:h2e,PlusSquareOutlined:S2e,PlusSquareTwoTone:$2e,PoundCircleFilled:H2e,PoundCircleOutlined:A2e,PoundCircleTwoTone:x2e,PoundOutlined:R2e,PoweroffOutlined:G2e,PrinterFilled:J2e,PrinterOutlined:e3e,PrinterTwoTone:a3e,ProfileFilled:u3e,ProfileOutlined:s3e,ProfileTwoTone:m3e,ProjectFilled:y3e,ProjectOutlined:z3e,ProjectTwoTone:M3e,PropertySafetyFilled:V3e,PropertySafetyOutlined:B3e,PropertySafetyTwoTone:N3e,PullRequestOutlined:U3e,PushpinFilled:Z3e,PushpinOutlined:k3e,PushpinTwoTone:r8e,QqCircleFilled:c8e,QqOutlined:f8e,QqSquareFilled:p8e,QrcodeOutlined:h8e,QuestionCircleFilled:S8e,QuestionCircleOutlined:$8e,QuestionCircleTwoTone:H8e,QuestionOutlined:A8e,RadarChartOutlined:x8e,RadiusBottomleftOutlined:R8e,RadiusBottomrightOutlined:G8e,RadiusSettingOutlined:J8e,RadiusUpleftOutlined:e6e,RadiusUprightOutlined:a6e,ReadFilled:u6e,ReadOutlined:s6e,ReconciliationFilled:m6e,ReconciliationOutlined:y6e,ReconciliationTwoTone:z6e,RedEnvelopeFilled:M6e,RedEnvelopeOutlined:V6e,RedEnvelopeTwoTone:B6e,RedditCircleFilled:N6e,RedditOutlined:U6e,RedditSquareFilled:Z6e,RedoOutlined:k6e,ReloadOutlined:rae,RestFilled:cae,RestOutlined:fae,RestTwoTone:pae,RetweetOutlined:hae,RightCircleFilled:Sae,RightCircleOutlined:$ae,RightCircleTwoTone:Hae,RightOutlined:mP,RightSquareFilled:Aae,RightSquareOutlined:xae,RightSquareTwoTone:Rae,RiseOutlined:Gae,RobotFilled:Jae,RobotOutlined:ele,RocketFilled:ale,RocketOutlined:ule,RocketTwoTone:sle,RollbackOutlined:mle,RotateLeftOutlined:yle,RotateRightOutlined:zle,SafetyCertificateFilled:Mle,SafetyCertificateOutlined:Vle,SafetyCertificateTwoTone:Ble,SafetyOutlined:Nle,SaveFilled:Ule,SaveOutlined:Zle,SaveTwoTone:kle,ScanOutlined:r0e,ScheduleFilled:c0e,ScheduleOutlined:f0e,ScheduleTwoTone:p0e,ScissorOutlined:h0e,SearchOutlined:aP,SecurityScanFilled:S0e,SecurityScanOutlined:$0e,SecurityScanTwoTone:H0e,SelectOutlined:A0e,SendOutlined:x0e,SettingFilled:R0e,SettingOutlined:G0e,SettingTwoTone:J0e,ShakeOutlined:ece,ShareAltOutlined:ace,ShopFilled:uce,ShopOutlined:sce,ShopTwoTone:mce,ShoppingCartOutlined:yce,ShoppingFilled:zce,ShoppingOutlined:Mce,ShoppingTwoTone:Vce,ShrinkOutlined:Bce,SignalFilled:Nce,SisternodeOutlined:Uce,SketchCircleFilled:Zce,SketchOutlined:kce,SketchSquareFilled:rie,SkinFilled:cie,SkinOutlined:fie,SkinTwoTone:pie,SkypeFilled:hie,SkypeOutlined:Sie,SlackCircleFilled:$ie,SlackOutlined:Hie,SlackSquareFilled:Aie,SlackSquareOutlined:xie,SlidersFilled:Rie,SlidersOutlined:Gie,SlidersTwoTone:Jie,SmallDashOutlined:e5e,SmileFilled:a5e,SmileOutlined:u5e,SmileTwoTone:s5e,SnippetsFilled:m5e,SnippetsOutlined:y5e,SnippetsTwoTone:z5e,SolutionOutlined:M5e,SortAscendingOutlined:V5e,SortDescendingOutlined:B5e,SoundFilled:N5e,SoundOutlined:U5e,SoundTwoTone:Z5e,SplitCellsOutlined:k5e,StarFilled:r7e,StarOutlined:c7e,StarTwoTone:f7e,StepBackwardFilled:p7e,StepBackwardOutlined:h7e,StepForwardFilled:S7e,StepForwardOutlined:$7e,StockOutlined:H7e,StopFilled:A7e,StopOutlined:x7e,StopTwoTone:R7e,StrikethroughOutlined:G7e,SubnodeOutlined:J7e,SwapLeftOutlined:eue,SwapOutlined:aue,SwapRightOutlined:uue,SwitcherFilled:sue,SwitcherOutlined:mue,SwitcherTwoTone:yue,SyncOutlined:zue,TableOutlined:Mue,TabletFilled:Vue,TabletOutlined:Bue,TabletTwoTone:Nue,TagFilled:Uue,TagOutlined:Zue,TagTwoTone:kue,TagsFilled:roe,TagsOutlined:coe,TagsTwoTone:foe,TaobaoCircleFilled:poe,TaobaoCircleOutlined:hoe,TaobaoOutlined:Soe,TaobaoSquareFilled:$oe,TeamOutlined:Hoe,ThunderboltFilled:Aoe,ThunderboltOutlined:xoe,ThunderboltTwoTone:Roe,ToTopOutlined:Goe,ToolFilled:Joe,ToolOutlined:e9e,ToolTwoTone:a9e,TrademarkCircleFilled:u9e,TrademarkCircleOutlined:s9e,TrademarkCircleTwoTone:m9e,TrademarkOutlined:y9e,TransactionOutlined:z9e,TranslationOutlined:M9e,TrophyFilled:V9e,TrophyOutlined:B9e,TrophyTwoTone:N9e,TwitterCircleFilled:U9e,TwitterOutlined:Z9e,TwitterSquareFilled:k9e,UnderlineOutlined:rfe,UndoOutlined:cfe,UngroupOutlined:ffe,UnlockFilled:pfe,UnlockOutlined:hfe,UnlockTwoTone:Sfe,UnorderedListOutlined:$fe,UpCircleFilled:Hfe,UpCircleOutlined:Afe,UpCircleTwoTone:xfe,UpOutlined:Rfe,UpSquareFilled:Gfe,UpSquareOutlined:Jfe,UpSquareTwoTone:eve,UploadOutlined:ave,UsbFilled:uve,UsbOutlined:sve,UsbTwoTone:mve,UserAddOutlined:yve,UserDeleteOutlined:zve,UserOutlined:Mve,UserSwitchOutlined:Vve,UsergroupAddOutlined:Bve,UsergroupDeleteOutlined:Nve,VerifiedOutlined:Uve,VerticalAlignBottomOutlined:Zve,VerticalAlignMiddleOutlined:kve,VerticalAlignTopOutlined:uP,VerticalLeftOutlined:rse,VerticalRightOutlined:cse,VideoCameraAddOutlined:fse,VideoCameraFilled:pse,VideoCameraOutlined:hse,VideoCameraTwoTone:Sse,WalletFilled:$se,WalletOutlined:Hse,WalletTwoTone:Ase,WarningFilled:xse,WarningOutlined:Rse,WarningTwoTone:Gse,WechatFilled:Jse,WechatOutlined:ede,WeiboCircleFilled:ade,WeiboCircleOutlined:ude,WeiboOutlined:sde,WeiboSquareFilled:mde,WeiboSquareOutlined:yde,WhatsAppOutlined:zde,WifiOutlined:Mde,WindowsFilled:Vde,WindowsOutlined:Bde,WomanOutlined:Nde,YahooFilled:Ude,YahooOutlined:Zde,YoutubeFilled:kde,YoutubeOutlined:rpe,YuqueFilled:cpe,YuqueOutlined:fpe,ZhihuCircleFilled:ppe,ZhihuOutlined:hpe,ZhihuSquareFilled:Spe,ZoomInOutlined:$pe,ZoomOutOutlined:Hpe,setTwoToneColor:R,getTwoToneColor:wb});export{r4e as $,fz as A,mj as B,Sy as C,Jy as D,py as E,JR as F,S2e as G,BW as H,$y as I,UW as J,AU as K,fy as L,A1e as M,NL as N,Jx as O,p2e as P,Rx as Q,mP as R,aP as S,Z_ as T,Rfe as U,uP as V,xse as W,rx as X,mne as Y,$pe as Z,ZI as _,hy as a,Wpe as a0,Gy as b,Hy as c,Ay as d,xy as e,Ry as f,x as g,eP as h,sP as i,uK as j,xH as k,hM as l,uue as m,HN as n,SN as o,yle as p,zle as q,Hpe as r,zD as s,MD as t,cz as u,B as v,r7e as w,zF as x,eF as y,JM as z}; diff --git a/public/exadmin/assets/@babel.6cd0804c.js b/public/exadmin/assets/@babel.6cd0804c.js new file mode 100644 index 0000000..fe69364 --- /dev/null +++ b/public/exadmin/assets/@babel.6cd0804c.js @@ -0,0 +1,4 @@ +import{r as v}from"./regenerator-runtime.8e24db72.js";var A=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{};function P(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function T(e){if(e.__esModule)return e;var t=Object.defineProperty({},"__esModule",{value:!0});return Object.keys(e).forEach(function(r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}),t}function E(e){throw new Error('Could not dynamically require "'+e+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}function w(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function s(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function I(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=new Array(t);r=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(u){throw u},f:o}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var i=!0,f=!1,l;return{s:function(){r=r.call(e)},n:function(){var u=r.next();return i=u.done,u},e:function(u){f=!0,l=u},f:function(){try{!i&&r.return!=null&&r.return()}finally{if(f)throw l}}}}function F(e){if(e==null)throw new TypeError("Cannot destructure undefined")}export{b as _,E as a,p as b,A as c,C as d,I as e,w as f,P as g,D as h,M as i,R as j,H as k,x as l,F as m,T as n,q as r}; diff --git a/public/exadmin/assets/@ctrl.fa7cbd46.js b/public/exadmin/assets/@ctrl.fa7cbd46.js new file mode 100644 index 0000000..6c8c760 --- /dev/null +++ b/public/exadmin/assets/@ctrl.fa7cbd46.js @@ -0,0 +1 @@ +function s(e,t){F(e)&&(e="100%");var r=I(e);return e=t===360?e:Math.min(t,Math.max(0,parseFloat(e))),r&&(e=parseInt(String(e*t),10)/100),Math.abs(e-t)<1e-6?1:(t===360?e=(e<0?e%t+t:e%t)/parseFloat(String(t)):e=e%t/parseFloat(String(t)),e)}function p(e){return Math.min(1,Math.max(0,e))}function F(e){return typeof e=="string"&&e.indexOf(".")!==-1&&parseFloat(e)===1}function I(e){return typeof e=="string"&&e.indexOf("%")!==-1}function A(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function l(e){return e<=1?Number(e)*100+"%":e}function v(e){return e.length===1?"0"+e:String(e)}function E(e,t,r){return{r:s(e,255)*255,g:s(t,255)*255,b:s(r,255)*255}}function M(e,t,r){e=s(e,255),t=s(t,255),r=s(r,255);var a=Math.max(e,t,r),i=Math.min(e,t,r),n=0,f=0,h=(a+i)/2;if(a===i)f=0,n=0;else{var u=a-i;switch(f=h>.5?u/(2-a-i):u/(a+i),a){case e:n=(t-r)/u+(t1&&(r-=1),r<1/6?e+(t-e)*(6*r):r<1/2?t:r<2/3?e+(t-e)*(2/3-r)*6:e}function B(e,t,r){var a,i,n;if(e=s(e,360),t=s(t,100),r=s(r,100),t===0)i=r,n=r,a=r;else{var f=r<.5?r*(1+t):r+t-r*t,h=2*r-f;a=c(h,f,e+1/3),i=c(h,f,e),n=c(h,f,e-1/3)}return{r:a*255,g:i*255,b:n*255}}function S(e,t,r){e=s(e,255),t=s(t,255),r=s(r,255);var a=Math.max(e,t,r),i=Math.min(e,t,r),n=0,f=a,h=a-i,u=a===0?0:h/a;if(a===i)n=0;else{switch(a){case e:n=(t-r)/h+(t>16,g:(e&65280)>>8,b:e&255}}var x={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",goldenrod:"#daa520",gold:"#ffd700",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavenderblush:"#fff0f5",lavender:"#e6e6fa",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};function W(e){var t={r:0,g:0,b:0},r=1,a=null,i=null,n=null,f=!1,h=!1;return typeof e=="string"&&(e=U(e)),typeof e=="object"&&(d(e.r)&&d(e.g)&&d(e.b)?(t=E(e.r,e.g,e.b),f=!0,h=String(e.r).substr(-1)==="%"?"prgb":"rgb"):d(e.h)&&d(e.s)&&d(e.v)?(a=l(e.s),i=l(e.v),t=N(e.h,a,i),f=!0,h="hsv"):d(e.h)&&d(e.s)&&d(e.l)&&(a=l(e.s),n=l(e.l),t=B(e.h,a,n),f=!0,h="hsl"),Object.prototype.hasOwnProperty.call(e,"a")&&(r=e.a)),r=A(r),{ok:f,format:e.format||h,r:Math.min(255,Math.max(t.r,0)),g:Math.min(255,Math.max(t.g,0)),b:Math.min(255,Math.max(t.b,0)),a:r}}var G="[-\\+]?\\d+%?",q="[-\\+]?\\d*\\.\\d+%?",b="(?:"+q+")|(?:"+G+")",y="[\\s|\\(]+("+b+")[,|\\s]+("+b+")[,|\\s]+("+b+")\\s*\\)?",m="[\\s|\\(]+("+b+")[,|\\s]+("+b+")[,|\\s]+("+b+")[,|\\s]+("+b+")\\s*\\)?",g={CSS_UNIT:new RegExp(b),rgb:new RegExp("rgb"+y),rgba:new RegExp("rgba"+m),hsl:new RegExp("hsl"+y),hsla:new RegExp("hsla"+m),hsv:new RegExp("hsv"+y),hsva:new RegExp("hsva"+m),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/};function U(e){if(e=e.trim().toLowerCase(),e.length===0)return!1;var t=!1;if(x[e])e=x[e],t=!0;else if(e==="transparent")return{r:0,g:0,b:0,a:0,format:"name"};var r=g.rgb.exec(e);return r?{r:r[1],g:r[2],b:r[3]}:(r=g.rgba.exec(e),r?{r:r[1],g:r[2],b:r[3],a:r[4]}:(r=g.hsl.exec(e),r?{h:r[1],s:r[2],l:r[3]}:(r=g.hsla.exec(e),r?{h:r[1],s:r[2],l:r[3],a:r[4]}:(r=g.hsv.exec(e),r?{h:r[1],s:r[2],v:r[3]}:(r=g.hsva.exec(e),r?{h:r[1],s:r[2],v:r[3],a:r[4]}:(r=g.hex8.exec(e),r?{r:o(r[1]),g:o(r[2]),b:o(r[3]),a:k(r[4]),format:t?"name":"hex8"}:(r=g.hex6.exec(e),r?{r:o(r[1]),g:o(r[2]),b:o(r[3]),format:t?"name":"hex"}:(r=g.hex4.exec(e),r?{r:o(r[1]+r[1]),g:o(r[2]+r[2]),b:o(r[3]+r[3]),a:k(r[4]+r[4]),format:t?"name":"hex8"}:(r=g.hex3.exec(e),r?{r:o(r[1]+r[1]),g:o(r[2]+r[2]),b:o(r[3]+r[3]),format:t?"name":"hex"}:!1)))))))))}function d(e){return Boolean(g.CSS_UNIT.exec(String(e)))}var D=function(){function e(t,r){t===void 0&&(t=""),r===void 0&&(r={});var a;if(t instanceof e)return t;typeof t=="number"&&(t=O(t)),this.originalInput=t;var i=W(t);this.originalInput=t,this.r=i.r,this.g=i.g,this.b=i.b,this.a=i.a,this.roundA=Math.round(100*this.a)/100,this.format=(a=r.format)!==null&&a!==void 0?a:i.format,this.gradientType=r.gradientType,this.r<1&&(this.r=Math.round(this.r)),this.g<1&&(this.g=Math.round(this.g)),this.b<1&&(this.b=Math.round(this.b)),this.isValid=i.ok}return e.prototype.isDark=function(){return this.getBrightness()<128},e.prototype.isLight=function(){return!this.isDark()},e.prototype.getBrightness=function(){var t=this.toRgb();return(t.r*299+t.g*587+t.b*114)/1e3},e.prototype.getLuminance=function(){var t=this.toRgb(),r,a,i,n=t.r/255,f=t.g/255,h=t.b/255;return n<=.03928?r=n/12.92:r=Math.pow((n+.055)/1.055,2.4),f<=.03928?a=f/12.92:a=Math.pow((f+.055)/1.055,2.4),h<=.03928?i=h/12.92:i=Math.pow((h+.055)/1.055,2.4),.2126*r+.7152*a+.0722*i},e.prototype.getAlpha=function(){return this.a},e.prototype.setAlpha=function(t){return this.a=A(t),this.roundA=Math.round(100*this.a)/100,this},e.prototype.toHsv=function(){var t=S(this.r,this.g,this.b);return{h:t.h*360,s:t.s,v:t.v,a:this.a}},e.prototype.toHsvString=function(){var t=S(this.r,this.g,this.b),r=Math.round(t.h*360),a=Math.round(t.s*100),i=Math.round(t.v*100);return this.a===1?"hsv("+r+", "+a+"%, "+i+"%)":"hsva("+r+", "+a+"%, "+i+"%, "+this.roundA+")"},e.prototype.toHsl=function(){var t=M(this.r,this.g,this.b);return{h:t.h*360,s:t.s,l:t.l,a:this.a}},e.prototype.toHslString=function(){var t=M(this.r,this.g,this.b),r=Math.round(t.h*360),a=Math.round(t.s*100),i=Math.round(t.l*100);return this.a===1?"hsl("+r+", "+a+"%, "+i+"%)":"hsla("+r+", "+a+"%, "+i+"%, "+this.roundA+")"},e.prototype.toHex=function(t){return t===void 0&&(t=!1),w(this.r,this.g,this.b,t)},e.prototype.toHexString=function(t){return t===void 0&&(t=!1),"#"+this.toHex(t)},e.prototype.toHex8=function(t){return t===void 0&&(t=!1),P(this.r,this.g,this.b,this.a,t)},e.prototype.toHex8String=function(t){return t===void 0&&(t=!1),"#"+this.toHex8(t)},e.prototype.toRgb=function(){return{r:Math.round(this.r),g:Math.round(this.g),b:Math.round(this.b),a:this.a}},e.prototype.toRgbString=function(){var t=Math.round(this.r),r=Math.round(this.g),a=Math.round(this.b);return this.a===1?"rgb("+t+", "+r+", "+a+")":"rgba("+t+", "+r+", "+a+", "+this.roundA+")"},e.prototype.toPercentageRgb=function(){var t=function(r){return Math.round(s(r,255)*100)+"%"};return{r:t(this.r),g:t(this.g),b:t(this.b),a:this.a}},e.prototype.toPercentageRgbString=function(){var t=function(r){return Math.round(s(r,255)*100)};return this.a===1?"rgb("+t(this.r)+"%, "+t(this.g)+"%, "+t(this.b)+"%)":"rgba("+t(this.r)+"%, "+t(this.g)+"%, "+t(this.b)+"%, "+this.roundA+")"},e.prototype.toName=function(){if(this.a===0)return"transparent";if(this.a<1)return!1;for(var t="#"+w(this.r,this.g,this.b,!1),r=0,a=Object.entries(x);r=0,n=!r&&i&&(t.startsWith("hex")||t==="name");return n?t==="name"&&this.a===0?this.toName():this.toRgbString():(t==="rgb"&&(a=this.toRgbString()),t==="prgb"&&(a=this.toPercentageRgbString()),(t==="hex"||t==="hex6")&&(a=this.toHexString()),t==="hex3"&&(a=this.toHexString(!0)),t==="hex4"&&(a=this.toHex8String(!0)),t==="hex8"&&(a=this.toHex8String()),t==="name"&&(a=this.toName()),t==="hsl"&&(a=this.toHslString()),t==="hsv"&&(a=this.toHsvString()),a||this.toHexString())},e.prototype.toNumber=function(){return(Math.round(this.r)<<16)+(Math.round(this.g)<<8)+Math.round(this.b)},e.prototype.clone=function(){return new e(this.toString())},e.prototype.lighten=function(t){t===void 0&&(t=10);var r=this.toHsl();return r.l+=t/100,r.l=p(r.l),new e(r)},e.prototype.brighten=function(t){t===void 0&&(t=10);var r=this.toRgb();return r.r=Math.max(0,Math.min(255,r.r-Math.round(255*-(t/100)))),r.g=Math.max(0,Math.min(255,r.g-Math.round(255*-(t/100)))),r.b=Math.max(0,Math.min(255,r.b-Math.round(255*-(t/100)))),new e(r)},e.prototype.darken=function(t){t===void 0&&(t=10);var r=this.toHsl();return r.l-=t/100,r.l=p(r.l),new e(r)},e.prototype.tint=function(t){return t===void 0&&(t=10),this.mix("white",t)},e.prototype.shade=function(t){return t===void 0&&(t=10),this.mix("black",t)},e.prototype.desaturate=function(t){t===void 0&&(t=10);var r=this.toHsl();return r.s-=t/100,r.s=p(r.s),new e(r)},e.prototype.saturate=function(t){t===void 0&&(t=10);var r=this.toHsl();return r.s+=t/100,r.s=p(r.s),new e(r)},e.prototype.greyscale=function(){return this.desaturate(100)},e.prototype.spin=function(t){var r=this.toHsl(),a=(r.h+t)%360;return r.h=a<0?360+a:a,new e(r)},e.prototype.mix=function(t,r){r===void 0&&(r=50);var a=this.toRgb(),i=new e(t).toRgb(),n=r/100,f={r:(i.r-a.r)*n+a.r,g:(i.g-a.g)*n+a.g,b:(i.b-a.b)*n+a.b,a:(i.a-a.a)*n+a.a};return new e(f)},e.prototype.analogous=function(t,r){t===void 0&&(t=6),r===void 0&&(r=30);var a=this.toHsl(),i=360/r,n=[this];for(a.h=(a.h-(i*t>>1)+720)%360;--t;)a.h=(a.h+i)%360,n.push(new e(a));return n},e.prototype.complement=function(){var t=this.toHsl();return t.h=(t.h+180)%360,new e(t)},e.prototype.monochromatic=function(t){t===void 0&&(t=6);for(var r=this.toHsv(),a=r.h,i=r.s,n=r.v,f=[],h=1/t;t--;)f.push(new e({h:a,s:i,v:n})),n=(n+h)%1;return f},e.prototype.splitcomplement=function(){var t=this.toHsl(),r=t.h;return[this,new e({h:(r+72)%360,s:t.s,l:t.l}),new e({h:(r+216)%360,s:t.s,l:t.l})]},e.prototype.onBackground=function(t){var r=this.toRgb(),a=new e(t).toRgb();return new e({r:a.r+(r.r-a.r)*r.a,g:a.g+(r.g-a.g)*r.a,b:a.b+(r.b-a.b)*r.a})},e.prototype.triad=function(){return this.polyad(3)},e.prototype.tetrad=function(){return this.polyad(4)},e.prototype.polyad=function(t){for(var r=this.toHsl(),a=r.h,i=[this],n=360/t,f=1;fli{position:relative}.fa-li{left:calc(var(--fa-li-width, 2em) * -1);position:absolute;text-align:center;width:var(--fa-li-width, 2em);line-height:inherit}.fa-border{border-color:var(--fa-border-color, #eee);border-radius:var(--fa-border-radius, .1em);border-style:var(--fa-border-style, solid);border-width:var(--fa-border-width, .08em);padding:var(--fa-border-padding, .2em .25em .15em)}.fa-pull-left{float:left;margin-right:var(--fa-pull-margin, .3em)}.fa-pull-right{float:right;margin-left:var(--fa-pull-margin, .3em)}.fa-beat{-webkit-animation-name:fa-beat;animation-name:fa-beat;-webkit-animation-delay:var(--fa-animation-delay, 0);animation-delay:var(--fa-animation-delay, 0);-webkit-animation-direction:var(--fa-animation-direction, normal);animation-direction:var(--fa-animation-direction, normal);-webkit-animation-duration:var(--fa-animation-duration, 1s);animation-duration:var(--fa-animation-duration, 1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count, infinite);animation-iteration-count:var(--fa-animation-iteration-count, infinite);-webkit-animation-timing-function:var(--fa-animation-timing, ease-in-out);animation-timing-function:var(--fa-animation-timing, ease-in-out)}.fa-bounce{-webkit-animation-name:fa-bounce;animation-name:fa-bounce;-webkit-animation-delay:var(--fa-animation-delay, 0);animation-delay:var(--fa-animation-delay, 0);-webkit-animation-direction:var(--fa-animation-direction, normal);animation-direction:var(--fa-animation-direction, normal);-webkit-animation-duration:var(--fa-animation-duration, 1s);animation-duration:var(--fa-animation-duration, 1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count, infinite);animation-iteration-count:var(--fa-animation-iteration-count, infinite);-webkit-animation-timing-function:var(--fa-animation-timing, cubic-bezier(.28, .84, .42, 1));animation-timing-function:var(--fa-animation-timing, cubic-bezier(.28, .84, .42, 1))}.fa-fade{-webkit-animation-name:fa-fade;animation-name:fa-fade;-webkit-animation-delay:var(--fa-animation-delay, 0);animation-delay:var(--fa-animation-delay, 0);-webkit-animation-direction:var(--fa-animation-direction, normal);animation-direction:var(--fa-animation-direction, normal);-webkit-animation-duration:var(--fa-animation-duration, 1s);animation-duration:var(--fa-animation-duration, 1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count, infinite);animation-iteration-count:var(--fa-animation-iteration-count, infinite);-webkit-animation-timing-function:var(--fa-animation-timing, cubic-bezier(.4, 0, .6, 1));animation-timing-function:var(--fa-animation-timing, cubic-bezier(.4, 0, .6, 1))}.fa-beat-fade{-webkit-animation-name:fa-beat-fade;animation-name:fa-beat-fade;-webkit-animation-delay:var(--fa-animation-delay, 0);animation-delay:var(--fa-animation-delay, 0);-webkit-animation-direction:var(--fa-animation-direction, normal);animation-direction:var(--fa-animation-direction, normal);-webkit-animation-duration:var(--fa-animation-duration, 1s);animation-duration:var(--fa-animation-duration, 1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count, infinite);animation-iteration-count:var(--fa-animation-iteration-count, infinite);-webkit-animation-timing-function:var(--fa-animation-timing, cubic-bezier(.4, 0, .6, 1));animation-timing-function:var(--fa-animation-timing, cubic-bezier(.4, 0, .6, 1))}.fa-flip{-webkit-animation-name:fa-flip;animation-name:fa-flip;-webkit-animation-delay:var(--fa-animation-delay, 0);animation-delay:var(--fa-animation-delay, 0);-webkit-animation-direction:var(--fa-animation-direction, normal);animation-direction:var(--fa-animation-direction, normal);-webkit-animation-duration:var(--fa-animation-duration, 1s);animation-duration:var(--fa-animation-duration, 1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count, infinite);animation-iteration-count:var(--fa-animation-iteration-count, infinite);-webkit-animation-timing-function:var(--fa-animation-timing, ease-in-out);animation-timing-function:var(--fa-animation-timing, ease-in-out)}.fa-shake{-webkit-animation-name:fa-shake;animation-name:fa-shake;-webkit-animation-delay:var(--fa-animation-delay, 0);animation-delay:var(--fa-animation-delay, 0);-webkit-animation-direction:var(--fa-animation-direction, normal);animation-direction:var(--fa-animation-direction, normal);-webkit-animation-duration:var(--fa-animation-duration, 1s);animation-duration:var(--fa-animation-duration, 1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count, infinite);animation-iteration-count:var(--fa-animation-iteration-count, infinite);-webkit-animation-timing-function:var(--fa-animation-timing, linear);animation-timing-function:var(--fa-animation-timing, linear)}.fa-spin{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-delay:var(--fa-animation-delay, 0);animation-delay:var(--fa-animation-delay, 0);-webkit-animation-direction:var(--fa-animation-direction, normal);animation-direction:var(--fa-animation-direction, normal);-webkit-animation-duration:var(--fa-animation-duration, 2s);animation-duration:var(--fa-animation-duration, 2s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count, infinite);animation-iteration-count:var(--fa-animation-iteration-count, infinite);-webkit-animation-timing-function:var(--fa-animation-timing, linear);animation-timing-function:var(--fa-animation-timing, linear)}.fa-spin-reverse{--fa-animation-direction: reverse}.fa-pulse,.fa-spin-pulse{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-direction:var(--fa-animation-direction, normal);animation-direction:var(--fa-animation-direction, normal);-webkit-animation-duration:var(--fa-animation-duration, 1s);animation-duration:var(--fa-animation-duration, 1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count, infinite);animation-iteration-count:var(--fa-animation-iteration-count, infinite);-webkit-animation-timing-function:var(--fa-animation-timing, steps(8));animation-timing-function:var(--fa-animation-timing, steps(8))}@media (prefers-reduced-motion: reduce){.fa-beat,.fa-bounce,.fa-fade,.fa-beat-fade,.fa-flip,.fa-pulse,.fa-shake,.fa-spin,.fa-spin-pulse{-webkit-animation-delay:-1ms;animation-delay:-1ms;-webkit-animation-duration:1ms;animation-duration:1ms;-webkit-animation-iteration-count:1;animation-iteration-count:1;transition-delay:0s;transition-duration:0s}}@-webkit-keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale, 1.25));transform:scale(var(--fa-beat-scale, 1.25))}}@keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale, 1.25));transform:scale(var(--fa-beat-scale, 1.25))}}@-webkit-keyframes fa-bounce{0%{-webkit-transform:scale(1,1) translateY(0);transform:scale(1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x, 1.1),var(--fa-bounce-start-scale-y, .9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x, 1.1),var(--fa-bounce-start-scale-y, .9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x, .9),var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -.5em));transform:scale(var(--fa-bounce-jump-scale-x, .9),var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x, 1.05),var(--fa-bounce-land-scale-y, .95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x, 1.05),var(--fa-bounce-land-scale-y, .95)) translateY(0)}57%{-webkit-transform:scale(1,1) translateY(var(--fa-bounce-rebound, -.125em));transform:scale(1) translateY(var(--fa-bounce-rebound, -.125em))}64%{-webkit-transform:scale(1,1) translateY(0);transform:scale(1) translateY(0)}to{-webkit-transform:scale(1,1) translateY(0);transform:scale(1) translateY(0)}}@keyframes fa-bounce{0%{-webkit-transform:scale(1,1) translateY(0);transform:scale(1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x, 1.1),var(--fa-bounce-start-scale-y, .9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x, 1.1),var(--fa-bounce-start-scale-y, .9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x, .9),var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -.5em));transform:scale(var(--fa-bounce-jump-scale-x, .9),var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x, 1.05),var(--fa-bounce-land-scale-y, .95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x, 1.05),var(--fa-bounce-land-scale-y, .95)) translateY(0)}57%{-webkit-transform:scale(1,1) translateY(var(--fa-bounce-rebound, -.125em));transform:scale(1) translateY(var(--fa-bounce-rebound, -.125em))}64%{-webkit-transform:scale(1,1) translateY(0);transform:scale(1) translateY(0)}to{-webkit-transform:scale(1,1) translateY(0);transform:scale(1) translateY(0)}}@-webkit-keyframes fa-fade{50%{opacity:var(--fa-fade-opacity, .4)}}@keyframes fa-fade{50%{opacity:var(--fa-fade-opacity, .4)}}@-webkit-keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity, .4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale, 1.125));transform:scale(var(--fa-beat-fade-scale, 1.125))}}@keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity, .4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale, 1.125));transform:scale(var(--fa-beat-fade-scale, 1.125))}}@-webkit-keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x, 0),var(--fa-flip-y, 1),var(--fa-flip-z, 0),var(--fa-flip-angle, -180deg));transform:rotate3d(var(--fa-flip-x, 0),var(--fa-flip-y, 1),var(--fa-flip-z, 0),var(--fa-flip-angle, -180deg))}}@keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x, 0),var(--fa-flip-y, 1),var(--fa-flip-z, 0),var(--fa-flip-angle, -180deg));transform:rotate3d(var(--fa-flip-x, 0),var(--fa-flip-y, 1),var(--fa-flip-z, 0),var(--fa-flip-angle, -180deg))}}@-webkit-keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}8%,24%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}40%,to{-webkit-transform:rotate(0deg);transform:rotate(0)}}@keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}8%,24%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}40%,to{-webkit-transform:rotate(0deg);transform:rotate(0)}}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.fa-rotate-90{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-webkit-transform:scale(-1,1);transform:scaleX(-1)}.fa-flip-vertical{-webkit-transform:scale(1,-1);transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1,-1);transform:scale(-1)}.fa-rotate-by{-webkit-transform:rotate(var(--fa-rotate-angle, none));transform:rotate(var(--fa-rotate-angle, none))}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%;z-index:var(--fa-stack-z-index, auto)}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:var(--fa-inverse, #fff)}.fa-0:before{content:"0"}.fa-1:before{content:"1"}.fa-2:before{content:"2"}.fa-3:before{content:"3"}.fa-4:before{content:"4"}.fa-5:before{content:"5"}.fa-6:before{content:"6"}.fa-7:before{content:"7"}.fa-8:before{content:"8"}.fa-9:before{content:"9"}.fa-a:before{content:"A"}.fa-address-book:before{content:"\f2b9"}.fa-contact-book:before{content:"\f2b9"}.fa-address-card:before{content:"\f2bb"}.fa-contact-card:before{content:"\f2bb"}.fa-vcard:before{content:"\f2bb"}.fa-align-center:before{content:"\f037"}.fa-align-justify:before{content:"\f039"}.fa-align-left:before{content:"\f036"}.fa-align-right:before{content:"\f038"}.fa-anchor:before{content:"\f13d"}.fa-anchor-circle-check:before{content:"\e4aa"}.fa-anchor-circle-exclamation:before{content:"\e4ab"}.fa-anchor-circle-xmark:before{content:"\e4ac"}.fa-anchor-lock:before{content:"\e4ad"}.fa-angle-down:before{content:"\f107"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angles-down:before{content:"\f103"}.fa-angle-double-down:before{content:"\f103"}.fa-angles-left:before{content:"\f100"}.fa-angle-double-left:before{content:"\f100"}.fa-angles-right:before{content:"\f101"}.fa-angle-double-right:before{content:"\f101"}.fa-angles-up:before{content:"\f102"}.fa-angle-double-up:before{content:"\f102"}.fa-ankh:before{content:"\f644"}.fa-apple-whole:before{content:"\f5d1"}.fa-apple-alt:before{content:"\f5d1"}.fa-archway:before{content:"\f557"}.fa-arrow-down:before{content:"\f063"}.fa-arrow-down-1-9:before{content:"\f162"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-down:before{content:"\f162"}.fa-arrow-down-9-1:before{content:"\f886"}.fa-sort-numeric-desc:before{content:"\f886"}.fa-sort-numeric-down-alt:before{content:"\f886"}.fa-arrow-down-a-z:before{content:"\f15d"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-down:before{content:"\f15d"}.fa-arrow-down-long:before{content:"\f175"}.fa-long-arrow-down:before{content:"\f175"}.fa-arrow-down-short-wide:before{content:"\f884"}.fa-sort-amount-desc:before{content:"\f884"}.fa-sort-amount-down-alt:before{content:"\f884"}.fa-arrow-down-up-across-line:before{content:"\e4af"}.fa-arrow-down-up-lock:before{content:"\e4b0"}.fa-arrow-down-wide-short:before{content:"\f160"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-down:before{content:"\f160"}.fa-arrow-down-z-a:before{content:"\f881"}.fa-sort-alpha-desc:before{content:"\f881"}.fa-sort-alpha-down-alt:before{content:"\f881"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-left-long:before{content:"\f177"}.fa-long-arrow-left:before{content:"\f177"}.fa-arrow-pointer:before{content:"\f245"}.fa-mouse-pointer:before{content:"\f245"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-right-arrow-left:before{content:"\f0ec"}.fa-exchange:before{content:"\f0ec"}.fa-arrow-right-from-bracket:before{content:"\f08b"}.fa-sign-out:before{content:"\f08b"}.fa-arrow-right-long:before{content:"\f178"}.fa-long-arrow-right:before{content:"\f178"}.fa-arrow-right-to-bracket:before{content:"\f090"}.fa-sign-in:before{content:"\f090"}.fa-arrow-right-to-city:before{content:"\e4b3"}.fa-arrow-rotate-left:before{content:"\f0e2"}.fa-arrow-left-rotate:before{content:"\f0e2"}.fa-arrow-rotate-back:before{content:"\f0e2"}.fa-arrow-rotate-backward:before{content:"\f0e2"}.fa-undo:before{content:"\f0e2"}.fa-arrow-rotate-right:before{content:"\f01e"}.fa-arrow-right-rotate:before{content:"\f01e"}.fa-arrow-rotate-forward:before{content:"\f01e"}.fa-redo:before{content:"\f01e"}.fa-arrow-trend-down:before{content:"\e097"}.fa-arrow-trend-up:before{content:"\e098"}.fa-arrow-turn-down:before{content:"\f149"}.fa-level-down:before{content:"\f149"}.fa-arrow-turn-up:before{content:"\f148"}.fa-level-up:before{content:"\f148"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-up-1-9:before{content:"\f163"}.fa-sort-numeric-up:before{content:"\f163"}.fa-arrow-up-9-1:before{content:"\f887"}.fa-sort-numeric-up-alt:before{content:"\f887"}.fa-arrow-up-a-z:before{content:"\f15e"}.fa-sort-alpha-up:before{content:"\f15e"}.fa-arrow-up-from-bracket:before{content:"\e09a"}.fa-arrow-up-from-ground-water:before{content:"\e4b5"}.fa-arrow-up-from-water-pump:before{content:"\e4b6"}.fa-arrow-up-long:before{content:"\f176"}.fa-long-arrow-up:before{content:"\f176"}.fa-arrow-up-right-dots:before{content:"\e4b7"}.fa-arrow-up-right-from-square:before{content:"\f08e"}.fa-external-link:before{content:"\f08e"}.fa-arrow-up-short-wide:before{content:"\f885"}.fa-sort-amount-up-alt:before{content:"\f885"}.fa-arrow-up-wide-short:before{content:"\f161"}.fa-sort-amount-up:before{content:"\f161"}.fa-arrow-up-z-a:before{content:"\f882"}.fa-sort-alpha-up-alt:before{content:"\f882"}.fa-arrows-down-to-line:before{content:"\e4b8"}.fa-arrows-down-to-people:before{content:"\e4b9"}.fa-arrows-left-right:before{content:"\f07e"}.fa-arrows-h:before{content:"\f07e"}.fa-arrows-left-right-to-line:before{content:"\e4ba"}.fa-arrows-rotate:before{content:"\f021"}.fa-refresh:before{content:"\f021"}.fa-sync:before{content:"\f021"}.fa-arrows-spin:before{content:"\e4bb"}.fa-arrows-split-up-and-left:before{content:"\e4bc"}.fa-arrows-to-circle:before{content:"\e4bd"}.fa-arrows-to-dot:before{content:"\e4be"}.fa-arrows-to-eye:before{content:"\e4bf"}.fa-arrows-turn-right:before{content:"\e4c0"}.fa-arrows-turn-to-dots:before{content:"\e4c1"}.fa-arrows-up-down:before{content:"\f07d"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-up-down-left-right:before{content:"\f047"}.fa-arrows:before{content:"\f047"}.fa-arrows-up-to-line:before{content:"\e4c2"}.fa-asterisk:before{content:"*"}.fa-at:before{content:"@"}.fa-atom:before{content:"\f5d2"}.fa-audio-description:before{content:"\f29e"}.fa-austral-sign:before{content:"\e0a9"}.fa-award:before{content:"\f559"}.fa-b:before{content:"B"}.fa-baby:before{content:"\f77c"}.fa-baby-carriage:before{content:"\f77d"}.fa-carriage-baby:before{content:"\f77d"}.fa-backward:before{content:"\f04a"}.fa-backward-fast:before{content:"\f049"}.fa-fast-backward:before{content:"\f049"}.fa-backward-step:before{content:"\f048"}.fa-step-backward:before{content:"\f048"}.fa-bacon:before{content:"\f7e5"}.fa-bacteria:before{content:"\e059"}.fa-bacterium:before{content:"\e05a"}.fa-bag-shopping:before{content:"\f290"}.fa-shopping-bag:before{content:"\f290"}.fa-bahai:before{content:"\f666"}.fa-baht-sign:before{content:"\e0ac"}.fa-ban:before{content:"\f05e"}.fa-cancel:before{content:"\f05e"}.fa-ban-smoking:before{content:"\f54d"}.fa-smoking-ban:before{content:"\f54d"}.fa-bandage:before{content:"\f462"}.fa-band-aid:before{content:"\f462"}.fa-barcode:before{content:"\f02a"}.fa-bars:before{content:"\f0c9"}.fa-navicon:before{content:"\f0c9"}.fa-bars-progress:before{content:"\f828"}.fa-tasks-alt:before{content:"\f828"}.fa-bars-staggered:before{content:"\f550"}.fa-reorder:before{content:"\f550"}.fa-stream:before{content:"\f550"}.fa-baseball:before{content:"\f433"}.fa-baseball-ball:before{content:"\f433"}.fa-baseball-bat-ball:before{content:"\f432"}.fa-basket-shopping:before{content:"\f291"}.fa-shopping-basket:before{content:"\f291"}.fa-basketball:before{content:"\f434"}.fa-basketball-ball:before{content:"\f434"}.fa-bath:before{content:"\f2cd"}.fa-bathtub:before{content:"\f2cd"}.fa-battery-empty:before{content:"\f244"}.fa-battery-0:before{content:"\f244"}.fa-battery-full:before{content:"\f240"}.fa-battery:before{content:"\f240"}.fa-battery-5:before{content:"\f240"}.fa-battery-half:before{content:"\f242"}.fa-battery-3:before{content:"\f242"}.fa-battery-quarter:before{content:"\f243"}.fa-battery-2:before{content:"\f243"}.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-4:before{content:"\f241"}.fa-bed:before{content:"\f236"}.fa-bed-pulse:before{content:"\f487"}.fa-procedures:before{content:"\f487"}.fa-beer-mug-empty:before{content:"\f0fc"}.fa-beer:before{content:"\f0fc"}.fa-bell:before{content:"\f0f3"}.fa-bell-concierge:before{content:"\f562"}.fa-concierge-bell:before{content:"\f562"}.fa-bell-slash:before{content:"\f1f6"}.fa-bezier-curve:before{content:"\f55b"}.fa-bicycle:before{content:"\f206"}.fa-binoculars:before{content:"\f1e5"}.fa-biohazard:before{content:"\f780"}.fa-bitcoin-sign:before{content:"\e0b4"}.fa-blender:before{content:"\f517"}.fa-blender-phone:before{content:"\f6b6"}.fa-blog:before{content:"\f781"}.fa-bold:before{content:"\f032"}.fa-bolt:before{content:"\f0e7"}.fa-zap:before{content:"\f0e7"}.fa-bolt-lightning:before{content:"\e0b7"}.fa-bomb:before{content:"\f1e2"}.fa-bone:before{content:"\f5d7"}.fa-bong:before{content:"\f55c"}.fa-book:before{content:"\f02d"}.fa-book-atlas:before{content:"\f558"}.fa-atlas:before{content:"\f558"}.fa-book-bible:before{content:"\f647"}.fa-bible:before{content:"\f647"}.fa-book-bookmark:before{content:"\e0bb"}.fa-book-journal-whills:before{content:"\f66a"}.fa-journal-whills:before{content:"\f66a"}.fa-book-medical:before{content:"\f7e6"}.fa-book-open:before{content:"\f518"}.fa-book-open-reader:before{content:"\f5da"}.fa-book-reader:before{content:"\f5da"}.fa-book-quran:before{content:"\f687"}.fa-quran:before{content:"\f687"}.fa-book-skull:before{content:"\f6b7"}.fa-book-dead:before{content:"\f6b7"}.fa-bookmark:before{content:"\f02e"}.fa-border-all:before{content:"\f84c"}.fa-border-none:before{content:"\f850"}.fa-border-top-left:before{content:"\f853"}.fa-border-style:before{content:"\f853"}.fa-bore-hole:before{content:"\e4c3"}.fa-bottle-droplet:before{content:"\e4c4"}.fa-bottle-water:before{content:"\e4c5"}.fa-bowl-food:before{content:"\e4c6"}.fa-bowl-rice:before{content:"\e2eb"}.fa-bowling-ball:before{content:"\f436"}.fa-box:before{content:"\f466"}.fa-box-archive:before{content:"\f187"}.fa-archive:before{content:"\f187"}.fa-box-open:before{content:"\f49e"}.fa-box-tissue:before{content:"\e05b"}.fa-boxes-packing:before{content:"\e4c7"}.fa-boxes-stacked:before{content:"\f468"}.fa-boxes:before{content:"\f468"}.fa-boxes-alt:before{content:"\f468"}.fa-braille:before{content:"\f2a1"}.fa-brain:before{content:"\f5dc"}.fa-brazilian-real-sign:before{content:"\e46c"}.fa-bread-slice:before{content:"\f7ec"}.fa-bridge:before{content:"\e4c8"}.fa-bridge-circle-check:before{content:"\e4c9"}.fa-bridge-circle-exclamation:before{content:"\e4ca"}.fa-bridge-circle-xmark:before{content:"\e4cb"}.fa-bridge-lock:before{content:"\e4cc"}.fa-bridge-water:before{content:"\e4ce"}.fa-briefcase:before{content:"\f0b1"}.fa-briefcase-medical:before{content:"\f469"}.fa-broom:before{content:"\f51a"}.fa-broom-ball:before{content:"\f458"}.fa-quidditch:before{content:"\f458"}.fa-quidditch-broom-ball:before{content:"\f458"}.fa-brush:before{content:"\f55d"}.fa-bucket:before{content:"\e4cf"}.fa-bug:before{content:"\f188"}.fa-bug-slash:before{content:"\e490"}.fa-bugs:before{content:"\e4d0"}.fa-building:before{content:"\f1ad"}.fa-building-circle-arrow-right:before{content:"\e4d1"}.fa-building-circle-check:before{content:"\e4d2"}.fa-building-circle-exclamation:before{content:"\e4d3"}.fa-building-circle-xmark:before{content:"\e4d4"}.fa-building-columns:before{content:"\f19c"}.fa-bank:before{content:"\f19c"}.fa-institution:before{content:"\f19c"}.fa-museum:before{content:"\f19c"}.fa-university:before{content:"\f19c"}.fa-building-flag:before{content:"\e4d5"}.fa-building-lock:before{content:"\e4d6"}.fa-building-ngo:before{content:"\e4d7"}.fa-building-shield:before{content:"\e4d8"}.fa-building-un:before{content:"\e4d9"}.fa-building-user:before{content:"\e4da"}.fa-building-wheat:before{content:"\e4db"}.fa-bullhorn:before{content:"\f0a1"}.fa-bullseye:before{content:"\f140"}.fa-burger:before{content:"\f805"}.fa-hamburger:before{content:"\f805"}.fa-burst:before{content:"\e4dc"}.fa-bus:before{content:"\f207"}.fa-bus-simple:before{content:"\f55e"}.fa-bus-alt:before{content:"\f55e"}.fa-business-time:before{content:"\f64a"}.fa-briefcase-clock:before{content:"\f64a"}.fa-c:before{content:"C"}.fa-cake-candles:before{content:"\f1fd"}.fa-birthday-cake:before{content:"\f1fd"}.fa-cake:before{content:"\f1fd"}.fa-calculator:before{content:"\f1ec"}.fa-calendar:before{content:"\f133"}.fa-calendar-check:before{content:"\f274"}.fa-calendar-day:before{content:"\f783"}.fa-calendar-days:before{content:"\f073"}.fa-calendar-alt:before{content:"\f073"}.fa-calendar-minus:before{content:"\f272"}.fa-calendar-plus:before{content:"\f271"}.fa-calendar-week:before{content:"\f784"}.fa-calendar-xmark:before{content:"\f273"}.fa-calendar-times:before{content:"\f273"}.fa-camera:before{content:"\f030"}.fa-camera-alt:before{content:"\f030"}.fa-camera-retro:before{content:"\f083"}.fa-camera-rotate:before{content:"\e0d8"}.fa-campground:before{content:"\f6bb"}.fa-candy-cane:before{content:"\f786"}.fa-cannabis:before{content:"\f55f"}.fa-capsules:before{content:"\f46b"}.fa-car:before{content:"\f1b9"}.fa-automobile:before{content:"\f1b9"}.fa-car-battery:before{content:"\f5df"}.fa-battery-car:before{content:"\f5df"}.fa-car-burst:before{content:"\f5e1"}.fa-car-crash:before{content:"\f5e1"}.fa-car-on:before{content:"\e4dd"}.fa-car-rear:before{content:"\f5de"}.fa-car-alt:before{content:"\f5de"}.fa-car-side:before{content:"\f5e4"}.fa-car-tunnel:before{content:"\e4de"}.fa-caravan:before{content:"\f8ff"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-caret-up:before{content:"\f0d8"}.fa-carrot:before{content:"\f787"}.fa-cart-arrow-down:before{content:"\f218"}.fa-cart-flatbed:before{content:"\f474"}.fa-dolly-flatbed:before{content:"\f474"}.fa-cart-flatbed-suitcase:before{content:"\f59d"}.fa-luggage-cart:before{content:"\f59d"}.fa-cart-plus:before{content:"\f217"}.fa-cart-shopping:before{content:"\f07a"}.fa-shopping-cart:before{content:"\f07a"}.fa-cash-register:before{content:"\f788"}.fa-cat:before{content:"\f6be"}.fa-cedi-sign:before{content:"\e0df"}.fa-cent-sign:before{content:"\e3f5"}.fa-certificate:before{content:"\f0a3"}.fa-chair:before{content:"\f6c0"}.fa-chalkboard:before{content:"\f51b"}.fa-blackboard:before{content:"\f51b"}.fa-chalkboard-user:before{content:"\f51c"}.fa-chalkboard-teacher:before{content:"\f51c"}.fa-champagne-glasses:before{content:"\f79f"}.fa-glass-cheers:before{content:"\f79f"}.fa-charging-station:before{content:"\f5e7"}.fa-chart-area:before{content:"\f1fe"}.fa-area-chart:before{content:"\f1fe"}.fa-chart-bar:before{content:"\f080"}.fa-bar-chart:before{content:"\f080"}.fa-chart-column:before{content:"\e0e3"}.fa-chart-gantt:before{content:"\e0e4"}.fa-chart-line:before{content:"\f201"}.fa-line-chart:before{content:"\f201"}.fa-chart-pie:before{content:"\f200"}.fa-pie-chart:before{content:"\f200"}.fa-chart-simple:before{content:"\e473"}.fa-check:before{content:"\f00c"}.fa-check-double:before{content:"\f560"}.fa-check-to-slot:before{content:"\f772"}.fa-vote-yea:before{content:"\f772"}.fa-cheese:before{content:"\f7ef"}.fa-chess:before{content:"\f439"}.fa-chess-bishop:before{content:"\f43a"}.fa-chess-board:before{content:"\f43c"}.fa-chess-king:before{content:"\f43f"}.fa-chess-knight:before{content:"\f441"}.fa-chess-pawn:before{content:"\f443"}.fa-chess-queen:before{content:"\f445"}.fa-chess-rook:before{content:"\f447"}.fa-chevron-down:before{content:"\f078"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-chevron-up:before{content:"\f077"}.fa-child:before{content:"\f1ae"}.fa-child-dress:before{content:"\e59c"}.fa-child-reaching:before{content:"\e59d"}.fa-child-rifle:before{content:"\e4e0"}.fa-children:before{content:"\e4e1"}.fa-church:before{content:"\f51d"}.fa-circle:before{content:"\f111"}.fa-circle-arrow-down:before{content:"\f0ab"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-circle-arrow-left:before{content:"\f0a8"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-circle-arrow-right:before{content:"\f0a9"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-circle-arrow-up:before{content:"\f0aa"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-circle-check:before{content:"\f058"}.fa-check-circle:before{content:"\f058"}.fa-circle-chevron-down:before{content:"\f13a"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-circle-chevron-left:before{content:"\f137"}.fa-chevron-circle-left:before{content:"\f137"}.fa-circle-chevron-right:before{content:"\f138"}.fa-chevron-circle-right:before{content:"\f138"}.fa-circle-chevron-up:before{content:"\f139"}.fa-chevron-circle-up:before{content:"\f139"}.fa-circle-dollar-to-slot:before{content:"\f4b9"}.fa-donate:before{content:"\f4b9"}.fa-circle-dot:before{content:"\f192"}.fa-dot-circle:before{content:"\f192"}.fa-circle-down:before{content:"\f358"}.fa-arrow-alt-circle-down:before{content:"\f358"}.fa-circle-exclamation:before{content:"\f06a"}.fa-exclamation-circle:before{content:"\f06a"}.fa-circle-h:before{content:"\f47e"}.fa-hospital-symbol:before{content:"\f47e"}.fa-circle-half-stroke:before{content:"\f042"}.fa-adjust:before{content:"\f042"}.fa-circle-info:before{content:"\f05a"}.fa-info-circle:before{content:"\f05a"}.fa-circle-left:before{content:"\f359"}.fa-arrow-alt-circle-left:before{content:"\f359"}.fa-circle-minus:before{content:"\f056"}.fa-minus-circle:before{content:"\f056"}.fa-circle-nodes:before{content:"\e4e2"}.fa-circle-notch:before{content:"\f1ce"}.fa-circle-pause:before{content:"\f28b"}.fa-pause-circle:before{content:"\f28b"}.fa-circle-play:before{content:"\f144"}.fa-play-circle:before{content:"\f144"}.fa-circle-plus:before{content:"\f055"}.fa-plus-circle:before{content:"\f055"}.fa-circle-question:before{content:"\f059"}.fa-question-circle:before{content:"\f059"}.fa-circle-radiation:before{content:"\f7ba"}.fa-radiation-alt:before{content:"\f7ba"}.fa-circle-right:before{content:"\f35a"}.fa-arrow-alt-circle-right:before{content:"\f35a"}.fa-circle-stop:before{content:"\f28d"}.fa-stop-circle:before{content:"\f28d"}.fa-circle-up:before{content:"\f35b"}.fa-arrow-alt-circle-up:before{content:"\f35b"}.fa-circle-user:before{content:"\f2bd"}.fa-user-circle:before{content:"\f2bd"}.fa-circle-xmark:before{content:"\f057"}.fa-times-circle:before{content:"\f057"}.fa-xmark-circle:before{content:"\f057"}.fa-city:before{content:"\f64f"}.fa-clapperboard:before{content:"\e131"}.fa-clipboard:before{content:"\f328"}.fa-clipboard-check:before{content:"\f46c"}.fa-clipboard-list:before{content:"\f46d"}.fa-clipboard-question:before{content:"\e4e3"}.fa-clipboard-user:before{content:"\f7f3"}.fa-clock:before{content:"\f017"}.fa-clock-four:before{content:"\f017"}.fa-clock-rotate-left:before{content:"\f1da"}.fa-history:before{content:"\f1da"}.fa-clone:before{content:"\f24d"}.fa-closed-captioning:before{content:"\f20a"}.fa-cloud:before{content:"\f0c2"}.fa-cloud-arrow-down:before{content:"\f0ed"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-download-alt:before{content:"\f0ed"}.fa-cloud-arrow-up:before{content:"\f0ee"}.fa-cloud-upload:before{content:"\f0ee"}.fa-cloud-upload-alt:before{content:"\f0ee"}.fa-cloud-bolt:before{content:"\f76c"}.fa-thunderstorm:before{content:"\f76c"}.fa-cloud-meatball:before{content:"\f73b"}.fa-cloud-moon:before{content:"\f6c3"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-cloud-rain:before{content:"\f73d"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-cloud-showers-water:before{content:"\e4e4"}.fa-cloud-sun:before{content:"\f6c4"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-clover:before{content:"\e139"}.fa-code:before{content:"\f121"}.fa-code-branch:before{content:"\f126"}.fa-code-commit:before{content:"\f386"}.fa-code-compare:before{content:"\e13a"}.fa-code-fork:before{content:"\e13b"}.fa-code-merge:before{content:"\f387"}.fa-code-pull-request:before{content:"\e13c"}.fa-coins:before{content:"\f51e"}.fa-colon-sign:before{content:"\e140"}.fa-comment:before{content:"\f075"}.fa-comment-dollar:before{content:"\f651"}.fa-comment-dots:before{content:"\f4ad"}.fa-commenting:before{content:"\f4ad"}.fa-comment-medical:before{content:"\f7f5"}.fa-comment-slash:before{content:"\f4b3"}.fa-comment-sms:before{content:"\f7cd"}.fa-sms:before{content:"\f7cd"}.fa-comments:before{content:"\f086"}.fa-comments-dollar:before{content:"\f653"}.fa-compact-disc:before{content:"\f51f"}.fa-compass:before{content:"\f14e"}.fa-compass-drafting:before{content:"\f568"}.fa-drafting-compass:before{content:"\f568"}.fa-compress:before{content:"\f066"}.fa-computer:before{content:"\e4e5"}.fa-computer-mouse:before{content:"\f8cc"}.fa-mouse:before{content:"\f8cc"}.fa-cookie:before{content:"\f563"}.fa-cookie-bite:before{content:"\f564"}.fa-copy:before{content:"\f0c5"}.fa-copyright:before{content:"\f1f9"}.fa-couch:before{content:"\f4b8"}.fa-cow:before{content:"\f6c8"}.fa-credit-card:before{content:"\f09d"}.fa-credit-card-alt:before{content:"\f09d"}.fa-crop:before{content:"\f125"}.fa-crop-simple:before{content:"\f565"}.fa-crop-alt:before{content:"\f565"}.fa-cross:before{content:"\f654"}.fa-crosshairs:before{content:"\f05b"}.fa-crow:before{content:"\f520"}.fa-crown:before{content:"\f521"}.fa-crutch:before{content:"\f7f7"}.fa-cruzeiro-sign:before{content:"\e152"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-cubes-stacked:before{content:"\e4e6"}.fa-d:before{content:"D"}.fa-database:before{content:"\f1c0"}.fa-delete-left:before{content:"\f55a"}.fa-backspace:before{content:"\f55a"}.fa-democrat:before{content:"\f747"}.fa-desktop:before{content:"\f390"}.fa-desktop-alt:before{content:"\f390"}.fa-dharmachakra:before{content:"\f655"}.fa-diagram-next:before{content:"\e476"}.fa-diagram-predecessor:before{content:"\e477"}.fa-diagram-project:before{content:"\f542"}.fa-project-diagram:before{content:"\f542"}.fa-diagram-successor:before{content:"\e47a"}.fa-diamond:before{content:"\f219"}.fa-diamond-turn-right:before{content:"\f5eb"}.fa-directions:before{content:"\f5eb"}.fa-dice:before{content:"\f522"}.fa-dice-d20:before{content:"\f6cf"}.fa-dice-d6:before{content:"\f6d1"}.fa-dice-five:before{content:"\f523"}.fa-dice-four:before{content:"\f524"}.fa-dice-one:before{content:"\f525"}.fa-dice-six:before{content:"\f526"}.fa-dice-three:before{content:"\f527"}.fa-dice-two:before{content:"\f528"}.fa-disease:before{content:"\f7fa"}.fa-display:before{content:"\e163"}.fa-divide:before{content:"\f529"}.fa-dna:before{content:"\f471"}.fa-dog:before{content:"\f6d3"}.fa-dollar-sign:before{content:"$"}.fa-dollar:before{content:"$"}.fa-usd:before{content:"$"}.fa-dolly:before{content:"\f472"}.fa-dolly-box:before{content:"\f472"}.fa-dong-sign:before{content:"\e169"}.fa-door-closed:before{content:"\f52a"}.fa-door-open:before{content:"\f52b"}.fa-dove:before{content:"\f4ba"}.fa-down-left-and-up-right-to-center:before{content:"\f422"}.fa-compress-alt:before{content:"\f422"}.fa-down-long:before{content:"\f309"}.fa-long-arrow-alt-down:before{content:"\f309"}.fa-download:before{content:"\f019"}.fa-dragon:before{content:"\f6d5"}.fa-draw-polygon:before{content:"\f5ee"}.fa-droplet:before{content:"\f043"}.fa-tint:before{content:"\f043"}.fa-droplet-slash:before{content:"\f5c7"}.fa-tint-slash:before{content:"\f5c7"}.fa-drum:before{content:"\f569"}.fa-drum-steelpan:before{content:"\f56a"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-dumbbell:before{content:"\f44b"}.fa-dumpster:before{content:"\f793"}.fa-dumpster-fire:before{content:"\f794"}.fa-dungeon:before{content:"\f6d9"}.fa-e:before{content:"E"}.fa-ear-deaf:before{content:"\f2a4"}.fa-deaf:before{content:"\f2a4"}.fa-deafness:before{content:"\f2a4"}.fa-hard-of-hearing:before{content:"\f2a4"}.fa-ear-listen:before{content:"\f2a2"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-earth-africa:before{content:"\f57c"}.fa-globe-africa:before{content:"\f57c"}.fa-earth-americas:before{content:"\f57d"}.fa-earth:before{content:"\f57d"}.fa-earth-america:before{content:"\f57d"}.fa-globe-americas:before{content:"\f57d"}.fa-earth-asia:before{content:"\f57e"}.fa-globe-asia:before{content:"\f57e"}.fa-earth-europe:before{content:"\f7a2"}.fa-globe-europe:before{content:"\f7a2"}.fa-earth-oceania:before{content:"\e47b"}.fa-globe-oceania:before{content:"\e47b"}.fa-egg:before{content:"\f7fb"}.fa-eject:before{content:"\f052"}.fa-elevator:before{content:"\e16d"}.fa-ellipsis:before{content:"\f141"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-vertical:before{content:"\f142"}.fa-ellipsis-v:before{content:"\f142"}.fa-envelope:before{content:"\f0e0"}.fa-envelope-circle-check:before{content:"\e4e8"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-text:before{content:"\f658"}.fa-envelopes-bulk:before{content:"\f674"}.fa-mail-bulk:before{content:"\f674"}.fa-equals:before{content:"="}.fa-eraser:before{content:"\f12d"}.fa-ethernet:before{content:"\f796"}.fa-euro-sign:before{content:"\f153"}.fa-eur:before{content:"\f153"}.fa-euro:before{content:"\f153"}.fa-exclamation:before{content:"!"}.fa-expand:before{content:"\f065"}.fa-explosion:before{content:"\e4e9"}.fa-eye:before{content:"\f06e"}.fa-eye-dropper:before{content:"\f1fb"}.fa-eye-dropper-empty:before{content:"\f1fb"}.fa-eyedropper:before{content:"\f1fb"}.fa-eye-low-vision:before{content:"\f2a8"}.fa-low-vision:before{content:"\f2a8"}.fa-eye-slash:before{content:"\f070"}.fa-f:before{content:"F"}.fa-face-angry:before{content:"\f556"}.fa-angry:before{content:"\f556"}.fa-face-dizzy:before{content:"\f567"}.fa-dizzy:before{content:"\f567"}.fa-face-flushed:before{content:"\f579"}.fa-flushed:before{content:"\f579"}.fa-face-frown:before{content:"\f119"}.fa-frown:before{content:"\f119"}.fa-face-frown-open:before{content:"\f57a"}.fa-frown-open:before{content:"\f57a"}.fa-face-grimace:before{content:"\f57f"}.fa-grimace:before{content:"\f57f"}.fa-face-grin:before{content:"\f580"}.fa-grin:before{content:"\f580"}.fa-face-grin-beam:before{content:"\f582"}.fa-grin-beam:before{content:"\f582"}.fa-face-grin-beam-sweat:before{content:"\f583"}.fa-grin-beam-sweat:before{content:"\f583"}.fa-face-grin-hearts:before{content:"\f584"}.fa-grin-hearts:before{content:"\f584"}.fa-face-grin-squint:before{content:"\f585"}.fa-grin-squint:before{content:"\f585"}.fa-face-grin-squint-tears:before{content:"\f586"}.fa-grin-squint-tears:before{content:"\f586"}.fa-face-grin-stars:before{content:"\f587"}.fa-grin-stars:before{content:"\f587"}.fa-face-grin-tears:before{content:"\f588"}.fa-grin-tears:before{content:"\f588"}.fa-face-grin-tongue:before{content:"\f589"}.fa-grin-tongue:before{content:"\f589"}.fa-face-grin-tongue-squint:before{content:"\f58a"}.fa-grin-tongue-squint:before{content:"\f58a"}.fa-face-grin-tongue-wink:before{content:"\f58b"}.fa-grin-tongue-wink:before{content:"\f58b"}.fa-face-grin-wide:before{content:"\f581"}.fa-grin-alt:before{content:"\f581"}.fa-face-grin-wink:before{content:"\f58c"}.fa-grin-wink:before{content:"\f58c"}.fa-face-kiss:before{content:"\f596"}.fa-kiss:before{content:"\f596"}.fa-face-kiss-beam:before{content:"\f597"}.fa-kiss-beam:before{content:"\f597"}.fa-face-kiss-wink-heart:before{content:"\f598"}.fa-kiss-wink-heart:before{content:"\f598"}.fa-face-laugh:before{content:"\f599"}.fa-laugh:before{content:"\f599"}.fa-face-laugh-beam:before{content:"\f59a"}.fa-laugh-beam:before{content:"\f59a"}.fa-face-laugh-squint:before{content:"\f59b"}.fa-laugh-squint:before{content:"\f59b"}.fa-face-laugh-wink:before{content:"\f59c"}.fa-laugh-wink:before{content:"\f59c"}.fa-face-meh:before{content:"\f11a"}.fa-meh:before{content:"\f11a"}.fa-face-meh-blank:before{content:"\f5a4"}.fa-meh-blank:before{content:"\f5a4"}.fa-face-rolling-eyes:before{content:"\f5a5"}.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-face-sad-cry:before{content:"\f5b3"}.fa-sad-cry:before{content:"\f5b3"}.fa-face-sad-tear:before{content:"\f5b4"}.fa-sad-tear:before{content:"\f5b4"}.fa-face-smile:before{content:"\f118"}.fa-smile:before{content:"\f118"}.fa-face-smile-beam:before{content:"\f5b8"}.fa-smile-beam:before{content:"\f5b8"}.fa-face-smile-wink:before{content:"\f4da"}.fa-smile-wink:before{content:"\f4da"}.fa-face-surprise:before{content:"\f5c2"}.fa-surprise:before{content:"\f5c2"}.fa-face-tired:before{content:"\f5c8"}.fa-tired:before{content:"\f5c8"}.fa-fan:before{content:"\f863"}.fa-faucet:before{content:"\e005"}.fa-faucet-drip:before{content:"\e006"}.fa-fax:before{content:"\f1ac"}.fa-feather:before{content:"\f52d"}.fa-feather-pointed:before{content:"\f56b"}.fa-feather-alt:before{content:"\f56b"}.fa-ferry:before{content:"\e4ea"}.fa-file:before{content:"\f15b"}.fa-file-arrow-down:before{content:"\f56d"}.fa-file-download:before{content:"\f56d"}.fa-file-arrow-up:before{content:"\f574"}.fa-file-upload:before{content:"\f574"}.fa-file-audio:before{content:"\f1c7"}.fa-file-circle-check:before{content:"\e493"}.fa-file-circle-exclamation:before{content:"\e4eb"}.fa-file-circle-minus:before{content:"\e4ed"}.fa-file-circle-plus:before{content:"\e4ee"}.fa-file-circle-question:before{content:"\e4ef"}.fa-file-circle-xmark:before{content:"\e494"}.fa-file-code:before{content:"\f1c9"}.fa-file-contract:before{content:"\f56c"}.fa-file-csv:before{content:"\f6dd"}.fa-file-excel:before{content:"\f1c3"}.fa-file-export:before{content:"\f56e"}.fa-arrow-right-from-file:before{content:"\f56e"}.fa-file-image:before{content:"\f1c5"}.fa-file-import:before{content:"\f56f"}.fa-arrow-right-to-file:before{content:"\f56f"}.fa-file-invoice:before{content:"\f570"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-file-lines:before{content:"\f15c"}.fa-file-alt:before{content:"\f15c"}.fa-file-text:before{content:"\f15c"}.fa-file-medical:before{content:"\f477"}.fa-file-pdf:before{content:"\f1c1"}.fa-file-pen:before{content:"\f31c"}.fa-file-edit:before{content:"\f31c"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-file-prescription:before{content:"\f572"}.fa-file-shield:before{content:"\e4f0"}.fa-file-signature:before{content:"\f573"}.fa-file-video:before{content:"\f1c8"}.fa-file-waveform:before{content:"\f478"}.fa-file-medical-alt:before{content:"\f478"}.fa-file-word:before{content:"\f1c2"}.fa-file-zipper:before{content:"\f1c6"}.fa-file-archive:before{content:"\f1c6"}.fa-fill:before{content:"\f575"}.fa-fill-drip:before{content:"\f576"}.fa-film:before{content:"\f008"}.fa-filter:before{content:"\f0b0"}.fa-filter-circle-dollar:before{content:"\f662"}.fa-funnel-dollar:before{content:"\f662"}.fa-filter-circle-xmark:before{content:"\e17b"}.fa-fingerprint:before{content:"\f577"}.fa-fire:before{content:"\f06d"}.fa-fire-burner:before{content:"\e4f1"}.fa-fire-extinguisher:before{content:"\f134"}.fa-fire-flame-curved:before{content:"\f7e4"}.fa-fire-alt:before{content:"\f7e4"}.fa-fire-flame-simple:before{content:"\f46a"}.fa-burn:before{content:"\f46a"}.fa-fish:before{content:"\f578"}.fa-fish-fins:before{content:"\e4f2"}.fa-flag:before{content:"\f024"}.fa-flag-checkered:before{content:"\f11e"}.fa-flag-usa:before{content:"\f74d"}.fa-flask:before{content:"\f0c3"}.fa-flask-vial:before{content:"\e4f3"}.fa-floppy-disk:before{content:"\f0c7"}.fa-save:before{content:"\f0c7"}.fa-florin-sign:before{content:"\e184"}.fa-folder:before{content:"\f07b"}.fa-folder-blank:before{content:"\f07b"}.fa-folder-closed:before{content:"\e185"}.fa-folder-minus:before{content:"\f65d"}.fa-folder-open:before{content:"\f07c"}.fa-folder-plus:before{content:"\f65e"}.fa-folder-tree:before{content:"\f802"}.fa-font:before{content:"\f031"}.fa-football:before{content:"\f44e"}.fa-football-ball:before{content:"\f44e"}.fa-forward:before{content:"\f04e"}.fa-forward-fast:before{content:"\f050"}.fa-fast-forward:before{content:"\f050"}.fa-forward-step:before{content:"\f051"}.fa-step-forward:before{content:"\f051"}.fa-franc-sign:before{content:"\e18f"}.fa-frog:before{content:"\f52e"}.fa-futbol:before{content:"\f1e3"}.fa-futbol-ball:before{content:"\f1e3"}.fa-soccer-ball:before{content:"\f1e3"}.fa-g:before{content:"G"}.fa-gamepad:before{content:"\f11b"}.fa-gas-pump:before{content:"\f52f"}.fa-gauge:before{content:"\f624"}.fa-dashboard:before{content:"\f624"}.fa-gauge-med:before{content:"\f624"}.fa-tachometer-alt-average:before{content:"\f624"}.fa-gauge-high:before{content:"\f625"}.fa-tachometer-alt:before{content:"\f625"}.fa-tachometer-alt-fast:before{content:"\f625"}.fa-gauge-simple:before{content:"\f629"}.fa-gauge-simple-med:before{content:"\f629"}.fa-tachometer-average:before{content:"\f629"}.fa-gauge-simple-high:before{content:"\f62a"}.fa-tachometer:before{content:"\f62a"}.fa-tachometer-fast:before{content:"\f62a"}.fa-gavel:before{content:"\f0e3"}.fa-legal:before{content:"\f0e3"}.fa-gear:before{content:"\f013"}.fa-cog:before{content:"\f013"}.fa-gears:before{content:"\f085"}.fa-cogs:before{content:"\f085"}.fa-gem:before{content:"\f3a5"}.fa-genderless:before{content:"\f22d"}.fa-ghost:before{content:"\f6e2"}.fa-gift:before{content:"\f06b"}.fa-gifts:before{content:"\f79c"}.fa-glass-water:before{content:"\e4f4"}.fa-glass-water-droplet:before{content:"\e4f5"}.fa-glasses:before{content:"\f530"}.fa-globe:before{content:"\f0ac"}.fa-golf-ball-tee:before{content:"\f450"}.fa-golf-ball:before{content:"\f450"}.fa-gopuram:before{content:"\f664"}.fa-graduation-cap:before{content:"\f19d"}.fa-mortar-board:before{content:"\f19d"}.fa-greater-than:before{content:">"}.fa-greater-than-equal:before{content:"\f532"}.fa-grip:before{content:"\f58d"}.fa-grip-horizontal:before{content:"\f58d"}.fa-grip-lines:before{content:"\f7a4"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-grip-vertical:before{content:"\f58e"}.fa-group-arrows-rotate:before{content:"\e4f6"}.fa-guarani-sign:before{content:"\e19a"}.fa-guitar:before{content:"\f7a6"}.fa-gun:before{content:"\e19b"}.fa-h:before{content:"H"}.fa-hammer:before{content:"\f6e3"}.fa-hamsa:before{content:"\f665"}.fa-hand:before{content:"\f256"}.fa-hand-paper:before{content:"\f256"}.fa-hand-back-fist:before{content:"\f255"}.fa-hand-rock:before{content:"\f255"}.fa-hand-dots:before{content:"\f461"}.fa-allergies:before{content:"\f461"}.fa-hand-fist:before{content:"\f6de"}.fa-fist-raised:before{content:"\f6de"}.fa-hand-holding:before{content:"\f4bd"}.fa-hand-holding-dollar:before{content:"\f4c0"}.fa-hand-holding-usd:before{content:"\f4c0"}.fa-hand-holding-droplet:before{content:"\f4c1"}.fa-hand-holding-water:before{content:"\f4c1"}.fa-hand-holding-hand:before{content:"\e4f7"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-hand-holding-medical:before{content:"\e05c"}.fa-hand-lizard:before{content:"\f258"}.fa-hand-middle-finger:before{content:"\f806"}.fa-hand-peace:before{content:"\f25b"}.fa-hand-point-down:before{content:"\f0a7"}.fa-hand-point-left:before{content:"\f0a5"}.fa-hand-point-right:before{content:"\f0a4"}.fa-hand-point-up:before{content:"\f0a6"}.fa-hand-pointer:before{content:"\f25a"}.fa-hand-scissors:before{content:"\f257"}.fa-hand-sparkles:before{content:"\e05d"}.fa-hand-spock:before{content:"\f259"}.fa-handcuffs:before{content:"\e4f8"}.fa-hands:before{content:"\f2a7"}.fa-sign-language:before{content:"\f2a7"}.fa-signing:before{content:"\f2a7"}.fa-hands-asl-interpreting:before{content:"\f2a3"}.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-asl-interpreting:before{content:"\f2a3"}.fa-hands-american-sign-language-interpreting:before{content:"\f2a3"}.fa-hands-bound:before{content:"\e4f9"}.fa-hands-bubbles:before{content:"\e05e"}.fa-hands-wash:before{content:"\e05e"}.fa-hands-clapping:before{content:"\e1a8"}.fa-hands-holding:before{content:"\f4c2"}.fa-hands-holding-child:before{content:"\e4fa"}.fa-hands-holding-circle:before{content:"\e4fb"}.fa-hands-praying:before{content:"\f684"}.fa-praying-hands:before{content:"\f684"}.fa-handshake:before{content:"\f2b5"}.fa-handshake-angle:before{content:"\f4c4"}.fa-hands-helping:before{content:"\f4c4"}.fa-handshake-simple:before{content:"\f4c6"}.fa-handshake-alt:before{content:"\f4c6"}.fa-handshake-simple-slash:before{content:"\e05f"}.fa-handshake-alt-slash:before{content:"\e05f"}.fa-handshake-slash:before{content:"\e060"}.fa-hanukiah:before{content:"\f6e6"}.fa-hard-drive:before{content:"\f0a0"}.fa-hdd:before{content:"\f0a0"}.fa-hashtag:before{content:"#"}.fa-hat-cowboy:before{content:"\f8c0"}.fa-hat-cowboy-side:before{content:"\f8c1"}.fa-hat-wizard:before{content:"\f6e8"}.fa-head-side-cough:before{content:"\e061"}.fa-head-side-cough-slash:before{content:"\e062"}.fa-head-side-mask:before{content:"\e063"}.fa-head-side-virus:before{content:"\e064"}.fa-heading:before{content:"\f1dc"}.fa-header:before{content:"\f1dc"}.fa-headphones:before{content:"\f025"}.fa-headphones-simple:before{content:"\f58f"}.fa-headphones-alt:before{content:"\f58f"}.fa-headset:before{content:"\f590"}.fa-heart:before{content:"\f004"}.fa-heart-circle-bolt:before{content:"\e4fc"}.fa-heart-circle-check:before{content:"\e4fd"}.fa-heart-circle-exclamation:before{content:"\e4fe"}.fa-heart-circle-minus:before{content:"\e4ff"}.fa-heart-circle-plus:before{content:"\e500"}.fa-heart-circle-xmark:before{content:"\e501"}.fa-heart-crack:before{content:"\f7a9"}.fa-heart-broken:before{content:"\f7a9"}.fa-heart-pulse:before{content:"\f21e"}.fa-heartbeat:before{content:"\f21e"}.fa-helicopter:before{content:"\f533"}.fa-helicopter-symbol:before{content:"\e502"}.fa-helmet-safety:before{content:"\f807"}.fa-hard-hat:before{content:"\f807"}.fa-hat-hard:before{content:"\f807"}.fa-helmet-un:before{content:"\e503"}.fa-highlighter:before{content:"\f591"}.fa-hill-avalanche:before{content:"\e507"}.fa-hill-rockslide:before{content:"\e508"}.fa-hippo:before{content:"\f6ed"}.fa-hockey-puck:before{content:"\f453"}.fa-holly-berry:before{content:"\f7aa"}.fa-horse:before{content:"\f6f0"}.fa-horse-head:before{content:"\f7ab"}.fa-hospital:before{content:"\f0f8"}.fa-hospital-alt:before{content:"\f0f8"}.fa-hospital-wide:before{content:"\f0f8"}.fa-hospital-user:before{content:"\f80d"}.fa-hot-tub-person:before{content:"\f593"}.fa-hot-tub:before{content:"\f593"}.fa-hotdog:before{content:"\f80f"}.fa-hotel:before{content:"\f594"}.fa-hourglass:before{content:"\f254"}.fa-hourglass-2:before{content:"\f254"}.fa-hourglass-half:before{content:"\f254"}.fa-hourglass-empty:before{content:"\f252"}.fa-hourglass-end:before{content:"\f253"}.fa-hourglass-3:before{content:"\f253"}.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-1:before{content:"\f251"}.fa-house:before{content:"\f015"}.fa-home:before{content:"\f015"}.fa-home-alt:before{content:"\f015"}.fa-home-lg-alt:before{content:"\f015"}.fa-house-chimney:before{content:"\e3af"}.fa-home-lg:before{content:"\e3af"}.fa-house-chimney-crack:before{content:"\f6f1"}.fa-house-damage:before{content:"\f6f1"}.fa-house-chimney-medical:before{content:"\f7f2"}.fa-clinic-medical:before{content:"\f7f2"}.fa-house-chimney-user:before{content:"\e065"}.fa-house-chimney-window:before{content:"\e00d"}.fa-house-circle-check:before{content:"\e509"}.fa-house-circle-exclamation:before{content:"\e50a"}.fa-house-circle-xmark:before{content:"\e50b"}.fa-house-crack:before{content:"\e3b1"}.fa-house-fire:before{content:"\e50c"}.fa-house-flag:before{content:"\e50d"}.fa-house-flood-water:before{content:"\e50e"}.fa-house-flood-water-circle-arrow-right:before{content:"\e50f"}.fa-house-laptop:before{content:"\e066"}.fa-laptop-house:before{content:"\e066"}.fa-house-lock:before{content:"\e510"}.fa-house-medical:before{content:"\e3b2"}.fa-house-medical-circle-check:before{content:"\e511"}.fa-house-medical-circle-exclamation:before{content:"\e512"}.fa-house-medical-circle-xmark:before{content:"\e513"}.fa-house-medical-flag:before{content:"\e514"}.fa-house-signal:before{content:"\e012"}.fa-house-tsunami:before{content:"\e515"}.fa-house-user:before{content:"\e1b0"}.fa-home-user:before{content:"\e1b0"}.fa-hryvnia-sign:before{content:"\f6f2"}.fa-hryvnia:before{content:"\f6f2"}.fa-hurricane:before{content:"\f751"}.fa-i:before{content:"I"}.fa-i-cursor:before{content:"\f246"}.fa-ice-cream:before{content:"\f810"}.fa-icicles:before{content:"\f7ad"}.fa-icons:before{content:"\f86d"}.fa-heart-music-camera-bolt:before{content:"\f86d"}.fa-id-badge:before{content:"\f2c1"}.fa-id-card:before{content:"\f2c2"}.fa-drivers-license:before{content:"\f2c2"}.fa-id-card-clip:before{content:"\f47f"}.fa-id-card-alt:before{content:"\f47f"}.fa-igloo:before{content:"\f7ae"}.fa-image:before{content:"\f03e"}.fa-image-portrait:before{content:"\f3e0"}.fa-portrait:before{content:"\f3e0"}.fa-images:before{content:"\f302"}.fa-inbox:before{content:"\f01c"}.fa-indent:before{content:"\f03c"}.fa-indian-rupee-sign:before{content:"\e1bc"}.fa-indian-rupee:before{content:"\e1bc"}.fa-inr:before{content:"\e1bc"}.fa-industry:before{content:"\f275"}.fa-infinity:before{content:"\f534"}.fa-info:before{content:"\f129"}.fa-italic:before{content:"\f033"}.fa-j:before{content:"J"}.fa-jar:before{content:"\e516"}.fa-jar-wheat:before{content:"\e517"}.fa-jedi:before{content:"\f669"}.fa-jet-fighter:before{content:"\f0fb"}.fa-fighter-jet:before{content:"\f0fb"}.fa-jet-fighter-up:before{content:"\e518"}.fa-joint:before{content:"\f595"}.fa-jug-detergent:before{content:"\e519"}.fa-k:before{content:"K"}.fa-kaaba:before{content:"\f66b"}.fa-key:before{content:"\f084"}.fa-keyboard:before{content:"\f11c"}.fa-khanda:before{content:"\f66d"}.fa-kip-sign:before{content:"\e1c4"}.fa-kit-medical:before{content:"\f479"}.fa-first-aid:before{content:"\f479"}.fa-kitchen-set:before{content:"\e51a"}.fa-kiwi-bird:before{content:"\f535"}.fa-l:before{content:"L"}.fa-land-mine-on:before{content:"\e51b"}.fa-landmark:before{content:"\f66f"}.fa-landmark-dome:before{content:"\f752"}.fa-landmark-alt:before{content:"\f752"}.fa-landmark-flag:before{content:"\e51c"}.fa-language:before{content:"\f1ab"}.fa-laptop:before{content:"\f109"}.fa-laptop-code:before{content:"\f5fc"}.fa-laptop-file:before{content:"\e51d"}.fa-laptop-medical:before{content:"\f812"}.fa-lari-sign:before{content:"\e1c8"}.fa-layer-group:before{content:"\f5fd"}.fa-leaf:before{content:"\f06c"}.fa-left-long:before{content:"\f30a"}.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-left-right:before{content:"\f337"}.fa-arrows-alt-h:before{content:"\f337"}.fa-lemon:before{content:"\f094"}.fa-less-than:before{content:"<"}.fa-less-than-equal:before{content:"\f537"}.fa-life-ring:before{content:"\f1cd"}.fa-lightbulb:before{content:"\f0eb"}.fa-lines-leaning:before{content:"\e51e"}.fa-link:before{content:"\f0c1"}.fa-chain:before{content:"\f0c1"}.fa-link-slash:before{content:"\f127"}.fa-chain-broken:before{content:"\f127"}.fa-chain-slash:before{content:"\f127"}.fa-unlink:before{content:"\f127"}.fa-lira-sign:before{content:"\f195"}.fa-list:before{content:"\f03a"}.fa-list-squares:before{content:"\f03a"}.fa-list-check:before{content:"\f0ae"}.fa-tasks:before{content:"\f0ae"}.fa-list-ol:before{content:"\f0cb"}.fa-list-1-2:before{content:"\f0cb"}.fa-list-numeric:before{content:"\f0cb"}.fa-list-ul:before{content:"\f0ca"}.fa-list-dots:before{content:"\f0ca"}.fa-litecoin-sign:before{content:"\e1d3"}.fa-location-arrow:before{content:"\f124"}.fa-location-crosshairs:before{content:"\f601"}.fa-location:before{content:"\f601"}.fa-location-dot:before{content:"\f3c5"}.fa-map-marker-alt:before{content:"\f3c5"}.fa-location-pin:before{content:"\f041"}.fa-map-marker:before{content:"\f041"}.fa-location-pin-lock:before{content:"\e51f"}.fa-lock:before{content:"\f023"}.fa-lock-open:before{content:"\f3c1"}.fa-locust:before{content:"\e520"}.fa-lungs:before{content:"\f604"}.fa-lungs-virus:before{content:"\e067"}.fa-m:before{content:"M"}.fa-magnet:before{content:"\f076"}.fa-magnifying-glass:before{content:"\f002"}.fa-search:before{content:"\f002"}.fa-magnifying-glass-arrow-right:before{content:"\e521"}.fa-magnifying-glass-chart:before{content:"\e522"}.fa-magnifying-glass-dollar:before{content:"\f688"}.fa-search-dollar:before{content:"\f688"}.fa-magnifying-glass-location:before{content:"\f689"}.fa-search-location:before{content:"\f689"}.fa-magnifying-glass-minus:before{content:"\f010"}.fa-search-minus:before{content:"\f010"}.fa-magnifying-glass-plus:before{content:"\f00e"}.fa-search-plus:before{content:"\f00e"}.fa-manat-sign:before{content:"\e1d5"}.fa-map:before{content:"\f279"}.fa-map-location:before{content:"\f59f"}.fa-map-marked:before{content:"\f59f"}.fa-map-location-dot:before{content:"\f5a0"}.fa-map-marked-alt:before{content:"\f5a0"}.fa-map-pin:before{content:"\f276"}.fa-marker:before{content:"\f5a1"}.fa-mars:before{content:"\f222"}.fa-mars-and-venus:before{content:"\f224"}.fa-mars-and-venus-burst:before{content:"\e523"}.fa-mars-double:before{content:"\f227"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-right:before{content:"\f22b"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-mars-stroke-up:before{content:"\f22a"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-martini-glass:before{content:"\f57b"}.fa-glass-martini-alt:before{content:"\f57b"}.fa-martini-glass-citrus:before{content:"\f561"}.fa-cocktail:before{content:"\f561"}.fa-martini-glass-empty:before{content:"\f000"}.fa-glass-martini:before{content:"\f000"}.fa-mask:before{content:"\f6fa"}.fa-mask-face:before{content:"\e1d7"}.fa-mask-ventilator:before{content:"\e524"}.fa-masks-theater:before{content:"\f630"}.fa-theater-masks:before{content:"\f630"}.fa-mattress-pillow:before{content:"\e525"}.fa-maximize:before{content:"\f31e"}.fa-expand-arrows-alt:before{content:"\f31e"}.fa-medal:before{content:"\f5a2"}.fa-memory:before{content:"\f538"}.fa-menorah:before{content:"\f676"}.fa-mercury:before{content:"\f223"}.fa-message:before{content:"\f27a"}.fa-comment-alt:before{content:"\f27a"}.fa-meteor:before{content:"\f753"}.fa-microchip:before{content:"\f2db"}.fa-microphone:before{content:"\f130"}.fa-microphone-lines:before{content:"\f3c9"}.fa-microphone-alt:before{content:"\f3c9"}.fa-microphone-lines-slash:before{content:"\f539"}.fa-microphone-alt-slash:before{content:"\f539"}.fa-microphone-slash:before{content:"\f131"}.fa-microscope:before{content:"\f610"}.fa-mill-sign:before{content:"\e1ed"}.fa-minimize:before{content:"\f78c"}.fa-compress-arrows-alt:before{content:"\f78c"}.fa-minus:before{content:"\f068"}.fa-subtract:before{content:"\f068"}.fa-mitten:before{content:"\f7b5"}.fa-mobile:before{content:"\f3ce"}.fa-mobile-android:before{content:"\f3ce"}.fa-mobile-phone:before{content:"\f3ce"}.fa-mobile-button:before{content:"\f10b"}.fa-mobile-retro:before{content:"\e527"}.fa-mobile-screen:before{content:"\f3cf"}.fa-mobile-android-alt:before{content:"\f3cf"}.fa-mobile-screen-button:before{content:"\f3cd"}.fa-mobile-alt:before{content:"\f3cd"}.fa-money-bill:before{content:"\f0d6"}.fa-money-bill-1:before{content:"\f3d1"}.fa-money-bill-alt:before{content:"\f3d1"}.fa-money-bill-1-wave:before{content:"\f53b"}.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-money-bill-transfer:before{content:"\e528"}.fa-money-bill-trend-up:before{content:"\e529"}.fa-money-bill-wave:before{content:"\f53a"}.fa-money-bill-wheat:before{content:"\e52a"}.fa-money-bills:before{content:"\e1f3"}.fa-money-check:before{content:"\f53c"}.fa-money-check-dollar:before{content:"\f53d"}.fa-money-check-alt:before{content:"\f53d"}.fa-monument:before{content:"\f5a6"}.fa-moon:before{content:"\f186"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-mosque:before{content:"\f678"}.fa-mosquito:before{content:"\e52b"}.fa-mosquito-net:before{content:"\e52c"}.fa-motorcycle:before{content:"\f21c"}.fa-mound:before{content:"\e52d"}.fa-mountain:before{content:"\f6fc"}.fa-mountain-city:before{content:"\e52e"}.fa-mountain-sun:before{content:"\e52f"}.fa-mug-hot:before{content:"\f7b6"}.fa-mug-saucer:before{content:"\f0f4"}.fa-coffee:before{content:"\f0f4"}.fa-music:before{content:"\f001"}.fa-n:before{content:"N"}.fa-naira-sign:before{content:"\e1f6"}.fa-network-wired:before{content:"\f6ff"}.fa-neuter:before{content:"\f22c"}.fa-newspaper:before{content:"\f1ea"}.fa-not-equal:before{content:"\f53e"}.fa-note-sticky:before{content:"\f249"}.fa-sticky-note:before{content:"\f249"}.fa-notes-medical:before{content:"\f481"}.fa-o:before{content:"O"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-oil-can:before{content:"\f613"}.fa-oil-well:before{content:"\e532"}.fa-om:before{content:"\f679"}.fa-otter:before{content:"\f700"}.fa-outdent:before{content:"\f03b"}.fa-dedent:before{content:"\f03b"}.fa-p:before{content:"P"}.fa-pager:before{content:"\f815"}.fa-paint-roller:before{content:"\f5aa"}.fa-paintbrush:before{content:"\f1fc"}.fa-paint-brush:before{content:"\f1fc"}.fa-palette:before{content:"\f53f"}.fa-pallet:before{content:"\f482"}.fa-panorama:before{content:"\e209"}.fa-paper-plane:before{content:"\f1d8"}.fa-paperclip:before{content:"\f0c6"}.fa-parachute-box:before{content:"\f4cd"}.fa-paragraph:before{content:"\f1dd"}.fa-passport:before{content:"\f5ab"}.fa-paste:before{content:"\f0ea"}.fa-file-clipboard:before{content:"\f0ea"}.fa-pause:before{content:"\f04c"}.fa-paw:before{content:"\f1b0"}.fa-peace:before{content:"\f67c"}.fa-pen:before{content:"\f304"}.fa-pen-clip:before{content:"\f305"}.fa-pen-alt:before{content:"\f305"}.fa-pen-fancy:before{content:"\f5ac"}.fa-pen-nib:before{content:"\f5ad"}.fa-pen-ruler:before{content:"\f5ae"}.fa-pencil-ruler:before{content:"\f5ae"}.fa-pen-to-square:before{content:"\f044"}.fa-edit:before{content:"\f044"}.fa-pencil:before{content:"\f303"}.fa-pencil-alt:before{content:"\f303"}.fa-people-arrows-left-right:before{content:"\e068"}.fa-people-arrows:before{content:"\e068"}.fa-people-carry-box:before{content:"\f4ce"}.fa-people-carry:before{content:"\f4ce"}.fa-people-group:before{content:"\e533"}.fa-people-line:before{content:"\e534"}.fa-people-pulling:before{content:"\e535"}.fa-people-robbery:before{content:"\e536"}.fa-people-roof:before{content:"\e537"}.fa-pepper-hot:before{content:"\f816"}.fa-percent:before{content:"%"}.fa-percentage:before{content:"%"}.fa-person:before{content:"\f183"}.fa-male:before{content:"\f183"}.fa-person-arrow-down-to-line:before{content:"\e538"}.fa-person-arrow-up-from-line:before{content:"\e539"}.fa-person-biking:before{content:"\f84a"}.fa-biking:before{content:"\f84a"}.fa-person-booth:before{content:"\f756"}.fa-person-breastfeeding:before{content:"\e53a"}.fa-person-burst:before{content:"\e53b"}.fa-person-cane:before{content:"\e53c"}.fa-person-chalkboard:before{content:"\e53d"}.fa-person-circle-check:before{content:"\e53e"}.fa-person-circle-exclamation:before{content:"\e53f"}.fa-person-circle-minus:before{content:"\e540"}.fa-person-circle-plus:before{content:"\e541"}.fa-person-circle-question:before{content:"\e542"}.fa-person-circle-xmark:before{content:"\e543"}.fa-person-digging:before{content:"\f85e"}.fa-digging:before{content:"\f85e"}.fa-person-dots-from-line:before{content:"\f470"}.fa-diagnoses:before{content:"\f470"}.fa-person-dress:before{content:"\f182"}.fa-female:before{content:"\f182"}.fa-person-dress-burst:before{content:"\e544"}.fa-person-drowning:before{content:"\e545"}.fa-person-falling:before{content:"\e546"}.fa-person-falling-burst:before{content:"\e547"}.fa-person-half-dress:before{content:"\e548"}.fa-person-harassing:before{content:"\e549"}.fa-person-hiking:before{content:"\f6ec"}.fa-hiking:before{content:"\f6ec"}.fa-person-military-pointing:before{content:"\e54a"}.fa-person-military-rifle:before{content:"\e54b"}.fa-person-military-to-person:before{content:"\e54c"}.fa-person-praying:before{content:"\f683"}.fa-pray:before{content:"\f683"}.fa-person-pregnant:before{content:"\e31e"}.fa-person-rays:before{content:"\e54d"}.fa-person-rifle:before{content:"\e54e"}.fa-person-running:before{content:"\f70c"}.fa-running:before{content:"\f70c"}.fa-person-shelter:before{content:"\e54f"}.fa-person-skating:before{content:"\f7c5"}.fa-skating:before{content:"\f7c5"}.fa-person-skiing:before{content:"\f7c9"}.fa-skiing:before{content:"\f7c9"}.fa-person-skiing-nordic:before{content:"\f7ca"}.fa-skiing-nordic:before{content:"\f7ca"}.fa-person-snowboarding:before{content:"\f7ce"}.fa-snowboarding:before{content:"\f7ce"}.fa-person-swimming:before{content:"\f5c4"}.fa-swimmer:before{content:"\f5c4"}.fa-person-through-window:before{content:"\e433"}.fa-person-walking:before{content:"\f554"}.fa-walking:before{content:"\f554"}.fa-person-walking-arrow-loop-left:before{content:"\e551"}.fa-person-walking-arrow-right:before{content:"\e552"}.fa-person-walking-dashed-line-arrow-right:before{content:"\e553"}.fa-person-walking-luggage:before{content:"\e554"}.fa-person-walking-with-cane:before{content:"\f29d"}.fa-blind:before{content:"\f29d"}.fa-peseta-sign:before{content:"\e221"}.fa-peso-sign:before{content:"\e222"}.fa-phone:before{content:"\f095"}.fa-phone-flip:before{content:"\f879"}.fa-phone-alt:before{content:"\f879"}.fa-phone-slash:before{content:"\f3dd"}.fa-phone-volume:before{content:"\f2a0"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-photo-film:before{content:"\f87c"}.fa-photo-video:before{content:"\f87c"}.fa-piggy-bank:before{content:"\f4d3"}.fa-pills:before{content:"\f484"}.fa-pizza-slice:before{content:"\f818"}.fa-place-of-worship:before{content:"\f67f"}.fa-plane:before{content:"\f072"}.fa-plane-arrival:before{content:"\f5af"}.fa-plane-circle-check:before{content:"\e555"}.fa-plane-circle-exclamation:before{content:"\e556"}.fa-plane-circle-xmark:before{content:"\e557"}.fa-plane-departure:before{content:"\f5b0"}.fa-plane-lock:before{content:"\e558"}.fa-plane-slash:before{content:"\e069"}.fa-plane-up:before{content:"\e22d"}.fa-plant-wilt:before{content:"\e43b"}.fa-plate-wheat:before{content:"\e55a"}.fa-play:before{content:"\f04b"}.fa-plug:before{content:"\f1e6"}.fa-plug-circle-bolt:before{content:"\e55b"}.fa-plug-circle-check:before{content:"\e55c"}.fa-plug-circle-exclamation:before{content:"\e55d"}.fa-plug-circle-minus:before{content:"\e55e"}.fa-plug-circle-plus:before{content:"\e55f"}.fa-plug-circle-xmark:before{content:"\e560"}.fa-plus:before{content:"+"}.fa-add:before{content:"+"}.fa-plus-minus:before{content:"\e43c"}.fa-podcast:before{content:"\f2ce"}.fa-poo:before{content:"\f2fe"}.fa-poo-storm:before{content:"\f75a"}.fa-poo-bolt:before{content:"\f75a"}.fa-poop:before{content:"\f619"}.fa-power-off:before{content:"\f011"}.fa-prescription:before{content:"\f5b1"}.fa-prescription-bottle:before{content:"\f485"}.fa-prescription-bottle-medical:before{content:"\f486"}.fa-prescription-bottle-alt:before{content:"\f486"}.fa-print:before{content:"\f02f"}.fa-pump-medical:before{content:"\e06a"}.fa-pump-soap:before{content:"\e06b"}.fa-puzzle-piece:before{content:"\f12e"}.fa-q:before{content:"Q"}.fa-qrcode:before{content:"\f029"}.fa-question:before{content:"?"}.fa-quote-left:before{content:"\f10d"}.fa-quote-left-alt:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-quote-right-alt:before{content:"\f10e"}.fa-r:before{content:"R"}.fa-radiation:before{content:"\f7b9"}.fa-radio:before{content:"\f8d7"}.fa-rainbow:before{content:"\f75b"}.fa-ranking-star:before{content:"\e561"}.fa-receipt:before{content:"\f543"}.fa-record-vinyl:before{content:"\f8d9"}.fa-rectangle-ad:before{content:"\f641"}.fa-ad:before{content:"\f641"}.fa-rectangle-list:before{content:"\f022"}.fa-list-alt:before{content:"\f022"}.fa-rectangle-xmark:before{content:"\f410"}.fa-rectangle-times:before{content:"\f410"}.fa-times-rectangle:before{content:"\f410"}.fa-window-close:before{content:"\f410"}.fa-recycle:before{content:"\f1b8"}.fa-registered:before{content:"\f25d"}.fa-repeat:before{content:"\f363"}.fa-reply:before{content:"\f3e5"}.fa-mail-reply:before{content:"\f3e5"}.fa-reply-all:before{content:"\f122"}.fa-mail-reply-all:before{content:"\f122"}.fa-republican:before{content:"\f75e"}.fa-restroom:before{content:"\f7bd"}.fa-retweet:before{content:"\f079"}.fa-ribbon:before{content:"\f4d6"}.fa-right-from-bracket:before{content:"\f2f5"}.fa-sign-out-alt:before{content:"\f2f5"}.fa-right-left:before{content:"\f362"}.fa-exchange-alt:before{content:"\f362"}.fa-right-long:before{content:"\f30b"}.fa-long-arrow-alt-right:before{content:"\f30b"}.fa-right-to-bracket:before{content:"\f2f6"}.fa-sign-in-alt:before{content:"\f2f6"}.fa-ring:before{content:"\f70b"}.fa-road:before{content:"\f018"}.fa-road-barrier:before{content:"\e562"}.fa-road-bridge:before{content:"\e563"}.fa-road-circle-check:before{content:"\e564"}.fa-road-circle-exclamation:before{content:"\e565"}.fa-road-circle-xmark:before{content:"\e566"}.fa-road-lock:before{content:"\e567"}.fa-road-spikes:before{content:"\e568"}.fa-robot:before{content:"\f544"}.fa-rocket:before{content:"\f135"}.fa-rotate:before{content:"\f2f1"}.fa-sync-alt:before{content:"\f2f1"}.fa-rotate-left:before{content:"\f2ea"}.fa-rotate-back:before{content:"\f2ea"}.fa-rotate-backward:before{content:"\f2ea"}.fa-undo-alt:before{content:"\f2ea"}.fa-rotate-right:before{content:"\f2f9"}.fa-redo-alt:before{content:"\f2f9"}.fa-rotate-forward:before{content:"\f2f9"}.fa-route:before{content:"\f4d7"}.fa-rss:before{content:"\f09e"}.fa-feed:before{content:"\f09e"}.fa-ruble-sign:before{content:"\f158"}.fa-rouble:before{content:"\f158"}.fa-rub:before{content:"\f158"}.fa-ruble:before{content:"\f158"}.fa-rug:before{content:"\e569"}.fa-ruler:before{content:"\f545"}.fa-ruler-combined:before{content:"\f546"}.fa-ruler-horizontal:before{content:"\f547"}.fa-ruler-vertical:before{content:"\f548"}.fa-rupee-sign:before{content:"\f156"}.fa-rupee:before{content:"\f156"}.fa-rupiah-sign:before{content:"\e23d"}.fa-s:before{content:"S"}.fa-sack-dollar:before{content:"\f81d"}.fa-sack-xmark:before{content:"\e56a"}.fa-sailboat:before{content:"\e445"}.fa-satellite:before{content:"\f7bf"}.fa-satellite-dish:before{content:"\f7c0"}.fa-scale-balanced:before{content:"\f24e"}.fa-balance-scale:before{content:"\f24e"}.fa-scale-unbalanced:before{content:"\f515"}.fa-balance-scale-left:before{content:"\f515"}.fa-scale-unbalanced-flip:before{content:"\f516"}.fa-balance-scale-right:before{content:"\f516"}.fa-school:before{content:"\f549"}.fa-school-circle-check:before{content:"\e56b"}.fa-school-circle-exclamation:before{content:"\e56c"}.fa-school-circle-xmark:before{content:"\e56d"}.fa-school-flag:before{content:"\e56e"}.fa-school-lock:before{content:"\e56f"}.fa-scissors:before{content:"\f0c4"}.fa-cut:before{content:"\f0c4"}.fa-screwdriver:before{content:"\f54a"}.fa-screwdriver-wrench:before{content:"\f7d9"}.fa-tools:before{content:"\f7d9"}.fa-scroll:before{content:"\f70e"}.fa-scroll-torah:before{content:"\f6a0"}.fa-torah:before{content:"\f6a0"}.fa-sd-card:before{content:"\f7c2"}.fa-section:before{content:"\e447"}.fa-seedling:before{content:"\f4d8"}.fa-sprout:before{content:"\f4d8"}.fa-server:before{content:"\f233"}.fa-shapes:before{content:"\f61f"}.fa-triangle-circle-square:before{content:"\f61f"}.fa-share:before{content:"\f064"}.fa-arrow-turn-right:before{content:"\f064"}.fa-mail-forward:before{content:"\f064"}.fa-share-from-square:before{content:"\f14d"}.fa-share-square:before{content:"\f14d"}.fa-share-nodes:before{content:"\f1e0"}.fa-share-alt:before{content:"\f1e0"}.fa-sheet-plastic:before{content:"\e571"}.fa-shekel-sign:before{content:"\f20b"}.fa-ils:before{content:"\f20b"}.fa-shekel:before{content:"\f20b"}.fa-sheqel:before{content:"\f20b"}.fa-sheqel-sign:before{content:"\f20b"}.fa-shield:before{content:"\f132"}.fa-shield-blank:before{content:"\f132"}.fa-shield-cat:before{content:"\e572"}.fa-shield-dog:before{content:"\e573"}.fa-shield-halved:before{content:"\f3ed"}.fa-shield-alt:before{content:"\f3ed"}.fa-shield-heart:before{content:"\e574"}.fa-shield-virus:before{content:"\e06c"}.fa-ship:before{content:"\f21a"}.fa-shirt:before{content:"\f553"}.fa-t-shirt:before{content:"\f553"}.fa-tshirt:before{content:"\f553"}.fa-shoe-prints:before{content:"\f54b"}.fa-shop:before{content:"\f54f"}.fa-store-alt:before{content:"\f54f"}.fa-shop-lock:before{content:"\e4a5"}.fa-shop-slash:before{content:"\e070"}.fa-store-alt-slash:before{content:"\e070"}.fa-shower:before{content:"\f2cc"}.fa-shrimp:before{content:"\e448"}.fa-shuffle:before{content:"\f074"}.fa-random:before{content:"\f074"}.fa-shuttle-space:before{content:"\f197"}.fa-space-shuttle:before{content:"\f197"}.fa-sign-hanging:before{content:"\f4d9"}.fa-sign:before{content:"\f4d9"}.fa-signal:before{content:"\f012"}.fa-signal-5:before{content:"\f012"}.fa-signal-perfect:before{content:"\f012"}.fa-signature:before{content:"\f5b7"}.fa-signs-post:before{content:"\f277"}.fa-map-signs:before{content:"\f277"}.fa-sim-card:before{content:"\f7c4"}.fa-sink:before{content:"\e06d"}.fa-sitemap:before{content:"\f0e8"}.fa-skull:before{content:"\f54c"}.fa-skull-crossbones:before{content:"\f714"}.fa-slash:before{content:"\f715"}.fa-sleigh:before{content:"\f7cc"}.fa-sliders:before{content:"\f1de"}.fa-sliders-h:before{content:"\f1de"}.fa-smog:before{content:"\f75f"}.fa-smoking:before{content:"\f48d"}.fa-snowflake:before{content:"\f2dc"}.fa-snowman:before{content:"\f7d0"}.fa-snowplow:before{content:"\f7d2"}.fa-soap:before{content:"\e06e"}.fa-socks:before{content:"\f696"}.fa-solar-panel:before{content:"\f5ba"}.fa-sort:before{content:"\f0dc"}.fa-unsorted:before{content:"\f0dc"}.fa-sort-down:before{content:"\f0dd"}.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before{content:"\f0de"}.fa-sort-asc:before{content:"\f0de"}.fa-spa:before{content:"\f5bb"}.fa-spaghetti-monster-flying:before{content:"\f67b"}.fa-pastafarianism:before{content:"\f67b"}.fa-spell-check:before{content:"\f891"}.fa-spider:before{content:"\f717"}.fa-spinner:before{content:"\f110"}.fa-splotch:before{content:"\f5bc"}.fa-spoon:before{content:"\f2e5"}.fa-utensil-spoon:before{content:"\f2e5"}.fa-spray-can:before{content:"\f5bd"}.fa-spray-can-sparkles:before{content:"\f5d0"}.fa-air-freshener:before{content:"\f5d0"}.fa-square:before{content:"\f0c8"}.fa-square-arrow-up-right:before{content:"\f14c"}.fa-external-link-square:before{content:"\f14c"}.fa-square-caret-down:before{content:"\f150"}.fa-caret-square-down:before{content:"\f150"}.fa-square-caret-left:before{content:"\f191"}.fa-caret-square-left:before{content:"\f191"}.fa-square-caret-right:before{content:"\f152"}.fa-caret-square-right:before{content:"\f152"}.fa-square-caret-up:before{content:"\f151"}.fa-caret-square-up:before{content:"\f151"}.fa-square-check:before{content:"\f14a"}.fa-check-square:before{content:"\f14a"}.fa-square-envelope:before{content:"\f199"}.fa-envelope-square:before{content:"\f199"}.fa-square-full:before{content:"\f45c"}.fa-square-h:before{content:"\f0fd"}.fa-h-square:before{content:"\f0fd"}.fa-square-minus:before{content:"\f146"}.fa-minus-square:before{content:"\f146"}.fa-square-nfi:before{content:"\e576"}.fa-square-parking:before{content:"\f540"}.fa-parking:before{content:"\f540"}.fa-square-pen:before{content:"\f14b"}.fa-pen-square:before{content:"\f14b"}.fa-pencil-square:before{content:"\f14b"}.fa-square-person-confined:before{content:"\e577"}.fa-square-phone:before{content:"\f098"}.fa-phone-square:before{content:"\f098"}.fa-square-phone-flip:before{content:"\f87b"}.fa-phone-square-alt:before{content:"\f87b"}.fa-square-plus:before{content:"\f0fe"}.fa-plus-square:before{content:"\f0fe"}.fa-square-poll-horizontal:before{content:"\f682"}.fa-poll-h:before{content:"\f682"}.fa-square-poll-vertical:before{content:"\f681"}.fa-poll:before{content:"\f681"}.fa-square-root-variable:before{content:"\f698"}.fa-square-root-alt:before{content:"\f698"}.fa-square-rss:before{content:"\f143"}.fa-rss-square:before{content:"\f143"}.fa-square-share-nodes:before{content:"\f1e1"}.fa-share-alt-square:before{content:"\f1e1"}.fa-square-up-right:before{content:"\f360"}.fa-external-link-square-alt:before{content:"\f360"}.fa-square-virus:before{content:"\e578"}.fa-square-xmark:before{content:"\f2d3"}.fa-times-square:before{content:"\f2d3"}.fa-xmark-square:before{content:"\f2d3"}.fa-staff-aesculapius:before{content:"\e579"}.fa-rod-asclepius:before{content:"\e579"}.fa-rod-snake:before{content:"\e579"}.fa-staff-snake:before{content:"\e579"}.fa-stairs:before{content:"\e289"}.fa-stamp:before{content:"\f5bf"}.fa-star:before{content:"\f005"}.fa-star-and-crescent:before{content:"\f699"}.fa-star-half:before{content:"\f089"}.fa-star-half-stroke:before{content:"\f5c0"}.fa-star-half-alt:before{content:"\f5c0"}.fa-star-of-david:before{content:"\f69a"}.fa-star-of-life:before{content:"\f621"}.fa-sterling-sign:before{content:"\f154"}.fa-gbp:before{content:"\f154"}.fa-pound-sign:before{content:"\f154"}.fa-stethoscope:before{content:"\f0f1"}.fa-stop:before{content:"\f04d"}.fa-stopwatch:before{content:"\f2f2"}.fa-stopwatch-20:before{content:"\e06f"}.fa-store:before{content:"\f54e"}.fa-store-slash:before{content:"\e071"}.fa-street-view:before{content:"\f21d"}.fa-strikethrough:before{content:"\f0cc"}.fa-stroopwafel:before{content:"\f551"}.fa-subscript:before{content:"\f12c"}.fa-suitcase:before{content:"\f0f2"}.fa-suitcase-medical:before{content:"\f0fa"}.fa-medkit:before{content:"\f0fa"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-sun:before{content:"\f185"}.fa-sun-plant-wilt:before{content:"\e57a"}.fa-superscript:before{content:"\f12b"}.fa-swatchbook:before{content:"\f5c3"}.fa-synagogue:before{content:"\f69b"}.fa-syringe:before{content:"\f48e"}.fa-t:before{content:"T"}.fa-table:before{content:"\f0ce"}.fa-table-cells:before{content:"\f00a"}.fa-th:before{content:"\f00a"}.fa-table-cells-large:before{content:"\f009"}.fa-th-large:before{content:"\f009"}.fa-table-columns:before{content:"\f0db"}.fa-columns:before{content:"\f0db"}.fa-table-list:before{content:"\f00b"}.fa-th-list:before{content:"\f00b"}.fa-table-tennis-paddle-ball:before{content:"\f45d"}.fa-ping-pong-paddle-ball:before{content:"\f45d"}.fa-table-tennis:before{content:"\f45d"}.fa-tablet:before{content:"\f3fb"}.fa-tablet-android:before{content:"\f3fb"}.fa-tablet-button:before{content:"\f10a"}.fa-tablet-screen-button:before{content:"\f3fa"}.fa-tablet-alt:before{content:"\f3fa"}.fa-tablets:before{content:"\f490"}.fa-tachograph-digital:before{content:"\f566"}.fa-digital-tachograph:before{content:"\f566"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-tape:before{content:"\f4db"}.fa-tarp:before{content:"\e57b"}.fa-tarp-droplet:before{content:"\e57c"}.fa-taxi:before{content:"\f1ba"}.fa-cab:before{content:"\f1ba"}.fa-teeth:before{content:"\f62e"}.fa-teeth-open:before{content:"\f62f"}.fa-temperature-arrow-down:before{content:"\e03f"}.fa-temperature-down:before{content:"\e03f"}.fa-temperature-arrow-up:before{content:"\e040"}.fa-temperature-up:before{content:"\e040"}.fa-temperature-empty:before{content:"\f2cb"}.fa-temperature-0:before{content:"\f2cb"}.fa-thermometer-0:before{content:"\f2cb"}.fa-thermometer-empty:before{content:"\f2cb"}.fa-temperature-full:before{content:"\f2c7"}.fa-temperature-4:before{content:"\f2c7"}.fa-thermometer-4:before{content:"\f2c7"}.fa-thermometer-full:before{content:"\f2c7"}.fa-temperature-half:before{content:"\f2c9"}.fa-temperature-2:before{content:"\f2c9"}.fa-thermometer-2:before{content:"\f2c9"}.fa-thermometer-half:before{content:"\f2c9"}.fa-temperature-high:before{content:"\f769"}.fa-temperature-low:before{content:"\f76b"}.fa-temperature-quarter:before{content:"\f2ca"}.fa-temperature-1:before{content:"\f2ca"}.fa-thermometer-1:before{content:"\f2ca"}.fa-thermometer-quarter:before{content:"\f2ca"}.fa-temperature-three-quarters:before{content:"\f2c8"}.fa-temperature-3:before{content:"\f2c8"}.fa-thermometer-3:before{content:"\f2c8"}.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-tenge-sign:before{content:"\f7d7"}.fa-tenge:before{content:"\f7d7"}.fa-tent:before{content:"\e57d"}.fa-tent-arrow-down-to-line:before{content:"\e57e"}.fa-tent-arrow-left-right:before{content:"\e57f"}.fa-tent-arrow-turn-left:before{content:"\e580"}.fa-tent-arrows-down:before{content:"\e581"}.fa-tents:before{content:"\e582"}.fa-terminal:before{content:"\f120"}.fa-text-height:before{content:"\f034"}.fa-text-slash:before{content:"\f87d"}.fa-remove-format:before{content:"\f87d"}.fa-text-width:before{content:"\f035"}.fa-thermometer:before{content:"\f491"}.fa-thumbs-down:before{content:"\f165"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbtack:before{content:"\f08d"}.fa-thumb-tack:before{content:"\f08d"}.fa-ticket:before{content:"\f145"}.fa-ticket-simple:before{content:"\f3ff"}.fa-ticket-alt:before{content:"\f3ff"}.fa-timeline:before{content:"\e29c"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-toilet:before{content:"\f7d8"}.fa-toilet-paper:before{content:"\f71e"}.fa-toilet-paper-slash:before{content:"\e072"}.fa-toilet-portable:before{content:"\e583"}.fa-toilets-portable:before{content:"\e584"}.fa-toolbox:before{content:"\f552"}.fa-tooth:before{content:"\f5c9"}.fa-torii-gate:before{content:"\f6a1"}.fa-tornado:before{content:"\f76f"}.fa-tower-broadcast:before{content:"\f519"}.fa-broadcast-tower:before{content:"\f519"}.fa-tower-cell:before{content:"\e585"}.fa-tower-observation:before{content:"\e586"}.fa-tractor:before{content:"\f722"}.fa-trademark:before{content:"\f25c"}.fa-traffic-light:before{content:"\f637"}.fa-trailer:before{content:"\e041"}.fa-train:before{content:"\f238"}.fa-train-subway:before{content:"\f239"}.fa-subway:before{content:"\f239"}.fa-train-tram:before{content:"\f7da"}.fa-tram:before{content:"\f7da"}.fa-transgender:before{content:"\f225"}.fa-transgender-alt:before{content:"\f225"}.fa-trash:before{content:"\f1f8"}.fa-trash-arrow-up:before{content:"\f829"}.fa-trash-restore:before{content:"\f829"}.fa-trash-can:before{content:"\f2ed"}.fa-trash-alt:before{content:"\f2ed"}.fa-trash-can-arrow-up:before{content:"\f82a"}.fa-trash-restore-alt:before{content:"\f82a"}.fa-tree:before{content:"\f1bb"}.fa-tree-city:before{content:"\e587"}.fa-triangle-exclamation:before{content:"\f071"}.fa-exclamation-triangle:before{content:"\f071"}.fa-warning:before{content:"\f071"}.fa-trophy:before{content:"\f091"}.fa-trowel:before{content:"\e589"}.fa-trowel-bricks:before{content:"\e58a"}.fa-truck:before{content:"\f0d1"}.fa-truck-arrow-right:before{content:"\e58b"}.fa-truck-droplet:before{content:"\e58c"}.fa-truck-fast:before{content:"\f48b"}.fa-shipping-fast:before{content:"\f48b"}.fa-truck-field:before{content:"\e58d"}.fa-truck-field-un:before{content:"\e58e"}.fa-truck-front:before{content:"\e2b7"}.fa-truck-medical:before{content:"\f0f9"}.fa-ambulance:before{content:"\f0f9"}.fa-truck-monster:before{content:"\f63b"}.fa-truck-moving:before{content:"\f4df"}.fa-truck-pickup:before{content:"\f63c"}.fa-truck-plane:before{content:"\e58f"}.fa-truck-ramp-box:before{content:"\f4de"}.fa-truck-loading:before{content:"\f4de"}.fa-tty:before{content:"\f1e4"}.fa-teletype:before{content:"\f1e4"}.fa-turkish-lira-sign:before{content:"\e2bb"}.fa-try:before{content:"\e2bb"}.fa-turkish-lira:before{content:"\e2bb"}.fa-turn-down:before{content:"\f3be"}.fa-level-down-alt:before{content:"\f3be"}.fa-turn-up:before{content:"\f3bf"}.fa-level-up-alt:before{content:"\f3bf"}.fa-tv:before{content:"\f26c"}.fa-television:before{content:"\f26c"}.fa-tv-alt:before{content:"\f26c"}.fa-u:before{content:"U"}.fa-umbrella:before{content:"\f0e9"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-underline:before{content:"\f0cd"}.fa-universal-access:before{content:"\f29a"}.fa-unlock:before{content:"\f09c"}.fa-unlock-keyhole:before{content:"\f13e"}.fa-unlock-alt:before{content:"\f13e"}.fa-up-down:before{content:"\f338"}.fa-arrows-alt-v:before{content:"\f338"}.fa-up-down-left-right:before{content:"\f0b2"}.fa-arrows-alt:before{content:"\f0b2"}.fa-up-long:before{content:"\f30c"}.fa-long-arrow-alt-up:before{content:"\f30c"}.fa-up-right-and-down-left-from-center:before{content:"\f424"}.fa-expand-alt:before{content:"\f424"}.fa-up-right-from-square:before{content:"\f35d"}.fa-external-link-alt:before{content:"\f35d"}.fa-upload:before{content:"\f093"}.fa-user:before{content:"\f007"}.fa-user-astronaut:before{content:"\f4fb"}.fa-user-check:before{content:"\f4fc"}.fa-user-clock:before{content:"\f4fd"}.fa-user-doctor:before{content:"\f0f0"}.fa-user-md:before{content:"\f0f0"}.fa-user-gear:before{content:"\f4fe"}.fa-user-cog:before{content:"\f4fe"}.fa-user-graduate:before{content:"\f501"}.fa-user-group:before{content:"\f500"}.fa-user-friends:before{content:"\f500"}.fa-user-injured:before{content:"\f728"}.fa-user-large:before{content:"\f406"}.fa-user-alt:before{content:"\f406"}.fa-user-large-slash:before{content:"\f4fa"}.fa-user-alt-slash:before{content:"\f4fa"}.fa-user-lock:before{content:"\f502"}.fa-user-minus:before{content:"\f503"}.fa-user-ninja:before{content:"\f504"}.fa-user-nurse:before{content:"\f82f"}.fa-user-pen:before{content:"\f4ff"}.fa-user-edit:before{content:"\f4ff"}.fa-user-plus:before{content:"\f234"}.fa-user-secret:before{content:"\f21b"}.fa-user-shield:before{content:"\f505"}.fa-user-slash:before{content:"\f506"}.fa-user-tag:before{content:"\f507"}.fa-user-tie:before{content:"\f508"}.fa-user-xmark:before{content:"\f235"}.fa-user-times:before{content:"\f235"}.fa-users:before{content:"\f0c0"}.fa-users-between-lines:before{content:"\e591"}.fa-users-gear:before{content:"\f509"}.fa-users-cog:before{content:"\f509"}.fa-users-line:before{content:"\e592"}.fa-users-rays:before{content:"\e593"}.fa-users-rectangle:before{content:"\e594"}.fa-users-slash:before{content:"\e073"}.fa-users-viewfinder:before{content:"\e595"}.fa-utensils:before{content:"\f2e7"}.fa-cutlery:before{content:"\f2e7"}.fa-v:before{content:"V"}.fa-van-shuttle:before{content:"\f5b6"}.fa-shuttle-van:before{content:"\f5b6"}.fa-vault:before{content:"\e2c5"}.fa-vector-square:before{content:"\f5cb"}.fa-venus:before{content:"\f221"}.fa-venus-double:before{content:"\f226"}.fa-venus-mars:before{content:"\f228"}.fa-vest:before{content:"\e085"}.fa-vest-patches:before{content:"\e086"}.fa-vial:before{content:"\f492"}.fa-vial-circle-check:before{content:"\e596"}.fa-vial-virus:before{content:"\e597"}.fa-vials:before{content:"\f493"}.fa-video:before{content:"\f03d"}.fa-video-camera:before{content:"\f03d"}.fa-video-slash:before{content:"\f4e2"}.fa-vihara:before{content:"\f6a7"}.fa-virus:before{content:"\e074"}.fa-virus-covid:before{content:"\e4a8"}.fa-virus-covid-slash:before{content:"\e4a9"}.fa-virus-slash:before{content:"\e075"}.fa-viruses:before{content:"\e076"}.fa-voicemail:before{content:"\f897"}.fa-volcano:before{content:"\f770"}.fa-volleyball:before{content:"\f45f"}.fa-volleyball-ball:before{content:"\f45f"}.fa-volume-high:before{content:"\f028"}.fa-volume-up:before{content:"\f028"}.fa-volume-low:before{content:"\f027"}.fa-volume-down:before{content:"\f027"}.fa-volume-off:before{content:"\f026"}.fa-volume-xmark:before{content:"\f6a9"}.fa-volume-mute:before{content:"\f6a9"}.fa-volume-times:before{content:"\f6a9"}.fa-vr-cardboard:before{content:"\f729"}.fa-w:before{content:"W"}.fa-walkie-talkie:before{content:"\f8ef"}.fa-wallet:before{content:"\f555"}.fa-wand-magic:before{content:"\f0d0"}.fa-magic:before{content:"\f0d0"}.fa-wand-magic-sparkles:before{content:"\e2ca"}.fa-magic-wand-sparkles:before{content:"\e2ca"}.fa-wand-sparkles:before{content:"\f72b"}.fa-warehouse:before{content:"\f494"}.fa-water:before{content:"\f773"}.fa-water-ladder:before{content:"\f5c5"}.fa-ladder-water:before{content:"\f5c5"}.fa-swimming-pool:before{content:"\f5c5"}.fa-wave-square:before{content:"\f83e"}.fa-weight-hanging:before{content:"\f5cd"}.fa-weight-scale:before{content:"\f496"}.fa-weight:before{content:"\f496"}.fa-wheat-awn:before{content:"\e2cd"}.fa-wheat-alt:before{content:"\e2cd"}.fa-wheat-awn-circle-exclamation:before{content:"\e598"}.fa-wheelchair:before{content:"\f193"}.fa-wheelchair-move:before{content:"\e2ce"}.fa-wheelchair-alt:before{content:"\e2ce"}.fa-whiskey-glass:before{content:"\f7a0"}.fa-glass-whiskey:before{content:"\f7a0"}.fa-wifi:before{content:"\f1eb"}.fa-wifi-3:before{content:"\f1eb"}.fa-wifi-strong:before{content:"\f1eb"}.fa-wind:before{content:"\f72e"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-wine-bottle:before{content:"\f72f"}.fa-wine-glass:before{content:"\f4e3"}.fa-wine-glass-empty:before{content:"\f5ce"}.fa-wine-glass-alt:before{content:"\f5ce"}.fa-won-sign:before{content:"\f159"}.fa-krw:before{content:"\f159"}.fa-won:before{content:"\f159"}.fa-worm:before{content:"\e599"}.fa-wrench:before{content:"\f0ad"}.fa-x:before{content:"X"}.fa-x-ray:before{content:"\f497"}.fa-xmark:before{content:"\f00d"}.fa-close:before{content:"\f00d"}.fa-multiply:before{content:"\f00d"}.fa-remove:before{content:"\f00d"}.fa-times:before{content:"\f00d"}.fa-xmarks-lines:before{content:"\e59a"}.fa-y:before{content:"Y"}.fa-yen-sign:before{content:"\f157"}.fa-cny:before{content:"\f157"}.fa-jpy:before{content:"\f157"}.fa-rmb:before{content:"\f157"}.fa-yen:before{content:"\f157"}.fa-yin-yang:before{content:"\f6ad"}.fa-z:before{content:"Z"}.sr-only,.fa-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.sr-only-focusable:not(:focus),.fa-sr-only-focusable:not(:focus){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}:root,:host{--fa-font-brands: normal 400 1em/1 "Font Awesome 6 Brands"}@font-face{font-family:"Font Awesome 6 Brands";font-style:normal;font-weight:400;font-display:block;src:url(/exadmin/assets/fa-brands-400.404c746c.woff2) format("woff2"),url(/exadmin/assets/fa-brands-400.e523f49c.ttf) format("truetype")}.fab,.fa-brands{font-family:"Font Awesome 6 Brands";font-weight:400}.fa-42-group:before{content:"\e080"}.fa-innosoft:before{content:"\e080"}.fa-500px:before{content:"\f26e"}.fa-accessible-icon:before{content:"\f368"}.fa-accusoft:before{content:"\f369"}.fa-adn:before{content:"\f170"}.fa-adversal:before{content:"\f36a"}.fa-affiliatetheme:before{content:"\f36b"}.fa-airbnb:before{content:"\f834"}.fa-algolia:before{content:"\f36c"}.fa-alipay:before{content:"\f642"}.fa-amazon:before{content:"\f270"}.fa-amazon-pay:before{content:"\f42c"}.fa-amilia:before{content:"\f36d"}.fa-android:before{content:"\f17b"}.fa-angellist:before{content:"\f209"}.fa-angrycreative:before{content:"\f36e"}.fa-angular:before{content:"\f420"}.fa-app-store:before{content:"\f36f"}.fa-app-store-ios:before{content:"\f370"}.fa-apper:before{content:"\f371"}.fa-apple:before{content:"\f179"}.fa-apple-pay:before{content:"\f415"}.fa-artstation:before{content:"\f77a"}.fa-asymmetrik:before{content:"\f372"}.fa-atlassian:before{content:"\f77b"}.fa-audible:before{content:"\f373"}.fa-autoprefixer:before{content:"\f41c"}.fa-avianex:before{content:"\f374"}.fa-aviato:before{content:"\f421"}.fa-aws:before{content:"\f375"}.fa-bandcamp:before{content:"\f2d5"}.fa-battle-net:before{content:"\f835"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-bilibili:before{content:"\e3d9"}.fa-bimobject:before{content:"\f378"}.fa-bitbucket:before{content:"\f171"}.fa-bitcoin:before{content:"\f379"}.fa-bity:before{content:"\f37a"}.fa-black-tie:before{content:"\f27e"}.fa-blackberry:before{content:"\f37b"}.fa-blogger:before{content:"\f37c"}.fa-blogger-b:before{content:"\f37d"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-bootstrap:before{content:"\f836"}.fa-bots:before{content:"\e340"}.fa-btc:before{content:"\f15a"}.fa-buffer:before{content:"\f837"}.fa-buromobelexperte:before{content:"\f37f"}.fa-buy-n-large:before{content:"\f8a6"}.fa-buysellads:before{content:"\f20d"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-apple-pay:before{content:"\f416"}.fa-cc-diners-club:before{content:"\f24c"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-cc-visa:before{content:"\f1f0"}.fa-centercode:before{content:"\f380"}.fa-centos:before{content:"\f789"}.fa-chrome:before{content:"\f268"}.fa-chromecast:before{content:"\f838"}.fa-cloudflare:before{content:"\e07d"}.fa-cloudscale:before{content:"\f383"}.fa-cloudsmith:before{content:"\f384"}.fa-cloudversify:before{content:"\f385"}.fa-cmplid:before{content:"\e360"}.fa-codepen:before{content:"\f1cb"}.fa-codiepie:before{content:"\f284"}.fa-confluence:before{content:"\f78d"}.fa-connectdevelop:before{content:"\f20e"}.fa-contao:before{content:"\f26d"}.fa-cotton-bureau:before{content:"\f89e"}.fa-cpanel:before{content:"\f388"}.fa-creative-commons:before{content:"\f25e"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-critical-role:before{content:"\f6c9"}.fa-css3:before{content:"\f13c"}.fa-css3-alt:before{content:"\f38b"}.fa-cuttlefish:before{content:"\f38c"}.fa-d-and-d:before{content:"\f38d"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-dailymotion:before{content:"\e052"}.fa-dashcube:before{content:"\f210"}.fa-deezer:before{content:"\e077"}.fa-delicious:before{content:"\f1a5"}.fa-deploydog:before{content:"\f38e"}.fa-deskpro:before{content:"\f38f"}.fa-dev:before{content:"\f6cc"}.fa-deviantart:before{content:"\f1bd"}.fa-dhl:before{content:"\f790"}.fa-diaspora:before{content:"\f791"}.fa-digg:before{content:"\f1a6"}.fa-digital-ocean:before{content:"\f391"}.fa-discord:before{content:"\f392"}.fa-discourse:before{content:"\f393"}.fa-dochub:before{content:"\f394"}.fa-docker:before{content:"\f395"}.fa-draft2digital:before{content:"\f396"}.fa-dribbble:before{content:"\f17d"}.fa-dribbble-square:before{content:"\f397"}.fa-dropbox:before{content:"\f16b"}.fa-drupal:before{content:"\f1a9"}.fa-dyalog:before{content:"\f399"}.fa-earlybirds:before{content:"\f39a"}.fa-ebay:before{content:"\f4f4"}.fa-edge:before{content:"\f282"}.fa-edge-legacy:before{content:"\e078"}.fa-elementor:before{content:"\f430"}.fa-ello:before{content:"\f5f1"}.fa-ember:before{content:"\f423"}.fa-empire:before{content:"\f1d1"}.fa-envira:before{content:"\f299"}.fa-erlang:before{content:"\f39d"}.fa-ethereum:before{content:"\f42e"}.fa-etsy:before{content:"\f2d7"}.fa-evernote:before{content:"\f839"}.fa-expeditedssl:before{content:"\f23e"}.fa-facebook:before{content:"\f09a"}.fa-facebook-f:before{content:"\f39e"}.fa-facebook-messenger:before{content:"\f39f"}.fa-facebook-square:before{content:"\f082"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-fedex:before{content:"\f797"}.fa-fedora:before{content:"\f798"}.fa-figma:before{content:"\f799"}.fa-firefox:before{content:"\f269"}.fa-firefox-browser:before{content:"\e007"}.fa-first-order:before{content:"\f2b0"}.fa-first-order-alt:before{content:"\f50a"}.fa-firstdraft:before{content:"\f3a1"}.fa-flickr:before{content:"\f16e"}.fa-flipboard:before{content:"\f44d"}.fa-fly:before{content:"\f417"}.fa-font-awesome:before{content:"\f2b4"}.fa-font-awesome-flag:before{content:"\f2b4"}.fa-font-awesome-logo-full:before{content:"\f2b4"}.fa-fonticons:before{content:"\f280"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-fort-awesome:before{content:"\f286"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-forumbee:before{content:"\f211"}.fa-foursquare:before{content:"\f180"}.fa-free-code-camp:before{content:"\f2c5"}.fa-freebsd:before{content:"\f3a4"}.fa-fulcrum:before{content:"\f50b"}.fa-galactic-republic:before{content:"\f50c"}.fa-galactic-senate:before{content:"\f50d"}.fa-get-pocket:before{content:"\f265"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-git:before{content:"\f1d3"}.fa-git-alt:before{content:"\f841"}.fa-git-square:before{content:"\f1d2"}.fa-github:before{content:"\f09b"}.fa-github-alt:before{content:"\f113"}.fa-github-square:before{content:"\f092"}.fa-gitkraken:before{content:"\f3a6"}.fa-gitlab:before{content:"\f296"}.fa-gitter:before{content:"\f426"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-gofore:before{content:"\f3a7"}.fa-golang:before{content:"\e40f"}.fa-goodreads:before{content:"\f3a8"}.fa-goodreads-g:before{content:"\f3a9"}.fa-google:before{content:"\f1a0"}.fa-google-drive:before{content:"\f3aa"}.fa-google-pay:before{content:"\e079"}.fa-google-play:before{content:"\f3ab"}.fa-google-plus:before{content:"\f2b3"}.fa-google-plus-g:before{content:"\f0d5"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-wallet:before{content:"\f1ee"}.fa-gratipay:before{content:"\f184"}.fa-grav:before{content:"\f2d6"}.fa-gripfire:before{content:"\f3ac"}.fa-grunt:before{content:"\f3ad"}.fa-guilded:before{content:"\e07e"}.fa-gulp:before{content:"\f3ae"}.fa-hacker-news:before{content:"\f1d4"}.fa-hacker-news-square:before{content:"\f3af"}.fa-hackerrank:before{content:"\f5f7"}.fa-hashnode:before{content:"\e499"}.fa-hips:before{content:"\f452"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-hive:before{content:"\e07f"}.fa-hooli:before{content:"\f427"}.fa-hornbill:before{content:"\f592"}.fa-hotjar:before{content:"\f3b1"}.fa-houzz:before{content:"\f27c"}.fa-html5:before{content:"\f13b"}.fa-hubspot:before{content:"\f3b2"}.fa-ideal:before{content:"\e013"}.fa-imdb:before{content:"\f2d8"}.fa-instagram:before{content:"\f16d"}.fa-instagram-square:before{content:"\e055"}.fa-instalod:before{content:"\e081"}.fa-intercom:before{content:"\f7af"}.fa-internet-explorer:before{content:"\f26b"}.fa-invision:before{content:"\f7b0"}.fa-ioxhost:before{content:"\f208"}.fa-itch-io:before{content:"\f83a"}.fa-itunes:before{content:"\f3b4"}.fa-itunes-note:before{content:"\f3b5"}.fa-java:before{content:"\f4e4"}.fa-jedi-order:before{content:"\f50e"}.fa-jenkins:before{content:"\f3b6"}.fa-jira:before{content:"\f7b1"}.fa-joget:before{content:"\f3b7"}.fa-joomla:before{content:"\f1aa"}.fa-js:before{content:"\f3b8"}.fa-js-square:before{content:"\f3b9"}.fa-jsfiddle:before{content:"\f1cc"}.fa-kaggle:before{content:"\f5fa"}.fa-keybase:before{content:"\f4f5"}.fa-keycdn:before{content:"\f3ba"}.fa-kickstarter:before{content:"\f3bb"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-korvue:before{content:"\f42f"}.fa-laravel:before{content:"\f3bd"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-leanpub:before{content:"\f212"}.fa-less:before{content:"\f41d"}.fa-line:before{content:"\f3c0"}.fa-linkedin:before{content:"\f08c"}.fa-linkedin-in:before{content:"\f0e1"}.fa-linode:before{content:"\f2b8"}.fa-linux:before{content:"\f17c"}.fa-lyft:before{content:"\f3c3"}.fa-magento:before{content:"\f3c4"}.fa-mailchimp:before{content:"\f59e"}.fa-mandalorian:before{content:"\f50f"}.fa-markdown:before{content:"\f60f"}.fa-mastodon:before{content:"\f4f6"}.fa-maxcdn:before{content:"\f136"}.fa-mdb:before{content:"\f8ca"}.fa-medapps:before{content:"\f3c6"}.fa-medium:before{content:"\f23a"}.fa-medium-m:before{content:"\f23a"}.fa-medrt:before{content:"\f3c8"}.fa-meetup:before{content:"\f2e0"}.fa-megaport:before{content:"\f5a3"}.fa-mendeley:before{content:"\f7b3"}.fa-microblog:before{content:"\e01a"}.fa-microsoft:before{content:"\f3ca"}.fa-mix:before{content:"\f3cb"}.fa-mixcloud:before{content:"\f289"}.fa-mixer:before{content:"\e056"}.fa-mizuni:before{content:"\f3cc"}.fa-modx:before{content:"\f285"}.fa-monero:before{content:"\f3d0"}.fa-napster:before{content:"\f3d2"}.fa-neos:before{content:"\f612"}.fa-nfc-directional:before{content:"\e530"}.fa-nfc-symbol:before{content:"\e531"}.fa-nimblr:before{content:"\f5a8"}.fa-node:before{content:"\f419"}.fa-node-js:before{content:"\f3d3"}.fa-npm:before{content:"\f3d4"}.fa-ns8:before{content:"\f3d5"}.fa-nutritionix:before{content:"\f3d6"}.fa-octopus-deploy:before{content:"\e082"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-old-republic:before{content:"\f510"}.fa-opencart:before{content:"\f23d"}.fa-openid:before{content:"\f19b"}.fa-opera:before{content:"\f26a"}.fa-optin-monster:before{content:"\f23c"}.fa-orcid:before{content:"\f8d2"}.fa-osi:before{content:"\f41a"}.fa-padlet:before{content:"\e4a0"}.fa-page4:before{content:"\f3d7"}.fa-pagelines:before{content:"\f18c"}.fa-palfed:before{content:"\f3d8"}.fa-patreon:before{content:"\f3d9"}.fa-paypal:before{content:"\f1ed"}.fa-perbyte:before{content:"\e083"}.fa-periscope:before{content:"\f3da"}.fa-phabricator:before{content:"\f3db"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-phoenix-squadron:before{content:"\f511"}.fa-php:before{content:"\f457"}.fa-pied-piper:before{content:"\f2ae"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-square:before{content:"\e01e"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-p:before{content:"\f231"}.fa-pinterest-square:before{content:"\f0d3"}.fa-pix:before{content:"\e43a"}.fa-playstation:before{content:"\f3df"}.fa-product-hunt:before{content:"\f288"}.fa-pushed:before{content:"\f3e1"}.fa-python:before{content:"\f3e2"}.fa-qq:before{content:"\f1d6"}.fa-quinscape:before{content:"\f459"}.fa-quora:before{content:"\f2c4"}.fa-r-project:before{content:"\f4f7"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-ravelry:before{content:"\f2d9"}.fa-react:before{content:"\f41b"}.fa-reacteurope:before{content:"\f75d"}.fa-readme:before{content:"\f4d5"}.fa-rebel:before{content:"\f1d0"}.fa-red-river:before{content:"\f3e3"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-alien:before{content:"\f281"}.fa-reddit-square:before{content:"\f1a2"}.fa-redhat:before{content:"\f7bc"}.fa-renren:before{content:"\f18b"}.fa-replyd:before{content:"\f3e6"}.fa-researchgate:before{content:"\f4f8"}.fa-resolving:before{content:"\f3e7"}.fa-rev:before{content:"\f5b2"}.fa-rocketchat:before{content:"\f3e8"}.fa-rockrms:before{content:"\f3e9"}.fa-rust:before{content:"\e07a"}.fa-safari:before{content:"\f267"}.fa-salesforce:before{content:"\f83b"}.fa-sass:before{content:"\f41e"}.fa-schlix:before{content:"\f3ea"}.fa-screenpal:before{content:"\e570"}.fa-scribd:before{content:"\f28a"}.fa-searchengin:before{content:"\f3eb"}.fa-sellcast:before{content:"\f2da"}.fa-sellsy:before{content:"\f213"}.fa-servicestack:before{content:"\f3ec"}.fa-shirtsinbulk:before{content:"\f214"}.fa-shopify:before{content:"\e057"}.fa-shopware:before{content:"\f5b5"}.fa-simplybuilt:before{content:"\f215"}.fa-sistrix:before{content:"\f3ee"}.fa-sith:before{content:"\f512"}.fa-sitrox:before{content:"\e44a"}.fa-sketch:before{content:"\f7c6"}.fa-skyatlas:before{content:"\f216"}.fa-skype:before{content:"\f17e"}.fa-slack:before{content:"\f198"}.fa-slack-hash:before{content:"\f198"}.fa-slideshare:before{content:"\f1e7"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ab"}.fa-snapchat-square:before{content:"\f2ad"}.fa-soundcloud:before{content:"\f1be"}.fa-sourcetree:before{content:"\f7d3"}.fa-speakap:before{content:"\f3f3"}.fa-speaker-deck:before{content:"\f83c"}.fa-spotify:before{content:"\f1bc"}.fa-square-font-awesome:before{content:"\f425"}.fa-square-font-awesome-stroke:before{content:"\f35c"}.fa-font-awesome-alt:before{content:"\f35c"}.fa-squarespace:before{content:"\f5be"}.fa-stack-exchange:before{content:"\f18d"}.fa-stack-overflow:before{content:"\f16c"}.fa-stackpath:before{content:"\f842"}.fa-staylinked:before{content:"\f3f5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-steam-symbol:before{content:"\f3f6"}.fa-sticker-mule:before{content:"\f3f7"}.fa-strava:before{content:"\f428"}.fa-stripe:before{content:"\f429"}.fa-stripe-s:before{content:"\f42a"}.fa-studiovinari:before{content:"\f3f8"}.fa-stumbleupon:before{content:"\f1a4"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-superpowers:before{content:"\f2dd"}.fa-supple:before{content:"\f3f9"}.fa-suse:before{content:"\f7d6"}.fa-swift:before{content:"\f8e1"}.fa-symfony:before{content:"\f83d"}.fa-teamspeak:before{content:"\f4f9"}.fa-telegram:before{content:"\f2c6"}.fa-telegram-plane:before{content:"\f2c6"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-the-red-yeti:before{content:"\f69d"}.fa-themeco:before{content:"\f5c6"}.fa-themeisle:before{content:"\f2b2"}.fa-think-peaks:before{content:"\f731"}.fa-tiktok:before{content:"\e07b"}.fa-trade-federation:before{content:"\f513"}.fa-trello:before{content:"\f181"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-twitch:before{content:"\f1e8"}.fa-twitter:before{content:"\f099"}.fa-twitter-square:before{content:"\f081"}.fa-typo3:before{content:"\f42b"}.fa-uber:before{content:"\f402"}.fa-ubuntu:before{content:"\f7df"}.fa-uikit:before{content:"\f403"}.fa-umbraco:before{content:"\f8e8"}.fa-uncharted:before{content:"\e084"}.fa-uniregistry:before{content:"\f404"}.fa-unity:before{content:"\e049"}.fa-unsplash:before{content:"\e07c"}.fa-untappd:before{content:"\f405"}.fa-ups:before{content:"\f7e0"}.fa-usb:before{content:"\f287"}.fa-usps:before{content:"\f7e1"}.fa-ussunnah:before{content:"\f407"}.fa-vaadin:before{content:"\f408"}.fa-viacoin:before{content:"\f237"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-viber:before{content:"\f409"}.fa-vimeo:before{content:"\f40a"}.fa-vimeo-square:before{content:"\f194"}.fa-vimeo-v:before{content:"\f27d"}.fa-vine:before{content:"\f1ca"}.fa-vk:before{content:"\f189"}.fa-vnv:before{content:"\f40b"}.fa-vuejs:before{content:"\f41f"}.fa-watchman-monitoring:before{content:"\e087"}.fa-waze:before{content:"\f83f"}.fa-weebly:before{content:"\f5cc"}.fa-weibo:before{content:"\f18a"}.fa-weixin:before{content:"\f1d7"}.fa-whatsapp:before{content:"\f232"}.fa-whatsapp-square:before{content:"\f40c"}.fa-whmcs:before{content:"\f40d"}.fa-wikipedia-w:before{content:"\f266"}.fa-windows:before{content:"\f17a"}.fa-wirsindhandwerk:before{content:"\e2d0"}.fa-wsh:before{content:"\e2d0"}.fa-wix:before{content:"\f5cf"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-wodu:before{content:"\e088"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-wordpress:before{content:"\f19a"}.fa-wordpress-simple:before{content:"\f411"}.fa-wpbeginner:before{content:"\f297"}.fa-wpexplorer:before{content:"\f2de"}.fa-wpforms:before{content:"\f298"}.fa-wpressr:before{content:"\f3e4"}.fa-xbox:before{content:"\f412"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-y-combinator:before{content:"\f23b"}.fa-yahoo:before{content:"\f19e"}.fa-yammer:before{content:"\f840"}.fa-yandex:before{content:"\f413"}.fa-yandex-international:before{content:"\f414"}.fa-yarn:before{content:"\f7e3"}.fa-yelp:before{content:"\f1e9"}.fa-yoast:before{content:"\f2b1"}.fa-youtube:before{content:"\f167"}.fa-youtube-square:before{content:"\f431"}.fa-zhihu:before{content:"\f63f"}:root,:host{--fa-font-regular: normal 400 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:400;font-display:block;src:url(/exadmin/assets/fa-regular-400.6a274e76.woff2) format("woff2"),url(/exadmin/assets/fa-regular-400.4e96a7e0.ttf) format("truetype")}.far,.fa-regular{font-family:"Font Awesome 6 Free";font-weight:400}:root,:host{--fa-font-solid: normal 900 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:900;font-display:block;src:url(/exadmin/assets/fa-solid-900.d76fb4e8.woff2) format("woff2"),url(/exadmin/assets/fa-solid-900.03f2986c.ttf) format("truetype")}.fas,.fa-solid{font-family:"Font Awesome 6 Free";font-weight:900}@font-face{font-family:"Font Awesome 5 Brands";font-display:block;font-weight:400;src:url(/exadmin/assets/fa-brands-400.404c746c.woff2) format("woff2"),url(/exadmin/assets/fa-brands-400.e523f49c.ttf) format("truetype")}@font-face{font-family:"Font Awesome 5 Free";font-display:block;font-weight:900;src:url(/exadmin/assets/fa-solid-900.d76fb4e8.woff2) format("woff2"),url(/exadmin/assets/fa-solid-900.03f2986c.ttf) format("truetype")}@font-face{font-family:"Font Awesome 5 Free";font-display:block;font-weight:400;src:url(/exadmin/assets/fa-regular-400.6a274e76.woff2) format("woff2"),url(/exadmin/assets/fa-regular-400.4e96a7e0.ttf) format("truetype")}@font-face{font-family:FontAwesome;font-display:block;src:url(/exadmin/assets/fa-brands-400.404c746c.woff2) format("woff2"),url(/exadmin/assets/fa-brands-400.e523f49c.ttf) format("truetype")}@font-face{font-family:FontAwesome;font-display:block;src:url(/exadmin/assets/fa-regular-400.6a274e76.woff2) format("woff2"),url(/exadmin/assets/fa-regular-400.4e96a7e0.ttf) format("truetype");unicode-range:U+F003,U+F006,U+F014,U+F016-F017,U+F01A-F01B,U+F01D,U+F022,U+F03E,U+F044,U+F046,U+F05C-F05D,U+F06E,U+F070,U+F087-F088,U+F08A,U+F094,U+F096-F097,U+F09D,U+F0A0,U+F0A2,U+F0A4-F0A7,U+F0C5,U+F0C7,U+F0E5-F0E6,U+F0EB,U+F0F6-F0F8,U+F10C,U+F114-F115,U+F118-F11A,U+F11C-F11D,U+F133,U+F147,U+F14E,U+F150-F152,U+F185-F186,U+F18E,U+F190-F192,U+F196,U+F1C1-F1C9,U+F1D9,U+F1DB,U+F1E3,U+F1EA,U+F1F7,U+F1F9,U+F20A,U+F247-F248,U+F24A,U+F24D,U+F255-F25B,U+F25D,U+F271-F274,U+F278,U+F27B,U+F28C,U+F28E,U+F29C,U+F2B5,U+F2B7,U+F2BA,U+F2BC,U+F2BE,U+F2C0-F2C1,U+F2C3,U+F2D0,U+F2D2,U+F2D4,U+F2DC}@font-face{font-family:FontAwesome;font-display:block;src:url(/exadmin/assets/fa-v4compatibility.0db31bef.woff2) format("woff2"),url(/exadmin/assets/fa-v4compatibility.86a687cf.ttf) format("truetype");unicode-range:U+F041,U+F047,U+F065-F066,U+F07D-F07E,U+F080,U+F08B,U+F08E,U+F090,U+F09A,U+F0AC,U+F0AE,U+F0B2,U+F0D0,U+F0D6,U+F0E4,U+F0EC,U+F10A-F10B,U+F123,U+F13E,U+F148-F149,U+F14C,U+F156,U+F15E,U+F160-F161,U+F163,U+F175-F178,U+F195,U+F1F8,U+F219,U+F250,U+F252,U+F27A} diff --git a/public/exadmin/assets/@kangc.1dc16e06.css b/public/exadmin/assets/@kangc.1dc16e06.css new file mode 100644 index 0000000..89b14d1 --- /dev/null +++ b/public/exadmin/assets/@kangc.1dc16e06.css @@ -0,0 +1 @@ +.v-md-textarea-editor{position:relative}.v-md-textarea-editor pre{margin:0;white-space:pre-wrap;visibility:hidden}.v-md-textarea-editor pre,.v-md-textarea-editor textarea{box-sizing:border-box;padding:20px 20px 30px;overflow:hidden;color:#2c3e50;font-size:14px;font-family:menlo,Ubuntu Mono,consolas,Courier New,Microsoft Yahei,Hiragino Sans GB,WenQuanYi Micro Hei,sans-serif;line-height:1.5;word-break:break-all}.v-md-textarea-editor textarea{position:absolute;top:0;left:0;width:100%;height:100%;border:none;outline:none;resize:none}.v-md-textarea-editor textarea::-webkit-input-placeholder{color:#c0c4cc}.v-md-textarea-editor textarea::placeholder{color:#c0c4cc}.v-md-zoom-in-top-enter-active,.v-md-zoom-in-top-leave-active{-webkit-transform:scaleY(1);transform:scaleY(1);opacity:1;-webkit-transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1)}.v-md-zoom-in-top-enter-from,.v-md-zoom-in-top-leave-active{-webkit-transform:scaleY(0);transform:scaleY(0);opacity:0}.v-md-fade-in-enter-active,.v-md-fade-in-leave-active{-webkit-transition:opacity .3s cubic-bezier(.55,0,.1,1);transition:opacity .3s cubic-bezier(.55,0,.1,1)}.v-md-fade-in-enter-from,.v-md-fade-in-leave-active{opacity:0}@font-face{font-family:v-md-iconfont;src:url(data:application/vnd.ms-fontobject;base64,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AT4BLwE3NicBBjIEBAa0BAYBFQEJBTGXBgYwBQX2BgaXMQUJARUBBgS0BgQEMpcFBQETAQkFMZcGBjAFBZcyBAQGtAQGAf3iBgaXMQUJARUBBgS0BgQEMpcFBQK2MQUJARUBBgS0BgQEMpcFBTAGBjwFBZcyBAQGtAQGARUBCQUxlwYG/p8GBAQylwUFMAYGlzEFCQEVAQYEAR8FBZcyBAQGtAQGARUBCQUxlwYGAAAAAAASAN4AAQAAAAAAAAAVAAAAAQAAAAAAAQALABUAAQAAAAAAAgAHACAAAQAAAAAAAwALACcAAQAAAAAABAALADIAAQAAAAAABQALAD0AAQAAAAAABgALAEgAAQAAAAAACgArAFMAAQAAAAAACwATAH4AAwABBAkAAAAqAJEAAwABBAkAAQAWALsAAwABBAkAAgAOANEAAwABBAkAAwAWAN8AAwABBAkABAAWAPUAAwABBAkABQAWAQsAAwABBAkABgAWASEAAwABBAkACgBWATcAAwABBAkACwAmAY0KQ3JlYXRlZCBieSBpY29uZm9udAp2LW1kLWVkaXRvclJlZ3VsYXJ2LW1kLWVkaXRvcnYtbWQtZWRpdG9yVmVyc2lvbiAxLjB2LW1kLWVkaXRvckdlbmVyYXRlZCBieSBzdmcydHRmIGZyb20gRm9udGVsbG8gcHJvamVjdC5odHRwOi8vZm9udGVsbG8uY29tAAoAQwByAGUAYQB0AGUAZAAgAGIAeQAgAGkAYwBvAG4AZgBvAG4AdAAKAHYALQBtAGQALQBlAGQAaQB0AG8AcgBSAGUAZwB1AGwAYQByAHYALQBtAGQALQBlAGQAaQB0AG8AcgB2AC0AbQBkAC0AZQBkAGkAdABvAHIAVgBlAHIAcwBpAG8AbgAgADEALgAwAHYALQBtAGQALQBlAGQAaQB0AG8AcgBHAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAHMAdgBnADIAdAB0AGYAIABmAHIAbwBtACAARgBvAG4AdABlAGwAbABvACAAcAByAG8AagBlAGMAdAAuAGgAdAB0AHAAOgAvAC8AZgBvAG4AdABlAGwAbABvAC4AYwBvAG0AAAAAAgAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAQIBAwEEAQUBBgEHAQgBCQEKAQsBDAENAQ4BDwEQAREBEgETARQBFQEWARcBGAEZARoBGwEcAR0BHgEfAAdwcmV2aWV3DXJlZnJlc2gtcmlnaHQMcmVmcmVzaC1sZWZ0B3pvb20taW4Iem9vbS1vdXQDdG9jBHN5bmMFZW1vamkIY2hlY2tib3gFY2xlYXIDdGlwBHNhdmUEbGluawNpbWcEY29kZQJ1bAJvbARyZWRvBHVuZG8FcXVvdGUEYm9sZA1zdHJpa2V0aHJvdWdoCmFycm93LWRvd24Lb3Blbi1pbi1uZXcKdW5kZXItbGluZQZpdGFsaWMKaG9yaXpvbnRhbAV0YWJsZQpmdWxsc2NyZWVuAAA=);src:url(data:application/vnd.ms-fontobject;base64,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AT4BLwE3NicBBjIEBAa0BAYBFQEJBTGXBgYwBQX2BgaXMQUJARUBBgS0BgQEMpcFBQETAQkFMZcGBjAFBZcyBAQGtAQGAf3iBgaXMQUJARUBBgS0BgQEMpcFBQK2MQUJARUBBgS0BgQEMpcFBTAGBjwFBZcyBAQGtAQGARUBCQUxlwYG/p8GBAQylwUFMAYGlzEFCQEVAQYEAR8FBZcyBAQGtAQGARUBCQUxlwYGAAAAAAASAN4AAQAAAAAAAAAVAAAAAQAAAAAAAQALABUAAQAAAAAAAgAHACAAAQAAAAAAAwALACcAAQAAAAAABAALADIAAQAAAAAABQALAD0AAQAAAAAABgALAEgAAQAAAAAACgArAFMAAQAAAAAACwATAH4AAwABBAkAAAAqAJEAAwABBAkAAQAWALsAAwABBAkAAgAOANEAAwABBAkAAwAWAN8AAwABBAkABAAWAPUAAwABBAkABQAWAQsAAwABBAkABgAWASEAAwABBAkACgBWATcAAwABBAkACwAmAY0KQ3JlYXRlZCBieSBpY29uZm9udAp2LW1kLWVkaXRvclJlZ3VsYXJ2LW1kLWVkaXRvcnYtbWQtZWRpdG9yVmVyc2lvbiAxLjB2LW1kLWVkaXRvckdlbmVyYXRlZCBieSBzdmcydHRmIGZyb20gRm9udGVsbG8gcHJvamVjdC5odHRwOi8vZm9udGVsbG8uY29tAAoAQwByAGUAYQB0AGUAZAAgAGIAeQAgAGkAYwBvAG4AZgBvAG4AdAAKAHYALQBtAGQALQBlAGQAaQB0AG8AcgBSAGUAZwB1AGwAYQByAHYALQBtAGQALQBlAGQAaQB0AG8AcgB2AC0AbQBkAC0AZQBkAGkAdABvAHIAVgBlAHIAcwBpAG8AbgAgADEALgAwAHYALQBtAGQALQBlAGQAaQB0AG8AcgBHAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAHMAdgBnADIAdAB0AGYAIABmAHIAbwBtACAARgBvAG4AdABlAGwAbABvACAAcAByAG8AagBlAGMAdAAuAGgAdAB0AHAAOgAvAC8AZgBvAG4AdABlAGwAbABvAC4AYwBvAG0AAAAAAgAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAQIBAwEEAQUBBgEHAQgBCQEKAQsBDAENAQ4BDwEQAREBEgETARQBFQEWARcBGAEZARoBGwEcAR0BHgEfAAdwcmV2aWV3DXJlZnJlc2gtcmlnaHQMcmVmcmVzaC1sZWZ0B3pvb20taW4Iem9vbS1vdXQDdG9jBHN5bmMFZW1vamkIY2hlY2tib3gFY2xlYXIDdGlwBHNhdmUEbGluawNpbWcEY29kZQJ1bAJvbARyZWRvBHVuZG8FcXVvdGUEYm9sZA1zdHJpa2V0aHJvdWdoCmFycm93LWRvd24Lb3Blbi1pbi1uZXcKdW5kZXItbGluZQZpdGFsaWMKaG9yaXpvbnRhbAV0YWJsZQpmdWxsc2NyZWVuAAA=#iefix) format("embedded-opentype"),url(data:application/x-font-woff2;charset=utf-8;base64,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) format("woff2"),url(data:font/woff;base64,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) format("woff"),url(data:font/ttf;base64,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) format("truetype")}[class*=v-md-icon-]{font-size:16px;font-family:v-md-iconfont!important;font-style:normal!important;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.v-md-icon-preview:before{content:"\e618"}.v-md-icon-refresh-right:before{content:"\e614"}.v-md-icon-refresh-left:before{content:"\e615"}.v-md-icon-zoom-in:before{content:"\e616"}.v-md-icon-zoom-out:before{content:"\e617"}.v-md-icon-toc:before{content:"\eb28"}.v-md-icon-sync:before{content:"\e670"}.v-md-icon-emoji:before{content:"\e67b"}.v-md-icon-checkbox:before{content:"\e740"}.v-md-icon-clear:before{content:"\e6ec"}.v-md-icon-tip:before{content:"\e8f1"}.v-md-icon-save:before{content:"\e624"}.v-md-icon-link:before{content:"\e6fe"}.v-md-icon-img:before{content:"\e702"}.v-md-icon-code:before{content:"\e707"}.v-md-icon-ul:before{content:"\e710"}.v-md-icon-ol:before{content:"\e711"}.v-md-icon-redo:before{content:"\e6f1"}.v-md-icon-undo:before{content:"\e6f0"}.v-md-icon-quote:before{content:"\e6b3"}.v-md-icon-bold:before{content:"\e7c1"}.v-md-icon-strikethrough:before{content:"\e70f"}.v-md-icon-arrow-down:before{content:"\e623"}.v-md-icon-open-in-new:before{content:"\e641"}.v-md-icon-under-line:before{content:"\e611"}.v-md-icon-italic:before{content:"\e610"}.v-md-icon-horizontal:before{content:"\e60e"}.v-md-icon-table:before{content:"\e60c"}.v-md-icon-fullscreen:before{content:"\e606"}.v-md-editor__tooltip{z-index:101;padding:4px 6px;color:#fff;font-size:12px;line-height:1;white-space:nowrap;background-color:#878787;border-radius:2px}.v-md-editor__menu,.v-md-editor__tooltip{position:absolute;box-shadow:0 2px 12px #0000001a}.v-md-editor__menu{top:38px;z-index:99;list-style:none;background-color:#fff;border-radius:3px;-webkit-transform-origin:center top;transform-origin:center top}.v-md-editor__menu::-webkit-scrollbar{width:6px}.v-md-editor__menu::-webkit-scrollbar-thumb{background-color:#9093994d;border-radius:4px}.v-md-editor__menu::-webkit-scrollbar-thumb:hover{background-color:#90939980}.v-md-editor__menu-item{color:#595959;font-weight:400;font-size:14px;white-space:nowrap;list-style:none}.v-md-editor__menu-item:hover{background-color:#f5f5f5}.v-md-editor__menu--list{padding:5px 0}.v-md-editor__menu--list .v-md-editor__menu-item{padding:0 24px;line-height:34px;text-align:left}.v-md-editor__menu--panel{max-height:200px;padding:12px 10px;overflow-y:auto}.v-md-editor__menu--panel .v-md-editor__menu-row{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:nowrap;flex-wrap:nowrap}.v-md-editor__menu--panel .v-md-editor__menu-row:not(:last-child){margin-bottom:6px}.v-md-editor__menu--panel .v-md-editor__menu-item{display:inline-block;padding:8px 0;line-height:1;text-align:center;border-radius:2px}.v-md-editor__menu--panel .v-md-editor__menu-item:not(:last-child){margin-right:4px}.v-md-editor__menu-ctrl{position:absolute;top:0;right:0;display:none}.v-md-editor__toolbar-item{position:relative;height:28px;padding:0 6px;color:#595959;font-size:16px;line-height:28px;text-align:center;border-radius:4px;cursor:pointer;-webkit-transition:all .2s linear 0s;transition:all .2s linear 0s}.v-md-editor__toolbar-item:not(:first-child){margin-left:4px}.v-md-editor__toolbar-item:hover{background:#f5f5f5}.v-md-editor__toolbar-item--menu{padding-right:16px}.v-md-editor__toolbar-item--menu .v-md-editor__menu-ctrl{display:inline-block}.v-md-editor__toolbar-item--active,.v-md-editor__toolbar-item--active:hover{background:#e8e8e8}.v-md-editor__toolbar{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;box-sizing:border-box;width:100%;padding:6px;border-bottom:1px solid #ddd}.v-md-editor__toolbar-left,.v-md-editor__toolbar-right{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;margin:0;padding:0;list-style:none}.v-md-editor__toolbar-left+.v-md-editor__toolbar-right{margin-left:60px}.v-md-editor__toolbar-divider{position:relative;height:28px;margin:0 10px}.v-md-editor__toolbar-divider+li.v-md-editor__toolbar-item{margin-left:0}.v-md-editor__toolbar-divider:before{position:absolute;top:4px;bottom:4px;border-left:1px solid #ddd;content:""}.v-md-editor{display:-webkit-box;display:-webkit-flex;display:flex;width:100%;background-color:#fff;border-radius:4px;box-shadow:0 2px 12px #0000001a}.v-md-editor__left-area,.v-md-editor__right-area{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;width:200px}.v-md-editor__left-area{height:100%;overflow:hidden;border-right:1px solid #ddd;-webkit-transition:.3s;transition:.3s}.v-md-editor__left-area-title{position:relative;height:41px;padding:0 14px;color:#2c3e50;font-weight:600;font-size:16px;line-height:41px;white-space:nowrap}.v-md-editor__left-area-title:after{position:absolute;right:0;bottom:0;left:0;border-bottom:1px solid #ddd;content:""}.v-md-editor__left-area-body{-webkit-box-flex:1;-webkit-flex:1;flex:1;padding:8px 14px;overflow:hidden}.v-md-editor--left-area-reverse{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;flex-direction:row-reverse}.v-md-editor--left-area-reverse .v-md-editor__left-area{border-right:none;border-left:1px solid #ddd}.v-md-editor__right-area{-webkit-box-flex:1;-webkit-flex:1;flex:1}.v-md-editor--preview{box-shadow:none}.v-md-editor--fullscreen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1001}.v-md-editor__main{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-flex:1;-webkit-flex:1;flex:1;width:100%;overflow:hidden}.v-md-editor__editor-wrapper,.v-md-editor__preview-wrapper{position:relative;-webkit-box-flex:1;-webkit-flex:1;flex:1;height:100%;overflow:hidden}.v-md-editor__editor-wrapper{cursor:text;-webkit-user-select:none;user-select:none}.v-md-editor--editable .v-md-editor__editor-wrapper{border-right:1px solid #ddd}.scrollbar{height:100%;overflow:hidden}.scrollbar:active .scrollbar__bar,.scrollbar:focus .scrollbar__bar,.scrollbar:hover .scrollbar__bar{opacity:1}.scrollbar__wrap{height:100%;overflow-x:hidden}.scrollbar__wrap--hidden-default{scrollbar-width:none}.scrollbar__wrap--hidden-default::-webkit-scrollbar{width:0;height:0}.scrollbar__thumb{position:relative;display:block;width:0;height:0;background-color:#9093994d;border-radius:inherit;cursor:pointer;-webkit-transition:background-color .3s;transition:background-color .3s}.scrollbar__thumb:hover{background-color:#90939980}.scrollbar__bar{position:absolute;right:2px;bottom:2px;z-index:1;border-radius:4px;cursor:pointer;opacity:0;-webkit-transition:opacity .34s ease-out;transition:opacity .34s ease-out}.scrollbar__bar.is-vertical{top:2px;width:6px}.scrollbar__bar.is-vertical>div{width:100%}.scrollbar__bar.is-horizontal{left:2px;height:6px}.scrollbar__bar.is-horizontal>div{height:100%}.v-md-editor__toc-nav{margin:0;padding:0;list-style:none}.v-md-editor__toc-nav-item{position:relative;height:38px;overflow:hidden;color:#2c3e50;line-height:38px;white-space:nowrap;text-overflow:ellipsis;cursor:pointer}.v-md-editor__toc-nav-item:hover .v-md-editor__toc-nav-title{font-size:17px;-webkit-transform-origin:center center;transform-origin:center center}.v-md-editor__toc-nav-title{position:relative;font-size:16px;-webkit-transition:.3s;transition:.3s}[data-v-md-anchor]{cursor:pointer}.vuepress-markdown-body code[class*=v-md-prism-],.vuepress-markdown-body pre[class*=v-md-prism-]{color:#ccc;font-size:1em;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;line-height:1.5;white-space:pre;text-align:left;word-wrap:normal;word-break:normal;word-spacing:normal;-webkit-hyphens:none;hyphens:none;background:none}.vuepress-markdown-body>:first-child,.vuepress-markdown-body>div[data-v-md-line]:first-child>:first-child{margin-top:0!important}.vuepress-markdown-body>:last-child,.vuepress-markdown-body>div[data-v-md-line]:last-child>:last-child{margin-bottom:0!important}.vuepress-markdown-body pre[class*=v-md-prism-]{margin:.5em 0;padding:1em;overflow:auto}.vuepress-markdown-body :not(pre)>code[class*=v-md-prism-],.vuepress-markdown-body pre[class*=v-md-prism-]{background:#2d2d2d}.vuepress-markdown-body :not(pre)>code[class*=v-md-prism-]{padding:.1em;white-space:normal;border-radius:.3em}.vuepress-markdown-body .token.block-comment,.vuepress-markdown-body .token.cdata,.vuepress-markdown-body .token.comment,.vuepress-markdown-body .token.doctype,.vuepress-markdown-body .token.prolog{color:#999}.vuepress-markdown-body .token.punctuation{color:#ccc}.vuepress-markdown-body .token.attr-name,.vuepress-markdown-body .token.deleted,.vuepress-markdown-body .token.namespace,.vuepress-markdown-body .token.tag{color:#e2777a}.vuepress-markdown-body .token.function-name{color:#6196cc}.vuepress-markdown-body .token.boolean,.vuepress-markdown-body .token.function,.vuepress-markdown-body .token.number{color:#f08d49}.vuepress-markdown-body .token.class-name,.vuepress-markdown-body .token.constant,.vuepress-markdown-body .token.property,.vuepress-markdown-body .token.symbol{color:#f8c555}.vuepress-markdown-body .token.atrule,.vuepress-markdown-body .token.builtin,.vuepress-markdown-body .token.important,.vuepress-markdown-body .token.keyword,.vuepress-markdown-body .token.selector{color:#cc99cd}.vuepress-markdown-body .token.attr-value,.vuepress-markdown-body .token.char,.vuepress-markdown-body .token.regex,.vuepress-markdown-body .token.string,.vuepress-markdown-body .token.variable{color:#7ec699}.vuepress-markdown-body .token.entity,.vuepress-markdown-body .token.operator,.vuepress-markdown-body .token.url{color:#67cdcc}.vuepress-markdown-body .token.bold,.vuepress-markdown-body .token.important{font-weight:700}.vuepress-markdown-body .token.italic{font-style:italic}.vuepress-markdown-body .token.entity{cursor:help}.vuepress-markdown-body .token.inserted{color:green}.vuepress-markdown-body code{margin:0;padding:.25rem .5rem;color:#476582;font-size:.85em;background-color:#1b1f230d;border-radius:3px}.vuepress-markdown-body code .token.deleted{color:#ec5975}.vuepress-markdown-body code .token.inserted{color:#3eaf7c}.vuepress-markdown-body pre,.vuepress-markdown-body pre[class*=v-md-prism-]{margin:.85rem 0;padding:1.25rem 1.5rem;overflow:auto;line-height:1.4;background-color:#282c34;border-radius:6px}.vuepress-markdown-body pre[class*=v-md-prism-] code,.vuepress-markdown-body pre code{padding:0;color:#fff;background-color:initial;border-radius:0}.vuepress-markdown-body div[class*=v-md-pre-wrapper-]{position:relative;background-color:#282c34;border-radius:6px}.vuepress-markdown-body div[class*=v-md-pre-wrapper-] pre,.vuepress-markdown-body div[class*=v-md-pre-wrapper-] pre[class*=v-md-prism-]{position:relative;z-index:1;background:transparent}.vuepress-markdown-body div[class*=v-md-pre-wrapper-]:before{position:absolute;top:.8em;right:1em;z-index:3;color:#fff6;font-size:.75rem}.vuepress-markdown-body div[class*=v-md-pre-wrapper-]:not(.line-numbers-mode) .line-numbers-wrapper{display:none}.vuepress-markdown-body div[class*=v-md-pre-wrapper-].line-numbers-mode pre{padding-left:4.5rem;vertical-align:middle}.vuepress-markdown-body div[class*=v-md-pre-wrapper-].line-numbers-mode .line-numbers-wrapper{position:absolute;top:0;width:3.5rem;padding:1.25rem 0;color:#ffffff4d;line-height:1.4;text-align:center}.vuepress-markdown-body div[class*=v-md-pre-wrapper-].line-numbers-mode .line-numbers-wrapper br{-webkit-user-select:none;user-select:none}.vuepress-markdown-body div[class*=v-md-pre-wrapper-].line-numbers-mode .line-numbers-wrapper .line-number{position:relative;z-index:4;font-size:.85em;-webkit-user-select:none;user-select:none}.vuepress-markdown-body div[class*=v-md-pre-wrapper-].line-numbers-mode:after{position:absolute;top:0;left:0;z-index:2;width:3.5rem;height:100%;background-color:#282c34;border-right:1px solid rgba(0,0,0,.66);border-radius:6px 0 0 6px;content:""}.vuepress-markdown-body div[class~=v-md-pre-wrapper-js]:before{content:"js"}.vuepress-markdown-body div[class~=v-md-pre-wrapper-ts]:before{content:"ts"}.vuepress-markdown-body div[class~=v-md-pre-wrapper-html]:before{content:"html"}.vuepress-markdown-body div[class~=v-md-pre-wrapper-md]:before{content:"md"}.vuepress-markdown-body div[class~=v-md-pre-wrapper-vue]:before{content:"vue"}.vuepress-markdown-body div[class~=v-md-pre-wrapper-css]:before{content:"css"}.vuepress-markdown-body div[class~=v-md-pre-wrapper-sass]:before{content:"sass"}.vuepress-markdown-body div[class~=v-md-pre-wrapper-scss]:before{content:"scss"}.vuepress-markdown-body div[class~=v-md-pre-wrapper-less]:before{content:"less"}.vuepress-markdown-body div[class~=v-md-pre-wrapper-stylus]:before{content:"stylus"}.vuepress-markdown-body div[class~=v-md-pre-wrapper-go]:before{content:"go"}.vuepress-markdown-body div[class~=v-md-pre-wrapper-java]:before{content:"java"}.vuepress-markdown-body div[class~=v-md-pre-wrapper-c]:before{content:"c"}.vuepress-markdown-body div[class~=v-md-pre-wrapper-sh]:before{content:"sh"}.vuepress-markdown-body div[class~=v-md-pre-wrapper-yaml]:before{content:"yaml"}.vuepress-markdown-body div[class~=v-md-pre-wrapper-py]:before{content:"py"}.vuepress-markdown-body div[class~=v-md-pre-wrapper-docker]:before{content:"docker"}.vuepress-markdown-body div[class~=v-md-pre-wrapper-dockerfile]:before{content:"dockerfile"}.vuepress-markdown-body div[class~=v-md-pre-wrapper-makefile]:before{content:"makefile"}.vuepress-markdown-body div[class~=v-md-pre-wrapper-javascript]:before{content:"js"}.vuepress-markdown-body div[class~=v-md-pre-wrapper-typescript]:before{content:"ts"}.vuepress-markdown-body div[class~=v-md-pre-wrapper-markup]:before{content:"html"}.vuepress-markdown-body div[class~=v-md-pre-wrapper-markdown]:before{content:"md"}.vuepress-markdown-body div[class~=v-md-pre-wrapper-json]:before{content:"json"}.vuepress-markdown-body div[class~=v-md-pre-wrapper-ruby]:before{content:"rb"}.vuepress-markdown-body div[class~=v-md-pre-wrapper-python]:before{content:"py"}.vuepress-markdown-body div[class~=v-md-pre-wrapper-bash]:before{content:"sh"}.vuepress-markdown-body div[class~=v-md-pre-wrapper-php]:before{content:"php"}.vuepress-markdown-body .arrow{display:inline-block;width:0;height:0}.vuepress-markdown-body .arrow.up{border-bottom:6px solid #ccc}.vuepress-markdown-body .arrow.down,.vuepress-markdown-body .arrow.up{border-right:4px solid transparent;border-left:4px solid transparent}.vuepress-markdown-body .arrow.down{border-top:6px solid #ccc}.vuepress-markdown-body .arrow.right{border-left:6px solid #ccc}.vuepress-markdown-body .arrow.left,.vuepress-markdown-body .arrow.right{border-top:4px solid transparent;border-bottom:4px solid transparent}.vuepress-markdown-body .arrow.left{border-right:6px solid #ccc}.vuepress-markdown-body:not(.custom){padding:2rem 2.5rem}@media (max-width:959px){.vuepress-markdown-body:not(.custom){padding:2rem}}@media (max-width:419px){.vuepress-markdown-body:not(.custom){padding:1.5rem}}.vuepress-markdown-body .table-of-contents .badge{vertical-align:middle}.vuepress-markdown-body{color:#2c3e50;font-size:16px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#fff}.vuepress-markdown-body:not(.custom) a:hover{text-decoration:underline}.vuepress-markdown-body:not(.custom) p.demo{padding:1rem 1.5rem;border:1px solid #ddd;border-radius:4px}.vuepress-markdown-body:not(.custom) img{max-width:100%}.vuepress-markdown-body.custom{margin:0;padding:0}.vuepress-markdown-body.custom img{max-width:100%}.vuepress-markdown-body a{font-weight:500;text-decoration:none}.vuepress-markdown-body a,.vuepress-markdown-body p a code{color:#3eaf7c}.vuepress-markdown-body p a code{font-weight:400}.vuepress-markdown-body kbd{padding:0 .15em;background:#eee;border:.15rem solid #ddd;border-bottom:.25rem solid #ddd;border-radius:.15rem}.vuepress-markdown-body blockquote{margin:1rem 0;padding:.25rem 0 .25rem 1rem;color:#999;font-size:1rem;border-left:.2rem solid #dfe2e5}.vuepress-markdown-body blockquote>p{margin:0}.vuepress-markdown-body ol,.vuepress-markdown-body ul{margin:1em 0;padding-left:1.2em}.vuepress-markdown-body strong{font-weight:600}.vuepress-markdown-body h1,.vuepress-markdown-body h2,.vuepress-markdown-body h3,.vuepress-markdown-body h4,.vuepress-markdown-body h5,.vuepress-markdown-body h6{font-weight:600;line-height:1.25}.vuepress-markdown-body h1{margin:.67em 0;font-size:2.2rem}.vuepress-markdown-body h2{margin:.83em 0;padding-bottom:.3rem;font-size:1.65rem;border-bottom:1px solid #eaecef}.vuepress-markdown-body h3{margin:1em 0;font-size:1.35rem}.vuepress-markdown-body h4{margin:1.33em 0}.vuepress-markdown-body h5{margin:1.67em 0}.vuepress-markdown-body h6{margin:2.33em 0}.vuepress-markdown-body em,.vuepress-markdown-body i{font-style:italic}.vuepress-markdown-body ul{list-style-type:disc}.vuepress-markdown-body ol ul,.vuepress-markdown-body ul ul{list-style-type:circle}.vuepress-markdown-body ol ol ul,.vuepress-markdown-body ol ul ul,.vuepress-markdown-body ul ol ul,.vuepress-markdown-body ul ul ul{list-style-type:square}.vuepress-markdown-body ol{list-style-type:decimal}.vuepress-markdown-body .line-number,.vuepress-markdown-body code,.vuepress-markdown-body kbd{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.vuepress-markdown-body ol,.vuepress-markdown-body p,.vuepress-markdown-body ul{line-height:1.7}.vuepress-markdown-body hr{border:0;border-top:1px solid #eaecef}.vuepress-markdown-body table{display:block;margin:1rem 0;overflow-x:auto;border-collapse:collapse}.vuepress-markdown-body tr{border-top:1px solid #dfe2e5}.vuepress-markdown-body tr:nth-child(2n){background-color:#f6f8fa}.vuepress-markdown-body td,.vuepress-markdown-body th{padding:.6em 1em;border:1px solid #dfe2e5}.vuepress-markdown-body .v-md-svg-outbound{position:relative;top:-1px;display:inline-block;color:#aaa;vertical-align:middle}@media (max-width:419px){.vuepress-markdown-body h1{font-size:1.9rem}.vuepress-markdown-body div[class*=v-md-pre-wrapper-]{margin:.85rem -1.5rem;border-radius:0}}.v-md-plugin-tip p{margin-top:1em;margin-bottom:1em}.v-md-plugin-tip .v-md-plugin-tip-title{margin-bottom:-.4rem;font-weight:600}.v-md-plugin-tip.danger,.v-md-plugin-tip.tip,.v-md-plugin-tip.warning{margin:1rem 0;padding:.1rem 1.5rem;border-left-width:.5rem;border-left-style:solid}.v-md-plugin-tip.tip{background-color:#f3f5f7;border-color:#42b983}.v-md-plugin-tip.warning{color:#6b5900;background-color:#ffe5644d;border-color:#e7c000}.v-md-plugin-tip.warning .v-md-plugin-tip-title{color:#b29400}.v-md-plugin-tip.warning a{color:#2c3e50}.v-md-plugin-tip.danger{color:#4d0000;background-color:#ffe6e6;border-color:#c00}.v-md-plugin-tip.danger .v-md-plugin-tip-title{color:#900}.v-md-plugin-tip.danger a{color:#2c3e50}.v-md-plugin-tip.details{position:relative;display:block;margin:1.6em 0;padding:1.6em;background-color:#eee;border-radius:2px}.v-md-plugin-tip.details h4{margin-top:0}.v-md-plugin-tip.details figure:last-child,.v-md-plugin-tip.details p:last-child{margin-bottom:0;padding-bottom:0}.v-md-plugin-tip.details summary{outline:none;cursor:pointer} diff --git a/public/exadmin/assets/@kangc.86f7507c.js b/public/exadmin/assets/@kangc.86f7507c.js new file mode 100644 index 0000000..95966a7 --- /dev/null +++ b/public/exadmin/assets/@kangc.86f7507c.js @@ -0,0 +1,39 @@ +import{c as Rt,g as Bt}from"./@babel.6cd0804c.js";import{r as Ae}from"./vue.db505ee4.js";var zt={exports:{}};(function(vt,Nt){(function(v,l){vt.exports=l(Ae)})(typeof self!="undefined"?self:Rt,function(L){return function(v){var l={};function n(r){if(l[r])return l[r].exports;var i=l[r]={i:r,l:!1,exports:{}};return v[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=v,n.c=l,n.d=function(r,i,t){n.o(r,i)||Object.defineProperty(r,i,{enumerable:!0,get:t})},n.r=function(r){typeof Symbol!="undefined"&&Symbol.toStringTag&&Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(r,"__esModule",{value:!0})},n.t=function(r,i){if(i&1&&(r=n(r)),i&8||i&4&&typeof r=="object"&&r&&r.__esModule)return r;var t=Object.create(null);if(n.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:r}),i&2&&typeof r!="string")for(var o in r)n.d(t,o,function(e){return r[e]}.bind(null,o));return t},n.n=function(r){var i=r&&r.__esModule?function(){return r.default}:function(){return r};return n.d(i,"a",i),i},n.o=function(r,i){return Object.prototype.hasOwnProperty.call(r,i)},n.p="",n(n.s=108)}([function(v,l){v.exports=L},function(v,l,n){n.d(l,"a",function(){return r}),n.d(l,"b",function(){return i}),n.d(l,"c",function(){return t}),n.d(l,"d",function(){return o}),n.d(l,"e",function(){return e}),n.d(l,"f",function(){return a}),n.d(l,"g",function(){return s}),n.d(l,"h",function(){return c}),n.d(l,"i",function(){return f}),n.d(l,"j",function(){return d}),n.d(l,"k",function(){return u}),n.d(l,"l",function(){return h}),n.d(l,"m",function(){return p}),n.d(l,"n",function(){return m}),n.d(l,"o",function(){return C}),n.d(l,"p",function(){return E}),n.d(l,"q",function(){return b}),n.d(l,"r",function(){return y}),n.d(l,"s",function(){return _}),n.d(l,"t",function(){return P}),n.d(l,"u",function(){return S}),n.d(l,"v",function(){return M});var r="bold",i="clear",t="code",o="fullscreen",e="h1",a="h2",s="h3",c="h4",f="h5",d="h6",u="hr",h="image",p="italic",m="link",C="ol",E="quote",b="redo",y="strikethrough",_="sync-scroll",P="table",S="ul",M="undo"},function(v,l,n){n.d(l,"f",function(){return i}),n.d(l,"a",function(){return o}),n.d(l,"c",function(){return e}),n.d(l,"d",function(){return a}),n.d(l,"e",function(){return s}),n.d(l,"b",function(){return c});var r=Object.prototype.toString,i=function(d){return r.call(d)==="[object Object]"};function t(f,d){return Object.keys(d).forEach(function(u){f[u]=d[u]}),f}function o(f){for(var d={},u=0;ue?"down":"up",h=(a-e)*(f/100),p,m=function C(){e+=h,u==="down"&&e>=a||u==="up"&&e<=a?(s(a),window.cancelAnimationFrame(p),d&&window.requestAnimationFrame(d)):(s(e),window.requestAnimationFrame(C))};window.requestAnimationFrame(m)}function t(o){var e=o.scrollTarget,a=o.scrollToTop,s=o.percent,c=s===void 0?10:s,f=o.onScrollEnd,d=Object(r.a)(e);i({currentScrollTop:d,scrollToTop:a,scrollFn:function(h){return Object(r.b)(e,h)},percent:c,onScrollEnd:f})}},function(v,l,n){n.r(l);var r=n(0);function i(p,m,C,E,b,y){return Object(r.openBlock)(),Object(r.createBlock)("div",{class:"v-md-editor-preview",style:{tabSize:p.tabSize,"-moz-tab-size":p.tabSize,"-o-tab-size":p.tabSize},onClick:m[1]||(m[1]=function(){return p.handlePreviewClick.apply(p,arguments)})},[Object(r.createVNode)("div",{class:[p.previewClass],innerHTML:p.html},null,10,["innerHTML"])],4)}var t=n(7),o=n(13),e=function(){function p(){this.lang=new o.a}var m=p.prototype;return m.defaultMarkdownLoader=function(E){return E},m.use=function(E,b){return typeof E=="function"?E(this,b):E.install(this,b),this},m.theme=function(E){this.themeConfig=E},m.extendMarkdown=function(E){if(!this.themeConfig)return console.error("Please use theme before using plugins");var b=this.themeConfig.markdownParser;E(b)},m.parse=function(E){var b,y=this.themeConfig.markdownParser,_=(y==null||(b=y.render)==null?void 0:b.bind(y))||this.defaultMarkdownLoader;return(typeof _!="function"||_===this.defaultMarkdownLoader)&&console.error("Please configure your markdown parser"),_(E)},p}(),a=n(16),s={name:"v-md-preview",mixins:[a.a],props:{text:{type:String,default:""},theme:Object,beforeChange:Function},emits:["change"],data:function(){return{html:""}},watch:{text:function(){this.handleTextChange()},langConfig:function(){this.handleTextChange()}},computed:{vMdParser:function(){return this.$options.vMdParser},previewClass:function(){return this.vMdParser.themeConfig.previewClass},langConfig:function(){return this.vMdParser.lang.langConfig}},created:function(){this.handleTextChange()},methods:{handleTextChange:function(){var m=this,C=function(b){m.html=t.a.process(m.$options.vMdParser.parse(b)),m.$emit("change",b,m.html)};this.beforeChange?this.beforeChange(this.text,C):C(this.text)}}},c=new e;c.lang.config=Object(r.reactive)(c.lang.config),s.vMdParser=new e;var f=s;f.render=i;var d=f;n(18);var u="2.3.15",h=function(m){m.component(d.name,d)};d.version=u,d.install=h,d.xss=t.a,d.use=function(p,m){return typeof p=="function"?p(d,m):p.install(d,m),d},l.default=d},function(v,l,n){v.exports=n(37)},function(v,l,n){var r=n(19),i=n(22),t=n(26);function o(s,c){var f=new t(c);return f.process(s)}l=v.exports=o,l.filterXSS=o,l.FilterXSS=t;for(var e in r)l[e]=r[e];for(var e in i)l[e]=i[e];typeof window!="undefined"&&(window.filterXSS=v.exports);function a(){return typeof self!="undefined"&&typeof DedicatedWorkerGlobalScope!="undefined"&&self instanceof DedicatedWorkerGlobalScope}a()&&(self.filterXSS=v.exports)},function(v,l,n){n.d(l,"a",function(){return r}),n.d(l,"b",function(){return i});function r(t,o){var e=o.accept,a=Object.keys(t).filter(function(s){var c=t[s],f=c.type,d=c.name,u=d.indexOf(".")>-1?"."+d.split(".").pop():"",h=f.replace(/\/.*$/,"");return e.split(",").map(function(p){return p.trim()}).filter(function(p){return p}).some(function(p){return/\..+$/.test(p)?u===p:/\/\*$/.test(p)?h===p.replace(/\/\*$/,""):/^[^\/]+\/[^\/]+$/.test(p)?f===p:!1})});return a.map(function(s){return t[s]})}function i(t){var o=[];return Object.keys(t.items).forEach(function(e){var a=t.items[e];if(a.kind==="file"){var s=a.getAsFile();s&&o.push(s)}}),o}},function(v,l,n){n.d(l,"a",function(){return e});var r=n(2),i=Object.prototype.hasOwnProperty;function t(a,s,c){var f=s[c];f!=null&&(!i.call(a,c)||!Object(r.f)(f)?a[c]=f:a[c]=o(Object(a[c]),s[c]))}function o(a,s){return Object.keys(s).forEach(function(c){t(a,s,c)}),a}var e=function(){function a(c){c===void 0&&(c={}),this.config={lang:"zh-CN",langConfig:{"zh-CN":{}}},this.options=c}var s=a.prototype;return s.use=function(f,d){var u;this.config.lang=f,this.add((u={},u[f]=d,u)),this.options.afterUse&&this.options.afterUse(f,d)},s.add=function(f){f===void 0&&(f={}),o(this.config.langConfig,f)},a}()},function(v,l,n){var r=n(20),i=n(24);function t(e,a){var s=new i(a);return s.process(e)}l=v.exports=t,l.FilterCSS=i;for(var o in r)l[o]=r[o];typeof window!="undefined"&&(window.filterCSS=v.exports)},function(v,l){v.exports={indexOf:function(n,r){var i,t;if(Array.prototype.indexOf)return n.indexOf(r);for(i=0,t=n.length;i/g,m=/"/g,C=/"/g,E=/&#([a-zA-Z0-9]*);?/gim,b=/:?/gim,y=/&newline;?/gim,_=/((j\s*a\s*v\s*a|v\s*b|l\s*i\s*v\s*e)\s*s\s*c\s*r\s*i\s*p\s*t\s*|m\s*o\s*c\s*h\s*a)\:/gi,P=/e\s*x\s*p\s*r\s*e\s*s\s*s\s*i\s*o\s*n\s*\(.*/gi,S=/u\s*r\s*l\s*\(.*/gi;function M(k){return k.replace(m,""")}function j(k){return k.replace(C,'"')}function F(k){return k.replace(E,function(O,N){return N[0]==="x"||N[0]==="X"?String.fromCharCode(parseInt(N.substr(1),16)):String.fromCharCode(parseInt(N,10))})}function z(k){return k.replace(b,":").replace(y," ")}function D(k){for(var x="",O=0,N=k.length;O/g;function B(k){var x=k.split("");return x=x.filter(function(O){var N=O.charCodeAt(0);return N===127?!1:N<=31?N===10||N===13:!0}),x.join("")}l.whiteList=o(),l.getDefaultWhiteList=o,l.onTag=a,l.onIgnoreTag=s,l.onTagAttr=c,l.onIgnoreTagAttr=f,l.safeAttrValue=u,l.escapeHtml=d,l.escapeQuote=M,l.unescapeQuote=j,l.escapeHtmlEntities=F,l.escapeDangerHtml5Entities=z,l.clearNonPrintableCharacter=D,l.friendlyAttrValue=w,l.escapeAttrValue=H,l.onIgnoreTagStripAll=$,l.StripTagBody=q,l.stripCommentTag=I,l.stripBlankChar=B,l.cssFilter=e,l.getDefaultCSSWhiteList=i},function(v,l){function n(){var e={};return e["align-content"]=!1,e["align-items"]=!1,e["align-self"]=!1,e["alignment-adjust"]=!1,e["alignment-baseline"]=!1,e.all=!1,e["anchor-point"]=!1,e.animation=!1,e["animation-delay"]=!1,e["animation-direction"]=!1,e["animation-duration"]=!1,e["animation-fill-mode"]=!1,e["animation-iteration-count"]=!1,e["animation-name"]=!1,e["animation-play-state"]=!1,e["animation-timing-function"]=!1,e.azimuth=!1,e["backface-visibility"]=!1,e.background=!0,e["background-attachment"]=!0,e["background-clip"]=!0,e["background-color"]=!0,e["background-image"]=!0,e["background-origin"]=!0,e["background-position"]=!0,e["background-repeat"]=!0,e["background-size"]=!0,e["baseline-shift"]=!1,e.binding=!1,e.bleed=!1,e["bookmark-label"]=!1,e["bookmark-level"]=!1,e["bookmark-state"]=!1,e.border=!0,e["border-bottom"]=!0,e["border-bottom-color"]=!0,e["border-bottom-left-radius"]=!0,e["border-bottom-right-radius"]=!0,e["border-bottom-style"]=!0,e["border-bottom-width"]=!0,e["border-collapse"]=!0,e["border-color"]=!0,e["border-image"]=!0,e["border-image-outset"]=!0,e["border-image-repeat"]=!0,e["border-image-slice"]=!0,e["border-image-source"]=!0,e["border-image-width"]=!0,e["border-left"]=!0,e["border-left-color"]=!0,e["border-left-style"]=!0,e["border-left-width"]=!0,e["border-radius"]=!0,e["border-right"]=!0,e["border-right-color"]=!0,e["border-right-style"]=!0,e["border-right-width"]=!0,e["border-spacing"]=!0,e["border-style"]=!0,e["border-top"]=!0,e["border-top-color"]=!0,e["border-top-left-radius"]=!0,e["border-top-right-radius"]=!0,e["border-top-style"]=!0,e["border-top-width"]=!0,e["border-width"]=!0,e.bottom=!1,e["box-decoration-break"]=!0,e["box-shadow"]=!0,e["box-sizing"]=!0,e["box-snap"]=!0,e["box-suppress"]=!0,e["break-after"]=!0,e["break-before"]=!0,e["break-inside"]=!0,e["caption-side"]=!1,e.chains=!1,e.clear=!0,e.clip=!1,e["clip-path"]=!1,e["clip-rule"]=!1,e.color=!0,e["color-interpolation-filters"]=!0,e["column-count"]=!1,e["column-fill"]=!1,e["column-gap"]=!1,e["column-rule"]=!1,e["column-rule-color"]=!1,e["column-rule-style"]=!1,e["column-rule-width"]=!1,e["column-span"]=!1,e["column-width"]=!1,e.columns=!1,e.contain=!1,e.content=!1,e["counter-increment"]=!1,e["counter-reset"]=!1,e["counter-set"]=!1,e.crop=!1,e.cue=!1,e["cue-after"]=!1,e["cue-before"]=!1,e.cursor=!1,e.direction=!1,e.display=!0,e["display-inside"]=!0,e["display-list"]=!0,e["display-outside"]=!0,e["dominant-baseline"]=!1,e.elevation=!1,e["empty-cells"]=!1,e.filter=!1,e.flex=!1,e["flex-basis"]=!1,e["flex-direction"]=!1,e["flex-flow"]=!1,e["flex-grow"]=!1,e["flex-shrink"]=!1,e["flex-wrap"]=!1,e.float=!1,e["float-offset"]=!1,e["flood-color"]=!1,e["flood-opacity"]=!1,e["flow-from"]=!1,e["flow-into"]=!1,e.font=!0,e["font-family"]=!0,e["font-feature-settings"]=!0,e["font-kerning"]=!0,e["font-language-override"]=!0,e["font-size"]=!0,e["font-size-adjust"]=!0,e["font-stretch"]=!0,e["font-style"]=!0,e["font-synthesis"]=!0,e["font-variant"]=!0,e["font-variant-alternates"]=!0,e["font-variant-caps"]=!0,e["font-variant-east-asian"]=!0,e["font-variant-ligatures"]=!0,e["font-variant-numeric"]=!0,e["font-variant-position"]=!0,e["font-weight"]=!0,e.grid=!1,e["grid-area"]=!1,e["grid-auto-columns"]=!1,e["grid-auto-flow"]=!1,e["grid-auto-rows"]=!1,e["grid-column"]=!1,e["grid-column-end"]=!1,e["grid-column-start"]=!1,e["grid-row"]=!1,e["grid-row-end"]=!1,e["grid-row-start"]=!1,e["grid-template"]=!1,e["grid-template-areas"]=!1,e["grid-template-columns"]=!1,e["grid-template-rows"]=!1,e["hanging-punctuation"]=!1,e.height=!0,e.hyphens=!1,e.icon=!1,e["image-orientation"]=!1,e["image-resolution"]=!1,e["ime-mode"]=!1,e["initial-letters"]=!1,e["inline-box-align"]=!1,e["justify-content"]=!1,e["justify-items"]=!1,e["justify-self"]=!1,e.left=!1,e["letter-spacing"]=!0,e["lighting-color"]=!0,e["line-box-contain"]=!1,e["line-break"]=!1,e["line-grid"]=!1,e["line-height"]=!1,e["line-snap"]=!1,e["line-stacking"]=!1,e["line-stacking-ruby"]=!1,e["line-stacking-shift"]=!1,e["line-stacking-strategy"]=!1,e["list-style"]=!0,e["list-style-image"]=!0,e["list-style-position"]=!0,e["list-style-type"]=!0,e.margin=!0,e["margin-bottom"]=!0,e["margin-left"]=!0,e["margin-right"]=!0,e["margin-top"]=!0,e["marker-offset"]=!1,e["marker-side"]=!1,e.marks=!1,e.mask=!1,e["mask-box"]=!1,e["mask-box-outset"]=!1,e["mask-box-repeat"]=!1,e["mask-box-slice"]=!1,e["mask-box-source"]=!1,e["mask-box-width"]=!1,e["mask-clip"]=!1,e["mask-image"]=!1,e["mask-origin"]=!1,e["mask-position"]=!1,e["mask-repeat"]=!1,e["mask-size"]=!1,e["mask-source-type"]=!1,e["mask-type"]=!1,e["max-height"]=!0,e["max-lines"]=!1,e["max-width"]=!0,e["min-height"]=!0,e["min-width"]=!0,e["move-to"]=!1,e["nav-down"]=!1,e["nav-index"]=!1,e["nav-left"]=!1,e["nav-right"]=!1,e["nav-up"]=!1,e["object-fit"]=!1,e["object-position"]=!1,e.opacity=!1,e.order=!1,e.orphans=!1,e.outline=!1,e["outline-color"]=!1,e["outline-offset"]=!1,e["outline-style"]=!1,e["outline-width"]=!1,e.overflow=!1,e["overflow-wrap"]=!1,e["overflow-x"]=!1,e["overflow-y"]=!1,e.padding=!0,e["padding-bottom"]=!0,e["padding-left"]=!0,e["padding-right"]=!0,e["padding-top"]=!0,e.page=!1,e["page-break-after"]=!1,e["page-break-before"]=!1,e["page-break-inside"]=!1,e["page-policy"]=!1,e.pause=!1,e["pause-after"]=!1,e["pause-before"]=!1,e.perspective=!1,e["perspective-origin"]=!1,e.pitch=!1,e["pitch-range"]=!1,e["play-during"]=!1,e.position=!1,e["presentation-level"]=!1,e.quotes=!1,e["region-fragment"]=!1,e.resize=!1,e.rest=!1,e["rest-after"]=!1,e["rest-before"]=!1,e.richness=!1,e.right=!1,e.rotation=!1,e["rotation-point"]=!1,e["ruby-align"]=!1,e["ruby-merge"]=!1,e["ruby-position"]=!1,e["shape-image-threshold"]=!1,e["shape-outside"]=!1,e["shape-margin"]=!1,e.size=!1,e.speak=!1,e["speak-as"]=!1,e["speak-header"]=!1,e["speak-numeral"]=!1,e["speak-punctuation"]=!1,e["speech-rate"]=!1,e.stress=!1,e["string-set"]=!1,e["tab-size"]=!1,e["table-layout"]=!1,e["text-align"]=!0,e["text-align-last"]=!0,e["text-combine-upright"]=!0,e["text-decoration"]=!0,e["text-decoration-color"]=!0,e["text-decoration-line"]=!0,e["text-decoration-skip"]=!0,e["text-decoration-style"]=!0,e["text-emphasis"]=!0,e["text-emphasis-color"]=!0,e["text-emphasis-position"]=!0,e["text-emphasis-style"]=!0,e["text-height"]=!0,e["text-indent"]=!0,e["text-justify"]=!0,e["text-orientation"]=!0,e["text-overflow"]=!0,e["text-shadow"]=!0,e["text-space-collapse"]=!0,e["text-transform"]=!0,e["text-underline-position"]=!0,e["text-wrap"]=!0,e.top=!1,e.transform=!1,e["transform-origin"]=!1,e["transform-style"]=!1,e.transition=!1,e["transition-delay"]=!1,e["transition-duration"]=!1,e["transition-property"]=!1,e["transition-timing-function"]=!1,e["unicode-bidi"]=!1,e["vertical-align"]=!1,e.visibility=!1,e["voice-balance"]=!1,e["voice-duration"]=!1,e["voice-family"]=!1,e["voice-pitch"]=!1,e["voice-range"]=!1,e["voice-rate"]=!1,e["voice-stress"]=!1,e["voice-volume"]=!1,e.volume=!1,e["white-space"]=!1,e.widows=!1,e.width=!0,e["will-change"]=!1,e["word-break"]=!0,e["word-spacing"]=!0,e["word-wrap"]=!0,e["wrap-flow"]=!1,e["wrap-through"]=!1,e["writing-mode"]=!1,e["z-index"]=!1,e}function r(e,a,s){}function i(e,a,s){}var t=/javascript\s*\:/img;function o(e,a){return t.test(a)?"":a}l.whiteList=n(),l.getDefaultWhiteList=n,l.onAttr=r,l.onIgnoreAttr=i,l.safeAttrValue=o},function(v,l){v.exports={indexOf:function(n,r){var i,t;if(Array.prototype.indexOf)return n.indexOf(r);for(i=0,t=n.length;i"){m+=p(u.slice(C,E)),S=u.slice(E,y+1),P=i(S),m+=h(E,m.length,P,S,t(S)),C=y+1,E=!1;continue}if(M==='"'||M==="'")for(var j=1,F=u.charAt(y-j);F.trim()===""||F==="=";){if(F==="="){b=M;continue t}F=u.charAt(y-++j)}}else if(M===b){b=!1;continue}}return C0;h--){var p=u[h];if(p!==" ")return p==="="?h:-1}}function f(u){return u[0]==='"'&&u[u.length-1]==='"'||u[0]==="'"&&u[u.length-1]==="'"}function d(u){return f(u)?u.substr(1,u.length-2):u}l.parseTag=o,l.parseAttr=a},function(v,l,n){n.r(l);var r=n(10),i=n.n(r),t=n(17),o=n(1),e=n(12);l.default={name:o.l,icon:"v-md-icon-img",title:function(s){return s.langConfig.image.toolbar},menus:[{name:"image-link",text:function(s){return s.langConfig.imageLink.toolbar},action:function(s,c){(c==null?void 0:c.insertWithSize)?s.execCommand(o.l,{width:"auto",height:"auto"}):s.execCommand(o.l)}},{name:"upload-image",text:function(s){return s.langConfig.uploadImage.toolbar},action:function(s){s.uploadConfig=s.uploadImgConfig,s.$nextTick(Object(t.a)(i.a.mark(function c(){var f,d;return i.a.wrap(function(h){for(;;)switch(h.prev=h.next){case 0:return h.next=2,s.$refs.uploadFile.upload();case 2:f=h.sent,d=Object(e.a)(f.target.files,s.uploadImgConfig),s.emitUploadImage(f,d);case 5:case"end":return h.stop()}},c)})))}}]}},function(v,l,n){var r=n(20),i=n(25);n(21);function t(a){return a==null}function o(a){var s={};for(var c in a)s[c]=a[c];return s}function e(a){a=o(a||{}),a.whiteList=a.whiteList||r.whiteList,a.onAttr=a.onAttr||r.onAttr,a.onIgnoreAttr=a.onIgnoreAttr||r.onIgnoreAttr,a.safeAttrValue=a.safeAttrValue||r.safeAttrValue,this.options=a}e.prototype.process=function(a){if(a=a||"",a=a.toString(),!a)return"";var s=this,c=s.options,f=c.whiteList,d=c.onAttr,u=c.onIgnoreAttr,h=c.safeAttrValue,p=i(a,function(m,C,E,b,y){var _=f[E],P=!1;if(_===!0?P=_:typeof _=="function"?P=_(b):_ instanceof RegExp&&(P=_.test(b)),P!==!0&&(P=!1),b=h(E,b),!!b){var S={position:C,sourcePosition:m,source:y,isWhite:P};if(P){var M=d(E,b,S);return t(M)?E+":"+b:M}else{var M=u(E,b,S);if(!t(M))return M}}});return p},v.exports=e},function(v,l,n){var r=n(21);function i(t,o){t=r.trimRight(t),t[t.length-1]!==";"&&(t+=";");var e=t.length,a=!1,s=0,c=0,f="";function d(){if(!a){var p=r.trim(t.slice(s,c)),m=p.indexOf(":");if(m!==-1){var C=r.trim(p.slice(0,m)),E=r.trim(p.slice(m+1));if(C){var b=o(s,f.length,C,E,p);b&&(f+=b+"; ")}}}s=c+1}for(;c";var I=c(w),R=m[D],B=e(I.html,function(x,O){var N=a.indexOf(R,x)!==-1,W=b(D,x,O,N);if(!s(W))return W;if(N)return O=_(D,x,O,S),O?x+'="'+O+'"':x;var W=y(D,x,O,N);return s(W)?void 0:W}),w="<"+D;return B&&(w+=" "+B),I.closing&&(w+=" /"),w+=">",w}else{var q=E(D,w,$);return s(q)?P(w):q}},P);return M&&(j=M.remove(j)),j},v.exports=d},function(v,l,n){},function(v,l,n){},function(v,l,n){},function(v,l,n){},function(v,l,n){},function(v,l,n){},function(v,l,n){},function(v,l,n){(function(r){var i=function(){if(typeof Map!="undefined")return Map;function I(R,B){var k=-1;return R.some(function(x,O){return x[0]===B?(k=O,!0):!1}),k}return function(){function R(){this.__entries__=[]}return Object.defineProperty(R.prototype,"size",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),R.prototype.get=function(B){var k=I(this.__entries__,B),x=this.__entries__[k];return x&&x[1]},R.prototype.set=function(B,k){var x=I(this.__entries__,B);~x?this.__entries__[x][1]=k:this.__entries__.push([B,k])},R.prototype.delete=function(B){var k=this.__entries__,x=I(k,B);~x&&k.splice(x,1)},R.prototype.has=function(B){return!!~I(this.__entries__,B)},R.prototype.clear=function(){this.__entries__.splice(0)},R.prototype.forEach=function(B,k){k===void 0&&(k=null);for(var x=0,O=this.__entries__;x0},I.prototype.connect_=function(){!t||this.connected_||(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),d?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},I.prototype.disconnect_=function(){!t||!this.connected_||(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},I.prototype.onTransitionEnd_=function(R){var B=R.propertyName,k=B===void 0?"":B,x=f.some(function(O){return!!~k.indexOf(O)});x&&this.refresh()},I.getInstance=function(){return this.instance_||(this.instance_=new I),this.instance_},I.instance_=null,I}(),h=function(I,R){for(var B=0,k=Object.keys(R);B0},I}(),H=typeof WeakMap!="undefined"?new WeakMap:new i,$=function(){function I(R){if(!(this instanceof I))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var B=u.getInstance(),k=new w(R,B,this);H.set(this,k)}return I}();["observe","unobserve","disconnect"].forEach(function(I){$.prototype[I]=function(){var R;return(R=H.get(this))[I].apply(R,arguments)}});var q=function(){return typeof o.ResizeObserver!="undefined"?o.ResizeObserver:$}();l.a=q}).call(this,n(86))},function(v,l,n){n.d(l,"a",function(){return ke});var r=n(13),i={undo:{toolbar:"\u64A4\u9500"},redo:{toolbar:"\u91CD\u505A"},clear:{toolbar:"\u6E05\u7A7A"},h:{toolbar:"\u6807\u9898"},h1:{toolbar:"\u4E00\u7EA7\u6807\u9898",placeholder:"\u4E00\u7EA7\u6807\u9898"},h2:{toolbar:"\u4E8C\u7EA7\u6807\u9898",placeholder:"\u4E8C\u7EA7\u6807\u9898"},h3:{toolbar:"\u4E09\u7EA7\u6807\u9898",placeholder:"\u4E09\u7EA7\u6807\u9898"},h4:{toolbar:"\u56DB\u7EA7\u6807\u9898",placeholder:"\u56DB\u7EA7\u6807\u9898"},h5:{toolbar:"\u4E94\u7EA7\u6807\u9898",placeholder:"\u4E94\u7EA7\u6807\u9898"},h6:{toolbar:"\u516D\u7EA7\u6807\u9898",placeholder:"\u516D\u7EA7\u6807\u9898"},bold:{toolbar:"\u7C97\u4F53",placeholder:"\u7C97\u4F53"},italic:{toolbar:"\u659C\u4F53",placeholder:"\u659C\u4F53"},strikethrough:{toolbar:"\u5220\u9664\u7EBF",placeholder:"\u5220\u9664\u7EBF"},quote:{toolbar:"\u63D2\u5165\u5F15\u7528",placeholder:"\u5F15\u7528"},ul:{toolbar:"\u65E0\u5E8F\u5217\u8868",placeholder:"\u65E0\u5E8F\u5217\u8868"},ol:{toolbar:"\u6709\u5E8F\u5217\u8868",placeholder:"\u6709\u5E8F\u5217\u8868"},table:{toolbar:"\u8868\u683C"},hr:{toolbar:"\u63D2\u5165\u5206\u5272\u7EBF"},link:{toolbar:"\u63D2\u5165\u94FE\u63A5",descPlaceholder:"\u94FE\u63A5"},image:{toolbar:"\u63D2\u5165\u56FE\u7247"},imageLink:{toolbar:"\u6DFB\u52A0\u56FE\u7247\u94FE\u63A5"},uploadImage:{toolbar:"\u4E0A\u4F20\u672C\u5730\u56FE\u7247"},code:{toolbar:"\u63D2\u5165\u4EE3\u7801\u5757"},save:{toolbar:"\u4FDD\u5B58"},preview:{enabled:"\u5F00\u542F\u9884\u89C8",disabled:"\u5173\u95ED\u9884\u89C8"},toc:{title:"\u76EE\u5F55\u5BFC\u822A",enabled:"\u5F00\u542F\u76EE\u5F55\u5BFC\u822A",disabled:"\u5173\u95ED\u76EE\u5F55\u5BFC\u822A"},syncScroll:{enabled:"\u5F00\u542F\u540C\u6B65\u6EDA\u52A8",disabled:"\u5173\u95ED\u540C\u6B65\u6EDA\u52A8"},fullscreen:{enabled:"\u5168\u5C4F\uFF08\u6309ESC\u8FD8\u539F\uFF09",disabled:"\u9000\u51FA\u5168\u5C4F"}},t=n(0),o=n(2),e={};Object(o.c)(e,n(38));function a(A,g,T){g?A[g]?console.error("The command name is already in use: "+g):A[g]=T:console.error("Command name is required")}function s(A){A.commands={},A.command=function(g,T){a(A.commands,g,T)},Object.keys(e).forEach(function(g){var T=e[g],U=T.name,G=T.default;A.command(U,G)})}var c=n(5),f={};Object(o.c)(f,n(61));function d(A,g,T){g?A[g]=Object(c.a)({},T):console.error("Toolbar name is required")}function u(A){A.toolbars={},A.toolbar=function(g,T){d(A.toolbars,g,T)},Object.keys(f).forEach(function(g){var T=f[g],U=T.default;A.toolbar(U.name,U)})}n(81);var h=n(9),p={class:"v-md-editor__left-area-body"},m={class:"v-md-editor__right-area"},C={class:"v-md-editor__toolbar",ref:"toolbarWrapper"},E={class:"v-md-editor__main"},b={class:"v-md-editor__preview-wrapper",ref:"previewWrapper"};function y(A,g,T,U,G,V){var Z=Object(t.resolveComponent)("editor-toolbar");return Object(t.openBlock)(),Object(t.createBlock)("div",{class:["v-md-editor",["v-md-editor--"+T.mode,{"v-md-editor--fullscreen":T.fullscreen,"v-md-editor--left-area-reverse":T.leftAreaReverse}]],style:{height:V.heightGetter}},[Object(t.withDirectives)(Object(t.createVNode)("div",{class:"v-md-editor__left-area",style:{width:T.leftAreaVisible?T.leftAreaWidth:0,borderWidth:T.leftAreaVisible?"1px":0}},[Object(t.createVNode)("div",{class:"v-md-editor__left-area-title",style:{height:G.toolbarHeight+"px",lineHeight:G.toolbarHeight+"px"}},Object(t.toDisplayString)(T.leftAreaTitle),5),Object(t.createVNode)("div",p,[Object(t.renderSlot)(A.$slots,"left-area")])],4),[[t.vShow,!V.isPreviewMode]]),Object(t.createVNode)("div",m,[Object(t.withDirectives)(Object(t.createVNode)("div",C,[Object(t.createVNode)(Z,{class:"v-md-editor__toolbar-left",groups:V.leftToolbarGroup,toolbars:T.toolbars,"disabled-menus":T.disabledMenus,onItemClick:V.handleToolbarItemClick,onToolbarMenuClick:V.handleToolbarMenuClick},null,8,["groups","toolbars","disabled-menus","onItemClick","onToolbarMenuClick"]),Object(t.createVNode)(Z,{class:"v-md-editor__toolbar-right",groups:V.rightToolbarGroup,toolbars:T.toolbars,"disabled-mens":T.disabledMenus,onItemClick:V.handleToolbarItemClick,onToolbarMenuClick:V.handleToolbarMenuClick},null,8,["groups","toolbars","disabled-mens","onItemClick","onToolbarMenuClick"])],512),[[t.vShow,!V.isPreviewMode]]),Object(t.createVNode)("div",E,[Object(t.withDirectives)(Object(t.createVNode)("div",{ref:"editorWrapper",class:"v-md-editor__editor-wrapper",onClick:g[1]||(g[1]=function(){return V.handleEditorWrapperClick.apply(V,arguments)})},[Object(t.renderSlot)(A.$slots,"editor")],512),[[t.vShow,!V.isPreviewMode]]),Object(t.withDirectives)(Object(t.createVNode)("div",b,[Object(t.renderSlot)(A.$slots,"preview")],512),[[t.vShow,!V.isEditMode]]),Object(t.renderSlot)(A.$slots,"default")])])],6)}var _={key:0},P={key:0,class:"v-md-editor__toolbar-divider"};function S(A,g,T,U,G,V){var Z=Object(t.resolveComponent)("toolbar-item");return T.groups.length?(Object(t.openBlock)(),Object(t.createBlock)("ul",_,[(Object(t.openBlock)(!0),Object(t.createBlock)(t.Fragment,null,Object(t.renderList)(T.groups,function(J,et){return Object(t.openBlock)(),Object(t.createBlock)(t.Fragment,null,[(Object(t.openBlock)(!0),Object(t.createBlock)(t.Fragment,null,Object(t.renderList)(J,function(Q){return Object(t.openBlock)(),Object(t.createBlock)(Z,{key:Q,name:Q,title:V.getConfig(Q,"title"),icon:V.getConfig(Q,"icon"),text:V.getConfig(Q,"text"),active:V.getConfig(Q,"active"),menus:V.getConfig(Q,"menus"),"disabled-menus":T.disabledMenus,onClick:function(it){return A.$emit("item-click",T.toolbars[Q])},onMenuClick:g[1]||(g[1]=function(nt){return A.$emit("toolbar-menu-click",nt)})},null,8,["name","title","icon","text","active","menus","disabled-menus","onClick"])}),128)),et!==T.groups.length-1?(Object(t.openBlock)(),Object(t.createBlock)("li",P)):Object(t.createCommentVNode)("v-if",!0)],64)}),256))])):Object(t.createCommentVNode)("v-if",!0)}var M={key:1,class:"v-md-icon-arrow-down v-md-editor__menu-ctrl",ref:"menuCtrl"};function j(A,g,T,U,G,V){var Z=Object(t.resolveComponent)("v-md-tooltip"),J=Object(t.resolveComponent)("v-md-menu"),et=Object(t.resolveDirective)("clickoutside");return Object(t.withDirectives)((Object(t.openBlock)(),Object(t.createBlock)("li",{class:["v-md-editor__toolbar-item",[T.icon,"v-md-editor__toolbar-item-"+T.name,{"v-md-editor__toolbar-item--active":T.active||G.menuActive},{"v-md-editor__toolbar-item--menu":V.hasMenu}]],onMousedown:g[3]||(g[3]=Object(t.withModifiers)(function(){},["prevent"])),onMouseleave:g[4]||(g[4]=function(){return V.handleHideTooltip.apply(V,arguments)}),onMousemove:g[5]||(g[5]=function(){return V.showTooltip.apply(V,arguments)}),onClick:g[6]||(g[6]=Object(t.withModifiers)(function(){return V.handleClick.apply(V,arguments)},["stop"]))},[Object(t.createTextVNode)(Object(t.toDisplayString)(T.text)+" ",1),Object(t.createVNode)(Z,{ref:"tooltip",text:T.title},null,8,["text"]),V.hasMenu?(Object(t.openBlock)(),Object(t.createBlock)(J,{key:0,ref:"menu",mode:V.menuMode,menus:V.menuItems,"item-width":T.menus.itemWidth,"row-num":T.menus.rowNum,visible:G.menuActive,"onUpdate:visible":g[1]||(g[1]=function(Q){return G.menuActive=Q}),onItemClick:g[2]||(g[2]=function(Q){return A.$emit("menu-click",Q)})},null,8,["mode","menus","item-width","row-num","visible"])):Object(t.createCommentVNode)("v-if",!0),V.hasMenu?(Object(t.openBlock)(),Object(t.createBlock)("i",M,null,512)):Object(t.createCommentVNode)("v-if",!0)],34)),[[et,V.hideMenu,"hideMenu"]])}function F(A,g,T,U,G,V){return Object(t.openBlock)(),Object(t.createBlock)(t.Transition,{name:"v-md-fade-in"},{default:Object(t.withCtx)(function(){return[Object(t.withDirectives)(Object(t.createVNode)("div",{style:{left:G.position.x+"px",top:G.position.y+"px"},class:"v-md-editor__tooltip"},Object(t.toDisplayString)(T.text),5),[[t.vShow,G.visible]])]}),_:1})}var z={name:"v-md-tooltip",props:{text:String},data:function(){return{position:{x:0,y:0},visible:!1}},methods:{show:function(g){this.position={x:g.x,y:g.y},this.visible=!0,this.$nextTick(this.calculateLayout)},hide:function(){this.visible=!1},calculateLayout:function(){var g=this.$el.getBoundingClientRect(),T=g.right,U=document.documentElement.clientWidth;U-T<0&&(this.position.x-=T-U)}}};n(82),z.render=F;var D=z,w={key:1},H={class:"v-md-editor__menu-row"};function $(A,g,T,U,G,V){var Z=Object(t.resolveComponent)("v-md-render");return Object(t.openBlock)(),Object(t.createBlock)(t.Transition,{name:"v-md-zoom-in-top"},{default:Object(t.withCtx)(function(){return[Object(t.withDirectives)(Object(t.createVNode)("ul",{class:["v-md-editor__menu",["v-md-editor__menu--"+T.mode]],style:G.style,onMousemove:g[1]||(g[1]=Object(t.withModifiers)(function(){},["stop"])),onClick:g[2]||(g[2]=Object(t.withModifiers)(function(){},["stop"]))},[V.isListMode?(Object(t.openBlock)(!0),Object(t.createBlock)(t.Fragment,{key:0},Object(t.renderList)(T.menus,function(J){return Object(t.openBlock)(),Object(t.createBlock)("li",{key:J.name,class:["v-md-editor__menu-item",["v-md-editor__menu-item-"+J.name,J.class]],onClick:Object(t.withModifiers)(function(et){return V.handleClick(J)},["stop"])},[J.render?(Object(t.openBlock)(),Object(t.createBlock)(Z,{key:0,render:J.render,editor:A.$self},null,8,["render","editor"])):(Object(t.openBlock)(),Object(t.createBlock)(t.Fragment,{key:1},[Object(t.createTextVNode)(Object(t.toDisplayString)(V.getText(J.text)),1)],64))],10,["onClick"])}),128)):(Object(t.openBlock)(),Object(t.createBlock)("li",w,[(Object(t.openBlock)(!0),Object(t.createBlock)(t.Fragment,null,Object(t.renderList)(V.rowCount,function(J){return Object(t.openBlock)(),Object(t.createBlock)("div",H,[(Object(t.openBlock)(!0),Object(t.createBlock)(t.Fragment,null,Object(t.renderList)(V.getRowMenus(J),function(et){return Object(t.openBlock)(),Object(t.createBlock)("span",{key:et.name,style:{width:T.itemWidth},class:["v-md-editor__menu-item",["v-md-editor__menu-item-"+et.name,et.class]],onClick:Object(t.withModifiers)(function(Q){return V.handleClick(et)},["stop"])},Object(t.toDisplayString)(et.text),15,["onClick"])}),128))])}),256))]))],38),[[t.vShow,T.visible]])]}),_:1})}var q=function(g,T){var U=T.data;return g.render.apply(g,U.$attrs)};q.props=["render"];var I=q,R={LIST:"list",PANEL:"panel"},B={name:"v-md-menu",components:{VMdRender:I},inject:["markdownEditor"],props:{mode:{type:String,default:R.PANEL},menus:Array,itemWidth:{type:String,default:"30px"},rowNum:{type:Number,default:10},visible:Boolean},emits:["update:visible","item-click"],data:function(){return{style:{left:0}}},computed:{rowCount:function(){return Math.ceil(this.menus.length/this.rowNum)},isListMode:function(){return this.mode===R.LIST}},watch:{visible:function(){this.visible&&this.$nextTick(this.calculateLayout)}},methods:{calculateLayout:function(){var g=this.$el.getBoundingClientRect(),T=g.right,U=document.documentElement.clientWidth;U-T<0&&(this.style={right:0})},getRowMenus:function(g){var T=g*this.rowNum,U=T-this.rowNum;return this.menus.slice(U,T)},getText:function(g){return typeof g=="function"?g(this.markdownEditor):g},hide:function(){this.$emit("update:visible",!1)},handleClick:function(g){this.$emit("item-click",g),this.hide()}}};n(83),B.render=$;var k=B,x=[],O="@@clickoutsideContext",N,W=0;o.d&&(document.addEventListener("mousedown",function(A){N=A}),document.addEventListener("mouseup",function(A){x.forEach(function(g){return g[O].documentHandler(A,N)})}));function K(A,g,T){return function(U,G){U===void 0&&(U={}),G===void 0&&(G={}),!(!T||!g||!g.instance||!U.target||!G.target||A.contains(U.target)||A.contains(G.target)||A===U.target)&&(g.arg&&A[O].methodName&&g.instance[A[O].methodName]?g.instance[A[O].methodName]():A[O].bindingFn&&A[O].bindingFn())}}var X={beforeMount:function(g,T,U){x.push(g);var G=W++;g[O]={id:G,documentHandler:K(g,T,U),methodName:T.arg,bindingFn:T.value}},updated:function(g,T,U){g[O].documentHandler=K(g,T,U),g[O].methodName=T.arg,g[O].bindingFn=T.value},unmounted:function(g){for(var T=x.length,U=0;Uet?Q:0,it=V>J?Q:0,ot="margin-bottom: "+nt+"; margin-right: "+it+";";Array.isArray(this.wrapStyle)?(T=Object(o.a)(this.wrapStyle),T.marginRight=Q,T.marginBottom=Q):typeof this.wrapStyle=="string"?T+=ot:T=ot}var ft=Object(t.h)(this.tag,{class:["scrollbar__view",this.viewClass],style:this.viewStyle,ref:"resize"},this.$slots.default()),ht=Object(t.createVNode)("div",{ref:"wrap",style:T,onScroll:this.handleScroll,class:[this.wrapClass,"scrollbar__wrap",g?"":"scrollbar__wrap--hidden-default"]},[[ft]]),pt;return this.native?pt=[Object(t.createVNode)("div",{ref:"wrap",class:[this.wrapClass,"scrollbar__wrap"],style:T},[[ft]])]:pt=[ht,Object(t.createVNode)(Ct,{move:this.moveX,size:this.sizeWidth},null),Object(t.createVNode)(Ct,{vertical:!0,move:this.moveY,size:this.sizeHeight},null)],Object(t.h)("div",{class:"scrollbar"},pt)}};n(88);var Dt=Xt,Yt={class:"v-md-editor__toc-nav"},Jt={class:"v-md-editor__toc-nav-title"};function Qt(A,g,T,U,G,V){return Object(t.openBlock)(),Object(t.createBlock)("ul",Yt,[(Object(t.openBlock)(!0),Object(t.createBlock)(t.Fragment,null,Object(t.renderList)(T.titles,function(Z){return Object(t.openBlock)(),Object(t.createBlock)("li",{style:{paddingLeft:T.indent*Z.indent+"px"},onClick:function(et){return A.$emit("nav-click",Z)},class:"v-md-editor__toc-nav-item"},[Object(t.createVNode)("span",Jt,Object(t.toDisplayString)(Z.title),1)],12,["onClick"])}),256))])}var Ot={name:"toc-nav",props:{titles:Array,indent:{type:Number,default:16}},emits:["nav-click"]};n(89),Ot.render=Qt;var St=Ot,ut,te={inheritAttrs:!1,components:(ut={},ut[h.default.name]=h.default,ut[Tt.name]=Tt,ut[Dt.name]=Dt,ut[St.name]=St,ut),provide:function(){return{markdownEditor:this}},props:{height:String,theme:Object,mode:{type:String,default:ct.a.EDITABLE},autofocus:Boolean,placeholder:String,tocNavPositionRight:Boolean,tabSize:{type:Number,default:2},beforePreviewChange:{type:Function,default:function(g,T){T(g)}}},emits:["blur","change","save","image-click"],data:function(){return{currentMode:this.mode,uploadConfig:{}}},watch:{mode:function(){this.currentMode=this.mode},currentMode:function(){this.currentMode===ct.a.EDITABLE&&this.enableSyncScroll&&this.$nextTick(this.previewSyncScroll)}},created:function(){this.theme&&this.$options.use(this.theme)},computed:{isPreviewMode:function(){return this.currentMode===ct.a.PREVIEW},isEditMode:function(){return this.currentMode===ct.a.EDIT}},mounted:function(){this.autofocus&&this.$nextTick(this.setFocusEnd)},methods:{setFocusEnd:function(){this.editorFocusEnd(),this.editorScrollToTop(9999),this.previewScrollTo(9999)},handleChange:function(g,T){this.$emit("change",g,T)},handleBlur:function(g){this.$emit("blur",g)},handlePreviewImageClick:function(g,T){this.$emit("image-click",g,T)},save:function(){this.$emit("save",this.text,this.$refs.preview.html)},insert:function(g){var T=this;this.focus();var U=this.getCurrentSelectedStr(),G=g(U),V=G.selected,Z=G.text;this.replaceSelectionText(Z),this.$nextTick(function(){T.changeSelctionTo(Z,V)})}}},ee={props:{modelValue:{type:String,default:""}},emits:["update:modelValue"],data:function(){return{text:this.modelValue}},methods:{handleInput:function(g){this.text=g,this.$emit("update:modelValue",g)}}},re={props:{defaultFullscreen:Boolean},emits:["fullscreen-change"],data:function(){return{fullscreen:!1}},watch:{fullscreen:function(){this.$emit("fullscreen-change",this.fullscreen)}},mounted:function(){window.addEventListener("keyup",this.handleWindowKeyup,!1),this.defaultFullscreen&&this.toggleFullScreen()},beforeUnmount:function(){window.removeEventListener("keyup",this.handleWindowKeyup,!1)},methods:{handleWindowKeyup:function(g){g.keyCode===27&&this.fullscreen&&this.toggleFullScreen(!1)},toggleFullScreen:function(g){g===void 0&&(g=!this.fullscreen),this.fullscreen=g;var T=document.querySelectorAll("html, body"),U=T[0],G=T[1],V=this.fullscreen?"hidden":null;G.style.overflow=V,U.style.overflow=V}}};function ne(A,g,T,U,G,V){return Object(t.openBlock)(),Object(t.createBlock)("input",{type:"file",style:{display:"none"},key:G.key,accept:T.uploadConfig.accept,multiple:T.uploadConfig.multiple,onInput:g[1]||(g[1]=function(){return G.handleUpload.apply(G,arguments)}),ref:"fileInput"},null,40,["accept","multiple"])}var ie=n(10),Mt=n.n(ie),oe=n(17),jt={name:"v-md-upload-file",props:{uploadConfig:Object},data:function(){return{handleUpload:function(){},key:0}},methods:{upload:function(){var g=this;return Object(oe.a)(Mt.a.mark(function T(){var U;return Mt.a.wrap(function(V){for(;;)switch(V.prev=V.next){case 0:return V.next=2,g.chooseFile();case 2:return U=V.sent,V.abrupt("return",U);case 4:case"end":return V.stop()}},T)}))()},chooseFile:function(){var g=this;return new Promise(function(T){g.handleUpload=function(U){T(U),g.key++},g.$refs.fileInput.click()})}}};jt.render=ne;var Lt=jt,ae=n(23),kt=n(12),se=n(1),Et,le={accept:"image/*",multiple:!1},ce={components:(Et={},Et[Lt.name]=Lt,Et),props:{uploadImageConfig:Object},emits:["upload-image"],computed:{uploadImgConfig:function(){return Object(c.a)({},le,this.uploadImageConfig)},hasUploadImage:function(){return!this.disabledMenus.includes(ae.default.name+"/upload-image")}},methods:{handleDrop:function(g){var T=Object(kt.a)(g.dataTransfer.files,this.uploadImgConfig);this.emitUploadImage(g,T)},handlePaste:function(g){var T=g.clipboardData;if(!!T){var U=Object(kt.a)(Object(kt.b)(T),this.uploadImgConfig);this.emitUploadImage(g,U)}},emitUploadImage:function(g,T){var U=this;this.hasUploadImage&&T.length&&(g.preventDefault(),this.$emit("upload-image",g,function(G){U.execCommand(se.l,G)},T))}}},dt=n(3),ue={data:function(){return{enableSyncScroll:!0}},methods:{toggleSyncScroll:function(g){g===void 0&&(g=!this.enableSyncScroll),this.enableSyncScroll=g,g&&this.previewSyncScroll()},previewSyncScroll:function(){if(!this.isEditMode){var g=this.$refs.preview.$el,T=this.$refs.previewScroller.$el,U=g.querySelectorAll("["+dt.c+"]"),G=this.getScrollInfo(),V=G.clientHeight,Z=G.top,J=G.height,et=T.querySelector(".scrollbar__wrap");if(V+Z===J){var Q=et.clientHeight,nt=et.scrollHeight;this.previewScrollTo(nt-Q)}else{for(var it,ot,ft=0;ft1?G-1:0),Z=1;Z=0;--N){var W=this.tryEntries[N],K=W.completion;if(W.tryLoc==="root")return O("end");if(W.tryLoc<=this.prev){var X=o.call(W,"catchLoc"),Y=o.call(W,"finallyLoc");if(X&&Y){if(this.prev=0;--O){var N=this.tryEntries[O];if(N.tryLoc<=this.prev&&o.call(N,"finallyLoc")&&this.prev=0;--x){var O=this.tryEntries[x];if(O.finallyLoc===k)return this.complete(O.completion,O.afterLoc),q(O),b}},catch:function(k){for(var x=this.tryEntries.length-1;x>=0;--x){var O=this.tryEntries[x];if(O.tryLoc===k){var N=O.completion;if(N.type==="throw"){var W=N.arg;q(O)}return W}}throw new Error("illegal catch attempt")},delegateYield:function(k,x,O){return this.delegate={iterator:R(k),resultName:x,nextLoc:O},this.method==="next"&&(this.arg=e),b}},i}(v.exports);try{regeneratorRuntime=r}catch{Function("r","regeneratorRuntime = r")(r)}},function(v,l,n){var r={"./bold.js":39,"./clear.js":40,"./code.js":41,"./fullscreen.js":42,"./h1.js":43,"./h2.js":44,"./h3.js":45,"./h4.js":46,"./h5.js":47,"./h6.js":48,"./hr.js":49,"./image.js":50,"./italic.js":51,"./link.js":52,"./ol.js":53,"./quote.js":54,"./redo.js":55,"./strikethrough.js":56,"./sync-scroll.js":57,"./table.js":58,"./ul.js":59,"./undo.js":60};function i(o){var e=t(o);return n(e)}function t(o){if(!n.o(r,o)){var e=new Error("Cannot find module '"+o+"'");throw e.code="MODULE_NOT_FOUND",e}return r[o]}i.keys=function(){return Object.keys(r)},i.resolve=t,v.exports=i,i.id=38},function(v,l,n){n.r(l);var r=n(2),i=n(1);n.d(l,"name",function(){return i.a}),l.default=function(t){t.insert(function(o){var e="**",a="**",s=t.langConfig.bold.placeholder,c=function(p){return p||s},f=Object(r.b)({selected:o,InsertGetter:function(p){return""+e+c(p)+a},selectedGetter:c}),d=f.insertContent,u=f.newSelected;return{text:d,selected:u}})}},function(v,l,n){n.r(l);var r=n(1);n.d(l,"name",function(){return r.b}),l.default=function(i){i.clear()}},function(v,l,n){n.r(l);var r=n(1);n.d(l,"name",function(){return r.c}),l.default=function(i){i.insert(function(t){var o="``` language",e="```",a=o+` +`+e;return t&&(a=o+` + `+t+` +`+e),{text:a,selected:"language"}})}},function(v,l,n){n.r(l);var r=n(1);n.d(l,"name",function(){return r.d}),l.default=function(i,t){i.toggleFullScreen(t)}},function(v,l,n){n.r(l);var r=n(2),i=n(1);n.d(l,"name",function(){return i.e}),l.default=function(t){t.insert(function(o){var e="#",a=t.langConfig.h1.placeholder,s=function(h){return h||a},c=Object(r.b)({selected:o,InsertGetter:function(h){return e+" "+s(h)},selectedGetter:s}),f=c.insertContent,d=c.newSelected;return{text:f,selected:d}})}},function(v,l,n){n.r(l);var r=n(2),i=n(1);n.d(l,"name",function(){return i.f}),l.default=function(t){t.insert(function(o){var e="##",a=t.langConfig.h2.placeholder,s=function(h){return h||a},c=Object(r.b)({selected:o,InsertGetter:function(h){return e+" "+s(h)},selectedGetter:s}),f=c.insertContent,d=c.newSelected;return{text:f,selected:d}})}},function(v,l,n){n.r(l);var r=n(2),i=n(1);n.d(l,"name",function(){return i.g}),l.default=function(t){t.insert(function(o){var e="###",a=t.langConfig.h3.placeholder,s=function(h){return h||a},c=Object(r.b)({selected:o,InsertGetter:function(h){return e+" "+s(h)},selectedGetter:s}),f=c.insertContent,d=c.newSelected;return{text:f,selected:d}})}},function(v,l,n){n.r(l);var r=n(2),i=n(1);n.d(l,"name",function(){return i.h}),l.default=function(t){t.insert(function(o){var e="####",a=t.langConfig.h4.placeholder,s=function(h){return h||a},c=Object(r.b)({selected:o,InsertGetter:function(h){return e+" "+s(h)},selectedGetter:s}),f=c.insertContent,d=c.newSelected;return{text:f,selected:d}})}},function(v,l,n){n.r(l);var r=n(2),i=n(1);n.d(l,"name",function(){return i.i}),l.default=function(t){t.insert(function(o){var e="#####",a=t.langConfig.h5.placeholder,s=function(h){return h||a},c=Object(r.b)({selected:o,InsertGetter:function(h){return e+" "+s(h)},selectedGetter:s}),f=c.insertContent,d=c.newSelected;return{text:f,selected:d}})}},function(v,l,n){n.r(l);var r=n(2),i=n(1);n.d(l,"name",function(){return i.j}),l.default=function(t){t.insert(function(o){var e="######",a=t.langConfig.h6.placeholder,s=function(h){return h||a},c=Object(r.b)({selected:o,InsertGetter:function(h){return e+" "+s(h)},selectedGetter:s}),f=c.insertContent,d=c.newSelected;return{text:f,selected:d}})}},function(v,l,n){n.r(l);var r=n(1);n.d(l,"name",function(){return r.k}),l.default=function(i){i.insert(function(){return{text:"------------------------------------"}})}},function(v,l,n){n.r(l);var r=n(1);n.d(l,"name",function(){return r.l}),l.default=function(i,t){var o=t===void 0?{}:t,e=o.url,a=o.desc,s=o.width,c=o.height;i.insert(function(){var f="http://",d="Description",u=f,h="!["+(a||d)+"]("+(e||f)+")",p=[];return s&&p.push('width="'+s+'"'),c&&p.push('height="'+c+'"'),p.length&&(h+="{{{"+p.join(" ")+"}}}"),e&&a?u=null:e?u=d:a&&(u=f),{text:h,selected:u}})}},function(v,l,n){n.r(l);var r=n(2),i=n(1);n.d(l,"name",function(){return i.m}),l.default=function(t){t.insert(function(o){var e="*",a="*",s=t.langConfig.italic.placeholder,c=function(p){return p||s},f=Object(r.b)({selected:o,InsertGetter:function(p){return""+e+c(p)+a},selectedGetter:c}),d=f.insertContent,u=f.newSelected;return{text:d,selected:u}})}},function(v,l,n){n.r(l);var r=n(2),i=n(1);n.d(l,"name",function(){return i.n}),l.default=function(t){t.insert(function(o){var e=t.langConfig.link.descPlaceholder,a="http://",s=Object(r.b)({selected:o,InsertGetter:function(u){return"["+(u||e)+"]("+a+")"},selectedGetter:function(u){return u?a:e}}),c=s.insertContent,f=s.newSelected;return{text:c,selected:f}})}},function(v,l,n){n.r(l);var r=n(2),i=n(1);n.d(l,"name",function(){return i.o}),l.default=function(t){t.insert(function(o){var e=t.langConfig.ol.placeholder,a=function(u){return u||e},s=Object(r.b)({selected:o,InsertGetter:function(u,h){return h+". "+a(u)},selectedGetter:a,ignoreEmptyLine:!1}),c=s.insertContent,f=s.newSelected;return{text:c,selected:f}})}},function(v,l,n){n.r(l);var r=n(1);n.d(l,"name",function(){return r.p}),l.default=function(i){i.insert(function(t){var o=">",e=t||i.langConfig.quote.placeholder;return{text:o+" "+e,selected:e}})}},function(v,l,n){n.r(l);var r=n(1);n.d(l,"name",function(){return r.q}),l.default=function(i){i.redo()}},function(v,l,n){n.r(l);var r=n(2),i=n(1);n.d(l,"name",function(){return i.r}),l.default=function(t){t.insert(function(o){var e="~~",a="~~",s=t.langConfig.strikethrough.placeholder,c=function(p){return p||s},f=Object(r.b)({selected:o,InsertGetter:function(p){return""+e+c(p)+a},selectedGetter:c}),d=f.insertContent,u=f.newSelected;return{text:d,selected:u}})}},function(v,l,n){n.r(l);var r=n(1);n.d(l,"name",function(){return r.s}),l.default=function(i,t){i.toggleSyncScroll(t)}},function(v,l,n){n.r(l);var r=n(1);n.d(l,"name",function(){return r.t}),l.default=function(i){i.insert(function(){var t=`|column1|column2|column3| +|-|-|-| +|content1|content2|content3|`;return{text:t,selected:"column1"}})}},function(v,l,n){n.r(l);var r=n(2),i=n(1);n.d(l,"name",function(){return i.u}),l.default=function(t){t.insert(function(o){var e=t.langConfig.ul.placeholder,a=function(u){return u||e},s=Object(r.b)({selected:o,InsertGetter:function(u){return"- "+a(u)},selectedGetter:a,ignoreEmptyLine:!1}),c=s.insertContent,f=s.newSelected;return{text:c,selected:f}})}},function(v,l,n){n.r(l);var r=n(1);n.d(l,"name",function(){return r.v}),l.default=function(i){i.undo()}},function(v,l,n){var r={"./bold.js":62,"./clear.js":63,"./code.js":64,"./fullscreen.js":65,"./h.js":66,"./hr.js":67,"./image.js":23,"./italic.js":68,"./link.js":69,"./ol.js":70,"./preview.js":71,"./quote.js":72,"./redo.js":73,"./save.js":74,"./strikethrough.js":75,"./sync-scroll.js":76,"./table.js":77,"./toc.js":78,"./ul.js":79,"./undo.js":80};function i(o){var e=t(o);return n(e)}function t(o){if(!n.o(r,o)){var e=new Error("Cannot find module '"+o+"'");throw e.code="MODULE_NOT_FOUND",e}return r[o]}i.keys=function(){return Object.keys(r)},i.resolve=t,v.exports=i,i.id=61},function(v,l,n){n.r(l);var r=n(1);l.default={name:r.a,icon:"v-md-icon-bold",title:function(t){return t.langConfig.bold.toolbar+"\uFF08Ctrl+B\uFF09"},action:function(t){t.execCommand(r.a)}}},function(v,l,n){n.r(l);var r=n(1);l.default={name:r.b,icon:"v-md-icon-clear",title:function(t){return t.langConfig.clear.toolbar},action:function(t){t.execCommand(r.b)}}},function(v,l,n){n.r(l);var r=n(1);l.default={name:r.c,icon:"v-md-icon-code",title:function(t){return t.langConfig.code.toolbar},action:function(t){t.execCommand(r.c)}}},function(v,l,n){n.r(l);var r=n(1);l.default={name:r.d,icon:"v-md-icon-fullscreen",title:function(t){var o=t.langConfig.fullscreen;return t.fullscreen?o.disabled:o.enabled},active:function(t){return t.fullscreen},action:function(t){t.execCommand(r.d,!t.fullscreen)}}},function(v,l,n){n.r(l);var r=n(1);l.default={name:"h",text:"H",title:function(t){return t.langConfig.h.toolbar+"\uFF08Ctrl+1~6\uFF09"},menus:[{name:r.e,text:function(t){return t.langConfig.h1.toolbar},action:function(t){t.execCommand(r.e)}},{name:r.f,text:function(t){return t.langConfig.h2.toolbar},action:function(t){t.execCommand(r.f)}},{name:r.g,text:function(t){return t.langConfig.h3.toolbar},action:function(t){t.execCommand(r.g)}},{name:r.h,text:function(t){return t.langConfig.h4.toolbar},action:function(t){t.execCommand(r.h)}},{name:r.i,text:function(t){return t.langConfig.h5.toolbar},action:function(t){t.execCommand(r.i)}},{name:r.j,text:function(t){return t.langConfig.h6.toolbar},action:function(t){t.execCommand(r.j)}}]}},function(v,l,n){n.r(l);var r=n(1);l.default={name:r.k,icon:"v-md-icon-horizontal",title:function(t){return t.langConfig.hr.toolbar},action:function(t){t.execCommand(r.k)}}},function(v,l,n){n.r(l);var r=n(1);l.default={name:r.m,icon:"v-md-icon-italic",title:function(t){return t.langConfig.italic.toolbar+"\uFF08Ctrl+I\uFF09"},action:function(t){t.execCommand(r.m)}}},function(v,l,n){n.r(l);var r=n(1);l.default={name:r.n,icon:"v-md-icon-link",title:function(t){return t.langConfig.link.toolbar+"\uFF08Ctrl+L\uFF09"},action:function(t){t.execCommand(r.n)}}},function(v,l,n){n.r(l);var r=n(1);l.default={name:r.o,icon:"v-md-icon-ol",title:function(t){return t.langConfig.ol.toolbar+"\uFF08Ctrl+O\uFF09"},action:function(t){t.execCommand(r.o)}}},function(v,l,n){n.r(l);var r=n(4);l.default={name:"preview",icon:"v-md-icon-preview",title:function(t){var o=t.langConfig.preview;return t.currentMode===r.a.EDITABLE?o.disabled:o.enabled},active:function(t){return t.currentMode===r.a.EDITABLE},action:function(t){t.currentMode=t.currentMode===r.a.EDITABLE?r.a.EDIT:r.a.EDITABLE}}},function(v,l,n){n.r(l);var r=n(1);l.default={name:r.p,icon:"v-md-icon-quote",title:function(t){return t.langConfig.quote.toolbar+"\uFF08Ctrl+Q\uFF09"},action:function(t){t.execCommand(r.p)}}},function(v,l,n){n.r(l);var r=n(1);l.default={name:r.q,icon:"v-md-icon-redo",title:function(t){return t.langConfig.redo.toolbar+"\uFF08Ctrl+Y\uFF09"},action:function(t){t.execCommand(r.q)}}},function(v,l,n){n.r(l),l.default={name:"save",icon:"v-md-icon-save",title:function(i){return i.langConfig.save.toolbar+"\uFF08Ctrl+S\uFF09"},action:function(i){i.save()}}},function(v,l,n){n.r(l);var r=n(1);l.default={name:r.r,icon:"v-md-icon-strikethrough",title:function(t){return t.langConfig.strikethrough.toolbar},action:function(t){t.execCommand(r.r)}}},function(v,l,n){n.r(l);var r=n(1);l.default={name:r.s,icon:"v-md-icon-sync",title:function(t){var o=t.langConfig.syncScroll;return t.enableSyncScroll?o.disabled:o.enabled},active:function(t){return t.enableSyncScroll},action:function(t){t.execCommand(r.s,!t.enableSyncScroll)}}},function(v,l,n){n.r(l);var r=n(1);l.default={name:r.t,icon:"v-md-icon-table",title:function(t){return t.langConfig.table.toolbar},action:function(t){t.execCommand(r.t)}}},function(v,l,n){n.r(l),l.default={name:"toc",icon:"v-md-icon-toc",title:function(i){var t=i.langConfig.toc;return i.tocVisible?t.disabled:t.enabled},active:function(i){return i.tocVisible},action:function(i){i.toggleToc()}}},function(v,l,n){n.r(l);var r=n(1);l.default={name:r.u,icon:"v-md-icon-ul",title:function(t){return t.langConfig.ul.toolbar+"\uFF08Ctrl+U\uFF09"},action:function(t){t.execCommand(r.u)}}},function(v,l,n){n.r(l);var r=n(1);l.default={name:r.v,icon:"v-md-icon-undo",title:function(t){return t.langConfig.undo.toolbar+"\uFF08Ctrl+Z\uFF09"},action:function(t){t.execCommand(r.v)}}},function(v,l,n){},function(v,l,n){n(27)},function(v,l,n){n(28)},function(v,l,n){n(29)},function(v,l,n){n(30)},function(v,l){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch{typeof window=="object"&&(n=window)}v.exports=n},function(v,l,n){n(31)},function(v,l,n){n(32)},function(v,l,n){n(33)},function(v,l,n){var r={"./bold.js":91,"./h1.js":92,"./h2.js":93,"./h3.js":94,"./h4.js":95,"./h5.js":96,"./h6.js":97,"./italic.js":98,"./link.js":99,"./ol.js":100,"./quote.js":101,"./save.js":102,"./ul.js":103};function i(o){var e=t(o);return n(e)}function t(o){if(!n.o(r,o)){var e=new Error("Cannot find module '"+o+"'");throw e.code="MODULE_NOT_FOUND",e}return r[o]}i.keys=function(){return Object.keys(r)},i.resolve=t,v.exports=i,i.id=90},function(v,l,n){n.r(l);var r=n(1);l.default={modifier:"ctrl",key:"b",action:function(t){t.execCommand(r.a)}}},function(v,l,n){n.r(l);var r=n(1);l.default={modifier:"ctrl",key:"1",action:function(t){t.execCommand(r.e)}}},function(v,l,n){n.r(l);var r=n(1);l.default={modifier:"ctrl",key:"2",action:function(t){t.execCommand(r.f)}}},function(v,l,n){n.r(l);var r=n(1);l.default={modifier:"ctrl",key:"3",action:function(t){t.execCommand(r.g)}}},function(v,l,n){n.r(l);var r=n(1);l.default={modifier:"ctrl",key:"4",action:function(t){t.execCommand(r.h)}}},function(v,l,n){n.r(l);var r=n(1);l.default={modifier:"ctrl",key:"5",action:function(t){t.execCommand(r.i)}}},function(v,l,n){n.r(l);var r=n(1);l.default={modifier:"ctrl",key:"6",action:function(t){t.execCommand(r.j)}}},function(v,l,n){n.r(l);var r=n(1);l.default={modifier:"ctrl",key:"i",action:function(t){t.execCommand(r.m)}}},function(v,l,n){n.r(l);var r=n(1);l.default={modifier:"ctrl",key:"l",action:function(t){t.execCommand(r.n)}}},function(v,l,n){n.r(l);var r=n(1);l.default={modifier:"ctrl",key:"o",action:function(t){t.execCommand(r.o)}}},function(v,l,n){n.r(l);var r=n(1);l.default={modifier:"ctrl",key:"q",action:function(t){t.execCommand(r.p)}}},function(v,l,n){n.r(l),l.default={modifier:"ctrl",key:"s",action:function(i){i.save()}}},function(v,l,n){n.r(l);var r=n(1);l.default={modifier:"ctrl",key:"u",action:function(t){t.execCommand(r.u)}}},function(v,l,n){},,function(v,l,n){n(104)},,function(v,l,n){n.r(l);var r=n(0);function i(D,w,H,$,q,I){var R=Object(r.resolveComponent)("toc-nav"),B=Object(r.resolveComponent)("scrollbar"),k=Object(r.resolveComponent)("v-md-textarea-editor"),x=Object(r.resolveComponent)("v-md-preview"),O=Object(r.resolveComponent)("v-md-upload-file"),N=Object(r.resolveComponent)("v-md-container");return Object(r.openBlock)(),Object(r.createBlock)(N,{"left-toolbar":D.leftToolbar,"right-toolbar":D.rightToolbar,toolbars:D.toolbars,"disabled-menus":D.disabledMenus,height:D.height,fullscreen:D.fullscreen,"left-area-visible":D.tocVisible,"left-area-title":D.langConfig.toc.title,"left-area-reverse":D.tocNavPositionRight,mode:D.currentMode,onEditorWrapperClick:D.handleEditorWrapperClick,onToolbarItemClick:D.handleToolbarItemClick,onToolbarMenuClick:D.handleToolbarMenuClick,ref:"contaner"},{"left-area":Object(r.withCtx)(function(){return[Object(r.createVNode)(B,null,{default:Object(r.withCtx)(function(){return[Object(r.createVNode)(R,{titles:D.titles,onNavClick:D.handleNavClick},null,8,["titles","onNavClick"])]}),_:1})]}),editor:Object(r.withCtx)(function(){return[Object(r.createVNode)(B,{onScroll:D.handleEditorScroll,ref:"editorScroller"},{default:Object(r.withCtx)(function(){return[Object(r.createVNode)(k,{"model-value":D.text,"min-height":D.textEditorMinHeight,placeholder:D.placeholder,"onUpdate:modelValue":D.handleInput,onClick:w[1]||(w[1]=Object(r.withModifiers)(function(){},["stop"])),onDrop:D.handleDrop,onPaste:D.handlePaste,onBlur:D.handleBlur,ref:"editorEgine"},null,8,["model-value","min-height","placeholder","onUpdate:modelValue","onDrop","onPaste","onBlur"])]}),_:1},8,["onScroll"])]}),preview:Object(r.withCtx)(function(){return[Object(r.createVNode)(B,{ref:"previewScroller"},{default:Object(r.withCtx)(function(){return[Object(r.createVNode)(x,{text:D.text,"tab-size":D.tabSize,"scroll-container":D.getPreviewScrollContainer,"before-change":D.beforePreviewChange,onChange:D.handleChange,onImageClick:D.handlePreviewImageClick,ref:"preview"},null,8,["text","tab-size","scroll-container","before-change","onChange","onImageClick"])]}),_:1},512)]}),default:Object(r.withCtx)(function(){return[D.hasUploadImage?(Object(r.openBlock)(),Object(r.createBlock)(O,{key:0,"upload-config":D.uploadConfig,ref:"uploadFile"},null,8,["upload-config"])):Object(r.createCommentVNode)("v-if",!0)]}),_:1},8,["left-toolbar","right-toolbar","toolbars","disabled-menus","height","fullscreen","left-area-visible","left-area-title","left-area-reverse","mode","onEditorWrapperClick","onToolbarItemClick","onToolbarMenuClick"])}var t=n(10),o=n.n(t),e=n(17),a={class:"v-md-textarea-editor"},s=Object(r.createVNode)("br",null,null,-1);function c(D,w,H,$,q,I){return Object(r.openBlock)(),Object(r.createBlock)("div",a,[Object(r.createVNode)("pre",{style:{minHeight:H.minHeight}},[(Object(r.openBlock)(!0),Object(r.createBlock)(r.Fragment,null,Object(r.renderList)(H.modelValue.split(` +`),function(R,B){return Object(r.openBlock)(),Object(r.createBlock)("section",{"data-line":B+1},[Object(r.createTextVNode)(Object(r.toDisplayString)(R||" "),1),s],8,["data-line"])}),256))],4),Object(r.createVNode)("textarea",{ref:"textarea",value:H.modelValue,placeholder:H.placeholder,spellcheck:"false",onCompositionstart:w[1]||(w[1]=function(){return I.handleCompositionStart.apply(I,arguments)}),onCompositionupdate:w[2]||(w[2]=function(){return I.handleCompositionUpdate.apply(I,arguments)}),onCompositionend:w[3]||(w[3]=function(){return I.handleCompositionEnd.apply(I,arguments)}),onInput:w[4]||(w[4]=function(){return I.handleInput.apply(I,arguments)}),onClick:w[5]||(w[5]=function(){return I.updateCurrentHistoryRange.apply(I,arguments)}),onPaste:w[6]||(w[6]=function(){return I.handlePaste.apply(I,arguments)}),onBlur:w[7]||(w[7]=function(){return I.handleBlur.apply(I,arguments)}),onKeydown:[w[8]||(w[8]=Object(r.withKeys)(Object(r.withModifiers)(function(){},["prevent"]),["tab"])),w[9]||(w[9]=Object(r.withKeys)(Object(r.withModifiers)(function(){return I.undo.apply(I,arguments)},["ctrl","prevent","exact"]),["z"])),w[10]||(w[10]=Object(r.withKeys)(Object(r.withModifiers)(function(){return I.undo.apply(I,arguments)},["meta","prevent","exact"]),["z"])),w[11]||(w[11]=Object(r.withKeys)(Object(r.withModifiers)(function(){return I.redo.apply(I,arguments)},["ctrl","prevent","exact"]),["y"])),w[12]||(w[12]=Object(r.withKeys)(Object(r.withModifiers)(function(){return I.redo.apply(I,arguments)},["meta","prevent","exact"]),["y"]))],onKeyup:[w[13]||(w[13]=Object(r.withKeys)(Object(r.withModifiers)(function(){return I.updateCurrentHistoryRange.apply(I,arguments)},["shift","exact"]),["up"])),w[14]||(w[14]=Object(r.withKeys)(Object(r.withModifiers)(function(){return I.updateCurrentHistoryRange.apply(I,arguments)},["shift","exact"]),["down"])),w[15]||(w[15]=Object(r.withKeys)(Object(r.withModifiers)(function(){return I.updateCurrentHistoryRange.apply(I,arguments)},["shift","exact"]),["left"])),w[16]||(w[16]=Object(r.withKeys)(Object(r.withModifiers)(function(){return I.updateCurrentHistoryRange.apply(I,arguments)},["shift","exact"]),["right"]))]},null,40,["value","placeholder"])])}var f=n(5),d;function u(D){if(D.nodeName!=="TEXTAREA")return!1;if(typeof d=="undefined"){var w=document.createElement("textarea");w.value=1,d=!!w.firstChild}return d}function h(D,w){if(D.focus(),document.selection){var H=document.selection.createRange();H.text=w,H.collapse(!1),H.select();return}var $=document.execCommand("insertText",!1,w);if(!$){var q=D.selectionStart,I=D.selectionEnd;if(typeof D.setRangeText=="function")D.setRangeText(w);else{var R=document.createRange(),B=document.createTextNode(w);if(u(D)){var k=D.firstChild;if(!k)D.appendChild(B);else{for(var x=0,O=null,N=null;k&&(O===null||N===null);){var W=k.nodeValue.length;q>=x&&q<=x+W&&R.setStart(O=k,q-x),I>=x&&I<=x+W&&R.setEnd(N=k,I-x),x+=W,k=k.nextSibling}q!==I&&R.deleteContents()}}if(u(D)&&R.commonAncestorContainer.nodeName==="#text")R.insertNode(B);else{var K=D.value;D.value=K.slice(0,q)+w+K.slice(I)}}D.setSelectionRange(q+w.length,q+w.length);var X=document.createEvent("UIEvent");X.initEvent("input",!0,!1),D.dispatchEvent(X)}}var p=h,m=n(36),C=n(2),E={name:"v-md-textarea-editor",props:{modelValue:String,minHeight:String,placeholder:String,historyDebounce:{type:Number,default:400},historyMax:{type:Number,default:30}},emits:["blur","paste","update:modelValue"],data:function(){return{isComposing:!1}},computed:{textareaEl:function(){return this.$refs.textarea}},watch:{modelValue:function(){var w=this;this.clearTimeout(),this.triggerInputBySetHistory||(this.timmer=setTimeout(function(){w.saveHistory(),w.clearTimeout()},this.historyDebounce))}},created:function(){this.historyStack=[],this.historyIndex=0,this.hotkeysManager=new m.a},mounted:function(){this.saveHistory(),this.textareaEl.addEventListener("keydown",this.handleKeydown,!1)},beforeUnmount:function(){this.textareaEl.removeEventListener("keydown",this.handleKeydown,!1)},methods:{handleCompositionStart:function(){this.isComposing=!0},handleCompositionUpdate:function(w){var H=w.target.value,$=H[H.length-1]||"";this.isComposing=!Object(C.e)($)},handleCompositionEnd:function(w){this.isComposing&&(this.isComposing=!1,this.handleInput(w))},handlePaste:function(w){this.$emit("paste",w)},handleBlur:function(w){this.$emit("blur",w)},registerHotkeys:function(){var w;(w=this.hotkeysManager).registerHotkeys.apply(w,arguments)},handleKeydown:function(w){this.hotkeysManager.dispatch(w)},heightAtLine:function(w){var H=this.$el.querySelector('section[data-line="'+w+'"]');return H?H.offsetTop+H.offsetHeight:0},clearTimeout:function(D){function w(){return D.apply(this,arguments)}return w.toString=function(){return D.toString()},w}(function(){this.timmer&&clearTimeout(this.timmer),this.timmer=null}),updateCurrentHistoryRange:function(){this.timmer||this.updateHistory(this.historyIndex,{range:this.getRange()})},handleInput:function(w){this.isComposing||this.$emit("update:modelValue",w.target.value)},saveHistory:function(){var w=this.getRange(),H={value:this.modelValue,range:w};this.historyStack=this.historyStack.slice(0,this.historyIndex+1),this.historyStack.push(H),this.historyStack.length>this.historyMax&&this.historyStack.shift(),this.historyIndex=this.historyStack.length-1},updateHistory:function(w,H){var $=this.historyStack[w];"value"in H&&($.value=H.value),Object(f.a)($.range,H.range)},goHistory:function(w){var H=this,$=this.historyStack[w],q=$.value,I=$.range;this.$emit("update:modelValue",q),this.triggerInputBySetHistory=!0,this.$nextTick(function(){H.triggerInputBySetHistory=!1,H.setRange(I)})},getRange:function(){return{start:this.textareaEl.selectionStart,end:this.textareaEl.selectionEnd}},setRange:function(w){var H=w.start,$=w.end;this.textareaEl.setSelectionRange(H,$),this.updateCurrentHistoryRange()},focus:function(){this.textareaEl.focus()},insertText:function(w){p(this.textareaEl,w)},undo:function(){this.historyIndex>0&&(this.historyIndex--,this.goHistory(this.historyIndex))},redo:function(){this.historyIndexH?this.text.slice(H,$):null},changeSelctionTo:function(w,H){var $=this.$refs.editorEgine,q=w.indexOf(H),I=$.getRange().end;if(q!==-1){var R=this.text.slice(0,I),B=R.length-w.length,k=B+q,x=k+H.length;this.$refs.editorEgine.setRange({start:k,end:x})}}}};Object(y.a)(P);var S=P;S.render=i;var M=S,j=n(7);n(18);var F="2.3.15",z=function(w){w.component(M.name,M)};M.version=F,M.install=z,M.xss=j.a,M.use=function(D,w){return typeof D=="function"?D(M,w):D.install(M,w),M},l.default=M}]).default})})(zt);var De=Bt(zt.exports),Ut={exports:{}};(function(vt,Nt){(function(L,v){vt.exports=v()})(typeof self!="undefined"?self:Rt,function(){return function(L){var v={};function l(n){if(v[n])return v[n].exports;var r=v[n]={i:n,l:!1,exports:{}};return L[n].call(r.exports,r,r.exports,l),r.l=!0,r.exports}return l.m=L,l.c=v,l.d=function(n,r,i){l.o(n,r)||Object.defineProperty(n,r,{enumerable:!0,get:i})},l.r=function(n){typeof Symbol!="undefined"&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})},l.t=function(n,r){if(1&r&&(n=l(n)),8&r||4&r&&typeof n=="object"&&n&&n.__esModule)return n;var i=Object.create(null);if(l.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:n}),2&r&&typeof n!="string")for(var t in n)l.d(i,t,function(o){return n[o]}.bind(null,t));return i},l.n=function(n){var r=n&&n.__esModule?function(){return n.default}:function(){return n};return l.d(r,"a",r),r},l.o=function(n,r){return Object.prototype.hasOwnProperty.call(n,r)},l.p="",l(l.s=86)}([function(L,v,l){var n=Object.prototype.hasOwnProperty;function r(m,C){return n.call(m,C)}function i(m){return!(m>=55296&&m<=57343)&&!(m>=64976&&m<=65007)&&(65535&m)!=65535&&(65535&m)!=65534&&!(m>=0&&m<=8)&&m!==11&&!(m>=14&&m<=31)&&!(m>=127&&m<=159)&&!(m>1114111)}function t(m){if(m>65535){var C=55296+((m-=65536)>>10),E=56320+(1023&m);return String.fromCharCode(C,E)}return String.fromCharCode(m)}var o=/\\([!"#$%&'()*+,\-.\/:;<=>?@[\\\]^_`{|}~])/g,e=new RegExp(o.source+"|"+/&([a-z#][a-z0-9]{1,31});/gi.source,"gi"),a=/^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))/i,s=l(7),c=/[&<>"]/,f=/[&<>"]/g,d={"&":"&","<":"<",">":">",'"':"""};function u(m){return d[m]}var h=/[.?*+^$[\]\\(){}|-]/g,p=l(3);v.lib={},v.lib.mdurl=l(8),v.lib.ucmicro=l(26),v.assign=function(m){var C=Array.prototype.slice.call(arguments,1);return C.forEach(function(E){if(E){if(typeof E!="object")throw new TypeError(E+"must be object");Object.keys(E).forEach(function(b){m[b]=E[b]})}}),m},v.isString=function(m){return function(C){return Object.prototype.toString.call(C)}(m)==="[object String]"},v.has=r,v.unescapeMd=function(m){return m.indexOf("\\")<0?m:m.replace(o,"$1")},v.unescapeAll=function(m){return m.indexOf("\\")<0&&m.indexOf("&")<0?m:m.replace(e,function(C,E,b){return E||function(y,_){var P=0;return r(s,_)?s[_]:_.charCodeAt(0)===35&&a.test(_)&&i(P=_[1].toLowerCase()==="x"?parseInt(_.slice(2),16):parseInt(_.slice(1),10))?t(P):y}(C,b)})},v.isValidEntityCode=i,v.fromCodePoint=t,v.escapeHtml=function(m){return c.test(m)?m.replace(f,u):m},v.arrayReplaceAt=function(m,C,E){return[].concat(m.slice(0,C),E,m.slice(C+1))},v.isSpace=function(m){switch(m){case 9:case 32:return!0}return!1},v.isWhiteSpace=function(m){if(m>=8192&&m<=8202)return!0;switch(m){case 9:case 10:case 11:case 12:case 13:case 32:case 160:case 5760:case 8239:case 8287:case 12288:return!0}return!1},v.isMdAsciiPunct=function(m){switch(m){case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 47:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 91:case 92:case 93:case 94:case 95:case 96:case 123:case 124:case 125:case 126:return!0;default:return!1}},v.isPunctChar=function(m){return p.test(m)},v.escapeRE=function(m){return m.replace(h,"\\$&")},v.normalizeReference=function(m){return m=m.trim().replace(/\s+/g," "),"\u1E9E".toLowerCase()==="\u1E7E"&&(m=m.replace(/ẞ/g,"\xDF")),m.toLowerCase().toUpperCase()}},function(L,v,l){function n(){return(n=Object.assign||function(r){for(var i=1;i'+m+""}}v.b=function(){var o=new r.a;return o.set({html:!0,breaks:!0,linkify:!1,typographer:!0}),o}},function(L,v){L.exports=/[!-#%-\*,-\/:;\?@\[-\]_\{\}\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166D\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4E\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD803[\uDF55-\uDF59]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDC4B-\uDC4F\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDF3C-\uDF3E]|\uD806[\uDC3B\uDE3F-\uDE46\uDE9A-\uDE9C\uDE9E-\uDEA2]|\uD807[\uDC41-\uDC45\uDC70\uDC71\uDEF7\uDEF8]|\uD809[\uDC70-\uDC74]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD81B[\uDE97-\uDE9A]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]|\uD83A[\uDD5E\uDD5F]/},function(L,v,l){function n(){this.__rules__=[],this.__cache__=null}n.prototype.__find__=function(r){for(var i=0;i=0&&(t=this.attrs[i][1]),t},n.prototype.attrJoin=function(r,i){var t=this.attrIndex(r);t<0?this.attrPush([r,i]):this.attrs[t][1]=this.attrs[t][1]+" "+i},L.exports=n},function(L,v,l){const n=/[\u0000-\u001f]/g,r=/[\s~`!@#$%^&*()\-_+=[\]{}|\\;:"'“”‘’–—<>,.?/]+/g,i=/[\u0300-\u036F]/g;L.exports=function(t){return t.normalize("NFKD").replace(i,"").replace(n,"").replace(r,"-").replace(/\-{2,}/g,"-").replace(/^\-+|\-+$/g,"").replace(/^(\d)/,"_$1").toLowerCase()}},function(L,v,l){L.exports=l(21)},function(L,v,l){L.exports.encode=l(22),L.exports.decode=l(23),L.exports.format=l(24),L.exports.parse=l(25)},function(L,v){L.exports=/[\0-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/},function(L,v){L.exports=/[\0-\x1F\x7F-\x9F]/},function(L,v){L.exports=/[ \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]/},function(L,v,l){var n=`<[A-Za-z][A-Za-z0-9\\-]*(?:\\s+[a-zA-Z_:][a-zA-Z0-9:._-]*(?:\\s*=\\s*(?:[^"'=<>\`\\x00-\\x20]+|'[^']*'|"[^"]*"))?)*\\s*\\/?>`,r="<\\/[A-Za-z][A-Za-z0-9\\-]*\\s*>",i=new RegExp("^(?:"+n+"|"+r+"|||<[?][\\s\\S]*?[?]>|]*>|)"),t=new RegExp("^(?:"+n+"|"+r+")");L.exports.HTML_TAG_RE=i,L.exports.HTML_OPEN_CLOSE_TAG_RE=t},function(L,v,l){function n(r,i){var t,o,e,a,s,c=[],f=i.length;for(t=0;t=0;t--)(o=i[t]).marker!==95&&o.marker!==42||o.end!==-1&&(e=i[o.end],c=t>0&&i[t-1].end===o.end+1&&i[t-1].marker===o.marker&&i[t-1].token===o.token-1&&i[o.end+1].token===e.token+1,s=String.fromCharCode(o.marker),(a=r.tokens[o.token]).type=c?"strong_open":"em_open",a.tag=c?"strong":"em",a.nesting=1,a.markup=c?s+s:s,a.content="",(a=r.tokens[e.token]).type=c?"strong_close":"em_close",a.tag=c?"strong":"em",a.nesting=-1,a.markup=c?s+s:s,a.content="",c&&(r.tokens[i[t-1].token].content="",r.tokens[i[o.end+1].token].content="",t--))}L.exports.tokenize=function(r,i){var t,o,e=r.pos,a=r.src.charCodeAt(e);if(i||a!==95&&a!==42)return!1;for(o=r.scanDelims(r.pos,a===42),t=0;t=0?h[p]:h[h.length+p]);var h,p;if(u===void 0)return f;for(let m in c)if(m!=="shift"&&m!=="position"){if(u[m]===void 0)return f;if(m==="children"&&t(c.children)){if(u.children.length===0)return f;let C,E=c.children,b=u.children;if(E.every(y=>y.position!==void 0)){if(C=E.every(y=>i(b,y.position,y).match),C){let y=e(E).position;f.j=y>=0?y:b.length+y}}else for(let y=0;yi(b,y,_).match),C){f.j=y;break}if(C===!1)return f}else switch(typeof c[m]){case"boolean":case"number":case"string":if(u[m]!==c[m])return f;break;case"function":if(!c[m](u[m]))return f;break;case"object":if(o(c[m])){if(c[m].every(C=>C(u[m]))===!1)return f;break}default:throw new Error(`Unknown type of pattern test (key: ${m}). Test should be of type boolean, number, string, function or array of functions.`)}}return f.match=!0,f}function t(a){return Array.isArray(a)&&a.length&&a.every(s=>typeof s=="object")}function o(a){return Array.isArray(a)&&a.length&&a.every(s=>typeof s=="function")}function e(a){return a.slice(-1)[0]||{}}L.exports=function(a,s){let c=Object.assign({},r);c=Object.assign(c,s);const f=n(c);a.core.ruler.before("linkify","curly_attributes",function(d){let u=d.tokens;for(let h=0;h{let b=i(u,h,E);return b.j!==null&&(C=b.j),b.match})&&(m.transform(u,h,C),m.name!=="inline attributes"&&m.name!=="inline nesting 0"||p--)}})}},function(L,v,l){L.exports=l(20)},function(L,v,l){l.r(v),l.d(v,"default",function(){return h});var n=l(1),r=l(15),i=l.n(r),t=function(p,m){var C=(m===void 0?{}:m).lineMarkup,E=C===void 0?"data-line":C,b=function(S,M,j,F,z){return z.renderToken(S,M,j)};function y(S){return function(M,j,F,z,D){var w=M[j];return w.attrPush([E,w.map[0]+1]),S(M,j,F,z,D)}}function _(S){return function(M,j,F,z,D){var w=S(M,j,F,z,D),H=M[j].map[0]+1;return"

"}}var P={table_open:y,blockquote_open:y,bullet_list_open:y,ordered_list_open:y,reference_open:y,heading_open:y,lheading_open:y,paragraph_open:y,hr:y,html_block:_,code_block:_,fence:_};Object.keys(P).forEach(function(S){var M=p.renderer.rules[S]||b;p.renderer.rules[S]=P[S](M)})},o=function(p,m){m===void 0&&(m={});var C=m.getMarks;C&&p.core.ruler.push("anchor",function(E){var b={},y=E.tokens;y.filter(function(_){return _.type==="heading_open"}).forEach(function(_){var P=y[y.indexOf(_)+1].content,S=Number(_.tag.substr(1));b[P]=P in b?Number(b[P])+1:"";var M=C(P,S,b[P]);M&&M.forEach(function(j){var F=j.attr,z=j.value;_.attrPush([F,z])})})})},e={includeLevel:[2,3],containerClass:"table-of-contents",listClass:"table-of-content-list",listItemClass:"table-of-content-list-item",markerPattern:/^\[\[toc\]\]/im,listType:"ul",getAnchorAttrs:function(){return[]},format:void 0,forceFullToc:!1,containerHeaderHtml:void 0,containerFooterHtml:void 0,transformLink:void 0},a=function(p,m){var C,E=Object(n.a)({},e,m),b=E.markerPattern;function y(_,P,S){for(var M,j,F=[],z="",D=P.length,w=_;wM){z+=(j=y(w,P,S))[1],w=j[0];continue}if(q'+F.join("")+""];q==M&&(z+="",F.push(z))}else M=q;var I=$.children.reduce(function(x,O){return x+O.content},""),R=$.content,B=S[R]=R in S?Number(S[R])+1:"",k=E.getAnchorAttrs(R,q,B);z='
  • + ",z+=I,z+="",w++}else w++}return z+=z===""?"":"
  • ",F.push(z),[w,"<"+E.listType+' class="'+E.listClass+'">'+F.join("")+""]}p.renderer.rules.toc_open=function(_,P){var S='
    ';return E.containerHeaderHtml&&(S+=E.containerHeaderHtml),S},p.renderer.rules.toc_close=function(_,P){var S="";return E.containerFooterHtml&&(S=E.containerFooterHtml),S+"
    "},p.renderer.rules.toc_body=function(_,P){var S={};if(E.forceFullToc){for(var M="",j=0,F=C&&C.tokens&&C.tokens.length;j
    '+H+"
    "}},y=p.renderer.rules,_=y.fence,P=y.code_block;p.renderer.rules.fence=b(_),p.renderer.rules.code_block=b(P)},c=function(p,m){var C=m.externalAttrs,E=m.openLinkIcon,b=m.openLinkIconClass,y=!1;p.renderer.rules.link_open=function(_,P,S,M,j){var F=_[P],z=F.attrIndex("href");if(z>=0){var D=F.attrs[z][1];/^https?:/.test(D)&&(Object.keys(C).forEach(function(w){F.attrSet(w,C[w])}),/_blank/i.test(C.target)&&(y=!0))}return j.renderToken(_,P,S)},p.renderer.rules.link_close=function(_,P,S,M,j){return y&&(y=!1,E)?b?''+j.renderToken(_,P,S):''+j.renderToken(_,P,S):j.renderToken(_,P,S)}},f=l(6),d=l.n(f),u=l(2);function h(p){var m=p===void 0?{}:p,C=m.toc,E=m.link,b=m.attrs,y=Object(u.b)();return y.use(c,Object(n.a)({externalAttrs:{target:"_blank"}},E)).use(s,{getWrapperClass:function(_){return"v-md-pre-wrapper v-md-pre-wrapper-"+_}}).use(i.a,Object(n.a)({leftDelimiter:"{{{",rightDelimiter:"}}}"},b,{allowedAttributes:["width","height"].concat(b==null?void 0:b.allowedAttributes)})).use(o,{getMarks:function(_,P,S){return[{attr:"data-v-md-heading",value:d()(_)+(S?"-"+S:"")}]}}).use(a,Object(n.a)({listClass:"v-md-toc",listItemClass:"v-md-toc-item",getAnchorAttrs:function(_,P,S){return[{attr:"data-v-md-anchor",value:d()(_)+(S?"-"+S:"")}]}},C)).use(t,{lineMarkup:"data-v-md-line"}),{previewClass:"markdown-body",extend:function(_){_(y)},markdownParser:y}}},function(L,v,l){const n=l(19);function r(i){return i.slice(-1)[0]}L.exports=i=>{const t=new RegExp("^ {0,3}[-*_]{3,} ?"+n.escapeRegExp(i.leftDelimiter)+"[^"+n.escapeRegExp(i.rightDelimiter)+"]");return[{name:"fenced code blocks",tests:[{shift:0,block:!0,info:n.hasDelimiters("end",i)}],transform:(o,e)=>{let a=o[e],s=a.info.lastIndexOf(i.leftDelimiter),c=n.getAttrs(a.info,s,i);n.addAttrs(c,a),a.info=n.removeDelimiter(a.info,i)}},{name:"inline nesting 0",tests:[{shift:0,type:"inline",children:[{shift:-1,type:o=>o==="image"||o==="code_inline"},{shift:0,type:"text",content:n.hasDelimiters("start",i)}]}],transform:(o,e,a)=>{let s=o[e].children[a],c=s.content.indexOf(i.rightDelimiter),f=o[e].children[a-1],d=n.getAttrs(s.content,0,i);n.addAttrs(d,f),s.content.length===c+i.rightDelimiter.length?o[e].children.splice(a,1):s.content=s.content.slice(c+i.rightDelimiter.length)}},{name:"tables",tests:[{shift:0,type:"table_close"},{shift:1,type:"paragraph_open"},{shift:2,type:"inline",content:n.hasDelimiters("only",i)}],transform:(o,e)=>{let a=o[e+2],s=n.getMatchingOpeningToken(o,e),c=n.getAttrs(a.content,0,i);n.addAttrs(c,s),o.splice(e+1,3)}},{name:"inline attributes",tests:[{shift:0,type:"inline",children:[{shift:-1,nesting:-1},{shift:0,type:"text",content:n.hasDelimiters("start",i)}]}],transform:(o,e,a)=>{let s=o[e].children[a],c=s.content,f=n.getAttrs(c,0,i),d=n.getMatchingOpeningToken(o[e].children,a-1);n.addAttrs(f,d),s.content=c.slice(c.indexOf(i.rightDelimiter)+i.rightDelimiter.length)}},{name:"list softbreak",tests:[{shift:-2,type:"list_item_open"},{shift:0,type:"inline",children:[{position:-2,type:"softbreak"},{position:-1,type:"text",content:n.hasDelimiters("only",i)}]}],transform:(o,e,a)=>{let s=o[e].children[a].content,c=n.getAttrs(s,0,i),f=e-2;for(;o[f-1]&&o[f-1].type!=="ordered_list_open"&&o[f-1].type!=="bullet_list_open";)f--;n.addAttrs(c,o[f-1]),o[e].children=o[e].children.slice(0,-2)}},{name:"list double softbreak",tests:[{shift:0,type:o=>o==="bullet_list_close"||o==="ordered_list_close"},{shift:1,type:"paragraph_open"},{shift:2,type:"inline",content:n.hasDelimiters("only",i),children:o=>o.length===1},{shift:3,type:"paragraph_close"}],transform:(o,e)=>{let a=o[e+2].content,s=n.getAttrs(a,0,i),c=n.getMatchingOpeningToken(o,e);n.addAttrs(s,c),o.splice(e+1,3)}},{name:"list item end",tests:[{shift:-2,type:"list_item_open"},{shift:0,type:"inline",children:[{position:-1,type:"text",content:n.hasDelimiters("end",i)}]}],transform:(o,e,a)=>{let s=o[e].children[a],c=s.content,f=n.getAttrs(c,c.lastIndexOf(i.leftDelimiter),i);n.addAttrs(f,o[e-2]);let d=c.slice(0,c.lastIndexOf(i.leftDelimiter));s.content=r(d)!==" "?d:d.slice(0,-1)}},{name:` +{.a} softbreak then curly in start`,tests:[{shift:0,type:"inline",children:[{position:-2,type:"softbreak"},{position:-1,type:"text",content:n.hasDelimiters("only",i)}]}],transform:(o,e,a)=>{let s=o[e].children[a],c=n.getAttrs(s.content,0,i),f=e+1;for(;o[f+1]&&o[f+1].nesting===-1;)f++;let d=n.getMatchingOpeningToken(o,f);n.addAttrs(c,d),o[e].children=o[e].children.slice(0,-2)}},{name:"horizontal rule",tests:[{shift:0,type:"paragraph_open"},{shift:1,type:"inline",children:o=>o.length===1,content:o=>o.match(t)!==null},{shift:2,type:"paragraph_close"}],transform:(o,e)=>{let a=o[e];a.type="hr",a.tag="hr",a.nesting=0;let s=o[e+1].content,c=s.lastIndexOf(i.leftDelimiter);a.attrs=n.getAttrs(s,c,i),a.markup=s,o.splice(e+1,2)}},{name:"end of block",tests:[{shift:0,type:"inline",children:[{position:-1,content:n.hasDelimiters("end",i),type:o=>o!=="code_inline"}]}],transform:(o,e,a)=>{let s=o[e].children[a],c=s.content,f=n.getAttrs(c,c.lastIndexOf(i.leftDelimiter),i),d=e+1;for(;o[d+1]&&o[d+1].nesting===-1;)d++;let u=n.getMatchingOpeningToken(o,d);n.addAttrs(f,u);let h=c.slice(0,c.lastIndexOf(i.leftDelimiter));s.content=r(h)!==" "?h:h.slice(0,-1)}}]}},function(L,v,l){function n(e){return e.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&")}v.getAttrs=function(e,a,s){const c=/[^\t\n\f />"'=]/,f=[];let d="",u="",h=!0,p=!1;for(let m=a+s.leftDelimiter.length;m=h+1:m.length>=h}(s.substring(c,f+a.rightDelimiter.length))}},v.removeDelimiter=function(e,a){const s=n(a.leftDelimiter),c=n(a.rightDelimiter);let f=new RegExp("[ \\n]?"+s+"[^"+s+c+"]+"+c+"$"),d=e.search(f);return d!==-1?e.slice(0,d):e},v.escapeRegExp=n,v.getMatchingOpeningToken=function(e,a){if(e[a].type==="softbreak")return!1;if(e[a].nesting===0)return e[a];let s=e[a].level,c=e[a].type.replace("_close","_open");for(;a>=0;--a)if(e[a].type===c&&e[a].level===s)return e[a]};let r=/[&<>"]/,i=/[&<>"]/g,t={"&":"&","<":"<",">":">",'"':"""};function o(e){return t[e]}v.escapeHtml=function(e){return r.test(e)?e.replace(i,o):e}},function(L,v,l){var n=l(0),r=l(28),i=l(32),t=l(33),o=l(41),e=l(55),a=l(68),s=l(8),c=l(70),f={default:l(73),zero:l(74),commonmark:l(75)},d=/^(vbscript|javascript|file|data):/,u=/^data:image\/(gif|png|jpeg|webp);/;function h(b){var y=b.trim().toLowerCase();return!d.test(y)||!!u.test(y)}var p=["http:","https:","mailto:"];function m(b){var y=s.parse(b,!0);if(y.hostname&&(!y.protocol||p.indexOf(y.protocol)>=0))try{y.hostname=c.toASCII(y.hostname)}catch{}return s.encode(s.format(y))}function C(b){var y=s.parse(b,!0);if(y.hostname&&(!y.protocol||p.indexOf(y.protocol)>=0))try{y.hostname=c.toUnicode(y.hostname)}catch{}return s.decode(s.format(y),s.decode.defaultChars+"%")}function E(b,y){if(!(this instanceof E))return new E(b,y);y||n.isString(b)||(y=b||{},b="default"),this.inline=new e,this.block=new o,this.core=new t,this.renderer=new i,this.linkify=new a,this.validateLink=h,this.normalizeLink=m,this.normalizeLinkText=C,this.utils=n,this.helpers=n.assign({},r),this.options={},this.configure(b),y&&this.set(y)}E.prototype.set=function(b){return n.assign(this.options,b),this},E.prototype.configure=function(b){var y,_=this;if(n.isString(b)&&!(b=f[y=b]))throw new Error('Wrong `markdown-it` preset "'+y+'", check name');if(!b)throw new Error("Wrong `markdown-it` preset, can't be empty");return b.options&&_.set(b.options),b.components&&Object.keys(b.components).forEach(function(P){b.components[P].rules&&_[P].ruler.enableOnly(b.components[P].rules),b.components[P].rules2&&_[P].ruler2.enableOnly(b.components[P].rules2)}),this},E.prototype.enable=function(b,y){var _=[];Array.isArray(b)||(b=[b]),["core","block","inline"].forEach(function(S){_=_.concat(this[S].ruler.enable(b,!0))},this),_=_.concat(this.inline.ruler2.enable(b,!0));var P=b.filter(function(S){return _.indexOf(S)<0});if(P.length&&!y)throw new Error("MarkdownIt. Failed to enable unknown rule(s): "+P);return this},E.prototype.disable=function(b,y){var _=[];Array.isArray(b)||(b=[b]),["core","block","inline"].forEach(function(S){_=_.concat(this[S].ruler.disable(b,!0))},this),_=_.concat(this.inline.ruler2.disable(b,!0));var P=b.filter(function(S){return _.indexOf(S)<0});if(P.length&&!y)throw new Error("MarkdownIt. Failed to disable unknown rule(s): "+P);return this},E.prototype.use=function(b){var y=[this].concat(Array.prototype.slice.call(arguments,1));return b.apply(b,y),this},E.prototype.parse=function(b,y){if(typeof b!="string")throw new Error("Input data should be a String");var _=new this.core.State(b,this,y);return this.core.process(_),_.tokens},E.prototype.render=function(b,y){return y=y||{},this.renderer.render(this.parse(b,y),this.options,y)},E.prototype.parseInline=function(b,y){var _=new this.core.State(b,this,y);return _.inlineMode=!0,this.core.process(_),_.tokens},E.prototype.renderInline=function(b,y){return y=y||{},this.renderer.render(this.parseInline(b,y),this.options,y)},L.exports=E},function(L){L.exports=JSON.parse('{"Aacute":"\xC1","aacute":"\xE1","Abreve":"\u0102","abreve":"\u0103","ac":"\u223E","acd":"\u223F","acE":"\u223E\u0333","Acirc":"\xC2","acirc":"\xE2","acute":"\xB4","Acy":"\u0410","acy":"\u0430","AElig":"\xC6","aelig":"\xE6","af":"\u2061","Afr":"\u{1D504}","afr":"\u{1D51E}","Agrave":"\xC0","agrave":"\xE0","alefsym":"\u2135","aleph":"\u2135","Alpha":"\u0391","alpha":"\u03B1","Amacr":"\u0100","amacr":"\u0101","amalg":"\u2A3F","amp":"&","AMP":"&","andand":"\u2A55","And":"\u2A53","and":"\u2227","andd":"\u2A5C","andslope":"\u2A58","andv":"\u2A5A","ang":"\u2220","ange":"\u29A4","angle":"\u2220","angmsdaa":"\u29A8","angmsdab":"\u29A9","angmsdac":"\u29AA","angmsdad":"\u29AB","angmsdae":"\u29AC","angmsdaf":"\u29AD","angmsdag":"\u29AE","angmsdah":"\u29AF","angmsd":"\u2221","angrt":"\u221F","angrtvb":"\u22BE","angrtvbd":"\u299D","angsph":"\u2222","angst":"\xC5","angzarr":"\u237C","Aogon":"\u0104","aogon":"\u0105","Aopf":"\u{1D538}","aopf":"\u{1D552}","apacir":"\u2A6F","ap":"\u2248","apE":"\u2A70","ape":"\u224A","apid":"\u224B","apos":"\'","ApplyFunction":"\u2061","approx":"\u2248","approxeq":"\u224A","Aring":"\xC5","aring":"\xE5","Ascr":"\u{1D49C}","ascr":"\u{1D4B6}","Assign":"\u2254","ast":"*","asymp":"\u2248","asympeq":"\u224D","Atilde":"\xC3","atilde":"\xE3","Auml":"\xC4","auml":"\xE4","awconint":"\u2233","awint":"\u2A11","backcong":"\u224C","backepsilon":"\u03F6","backprime":"\u2035","backsim":"\u223D","backsimeq":"\u22CD","Backslash":"\u2216","Barv":"\u2AE7","barvee":"\u22BD","barwed":"\u2305","Barwed":"\u2306","barwedge":"\u2305","bbrk":"\u23B5","bbrktbrk":"\u23B6","bcong":"\u224C","Bcy":"\u0411","bcy":"\u0431","bdquo":"\u201E","becaus":"\u2235","because":"\u2235","Because":"\u2235","bemptyv":"\u29B0","bepsi":"\u03F6","bernou":"\u212C","Bernoullis":"\u212C","Beta":"\u0392","beta":"\u03B2","beth":"\u2136","between":"\u226C","Bfr":"\u{1D505}","bfr":"\u{1D51F}","bigcap":"\u22C2","bigcirc":"\u25EF","bigcup":"\u22C3","bigodot":"\u2A00","bigoplus":"\u2A01","bigotimes":"\u2A02","bigsqcup":"\u2A06","bigstar":"\u2605","bigtriangledown":"\u25BD","bigtriangleup":"\u25B3","biguplus":"\u2A04","bigvee":"\u22C1","bigwedge":"\u22C0","bkarow":"\u290D","blacklozenge":"\u29EB","blacksquare":"\u25AA","blacktriangle":"\u25B4","blacktriangledown":"\u25BE","blacktriangleleft":"\u25C2","blacktriangleright":"\u25B8","blank":"\u2423","blk12":"\u2592","blk14":"\u2591","blk34":"\u2593","block":"\u2588","bne":"=\u20E5","bnequiv":"\u2261\u20E5","bNot":"\u2AED","bnot":"\u2310","Bopf":"\u{1D539}","bopf":"\u{1D553}","bot":"\u22A5","bottom":"\u22A5","bowtie":"\u22C8","boxbox":"\u29C9","boxdl":"\u2510","boxdL":"\u2555","boxDl":"\u2556","boxDL":"\u2557","boxdr":"\u250C","boxdR":"\u2552","boxDr":"\u2553","boxDR":"\u2554","boxh":"\u2500","boxH":"\u2550","boxhd":"\u252C","boxHd":"\u2564","boxhD":"\u2565","boxHD":"\u2566","boxhu":"\u2534","boxHu":"\u2567","boxhU":"\u2568","boxHU":"\u2569","boxminus":"\u229F","boxplus":"\u229E","boxtimes":"\u22A0","boxul":"\u2518","boxuL":"\u255B","boxUl":"\u255C","boxUL":"\u255D","boxur":"\u2514","boxuR":"\u2558","boxUr":"\u2559","boxUR":"\u255A","boxv":"\u2502","boxV":"\u2551","boxvh":"\u253C","boxvH":"\u256A","boxVh":"\u256B","boxVH":"\u256C","boxvl":"\u2524","boxvL":"\u2561","boxVl":"\u2562","boxVL":"\u2563","boxvr":"\u251C","boxvR":"\u255E","boxVr":"\u255F","boxVR":"\u2560","bprime":"\u2035","breve":"\u02D8","Breve":"\u02D8","brvbar":"\xA6","bscr":"\u{1D4B7}","Bscr":"\u212C","bsemi":"\u204F","bsim":"\u223D","bsime":"\u22CD","bsolb":"\u29C5","bsol":"\\\\","bsolhsub":"\u27C8","bull":"\u2022","bullet":"\u2022","bump":"\u224E","bumpE":"\u2AAE","bumpe":"\u224F","Bumpeq":"\u224E","bumpeq":"\u224F","Cacute":"\u0106","cacute":"\u0107","capand":"\u2A44","capbrcup":"\u2A49","capcap":"\u2A4B","cap":"\u2229","Cap":"\u22D2","capcup":"\u2A47","capdot":"\u2A40","CapitalDifferentialD":"\u2145","caps":"\u2229\uFE00","caret":"\u2041","caron":"\u02C7","Cayleys":"\u212D","ccaps":"\u2A4D","Ccaron":"\u010C","ccaron":"\u010D","Ccedil":"\xC7","ccedil":"\xE7","Ccirc":"\u0108","ccirc":"\u0109","Cconint":"\u2230","ccups":"\u2A4C","ccupssm":"\u2A50","Cdot":"\u010A","cdot":"\u010B","cedil":"\xB8","Cedilla":"\xB8","cemptyv":"\u29B2","cent":"\xA2","centerdot":"\xB7","CenterDot":"\xB7","cfr":"\u{1D520}","Cfr":"\u212D","CHcy":"\u0427","chcy":"\u0447","check":"\u2713","checkmark":"\u2713","Chi":"\u03A7","chi":"\u03C7","circ":"\u02C6","circeq":"\u2257","circlearrowleft":"\u21BA","circlearrowright":"\u21BB","circledast":"\u229B","circledcirc":"\u229A","circleddash":"\u229D","CircleDot":"\u2299","circledR":"\xAE","circledS":"\u24C8","CircleMinus":"\u2296","CirclePlus":"\u2295","CircleTimes":"\u2297","cir":"\u25CB","cirE":"\u29C3","cire":"\u2257","cirfnint":"\u2A10","cirmid":"\u2AEF","cirscir":"\u29C2","ClockwiseContourIntegral":"\u2232","CloseCurlyDoubleQuote":"\u201D","CloseCurlyQuote":"\u2019","clubs":"\u2663","clubsuit":"\u2663","colon":":","Colon":"\u2237","Colone":"\u2A74","colone":"\u2254","coloneq":"\u2254","comma":",","commat":"@","comp":"\u2201","compfn":"\u2218","complement":"\u2201","complexes":"\u2102","cong":"\u2245","congdot":"\u2A6D","Congruent":"\u2261","conint":"\u222E","Conint":"\u222F","ContourIntegral":"\u222E","copf":"\u{1D554}","Copf":"\u2102","coprod":"\u2210","Coproduct":"\u2210","copy":"\xA9","COPY":"\xA9","copysr":"\u2117","CounterClockwiseContourIntegral":"\u2233","crarr":"\u21B5","cross":"\u2717","Cross":"\u2A2F","Cscr":"\u{1D49E}","cscr":"\u{1D4B8}","csub":"\u2ACF","csube":"\u2AD1","csup":"\u2AD0","csupe":"\u2AD2","ctdot":"\u22EF","cudarrl":"\u2938","cudarrr":"\u2935","cuepr":"\u22DE","cuesc":"\u22DF","cularr":"\u21B6","cularrp":"\u293D","cupbrcap":"\u2A48","cupcap":"\u2A46","CupCap":"\u224D","cup":"\u222A","Cup":"\u22D3","cupcup":"\u2A4A","cupdot":"\u228D","cupor":"\u2A45","cups":"\u222A\uFE00","curarr":"\u21B7","curarrm":"\u293C","curlyeqprec":"\u22DE","curlyeqsucc":"\u22DF","curlyvee":"\u22CE","curlywedge":"\u22CF","curren":"\xA4","curvearrowleft":"\u21B6","curvearrowright":"\u21B7","cuvee":"\u22CE","cuwed":"\u22CF","cwconint":"\u2232","cwint":"\u2231","cylcty":"\u232D","dagger":"\u2020","Dagger":"\u2021","daleth":"\u2138","darr":"\u2193","Darr":"\u21A1","dArr":"\u21D3","dash":"\u2010","Dashv":"\u2AE4","dashv":"\u22A3","dbkarow":"\u290F","dblac":"\u02DD","Dcaron":"\u010E","dcaron":"\u010F","Dcy":"\u0414","dcy":"\u0434","ddagger":"\u2021","ddarr":"\u21CA","DD":"\u2145","dd":"\u2146","DDotrahd":"\u2911","ddotseq":"\u2A77","deg":"\xB0","Del":"\u2207","Delta":"\u0394","delta":"\u03B4","demptyv":"\u29B1","dfisht":"\u297F","Dfr":"\u{1D507}","dfr":"\u{1D521}","dHar":"\u2965","dharl":"\u21C3","dharr":"\u21C2","DiacriticalAcute":"\xB4","DiacriticalDot":"\u02D9","DiacriticalDoubleAcute":"\u02DD","DiacriticalGrave":"`","DiacriticalTilde":"\u02DC","diam":"\u22C4","diamond":"\u22C4","Diamond":"\u22C4","diamondsuit":"\u2666","diams":"\u2666","die":"\xA8","DifferentialD":"\u2146","digamma":"\u03DD","disin":"\u22F2","div":"\xF7","divide":"\xF7","divideontimes":"\u22C7","divonx":"\u22C7","DJcy":"\u0402","djcy":"\u0452","dlcorn":"\u231E","dlcrop":"\u230D","dollar":"$","Dopf":"\u{1D53B}","dopf":"\u{1D555}","Dot":"\xA8","dot":"\u02D9","DotDot":"\u20DC","doteq":"\u2250","doteqdot":"\u2251","DotEqual":"\u2250","dotminus":"\u2238","dotplus":"\u2214","dotsquare":"\u22A1","doublebarwedge":"\u2306","DoubleContourIntegral":"\u222F","DoubleDot":"\xA8","DoubleDownArrow":"\u21D3","DoubleLeftArrow":"\u21D0","DoubleLeftRightArrow":"\u21D4","DoubleLeftTee":"\u2AE4","DoubleLongLeftArrow":"\u27F8","DoubleLongLeftRightArrow":"\u27FA","DoubleLongRightArrow":"\u27F9","DoubleRightArrow":"\u21D2","DoubleRightTee":"\u22A8","DoubleUpArrow":"\u21D1","DoubleUpDownArrow":"\u21D5","DoubleVerticalBar":"\u2225","DownArrowBar":"\u2913","downarrow":"\u2193","DownArrow":"\u2193","Downarrow":"\u21D3","DownArrowUpArrow":"\u21F5","DownBreve":"\u0311","downdownarrows":"\u21CA","downharpoonleft":"\u21C3","downharpoonright":"\u21C2","DownLeftRightVector":"\u2950","DownLeftTeeVector":"\u295E","DownLeftVectorBar":"\u2956","DownLeftVector":"\u21BD","DownRightTeeVector":"\u295F","DownRightVectorBar":"\u2957","DownRightVector":"\u21C1","DownTeeArrow":"\u21A7","DownTee":"\u22A4","drbkarow":"\u2910","drcorn":"\u231F","drcrop":"\u230C","Dscr":"\u{1D49F}","dscr":"\u{1D4B9}","DScy":"\u0405","dscy":"\u0455","dsol":"\u29F6","Dstrok":"\u0110","dstrok":"\u0111","dtdot":"\u22F1","dtri":"\u25BF","dtrif":"\u25BE","duarr":"\u21F5","duhar":"\u296F","dwangle":"\u29A6","DZcy":"\u040F","dzcy":"\u045F","dzigrarr":"\u27FF","Eacute":"\xC9","eacute":"\xE9","easter":"\u2A6E","Ecaron":"\u011A","ecaron":"\u011B","Ecirc":"\xCA","ecirc":"\xEA","ecir":"\u2256","ecolon":"\u2255","Ecy":"\u042D","ecy":"\u044D","eDDot":"\u2A77","Edot":"\u0116","edot":"\u0117","eDot":"\u2251","ee":"\u2147","efDot":"\u2252","Efr":"\u{1D508}","efr":"\u{1D522}","eg":"\u2A9A","Egrave":"\xC8","egrave":"\xE8","egs":"\u2A96","egsdot":"\u2A98","el":"\u2A99","Element":"\u2208","elinters":"\u23E7","ell":"\u2113","els":"\u2A95","elsdot":"\u2A97","Emacr":"\u0112","emacr":"\u0113","empty":"\u2205","emptyset":"\u2205","EmptySmallSquare":"\u25FB","emptyv":"\u2205","EmptyVerySmallSquare":"\u25AB","emsp13":"\u2004","emsp14":"\u2005","emsp":"\u2003","ENG":"\u014A","eng":"\u014B","ensp":"\u2002","Eogon":"\u0118","eogon":"\u0119","Eopf":"\u{1D53C}","eopf":"\u{1D556}","epar":"\u22D5","eparsl":"\u29E3","eplus":"\u2A71","epsi":"\u03B5","Epsilon":"\u0395","epsilon":"\u03B5","epsiv":"\u03F5","eqcirc":"\u2256","eqcolon":"\u2255","eqsim":"\u2242","eqslantgtr":"\u2A96","eqslantless":"\u2A95","Equal":"\u2A75","equals":"=","EqualTilde":"\u2242","equest":"\u225F","Equilibrium":"\u21CC","equiv":"\u2261","equivDD":"\u2A78","eqvparsl":"\u29E5","erarr":"\u2971","erDot":"\u2253","escr":"\u212F","Escr":"\u2130","esdot":"\u2250","Esim":"\u2A73","esim":"\u2242","Eta":"\u0397","eta":"\u03B7","ETH":"\xD0","eth":"\xF0","Euml":"\xCB","euml":"\xEB","euro":"\u20AC","excl":"!","exist":"\u2203","Exists":"\u2203","expectation":"\u2130","exponentiale":"\u2147","ExponentialE":"\u2147","fallingdotseq":"\u2252","Fcy":"\u0424","fcy":"\u0444","female":"\u2640","ffilig":"\uFB03","fflig":"\uFB00","ffllig":"\uFB04","Ffr":"\u{1D509}","ffr":"\u{1D523}","filig":"\uFB01","FilledSmallSquare":"\u25FC","FilledVerySmallSquare":"\u25AA","fjlig":"fj","flat":"\u266D","fllig":"\uFB02","fltns":"\u25B1","fnof":"\u0192","Fopf":"\u{1D53D}","fopf":"\u{1D557}","forall":"\u2200","ForAll":"\u2200","fork":"\u22D4","forkv":"\u2AD9","Fouriertrf":"\u2131","fpartint":"\u2A0D","frac12":"\xBD","frac13":"\u2153","frac14":"\xBC","frac15":"\u2155","frac16":"\u2159","frac18":"\u215B","frac23":"\u2154","frac25":"\u2156","frac34":"\xBE","frac35":"\u2157","frac38":"\u215C","frac45":"\u2158","frac56":"\u215A","frac58":"\u215D","frac78":"\u215E","frasl":"\u2044","frown":"\u2322","fscr":"\u{1D4BB}","Fscr":"\u2131","gacute":"\u01F5","Gamma":"\u0393","gamma":"\u03B3","Gammad":"\u03DC","gammad":"\u03DD","gap":"\u2A86","Gbreve":"\u011E","gbreve":"\u011F","Gcedil":"\u0122","Gcirc":"\u011C","gcirc":"\u011D","Gcy":"\u0413","gcy":"\u0433","Gdot":"\u0120","gdot":"\u0121","ge":"\u2265","gE":"\u2267","gEl":"\u2A8C","gel":"\u22DB","geq":"\u2265","geqq":"\u2267","geqslant":"\u2A7E","gescc":"\u2AA9","ges":"\u2A7E","gesdot":"\u2A80","gesdoto":"\u2A82","gesdotol":"\u2A84","gesl":"\u22DB\uFE00","gesles":"\u2A94","Gfr":"\u{1D50A}","gfr":"\u{1D524}","gg":"\u226B","Gg":"\u22D9","ggg":"\u22D9","gimel":"\u2137","GJcy":"\u0403","gjcy":"\u0453","gla":"\u2AA5","gl":"\u2277","glE":"\u2A92","glj":"\u2AA4","gnap":"\u2A8A","gnapprox":"\u2A8A","gne":"\u2A88","gnE":"\u2269","gneq":"\u2A88","gneqq":"\u2269","gnsim":"\u22E7","Gopf":"\u{1D53E}","gopf":"\u{1D558}","grave":"`","GreaterEqual":"\u2265","GreaterEqualLess":"\u22DB","GreaterFullEqual":"\u2267","GreaterGreater":"\u2AA2","GreaterLess":"\u2277","GreaterSlantEqual":"\u2A7E","GreaterTilde":"\u2273","Gscr":"\u{1D4A2}","gscr":"\u210A","gsim":"\u2273","gsime":"\u2A8E","gsiml":"\u2A90","gtcc":"\u2AA7","gtcir":"\u2A7A","gt":">","GT":">","Gt":"\u226B","gtdot":"\u22D7","gtlPar":"\u2995","gtquest":"\u2A7C","gtrapprox":"\u2A86","gtrarr":"\u2978","gtrdot":"\u22D7","gtreqless":"\u22DB","gtreqqless":"\u2A8C","gtrless":"\u2277","gtrsim":"\u2273","gvertneqq":"\u2269\uFE00","gvnE":"\u2269\uFE00","Hacek":"\u02C7","hairsp":"\u200A","half":"\xBD","hamilt":"\u210B","HARDcy":"\u042A","hardcy":"\u044A","harrcir":"\u2948","harr":"\u2194","hArr":"\u21D4","harrw":"\u21AD","Hat":"^","hbar":"\u210F","Hcirc":"\u0124","hcirc":"\u0125","hearts":"\u2665","heartsuit":"\u2665","hellip":"\u2026","hercon":"\u22B9","hfr":"\u{1D525}","Hfr":"\u210C","HilbertSpace":"\u210B","hksearow":"\u2925","hkswarow":"\u2926","hoarr":"\u21FF","homtht":"\u223B","hookleftarrow":"\u21A9","hookrightarrow":"\u21AA","hopf":"\u{1D559}","Hopf":"\u210D","horbar":"\u2015","HorizontalLine":"\u2500","hscr":"\u{1D4BD}","Hscr":"\u210B","hslash":"\u210F","Hstrok":"\u0126","hstrok":"\u0127","HumpDownHump":"\u224E","HumpEqual":"\u224F","hybull":"\u2043","hyphen":"\u2010","Iacute":"\xCD","iacute":"\xED","ic":"\u2063","Icirc":"\xCE","icirc":"\xEE","Icy":"\u0418","icy":"\u0438","Idot":"\u0130","IEcy":"\u0415","iecy":"\u0435","iexcl":"\xA1","iff":"\u21D4","ifr":"\u{1D526}","Ifr":"\u2111","Igrave":"\xCC","igrave":"\xEC","ii":"\u2148","iiiint":"\u2A0C","iiint":"\u222D","iinfin":"\u29DC","iiota":"\u2129","IJlig":"\u0132","ijlig":"\u0133","Imacr":"\u012A","imacr":"\u012B","image":"\u2111","ImaginaryI":"\u2148","imagline":"\u2110","imagpart":"\u2111","imath":"\u0131","Im":"\u2111","imof":"\u22B7","imped":"\u01B5","Implies":"\u21D2","incare":"\u2105","in":"\u2208","infin":"\u221E","infintie":"\u29DD","inodot":"\u0131","intcal":"\u22BA","int":"\u222B","Int":"\u222C","integers":"\u2124","Integral":"\u222B","intercal":"\u22BA","Intersection":"\u22C2","intlarhk":"\u2A17","intprod":"\u2A3C","InvisibleComma":"\u2063","InvisibleTimes":"\u2062","IOcy":"\u0401","iocy":"\u0451","Iogon":"\u012E","iogon":"\u012F","Iopf":"\u{1D540}","iopf":"\u{1D55A}","Iota":"\u0399","iota":"\u03B9","iprod":"\u2A3C","iquest":"\xBF","iscr":"\u{1D4BE}","Iscr":"\u2110","isin":"\u2208","isindot":"\u22F5","isinE":"\u22F9","isins":"\u22F4","isinsv":"\u22F3","isinv":"\u2208","it":"\u2062","Itilde":"\u0128","itilde":"\u0129","Iukcy":"\u0406","iukcy":"\u0456","Iuml":"\xCF","iuml":"\xEF","Jcirc":"\u0134","jcirc":"\u0135","Jcy":"\u0419","jcy":"\u0439","Jfr":"\u{1D50D}","jfr":"\u{1D527}","jmath":"\u0237","Jopf":"\u{1D541}","jopf":"\u{1D55B}","Jscr":"\u{1D4A5}","jscr":"\u{1D4BF}","Jsercy":"\u0408","jsercy":"\u0458","Jukcy":"\u0404","jukcy":"\u0454","Kappa":"\u039A","kappa":"\u03BA","kappav":"\u03F0","Kcedil":"\u0136","kcedil":"\u0137","Kcy":"\u041A","kcy":"\u043A","Kfr":"\u{1D50E}","kfr":"\u{1D528}","kgreen":"\u0138","KHcy":"\u0425","khcy":"\u0445","KJcy":"\u040C","kjcy":"\u045C","Kopf":"\u{1D542}","kopf":"\u{1D55C}","Kscr":"\u{1D4A6}","kscr":"\u{1D4C0}","lAarr":"\u21DA","Lacute":"\u0139","lacute":"\u013A","laemptyv":"\u29B4","lagran":"\u2112","Lambda":"\u039B","lambda":"\u03BB","lang":"\u27E8","Lang":"\u27EA","langd":"\u2991","langle":"\u27E8","lap":"\u2A85","Laplacetrf":"\u2112","laquo":"\xAB","larrb":"\u21E4","larrbfs":"\u291F","larr":"\u2190","Larr":"\u219E","lArr":"\u21D0","larrfs":"\u291D","larrhk":"\u21A9","larrlp":"\u21AB","larrpl":"\u2939","larrsim":"\u2973","larrtl":"\u21A2","latail":"\u2919","lAtail":"\u291B","lat":"\u2AAB","late":"\u2AAD","lates":"\u2AAD\uFE00","lbarr":"\u290C","lBarr":"\u290E","lbbrk":"\u2772","lbrace":"{","lbrack":"[","lbrke":"\u298B","lbrksld":"\u298F","lbrkslu":"\u298D","Lcaron":"\u013D","lcaron":"\u013E","Lcedil":"\u013B","lcedil":"\u013C","lceil":"\u2308","lcub":"{","Lcy":"\u041B","lcy":"\u043B","ldca":"\u2936","ldquo":"\u201C","ldquor":"\u201E","ldrdhar":"\u2967","ldrushar":"\u294B","ldsh":"\u21B2","le":"\u2264","lE":"\u2266","LeftAngleBracket":"\u27E8","LeftArrowBar":"\u21E4","leftarrow":"\u2190","LeftArrow":"\u2190","Leftarrow":"\u21D0","LeftArrowRightArrow":"\u21C6","leftarrowtail":"\u21A2","LeftCeiling":"\u2308","LeftDoubleBracket":"\u27E6","LeftDownTeeVector":"\u2961","LeftDownVectorBar":"\u2959","LeftDownVector":"\u21C3","LeftFloor":"\u230A","leftharpoondown":"\u21BD","leftharpoonup":"\u21BC","leftleftarrows":"\u21C7","leftrightarrow":"\u2194","LeftRightArrow":"\u2194","Leftrightarrow":"\u21D4","leftrightarrows":"\u21C6","leftrightharpoons":"\u21CB","leftrightsquigarrow":"\u21AD","LeftRightVector":"\u294E","LeftTeeArrow":"\u21A4","LeftTee":"\u22A3","LeftTeeVector":"\u295A","leftthreetimes":"\u22CB","LeftTriangleBar":"\u29CF","LeftTriangle":"\u22B2","LeftTriangleEqual":"\u22B4","LeftUpDownVector":"\u2951","LeftUpTeeVector":"\u2960","LeftUpVectorBar":"\u2958","LeftUpVector":"\u21BF","LeftVectorBar":"\u2952","LeftVector":"\u21BC","lEg":"\u2A8B","leg":"\u22DA","leq":"\u2264","leqq":"\u2266","leqslant":"\u2A7D","lescc":"\u2AA8","les":"\u2A7D","lesdot":"\u2A7F","lesdoto":"\u2A81","lesdotor":"\u2A83","lesg":"\u22DA\uFE00","lesges":"\u2A93","lessapprox":"\u2A85","lessdot":"\u22D6","lesseqgtr":"\u22DA","lesseqqgtr":"\u2A8B","LessEqualGreater":"\u22DA","LessFullEqual":"\u2266","LessGreater":"\u2276","lessgtr":"\u2276","LessLess":"\u2AA1","lesssim":"\u2272","LessSlantEqual":"\u2A7D","LessTilde":"\u2272","lfisht":"\u297C","lfloor":"\u230A","Lfr":"\u{1D50F}","lfr":"\u{1D529}","lg":"\u2276","lgE":"\u2A91","lHar":"\u2962","lhard":"\u21BD","lharu":"\u21BC","lharul":"\u296A","lhblk":"\u2584","LJcy":"\u0409","ljcy":"\u0459","llarr":"\u21C7","ll":"\u226A","Ll":"\u22D8","llcorner":"\u231E","Lleftarrow":"\u21DA","llhard":"\u296B","lltri":"\u25FA","Lmidot":"\u013F","lmidot":"\u0140","lmoustache":"\u23B0","lmoust":"\u23B0","lnap":"\u2A89","lnapprox":"\u2A89","lne":"\u2A87","lnE":"\u2268","lneq":"\u2A87","lneqq":"\u2268","lnsim":"\u22E6","loang":"\u27EC","loarr":"\u21FD","lobrk":"\u27E6","longleftarrow":"\u27F5","LongLeftArrow":"\u27F5","Longleftarrow":"\u27F8","longleftrightarrow":"\u27F7","LongLeftRightArrow":"\u27F7","Longleftrightarrow":"\u27FA","longmapsto":"\u27FC","longrightarrow":"\u27F6","LongRightArrow":"\u27F6","Longrightarrow":"\u27F9","looparrowleft":"\u21AB","looparrowright":"\u21AC","lopar":"\u2985","Lopf":"\u{1D543}","lopf":"\u{1D55D}","loplus":"\u2A2D","lotimes":"\u2A34","lowast":"\u2217","lowbar":"_","LowerLeftArrow":"\u2199","LowerRightArrow":"\u2198","loz":"\u25CA","lozenge":"\u25CA","lozf":"\u29EB","lpar":"(","lparlt":"\u2993","lrarr":"\u21C6","lrcorner":"\u231F","lrhar":"\u21CB","lrhard":"\u296D","lrm":"\u200E","lrtri":"\u22BF","lsaquo":"\u2039","lscr":"\u{1D4C1}","Lscr":"\u2112","lsh":"\u21B0","Lsh":"\u21B0","lsim":"\u2272","lsime":"\u2A8D","lsimg":"\u2A8F","lsqb":"[","lsquo":"\u2018","lsquor":"\u201A","Lstrok":"\u0141","lstrok":"\u0142","ltcc":"\u2AA6","ltcir":"\u2A79","lt":"<","LT":"<","Lt":"\u226A","ltdot":"\u22D6","lthree":"\u22CB","ltimes":"\u22C9","ltlarr":"\u2976","ltquest":"\u2A7B","ltri":"\u25C3","ltrie":"\u22B4","ltrif":"\u25C2","ltrPar":"\u2996","lurdshar":"\u294A","luruhar":"\u2966","lvertneqq":"\u2268\uFE00","lvnE":"\u2268\uFE00","macr":"\xAF","male":"\u2642","malt":"\u2720","maltese":"\u2720","Map":"\u2905","map":"\u21A6","mapsto":"\u21A6","mapstodown":"\u21A7","mapstoleft":"\u21A4","mapstoup":"\u21A5","marker":"\u25AE","mcomma":"\u2A29","Mcy":"\u041C","mcy":"\u043C","mdash":"\u2014","mDDot":"\u223A","measuredangle":"\u2221","MediumSpace":"\u205F","Mellintrf":"\u2133","Mfr":"\u{1D510}","mfr":"\u{1D52A}","mho":"\u2127","micro":"\xB5","midast":"*","midcir":"\u2AF0","mid":"\u2223","middot":"\xB7","minusb":"\u229F","minus":"\u2212","minusd":"\u2238","minusdu":"\u2A2A","MinusPlus":"\u2213","mlcp":"\u2ADB","mldr":"\u2026","mnplus":"\u2213","models":"\u22A7","Mopf":"\u{1D544}","mopf":"\u{1D55E}","mp":"\u2213","mscr":"\u{1D4C2}","Mscr":"\u2133","mstpos":"\u223E","Mu":"\u039C","mu":"\u03BC","multimap":"\u22B8","mumap":"\u22B8","nabla":"\u2207","Nacute":"\u0143","nacute":"\u0144","nang":"\u2220\u20D2","nap":"\u2249","napE":"\u2A70\u0338","napid":"\u224B\u0338","napos":"\u0149","napprox":"\u2249","natural":"\u266E","naturals":"\u2115","natur":"\u266E","nbsp":"\xA0","nbump":"\u224E\u0338","nbumpe":"\u224F\u0338","ncap":"\u2A43","Ncaron":"\u0147","ncaron":"\u0148","Ncedil":"\u0145","ncedil":"\u0146","ncong":"\u2247","ncongdot":"\u2A6D\u0338","ncup":"\u2A42","Ncy":"\u041D","ncy":"\u043D","ndash":"\u2013","nearhk":"\u2924","nearr":"\u2197","neArr":"\u21D7","nearrow":"\u2197","ne":"\u2260","nedot":"\u2250\u0338","NegativeMediumSpace":"\u200B","NegativeThickSpace":"\u200B","NegativeThinSpace":"\u200B","NegativeVeryThinSpace":"\u200B","nequiv":"\u2262","nesear":"\u2928","nesim":"\u2242\u0338","NestedGreaterGreater":"\u226B","NestedLessLess":"\u226A","NewLine":"\\n","nexist":"\u2204","nexists":"\u2204","Nfr":"\u{1D511}","nfr":"\u{1D52B}","ngE":"\u2267\u0338","nge":"\u2271","ngeq":"\u2271","ngeqq":"\u2267\u0338","ngeqslant":"\u2A7E\u0338","nges":"\u2A7E\u0338","nGg":"\u22D9\u0338","ngsim":"\u2275","nGt":"\u226B\u20D2","ngt":"\u226F","ngtr":"\u226F","nGtv":"\u226B\u0338","nharr":"\u21AE","nhArr":"\u21CE","nhpar":"\u2AF2","ni":"\u220B","nis":"\u22FC","nisd":"\u22FA","niv":"\u220B","NJcy":"\u040A","njcy":"\u045A","nlarr":"\u219A","nlArr":"\u21CD","nldr":"\u2025","nlE":"\u2266\u0338","nle":"\u2270","nleftarrow":"\u219A","nLeftarrow":"\u21CD","nleftrightarrow":"\u21AE","nLeftrightarrow":"\u21CE","nleq":"\u2270","nleqq":"\u2266\u0338","nleqslant":"\u2A7D\u0338","nles":"\u2A7D\u0338","nless":"\u226E","nLl":"\u22D8\u0338","nlsim":"\u2274","nLt":"\u226A\u20D2","nlt":"\u226E","nltri":"\u22EA","nltrie":"\u22EC","nLtv":"\u226A\u0338","nmid":"\u2224","NoBreak":"\u2060","NonBreakingSpace":"\xA0","nopf":"\u{1D55F}","Nopf":"\u2115","Not":"\u2AEC","not":"\xAC","NotCongruent":"\u2262","NotCupCap":"\u226D","NotDoubleVerticalBar":"\u2226","NotElement":"\u2209","NotEqual":"\u2260","NotEqualTilde":"\u2242\u0338","NotExists":"\u2204","NotGreater":"\u226F","NotGreaterEqual":"\u2271","NotGreaterFullEqual":"\u2267\u0338","NotGreaterGreater":"\u226B\u0338","NotGreaterLess":"\u2279","NotGreaterSlantEqual":"\u2A7E\u0338","NotGreaterTilde":"\u2275","NotHumpDownHump":"\u224E\u0338","NotHumpEqual":"\u224F\u0338","notin":"\u2209","notindot":"\u22F5\u0338","notinE":"\u22F9\u0338","notinva":"\u2209","notinvb":"\u22F7","notinvc":"\u22F6","NotLeftTriangleBar":"\u29CF\u0338","NotLeftTriangle":"\u22EA","NotLeftTriangleEqual":"\u22EC","NotLess":"\u226E","NotLessEqual":"\u2270","NotLessGreater":"\u2278","NotLessLess":"\u226A\u0338","NotLessSlantEqual":"\u2A7D\u0338","NotLessTilde":"\u2274","NotNestedGreaterGreater":"\u2AA2\u0338","NotNestedLessLess":"\u2AA1\u0338","notni":"\u220C","notniva":"\u220C","notnivb":"\u22FE","notnivc":"\u22FD","NotPrecedes":"\u2280","NotPrecedesEqual":"\u2AAF\u0338","NotPrecedesSlantEqual":"\u22E0","NotReverseElement":"\u220C","NotRightTriangleBar":"\u29D0\u0338","NotRightTriangle":"\u22EB","NotRightTriangleEqual":"\u22ED","NotSquareSubset":"\u228F\u0338","NotSquareSubsetEqual":"\u22E2","NotSquareSuperset":"\u2290\u0338","NotSquareSupersetEqual":"\u22E3","NotSubset":"\u2282\u20D2","NotSubsetEqual":"\u2288","NotSucceeds":"\u2281","NotSucceedsEqual":"\u2AB0\u0338","NotSucceedsSlantEqual":"\u22E1","NotSucceedsTilde":"\u227F\u0338","NotSuperset":"\u2283\u20D2","NotSupersetEqual":"\u2289","NotTilde":"\u2241","NotTildeEqual":"\u2244","NotTildeFullEqual":"\u2247","NotTildeTilde":"\u2249","NotVerticalBar":"\u2224","nparallel":"\u2226","npar":"\u2226","nparsl":"\u2AFD\u20E5","npart":"\u2202\u0338","npolint":"\u2A14","npr":"\u2280","nprcue":"\u22E0","nprec":"\u2280","npreceq":"\u2AAF\u0338","npre":"\u2AAF\u0338","nrarrc":"\u2933\u0338","nrarr":"\u219B","nrArr":"\u21CF","nrarrw":"\u219D\u0338","nrightarrow":"\u219B","nRightarrow":"\u21CF","nrtri":"\u22EB","nrtrie":"\u22ED","nsc":"\u2281","nsccue":"\u22E1","nsce":"\u2AB0\u0338","Nscr":"\u{1D4A9}","nscr":"\u{1D4C3}","nshortmid":"\u2224","nshortparallel":"\u2226","nsim":"\u2241","nsime":"\u2244","nsimeq":"\u2244","nsmid":"\u2224","nspar":"\u2226","nsqsube":"\u22E2","nsqsupe":"\u22E3","nsub":"\u2284","nsubE":"\u2AC5\u0338","nsube":"\u2288","nsubset":"\u2282\u20D2","nsubseteq":"\u2288","nsubseteqq":"\u2AC5\u0338","nsucc":"\u2281","nsucceq":"\u2AB0\u0338","nsup":"\u2285","nsupE":"\u2AC6\u0338","nsupe":"\u2289","nsupset":"\u2283\u20D2","nsupseteq":"\u2289","nsupseteqq":"\u2AC6\u0338","ntgl":"\u2279","Ntilde":"\xD1","ntilde":"\xF1","ntlg":"\u2278","ntriangleleft":"\u22EA","ntrianglelefteq":"\u22EC","ntriangleright":"\u22EB","ntrianglerighteq":"\u22ED","Nu":"\u039D","nu":"\u03BD","num":"#","numero":"\u2116","numsp":"\u2007","nvap":"\u224D\u20D2","nvdash":"\u22AC","nvDash":"\u22AD","nVdash":"\u22AE","nVDash":"\u22AF","nvge":"\u2265\u20D2","nvgt":">\u20D2","nvHarr":"\u2904","nvinfin":"\u29DE","nvlArr":"\u2902","nvle":"\u2264\u20D2","nvlt":"<\u20D2","nvltrie":"\u22B4\u20D2","nvrArr":"\u2903","nvrtrie":"\u22B5\u20D2","nvsim":"\u223C\u20D2","nwarhk":"\u2923","nwarr":"\u2196","nwArr":"\u21D6","nwarrow":"\u2196","nwnear":"\u2927","Oacute":"\xD3","oacute":"\xF3","oast":"\u229B","Ocirc":"\xD4","ocirc":"\xF4","ocir":"\u229A","Ocy":"\u041E","ocy":"\u043E","odash":"\u229D","Odblac":"\u0150","odblac":"\u0151","odiv":"\u2A38","odot":"\u2299","odsold":"\u29BC","OElig":"\u0152","oelig":"\u0153","ofcir":"\u29BF","Ofr":"\u{1D512}","ofr":"\u{1D52C}","ogon":"\u02DB","Ograve":"\xD2","ograve":"\xF2","ogt":"\u29C1","ohbar":"\u29B5","ohm":"\u03A9","oint":"\u222E","olarr":"\u21BA","olcir":"\u29BE","olcross":"\u29BB","oline":"\u203E","olt":"\u29C0","Omacr":"\u014C","omacr":"\u014D","Omega":"\u03A9","omega":"\u03C9","Omicron":"\u039F","omicron":"\u03BF","omid":"\u29B6","ominus":"\u2296","Oopf":"\u{1D546}","oopf":"\u{1D560}","opar":"\u29B7","OpenCurlyDoubleQuote":"\u201C","OpenCurlyQuote":"\u2018","operp":"\u29B9","oplus":"\u2295","orarr":"\u21BB","Or":"\u2A54","or":"\u2228","ord":"\u2A5D","order":"\u2134","orderof":"\u2134","ordf":"\xAA","ordm":"\xBA","origof":"\u22B6","oror":"\u2A56","orslope":"\u2A57","orv":"\u2A5B","oS":"\u24C8","Oscr":"\u{1D4AA}","oscr":"\u2134","Oslash":"\xD8","oslash":"\xF8","osol":"\u2298","Otilde":"\xD5","otilde":"\xF5","otimesas":"\u2A36","Otimes":"\u2A37","otimes":"\u2297","Ouml":"\xD6","ouml":"\xF6","ovbar":"\u233D","OverBar":"\u203E","OverBrace":"\u23DE","OverBracket":"\u23B4","OverParenthesis":"\u23DC","para":"\xB6","parallel":"\u2225","par":"\u2225","parsim":"\u2AF3","parsl":"\u2AFD","part":"\u2202","PartialD":"\u2202","Pcy":"\u041F","pcy":"\u043F","percnt":"%","period":".","permil":"\u2030","perp":"\u22A5","pertenk":"\u2031","Pfr":"\u{1D513}","pfr":"\u{1D52D}","Phi":"\u03A6","phi":"\u03C6","phiv":"\u03D5","phmmat":"\u2133","phone":"\u260E","Pi":"\u03A0","pi":"\u03C0","pitchfork":"\u22D4","piv":"\u03D6","planck":"\u210F","planckh":"\u210E","plankv":"\u210F","plusacir":"\u2A23","plusb":"\u229E","pluscir":"\u2A22","plus":"+","plusdo":"\u2214","plusdu":"\u2A25","pluse":"\u2A72","PlusMinus":"\xB1","plusmn":"\xB1","plussim":"\u2A26","plustwo":"\u2A27","pm":"\xB1","Poincareplane":"\u210C","pointint":"\u2A15","popf":"\u{1D561}","Popf":"\u2119","pound":"\xA3","prap":"\u2AB7","Pr":"\u2ABB","pr":"\u227A","prcue":"\u227C","precapprox":"\u2AB7","prec":"\u227A","preccurlyeq":"\u227C","Precedes":"\u227A","PrecedesEqual":"\u2AAF","PrecedesSlantEqual":"\u227C","PrecedesTilde":"\u227E","preceq":"\u2AAF","precnapprox":"\u2AB9","precneqq":"\u2AB5","precnsim":"\u22E8","pre":"\u2AAF","prE":"\u2AB3","precsim":"\u227E","prime":"\u2032","Prime":"\u2033","primes":"\u2119","prnap":"\u2AB9","prnE":"\u2AB5","prnsim":"\u22E8","prod":"\u220F","Product":"\u220F","profalar":"\u232E","profline":"\u2312","profsurf":"\u2313","prop":"\u221D","Proportional":"\u221D","Proportion":"\u2237","propto":"\u221D","prsim":"\u227E","prurel":"\u22B0","Pscr":"\u{1D4AB}","pscr":"\u{1D4C5}","Psi":"\u03A8","psi":"\u03C8","puncsp":"\u2008","Qfr":"\u{1D514}","qfr":"\u{1D52E}","qint":"\u2A0C","qopf":"\u{1D562}","Qopf":"\u211A","qprime":"\u2057","Qscr":"\u{1D4AC}","qscr":"\u{1D4C6}","quaternions":"\u210D","quatint":"\u2A16","quest":"?","questeq":"\u225F","quot":"\\"","QUOT":"\\"","rAarr":"\u21DB","race":"\u223D\u0331","Racute":"\u0154","racute":"\u0155","radic":"\u221A","raemptyv":"\u29B3","rang":"\u27E9","Rang":"\u27EB","rangd":"\u2992","range":"\u29A5","rangle":"\u27E9","raquo":"\xBB","rarrap":"\u2975","rarrb":"\u21E5","rarrbfs":"\u2920","rarrc":"\u2933","rarr":"\u2192","Rarr":"\u21A0","rArr":"\u21D2","rarrfs":"\u291E","rarrhk":"\u21AA","rarrlp":"\u21AC","rarrpl":"\u2945","rarrsim":"\u2974","Rarrtl":"\u2916","rarrtl":"\u21A3","rarrw":"\u219D","ratail":"\u291A","rAtail":"\u291C","ratio":"\u2236","rationals":"\u211A","rbarr":"\u290D","rBarr":"\u290F","RBarr":"\u2910","rbbrk":"\u2773","rbrace":"}","rbrack":"]","rbrke":"\u298C","rbrksld":"\u298E","rbrkslu":"\u2990","Rcaron":"\u0158","rcaron":"\u0159","Rcedil":"\u0156","rcedil":"\u0157","rceil":"\u2309","rcub":"}","Rcy":"\u0420","rcy":"\u0440","rdca":"\u2937","rdldhar":"\u2969","rdquo":"\u201D","rdquor":"\u201D","rdsh":"\u21B3","real":"\u211C","realine":"\u211B","realpart":"\u211C","reals":"\u211D","Re":"\u211C","rect":"\u25AD","reg":"\xAE","REG":"\xAE","ReverseElement":"\u220B","ReverseEquilibrium":"\u21CB","ReverseUpEquilibrium":"\u296F","rfisht":"\u297D","rfloor":"\u230B","rfr":"\u{1D52F}","Rfr":"\u211C","rHar":"\u2964","rhard":"\u21C1","rharu":"\u21C0","rharul":"\u296C","Rho":"\u03A1","rho":"\u03C1","rhov":"\u03F1","RightAngleBracket":"\u27E9","RightArrowBar":"\u21E5","rightarrow":"\u2192","RightArrow":"\u2192","Rightarrow":"\u21D2","RightArrowLeftArrow":"\u21C4","rightarrowtail":"\u21A3","RightCeiling":"\u2309","RightDoubleBracket":"\u27E7","RightDownTeeVector":"\u295D","RightDownVectorBar":"\u2955","RightDownVector":"\u21C2","RightFloor":"\u230B","rightharpoondown":"\u21C1","rightharpoonup":"\u21C0","rightleftarrows":"\u21C4","rightleftharpoons":"\u21CC","rightrightarrows":"\u21C9","rightsquigarrow":"\u219D","RightTeeArrow":"\u21A6","RightTee":"\u22A2","RightTeeVector":"\u295B","rightthreetimes":"\u22CC","RightTriangleBar":"\u29D0","RightTriangle":"\u22B3","RightTriangleEqual":"\u22B5","RightUpDownVector":"\u294F","RightUpTeeVector":"\u295C","RightUpVectorBar":"\u2954","RightUpVector":"\u21BE","RightVectorBar":"\u2953","RightVector":"\u21C0","ring":"\u02DA","risingdotseq":"\u2253","rlarr":"\u21C4","rlhar":"\u21CC","rlm":"\u200F","rmoustache":"\u23B1","rmoust":"\u23B1","rnmid":"\u2AEE","roang":"\u27ED","roarr":"\u21FE","robrk":"\u27E7","ropar":"\u2986","ropf":"\u{1D563}","Ropf":"\u211D","roplus":"\u2A2E","rotimes":"\u2A35","RoundImplies":"\u2970","rpar":")","rpargt":"\u2994","rppolint":"\u2A12","rrarr":"\u21C9","Rrightarrow":"\u21DB","rsaquo":"\u203A","rscr":"\u{1D4C7}","Rscr":"\u211B","rsh":"\u21B1","Rsh":"\u21B1","rsqb":"]","rsquo":"\u2019","rsquor":"\u2019","rthree":"\u22CC","rtimes":"\u22CA","rtri":"\u25B9","rtrie":"\u22B5","rtrif":"\u25B8","rtriltri":"\u29CE","RuleDelayed":"\u29F4","ruluhar":"\u2968","rx":"\u211E","Sacute":"\u015A","sacute":"\u015B","sbquo":"\u201A","scap":"\u2AB8","Scaron":"\u0160","scaron":"\u0161","Sc":"\u2ABC","sc":"\u227B","sccue":"\u227D","sce":"\u2AB0","scE":"\u2AB4","Scedil":"\u015E","scedil":"\u015F","Scirc":"\u015C","scirc":"\u015D","scnap":"\u2ABA","scnE":"\u2AB6","scnsim":"\u22E9","scpolint":"\u2A13","scsim":"\u227F","Scy":"\u0421","scy":"\u0441","sdotb":"\u22A1","sdot":"\u22C5","sdote":"\u2A66","searhk":"\u2925","searr":"\u2198","seArr":"\u21D8","searrow":"\u2198","sect":"\xA7","semi":";","seswar":"\u2929","setminus":"\u2216","setmn":"\u2216","sext":"\u2736","Sfr":"\u{1D516}","sfr":"\u{1D530}","sfrown":"\u2322","sharp":"\u266F","SHCHcy":"\u0429","shchcy":"\u0449","SHcy":"\u0428","shcy":"\u0448","ShortDownArrow":"\u2193","ShortLeftArrow":"\u2190","shortmid":"\u2223","shortparallel":"\u2225","ShortRightArrow":"\u2192","ShortUpArrow":"\u2191","shy":"\xAD","Sigma":"\u03A3","sigma":"\u03C3","sigmaf":"\u03C2","sigmav":"\u03C2","sim":"\u223C","simdot":"\u2A6A","sime":"\u2243","simeq":"\u2243","simg":"\u2A9E","simgE":"\u2AA0","siml":"\u2A9D","simlE":"\u2A9F","simne":"\u2246","simplus":"\u2A24","simrarr":"\u2972","slarr":"\u2190","SmallCircle":"\u2218","smallsetminus":"\u2216","smashp":"\u2A33","smeparsl":"\u29E4","smid":"\u2223","smile":"\u2323","smt":"\u2AAA","smte":"\u2AAC","smtes":"\u2AAC\uFE00","SOFTcy":"\u042C","softcy":"\u044C","solbar":"\u233F","solb":"\u29C4","sol":"/","Sopf":"\u{1D54A}","sopf":"\u{1D564}","spades":"\u2660","spadesuit":"\u2660","spar":"\u2225","sqcap":"\u2293","sqcaps":"\u2293\uFE00","sqcup":"\u2294","sqcups":"\u2294\uFE00","Sqrt":"\u221A","sqsub":"\u228F","sqsube":"\u2291","sqsubset":"\u228F","sqsubseteq":"\u2291","sqsup":"\u2290","sqsupe":"\u2292","sqsupset":"\u2290","sqsupseteq":"\u2292","square":"\u25A1","Square":"\u25A1","SquareIntersection":"\u2293","SquareSubset":"\u228F","SquareSubsetEqual":"\u2291","SquareSuperset":"\u2290","SquareSupersetEqual":"\u2292","SquareUnion":"\u2294","squarf":"\u25AA","squ":"\u25A1","squf":"\u25AA","srarr":"\u2192","Sscr":"\u{1D4AE}","sscr":"\u{1D4C8}","ssetmn":"\u2216","ssmile":"\u2323","sstarf":"\u22C6","Star":"\u22C6","star":"\u2606","starf":"\u2605","straightepsilon":"\u03F5","straightphi":"\u03D5","strns":"\xAF","sub":"\u2282","Sub":"\u22D0","subdot":"\u2ABD","subE":"\u2AC5","sube":"\u2286","subedot":"\u2AC3","submult":"\u2AC1","subnE":"\u2ACB","subne":"\u228A","subplus":"\u2ABF","subrarr":"\u2979","subset":"\u2282","Subset":"\u22D0","subseteq":"\u2286","subseteqq":"\u2AC5","SubsetEqual":"\u2286","subsetneq":"\u228A","subsetneqq":"\u2ACB","subsim":"\u2AC7","subsub":"\u2AD5","subsup":"\u2AD3","succapprox":"\u2AB8","succ":"\u227B","succcurlyeq":"\u227D","Succeeds":"\u227B","SucceedsEqual":"\u2AB0","SucceedsSlantEqual":"\u227D","SucceedsTilde":"\u227F","succeq":"\u2AB0","succnapprox":"\u2ABA","succneqq":"\u2AB6","succnsim":"\u22E9","succsim":"\u227F","SuchThat":"\u220B","sum":"\u2211","Sum":"\u2211","sung":"\u266A","sup1":"\xB9","sup2":"\xB2","sup3":"\xB3","sup":"\u2283","Sup":"\u22D1","supdot":"\u2ABE","supdsub":"\u2AD8","supE":"\u2AC6","supe":"\u2287","supedot":"\u2AC4","Superset":"\u2283","SupersetEqual":"\u2287","suphsol":"\u27C9","suphsub":"\u2AD7","suplarr":"\u297B","supmult":"\u2AC2","supnE":"\u2ACC","supne":"\u228B","supplus":"\u2AC0","supset":"\u2283","Supset":"\u22D1","supseteq":"\u2287","supseteqq":"\u2AC6","supsetneq":"\u228B","supsetneqq":"\u2ACC","supsim":"\u2AC8","supsub":"\u2AD4","supsup":"\u2AD6","swarhk":"\u2926","swarr":"\u2199","swArr":"\u21D9","swarrow":"\u2199","swnwar":"\u292A","szlig":"\xDF","Tab":"\\t","target":"\u2316","Tau":"\u03A4","tau":"\u03C4","tbrk":"\u23B4","Tcaron":"\u0164","tcaron":"\u0165","Tcedil":"\u0162","tcedil":"\u0163","Tcy":"\u0422","tcy":"\u0442","tdot":"\u20DB","telrec":"\u2315","Tfr":"\u{1D517}","tfr":"\u{1D531}","there4":"\u2234","therefore":"\u2234","Therefore":"\u2234","Theta":"\u0398","theta":"\u03B8","thetasym":"\u03D1","thetav":"\u03D1","thickapprox":"\u2248","thicksim":"\u223C","ThickSpace":"\u205F\u200A","ThinSpace":"\u2009","thinsp":"\u2009","thkap":"\u2248","thksim":"\u223C","THORN":"\xDE","thorn":"\xFE","tilde":"\u02DC","Tilde":"\u223C","TildeEqual":"\u2243","TildeFullEqual":"\u2245","TildeTilde":"\u2248","timesbar":"\u2A31","timesb":"\u22A0","times":"\xD7","timesd":"\u2A30","tint":"\u222D","toea":"\u2928","topbot":"\u2336","topcir":"\u2AF1","top":"\u22A4","Topf":"\u{1D54B}","topf":"\u{1D565}","topfork":"\u2ADA","tosa":"\u2929","tprime":"\u2034","trade":"\u2122","TRADE":"\u2122","triangle":"\u25B5","triangledown":"\u25BF","triangleleft":"\u25C3","trianglelefteq":"\u22B4","triangleq":"\u225C","triangleright":"\u25B9","trianglerighteq":"\u22B5","tridot":"\u25EC","trie":"\u225C","triminus":"\u2A3A","TripleDot":"\u20DB","triplus":"\u2A39","trisb":"\u29CD","tritime":"\u2A3B","trpezium":"\u23E2","Tscr":"\u{1D4AF}","tscr":"\u{1D4C9}","TScy":"\u0426","tscy":"\u0446","TSHcy":"\u040B","tshcy":"\u045B","Tstrok":"\u0166","tstrok":"\u0167","twixt":"\u226C","twoheadleftarrow":"\u219E","twoheadrightarrow":"\u21A0","Uacute":"\xDA","uacute":"\xFA","uarr":"\u2191","Uarr":"\u219F","uArr":"\u21D1","Uarrocir":"\u2949","Ubrcy":"\u040E","ubrcy":"\u045E","Ubreve":"\u016C","ubreve":"\u016D","Ucirc":"\xDB","ucirc":"\xFB","Ucy":"\u0423","ucy":"\u0443","udarr":"\u21C5","Udblac":"\u0170","udblac":"\u0171","udhar":"\u296E","ufisht":"\u297E","Ufr":"\u{1D518}","ufr":"\u{1D532}","Ugrave":"\xD9","ugrave":"\xF9","uHar":"\u2963","uharl":"\u21BF","uharr":"\u21BE","uhblk":"\u2580","ulcorn":"\u231C","ulcorner":"\u231C","ulcrop":"\u230F","ultri":"\u25F8","Umacr":"\u016A","umacr":"\u016B","uml":"\xA8","UnderBar":"_","UnderBrace":"\u23DF","UnderBracket":"\u23B5","UnderParenthesis":"\u23DD","Union":"\u22C3","UnionPlus":"\u228E","Uogon":"\u0172","uogon":"\u0173","Uopf":"\u{1D54C}","uopf":"\u{1D566}","UpArrowBar":"\u2912","uparrow":"\u2191","UpArrow":"\u2191","Uparrow":"\u21D1","UpArrowDownArrow":"\u21C5","updownarrow":"\u2195","UpDownArrow":"\u2195","Updownarrow":"\u21D5","UpEquilibrium":"\u296E","upharpoonleft":"\u21BF","upharpoonright":"\u21BE","uplus":"\u228E","UpperLeftArrow":"\u2196","UpperRightArrow":"\u2197","upsi":"\u03C5","Upsi":"\u03D2","upsih":"\u03D2","Upsilon":"\u03A5","upsilon":"\u03C5","UpTeeArrow":"\u21A5","UpTee":"\u22A5","upuparrows":"\u21C8","urcorn":"\u231D","urcorner":"\u231D","urcrop":"\u230E","Uring":"\u016E","uring":"\u016F","urtri":"\u25F9","Uscr":"\u{1D4B0}","uscr":"\u{1D4CA}","utdot":"\u22F0","Utilde":"\u0168","utilde":"\u0169","utri":"\u25B5","utrif":"\u25B4","uuarr":"\u21C8","Uuml":"\xDC","uuml":"\xFC","uwangle":"\u29A7","vangrt":"\u299C","varepsilon":"\u03F5","varkappa":"\u03F0","varnothing":"\u2205","varphi":"\u03D5","varpi":"\u03D6","varpropto":"\u221D","varr":"\u2195","vArr":"\u21D5","varrho":"\u03F1","varsigma":"\u03C2","varsubsetneq":"\u228A\uFE00","varsubsetneqq":"\u2ACB\uFE00","varsupsetneq":"\u228B\uFE00","varsupsetneqq":"\u2ACC\uFE00","vartheta":"\u03D1","vartriangleleft":"\u22B2","vartriangleright":"\u22B3","vBar":"\u2AE8","Vbar":"\u2AEB","vBarv":"\u2AE9","Vcy":"\u0412","vcy":"\u0432","vdash":"\u22A2","vDash":"\u22A8","Vdash":"\u22A9","VDash":"\u22AB","Vdashl":"\u2AE6","veebar":"\u22BB","vee":"\u2228","Vee":"\u22C1","veeeq":"\u225A","vellip":"\u22EE","verbar":"|","Verbar":"\u2016","vert":"|","Vert":"\u2016","VerticalBar":"\u2223","VerticalLine":"|","VerticalSeparator":"\u2758","VerticalTilde":"\u2240","VeryThinSpace":"\u200A","Vfr":"\u{1D519}","vfr":"\u{1D533}","vltri":"\u22B2","vnsub":"\u2282\u20D2","vnsup":"\u2283\u20D2","Vopf":"\u{1D54D}","vopf":"\u{1D567}","vprop":"\u221D","vrtri":"\u22B3","Vscr":"\u{1D4B1}","vscr":"\u{1D4CB}","vsubnE":"\u2ACB\uFE00","vsubne":"\u228A\uFE00","vsupnE":"\u2ACC\uFE00","vsupne":"\u228B\uFE00","Vvdash":"\u22AA","vzigzag":"\u299A","Wcirc":"\u0174","wcirc":"\u0175","wedbar":"\u2A5F","wedge":"\u2227","Wedge":"\u22C0","wedgeq":"\u2259","weierp":"\u2118","Wfr":"\u{1D51A}","wfr":"\u{1D534}","Wopf":"\u{1D54E}","wopf":"\u{1D568}","wp":"\u2118","wr":"\u2240","wreath":"\u2240","Wscr":"\u{1D4B2}","wscr":"\u{1D4CC}","xcap":"\u22C2","xcirc":"\u25EF","xcup":"\u22C3","xdtri":"\u25BD","Xfr":"\u{1D51B}","xfr":"\u{1D535}","xharr":"\u27F7","xhArr":"\u27FA","Xi":"\u039E","xi":"\u03BE","xlarr":"\u27F5","xlArr":"\u27F8","xmap":"\u27FC","xnis":"\u22FB","xodot":"\u2A00","Xopf":"\u{1D54F}","xopf":"\u{1D569}","xoplus":"\u2A01","xotime":"\u2A02","xrarr":"\u27F6","xrArr":"\u27F9","Xscr":"\u{1D4B3}","xscr":"\u{1D4CD}","xsqcup":"\u2A06","xuplus":"\u2A04","xutri":"\u25B3","xvee":"\u22C1","xwedge":"\u22C0","Yacute":"\xDD","yacute":"\xFD","YAcy":"\u042F","yacy":"\u044F","Ycirc":"\u0176","ycirc":"\u0177","Ycy":"\u042B","ycy":"\u044B","yen":"\xA5","Yfr":"\u{1D51C}","yfr":"\u{1D536}","YIcy":"\u0407","yicy":"\u0457","Yopf":"\u{1D550}","yopf":"\u{1D56A}","Yscr":"\u{1D4B4}","yscr":"\u{1D4CE}","YUcy":"\u042E","yucy":"\u044E","yuml":"\xFF","Yuml":"\u0178","Zacute":"\u0179","zacute":"\u017A","Zcaron":"\u017D","zcaron":"\u017E","Zcy":"\u0417","zcy":"\u0437","Zdot":"\u017B","zdot":"\u017C","zeetrf":"\u2128","ZeroWidthSpace":"\u200B","Zeta":"\u0396","zeta":"\u03B6","zfr":"\u{1D537}","Zfr":"\u2128","ZHcy":"\u0416","zhcy":"\u0436","zigrarr":"\u21DD","zopf":"\u{1D56B}","Zopf":"\u2124","Zscr":"\u{1D4B5}","zscr":"\u{1D4CF}","zwj":"\u200D","zwnj":"\u200C"}')},function(L,v,l){var n={};function r(i,t,o){var e,a,s,c,f,d="";for(typeof t!="string"&&(o=t,t=r.defaultChars),o===void 0&&(o=!0),f=function(u){var h,p,m=n[u];if(m)return m;for(m=n[u]=[],h=0;h<128;h++)p=String.fromCharCode(h),/^[0-9a-z]$/i.test(p)?m.push(p):m.push("%"+("0"+h.toString(16).toUpperCase()).slice(-2));for(h=0;h=55296&&s<=57343){if(s>=55296&&s<=56319&&e+1=56320&&c<=57343){d+=encodeURIComponent(i[e]+i[e+1]),e++;continue}d+="%EF%BF%BD"}else d+=encodeURIComponent(i[e]);return d}r.defaultChars=";/?:@&=+$,-_.!~*'()#",r.componentChars="-_.!~*'()",L.exports=r},function(L,v,l){var n={};function r(i,t){var o;return typeof t!="string"&&(t=r.defaultChars),o=function(e){var a,s,c=n[e];if(c)return c;for(c=n[e]=[],a=0;a<128;a++)s=String.fromCharCode(a),c.push(s);for(a=0;a=55296&&h<=57343?"\uFFFD\uFFFD\uFFFD":String.fromCharCode(h),a+=6):(248&c)==240&&a+91114111?p+="\uFFFD\uFFFD\uFFFD\uFFFD":(h-=65536,p+=String.fromCharCode(55296+(h>>10),56320+(1023&h))),a+=9):p+="\uFFFD";return p})}r.defaultChars=";/?:@&=+$,#",r.componentChars="",L.exports=r},function(L,v,l){L.exports=function(n){var r="";return r+=n.protocol||"",r+=n.slashes?"//":"",r+=n.auth?n.auth+"@":"",n.hostname&&n.hostname.indexOf(":")!==-1?r+="["+n.hostname+"]":r+=n.hostname||"",r+=n.port?":"+n.port:"",r+=n.pathname||"",r+=n.search||"",r+=n.hash||""}},function(L,v,l){function n(){this.protocol=null,this.slashes=null,this.auth=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.pathname=null}var r=/^([a-z0-9.+-]+:)/i,i=/:[0-9]*$/,t=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,o=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r",` +`," "]),e=["'"].concat(o),a=["%","/","?",";","#"].concat(e),s=["/","?","#"],c=/^[+a-z0-9A-Z_-]{0,63}$/,f=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,d={javascript:!0,"javascript:":!0},u={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0};n.prototype.parse=function(h,p){var m,C,E,b,y,_=h;if(_=_.trim(),!p&&h.split("#").length===1){var P=t.exec(_);if(P)return this.pathname=P[1],P[2]&&(this.search=P[2]),this}var S=r.exec(_);if(S&&(E=(S=S[0]).toLowerCase(),this.protocol=S,_=_.substr(S.length)),(p||S||_.match(/^\/\/[^@\/]+@[^@\/]+/))&&(!(y=_.substr(0,2)==="//")||S&&d[S]||(_=_.substr(2),this.slashes=!0)),!d[S]&&(y||S&&!u[S])){var M,j,F=-1;for(m=0;m127?$+="x":$+=H[q];if(!$.match(c)){var R=w.slice(0,m),B=w.slice(m+1),k=H.match(f);k&&(R.push(k[1]),B.unshift(k[2])),B.length&&(_=B.join(".")+_),this.hostname=R.join(".");break}}}}this.hostname.length>255&&(this.hostname=""),D&&(this.hostname=this.hostname.substr(1,this.hostname.length-2))}var x=_.indexOf("#");x!==-1&&(this.hash=_.substr(x),_=_.slice(0,x));var O=_.indexOf("?");return O!==-1&&(this.search=_.substr(O),_=_.slice(0,O)),_&&(this.pathname=_),u[E]&&this.hostname&&!this.pathname&&(this.pathname=""),this},n.prototype.parseHost=function(h){var p=i.exec(h);p&&((p=p[0])!==":"&&(this.port=p.substr(1)),h=h.substr(0,h.length-p.length)),h&&(this.hostname=h)},L.exports=function(h,p){if(h&&h instanceof n)return h;var m=new n;return m.parse(h,p),m}},function(L,v,l){v.Any=l(9),v.Cc=l(10),v.Cf=l(27),v.P=l(3),v.Z=l(11)},function(L,v){L.exports=/[\xAD\u0600-\u0605\u061C\u06DD\u070F\u08E2\u180E\u200B-\u200F\u202A-\u202E\u2060-\u2064\u2066-\u206F\uFEFF\uFFF9-\uFFFB]|\uD804[\uDCBD\uDCCD]|\uD82F[\uDCA0-\uDCA3]|\uD834[\uDD73-\uDD7A]|\uDB40[\uDC01\uDC20-\uDC7F]/},function(L,v,l){v.parseLinkLabel=l(29),v.parseLinkDestination=l(30),v.parseLinkTitle=l(31)},function(L,v,l){L.exports=function(n,r,i){var t,o,e,a,s=-1,c=n.posMax,f=n.pos;for(n.pos=r+1,t=1;n.pos32)return s;if(o===41){if(e===0)break;e--}i++}return a===i||e!==0||(s.str=n(r.slice(a,i)),s.lines=0,s.pos=i,s.ok=!0),s}},function(L,v,l){var n=l(0).unescapeAll;L.exports=function(r,i,t){var o,e,a=0,s=i,c={ok:!1,pos:0,lines:0,str:""};if(i>=t||(e=r.charCodeAt(i))!==34&&e!==39&&e!==40)return c;for(i++,e===40&&(e=41);i"+i(e[a].content)+""},t.code_block=function(e,a,s,c,f){var d=e[a];return""+i(e[a].content)+` +`},t.fence=function(e,a,s,c,f){var d,u,h,p,m,C=e[a],E=C.info?r(C.info).trim():"",b="",y="";return E&&(b=(h=E.split(/(\s+)/g))[0],y=h.slice(2).join("")),(d=s.highlight&&s.highlight(C.content,b,y)||i(C.content)).indexOf(""+d+` +`):"
    "+d+`
    +`},t.image=function(e,a,s,c,f){var d=e[a];return d.attrs[d.attrIndex("alt")][1]=f.renderInlineAsText(d.children,s,c),f.renderToken(e,a,s)},t.hardbreak=function(e,a,s){return s.xhtmlOut?`
    +`:`
    +`},t.softbreak=function(e,a,s){return s.breaks?s.xhtmlOut?`
    +`:`
    +`:` +`},t.text=function(e,a){return i(e[a].content)},t.html_block=function(e,a){return e[a].content},t.html_inline=function(e,a){return e[a].content},o.prototype.renderAttrs=function(e){var a,s,c;if(!e.attrs)return"";for(c="",a=0,s=e.attrs.length;a +`:">")},o.prototype.renderInline=function(e,a,s){for(var c,f="",d=this.rules,u=0,h=e.length;u/i.test(i)}L.exports=function(i){var t,o,e,a,s,c,f,d,u,h,p,m,C,E,b,y,_,P,S=i.tokens;if(i.md.options.linkify){for(o=0,e=S.length;o=0;t--)if((c=a[t]).type!=="link_close"){if(c.type==="html_inline"&&(P=c.content,/^\s]/i.test(P)&&C>0&&C--,r(c.content)&&C++),!(C>0)&&c.type==="text"&&i.md.linkify.test(c.content)){for(u=c.content,_=i.md.linkify.match(u),f=[],m=c.level,p=0,d=0;d<_.length;d++)E=_[d].url,b=i.md.normalizeLink(E),i.md.validateLink(b)&&(y=_[d].text,y=_[d].schema?_[d].schema!=="mailto:"||/^mailto:/i.test(y)?i.md.normalizeLinkText(y):i.md.normalizeLinkText("mailto:"+y).replace(/^mailto:/,""):i.md.normalizeLinkText("http://"+y).replace(/^http:\/\//,""),(h=_[d].index)>p&&((s=new i.Token("text","",0)).content=u.slice(p,h),s.level=m,f.push(s)),(s=new i.Token("link_open","a",1)).attrs=[["href",b]],s.level=m++,s.markup="linkify",s.info="auto",f.push(s),(s=new i.Token("text","",0)).content=y,s.level=m,f.push(s),(s=new i.Token("link_close","a",-1)).level=--m,s.markup="linkify",s.info="auto",f.push(s),p=_[d].lastIndex);p=0;c--)(f=s[c]).type!=="text"||d||(f.content=f.content.replace(i,o)),f.type==="link_open"&&f.info==="auto"&&d--,f.type==="link_close"&&f.info==="auto"&&d++}function a(s){var c,f,d=0;for(c=s.length-1;c>=0;c--)(f=s[c]).type!=="text"||d||n.test(f.content)&&(f.content=f.content.replace(/\+-/g,"\xB1").replace(/\.{2,}/g,"\u2026").replace(/([?!])…/g,"$1..").replace(/([?!]){4,}/g,"$1$1$1").replace(/,{2,}/g,",").replace(/(^|[^-])---(?=[^-]|$)/gm,"$1\u2014").replace(/(^|\s)--(?=\s|$)/gm,"$1\u2013").replace(/(^|[^-\s])--(?=[^-\s]|$)/gm,"$1\u2013")),f.type==="link_open"&&f.info==="auto"&&d--,f.type==="link_close"&&f.info==="auto"&&d++}L.exports=function(s){var c;if(s.md.options.typographer)for(c=s.tokens.length-1;c>=0;c--)s.tokens[c].type==="inline"&&(r.test(s.tokens[c].content)&&e(s.tokens[c].children),n.test(s.tokens[c].content)&&a(s.tokens[c].children))}},function(L,v,l){var n=l(0).isWhiteSpace,r=l(0).isPunctChar,i=l(0).isMdAsciiPunct,t=/['"]/,o=/['"]/g;function e(s,c,f){return s.substr(0,c)+f+s.substr(c+1)}function a(s,c){var f,d,u,h,p,m,C,E,b,y,_,P,S,M,j,F,z,D,w,H,$;for(w=[],f=0;f=0&&!(w[z].level<=C);z--);if(w.length=z+1,d.type==="text"){p=0,m=(u=d.content).length;t:for(;p=0)b=u.charCodeAt(h.index-1);else for(z=f-1;z>=0&&s[z].type!=="softbreak"&&s[z].type!=="hardbreak";z--)if(s[z].content){b=s[z].content.charCodeAt(s[z].content.length-1);break}if(y=32,p=48&&b<=57&&(F=j=!1),j&&F&&(j=_,F=P),j||F){if(F){for(z=w.length-1;z>=0&&(E=w[z],!(w[z].level=0;c--)s.tokens[c].type==="inline"&&t.test(s.tokens[c].content)&&a(s.tokens[c].children,s)}},function(L,v,l){var n=l(5);function r(i,t,o){this.src=i,this.env=o,this.tokens=[],this.inlineMode=!1,this.md=t}r.prototype.Token=n,L.exports=r},function(L,v,l){var n=l(4),r=[["table",l(42),["paragraph","reference"]],["code",l(43)],["fence",l(44),["paragraph","reference","blockquote","list"]],["blockquote",l(45),["paragraph","reference","blockquote","list"]],["hr",l(46),["paragraph","reference","blockquote","list"]],["list",l(47),["paragraph","reference","blockquote"]],["reference",l(48)],["html_block",l(49),["paragraph","reference","blockquote"]],["heading",l(51),["paragraph","reference","blockquote"]],["lheading",l(52)],["paragraph",l(53)]];function i(){this.ruler=new n;for(var t=0;t=e))&&!(t.sCount[f]=u){t.line=e;break}for(a=0;ae||(h=o+1,t.sCount[h]=4||(f=t.bMarks[h]+t.tShift[h])>=t.eMarks[h]||(j=t.src.charCodeAt(f++))!==124&&j!==45&&j!==58||f>=t.eMarks[h]||(F=t.src.charCodeAt(f++))!==124&&F!==45&&F!==58&&!n(F)||j===45&&n(F))return!1;for(;f=4||((p=i(c)).length&&p[0]===""&&p.shift(),p.length&&p[p.length-1]===""&&p.pop(),(m=p.length)===0||m!==E.length))return!1;if(a)return!0;for(P=t.parentType,t.parentType="table",M=t.md.block.ruler.getRules("blockquote"),(C=t.push("table_open","table",1)).map=y=[o,0],(C=t.push("thead_open","thead",1)).map=[o,o+1],(C=t.push("tr_open","tr",1)).map=[o,o+1],d=0;d=4)break;for((p=i(c)).length&&p[0]===""&&p.shift(),p.length&&p[p.length-1]===""&&p.pop(),h===o+2&&((C=t.push("tbody_open","tbody",1)).map=_=[o+2,0]),(C=t.push("tr_open","tr",1)).map=[h,h+1],d=0;d=4))break;o=++t}return n.line=o,(e=n.push("code_block","code",0)).content=n.getLines(r,o,4+n.blkIndent,!1)+` +`,e.map=[r,n.line],!0}},function(L,v,l){L.exports=function(n,r,i,t){var o,e,a,s,c,f,d,u=!1,h=n.bMarks[r]+n.tShift[r],p=n.eMarks[r];if(n.sCount[r]-n.blkIndent>=4||h+3>p||(o=n.src.charCodeAt(h))!==126&&o!==96||(c=h,(e=(h=n.skipChars(h,o))-c)<3)||(d=n.src.slice(c,h),a=n.src.slice(h,p),o===96&&a.indexOf(String.fromCharCode(o))>=0))return!1;if(t)return!0;for(s=r;!(++s>=i)&&!((h=c=n.bMarks[s]+n.tShift[s])<(p=n.eMarks[s])&&n.sCount[s]=4||(h=n.skipChars(h,o))-c=4||r.src.charCodeAt(D++)!==62)return!1;if(o)return!0;for(c=p=r.sCount[i]+1,r.src.charCodeAt(D)===32?(D++,c++,p++,e=!1,P=!0):r.src.charCodeAt(D)===9?(P=!0,(r.bsCount[i]+p)%4==3?(D++,c++,p++,e=!1):e=!0):P=!1,m=[r.bMarks[i]],r.bMarks[i]=D;D=w,y=[r.sCount[i]],r.sCount[i]=p-c,_=[r.tShift[i]],r.tShift[i]=D-r.bMarks[i],M=r.md.block.ruler.getRules("blockquote"),b=r.parentType,r.parentType="blockquote",h=i+1;h=(w=r.eMarks[h])));h++)if(r.src.charCodeAt(D++)!==62||F){if(d)break;for(S=!1,s=0,f=M.length;s=w,C.push(r.bsCount[h]),r.bsCount[h]=r.sCount[h]+1+(P?1:0),y.push(r.sCount[h]),r.sCount[h]=p-c,_.push(r.tShift[h]),r.tShift[h]=D-r.bMarks[h]}for(E=r.blkIndent,r.blkIndent=0,(j=r.push("blockquote_open","blockquote",1)).markup=">",j.map=u=[i,0],r.md.block.tokenize(r,i,h),(j=r.push("blockquote_close","blockquote",-1)).markup=">",r.lineMax=z,r.parentType=b,u[1]=r.line,s=0;s<_.length;s++)r.bMarks[s+i]=m[s],r.tShift[s+i]=_[s],r.sCount[s+i]=y[s],r.bsCount[s+i]=C[s];return r.blkIndent=E,!0}},function(L,v,l){var n=l(0).isSpace;L.exports=function(r,i,t,o){var e,a,s,c,f=r.bMarks[i]+r.tShift[i],d=r.eMarks[i];if(r.sCount[i]-r.blkIndent>=4||(e=r.src.charCodeAt(f++))!==42&&e!==45&&e!==95)return!1;for(a=1;f=c||(e=t.src.charCodeAt(s++))<48||e>57)return-1;for(;;){if(s>=c)return-1;if(!((e=t.src.charCodeAt(s++))>=48&&e<=57)){if(e===41||e===46)break;return-1}if(s-a>=10)return-1}return s=4||t.listIndent>=0&&t.sCount[o]-t.listIndent>=4&&t.sCount[o]=t.blkIndent&&(x=!0),($=i(t,o))>=0){if(p=!0,I=t.bMarks[o]+t.tShift[o],_=Number(t.src.slice(I,$-1)),x&&_!==1)return!1}else{if(!(($=r(t,o))>=0))return!1;p=!1}if(x&&t.skipSpaces($)>=t.eMarks[o])return!1;if(y=t.src.charCodeAt($-1),a)return!0;for(b=t.tokens.length,p?(k=t.push("ordered_list_open","ol",1),_!==1&&(k.attrs=[["start",_]])):k=t.push("bullet_list_open","ul",1),k.map=E=[o,0],k.markup=String.fromCharCode(y),S=o,q=!1,B=t.md.block.ruler.getRules("list"),F=t.parentType,t.parentType="list";S=P?1:M-h)>4&&(u=1),d=h+u,(k=t.push("list_item_open","li",1)).markup=String.fromCharCode(y),k.map=m=[o,0],p&&(k.info=t.src.slice(I,$-1)),w=t.tight,D=t.tShift[o],z=t.sCount[o],j=t.listIndent,t.listIndent=t.blkIndent,t.blkIndent=d,t.tight=!0,t.tShift[o]=c-t.bMarks[o],t.sCount[o]=M,c>=P&&t.isEmpty(o+1)?t.line=Math.min(t.line+2,e):t.md.block.tokenize(t,o,e,!0),t.tight&&!q||(O=!1),q=t.line-o>1&&t.isEmpty(t.line-1),t.blkIndent=t.listIndent,t.listIndent=j,t.tShift[o]=D,t.sCount[o]=z,t.tight=w,(k=t.push("list_item_close","li",-1)).markup=String.fromCharCode(y),S=o=t.line,m[1]=S,c=t.bMarks[o],S>=e||t.sCount[S]=4)break;for(R=!1,f=0,C=B.length;f=4||i.src.charCodeAt(j)!==91)return!1;for(;++j3||i.sCount[z]<0)){for(_=!1,u=0,h=P.length;u|$))/i,/<\/(script|pre|style|textarea)>/i,!0],[/^/,!0],[/^<\?/,/\?>/,!0],[/^/,!0],[/^/,!0],[new RegExp("^|$))","i"),/^$/,!0],[new RegExp(r.source+"\\s*$"),/^$/,!1]];L.exports=function(t,o,e,a){var s,c,f,d,u=t.bMarks[o]+t.tShift[o],h=t.eMarks[o];if(t.sCount[o]-t.blkIndent>=4||!t.md.options.html||t.src.charCodeAt(u)!==60)return!1;for(d=t.src.slice(u,h),s=0;s=4||(e=r.src.charCodeAt(f))!==35||f>=d)return!1;for(a=1,e=r.src.charCodeAt(++f);e===35&&f6||ff&&n(r.src.charCodeAt(s-1))&&(d=s),r.line=i+1,(c=r.push("heading_open","h"+String(a),1)).markup="########".slice(0,a),c.map=[i,r.line],(c=r.push("inline","",0)).content=r.src.slice(f,d).trim(),c.map=[i,r.line],c.children=[],(c=r.push("heading_close","h"+String(a),-1)).markup="########".slice(0,a)),!0)}},function(L,v,l){L.exports=function(n,r,i){var t,o,e,a,s,c,f,d,u,h,p=r+1,m=n.md.block.ruler.getRules("paragraph");if(n.sCount[r]-n.blkIndent>=4)return!1;for(h=n.parentType,n.parentType="paragraph";p3)){if(n.sCount[p]>=n.blkIndent&&(c=n.bMarks[p]+n.tShift[p])<(f=n.eMarks[p])&&((u=n.src.charCodeAt(c))===45||u===61)&&(c=n.skipChars(c,u),(c=n.skipSpaces(c))>=f)){d=u===61?1:2;break}if(!(n.sCount[p]<0)){for(o=!1,e=0,a=m.length;e3||n.sCount[c]<0)){for(t=!1,o=0,e=f.length;o0&&this.level++,this.tokens.push(a),a},i.prototype.isEmpty=function(t){return this.bMarks[t]+this.tShift[t]>=this.eMarks[t]},i.prototype.skipEmptyLines=function(t){for(var o=this.lineMax;to;)if(!r(this.src.charCodeAt(--t)))return t+1;return t},i.prototype.skipChars=function(t,o){for(var e=this.src.length;te;)if(o!==this.src.charCodeAt(--t))return t+1;return t},i.prototype.getLines=function(t,o,e,a){var s,c,f,d,u,h,p,m=t;if(t>=o)return"";for(h=new Array(o-t),s=0;me?new Array(c-e+1).join(" ")+this.src.slice(d,u):this.src.slice(d,u)}return h.join("")},i.prototype.Token=n,L.exports=i},function(L,v,l){var n=l(4),r=[["text",l(56)],["newline",l(57)],["escape",l(58)],["backticks",l(59)],["strikethrough",l(13).tokenize],["emphasis",l(14).tokenize],["link",l(60)],["image",l(61)],["autolink",l(62)],["html_inline",l(63)],["entity",l(64)]],i=[["balance_pairs",l(65)],["strikethrough",l(13).postProcess],["emphasis",l(14).postProcess],["text_collapse",l(66)]];function t(){var o;for(this.ruler=new n,o=0;o=f)break}else o.pending+=o.src[o.pos++]}o.pending&&o.pushPending()},t.prototype.parse=function(o,e,a,s){var c,f,d,u=new this.State(o,e,a,s);for(this.tokenize(u),d=(f=this.ruler2.getRules("")).length,c=0;c=0&&r.pending.charCodeAt(t)===32)if(t>=1&&r.pending.charCodeAt(t-1)===32){for(e=t-1;e>=1&&r.pending.charCodeAt(e-1)===32;)e--;r.pending=r.pending.slice(0,e),r.push("hardbreak","br",0)}else r.pending=r.pending.slice(0,-1),r.push("softbreak","br",0);else r.push("softbreak","br",0);for(a++;a?@[]^_`{|}~-".split("").forEach(function(t){r[t.charCodeAt(0)]=1}),L.exports=function(t,o){var e,a=t.pos,s=t.posMax;if(t.src.charCodeAt(a)!==92)return!1;if(++a=C)return!1;if(E=f,(d=i.md.helpers.parseLinkDestination(i.src,f,i.posMax)).ok){for(h=i.md.normalizeLink(d.str),i.md.validateLink(h)?f=d.pos:h="",E=f;f=C||i.src.charCodeAt(f)!==41)&&(b=!0),f++}if(b){if(i.env.references===void 0)return!1;if(f=0?a=i.src.slice(E,f++):f=s+1):f=s+1,a||(a=i.src.slice(c,s)),!(u=i.env.references[n(a)]))return i.pos=m,!1;h=u.href,p=u.title}return t||(i.pos=c,i.posMax=s,i.push("link_open","a",1).attrs=o=[["href",h]],p&&o.push(["title",p]),i.md.inline.tokenize(i),i.push("link_close","a",-1)),i.pos=f,i.posMax=C,!0}},function(L,v,l){var n=l(0).normalizeReference,r=l(0).isSpace;L.exports=function(i,t){var o,e,a,s,c,f,d,u,h,p,m,C,E,b="",y=i.pos,_=i.posMax;if(i.src.charCodeAt(i.pos)!==33||i.src.charCodeAt(i.pos+1)!==91||(f=i.pos+2,(c=i.md.helpers.parseLinkLabel(i,i.pos+1,!1))<0))return!1;if((d=c+1)<_&&i.src.charCodeAt(d)===40){for(d++;d<_&&(e=i.src.charCodeAt(d),r(e)||e===10);d++);if(d>=_)return!1;for(E=d,(h=i.md.helpers.parseLinkDestination(i.src,d,i.posMax)).ok&&(b=i.md.normalizeLink(h.str),i.md.validateLink(b)?d=h.pos:b=""),E=d;d<_&&(e=i.src.charCodeAt(d),r(e)||e===10);d++);if(h=i.md.helpers.parseLinkTitle(i.src,d,i.posMax),d<_&&E!==d&&h.ok)for(p=h.str,d=h.pos;d<_&&(e=i.src.charCodeAt(d),r(e)||e===10);d++);else p="";if(d>=_||i.src.charCodeAt(d)!==41)return i.pos=y,!1;d++}else{if(i.env.references===void 0)return!1;if(d<_&&i.src.charCodeAt(d)===91?(E=d+1,(d=i.md.helpers.parseLinkLabel(i,d))>=0?s=i.src.slice(E,d++):d=c+1):d=c+1,s||(s=i.src.slice(f,c)),!(u=i.env.references[n(s)]))return i.pos=y,!1;b=u.href,p=u.title}return t||(a=i.src.slice(f,c),i.md.inline.parse(a,i.md,i.env,C=[]),(m=i.push("image","img",0)).attrs=o=[["src",b],["alt",""]],m.children=C,m.content=a,p&&o.push(["title",p])),i.pos=d,i.posMax=_,!0}},function(L,v,l){var n=/^([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])?)*)$/,r=/^([a-zA-Z][a-zA-Z0-9+.\-]{1,31}):([^<>\x00-\x20]*)$/;L.exports=function(i,t){var o,e,a,s,c,f,d=i.pos;if(i.src.charCodeAt(d)!==60)return!1;for(c=i.pos,f=i.posMax;;){if(++d>=f||(s=i.src.charCodeAt(d))===60)return!1;if(s===62)break}return o=i.src.slice(c+1,d),r.test(o)?(e=i.md.normalizeLink(o),!!i.md.validateLink(e)&&(t||((a=i.push("link_open","a",1)).attrs=[["href",e]],a.markup="autolink",a.info="auto",(a=i.push("text","",0)).content=i.md.normalizeLinkText(o),(a=i.push("link_close","a",-1)).markup="autolink",a.info="auto"),i.pos+=o.length+2,!0)):!!n.test(o)&&(e=i.md.normalizeLink("mailto:"+o),!!i.md.validateLink(e)&&(t||((a=i.push("link_open","a",1)).attrs=[["href",e]],a.markup="autolink",a.info="auto",(a=i.push("text","",0)).content=i.md.normalizeLinkText(o),(a=i.push("link_close","a",-1)).markup="autolink",a.info="auto"),i.pos+=o.length+2,!0))}},function(L,v,l){var n=l(12).HTML_TAG_RE;L.exports=function(r,i){var t,o,e,a=r.pos;return!!r.md.options.html&&(e=r.posMax,!(r.src.charCodeAt(a)!==60||a+2>=e)&&!((t=r.src.charCodeAt(a+1))!==33&&t!==63&&t!==47&&!function(s){var c=32|s;return c>=97&&c<=122}(t))&&!!(o=r.src.slice(a).match(n))&&(i||(r.push("html_inline","",0).content=r.src.slice(a,a+o[0].length)),r.pos+=o[0].length,!0))}},function(L,v,l){var n=l(7),r=l(0).has,i=l(0).isValidEntityCode,t=l(0).fromCodePoint,o=/^&#((?:x[a-f0-9]{1,6}|[0-9]{1,7}));/i,e=/^&([a-z][a-z0-9]{1,31});/i;L.exports=function(a,s){var c,f,d=a.pos,u=a.posMax;if(a.src.charCodeAt(d)!==38)return!1;if(d+1s;o-=C[o]+1)if((a=i[o]).marker===e.marker&&a.open&&a.end<0&&(f=!1,(a.close||e.open)&&(a.length+e.length)%3==0&&(a.length%3==0&&e.length%3==0||(f=!0)),!f)){d=o>0&&!i[o-1].open?C[o-1]+1:0,C[t]=t-o+d,C[o]=d,e.open=!1,a.end=t,a.close=!1,c=-1,m=-2;break}c!==-1&&(u[e.marker][(e.open?3:0)+(e.length||0)%3]=c)}}}L.exports=function(r){var i,t=r.tokens_meta,o=r.tokens_meta.length;for(n(0,r.delimiters),i=0;i0&&t++,o[r].type==="text"&&r+10&&(this.level++,this._prev_delimiters.push(this.delimiters),this.delimiters=[],f={delimiters:this.delimiters}),this.pendingLevel=this.level,this.tokens.push(c),this.tokens_meta.push(f),c},o.prototype.scanDelims=function(e,a){var s,c,f,d,u,h,p,m,C,E=e,b=!0,y=!0,_=this.posMax,P=this.src.charCodeAt(e);for(s=e>0?this.src.charCodeAt(e-1):32;E<_&&this.src.charCodeAt(E)===P;)E++;return f=E-e,c=E<_?this.src.charCodeAt(E):32,p=t(s)||i(String.fromCharCode(s)),C=t(c)||i(String.fromCharCode(c)),h=r(s),(m=r(c))?b=!1:C&&(h||p||(b=!1)),h?y=!1:p&&(m||C||(y=!1)),a?(d=b,u=y):(d=b&&(!y||p),u=y&&(!b||C)),{can_open:d,can_close:u,length:f}},o.prototype.Token=n,L.exports=o},function(L,v,l){function n(u){var h=Array.prototype.slice.call(arguments,1);return h.forEach(function(p){p&&Object.keys(p).forEach(function(m){u[m]=p[m]})}),u}function r(u){return Object.prototype.toString.call(u)}function i(u){return r(u)==="[object Function]"}function t(u){return u.replace(/[.?*+^$[\]\\(){}|-]/g,"\\$&")}var o={fuzzyLink:!0,fuzzyEmail:!0,fuzzyIP:!1},e={"http:":{validate:function(u,h,p){var m=u.slice(h);return p.re.http||(p.re.http=new RegExp("^\\/\\/"+p.re.src_auth+p.re.src_host_port_strict+p.re.src_path,"i")),p.re.http.test(m)?m.match(p.re.http)[0].length:0}},"https:":"http:","ftp:":"http:","//":{validate:function(u,h,p){var m=u.slice(h);return p.re.no_http||(p.re.no_http=new RegExp("^"+p.re.src_auth+"(?:localhost|(?:(?:"+p.re.src_domain+")\\.)+"+p.re.src_domain_root+")"+p.re.src_port+p.re.src_host_terminator+p.re.src_path,"i")),p.re.no_http.test(m)?h>=3&&u[h-3]===":"||h>=3&&u[h-3]==="/"?0:m.match(p.re.no_http)[0].length:0}},"mailto:":{validate:function(u,h,p){var m=u.slice(h);return p.re.mailto||(p.re.mailto=new RegExp("^"+p.re.src_email_name+"@"+p.re.src_host_strict,"i")),p.re.mailto.test(m)?m.match(p.re.mailto)[0].length:0}}},a="biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|\u0440\u0444".split("|");function s(u){var h=u.re=l(69)(u.__opts__),p=u.__tlds__.slice();function m(y){return y.replace("%TLDS%",h.src_tlds)}u.onCompile(),u.__tlds_replaced__||p.push("a[cdefgilmnoqrstuwxz]|b[abdefghijmnorstvwyz]|c[acdfghiklmnoruvwxyz]|d[ejkmoz]|e[cegrstu]|f[ijkmor]|g[abdefghilmnpqrstuwy]|h[kmnrtu]|i[delmnoqrst]|j[emop]|k[eghimnprwyz]|l[abcikrstuvy]|m[acdeghklmnopqrstuvwxyz]|n[acefgilopruz]|om|p[aefghklmnrstwy]|qa|r[eosuw]|s[abcdeghijklmnortuvxyz]|t[cdfghjklmnortvwz]|u[agksyz]|v[aceginu]|w[fs]|y[et]|z[amw]"),p.push(h.src_xn),h.src_tlds=p.join("|"),h.email_fuzzy=RegExp(m(h.tpl_email_fuzzy),"i"),h.link_fuzzy=RegExp(m(h.tpl_link_fuzzy),"i"),h.link_no_ip_fuzzy=RegExp(m(h.tpl_link_no_ip_fuzzy),"i"),h.host_fuzzy_test=RegExp(m(h.tpl_host_fuzzy_test),"i");var C=[];function E(y,_){throw new Error('(LinkifyIt) Invalid schema "'+y+'": '+_)}u.__compiled__={},Object.keys(u.__schemas__).forEach(function(y){var _=u.__schemas__[y];if(_!==null){var P={validate:null,link:null};if(u.__compiled__[y]=P,r(_)==="[object Object]")return function(S){return r(S)==="[object RegExp]"}(_.validate)?P.validate=function(S){return function(M,j){var F=M.slice(j);return S.test(F)?F.match(S)[0].length:0}}(_.validate):i(_.validate)?P.validate=_.validate:E(y,_),void(i(_.normalize)?P.normalize=_.normalize:_.normalize?E(y,_):P.normalize=function(S,M){M.normalize(S)});(function(S){return r(S)==="[object String]"})(_)?C.push(y):E(y,_)}}),C.forEach(function(y){u.__compiled__[u.__schemas__[y]]&&(u.__compiled__[y].validate=u.__compiled__[u.__schemas__[y]].validate,u.__compiled__[y].normalize=u.__compiled__[u.__schemas__[y]].normalize)}),u.__compiled__[""]={validate:null,normalize:function(y,_){_.normalize(y)}};var b=Object.keys(u.__compiled__).filter(function(y){return y.length>0&&u.__compiled__[y]}).map(t).join("|");u.re.schema_test=RegExp("(^|(?!_)(?:[><\uFF5C]|"+h.src_ZPCc+"))("+b+")","i"),u.re.schema_search=RegExp("(^|(?!_)(?:[><\uFF5C]|"+h.src_ZPCc+"))("+b+")","ig"),u.re.pretest=RegExp("("+u.re.schema_test.source+")|("+u.re.host_fuzzy_test.source+")|@","i"),function(y){y.__index__=-1,y.__text_cache__=""}(u)}function c(u,h){var p=u.__index__,m=u.__last_index__,C=u.__text_cache__.slice(p,m);this.schema=u.__schema__.toLowerCase(),this.index=p+h,this.lastIndex=m+h,this.raw=C,this.text=C,this.url=C}function f(u,h){var p=new c(u,h);return u.__compiled__[p.schema].normalize(p,u),p}function d(u,h){if(!(this instanceof d))return new d(u,h);var p;h||(p=u,Object.keys(p||{}).reduce(function(m,C){return m||o.hasOwnProperty(C)},!1)&&(h=u,u={})),this.__opts__=n({},o,h),this.__index__=-1,this.__last_index__=-1,this.__schema__="",this.__text_cache__="",this.__schemas__=n({},e,u),this.__compiled__={},this.__tlds__=a,this.__tlds_replaced__=!1,this.re={},s(this)}d.prototype.add=function(u,h){return this.__schemas__[u]=h,s(this),this},d.prototype.set=function(u){return this.__opts__=n(this.__opts__,u),this},d.prototype.test=function(u){if(this.__text_cache__=u,this.__index__=-1,!u.length)return!1;var h,p,m,C,E,b,y,_;if(this.re.schema_test.test(u)){for((y=this.re.schema_search).lastIndex=0;(h=y.exec(u))!==null;)if(C=this.testSchemaAt(u,h[2],y.lastIndex)){this.__schema__=h[2],this.__index__=h.index+h[1].length,this.__last_index__=h.index+h[0].length+C;break}}return this.__opts__.fuzzyLink&&this.__compiled__["http:"]&&(_=u.search(this.re.host_fuzzy_test))>=0&&(this.__index__<0||_=0&&(m=u.match(this.re.email_fuzzy))!==null&&(E=m.index+m[1].length,b=m.index+m[0].length,(this.__index__<0||Ethis.__last_index__)&&(this.__schema__="mailto:",this.__index__=E,this.__last_index__=b)),this.__index__>=0},d.prototype.pretest=function(u){return this.re.pretest.test(u)},d.prototype.testSchemaAt=function(u,h,p){return this.__compiled__[h.toLowerCase()]?this.__compiled__[h.toLowerCase()].validate(u,p,this):0},d.prototype.match=function(u){var h=0,p=[];this.__index__>=0&&this.__text_cache__===u&&(p.push(f(this,h)),h=this.__last_index__);for(var m=h?u.slice(h):u;this.test(m);)p.push(f(this,h)),m=m.slice(this.__last_index__),h+=this.__last_index__;return p.length?p:null},d.prototype.tlds=function(u,h){return u=Array.isArray(u)?u:[u],h?(this.__tlds__=this.__tlds__.concat(u).sort().filter(function(p,m,C){return p!==C[m-1]}).reverse(),s(this),this):(this.__tlds__=u.slice(),this.__tlds_replaced__=!0,s(this),this)},d.prototype.normalize=function(u){u.schema||(u.url="http://"+u.url),u.schema!=="mailto:"||/^mailto:/i.test(u.url)||(u.url="mailto:"+u.url)},d.prototype.onCompile=function(){},L.exports=d},function(L,v,l){L.exports=function(n){var r={};return r.src_Any=l(9).source,r.src_Cc=l(10).source,r.src_Z=l(11).source,r.src_P=l(3).source,r.src_ZPCc=[r.src_Z,r.src_P,r.src_Cc].join("|"),r.src_ZCc=[r.src_Z,r.src_Cc].join("|"),r.src_pseudo_letter="(?:(?![><\uFF5C]|"+r.src_ZPCc+")"+r.src_Any+")",r.src_ip4="(?:(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)",r.src_auth="(?:(?:(?!"+r.src_ZCc+"|[@/\\[\\]()]).)+@)?",r.src_port="(?::(?:6(?:[0-4]\\d{3}|5(?:[0-4]\\d{2}|5(?:[0-2]\\d|3[0-5])))|[1-5]?\\d{1,4}))?",r.src_host_terminator="(?=$|[><\uFF5C]|"+r.src_ZPCc+")(?!-|_|:\\d|\\.-|\\.(?!$|"+r.src_ZPCc+"))",r.src_path="(?:[/?#](?:(?!"+r.src_ZCc+`|[><\uFF5C]|[()[\\]{}.,"'?!\\-]).|\\[(?:(?!`+r.src_ZCc+"|\\]).)*\\]|\\((?:(?!"+r.src_ZCc+"|[)]).)*\\)|\\{(?:(?!"+r.src_ZCc+'|[}]).)*\\}|\\"(?:(?!'+r.src_ZCc+`|["]).)+\\"|\\'(?:(?!`+r.src_ZCc+"|[']).)+\\'|\\'(?="+r.src_pseudo_letter+"|[-]).|\\.{2,}[a-zA-Z0-9%/&]|\\.(?!"+r.src_ZCc+"|[.]).|"+(n&&n["---"]?"\\-(?!--(?:[^-]|$))(?:-*)|":"\\-+|")+"\\,(?!"+r.src_ZCc+").|\\!+(?!"+r.src_ZCc+"|[!]).|\\?(?!"+r.src_ZCc+"|[?]).)+|\\/)?",r.src_email_name='[\\-;:&=\\+\\$,\\.a-zA-Z0-9_][\\-;:&=\\+\\$,\\"\\.a-zA-Z0-9_]*',r.src_xn="xn--[a-z0-9\\-]{1,59}",r.src_domain_root="(?:"+r.src_xn+"|"+r.src_pseudo_letter+"{1,63})",r.src_domain="(?:"+r.src_xn+"|(?:"+r.src_pseudo_letter+")|(?:"+r.src_pseudo_letter+"(?:-|"+r.src_pseudo_letter+"){0,61}"+r.src_pseudo_letter+"))",r.src_host="(?:(?:(?:(?:"+r.src_domain+")\\.)*"+r.src_domain+"))",r.tpl_host_fuzzy="(?:"+r.src_ip4+"|(?:(?:(?:"+r.src_domain+")\\.)+(?:%TLDS%)))",r.tpl_host_no_ip_fuzzy="(?:(?:(?:"+r.src_domain+")\\.)+(?:%TLDS%))",r.src_host_strict=r.src_host+r.src_host_terminator,r.tpl_host_fuzzy_strict=r.tpl_host_fuzzy+r.src_host_terminator,r.src_host_port_strict=r.src_host+r.src_port+r.src_host_terminator,r.tpl_host_port_fuzzy_strict=r.tpl_host_fuzzy+r.src_port+r.src_host_terminator,r.tpl_host_port_no_ip_fuzzy_strict=r.tpl_host_no_ip_fuzzy+r.src_port+r.src_host_terminator,r.tpl_host_fuzzy_test="localhost|www\\.|\\.\\d{1,3}\\.|(?:\\.(?:%TLDS%)(?:"+r.src_ZPCc+"|>|$))",r.tpl_email_fuzzy='(^|[><\uFF5C]|"|\\(|'+r.src_ZCc+")("+r.src_email_name+"@"+r.tpl_host_fuzzy_strict+")",r.tpl_link_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`|\uFF5C]|"+r.src_ZPCc+"))((?![$+<=>^`|\uFF5C])"+r.tpl_host_port_fuzzy_strict+r.src_path+")",r.tpl_link_no_ip_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`|\uFF5C]|"+r.src_ZPCc+"))((?![$+<=>^`|\uFF5C])"+r.tpl_host_port_no_ip_fuzzy_strict+r.src_path+")",r}},function(L,v,l){(function(n,r){var i;/*! https://mths.be/punycode v1.4.1 by @mathias */(function(t){v&&v.nodeType,n&&n.nodeType;var o=typeof r=="object"&&r;o.global!==o&&o.window!==o&&o.self;var e,a=2147483647,s=/^xn--/,c=/[^\x20-\x7E]/,f=/[\x2E\u3002\uFF0E\uFF61]/g,d={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},u=Math.floor,h=String.fromCharCode;function p(M){throw new RangeError(d[M])}function m(M,j){for(var F=M.length,z=[];F--;)z[F]=j(M[F]);return z}function C(M,j){var F=M.split("@"),z="";return F.length>1&&(z=F[0]+"@",M=F[1]),z+m((M=M.replace(f,".")).split("."),j).join(".")}function E(M){for(var j,F,z=[],D=0,w=M.length;D=55296&&j<=56319&&D65535&&(F+=h((j-=65536)>>>10&1023|55296),j=56320|1023&j),F+=h(j)}).join("")}function y(M,j){return M+22+75*(M<26)-((j!=0)<<5)}function _(M,j,F){var z=0;for(M=F?u(M/700):M>>1,M+=u(M/j);M>455;z+=36)M=u(M/35);return u(z+36*M/(M+38))}function P(M){var j,F,z,D,w,H,$,q,I,R,B,k=[],x=M.length,O=0,N=128,W=72;for((F=M.lastIndexOf("-"))<0&&(F=0),z=0;z=128&&p("not-basic"),k.push(M.charCodeAt(z));for(D=F>0?F+1:0;D=x&&p("invalid-input"),((q=(B=M.charCodeAt(D++))-48<10?B-22:B-65<26?B-65:B-97<26?B-97:36)>=36||q>u((a-O)/H))&&p("overflow"),O+=q*H,!(q<(I=$<=W?1:$>=W+26?26:$-W));$+=36)H>u(a/(R=36-I))&&p("overflow"),H*=R;W=_(O-w,j=k.length+1,w==0),u(O/j)>a-N&&p("overflow"),N+=u(O/j),O%=j,k.splice(O++,0,N)}return b(k)}function S(M){var j,F,z,D,w,H,$,q,I,R,B,k,x,O,N,W=[];for(k=(M=E(M)).length,j=128,F=0,w=72,H=0;H=j&&B<$&&($=B);for($-j>u((a-F)/(x=z+1))&&p("overflow"),F+=($-j)*x,j=$,H=0;Ha&&p("overflow"),B==j){for(q=F,I=36;!(q<(R=I<=w?1:I>=w+26?26:I-w));I+=36)N=q-R,O=36-R,W.push(h(y(R+N%O,0))),q=u(N/O);W.push(h(y(q,0))),w=_(F,x,z==D),F=0,++z}++F,++j}return W.join("")}e={version:"1.4.1",ucs2:{decode:E,encode:b},decode:P,encode:S,toASCII:function(M){return C(M,function(j){return c.test(j)?"xn--"+S(j):j})},toUnicode:function(M){return C(M,function(j){return s.test(j)?P(j.slice(4).toLowerCase()):j})}},(i=function(){return e}.call(v,l,v,n))===void 0||(n.exports=i)})()}).call(this,l(71)(L),l(72))},function(L,v){L.exports=function(l){return l.webpackPolyfill||(l.deprecate=function(){},l.paths=[],l.children||(l.children=[]),Object.defineProperty(l,"loaded",{enumerable:!0,get:function(){return l.l}}),Object.defineProperty(l,"id",{enumerable:!0,get:function(){return l.i}}),l.webpackPolyfill=1),l}},function(L,v){var l;l=function(){return this}();try{l=l||new Function("return this")()}catch{typeof window=="object"&&(l=window)}L.exports=l},function(L,v,l){L.exports={options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:"language-",linkify:!1,typographer:!1,quotes:"\u201C\u201D\u2018\u2019",highlight:null,maxNesting:100},components:{core:{},block:{},inline:{}}}},function(L,v,l){L.exports={options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:"language-",linkify:!1,typographer:!1,quotes:"\u201C\u201D\u2018\u2019",highlight:null,maxNesting:20},components:{core:{rules:["normalize","block","inline"]},block:{rules:["paragraph"]},inline:{rules:["text"],rules2:["balance_pairs","text_collapse"]}}}},function(L,v,l){L.exports={options:{html:!0,xhtmlOut:!0,breaks:!1,langPrefix:"language-",linkify:!1,typographer:!1,quotes:"\u201C\u201D\u2018\u2019",highlight:null,maxNesting:20},components:{core:{rules:["normalize","block","inline"]},block:{rules:["blockquote","code","fence","heading","hr","html_block","lheading","list","reference","paragraph"]},inline:{rules:["autolink","backticks","emphasis","entity","escape","html_inline","image","link","newline","text"],rules2:["balance_pairs","emphasis","text_collapse"]}}}},,function(L,v,l){l.r(v),l.d(v,"default",function(){return i});var n=l(17),r=l(2);function i(t){var o=t===void 0?{}:t,e=o.Prism,a=o.baseConfig,s=o.codeBlockClass,c=o.codeHighlightExtensionMap,f=c===void 0?{}:c,d=Object(n.default)(a);return d.extend(function(u){u.set({highlight:Object(r.a)({codeHighlightExtensionMap:f,hasLang:function(h){return e.languages[h]},codeBlockClass:s,highlight:function(h,p){return e.highlight(h,e.languages[p],p)}})})}),{previewClass:"markdown-body",extend:function(u){d.extend(function(){for(var h=arguments.length,p=new Array(h),m=0;m=d)&&!((S=c.bMarks[p]+c.tShift[p])<(M=c.eMarks[p])&&c.sCount[p]=4)){for(h=S+1;h<=M&&t[(h-S)%e]===c.src[h];h++);if(!(Math.floor((h-S)/e)'+(P?'

    '+P+"

    ":"")+` +`},_=function(){return` +`}),d=function(P,S){var M=P[S],j=M.info.trim().slice(u.length).trim();return!j&&C&&(j=typeof C=="function"?C():C),M.nesting===1?y(j):_(j)}),a.use(i.a,u,{render:d,validate:c,marker:f})}},e=function(a){a.extendMarkdown(function(s){var c=function(){var f=a.lang.config;return f.langConfig[f.lang]};o(s,{type:"tip",defaultTitle:function(){return c().tip.tip.defaultTitle},blockClass:"v-md-plugin-tip"}),o(s,{type:"warning",defaultTitle:function(){return c().tip.warning.defaultTitle},blockClass:"v-md-plugin-tip"}),o(s,{type:"danger",defaultTitle:function(){return c().tip.danger.defaultTitle},blockClass:"v-md-plugin-tip"}),o(s,{type:"details",defaultTitle:function(){return c().tip.details.defaultTitle},before:function(f){return'
    '+(f?""+f+"":"")+` +`},after:function(){return`
    +`}})}),a.lang.add({"zh-CN":{tip:{tip:{defaultTitle:"\u63D0\u793A"},warning:{defaultTitle:"\u6CE8\u610F"},danger:{defaultTitle:"\u8B66\u544A"},details:{defaultTitle:"\u8BE6\u7EC6\u4FE1\u606F"}}},"en-US":{tip:{tip:{defaultTitle:"TIP"},warning:{defaultTitle:"WARNING"},danger:{defaultTitle:"DANGER"},details:{defaultTitle:"DETAILS"}}}})};l(80),l(84),l(85),v.default={install:function(a,s){var c,f,d,u,h,p,m,C,E=(f=(c={}).name,d=f===void 0?"tip":f,u=c.icon,h=u===void 0?"v-md-icon-tip":u,p=c.text,m=function(b,y){y===void 0&&(y="tip"),b.insert(function(_){var P=_||b.langConfig.tip[y].placeholder;return{text:"::: "+y+` + `+P+` +:::`,selected:P}})},C={title:function(b){return b.langConfig.tip.toolbar},icon:h,text:p,menus:[{name:"tip",text:function(b){return b.langConfig.tip.tip.toolbar},action:function(b){b.execCommand(d)}},{name:"warning",text:function(b){return b.langConfig.tip.warning.toolbar},action:function(b){b.execCommand(d,"warning")}},{name:"danger",text:function(b){return b.langConfig.tip.danger.toolbar},action:function(b){b.execCommand(d,"danger")}},{name:"details",text:function(b){return b.langConfig.tip.details.toolbar},action:function(b){b.execCommand(d,"details")}}]},{install:function(b){b.name==="v-md-editor"&&(b.command(d,m),b.toolbar(d,C),b.lang.add({"zh-CN":{tip:{toolbar:"\u63D2\u5165\u63D0\u793A",tip:{toolbar:"\u63D0\u793A",placeholder:"\u5728\u6B64\u8F93\u5165\u5185\u5BB9"},warning:{toolbar:"\u6CE8\u610F",placeholder:"\u5728\u6B64\u8F93\u5165\u5185\u5BB9"},danger:{toolbar:"\u8B66\u544A",placeholder:"\u5728\u6B64\u8F93\u5165\u5185\u5BB9"},details:{toolbar:"\u8BE6\u7EC6\u4FE1\u606F",placeholder:"\u5185\u5BB9"}}},"en-US":{tip:{toolbar:"Insert tip",tip:{toolbar:"Tip",placeholder:"Insert content"},warning:{toolbar:"Warning",placeholder:"Insert content"},danger:{toolbar:"Danger",placeholder:"Insert content"},details:{toolbar:"Details",placeholder:"Content"}}}})),b.vMdParser.use(e)}});a.vMdParser.use(n.default,s),a.use(E)}}}]).default})})(Ut);var Oe=Bt(Ut.exports);export{De as V,Oe as v}; diff --git a/public/exadmin/assets/@tinymce.24a850ec.js b/public/exadmin/assets/@tinymce.24a850ec.js new file mode 100644 index 0000000..c230843 --- /dev/null +++ b/public/exadmin/assets/@tinymce.24a850ec.js @@ -0,0 +1 @@ +import"./vue.db505ee4.js";import{w as b,d as L,t as V,r as j,o as U,a as _,b as R,e as x,h as E,n as p}from"./@vue.cb43a243.js";var K=["onActivate","onAddUndo","onBeforeAddUndo","onBeforeExecCommand","onBeforeGetContent","onBeforeRenderUI","onBeforeSetContent","onBeforePaste","onBlur","onChange","onClearUndos","onClick","onContextMenu","onCopy","onCut","onDblclick","onDeactivate","onDirty","onDrag","onDragDrop","onDragEnd","onDragGesture","onDragOver","onDrop","onExecCommand","onFocus","onFocusIn","onFocusOut","onGetContent","onHide","onInit","onKeyDown","onKeyPress","onKeyUp","onLoadContent","onMouseDown","onMouseEnter","onMouseLeave","onMouseMove","onMouseOut","onMouseOver","onMouseUp","onNodeChange","onObjectResizeStart","onObjectResized","onObjectSelected","onPaste","onPostProcess","onPostRender","onPreProcess","onProgressState","onRedo","onRemove","onReset","onSaveContent","onSelectionChange","onSetAttrib","onSetContent","onShow","onSubmit","onUndo","onVisualAid"],N=function(n){return K.map(function(t){return t.toLowerCase()}).indexOf(n.toLowerCase())!==-1},T=function(n,t,e){Object.keys(t).filter(N).forEach(function(o){var r=t[o];typeof r=="function"&&(o==="onInit"?r(n,e):e.on(o.substring(2),function(i){return r(i,e)}))})},z=function(n,t,e,o){var r=n.modelEvents?n.modelEvents:null,i=Array.isArray(r)?r.join(" "):r;b(o,function(d,l){e&&typeof d=="string"&&d!==l&&d!==e.getContent({format:n.outputFormat})&&e.setContent(d)}),e.on(i||"change input undo redo",function(){t.emit("update:modelValue",e.getContent({format:n.outputFormat}))})},F=function(n,t,e,o,r,i){o.setContent(i()),e.attrs["onUpdate:modelValue"]&&z(t,e,o,r),T(n,e.attrs,o)},w=0,M=function(n){var t=Date.now(),e=Math.floor(Math.random()*1e9);return w++,n+"_"+e+w+String(t)},G=function(n){return n!==null&&n.tagName.toLowerCase()==="textarea"},D=function(n){return typeof n=="undefined"||n===""?[]:Array.isArray(n)?n:n.split(" ")},H=function(n,t){return D(n).concat(D(t))},k=function(n){return n==null},A=function(){return{listeners:[],scriptId:M("tiny-script"),scriptLoaded:!1}},q=function(){var n=A(),t=function(r,i,d,l){var a=i.createElement("script");a.referrerPolicy="origin",a.type="application/javascript",a.id=r,a.src=d;var s=function(){a.removeEventListener("load",s),l()};a.addEventListener("load",s),i.head&&i.head.appendChild(a)},e=function(r,i,d){n.scriptLoaded?d():(n.listeners.push(d),r.getElementById(n.scriptId)||t(n.scriptId,r,i,function(){n.listeners.forEach(function(l){return l()}),n.scriptLoaded=!0}))},o=function(){n=A()};return{load:e,reinitialize:o}},W=q(),J=function(){return typeof window!="undefined"?window:global},f=function(){var n=J();return n&&n.tinymce?n.tinymce:null},Q={apiKey:String,cloudChannel:String,id:String,init:Object,initialValue:String,inline:Boolean,modelEvents:[String,Array],plugins:[String,Array],tagName:String,toolbar:[String,Array],modelValue:String,disabled:Boolean,tinymceScriptSrc:String,outputFormat:{type:String,validator:function(n){return n==="html"||n==="text"}}},v=globalThis&&globalThis.__assign||function(){return v=Object.assign||function(n){for(var t,e=1,o=arguments.length;e!!n[r.toLowerCase()]:r=>!!n[r]}const Of="Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt",Pf=ve(Of),Af="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly",Rf=ve(Af);function il(e){return!!e||e===""}function Kn(e){if(H(e)){const t={};for(let n=0;n{if(n){const s=n.split(Mf);s.length>1&&(t[s[0].trim()]=s[1].trim())}}),t}function jn(e){let t="";if(q(e))t=e;else if(H(e))for(let n=0;nht(n,t))}const Uf=e=>q(e)?e:e==null?"":H(e)||ce(e)&&(e.toString===cl||!x(e.toString))?JSON.stringify(e,ll,2):String(e),ll=(e,t)=>t&&t.__v_isRef?ll(e,t.value):Qt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[s,r])=>(n[`${s} =>`]=r,n),{})}:$t(t)?{[`Set(${t.size})`]:[...t.values()]}:ce(t)&&!H(t)&&!fl(t)?String(t):t,X={},Zt=[],Ae=()=>{},fs=()=>!1,Kf=/^on[^a-z]/,Bt=e=>Kf.test(e),Yr=e=>e.startsWith("onUpdate:"),G=Object.assign,Zr=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},jf=Object.prototype.hasOwnProperty,Q=(e,t)=>jf.call(e,t),H=Array.isArray,Qt=e=>Ds(e)==="[object Map]",$t=e=>Ds(e)==="[object Set]",io=e=>e instanceof Date,x=e=>typeof e=="function",q=e=>typeof e=="string",an=e=>typeof e=="symbol",ce=e=>e!==null&&typeof e=="object",Qr=e=>ce(e)&&x(e.then)&&x(e.catch),cl=Object.prototype.toString,Ds=e=>cl.call(e),xf=e=>Ds(e).slice(8,-1),fl=e=>Ds(e)==="[object Object]",Xr=e=>q(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Rt=ve(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Wf=ve("bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo"),Bs=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},qf=/-(\w)/g,be=Bs(e=>e.replace(qf,(t,n)=>n?n.toUpperCase():"")),zf=/\B([A-Z])/g,Ue=Bs(e=>e.replace(zf,"-$1").toLowerCase()),Ht=Bs(e=>e.charAt(0).toUpperCase()+e.slice(1)),Xt=Bs(e=>e?`on${Ht(e)}`:""),Rn=(e,t)=>!Object.is(e,t),Gt=(e,t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:n})},gt=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let oo;const Jf=()=>oo||(oo=typeof globalThis!="undefined"?globalThis:typeof self!="undefined"?self:typeof window!="undefined"?window:typeof global!="undefined"?global:{});let Le;class Gr{constructor(t=!1){this.active=!0,this.effects=[],this.cleanups=[],!t&&Le&&(this.parent=Le,this.index=(Le.scopes||(Le.scopes=[])).push(this)-1)}run(t){if(this.active)try{return Le=this,t()}finally{Le=this.parent}}on(){Le=this}off(){Le=this.parent}stop(t){if(this.active){let n,s;for(n=0,s=this.effects.length;n{const t=new Set(e);return t.w=0,t.n=0,t},ul=e=>(e.w&mt)>0,pl=e=>(e.n&mt)>0,Xf=({deps:e})=>{if(e.length)for(let t=0;t{const{deps:t}=e;if(t.length){let n=0;for(let s=0;s{(f==="length"||f>=s)&&l.push(c)});else switch(n!==void 0&&l.push(o.get(n)),t){case"add":H(e)?Xr(n)&&l.push(o.get("length")):(l.push(o.get(It)),Qt(e)&&l.push(o.get(Cr)));break;case"delete":H(e)||(l.push(o.get(It)),Qt(e)&&l.push(o.get(Cr)));break;case"set":Qt(e)&&l.push(o.get(It));break}if(l.length===1)l[0]&&Sr(l[0]);else{const c=[];for(const f of l)f&&c.push(...f);Sr(ei(c))}}function Sr(e,t){for(const n of H(e)?e:[...e])(n!==We||n.allowRecurse)&&(n.scheduler?n.scheduler():n.run())}const na=ve("__proto__,__v_isRef,__isVue"),gl=new Set(Object.getOwnPropertyNames(Symbol).map(e=>Symbol[e]).filter(an)),sa=$s(),ra=$s(!1,!0),ia=$s(!0),oa=$s(!0,!0),co=la();function la(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...n){const s=Y(this);for(let i=0,o=this.length;i{e[t]=function(...n){Vt();const s=Y(this)[t].apply(this,n);return Ut(),s}}),e}function $s(e=!1,t=!1){return function(s,r,i){if(r==="__v_isReactive")return!e;if(r==="__v_isReadonly")return e;if(r==="__v_isShallow")return t;if(r==="__v_raw"&&i===(e?t?Sl:Cl:t?El:bl).get(s))return s;const o=H(s);if(!e&&o&&Q(co,r))return Reflect.get(co,r,i);const l=Reflect.get(s,r,i);return(an(r)?gl.has(r):na(r))||(e||Me(s,"get",r),t)?l:pe(l)?!o||!Xr(r)?l.value:l:ce(l)?e?ni(l):Us(l):l}}const ca=ml(),fa=ml(!0);function ml(e=!1){return function(n,s,r,i){let o=n[s];if(tn(o)&&pe(o)&&!pe(r))return!1;if(!e&&!tn(r)&&(si(r)||(r=Y(r),o=Y(o)),!H(n)&&pe(o)&&!pe(r)))return o.value=r,!0;const l=H(n)&&Xr(s)?Number(s)e,Hs=e=>Reflect.getPrototypeOf(e);function Gn(e,t,n=!1,s=!1){e=e.__v_raw;const r=Y(e),i=Y(t);t!==i&&!n&&Me(r,"get",t),!n&&Me(r,"get",i);const{has:o}=Hs(r),l=s?ti:n?oi:In;if(o.call(r,t))return l(e.get(t));if(o.call(r,i))return l(e.get(i));e!==r&&e.get(t)}function es(e,t=!1){const n=this.__v_raw,s=Y(n),r=Y(e);return e!==r&&!t&&Me(s,"has",e),!t&&Me(s,"has",r),e===r?n.has(e):n.has(e)||n.has(r)}function ts(e,t=!1){return e=e.__v_raw,!t&&Me(Y(e),"iterate",It),Reflect.get(e,"size",e)}function fo(e){e=Y(e);const t=Y(this);return Hs(t).has.call(t,e)||(t.add(e),nt(t,"add",e,e)),this}function ao(e,t){t=Y(t);const n=Y(this),{has:s,get:r}=Hs(n);let i=s.call(n,e);i||(e=Y(e),i=s.call(n,e));const o=r.call(n,e);return n.set(e,t),i?Rn(t,o)&&nt(n,"set",e,t):nt(n,"add",e,t),this}function uo(e){const t=Y(this),{has:n,get:s}=Hs(t);let r=n.call(t,e);r||(e=Y(e),r=n.call(t,e)),s&&s.call(t,e);const i=t.delete(e);return r&&nt(t,"delete",e,void 0),i}function po(){const e=Y(this),t=e.size!==0,n=e.clear();return t&&nt(e,"clear",void 0,void 0),n}function ns(e,t){return function(s,r){const i=this,o=i.__v_raw,l=Y(o),c=t?ti:e?oi:In;return!e&&Me(l,"iterate",It),o.forEach((f,a)=>s.call(r,c(f),c(a),i))}}function ss(e,t,n){return function(...s){const r=this.__v_raw,i=Y(r),o=Qt(i),l=e==="entries"||e===Symbol.iterator&&o,c=e==="keys"&&o,f=r[e](...s),a=n?ti:t?oi:In;return!t&&Me(i,"iterate",c?Cr:It),{next(){const{value:u,done:d}=f.next();return d?{value:u,done:d}:{value:l?[a(u[0]),a(u[1])]:a(u),done:d}},[Symbol.iterator](){return this}}}}function it(e){return function(...t){return e==="delete"?!1:this}}function ga(){const e={get(i){return Gn(this,i)},get size(){return ts(this)},has:es,add:fo,set:ao,delete:uo,clear:po,forEach:ns(!1,!1)},t={get(i){return Gn(this,i,!1,!0)},get size(){return ts(this)},has:es,add:fo,set:ao,delete:uo,clear:po,forEach:ns(!1,!0)},n={get(i){return Gn(this,i,!0)},get size(){return ts(this,!0)},has(i){return es.call(this,i,!0)},add:it("add"),set:it("set"),delete:it("delete"),clear:it("clear"),forEach:ns(!0,!1)},s={get(i){return Gn(this,i,!0,!0)},get size(){return ts(this,!0)},has(i){return es.call(this,i,!0)},add:it("add"),set:it("set"),delete:it("delete"),clear:it("clear"),forEach:ns(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(i=>{e[i]=ss(i,!1,!1),n[i]=ss(i,!0,!1),t[i]=ss(i,!1,!0),s[i]=ss(i,!0,!0)}),[e,n,t,s]}const[ma,ya,_a,ba]=ga();function Vs(e,t){const n=t?e?ba:_a:e?ya:ma;return(s,r,i)=>r==="__v_isReactive"?!e:r==="__v_isReadonly"?e:r==="__v_raw"?s:Reflect.get(Q(n,r)&&r in s?n:s,r,i)}const Ea={get:Vs(!1,!1)},Ca={get:Vs(!1,!0)},Sa={get:Vs(!0,!1)},Ta={get:Vs(!0,!0)},bl=new WeakMap,El=new WeakMap,Cl=new WeakMap,Sl=new WeakMap;function va(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function wa(e){return e.__v_skip||!Object.isExtensible(e)?0:va(xf(e))}function Us(e){return tn(e)?e:Ks(e,!1,yl,Ea,bl)}function Tl(e){return Ks(e,!1,da,Ca,El)}function ni(e){return Ks(e,!0,_l,Sa,Cl)}function Na(e){return Ks(e,!0,ha,Ta,Sl)}function Ks(e,t,n,s,r){if(!ce(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const i=r.get(e);if(i)return i;const o=wa(e);if(o===0)return e;const l=new Proxy(e,o===2?s:n);return r.set(e,l),l}function Mt(e){return tn(e)?Mt(e.__v_raw):!!(e&&e.__v_isReactive)}function tn(e){return!!(e&&e.__v_isReadonly)}function si(e){return!!(e&&e.__v_isShallow)}function ri(e){return Mt(e)||tn(e)}function Y(e){const t=e&&e.__v_raw;return t?Y(t):e}function ii(e){return gs(e,"__v_skip",!0),e}const In=e=>ce(e)?Us(e):e,oi=e=>ce(e)?ni(e):e;function li(e){ut&&We&&(e=Y(e),hl(e.dep||(e.dep=ei())))}function js(e,t){e=Y(e),e.dep&&Sr(e.dep)}function pe(e){return!!(e&&e.__v_isRef===!0)}function as(e){return vl(e,!1)}function Oa(e){return vl(e,!0)}function vl(e,t){return pe(e)?e:new Pa(e,t)}class Pa{constructor(t,n){this.__v_isShallow=n,this.dep=void 0,this.__v_isRef=!0,this._rawValue=n?t:Y(t),this._value=n?t:In(t)}get value(){return li(this),this._value}set value(t){t=this.__v_isShallow?t:Y(t),Rn(t,this._rawValue)&&(this._rawValue=t,this._value=this.__v_isShallow?t:In(t),js(this))}}function Aa(e){js(e)}function wl(e){return pe(e)?e.value:e}const Ra={get:(e,t,n)=>wl(Reflect.get(e,t,n)),set:(e,t,n,s)=>{const r=e[t];return pe(r)&&!pe(n)?(r.value=n,!0):Reflect.set(e,t,n,s)}};function ci(e){return Mt(e)?e:new Proxy(e,Ra)}class Ia{constructor(t){this.dep=void 0,this.__v_isRef=!0;const{get:n,set:s}=t(()=>li(this),()=>js(this));this._get=n,this._set=s}get value(){return this._get()}set value(t){this._set(t)}}function Ma(e){return new Ia(e)}function ka(e){const t=H(e)?new Array(e.length):{};for(const n in e)t[n]=Nl(e,n);return t}class Fa{constructor(t,n,s){this._object=t,this._key=n,this._defaultValue=s,this.__v_isRef=!0}get value(){const t=this._object[this._key];return t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}}function Nl(e,t,n){const s=e[t];return pe(s)?s:new Fa(e,t,n)}class La{constructor(t,n,s,r){this._setter=n,this.dep=void 0,this.__v_isRef=!0,this._dirty=!0,this.effect=new xn(t,()=>{this._dirty||(this._dirty=!0,js(this))}),this.effect.computed=this,this.effect.active=this._cacheable=!r,this.__v_isReadonly=s}get value(){const t=Y(this);return li(t),(t._dirty||!t._cacheable)&&(t._dirty=!1,t._value=t.effect.run()),t._value}set value(t){this._setter(t)}}function Da(e,t,n=!1){let s,r;const i=x(e);return i?(s=e,r=Ae):(s=e.get,r=e.set),new La(s,r,i||!r,n)}Promise.resolve();const En=[];function Ol(e,...t){Vt();const n=En.length?En[En.length-1].component:null,s=n&&n.appContext.config.warnHandler,r=Ba();if(s)qe(s,n,11,[e+t.join(""),n&&n.proxy,r.map(({vnode:i})=>`at <${_c(n,i.type)}>`).join(` +`),r]);else{const i=[`[Vue warn]: ${e}`,...t];r.length&&i.push(` +`,...$a(r)),console.warn(...i)}Ut()}function Ba(){let e=En[En.length-1];if(!e)return[];const t=[];for(;e;){const n=t[0];n&&n.vnode===e?n.recurseCount++:t.push({vnode:e,recurseCount:0});const s=e.component&&e.component.parent;e=s&&s.vnode}return t}function $a(e){const t=[];return e.forEach((n,s)=>{t.push(...s===0?[]:[` +`],...Ha(n))}),t}function Ha({vnode:e,recurseCount:t}){const n=t>0?`... (${t} recursive calls)`:"",s=e.component?e.component.parent==null:!1,r=` at <${_c(e.component,e.type,s)}`,i=">"+n;return e.props?[r,...Va(e.props),i]:[r+i]}function Va(e){const t=[],n=Object.keys(e);return n.slice(0,3).forEach(s=>{t.push(...Pl(s,e[s]))}),n.length>3&&t.push(" ..."),t}function Pl(e,t,n){return q(t)?(t=JSON.stringify(t),n?t:[`${e}=${t}`]):typeof t=="number"||typeof t=="boolean"||t==null?n?t:[`${e}=${t}`]:pe(t)?(t=Pl(e,Y(t.value),!0),n?t:[`${e}=Ref<`,t,">"]):x(t)?[`${e}=fn${t.name?`<${t.name}>`:""}`]:(t=Y(t),n?t:[`${e}=`,t])}function qe(e,t,n,s){let r;try{r=s?e(...s):e()}catch(i){Kt(i,t,n)}return r}function Re(e,t,n,s){if(x(e)){const i=qe(e,t,n,s);return i&&Qr(i)&&i.catch(o=>{Kt(o,t,n)}),i}const r=[];for(let i=0;i>>1;Mn(Oe[s])Ge&&Oe.splice(t,1)}function Il(e,t,n,s){H(e)?n.push(...e):(!t||!t.includes(e,e.allowRecurse?s+1:s))&&n.push(e),Rl()}function xa(e){Il(e,yn,Cn,zt)}function pi(e){Il(e,ct,Sn,Jt)}function di(e,t=null){if(Cn.length){for(vr=t,yn=[...new Set(Cn)],Cn.length=0,zt=0;ztMn(n)-Mn(s)),Jt=0;Jte.id==null?1/0:e.id;function Ml(e){Tr=!1,ms=!0,di(e),Oe.sort((n,s)=>Mn(n)-Mn(s));const t=Ae;try{for(Ge=0;Geat.emit(r,...i)),_n=[]):typeof window!="undefined"&&window.HTMLElement&&!((s=(n=window.navigator)===null||n===void 0?void 0:n.userAgent)===null||s===void 0?void 0:s.includes("jsdom"))?((t.__VUE_DEVTOOLS_HOOK_REPLAY__=t.__VUE_DEVTOOLS_HOOK_REPLAY__||[]).push(i=>{hi(i,t)}),setTimeout(()=>{at||(t.__VUE_DEVTOOLS_HOOK_REPLAY__=null,wr=!0,_n=[])},3e3)):(wr=!0,_n=[])}function Wa(e,t){xs("app:init",e,t,{Fragment:ge,Text:Lt,Comment:Ee,Static:pt})}function qa(e){xs("app:unmount",e)}const Nr=gi("component:added"),kl=gi("component:updated"),za=gi("component:removed");function gi(e){return t=>{xs(e,t.appContext.app,t.uid,t.parent?t.parent.uid:void 0,t)}}function Ja(e,t,n){xs("component:emit",e.appContext.app,e,t,n)}function Ya(e,t,...n){const s=e.vnode.props||X;let r=n;const i=t.startsWith("update:"),o=i&&t.slice(7);if(o&&o in s){const a=`${o==="modelValue"?"model":o}Modifiers`,{number:u,trim:d}=s[a]||X;d?r=n.map(m=>m.trim()):u&&(r=n.map(gt))}Ja(e,t,r);let l,c=s[l=Xt(t)]||s[l=Xt(be(t))];!c&&i&&(c=s[l=Xt(Ue(t))]),c&&Re(c,e,6,r);const f=s[l+"Once"];if(f){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,Re(f,e,6,r)}}function Fl(e,t,n=!1){const s=t.emitsCache,r=s.get(e);if(r!==void 0)return r;const i=e.emits;let o={},l=!1;if(!x(e)){const c=f=>{const a=Fl(f,t,!0);a&&(l=!0,G(o,a))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!i&&!l?(s.set(e,null),null):(H(i)?i.forEach(c=>o[c]=null):G(o,i),s.set(e,o),o)}function mi(e,t){return!e||!Bt(t)?!1:(t=t.slice(2).replace(/Once$/,""),Q(e,t[0].toLowerCase()+t.slice(1))||Q(e,Ue(t))||Q(e,t))}let Pe=null,Ws=null;function kn(e){const t=Pe;return Pe=e,Ws=e&&e.type.__scopeId||null,t}function Za(e){Ws=e}function Qa(){Ws=null}const Xa=e=>yi;function yi(e,t=Pe,n){if(!t||e._n)return e;const s=(...r)=>{s._d&&Ir(-1);const i=kn(t),o=e(...r);return kn(i),s._d&&Ir(1),kl(t),o};return s._n=!0,s._c=!0,s._d=!0,s}function us(e){const{type:t,vnode:n,proxy:s,withProxy:r,props:i,propsOptions:[o],slots:l,attrs:c,emit:f,render:a,renderCache:u,data:d,setupState:m,ctx:b,inheritAttrs:S}=e;let g,_;const y=kn(e);try{if(n.shapeFlag&4){const w=r||s;g=Ne(a.call(w,w,u,i,m,d,b)),_=c}else{const w=t;g=Ne(w.length>1?w(i,{attrs:c,slots:l,emit:f}):w(i,null)),_=t.props?c:eu(c)}}catch(w){Nn.length=0,Kt(w,e,1),g=ie(Ee)}let T=g;if(_&&S!==!1){const w=Object.keys(_),{shapeFlag:D}=T;w.length&&D&7&&(o&&w.some(Yr)&&(_=tu(_,o)),T=_t(T,_))}return n.dirs&&(T.dirs=T.dirs?T.dirs.concat(n.dirs):n.dirs),n.transition&&(T.transition=n.transition),g=T,kn(y),g}function Ga(e){let t;for(let n=0;n{let t;for(const n in e)(n==="class"||n==="style"||Bt(n))&&((t||(t={}))[n]=e[n]);return t},tu=(e,t)=>{const n={};for(const s in e)(!Yr(s)||!(s.slice(9)in t))&&(n[s]=e[s]);return n};function nu(e,t,n){const{props:s,children:r,component:i}=e,{props:o,children:l,patchFlag:c}=t,f=i.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&c>=0){if(c&1024)return!0;if(c&16)return s?ho(s,o,f):!!o;if(c&8){const a=t.dynamicProps;for(let u=0;ue.__isSuspense,ru={name:"Suspense",__isSuspense:!0,process(e,t,n,s,r,i,o,l,c,f){e==null?ou(t,n,s,r,i,o,l,c,f):lu(e,t,n,s,r,o,l,c,f)},hydrate:cu,create:bi,normalize:fu},iu=ru;function Fn(e,t){const n=e.props&&e.props[t];x(n)&&n()}function ou(e,t,n,s,r,i,o,l,c){const{p:f,o:{createElement:a}}=c,u=a("div"),d=e.suspense=bi(e,r,s,t,u,n,i,o,l,c);f(null,d.pendingBranch=e.ssContent,u,null,s,d,i,o),d.deps>0?(Fn(e,"onPending"),Fn(e,"onFallback"),f(null,e.ssFallback,t,n,s,null,i,o),en(d,e.ssFallback)):d.resolve()}function lu(e,t,n,s,r,i,o,l,{p:c,um:f,o:{createElement:a}}){const u=t.suspense=e.suspense;u.vnode=t,t.el=e.el;const d=t.ssContent,m=t.ssFallback,{activeBranch:b,pendingBranch:S,isInFallback:g,isHydrating:_}=u;if(S)u.pendingBranch=d,xe(d,S)?(c(S,d,u.hiddenContainer,null,r,u,i,o,l),u.deps<=0?u.resolve():g&&(c(b,m,n,s,r,null,i,o,l),en(u,m))):(u.pendingId++,_?(u.isHydrating=!1,u.activeBranch=S):f(S,r,u),u.deps=0,u.effects.length=0,u.hiddenContainer=a("div"),g?(c(null,d,u.hiddenContainer,null,r,u,i,o,l),u.deps<=0?u.resolve():(c(b,m,n,s,r,null,i,o,l),en(u,m))):b&&xe(d,b)?(c(b,d,n,s,r,u,i,o,l),u.resolve(!0)):(c(null,d,u.hiddenContainer,null,r,u,i,o,l),u.deps<=0&&u.resolve()));else if(b&&xe(d,b))c(b,d,n,s,r,u,i,o,l),en(u,d);else if(Fn(t,"onPending"),u.pendingBranch=d,u.pendingId++,c(null,d,u.hiddenContainer,null,r,u,i,o,l),u.deps<=0)u.resolve();else{const{timeout:y,pendingId:T}=u;y>0?setTimeout(()=>{u.pendingId===T&&u.fallback(m)},y):y===0&&u.fallback(m)}}function bi(e,t,n,s,r,i,o,l,c,f,a=!1){const{p:u,m:d,um:m,n:b,o:{parentNode:S,remove:g}}=f,_=gt(e.props&&e.props.timeout),y={vnode:e,parent:t,parentComponent:n,isSVG:o,container:s,hiddenContainer:r,anchor:i,deps:0,pendingId:0,timeout:typeof _=="number"?_:-1,activeBranch:null,pendingBranch:null,isInFallback:!0,isHydrating:a,isUnmounted:!1,effects:[],resolve(T=!1){const{vnode:w,activeBranch:D,pendingBranch:M,pendingId:E,effects:v,parentComponent:O,container:L}=y;if(y.isHydrating)y.isHydrating=!1;else if(!T){const U=D&&M.transition&&M.transition.mode==="out-in";U&&(D.transition.afterLeave=()=>{E===y.pendingId&&d(M,L,J,0)});let{anchor:J}=y;D&&(J=b(D),m(D,O,y,!0)),U||d(M,L,J,0)}en(y,M),y.pendingBranch=null,y.isInFallback=!1;let $=y.parent,N=!1;for(;$;){if($.pendingBranch){$.effects.push(...v),N=!0;break}$=$.parent}N||pi(v),y.effects=[],Fn(w,"onResolve")},fallback(T){if(!y.pendingBranch)return;const{vnode:w,activeBranch:D,parentComponent:M,container:E,isSVG:v}=y;Fn(w,"onFallback");const O=b(D),L=()=>{!y.isInFallback||(u(null,T,E,O,M,null,v,l,c),en(y,T))},$=T.transition&&T.transition.mode==="out-in";$&&(D.transition.afterLeave=L),y.isInFallback=!0,m(D,M,null,!0),$||L()},move(T,w,D){y.activeBranch&&d(y.activeBranch,T,w,D),y.container=T},next(){return y.activeBranch&&b(y.activeBranch)},registerDep(T,w){const D=!!y.pendingBranch;D&&y.deps++;const M=T.vnode.el;T.asyncDep.catch(E=>{Kt(E,T,0)}).then(E=>{if(T.isUnmounted||y.isUnmounted||y.pendingId!==T.suspenseId)return;T.asyncResolved=!0;const{vnode:v}=T;Fr(T,E,!1),M&&(v.el=M);const O=!M&&T.subTree.el;w(T,v,S(M||T.subTree.el),M?null:b(T.subTree),y,o,c),O&&g(O),_i(T,v.el),D&&--y.deps===0&&y.resolve()})},unmount(T,w){y.isUnmounted=!0,y.activeBranch&&m(y.activeBranch,n,T,w),y.pendingBranch&&m(y.pendingBranch,n,T,w)}};return y}function cu(e,t,n,s,r,i,o,l,c){const f=t.suspense=bi(t,s,n,e.parentNode,document.createElement("div"),null,r,i,o,l,!0),a=c(e,f.pendingBranch=t.ssContent,n,f,i,o);return f.deps===0&&f.resolve(),a}function fu(e){const{shapeFlag:t,children:n}=e,s=t&32;e.ssContent=go(s?n.default:n),e.ssFallback=s?go(n.fallback):ie(Ee)}function go(e){let t;if(x(e)){const n=sn&&e._c;n&&(e._d=!1,Qs()),e=e(),n&&(e._d=!0,t=ze,lc())}return H(e)&&(e=Ga(e)),e=Ne(e),t&&!e.dynamicChildren&&(e.dynamicChildren=t.filter(n=>n!==e)),e}function Ll(e,t){t&&t.pendingBranch?H(e)?t.effects.push(...e):t.effects.push(e):pi(e)}function en(e,t){e.activeBranch=t;const{vnode:n,parentComponent:s}=e,r=n.el=t.el;s&&s.subTree===n&&(s.vnode.el=r,_i(s,r))}function Dl(e,t){if(de){let n=de.provides;const s=de.parent&&de.parent.provides;s===n&&(n=de.provides=Object.create(s)),n[e]=t}}function Tn(e,t,n=!1){const s=de||Pe;if(s){const r=s.parent==null?s.vnode.appContext&&s.vnode.appContext.provides:s.parent.provides;if(r&&e in r)return r[e];if(arguments.length>1)return n&&x(t)?t.call(s.proxy):t}}function au(e,t){return Wn(e,null,t)}function Bl(e,t){return Wn(e,null,{flush:"post"})}function uu(e,t){return Wn(e,null,{flush:"sync"})}const mo={};function vn(e,t,n){return Wn(e,t,n)}function Wn(e,t,{immediate:n,deep:s,flush:r,onTrack:i,onTrigger:o}=X){const l=de;let c,f=!1,a=!1;if(pe(e)?(c=()=>e.value,f=si(e)):Mt(e)?(c=()=>e,s=!0):H(e)?(a=!0,f=e.some(Mt),c=()=>e.map(_=>{if(pe(_))return _.value;if(Mt(_))return Pt(_);if(x(_))return qe(_,l,2)})):x(e)?t?c=()=>qe(e,l,2):c=()=>{if(!(l&&l.isUnmounted))return u&&u(),Re(e,l,3,[d])}:c=Ae,t&&s){const _=c;c=()=>Pt(_())}let u,d=_=>{u=g.onStop=()=>{qe(_,l,4)}};if(rn)return d=Ae,t?n&&Re(t,l,3,[c(),a?[]:void 0,d]):c(),Ae;let m=a?[]:mo;const b=()=>{if(!!g.active)if(t){const _=g.run();(s||f||(a?_.some((y,T)=>Rn(y,m[T])):Rn(_,m)))&&(u&&u(),Re(t,l,3,[_,m===mo?void 0:m,d]),m=_)}else g.run()};b.allowRecurse=!!t;let S;r==="sync"?S=b:r==="post"?S=()=>me(b,l&&l.suspense):S=()=>{!l||l.isMounted?xa(b):b()};const g=new xn(c,S);return t?n?b():m=g.run():r==="post"?me(g.run.bind(g),l&&l.suspense):g.run(),()=>{g.stop(),l&&l.scope&&Zr(l.scope.effects,g)}}function pu(e,t,n){const s=this.proxy,r=q(e)?e.includes(".")?$l(s,e):()=>s[e]:e.bind(s,s);let i;x(t)?i=t:(i=t.handler,n=t);const o=de;bt(this);const l=Wn(r,i.bind(s),n);return o?bt(o):dt(),l}function $l(e,t){const n=t.split(".");return()=>{let s=e;for(let r=0;r{Pt(n,t)});else if(fl(e))for(const n in e)Pt(e[n],t);return e}function Ei(){const e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return zn(()=>{e.isMounted=!0}),Ys(()=>{e.isUnmounting=!0}),e}const Fe=[Function,Array],du={name:"BaseTransition",props:{mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:Fe,onEnter:Fe,onAfterEnter:Fe,onEnterCancelled:Fe,onBeforeLeave:Fe,onLeave:Fe,onAfterLeave:Fe,onLeaveCancelled:Fe,onBeforeAppear:Fe,onAppear:Fe,onAfterAppear:Fe,onAppearCancelled:Fe},setup(e,{slots:t}){const n=St(),s=Ei();let r;return()=>{const i=t.default&&qs(t.default(),!0);if(!i||!i.length)return;const o=Y(e),{mode:l}=o,c=i[0];if(s.isLeaving)return cr(c);const f=yo(c);if(!f)return cr(c);const a=nn(f,o,s,n);Ft(f,a);const u=n.subTree,d=u&&yo(u);let m=!1;const{getTransitionKey:b}=f.type;if(b){const S=b();r===void 0?r=S:S!==r&&(r=S,m=!0)}if(d&&d.type!==Ee&&(!xe(f,d)||m)){const S=nn(d,o,s,n);if(Ft(d,S),l==="out-in")return s.isLeaving=!0,S.afterLeave=()=>{s.isLeaving=!1,n.update()},cr(c);l==="in-out"&&f.type!==Ee&&(S.delayLeave=(g,_,y)=>{const T=Hl(s,d);T[String(d.key)]=d,g._leaveCb=()=>{_(),g._leaveCb=void 0,delete a.delayedLeave},a.delayedLeave=y})}return c}}},Ci=du;function Hl(e,t){const{leavingVNodes:n}=e;let s=n.get(t.type);return s||(s=Object.create(null),n.set(t.type,s)),s}function nn(e,t,n,s){const{appear:r,mode:i,persisted:o=!1,onBeforeEnter:l,onEnter:c,onAfterEnter:f,onEnterCancelled:a,onBeforeLeave:u,onLeave:d,onAfterLeave:m,onLeaveCancelled:b,onBeforeAppear:S,onAppear:g,onAfterAppear:_,onAppearCancelled:y}=t,T=String(e.key),w=Hl(n,e),D=(E,v)=>{E&&Re(E,s,9,v)},M={mode:i,persisted:o,beforeEnter(E){let v=l;if(!n.isMounted)if(r)v=S||l;else return;E._leaveCb&&E._leaveCb(!0);const O=w[T];O&&xe(e,O)&&O.el._leaveCb&&O.el._leaveCb(),D(v,[E])},enter(E){let v=c,O=f,L=a;if(!n.isMounted)if(r)v=g||c,O=_||f,L=y||a;else return;let $=!1;const N=E._enterCb=U=>{$||($=!0,U?D(L,[E]):D(O,[E]),M.delayedLeave&&M.delayedLeave(),E._enterCb=void 0)};v?(v(E,N),v.length<=1&&N()):N()},leave(E,v){const O=String(e.key);if(E._enterCb&&E._enterCb(!0),n.isUnmounting)return v();D(u,[E]);let L=!1;const $=E._leaveCb=N=>{L||(L=!0,v(),N?D(b,[E]):D(m,[E]),E._leaveCb=void 0,w[O]===e&&delete w[O])};w[O]=e,d?(d(E,$),d.length<=1&&$()):$()},clone(E){return nn(E,t,n,s)}};return M}function cr(e){if(qn(e))return e=_t(e),e.children=null,e}function yo(e){return qn(e)?e.children?e.children[0]:void 0:e}function Ft(e,t){e.shapeFlag&6&&e.component?Ft(e.component.subTree,t):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function qs(e,t=!1){let n=[],s=0;for(let r=0;r1)for(let r=0;r!!e.type.__asyncLoader;function hu(e){x(e)&&(e={loader:e});const{loader:t,loadingComponent:n,errorComponent:s,delay:r=200,timeout:i,suspensible:o=!0,onError:l}=e;let c=null,f,a=0;const u=()=>(a++,c=null,d()),d=()=>{let m;return c||(m=c=t().catch(b=>{if(b=b instanceof Error?b:new Error(String(b)),l)return new Promise((S,g)=>{l(b,()=>S(u()),()=>g(b),a+1)});throw b}).then(b=>m!==c&&c?c:(b&&(b.__esModule||b[Symbol.toStringTag]==="Module")&&(b=b.default),f=b,b)))};return Si({name:"AsyncComponentWrapper",__asyncLoader:d,get __asyncResolved(){return f},setup(){const m=de;if(f)return()=>fr(f,m);const b=y=>{c=null,Kt(y,m,13,!s)};if(o&&m.suspense||rn)return d().then(y=>()=>fr(y,m)).catch(y=>(b(y),()=>s?ie(s,{error:y}):null));const S=as(!1),g=as(),_=as(!!r);return r&&setTimeout(()=>{_.value=!1},r),i!=null&&setTimeout(()=>{if(!S.value&&!g.value){const y=new Error(`Async component timed out after ${i}ms.`);b(y),g.value=y}},i),d().then(()=>{S.value=!0,m.parent&&qn(m.parent.vnode)&&ui(m.parent.update)}).catch(y=>{b(y),g.value=y}),()=>{if(S.value&&f)return fr(f,m);if(g.value&&s)return ie(s,{error:g.value});if(n&&!_.value)return ie(n)}}})}function fr(e,{vnode:{ref:t,props:n,children:s}}){const r=ie(e,n,s);return r.ref=t,r}const qn=e=>e.type.__isKeepAlive,gu={name:"KeepAlive",__isKeepAlive:!0,props:{include:[String,RegExp,Array],exclude:[String,RegExp,Array],max:[String,Number]},setup(e,{slots:t}){const n=St(),s=n.ctx;if(!s.renderer)return t.default;const r=new Map,i=new Set;let o=null;n.__v_cache=r;const l=n.suspense,{renderer:{p:c,m:f,um:a,o:{createElement:u}}}=s,d=u("div");s.activate=(y,T,w,D,M)=>{const E=y.component;f(y,T,w,0,l),c(E.vnode,y,T,w,E,l,D,y.slotScopeIds,M),me(()=>{E.isDeactivated=!1,E.a&&Gt(E.a);const v=y.props&&y.props.onVnodeMounted;v&&Se(v,E.parent,y)},l),Nr(E)},s.deactivate=y=>{const T=y.component;f(y,d,null,1,l),me(()=>{T.da&&Gt(T.da);const w=y.props&&y.props.onVnodeUnmounted;w&&Se(w,T.parent,y),T.isDeactivated=!0},l),Nr(T)};function m(y){ar(y),a(y,n,l,!0)}function b(y){r.forEach((T,w)=>{const D=Ss(T.type);D&&(!y||!y(D))&&S(w)})}function S(y){const T=r.get(y);!o||T.type!==o.type?m(T):o&&ar(o),r.delete(y),i.delete(y)}vn(()=>[e.include,e.exclude],([y,T])=>{y&&b(w=>bn(y,w)),T&&b(w=>!bn(T,w))},{flush:"post",deep:!0});let g=null;const _=()=>{g!=null&&r.set(g,ur(n.subTree))};return zn(_),Js(_),Ys(()=>{r.forEach(y=>{const{subTree:T,suspense:w}=n,D=ur(T);if(y.type===D.type){ar(D);const M=D.component.da;M&&me(M,w);return}m(y)})}),()=>{if(g=null,!t.default)return null;const y=t.default(),T=y[0];if(y.length>1)return o=null,y;if(!yt(T)||!(T.shapeFlag&4)&&!(T.shapeFlag&128))return o=null,T;let w=ur(T);const D=w.type,M=Ss(Ln(w)?w.type.__asyncResolved||{}:D),{include:E,exclude:v,max:O}=e;if(E&&(!M||!bn(E,M))||v&&M&&bn(v,M))return o=w,T;const L=w.key==null?D:w.key,$=r.get(L);return w.el&&(w=_t(w),T.shapeFlag&128&&(T.ssContent=w)),g=L,$?(w.el=$.el,w.component=$.component,w.transition&&Ft(w,w.transition),w.shapeFlag|=512,i.delete(L),i.add(L)):(i.add(L),O&&i.size>parseInt(O,10)&&S(i.values().next().value)),w.shapeFlag|=256,o=w,T}}},mu=gu;function bn(e,t){return H(e)?e.some(n=>bn(n,t)):q(e)?e.split(",").includes(t):e.test?e.test(t):!1}function Vl(e,t){Kl(e,"a",t)}function Ul(e,t){Kl(e,"da",t)}function Kl(e,t,n=de){const s=e.__wdc||(e.__wdc=()=>{let r=n;for(;r;){if(r.isDeactivated)return;r=r.parent}return e()});if(zs(t,s,n),n){let r=n.parent;for(;r&&r.parent;)qn(r.parent.vnode)&&yu(s,t,n,r),r=r.parent}}function yu(e,t,n,s){const r=zs(t,e,s,!0);Zs(()=>{Zr(s[t],r)},n)}function ar(e){let t=e.shapeFlag;t&256&&(t-=256),t&512&&(t-=512),e.shapeFlag=t}function ur(e){return e.shapeFlag&128?e.ssContent:e}function zs(e,t,n=de,s=!1){if(n){const r=n[e]||(n[e]=[]),i=t.__weh||(t.__weh=(...o)=>{if(n.isUnmounted)return;Vt(),bt(n);const l=Re(t,n,e,o);return dt(),Ut(),l});return s?r.unshift(i):r.push(i),i}}const st=e=>(t,n=de)=>(!rn||e==="sp")&&zs(e,t,n),jl=st("bm"),zn=st("m"),xl=st("bu"),Js=st("u"),Ys=st("bum"),Zs=st("um"),Wl=st("sp"),ql=st("rtg"),zl=st("rtc");function Jl(e,t=de){zs("ec",e,t)}let Or=!0;function _u(e){const t=Zl(e),n=e.proxy,s=e.ctx;Or=!1,t.beforeCreate&&_o(t.beforeCreate,e,"bc");const{data:r,computed:i,methods:o,watch:l,provide:c,inject:f,created:a,beforeMount:u,mounted:d,beforeUpdate:m,updated:b,activated:S,deactivated:g,beforeDestroy:_,beforeUnmount:y,destroyed:T,unmounted:w,render:D,renderTracked:M,renderTriggered:E,errorCaptured:v,serverPrefetch:O,expose:L,inheritAttrs:$,components:N,directives:U,filters:J}=t;if(f&&bu(f,s,null,e.appContext.config.unwrapInjectedRef),o)for(const ne in o){const se=o[ne];x(se)&&(s[ne]=se.bind(n))}if(r){const ne=r.call(n,n);ce(ne)&&(e.data=Us(ne))}if(Or=!0,i)for(const ne in i){const se=i[ne],Ze=x(se)?se.bind(n,n):x(se.get)?se.get.bind(n,n):Ae,ir=!x(se)&&x(se.set)?se.set.bind(n):Ae,un=bc({get:Ze,set:ir});Object.defineProperty(s,ne,{enumerable:!0,configurable:!0,get:()=>un.value,set:jt=>un.value=jt})}if(l)for(const ne in l)Yl(l[ne],s,n,ne);if(c){const ne=x(c)?c.call(n):c;Reflect.ownKeys(ne).forEach(se=>{Dl(se,ne[se])})}a&&_o(a,e,"c");function ae(ne,se){H(se)?se.forEach(Ze=>ne(Ze.bind(n))):se&&ne(se.bind(n))}if(ae(jl,u),ae(zn,d),ae(xl,m),ae(Js,b),ae(Vl,S),ae(Ul,g),ae(Jl,v),ae(zl,M),ae(ql,E),ae(Ys,y),ae(Zs,w),ae(Wl,O),H(L))if(L.length){const ne=e.exposed||(e.exposed={});L.forEach(se=>{Object.defineProperty(ne,se,{get:()=>n[se],set:Ze=>n[se]=Ze})})}else e.exposed||(e.exposed={});D&&e.render===Ae&&(e.render=D),$!=null&&(e.inheritAttrs=$),N&&(e.components=N),U&&(e.directives=U)}function bu(e,t,n=Ae,s=!1){H(e)&&(e=Pr(e));for(const r in e){const i=e[r];let o;ce(i)?"default"in i?o=Tn(i.from||r,i.default,!0):o=Tn(i.from||r):o=Tn(i),pe(o)&&s?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>o.value,set:l=>o.value=l}):t[r]=o}}function _o(e,t,n){Re(H(e)?e.map(s=>s.bind(t.proxy)):e.bind(t.proxy),t,n)}function Yl(e,t,n,s){const r=s.includes(".")?$l(n,s):()=>n[s];if(q(e)){const i=t[e];x(i)&&vn(r,i)}else if(x(e))vn(r,e.bind(n));else if(ce(e))if(H(e))e.forEach(i=>Yl(i,t,n,s));else{const i=x(e.handler)?e.handler.bind(n):t[e.handler];x(i)&&vn(r,i,e)}}function Zl(e){const t=e.type,{mixins:n,extends:s}=t,{mixins:r,optionsCache:i,config:{optionMergeStrategies:o}}=e.appContext,l=i.get(t);let c;return l?c=l:!r.length&&!n&&!s?c=t:(c={},r.length&&r.forEach(f=>_s(c,f,o,!0)),_s(c,t,o)),i.set(t,c),c}function _s(e,t,n,s=!1){const{mixins:r,extends:i}=t;i&&_s(e,i,n,!0),r&&r.forEach(o=>_s(e,o,n,!0));for(const o in t)if(!(s&&o==="expose")){const l=Eu[o]||n&&n[o];e[o]=l?l(e[o],t[o]):t[o]}return e}const Eu={data:bo,props:wt,emits:wt,methods:wt,computed:wt,beforeCreate:Ce,created:Ce,beforeMount:Ce,mounted:Ce,beforeUpdate:Ce,updated:Ce,beforeDestroy:Ce,beforeUnmount:Ce,destroyed:Ce,unmounted:Ce,activated:Ce,deactivated:Ce,errorCaptured:Ce,serverPrefetch:Ce,components:wt,directives:wt,watch:Su,provide:bo,inject:Cu};function bo(e,t){return t?e?function(){return G(x(e)?e.call(this,this):e,x(t)?t.call(this,this):t)}:t:e}function Cu(e,t){return wt(Pr(e),Pr(t))}function Pr(e){if(H(e)){const t={};for(let n=0;n0)&&!(o&16)){if(o&8){const a=e.vnode.dynamicProps;for(let u=0;u{c=!0;const[d,m]=Xl(u,t,!0);G(o,d),m&&l.push(...m)};!n&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}if(!i&&!c)return s.set(e,Zt),Zt;if(H(i))for(let a=0;a-1,m[1]=S<0||b-1||Q(m,"default"))&&l.push(u)}}}const f=[o,l];return s.set(e,f),f}function Eo(e){return e[0]!=="$"}function Co(e){const t=e&&e.toString().match(/^\s*function (\w+)/);return t?t[1]:e===null?"null":""}function So(e,t){return Co(e)===Co(t)}function To(e,t){return H(t)?t.findIndex(n=>So(n,e)):x(t)&&So(t,e)?0:-1}const Gl=e=>e[0]==="_"||e==="$stable",Ti=e=>H(e)?e.map(Ne):[Ne(e)],wu=(e,t,n)=>{const s=yi((...r)=>Ti(t(...r)),n);return s._c=!1,s},ec=(e,t,n)=>{const s=e._ctx;for(const r in e){if(Gl(r))continue;const i=e[r];if(x(i))t[r]=wu(r,i,s);else if(i!=null){const o=Ti(i);t[r]=()=>o}}},tc=(e,t)=>{const n=Ti(t);e.slots.default=()=>n},Nu=(e,t)=>{if(e.vnode.shapeFlag&32){const n=t._;n?(e.slots=Y(t),gs(t,"_",n)):ec(t,e.slots={})}else e.slots={},t&&tc(e,t);gs(e.slots,Xs,1)},Ou=(e,t,n)=>{const{vnode:s,slots:r}=e;let i=!0,o=X;if(s.shapeFlag&32){const l=t._;l?n&&l===1?i=!1:(G(r,t),!n&&l===1&&delete r._):(i=!t.$stable,ec(t,r)),o=t}else t&&(tc(e,t),o={default:1});if(i)for(const l in r)!Gl(l)&&!(l in o)&&delete r[l]};function Pu(e,t){const n=Pe;if(n===null)return e;const s=n.proxy,r=e.dirs||(e.dirs=[]);for(let i=0;ibs(d,t&&(H(t)?t[m]:t),n,s,r));return}if(Ln(s)&&!r)return;const i=s.shapeFlag&4?Ii(s.component)||s.component.proxy:s.el,o=r?null:i,{i:l,r:c}=e,f=t&&t.r,a=l.refs===X?l.refs={}:l.refs,u=l.setupState;if(f!=null&&f!==c&&(q(f)?(a[f]=null,Q(u,f)&&(u[f]=null)):pe(f)&&(f.value=null)),x(c))qe(c,l,12,[o,a]);else{const d=q(c),m=pe(c);if(d||m){const b=()=>{if(e.f){const S=d?a[c]:c.value;r?H(S)&&Zr(S,i):H(S)?S.includes(i)||S.push(i):d?a[c]=[i]:(c.value=[i],e.k&&(a[e.k]=c.value))}else d?(a[c]=o,Q(u,c)&&(u[c]=o)):pe(c)&&(c.value=o,e.k&&(a[e.k]=o))};o?(b.id=-1,me(b,n)):b()}}}let ot=!1;const rs=e=>/svg/.test(e.namespaceURI)&&e.tagName!=="foreignObject",pr=e=>e.nodeType===8;function Iu(e){const{mt:t,p:n,o:{patchProp:s,nextSibling:r,parentNode:i,remove:o,insert:l,createComment:c}}=e,f=(g,_)=>{if(!_.hasChildNodes()){n(null,g,_),ys();return}ot=!1,a(_.firstChild,g,null,null,null),ys(),ot&&console.error("Hydration completed but contains mismatches.")},a=(g,_,y,T,w,D=!1)=>{const M=pr(g)&&g.data==="[",E=()=>b(g,_,y,T,w,M),{type:v,ref:O,shapeFlag:L}=_,$=g.nodeType;_.el=g;let N=null;switch(v){case Lt:$!==3?N=E():(g.data!==_.children&&(ot=!0,g.data=_.children),N=r(g));break;case Ee:$!==8||M?N=E():N=r(g);break;case pt:if($!==1)N=E();else{N=g;const U=!_.children.length;for(let J=0;J<_.staticCount;J++)U&&(_.children+=N.outerHTML),J===_.staticCount-1&&(_.anchor=N),N=r(N);return N}break;case ge:M?N=m(g,_,y,T,w,D):N=E();break;default:if(L&1)$!==1||_.type.toLowerCase()!==g.tagName.toLowerCase()?N=E():N=u(g,_,y,T,w,D);else if(L&6){_.slotScopeIds=w;const U=i(g);if(t(_,U,null,y,T,rs(U),D),N=M?S(g):r(g),Ln(_)){let J;M?(J=ie(ge),J.anchor=N?N.previousSibling:U.lastChild):J=g.nodeType===3?Ai(""):ie("div"),J.el=g,_.component.subTree=J}}else L&64?$!==8?N=E():N=_.type.hydrate(g,_,y,T,w,D,e,d):L&128&&(N=_.type.hydrate(g,_,y,T,rs(i(g)),w,D,e,a))}return O!=null&&bs(O,null,T,_),N},u=(g,_,y,T,w,D)=>{D=D||!!_.dynamicChildren;const{type:M,props:E,patchFlag:v,shapeFlag:O,dirs:L}=_,$=M==="input"&&L||M==="option";if($||v!==-1){if(L&&je(_,null,y,"created"),E)if($||!D||v&48)for(const U in E)($&&U.endsWith("value")||Bt(U)&&!Rt(U))&&s(g,U,null,E[U],!1,void 0,y);else E.onClick&&s(g,"onClick",null,E.onClick,!1,void 0,y);let N;if((N=E&&E.onVnodeBeforeMount)&&Se(N,y,_),L&&je(_,null,y,"beforeMount"),((N=E&&E.onVnodeMounted)||L)&&Ll(()=>{N&&Se(N,y,_),L&&je(_,null,y,"mounted")},T),O&16&&!(E&&(E.innerHTML||E.textContent))){let U=d(g.firstChild,_,g,y,T,w,D);for(;U;){ot=!0;const J=U;U=U.nextSibling,o(J)}}else O&8&&g.textContent!==_.children&&(ot=!0,g.textContent=_.children)}return g.nextSibling},d=(g,_,y,T,w,D,M)=>{M=M||!!_.dynamicChildren;const E=_.children,v=E.length;for(let O=0;O{const{slotScopeIds:M}=_;M&&(w=w?w.concat(M):M);const E=i(g),v=d(r(g),_,E,y,T,w,D);return v&&pr(v)&&v.data==="]"?r(_.anchor=v):(ot=!0,l(_.anchor=c("]"),E,v),v)},b=(g,_,y,T,w,D)=>{if(ot=!0,_.el=null,D){const v=S(g);for(;;){const O=r(g);if(O&&O!==v)o(O);else break}}const M=r(g),E=i(g);return o(g),n(null,_,E,M,y,T,rs(E),w),M},S=g=>{let _=0;for(;g;)if(g=r(g),g&&pr(g)&&(g.data==="["&&_++,g.data==="]")){if(_===0)return r(g);_--}return g};return[f,a]}const me=Ll;function sc(e){return ic(e)}function rc(e){return ic(e,Iu)}function ic(e,t){const n=Jf();n.__VUE__=!0,hi(n.__VUE_DEVTOOLS_GLOBAL_HOOK__,n);const{insert:s,remove:r,patchProp:i,createElement:o,createText:l,createComment:c,setText:f,setElementText:a,parentNode:u,nextSibling:d,setScopeId:m=Ae,cloneNode:b,insertStaticContent:S}=e,g=(p,h,C,P=null,A=null,k=null,B=!1,I=null,F=!!h.dynamicChildren)=>{if(p===h)return;p&&!xe(p,h)&&(P=Xn(p),rt(p,A,k,!0),p=null),h.patchFlag===-2&&(F=!1,h.dynamicChildren=null);const{type:R,ref:K,shapeFlag:V}=h;switch(R){case Lt:_(p,h,C,P);break;case Ee:y(p,h,C,P);break;case pt:p==null&&T(h,C,P,B);break;case ge:U(p,h,C,P,A,k,B,I,F);break;default:V&1?M(p,h,C,P,A,k,B,I,F):V&6?J(p,h,C,P,A,k,B,I,F):(V&64||V&128)&&R.process(p,h,C,P,A,k,B,I,F,xt)}K!=null&&A&&bs(K,p&&p.ref,k,h||p,!h)},_=(p,h,C,P)=>{if(p==null)s(h.el=l(h.children),C,P);else{const A=h.el=p.el;h.children!==p.children&&f(A,h.children)}},y=(p,h,C,P)=>{p==null?s(h.el=c(h.children||""),C,P):h.el=p.el},T=(p,h,C,P)=>{[p.el,p.anchor]=S(p.children,h,C,P,p.el,p.anchor)},w=({el:p,anchor:h},C,P)=>{let A;for(;p&&p!==h;)A=d(p),s(p,C,P),p=A;s(h,C,P)},D=({el:p,anchor:h})=>{let C;for(;p&&p!==h;)C=d(p),r(p),p=C;r(h)},M=(p,h,C,P,A,k,B,I,F)=>{B=B||h.type==="svg",p==null?E(h,C,P,A,k,B,I,F):L(p,h,A,k,B,I,F)},E=(p,h,C,P,A,k,B,I)=>{let F,R;const{type:K,props:V,shapeFlag:j,transition:W,patchFlag:Z,dirs:oe}=p;if(p.el&&b!==void 0&&Z===-1)F=p.el=b(p.el);else{if(F=p.el=o(p.type,k,V&&V.is,V),j&8?a(F,p.children):j&16&&O(p.children,F,null,P,A,k&&K!=="foreignObject",B,I),oe&&je(p,null,P,"created"),V){for(const re in V)re!=="value"&&!Rt(re)&&i(F,re,null,V[re],k,p.children,P,A,Qe);"value"in V&&i(F,"value",null,V.value),(R=V.onVnodeBeforeMount)&&Se(R,P,p)}v(F,p,p.scopeId,B,P)}Object.defineProperty(F,"__vnode",{value:p,enumerable:!1}),Object.defineProperty(F,"__vueParentComponent",{value:P,enumerable:!1}),oe&&je(p,null,P,"beforeMount");const te=(!A||A&&!A.pendingBranch)&&W&&!W.persisted;te&&W.beforeEnter(F),s(F,h,C),((R=V&&V.onVnodeMounted)||te||oe)&&me(()=>{R&&Se(R,P,p),te&&W.enter(F),oe&&je(p,null,P,"mounted")},A)},v=(p,h,C,P,A)=>{if(C&&m(p,C),P)for(let k=0;k{for(let R=F;R{const I=h.el=p.el;let{patchFlag:F,dynamicChildren:R,dirs:K}=h;F|=p.patchFlag&16;const V=p.props||X,j=h.props||X;let W;C&&Tt(C,!1),(W=j.onVnodeBeforeUpdate)&&Se(W,C,h,p),K&&je(h,p,C,"beforeUpdate"),C&&Tt(C,!0);const Z=A&&h.type!=="foreignObject";if(R?$(p.dynamicChildren,R,I,C,P,Z,k):B||Ze(p,h,I,null,C,P,Z,k,!1),F>0){if(F&16)N(I,h,V,j,C,P,A);else if(F&2&&V.class!==j.class&&i(I,"class",null,j.class,A),F&4&&i(I,"style",V.style,j.style,A),F&8){const oe=h.dynamicProps;for(let te=0;te{W&&Se(W,C,h,p),K&&je(h,p,C,"updated")},P)},$=(p,h,C,P,A,k,B)=>{for(let I=0;I{if(C!==P){for(const I in P){if(Rt(I))continue;const F=P[I],R=C[I];F!==R&&I!=="value"&&i(p,I,R,F,B,h.children,A,k,Qe)}if(C!==X)for(const I in C)!Rt(I)&&!(I in P)&&i(p,I,C[I],null,B,h.children,A,k,Qe);"value"in P&&i(p,"value",C.value,P.value)}},U=(p,h,C,P,A,k,B,I,F)=>{const R=h.el=p?p.el:l(""),K=h.anchor=p?p.anchor:l("");let{patchFlag:V,dynamicChildren:j,slotScopeIds:W}=h;W&&(I=I?I.concat(W):W),p==null?(s(R,C,P),s(K,C,P),O(h.children,C,K,A,k,B,I,F)):V>0&&V&64&&j&&p.dynamicChildren?($(p.dynamicChildren,j,C,A,k,B,I),(h.key!=null||A&&h===A.subTree)&&vi(p,h,!0)):Ze(p,h,C,K,A,k,B,I,F)},J=(p,h,C,P,A,k,B,I,F)=>{h.slotScopeIds=I,p==null?h.shapeFlag&512?A.ctx.activate(h,C,P,B,F):Ye(h,C,P,A,k,B,F):ae(p,h,F)},Ye=(p,h,C,P,A,k,B)=>{const I=p.component=dc(p,P,A);if(qn(p)&&(I.ctx.renderer=xt),gc(I),I.asyncDep){if(A&&A.registerDep(I,ne),!p.el){const F=I.subTree=ie(Ee);y(null,F,h,C)}return}ne(I,p,h,C,A,k,B)},ae=(p,h,C)=>{const P=h.component=p.component;if(nu(p,h,C))if(P.asyncDep&&!P.asyncResolved){se(P,h,C);return}else P.next=h,ja(P.update),P.update();else h.component=p.component,h.el=p.el,P.vnode=h},ne=(p,h,C,P,A,k,B)=>{const I=()=>{if(p.isMounted){let{next:K,bu:V,u:j,parent:W,vnode:Z}=p,oe=K,te;Tt(p,!1),K?(K.el=Z.el,se(p,K,B)):K=Z,V&&Gt(V),(te=K.props&&K.props.onVnodeBeforeUpdate)&&Se(te,W,K,Z),Tt(p,!0);const re=us(p),Ve=p.subTree;p.subTree=re,g(Ve,re,u(Ve.el),Xn(Ve),p,A,k),K.el=re.el,oe===null&&_i(p,re.el),j&&me(j,A),(te=K.props&&K.props.onVnodeUpdated)&&me(()=>Se(te,W,K,Z),A),kl(p)}else{let K;const{el:V,props:j}=h,{bm:W,m:Z,parent:oe}=p,te=Ln(h);if(Tt(p,!1),W&&Gt(W),!te&&(K=j&&j.onVnodeBeforeMount)&&Se(K,oe,h),Tt(p,!0),V&&lr){const re=()=>{p.subTree=us(p),lr(V,p.subTree,p,A,null)};te?h.type.__asyncLoader().then(()=>!p.isUnmounted&&re()):re()}else{const re=p.subTree=us(p);g(null,re,C,P,p,A,k),h.el=re.el}if(Z&&me(Z,A),!te&&(K=j&&j.onVnodeMounted)){const re=h;me(()=>Se(K,oe,re),A)}h.shapeFlag&256&&p.a&&me(p.a,A),p.isMounted=!0,Nr(p),h=C=P=null}},F=p.effect=new xn(I,()=>ui(p.update),p.scope),R=p.update=F.run.bind(F);R.id=p.uid,Tt(p,!0),R()},se=(p,h,C)=>{h.component=p;const P=p.vnode.props;p.vnode=h,p.next=null,vu(p,h.props,P,C),Ou(p,h.children,C),Vt(),di(void 0,p.update),Ut()},Ze=(p,h,C,P,A,k,B,I,F=!1)=>{const R=p&&p.children,K=p?p.shapeFlag:0,V=h.children,{patchFlag:j,shapeFlag:W}=h;if(j>0){if(j&128){un(R,V,C,P,A,k,B,I,F);return}else if(j&256){ir(R,V,C,P,A,k,B,I,F);return}}W&8?(K&16&&Qe(R,A,k),V!==R&&a(C,V)):K&16?W&16?un(R,V,C,P,A,k,B,I,F):Qe(R,A,k,!0):(K&8&&a(C,""),W&16&&O(V,C,P,A,k,B,I,F))},ir=(p,h,C,P,A,k,B,I,F)=>{p=p||Zt,h=h||Zt;const R=p.length,K=h.length,V=Math.min(R,K);let j;for(j=0;jK?Qe(p,A,k,!0,!1,V):O(h,C,P,A,k,B,I,F,V)},un=(p,h,C,P,A,k,B,I,F)=>{let R=0;const K=h.length;let V=p.length-1,j=K-1;for(;R<=V&&R<=j;){const W=p[R],Z=h[R]=F?ft(h[R]):Ne(h[R]);if(xe(W,Z))g(W,Z,C,null,A,k,B,I,F);else break;R++}for(;R<=V&&R<=j;){const W=p[V],Z=h[j]=F?ft(h[j]):Ne(h[j]);if(xe(W,Z))g(W,Z,C,null,A,k,B,I,F);else break;V--,j--}if(R>V){if(R<=j){const W=j+1,Z=Wj)for(;R<=V;)rt(p[R],A,k,!0),R++;else{const W=R,Z=R,oe=new Map;for(R=Z;R<=j;R++){const we=h[R]=F?ft(h[R]):Ne(h[R]);we.key!=null&&oe.set(we.key,R)}let te,re=0;const Ve=j-Z+1;let Wt=!1,no=0;const pn=new Array(Ve);for(R=0;R=Ve){rt(we,A,k,!0);continue}let Ke;if(we.key!=null)Ke=oe.get(we.key);else for(te=Z;te<=j;te++)if(pn[te-Z]===0&&xe(we,h[te])){Ke=te;break}Ke===void 0?rt(we,A,k,!0):(pn[Ke-Z]=R+1,Ke>=no?no=Ke:Wt=!0,g(we,h[Ke],C,null,A,k,B,I,F),re++)}const so=Wt?Mu(pn):Zt;for(te=so.length-1,R=Ve-1;R>=0;R--){const we=Z+R,Ke=h[we],ro=we+1{const{el:k,type:B,transition:I,children:F,shapeFlag:R}=p;if(R&6){jt(p.component.subTree,h,C,P);return}if(R&128){p.suspense.move(h,C,P);return}if(R&64){B.move(p,h,C,xt);return}if(B===ge){s(k,h,C);for(let V=0;VI.enter(k),A);else{const{leave:V,delayLeave:j,afterLeave:W}=I,Z=()=>s(k,h,C),oe=()=>{V(k,()=>{Z(),W&&W()})};j?j(k,Z,oe):oe()}else s(k,h,C)},rt=(p,h,C,P=!1,A=!1)=>{const{type:k,props:B,ref:I,children:F,dynamicChildren:R,shapeFlag:K,patchFlag:V,dirs:j}=p;if(I!=null&&bs(I,null,C,p,!0),K&256){h.ctx.deactivate(p);return}const W=K&1&&j,Z=!Ln(p);let oe;if(Z&&(oe=B&&B.onVnodeBeforeUnmount)&&Se(oe,h,p),K&6)Nf(p.component,C,P);else{if(K&128){p.suspense.unmount(C,P);return}W&&je(p,null,h,"beforeUnmount"),K&64?p.type.remove(p,h,C,A,xt,P):R&&(k!==ge||V>0&&V&64)?Qe(R,h,C,!1,!0):(k===ge&&V&384||!A&&K&16)&&Qe(F,h,C),P&&eo(p)}(Z&&(oe=B&&B.onVnodeUnmounted)||W)&&me(()=>{oe&&Se(oe,h,p),W&&je(p,null,h,"unmounted")},C)},eo=p=>{const{type:h,el:C,anchor:P,transition:A}=p;if(h===ge){wf(C,P);return}if(h===pt){D(p);return}const k=()=>{r(C),A&&!A.persisted&&A.afterLeave&&A.afterLeave()};if(p.shapeFlag&1&&A&&!A.persisted){const{leave:B,delayLeave:I}=A,F=()=>B(C,k);I?I(p.el,k,F):F()}else k()},wf=(p,h)=>{let C;for(;p!==h;)C=d(p),r(p),p=C;r(h)},Nf=(p,h,C)=>{const{bum:P,scope:A,update:k,subTree:B,um:I}=p;P&&Gt(P),A.stop(),k&&(k.active=!1,rt(B,p,h,C)),I&&me(I,h),me(()=>{p.isUnmounted=!0},h),h&&h.pendingBranch&&!h.isUnmounted&&p.asyncDep&&!p.asyncResolved&&p.suspenseId===h.pendingId&&(h.deps--,h.deps===0&&h.resolve()),za(p)},Qe=(p,h,C,P=!1,A=!1,k=0)=>{for(let B=k;Bp.shapeFlag&6?Xn(p.component.subTree):p.shapeFlag&128?p.suspense.next():d(p.anchor||p.el),to=(p,h,C)=>{p==null?h._vnode&&rt(h._vnode,null,null,!0):g(h._vnode||null,p,h,null,null,null,C),ys(),h._vnode=p},xt={p:g,um:rt,m:jt,r:eo,mt:Ye,mc:O,pc:Ze,pbc:$,n:Xn,o:e};let or,lr;return t&&([or,lr]=t(xt)),{render:to,hydrate:or,createApp:Ru(to,or)}}function Tt({effect:e,update:t},n){e.allowRecurse=t.allowRecurse=n}function vi(e,t,n=!1){const s=e.children,r=t.children;if(H(s)&&H(r))for(let i=0;i>1,e[n[l]]0&&(t[s]=n[i-1]),n[i]=s)}}for(i=n.length,o=n[i-1];i-- >0;)n[i]=o,o=t[o];return n}const ku=e=>e.__isTeleport,wn=e=>e&&(e.disabled||e.disabled===""),vo=e=>typeof SVGElement!="undefined"&&e instanceof SVGElement,Rr=(e,t)=>{const n=e&&e.to;return q(n)?t?t(n):null:n},Fu={__isTeleport:!0,process(e,t,n,s,r,i,o,l,c,f){const{mc:a,pc:u,pbc:d,o:{insert:m,querySelector:b,createText:S,createComment:g}}=f,_=wn(t.props);let{shapeFlag:y,children:T,dynamicChildren:w}=t;if(e==null){const D=t.el=S(""),M=t.anchor=S("");m(D,n,s),m(M,n,s);const E=t.target=Rr(t.props,b),v=t.targetAnchor=S("");E&&(m(v,E),o=o||vo(E));const O=(L,$)=>{y&16&&a(T,L,$,r,i,o,l,c)};_?O(n,M):E&&O(E,v)}else{t.el=e.el;const D=t.anchor=e.anchor,M=t.target=e.target,E=t.targetAnchor=e.targetAnchor,v=wn(e.props),O=v?n:M,L=v?D:E;if(o=o||vo(M),w?(d(e.dynamicChildren,w,O,r,i,o,l),vi(e,t,!0)):c||u(e,t,O,L,r,i,o,l,!1),_)v||is(t,n,D,f,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const $=t.target=Rr(t.props,b);$&&is(t,$,null,f,0)}else v&&is(t,M,E,f,1)}},remove(e,t,n,s,{um:r,o:{remove:i}},o){const{shapeFlag:l,children:c,anchor:f,targetAnchor:a,target:u,props:d}=e;if(u&&i(a),(o||!wn(d))&&(i(f),l&16))for(let m=0;m0?ze||Zt:null,lc(),sn>0&&ze&&ze.push(e),e}function Uu(e,t,n,s,r,i){return cc(Pi(e,t,n,s,r,i,!0))}function Oi(e,t,n,s,r){return cc(ie(e,t,n,s,r,!0))}function yt(e){return e?e.__v_isVNode===!0:!1}function xe(e,t){return e.type===t.type&&e.key===t.key}function Ku(e){}const Xs="__vInternal",fc=({key:e})=>e!=null?e:null,ps=({ref:e,ref_key:t,ref_for:n})=>e!=null?q(e)||pe(e)||x(e)?{i:Pe,r:e,k:t,f:!!n}:e:null;function Pi(e,t=null,n=null,s=0,r=null,i=e===ge?0:1,o=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&fc(t),ref:t&&ps(t),scopeId:Ws,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:i,patchFlag:s,dynamicProps:r,dynamicChildren:null,appContext:null};return l?(Ri(c,n),i&128&&e.normalize(c)):n&&(c.shapeFlag|=q(n)?8:16),sn>0&&!o&&ze&&(c.patchFlag>0||i&6)&&c.patchFlag!==32&&ze.push(c),c}const ie=ju;function ju(e,t=null,n=null,s=0,r=null,i=!1){if((!e||e===oc)&&(e=Ee),yt(e)){const l=_t(e,t,!0);return n&&Ri(l,n),l}if(ip(e)&&(e=e.__vccOpts),t){t=ac(t);let{class:l,style:c}=t;l&&!q(l)&&(t.class=jn(l)),ce(c)&&(ri(c)&&!H(c)&&(c=G({},c)),t.style=Kn(c))}const o=q(e)?1:su(e)?128:ku(e)?64:ce(e)?4:x(e)?2:0;return Pi(e,t,n,s,r,o,i,!0)}function ac(e){return e?ri(e)||Xs in e?G({},e):e:null}function _t(e,t,n=!1){const{props:s,ref:r,patchFlag:i,children:o}=e,l=t?uc(s||{},t):s;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:l,key:l&&fc(l),ref:t&&t.ref?n&&r?H(r)?r.concat(ps(t)):[r,ps(t)]:ps(t):r,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:o,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==ge?i===-1?16:i|16:i,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&_t(e.ssContent),ssFallback:e.ssFallback&&_t(e.ssFallback),el:e.el,anchor:e.anchor}}function Ai(e=" ",t=0){return ie(Lt,null,e,t)}function xu(e,t){const n=ie(pt,null,e);return n.staticCount=t,n}function Wu(e="",t=!1){return t?(Qs(),Oi(Ee,null,e)):ie(Ee,null,e)}function Ne(e){return e==null||typeof e=="boolean"?ie(Ee):H(e)?ie(ge,null,e.slice()):typeof e=="object"?ft(e):ie(Lt,null,String(e))}function ft(e){return e.el===null||e.memo?e:_t(e)}function Ri(e,t){let n=0;const{shapeFlag:s}=e;if(t==null)t=null;else if(H(t))n=16;else if(typeof t=="object")if(s&65){const r=t.default;r&&(r._c&&(r._d=!1),Ri(e,r()),r._c&&(r._d=!0));return}else{n=32;const r=t._;!r&&!(Xs in t)?t._ctx=Pe:r===3&&Pe&&(Pe.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else x(t)?(t={default:t,_ctx:Pe},n=32):(t=String(t),s&64?(n=16,t=[Ai(t)]):n=8);e.children=t,e.shapeFlag|=n}function uc(...e){const t={};for(let n=0;nt(o,l,void 0,i&&i[l]));else{const o=Object.keys(e);r=new Array(o.length);for(let l=0,c=o.length;lyt(t)?!(t.type===Ee||t.type===ge&&!pc(t.children)):!0)?e:null}function Yu(e){const t={};for(const n in e)t[Xt(n)]=e[n];return t}const Mr=e=>e?hc(e)?Ii(e)||e.proxy:Mr(e.parent):null,Es=G(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Mr(e.parent),$root:e=>Mr(e.root),$emit:e=>e.emit,$options:e=>Zl(e),$forceUpdate:e=>()=>ui(e.update),$nextTick:e=>ai.bind(e.proxy),$watch:e=>pu.bind(e)}),kr={get({_:e},t){const{ctx:n,setupState:s,data:r,props:i,accessCache:o,type:l,appContext:c}=e;let f;if(t[0]!=="$"){const m=o[t];if(m!==void 0)switch(m){case 1:return s[t];case 2:return r[t];case 4:return n[t];case 3:return i[t]}else{if(s!==X&&Q(s,t))return o[t]=1,s[t];if(r!==X&&Q(r,t))return o[t]=2,r[t];if((f=e.propsOptions[0])&&Q(f,t))return o[t]=3,i[t];if(n!==X&&Q(n,t))return o[t]=4,n[t];Or&&(o[t]=0)}}const a=Es[t];let u,d;if(a)return t==="$attrs"&&Me(e,"get",t),a(e);if((u=l.__cssModules)&&(u=u[t]))return u;if(n!==X&&Q(n,t))return o[t]=4,n[t];if(d=c.config.globalProperties,Q(d,t))return d[t]},set({_:e},t,n){const{data:s,setupState:r,ctx:i}=e;return r!==X&&Q(r,t)?(r[t]=n,!0):s!==X&&Q(s,t)?(s[t]=n,!0):Q(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(i[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:s,appContext:r,propsOptions:i}},o){let l;return!!n[o]||e!==X&&Q(e,o)||t!==X&&Q(t,o)||(l=i[0])&&Q(l,o)||Q(s,o)||Q(Es,o)||Q(r.config.globalProperties,o)},defineProperty(e,t,n){return n.get!=null?this.set(e,t,n.get(),null):n.value!=null&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}},Zu=G({},kr,{get(e,t){if(t!==Symbol.unscopables)return kr.get(e,t,e)},has(e,t){return t[0]!=="_"&&!Pf(t)}}),Qu=nc();let Xu=0;function dc(e,t,n){const s=e.type,r=(t?t.appContext:e.appContext)||Qu,i={uid:Xu++,vnode:e,type:s,parent:t,appContext:r,root:null,next:null,subTree:null,effect:null,update:null,scope:new Gr(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:t?t.provides:Object.create(r.provides),accessCache:null,renderCache:[],components:null,directives:null,propsOptions:Xl(s,r),emitsOptions:Fl(s,r),emit:null,emitted:null,propsDefaults:X,inheritAttrs:s.inheritAttrs,ctx:X,data:X,props:X,attrs:X,slots:X,refs:X,setupState:X,setupContext:null,suspense:n,suspenseId:n?n.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return i.ctx={_:i},i.root=t?t.root:i,i.emit=Ya.bind(null,i),e.ce&&e.ce(i),i}let de=null;const St=()=>de||Pe,bt=e=>{de=e,e.scope.on()},dt=()=>{de&&de.scope.off(),de=null};function hc(e){return e.vnode.shapeFlag&4}let rn=!1;function gc(e,t=!1){rn=t;const{props:n,children:s}=e.vnode,r=hc(e);Tu(e,n,r,t),Nu(e,s);const i=r?Gu(e,t):void 0;return rn=!1,i}function Gu(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=ii(new Proxy(e.ctx,kr));const{setup:s}=n;if(s){const r=e.setupContext=s.length>1?yc(e):null;bt(e),Vt();const i=qe(s,e,0,[e.props,r]);if(Ut(),dt(),Qr(i)){if(i.then(dt,dt),t)return i.then(o=>{Fr(e,o,t)}).catch(o=>{Kt(o,e,0)});e.asyncDep=i}else Fr(e,i,t)}else mc(e,t)}function Fr(e,t,n){x(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:ce(t)&&(e.devtoolsRawSetupState=t,e.setupState=ci(t)),mc(e,n)}let Cs,Lr;function ep(e){Cs=e,Lr=t=>{t.render._rc&&(t.withProxy=new Proxy(t.ctx,Zu))}}const tp=()=>!Cs;function mc(e,t,n){const s=e.type;if(!e.render){if(!t&&Cs&&!s.render){const r=s.template;if(r){const{isCustomElement:i,compilerOptions:o}=e.appContext.config,{delimiters:l,compilerOptions:c}=s,f=G(G({isCustomElement:i,delimiters:l},o),c);s.render=Cs(r,f)}}e.render=s.render||Ae,Lr&&Lr(e)}bt(e),Vt(),_u(e),Ut(),dt()}function np(e){return new Proxy(e.attrs,{get(t,n){return Me(e,"get","$attrs"),t[n]}})}function yc(e){const t=s=>{e.exposed=s||{}};let n;return{get attrs(){return n||(n=np(e))},slots:e.slots,emit:e.emit,expose:t}}function Ii(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(ci(ii(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Es)return Es[n](e)}}))}const sp=/(?:^|[-_])(\w)/g,rp=e=>e.replace(sp,t=>t.toUpperCase()).replace(/[-_]/g,"");function Ss(e){return x(e)&&e.displayName||e.name}function _c(e,t,n=!1){let s=Ss(t);if(!s&&t.__file){const r=t.__file.match(/([^/\\]+)\.\w+$/);r&&(s=r[1])}if(!s&&e&&e.parent){const r=i=>{for(const o in i)if(i[o]===t)return o};s=r(e.components||e.parent.type.components)||r(e.appContext.components)}return s?rp(s):n?"App":"Anonymous"}function ip(e){return x(e)&&"__vccOpts"in e}const bc=(e,t)=>Da(e,t,rn);function op(){return null}function lp(){return null}function cp(e){}function fp(e,t){return null}function ap(){return Ec().slots}function up(){return Ec().attrs}function Ec(){const e=St();return e.setupContext||(e.setupContext=yc(e))}function pp(e,t){const n=H(e)?e.reduce((s,r)=>(s[r]={},s),{}):e;for(const s in t){const r=n[s];r?H(r)||x(r)?n[s]={type:r,default:t[s]}:r.default=t[s]:r===null&&(n[s]={default:t[s]})}return n}function dp(e,t){const n={};for(const s in e)t.includes(s)||Object.defineProperty(n,s,{enumerable:!0,get:()=>e[s]});return n}function hp(e){const t=St();let n=e();return dt(),Qr(n)&&(n=n.catch(s=>{throw bt(t),s})),[n,()=>bt(t)]}function Cc(e,t,n){const s=arguments.length;return s===2?ce(t)&&!H(t)?yt(t)?ie(e,null,[t]):ie(e,t):ie(e,null,t):(s>3?n=Array.prototype.slice.call(arguments,2):s===3&&yt(n)&&(n=[n]),ie(e,t,n))}const Sc=Symbol(""),gp=()=>{{const e=Tn(Sc);return e||Ol("Server rendering context not provided. Make sure to only call useSSRContext() conditionally in the server build."),e}};function mp(){}function yp(e,t,n,s){const r=n[s];if(r&&Tc(r,e))return r;const i=t();return i.memo=e.slice(),n[s]=i}function Tc(e,t){const n=e.memo;if(n.length!=t.length)return!1;for(let s=0;s0&&ze&&ze.push(e),!0}const Dr="3.2.31",_p={createComponentInstance:dc,setupComponent:gc,renderComponentRoot:us,setCurrentRenderingInstance:kn,isVNode:yt,normalizeVNode:Ne},bp=_p,Ep=null,Cp=null,Sp="http://www.w3.org/2000/svg",Ot=typeof document!="undefined"?document:null,No=Ot&&Ot.createElement("template"),Tp={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,s)=>{const r=t?Ot.createElementNS(Sp,e):Ot.createElement(e,n?{is:n}:void 0);return e==="select"&&s&&s.multiple!=null&&r.setAttribute("multiple",s.multiple),r},createText:e=>Ot.createTextNode(e),createComment:e=>Ot.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Ot.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},cloneNode(e){const t=e.cloneNode(!0);return"_value"in e&&(t._value=e._value),t},insertStaticContent(e,t,n,s,r,i){const o=n?n.previousSibling:t.lastChild;if(r&&(r===i||r.nextSibling))for(;t.insertBefore(r.cloneNode(!0),n),!(r===i||!(r=r.nextSibling)););else{No.innerHTML=s?`${e}`:e;const l=No.content;if(s){const c=l.firstChild;for(;c.firstChild;)l.appendChild(c.firstChild);l.removeChild(c)}t.insertBefore(l,n)}return[o?o.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}};function vp(e,t,n){const s=e._vtc;s&&(t=(t?[t,...s]:[...s]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}function wp(e,t,n){const s=e.style,r=q(n);if(n&&!r){for(const i in n)Br(s,i,n[i]);if(t&&!q(t))for(const i in t)n[i]==null&&Br(s,i,"")}else{const i=s.display;r?t!==n&&(s.cssText=n):t&&e.removeAttribute("style"),"_vod"in e&&(s.display=i)}}const Oo=/\s*!important$/;function Br(e,t,n){if(H(n))n.forEach(s=>Br(e,t,s));else if(t.startsWith("--"))e.setProperty(t,n);else{const s=Np(e,t);Oo.test(n)?e.setProperty(Ue(s),n.replace(Oo,""),"important"):e[s]=n}}const Po=["Webkit","Moz","ms"],dr={};function Np(e,t){const n=dr[t];if(n)return n;let s=be(t);if(s!=="filter"&&s in e)return dr[t]=s;s=Ht(s);for(let r=0;rdocument.createEvent("Event").timeStamp&&(Ts=()=>performance.now());const e=navigator.userAgent.match(/firefox\/(\d+)/i);vc=!!(e&&Number(e[1])<=53)}let $r=0;const Ap=Promise.resolve(),Rp=()=>{$r=0},Ip=()=>$r||(Ap.then(Rp),$r=Ts());function et(e,t,n,s){e.addEventListener(t,n,s)}function Mp(e,t,n,s){e.removeEventListener(t,n,s)}function kp(e,t,n,s,r=null){const i=e._vei||(e._vei={}),o=i[t];if(s&&o)o.value=s;else{const[l,c]=Fp(t);if(s){const f=i[t]=Lp(s,r);et(e,l,f,c)}else o&&(Mp(e,l,o,c),i[t]=void 0)}}const Ro=/(?:Once|Passive|Capture)$/;function Fp(e){let t;if(Ro.test(e)){t={};let n;for(;n=e.match(Ro);)e=e.slice(0,e.length-n[0].length),t[n[0].toLowerCase()]=!0}return[Ue(e.slice(2)),t]}function Lp(e,t){const n=s=>{const r=s.timeStamp||Ts();(vc||r>=n.attached-1)&&Re(Dp(s,n.value),t,5,[s])};return n.value=e,n.attached=Ip(),n}function Dp(e,t){if(H(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(s=>r=>!r._stopped&&s&&s(r))}else return t}const Io=/^on[a-z]/,Bp=(e,t,n,s,r=!1,i,o,l,c)=>{t==="class"?vp(e,s,r):t==="style"?wp(e,n,s):Bt(t)?Yr(t)||kp(e,t,n,s,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):$p(e,t,s,r))?Pp(e,t,s,i,o,l,c):(t==="true-value"?e._trueValue=s:t==="false-value"&&(e._falseValue=s),Op(e,t,s,r))};function $p(e,t,n,s){return s?!!(t==="innerHTML"||t==="textContent"||t in e&&Io.test(t)&&x(n)):t==="spellcheck"||t==="draggable"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA"||Io.test(t)&&q(n)?!1:t in e}function wc(e,t){const n=Si(e);class s extends Gs{constructor(i){super(n,i,t)}}return s.def=n,s}const Hp=e=>wc(e,$c),Vp=typeof HTMLElement!="undefined"?HTMLElement:class{};class Gs extends Vp{constructor(t,n={},s){super();this._def=t,this._props=n,this._instance=null,this._connected=!1,this._resolved=!1,this._numberProps=null,this.shadowRoot&&s?s(this._createVNode(),this.shadowRoot):this.attachShadow({mode:"open"})}connectedCallback(){this._connected=!0,this._instance||this._resolveDef()}disconnectedCallback(){this._connected=!1,ai(()=>{this._connected||(Vr(null,this.shadowRoot),this._instance=null)})}_resolveDef(){if(this._resolved)return;this._resolved=!0;for(let s=0;s{for(const r of s)this._setAttr(r.attributeName)}).observe(this,{attributes:!0});const t=s=>{const{props:r,styles:i}=s,o=!H(r),l=r?o?Object.keys(r):r:[];let c;if(o)for(const f in this._props){const a=r[f];(a===Number||a&&a.type===Number)&&(this._props[f]=gt(this._props[f]),(c||(c=Object.create(null)))[f]=!0)}this._numberProps=c;for(const f of Object.keys(this))f[0]!=="_"&&this._setProp(f,this[f],!0,!1);for(const f of l.map(be))Object.defineProperty(this,f,{get(){return this._getProp(f)},set(a){this._setProp(f,a)}});this._applyStyles(i),this._update()},n=this._def.__asyncLoader;n?n().then(t):t(this._def)}_setAttr(t){let n=this.getAttribute(t);this._numberProps&&this._numberProps[t]&&(n=gt(n)),this._setProp(be(t),n,!1)}_getProp(t){return this._props[t]}_setProp(t,n,s=!0,r=!0){n!==this._props[t]&&(this._props[t]=n,r&&this._instance&&this._update(),s&&(n===!0?this.setAttribute(Ue(t),""):typeof n=="string"||typeof n=="number"?this.setAttribute(Ue(t),n+""):n||this.removeAttribute(Ue(t))))}_update(){Vr(this._createVNode(),this.shadowRoot)}_createVNode(){const t=ie(this._def,G({},this._props));return this._instance||(t.ce=n=>{this._instance=n,n.isCE=!0,n.emit=(r,...i)=>{this.dispatchEvent(new CustomEvent(r,{detail:i}))};let s=this;for(;s=s&&(s.parentNode||s.host);)if(s instanceof Gs){n.parent=s._instance;break}}),t}_applyStyles(t){t&&t.forEach(n=>{const s=document.createElement("style");s.textContent=n,this.shadowRoot.appendChild(s)})}}function Up(e="$style"){{const t=St();if(!t)return X;const n=t.type.__cssModules;if(!n)return X;const s=n[e];return s||X}}function Kp(e){const t=St();if(!t)return;const n=()=>Hr(t.subTree,e(t.proxy));Bl(n),zn(()=>{const s=new MutationObserver(n);s.observe(t.subTree.el.parentNode,{childList:!0}),Zs(()=>s.disconnect())})}function Hr(e,t){if(e.shapeFlag&128){const n=e.suspense;e=n.activeBranch,n.pendingBranch&&!n.isHydrating&&n.effects.push(()=>{Hr(n.activeBranch,t)})}for(;e.component;)e=e.component.subTree;if(e.shapeFlag&1&&e.el)Mo(e.el,t);else if(e.type===ge)e.children.forEach(n=>Hr(n,t));else if(e.type===pt){let{el:n,anchor:s}=e;for(;n&&(Mo(n,t),n!==s);)n=n.nextSibling}}function Mo(e,t){if(e.nodeType===1){const n=e.style;for(const s in t)n.setProperty(`--${s}`,t[s])}}const lt="transition",dn="animation",Mi=(e,{slots:t})=>Cc(Ci,Oc(e),t);Mi.displayName="Transition";const Nc={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},jp=Mi.props=G({},Ci.props,Nc),vt=(e,t=[])=>{H(e)?e.forEach(n=>n(...t)):e&&e(...t)},ko=e=>e?H(e)?e.some(t=>t.length>1):e.length>1:!1;function Oc(e){const t={};for(const N in e)N in Nc||(t[N]=e[N]);if(e.css===!1)return t;const{name:n="v",type:s,duration:r,enterFromClass:i=`${n}-enter-from`,enterActiveClass:o=`${n}-enter-active`,enterToClass:l=`${n}-enter-to`,appearFromClass:c=i,appearActiveClass:f=o,appearToClass:a=l,leaveFromClass:u=`${n}-leave-from`,leaveActiveClass:d=`${n}-leave-active`,leaveToClass:m=`${n}-leave-to`}=e,b=xp(r),S=b&&b[0],g=b&&b[1],{onBeforeEnter:_,onEnter:y,onEnterCancelled:T,onLeave:w,onLeaveCancelled:D,onBeforeAppear:M=_,onAppear:E=y,onAppearCancelled:v=T}=t,O=(N,U,J)=>{Nt(N,U?a:l),Nt(N,U?f:o),J&&J()},L=(N,U)=>{Nt(N,m),Nt(N,d),U&&U()},$=N=>(U,J)=>{const Ye=N?E:y,ae=()=>O(U,N,J);vt(Ye,[U,ae]),Fo(()=>{Nt(U,N?c:i),Xe(U,N?a:l),ko(Ye)||Lo(U,s,S,ae)})};return G(t,{onBeforeEnter(N){vt(_,[N]),Xe(N,i),Xe(N,o)},onBeforeAppear(N){vt(M,[N]),Xe(N,c),Xe(N,f)},onEnter:$(!1),onAppear:$(!0),onLeave(N,U){const J=()=>L(N,U);Xe(N,u),Ac(),Xe(N,d),Fo(()=>{Nt(N,u),Xe(N,m),ko(w)||Lo(N,s,g,J)}),vt(w,[N,J])},onEnterCancelled(N){O(N,!1),vt(T,[N])},onAppearCancelled(N){O(N,!0),vt(v,[N])},onLeaveCancelled(N){L(N),vt(D,[N])}})}function xp(e){if(e==null)return null;if(ce(e))return[hr(e.enter),hr(e.leave)];{const t=hr(e);return[t,t]}}function hr(e){return gt(e)}function Xe(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e._vtc||(e._vtc=new Set)).add(t)}function Nt(e,t){t.split(/\s+/).forEach(s=>s&&e.classList.remove(s));const{_vtc:n}=e;n&&(n.delete(t),n.size||(e._vtc=void 0))}function Fo(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let Wp=0;function Lo(e,t,n,s){const r=e._endId=++Wp,i=()=>{r===e._endId&&s()};if(n)return setTimeout(i,n);const{type:o,timeout:l,propCount:c}=Pc(e,t);if(!o)return s();const f=o+"end";let a=0;const u=()=>{e.removeEventListener(f,d),i()},d=m=>{m.target===e&&++a>=c&&u()};setTimeout(()=>{a(n[b]||"").split(", "),r=s(lt+"Delay"),i=s(lt+"Duration"),o=Do(r,i),l=s(dn+"Delay"),c=s(dn+"Duration"),f=Do(l,c);let a=null,u=0,d=0;t===lt?o>0&&(a=lt,u=o,d=i.length):t===dn?f>0&&(a=dn,u=f,d=c.length):(u=Math.max(o,f),a=u>0?o>f?lt:dn:null,d=a?a===lt?i.length:c.length:0);const m=a===lt&&/\b(transform|all)(,|$)/.test(n[lt+"Property"]);return{type:a,timeout:u,propCount:d,hasTransform:m}}function Do(e,t){for(;e.lengthBo(n)+Bo(e[s])))}function Bo(e){return Number(e.slice(0,-1).replace(",","."))*1e3}function Ac(){return document.body.offsetHeight}const Rc=new WeakMap,Ic=new WeakMap,qp={name:"TransitionGroup",props:G({},jp,{tag:String,moveClass:String}),setup(e,{slots:t}){const n=St(),s=Ei();let r,i;return Js(()=>{if(!r.length)return;const o=e.moveClass||`${e.name||"v"}-move`;if(!Qp(r[0].el,n.vnode.el,o))return;r.forEach(Jp),r.forEach(Yp);const l=r.filter(Zp);Ac(),l.forEach(c=>{const f=c.el,a=f.style;Xe(f,o),a.transform=a.webkitTransform=a.transitionDuration="";const u=f._moveCb=d=>{d&&d.target!==f||(!d||/transform$/.test(d.propertyName))&&(f.removeEventListener("transitionend",u),f._moveCb=null,Nt(f,o))};f.addEventListener("transitionend",u)})}),()=>{const o=Y(e),l=Oc(o);let c=o.tag||ge;r=i,i=t.default?qs(t.default()):[];for(let f=0;f{o.split(/\s+/).forEach(l=>l&&s.classList.remove(l))}),n.split(/\s+/).forEach(o=>o&&s.classList.add(o)),s.style.display="none";const r=t.nodeType===1?t:t.parentNode;r.appendChild(s);const{hasTransform:i}=Pc(s);return r.removeChild(s),i}const Et=e=>{const t=e.props["onUpdate:modelValue"];return H(t)?n=>Gt(t,n):t};function Xp(e){e.target.composing=!0}function $o(e){const t=e.target;t.composing&&(t.composing=!1,Gp(t,"input"))}function Gp(e,t){const n=document.createEvent("HTMLEvents");n.initEvent(t,!0,!0),e.dispatchEvent(n)}const vs={created(e,{modifiers:{lazy:t,trim:n,number:s}},r){e._assign=Et(r);const i=s||r.props&&r.props.type==="number";et(e,t?"change":"input",o=>{if(o.target.composing)return;let l=e.value;n?l=l.trim():i&&(l=gt(l)),e._assign(l)}),n&&et(e,"change",()=>{e.value=e.value.trim()}),t||(et(e,"compositionstart",Xp),et(e,"compositionend",$o),et(e,"change",$o))},mounted(e,{value:t}){e.value=t==null?"":t},beforeUpdate(e,{value:t,modifiers:{lazy:n,trim:s,number:r}},i){if(e._assign=Et(i),e.composing||document.activeElement===e&&(n||s&&e.value.trim()===t||(r||e.type==="number")&>(e.value)===t))return;const o=t==null?"":t;e.value!==o&&(e.value=o)}},ki={deep:!0,created(e,t,n){e._assign=Et(n),et(e,"change",()=>{const s=e._modelValue,r=on(e),i=e.checked,o=e._assign;if(H(s)){const l=Ls(s,r),c=l!==-1;if(i&&!c)o(s.concat(r));else if(!i&&c){const f=[...s];f.splice(l,1),o(f)}}else if($t(s)){const l=new Set(s);i?l.add(r):l.delete(r),o(l)}else o(kc(e,i))})},mounted:Ho,beforeUpdate(e,t,n){e._assign=Et(n),Ho(e,t,n)}};function Ho(e,{value:t,oldValue:n},s){e._modelValue=t,H(t)?e.checked=Ls(t,s.props.value)>-1:$t(t)?e.checked=t.has(s.props.value):t!==n&&(e.checked=ht(t,kc(e,!0)))}const Fi={created(e,{value:t},n){e.checked=ht(t,n.props.value),e._assign=Et(n),et(e,"change",()=>{e._assign(on(e))})},beforeUpdate(e,{value:t,oldValue:n},s){e._assign=Et(s),t!==n&&(e.checked=ht(t,s.props.value))}},Mc={deep:!0,created(e,{value:t,modifiers:{number:n}},s){const r=$t(t);et(e,"change",()=>{const i=Array.prototype.filter.call(e.options,o=>o.selected).map(o=>n?gt(on(o)):on(o));e._assign(e.multiple?r?new Set(i):i:i[0])}),e._assign=Et(s)},mounted(e,{value:t}){Vo(e,t)},beforeUpdate(e,t,n){e._assign=Et(n)},updated(e,{value:t}){Vo(e,t)}};function Vo(e,t){const n=e.multiple;if(!(n&&!H(t)&&!$t(t))){for(let s=0,r=e.options.length;s-1:i.selected=t.has(o);else if(ht(on(i),t)){e.selectedIndex!==s&&(e.selectedIndex=s);return}}!n&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function on(e){return"_value"in e?e._value:e.value}function kc(e,t){const n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}const ed={created(e,t,n){os(e,t,n,null,"created")},mounted(e,t,n){os(e,t,n,null,"mounted")},beforeUpdate(e,t,n,s){os(e,t,n,s,"beforeUpdate")},updated(e,t,n,s){os(e,t,n,s,"updated")}};function os(e,t,n,s,r){let i;switch(e.tagName){case"SELECT":i=Mc;break;case"TEXTAREA":i=vs;break;default:switch(n.props&&n.props.type){case"checkbox":i=ki;break;case"radio":i=Fi;break;default:i=vs}}const o=i[r];o&&o(e,t,n,s)}function td(){vs.getSSRProps=({value:e})=>({value:e}),Fi.getSSRProps=({value:e},t)=>{if(t.props&&ht(t.props.value,e))return{checked:!0}},ki.getSSRProps=({value:e},t)=>{if(H(e)){if(t.props&&Ls(e,t.props.value)>-1)return{checked:!0}}else if($t(e)){if(t.props&&e.has(t.props.value))return{checked:!0}}else if(e)return{checked:!0}}}const nd=["ctrl","shift","alt","meta"],sd={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>nd.some(n=>e[`${n}Key`]&&!t.includes(n))},rd=(e,t)=>(n,...s)=>{for(let r=0;rn=>{if(!("key"in n))return;const s=Ue(n.key);if(t.some(r=>r===s||id[r]===s))return e(n)},Fc={beforeMount(e,{value:t},{transition:n}){e._vod=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):hn(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:s}){!t!=!n&&(s?t?(s.beforeEnter(e),hn(e,!0),s.enter(e)):s.leave(e,()=>{hn(e,!1)}):hn(e,t))},beforeUnmount(e,{value:t}){hn(e,t)}};function hn(e,t){e.style.display=t?e._vod:"none"}function ld(){Fc.getSSRProps=({value:e})=>{if(!e)return{style:{display:"none"}}}}const Lc=G({patchProp:Bp},Tp);let On,Uo=!1;function Dc(){return On||(On=sc(Lc))}function Bc(){return On=Uo?On:rc(Lc),Uo=!0,On}const Vr=(...e)=>{Dc().render(...e)},$c=(...e)=>{Bc().hydrate(...e)},cd=(...e)=>{const t=Dc().createApp(...e),{mount:n}=t;return t.mount=s=>{const r=Hc(s);if(!r)return;const i=t._component;!x(i)&&!i.render&&!i.template&&(i.template=r.innerHTML),r.innerHTML="";const o=n(r,!1,r instanceof SVGElement);return r instanceof Element&&(r.removeAttribute("v-cloak"),r.setAttribute("data-v-app","")),o},t},fd=(...e)=>{const t=Bc().createApp(...e),{mount:n}=t;return t.mount=s=>{const r=Hc(s);if(r)return n(r,!0,r instanceof SVGElement)},t};function Hc(e){return q(e)?document.querySelector(e):e}let Ko=!1;const ad=()=>{Ko||(Ko=!0,td(),ld())};var fg=Object.freeze({__proto__:null,[Symbol.toStringTag]:"Module",Transition:Mi,TransitionGroup:zp,VueElement:Gs,createApp:cd,createSSRApp:fd,defineCustomElement:wc,defineSSRCustomElement:Hp,hydrate:$c,initDirectivesForSSR:ad,render:Vr,useCssModule:Up,useCssVars:Kp,vModelCheckbox:ki,vModelDynamic:ed,vModelRadio:Fi,vModelSelect:Mc,vModelText:vs,vShow:Fc,withKeys:od,withModifiers:rd,EffectScope:Gr,ReactiveEffect:xn,customRef:Ma,effect:ea,effectScope:Yf,getCurrentScope:Zf,isProxy:ri,isReactive:Mt,isReadonly:tn,isRef:pe,isShallow:si,markRaw:ii,onScopeDispose:Qf,proxyRefs:ci,reactive:Us,readonly:ni,ref:as,shallowReactive:Tl,shallowReadonly:Na,shallowRef:Oa,stop:ta,toRaw:Y,toRef:Nl,toRefs:ka,triggerRef:Aa,unref:wl,camelize:be,capitalize:Ht,normalizeClass:jn,normalizeProps:kf,normalizeStyle:Kn,toDisplayString:Uf,toHandlerKey:Xt,BaseTransition:Ci,Comment:Ee,Fragment:ge,KeepAlive:mu,Static:pt,Suspense:iu,Teleport:Du,Text:Lt,callWithAsyncErrorHandling:Re,callWithErrorHandling:qe,cloneVNode:_t,compatUtils:Cp,computed:bc,createBlock:Oi,createCommentVNode:Wu,createElementBlock:Uu,createElementVNode:Pi,createHydrationRenderer:rc,createPropsRestProxy:dp,createRenderer:sc,createSlots:zu,createStaticVNode:xu,createTextVNode:Ai,createVNode:ie,defineAsyncComponent:hu,defineComponent:Si,defineEmits:lp,defineExpose:cp,defineProps:op,get devtools(){return at},getCurrentInstance:St,getTransitionRawChildren:qs,guardReactiveProps:ac,h:Cc,handleError:Kt,initCustomFormatter:mp,inject:Tn,isMemoSame:Tc,isRuntimeOnly:tp,isVNode:yt,mergeDefaults:pp,mergeProps:uc,nextTick:ai,onActivated:Vl,onBeforeMount:jl,onBeforeUnmount:Ys,onBeforeUpdate:xl,onDeactivated:Ul,onErrorCaptured:Jl,onMounted:zn,onRenderTracked:zl,onRenderTriggered:ql,onServerPrefetch:Wl,onUnmounted:Zs,onUpdated:Js,openBlock:Qs,popScopeId:Qa,provide:Dl,pushScopeId:Za,queuePostFlushCb:pi,registerRuntimeCompiler:ep,renderList:qu,renderSlot:Ju,resolveComponent:$u,resolveDirective:Vu,resolveDynamicComponent:Hu,resolveFilter:Ep,resolveTransitionHooks:nn,setBlockTracking:Ir,setDevtoolsHook:hi,setTransitionHooks:Ft,ssrContextKey:Sc,ssrUtils:bp,toHandlers:Yu,transformVNodeArgs:Ku,useAttrs:up,useSSRContext:gp,useSlots:ap,useTransitionState:Ei,version:Dr,warn:Ol,watch:vn,watchEffect:au,watchPostEffect:Bl,watchSyncEffect:uu,withAsyncContext:hp,withCtx:yi,withDefaults:fp,withDirectives:Pu,withMemo:yp,withScopeId:Xa});function Li(e){throw e}function Vc(e){}function le(e,t,n,s){const r=e,i=new SyntaxError(String(r));return i.code=e,i.loc=t,i}const Dn=Symbol(""),Pn=Symbol(""),Di=Symbol(""),ws=Symbol(""),Uc=Symbol(""),Dt=Symbol(""),Kc=Symbol(""),jc=Symbol(""),Bi=Symbol(""),$i=Symbol(""),Jn=Symbol(""),Hi=Symbol(""),xc=Symbol(""),Vi=Symbol(""),Ns=Symbol(""),Ui=Symbol(""),Ki=Symbol(""),ji=Symbol(""),xi=Symbol(""),Wc=Symbol(""),qc=Symbol(""),er=Symbol(""),Os=Symbol(""),Wi=Symbol(""),qi=Symbol(""),Bn=Symbol(""),Yn=Symbol(""),zi=Symbol(""),Ur=Symbol(""),ud=Symbol(""),Kr=Symbol(""),Ps=Symbol(""),pd=Symbol(""),dd=Symbol(""),Ji=Symbol(""),hd=Symbol(""),gd=Symbol(""),Yi=Symbol(""),zc=Symbol(""),Ct={[Dn]:"Fragment",[Pn]:"Teleport",[Di]:"Suspense",[ws]:"KeepAlive",[Uc]:"BaseTransition",[Dt]:"openBlock",[Kc]:"createBlock",[jc]:"createElementBlock",[Bi]:"createVNode",[$i]:"createElementVNode",[Jn]:"createCommentVNode",[Hi]:"createTextVNode",[xc]:"createStaticVNode",[Vi]:"resolveComponent",[Ns]:"resolveDynamicComponent",[Ui]:"resolveDirective",[Ki]:"resolveFilter",[ji]:"withDirectives",[xi]:"renderList",[Wc]:"renderSlot",[qc]:"createSlots",[er]:"toDisplayString",[Os]:"mergeProps",[Wi]:"normalizeClass",[qi]:"normalizeStyle",[Bn]:"normalizeProps",[Yn]:"guardReactiveProps",[zi]:"toHandlers",[Ur]:"camelize",[ud]:"capitalize",[Kr]:"toHandlerKey",[Ps]:"setBlockTracking",[pd]:"pushScopeId",[dd]:"popScopeId",[Ji]:"withCtx",[hd]:"unref",[gd]:"isRef",[Yi]:"withMemo",[zc]:"isMemoSame"};function md(e){Object.getOwnPropertySymbols(e).forEach(t=>{Ct[t]=e[t]})}const ke={source:"",start:{line:1,column:1,offset:0},end:{line:1,column:1,offset:0}};function yd(e,t=ke){return{type:0,children:e,helpers:[],components:[],directives:[],hoists:[],imports:[],cached:0,temps:0,codegenNode:void 0,loc:t}}function $n(e,t,n,s,r,i,o,l=!1,c=!1,f=!1,a=ke){return e&&(l?(e.helper(Dt),e.helper(fn(e.inSSR,f))):e.helper(cn(e.inSSR,f)),o&&e.helper(ji)),{type:13,tag:t,props:n,children:s,patchFlag:r,dynamicProps:i,directives:o,isBlock:l,disableTracking:c,isComponent:f,loc:a}}function Zn(e,t=ke){return{type:17,loc:t,elements:e}}function Be(e,t=ke){return{type:15,loc:t,properties:e}}function fe(e,t){return{type:16,loc:ke,key:q(e)?z(e,!0):e,value:t}}function z(e,t=!1,n=ke,s=0){return{type:4,loc:n,content:e,isStatic:t,constType:t?3:s}}function Je(e,t=ke){return{type:8,loc:t,children:e}}function ue(e,t=[],n=ke){return{type:14,loc:n,callee:e,arguments:t}}function ln(e,t=void 0,n=!1,s=!1,r=ke){return{type:18,params:e,returns:t,newline:n,isSlot:s,loc:r}}function jr(e,t,n,s=!0){return{type:19,test:e,consequent:t,alternate:n,newline:s,loc:ke}}function _d(e,t,n=!1){return{type:20,index:e,value:t,isVNode:n,loc:ke}}function bd(e){return{type:21,body:e,loc:ke}}const Te=e=>e.type===4&&e.isStatic,Yt=(e,t)=>e===t||e===Ue(t);function Jc(e){if(Yt(e,"Teleport"))return Pn;if(Yt(e,"Suspense"))return Di;if(Yt(e,"KeepAlive"))return ws;if(Yt(e,"BaseTransition"))return Uc}const Ed=/^\d|[^\$\w]/,Zi=e=>!Ed.test(e),Cd=/[A-Za-z_$\xA0-\uFFFF]/,Sd=/[\.\?\w$\xA0-\uFFFF]/,Td=/\s+[.[]\s*|\s*[.[]\s+/g,vd=e=>{e=e.trim().replace(Td,o=>o.trim());let t=0,n=[],s=0,r=0,i=null;for(let o=0;ot.type===7&&t.name==="bind"&&(!t.arg||t.arg.type!==4||!t.arg.isStatic))}function gr(e){return e.type===5||e.type===2}function Nd(e){return e.type===7&&e.name==="slot"}function Is(e){return e.type===1&&e.tagType===3}function Ms(e){return e.type===1&&e.tagType===2}function cn(e,t){return e||t?Bi:$i}function fn(e,t){return e||t?Kc:jc}const Od=new Set([Bn,Yn]);function Qc(e,t=[]){if(e&&!q(e)&&e.type===14){const n=e.callee;if(!q(n)&&Od.has(n))return Qc(e.arguments[0],t.concat(e))}return[e,t]}function ks(e,t,n){let s,r=e.type===13?e.props:e.arguments[2],i=[],o;if(r&&!q(r)&&r.type===14){const l=Qc(r);r=l[0],i=l[1],o=i[i.length-1]}if(r==null||q(r))s=Be([t]);else if(r.type===14){const l=r.arguments[0];!q(l)&&l.type===15?l.properties.unshift(t):r.callee===zi?s=ue(n.helper(Os),[Be([t]),r]):r.arguments.unshift(Be([t])),!s&&(s=r)}else if(r.type===15){let l=!1;if(t.key.type===4){const c=t.key.content;l=r.properties.some(f=>f.key.type===4&&f.key.content===c)}l||r.properties.unshift(t),s=r}else s=ue(n.helper(Os),[Be([t]),r]),o&&o.callee===Yn&&(o=i[i.length-2]);e.type===13?o?o.arguments[0]=s:e.props=s:o?o.arguments[0]=s:e.arguments[2]=s}function Hn(e,t){return`_${t}_${e.replace(/[^\w]/g,(n,s)=>n==="-"?"_":e.charCodeAt(s).toString())}`}function Pd(e){return e.type===14&&e.callee===Yi?e.arguments[1].returns:e}function Qi(e,{helper:t,removeHelper:n,inSSR:s}){e.isBlock||(e.isBlock=!0,n(cn(s,e.isComponent)),t(Dt),t(fn(s,e.isComponent)))}function jo(e,t){const n=t.options?t.options.compatConfig:t.compatConfig,s=n&&n[e];return e==="MODE"?s||3:s}function kt(e,t){const n=jo("MODE",t),s=jo(e,t);return n===3?s===!0:s!==!1}function Vn(e,t,n,...s){return kt(e,t)}const Ad=/&(gt|lt|amp|apos|quot);/g,Rd={gt:">",lt:"<",amp:"&",apos:"'",quot:'"'},xo={delimiters:["{{","}}"],getNamespace:()=>0,getTextMode:()=>0,isVoidTag:fs,isPreTag:fs,isCustomElement:fs,decodeEntities:e=>e.replace(Ad,(t,n)=>Rd[n]),onError:Li,onWarn:Vc,comments:!1};function Id(e,t={}){const n=Md(e,t),s=Ie(n);return yd(Xi(n,0,[]),He(n,s))}function Md(e,t){const n=G({},xo);let s;for(s in t)n[s]=t[s]===void 0?xo[s]:t[s];return{options:n,column:1,line:1,offset:0,originalSource:e,source:e,inPre:!1,inVPre:!1,onWarn:n.onWarn}}function Xi(e,t,n){const s=nr(n),r=s?s.ns:0,i=[];for(;!Ud(e,t,n);){const l=e.source;let c;if(t===0||t===1){if(!e.inVPre&&ye(l,e.options.delimiters[0]))c=Hd(e,t);else if(t===0&&l[0]==="<")if(l.length===1)ee(e,5,1);else if(l[1]==="!")ye(l,"=0;){const f=o[l];f&&f.type===9&&(c+=f.branches.length)}return()=>{if(i)s.codegenNode=Yo(r,c,n);else{const f=ph(s.codegenNode);f.alternate=Yo(r,c+s.branches.length-1,n)}}}));function uh(e,t,n,s){if(t.name!=="else"&&(!t.exp||!t.exp.content.trim())){const r=t.exp?t.exp.loc:e.loc;n.onError(le(28,t.loc)),t.exp=z("true",!1,r)}if(t.name==="if"){const r=Jo(e,t),i={type:9,loc:e.loc,branches:[r]};if(n.replaceNode(i),s)return s(i,r,!0)}else{const r=n.parent.children;let i=r.indexOf(e);for(;i-->=-1;){const o=r[i];if(o&&o.type===2&&!o.content.trim().length){n.removeNode(o);continue}if(o&&o.type===9){t.name==="else-if"&&o.branches[o.branches.length-1].condition===void 0&&n.onError(le(30,e.loc)),n.removeNode();const l=Jo(e,t);o.branches.push(l);const c=s&&s(o,l,!1);sr(l,n),c&&c(),n.currentNode=null}else n.onError(le(30,e.loc));break}}}function Jo(e,t){return{type:10,loc:e.loc,condition:t.name==="else"?void 0:t.exp,children:e.tagType===3&&!De(e,"for")?e.children:[e],userKey:tr(e,"key")}}function Yo(e,t,n){return e.condition?jr(e.condition,Zo(e,t,n),ue(n.helper(Jn),['""',"true"])):Zo(e,t,n)}function Zo(e,t,n){const{helper:s}=n,r=fe("key",z(`${t}`,!1,ke,2)),{children:i}=e,o=i[0];if(i.length!==1||o.type!==1)if(i.length===1&&o.type===11){const c=o.codegenNode;return ks(c,r,n),c}else{let c=64;return $n(n,s(Dn),Be([r]),i,c+"",void 0,void 0,!0,!1,!1,e.loc)}else{const c=o.codegenNode,f=Pd(c);return f.type===13&&Qi(f,n),ks(f,r,n),c}}function ph(e){for(;;)if(e.type===19)if(e.alternate.type===19)e=e.alternate;else return e;else e.type===20&&(e=e.value)}const dh=rf("for",(e,t,n)=>{const{helper:s,removeHelper:r}=n;return hh(e,t,n,i=>{const o=ue(s(xi),[i.source]),l=Is(e),c=De(e,"memo"),f=tr(e,"key"),a=f&&(f.type===6?z(f.value.content,!0):f.exp),u=f?fe("key",a):null,d=i.source.type===4&&i.source.constType>0,m=d?64:f?128:256;return i.codegenNode=$n(n,s(Dn),void 0,o,m+"",void 0,void 0,!0,!d,!1,e.loc),()=>{let b;const{children:S}=i,g=S.length!==1||S[0].type!==1,_=Ms(e)?e:l&&e.children.length===1&&Ms(e.children[0])?e.children[0]:null;if(_?(b=_.codegenNode,l&&u&&ks(b,u,n)):g?b=$n(n,s(Dn),u?Be([u]):void 0,e.children,64+"",void 0,void 0,!0,void 0,!1):(b=S[0].codegenNode,l&&u&&ks(b,u,n),b.isBlock!==!d&&(b.isBlock?(r(Dt),r(fn(n.inSSR,b.isComponent))):r(cn(n.inSSR,b.isComponent))),b.isBlock=!d,b.isBlock?(s(Dt),s(fn(n.inSSR,b.isComponent))):s(cn(n.inSSR,b.isComponent))),c){const y=ln(qr(i.parseResult,[z("_cached")]));y.body=bd([Je(["const _memo = (",c.exp,")"]),Je(["if (_cached",...a?[" && _cached.key === ",a]:[],` && ${n.helperString(zc)}(_cached, _memo)) return _cached`]),Je(["const _item = ",b]),z("_item.memo = _memo"),z("return _item")]),o.arguments.push(y,z("_cache"),z(String(n.cached++)))}else o.arguments.push(ln(qr(i.parseResult),b,!0))}})});function hh(e,t,n,s){if(!t.exp){n.onError(le(31,t.loc));return}const r=cf(t.exp);if(!r){n.onError(le(32,t.loc));return}const{addIdentifiers:i,removeIdentifiers:o,scopes:l}=n,{source:c,value:f,key:a,index:u}=r,d={type:11,loc:t.loc,source:c,valueAlias:f,keyAlias:a,objectIndexAlias:u,parseResult:r,children:Is(e)?e.children:[e]};n.replaceNode(d),l.vFor++;const m=s&&s(d);return()=>{l.vFor--,m&&m()}}const gh=/([\s\S]*?)\s+(?:in|of)\s+([\s\S]*)/,Qo=/,([^,\}\]]*)(?:,([^,\}\]]*))?$/,mh=/^\(|\)$/g;function cf(e,t){const n=e.loc,s=e.content,r=s.match(gh);if(!r)return;const[,i,o]=r,l={source:ls(n,o.trim(),s.indexOf(o,i.length)),value:void 0,key:void 0,index:void 0};let c=i.trim().replace(mh,"").trim();const f=i.indexOf(c),a=c.match(Qo);if(a){c=c.replace(Qo,"").trim();const u=a[1].trim();let d;if(u&&(d=s.indexOf(u,f+c.length),l.key=ls(n,u,d)),a[2]){const m=a[2].trim();m&&(l.index=ls(n,m,s.indexOf(m,l.key?d+u.length:f+c.length)))}}return c&&(l.value=ls(n,c,f)),l}function ls(e,t,n){return z(t,!1,Zc(e,n,t.length))}function qr({value:e,key:t,index:n},s=[]){return yh([e,t,n,...s])}function yh(e){let t=e.length;for(;t--&&!e[t];);return e.slice(0,t+1).map((n,s)=>n||z("_".repeat(s+1),!1))}const Xo=z("undefined",!1),_h=(e,t)=>{if(e.type===1&&(e.tagType===1||e.tagType===3)){const n=De(e,"slot");if(n)return n.exp,t.scopes.vSlot++,()=>{t.scopes.vSlot--}}},bh=(e,t,n)=>ln(e,t,!1,!0,t.length?t[0].loc:n);function Eh(e,t,n=bh){t.helper(Ji);const{children:s,loc:r}=e,i=[],o=[];let l=t.scopes.vSlot>0||t.scopes.vFor>0;const c=De(e,"slot",!0);if(c){const{arg:S,exp:g}=c;S&&!Te(S)&&(l=!0),i.push(fe(S||z("default",!0),n(g,s,r)))}let f=!1,a=!1;const u=[],d=new Set;for(let S=0;S{const y=n(g,_,r);return t.compatConfig&&(y.isNonScopedSlot=!0),fe("default",y)};f?u.length&&u.some(g=>ff(g))&&(a?t.onError(le(39,u[0].loc)):i.push(S(void 0,u))):i.push(S(void 0,s))}const m=l?2:hs(e.children)?3:1;let b=Be(i.concat(fe("_",z(m+"",!1))),r);return o.length&&(b=ue(t.helper(qc),[b,Zn(o)])),{slots:b,hasDynamicSlots:l}}function cs(e,t){return Be([fe("name",e),fe("fn",t)])}function hs(e){for(let t=0;tfunction(){if(e=t.currentNode,!(e.type===1&&(e.tagType===0||e.tagType===1)))return;const{tag:s,props:r}=e,i=e.tagType===1;let o=i?Sh(e,t):`"${s}"`;const l=ce(o)&&o.callee===Ns;let c,f,a,u=0,d,m,b,S=l||o===Pn||o===Di||!i&&(s==="svg"||s==="foreignObject");if(r.length>0){const g=uf(e,t);c=g.props,u=g.patchFlag,m=g.dynamicPropNames;const _=g.directives;b=_&&_.length?Zn(_.map(y=>vh(y,t))):void 0,g.shouldUseBlock&&(S=!0)}if(e.children.length>0)if(o===ws&&(S=!0,u|=1024),i&&o!==Pn&&o!==ws){const{slots:_,hasDynamicSlots:y}=Eh(e,t);f=_,y&&(u|=1024)}else if(e.children.length===1&&o!==Pn){const _=e.children[0],y=_.type,T=y===5||y===8;T&&$e(_,t)===0&&(u|=1),T||y===2?f=_:f=e.children}else f=e.children;u!==0&&(a=String(u),m&&m.length&&(d=wh(m))),e.codegenNode=$n(t,o,c,f,a,d,b,!!S,!1,i,e.loc)};function Sh(e,t,n=!1){let{tag:s}=e;const r=zr(s),i=tr(e,"is");if(i)if(r||kt("COMPILER_IS_ON_ELEMENT",t)){const c=i.type===6?i.value&&z(i.value.content,!0):i.exp;if(c)return ue(t.helper(Ns),[c])}else i.type===6&&i.value.content.startsWith("vue:")&&(s=i.value.content.slice(4));const o=!r&&De(e,"is");if(o&&o.exp)return ue(t.helper(Ns),[o.exp]);const l=Jc(s)||t.isBuiltInComponent(s);return l?(n||t.helper(l),l):(t.helper(Vi),t.components.add(s),Hn(s,"component"))}function uf(e,t,n=e.props,s=!1){const{tag:r,loc:i,children:o}=e,l=e.tagType===1;let c=[];const f=[],a=[],u=o.length>0;let d=!1,m=0,b=!1,S=!1,g=!1,_=!1,y=!1,T=!1;const w=[],D=({key:E,value:v})=>{if(Te(E)){const O=E.content,L=Bt(O);if(!l&&L&&O.toLowerCase()!=="onclick"&&O!=="onUpdate:modelValue"&&!Rt(O)&&(_=!0),L&&Rt(O)&&(T=!0),v.type===20||(v.type===4||v.type===8)&&$e(v,t)>0)return;O==="ref"?b=!0:O==="class"?S=!0:O==="style"?g=!0:O!=="key"&&!w.includes(O)&&w.push(O),l&&(O==="class"||O==="style")&&!w.includes(O)&&w.push(O)}else y=!0};for(let E=0;E0&&c.push(fe(z("ref_for",!0),z("true")))),L==="is"&&(zr(r)||$&&$.content.startsWith("vue:")||kt("COMPILER_IS_ON_ELEMENT",t)))continue;c.push(fe(z(L,!0,Zc(O,0,L.length)),z($?$.content:"",N,$?$.loc:O)))}else{const{name:O,arg:L,exp:$,loc:N}=v,U=O==="bind",J=O==="on";if(O==="slot"){l||t.onError(le(40,N));continue}if(O==="once"||O==="memo"||O==="is"||U&&At(L,"is")&&(zr(r)||kt("COMPILER_IS_ON_ELEMENT",t))||J&&s)continue;if((U&&At(L,"key")||J&&u&&At(L,"vue:before-update"))&&(d=!0),U&&At(L,"ref")&&t.scopes.vFor>0&&c.push(fe(z("ref_for",!0),z("true"))),!L&&(U||J)){if(y=!0,$)if(c.length&&(f.push(Be(yr(c),i)),c=[]),U){if(kt("COMPILER_V_BIND_OBJECT_ORDER",t)){f.unshift($);continue}f.push($)}else f.push({type:14,loc:N,callee:t.helper(zi),arguments:[$]});else t.onError(le(U?34:35,N));continue}const Ye=t.directiveTransforms[O];if(Ye){const{props:ae,needRuntime:ne}=Ye(v,e,t);!s&&ae.forEach(D),c.push(...ae),ne&&(a.push(v),an(ne)&&af.set(v,ne))}else Wf(O)||(a.push(v),u&&(d=!0))}}let M;if(f.length?(c.length&&f.push(Be(yr(c),i)),f.length>1?M=ue(t.helper(Os),f,i):M=f[0]):c.length&&(M=Be(yr(c),i)),y?m|=16:(S&&!l&&(m|=2),g&&!l&&(m|=4),w.length&&(m|=8),_&&(m|=32)),!d&&(m===0||m===32)&&(b||T||a.length>0)&&(m|=512),!t.inSSR&&M)switch(M.type){case 15:let E=-1,v=-1,O=!1;for(let N=0;Nfe(o,i)),r))}return Zn(n,e.loc)}function wh(e){let t="[";for(let n=0,s=e.length;n{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},Oh=/-(\w)/g,Go=Nh(e=>e.replace(Oh,(t,n)=>n?n.toUpperCase():"")),Ph=(e,t)=>{if(Ms(e)){const{children:n,loc:s}=e,{slotName:r,slotProps:i}=Ah(e,t),o=[t.prefixIdentifiers?"_ctx.$slots":"$slots",r,"{}","undefined","true"];let l=2;i&&(o[2]=i,l=3),n.length&&(o[3]=ln([],n,!1,!1,s),l=4),t.scopeId&&!t.slotted&&(l=5),o.splice(l),e.codegenNode=ue(t.helper(Wc),o,s)}};function Ah(e,t){let n='"default"',s;const r=[];for(let i=0;i0){const{props:i,directives:o}=uf(e,t,r);s=i,o.length&&t.onError(le(36,o[0].loc))}return{slotName:n,slotProps:s}}const Rh=/^\s*([\w$_]+|(async\s*)?\([^)]*?\))\s*=>|^\s*(async\s+)?function(?:\s+[\w$]+)?\s*\(/,pf=(e,t,n,s)=>{const{loc:r,modifiers:i,arg:o}=e;!e.exp&&!i.length&&n.onError(le(35,r));let l;if(o.type===4)if(o.isStatic){let u=o.content;u.startsWith("vue:")&&(u=`vnode-${u.slice(4)}`),l=z(Xt(be(u)),!0,o.loc)}else l=Je([`${n.helperString(Kr)}(`,o,")"]);else l=o,l.children.unshift(`${n.helperString(Kr)}(`),l.children.push(")");let c=e.exp;c&&!c.content.trim()&&(c=void 0);let f=n.cacheHandlers&&!c&&!n.inVOnce;if(c){const u=Yc(c.content),d=!(u||Rh.test(c.content)),m=c.content.includes(";");(d||f&&u)&&(c=Je([`${d?"$event":"(...args)"} => ${m?"{":"("}`,c,m?"}":")"]))}let a={props:[fe(l,c||z("() => {}",!1,r))]};return s&&(a=s(a)),f&&(a.props[0].value=n.cache(a.props[0].value)),a.props.forEach(u=>u.key.isHandlerKey=!0),a},Ih=(e,t,n)=>{const{exp:s,modifiers:r,loc:i}=e,o=e.arg;return o.type!==4?(o.children.unshift("("),o.children.push(') || ""')):o.isStatic||(o.content=`${o.content} || ""`),r.includes("camel")&&(o.type===4?o.isStatic?o.content=be(o.content):o.content=`${n.helperString(Ur)}(${o.content})`:(o.children.unshift(`${n.helperString(Ur)}(`),o.children.push(")"))),n.inSSR||(r.includes("prop")&&el(o,"."),r.includes("attr")&&el(o,"^")),!s||s.type===4&&!s.content.trim()?(n.onError(le(34,i)),{props:[fe(o,z("",!0,i))]}):{props:[fe(o,s)]}},el=(e,t)=>{e.type===4?e.isStatic?e.content=t+e.content:e.content=`\`${t}\${${e.content}}\``:(e.children.unshift(`'${t}' + (`),e.children.push(")"))},Mh=(e,t)=>{if(e.type===0||e.type===1||e.type===11||e.type===10)return()=>{const n=e.children;let s,r=!1;for(let i=0;ii.type===7&&!t.directiveTransforms[i.name])&&e.tag!=="template")))for(let i=0;i{if(e.type===1&&De(e,"once",!0))return tl.has(e)||t.inVOnce?void 0:(tl.add(e),t.inVOnce=!0,t.helper(Ps),()=>{t.inVOnce=!1;const n=t.currentNode;n.codegenNode&&(n.codegenNode=t.cache(n.codegenNode,!0))})},df=(e,t,n)=>{const{exp:s,arg:r}=e;if(!s)return n.onError(le(41,e.loc)),_r();const i=s.loc.source,o=s.type===4?s.content:i;n.bindingMetadata[i];const l=!1;if(!o.trim()||!Yc(o)&&!l)return n.onError(le(42,s.loc)),_r();const c=r||z("modelValue",!0),f=r?Te(r)?`onUpdate:${r.content}`:Je(['"onUpdate:" + ',r]):"onUpdate:modelValue";let a;const u=n.isTS?"($event: any)":"$event";a=Je([`${u} => ((`,s,") = $event)"]);const d=[fe(c,e.exp),fe(f,a)];if(e.modifiers.length&&t.tagType===1){const m=e.modifiers.map(S=>(Zi(S)?S:JSON.stringify(S))+": true").join(", "),b=r?Te(r)?`${r.content}Modifiers`:Je([r,' + "Modifiers"']):"modelModifiers";d.push(fe(b,z(`{ ${m} }`,!1,e.loc,2)))}return _r(d)};function _r(e=[]){return{props:e}}const Fh=/[\w).+\-_$\]]/,Lh=(e,t)=>{!kt("COMPILER_FILTER",t)||(e.type===5&&Fs(e.content,t),e.type===1&&e.props.forEach(n=>{n.type===7&&n.name!=="for"&&n.exp&&Fs(n.exp,t)}))};function Fs(e,t){if(e.type===4)nl(e,t);else for(let n=0;n=0&&(y=n.charAt(_),y===" ");_--);(!y||!Fh.test(y))&&(o=!0)}}b===void 0?b=n.slice(0,m).trim():a!==0&&g();function g(){S.push(n.slice(a,m).trim()),a=m+1}if(S.length){for(m=0;m{if(e.type===1){const n=De(e,"memo");return!n||sl.has(e)?void 0:(sl.add(e),()=>{const s=e.codegenNode||t.currentNode.codegenNode;s&&s.type===13&&(e.tagType!==1&&Qi(s,t),e.codegenNode=ue(t.helper(Yi),[n.exp,ln(void 0,s),"_cache",String(t.cached++)]))})}};function $h(e){return[[kh,ah,Bh,dh,Lh,Ph,Ch,_h,Mh],{on:pf,bind:Ih,model:df}]}function Hh(e,t={}){const n=t.onError||Li,s=t.mode==="module";t.prefixIdentifiers===!0?n(le(46)):s&&n(le(47));const r=!1;t.cacheHandlers&&n(le(48)),t.scopeId&&!s&&n(le(49));const i=q(e)?Id(e,t):e,[o,l]=$h();return Wd(i,G({},t,{prefixIdentifiers:r,nodeTransforms:[...o,...t.nodeTransforms||[]],directiveTransforms:G({},l,t.directiveTransforms||{})})),Yd(i,G({},t,{prefixIdentifiers:r}))}const Vh=()=>({props:[]}),hf=Symbol(""),gf=Symbol(""),mf=Symbol(""),yf=Symbol(""),Jr=Symbol(""),_f=Symbol(""),bf=Symbol(""),Ef=Symbol(""),Cf=Symbol(""),Sf=Symbol("");md({[hf]:"vModelRadio",[gf]:"vModelCheckbox",[mf]:"vModelText",[yf]:"vModelSelect",[Jr]:"vModelDynamic",[_f]:"withModifiers",[bf]:"withKeys",[Ef]:"vShow",[Cf]:"Transition",[Sf]:"TransitionGroup"});let qt;function Uh(e,t=!1){return qt||(qt=document.createElement("div")),t?(qt.innerHTML=`
    `,qt.children[0].getAttribute("foo")):(qt.innerHTML=e,qt.textContent)}const Kh=ve("style,iframe,script,noscript",!0),jh={isVoidTag:Hf,isNativeTag:e=>Bf(e)||$f(e),isPreTag:e=>e==="pre",decodeEntities:Uh,isBuiltInComponent:e=>{if(Yt(e,"Transition"))return Cf;if(Yt(e,"TransitionGroup"))return Sf},getNamespace(e,t){let n=t?t.ns:0;if(t&&n===2)if(t.tag==="annotation-xml"){if(e==="svg")return 1;t.props.some(s=>s.type===6&&s.name==="encoding"&&s.value!=null&&(s.value.content==="text/html"||s.value.content==="application/xhtml+xml"))&&(n=0)}else/^m(?:[ions]|text)$/.test(t.tag)&&e!=="mglyph"&&e!=="malignmark"&&(n=0);else t&&n===1&&(t.tag==="foreignObject"||t.tag==="desc"||t.tag==="title")&&(n=0);if(n===0){if(e==="svg")return 1;if(e==="math")return 2}return n},getTextMode({tag:e,ns:t}){if(t===0){if(e==="textarea"||e==="title")return 1;if(Kh(e))return 2}return 0}},xh=e=>{e.type===1&&e.props.forEach((t,n)=>{t.type===6&&t.name==="style"&&t.value&&(e.props[n]={type:7,name:"bind",arg:z("style",!0,t.loc),exp:Wh(t.value.content,t.loc),modifiers:[],loc:t.loc})})},Wh=(e,t)=>{const n=ol(e);return z(JSON.stringify(n),!1,t,3)};function tt(e,t){return le(e,t)}const qh=(e,t,n)=>{const{exp:s,loc:r}=e;return s||n.onError(tt(50,r)),t.children.length&&(n.onError(tt(51,r)),t.children.length=0),{props:[fe(z("innerHTML",!0,r),s||z("",!0))]}},zh=(e,t,n)=>{const{exp:s,loc:r}=e;return s||n.onError(tt(52,r)),t.children.length&&(n.onError(tt(53,r)),t.children.length=0),{props:[fe(z("textContent",!0),s?ue(n.helperString(er),[s],r):z("",!0))]}},Jh=(e,t,n)=>{const s=df(e,t,n);if(!s.props.length||t.tagType===1)return s;e.arg&&n.onError(tt(55,e.arg.loc));const{tag:r}=t,i=n.isCustomElement(r);if(r==="input"||r==="textarea"||r==="select"||i){let o=mf,l=!1;if(r==="input"||i){const c=tr(t,"type");if(c){if(c.type===7)o=Jr;else if(c.value)switch(c.value.content){case"radio":o=hf;break;case"checkbox":o=gf;break;case"file":l=!0,n.onError(tt(56,e.loc));break}}else wd(t)&&(o=Jr)}else r==="select"&&(o=yf);l||(s.needRuntime=n.helper(o))}else n.onError(tt(54,e.loc));return s.props=s.props.filter(o=>!(o.key.type===4&&o.key.content==="modelValue")),s},Yh=ve("passive,once,capture"),Zh=ve("stop,prevent,self,ctrl,shift,alt,meta,exact,middle"),Qh=ve("left,right"),Tf=ve("onkeyup,onkeydown,onkeypress",!0),Xh=(e,t,n,s)=>{const r=[],i=[],o=[];for(let l=0;lTe(e)&&e.content.toLowerCase()==="onclick"?z(t,!0):e.type!==4?Je(["(",e,`) === "onClick" ? "${t}" : (`,e,")"]):e,Gh=(e,t,n)=>pf(e,t,n,s=>{const{modifiers:r}=e;if(!r.length)return s;let{key:i,value:o}=s.props[0];const{keyModifiers:l,nonKeyModifiers:c,eventOptionModifiers:f}=Xh(i,r,n,e.loc);if(c.includes("right")&&(i=rl(i,"onContextmenu")),c.includes("middle")&&(i=rl(i,"onMouseup")),c.length&&(o=ue(n.helper(_f),[o,JSON.stringify(c)])),l.length&&(!Te(i)||Tf(i.content))&&(o=ue(n.helper(bf),[o,JSON.stringify(l)])),f.length){const a=f.map(Ht).join("");i=Te(i)?z(`${i.content}${a}`,!0):Je(["(",i,`) + "${a}"`])}return{props:[fe(i,o)]}}),eg=(e,t,n)=>{const{exp:s,loc:r}=e;return s||n.onError(tt(58,r)),{props:[],needRuntime:n.helper(Ef)}},tg=(e,t)=>{e.type===1&&e.tagType===0&&(e.tag==="script"||e.tag==="style")&&(t.onError(tt(60,e.loc)),t.removeNode())},ng=[xh],sg={cloak:Vh,html:qh,text:zh,model:Jh,on:Gh,show:eg};function ag(e,t={}){return Hh(e,G({},jh,t,{nodeTransforms:[tg,...ng,...t.nodeTransforms||[]],directiveTransforms:G({},sg,t.directiveTransforms||{}),transformHoist:null}))}function rg(){return vf().__VUE_DEVTOOLS_GLOBAL_HOOK__}function vf(){return typeof navigator!="undefined"&&typeof window!="undefined"?window:typeof global!="undefined"?global:{}}const ig=typeof Proxy=="function",og="devtools-plugin:setup",lg="plugin:settings:set";class cg{constructor(t,n){this.target=null,this.targetQueue=[],this.onQueue=[],this.plugin=t,this.hook=n;const s={};if(t.settings)for(const o in t.settings){const l=t.settings[o];s[o]=l.defaultValue}const r=`__vue-devtools-plugin-settings__${t.id}`;let i=Object.assign({},s);try{const o=localStorage.getItem(r),l=JSON.parse(o);Object.assign(i,l)}catch{}this.fallbacks={getSettings(){return i},setSettings(o){try{localStorage.setItem(r,JSON.stringify(o))}catch{}i=o}},n&&n.on(lg,(o,l)=>{o===this.plugin.id&&this.fallbacks.setSettings(l)}),this.proxiedOn=new Proxy({},{get:(o,l)=>this.target?this.target.on[l]:(...c)=>{this.onQueue.push({method:l,args:c})}}),this.proxiedTarget=new Proxy({},{get:(o,l)=>this.target?this.target[l]:l==="on"?this.proxiedOn:Object.keys(this.fallbacks).includes(l)?(...c)=>(this.targetQueue.push({method:l,args:c,resolve:()=>{}}),this.fallbacks[l](...c)):(...c)=>new Promise(f=>{this.targetQueue.push({method:l,args:c,resolve:f})})})}async setRealTarget(t){this.target=t;for(const n of this.onQueue)this.target.on[n.method](...n.args);for(const n of this.targetQueue)n.resolve(await this.target[n.method](...n.args))}}function ug(e,t){const n=e,s=vf(),r=rg(),i=ig&&n.enableEarlyProxy;if(r&&(s.__VUE_DEVTOOLS_PLUGIN_API_AVAILABLE__||!i))r.emit(og,e,t);else{const o=i?new cg(n,r):null;(s.__VUE_DEVTOOLS_PLUGINS__=s.__VUE_DEVTOOLS_PLUGINS__||[]).push({pluginDescriptor:n,setupFn:t,proxy:o}),o&&t(o.proxiedTarget)}}export{Ae as $,Dl as A,Tn as B,Mt as C,Js as D,ii as E,xl as F,Ee as G,ge as H,yt as I,Mi as J,zp as K,Du as L,Vr as M,Pu as N,Vu as O,_t as P,Fc as Q,rd as R,Ai as S,Lt as T,Y as U,up as V,be as W,Ju as X,cd as Y,ep as Z,q as _,Ys as a,hi as a$,ag as a0,G as a1,fg as a2,Gr as a3,xn as a4,ea as a5,ri as a6,tn as a7,si as a8,ci as a9,hu as aA,lp as aB,cp as aC,op as aD,at as aE,qs as aF,ac as aG,Kt as aH,mp as aI,Tc as aJ,tp as aK,pp as aL,uc as aM,Jl as aN,zl as aO,ql as aP,Wl as aQ,Qs as aR,Qa as aS,Za as aT,pi as aU,qu as aV,$u as aW,Hu as aX,Ep as aY,nn as aZ,Ir as a_,Tl as aa,Na as ab,ta as ac,Aa as ad,Ht as ae,jn as af,kf as ag,Kn as ah,Uf as ai,Xt as aj,Ci as ak,mu as al,pt as am,iu as an,Re as ao,qe as ap,Cp as aq,Oi as ar,Wu as as,Uu as at,Pi as au,rc as av,dp as aw,sc as ax,zu as ay,xu as az,Vl as b,Ft as b0,Sc as b1,bp as b2,Yu as b3,Ku as b4,gp as b5,ap as b6,Ei as b7,Dr as b8,Ol as b9,Bl as ba,uu as bb,hp as bc,yi as bd,fp as be,yp as bf,Xa as bg,Gs as bh,fd as bi,wc as bj,Hp as bk,$c as bl,ad as bm,Up as bn,Kp as bo,ki as bp,ed as bq,Fi as br,Mc as bs,vs as bt,od as bu,ug as bv,ie as c,Si as d,Ul as e,au as f,ni as g,Cc as h,Ma as i,Yf as j,Zf as k,Qf as l,pe as m,ai as n,zn as o,bc as p,Us as q,as as r,Oa as s,ka as t,wl as u,Nl as v,vn as w,St as x,jl as y,Zs as z}; diff --git a/public/exadmin/assets/@vueuse.952f4739.js b/public/exadmin/assets/@vueuse.952f4739.js new file mode 100644 index 0000000..f6badb2 --- /dev/null +++ b/public/exadmin/assets/@vueuse.952f4739.js @@ -0,0 +1 @@ +import{i as Qe}from"./vue-demi.5fb18120.js";import{s as G,f as Re,g as le,u as C,r as p,w as D,i as $e,j as ir,k as lr,l as no,m as q,p as S,q as B,v as ro,t as cr,x as fe,y as oo,n as Ee,a as ao,o as ft,z as uo,A as so,B as Ce,C as io,D as fr,E as lo,F as co}from"./@vue.cb43a243.js";import"./vue.db505ee4.js";var fo=Object.defineProperty,vo=Object.defineProperties,po=Object.getOwnPropertyDescriptors,Et=Object.getOwnPropertySymbols,mo=Object.prototype.hasOwnProperty,ho=Object.prototype.propertyIsEnumerable,xt=(e,t,n)=>t in e?fo(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,go=(e,t)=>{for(var n in t||(t={}))mo.call(t,n)&&xt(e,n,t[n]);if(Et)for(var n of Et(t))ho.call(t,n)&&xt(e,n,t[n]);return e},yo=(e,t)=>vo(e,po(t));function Tt(e,t){var n;const r=G();return Re(()=>{r.value=e()},yo(go({},t),{flush:(n=t==null?void 0:t.flush)!=null?n:"sync"})),le(r)}var Dt;const Q=typeof window!="undefined",Ne=e=>typeof e!="undefined",_o=(e,...t)=>{e||console.warn(...t)},vr=Object.prototype.toString,wo=e=>typeof e=="boolean",oe=e=>typeof e=="function",ye=e=>typeof e=="number",xe=e=>typeof e=="string",dr=e=>vr.call(e)==="[object Object]",Oo=e=>typeof window!="undefined"&&vr.call(e)==="[object Window]",bo=()=>Date.now(),ce=()=>+Date.now(),Me=(e,t,n)=>Math.min(n,Math.max(t,e)),L=()=>{},Po=(e,t)=>(e=Math.ceil(e),t=Math.floor(t),Math.floor(Math.random()*(t-e+1))+e),ut=Q&&((Dt=window==null?void 0:window.navigator)==null?void 0:Dt.userAgent)&&/iP(ad|hone|od)/.test(window.navigator.userAgent),pr=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);function P(e){return typeof e=="function"?e():C(e)}function ve(e,t){function n(...r){e(()=>t.apply(this,r),{fn:t,thisArg:this,args:r})}return n}const Te=e=>e();function qe(e,t={}){let n,r;return a=>{const s=P(e),u=P(t.maxWait);if(n&&clearTimeout(n),s<=0||u!==void 0&&u<=0)return r&&(clearTimeout(r),r=null),a();u&&!r&&(r=setTimeout(()=>{n&&clearTimeout(n),r=null,a()},u)),n=setTimeout(()=>{r&&clearTimeout(r),r=null,a()},s)}}function De(e,t=!0,n=!0){let r=0,o,a=!0;const s=()=>{o&&(clearTimeout(o),o=void 0)};return i=>{const l=P(e),c=Date.now()-r;if(s(),l<=0)return r=Date.now(),i();c>l&&(n||!a)?(r=Date.now(),i()):t&&(o=setTimeout(()=>{r=Date.now(),a=!0,s(),i()},l)),!n&&!o&&(o=setTimeout(()=>a=!0,l)),a=!1}}function vt(e=Te){const t=p(!0);function n(){t.value=!1}function r(){t.value=!0}return{isActive:t,pause:n,resume:r,eventFilter:(...a)=>{t.value&&e(...a)}}}function So(e="this function"){}const $o={mounted:Qe?"mounted":"inserted",updated:Qe?"updated":"componentUpdated",unmounted:Qe?"unmounted":"unbind"};function ke(e,t=!1,n="Timeout"){return new Promise((r,o)=>{setTimeout(t?()=>o(n):r,e)})}function dt(e){return e}function mr(e){let t;function n(){return t||(t=e()),t}return n.reset=async()=>{const r=t;t=void 0,r&&await r},n}function Eo(e){return e()}function hr(e,...t){return t.some(n=>n in e)}function gr(e,t){var n;if(typeof e=="number")return e+t;const r=((n=e.match(/^-?[0-9]+\.?[0-9]*/))==null?void 0:n[0])||"",o=e.slice(r.length),a=parseFloat(r)+t;return Number.isNaN(a)?e:a+o}function yr(e,t,n=!1){return t.reduce((r,o)=>(o in e&&(!n||e[o]!==void 0)&&(r[o]=e[o]),r),{})}function Le(e,t){let n,r,o;const a=p(!0),s=()=>{a.value=!0,o()};D(e,s,{flush:"sync"});const u=oe(t)?t:t.get,i=oe(t)?void 0:t.set,l=$e((c,f)=>(r=c,o=f,{get(){return a.value&&(n=u(),a.value=!1),r(),n},set(v){i==null||i(v)}}));return Object.isExtensible(l)&&(l.trigger=s),l}function z(){const e=[],t=o=>{const a=e.indexOf(o);a!==-1&&e.splice(a,1)};return{on:o=>(e.push(o),{off:()=>t(o)}),off:t,trigger:o=>{e.forEach(a=>a(o))}}}function xo(e){let t=!1,n;const r=ir(!0);return()=>(t||(n=r.run(e),t=!0),n)}function To(e){const t=Symbol("InjectionState");return[(...o)=>{so(t,e(...o))},()=>Ce(t)]}function N(e){return lr()?(no(e),!0):!1}function Do(e){let t=0,n,r;const o=()=>{t-=1,r&&t<=0&&(r.stop(),n=void 0,r=void 0)};return(...a)=>(t+=1,n||(r=ir(!0),n=r.run(()=>e(...a))),N(o),n)}function _r(e,t,{enumerable:n=!1,unwrap:r=!0}={}){for(const[o,a]of Object.entries(t))o!=="value"&&(q(a)&&r?Object.defineProperty(e,o,{get(){return a.value},set(s){a.value=s},enumerable:n}):Object.defineProperty(e,o,{value:a,enumerable:n}));return e}function Io(e,t){return t==null?C(e):C(e)[t]}function Fo(e){return C(e)!=null}var jo=Object.defineProperty,It=Object.getOwnPropertySymbols,Ao=Object.prototype.hasOwnProperty,Co=Object.prototype.propertyIsEnumerable,Ft=(e,t,n)=>t in e?jo(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ro=(e,t)=>{for(var n in t||(t={}))Ao.call(t,n)&&Ft(e,n,t[n]);if(It)for(var n of It(t))Co.call(t,n)&&Ft(e,n,t[n]);return e};function No(e,t){if(typeof Symbol!="undefined"){const n=Ro({},e);return Object.defineProperty(n,Symbol.iterator,{enumerable:!1,value(){let r=0;return{next:()=>({value:t[r++],done:r>t.length})}}}),n}else return Object.assign([...t],e)}function st(e,t){const n=(t==null?void 0:t.computedGetter)===!1?C:P;return function(...r){return S(()=>e.apply(this,r.map(o=>n(o))))}}function Mo(e,t={}){let n=[],r;if(Array.isArray(t))n=t;else{r=t;const{includeOwnProperties:o=!0}=t;n.push(...Object.keys(e)),o&&n.push(...Object.getOwnPropertyNames(e))}return Object.fromEntries(n.map(o=>{const a=e[o];return[o,typeof a=="function"?st(a.bind(e),r):a]}))}function wr(e){if(!q(e))return B(e);const t=new Proxy({},{get(n,r,o){return C(Reflect.get(e.value,r,o))},set(n,r,o){return q(e.value[r])&&!q(o)?e.value[r].value=o:e.value[r]=o,!0},deleteProperty(n,r){return Reflect.deleteProperty(e.value,r)},has(n,r){return Reflect.has(e.value,r)},ownKeys(){return Object.keys(e.value)},getOwnPropertyDescriptor(){return{enumerable:!0,configurable:!0}}});return B(t)}function Or(e){return wr(S(e))}function ko(e,...t){const n=t.flat();return Or(()=>Object.fromEntries(Object.entries(cr(e)).filter(r=>!n.includes(r[0]))))}function Lo(e,...t){const n=t.flat();return B(Object.fromEntries(n.map(r=>[r,ro(e,r)])))}function jt(e,t=1e4){return $e((n,r)=>{let o=e,a;const s=()=>setTimeout(()=>{o=e,r()},P(t));return N(()=>{clearTimeout(a)}),{get(){return n(),o},set(u){o=u,r(),clearTimeout(a),a=s()}}})}function Xe(e,t=200,n={}){return ve(qe(t,n),e)}function Ze(e,t=200,n={}){if(t<=0)return e;const r=p(e.value),o=Xe(()=>{r.value=e.value},t,n);return D(e,()=>o()),r}function Vo(e,t){return S({get(){var n;return(n=e.value)!=null?n:t},set(n){e.value=n}})}function pt(e,t=200,n=!1,r=!0){return ve(De(t,n,r),e)}function et(e,t=200,n=!0,r=!0){if(t<=0)return e;const o=p(e.value),a=pt(()=>{o.value=e.value},t,n,r);return D(e,()=>a()),o}function br(e,t={}){let n=e,r,o;const a=$e((v,d)=>(r=v,o=d,{get(){return s()},set(m){u(m)}}));function s(v=!0){return v&&r(),n}function u(v,d=!0){var m,h;if(v===n)return;const g=n;((m=t.onBeforeChange)==null?void 0:m.call(t,v,g))!==!1&&(n=v,(h=t.onChanged)==null||h.call(t,v,g),d&&o())}return _r(a,{get:s,set:u,untrackedGet:()=>s(!1),silentSet:v=>u(v,!1),peek:()=>s(!1),lay:v=>u(v,!1)},{enumerable:!0})}const Wo=br;function re(e){return typeof e=="function"?S(e):p(e)}function Bo(...e){if(e.length===2){const[t,n]=e;t.value=n}if(e.length===3){const[t,n,r]=e;t[n]=r}}function it(e,t,n={}){var r,o;const{flush:a="sync",deep:s=!1,immediate:u=!0,direction:i="both",transform:l={}}=n;let c,f;const v=(r=l.ltr)!=null?r:m=>m,d=(o=l.rtl)!=null?o:m=>m;return(i==="both"||i==="ltr")&&(c=D(e,m=>t.value=v(m),{flush:a,deep:s,immediate:u})),(i==="both"||i==="rtl")&&(f=D(t,m=>e.value=d(m),{flush:a,deep:s,immediate:u})),()=>{c==null||c(),f==null||f()}}function Uo(e,t,n={}){const{flush:r="sync",deep:o=!1,immediate:a=!0}=n;return Array.isArray(t)||(t=[t]),D(e,s=>t.forEach(u=>u.value=s),{flush:r,deep:o,immediate:a})}var Ho=Object.defineProperty,zo=Object.defineProperties,Go=Object.getOwnPropertyDescriptors,At=Object.getOwnPropertySymbols,qo=Object.prototype.hasOwnProperty,Xo=Object.prototype.propertyIsEnumerable,Ct=(e,t,n)=>t in e?Ho(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Yo=(e,t)=>{for(var n in t||(t={}))qo.call(t,n)&&Ct(e,n,t[n]);if(At)for(var n of At(t))Xo.call(t,n)&&Ct(e,n,t[n]);return e},Ko=(e,t)=>zo(e,Go(t));function mt(e){if(!q(e))return cr(e);const t=Array.isArray(e.value)?new Array(e.value.length):{};for(const n in e.value)t[n]=$e(()=>({get(){return e.value[n]},set(r){if(Array.isArray(e.value)){const o=[...e.value];o[n]=r,e.value=o}else{const o=Ko(Yo({},e.value),{[n]:r});Object.setPrototypeOf(o,e.value),e.value=o}}}));return t}function Pr(e,t=!0){fe()?oo(e):t?e():Ee(e)}function Jo(e){fe()&&ao(e)}function Z(e,t=!0){fe()?ft(e):t?e():Ee(e)}function Sr(e){fe()&&uo(e)}function $r(e){let t=!1;function n(f,{flush:v="sync",deep:d=!1,timeout:m,throwOnTimeout:h}={}){let g=null;const y=[new Promise(w=>{g=D(e,$=>{f($)!==t&&(g==null||g(),w($))},{flush:v,deep:d,immediate:!0})})];return m!=null&&y.push(ke(m,h).then(()=>P(e)).finally(()=>g==null?void 0:g())),Promise.race(y)}function r(f,v){if(!q(f))return n($=>$===f,v);const{flush:d="sync",deep:m=!1,timeout:h,throwOnTimeout:g}=v!=null?v:{};let _=null;const w=[new Promise($=>{_=D([e,f],([b,E])=>{t!==(b===E)&&(_==null||_(),$(b))},{flush:d,deep:m,immediate:!0})})];return h!=null&&w.push(ke(h,g).then(()=>P(e)).finally(()=>(_==null||_(),P(e)))),Promise.race(w)}function o(f){return n(v=>Boolean(v),f)}function a(f){return r(null,f)}function s(f){return r(void 0,f)}function u(f){return n(Number.isNaN,f)}function i(f,v){return n(d=>{const m=Array.from(d);return m.includes(f)||m.includes(P(f))},v)}function l(f){return c(1,f)}function c(f=1,v){let d=-1;return n(()=>(d+=1,d>=f),v)}return Array.isArray(P(e))?{toMatch:n,toContains:i,changed:l,changedTimes:c,get not(){return t=!t,this}}:{toMatch:n,toBe:r,toBeTruthy:o,toBeNull:a,toBeNaN:u,toBeUndefined:s,changed:l,changedTimes:c,get not(){return t=!t,this}}}function Qo(e,t){return S(()=>P(e).every((n,r,o)=>t(P(n),r,o)))}function Zo(e,t){return S(()=>P(e).map(n=>P(n)).filter(t))}function ea(e,t){return S(()=>P(P(e).find((n,r,o)=>t(P(n),r,o))))}function ta(e,t){return S(()=>P(e).findIndex((n,r,o)=>t(P(n),r,o)))}function na(e,t){return S(()=>P(e).map(n=>P(n)).join(P(t)))}function ra(e,t){return S(()=>P(e).map(n=>P(n)).map(t))}function oa(e,t,...n){const r=(o,a,s)=>t(P(o),P(a),s);return S(()=>{const o=P(e);return n.length?o.reduce(r,P(n[0])):o.reduce(r)})}function aa(e,t){return S(()=>P(e).some((n,r,o)=>t(P(n),r,o)))}function ua(e=0,t={}){const n=p(e),{max:r=1/0,min:o=-1/0}=t,a=(c=1)=>n.value=Math.min(r,n.value+c),s=(c=1)=>n.value=Math.max(o,n.value-c),u=()=>n.value,i=c=>n.value=c;return{count:n,inc:a,dec:s,get:u,set:i,reset:(c=e)=>(e=c,i(c))}}const sa=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,ia=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,Er=(e,t,n)=>{const r=e.getFullYear(),o=e.getMonth(),a=e.getDate(),s=e.getHours(),u=e.getMinutes(),i=e.getSeconds(),l=e.getMilliseconds(),c=e.getDay(),f={YY:()=>String(r).slice(-2),YYYY:()=>r,M:()=>o+1,MM:()=>`${o+1}`.padStart(2,"0"),D:()=>String(a),DD:()=>`${a}`.padStart(2,"0"),H:()=>String(s),HH:()=>`${s}`.padStart(2,"0"),h:()=>`${s%12||12}`.padStart(1,"0"),hh:()=>`${s%12||12}`.padStart(2,"0"),m:()=>String(u),mm:()=>`${u}`.padStart(2,"0"),s:()=>String(i),ss:()=>`${i}`.padStart(2,"0"),SSS:()=>`${l}`.padStart(3,"0"),d:()=>c,dd:()=>e.toLocaleDateString(n,{weekday:"narrow"}),ddd:()=>e.toLocaleDateString(n,{weekday:"short"}),dddd:()=>e.toLocaleDateString(n,{weekday:"long"})};return t.replace(ia,(v,d)=>d||f[v]())},xr=e=>{if(e===null)return new Date(NaN);if(e===void 0)return new Date;if(e instanceof Date)return new Date(e);if(typeof e=="string"&&!/Z$/i.test(e)){const t=e.match(sa);if(t){const n=t[2]-1||0,r=(t[7]||"0").substring(0,3);return new Date(t[1],n,t[3]||1,t[4]||0,t[5]||0,t[6]||0,r)}}return new Date(e)};function la(e,t="HH:mm:ss",n={}){return S(()=>Er(xr(P(e)),P(t),n==null?void 0:n.locales))}function de(e,t=1e3,n={}){const{immediate:r=!0,immediateCallback:o=!1}=n;let a=null;const s=p(!1);function u(){a&&(clearInterval(a),a=null)}function i(){s.value=!1,u()}function l(){C(t)<=0||(s.value=!0,o&&e(),u(),a=setInterval(e,P(t)))}if(r&&Q&&l(),q(t)){const c=D(t,()=>{s.value&&Q&&l()});N(c)}return N(i),{isActive:s,pause:i,resume:l}}var ca=Object.defineProperty,Rt=Object.getOwnPropertySymbols,fa=Object.prototype.hasOwnProperty,va=Object.prototype.propertyIsEnumerable,Nt=(e,t,n)=>t in e?ca(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,da=(e,t)=>{for(var n in t||(t={}))fa.call(t,n)&&Nt(e,n,t[n]);if(Rt)for(var n of Rt(t))va.call(t,n)&&Nt(e,n,t[n]);return e};function pa(e=1e3,t={}){const{controls:n=!1,immediate:r=!0}=t,o=p(0),a=de(()=>o.value+=1,e,{immediate:r});return n?da({counter:o},a):o}function ma(e,t={}){var n;const r=p((n=t.initialValue)!=null?n:null);return D(e,()=>r.value=ce(),t),r}function we(e,t,n={}){const{immediate:r=!0}=n,o=p(!1);let a=null;function s(){a&&(clearTimeout(a),a=null)}function u(){o.value=!1,s()}function i(...l){s(),o.value=!0,a=setTimeout(()=>{o.value=!1,a=null,e(...l)},P(t))}return r&&(o.value=!0,Q&&i()),N(u),{isPending:o,start:i,stop:u}}var ha=Object.defineProperty,Mt=Object.getOwnPropertySymbols,ga=Object.prototype.hasOwnProperty,ya=Object.prototype.propertyIsEnumerable,kt=(e,t,n)=>t in e?ha(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,_a=(e,t)=>{for(var n in t||(t={}))ga.call(t,n)&&kt(e,n,t[n]);if(Mt)for(var n of Mt(t))ya.call(t,n)&&kt(e,n,t[n]);return e};function wa(e=1e3,t={}){const{controls:n=!1}=t,r=we(L,e,t),o=S(()=>!r.isPending.value);return n?_a({ready:o},r):o}function Oa(e,t={}){const{method:n="parseFloat",radix:r,nanToZero:o}=t;return S(()=>{let a=P(e);return typeof a=="string"&&(a=Number[n](a,r)),o&&isNaN(a)&&(a=0),a})}function ba(e){return S(()=>`${P(e)}`)}function Pa(e=!1,t={}){const{truthyValue:n=!0,falsyValue:r=!1}=t,o=q(e),a=p(e);function s(u){if(arguments.length)return a.value=u,a.value;{const i=P(n);return a.value=a.value===i?P(r):i,a.value}}return o?s:[a,s]}function Sa(e,t,n){let r=(n==null?void 0:n.immediate)?[]:[...e instanceof Function?e():Array.isArray(e)?e:C(e)];return D(e,(o,a,s)=>{const u=new Array(r.length),i=[];for(const c of o){let f=!1;for(let v=0;v!u[f]);t(o,r,i,l,s),r=[...o]},n)}var Lt=Object.getOwnPropertySymbols,$a=Object.prototype.hasOwnProperty,Ea=Object.prototype.propertyIsEnumerable,xa=(e,t)=>{var n={};for(var r in e)$a.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&Lt)for(var r of Lt(e))t.indexOf(r)<0&&Ea.call(e,r)&&(n[r]=e[r]);return n};function Oe(e,t,n={}){const r=n,{eventFilter:o=Te}=r,a=xa(r,["eventFilter"]);return D(e,ve(o,t),a)}var Vt=Object.getOwnPropertySymbols,Ta=Object.prototype.hasOwnProperty,Da=Object.prototype.propertyIsEnumerable,Ia=(e,t)=>{var n={};for(var r in e)Ta.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&Vt)for(var r of Vt(e))t.indexOf(r)<0&&Da.call(e,r)&&(n[r]=e[r]);return n};function Fa(e,t,n){const r=n,{count:o}=r,a=Ia(r,["count"]),s=p(0),u=Oe(e,(...i)=>{s.value+=1,s.value>=P(o)&&Ee(()=>u()),t(...i)},a);return{count:s,stop:u}}var ja=Object.defineProperty,Aa=Object.defineProperties,Ca=Object.getOwnPropertyDescriptors,Ve=Object.getOwnPropertySymbols,Tr=Object.prototype.hasOwnProperty,Dr=Object.prototype.propertyIsEnumerable,Wt=(e,t,n)=>t in e?ja(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ra=(e,t)=>{for(var n in t||(t={}))Tr.call(t,n)&&Wt(e,n,t[n]);if(Ve)for(var n of Ve(t))Dr.call(t,n)&&Wt(e,n,t[n]);return e},Na=(e,t)=>Aa(e,Ca(t)),Ma=(e,t)=>{var n={};for(var r in e)Tr.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&Ve)for(var r of Ve(e))t.indexOf(r)<0&&Dr.call(e,r)&&(n[r]=e[r]);return n};function Bt(e,t,n={}){const r=n,{debounce:o=0,maxWait:a=void 0}=r,s=Ma(r,["debounce","maxWait"]);return Oe(e,t,Na(Ra({},s),{eventFilter:qe(o,{maxWait:a})}))}var ka=Object.defineProperty,La=Object.defineProperties,Va=Object.getOwnPropertyDescriptors,We=Object.getOwnPropertySymbols,Ir=Object.prototype.hasOwnProperty,Fr=Object.prototype.propertyIsEnumerable,Ut=(e,t,n)=>t in e?ka(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Wa=(e,t)=>{for(var n in t||(t={}))Ir.call(t,n)&&Ut(e,n,t[n]);if(We)for(var n of We(t))Fr.call(t,n)&&Ut(e,n,t[n]);return e},Ba=(e,t)=>La(e,Va(t)),Ua=(e,t)=>{var n={};for(var r in e)Ir.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&We)for(var r of We(e))t.indexOf(r)<0&&Fr.call(e,r)&&(n[r]=e[r]);return n};function _e(e,t,n={}){const r=n,{eventFilter:o=Te}=r,a=Ua(r,["eventFilter"]),s=ve(o,t);let u,i,l;if(a.flush==="sync"){const c=p(!1);i=()=>{},u=f=>{c.value=!0,f(),c.value=!1},l=D(e,(...f)=>{c.value||s(...f)},a)}else{const c=[],f=p(0),v=p(0);i=()=>{f.value=v.value},c.push(D(e,()=>{v.value++},Ba(Wa({},a),{flush:"sync"}))),u=d=>{const m=v.value;d(),f.value+=v.value-m},c.push(D(e,(...d)=>{const m=f.value>0&&f.value===v.value;f.value=0,v.value=0,!m&&s(...d)},a)),l=()=>{c.forEach(d=>d())}}return{stop:l,ignoreUpdates:u,ignorePrevAsyncUpdates:i}}function Ha(e,t,n){const r=D(e,(...o)=>(Ee(()=>r()),t(...o)),n)}var za=Object.defineProperty,Ga=Object.defineProperties,qa=Object.getOwnPropertyDescriptors,Be=Object.getOwnPropertySymbols,jr=Object.prototype.hasOwnProperty,Ar=Object.prototype.propertyIsEnumerable,Ht=(e,t,n)=>t in e?za(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Xa=(e,t)=>{for(var n in t||(t={}))jr.call(t,n)&&Ht(e,n,t[n]);if(Be)for(var n of Be(t))Ar.call(t,n)&&Ht(e,n,t[n]);return e},Ya=(e,t)=>Ga(e,qa(t)),Ka=(e,t)=>{var n={};for(var r in e)jr.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&Be)for(var r of Be(e))t.indexOf(r)<0&&Ar.call(e,r)&&(n[r]=e[r]);return n};function Ue(e,t,n={}){const r=n,{eventFilter:o}=r,a=Ka(r,["eventFilter"]),{eventFilter:s,pause:u,resume:i,isActive:l}=vt(o);return{stop:Oe(e,t,Ya(Xa({},a),{eventFilter:s})),pause:u,resume:i,isActive:l}}var Ja=Object.defineProperty,Qa=Object.defineProperties,Za=Object.getOwnPropertyDescriptors,He=Object.getOwnPropertySymbols,Cr=Object.prototype.hasOwnProperty,Rr=Object.prototype.propertyIsEnumerable,zt=(e,t,n)=>t in e?Ja(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,eu=(e,t)=>{for(var n in t||(t={}))Cr.call(t,n)&&zt(e,n,t[n]);if(He)for(var n of He(t))Rr.call(t,n)&&zt(e,n,t[n]);return e},tu=(e,t)=>Qa(e,Za(t)),nu=(e,t)=>{var n={};for(var r in e)Cr.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&He)for(var r of He(e))t.indexOf(r)<0&&Rr.call(e,r)&&(n[r]=e[r]);return n};function Gt(e,t,n={}){const r=n,{throttle:o=0,trailing:a=!0,leading:s=!0}=r,u=nu(r,["throttle","trailing","leading"]);return Oe(e,t,tu(eu({},u),{eventFilter:De(o,a,s)}))}var ru=Object.defineProperty,ou=Object.defineProperties,au=Object.getOwnPropertyDescriptors,qt=Object.getOwnPropertySymbols,uu=Object.prototype.hasOwnProperty,su=Object.prototype.propertyIsEnumerable,Xt=(e,t,n)=>t in e?ru(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,iu=(e,t)=>{for(var n in t||(t={}))uu.call(t,n)&&Xt(e,n,t[n]);if(qt)for(var n of qt(t))su.call(t,n)&&Xt(e,n,t[n]);return e},lu=(e,t)=>ou(e,au(t));function cu(e,t,n={}){let r;function o(){if(!r)return;const c=r;r=void 0,c()}function a(c){r=c}const s=(c,f)=>(o(),t(c,f,a)),u=_e(e,s,n),{ignoreUpdates:i}=u,l=()=>{let c;return i(()=>{c=s(fu(e),vu(e))}),c};return lu(iu({},u),{trigger:l})}function fu(e){return io(e)?e:Array.isArray(e)?e.map(t=>Yt(t)):Yt(e)}function Yt(e){return typeof e=="function"?e():C(e)}function vu(e){return Array.isArray(e)?e.map(()=>{}):void 0}function du(e,t,n){return D(e,(r,o,a)=>{r&&t(r,o,a)},n)}function Kt(e,t,n){let r;q(n)?r={evaluating:n}:r=n||{};const{lazy:o=!1,evaluating:a=void 0,onError:s=L}=r,u=p(!o),i=p(t);let l=0;return Re(async c=>{if(!u.value)return;l++;const f=l;let v=!1;a&&Promise.resolve().then(()=>{a.value=!0});try{const d=await e(m=>{c(()=>{a&&(a.value=!1),v||m()})});f===l&&(i.value=d)}catch(d){s(d)}finally{a&&f===l&&(a.value=!1),v=!0}}),o?S(()=>(u.value=!0,i.value)):i}function pu(e,t,n,r){let o=Ce(e);return n&&(o=Ce(e,n)),r&&(o=Ce(e,n,r)),typeof t=="function"?S(a=>t(o,a)):S({get:a=>t.get(o,a),set:t.set})}const mu=e=>function(...t){return e.apply(this,t.map(n=>C(n)))};function V(e){var t;const n=P(e);return(t=n==null?void 0:n.$el)!=null?t:n}const j=Q?window:void 0,ee=Q?window.document:void 0,te=Q?window.navigator:void 0,hu=Q?window.location:void 0;function O(...e){let t,n,r,o;if(xe(e[0])?([n,r,o]=e,t=j):[t,n,r,o]=e,!t)return L;let a=L;const s=D(()=>V(t),i=>{a(),!!i&&(i.addEventListener(n,r,o),a=()=>{i.removeEventListener(n,r,o),a=L})},{immediate:!0,flush:"post"}),u=()=>{s(),a()};return N(u),u}function gu(e,t,n={}){const{window:r=j,ignore:o,capture:a=!0,detectIframe:s=!1}=n;if(!r)return;const u=p(!0);let i;const l=v=>{r.clearTimeout(i);const d=V(e),m=v.composedPath();!d||d===v.target||m.includes(d)||!u.value||o&&o.length>0&&o.some(h=>{const g=V(h);return g&&(v.target===g||m.includes(g))})||t(v)},c=[O(r,"click",l,{passive:!0,capture:a}),O(r,"pointerdown",v=>{const d=V(e);u.value=!!d&&!v.composedPath().includes(d)},{passive:!0}),O(r,"pointerup",v=>{if(v.button===0){const d=v.composedPath();v.composedPath=()=>d,i=r.setTimeout(()=>l(v),50)}},{passive:!0}),s&&O(r,"blur",v=>{var d;const m=V(e);((d=document.activeElement)==null?void 0:d.tagName)==="IFRAME"&&!(m==null?void 0:m.contains(document.activeElement))&&t(v)})].filter(Boolean);return()=>c.forEach(v=>v())}var yu=Object.defineProperty,_u=Object.defineProperties,wu=Object.getOwnPropertyDescriptors,Jt=Object.getOwnPropertySymbols,Ou=Object.prototype.hasOwnProperty,bu=Object.prototype.propertyIsEnumerable,Qt=(e,t,n)=>t in e?yu(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,ht=(e,t)=>{for(var n in t||(t={}))Ou.call(t,n)&&Qt(e,n,t[n]);if(Jt)for(var n of Jt(t))bu.call(t,n)&&Qt(e,n,t[n]);return e},gt=(e,t)=>_u(e,wu(t));const Pu=e=>typeof e=="function"?e:typeof e=="string"?t=>t.key===e:Array.isArray(e)?t=>e.includes(t.key):e?()=>!0:()=>!1;function Ye(e,t,n={}){const{target:r=j,eventName:o="keydown",passive:a=!1}=n,s=Pu(e);return O(r,o,i=>{s(i)&&t(i)},a)}function Su(e,t,n={}){return Ye(e,t,gt(ht({},n),{eventName:"keydown"}))}function $u(e,t,n={}){return Ye(e,t,gt(ht({},n),{eventName:"keypress"}))}function Eu(e,t,n={}){return Ye(e,t,gt(ht({},n),{eventName:"keyup"}))}const xu=500;function Tu(e,t,n){var r,o;const a=S(()=>V(e));let s;function u(){s&&(clearTimeout(s),s=void 0)}function i(c){var f,v,d,m;((f=n==null?void 0:n.modifiers)==null?void 0:f.self)&&c.target!==a.value||(u(),((v=n==null?void 0:n.modifiers)==null?void 0:v.prevent)&&c.preventDefault(),((d=n==null?void 0:n.modifiers)==null?void 0:d.stop)&&c.stopPropagation(),s=setTimeout(()=>t(c),(m=n==null?void 0:n.delay)!=null?m:xu))}const l={capture:(r=n==null?void 0:n.modifiers)==null?void 0:r.capture,once:(o=n==null?void 0:n.modifiers)==null?void 0:o.once};O(a,"pointerdown",i,l),O(a,"pointerup",u,l),O(a,"pointerleave",u,l)}const Du=()=>{const{activeElement:e,body:t}=document;if(!e||e===t)return!1;switch(e.tagName){case"INPUT":case"TEXTAREA":return!0}return e.hasAttribute("contenteditable")},Iu=({keyCode:e,metaKey:t,ctrlKey:n,altKey:r})=>t||n||r?!1:e>=48&&e<=57||e>=96&&e<=105||e>=65&&e<=90;function Fu(e,t={}){const{document:n=ee}=t;n&&O(n,"keydown",o=>{!Du()&&Iu(o)&&e(o)},{passive:!0})}function ju(e,t=null){const n=fe();let r=()=>{};const o=$e((a,s)=>(r=s,{get(){var u,i;return a(),(i=(u=n==null?void 0:n.proxy)==null?void 0:u.$refs[e])!=null?i:t},set(){}}));return Z(r),fr(r),o}function yt(e={}){const{window:t=j}=e,n=Le(()=>null,()=>t==null?void 0:t.document.activeElement);return t&&(O(t,"blur",n.trigger,!0),O(t,"focus",n.trigger,!0)),n}function Au(e,t={}){const{interrupt:n=!0,onError:r=L,onFinished:o=L}=t,a={pending:"pending",rejected:"rejected",fulfilled:"fulfilled"},s=Array.from(new Array(e.length),()=>({state:a.pending,data:null})),u=B(s),i=p(-1);if(!e||e.length===0)return o(),{activeIndex:i,result:u};function l(c,f){i.value++,u[i.value].data=f,u[i.value].state=c}return e.reduce((c,f)=>c.then(v=>{var d;if(((d=u[i.value])==null?void 0:d.state)===a.rejected&&n){o();return}return f(v).then(m=>(l(a.fulfilled,m),i.value===e.length-1&&o(),m))}).catch(v=>(l(a.rejected,v),r(),v)),Promise.resolve()),{activeIndex:i,result:u}}function Nr(e,t,n){const{immediate:r=!0,delay:o=0,onError:a=L,resetOnExecute:s=!0,shallow:u=!0,throwError:i}=n!=null?n:{},l=u?G(t):p(t),c=p(!1),f=p(!1),v=p(void 0);async function d(m=0,...h){s&&(l.value=t),v.value=void 0,c.value=!1,f.value=!0,m>0&&await ke(m);const g=typeof e=="function"?e(...h):e;try{const _=await g;l.value=_,c.value=!0}catch(_){if(v.value=_,a(_),i)throw v}finally{f.value=!1}return l.value}return r&&d(o),{state:l,isReady:c,isLoading:f,error:v,execute:d}}const be={array:e=>JSON.stringify(e),object:e=>JSON.stringify(e),set:e=>JSON.stringify(Array.from(e)),map:e=>JSON.stringify(Object.fromEntries(e)),null:()=>""};function Cu(e){return e?e instanceof Map?be.map:e instanceof Set?be.set:Array.isArray(e)?be.array:be.object:be.null}function Ru(e,t){const n=p(""),r=p();function o(){if(!!Q)return r.value=new Promise((a,s)=>{try{const u=P(e);if(u==null)a("");else if(typeof u=="string")a(tt(new Blob([u],{type:"text/plain"})));else if(u instanceof Blob)a(tt(u));else if(u instanceof ArrayBuffer)a(window.btoa(String.fromCharCode(...new Uint8Array(u))));else if(u instanceof HTMLCanvasElement)a(u.toDataURL(t==null?void 0:t.type,t==null?void 0:t.quality));else if(u instanceof HTMLImageElement){const i=u.cloneNode(!1);i.crossOrigin="Anonymous",Nu(i).then(()=>{const l=document.createElement("canvas"),c=l.getContext("2d");l.width=i.width,l.height=i.height,c.drawImage(i,0,0,l.width,l.height),a(l.toDataURL(t==null?void 0:t.type,t==null?void 0:t.quality))}).catch(s)}else if(typeof u=="object"){const l=((t==null?void 0:t.serializer)||Cu(u))(u);return a(tt(new Blob([l],{type:"application/json"})))}else s(new Error("target is unsupported types"))}catch(u){s(u)}}),r.value.then(a=>n.value=a),r.value}return q(e)||oe(e)?D(e,o,{immediate:!0}):o(),{base64:n,promise:r,execute:o}}function Nu(e){return new Promise((t,n)=>{e.complete?t():(e.onload=()=>{t()},e.onerror=n)})}function tt(e){return new Promise((t,n)=>{const r=new FileReader;r.onload=o=>{t(o.target.result)},r.onerror=n,r.readAsDataURL(e)})}function M(e,t=!1){const n=p(),r=()=>n.value=Boolean(e());return r(),Z(r,t),n}function Mu({navigator:e=te}={}){const t=["chargingchange","chargingtimechange","dischargingtimechange","levelchange"],n=M(()=>e&&"getBattery"in e),r=p(!1),o=p(0),a=p(0),s=p(1);let u;function i(){r.value=this.charging,o.value=this.chargingTime||0,a.value=this.dischargingTime||0,s.value=this.level}return n.value&&e.getBattery().then(l=>{u=l,i.call(u);for(const c of t)O(u,c,i,{passive:!0})}),{isSupported:n,charging:r,chargingTime:o,dischargingTime:a,level:s}}function ku(e){let{acceptAllDevices:t=!1}=e||{};const{filters:n=void 0,optionalServices:r=void 0,navigator:o=te}=e||{},a=M(()=>o&&"bluetooth"in o),s=p(void 0),u=p(null);D(s,()=>{f()});async function i(){if(!!a.value){u.value=null,n&&n.length>0&&(t=!1);try{s.value=await(o==null?void 0:o.bluetooth.requestDevice({acceptAllDevices:t,filters:n,optionalServices:r}))}catch(v){u.value=v}}}const l=p(),c=S(()=>{var v;return((v=l.value)==null?void 0:v.connected)||!1});async function f(){if(u.value=null,s.value&&s.value.gatt){s.value.addEventListener("gattserverdisconnected",()=>{});try{l.value=await s.value.gatt.connect()}catch(v){u.value=v}}}return Z(()=>{var v;s.value&&((v=s.value.gatt)==null||v.connect())}),N(()=>{var v;s.value&&((v=s.value.gatt)==null||v.disconnect())}),{isSupported:a,isConnected:c,device:s,requestDevice:i,server:l,error:u}}function K(e,t={}){const{window:n=j}=t,r=M(()=>n&&"matchMedia"in n&&typeof n.matchMedia=="function");let o;const a=p(!1),s=()=>{!r.value||(o||(o=n.matchMedia(e)),a.value=o.matches)};return Pr(()=>{s(),!!o&&("addEventListener"in o?o.addEventListener("change",s):o.addListener(s),N(()=>{"removeEventListener"in o?o.removeEventListener("change",s):o.removeListener(s)}))}),a}const Lu={sm:640,md:768,lg:1024,xl:1280,"2xl":1536},Vu={sm:576,md:768,lg:992,xl:1200,xxl:1400},Wu={xs:600,sm:960,md:1264,lg:1904},Bu={xs:480,sm:576,md:768,lg:992,xl:1200,xxl:1600},Uu={xs:600,sm:1024,md:1440,lg:1920},Hu={mobileS:320,mobileM:375,mobileL:425,tablet:768,laptop:1024,laptopL:1440,desktop4K:2560};var zu=Object.defineProperty,Zt=Object.getOwnPropertySymbols,Gu=Object.prototype.hasOwnProperty,qu=Object.prototype.propertyIsEnumerable,en=(e,t,n)=>t in e?zu(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Xu=(e,t)=>{for(var n in t||(t={}))Gu.call(t,n)&&en(e,n,t[n]);if(Zt)for(var n of Zt(t))qu.call(t,n)&&en(e,n,t[n]);return e};function Yu(e,t={}){function n(u,i){let l=e[u];return i!=null&&(l=gr(l,i)),typeof l=="number"&&(l=`${l}px`),l}const{window:r=j}=t;function o(u){return r?r.matchMedia(u).matches:!1}const a=u=>K(`(min-width: ${n(u)})`,t),s=Object.keys(e).reduce((u,i)=>(Object.defineProperty(u,i,{get:()=>a(i),enumerable:!0,configurable:!0}),u),{});return Xu({greater(u){return K(`(min-width: ${n(u,.1)})`,t)},greaterOrEqual:a,smaller(u){return K(`(max-width: ${n(u,-.1)})`,t)},smallerOrEqual(u){return K(`(max-width: ${n(u)})`,t)},between(u,i){return K(`(min-width: ${n(u)}) and (max-width: ${n(i,-.1)})`,t)},isGreater(u){return o(`(min-width: ${n(u,.1)})`)},isGreaterOrEqual(u){return o(`(min-width: ${n(u)})`)},isSmaller(u){return o(`(max-width: ${n(u,-.1)})`)},isSmallerOrEqual(u){return o(`(max-width: ${n(u)})`)},isInBetween(u,i){return o(`(min-width: ${n(u)}) and (max-width: ${n(i,-.1)})`)}},s)}const Ku=e=>{const{name:t,window:n=j}=e,r=M(()=>n&&"BroadcastChannel"in n),o=p(!1),a=p(),s=p(),u=p(null),i=c=>{a.value&&a.value.postMessage(c)},l=()=>{a.value&&a.value.close(),o.value=!0};return r.value&&Z(()=>{u.value=null,a.value=new BroadcastChannel(t),a.value.addEventListener("message",c=>{s.value=c.data},{passive:!0}),a.value.addEventListener("messageerror",c=>{u.value=c},{passive:!0}),a.value.addEventListener("close",()=>{o.value=!0})}),N(()=>{l()}),{isSupported:r,channel:a,data:s,post:i,close:l,error:u,isClosed:o}};function Ju({window:e=j}={}){const t=r=>{const{state:o,length:a}=(e==null?void 0:e.history)||{},{hash:s,host:u,hostname:i,href:l,origin:c,pathname:f,port:v,protocol:d,search:m}=(e==null?void 0:e.location)||{};return{trigger:r,state:o,length:a,hash:s,host:u,hostname:i,href:l,origin:c,pathname:f,port:v,protocol:d,search:m}},n=p(t("load"));return e&&(O(e,"popstate",()=>n.value=t("popstate"),{passive:!0}),O(e,"hashchange",()=>n.value=t("hashchange"),{passive:!0})),n}function Qu(e,t=(r,o)=>r===o,n){const r=p(e.value);return D(()=>e.value,o=>{t(o,r.value)||(r.value=o)},n),r}function Zu(e={}){const{navigator:t=te,read:n=!1,source:r,copiedDuring:o=1500}=e,a=["copy","cut"],s=M(()=>t&&"clipboard"in t),u=p(""),i=p(!1),l=we(()=>i.value=!1,o);function c(){t.clipboard.readText().then(v=>{u.value=v})}if(s.value&&n)for(const v of a)O(v,c);async function f(v=P(r)){s.value&&v!=null&&(await t.clipboard.writeText(v),u.value=v,i.value=!0,l.start())}return{isSupported:s,text:u,copied:i,copy:f}}var es=Object.defineProperty,ts=Object.defineProperties,ns=Object.getOwnPropertyDescriptors,tn=Object.getOwnPropertySymbols,rs=Object.prototype.hasOwnProperty,os=Object.prototype.propertyIsEnumerable,nn=(e,t,n)=>t in e?es(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,as=(e,t)=>{for(var n in t||(t={}))rs.call(t,n)&&nn(e,n,t[n]);if(tn)for(var n of tn(t))os.call(t,n)&&nn(e,n,t[n]);return e},us=(e,t)=>ts(e,ns(t));function Ie(e){return JSON.parse(JSON.stringify(e))}function ss(e,t={}){const n=p({}),{manual:r,clone:o=Ie,deep:a=!0,immediate:s=!0}=t;function u(){n.value=o(C(e))}return!r&&q(e)?D(e,u,us(as({},t),{deep:a,immediate:s})):u(),{cloned:n,sync:u}}const lt=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{},ct="__vueuse_ssr_handlers__";lt[ct]=lt[ct]||{};const Mr=lt[ct];function Ke(e,t){return Mr[e]||t}function is(e,t){Mr[e]=t}function kr(e){return e==null?"any":e instanceof Set?"set":e instanceof Map?"map":e instanceof Date?"date":typeof e=="boolean"?"boolean":typeof e=="string"?"string":typeof e=="object"||Array.isArray(e)?"object":Number.isNaN(e)?"any":"number"}var ls=Object.defineProperty,rn=Object.getOwnPropertySymbols,cs=Object.prototype.hasOwnProperty,fs=Object.prototype.propertyIsEnumerable,on=(e,t,n)=>t in e?ls(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,an=(e,t)=>{for(var n in t||(t={}))cs.call(t,n)&&on(e,n,t[n]);if(rn)for(var n of rn(t))fs.call(t,n)&&on(e,n,t[n]);return e};const _t={boolean:{read:e=>e==="true",write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}};function Je(e,t,n,r={}){var o;const{flush:a="pre",deep:s=!0,listenToStorageChanges:u=!0,writeDefaults:i=!0,mergeDefaults:l=!1,shallow:c,window:f=j,eventFilter:v,onError:d=x=>{console.error(x)}}=r,m=(c?G:p)(t);if(!n)try{n=Ke("getDefaultStorage",()=>{var x;return(x=j)==null?void 0:x.localStorage})()}catch(x){d(x)}if(!n)return m;const h=P(t),g=kr(h),_=(o=r.serializer)!=null?o:_t[g],{pause:y,resume:w}=Ue(m,()=>$(m.value),{flush:a,deep:s,eventFilter:v});return f&&u&&O(f,"storage",E),E(),m;function $(x){try{x==null?n.removeItem(e):n.setItem(e,_.write(x))}catch(I){d(I)}}function b(x){if(!(x&&x.key!==e)){y();try{const I=x?x.newValue:n.getItem(e);if(I==null)return i&&h!==null&&n.setItem(e,_.write(h)),h;if(!x&&l){const A=_.read(I);return oe(l)?l(A,h):g==="object"&&!Array.isArray(A)?an(an({},h),A):A}else return typeof I!="string"?I:_.read(I)}catch(I){d(I)}finally{w()}}}function E(x){x&&x.key!==e||(m.value=b(x))}}function wt(e){return K("(prefers-color-scheme: dark)",e)}var vs=Object.defineProperty,un=Object.getOwnPropertySymbols,ds=Object.prototype.hasOwnProperty,ps=Object.prototype.propertyIsEnumerable,sn=(e,t,n)=>t in e?vs(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,ms=(e,t)=>{for(var n in t||(t={}))ds.call(t,n)&&sn(e,n,t[n]);if(un)for(var n of un(t))ps.call(t,n)&&sn(e,n,t[n]);return e};function Lr(e={}){const{selector:t="html",attribute:n="class",initialValue:r="auto",window:o=j,storage:a,storageKey:s="vueuse-color-scheme",listenToStorageChanges:u=!0,storageRef:i,emitAuto:l}=e,c=ms({auto:"",light:"light",dark:"dark"},e.modes||{}),f=wt({window:o}),v=S(()=>f.value?"dark":"light"),d=i||(s==null?p(r):Je(s,r,a,{window:o,listenToStorageChanges:u})),m=S({get(){return d.value==="auto"&&!l?v.value:d.value},set(y){d.value=y}}),h=Ke("updateHTMLAttrs",(y,w,$)=>{const b=o==null?void 0:o.document.querySelector(y);if(!!b)if(w==="class"){const E=$.split(/\s/g);Object.values(c).flatMap(x=>(x||"").split(/\s/g)).filter(Boolean).forEach(x=>{E.includes(x)?b.classList.add(x):b.classList.remove(x)})}else b.setAttribute(w,$)});function g(y){var w;const $=y==="auto"?v.value:y;h(t,n,(w=c[$])!=null?w:$)}function _(y){e.onChanged?e.onChanged(y,g):g(y)}return D(m,_,{flush:"post",immediate:!0}),l&&D(v,()=>_(m.value),{flush:"post"}),Z(()=>_(m.value)),m}function hs(e=p(!1)){const t=z(),n=z(),r=z();let o=L;const a=i=>(r.trigger(i),e.value=!0,new Promise(l=>{o=l})),s=i=>{e.value=!1,t.trigger(i),o({data:i,isCanceled:!1})},u=i=>{e.value=!1,n.trigger(i),o({data:i,isCanceled:!0})};return{isRevealed:S(()=>e.value),reveal:a,confirm:s,cancel:u,onReveal:r.on,onConfirm:t.on,onCancel:n.on}}function Pe(e,t,{window:n=j,initialValue:r=""}={}){const o=p(r),a=S(()=>{var s;return V(t)||((s=n==null?void 0:n.document)==null?void 0:s.documentElement)});return D([a,()=>P(e)],([s,u])=>{var i;if(s&&n){const l=(i=n.getComputedStyle(s).getPropertyValue(u))==null?void 0:i.trim();o.value=l||r}},{immediate:!0}),D(o,s=>{var u;((u=a.value)==null?void 0:u.style)&&a.value.style.setProperty(P(e),s)}),o}function gs(){const e=fe(),t=Le(()=>null,()=>e.proxy.$el);return fr(t.trigger),ft(t.trigger),t}function ys(e,t){var n;const r=G((n=t==null?void 0:t.initialValue)!=null?n:e[0]),o=S({get(){var l;let c=(t==null?void 0:t.getIndexOf)?t.getIndexOf(r.value,e):e.indexOf(r.value);return c<0&&(c=(l=t==null?void 0:t.fallbackIndex)!=null?l:0),c},set(l){a(l)}});function a(l){const c=e.length,f=(l%c+c)%c,v=e[f];return r.value=v,v}function s(l=1){return a(o.value+l)}function u(l=1){return s(l)}function i(l=1){return s(-l)}return{state:r,index:o,next:u,prev:i}}var _s=Object.defineProperty,ws=Object.defineProperties,Os=Object.getOwnPropertyDescriptors,ln=Object.getOwnPropertySymbols,bs=Object.prototype.hasOwnProperty,Ps=Object.prototype.propertyIsEnumerable,cn=(e,t,n)=>t in e?_s(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ss=(e,t)=>{for(var n in t||(t={}))bs.call(t,n)&&cn(e,n,t[n]);if(ln)for(var n of ln(t))Ps.call(t,n)&&cn(e,n,t[n]);return e},$s=(e,t)=>ws(e,Os(t));function Es(e={}){const{valueDark:t="dark",valueLight:n="",window:r=j}=e,o=Lr($s(Ss({},e),{onChanged:(u,i)=>{var l;e.onChanged?(l=e.onChanged)==null||l.call(e,u==="dark"):i(u)},modes:{dark:t,light:n}})),a=wt({window:r});return S({get(){return o.value==="dark"},set(u){u===a.value?o.value="auto":o.value=u?"dark":"light"}})}const Vr=e=>e,xs=(e,t)=>e.value=t;function Ts(e){return e?oe(e)?e:Ie:Vr}function Ds(e){return e?oe(e)?e:Ie:Vr}function Wr(e,t={}){const{clone:n=!1,dump:r=Ts(n),parse:o=Ds(n),setSource:a=xs}=t;function s(){return lo({snapshot:r(e.value),timestamp:ce()})}const u=p(s()),i=p([]),l=p([]),c=w=>{a(e,o(w.snapshot)),u.value=w},f=()=>{i.value.unshift(u.value),u.value=s(),t.capacity&&i.value.length>t.capacity&&i.value.splice(t.capacity,1/0),l.value.length&&l.value.splice(0,l.value.length)},v=()=>{i.value.splice(0,i.value.length),l.value.splice(0,l.value.length)},d=()=>{const w=i.value.shift();w&&(l.value.unshift(u.value),c(w))},m=()=>{const w=l.value.shift();w&&(i.value.unshift(u.value),c(w))},h=()=>{c(u.value)},g=S(()=>[u.value,...i.value]),_=S(()=>i.value.length>0),y=S(()=>l.value.length>0);return{source:e,undoStack:i,redoStack:l,last:u,history:g,canUndo:_,canRedo:y,clear:v,commit:f,reset:h,undo:d,redo:m}}var Is=Object.defineProperty,Fs=Object.defineProperties,js=Object.getOwnPropertyDescriptors,fn=Object.getOwnPropertySymbols,As=Object.prototype.hasOwnProperty,Cs=Object.prototype.propertyIsEnumerable,vn=(e,t,n)=>t in e?Is(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,dn=(e,t)=>{for(var n in t||(t={}))As.call(t,n)&&vn(e,n,t[n]);if(fn)for(var n of fn(t))Cs.call(t,n)&&vn(e,n,t[n]);return e},pn=(e,t)=>Fs(e,js(t));function Ot(e,t={}){const{deep:n=!1,flush:r="pre",eventFilter:o}=t,{eventFilter:a,pause:s,resume:u,isActive:i}=vt(o),{ignoreUpdates:l,ignorePrevAsyncUpdates:c,stop:f}=_e(e,g,{deep:n,flush:r,eventFilter:a});function v($,b){c(),l(()=>{$.value=b})}const d=Wr(e,pn(dn({},t),{clone:t.clone||n,setSource:v})),{clear:m,commit:h}=d;function g(){c(),h()}function _($){u(),$&&g()}function y($){let b=!1;const E=()=>b=!0;l(()=>{$(E)}),b||g()}function w(){f(),m()}return pn(dn({},d),{isTracking:i,pause:s,resume:_,commit:g,batch:y,dispose:w})}var Rs=Object.defineProperty,Ns=Object.defineProperties,Ms=Object.getOwnPropertyDescriptors,mn=Object.getOwnPropertySymbols,ks=Object.prototype.hasOwnProperty,Ls=Object.prototype.propertyIsEnumerable,hn=(e,t,n)=>t in e?Rs(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,gn=(e,t)=>{for(var n in t||(t={}))ks.call(t,n)&&hn(e,n,t[n]);if(mn)for(var n of mn(t))Ls.call(t,n)&&hn(e,n,t[n]);return e},Vs=(e,t)=>Ns(e,Ms(t));function Ws(e,t={}){const n=t.debounce?qe(t.debounce):void 0,r=Ot(e,Vs(gn({},t),{eventFilter:n}));return gn({},r)}function Bs(e={}){const{window:t=j,eventFilter:n=Te}=e,r=p({x:null,y:null,z:null}),o=p({alpha:null,beta:null,gamma:null}),a=p(0),s=p({x:null,y:null,z:null});if(t){const u=ve(n,i=>{r.value=i.acceleration,s.value=i.accelerationIncludingGravity,o.value=i.rotationRate,a.value=i.interval});O(t,"devicemotion",u)}return{acceleration:r,accelerationIncludingGravity:s,rotationRate:o,interval:a}}function Br(e={}){const{window:t=j}=e,n=M(()=>t&&"DeviceOrientationEvent"in t),r=p(!1),o=p(null),a=p(null),s=p(null);return t&&n.value&&O(t,"deviceorientation",u=>{r.value=u.absolute,o.value=u.alpha,a.value=u.beta,s.value=u.gamma}),{isSupported:n,isAbsolute:r,alpha:o,beta:a,gamma:s}}function Us({window:e=j}={}){if(!e)return{pixelRatio:p(1)};const t=p(1),n=[],r=()=>{n.map(a=>a()),n.length=0},o=()=>{t.value=e.devicePixelRatio,r();const a=e.matchMedia(`(resolution: ${t.value}dppx)`);a.addEventListener("change",o,{once:!0}),n.push(()=>{a.removeEventListener("change",o)})};return o(),N(r),{pixelRatio:t}}function Ur(e,t={}){const{controls:n=!1,navigator:r=te}=t,o=M(()=>r&&"permissions"in r);let a;const s=typeof e=="string"?{name:e}:e,u=p(),i=()=>{a&&(u.value=a.state)},l=mr(async()=>{if(!!o.value){if(!a)try{a=await r.permissions.query(s),O(a,"change",i),i()}catch{u.value="prompt"}return a}});return l(),n?{state:u,isSupported:o,query:l}:u}function Hs(e={}){const{navigator:t=te,requestPermissions:n=!1,constraints:r={audio:!0,video:!0},onUpdated:o}=e,a=p([]),s=S(()=>a.value.filter(d=>d.kind==="videoinput")),u=S(()=>a.value.filter(d=>d.kind==="audioinput")),i=S(()=>a.value.filter(d=>d.kind==="audiooutput")),l=M(()=>t&&t.mediaDevices&&t.mediaDevices.enumerateDevices),c=p(!1);async function f(){!l.value||(a.value=await t.mediaDevices.enumerateDevices(),o==null||o(a.value))}async function v(){if(!l.value)return!1;if(c.value)return!0;const{state:d,query:m}=Ur("camera",{controls:!0});return await m(),d.value!=="granted"&&((await t.mediaDevices.getUserMedia(r)).getTracks().forEach(g=>g.stop()),f()),c.value=!0,c.value}return l.value&&(n&&v(),O(t.mediaDevices,"devicechange",f),f()),{devices:a,ensurePermissions:v,permissionGranted:c,videoInputs:s,audioInputs:u,audioOutputs:i,isSupported:l}}function zs(e={}){var t;const n=p((t=e.enabled)!=null?t:!1),r=e.video,o=e.audio,{navigator:a=te}=e,s=M(()=>{var d;return(d=a==null?void 0:a.mediaDevices)==null?void 0:d.getDisplayMedia}),u={audio:o,video:r},i=G();async function l(){if(!(!s.value||i.value))return i.value=await a.mediaDevices.getDisplayMedia(u),i.value}async function c(){var d;(d=i.value)==null||d.getTracks().forEach(m=>m.stop()),i.value=void 0}function f(){c(),n.value=!1}async function v(){return await l(),i.value&&(n.value=!0),i.value}return D(n,d=>{d?l():c()},{immediate:!0}),{isSupported:s,stream:i,start:v,stop:f,enabled:n}}function Gs({document:e=ee}={}){if(!e)return p("visible");const t=p(e.visibilityState);return O(e,"visibilitychange",()=>{t.value=e.visibilityState}),t}var qs=Object.defineProperty,Xs=Object.defineProperties,Ys=Object.getOwnPropertyDescriptors,yn=Object.getOwnPropertySymbols,Ks=Object.prototype.hasOwnProperty,Js=Object.prototype.propertyIsEnumerable,_n=(e,t,n)=>t in e?qs(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Qs=(e,t)=>{for(var n in t||(t={}))Ks.call(t,n)&&_n(e,n,t[n]);if(yn)for(var n of yn(t))Js.call(t,n)&&_n(e,n,t[n]);return e},Zs=(e,t)=>Xs(e,Ys(t));function ei(e,t={}){var n,r,o;const a=(n=t.draggingElement)!=null?n:j,s=(r=t.handle)!=null?r:e,u=p((o=P(t.initialValue))!=null?o:{x:0,y:0}),i=p(),l=m=>t.pointerTypes?t.pointerTypes.includes(m.pointerType):!0,c=m=>{P(t.preventDefault)&&m.preventDefault(),P(t.stopPropagation)&&m.stopPropagation()},f=m=>{var h;if(!l(m)||P(t.exact)&&m.target!==P(e))return;const g=P(e).getBoundingClientRect(),_={x:m.pageX-g.left,y:m.pageY-g.top};((h=t.onStart)==null?void 0:h.call(t,_,m))!==!1&&(i.value=_,c(m))},v=m=>{var h;!l(m)||!i.value||(u.value={x:m.pageX-i.value.x,y:m.pageY-i.value.y},(h=t.onMove)==null||h.call(t,u.value,m),c(m))},d=m=>{var h;!l(m)||!i.value||(i.value=void 0,(h=t.onEnd)==null||h.call(t,u.value,m),c(m))};return Q&&(O(s,"pointerdown",f,!0),O(a,"pointermove",v,!0),O(a,"pointerup",d,!0)),Zs(Qs({},mt(u)),{position:u,isDragging:S(()=>!!i.value),style:S(()=>`left:${u.value.x}px;top:${u.value.y}px;`)})}function ti(e,t){const n=p(!1);let r=0;return Q&&(O(e,"dragenter",o=>{o.preventDefault(),r+=1,n.value=!0}),O(e,"dragover",o=>{o.preventDefault()}),O(e,"dragleave",o=>{o.preventDefault(),r-=1,r===0&&(n.value=!1)}),O(e,"drop",o=>{var a,s;o.preventDefault(),r=0,n.value=!1;const u=Array.from((s=(a=o.dataTransfer)==null?void 0:a.files)!=null?s:[]);t==null||t(u.length===0?null:u)})),{isOverDropZone:n}}var wn=Object.getOwnPropertySymbols,ni=Object.prototype.hasOwnProperty,ri=Object.prototype.propertyIsEnumerable,oi=(e,t)=>{var n={};for(var r in e)ni.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&wn)for(var r of wn(e))t.indexOf(r)<0&&ri.call(e,r)&&(n[r]=e[r]);return n};function bt(e,t,n={}){const r=n,{window:o=j}=r,a=oi(r,["window"]);let s;const u=M(()=>o&&"ResizeObserver"in o),i=()=>{s&&(s.disconnect(),s=void 0)},l=D(()=>V(e),f=>{i(),u.value&&o&&f&&(s=new ResizeObserver(t),s.observe(f,a))},{immediate:!0,flush:"post"}),c=()=>{i(),l()};return N(c),{isSupported:u,stop:c}}function ai(e,t={}){const{reset:n=!0,windowResize:r=!0,windowScroll:o=!0,immediate:a=!0}=t,s=p(0),u=p(0),i=p(0),l=p(0),c=p(0),f=p(0),v=p(0),d=p(0);function m(){const h=V(e);if(!h){n&&(s.value=0,u.value=0,i.value=0,l.value=0,c.value=0,f.value=0,v.value=0,d.value=0);return}const g=h.getBoundingClientRect();s.value=g.height,u.value=g.bottom,i.value=g.left,l.value=g.right,c.value=g.top,f.value=g.width,v.value=g.x,d.value=g.y}return bt(e,m),D(()=>V(e),h=>!h&&m()),o&&O("scroll",m,{passive:!0}),r&&O("resize",m,{passive:!0}),Z(()=>{a&&m()}),{height:s,bottom:u,left:i,right:l,top:c,width:f,x:v,y:d,update:m}}function pe(e,t={}){const{immediate:n=!0,window:r=j}=t,o=p(!1);let a=null;function s(){!o.value||!r||(e(),a=r.requestAnimationFrame(s))}function u(){!o.value&&r&&(o.value=!0,s())}function i(){o.value=!1,a!=null&&r&&(r.cancelAnimationFrame(a),a=null)}return n&&u(),N(i),{isActive:o,pause:i,resume:u}}var ui=Object.defineProperty,On=Object.getOwnPropertySymbols,si=Object.prototype.hasOwnProperty,ii=Object.prototype.propertyIsEnumerable,bn=(e,t,n)=>t in e?ui(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,li=(e,t)=>{for(var n in t||(t={}))si.call(t,n)&&bn(e,n,t[n]);if(On)for(var n of On(t))ii.call(t,n)&&bn(e,n,t[n]);return e};function ci(e){const t=p(null),{x:n,y:r}=e,o=pe(()=>{t.value=document.elementFromPoint(P(n),P(r))});return li({element:t},o)}function fi(e){const t=p(!1);return O(e,"mouseenter",()=>t.value=!0),O(e,"mouseleave",()=>t.value=!1),t}function Hr(e,t={width:0,height:0},n={}){const{box:r="content-box"}=n,o=p(t.width),a=p(t.height);return bt(e,([s])=>{const u=r==="border-box"?s.borderBoxSize:r==="content-box"?s.contentBoxSize:s.devicePixelContentBoxSize;u?(o.value=u.reduce((i,{inlineSize:l})=>i+l,0),a.value=u.reduce((i,{blockSize:l})=>i+l,0)):(o.value=s.contentRect.width,a.value=s.contentRect.height)},n),D(()=>V(e),s=>{o.value=s?t.width:0,a.value=s?t.height:0}),{width:o,height:a}}function vi(e,{window:t=j,scrollTarget:n}={}){const r=p(!1),o=()=>{if(!t)return;const a=t.document,s=V(e);if(!s)r.value=!1;else{const u=s.getBoundingClientRect();r.value=u.top<=(t.innerHeight||a.documentElement.clientHeight)&&u.left<=(t.innerWidth||a.documentElement.clientWidth)&&u.bottom>=0&&u.right>=0}};return D(()=>V(e),()=>o(),{immediate:!0,flush:"post"}),t&&O(n||t,"scroll",o,{capture:!1,passive:!0}),r}const me=new Map;function di(e){const t=lr();function n(u){var i;const l=me.get(e)||[];l.push(u),me.set(e,l);const c=()=>o(u);return(i=t==null?void 0:t.cleanups)==null||i.push(c),c}function r(u){function i(...l){o(i),u(...l)}return n(i)}function o(u){const i=me.get(e);if(!i)return;const l=i.indexOf(u);l>-1&&i.splice(l,1),i.length||me.delete(e)}function a(){me.delete(e)}function s(u,i){var l;(l=me.get(e))==null||l.forEach(c=>c(u,i))}return{on:n,once:r,off:o,emit:s,reset:a}}function pi(e,t=[],n={}){const r=p(null),o=p(null),a=p("CONNECTING"),s=p(null),u=p(null),{withCredentials:i=!1}=n,l=()=>{s.value&&(s.value.close(),s.value=null,a.value="CLOSED")},c=new EventSource(e,{withCredentials:i});s.value=c,c.onopen=()=>{a.value="OPEN",u.value=null},c.onerror=f=>{a.value="CLOSED",u.value=f},c.onmessage=f=>{r.value=null,o.value=f.data};for(const f of t)O(c,f,v=>{r.value=f,o.value=v.data||null});return N(()=>{l()}),{eventSource:s,event:r,data:o,status:a,error:u,close:l}}function mi(e={}){const{initialValue:t=""}=e,n=M(()=>typeof window!="undefined"&&"EyeDropper"in window),r=p(t);async function o(a){if(!n.value)return;const u=await new window.EyeDropper().open(a);return r.value=u.sRGBHex,u}return{isSupported:n,sRGBHex:r,open:o}}function hi(e=null,t={}){const{baseUrl:n="",rel:r="icon",document:o=ee}=t,a=re(e),s=u=>{o==null||o.head.querySelectorAll(`link[rel*="${r}"]`).forEach(i=>i.href=`${n}${u}`)};return D(a,(u,i)=>{xe(u)&&u!==i&&s(u)},{immediate:!0}),a}var gi=Object.defineProperty,yi=Object.defineProperties,_i=Object.getOwnPropertyDescriptors,Pn=Object.getOwnPropertySymbols,wi=Object.prototype.hasOwnProperty,Oi=Object.prototype.propertyIsEnumerable,Sn=(e,t,n)=>t in e?gi(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,k=(e,t)=>{for(var n in t||(t={}))wi.call(t,n)&&Sn(e,n,t[n]);if(Pn)for(var n of Pn(t))Oi.call(t,n)&&Sn(e,n,t[n]);return e},ie=(e,t)=>yi(e,_i(t));const bi={json:"application/json",text:"text/plain",formData:"multipart/form-data"};function ze(e){return hr(e,"immediate","refetch","initialData","timeout","beforeFetch","afterFetch","onFetchError","fetch")}function Se(e){return typeof Headers!="undefined"&&e instanceof Headers?Object.fromEntries([...e.entries()]):e}function he(...e){return t=>(e.forEach(async n=>{n&&(t=k(k({},t),await n(t)))}),t)}function Pi(e={}){const t=e.options||{},n=e.fetchOptions||{};function r(o,...a){const s=S(()=>e.baseUrl?Si(P(e.baseUrl),P(o)):P(o));let u=t,i=n;return a.length>0&&(ze(a[0])?u=ie(k(k({},u),a[0]),{beforeFetch:he(t.beforeFetch,a[0].beforeFetch),afterFetch:he(t.afterFetch,a[0].afterFetch),onFetchError:he(t.onFetchError,a[0].onFetchError)}):i=ie(k(k({},i),a[0]),{headers:k(k({},Se(i.headers)||{}),Se(a[0].headers)||{})})),a.length>1&&ze(a[1])&&(u=ie(k(k({},u),a[1]),{beforeFetch:he(t.beforeFetch,a[1].beforeFetch),afterFetch:he(t.afterFetch,a[1].afterFetch),onFetchError:he(t.onFetchError,a[1].onFetchError)})),zr(s,i,u)}return r}function zr(e,...t){var n;const r=typeof AbortController=="function";let o={},a={immediate:!0,refetch:!1,timeout:0};const s={method:"GET",type:"text",payload:void 0};t.length>0&&(ze(t[0])?a=k(k({},a),t[0]):o=t[0]),t.length>1&&ze(t[1])&&(a=k(k({},a),t[1]));const{fetch:u=(n=j)==null?void 0:n.fetch,initialData:i,timeout:l}=a,c=z(),f=z(),v=z(),d=p(!1),m=p(!1),h=p(!1),g=p(null),_=G(null),y=G(null),w=G(i),$=S(()=>r&&m.value);let b,E;const x=()=>{r&&b&&b.abort()},I=W=>{m.value=W,d.value=!W};l&&(E=we(x,l,{immediate:!1}));const A=async(W=!1)=>{var ne;I(!0),y.value=null,g.value=null,h.value=!1,b=void 0,r&&(b=new AbortController,b.signal.onabort=()=>h.value=!0,o=ie(k({},o),{signal:b.signal}));const U={method:s.method,headers:{}};if(s.payload){const Fe=Se(U.headers);s.payloadType&&(Fe["Content-Type"]=(ne=bi[s.payloadType])!=null?ne:s.payloadType);const je=P(s.payload);U.body=s.payloadType==="json"?JSON.stringify(je):je}let Y=!1;const ue={url:P(e),options:k(k({},U),o),cancel:()=>{Y=!0}};if(a.beforeFetch&&Object.assign(ue,await a.beforeFetch(ue)),Y||!u)return I(!1),Promise.resolve(null);let se=null;return E&&E.start(),new Promise((Fe,je)=>{var St;u(ue.url,ie(k(k({},U),ue.options),{headers:k(k({},Se(U.headers)),Se((St=ue.options)==null?void 0:St.headers))})).then(async H=>{if(_.value=H,g.value=H.status,se=await H[s.type](),a.afterFetch&&g.value>=200&&g.value<300&&({data:se}=await a.afterFetch({data:se,response:H})),w.value=se,!H.ok)throw new Error(H.statusText);return c.trigger(H),Fe(H)}).catch(async H=>{let $t=H.message||H.name;return a.onFetchError&&({data:se,error:$t}=await a.onFetchError({data:se,error:H,response:_.value})),w.value=se,y.value=$t,f.trigger(H),W?je(H):Fe(null)}).finally(()=>{I(!1),E&&E.stop(),v.trigger(null)})})},T=re(a.refetch);D([T,re(e)],([W])=>W&&A(),{deep:!0});const F={isFinished:d,statusCode:g,response:_,error:y,data:w,isFetching:m,canAbort:$,aborted:h,abort:x,execute:A,onFetchResponse:c.on,onFetchError:f.on,onFetchFinally:v.on,get:R("GET"),put:R("PUT"),post:R("POST"),delete:R("DELETE"),patch:R("PATCH"),head:R("HEAD"),options:R("OPTIONS"),json:ae("json"),text:ae("text"),blob:ae("blob"),arrayBuffer:ae("arrayBuffer"),formData:ae("formData")};function R(W){return(ne,U)=>{if(!m.value){s.method=W,s.payload=ne,s.payloadType=U,q(s.payload)&&D([T,re(s.payload)],([ue])=>ue&&A(),{deep:!0});const Y=P(s.payload);return!U&&Y&&Object.getPrototypeOf(Y)===Object.prototype&&(s.payloadType="json"),ie(k({},F),{then(ue,se){return X().then(ue,se)}})}}}function X(){return new Promise((W,ne)=>{$r(d).toBe(!0).then(()=>W(F)).catch(U=>ne(U))})}function ae(W){return()=>{if(!m.value)return s.type=W,ie(k({},F),{then(ne,U){return X().then(ne,U)}})}}return a.immediate&&setTimeout(A,0),ie(k({},F),{then(W,ne){return X().then(W,ne)}})}function Si(e,t){return!e.endsWith("/")&&!t.startsWith("/")?`${e}/${t}`:`${e}${t}`}var $i=Object.defineProperty,$n=Object.getOwnPropertySymbols,Ei=Object.prototype.hasOwnProperty,xi=Object.prototype.propertyIsEnumerable,En=(e,t,n)=>t in e?$i(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,nt=(e,t)=>{for(var n in t||(t={}))Ei.call(t,n)&&En(e,n,t[n]);if($n)for(var n of $n(t))xi.call(t,n)&&En(e,n,t[n]);return e};const Ti={multiple:!0,accept:"*"};function Di(e={}){const{document:t=ee}=e,n=p(null);let r;t&&(r=t.createElement("input"),r.type="file",r.onchange=s=>{const u=s.target;n.value=u.files});const o=s=>{if(!r)return;const u=nt(nt(nt({},Ti),e),s);r.multiple=u.multiple,r.accept=u.accept,pr(u,"capture")&&(r.capture=u.capture),r.click()},a=()=>{n.value=null,r&&(r.value="")};return{files:le(n),open:o,reset:a}}var Ii=Object.defineProperty,xn=Object.getOwnPropertySymbols,Fi=Object.prototype.hasOwnProperty,ji=Object.prototype.propertyIsEnumerable,Tn=(e,t,n)=>t in e?Ii(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,ge=(e,t)=>{for(var n in t||(t={}))Fi.call(t,n)&&Tn(e,n,t[n]);if(xn)for(var n of xn(t))ji.call(t,n)&&Tn(e,n,t[n]);return e};function Ai(e={}){const{window:t=j,dataType:n="Text"}=C(e),r=t,o=M(()=>r&&"showSaveFilePicker"in r&&"showOpenFilePicker"in r),a=p(),s=p(),u=p(),i=S(()=>{var y,w;return(w=(y=u.value)==null?void 0:y.name)!=null?w:""}),l=S(()=>{var y,w;return(w=(y=u.value)==null?void 0:y.type)!=null?w:""}),c=S(()=>{var y,w;return(w=(y=u.value)==null?void 0:y.size)!=null?w:0}),f=S(()=>{var y,w;return(w=(y=u.value)==null?void 0:y.lastModified)!=null?w:0});async function v(y={}){if(!o.value)return;const[w]=await r.showOpenFilePicker(ge(ge({},C(e)),y));a.value=w,await g(),await _()}async function d(y={}){!o.value||(a.value=await r.showSaveFilePicker(ge(ge({},C(e)),y)),s.value=void 0,await g(),await _())}async function m(y={}){if(!!o.value){if(!a.value)return h(y);if(s.value){const w=await a.value.createWritable();await w.write(s.value),await w.close()}await g()}}async function h(y={}){if(!!o.value){if(a.value=await r.showSaveFilePicker(ge(ge({},C(e)),y)),s.value){const w=await a.value.createWritable();await w.write(s.value),await w.close()}await g()}}async function g(){var y;u.value=await((y=a.value)==null?void 0:y.getFile())}async function _(){var y,w;C(n)==="Text"&&(s.value=await((y=u.value)==null?void 0:y.text())),C(n)==="ArrayBuffer"&&(s.value=await((w=u.value)==null?void 0:w.arrayBuffer())),C(n)==="Blob"&&(s.value=u.value)}return D(()=>C(n),_),{isSupported:o,data:s,file:u,fileName:i,fileMIME:l,fileSize:c,fileLastModified:f,open:v,create:d,save:m,saveAs:h,updateData:_}}function Ci(e,t={}){const{initialValue:n=!1}=t,r=yt(t),o=S(()=>V(e)),a=S({get(){return Ne(r.value)&&Ne(o.value)&&r.value===o.value},set(s){var u,i;!s&&a.value&&((u=o.value)==null||u.blur()),s&&!a.value&&((i=o.value)==null||i.focus())}});return D(o,()=>{a.value=n},{immediate:!0,flush:"post"}),{focused:a}}function Ri(e,t={}){const n=yt(t),r=S(()=>V(e));return{focused:S(()=>r.value&&n.value?r.value.contains(n.value):!1)}}function Ni(e){var t;const n=p(0);if(typeof performance=="undefined")return n;const r=(t=e==null?void 0:e.every)!=null?t:10;let o=performance.now(),a=0;return pe(()=>{if(a+=1,a>=r){const s=performance.now(),u=s-o;n.value=Math.round(1e3/(u/a)),o=s,a=0}}),n}const Dn=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]];function Mi(e,t={}){const{document:n=ee,autoExit:r=!1}=t,o=e||(n==null?void 0:n.querySelector("html")),a=p(!1);let s=Dn[0];const u=M(()=>{if(n){for(const h of Dn)if(h[1]in n)return s=h,!0}else return!1;return!1}),[i,l,c,,f]=s;async function v(){!u.value||((n==null?void 0:n[c])&&await n[l](),a.value=!1)}async function d(){if(!u.value)return;await v();const h=V(o);h&&(await h[i](),a.value=!0)}async function m(){a.value?await v():await d()}return n&&O(n,f,()=>{a.value=!!(n==null?void 0:n[c])},!1),r&&N(v),{isSupported:u,isFullscreen:a,enter:d,exit:v,toggle:m}}function ki(e){return S(()=>e.value?{buttons:{a:e.value.buttons[0],b:e.value.buttons[1],x:e.value.buttons[2],y:e.value.buttons[3]},bumper:{left:e.value.buttons[4],right:e.value.buttons[5]},triggers:{left:e.value.buttons[6],right:e.value.buttons[7]},stick:{left:{horizontal:e.value.axes[0],vertical:e.value.axes[1],button:e.value.buttons[10]},right:{horizontal:e.value.axes[2],vertical:e.value.axes[3],button:e.value.buttons[11]}},dpad:{up:e.value.buttons[12],down:e.value.buttons[13],left:e.value.buttons[14],right:e.value.buttons[15]},back:e.value.buttons[8],start:e.value.buttons[9]}:null)}function Li(e={}){const{navigator:t=te}=e,n=M(()=>t&&"getGamepads"in t),r=p([]),o=z(),a=z(),s=d=>{const m=[],h="vibrationActuator"in d?d.vibrationActuator:null;return h&&m.push(h),d.hapticActuators&&m.push(...d.hapticActuators),{id:d.id,hapticActuators:m,index:d.index,mapping:d.mapping,connected:d.connected,timestamp:d.timestamp,axes:d.axes.map(g=>g),buttons:d.buttons.map(g=>({pressed:g.pressed,touched:g.touched,value:g.value}))}},u=()=>{const d=(t==null?void 0:t.getGamepads())||[];for(let m=0;m_===h.index);g>-1&&(r.value[g]=s(h))}}},{isActive:i,pause:l,resume:c}=pe(u),f=d=>{r.value.some(({index:m})=>m===d.index)||(r.value.push(s(d)),o.trigger(d.index)),c()},v=d=>{r.value=r.value.filter(m=>m.index!==d.index),a.trigger(d.index)};return O("gamepadconnected",d=>f(d.gamepad)),O("gamepaddisconnected",d=>v(d.gamepad)),Z(()=>{const d=(t==null?void 0:t.getGamepads())||[];if(d)for(let m=0;mo&&"geolocation"in o),s=p(null),u=p(null),i=p({accuracy:0,latitude:1/0,longitude:1/0,altitude:null,altitudeAccuracy:null,heading:null,speed:null});function l(f){s.value=f.timestamp,i.value=f.coords,u.value=null}let c;return a.value&&(c=o.geolocation.watchPosition(l,f=>u.value=f,{enableHighAccuracy:t,maximumAge:n,timeout:r})),N(()=>{c&&o&&o.geolocation.clearWatch(c)}),{isSupported:a,coords:i,locatedAt:s,error:u}}const Wi=["mousemove","mousedown","resize","keydown","touchstart","wheel"],Bi=6e4;function Ui(e=Bi,t={}){const{initialState:n=!1,listenForVisibilityChange:r=!0,events:o=Wi,window:a=j,eventFilter:s=De(50)}=t,u=p(n),i=p(ce());let l;const c=ve(s,()=>{u.value=!1,i.value=ce(),clearTimeout(l),l=setTimeout(()=>u.value=!0,e)});if(a){const f=a.document;for(const v of o)O(a,v,c,{passive:!0});r&&O(f,"visibilitychange",()=>{f.hidden||c()})}return l=setTimeout(()=>u.value=!0,e),{idle:u,lastActive:i}}var Hi=Object.defineProperty,In=Object.getOwnPropertySymbols,zi=Object.prototype.hasOwnProperty,Gi=Object.prototype.propertyIsEnumerable,Fn=(e,t,n)=>t in e?Hi(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,qi=(e,t)=>{for(var n in t||(t={}))zi.call(t,n)&&Fn(e,n,t[n]);if(In)for(var n of In(t))Gi.call(t,n)&&Fn(e,n,t[n]);return e};async function Xi(e){return new Promise((t,n)=>{const r=new Image,{src:o,srcset:a,sizes:s}=e;r.src=o,a&&(r.srcset=a),s&&(r.sizes=s),r.onload=()=>t(r),r.onerror=n})}const Yi=(e,t={})=>{const n=Nr(()=>Xi(P(e)),void 0,qi({resetOnExecute:!0},t));return D(()=>P(e),()=>n.execute(t.delay),{deep:!0}),n},jn=1;function Gr(e,t={}){const{throttle:n=0,idle:r=200,onStop:o=L,onScroll:a=L,offset:s={left:0,right:0,top:0,bottom:0},eventListenerOptions:u={capture:!1,passive:!0}}=t,i=p(0),l=p(0),c=p(!1),f=B({left:!0,right:!1,top:!0,bottom:!1}),v=B({left:!1,right:!1,top:!1,bottom:!1}),d=Xe(h=>{c.value=!1,v.left=!1,v.right=!1,v.top=!1,v.bottom=!1,o(h)},n+r),m=h=>{const g=h.target===document?h.target.documentElement:h.target,_=g.scrollLeft;v.left=_i.value,f.left=_<=0+(s.left||0),f.right=_+g.clientWidth>=g.scrollWidth-(s.right||0)-jn,i.value=_;let y=g.scrollTop;h.target===document&&!y&&(y=document.body.scrollTop),v.top=yl.value,f.top=y<=0+(s.top||0),f.bottom=y+g.clientHeight>=g.scrollHeight-(s.bottom||0)-jn,l.value=y,c.value=!0,d(h),a(h)};return O(e,"scroll",n?pt(m,n):m,u),{x:i,y:l,isScrolling:c,arrivedState:f,directions:v}}var Ki=Object.defineProperty,Ji=Object.defineProperties,Qi=Object.getOwnPropertyDescriptors,An=Object.getOwnPropertySymbols,Zi=Object.prototype.hasOwnProperty,el=Object.prototype.propertyIsEnumerable,Cn=(e,t,n)=>t in e?Ki(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Rn=(e,t)=>{for(var n in t||(t={}))Zi.call(t,n)&&Cn(e,n,t[n]);if(An)for(var n of An(t))el.call(t,n)&&Cn(e,n,t[n]);return e},tl=(e,t)=>Ji(e,Qi(t));function nl(e,t,n={}){var r,o;const a=(r=n.direction)!=null?r:"bottom",s=B(Gr(e,tl(Rn({},n),{offset:Rn({[a]:(o=n.distance)!=null?o:0},n.offset)})));D(()=>s.arrivedState[a],async u=>{var i,l;if(u){const c=P(e),f={height:(i=c==null?void 0:c.scrollHeight)!=null?i:0,width:(l=c==null?void 0:c.scrollWidth)!=null?l:0};await t(s),n.preserveScrollPosition&&c&&Ee(()=>{c.scrollTo({top:c.scrollHeight-f.height,left:c.scrollWidth-f.width})})}})}function rl(e,t,n={}){const{root:r,rootMargin:o="0px",threshold:a=.1,window:s=j}=n,u=M(()=>s&&"IntersectionObserver"in s);let i=L;const l=u.value?D(()=>({el:V(e),root:V(r)}),({el:f,root:v})=>{if(i(),!f)return;const d=new IntersectionObserver(t,{root:v,rootMargin:o,threshold:a});d.observe(f),i=()=>{d.disconnect(),i=L}},{immediate:!0,flush:"post"}):L,c=()=>{i(),l()};return N(c),{isSupported:u,stop:c}}const ol=["mousedown","mouseup","keydown","keyup"];function al(e,t={}){const{events:n=ol,document:r=ee,initial:o=null}=t,a=p(o);return r&&n.forEach(s=>{O(r,s,u=>{typeof u.getModifierState=="function"&&(a.value=u.getModifierState(e))})}),a}function ul(e,t,n={}){const{window:r=j}=n;return Je(e,t,r==null?void 0:r.localStorage,n)}const qr={ctrl:"control",command:"meta",cmd:"meta",option:"alt",up:"arrowup",down:"arrowdown",left:"arrowleft",right:"arrowright"};function sl(e={}){const{reactive:t=!1,target:n=j,aliasMap:r=qr,passive:o=!0,onEventFired:a=L}=e,s=B(new Set),u={toJSON(){return{}},current:s},i=t?B(u):u,l=new Set,c=new Set;function f(h,g){h in i&&(t?i[h]=g:i[h].value=g)}function v(){for(const h of c)f(h,!1)}function d(h,g){var _,y;const w=(_=h.key)==null?void 0:_.toLowerCase(),b=[(y=h.code)==null?void 0:y.toLowerCase(),w].filter(Boolean);w&&(g?s.add(w):s.delete(w));for(const E of b)c.add(E),f(E,g);w==="meta"&&!g?(l.forEach(E=>{s.delete(E),f(E,!1)}),l.clear()):typeof h.getModifierState=="function"&&h.getModifierState("Meta")&&g&&[...s,...b].forEach(E=>l.add(E))}O(n,"keydown",h=>(d(h,!0),a(h)),{passive:o}),O(n,"keyup",h=>(d(h,!1),a(h)),{passive:o}),O("blur",v,{passive:!0}),O("focus",v,{passive:!0});const m=new Proxy(i,{get(h,g,_){if(typeof g!="string")return Reflect.get(h,g,_);if(g=g.toLowerCase(),g in r&&(g=r[g]),!(g in i))if(/[+_-]/.test(g)){const w=g.split(/[+_-]/g).map($=>$.trim());i[g]=S(()=>w.every($=>C(m[$])))}else i[g]=p(!1);const y=Reflect.get(h,g,_);return t?C(y):y}});return m}var il=Object.defineProperty,Nn=Object.getOwnPropertySymbols,ll=Object.prototype.hasOwnProperty,cl=Object.prototype.propertyIsEnumerable,Mn=(e,t,n)=>t in e?il(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,kn=(e,t)=>{for(var n in t||(t={}))ll.call(t,n)&&Mn(e,n,t[n]);if(Nn)for(var n of Nn(t))cl.call(t,n)&&Mn(e,n,t[n]);return e};function rt(e,t){P(e)&&t(P(e))}function fl(e){let t=[];for(let n=0;n({id:i,label:t,kind:n,language:r,mode:o,activeCues:a,cues:s,inBandMetadataTrackDispatchType:u}))}const vl={src:"",tracks:[]};function dl(e,t={}){t=kn(kn({},vl),t);const{document:n=ee}=t,r=p(0),o=p(0),a=p(!1),s=p(1),u=p(!1),i=p(!1),l=p(!1),c=p(1),f=p(!1),v=p([]),d=p([]),m=p(-1),h=p(!1),g=p(!1),_=n&&"pictureInPictureEnabled"in n,y=z(),w=T=>{rt(e,F=>{if(T){const R=ye(T)?T:T.id;F.textTracks[R].mode="disabled"}else for(let R=0;R{rt(e,R=>{const X=ye(T)?T:T.id;F&&w(),R.textTracks[X].mode="showing",m.value=X})},b=()=>new Promise((T,F)=>{rt(e,async R=>{_&&(h.value?n.exitPictureInPicture().then(T).catch(F):R.requestPictureInPicture().then(T).catch(F))})});Re(()=>{if(!n)return;const T=P(e);if(!T)return;const F=P(t.src);let R=[];!F||(xe(F)?R=[{src:F}]:Array.isArray(F)?R=F:dr(F)&&(R=[F]),T.querySelectorAll("source").forEach(X=>{X.removeEventListener("error",y.trigger),X.remove()}),R.forEach(({src:X,type:ae})=>{const W=n.createElement("source");W.setAttribute("src",X),W.setAttribute("type",ae||""),W.addEventListener("error",y.trigger),T.appendChild(W)}),T.load())}),N(()=>{const T=P(e);!T||T.querySelectorAll("source").forEach(F=>F.removeEventListener("error",y.trigger))}),D(s,T=>{const F=P(e);!F||(F.volume=T)}),D(g,T=>{const F=P(e);!F||(F.muted=T)}),D(c,T=>{const F=P(e);!F||(F.playbackRate=T)}),Re(()=>{if(!n)return;const T=P(t.tracks),F=P(e);!T||!T.length||!F||(F.querySelectorAll("track").forEach(R=>R.remove()),T.forEach(({default:R,kind:X,label:ae,src:W,srcLang:ne},U)=>{const Y=n.createElement("track");Y.default=R||!1,Y.kind=X,Y.label=ae,Y.src=W,Y.srclang=ne,Y.default&&(m.value=U),F.appendChild(Y)}))});const{ignoreUpdates:E}=_e(r,T=>{const F=P(e);!F||(F.currentTime=T)}),{ignoreUpdates:x}=_e(l,T=>{const F=P(e);!F||(T?F.play():F.pause())});O(e,"timeupdate",()=>E(()=>r.value=P(e).currentTime)),O(e,"durationchange",()=>o.value=P(e).duration),O(e,"progress",()=>v.value=fl(P(e).buffered)),O(e,"seeking",()=>a.value=!0),O(e,"seeked",()=>a.value=!1),O(e,"waiting",()=>u.value=!0),O(e,"playing",()=>u.value=!1),O(e,"ratechange",()=>c.value=P(e).playbackRate),O(e,"stalled",()=>f.value=!0),O(e,"ended",()=>i.value=!0),O(e,"pause",()=>x(()=>l.value=!1)),O(e,"play",()=>x(()=>l.value=!0)),O(e,"enterpictureinpicture",()=>h.value=!0),O(e,"leavepictureinpicture",()=>h.value=!1),O(e,"volumechange",()=>{const T=P(e);!T||(s.value=T.volume,g.value=T.muted)});const I=[],A=D([e],()=>{const T=P(e);!T||(A(),I[0]=O(T.textTracks,"addtrack",()=>d.value=ot(T.textTracks)),I[1]=O(T.textTracks,"removetrack",()=>d.value=ot(T.textTracks)),I[2]=O(T.textTracks,"change",()=>d.value=ot(T.textTracks)))});return N(()=>I.forEach(T=>T())),{currentTime:r,duration:o,waiting:u,seeking:a,ended:i,stalled:f,buffered:v,playing:l,rate:c,volume:s,muted:g,tracks:d,selectedTrack:m,enableTrack:$,disableTrack:w,supportsPictureInPicture:_,togglePictureInPicture:b,isPictureInPicture:h,onSourceError:y.on}}function pl(e,t){const r=(()=>(t==null?void 0:t.cache)?B(t.cache):B(new Map))(),o=(...c)=>(t==null?void 0:t.getKey)?t.getKey(...c):JSON.stringify(c),a=(c,...f)=>(r.set(c,e(...f)),r.get(c)),s=(...c)=>a(o(...c),...c),u=(...c)=>{r.delete(o(...c))},i=()=>{r.clear()},l=(...c)=>{const f=o(...c);return r.has(f)?r.get(f):a(f,...c)};return l.load=s,l.delete=u,l.clear=i,l.generateKey=o,l.cache=r,l}function ml(e={}){const t=p(),n=M(()=>typeof performance!="undefined"&&"memory"in performance);if(n.value){const{interval:r=1e3}=e;de(()=>{t.value=performance.memory},r,{immediate:e.immediate,immediateCallback:e.immediateCallback})}return{isSupported:n,memory:t}}function hl(){const e=p(!1);return ft(()=>{e.value=!0}),e}function Xr(e={}){const{type:t="page",touch:n=!0,resetOnTouchEnds:r=!1,initialValue:o={x:0,y:0},window:a=j,eventFilter:s}=e,u=p(o.x),i=p(o.y),l=p(null),c=h=>{t==="page"?(u.value=h.pageX,i.value=h.pageY):t==="client"&&(u.value=h.clientX,i.value=h.clientY),l.value="mouse"},f=()=>{u.value=o.x,i.value=o.y},v=h=>{if(h.touches.length>0){const g=h.touches[0];t==="page"?(u.value=g.pageX,i.value=g.pageY):t==="client"&&(u.value=g.clientX,i.value=g.clientY),l.value="touch"}},d=h=>s===void 0?c(h):s(()=>c(h),{}),m=h=>s===void 0?v(h):s(()=>v(h),{});return a&&(O(a,"mousemove",d,{passive:!0}),O(a,"dragover",d,{passive:!0}),n&&(O(a,"touchstart",m,{passive:!0}),O(a,"touchmove",m,{passive:!0}),r&&O(a,"touchend",f,{passive:!0}))),{x:u,y:i,sourceType:l}}function Yr(e,t={}){const{handleOutside:n=!0,window:r=j}=t,{x:o,y:a,sourceType:s}=Xr(t),u=p(e!=null?e:r==null?void 0:r.document.body),i=p(0),l=p(0),c=p(0),f=p(0),v=p(0),d=p(0),m=p(!0);let h=()=>{};return r&&(h=D([u,o,a],()=>{const g=V(u);if(!g)return;const{left:_,top:y,width:w,height:$}=g.getBoundingClientRect();c.value=_+r.pageXOffset,f.value=y+r.pageYOffset,v.value=$,d.value=w;const b=o.value-c.value,E=a.value-f.value;m.value=w===0||$===0||b<0||E<0||b>w||E>$,(n||!m.value)&&(i.value=b,l.value=E)},{immediate:!0})),{x:o,y:a,sourceType:s,elementX:i,elementY:l,elementPositionX:c,elementPositionY:f,elementHeight:v,elementWidth:d,isOutside:m,stop:h}}function gl(e={}){const{touch:t=!0,drag:n=!0,initialValue:r=!1,window:o=j}=e,a=p(r),s=p(null);if(!o)return{pressed:a,sourceType:s};const u=c=>()=>{a.value=!0,s.value=c},i=()=>{a.value=!1,s.value=null},l=S(()=>V(e.target)||o);return O(l,"mousedown",u("mouse"),{passive:!0}),O(o,"mouseleave",i,{passive:!0}),O(o,"mouseup",i,{passive:!0}),n&&(O(l,"dragstart",u("mouse"),{passive:!0}),O(o,"drop",i,{passive:!0}),O(o,"dragend",i,{passive:!0})),t&&(O(l,"touchstart",u("touch"),{passive:!0}),O(o,"touchend",i,{passive:!0}),O(o,"touchcancel",i,{passive:!0})),{pressed:a,sourceType:s}}var Ln=Object.getOwnPropertySymbols,yl=Object.prototype.hasOwnProperty,_l=Object.prototype.propertyIsEnumerable,wl=(e,t)=>{var n={};for(var r in e)yl.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&Ln)for(var r of Ln(e))t.indexOf(r)<0&&_l.call(e,r)&&(n[r]=e[r]);return n};function Pt(e,t,n={}){const r=n,{window:o=j}=r,a=wl(r,["window"]);let s;const u=M(()=>o&&"MutationObserver"in o),i=()=>{s&&(s.disconnect(),s=void 0)},l=D(()=>V(e),f=>{i(),u.value&&o&&f&&(s=new MutationObserver(t),s.observe(f,a))},{immediate:!0}),c=()=>{i(),l()};return N(c),{isSupported:u,stop:c}}const Ol=(e={})=>{const{window:t=j}=e,n=t==null?void 0:t.navigator,r=M(()=>n&&"language"in n),o=p(n==null?void 0:n.language);return O(t,"languagechange",()=>{n&&(o.value=n.language)}),{isSupported:r,language:o}};function Kr(e={}){const{window:t=j}=e,n=t==null?void 0:t.navigator,r=M(()=>n&&"connection"in n),o=p(!0),a=p(!1),s=p(void 0),u=p(void 0),i=p(void 0),l=p(void 0),c=p(void 0),f=p(void 0),v=p("unknown"),d=r.value&&n.connection;function m(){!n||(o.value=n.onLine,s.value=o.value?void 0:Date.now(),u.value=o.value?Date.now():void 0,d&&(i.value=d.downlink,l.value=d.downlinkMax,f.value=d.effectiveType,c.value=d.rtt,a.value=d.saveData,v.value=d.type))}return t&&(O(t,"offline",()=>{o.value=!1,s.value=Date.now()}),O(t,"online",()=>{o.value=!0,u.value=Date.now()})),d&&O(d,"change",m,!1),m(),{isSupported:r,isOnline:o,saveData:a,offlineAt:s,onlineAt:u,downlink:i,downlinkMax:l,effectiveType:f,rtt:c,type:v}}var bl=Object.defineProperty,Vn=Object.getOwnPropertySymbols,Pl=Object.prototype.hasOwnProperty,Sl=Object.prototype.propertyIsEnumerable,Wn=(e,t,n)=>t in e?bl(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,$l=(e,t)=>{for(var n in t||(t={}))Pl.call(t,n)&&Wn(e,n,t[n]);if(Vn)for(var n of Vn(t))Sl.call(t,n)&&Wn(e,n,t[n]);return e};function Jr(e={}){const{controls:t=!1,interval:n="requestAnimationFrame"}=e,r=p(new Date),o=()=>r.value=new Date,a=n==="requestAnimationFrame"?pe(o,{immediate:!0}):de(o,n,{immediate:!0});return t?$l({now:r},a):r}function El(e){const t=p(),n=()=>{t.value&&URL.revokeObjectURL(t.value),t.value=void 0};return D(()=>C(e),r=>{n(),r&&(t.value=URL.createObjectURL(r))},{immediate:!0}),N(n),le(t)}function Bn(e,t,n){const r=p(e);return S({get(){return r.value=Me(r.value,P(t),P(n))},set(o){r.value=Me(o,P(t),P(n))}})}function xl(e){const{total:t=1/0,pageSize:n=10,page:r=1,onPageChange:o=L,onPageSizeChange:a=L,onPageCountChange:s=L}=e,u=Bn(n,1,1/0),i=S(()=>Math.max(1,Math.ceil(C(t)/C(u)))),l=Bn(r,1,i),c=S(()=>l.value===1),f=S(()=>l.value===i.value);q(r)&&it(r,l),q(n)&&it(n,u);function v(){l.value--}function d(){l.value++}const m={currentPage:l,currentPageSize:u,pageCount:i,isFirstPage:c,isLastPage:f,prev:v,next:d};return D(l,()=>{o(B(m))}),D(u,()=>{a(B(m))}),D(i,()=>{s(B(m))}),m}function Tl(e={}){const{isOnline:t}=Kr(e);return t}function Dl(e={}){const{window:t=j}=e,n=p(!1),r=o=>{if(!t)return;o=o||t.event;const a=o.relatedTarget||o.toElement;n.value=!a};return t&&(O(t,"mouseout",r,{passive:!0}),O(t.document,"mouseleave",r,{passive:!0}),O(t.document,"mouseenter",r,{passive:!0})),n}function Il(e,t={}){const{deviceOrientationTiltAdjust:n=h=>h,deviceOrientationRollAdjust:r=h=>h,mouseTiltAdjust:o=h=>h,mouseRollAdjust:a=h=>h,window:s=j}=t,u=B(Br({window:s})),{elementX:i,elementY:l,elementWidth:c,elementHeight:f}=Yr(e,{handleOutside:!1,window:s}),v=S(()=>u.isSupported&&(u.alpha!=null&&u.alpha!==0||u.gamma!=null&&u.gamma!==0)?"deviceOrientation":"mouse"),d=S(()=>{if(v.value==="deviceOrientation"){const h=-u.beta/90;return r(h)}else{const h=-(l.value-f.value/2)/f.value;return a(h)}}),m=S(()=>{if(v.value==="deviceOrientation"){const h=u.gamma/90;return n(h)}else{const h=(i.value-c.value/2)/c.value;return o(h)}});return{roll:d,tilt:m,source:v}}var Fl=Object.defineProperty,jl=Object.defineProperties,Al=Object.getOwnPropertyDescriptors,Un=Object.getOwnPropertySymbols,Cl=Object.prototype.hasOwnProperty,Rl=Object.prototype.propertyIsEnumerable,Hn=(e,t,n)=>t in e?Fl(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Nl=(e,t)=>{for(var n in t||(t={}))Cl.call(t,n)&&Hn(e,n,t[n]);if(Un)for(var n of Un(t))Rl.call(t,n)&&Hn(e,n,t[n]);return e},Ml=(e,t)=>jl(e,Al(t));const Qr={x:0,y:0,pointerId:0,pressure:0,tiltX:0,tiltY:0,width:0,height:0,twist:0,pointerType:null},kl=Object.keys(Qr);function Ll(e={}){const{target:t=j}=e,n=p(!1),r=p(e.initialValue||{});Object.assign(r.value,Qr,r.value);const o=a=>{n.value=!0,!(e.pointerTypes&&!e.pointerTypes.includes(a.pointerType))&&(r.value=yr(a,kl,!1))};return t&&(O(t,"pointerdown",o,{passive:!0}),O(t,"pointermove",o,{passive:!0}),O(t,"pointerleave",()=>n.value=!1,{passive:!0})),Ml(Nl({},mt(r)),{isInside:n})}var J;(function(e){e.UP="UP",e.RIGHT="RIGHT",e.DOWN="DOWN",e.LEFT="LEFT",e.NONE="NONE"})(J||(J={}));function Vl(e,t={}){const{threshold:n=50,onSwipe:r,onSwipeEnd:o,onSwipeStart:a,passive:s=!0,window:u=j}=t,i=B({x:0,y:0}),l=B({x:0,y:0}),c=S(()=>i.x-l.x),f=S(()=>i.y-l.y),{max:v,abs:d}=Math,m=S(()=>v(d(c.value),d(f.value))>=n),h=p(!1),g=S(()=>m.value?d(c.value)>d(f.value)?c.value>0?J.LEFT:J.RIGHT:f.value>0?J.UP:J.DOWN:J.NONE),_=A=>[A.touches[0].clientX,A.touches[0].clientY],y=(A,T)=>{i.x=A,i.y=T},w=(A,T)=>{l.x=A,l.y=T};let $;const b=Wl(u==null?void 0:u.document);s?$=b?{passive:!0}:{capture:!1}:$=b?{passive:!1,capture:!0}:{capture:!0};const E=A=>{h.value&&(o==null||o(A,g.value)),h.value=!1},x=[O(e,"touchstart",A=>{$.capture&&!$.passive&&A.preventDefault();const[T,F]=_(A);y(T,F),w(T,F),a==null||a(A)},$),O(e,"touchmove",A=>{const[T,F]=_(A);w(T,F),!h.value&&m.value&&(h.value=!0),h.value&&(r==null||r(A))},$),O(e,"touchend",E,$),O(e,"touchcancel",E,$)];return{isPassiveEventSupported:b,isSwiping:h,direction:g,coordsStart:i,coordsEnd:l,lengthX:c,lengthY:f,stop:()=>x.forEach(A=>A())}}function Wl(e){if(!e)return!1;let t=!1;const n={get passive(){return t=!0,!1}};return e.addEventListener("x",L,n),e.removeEventListener("x",L),t}function Bl(e,t={}){const n=re(e),{threshold:r=50,onSwipe:o,onSwipeEnd:a,onSwipeStart:s}=t,u=B({x:0,y:0}),i=(E,x)=>{u.x=E,u.y=x},l=B({x:0,y:0}),c=(E,x)=>{l.x=E,l.y=x},f=S(()=>u.x-l.x),v=S(()=>u.y-l.y),{max:d,abs:m}=Math,h=S(()=>d(m(f.value),m(v.value))>=r),g=p(!1),_=p(!1),y=S(()=>h.value?m(f.value)>m(v.value)?f.value>0?J.LEFT:J.RIGHT:v.value>0?J.UP:J.DOWN:J.NONE),w=E=>t.pointerTypes?t.pointerTypes.includes(E.pointerType):!0,$=[O(e,"pointerdown",E=>{var x,I;if(!w(E))return;_.value=!0,(I=(x=n.value)==null?void 0:x.style)==null||I.setProperty("touch-action","none");const A=E.target;A==null||A.setPointerCapture(E.pointerId);const{clientX:T,clientY:F}=E;i(T,F),c(T,F),s==null||s(E)}),O(e,"pointermove",E=>{if(!w(E)||!_.value)return;const{clientX:x,clientY:I}=E;c(x,I),!g.value&&h.value&&(g.value=!0),g.value&&(o==null||o(E))}),O(e,"pointerup",E=>{var x,I;!w(E)||(g.value&&(a==null||a(E,y.value)),_.value=!1,g.value=!1,(I=(x=n.value)==null?void 0:x.style)==null||I.setProperty("touch-action","initial"))})],b=()=>$.forEach(E=>E());return{isSwiping:le(g),direction:le(y),posStart:le(u),posEnd:le(l),distanceX:f,distanceY:v,stop:b}}function Ul(e){const t=K("(prefers-color-scheme: light)",e),n=K("(prefers-color-scheme: dark)",e);return S(()=>n.value?"dark":t.value?"light":"no-preference")}function Hl(e){const t=K("(prefers-contrast: more)",e),n=K("(prefers-contrast: less)",e),r=K("(prefers-contrast: custom)",e);return S(()=>t.value?"more":n.value?"less":r.value?"custom":"no-preference")}function zl(e={}){const{window:t=j}=e;if(!t)return p(["en"]);const n=t.navigator,r=p(n.languages);return O(t,"languagechange",()=>{r.value=n.languages}),r}function Gl(e){const t=K("(prefers-reduced-motion: reduce)",e);return S(()=>t.value?"reduce":"no-preference")}const ql=(e={})=>{const{window:t=j}=e,n=M(()=>t&&"screen"in t&&"orientation"in t.screen),r=n.value?t.screen.orientation:{},o=p(r.type),a=p(r.angle||0);return n.value&&O(t,"orientationchange",()=>{o.value=r.type,a.value=r.angle}),{isSupported:n,orientation:o,angle:a,lockOrientation:i=>n.value?r.lock(i):Promise.reject(new Error("Not supported")),unlockOrientation:()=>{n.value&&r.unlock()}}},zn="--vueuse-safe-area-top",Gn="--vueuse-safe-area-right",qn="--vueuse-safe-area-bottom",Xn="--vueuse-safe-area-left";function Xl(){const e=p(""),t=p(""),n=p(""),r=p("");if(Q){const a=Pe(zn),s=Pe(Gn),u=Pe(qn),i=Pe(Xn);a.value="env(safe-area-inset-top, 0px)",s.value="env(safe-area-inset-right, 0px)",u.value="env(safe-area-inset-bottom, 0px)",i.value="env(safe-area-inset-left, 0px)",o(),O("resize",Xe(o))}function o(){e.value=Ae(zn),t.value=Ae(Gn),n.value=Ae(qn),r.value=Ae(Xn)}return{top:e,right:t,bottom:n,left:r,update:o}}function Ae(e){return getComputedStyle(document.documentElement).getPropertyValue(e)}function Yl(e,t=L,n={}){const{immediate:r=!0,manual:o=!1,type:a="text/javascript",async:s=!0,crossOrigin:u,referrerPolicy:i,noModule:l,defer:c,document:f=ee,attrs:v={}}=n,d=p(null);let m=null;const h=y=>new Promise((w,$)=>{const b=I=>(d.value=I,w(I),I);if(!f){w(!1);return}let E=!1,x=f.querySelector(`script[src="${P(e)}"]`);x?x.hasAttribute("data-loaded")&&b(x):(x=f.createElement("script"),x.type=a,x.async=s,x.src=P(e),c&&(x.defer=c),u&&(x.crossOrigin=u),l&&(x.noModule=l),i&&(x.referrerPolicy=i),Object.entries(v).forEach(([I,A])=>x==null?void 0:x.setAttribute(I,A)),E=!0),x.addEventListener("error",I=>$(I)),x.addEventListener("abort",I=>$(I)),x.addEventListener("load",()=>{x.setAttribute("data-loaded","true"),t(x),b(x)}),E&&(x=f.head.appendChild(x)),y||b(x)}),g=(y=!0)=>(m||(m=h(y)),m),_=()=>{if(!f)return;m=null,d.value&&(d.value=null);const y=f.querySelector(`script[src="${P(e)}"]`);y&&f.head.removeChild(y)};return r&&!o&&Z(g),o||Sr(_),{scriptTag:d,load:g,unload:_}}function Kl(e){const t=e||window.event;return t.touches.length>1?!0:(t.preventDefault&&t.preventDefault(),!1)}function Jl(e,t=!1){const n=p(t);let r=null,o;D(re(e),u=>{if(u){const i=u;o=i.style.overflow,n.value&&(i.style.overflow="hidden")}},{immediate:!0});const a=()=>{const u=P(e);!u||n.value||(ut&&(r=O(u,"touchmove",Kl,{passive:!1})),u.style.overflow="hidden",n.value=!0)},s=()=>{const u=P(e);!u||!n.value||(ut&&(r==null||r()),u.style.overflow=o,n.value=!1)};return N(s),S({get(){return n.value},set(u){u?a():s()}})}function Ql(e,t,n={}){const{window:r=j}=n;return Je(e,t,r==null?void 0:r.sessionStorage,n)}var Zl=Object.defineProperty,Yn=Object.getOwnPropertySymbols,ec=Object.prototype.hasOwnProperty,tc=Object.prototype.propertyIsEnumerable,Kn=(e,t,n)=>t in e?Zl(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Jn=(e,t)=>{for(var n in t||(t={}))ec.call(t,n)&&Kn(e,n,t[n]);if(Yn)for(var n of Yn(t))tc.call(t,n)&&Kn(e,n,t[n]);return e};function nc(e={},t={}){const{navigator:n=te}=t,r=n,o=M(()=>r&&"canShare"in r);return{isSupported:o,share:async(s={})=>{if(o.value){const u=Jn(Jn({},P(e)),P(s));let i=!0;if(u.files&&r.canShare&&(i=r.canShare({files:u.files})),i)return r.share(u)}}}}function rc(e={}){const{interimResults:t=!0,continuous:n=!0,window:r=j}=e,o=re(e.lang||"en-US"),a=p(!1),s=p(!1),u=p(""),i=G(void 0),l=(h=!a.value)=>{a.value=h},c=()=>{a.value=!0},f=()=>{a.value=!1},v=r&&(r.SpeechRecognition||r.webkitSpeechRecognition),d=M(()=>v);let m;return d.value&&(m=new v,m.continuous=n,m.interimResults=t,m.lang=C(o),m.onstart=()=>{s.value=!1},D(o,h=>{m&&!a.value&&(m.lang=h)}),m.onresult=h=>{const g=Array.from(h.results).map(_=>(s.value=_.isFinal,_[0])).map(_=>_.transcript).join("");u.value=g,i.value=void 0},m.onerror=h=>{i.value=h},m.onend=()=>{a.value=!1,m.lang=C(o)},D(a,()=>{a.value?m.start():m.stop()})),N(()=>{a.value=!1}),{isSupported:d,isListening:a,isFinal:s,recognition:m,result:u,error:i,toggle:l,start:c,stop:f}}function oc(e,t={}){const{pitch:n=1,rate:r=1,volume:o=1,window:a=j}=t,s=a&&a.speechSynthesis,u=M(()=>s),i=p(!1),l=p("init"),c=re(e||""),f=re(t.lang||"en-US"),v=G(void 0),d=(_=!i.value)=>{i.value=_},m=_=>{_.lang=C(f),_.voice=C(t.voice)||null,_.pitch=n,_.rate=r,_.volume=o,_.onstart=()=>{i.value=!0,l.value="play"},_.onpause=()=>{i.value=!1,l.value="pause"},_.onresume=()=>{i.value=!0,l.value="play"},_.onend=()=>{i.value=!1,l.value="end"},_.onerror=y=>{v.value=y}},h=S(()=>{i.value=!1,l.value="init";const _=new SpeechSynthesisUtterance(c.value);return m(_),_}),g=()=>{s.cancel(),h&&s.speak(h.value)};return u.value&&(m(h.value),D(f,_=>{h.value&&!i.value&&(h.value.lang=_)}),t.voice&&D(t.voice,()=>{s.cancel()}),D(i,()=>{i.value?s.resume():s.pause()})),N(()=>{i.value=!1}),{isSupported:u,isPlaying:i,status:l,utterance:h,error:v,toggle:d,speak:g}}function ac(e,t){const n=p(e),r=S(()=>Array.isArray(n.value)?n.value:Object.keys(n.value)),o=p(r.value.indexOf(t!=null?t:r.value[0])),a=S(()=>c(o.value)),s=S(()=>o.value===0),u=S(()=>o.value===r.value.length-1),i=S(()=>r.value[o.value+1]),l=S(()=>r.value[o.value-1]);function c(b){return Array.isArray(n.value)?n.value[b]:n.value[r.value[b]]}function f(b){if(!!r.value.includes(b))return c(r.value.indexOf(b))}function v(b){r.value.includes(b)&&(o.value=r.value.indexOf(b))}function d(){u.value||o.value++}function m(){s.value||o.value--}function h(b){$(b)&&v(b)}function g(b){return r.value.indexOf(b)===o.value+1}function _(b){return r.value.indexOf(b)===o.value-1}function y(b){return r.value.indexOf(b)===o.value}function w(b){return o.valuer.value.indexOf(b)}return{steps:n,stepNames:r,index:o,current:a,next:i,previous:l,isFirst:s,isLast:u,at:c,get:f,goTo:v,goToNext:d,goToPrevious:m,goBackTo:h,isNext:g,isPrevious:_,isCurrent:y,isBefore:w,isAfter:$}}function uc(e,t,n,r={}){var o;const{flush:a="pre",deep:s=!0,listenToStorageChanges:u=!0,writeDefaults:i=!0,shallow:l,window:c=j,eventFilter:f,onError:v=y=>{console.error(y)}}=r,d=P(t),m=kr(d),h=(l?G:p)(t),g=(o=r.serializer)!=null?o:_t[m];if(!n)try{n=Ke("getDefaultStorage",()=>{var y;return(y=j)==null?void 0:y.localStorage})()}catch(y){v(y)}async function _(y){if(!(!n||y&&y.key!==e))try{const w=y?y.newValue:await n.getItem(e);w==null?(h.value=d,i&&d!==null&&await n.setItem(e,await g.write(d))):h.value=await g.read(w)}catch(w){v(w)}}return _(),c&&u&&O(c,"storage",y=>setTimeout(()=>_(y),0)),n&&Oe(h,async()=>{try{h.value==null?await n.removeItem(e):await n.setItem(e,await g.write(h.value))}catch(y){v(y)}},{flush:a,deep:s,eventFilter:f}),h}let sc=0;function ic(e,t={}){const n=p(!1),{document:r=ee,immediate:o=!0,manual:a=!1,id:s=`vueuse_styletag_${++sc}`}=t,u=p(e);let i=()=>{};const l=()=>{if(!r)return;const f=r.getElementById(s)||r.createElement("style");f.type="text/css",f.id=s,t.media&&(f.media=t.media),r.head.appendChild(f),!n.value&&(i=D(u,v=>{f.innerText=v},{immediate:!0}),n.value=!0)},c=()=>{!r||!n.value||(i(),r.head.removeChild(r.getElementById(s)),n.value=!1)};return o&&!a&&Z(l),a||N(c),{id:s,css:u,unload:c,load:l,isLoaded:le(n)}}function lc(){const e=p([]);return e.value.set=t=>{t&&e.value.push(t)},co(()=>{e.value.length=0}),e}function cc(e={}){const{document:t=ee,selector:n="html",observe:r=!1,initialValue:o="ltr"}=e;function a(){var u,i;return(i=(u=t==null?void 0:t.querySelector(n))==null?void 0:u.getAttribute("dir"))!=null?i:o}const s=p(a());return Z(()=>s.value=a()),r&&t&&Pt(t.querySelector(n),()=>s.value=a(),{attributes:!0}),S({get(){return s.value},set(u){var i,l;s.value=u,!!t&&(s.value?(i=t.querySelector(n))==null||i.setAttribute("dir",s.value):(l=t.querySelector(n))==null||l.removeAttribute("dir"))}})}function fc(e){var t;const n=(t=e.rangeCount)!=null?t:0,r=new Array(n);for(let o=0;o{var u,i;return(i=(u=n.value)==null?void 0:u.toString())!=null?i:""}),o=S(()=>n.value?fc(n.value):[]),a=S(()=>o.value.map(u=>u.getBoundingClientRect()));function s(){n.value=null,t&&(n.value=t.getSelection())}return t&&O(t.document,"selectionchange",s),{text:r,rects:a,ranges:o,selection:n}}function dc(e){const t=p(e==null?void 0:e.element),n=p(e==null?void 0:e.input);function r(){var o,a;!t.value||(t.value.style.height="1px",t.value.style.height=`${(o=t.value)==null?void 0:o.scrollHeight}px`,(a=e==null?void 0:e.onResize)==null||a.call(e))}return D([n,t],r,{immediate:!0}),(e==null?void 0:e.watch)&&D(e.watch,r,{immediate:!0,deep:!0}),{textarea:t,input:n,triggerResize:r}}var pc=Object.defineProperty,mc=Object.defineProperties,hc=Object.getOwnPropertyDescriptors,Qn=Object.getOwnPropertySymbols,gc=Object.prototype.hasOwnProperty,yc=Object.prototype.propertyIsEnumerable,Zn=(e,t,n)=>t in e?pc(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,er=(e,t)=>{for(var n in t||(t={}))gc.call(t,n)&&Zn(e,n,t[n]);if(Qn)for(var n of Qn(t))yc.call(t,n)&&Zn(e,n,t[n]);return e},_c=(e,t)=>mc(e,hc(t));function wc(e,t={}){const{throttle:n=200,trailing:r=!0}=t,o=De(n,r),a=Ot(e,_c(er({},t),{eventFilter:o}));return er({},a)}var Oc=Object.defineProperty,Ge=Object.getOwnPropertySymbols,Zr=Object.prototype.hasOwnProperty,eo=Object.prototype.propertyIsEnumerable,tr=(e,t,n)=>t in e?Oc(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,bc=(e,t)=>{for(var n in t||(t={}))Zr.call(t,n)&&tr(e,n,t[n]);if(Ge)for(var n of Ge(t))eo.call(t,n)&&tr(e,n,t[n]);return e},Pc=(e,t)=>{var n={};for(var r in e)Zr.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&Ge)for(var r of Ge(e))t.indexOf(r)<0&&eo.call(e,r)&&(n[r]=e[r]);return n};const nr=[{max:6e4,value:1e3,name:"second"},{max:276e4,value:6e4,name:"minute"},{max:72e6,value:36e5,name:"hour"},{max:5184e5,value:864e5,name:"day"},{max:24192e5,value:6048e5,name:"week"},{max:28512e6,value:2592e6,name:"month"},{max:1/0,value:31536e6,name:"year"}],Sc={justNow:"just now",past:e=>e.match(/\d/)?`${e} ago`:e,future:e=>e.match(/\d/)?`in ${e}`:e,month:(e,t)=>e===1?t?"last month":"next month":`${e} month${e>1?"s":""}`,year:(e,t)=>e===1?t?"last year":"next year":`${e} year${e>1?"s":""}`,day:(e,t)=>e===1?t?"yesterday":"tomorrow":`${e} day${e>1?"s":""}`,week:(e,t)=>e===1?t?"last week":"next week":`${e} week${e>1?"s":""}`,hour:e=>`${e} hour${e>1?"s":""}`,minute:e=>`${e} minute${e>1?"s":""}`,second:e=>`${e} second${e>1?"s":""}`},$c=e=>e.toISOString().slice(0,10);function Ec(e,t={}){const{controls:n=!1,max:r,updateInterval:o=3e4,messages:a=Sc,fullDateFormatter:s=$c}=t,{abs:u,round:i}=Math,l=Jr({interval:o,controls:!0}),{now:c}=l,f=Pc(l,["now"]);function v(g,_){var y;const w=+_-+g,$=u(w);if($<6e4)return a.justNow;if(typeof r=="number"&&$>r)return s(new Date(g));if(typeof r=="string"){const b=(y=nr.find(E=>E.name===r))==null?void 0:y.max;if(b&&$>b)return s(new Date(g))}for(const b of nr)if($0,$=d(_.name,y,w);return d(w?"past":"future",$,w)}const h=S(()=>v(new Date(P(e)),C(c.value)));return n?bc({timeAgo:h},f):h}function xc(e,t,n){const{start:r}=we(a,t),o=p(!1);async function a(){!o.value||(await e(),r())}function s(){o.value||(o.value=!0,a())}function u(){o.value=!1}return(n==null?void 0:n.immediate)&&s(),N(u),{isActive:o,pause:u,resume:s}}var Tc=Object.defineProperty,rr=Object.getOwnPropertySymbols,Dc=Object.prototype.hasOwnProperty,Ic=Object.prototype.propertyIsEnumerable,or=(e,t,n)=>t in e?Tc(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Fc=(e,t)=>{for(var n in t||(t={}))Dc.call(t,n)&&or(e,n,t[n]);if(rr)for(var n of rr(t))Ic.call(t,n)&&or(e,n,t[n]);return e};function jc(e={}){const{controls:t=!1,offset:n=0,immediate:r=!0,interval:o="requestAnimationFrame"}=e,a=p(ce()+n),s=()=>a.value=ce()+n,u=o==="requestAnimationFrame"?pe(s,{immediate:r}):de(s,o,{immediate:r});return t?Fc({timestamp:a},u):a}function Ac(e=null,t={}){var n,r;const{document:o=ee,observe:a=!1,titleTemplate:s="%s"}=t,u=re((n=e!=null?e:o==null?void 0:o.title)!=null?n:null),i=e&&oe(e);function l(c){return oe(s)?s(c):C(s).replace("%s",c)}return D(u,(c,f)=>{xe(c)&&c!==f&&o&&(o.title=l(c))},{immediate:!0}),a&&o&&!i&&Pt((r=o.head)==null?void 0:r.querySelector("title"),()=>{o&&o.title!==u.value&&(u.value=l(o.title))},{childList:!0}),u}var Cc=Object.defineProperty,ar=Object.getOwnPropertySymbols,Rc=Object.prototype.hasOwnProperty,Nc=Object.prototype.propertyIsEnumerable,ur=(e,t,n)=>t in e?Cc(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Mc=(e,t)=>{for(var n in t||(t={}))Rc.call(t,n)&&ur(e,n,t[n]);if(ar)for(var n of ar(t))Nc.call(t,n)&&ur(e,n,t[n]);return e};const kc={easeInSine:[.12,0,.39,0],easeOutSine:[.61,1,.88,1],easeInOutSine:[.37,0,.63,1],easeInQuad:[.11,0,.5,0],easeOutQuad:[.5,1,.89,1],easeInOutQuad:[.45,0,.55,1],easeInCubic:[.32,0,.67,0],easeOutCubic:[.33,1,.68,1],easeInOutCubic:[.65,0,.35,1],easeInQuart:[.5,0,.75,0],easeOutQuart:[.25,1,.5,1],easeInOutQuart:[.76,0,.24,1],easeInQuint:[.64,0,.78,0],easeOutQuint:[.22,1,.36,1],easeInOutQuint:[.83,0,.17,1],easeInExpo:[.7,0,.84,0],easeOutExpo:[.16,1,.3,1],easeInOutExpo:[.87,0,.13,1],easeInCirc:[.55,0,1,.45],easeOutCirc:[0,.55,.45,1],easeInOutCirc:[.85,0,.15,1],easeInBack:[.36,0,.66,-.56],easeOutBack:[.34,1.56,.64,1],easeInOutBack:[.68,-.6,.32,1.6]},Lc=Mc({linear:dt},kc);function Vc([e,t,n,r]){const o=(c,f)=>1-3*f+3*c,a=(c,f)=>3*f-6*c,s=c=>3*c,u=(c,f,v)=>((o(f,v)*c+a(f,v))*c+s(f))*c,i=(c,f,v)=>3*o(f,v)*c*c+2*a(f,v)*c+s(f),l=c=>{let f=c;for(let v=0;v<4;++v){const d=i(f,e,n);if(d===0)return f;f-=(u(f,e,n)-c)/d}return f};return c=>e===t&&n===r?c:u(l(c),t,r)}function Wc(e,t={}){const{delay:n=0,disabled:r=!1,duration:o=1e3,onFinished:a=L,onStarted:s=L,transition:u=dt}=t,i=S(()=>{const b=C(u);return oe(b)?b:Vc(b)}),l=S(()=>{const b=C(e);return ye(b)?b:b.map(C)}),c=S(()=>ye(l.value)?[l.value]:l.value),f=p(c.value.slice(0));let v,d,m,h,g;const{resume:_,pause:y}=pe(()=>{const b=Date.now(),E=Me(1-(m-b)/v,0,1);f.value=g.map((x,I)=>{var A;return x+((A=d[I])!=null?A:0)*i.value(E)}),E>=1&&(y(),a())},{immediate:!1}),w=()=>{y(),v=C(o),d=f.value.map((b,E)=>{var x,I;return((x=c.value[E])!=null?x:0)-((I=f.value[E])!=null?I:0)}),g=f.value.slice(0),h=Date.now(),m=h+v,_(),s()},$=we(w,n,{immediate:!1});return D(c,()=>{C(r)?f.value=c.value.slice(0):C(n)<=0?w():$.start()},{deep:!0}),S(()=>{const b=C(r)?c:f;return ye(l.value)?b.value[0]:b.value})}function Bc(e="history",t={}){const{initialValue:n={},removeNullishValues:r=!0,removeFalsyValues:o=!1,write:a=!0,window:s=j}=t;if(!s)return B(n);const u=B({});function i(){if(e==="history")return s.location.search||"";if(e==="hash"){const _=s.location.hash||"",y=_.indexOf("?");return y>0?_.slice(y):""}else return(s.location.hash||"").replace(/^#/,"")}function l(_){const y=_.toString();if(e==="history")return`${y?`?${y}`:""}${s.location.hash||""}`;if(e==="hash-params")return`${s.location.search||""}${y?`#${y}`:""}`;const w=s.location.hash||"#",$=w.indexOf("?");return $>0?`${w.slice(0,$)}${y?`?${y}`:""}`:`${w}${y?`?${y}`:""}`}function c(){return new URLSearchParams(i())}function f(_){const y=new Set(Object.keys(u));for(const w of _.keys()){const $=_.getAll(w);u[w]=$.length>1?$:_.get(w)||"",y.delete(w)}Array.from(y).forEach(w=>delete u[w])}const{pause:v,resume:d}=Ue(u,()=>{const _=new URLSearchParams("");Object.keys(u).forEach(y=>{const w=u[y];Array.isArray(w)?w.forEach($=>_.append(y,$)):r&&w==null||o&&!w?_.delete(y):_.set(y,w)}),m(_)},{deep:!0});function m(_,y){v(),y&&f(_),s.history.replaceState(s.history.state,s.document.title,s.location.pathname+l(_)),d()}function h(){!a||m(c(),!0)}O(s,"popstate",h,!1),e!=="history"&&O(s,"hashchange",h,!1);const g=c();return g.keys().next().value?f(g):Object.assign(u,n),u}function Uc(e={}){var t,n;const r=p((t=e.enabled)!=null?t:!1),o=p((n=e.autoSwitch)!=null?n:!0),a=p(e.videoDeviceId),s=p(e.audioDeviceId),{navigator:u=te}=e,i=M(()=>{var g;return(g=u==null?void 0:u.mediaDevices)==null?void 0:g.getUserMedia}),l=G();function c(g){return g.value==="none"||g.value===!1?!1:g.value==null?!0:{deviceId:g.value}}async function f(){if(!(!i.value||l.value))return l.value=await u.mediaDevices.getUserMedia({video:c(a),audio:c(s)}),l.value}async function v(){var g;(g=l.value)==null||g.getTracks().forEach(_=>_.stop()),l.value=void 0}function d(){v(),r.value=!1}async function m(){return await f(),l.value&&(r.value=!0),l.value}async function h(){return v(),await m()}return D(r,g=>{g?f():v()},{immediate:!0}),D([a,s],()=>{o.value&&l.value&&h()},{immediate:!0}),{isSupported:i,stream:l,start:m,stop:d,restart:h,videoDeviceId:a,audioDeviceId:s,enabled:r,autoSwitch:o}}function to(e,t,n,r={}){var o,a,s;const{clone:u=!1,passive:i=!1,eventName:l,deep:c=!1,defaultValue:f}=r,v=fe(),d=n||(v==null?void 0:v.emit)||((o=v==null?void 0:v.$emit)==null?void 0:o.bind(v))||((s=(a=v==null?void 0:v.proxy)==null?void 0:a.$emit)==null?void 0:s.bind(v==null?void 0:v.proxy));let m=l;t||(t="modelValue"),m=l||m||`update:${t.toString()}`;const h=_=>u?oe(u)?u(_):Ie(_):_,g=()=>Ne(e[t])?h(e[t]):f;if(i){const _=g(),y=p(_);return D(()=>e[t],w=>y.value=h(w)),D(y,w=>{(w!==e[t]||c)&&d(m,w)},{deep:c}),y}else return S({get(){return g()},set(_){d(m,_)}})}function Hc(e,t,n={}){const r={};for(const o in e)r[o]=to(e,o,t,n);return r}function zc(e){const{pattern:t=[],interval:n=0,navigator:r=te}=e||{},o=M(()=>typeof r!="undefined"&&"vibrate"in r),a=re(t);let s;const u=(l=a.value)=>{o.value&&r.vibrate(l)},i=()=>{o.value&&r.vibrate(0),s==null||s.pause()};return n>0&&(s=de(u,n,{immediate:!1,immediateCallback:!1})),{isSupported:o,pattern:t,intervalControls:s,vibrate:u,stop:i}}function Gc(e,t){const n=p(),r=Hr(n),o=p([]),a=G(e),s=p({start:0,end:10}),{itemHeight:u,overscan:i=5}=t,l=y=>{if(typeof u=="number")return Math.ceil(y/u);const{start:w=0}=s.value;let $=0,b=0;for(let E=w;E=y){b=E;break}return b-w},c=y=>{if(typeof u=="number")return Math.floor(y/u)+1;let w=0,$=0;for(let b=0;b=y){$=b;break}return $+1},f=()=>{const y=n.value;if(y){const w=c(y.scrollTop),$=l(y.clientHeight),b=w-i,E=w+$+i;s.value={start:b<0?0:b,end:E>a.value.length?a.value.length:E},o.value=a.value.slice(s.value.start,s.value.end).map((x,I)=>({data:x,index:I+s.value.start}))}};D([r.width,r.height,e],()=>{f()});const v=S(()=>typeof u=="number"?a.value.length*u:a.value.reduce((y,w,$)=>y+u($),0)),d=y=>typeof u=="number"?y*u:a.value.slice(0,y).reduce(($,b,E)=>$+u(E),0),m=y=>{n.value&&(n.value.scrollTop=d(y),f())},h=S(()=>d(s.value.start)),g=S(()=>({style:{width:"100%",height:`${v.value-h.value}px`,marginTop:`${h.value}px`}}));return{list:o,scrollTo:m,containerProps:{ref:n,onScroll:()=>{f()},style:{overflowY:"auto"}},wrapperProps:g}}const qc=(e={})=>{const{navigator:t=te,document:n=ee}=e;let r;const o=M(()=>t&&"wakeLock"in t),a=p(!1);async function s(){!o.value||!r||(n&&n.visibilityState==="visible"&&(r=await t.wakeLock.request("screen")),a.value=!r.released)}n&&O(n,"visibilitychange",s,{passive:!0});async function u(l){!o.value||(r=await t.wakeLock.request(l),a.value=!r.released)}async function i(){!o.value||!r||(await r.release(),a.value=!r.released,r=null)}return{isSupported:o,isActive:a,request:u,release:i}},Xc=(e={})=>{const{window:t=j}=e,n=M(()=>!!t&&"Notification"in t),r=p(null),o=async()=>{!n.value||"permission"in Notification&&Notification.permission!=="denied"&&await Notification.requestPermission()},a=z(),s=z(),u=z(),i=z(),l=async f=>{if(!n.value)return;await o();const v=Object.assign({},e,f);return r.value=new Notification(v.title||"",v),r.value.onclick=d=>a.trigger(d),r.value.onshow=d=>s.trigger(d),r.value.onerror=d=>u.trigger(d),r.value.onclose=d=>i.trigger(d),r.value},c=()=>{r.value&&r.value.close(),r.value=null};if(Z(async()=>{n.value&&await o()}),N(c),n.value&&t){const f=t.document;O(f,"visibilitychange",v=>{v.preventDefault(),f.visibilityState==="visible"&&c()})}return{isSupported:n,notification:r,show:l,close:c,onClick:a,onShow:s,onError:u,onClose:i}},sr="ping";function at(e){return e===!0?{}:e}function Yc(e,t={}){const{onConnected:n,onDisconnected:r,onError:o,onMessage:a,immediate:s=!0,autoClose:u=!0,protocols:i=[]}=t,l=p(null),c=p("CLOSED"),f=p();let v,d,m=!1,h=0,g=[],_;const y=(I=1e3,A)=>{!f.value||(m=!0,v==null||v(),f.value.close(I,A))},w=()=>{if(g.length&&f.value&&c.value==="OPEN"){for(const I of g)f.value.send(I);g=[]}},$=()=>{clearTimeout(_)},b=(I,A=!0)=>!f.value||c.value!=="OPEN"?(A&&g.push(I),!1):(w(),f.value.send(I),!0),E=()=>{const I=new WebSocket(e,i);f.value=I,c.value="CONNECTING",m=!1,I.onopen=()=>{c.value="OPEN",n==null||n(I),d==null||d(),w()},I.onclose=A=>{if(c.value="CLOSED",f.value=void 0,r==null||r(I,A),!m&&t.autoReconnect){const{retries:T=-1,delay:F=1e3,onFailed:R}=at(t.autoReconnect);h+=1,typeof T=="number"&&(T<0||h{o==null||o(I,A)},I.onmessage=A=>{if($(),t.heartbeat){const{message:T=sr}=at(t.heartbeat);if(A.data===T)return}l.value=A.data,a==null||a(I,A)}};if(t.heartbeat){const{message:I=sr,interval:A=1e3,pongTimeout:T=1e3}=at(t.heartbeat),{pause:F,resume:R}=de(()=>{b(I,!1),_=setTimeout(()=>{y()},T)},A,{immediate:!1});v=F,d=R}return s&&E(),u&&(O(window,"beforeunload",()=>y()),N(y)),{data:l,status:c,close:y,send:b,open:()=>{y(),h=0,E()},ws:f}}function Kc(e,t,n={}){const{window:r=j}=n,o=p(null),a=G(),s=function(l){!a.value||a.value.postMessage(l)},u=function(){!a.value||a.value.terminate()};return r&&(a.value=new Worker(e,t),a.value.onmessage=i=>{o.value=i.data},N(()=>{a.value&&a.value.terminate()})),{data:o,post:s,terminate:u,worker:a}}const Jc=e=>t=>{const n=t.data[0];return Promise.resolve(e.apply(void 0,n)).then(r=>{postMessage(["SUCCESS",r])}).catch(r=>{postMessage(["ERROR",r])})},Qc=e=>e.length===0?"":`importScripts(${e.map(n=>`'${n}'`).toString()})`,Zc=(e,t)=>{const n=`${Qc(t)}; onmessage=(${Jc})(${e})`,r=new Blob([n],{type:"text/javascript"});return URL.createObjectURL(r)},ef=(e,t={})=>{const{dependencies:n=[],timeout:r,window:o=j}=t,a=p(),s=p("PENDING"),u=p({}),i=p(),l=(d="PENDING")=>{a.value&&a.value._url&&o&&(a.value.terminate(),URL.revokeObjectURL(a.value._url),u.value={},a.value=void 0,o.clearTimeout(i.value),s.value=d)};l(),N(l);const c=()=>{const d=Zc(e,n),m=new Worker(d);return m._url=d,m.onmessage=h=>{const{resolve:g=()=>{},reject:_=()=>{}}=u.value,[y,w]=h.data;switch(y){case"SUCCESS":g(w),l(y);break;default:_(w),l("ERROR");break}},m.onerror=h=>{const{reject:g=()=>{}}=u.value;g(h),l("ERROR")},r&&(i.value=setTimeout(()=>l("TIMEOUT_EXPIRED"),r)),m},f=(...d)=>new Promise((m,h)=>{u.value={resolve:m,reject:h},a.value&&a.value.postMessage([[...d]]),s.value="RUNNING"});return{workerFn:(...d)=>s.value==="RUNNING"?(console.error("[useWebWorkerFn] You can only run one instance of the worker at a time."),Promise.reject()):(a.value=c(),f(...d)),workerStatus:s,workerTerminate:l}};function tf({window:e=j}={}){if(!e)return p(!1);const t=p(e.document.hasFocus());return O(e,"blur",()=>{t.value=!1}),O(e,"focus",()=>{t.value=!0}),t}function nf({window:e=j}={}){if(!e)return{x:p(0),y:p(0)};const t=p(e.pageXOffset),n=p(e.pageYOffset);return O("scroll",()=>{t.value=e.pageXOffset,n.value=e.pageYOffset},{capture:!1,passive:!0}),{x:t,y:n}}function rf(e={}){const{window:t=j,initialWidth:n=1/0,initialHeight:r=1/0,listenOrientation:o=!0,includeScrollbar:a=!0}=e,s=p(n),u=p(r),i=()=>{t&&(a?(s.value=t.innerWidth,u.value=t.innerHeight):(s.value=t.document.documentElement.clientWidth,u.value=t.document.documentElement.clientHeight))};return i(),Z(i),O("resize",i,{passive:!0}),o&&O("orientationchange",i,{passive:!0}),{width:s,height:u}}var sf=Object.freeze({__proto__:null,[Symbol.toStringTag]:"Module",DefaultMagicKeysAliasMap:qr,StorageSerializers:_t,get SwipeDirection(){return J},TransitionPresets:Lc,asyncComputed:Kt,breakpointsAntDesign:Bu,breakpointsBootstrapV5:Vu,breakpointsQuasar:Uu,breakpointsSematic:Hu,breakpointsTailwind:Lu,breakpointsVuetify:Wu,cloneFnJSON:Ie,computedAsync:Kt,computedInject:pu,createFetch:Pi,createUnrefFn:mu,defaultDocument:ee,defaultLocation:hu,defaultNavigator:te,defaultWindow:j,getSSRHandler:Ke,mapGamepadToXbox360Controller:ki,onClickOutside:gu,onKeyDown:Su,onKeyPressed:$u,onKeyStroke:Ye,onKeyUp:Eu,onLongPress:Tu,onStartTyping:Fu,setSSRHandler:is,templateRef:ju,unrefElement:V,useActiveElement:yt,useAsyncQueue:Au,useAsyncState:Nr,useBase64:Ru,useBattery:Mu,useBluetooth:ku,useBreakpoints:Yu,useBroadcastChannel:Ku,useBrowserLocation:Ju,useCached:Qu,useClipboard:Zu,useCloned:ss,useColorMode:Lr,useConfirmDialog:hs,useCssVar:Pe,useCurrentElement:gs,useCycleList:ys,useDark:Es,useDebouncedRefHistory:Ws,useDeviceMotion:Bs,useDeviceOrientation:Br,useDevicePixelRatio:Us,useDevicesList:Hs,useDisplayMedia:zs,useDocumentVisibility:Gs,useDraggable:ei,useDropZone:ti,useElementBounding:ai,useElementByPoint:ci,useElementHover:fi,useElementSize:Hr,useElementVisibility:vi,useEventBus:di,useEventListener:O,useEventSource:pi,useEyeDropper:mi,useFavicon:hi,useFetch:zr,useFileDialog:Di,useFileSystemAccess:Ai,useFocus:Ci,useFocusWithin:Ri,useFps:Ni,useFullscreen:Mi,useGamepad:Li,useGeolocation:Vi,useIdle:Ui,useImage:Yi,useInfiniteScroll:nl,useIntersectionObserver:rl,useKeyModifier:al,useLocalStorage:ul,useMagicKeys:sl,useManualRefHistory:Wr,useMediaControls:dl,useMediaQuery:K,useMemoize:pl,useMemory:ml,useMounted:hl,useMouse:Xr,useMouseInElement:Yr,useMousePressed:gl,useMutationObserver:Pt,useNavigatorLanguage:Ol,useNetwork:Kr,useNow:Jr,useObjectUrl:El,useOffsetPagination:xl,useOnline:Tl,usePageLeave:Dl,useParallax:Il,usePermission:Ur,usePointer:Ll,usePointerSwipe:Bl,usePreferredColorScheme:Ul,usePreferredContrast:Hl,usePreferredDark:wt,usePreferredLanguages:zl,usePreferredReducedMotion:Gl,useRafFn:pe,useRefHistory:Ot,useResizeObserver:bt,useScreenOrientation:ql,useScreenSafeArea:Xl,useScriptTag:Yl,useScroll:Gr,useScrollLock:Jl,useSessionStorage:Ql,useShare:nc,useSpeechRecognition:rc,useSpeechSynthesis:oc,useStepper:ac,useStorage:Je,useStorageAsync:uc,useStyleTag:ic,useSupported:M,useSwipe:Vl,useTemplateRefsList:lc,useTextDirection:cc,useTextSelection:vc,useTextareaAutosize:dc,useThrottledRefHistory:wc,useTimeAgo:Ec,useTimeoutPoll:xc,useTimestamp:jc,useTitle:Ac,useTransition:Wc,useUrlSearchParams:Bc,useUserMedia:Uc,useVModel:to,useVModels:Hc,useVibrate:zc,useVirtualList:Gc,useWakeLock:qc,useWebNotification:Xc,useWebSocket:Yc,useWebWorker:Kc,useWebWorkerFn:ef,useWindowFocus:tf,useWindowScroll:nf,useWindowSize:rf,__onlyVue3:So,assert:_o,autoResetRef:jt,bypassFilter:Te,clamp:Me,computedEager:Tt,computedWithControl:Le,containsProp:hr,controlledComputed:Le,controlledRef:Wo,createEventHook:z,createFilterWrapper:ve,createGlobalState:xo,createInjectionState:To,createReactiveFn:st,createSharedComposable:Do,createSingletonPromise:mr,debounceFilter:qe,debouncedRef:Ze,debouncedWatch:Bt,directiveHooks:$o,eagerComputed:Tt,extendRef:_r,formatDate:Er,get:Io,hasOwn:pr,identity:dt,ignorableWatch:_e,increaseWithUnit:gr,invoke:Eo,isBoolean:wo,isClient:Q,isDef:Ne,isDefined:Fo,isFunction:oe,isIOS:ut,isNumber:ye,isObject:dr,isString:xe,isWindow:Oo,makeDestructurable:No,noop:L,normalizeDate:xr,now:bo,objectPick:yr,pausableFilter:vt,pausableWatch:Ue,promiseTimeout:ke,rand:Po,reactify:st,reactifyObject:Mo,reactiveComputed:Or,reactiveOmit:ko,reactivePick:Lo,refAutoReset:jt,refDebounced:Ze,refDefault:Vo,refThrottled:et,refWithControl:br,resolveRef:re,resolveUnref:P,set:Bo,syncRef:it,syncRefs:Uo,throttleFilter:De,throttledRef:et,throttledWatch:Gt,timestamp:ce,toReactive:wr,toRefs:mt,tryOnBeforeMount:Pr,tryOnBeforeUnmount:Jo,tryOnMounted:Z,tryOnScopeDispose:N,tryOnUnmounted:Sr,until:$r,useArrayEvery:Qo,useArrayFilter:Zo,useArrayFind:ea,useArrayFindIndex:ta,useArrayJoin:na,useArrayMap:ra,useArrayReduce:oa,useArraySome:aa,useCounter:ua,useDateFormat:la,useDebounce:Ze,useDebounceFn:Xe,useInterval:pa,useIntervalFn:de,useLastChanged:ma,useThrottle:et,useThrottleFn:pt,useTimeout:wa,useTimeoutFn:we,useToNumber:Oa,useToString:ba,useToggle:Pa,watchArray:Sa,watchAtMost:Fa,watchDebounced:Bt,watchIgnorable:_e,watchOnce:Ha,watchPausable:Ue,watchThrottled:Gt,watchTriggerable:cu,watchWithFilter:Oe,whenever:du});export{sf as V,ic as a,O as b,to as c,Hr as d,Hc as e,Jo as t,Yl as u,Bt as w}; diff --git a/public/exadmin/assets/a-color-picker.7e391635.js b/public/exadmin/assets/a-color-picker.7e391635.js new file mode 100644 index 0000000..5ac373f --- /dev/null +++ b/public/exadmin/assets/a-color-picker.7e391635.js @@ -0,0 +1,30 @@ +import{c as ae}from"./@babel.6cd0804c.js";var se={exports:{}};/*! + * a-color-picker (https://github.com/narsenico/a-color-picker) + * + * Copyright (c) 2017-2018, Gianfranco Caldi. + * Released under the MIT License. + */(function(Q,le){(function(H,o){Q.exports=o()})(typeof self!="undefined"?self:ae,function(){return function(H){var o={};function A(b){if(o[b])return o[b].exports;var g=o[b]={i:b,l:!1,exports:{}};return H[b].call(g.exports,g,g.exports,A),g.l=!0,g.exports}return A.m=H,A.c=o,A.d=function(b,g,n){A.o(b,g)||Object.defineProperty(b,g,{enumerable:!0,get:n})},A.r=function(b){typeof Symbol!="undefined"&&Symbol.toStringTag&&Object.defineProperty(b,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(b,"__esModule",{value:!0})},A.t=function(b,g){if(1&g&&(b=A(b)),8&g||4&g&&typeof b=="object"&&b&&b.__esModule)return b;var n=Object.create(null);if(A.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:b}),2&g&&typeof b!="string")for(var B in b)A.d(n,B,function(f){return b[f]}.bind(null,B));return n},A.n=function(b){var g=b&&b.__esModule?function(){return b.default}:function(){return b};return A.d(g,"a",g),g},A.o=function(b,g){return Object.prototype.hasOwnProperty.call(b,g)},A.p="",A(A.s=1)}([function(H,o,A){/*! +* is-plain-object +* +* Copyright (c) 2014-2017, Jon Schlinkert. +* Released under the MIT License. +*/var b=A(3);function g(n){return b(n)===!0&&Object.prototype.toString.call(n)==="[object Object]"}H.exports=function(n){var B,f;return g(n)!==!1&&typeof(B=n.constructor)=="function"&&g(f=B.prototype)!==!1&&f.hasOwnProperty("isPrototypeOf")!==!1}},function(H,o,A){Object.defineProperty(o,"__esModule",{value:!0}),o.VERSION=o.PALETTE_MATERIAL_CHROME=o.PALETTE_MATERIAL_500=o.COLOR_NAMES=o.getLuminance=o.intToRgb=o.rgbToInt=o.rgbToHsv=o.rgbToHsl=o.hslToRgb=o.rgbToHex=o.parseColor=o.parseColorToHsla=o.parseColorToHsl=o.parseColorToRgba=o.parseColorToRgb=o.from=o.createPicker=void 0;var b=function(){function l(t,e){for(var r=0;r-1,T=typeof window!="undefined"&&window.navigator.userAgent.indexOf("rv:")>-1,C={id:null,attachTo:"body",showHSL:!0,showRGB:!0,showHEX:!0,showAlpha:!1,color:"#ff0000",palette:null,paletteEditable:!1,useAlphaInPalette:"auto",slBarSize:[232,150],hueBarSize:[150,11],alphaBarSize:[150,11]},w="COLOR",I="RGBA_USER",P="HSLA_USER";function D(l,t,e){return l?l instanceof HTMLElement?l:l instanceof NodeList?l[0]:typeof l=="string"?document.querySelector(l):l.jquery?l.get(0):e?t:null:t}function M(l){var t=l.getContext("2d"),e=+l.width,r=+l.height,p=t.createLinearGradient(1,1,1,r-1);return p.addColorStop(0,"white"),p.addColorStop(1,"black"),{setHue:function(c){var d=t.createLinearGradient(1,0,e-1,0);d.addColorStop(0,"hsla("+c+", 100%, 50%, 0)"),d.addColorStop(1,"hsla("+c+", 100%, 50%, 1)"),t.fillStyle=p,t.fillRect(0,0,e,r),t.fillStyle=d,t.globalCompositeOperation="multiply",t.fillRect(0,0,e,r),t.globalCompositeOperation="source-over"},grabColor:function(c,d){return t.getImageData(c,d,1,1).data},findColor:function(c,d,s){var a=(0,n.rgbToHsv)(c,d,s),m=g(a,3),y=m[1],k=m[2];return[y*e,r-k*r]}}}function x(l,t,e){return l===null?t:/^\s*$/.test(l)?e:!!/true|yes|1/i.test(l)||!/false|no|0/i.test(l)&&t}function _(l,t,e){if(l===null)return t;if(/^\s*$/.test(l))return e;var r=l.split(",").map(Number);return r.length===2&&r[0]&&r[1]?r:t}var O=function(){function l(t,e){if(F(this,l),e?(t=D(t),this.options=Object.assign({},C,e)):t&&(0,B.default)(t)?(this.options=Object.assign({},C,t),t=D(this.options.attachTo)):(this.options=Object.assign({},C),t=D((0,n.nvl)(t,this.options.attachTo))),!t)throw new Error("Container not found: "+this.options.attachTo);(function(c,d){var s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"acp-";if(d.hasAttribute(s+"show-hsl")&&(c.showHSL=x(d.getAttribute(s+"show-hsl"),C.showHSL,!0)),d.hasAttribute(s+"show-rgb")&&(c.showRGB=x(d.getAttribute(s+"show-rgb"),C.showRGB,!0)),d.hasAttribute(s+"show-hex")&&(c.showHEX=x(d.getAttribute(s+"show-hex"),C.showHEX,!0)),d.hasAttribute(s+"show-alpha")&&(c.showAlpha=x(d.getAttribute(s+"show-alpha"),C.showAlpha,!0)),d.hasAttribute(s+"palette-editable")&&(c.paletteEditable=x(d.getAttribute(s+"palette-editable"),C.paletteEditable,!0)),d.hasAttribute(s+"sl-bar-size")&&(c.slBarSize=_(d.getAttribute(s+"sl-bar-size"),C.slBarSize,[232,150])),d.hasAttribute(s+"hue-bar-size")&&(c.hueBarSize=_(d.getAttribute(s+"hue-bar-size"),C.hueBarSize,[150,11]),c.alphaBarSize=c.hueBarSize),d.hasAttribute(s+"palette")){var a=d.getAttribute(s+"palette");switch(a){case"PALETTE_MATERIAL_500":c.palette=n.PALETTE_MATERIAL_500;break;case"PALETTE_MATERIAL_CHROME":case"":c.palette=n.PALETTE_MATERIAL_CHROME;break;default:c.palette=a.split(/[;|]/)}}d.hasAttribute(s+"color")&&(c.color=d.getAttribute(s+"color"))})(this.options,t),this.H=0,this.S=0,this.L=0,this.R=0,this.G=0,this.B=0,this.A=1,this.palette={},this.element=document.createElement("div"),this.options.id&&(this.element.id=this.options.id),this.element.className="a-color-picker",this.element.innerHTML=f.default,t.appendChild(this.element);var r=this.element.querySelector(".a-color-picker-h");this.setupHueCanvas(r),this.hueBarHelper=M(r),this.huePointer=this.element.querySelector(".a-color-picker-h+.a-color-picker-dot");var p=this.element.querySelector(".a-color-picker-sl");this.setupSlCanvas(p),this.slBarHelper=M(p),this.slPointer=this.element.querySelector(".a-color-picker-sl+.a-color-picker-dot"),this.preview=this.element.querySelector(".a-color-picker-preview"),this.setupClipboard(this.preview.querySelector(".a-color-picker-clipbaord")),this.options.showHSL?(this.setupInput(this.inputH=this.element.querySelector(".a-color-picker-hsl>input[nameref=H]")),this.setupInput(this.inputS=this.element.querySelector(".a-color-picker-hsl>input[nameref=S]")),this.setupInput(this.inputL=this.element.querySelector(".a-color-picker-hsl>input[nameref=L]"))):this.element.querySelector(".a-color-picker-hsl").remove(),this.options.showRGB?(this.setupInput(this.inputR=this.element.querySelector(".a-color-picker-rgb>input[nameref=R]")),this.setupInput(this.inputG=this.element.querySelector(".a-color-picker-rgb>input[nameref=G]")),this.setupInput(this.inputB=this.element.querySelector(".a-color-picker-rgb>input[nameref=B]"))):this.element.querySelector(".a-color-picker-rgb").remove(),this.options.showHEX?this.setupInput(this.inputRGBHEX=this.element.querySelector("input[nameref=RGBHEX]")):this.element.querySelector(".a-color-picker-rgbhex").remove(),this.options.paletteEditable||this.options.palette&&this.options.palette.length>0?this.setPalette(this.paletteRow=this.element.querySelector(".a-color-picker-palette")):(this.paletteRow=this.element.querySelector(".a-color-picker-palette"),this.paletteRow.remove()),this.options.showAlpha?(this.setupAlphaCanvas(this.element.querySelector(".a-color-picker-a")),this.alphaPointer=this.element.querySelector(".a-color-picker-a+.a-color-picker-dot")):this.element.querySelector(".a-color-picker-alpha").remove(),this.element.style.width=this.options.slBarSize[0]+"px",this.onValueChanged(w,this.options.color)}return b(l,[{key:"setupHueCanvas",value:function(t){var e=this;t.width=this.options.hueBarSize[0],t.height=this.options.hueBarSize[1];for(var r=t.getContext("2d"),p=r.createLinearGradient(0,0,this.options.hueBarSize[0],0),c=0;c<=1;c+=1/360)p.addColorStop(c,"hsl("+360*c+", 100%, 50%)");r.fillStyle=p,r.fillRect(0,0,this.options.hueBarSize[0],this.options.hueBarSize[1]);var d=function(a){var m=(0,n.limit)(a.clientX-t.getBoundingClientRect().left,0,e.options.hueBarSize[0]),y=Math.round(360*m/e.options.hueBarSize[0]);e.huePointer.style.left=m-7+"px",e.onValueChanged("H",y)},s=function a(){document.removeEventListener("mousemove",d),document.removeEventListener("mouseup",a)};t.addEventListener("mousedown",function(a){d(a),document.addEventListener("mousemove",d),document.addEventListener("mouseup",s)})}},{key:"setupSlCanvas",value:function(t){var e=this;t.width=this.options.slBarSize[0],t.height=this.options.slBarSize[1];var r=function(c){var d=(0,n.limit)(c.clientX-t.getBoundingClientRect().left,0,e.options.slBarSize[0]-1),s=(0,n.limit)(c.clientY-t.getBoundingClientRect().top,0,e.options.slBarSize[1]-1),a=e.slBarHelper.grabColor(d,s);e.slPointer.style.left=d-7+"px",e.slPointer.style.top=s-7+"px",e.onValueChanged("RGB",a)},p=function c(){document.removeEventListener("mousemove",r),document.removeEventListener("mouseup",c)};t.addEventListener("mousedown",function(c){r(c),document.addEventListener("mousemove",r),document.addEventListener("mouseup",p)})}},{key:"setupAlphaCanvas",value:function(t){var e=this;t.width=this.options.alphaBarSize[0],t.height=this.options.alphaBarSize[1];var r=t.getContext("2d"),p=r.createLinearGradient(0,0,t.width-1,0);p.addColorStop(0,"hsla(0, 0%, 50%, 0)"),p.addColorStop(1,"hsla(0, 0%, 50%, 1)"),r.fillStyle=p,r.fillRect(0,0,this.options.alphaBarSize[0],this.options.alphaBarSize[1]);var c=function(s){var a=(0,n.limit)(s.clientX-t.getBoundingClientRect().left,0,e.options.alphaBarSize[0]),m=+(a/e.options.alphaBarSize[0]).toFixed(2);e.alphaPointer.style.left=a-7+"px",e.onValueChanged("ALPHA",m)},d=function s(){document.removeEventListener("mousemove",c),document.removeEventListener("mouseup",s)};t.addEventListener("mousedown",function(s){c(s),document.addEventListener("mousemove",c),document.addEventListener("mouseup",d)})}},{key:"setupInput",value:function(t){var e=this,r=+t.min,p=+t.max,c=t.getAttribute("nameref");t.hasAttribute("select-on-focus")&&t.addEventListener("focus",function(){t.select()}),t.type==="text"?t.addEventListener("change",function(){e.onValueChanged(c,t.value)}):((L||T)&&t.addEventListener("keydown",function(d){d.key==="Up"?(t.value=(0,n.limit)(+t.value+1,r,p),e.onValueChanged(c,t.value),d.returnValue=!1):d.key==="Down"&&(t.value=(0,n.limit)(+t.value-1,r,p),e.onValueChanged(c,t.value),d.returnValue=!1)}),t.addEventListener("change",function(){var d=+t.value;e.onValueChanged(c,(0,n.limit)(d,r,p))}))}},{key:"setupClipboard",value:function(t){var e=this;t.title="click to copy",t.addEventListener("click",function(){t.value=(0,n.parseColor)([e.R,e.G,e.B,e.A],"hexcss4"),t.select(),document.execCommand("copy")})}},{key:"setPalette",value:function(t){var e=this,r=this.options.useAlphaInPalette==="auto"?this.options.showAlpha:this.options.useAlphaInPalette,p=null;switch(this.options.palette){case"PALETTE_MATERIAL_500":p=n.PALETTE_MATERIAL_500;break;case"PALETTE_MATERIAL_CHROME":p=n.PALETTE_MATERIAL_CHROME;break;default:p=(0,n.ensureArray)(this.options.palette)}if(this.options.paletteEditable||p.length>0){var c=function(a,m,y){var k=t.querySelector('.a-color-picker-palette-color[data-color="'+a+'"]')||document.createElement("div");k.className="a-color-picker-palette-color",k.style.backgroundColor=a,k.setAttribute("data-color",a),k.title=a,t.insertBefore(k,m),e.palette[a]=!0,y&&e.onPaletteColorAdd(a)},d=function(a,m){a?(t.removeChild(a),e.palette[a.getAttribute("data-color")]=!1,m&&e.onPaletteColorRemove(a.getAttribute("data-color"))):(t.querySelectorAll(".a-color-picker-palette-color[data-color]").forEach(function(y){t.removeChild(y)}),Object.keys(e.palette).forEach(function(y){e.palette[y]=!1}),m&&e.onPaletteColorRemove())};if(p.map(function(a){return(0,n.parseColor)(a,r?"rgbcss4":"hex")}).filter(function(a){return!!a}).forEach(function(a){return c(a)}),this.options.paletteEditable){var s=document.createElement("div");s.className="a-color-picker-palette-color a-color-picker-palette-add",s.innerHTML="+",t.appendChild(s),t.addEventListener("click",function(a){/a-color-picker-palette-add/.test(a.target.className)?a.shiftKey?d(null,!0):c(r?(0,n.parseColor)([e.R,e.G,e.B,e.A],"rgbcss4"):(0,n.rgbToHex)(e.R,e.G,e.B),a.target,!0):/a-color-picker-palette-color/.test(a.target.className)&&(a.shiftKey?d(a.target,!0):e.onValueChanged(w,a.target.getAttribute("data-color")))})}else t.addEventListener("click",function(a){/a-color-picker-palette-color/.test(a.target.className)&&e.onValueChanged(w,a.target.getAttribute("data-color"))})}else t.style.display="none"}},{key:"updatePalette",value:function(t){this.paletteRow.innerHTML="",this.palette={},this.paletteRow.parentElement||this.element.appendChild(this.paletteRow),this.options.palette=t,this.setPalette(this.paletteRow)}},{key:"onValueChanged",value:function(t,e){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{silent:!1};switch(t){case"H":this.H=e;var p=(0,n.hslToRgb)(this.H,this.S,this.L),c=g(p,3);this.R=c[0],this.G=c[1],this.B=c[2],this.slBarHelper.setHue(e),this.updatePointerH(this.H),this.updateInputHSL(this.H,this.S,this.L),this.updateInputRGB(this.R,this.G,this.B),this.updateInputRGBHEX(this.R,this.G,this.B);break;case"S":this.S=e;var d=(0,n.hslToRgb)(this.H,this.S,this.L),s=g(d,3);this.R=s[0],this.G=s[1],this.B=s[2],this.updatePointerSL(this.H,this.S,this.L),this.updateInputHSL(this.H,this.S,this.L),this.updateInputRGB(this.R,this.G,this.B),this.updateInputRGBHEX(this.R,this.G,this.B);break;case"L":this.L=e;var a=(0,n.hslToRgb)(this.H,this.S,this.L),m=g(a,3);this.R=m[0],this.G=m[1],this.B=m[2],this.updatePointerSL(this.H,this.S,this.L),this.updateInputHSL(this.H,this.S,this.L),this.updateInputRGB(this.R,this.G,this.B),this.updateInputRGBHEX(this.R,this.G,this.B);break;case"R":this.R=e;var y=(0,n.rgbToHsl)(this.R,this.G,this.B),k=g(y,3);this.H=k[0],this.S=k[1],this.L=k[2],this.slBarHelper.setHue(this.H),this.updatePointerH(this.H),this.updatePointerSL(this.H,this.S,this.L),this.updateInputHSL(this.H,this.S,this.L),this.updateInputRGBHEX(this.R,this.G,this.B);break;case"G":this.G=e;var E=(0,n.rgbToHsl)(this.R,this.G,this.B),S=g(E,3);this.H=S[0],this.S=S[1],this.L=S[2],this.slBarHelper.setHue(this.H),this.updatePointerH(this.H),this.updatePointerSL(this.H,this.S,this.L),this.updateInputHSL(this.H,this.S,this.L),this.updateInputRGBHEX(this.R,this.G,this.B);break;case"B":this.B=e;var W=(0,n.rgbToHsl)(this.R,this.G,this.B),X=g(W,3);this.H=X[0],this.S=X[1],this.L=X[2],this.slBarHelper.setHue(this.H),this.updatePointerH(this.H),this.updatePointerSL(this.H,this.S,this.L),this.updateInputHSL(this.H,this.S,this.L),this.updateInputRGBHEX(this.R,this.G,this.B);break;case"RGB":var V=g(e,3);this.R=V[0],this.G=V[1],this.B=V[2];var Z=(0,n.rgbToHsl)(this.R,this.G,this.B),N=g(Z,3);this.H=N[0],this.S=N[1],this.L=N[2],this.updateInputHSL(this.H,this.S,this.L),this.updateInputRGB(this.R,this.G,this.B),this.updateInputRGBHEX(this.R,this.G,this.B);break;case I:var z=g(e,4);this.R=z[0],this.G=z[1],this.B=z[2],this.A=z[3];var ee=(0,n.rgbToHsl)(this.R,this.G,this.B),U=g(ee,3);this.H=U[0],this.S=U[1],this.L=U[2],this.slBarHelper.setHue(this.H),this.updatePointerH(this.H),this.updatePointerSL(this.H,this.S,this.L),this.updateInputHSL(this.H,this.S,this.L),this.updateInputRGB(this.R,this.G,this.B),this.updateInputRGBHEX(this.R,this.G,this.B),this.updatePointerA(this.A);break;case P:var q=g(e,4);this.H=q[0],this.S=q[1],this.L=q[2],this.A=q[3];var te=(0,n.hslToRgb)(this.H,this.S,this.L),$=g(te,3);this.R=$[0],this.G=$[1],this.B=$[2],this.slBarHelper.setHue(this.H),this.updatePointerH(this.H),this.updatePointerSL(this.H,this.S,this.L),this.updateInputHSL(this.H,this.S,this.L),this.updateInputRGB(this.R,this.G,this.B),this.updateInputRGBHEX(this.R,this.G,this.B),this.updatePointerA(this.A);break;case"RGBHEX":var ie=(0,n.cssColorToRgb)(e)||[this.R,this.G,this.B],K=g(ie,3);this.R=K[0],this.G=K[1],this.B=K[2];var re=(0,n.rgbToHsl)(this.R,this.G,this.B),J=g(re,3);this.H=J[0],this.S=J[1],this.L=J[2],this.slBarHelper.setHue(this.H),this.updatePointerH(this.H),this.updatePointerSL(this.H,this.S,this.L),this.updateInputHSL(this.H,this.S,this.L),this.updateInputRGB(this.R,this.G,this.B);break;case w:var oe=(0,n.parseColor)(e,"rgba")||[0,0,0,1],j=g(oe,4);this.R=j[0],this.G=j[1],this.B=j[2],this.A=j[3];var ne=(0,n.rgbToHsl)(this.R,this.G,this.B),Y=g(ne,3);this.H=Y[0],this.S=Y[1],this.L=Y[2],this.slBarHelper.setHue(this.H),this.updatePointerH(this.H),this.updatePointerSL(this.H,this.S,this.L),this.updateInputHSL(this.H,this.S,this.L),this.updateInputRGB(this.R,this.G,this.B),this.updateInputRGBHEX(this.R,this.G,this.B),this.updatePointerA(this.A);break;case"ALPHA":this.A=e}this.A===1?this.preview.style.backgroundColor="rgb("+this.R+","+this.G+","+this.B+")":this.preview.style.backgroundColor="rgba("+this.R+","+this.G+","+this.B+","+this.A+")",r&&r.silent||this.onchange&&this.onchange(this.preview.style.backgroundColor)}},{key:"onPaletteColorAdd",value:function(t){this.oncoloradd&&this.oncoloradd(t)}},{key:"onPaletteColorRemove",value:function(t){this.oncolorremove&&this.oncolorremove(t)}},{key:"updateInputHSL",value:function(t,e,r){this.options.showHSL&&(this.inputH.value=t,this.inputS.value=e,this.inputL.value=r)}},{key:"updateInputRGB",value:function(t,e,r){this.options.showRGB&&(this.inputR.value=t,this.inputG.value=e,this.inputB.value=r)}},{key:"updateInputRGBHEX",value:function(t,e,r){this.options.showHEX&&(this.inputRGBHEX.value=(0,n.rgbToHex)(t,e,r))}},{key:"updatePointerH",value:function(t){var e=this.options.hueBarSize[0]*t/360;this.huePointer.style.left=e-7+"px"}},{key:"updatePointerSL",value:function(t,e,r){var p=(0,n.hslToRgb)(t,e,r),c=g(p,3),d=c[0],s=c[1],a=c[2],m=this.slBarHelper.findColor(d,s,a),y=g(m,2),k=y[0],E=y[1];k>=0&&(this.slPointer.style.left=k-7+"px",this.slPointer.style.top=E-7+"px")}},{key:"updatePointerA",value:function(t){if(this.options.showAlpha){var e=this.options.alphaBarSize[0]*t;this.alphaPointer.style.left=e-7+"px"}}}]),l}(),i=function(){function l(t){F(this,l),this.name=t,this.listeners=[]}return b(l,[{key:"on",value:function(t){t&&this.listeners.push(t)}},{key:"off",value:function(t){this.listeners=t?this.listeners.filter(function(e){return e!==t}):[]}},{key:"emit",value:function(t,e){for(var r=this.listeners.slice(0),p=0;p1&&arguments[1]!==void 0&&arguments[1];e.onValueChanged(w,s,{silent:a})},get all(){if(p){var s=[e.R,e.G,e.B,e.A],a=e.A<1?"rgba("+e.R+","+e.G+","+e.B+","+e.A+")":n.rgbToHex.apply(void 0,s);(c=(0,n.parseColor)(s,c)).toString=function(){return a},p=!1}return Object.assign({},c)},get onchange(){return r.change&&r.change.listeners[0]},set onchange(s){this.off("change").on("change",s)},get oncoloradd(){return r.coloradd&&r.coloradd.listeners[0]},set oncoloradd(s){this.off("coloradd").on("coloradd",s)},get oncolorremove(){return r.colorremove&&r.colorremove.listeners[0]},set oncolorremove(s){this.off("colorremove").on("colorremove",s)},get palette(){return Object.keys(e.palette).filter(function(s){return e.palette[s]})},set palette(s){e.updatePalette(s)},show:function(){e.element.classList.remove("hidden")},hide:function(){e.element.classList.add("hidden")},toggle:function(){e.element.classList.toggle("hidden")},on:function(s,a){return s&&r[s]&&r[s].on(a),this},off:function(s,a){return s&&r[s]&&r[s].off(a),this},destroy:function(){r.change.off(),r.coloradd.off(),r.colorremove.off(),e.element.remove(),r=null,e=null}};return e.onchange=function(){for(var s=arguments.length,a=Array(s),m=0;mstyle[data-source="a-color-picker"]')){var u=A(5).toString(),v=document.createElement("style");v.setAttribute("type","text/css"),v.setAttribute("data-source","a-color-picker"),v.innerHTML=u,document.querySelector("head").appendChild(v)}o.createPicker=h,o.from=function(l,t){var e=function(r){return r?Array.isArray(r)?r:r instanceof HTMLElement?[r]:r instanceof NodeList?[].concat(G(r)):typeof r=="string"?[].concat(G(document.querySelectorAll(r))):r.jquery?r.get():[]:[]}(l).map(function(r,p){var c=h(r,t);return c.index=p,c});return e.on=function(r,p){return e.forEach(function(c){return c.on(r,p)}),this},e.off=function(r){return e.forEach(function(p){return p.off(r)}),this},e},o.parseColorToRgb=n.parseColorToRgb,o.parseColorToRgba=n.parseColorToRgba,o.parseColorToHsl=n.parseColorToHsl,o.parseColorToHsla=n.parseColorToHsla,o.parseColor=n.parseColor,o.rgbToHex=n.rgbToHex,o.hslToRgb=n.hslToRgb,o.rgbToHsl=n.rgbToHsl,o.rgbToHsv=n.rgbToHsv,o.rgbToInt=n.rgbToInt,o.intToRgb=n.intToRgb,o.getLuminance=n.getLuminance,o.COLOR_NAMES=n.COLOR_NAMES,o.PALETTE_MATERIAL_500=n.PALETTE_MATERIAL_500,o.PALETTE_MATERIAL_CHROME=n.PALETTE_MATERIAL_CHROME,o.VERSION="1.2.1"},function(H,o,A){Object.defineProperty(o,"__esModule",{value:!0}),o.nvl=o.ensureArray=o.limit=o.getLuminance=o.parseColor=o.parseColorToHsla=o.parseColorToHsl=o.cssHslaToHsla=o.cssHslToHsl=o.parseColorToRgba=o.parseColorToRgb=o.cssRgbaToRgba=o.cssRgbToRgb=o.cssColorToRgba=o.cssColorToRgb=o.intToRgb=o.rgbToInt=o.rgbToHsv=o.rgbToHsl=o.hslToRgb=o.rgbToHex=o.PALETTE_MATERIAL_CHROME=o.PALETTE_MATERIAL_500=o.COLOR_NAMES=void 0;var b=function(i,h){if(Array.isArray(i))return i;if(Symbol.iterator in Object(i))return function(u,v){var l=[],t=!0,e=!1,r=void 0;try{for(var p,c=u[Symbol.iterator]();!(t=(p=c.next()).done)&&(l.push(p.value),!v||l.length!==v);t=!0);}catch(d){e=!0,r=d}finally{try{!t&&c.return&&c.return()}finally{if(e)throw r}}return l}(i,h);throw new TypeError("Invalid attempt to destructure non-iterable instance")},g=function(i){return i&&i.__esModule?i:{default:i}}(A(0));function n(i){if(Array.isArray(i)){for(var h=0,u=Array(i.length);hu?u:i}function R(i,h){return i==null?h:i}function F(i,h,u){var v=[f(i,0,255),f(h,0,255),f(u,0,255)];return"#"+("000000"+((i=v[0])<<16|(h=v[1])<<8|(u=v[2])).toString(16)).slice(-6)}function G(i,h,u){var v=void 0,l=void 0,t=void 0,e=[f(i,0,360)/360,f(h,0,100)/100,f(u,0,100)/100];if(i=e[0],u=e[2],(h=e[1])==0)v=l=t=u;else{var r=function(d,s,a){return a<0&&(a+=1),a>1&&(a-=1),a<.16666666666666666?d+6*(s-d)*a:a<.5?s:a<.6666666666666666?d+(s-d)*(.6666666666666666-a)*6:d},p=u<.5?u*(1+h):u+h-u*h,c=2*u-p;v=r(c,p,i+1/3),l=r(c,p,i),t=r(c,p,i-1/3)}return[255*v,255*l,255*t].map(Math.round)}function L(i,h,u){var v=[f(i,0,255)/255,f(h,0,255)/255,f(u,0,255)/255];i=v[0],h=v[1],u=v[2];var l=Math.max(i,h,u),t=Math.min(i,h,u),e=void 0,r=void 0,p=(l+t)/2;if(l==t)e=r=0;else{var c=l-t;switch(r=p>.5?c/(2-l-t):c/(l+t),l){case i:e=(h-u)/c+(h>16&255,i>>8&255,255&i]},o.cssColorToRgb=C,o.cssColorToRgba=w,o.cssRgbToRgb=I,o.cssRgbaToRgba=P,o.parseColorToRgb=function(i){return Array.isArray(i)?i=[f(i[0],0,255),f(i[1],0,255),f(i[2],0,255)]:C(i)||I(i)},o.parseColorToRgba=D,o.cssHslToHsl=M,o.cssHslaToHsla=x,o.parseColorToHsl=function(i){return Array.isArray(i)?i=[f(i[0],0,360),f(i[1],0,100),f(i[2],0,100)]:M(i)},o.parseColorToHsla=_,o.parseColor=function(i,h){if(h=h||"rgb",i!=null){var u=void 0;if((u=D(i))||(u=_(i))&&(u=[].concat(n(G.apply(void 0,n(u))),[u[3]])))return(0,g.default)(h)?["rgb","rgbcss","rgbcss4","rgba","rgbacss","hsl","hslcss","hslcss4","hsla","hslacss","hex","hexcss4","int"].reduce(function(v,l){return v[l]=O(u,l),v},h||{}):O(u,h.toString().toLowerCase())}},o.getLuminance=function(i,h,u){return .2126*(i=(i/=255)<.03928?i/12.92:Math.pow((i+.055)/1.055,2.4))+.7152*(h=(h/=255)<.03928?h/12.92:Math.pow((h+.055)/1.055,2.4))+.0722*((u/=255)<.03928?u/12.92:Math.pow((u+.055)/1.055,2.4))},o.limit=f,o.ensureArray=function(i){return i?Array.from(i):[]},o.nvl=R},function(H,o,A){/*! +* isobject +* +* Copyright (c) 2014-2017, Jon Schlinkert. +* Released under the MIT License. +*/H.exports=function(b){return b!=null&&typeof b=="object"&&Array.isArray(b)===!1}},function(H,o){H.exports='
    '},function(H,o,A){var b=A(6);H.exports=typeof b=="string"?b:b.toString()},function(H,o,A){(H.exports=A(7)(!1)).push([H.i,`/*! + * a-color-picker + * https://github.com/narsenico/a-color-picker + * + * Copyright (c) 2017-2018, Gianfranco Caldi. + * Released under the MIT License. + */.a-color-picker{background-color:#fff;padding:0;display:inline-flex;flex-direction:column;user-select:none;width:232px;font:400 10px Helvetica,Arial,sans-serif;border-radius:3px;box-shadow:0 0 0 1px rgba(0,0,0,.05),0 2px 4px rgba(0,0,0,.25)}.a-color-picker,.a-color-picker-row,.a-color-picker input{box-sizing:border-box}.a-color-picker-row{padding:15px;display:flex;flex-direction:row;align-items:center;justify-content:space-between;user-select:none}.a-color-picker-row-top{padding:0}.a-color-picker-row:not(:first-child){border-top:1px solid #f5f5f5}.a-color-picker-column{display:flex;flex-direction:column}.a-color-picker-cell{flex:1 1 auto;margin-bottom:4px}.a-color-picker-cell:last-child{margin-bottom:0}.a-color-picker-stack{position:relative}.a-color-picker-dot{position:absolute;width:14px;height:14px;top:0;left:0;background:#fff;pointer-events:none;border-radius:50px;z-index:1000;box-shadow:0 1px 2px rgba(0,0,0,.75)}.a-color-picker-a,.a-color-picker-h,.a-color-picker-sl{cursor:cell}.a-color-picker-a+.a-color-picker-dot,.a-color-picker-h+.a-color-picker-dot{top:-2px}.a-color-picker-a,.a-color-picker-h{border-radius:2px}.a-color-picker-preview{box-sizing:border-box;width:30px;height:30px;user-select:none;border-radius:15px}.a-color-picker-circle{border-radius:50px;border:1px solid #eee}.a-color-picker-hsl,.a-color-picker-rgb,.a-color-picker-single-input{justify-content:space-evenly}.a-color-picker-hsl>label,.a-color-picker-rgb>label,.a-color-picker-single-input>label{padding:0 8px;flex:0 0 auto;color:#969696}.a-color-picker-hsl>input,.a-color-picker-rgb>input,.a-color-picker-single-input>input{text-align:center;padding:2px 0;width:0;flex:1 1 auto;border:1px solid #e0e0e0;line-height:20px}.a-color-picker-hsl>input::-webkit-inner-spin-button,.a-color-picker-rgb>input::-webkit-inner-spin-button,.a-color-picker-single-input>input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.a-color-picker-hsl>input:focus,.a-color-picker-rgb>input:focus,.a-color-picker-single-input>input:focus{border-color:#04a9f4;outline:none}.a-color-picker-transparent{background-image:linear-gradient(-45deg,#cdcdcd 25%,transparent 0),linear-gradient(45deg,#cdcdcd 25%,transparent 0),linear-gradient(-45deg,transparent 75%,#cdcdcd 0),linear-gradient(45deg,transparent 75%,#cdcdcd 0);background-size:11px 11px;background-position:0 0,0 -5.5px,-5.5px 5.5px,5.5px 0}.a-color-picker-sl{border-radius:3px 3px 0 0}.a-color-picker.hide-alpha [show-on-alpha],.a-color-picker.hide-hsl [show-on-hsl],.a-color-picker.hide-rgb [show-on-rgb],.a-color-picker.hide-single-input [show-on-single-input]{display:none}.a-color-picker-clipbaord{width:100%;height:100%;opacity:0;cursor:pointer}.a-color-picker-palette{flex-flow:wrap;flex-direction:row;justify-content:flex-start;padding:10px}.a-color-picker-palette-color{width:15px;height:15px;flex:0 1 15px;margin:3px;box-sizing:border-box;cursor:pointer;border-radius:3px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.1)}.a-color-picker-palette-add{text-align:center;line-height:13px;color:#607d8b}.a-color-picker.hidden{display:none}`,""])},function(H,o){H.exports=function(A){var b=[];return b.toString=function(){return this.map(function(g){var n=function(B,f){var R=B[1]||"",F=B[3];if(!F)return R;if(f&&typeof btoa=="function"){var G=function(T){return"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(T))))+" */"}(F),L=F.sources.map(function(T){return"/*# sourceURL="+F.sourceRoot+T+" */"});return[R].concat(L).concat([G]).join(` +`)}return[R].join(` +`)}(g,A);return g[2]?"@media "+g[2]+"{"+n+"}":n}).join("")},b.i=function(g,n){typeof g=="string"&&(g=[[null,g,""]]);for(var B={},f=0;f + + +`).concat(d,` +`),m&&(S+="".concat(m,` +`)),S+=` +`,b.content=S,b.mime="xml",b.successStatuses=[200],y.next=9,this.request(b);case 9:return v=y.sent,y.abrupt("return",{res:v.res});case 11:case"end":return y.stop()}},f,this)}));function p(f,d,m){return o.apply(this,arguments)}return p}(),t.getBucketLogging=function(){var o=(0,u.default)(r.default.mark(function f(d,m){var h,b,S;return r.default.wrap(function(j){for(;;)switch(j.prev=j.next){case 0:return h=this._bucketRequestParams("GET",d,"logging",m),h.successStatuses=[200],h.xmlResponse=!0,j.next=5,this.request(h);case 5:return b=j.sent,S=b.data.LoggingEnabled,j.abrupt("return",{enable:!!S,prefix:S&&S.TargetPrefix||null,res:b.res});case 8:case"end":return j.stop()}},f,this)}));function p(f,d){return o.apply(this,arguments)}return p}(),t.deleteBucketLogging=function(){var o=(0,u.default)(r.default.mark(function f(d,m){var h,b;return r.default.wrap(function(v){for(;;)switch(v.prev=v.next){case 0:return h=this._bucketRequestParams("DELETE",d,"logging",m),h.successStatuses=[204,200],v.next=4,this.request(h);case 4:return b=v.sent,v.abrupt("return",{res:b.res});case 6:case"end":return v.stop()}},f,this)}));function p(f,d){return o.apply(this,arguments)}return p}(),t.putBucketCORS=function(){var o=(0,u.default)(r.default.mark(function f(d,m,h){var b,S,v,j,y,x,O,A,E,_;return r.default.wrap(function(k){for(;;)switch(k.prev=k.next){case 0:for(m=m||[],l(m.length,"rules is required"),m.forEach(function(F){l(F.allowedOrigin,"allowedOrigin is required"),l(F.allowedMethod,"allowedMethod is required")}),b=this._bucketRequestParams("PUT",d,"cors",h),S=` +`,v=function(W){S+="".concat(W,"")},j=function(W){S+="".concat(W,"")},y=function(W){S+="".concat(W,"")},x=function(W){S+="".concat(W,"")},O=0,A=m.length;O",n(E.allowedOrigin).forEach(v),n(E.allowedMethod).forEach(j),n(E.allowedHeader).forEach(y),n(E.exposeHeader).forEach(x),E.maxAgeSeconds&&(S+="".concat(E.maxAgeSeconds,"")),S+="";return S+="",b.content=S,b.mime="xml",b.successStatuses=[200],k.next=16,this.request(b);case 16:return _=k.sent,k.abrupt("return",{res:_.res});case 18:case"end":return k.stop()}},f,this)}));function p(f,d,m){return o.apply(this,arguments)}return p}(),t.getBucketCORS=function(){var o=(0,u.default)(r.default.mark(function f(d,m){var h,b,S,v;return r.default.wrap(function(y){for(;;)switch(y.prev=y.next){case 0:return h=this._bucketRequestParams("GET",d,"cors",m),h.successStatuses=[200],h.xmlResponse=!0,y.next=5,this.request(h);case 5:return b=y.sent,S=[],b.data&&b.data.CORSRule&&(v=b.data.CORSRule,i(v)||(v=[v]),v.forEach(function(x){var O={};Object.keys(x).forEach(function(A){O[A.slice(0,1).toLowerCase()+A.slice(1,A.length)]=x[A]}),S.push(O)})),y.abrupt("return",{rules:S,res:b.res});case 9:case"end":return y.stop()}},f,this)}));function p(f,d){return o.apply(this,arguments)}return p}(),t.deleteBucketCORS=function(){var o=(0,u.default)(r.default.mark(function f(d,m){var h,b;return r.default.wrap(function(v){for(;;)switch(v.prev=v.next){case 0:return h=this._bucketRequestParams("DELETE",d,"cors",m),h.successStatuses=[204],v.next=4,this.request(h);case 4:return b=v.sent,v.abrupt("return",{res:b.res});case 6:case"end":return v.stop()}},f,this)}));function p(f,d){return o.apply(this,arguments)}return p}(),t.putBucketReferer=function(){var o=(0,u.default)(r.default.mark(function f(d,m,h,b){var S,v,j,y;return r.default.wrap(function(O){for(;;)switch(O.prev=O.next){case 0:if(S=this._bucketRequestParams("PUT",d,"referer",b),v=` + +`,v+=" ".concat(m?"true":"false",` +`),h&&h.length>0){for(v+=` +`,j=0;j".concat(h[j],` +`);v+=` +`}else v+=` +`;return v+="",S.content=v,S.mime="xml",S.successStatuses=[200],O.next=10,this.request(S);case 10:return y=O.sent,O.abrupt("return",{res:y.res});case 12:case"end":return O.stop()}},f,this)}));function p(f,d,m,h){return o.apply(this,arguments)}return p}(),t.getBucketReferer=function(){var o=(0,u.default)(r.default.mark(function f(d,m){var h,b,S;return r.default.wrap(function(j){for(;;)switch(j.prev=j.next){case 0:return h=this._bucketRequestParams("GET",d,"referer",m),h.successStatuses=[200],h.xmlResponse=!0,j.next=5,this.request(h);case 5:return b=j.sent,S=b.data.RefererList.Referer||null,S&&(i(S)||(S=[S])),j.abrupt("return",{allowEmpty:b.data.AllowEmptyReferer==="true",referers:S,res:b.res});case 9:case"end":return j.stop()}},f,this)}));function p(f,d){return o.apply(this,arguments)}return p}(),t.deleteBucketReferer=function(){var o=(0,u.default)(r.default.mark(function f(d,m){return r.default.wrap(function(b){for(;;)switch(b.prev=b.next){case 0:return b.next=2,this.putBucketReferer(d,!0,null,m);case 2:return b.abrupt("return",b.sent);case 3:case"end":return b.stop()}},f,this)}));function p(f,d){return o.apply(this,arguments)}return p}(),t._bucketRequestParams=function(p,f,d,m){return{method:p,bucket:f,subres:d,timeout:m&&m.timeout,ctx:m&&m.ctx}}},{"../common/utils/checkBucketName":50,"@babel/runtime/helpers/asyncToGenerator":73,"@babel/runtime/helpers/interopRequireDefault":74,"@babel/runtime/regenerator":76,assert:78,"core-js/modules/es.array.slice.js":250,"core-js/modules/es.object.keys.js":257,"core-js/modules/es.object.to-string.js":258,"core-js/modules/web.dom-collections.for-each.js":296}],3:[function(e,w,g){(function(a,r){(function(){var u=e("@babel/runtime/helpers/interopRequireDefault"),l=u(e("@babel/runtime/regenerator")),c=u(e("@babel/runtime/helpers/asyncToGenerator"));e("core-js/modules/es.function.name.js"),e("core-js/modules/es.regexp.exec.js"),e("core-js/modules/es.string.split.js"),e("core-js/modules/es.object.assign.js"),e("core-js/modules/es.array.includes.js"),e("core-js/modules/es.string.replace.js"),e("core-js/modules/es.array.concat.js"),e("core-js/modules/es.symbol.js"),e("core-js/modules/es.symbol.description.js"),e("core-js/modules/es.array.slice.js"),e("core-js/modules/es.object.to-string.js"),e("core-js/modules/es.promise.js"),e("core-js/modules/es.regexp.to-string.js");var s=e("debug")("ali-oss"),t=e("xml2js"),i=e("agentkeepalive"),n=e("merge-descriptors"),o=e("platform"),p=e("utility"),f=e("urllib"),d=e("./version"),m=e("bowser"),h=e("../common/signUtils"),b=e("../common/client/initOptions"),S=e("../common/utils/createRequest"),v=S.createRequest,j=e("../common/utils/encoder"),y=j.encoder,x=e("../common/client/getReqUrl"),O=x.getReqUrl,A=e("../common/utils/setSTSToken"),E=A.setSTSToken,_=e("../common/utils/retry"),T=_.retry,k=e("../common/utils/isFunction"),F=k.isFunction,W=new i;function V(){var U=o.name,P=o.version;U&&U.toLowerCase&&U.toLowerCase()==="ie"&&P.split(".")[0]<10&&console.warn("ali-oss does not support the current browser")}function L(){return location&&location.protocol==="https:"}function Y(U,P){if(V(),!(this instanceof Y))return new Y(U,P);U&&U.inited?this.options=U:this.options=Y.initOptions(U),this.options.cancelFlag=!1,this.options.urllib?this.urllib=this.options.urllib:(this.urllib=f,this.agent=this.options.agent||W),this.ctx=P,this.userAgent=this._getUserAgent(),this.stsTokenFreshTime=new Date,this.options.amendTimeSkewed=0}w.exports=Y,Y.initOptions=function(P){P.stsToken||console.warn("Please use STS Token for safety, see more details at https://help.aliyun.com/document_detail/32077.html");var B=Object.assign({secure:L(),useFetch:!1},P);return b(B)};var re=Y.prototype;re.debug=s,n(re,e("./object")),n(re,e("./bucket")),n(re,e("../common/bucket/getBucketWebsite")),n(re,e("../common/bucket/putBucketWebsite")),n(re,e("../common/bucket/deleteBucketWebsite")),n(re,e("../common/bucket/getBucketLifecycle")),n(re,e("../common/bucket/putBucketLifecycle")),n(re,e("../common/bucket/deleteBucketLifecycle")),n(re,e("../common/bucket/putBucketVersioning")),n(re,e("../common/bucket/getBucketVersioning")),n(re,e("../common/bucket/getBucketInventory")),n(re,e("../common/bucket/deleteBucketInventory")),n(re,e("../common/bucket/listBucketInventory")),n(re,e("../common/bucket/putBucketInventory")),n(re,e("../common/bucket/abortBucketWorm")),n(re,e("../common/bucket/completeBucketWorm")),n(re,e("../common/bucket/extendBucketWorm")),n(re,e("../common/bucket/getBucketWorm")),n(re,e("../common/bucket/initiateBucketWorm")),n(re,e("./managed-upload")),n(re,e("../common/multipart-copy")),n(re,e("../common/multipart")),n(re,e("../common/parallel")),re.signature=function(P){return this.debug("authorization stringToSign: %s",P,"info"),h.computeSignature(this.options.accessKeySecret,P,this.options.headerEncoding)},re._getReqUrl=O,re.authorization=function(P,B,K,J){var q=h.buildCanonicalString(P.toUpperCase(),B,{headers:J,parameters:K});return h.authorization(this.options.accessKeyId,this.options.accessKeySecret,q,this.options.headerEncoding)},re.request=function(){var U=(0,c.default)(l.default.mark(function P(B){var K=this;return l.default.wrap(function(q){for(;;)switch(q.prev=q.next){case 0:if(!this.options.retryMax){q.next=6;break}return q.next=3,T(z.bind(this),this.options.retryMax,{errorHandler:function(ae){var M=function(N){if(B.stream)return!1;var I=[-1,-2].includes(N.status),te=K.options.requestErrorRetryHandle||function(){return!0};return I&&te(N)};return!!M(ae)}})(B);case 3:return q.abrupt("return",q.sent);case 6:return q.abrupt("return",z.call(this,B));case 7:case"end":return q.stop()}},P,this)}));return function(P){return U.apply(this,arguments)}}();function z(U){return G.apply(this,arguments)}function G(){return G=(0,c.default)(l.default.mark(function U(P){var B,K,J,q,X,ae;return l.default.wrap(function(D){for(;;)switch(D.prev=D.next){case 0:if(!(this.options.stsToken&&F(this.options.refreshSTSToken))){D.next=3;break}return D.next=3,E.call(this);case 3:return B=v.call(this,P),this.options.useFetch||(B.params.mode="disable-fetch"),q=!!P.stream,D.prev=6,D.next=9,this.urllib.request(B.url,B.params);case 9:K=D.sent,this.debug("response %s %s, got %s, headers: %j",P.method,B.url,K.status,K.headers,"info"),D.next=16;break;case 13:D.prev=13,D.t0=D.catch(6),J=D.t0;case 16:if(!(K&&P.successStatuses&&P.successStatuses.indexOf(K.status)===-1)){D.next=28;break}return D.next=19,this.requestError(K);case 19:if(X=D.sent,!(X.code==="RequestTimeTooSkewed"&&!q)){D.next=25;break}return this.options.amendTimeSkewed=+new Date(X.serverTime)-new Date,D.next=24,this.request(P);case 24:return D.abrupt("return",D.sent);case 25:X.params=P,D.next=32;break;case 28:if(!J){D.next=32;break}return D.next=31,this.requestError(J);case 31:X=D.sent;case 32:if(!X){D.next=34;break}throw X;case 34:if(!P.xmlResponse){D.next=39;break}return D.next=37,this.parseXML(K.data);case 37:ae=D.sent,K.data=ae;case 39:return D.abrupt("return",K);case 40:case"end":return D.stop()}},U,this,[[6,13]])})),G.apply(this,arguments)}re._getResource=function(P){var B="/";return P.bucket&&(B+="".concat(P.bucket,"/")),P.object&&(B+=y(P.object,this.options.headerEncoding)),B},re._escape=function(P){return p.encodeURIComponent(P).replace(/%2F/g,"/")},re._getUserAgent=function(){var P=r&&r.browser?"js":"nodejs",B="aliyun-sdk-".concat(P,"/").concat(d.version),K=o.description;return!K&&r&&(K="Node.js ".concat(r.version.slice(1)," on ").concat(r.platform," ").concat(r.arch)),this._checkUserAgent("".concat(B," ").concat(K))},re._checkUserAgent=function(P){var B=P.replace(/\u03b1/,"alpha").replace(/\u03b2/,"beta");return B},re.checkBrowserAndVersion=function(P,B){return m.name===P&&m.version.split(".")[0]===B},re.parseXML=function(P){return new Promise(function(B,K){a.isBuffer(P)&&(P=P.toString()),t.parseString(P,{explicitRoot:!1,explicitArray:!1},function(J,q){J?K(J):B(q)})})},re.requestError=function(){var U=(0,c.default)(l.default.mark(function B(K){var J,q,X,ae;return l.default.wrap(function(D){for(;;)switch(D.prev=D.next){case 0:if(J=null,!(!K.data||!K.data.length)){D.next=5;break}K.status===-1||K.status===-2?(J=new Error(K.message),J.name=K.name,J.status=K.status,J.code=K.name):(K.status===404?(J=new Error("Object not exists"),J.name="NoSuchKeyError",J.status=404,J.code="NoSuchKey"):K.status===412?(J=new Error("Pre condition failed"),J.name="PreconditionFailedError",J.status=412,J.code="PreconditionFailed"):(J=new Error("Unknow error, status: ".concat(K.status)),J.name="UnknowError",J.status=K.status),J.requestId=K.headers["x-oss-request-id"],J.host=""),D.next=32;break;case 5:return q=String(K.data),this.debug("request response error data: %s",q,"error"),D.prev=7,D.next=10,this.parseXML(q);case 10:if(D.t0=D.sent,D.t0){D.next=13;break}D.t0={};case 13:X=D.t0,D.next=23;break;case 16:return D.prev=16,D.t1=D.catch(7),this.debug(q,"error"),D.t1.message+=` +raw xml: `.concat(q),D.t1.status=K.status,D.t1.requestId=K.headers["x-oss-request-id"],D.abrupt("return",D.t1);case 23:ae=X.Message||"unknow request error, status: ".concat(K.status),X.Condition&&(ae+=" (condition: ".concat(X.Condition,")")),J=new Error(ae),J.name=X.Code?"".concat(X.Code,"Error"):"UnknowError",J.status=K.status,J.code=X.Code,J.requestId=X.RequestId,J.hostId=X.HostId,J.serverTime=X.ServerTime;case 32:return this.debug("generate error %j",J,"error"),D.abrupt("return",J);case 34:case"end":return D.stop()}},B,this,[[7,16]])}));function P(B){return U.apply(this,arguments)}return P}()}).call(this)}).call(this,{isBuffer:e("../../node_modules/is-buffer/index.js")},e("_process"))},{"../../node_modules/is-buffer/index.js":312,"../common/bucket/abortBucketWorm":7,"../common/bucket/completeBucketWorm":8,"../common/bucket/deleteBucketInventory":9,"../common/bucket/deleteBucketLifecycle":10,"../common/bucket/deleteBucketWebsite":11,"../common/bucket/extendBucketWorm":12,"../common/bucket/getBucketInventory":13,"../common/bucket/getBucketLifecycle":14,"../common/bucket/getBucketVersioning":15,"../common/bucket/getBucketWebsite":16,"../common/bucket/getBucketWorm":17,"../common/bucket/initiateBucketWorm":18,"../common/bucket/listBucketInventory":19,"../common/bucket/putBucketInventory":20,"../common/bucket/putBucketLifecycle":21,"../common/bucket/putBucketVersioning":22,"../common/bucket/putBucketWebsite":23,"../common/client/getReqUrl":25,"../common/client/initOptions":26,"../common/multipart":30,"../common/multipart-copy":29,"../common/parallel":48,"../common/signUtils":49,"../common/utils/createRequest":54,"../common/utils/encoder":57,"../common/utils/isFunction":65,"../common/utils/retry":70,"../common/utils/setSTSToken":72,"./bucket":2,"./managed-upload":4,"./object":5,"./version":6,"@babel/runtime/helpers/asyncToGenerator":73,"@babel/runtime/helpers/interopRequireDefault":74,"@babel/runtime/regenerator":76,_process:399,agentkeepalive:77,bowser:83,"core-js/modules/es.array.concat.js":241,"core-js/modules/es.array.includes.js":246,"core-js/modules/es.array.slice.js":250,"core-js/modules/es.function.name.js":253,"core-js/modules/es.object.assign.js":255,"core-js/modules/es.object.to-string.js":258,"core-js/modules/es.promise.js":259,"core-js/modules/es.regexp.exec.js":261,"core-js/modules/es.regexp.to-string.js":262,"core-js/modules/es.string.replace.js":266,"core-js/modules/es.string.split.js":268,"core-js/modules/es.symbol.description.js":270,"core-js/modules/es.symbol.js":271,debug:397,"merge-descriptors":315,platform:322,urllib:407,utility:406,xml2js:358}],4:[function(e,w,g){(function(a){(function(){var r=e("@babel/runtime/helpers/interopRequireDefault"),u=r(e("@babel/runtime/regenerator"));e("core-js/modules/es.function.name.js"),e("core-js/modules/es.object.to-string.js"),e("core-js/modules/es.promise.js"),e("core-js/modules/es.array.from.js"),e("core-js/modules/es.string.iterator.js"),e("core-js/modules/es.array.map.js"),e("core-js/modules/es.array.filter.js"),e("core-js/modules/es.array.find.js"),e("core-js/modules/es.array.concat.js"),e("core-js/modules/es.regexp.to-string.js"),e("core-js/modules/es.array.slice.js"),e("core-js/modules/es.array.iterator.js"),e("core-js/modules/es.array-buffer.slice.js"),e("core-js/modules/es.typed-array.uint8-array.js"),e("core-js/modules/es.typed-array.copy-within.js"),e("core-js/modules/es.typed-array.every.js"),e("core-js/modules/es.typed-array.fill.js"),e("core-js/modules/es.typed-array.filter.js"),e("core-js/modules/es.typed-array.find.js"),e("core-js/modules/es.typed-array.find-index.js"),e("core-js/modules/es.typed-array.for-each.js"),e("core-js/modules/es.typed-array.includes.js"),e("core-js/modules/es.typed-array.index-of.js"),e("core-js/modules/es.typed-array.iterator.js"),e("core-js/modules/es.typed-array.join.js"),e("core-js/modules/es.typed-array.last-index-of.js"),e("core-js/modules/es.typed-array.map.js"),e("core-js/modules/es.typed-array.reduce.js"),e("core-js/modules/es.typed-array.reduce-right.js"),e("core-js/modules/es.typed-array.reverse.js"),e("core-js/modules/es.typed-array.set.js"),e("core-js/modules/es.typed-array.slice.js"),e("core-js/modules/es.typed-array.some.js"),e("core-js/modules/es.typed-array.sort.js"),e("core-js/modules/es.typed-array.subarray.js"),e("core-js/modules/es.typed-array.to-locale-string.js"),e("core-js/modules/es.typed-array.to-string.js");var l=r(e("@babel/runtime/helpers/asyncToGenerator")),c=e("util"),s=e("path"),t=e("mime"),i=e("copy-to"),n=e("../common/utils/isBlob"),o=n.isBlob,p=e("../common/utils/isFile"),f=p.isFile,d=e("../common/utils/isArray");d.isArray;var m=e("../common/utils/isBuffer"),h=m.isBuffer,b=e("../common/utils/retry");b.retry;var S=g;S.multipartUpload=function(){var O=(0,l.default)(u.default.mark(function E(_,T){var k,F,W,V,L,Y,re,z,G,U=arguments;return u.default.wrap(function(B){for(;;)switch(B.prev=B.next){case 0:if(k=U.length>2&&U[2]!==void 0?U[2]:{},this.resetCancelFlag(),k.disabledMD5=k.disabledMD5===void 0?!0:!!k.disabledMD5,!(k.checkpoint&&k.checkpoint.uploadId)){B.next=8;break}return T&&f(T)&&(k.checkpoint.file=T),B.next=7,this._resumeMultipart(k.checkpoint,k);case 7:return B.abrupt("return",B.sent);case 8:return F=102400,k.mime||(f(T)?k.mime=t.getType(s.extname(T.name)):o(T)?k.mime=T.type:h(T)?k.mime="":k.mime=t.getType(s.extname(T))),k.headers=k.headers||{},this._convertMetaToHeaders(k.meta,k.headers),B.next=14,this._getFileSize(T);case 14:if(W=B.sent,!(W0&&i(Y).to(z),G=this._divideParts(W,V),U=G.length,P=!1,B=function(Q,Z){return new Promise(function(){var ie=(0,l.default)(u.default.mark(function ce(oe,me){var ge,$,R,C,H;return u.default.wrap(function(ne){for(;;)switch(ne.prev=ne.next){case 0:if(ne.prev=0,Q.isCancel()){ne.next=29;break}return ge=G[Z-1],ne.next=5,Q._createBuffer(F,ge.start,ge.end);case 5:return $=ne.sent,R={content:$,size:ge.end-ge.start},ne.prev=7,ne.next=10,Q._uploadPart(re,L,Z,R,{timeout:T.timeout,disabledMD5:T.disabledMD5});case 10:C=ne.sent,ne.next=18;break;case 13:if(ne.prev=13,ne.t0=ne.catch(7),ne.t0.status!==404){ne.next=17;break}throw Q._makeAbortEvent();case 17:throw ne.t0;case 18:if(!(!Q.isCancel()&&!P)){ne.next=26;break}if(_.doneParts.push({number:Z,etag:C.res.headers.etag}),!T.progress){ne.next=23;break}return ne.next=23,T.progress(Y.length/U,_,C.res);case 23:oe({number:Z,etag:C.res.headers.etag}),ne.next=27;break;case 26:oe();case 27:ne.next=30;break;case 29:oe();case 30:ne.next=41;break;case 32:ne.prev=32,ne.t1=ne.catch(0),H=new Error,H.name=ne.t1.name,H.message=ne.t1.message,H.stack=ne.t1.stack,H.partNum=Z,i(ne.t1).to(H),me(H);case 41:case"end":return ne.stop()}},ce,null,[[0,32],[7,13]])}));return function(ce,oe){return ie.apply(this,arguments)}}())},K=Array.from(new Array(U),function(te,Q){return Q+1}),J=z.map(function(te){return te.number}),q=K.filter(function(te){return J.indexOf(te)<0}),X=5,ae=T.parallel||X,I.next=17,this._parallel(q,ae,function(te){return new Promise(function(Q,Z){B(k,te).then(function(ie){ie&&z.push(ie),Q()}).catch(function(ie){Z(ie)})})});case 17:if(M=I.sent,P=!0,D=M.find(function(te){return te.name==="abort"}),!D){I.next=22;break}throw D;case 22:if(!this.isCancel()){I.next=25;break}throw B=null,this._makeCancelEvent();case 25:if(!(M&&M.length>0)){I.next=28;break}throw M[0].message="Failed to upload some parts with error: ".concat(M[0].toString()," part_num: ").concat(M[0].partNum),M[0];case 28:return I.next=30,this.completeMultipartUpload(re,L,z,T);case 30:return I.abrupt("return",I.sent);case 31:case"end":return I.stop()}},E,this)}));function A(E,_){return O.apply(this,arguments)}return A}(),S._getFileSize=function(){var O=(0,l.default)(u.default.mark(function E(_){return u.default.wrap(function(k){for(;;)switch(k.prev=k.next){case 0:if(!h(_)){k.next=4;break}return k.abrupt("return",_.length);case 4:if(!(o(_)||f(_))){k.next=6;break}return k.abrupt("return",_.size);case 6:throw new Error("_getFileSize requires Buffer/File/Blob.");case 7:case"end":return k.stop()}},E)}));function A(E){return O.apply(this,arguments)}return A}();var v=e("stream"),j=v.Readable;function y(O,A){if(!(this instanceof y))return new y(O,A);j.call(this,A),this.file=O,this.reader=new FileReader,this.start=0,this.finish=!1,this.fileBuffer=null}c.inherits(y,j),y.prototype.readFileAndPush=function(A){if(this.fileBuffer)for(var E=!0;E&&this.fileBuffer&&this.startthis.fileBuffer.length?this.fileBuffer.length:T,this.start=T,E=this.push(this.fileBuffer.slice(_,T))}},y.prototype._read=function(A){if(this.file&&this.start>=this.file.size||this.fileBuffer&&this.start>=this.fileBuffer.length||this.finish||this.start===0&&!this.file){this.finish||(this.fileBuffer=null,this.finish=!0),this.push(null);return}var E=16*1024;A=A||E;var _=this;this.reader.onload=function(k){_.fileBuffer=a.from(new Uint8Array(k.target.result)),_.file=null,_.readFileAndPush(A)},this.start===0?this.reader.readAsArrayBuffer(this.file):this.readFileAndPush(A)};function x(O){return O.arrayBuffer?O.arrayBuffer():new Promise(function(A,E){var _=new FileReader;_.onload=function(T){A(T.target.result)},_.onerror=function(T){E(T)},_.readAsArrayBuffer(O)})}S._createBuffer=function(){var O=(0,l.default)(u.default.mark(function E(_,T,k){var F,W;return u.default.wrap(function(L){for(;;)switch(L.prev=L.next){case 0:if(!(o(_)||f(_))){L.next=8;break}return F=_.slice(T,k),L.next=4,x(F);case 4:return W=L.sent,L.abrupt("return",a.from(W));case 8:if(!h(_)){L.next=12;break}return L.abrupt("return",_.subarray(T,k));case 12:throw new Error("_createBuffer requires File/Blob/Buffer.");case 13:case"end":return L.stop()}},E)}));function A(E,_,T){return O.apply(this,arguments)}return A}(),S._getPartSize=function(A,E){var _=1e4,T=1*1024*1024;E||(E=T);var k=Math.ceil(A/_);return E1&&V[1]!==void 0?V[1]:{},E=O["continuation-token"]||O.continuationToken,E&&(A.subres=Object.assign({"continuation-token":E},A.subres)),_=this._objectRequestParams("GET","",A),_.query=Object.assign({"list-type":2},O),delete _.query["continuation-token"],delete _.query.continuationToken,_.xmlResponse=!0,_.successStatuses=[200],Y.next=11,this.request(_);case 11:return T=Y.sent,k=T.data.Contents||[],F=this,k&&(Array.isArray(k)||(k=[k]),k=k.map(function(re){return{name:re.Key,url:F._objectUrl(re.Key),lastModified:re.LastModified,etag:re.ETag,type:re.Type,size:Number(re.Size),storageClass:re.StorageClass,owner:re.Owner?{id:re.Owner.ID,displayName:re.Owner.DisplayName}:null}})),W=T.data.CommonPrefixes||null,W&&(Array.isArray(W)||(W=[W]),W=W.map(function(re){return re.Prefix})),Y.abrupt("return",{res:T.res,objects:k,prefixes:W,isTruncated:T.data.IsTruncated==="true",keyCount:+T.data.KeyCount,continuationToken:T.data.ContinuationToken||null,nextContinuationToken:T.data.NextContinuationToken||null});case 18:case"end":return Y.stop()}},x,this)}));function y(x){return j.apply(this,arguments)}return y}(),v.restore=function(){var j=(0,u.default)(r.default.mark(function x(O){var A,E,_,T,k=arguments;return r.default.wrap(function(W){for(;;)switch(W.prev=W.next){case 0:return A=k.length>1&&k[1]!==void 0?k[1]:{type:"Archive"},A=A||{},A.subres=Object.assign({restore:""},A.subres),A.versionId&&(A.subres.versionId=A.versionId),E=this._objectRequestParams("POST",O,A),A.type==="ColdArchive"&&(_={RestoreRequest:{Days:A.Days?A.Days:2,JobParameters:{Tier:A.JobParameters?A.JobParameters:"Standard"}}},E.content=S(_,{headers:!0}),E.mime="xml"),E.successStatuses=[202],W.next=9,this.request(E);case 9:return T=W.sent,W.abrupt("return",{res:T.res});case 11:case"end":return W.stop()}},x,this)}));function y(x){return j.apply(this,arguments)}return y}(),v._objectUrl=function(y){return this._getReqUrl({bucket:this.options.bucket,object:y})},v._objectRequestParams=function(y,x,O){if(!this.options.bucket&&!this.options.cname)throw new Error("Please create a bucket first");O=O||{},x=this._objectName(x);var A={object:x,bucket:this.options.bucket,method:y,subres:O&&O.subres,timeout:O&&O.timeout,ctx:O&&O.ctx};return O.headers&&(A.headers={},c(O.headers).to(A.headers)),A},v._objectName=function(y){return y.replace(/^\/+/,"")},v._convertMetaToHeaders=function(y,x){!y||Object.keys(y).forEach(function(O){x["x-oss-meta-".concat(O)]=y[O]})},v._deleteFileSafe=function(y){var x=this;return new Promise(function(O){l.exists(y,function(A){A?l.unlink(y,function(E){E&&x.debug("unlink %j error: %s",y,E,"error"),O()}):O()})})}},{"../common/callback":24,"../common/image":27,"../common/object/copyObject":31,"../common/object/delete":32,"../common/object/deleteMulti":33,"../common/object/deleteObjectTagging":34,"../common/object/generateObjectUrl":35,"../common/object/get":36,"../common/object/getACL":37,"../common/object/getBucketVersions":38,"../common/object/getObjectMeta":39,"../common/object/getObjectTagging":40,"../common/object/getObjectUrl":41,"../common/object/getSymlink":42,"../common/object/head":43,"../common/object/putACL":44,"../common/object/putObjectTagging":45,"../common/object/putSymlink":46,"../common/object/signatureUrl":47,"../common/utils/isBlob":62,"../common/utils/isBuffer":63,"../common/utils/isFile":64,"../common/utils/obj2xml":69,"@babel/runtime/helpers/asyncToGenerator":73,"@babel/runtime/helpers/interopRequireDefault":74,"@babel/runtime/regenerator":76,"copy-to":88,"core-js/modules/es.array.map.js":249,"core-js/modules/es.function.name.js":253,"core-js/modules/es.number.constructor.js":254,"core-js/modules/es.object.assign.js":255,"core-js/modules/es.object.keys.js":257,"core-js/modules/es.object.to-string.js":258,"core-js/modules/es.promise.js":259,"core-js/modules/es.regexp.exec.js":261,"core-js/modules/es.regexp.to-string.js":262,"core-js/modules/es.string.replace.js":266,"core-js/modules/web.dom-collections.for-each.js":296,fs:84,"merge-descriptors":315,mime:317,path:321}],6:[function(e,w,g){g.version="6.17.1"},{}],7:[function(e,w,g){var a=e("@babel/runtime/helpers/interopRequireDefault"),r=a(e("@babel/runtime/regenerator")),u=a(e("@babel/runtime/helpers/asyncToGenerator"));Object.defineProperty(g,"__esModule",{value:!0}),g.abortBucketWorm=void 0;var l=e("../utils/checkBucketName");function c(t,i){return s.apply(this,arguments)}function s(){return s=(0,u.default)(r.default.mark(function t(i,n){var o,p;return r.default.wrap(function(d){for(;;)switch(d.prev=d.next){case 0:return l.checkBucketName(i),o=this._bucketRequestParams("DELETE",i,"worm",n),d.next=4,this.request(o);case 4:return p=d.sent,d.abrupt("return",{res:p.res,status:p.status});case 6:case"end":return d.stop()}},t,this)})),s.apply(this,arguments)}g.abortBucketWorm=c},{"../utils/checkBucketName":50,"@babel/runtime/helpers/asyncToGenerator":73,"@babel/runtime/helpers/interopRequireDefault":74,"@babel/runtime/regenerator":76}],8:[function(e,w,g){var a=e("@babel/runtime/helpers/interopRequireDefault"),r=a(e("@babel/runtime/regenerator")),u=a(e("@babel/runtime/helpers/asyncToGenerator"));Object.defineProperty(g,"__esModule",{value:!0}),g.completeBucketWorm=void 0;var l=e("../utils/checkBucketName");function c(t,i,n){return s.apply(this,arguments)}function s(){return s=(0,u.default)(r.default.mark(function t(i,n,o){var p,f;return r.default.wrap(function(m){for(;;)switch(m.prev=m.next){case 0:return l.checkBucketName(i),p=this._bucketRequestParams("POST",i,{wormId:n},o),m.next=4,this.request(p);case 4:return f=m.sent,m.abrupt("return",{res:f.res,status:f.status});case 6:case"end":return m.stop()}},t,this)})),s.apply(this,arguments)}g.completeBucketWorm=c},{"../utils/checkBucketName":50,"@babel/runtime/helpers/asyncToGenerator":73,"@babel/runtime/helpers/interopRequireDefault":74,"@babel/runtime/regenerator":76}],9:[function(e,w,g){var a=e("@babel/runtime/helpers/interopRequireDefault"),r=a(e("@babel/runtime/regenerator"));e("core-js/modules/es.object.assign.js");var u=a(e("@babel/runtime/helpers/asyncToGenerator"));Object.defineProperty(g,"__esModule",{value:!0}),g.deleteBucketInventory=void 0;var l=e("../utils/checkBucketName");function c(t,i){return s.apply(this,arguments)}function s(){return s=(0,u.default)(r.default.mark(function t(i,n){var o,p,f,d,m=arguments;return r.default.wrap(function(b){for(;;)switch(b.prev=b.next){case 0:return o=m.length>2&&m[2]!==void 0?m[2]:{},p=Object.assign({inventory:"",inventoryId:n},o.subres),l.checkBucketName(i),f=this._bucketRequestParams("DELETE",i,p,o),f.successStatuses=[204],b.next=7,this.request(f);case 7:return d=b.sent,b.abrupt("return",{status:d.status,res:d.res});case 9:case"end":return b.stop()}},t,this)})),s.apply(this,arguments)}g.deleteBucketInventory=c},{"../utils/checkBucketName":50,"@babel/runtime/helpers/asyncToGenerator":73,"@babel/runtime/helpers/interopRequireDefault":74,"@babel/runtime/regenerator":76,"core-js/modules/es.object.assign.js":255}],10:[function(e,w,g){var a=e("@babel/runtime/helpers/interopRequireDefault"),r=a(e("@babel/runtime/regenerator")),u=a(e("@babel/runtime/helpers/asyncToGenerator")),l=e("../utils/checkBucketName"),c=l.checkBucketName,s=g;s.deleteBucketLifecycle=function(){var t=(0,u.default)(r.default.mark(function n(o,p){var f,d;return r.default.wrap(function(h){for(;;)switch(h.prev=h.next){case 0:return c(o),f=this._bucketRequestParams("DELETE",o,"lifecycle",p),f.successStatuses=[204],h.next=5,this.request(f);case 5:return d=h.sent,h.abrupt("return",{res:d.res});case 7:case"end":return h.stop()}},n,this)}));function i(n,o){return t.apply(this,arguments)}return i}()},{"../utils/checkBucketName":50,"@babel/runtime/helpers/asyncToGenerator":73,"@babel/runtime/helpers/interopRequireDefault":74,"@babel/runtime/regenerator":76}],11:[function(e,w,g){var a=e("@babel/runtime/helpers/interopRequireDefault"),r=a(e("@babel/runtime/regenerator")),u=a(e("@babel/runtime/helpers/asyncToGenerator")),l=e("../utils/checkBucketName"),c=l.checkBucketName,s=g;s.deleteBucketWebsite=function(){var t=(0,u.default)(r.default.mark(function n(o,p){var f,d;return r.default.wrap(function(h){for(;;)switch(h.prev=h.next){case 0:return c(o),f=this._bucketRequestParams("DELETE",o,"website",p),f.successStatuses=[204],h.next=5,this.request(f);case 5:return d=h.sent,h.abrupt("return",{res:d.res});case 7:case"end":return h.stop()}},n,this)}));function i(n,o){return t.apply(this,arguments)}return i}()},{"../utils/checkBucketName":50,"@babel/runtime/helpers/asyncToGenerator":73,"@babel/runtime/helpers/interopRequireDefault":74,"@babel/runtime/regenerator":76}],12:[function(e,w,g){var a=e("@babel/runtime/helpers/interopRequireDefault"),r=a(e("@babel/runtime/regenerator")),u=a(e("@babel/runtime/helpers/asyncToGenerator"));Object.defineProperty(g,"__esModule",{value:!0}),g.extendBucketWorm=void 0;var l=e("../utils/checkBucketName"),c=e("../utils/obj2xml");function s(i,n,o,p){return t.apply(this,arguments)}function t(){return t=(0,u.default)(r.default.mark(function i(n,o,p,f){var d,m,h;return r.default.wrap(function(S){for(;;)switch(S.prev=S.next){case 0:return l.checkBucketName(n),d=this._bucketRequestParams("POST",n,{wormExtend:"",wormId:o},f),m={ExtendWormConfiguration:{RetentionPeriodInDays:p}},d.mime="xml",d.content=c.obj2xml(m,{headers:!0}),d.successStatuses=[200],S.next=8,this.request(d);case 8:return h=S.sent,S.abrupt("return",{res:h.res,status:h.status});case 10:case"end":return S.stop()}},i,this)})),t.apply(this,arguments)}g.extendBucketWorm=s},{"../utils/checkBucketName":50,"../utils/obj2xml":69,"@babel/runtime/helpers/asyncToGenerator":73,"@babel/runtime/helpers/interopRequireDefault":74,"@babel/runtime/regenerator":76}],13:[function(e,w,g){var a=e("@babel/runtime/helpers/interopRequireDefault"),r=a(e("@babel/runtime/regenerator"));e("core-js/modules/es.object.assign.js");var u=a(e("@babel/runtime/helpers/asyncToGenerator"));Object.defineProperty(g,"__esModule",{value:!0}),g.getBucketInventory=void 0;var l=e("../utils/checkBucketName"),c=e("../utils/formatInventoryConfig");function s(i,n){return t.apply(this,arguments)}function t(){return t=(0,u.default)(r.default.mark(function i(n,o){var p,f,d,m,h=arguments;return r.default.wrap(function(S){for(;;)switch(S.prev=S.next){case 0:return p=h.length>2&&h[2]!==void 0?h[2]:{},f=Object.assign({inventory:"",inventoryId:o},p.subres),l.checkBucketName(n),d=this._bucketRequestParams("GET",n,f,p),d.successStatuses=[200],d.xmlResponse=!0,S.next=8,this.request(d);case 8:return m=S.sent,S.abrupt("return",{status:m.status,res:m.res,inventory:c.formatInventoryConfig(m.data)});case 10:case"end":return S.stop()}},i,this)})),t.apply(this,arguments)}g.getBucketInventory=s},{"../utils/checkBucketName":50,"../utils/formatInventoryConfig":58,"@babel/runtime/helpers/asyncToGenerator":73,"@babel/runtime/helpers/interopRequireDefault":74,"@babel/runtime/regenerator":76,"core-js/modules/es.object.assign.js":255}],14:[function(e,w,g){var a=e("@babel/runtime/helpers/interopRequireDefault"),r=a(e("@babel/runtime/regenerator"));e("core-js/modules/es.array.map.js");var u=a(e("@babel/runtime/helpers/asyncToGenerator")),l=e("../utils/checkBucketName"),c=l.checkBucketName,s=e("../utils/isArray"),t=s.isArray,i=e("../utils/formatObjKey"),n=i.formatObjKey,o=g;o.getBucketLifecycle=function(){var p=(0,u.default)(r.default.mark(function d(m,h){var b,S,v;return r.default.wrap(function(y){for(;;)switch(y.prev=y.next){case 0:return c(m),b=this._bucketRequestParams("GET",m,"lifecycle",h),b.successStatuses=[200],b.xmlResponse=!0,y.next=6,this.request(b);case 6:return S=y.sent,v=S.data.Rule||null,v&&(t(v)||(v=[v]),v=v.map(function(x){return x.ID&&(x.id=x.ID,delete x.ID),x.Tag&&!t(x.Tag)&&(x.Tag=[x.Tag]),n(x,"firstLowerCase")})),y.abrupt("return",{rules:v,res:S.res});case 10:case"end":return y.stop()}},d,this)}));function f(d,m){return p.apply(this,arguments)}return f}()},{"../utils/checkBucketName":50,"../utils/formatObjKey":59,"../utils/isArray":61,"@babel/runtime/helpers/asyncToGenerator":73,"@babel/runtime/helpers/interopRequireDefault":74,"@babel/runtime/regenerator":76,"core-js/modules/es.array.map.js":249}],15:[function(e,w,g){var a=e("@babel/runtime/helpers/interopRequireDefault"),r=a(e("@babel/runtime/regenerator")),u=a(e("@babel/runtime/helpers/asyncToGenerator")),l=e("../utils/checkBucketName"),c=l.checkBucketName,s=g;s.getBucketVersioning=function(){var t=(0,u.default)(r.default.mark(function n(o,p){var f,d,m;return r.default.wrap(function(b){for(;;)switch(b.prev=b.next){case 0:return c(o),f=this._bucketRequestParams("GET",o,"versioning",p),f.xmlResponse=!0,f.successStatuses=[200],b.next=6,this.request(f);case 6:return d=b.sent,m=d.data.Status,b.abrupt("return",{status:d.status,versionStatus:m,res:d.res});case 9:case"end":return b.stop()}},n,this)}));function i(n,o){return t.apply(this,arguments)}return i}()},{"../utils/checkBucketName":50,"@babel/runtime/helpers/asyncToGenerator":73,"@babel/runtime/helpers/interopRequireDefault":74,"@babel/runtime/regenerator":76}],16:[function(e,w,g){var a=e("@babel/runtime/helpers/interopRequireDefault"),r=a(e("@babel/runtime/regenerator")),u=a(e("@babel/runtime/helpers/asyncToGenerator")),l=e("../utils/checkBucketName"),c=l.checkBucketName,s=e("../utils/isObject"),t=s.isObject,i=g;i.getBucketWebsite=function(){var n=(0,u.default)(r.default.mark(function p(f,d){var m,h,b;return r.default.wrap(function(v){for(;;)switch(v.prev=v.next){case 0:return c(f),m=this._bucketRequestParams("GET",f,"website",d),m.successStatuses=[200],m.xmlResponse=!0,v.next=6,this.request(m);case 6:return h=v.sent,b=[],h.data.RoutingRules&&h.data.RoutingRules.RoutingRule&&(t(h.data.RoutingRules.RoutingRule)?b=[h.data.RoutingRules.RoutingRule]:b=h.data.RoutingRules.RoutingRule),v.abrupt("return",{index:h.data.IndexDocument&&h.data.IndexDocument.Suffix||"",supportSubDir:h.data.IndexDocument&&h.data.IndexDocument.SupportSubDir||"false",type:h.data.IndexDocument&&h.data.IndexDocument.Type,routingRules:b,error:h.data.ErrorDocument&&h.data.ErrorDocument.Key||null,res:h.res});case 10:case"end":return v.stop()}},p,this)}));function o(p,f){return n.apply(this,arguments)}return o}()},{"../utils/checkBucketName":50,"../utils/isObject":67,"@babel/runtime/helpers/asyncToGenerator":73,"@babel/runtime/helpers/interopRequireDefault":74,"@babel/runtime/regenerator":76}],17:[function(e,w,g){var a=e("@babel/runtime/helpers/interopRequireDefault"),r=a(e("@babel/runtime/regenerator"));e("core-js/modules/es.object.assign.js");var u=a(e("@babel/runtime/helpers/asyncToGenerator"));Object.defineProperty(g,"__esModule",{value:!0}),g.getBucketWorm=void 0;var l=e("../utils/checkBucketName"),c=e("../utils/dataFix");function s(i,n){return t.apply(this,arguments)}function t(){return t=(0,u.default)(r.default.mark(function i(n,o){var p,f;return r.default.wrap(function(m){for(;;)switch(m.prev=m.next){case 0:return l.checkBucketName(n),p=this._bucketRequestParams("GET",n,"worm",o),p.successStatuses=[200],p.xmlResponse=!0,m.next=6,this.request(p);case 6:return f=m.sent,c.dataFix(f.data,{lowerFirst:!0,rename:{RetentionPeriodInDays:"days"}}),m.abrupt("return",Object.assign(Object.assign({},f.data),{res:f.res,status:f.status}));case 9:case"end":return m.stop()}},i,this)})),t.apply(this,arguments)}g.getBucketWorm=s},{"../utils/checkBucketName":50,"../utils/dataFix":55,"@babel/runtime/helpers/asyncToGenerator":73,"@babel/runtime/helpers/interopRequireDefault":74,"@babel/runtime/regenerator":76,"core-js/modules/es.object.assign.js":255}],18:[function(e,w,g){var a=e("@babel/runtime/helpers/interopRequireDefault"),r=a(e("@babel/runtime/regenerator")),u=a(e("@babel/runtime/helpers/asyncToGenerator"));Object.defineProperty(g,"__esModule",{value:!0}),g.initiateBucketWorm=void 0;var l=e("../utils/obj2xml"),c=e("../utils/checkBucketName");function s(i,n,o){return t.apply(this,arguments)}function t(){return t=(0,u.default)(r.default.mark(function i(n,o,p){var f,d,m;return r.default.wrap(function(b){for(;;)switch(b.prev=b.next){case 0:return c.checkBucketName(n),f=this._bucketRequestParams("POST",n,"worm",p),d={InitiateWormConfiguration:{RetentionPeriodInDays:o}},f.mime="xml",f.content=l.obj2xml(d,{headers:!0}),f.successStatuses=[200],b.next=8,this.request(f);case 8:return m=b.sent,b.abrupt("return",{res:m.res,wormId:m.res.headers["x-oss-worm-id"],status:m.status});case 10:case"end":return b.stop()}},i,this)})),t.apply(this,arguments)}g.initiateBucketWorm=s},{"../utils/checkBucketName":50,"../utils/obj2xml":69,"@babel/runtime/helpers/asyncToGenerator":73,"@babel/runtime/helpers/interopRequireDefault":74,"@babel/runtime/regenerator":76}],19:[function(e,w,g){var a=e("@babel/runtime/helpers/interopRequireDefault"),r=a(e("@babel/runtime/regenerator"));e("core-js/modules/es.object.assign.js");var u=a(e("@babel/runtime/helpers/asyncToGenerator"));Object.defineProperty(g,"__esModule",{value:!0}),g.listBucketInventory=void 0;var l=e("../utils/checkBucketName"),c=e("../utils/formatInventoryConfig");function s(i){return t.apply(this,arguments)}function t(){return t=(0,u.default)(r.default.mark(function i(n){var o,p,f,d,m,h,b,S,v=arguments;return r.default.wrap(function(y){for(;;)switch(y.prev=y.next){case 0:return o=v.length>1&&v[1]!==void 0?v[1]:{},p=o.continuationToken,f=Object.assign({inventory:""},p&&{"continuation-token":p},o.subres),l.checkBucketName(n),d=this._bucketRequestParams("GET",n,f,o),d.successStatuses=[200],d.xmlResponse=!0,y.next=9,this.request(d);case 9:return m=y.sent,h=m.data,b=m.res,S=m.status,y.abrupt("return",{isTruncated:h.IsTruncated==="true",nextContinuationToken:h.NextContinuationToken,inventoryList:c.formatInventoryConfig(h.InventoryConfiguration,!0),status:S,res:b});case 12:case"end":return y.stop()}},i,this)})),t.apply(this,arguments)}g.listBucketInventory=s},{"../utils/checkBucketName":50,"../utils/formatInventoryConfig":58,"@babel/runtime/helpers/asyncToGenerator":73,"@babel/runtime/helpers/interopRequireDefault":74,"@babel/runtime/regenerator":76,"core-js/modules/es.object.assign.js":255}],20:[function(e,w,g){var a=e("@babel/runtime/helpers/interopRequireDefault"),r=a(e("@babel/runtime/regenerator"));e("core-js/modules/es.object.assign.js"),e("core-js/modules/es.array.concat.js");var u=a(e("@babel/runtime/helpers/asyncToGenerator"));Object.defineProperty(g,"__esModule",{value:!0}),g.putBucketInventory=void 0;var l=e("../utils/checkBucketName"),c=e("../utils/obj2xml");function s(i,n){return t.apply(this,arguments)}function t(){return t=(0,u.default)(r.default.mark(function i(n,o){var p,f,d,m,h,b,S,v,j,y,x,O=arguments;return r.default.wrap(function(E){for(;;)switch(E.prev=E.next){case 0:return p=O.length>2&&O[2]!==void 0?O[2]:{},f=Object.assign({inventory:"",inventoryId:o.id},p.subres),l.checkBucketName(n),d=o.OSSBucketDestination,m=o.optionalFields,h=o.includedObjectVersions,b="acs:oss:::",S="acs:ram::".concat(d.accountId,":role/"),v={InventoryConfiguration:{Id:o.id,IsEnabled:o.isEnabled,Filter:{Prefix:o.prefix||""},Destination:{OSSBucketDestination:{Format:d.format,AccountId:d.accountId,RoleArn:"".concat(S).concat(d.rolename),Bucket:"".concat(b).concat(d.bucket),Prefix:d.prefix||"",Encryption:d.encryption||""}},Schedule:{Frequency:o.frequency},IncludedObjectVersions:h,OptionalFields:{Field:(m==null?void 0:m.field)||[]}}},j=c.obj2xml(v,{headers:!0,firstUpperCase:!0}),y=this._bucketRequestParams("PUT",n,f,p),y.successStatuses=[200],y.mime="xml",y.content=j,E.next=14,this.request(y);case 14:return x=E.sent,E.abrupt("return",{status:x.status,res:x.res});case 16:case"end":return E.stop()}},i,this)})),t.apply(this,arguments)}g.putBucketInventory=s},{"../utils/checkBucketName":50,"../utils/obj2xml":69,"@babel/runtime/helpers/asyncToGenerator":73,"@babel/runtime/helpers/interopRequireDefault":74,"@babel/runtime/regenerator":76,"core-js/modules/es.array.concat.js":241,"core-js/modules/es.object.assign.js":255}],21:[function(e,w,g){var a=e("@babel/runtime/helpers/interopRequireDefault"),r=a(e("@babel/runtime/regenerator"));e("core-js/modules/web.dom-collections.for-each.js"),e("core-js/modules/es.array.includes.js");var u=a(e("@babel/runtime/helpers/asyncToGenerator")),l=e("../utils/checkBucketName"),c=l.checkBucketName,s=e("../utils/isArray"),t=s.isArray,i=e("../utils/deepCopy"),n=i.deepCopy,o=e("../utils/isObject"),p=o.isObject,f=e("../utils/obj2xml"),d=f.obj2xml,m=e("../utils/checkObjectTag"),h=m.checkObjectTag,b=e("../utils/getStrBytesCount"),S=b.getStrBytesCount,v=g;v.putBucketLifecycle=function(){var A=(0,u.default)(r.default.mark(function _(T,k,F){var W,V,L,Y,re;return r.default.wrap(function(G){for(;;)switch(G.prev=G.next){case 0:if(c(T),t(k)){G.next=3;break}throw new Error("rules must be Array");case 3:return W=this._bucketRequestParams("PUT",T,"lifecycle",F),V=[],L={LifecycleConfiguration:{Rule:V}},k.forEach(function(U){j(U),O(U),U.id&&(U.ID=U.id,delete U.id),V.push(U)}),Y=d(L,{headers:!0,firstUpperCase:!0}),W.content=Y,W.mime="xml",W.successStatuses=[200],G.next=13,this.request(W);case 13:return re=G.sent,G.abrupt("return",{res:re.res});case 15:case"end":return G.stop()}},_,this)}));function E(_,T,k){return A.apply(this,arguments)}return E}();function j(A){A.days&&(A.expiration={days:A.days}),A.date&&(A.expiration={createdBeforeDate:A.date})}function y(A,E){var _=A.days,T=A.createdBeforeDate;if(!_&&!T)throw new Error("".concat(E," must includes days or createdBeforeDate"));if(_&&!/^[1-9][0-9]*$/.test(_))throw new Error("days must be a positive integer");if(T&&!/\d{4}-\d{2}-\d{2}T00:00:00.000Z/.test(T))throw new Error("createdBeforeDate must be date and conform to iso8601 format")}function x(A){if(!t(A)&&!p(A))throw new Error("tag must be Object or Array");A=p(A)?[A]:A;var E={},_=n(A);_.forEach(function(T){E[T.key]=T.value}),h(E)}function O(A){if(A.id&&S(A.id)>255)throw new Error("ID is composed of 255 bytes at most");if(A.prefix===void 0)throw new Error("Rule must includes prefix");if(!["Enabled","Disabled"].includes(A.status))throw new Error("Status must be Enabled or Disabled");if(A.transition){if(!["IA","Archive"].includes(A.transition.storageClass))throw new Error("StorageClass must be IA or Archive");y(A.transition,"Transition")}if(A.expiration){if(!A.expiration.expiredObjectDeleteMarker)y(A.expiration,"Expiration");else if(A.expiration.days||A.expiration.createdBeforeDate)throw new Error("expiredObjectDeleteMarker cannot be used with days or createdBeforeDate")}if(A.abortMultipartUpload&&y(A.abortMultipartUpload,"AbortMultipartUpload"),!A.expiration&&!A.abortMultipartUpload&&!A.transition&&!A.noncurrentVersionTransition)throw new Error("Rule must includes expiration or abortMultipartUpload or transition or noncurrentVersionTransition");if(A.tag){if(A.abortMultipartUpload)throw new Error("Tag cannot be used with abortMultipartUpload");x(A.tag)}}},{"../utils/checkBucketName":50,"../utils/checkObjectTag":52,"../utils/deepCopy":56,"../utils/getStrBytesCount":60,"../utils/isArray":61,"../utils/isObject":67,"../utils/obj2xml":69,"@babel/runtime/helpers/asyncToGenerator":73,"@babel/runtime/helpers/interopRequireDefault":74,"@babel/runtime/regenerator":76,"core-js/modules/es.array.includes.js":246,"core-js/modules/web.dom-collections.for-each.js":296}],22:[function(e,w,g){var a=e("@babel/runtime/helpers/interopRequireDefault"),r=a(e("@babel/runtime/regenerator"));e("core-js/modules/es.array.includes.js");var u=a(e("@babel/runtime/helpers/asyncToGenerator")),l=e("../utils/checkBucketName"),c=l.checkBucketName,s=e("../utils/obj2xml"),t=s.obj2xml,i=g;i.putBucketVersioning=function(){var n=(0,u.default)(r.default.mark(function p(f,d){var m,h,b,S,v=arguments;return r.default.wrap(function(y){for(;;)switch(y.prev=y.next){case 0:if(m=v.length>2&&v[2]!==void 0?v[2]:{},c(f),["Enabled","Suspended"].includes(d)){y.next=4;break}throw new Error("status must be Enabled or Suspended");case 4:return h=this._bucketRequestParams("PUT",f,"versioning",m),b={VersioningConfiguration:{Status:d}},h.mime="xml",h.content=t(b,{headers:!0}),y.next=10,this.request(h);case 10:return S=y.sent,y.abrupt("return",{res:S.res,status:S.status});case 12:case"end":return y.stop()}},p,this)}));function o(p,f){return n.apply(this,arguments)}return o}()},{"../utils/checkBucketName":50,"../utils/obj2xml":69,"@babel/runtime/helpers/asyncToGenerator":73,"@babel/runtime/helpers/interopRequireDefault":74,"@babel/runtime/regenerator":76,"core-js/modules/es.array.includes.js":246}],23:[function(e,w,g){var a=e("@babel/runtime/helpers/interopRequireDefault"),r=a(e("@babel/runtime/regenerator")),u=a(e("@babel/runtime/helpers/asyncToGenerator")),l=e("../utils/checkBucketName"),c=l.checkBucketName,s=e("../utils/obj2xml"),t=s.obj2xml,i=e("../utils/isArray"),n=i.isArray,o=g;o.putBucketWebsite=function(){var p=(0,u.default)(r.default.mark(function d(m){var h,b,S,v,j,y,x,O=arguments;return r.default.wrap(function(E){for(;;)switch(E.prev=E.next){case 0:if(h=O.length>1&&O[1]!==void 0?O[1]:{},b=O.length>2?O[2]:void 0,c(m),S=this._bucketRequestParams("PUT",m,"website",b),v={Suffix:h.index||"index.html"},j={IndexDocument:v},y={WebsiteConfiguration:j},h.supportSubDir&&(v.SupportSubDir=h.supportSubDir),h.type&&(v.Type=h.type),h.error&&(j.ErrorDocument={Key:h.error}),h.routingRules===void 0){E.next=14;break}if(n(h.routingRules)){E.next=13;break}throw new Error("RoutingRules must be Array");case 13:j.RoutingRules={RoutingRule:h.routingRules};case 14:return y=t(y),S.content=y,S.mime="xml",S.successStatuses=[200],E.next=20,this.request(S);case 20:return x=E.sent,E.abrupt("return",{res:x.res});case 22:case"end":return E.stop()}},d,this)}));function f(d){return p.apply(this,arguments)}return f}()},{"../utils/checkBucketName":50,"../utils/isArray":61,"../utils/obj2xml":69,"@babel/runtime/helpers/asyncToGenerator":73,"@babel/runtime/helpers/interopRequireDefault":74,"@babel/runtime/regenerator":76}],24:[function(e,w,g){(function(a){(function(){e("core-js/modules/es.object.to-string.js"),e("core-js/modules/es.regexp.to-string.js"),e("core-js/modules/web.dom-collections.for-each.js"),e("core-js/modules/es.object.keys.js"),g.encodeCallback=function(u,l){if(u.headers=u.headers||{},!Object.prototype.hasOwnProperty.call(u.headers,"x-oss-callback")&&l.callback){var c={callbackUrl:encodeURI(l.callback.url),callbackBody:l.callback.body};l.callback.host&&(c.callbackHost=l.callback.host),l.callback.contentType&&(c.callbackBodyType=l.callback.contentType);var s=a.from(JSON.stringify(c)).toString("base64");if(u.headers["x-oss-callback"]=s,l.callback.customValue){var t={};Object.keys(l.callback.customValue).forEach(function(i){t["x:".concat(i)]=l.callback.customValue[i]}),u.headers["x-oss-callback-var"]=a.from(JSON.stringify(t)).toString("base64")}}}}).call(this)}).call(this,e("buffer").Buffer)},{buffer:85,"core-js/modules/es.object.keys.js":257,"core-js/modules/es.object.to-string.js":258,"core-js/modules/es.regexp.to-string.js":262,"core-js/modules/web.dom-collections.for-each.js":296}],25:[function(e,w,g){e("core-js/modules/es.array.concat.js"),e("core-js/modules/es.regexp.exec.js"),e("core-js/modules/es.string.replace.js"),e("core-js/modules/web.dom-collections.for-each.js");var a=function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(g,"__esModule",{value:!0}),g.getReqUrl=void 0;var r=a(e("copy-to")),u=a(e("url")),l=a(e("merge-descriptors")),c=a(e("is-type-of")),s=e("../utils/isIP"),t=e("../utils/checkConfigValid");function i(n){var o={},p=this.options.cname;t.checkConfigValid(this.options.endpoint,"endpoint"),r.default(this.options.endpoint,!1).to(o),n.bucket&&!p&&!s.isIP(o.hostname)&&!this.options.sldEnable&&(o.host="".concat(n.bucket,".").concat(o.host));var f="/";n.bucket&&this.options.sldEnable&&(f+="".concat(n.bucket,"/")),n.object&&(f+=this._escape(n.object).replace(/\+/g,"%2B")),o.pathname=f;var d={};if(n.query&&l.default(d,n.query),n.subres){var m={};c.default.string(n.subres)?m[n.subres]="":c.default.array(n.subres)?n.subres.forEach(function(h){m[h]=""}):m=n.subres,l.default(d,m)}return o.query=d,u.default.format(o)}g.getReqUrl=i},{"../utils/checkConfigValid":51,"../utils/isIP":66,"copy-to":88,"core-js/modules/es.array.concat.js":241,"core-js/modules/es.regexp.exec.js":261,"core-js/modules/es.string.replace.js":266,"core-js/modules/web.dom-collections.for-each.js":296,"is-type-of":398,"merge-descriptors":315,url:404}],26:[function(e,w,g){e("core-js/modules/es.array.concat.js"),e("core-js/modules/es.object.assign.js"),e("core-js/modules/es.string.trim.js");var a=e("humanize-ms"),r=e("url"),u=e("../utils/checkBucketName"),l=u.checkBucketName,c=e("../utils/setRegion"),s=c.setRegion,t=e("../utils/checkConfigValid"),i=t.checkConfigValid;function n(o,p){i(o,"endpoint");var f=r.parse(o);if(f.protocol||(f=r.parse("http".concat(p?"s":"","://").concat(o))),f.protocol!=="http:"&&f.protocol!=="https:")throw new Error("Endpoint protocol must be http or https.");return f}w.exports=function(o){if(!o||!o.accessKeyId||!o.accessKeySecret)throw new Error("require accessKeyId, accessKeySecret");o.stsToken&&!o.refreshSTSToken&&!o.refreshSTSTokenInterval&&console.warn("It's recommended to set 'refreshSTSToken' and 'refreshSTSTokenInterval' to refresh stsToken\u3001accessKeyId\u3001accessKeySecret automatically when sts token has expired"),o.bucket&&l(o.bucket);var p=Object.assign({region:"oss-cn-hangzhou",internal:!1,secure:!1,timeout:6e4,bucket:null,endpoint:null,cname:!1,isRequestPay:!1,sldEnable:!1,headerEncoding:"utf-8",refreshSTSToken:null,refreshSTSTokenInterval:6e4*5,retryMax:0},o);if(p.accessKeyId=p.accessKeyId.trim(),p.accessKeySecret=p.accessKeySecret.trim(),p.timeout&&(p.timeout=a(p.timeout)),p.endpoint)p.endpoint=n(p.endpoint,p.secure);else if(p.region)p.endpoint=s(p.region,p.internal,p.secure);else throw new Error("require options.endpoint or options.region");return p.inited=!0,p}},{"../utils/checkBucketName":50,"../utils/checkConfigValid":51,"../utils/setRegion":71,"core-js/modules/es.array.concat.js":241,"core-js/modules/es.object.assign.js":255,"core-js/modules/es.string.trim.js":269,"humanize-ms":303,url:404}],27:[function(e,w,g){var a=e("merge-descriptors"),r=g;a(r,e("./processObjectSave"))},{"./processObjectSave":28,"merge-descriptors":315}],28:[function(e,w,g){var a=e("@babel/runtime/helpers/interopRequireDefault"),r=a(e("@babel/runtime/regenerator"));e("core-js/modules/es.array.concat.js");var u=a(e("@babel/runtime/helpers/asyncToGenerator")),l=e("../utils/checkBucketName"),c=l.checkBucketName,s=e("querystring"),t=e("js-base64"),i=t.Base64.encode,n=g;n.processObjectSave=function(){var p=(0,u.default)(r.default.mark(function d(m,h,b,S){var v,j,y,x;return r.default.wrap(function(A){for(;;)switch(A.prev=A.next){case 0:return o(m,"sourceObject"),o(h,"targetObject"),o(b,"process"),h=this._objectName(h),S&&c(S),v=this._objectRequestParams("POST",m,{subres:"x-oss-process"}),j=S?",b_".concat(i(S)):"",h=i(h),y={"x-oss-process":"".concat(b,"|sys/saveas,o_").concat(h).concat(j)},v.content=s.stringify(y),A.next=12,this.request(v);case 12:return x=A.sent,A.abrupt("return",{res:x.res,status:x.res.status});case 14:case"end":return A.stop()}},d,this)}));function f(d,m,h,b){return p.apply(this,arguments)}return f}();function o(p,f){if(!p)throw new Error("".concat(f," is required"));if(typeof p!="string")throw new Error("".concat(f," must be String"))}},{"../utils/checkBucketName":50,"@babel/runtime/helpers/asyncToGenerator":73,"@babel/runtime/helpers/interopRequireDefault":74,"@babel/runtime/regenerator":76,"core-js/modules/es.array.concat.js":241,"js-base64":314,querystring:328}],29:[function(e,w,g){var a=e("@babel/runtime/helpers/interopRequireDefault"),r=a(e("@babel/runtime/regenerator"));e("core-js/modules/es.array.concat.js"),e("core-js/modules/es.function.name.js"),e("core-js/modules/es.object.to-string.js"),e("core-js/modules/es.promise.js"),e("core-js/modules/es.array.from.js"),e("core-js/modules/es.string.iterator.js"),e("core-js/modules/es.array.map.js"),e("core-js/modules/es.array.filter.js"),e("core-js/modules/es.array.find.js"),e("core-js/modules/es.regexp.to-string.js");var u=a(e("@babel/runtime/helpers/asyncToGenerator")),l=e("debug")("ali-oss:multipart-copy"),c=e("copy-to"),s=g;s.uploadPartCopy=function(){var t=(0,u.default)(r.default.mark(function n(o,p,f,d,m){var h,b,S,v,j,y=arguments;return r.default.wrap(function(O){for(;;)switch(O.prev=O.next){case 0:return h=y.length>5&&y[5]!==void 0?y[5]:{},h.headers=h.headers||{},b=h.versionId||h.subres&&h.subres.versionId||null,b?S="/".concat(m.sourceBucketName,"/").concat(encodeURIComponent(m.sourceKey),"?versionId=").concat(b):S="/".concat(m.sourceBucketName,"/").concat(encodeURIComponent(m.sourceKey)),h.headers["x-oss-copy-source"]=S,d&&(h.headers["x-oss-copy-source-range"]="bytes=".concat(d)),h.subres={partNumber:f,uploadId:p},v=this._objectRequestParams("PUT",o,h),v.mime=h.mime,v.successStatuses=[200],O.next=12,this.request(v);case 12:return j=O.sent,O.abrupt("return",{name:o,etag:j.res.headers.etag,res:j.res});case 14:case"end":return O.stop()}},n,this)}));function i(n,o,p,f,d){return t.apply(this,arguments)}return i}(),s.multipartUploadCopy=function(){var t=(0,u.default)(r.default.mark(function n(o,p){var f,d,m,h,b,S,v,j,y,x,O,A,E=arguments;return r.default.wrap(function(T){for(;;)switch(T.prev=T.next){case 0:return f=E.length>2&&E[2]!==void 0?E[2]:{},this.resetCancelFlag(),d=f.versionId,m=d===void 0?null:d,h={versionId:m},T.next=6,this._getObjectMeta(p.sourceBucketName,p.sourceKey,h);case 6:if(b=T.sent,S=b.res.headers["content-length"],p.startOffset=p.startOffset||0,p.endOffset=p.endOffset||S,!(f.checkpoint&&f.checkpoint.uploadId)){T.next=14;break}return T.next=13,this._resumeMultipartCopy(f.checkpoint,p,f);case 13:return T.abrupt("return",T.sent);case 14:if(v=102400,j=p.endOffset-p.startOffset,!(j0)){G.next=40;break}throw re=L[0],re.message="Failed to copy some parts with error: ".concat(re.toString()," part_num: ").concat(re.partNum),re;case 40:return G.next=42,this.completeMultipartUpload(y,v,j,f);case 42:return G.abrupt("return",G.sent);case 43:case"end":return G.stop()}},n,this)}));function i(n,o,p){return t.apply(this,arguments)}return i}(),s._divideMultipartCopyParts=function(i,n,o){for(var p=Math.ceil(i/n),f=[],d=0;d + +`,x=0;x +`,y+="".concat(O.number,` +`),y+="".concat(O.etag,` +`),y+=` +`;return y+="",v=v||{},A={},A=i(v,function(W){if(o(W))return null}),A.headers&&delete A.headers["x-oss-server-side-encryption"],A.subres={uploadId:b},E=this._objectRequestParams("POST",h,A),s.encodeCallback(E,A),E.mime="xml",E.content=y,E.headers&&E.headers["x-oss-callback"]||(E.xmlResponse=!0),E.successStatuses=[200],F.next=17,this.request(E);case 17:return _=F.sent,T={res:_.res,bucket:E.bucket,name:h,etag:_.res.headers.etag},E.headers&&E.headers["x-oss-callback"]&&(T.data=JSON.parse(_.data.toString())),F.abrupt("return",T);case 21:case"end":return F.stop()}},m,this)}));function d(m,h,b,S){return f.apply(this,arguments)}return d}(),p._uploadPart=function(){var f=(0,l.default)(u.default.mark(function m(h,b,S,v,j){var y,x,O,A;return u.default.wrap(function(_){for(;;)switch(_.prev=_.next){case 0:return j=j||{},y={},c(j).to(y),y.headers={"Content-Length":v.size},y.subres={partNumber:S,uploadId:b},x=this._objectRequestParams("PUT",h,y),x.mime=y.mime,O=a&&a.browser,O?x.content=v.content:x.stream=v.stream,x.successStatuses=[200],x.disabledMD5=j.disabledMD5,_.next=13,this.request(x);case 13:if(A=_.sent,A.res.headers.etag){_.next=16;break}throw new Error(`Please set the etag of expose-headers in OSS + https://help.aliyun.com/document_detail/32069.html`);case 16:return v.stream&&(v.stream=null,x.stream=null),_.abrupt("return",{name:h,etag:A.res.headers.etag,res:A.res});case 18:case"end":return _.stop()}},m,this)}));function d(m,h,b,S,v){return f.apply(this,arguments)}return d}()}).call(this)}).call(this,e("_process"))},{"./callback":24,"./utils/deepCopy":56,"./utils/isBuffer":63,"@babel/runtime/helpers/asyncToGenerator":73,"@babel/runtime/helpers/interopRequireDefault":74,"@babel/runtime/regenerator":76,_process:399,"copy-to":88,"core-js/modules/es.array.concat.js":241,"core-js/modules/es.array.filter.js":243,"core-js/modules/es.array.map.js":249,"core-js/modules/es.array.sort.js":251,"core-js/modules/es.object.to-string.js":258,"core-js/modules/es.regexp.to-string.js":262}],31:[function(e,w,g){var a=e("@babel/runtime/helpers/interopRequireDefault"),r=a(e("@babel/runtime/regenerator"));e("core-js/modules/web.dom-collections.for-each.js"),e("core-js/modules/es.object.keys.js"),e("core-js/modules/es.array.find.js"),e("core-js/modules/es.array.includes.js"),e("core-js/modules/es.array.concat.js"),e("core-js/modules/es.regexp.exec.js"),e("core-js/modules/es.string.replace.js");var u=a(e("@babel/runtime/helpers/typeof")),l=a(e("@babel/runtime/helpers/asyncToGenerator")),c=e("../utils/checkBucketName"),s=c.checkBucketName,t=g,i=["content-type","content-encoding","content-language","content-disposition","cache-control","expires"];t.copy=function(){var n=(0,l.default)(r.default.mark(function p(f,d,m,h){var b,S,v;return r.default.wrap(function(y){for(;;)switch(y.prev=y.next){case 0:return(0,u.default)(m)==="object"&&(h=m),h=h||{},h.headers=h.headers||{},Object.keys(h.headers).forEach(function(x){h.headers["x-oss-copy-source-".concat(x.toLowerCase())]=h.headers[x]}),(h.meta||Object.keys(h.headers).find(function(x){return i.includes(x.toLowerCase())}))&&(h.headers["x-oss-metadata-directive"]="REPLACE"),this._convertMetaToHeaders(h.meta,h.headers),d=this._getSourceName(d,m),h.versionId&&(d="".concat(d,"?versionId=").concat(h.versionId)),h.headers["x-oss-copy-source"]=d,b=this._objectRequestParams("PUT",f,h),b.xmlResponse=!0,b.successStatuses=[200,304],y.next=14,this.request(b);case 14:return S=y.sent,v=S.data,v&&(v={etag:v.ETag,lastModified:v.LastModified}),y.abrupt("return",{data:v,res:S.res});case 18:case"end":return y.stop()}},p,this)}));function o(p,f,d,m){return n.apply(this,arguments)}return o}(),t._getSourceName=function(o,p){return typeof p=="string"?o=this._objectName(o):o[0]!=="/"?p=this.options.bucket:(p=o.replace(/\/(.+?)(\/.*)/,"$1"),o=o.replace(/(\/.+?\/)(.*)/,"$2")),s(p),o=encodeURIComponent(o),o="/".concat(p,"/").concat(o),o}},{"../utils/checkBucketName":50,"@babel/runtime/helpers/asyncToGenerator":73,"@babel/runtime/helpers/interopRequireDefault":74,"@babel/runtime/helpers/typeof":75,"@babel/runtime/regenerator":76,"core-js/modules/es.array.concat.js":241,"core-js/modules/es.array.find.js":244,"core-js/modules/es.array.includes.js":246,"core-js/modules/es.object.keys.js":257,"core-js/modules/es.regexp.exec.js":261,"core-js/modules/es.string.replace.js":266,"core-js/modules/web.dom-collections.for-each.js":296}],32:[function(e,w,g){var a=e("@babel/runtime/helpers/interopRequireDefault"),r=a(e("@babel/runtime/regenerator"));e("core-js/modules/es.object.assign.js");var u=a(e("@babel/runtime/helpers/asyncToGenerator")),l=g;l.delete=function(){var c=(0,u.default)(r.default.mark(function t(i){var n,o,p,f=arguments;return r.default.wrap(function(m){for(;;)switch(m.prev=m.next){case 0:return n=f.length>1&&f[1]!==void 0?f[1]:{},n.subres=Object.assign({},n.subres),n.versionId&&(n.subres.versionId=n.versionId),o=this._objectRequestParams("DELETE",i,n),o.successStatuses=[204],m.next=7,this.request(o);case 7:return p=m.sent,m.abrupt("return",{res:p.res});case 9:case"end":return m.stop()}},t,this)}));function s(t){return c.apply(this,arguments)}return s}()},{"@babel/runtime/helpers/asyncToGenerator":73,"@babel/runtime/helpers/interopRequireDefault":74,"@babel/runtime/regenerator":76,"core-js/modules/es.object.assign.js":255}],33:[function(e,w,g){var a=e("@babel/runtime/helpers/interopRequireDefault"),r=a(e("@babel/runtime/regenerator"));e("core-js/modules/es.object.assign.js");var u=a(e("@babel/runtime/helpers/asyncToGenerator")),l=e("utility"),c=e("../utils/obj2xml"),s=c.obj2xml,t=g;t.deleteMulti=function(){var i=(0,u.default)(r.default.mark(function o(p){var f,d,m,h,b,S,v,j,y,x,O,A,E,_=arguments;return r.default.wrap(function(k){for(;;)switch(k.prev=k.next){case 0:if(f=_.length>1&&_[1]!==void 0?_[1]:{},d=[],!(!p||!p.length)){k.next=4;break}throw new Error("names is required");case 4:for(m=0;m1&&f[1]!==void 0?f[1]:{},n.subres=Object.assign({tagging:""},n.subres),n.versionId&&(n.subres.versionId=n.versionId),i=this._objectName(i),o=this._objectRequestParams("DELETE",i,n),o.successStatuses=[204],m.next=8,this.request(o);case 8:return p=m.sent,m.abrupt("return",{status:p.status,res:p.res});case 10:case"end":return m.stop()}},t,this)}));function s(t){return c.apply(this,arguments)}return s}()},{"@babel/runtime/helpers/asyncToGenerator":73,"@babel/runtime/helpers/interopRequireDefault":74,"@babel/runtime/regenerator":76,"core-js/modules/es.object.assign.js":255}],35:[function(e,w,g){e("core-js/modules/es.array.concat.js");var a=e("url"),r=e("../utils/isIP"),u=r.isIP,l=g;l.generateObjectUrl=function(s,t){if(u(this.options.endpoint.hostname))throw new Error("can not get the object URL when endpoint is IP");if(t)t[t.length-1]!=="/"&&(t+="/");else{t=this.options.endpoint.format();var i=a.parse(t),n=this.options.bucket;i.hostname="".concat(n,".").concat(i.hostname),i.host="".concat(n,".").concat(i.host),t=i.format()}return t+this._escape(this._objectName(s))}},{"../utils/isIP":66,"core-js/modules/es.array.concat.js":241,url:404}],36:[function(e,w,g){(function(a){(function(){var r=e("@babel/runtime/helpers/interopRequireDefault"),u=r(e("@babel/runtime/regenerator"));e("core-js/modules/es.object.assign.js");var l=r(e("@babel/runtime/helpers/asyncToGenerator")),c=e("fs"),s=e("is-type-of"),t=g;t.get=function(){var i=(0,l.default)(u.default.mark(function o(p,f){var d,m,h,b,S,v,j,y,x=arguments;return u.default.wrap(function(A){for(;;)switch(A.prev=A.next){case 0:return d=x.length>2&&x[2]!==void 0?x[2]:{},m=null,h=!1,s.writableStream(f)?m=f:s.string(f)?(m=c.createWriteStream(f),h=!0):d=f,d=d||{},b=a&&a.browser,S=d.responseCacheControl===null?"":"no-cache",v=b&&S?{"response-cache-control":S}:{},d.subres=Object.assign(v,d.subres),d.versionId&&(d.subres.versionId=d.versionId),d.process&&(d.subres["x-oss-process"]=d.process),A.prev=11,y=this._objectRequestParams("GET",p,d),y.writeStream=m,y.successStatuses=[200,206,304],A.next=17,this.request(y);case 17:j=A.sent,h&&m.destroy(),A.next=28;break;case 21:if(A.prev=21,A.t0=A.catch(11),!h){A.next=27;break}return m.destroy(),A.next=27,this._deleteFileSafe(f);case 27:throw A.t0;case 28:return A.abrupt("return",{res:j.res,content:j.data});case 29:case"end":return A.stop()}},o,this,[[11,21]])}));function n(o,p){return i.apply(this,arguments)}return n}()}).call(this)}).call(this,e("_process"))},{"@babel/runtime/helpers/asyncToGenerator":73,"@babel/runtime/helpers/interopRequireDefault":74,"@babel/runtime/regenerator":76,_process:399,"core-js/modules/es.object.assign.js":255,fs:84,"is-type-of":398}],37:[function(e,w,g){var a=e("@babel/runtime/helpers/interopRequireDefault"),r=a(e("@babel/runtime/regenerator"));e("core-js/modules/es.object.assign.js");var u=a(e("@babel/runtime/helpers/asyncToGenerator")),l=g;l.getACL=function(){var c=(0,u.default)(r.default.mark(function t(i){var n,o,p,f=arguments;return r.default.wrap(function(m){for(;;)switch(m.prev=m.next){case 0:return n=f.length>1&&f[1]!==void 0?f[1]:{},n.subres=Object.assign({acl:""},n.subres),n.versionId&&(n.subres.versionId=n.versionId),i=this._objectName(i),o=this._objectRequestParams("GET",i,n),o.successStatuses=[200],o.xmlResponse=!0,m.next=9,this.request(o);case 9:return p=m.sent,m.abrupt("return",{acl:p.data.AccessControlList.Grant,owner:{id:p.data.Owner.ID,displayName:p.data.Owner.DisplayName},res:p.res});case 11:case"end":return m.stop()}},t,this)}));function s(t){return c.apply(this,arguments)}return s}()},{"@babel/runtime/helpers/asyncToGenerator":73,"@babel/runtime/helpers/interopRequireDefault":74,"@babel/runtime/regenerator":76,"core-js/modules/es.object.assign.js":255}],38:[function(e,w,g){var a=e("@babel/runtime/helpers/interopRequireDefault"),r=a(e("@babel/runtime/regenerator"));e("core-js/modules/es.regexp.exec.js"),e("core-js/modules/es.string.replace.js"),e("core-js/modules/web.dom-collections.for-each.js"),e("core-js/modules/es.object.keys.js"),e("core-js/modules/es.object.assign.js"),e("core-js/modules/es.array.map.js"),e("core-js/modules/es.number.constructor.js");var u=a(e("@babel/runtime/helpers/asyncToGenerator")),l=g,c=e("../utils/isObject"),s=c.isObject,t=e("../utils/isArray"),i=t.isArray;l.getBucketVersions=n,l.listObjectVersions=n;function n(){return o.apply(this,arguments)}function o(){return o=(0,u.default)(r.default.mark(function d(){var m,h,b,S,v,j,y,x,O=arguments;return r.default.wrap(function(E){for(;;)switch(E.prev=E.next){case 0:if(m=O.length>0&&O[0]!==void 0?O[0]:{},h=O.length>1&&O[1]!==void 0?O[1]:{},!(m.versionIdMarker&&m.keyMarker===void 0)){E.next=4;break}throw new Error("A version-id marker cannot be specified without a key marker");case 4:return h.subres=Object.assign({versions:""},h.subres),h.versionId&&(h.subres.versionId=h.versionId),b=this._objectRequestParams("GET","",h),b.xmlResponse=!0,b.successStatuses=[200],b.query=f(m),E.next=12,this.request(b);case 12:return S=E.sent,v=S.data.Version||[],j=S.data.DeleteMarker||[],y=this,v&&(Array.isArray(v)||(v=[v]),v=v.map(function(_){return{name:_.Key,url:y._objectUrl(_.Key),lastModified:_.LastModified,isLatest:_.IsLatest==="true",versionId:_.VersionId,etag:_.ETag,type:_.Type,size:Number(_.Size),storageClass:_.StorageClass,owner:{id:_.Owner.ID,displayName:_.Owner.DisplayName}}})),j&&(i(j)||(j=[j]),j=j.map(function(_){return{name:_.Key,lastModified:_.LastModified,versionId:_.VersionId,owner:{id:_.Owner.ID,displayName:_.Owner.DisplayName}}})),x=S.data.CommonPrefixes||null,x&&(i(x)||(x=[x]),x=x.map(function(_){return _.Prefix})),E.abrupt("return",{res:S.res,objects:v,deleteMarker:j,prefixes:x,nextMarker:S.data.NextKeyMarker||null,NextVersionIdMarker:S.data.NextVersionIdMarker||null,nextKeyMarker:S.data.NextKeyMarker||null,nextVersionIdMarker:S.data.NextVersionIdMarker||null,isTruncated:S.data.IsTruncated==="true"});case 21:case"end":return E.stop()}},d,this)})),o.apply(this,arguments)}function p(d){return d.replace(/([A-Z])/g,"-$1").toLowerCase()}function f(){var d=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},m={};return s(d)&&Object.keys(d).forEach(function(h){m[p(h)]=d[h]}),m}},{"../utils/isArray":61,"../utils/isObject":67,"@babel/runtime/helpers/asyncToGenerator":73,"@babel/runtime/helpers/interopRequireDefault":74,"@babel/runtime/regenerator":76,"core-js/modules/es.array.map.js":249,"core-js/modules/es.number.constructor.js":254,"core-js/modules/es.object.assign.js":255,"core-js/modules/es.object.keys.js":257,"core-js/modules/es.regexp.exec.js":261,"core-js/modules/es.string.replace.js":266,"core-js/modules/web.dom-collections.for-each.js":296}],39:[function(e,w,g){var a=e("@babel/runtime/helpers/interopRequireDefault"),r=a(e("@babel/runtime/regenerator"));e("core-js/modules/es.object.assign.js");var u=a(e("@babel/runtime/helpers/asyncToGenerator")),l=g;l.getObjectMeta=function(){var c=(0,u.default)(r.default.mark(function t(i,n){var o,p;return r.default.wrap(function(d){for(;;)switch(d.prev=d.next){case 0:return n=n||{},i=this._objectName(i),n.subres=Object.assign({objectMeta:""},n.subres),n.versionId&&(n.subres.versionId=n.versionId),o=this._objectRequestParams("HEAD",i,n),o.successStatuses=[200],d.next=8,this.request(o);case 8:return p=d.sent,d.abrupt("return",{status:p.status,res:p.res});case 10:case"end":return d.stop()}},t,this)}));function s(t,i){return c.apply(this,arguments)}return s}()},{"@babel/runtime/helpers/asyncToGenerator":73,"@babel/runtime/helpers/interopRequireDefault":74,"@babel/runtime/regenerator":76,"core-js/modules/es.object.assign.js":255}],40:[function(e,w,g){var a=e("@babel/runtime/helpers/interopRequireDefault"),r=a(e("@babel/runtime/regenerator"));e("core-js/modules/es.object.assign.js"),e("core-js/modules/web.dom-collections.for-each.js");var u=a(e("@babel/runtime/helpers/asyncToGenerator")),l=g,c=e("../utils/isObject"),s=c.isObject;l.getObjectTagging=function(){var t=(0,u.default)(r.default.mark(function n(o){var p,f,d,m,h,b,S=arguments;return r.default.wrap(function(j){for(;;)switch(j.prev=j.next){case 0:return p=S.length>1&&S[1]!==void 0?S[1]:{},p.subres=Object.assign({tagging:""},p.subres),p.versionId&&(p.subres.versionId=p.versionId),o=this._objectName(o),f=this._objectRequestParams("GET",o,p),f.successStatuses=[200],j.next=8,this.request(f);case 8:return d=j.sent,j.next=11,this.parseXML(d.data);case 11:return m=j.sent,h=m.TagSet.Tag,h=h&&s(h)?[h]:h||[],b={},h.forEach(function(y){b[y.Key]=y.Value}),j.abrupt("return",{status:d.status,res:d.res,tag:b});case 17:case"end":return j.stop()}},n,this)}));function i(n){return t.apply(this,arguments)}return i}()},{"../utils/isObject":67,"@babel/runtime/helpers/asyncToGenerator":73,"@babel/runtime/helpers/interopRequireDefault":74,"@babel/runtime/regenerator":76,"core-js/modules/es.object.assign.js":255,"core-js/modules/web.dom-collections.for-each.js":296}],41:[function(e,w,g){var a=e("../utils/isIP"),r=a.isIP,u=g;u.getObjectUrl=function(c,s){if(r(this.options.endpoint.hostname))throw new Error("can not get the object URL when endpoint is IP");return s?s[s.length-1]!=="/"&&(s+="/"):s=this.options.endpoint.format(),s+this._escape(this._objectName(c))}},{"../utils/isIP":66}],42:[function(e,w,g){var a=e("@babel/runtime/helpers/interopRequireDefault"),r=a(e("@babel/runtime/regenerator"));e("core-js/modules/es.object.assign.js");var u=a(e("@babel/runtime/helpers/asyncToGenerator")),l=g;l.getSymlink=function(){var c=(0,u.default)(r.default.mark(function t(i){var n,o,p,f,d=arguments;return r.default.wrap(function(h){for(;;)switch(h.prev=h.next){case 0:return n=d.length>1&&d[1]!==void 0?d[1]:{},n.subres=Object.assign({symlink:""},n.subres),n.versionId&&(n.subres.versionId=n.versionId),i=this._objectName(i),o=this._objectRequestParams("GET",i,n),o.successStatuses=[200],h.next=8,this.request(o);case 8:return p=h.sent,f=p.res.headers["x-oss-symlink-target"],h.abrupt("return",{targetName:decodeURIComponent(f),res:p.res});case 11:case"end":return h.stop()}},t,this)}));function s(t){return c.apply(this,arguments)}return s}()},{"@babel/runtime/helpers/asyncToGenerator":73,"@babel/runtime/helpers/interopRequireDefault":74,"@babel/runtime/regenerator":76,"core-js/modules/es.object.assign.js":255}],43:[function(e,w,g){var a=e("@babel/runtime/helpers/interopRequireDefault"),r=a(e("@babel/runtime/regenerator"));e("core-js/modules/es.object.assign.js"),e("core-js/modules/web.dom-collections.for-each.js"),e("core-js/modules/es.object.keys.js");var u=a(e("@babel/runtime/helpers/asyncToGenerator")),l=g;l.head=function(){var c=(0,u.default)(r.default.mark(function t(i){var n,o,p,f,d=arguments;return r.default.wrap(function(h){for(;;)switch(h.prev=h.next){case 0:return n=d.length>1&&d[1]!==void 0?d[1]:{},n.subres=Object.assign({},n.subres),n.versionId&&(n.subres.versionId=n.versionId),o=this._objectRequestParams("HEAD",i,n),o.successStatuses=[200,304],h.next=7,this.request(o);case 7:return p=h.sent,f={meta:null,res:p.res,status:p.status},p.status===200&&Object.keys(p.headers).forEach(function(b){b.indexOf("x-oss-meta-")===0&&(f.meta||(f.meta={}),f.meta[b.substring(11)]=p.headers[b])}),h.abrupt("return",f);case 11:case"end":return h.stop()}},t,this)}));function s(t){return c.apply(this,arguments)}return s}()},{"@babel/runtime/helpers/asyncToGenerator":73,"@babel/runtime/helpers/interopRequireDefault":74,"@babel/runtime/regenerator":76,"core-js/modules/es.object.assign.js":255,"core-js/modules/es.object.keys.js":257,"core-js/modules/web.dom-collections.for-each.js":296}],44:[function(e,w,g){var a=e("@babel/runtime/helpers/interopRequireDefault"),r=a(e("@babel/runtime/regenerator"));e("core-js/modules/es.object.assign.js");var u=a(e("@babel/runtime/helpers/asyncToGenerator")),l=g;l.putACL=function(){var c=(0,u.default)(r.default.mark(function t(i,n,o){var p,f;return r.default.wrap(function(m){for(;;)switch(m.prev=m.next){case 0:return o=o||{},o.subres=Object.assign({acl:""},o.subres),o.versionId&&(o.subres.versionId=o.versionId),o.headers=o.headers||{},o.headers["x-oss-object-acl"]=n,i=this._objectName(i),p=this._objectRequestParams("PUT",i,o),p.successStatuses=[200],m.next=10,this.request(p);case 10:return f=m.sent,m.abrupt("return",{res:f.res});case 12:case"end":return m.stop()}},t,this)}));function s(t,i,n){return c.apply(this,arguments)}return s}()},{"@babel/runtime/helpers/asyncToGenerator":73,"@babel/runtime/helpers/interopRequireDefault":74,"@babel/runtime/regenerator":76,"core-js/modules/es.object.assign.js":255}],45:[function(e,w,g){var a=e("@babel/runtime/helpers/interopRequireDefault"),r=a(e("@babel/runtime/regenerator"));e("core-js/modules/es.object.assign.js"),e("core-js/modules/es.array.map.js"),e("core-js/modules/es.object.keys.js");var u=a(e("@babel/runtime/helpers/asyncToGenerator")),l=e("../utils/obj2xml"),c=l.obj2xml,s=e("../utils/checkObjectTag"),t=s.checkObjectTag,i=g;i.putObjectTagging=function(){var n=(0,u.default)(r.default.mark(function p(f,d){var m,h,b,S,v=arguments;return r.default.wrap(function(y){for(;;)switch(y.prev=y.next){case 0:return m=v.length>2&&v[2]!==void 0?v[2]:{},t(d),m.subres=Object.assign({tagging:""},m.subres),m.versionId&&(m.subres.versionId=m.versionId),f=this._objectName(f),h=this._objectRequestParams("PUT",f,m),h.successStatuses=[200],d=Object.keys(d).map(function(x){return{Key:x,Value:d[x]}}),b={Tagging:{TagSet:{Tag:d}}},h.mime="xml",h.content=c(b),y.next=13,this.request(h);case 13:return S=y.sent,y.abrupt("return",{res:S.res,status:S.status});case 15:case"end":return y.stop()}},p,this)}));function o(p,f){return n.apply(this,arguments)}return o}()},{"../utils/checkObjectTag":52,"../utils/obj2xml":69,"@babel/runtime/helpers/asyncToGenerator":73,"@babel/runtime/helpers/interopRequireDefault":74,"@babel/runtime/regenerator":76,"core-js/modules/es.array.map.js":249,"core-js/modules/es.object.assign.js":255,"core-js/modules/es.object.keys.js":257}],46:[function(e,w,g){var a=e("@babel/runtime/helpers/interopRequireDefault"),r=a(e("@babel/runtime/regenerator"));e("core-js/modules/es.object.assign.js");var u=a(e("@babel/runtime/helpers/asyncToGenerator")),l=g;l.putSymlink=function(){var c=(0,u.default)(r.default.mark(function t(i,n,o){var p,f;return r.default.wrap(function(m){for(;;)switch(m.prev=m.next){case 0:return o=o||{},o.headers=o.headers||{},n=this._escape(this._objectName(n)),this._convertMetaToHeaders(o.meta,o.headers),o.headers["x-oss-symlink-target"]=n,o.subres=Object.assign({symlink:""},o.subres),o.versionId&&(o.subres.versionId=o.versionId),o.storageClass&&(o.headers["x-oss-storage-class"]=o.storageClass),i=this._objectName(i),p=this._objectRequestParams("PUT",i,o),p.successStatuses=[200],m.next=13,this.request(p);case 13:return f=m.sent,m.abrupt("return",{res:f.res});case 15:case"end":return m.stop()}},t,this)}));function s(t,i,n){return c.apply(this,arguments)}return s}()},{"@babel/runtime/helpers/asyncToGenerator":73,"@babel/runtime/helpers/interopRequireDefault":74,"@babel/runtime/regenerator":76,"core-js/modules/es.object.assign.js":255}],47:[function(e,w,g){e("core-js/modules/es.object.assign.js");var a=e("url"),r=e("utility"),u=e("copy-to"),l=e("../../common/signUtils"),c=e("../utils/isIP"),s=c.isIP,t=e("../../common/utils/isFunction"),i=t.isFunction,n=e("../utils/setSTSToken"),o=n.checkCredentials,p=e("../utils/formatObjKey"),f=p.formatObjKey,d=g;d.signatureUrl=function(h,b){var S=this;if(s(this.options.endpoint.hostname))throw new Error("can not get the object URL when endpoint is IP");b=b||{},h=this._objectName(h),b.method=b.method||"GET";var v=r.timestamp()+(b.expires||1800),j={bucket:this.options.bucket,object:h},y=this._getResource(j);if(this.options.stsToken&&i(this.options.refreshSTSToken)){var x=new Date;this.stsTokenFreshTime>=this.options.refreshSTSTokenInterval?(this.stsTokenFreshTime=x,this.options.refreshSTSToken().then(function(E){var _=f(E,"firstLowerCase");_.securityToken&&(_.stsToken=_.securityToken),o(_),Object.assign(S.options,_)})):this.stsTokenFreshTime=x}this.options.stsToken&&(b["security-token"]=this.options.stsToken);var O=l._signatureForURL(this.options.accessKeySecret,b,y,v),A=a.parse(this._getReqUrl(j));return A.query={OSSAccessKeyId:this.options.accessKeyId,Expires:v,Signature:O.Signature},u(O.subResource).to(A.query),A.format()}},{"../../common/signUtils":49,"../../common/utils/isFunction":65,"../utils/formatObjKey":59,"../utils/isIP":66,"../utils/setSTSToken":72,"copy-to":88,"core-js/modules/es.object.assign.js":255,url:404,utility:406}],48:[function(e,w,g){var a=e("@babel/runtime/helpers/interopRequireDefault"),r=a(e("@babel/runtime/regenerator"));e("core-js/modules/es.array.iterator.js"),e("core-js/modules/es.object.to-string.js"),e("core-js/modules/es.promise.js"),e("core-js/modules/es.string.iterator.js"),e("core-js/modules/web.dom-collections.iterator.js"),e("core-js/modules/web.dom-collections.for-each.js"),e("core-js/modules/es.function.name.js");var u=a(e("@babel/runtime/helpers/asyncToGenerator")),l=e("./utils/isArray"),c=l.isArray,s=g;s._parallelNode=function(){var t=(0,u.default)(r.default.mark(function n(o,p,f,d){var m,h,b,S,v,j,y,x;return r.default.wrap(function(A){for(;;)switch(A.prev=A.next){case 0:m=this,h=[],b=[],S=o.length/p,v=o.length%p,j=v===0?S:(o.length-v)/p+1,y=1,x=0;case 8:if(!(x0){S=!0,v<=0&&f(d);return}v+=1,x(A.value,m(y))}j=!1}O()})},s.cancel=function(i){this.options.cancelFlag=!0,c(this.multipartUploadStreams)&&this.multipartUploadStreams.forEach(function(n){if(n.destroyed===!1){var o={name:"cancel",message:"cancel"};n.destroy(o)}}),this.multipartUploadStreams=[],i&&this.abortMultipartUpload(i.name,i.uploadId,i.options)},s.isCancel=function(){return this.options.cancelFlag},s.resetCancelFlag=function(){this.options.cancelFlag=!1},s._stop=function(){this.options.cancelFlag=!0},s._makeCancelEvent=function(){var i={status:0,name:"cancel"};return i},s._makeAbortEvent=function(){var i={status:0,name:"abort",message:"upload task has been abort"};return i}},{"./utils/isArray":61,"@babel/runtime/helpers/asyncToGenerator":73,"@babel/runtime/helpers/interopRequireDefault":74,"@babel/runtime/regenerator":76,"core-js/modules/es.array.iterator.js":247,"core-js/modules/es.function.name.js":253,"core-js/modules/es.object.to-string.js":258,"core-js/modules/es.promise.js":259,"core-js/modules/es.string.iterator.js":264,"core-js/modules/web.dom-collections.for-each.js":296,"core-js/modules/web.dom-collections.iterator.js":297}],49:[function(e,w,g){(function(a){(function(){e("core-js/modules/es.string.trim.js"),e("core-js/modules/es.array.sort.js"),e("core-js/modules/es.array.join.js"),e("core-js/modules/web.dom-collections.for-each.js"),e("core-js/modules/es.object.keys.js"),e("core-js/modules/es.array.concat.js"),e("core-js/modules/es.object.to-string.js"),e("core-js/modules/es.regexp.to-string.js");var r=e("./../../shims/crypto/crypto.js"),u=e("is-type-of"),l=e("./utils/lowercaseKeyHeader"),c=l.lowercaseKeyHeader;g.buildCanonicalizedResource=function(t,i){var n="".concat(t),o="?";if(u.string(i)&&i.trim()!=="")n+=o+i;else if(u.array(i))i.sort(),n+=o+i.join("&");else if(i){var p=function(m,h){return m[0]>h[0]?1:m[0]2&&arguments[2]!==void 0?arguments[2]:"utf-8",o=r.createHmac("sha1",t);return o.update(a.from(i,n)).digest("base64")},g.authorization=function(t,i,n,o){return"OSS ".concat(t,":").concat(this.computeSignature(i,n,o))},g._signatureForURL=function(t){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0,o=arguments.length>3?arguments[3]:void 0,p=arguments.length>4?arguments[4]:void 0,f={},d=i.subResource,m=d===void 0?{}:d;if(i.process){var h="x-oss-process";m[h]=i.process}if(i.trafficLimit){var b="x-oss-traffic-limit";m[b]=i.trafficLimit}if(i.response&&Object.keys(i.response).forEach(function(y){var x="response-".concat(y.toLowerCase());m[x]=i.response[y]}),Object.keys(i).forEach(function(y){var x=y.toLowerCase(),O=i[y];x.indexOf("x-oss-")===0?f[x]=O:(x.indexOf("content-md5")===0||x.indexOf("content-type")===0)&&(f[y]=O)}),Object.prototype.hasOwnProperty.call(i,"security-token")&&(m["security-token"]=i["security-token"]),Object.prototype.hasOwnProperty.call(i,"callback")){var S={callbackUrl:encodeURI(i.callback.url),callbackBody:i.callback.body};if(i.callback.host&&(S.callbackHost=i.callback.host),i.callback.contentType&&(S.callbackBodyType=i.callback.contentType),m.callback=a.from(JSON.stringify(S)).toString("base64"),i.callback.customValue){var v={};Object.keys(i.callback.customValue).forEach(function(y){v["x:".concat(y)]=i.callback.customValue[y]}),m["callback-var"]=a.from(JSON.stringify(v)).toString("base64")}}var j=this.buildCanonicalString(i.method,n,{headers:f,parameters:m},o.toString());return{Signature:this.computeSignature(t,j,p),subResource:m}}}).call(this)}).call(this,e("buffer").Buffer)},{"./../../shims/crypto/crypto.js":393,"./utils/lowercaseKeyHeader":68,buffer:85,"core-js/modules/es.array.concat.js":241,"core-js/modules/es.array.join.js":248,"core-js/modules/es.array.sort.js":251,"core-js/modules/es.object.keys.js":257,"core-js/modules/es.object.to-string.js":258,"core-js/modules/es.regexp.to-string.js":262,"core-js/modules/es.string.trim.js":269,"core-js/modules/web.dom-collections.for-each.js":296,"is-type-of":398}],50:[function(e,w,g){Object.defineProperty(g,"__esModule",{value:!0}),g.checkBucketName=void 0,g.checkBucketName=function(a){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,u=r?/^[a-z0-9][a-z0-9-]{1,61}[a-z0-9]$/:/^[a-z0-9_][a-z0-9-_]{1,61}[a-z0-9_]$/;if(!u.test(a))throw new Error("The bucket must be conform to the specifications")}},{}],51:[function(e,w,g){Object.defineProperty(g,"__esModule",{value:!0}),g.checkConfigValid=void 0;var a={endpoint:r,region:/^[a-zA-Z0-9\-_]+$/};function r(u){return typeof u=="string"?/^[a-zA-Z0-9._:/-]+$/.test(u):u.host?/^[a-zA-Z0-9._:/-]+$/.test(u.host):!1}g.checkConfigValid=function(u,l){if(a[l]){var c=!0;if(a[l]instanceof Function?c=a[l](u):c=a[l].test(u),!c)throw new Error("The ".concat(l," must be conform to the specifications"))}}},{}],52:[function(e,w,g){e("core-js/modules/es.array.concat.js"),e("core-js/modules/es.object.entries.js"),e("core-js/modules/web.dom-collections.for-each.js"),Object.defineProperty(g,"__esModule",{value:!0}),g.checkObjectTag=void 0;var a=e("./checkValid"),r=a.checkValid,u=e("./isObject"),l=u.isObject,c=[{validator:function(n){if(typeof n!="string")throw new Error("the key and value of the tag must be String")}},{pattern:/^[a-zA-Z0-9 +-=._:/]+$/,msg:"tag can contain letters, numbers, spaces, and the following symbols: plus sign (+), hyphen (-), equal sign (=), period (.), underscore (_), colon (:), and forward slash (/)"}],s={key:[].concat(c,[{pattern:/^.{1,128}$/,msg:"tag key can be a maximum of 128 bytes in length"}]),value:[].concat(c,[{pattern:/^.{0,256}$/,msg:"tag value can be a maximum of 256 bytes in length"}])};function t(i){if(!l(i))throw new Error("tag must be Object");var n=Object.entries(i);if(n.length>10)throw new Error("maximum of 10 tags for a object");var o=["key","value"];n.forEach(function(p){p.forEach(function(f,d){r(f,s[o[d]])})})}g.checkObjectTag=t},{"./checkValid":53,"./isObject":67,"core-js/modules/es.array.concat.js":241,"core-js/modules/es.object.entries.js":256,"core-js/modules/web.dom-collections.for-each.js":296}],53:[function(e,w,g){e("core-js/modules/web.dom-collections.for-each.js"),Object.defineProperty(g,"__esModule",{value:!0}),g.checkValid=void 0;function a(r,u){u.forEach(function(l){if(l.validator)l.validator(r);else if(l.pattern&&!l.pattern.test(r))throw new Error(l.msg)})}g.checkValid=a},{"core-js/modules/web.dom-collections.for-each.js":296}],54:[function(e,w,g){(function(a){(function(){e("core-js/modules/es.array.includes.js"),e("core-js/modules/es.string.includes.js"),e("core-js/modules/es.object.assign.js"),e("core-js/modules/es.array.concat.js"),Object.defineProperty(g,"__esModule",{value:!0}),g.createRequest=void 0;var r=e("./../../../shims/crypto/crypto.js"),u=e("debug")("ali-oss"),l=e("mime"),c=e("dateformat"),s=e("copy-to"),t=e("path"),i=e("./encoder"),n=i.encoder,o=e("./isIP"),p=o.isIP,f=e("./setRegion"),d=f.setRegion,m=e("../client/getReqUrl"),h=m.getReqUrl;function b(j,y){return j[y]||j[y.toLowerCase()]}function S(j,y){delete j[y],delete j[y.toLowerCase()]}function v(j){var y=new Date;this.options.amendTimeSkewed&&(y=+new Date+this.options.amendTimeSkewed);var x={"x-oss-date":c(y,"UTC:ddd, dd mmm yyyy HH:MM:ss 'GMT'")};typeof window!="undefined"&&(x["x-oss-user-agent"]=this.userAgent),this.userAgent.includes("nodejs")&&(x["User-Agent"]=this.userAgent),this.options.isRequestPay&&Object.assign(x,{"x-oss-request-payer":"requester"}),this.options.stsToken&&(x["x-oss-security-token"]=this.options.stsToken),s(j.headers).to(x),b(x,"Content-Type")||(j.mime&&j.mime.indexOf("/")>0?x["Content-Type"]=j.mime:x["Content-Type"]=l.getType(j.mime||t.extname(j.object||""))),b(x,"Content-Type")||S(x,"Content-Type"),j.content&&(j.disabledMD5||(x["Content-MD5"]=r.createHash("md5").update(a.from(j.content,"utf8")).digest("base64")),x["Content-Length"]||(x["Content-Length"]=j.content.length));var O=Object.prototype.hasOwnProperty;for(var A in x)x[A]&&O.call(x,A)&&(x[A]=n(String(x[A]),this.options.headerEncoding));var E=this._getResource(j);if(x.authorization=this.authorization(j.method,E,j.subres,x,this.options.headerEncoding),p(this.options.endpoint.hostname)){var _=this.options,T=_.region,k=_.internal,F=_.secure,W=d(T,k,F);x.host="".concat(j.bucket,".").concat(W.host)}var V=h.bind(this)(j);u("request %s %s, with headers %j, !!stream: %s",j.method,V,x,!!j.stream);var L=j.timeout||this.options.timeout,Y={method:j.method,content:j.content,stream:j.stream,headers:x,timeout:L,writeStream:j.writeStream,customResponse:j.customResponse,ctx:j.ctx||this.ctx};return this.agent&&(Y.agent=this.agent),this.httpsAgent&&(Y.httpsAgent=this.httpsAgent),Y.enableProxy=!!this.options.enableProxy,Y.proxy=this.options.proxy?this.options.proxy:null,{url:V,params:Y}}g.createRequest=v}).call(this)}).call(this,e("buffer").Buffer)},{"../client/getReqUrl":25,"./../../../shims/crypto/crypto.js":393,"./encoder":57,"./isIP":66,"./setRegion":71,buffer:85,"copy-to":88,"core-js/modules/es.array.concat.js":241,"core-js/modules/es.array.includes.js":246,"core-js/modules/es.object.assign.js":255,"core-js/modules/es.string.includes.js":263,dateformat:299,debug:397,mime:317,path:321}],55:[function(e,w,g){e("core-js/modules/web.dom-collections.for-each.js"),e("core-js/modules/es.object.entries.js"),e("core-js/modules/es.regexp.exec.js"),e("core-js/modules/es.string.replace.js"),e("core-js/modules/es.array.includes.js"),e("core-js/modules/es.object.keys.js"),Object.defineProperty(g,"__esModule",{value:!0}),g.dataFix=void 0;var a=e("./isObject"),r=["true","TRUE","1",1],u=["false","FALSE","0",0];function l(t,i,n){if(!!a.isObject(t)){var o=i.remove,p=o===void 0?[]:o,f=i.rename,d=f===void 0?{}:f,m=i.camel,h=m===void 0?[]:m,b=i.bool,S=b===void 0?[]:b,v=i.lowerFirst,j=v===void 0?!1:v;return p.forEach(function(y){return delete t[y]}),Object.entries(d).forEach(function(y){!t[y[0]]||t[y[1]]||(t[y[1]]=t[y[0]],delete t[y[0]])}),h.forEach(function(y){if(!!t[y]){var x=y.replace(/^(.)/,function(O){return O.toLowerCase()}).replace(/-(\w)/g,function(O,A){return A.toUpperCase()});t[x]||(t[x]=t[y])}}),S.forEach(function(y){t[y]=c(t[y])}),typeof n=="function"&&n(t),s(t,j),l}}g.dataFix=l;function c(t){return t?r.includes(t)?!0:u.includes(t)?!1:t:!1}function s(t,i){i&&Object.keys(t).forEach(function(n){var o=n.replace(/^\w/,function(p){return p.toLowerCase()});typeof t[o]=="undefined"&&(t[o]=t[n],delete t[n])})}},{"./isObject":67,"core-js/modules/es.array.includes.js":246,"core-js/modules/es.object.entries.js":256,"core-js/modules/es.object.keys.js":257,"core-js/modules/es.regexp.exec.js":261,"core-js/modules/es.string.replace.js":266,"core-js/modules/web.dom-collections.for-each.js":296}],56:[function(e,w,g){var a=e("@babel/runtime/helpers/interopRequireDefault");e("core-js/modules/es.array.slice.js"),e("core-js/modules/web.dom-collections.for-each.js"),e("core-js/modules/es.object.keys.js");var r=a(e("@babel/runtime/helpers/typeof"));Object.defineProperty(g,"__esModule",{value:!0}),g.deepCopyWith=g.deepCopy=void 0;var u=e("./isBuffer");g.deepCopy=function(l){if(l===null||(0,r.default)(l)!=="object")return l;if(u.isBuffer(l))return l.slice();var c=Array.isArray(l)?[]:{};return Object.keys(l).forEach(function(s){c[s]=g.deepCopy(l[s])}),c},g.deepCopyWith=function(l,c){function s(t,i,n){var o=c(t,i,n);if(o!==void 0)return o;if(t===null||(0,r.default)(t)!=="object")return t;if(u.isBuffer(t))return t.slice();var p=Array.isArray(t)?[]:{};return Object.keys(t).forEach(function(f){p[f]=s(t[f],f,t)}),p}return c?s(l,"",null):g.deepCopy(l)}},{"./isBuffer":63,"@babel/runtime/helpers/interopRequireDefault":74,"@babel/runtime/helpers/typeof":75,"core-js/modules/es.array.slice.js":250,"core-js/modules/es.object.keys.js":257,"core-js/modules/web.dom-collections.for-each.js":296}],57:[function(e,w,g){(function(a){(function(){e("core-js/modules/es.object.to-string.js"),e("core-js/modules/es.regexp.to-string.js"),Object.defineProperty(g,"__esModule",{value:!0}),g.encoder=void 0;function r(u){var l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"utf-8";return l==="utf-8"?u:a.from(u).toString("latin1")}g.encoder=r}).call(this)}).call(this,e("buffer").Buffer)},{buffer:85,"core-js/modules/es.object.to-string.js":258,"core-js/modules/es.regexp.to-string.js":262}],58:[function(e,w,g){e("core-js/modules/es.array.map.js"),e("core-js/modules/es.regexp.exec.js"),e("core-js/modules/es.string.replace.js"),Object.defineProperty(g,"__esModule",{value:!0}),g.formatInventoryConfig=void 0;var a=e("../utils/dataFix"),r=e("../utils/isObject"),u=e("../utils/isArray"),l=e("../utils/formatObjKey");function c(t){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;return i&&r.isObject(t)&&(t=[t]),u.isArray(t)?t=t.map(s):t=s(t),t}g.formatInventoryConfig=c;function s(t){return a.dataFix(t,{bool:["IsEnabled"]},function(i){var n,o;i.prefix=i.Filter.Prefix,delete i.Filter,i.OSSBucketDestination=i.Destination.OSSBucketDestination,i.OSSBucketDestination.rolename=i.OSSBucketDestination.RoleArn.replace(/.*\//,""),delete i.OSSBucketDestination.RoleArn,i.OSSBucketDestination.bucket=i.OSSBucketDestination.Bucket.replace(/.*:::/,""),delete i.OSSBucketDestination.Bucket,delete i.Destination,i.frequency=i.Schedule.Frequency,delete i.Schedule.Frequency,((n=i==null?void 0:i.OptionalFields)===null||n===void 0?void 0:n.Field)&&!u.isArray((o=i.OptionalFields)===null||o===void 0?void 0:o.Field)&&(i.OptionalFields.Field=[i.OptionalFields.Field])}),t=l.formatObjKey(t,"firstLowerCase",{exclude:["OSSBucketDestination","SSE-OSS","SSE-KMS"]}),t}},{"../utils/dataFix":55,"../utils/formatObjKey":59,"../utils/isArray":61,"../utils/isObject":67,"core-js/modules/es.array.map.js":249,"core-js/modules/es.regexp.exec.js":261,"core-js/modules/es.string.replace.js":266}],59:[function(e,w,g){var a=e("@babel/runtime/helpers/interopRequireDefault");e("core-js/modules/web.dom-collections.for-each.js"),e("core-js/modules/es.object.keys.js"),e("core-js/modules/es.array.includes.js"),e("core-js/modules/es.string.includes.js"),e("core-js/modules/es.regexp.exec.js"),e("core-js/modules/es.string.replace.js");var r=a(e("@babel/runtime/helpers/typeof"));Object.defineProperty(g,"__esModule",{value:!0}),g.formatObjKey=void 0;function u(c,s,t){if(c===null||(0,r.default)(c)!=="object")return c;var i;if(Array.isArray(c)){i=[];for(var n=0;n +`),c&&c.firstUpperCase&&(l=a.formatObjKey(l,"firstUpperCase")),r(l)==="object"?Object.keys(l).forEach(function(t){r(l[t])!=="undefined"&&r(l[t])!=="null"&&(r(l[t])==="string"||r(l[t])==="number"?s+="<".concat(t,">").concat(l[t],""):r(l[t])==="object"?s+="<".concat(t,">").concat(u(l[t]),""):r(l[t])==="array"?s+=l[t].map(function(i){return"<".concat(t,">").concat(u(i),"")}).join(""):s+="<".concat(t,">").concat(l[t].toString(),""))}):s+=l.toString(),s}g.obj2xml=u},{"./formatObjKey":59,"core-js/modules/es.array.concat.js":241,"core-js/modules/es.array.join.js":248,"core-js/modules/es.array.map.js":249,"core-js/modules/es.object.keys.js":257,"core-js/modules/es.object.to-string.js":258,"core-js/modules/es.regexp.exec.js":261,"core-js/modules/es.regexp.to-string.js":262,"core-js/modules/es.string.replace.js":266,"core-js/modules/web.dom-collections.for-each.js":296}],70:[function(e,w,g){e("core-js/modules/es.object.to-string.js"),e("core-js/modules/es.promise.js"),Object.defineProperty(g,"__esModule",{value:!0}),g.retry=void 0;function a(r,u){var l=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},c=0,s=l.retryDelay,t=s===void 0?500:s,i=l.errorHandler,n=i===void 0?function(){return!0}:i,o=function p(){for(var f=arguments.length,d=new Array(f),m=0;m1&&arguments[1]!==void 0?arguments[1]:!1,t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;u.checkConfigValid(c,"region");var i=t?"https://":"http://",n=s?"-internal.aliyuncs.com":".aliyuncs.com",o="vpc100-oss-cn-";return c.substr(0,o.length)===o&&(n=".aliyuncs.com"),r.default.parse(i+c+n)}g.setRegion=l},{"./checkConfigValid":51,url:404}],72:[function(e,w,g){var a=e("@babel/runtime/helpers/interopRequireDefault"),r=a(e("@babel/runtime/regenerator"));e("core-js/modules/es.object.keys.js"),e("core-js/modules/es.array.find.js"),e("core-js/modules/es.object.assign.js");var u=a(e("@babel/runtime/helpers/asyncToGenerator"));Object.defineProperty(g,"__esModule",{value:!0}),g.checkCredentials=g.setSTSToken=void 0;var l=e("./formatObjKey");function c(){return s.apply(this,arguments)}function s(){return s=(0,u.default)(r.default.mark(function i(){var n,o;return r.default.wrap(function(f){for(;;)switch(f.prev=f.next){case 0:if(this.options||(this.options={}),n=new Date,!this.stsTokenFreshTime){f.next=14;break}if(!(+n-this.stsTokenFreshTime>=this.options.refreshSTSTokenInterval)){f.next=12;break}return this.stsTokenFreshTime=n,f.next=7,this.options.refreshSTSToken();case 7:o=f.sent,o=l.formatObjKey(o,"firstLowerCase"),o.securityToken&&(o.stsToken=o.securityToken),t(o),Object.assign(this.options,o);case 12:f.next=15;break;case 14:this.stsTokenFreshTime=n;case 15:return f.abrupt("return",null);case 16:case"end":return f.stop()}},i,this)})),s.apply(this,arguments)}g.setSTSToken=c;function t(i){var n=["accessKeySecret","accessKeyId","stsToken"],o=Object.keys(i);n.forEach(function(p){if(!o.find(function(f){return f===p}))throw Error("refreshSTSToken must return contains ".concat(p))})}g.checkCredentials=t},{"./formatObjKey":59,"@babel/runtime/helpers/asyncToGenerator":73,"@babel/runtime/helpers/interopRequireDefault":74,"@babel/runtime/regenerator":76,"core-js/modules/es.array.find.js":244,"core-js/modules/es.object.assign.js":255,"core-js/modules/es.object.keys.js":257}],73:[function(e,w,g){function a(u,l,c,s,t,i,n){try{var o=u[i](n),p=o.value}catch(f){c(f);return}o.done?l(p):Promise.resolve(p).then(s,t)}function r(u){return function(){var l=this,c=arguments;return new Promise(function(s,t){var i=u.apply(l,c);function n(p){a(i,s,t,n,o,"next",p)}function o(p){a(i,s,t,n,o,"throw",p)}n(void 0)})}}w.exports=r,w.exports.default=w.exports,w.exports.__esModule=!0},{}],74:[function(e,w,g){function a(r){return r&&r.__esModule?r:{default:r}}w.exports=a,w.exports.default=w.exports,w.exports.__esModule=!0},{}],75:[function(e,w,g){function a(r){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?(w.exports=a=function(l){return typeof l},w.exports.default=w.exports,w.exports.__esModule=!0):(w.exports=a=function(l){return l&&typeof Symbol=="function"&&l.constructor===Symbol&&l!==Symbol.prototype?"symbol":typeof l},w.exports.default=w.exports,w.exports.__esModule=!0),a(r)}w.exports=a,w.exports.default=w.exports,w.exports.__esModule=!0},{}],76:[function(e,w,g){w.exports=e("regenerator-runtime")},{"regenerator-runtime":342}],77:[function(e,w,g){w.exports=a,w.exports.HttpsAgent=a;function a(){}},{}],78:[function(e,w,g){(function(a){(function(){var r=e("object-assign");/*! + * The buffer module from node.js, for the browser. + * + * @author Feross Aboukhadijeh + * @license MIT + */function u(F,W){if(F===W)return 0;for(var V=F.length,L=W.length,Y=0,re=Math.min(V,L);Y=0){var G=Y.indexOf(` +`,z+1);Y=Y.substring(G+1)}this.stack=Y}}},c.inherits(p.AssertionError,Error);function m(F,W){return typeof F=="string"?F.length=0;P--)if(z[P]!==G[P])return!1;for(P=z.length-1;P>=0;P--)if(U=z[P],!j(F[U],W[U],V,L))return!1;return!0}p.notDeepEqual=function(W,V,L){j(W,V,!1)&&S(W,V,L,"notDeepEqual",p.notDeepEqual)},p.notDeepStrictEqual=O;function O(F,W,V){j(F,W,!0)&&S(F,W,V,"notDeepStrictEqual",O)}p.strictEqual=function(W,V,L){W!==V&&S(W,V,L,"===",p.strictEqual)},p.notStrictEqual=function(W,V,L){W===V&&S(W,V,L,"!==",p.notStrictEqual)};function A(F,W){if(!F||!W)return!1;if(Object.prototype.toString.call(W)=="[object RegExp]")return W.test(F);try{if(F instanceof W)return!0}catch{}return Error.isPrototypeOf(W)?!1:W.call({},F)===!0}function E(F){var W;try{F()}catch(V){W=V}return W}function _(F,W,V,L){var Y;if(typeof W!="function")throw new TypeError('"block" argument must be a function');typeof V=="string"&&(L=V,V=null),Y=E(W),L=(V&&V.name?" ("+V.name+").":".")+(L?" "+L:"."),F&&!Y&&S(Y,V,"Missing expected exception"+L);var re=typeof L=="string",z=!F&&c.isError(Y),G=!F&&Y&&!V;if((z&&re&&A(Y,V)||G)&&S(Y,V,"Got unwanted exception"+L),F&&Y&&V&&!A(Y,V)||!F&&Y)throw Y}p.throws=function(F,W,V){_(!0,F,W,V)},p.doesNotThrow=function(F,W,V){_(!1,F,W,V)},p.ifError=function(F){if(F)throw F};function T(F,W){F||S(F,!0,W,"==",T)}p.strict=r(T,p,{equal:p.strictEqual,deepEqual:p.deepStrictEqual,notEqual:p.notStrictEqual,notDeepEqual:p.notDeepStrictEqual}),p.strict.strict=p.strict;var k=Object.keys||function(F){var W=[];for(var V in F)s.call(F,V)&&W.push(V);return W}}).call(this)}).call(this,typeof xe!="undefined"?xe:typeof self!="undefined"?self:typeof window!="undefined"?window:{})},{"object-assign":320,"util/":81}],79:[function(e,w,g){typeof Object.create=="function"?w.exports=function(r,u){r.super_=u,r.prototype=Object.create(u.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}})}:w.exports=function(r,u){r.super_=u;var l=function(){};l.prototype=u.prototype,r.prototype=new l,r.prototype.constructor=r}},{}],80:[function(e,w,g){w.exports=function(r){return r&&typeof r=="object"&&typeof r.copy=="function"&&typeof r.fill=="function"&&typeof r.readUInt8=="function"}},{}],81:[function(e,w,g){(function(a,r){(function(){var u=/%[sdj%]/g;g.format=function(G){if(!x(G)){for(var U=[],P=0;P=K)return X;switch(X){case"%s":return String(B[P++]);case"%d":return Number(B[P++]);case"%j":try{return JSON.stringify(B[P++])}catch{return"[Circular]"}default:return X}}),q=B[P];P=3&&(P.depth=arguments[2]),arguments.length>=4&&(P.colors=arguments[3]),S(U)?P.showHidden=U:U&&g._extend(P,U),A(P.showHidden)&&(P.showHidden=!1),A(P.depth)&&(P.depth=2),A(P.colors)&&(P.colors=!1),A(P.customInspect)&&(P.customInspect=!0),P.colors&&(P.stylize=t),o(P,G,P.depth)}g.inspect=s,s.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},s.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"};function t(G,U){var P=s.styles[U];return P?"\x1B["+s.colors[P][0]+"m"+G+"\x1B["+s.colors[P][1]+"m":G}function i(G,U){return G}function n(G){var U={};return G.forEach(function(P,B){U[P]=!0}),U}function o(G,U,P){if(G.customInspect&&U&&F(U.inspect)&&U.inspect!==g.inspect&&!(U.constructor&&U.constructor.prototype===U)){var B=U.inspect(P,G);return x(B)||(B=o(G,B,P)),B}var K=p(G,U);if(K)return K;var J=Object.keys(U),q=n(J);if(G.showHidden&&(J=Object.getOwnPropertyNames(U)),k(U)&&(J.indexOf("message")>=0||J.indexOf("description")>=0))return f(U);if(J.length===0){if(F(U)){var X=U.name?": "+U.name:"";return G.stylize("[Function"+X+"]","special")}if(E(U))return G.stylize(RegExp.prototype.toString.call(U),"regexp");if(T(U))return G.stylize(Date.prototype.toString.call(U),"date");if(k(U))return f(U)}var ae="",M=!1,D=["{","}"];if(b(U)&&(M=!0,D=["[","]"]),F(U)){var N=U.name?": "+U.name:"";ae=" [Function"+N+"]"}if(E(U)&&(ae=" "+RegExp.prototype.toString.call(U)),T(U)&&(ae=" "+Date.prototype.toUTCString.call(U)),k(U)&&(ae=" "+f(U)),J.length===0&&(!M||U.length==0))return D[0]+ae+D[1];if(P<0)return E(U)?G.stylize(RegExp.prototype.toString.call(U),"regexp"):G.stylize("[Object]","special");G.seen.push(U);var I;return M?I=d(G,U,P,q,J):I=J.map(function(te){return m(G,U,P,q,te,M)}),G.seen.pop(),h(I,ae,D)}function p(G,U){if(A(U))return G.stylize("undefined","undefined");if(x(U)){var P="'"+JSON.stringify(U).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return G.stylize(P,"string")}if(y(U))return G.stylize(""+U,"number");if(S(U))return G.stylize(""+U,"boolean");if(v(U))return G.stylize("null","null")}function f(G){return"["+Error.prototype.toString.call(G)+"]"}function d(G,U,P,B,K){for(var J=[],q=0,X=U.length;q-1&&(J?X=X.split(` +`).map(function(M){return" "+M}).join(` +`).substr(2):X=` +`+X.split(` +`).map(function(M){return" "+M}).join(` +`))):X=G.stylize("[Circular]","special")),A(q)){if(J&&K.match(/^\d+$/))return X;q=JSON.stringify(""+K),q.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(q=q.substr(1,q.length-2),q=G.stylize(q,"name")):(q=q.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),q=G.stylize(q,"string"))}return q+": "+X}function h(G,U,P){var B=G.reduce(function(K,J){return J.indexOf(` +`)>=0,K+J.replace(/\u001b\[\d\d?m/g,"").length+1},0);return B>60?P[0]+(U===""?"":U+` + `)+" "+G.join(`, + `)+" "+P[1]:P[0]+U+" "+G.join(", ")+" "+P[1]}function b(G){return Array.isArray(G)}g.isArray=b;function S(G){return typeof G=="boolean"}g.isBoolean=S;function v(G){return G===null}g.isNull=v;function j(G){return G==null}g.isNullOrUndefined=j;function y(G){return typeof G=="number"}g.isNumber=y;function x(G){return typeof G=="string"}g.isString=x;function O(G){return typeof G=="symbol"}g.isSymbol=O;function A(G){return G===void 0}g.isUndefined=A;function E(G){return _(G)&&V(G)==="[object RegExp]"}g.isRegExp=E;function _(G){return typeof G=="object"&&G!==null}g.isObject=_;function T(G){return _(G)&&V(G)==="[object Date]"}g.isDate=T;function k(G){return _(G)&&(V(G)==="[object Error]"||G instanceof Error)}g.isError=k;function F(G){return typeof G=="function"}g.isFunction=F;function W(G){return G===null||typeof G=="boolean"||typeof G=="number"||typeof G=="string"||typeof G=="symbol"||typeof G=="undefined"}g.isPrimitive=W,g.isBuffer=e("./support/isBuffer");function V(G){return Object.prototype.toString.call(G)}function L(G){return G<10?"0"+G.toString(10):G.toString(10)}var Y=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function re(){var G=new Date,U=[L(G.getHours()),L(G.getMinutes()),L(G.getSeconds())].join(":");return[G.getDate(),Y[G.getMonth()],U].join(" ")}g.log=function(){console.log("%s - %s",re(),g.format.apply(g,arguments))},g.inherits=e("inherits"),g._extend=function(G,U){if(!U||!_(U))return G;for(var P=Object.keys(U),B=P.length;B--;)G[P[B]]=U[P[B]];return G};function z(G,U){return Object.prototype.hasOwnProperty.call(G,U)}}).call(this)}).call(this,e("_process"),typeof xe!="undefined"?xe:typeof self!="undefined"?self:typeof window!="undefined"?window:{})},{"./support/isBuffer":80,_process:399,inherits:79}],82:[function(e,w,g){g.byteLength=i,g.toByteArray=o,g.fromByteArray=d;for(var a=[],r=[],u=typeof Uint8Array!="undefined"?Uint8Array:Array,l="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",c=0,s=l.length;c0)throw new Error("Invalid string. Length must be a multiple of 4");var b=m.indexOf("=");b===-1&&(b=h);var S=b===h?0:4-b%4;return[b,S]}function i(m){var h=t(m),b=h[0],S=h[1];return(b+S)*3/4-S}function n(m,h,b){return(h+b)*3/4-b}function o(m){var h,b=t(m),S=b[0],v=b[1],j=new u(n(m,S,v)),y=0,x=v>0?S-4:S,O;for(O=0;O>16&255,j[y++]=h>>8&255,j[y++]=h&255;return v===2&&(h=r[m.charCodeAt(O)]<<2|r[m.charCodeAt(O+1)]>>4,j[y++]=h&255),v===1&&(h=r[m.charCodeAt(O)]<<10|r[m.charCodeAt(O+1)]<<4|r[m.charCodeAt(O+2)]>>2,j[y++]=h>>8&255,j[y++]=h&255),j}function p(m){return a[m>>18&63]+a[m>>12&63]+a[m>>6&63]+a[m&63]}function f(m,h,b){for(var S,v=[],j=h;jx?x:y+j));return S===1?(h=m[b-1],v.push(a[h>>2]+a[h<<4&63]+"==")):S===2&&(h=(m[b-2]<<8)+m[b-1],v.push(a[h>>10]+a[h>>4&63]+a[h<<2&63]+"=")),v.join("")}},{}],83:[function(e,w,g){/*! + * Bowser - a browser detector + * https://github.com/ded/bowser + * MIT License | (c) Dustin Diaz 2015 + */(function(a,r,u){typeof w!="undefined"&&w.exports?w.exports=u():a[r]=u()})(this,"bowser",function(){var a=!0;function r(n){function o(G){var U=n.match(G);return U&&U.length>1&&U[1]||""}function p(G){var U=n.match(G);return U&&U.length>1&&U[2]||""}var f=o(/(ipod|iphone|ipad)/i).toLowerCase(),d=/like android/i.test(n),m=!d&&/android/i.test(n),h=/nexus\s*[0-6]\s*/i.test(n),b=!h&&/nexus\s*[0-9]+/i.test(n),S=/CrOS/.test(n),v=/silk/i.test(n),j=/sailfish/i.test(n),y=/tizen/i.test(n),x=/(web|hpw)(o|0)s/i.test(n),O=/windows phone/i.test(n);/SamsungBrowser/i.test(n);var A=!O&&/windows/i.test(n),E=!f&&!v&&/macintosh/i.test(n),_=!m&&!j&&!y&&!x&&/linux/i.test(n),T=p(/edg([ea]|ios)\/(\d+(\.\d+)?)/i),k=o(/version\/(\d+(\.\d+)?)/i),F=/tablet/i.test(n)&&!/tablet pc/i.test(n),W=!F&&/[^-]mobi/i.test(n),V=/xbox/i.test(n),L;/opera/i.test(n)?L={name:"Opera",opera:a,version:k||o(/(?:opera|opr|opios)[\s\/](\d+(\.\d+)?)/i)}:/opr\/|opios/i.test(n)?L={name:"Opera",opera:a,version:o(/(?:opr|opios)[\s\/](\d+(\.\d+)?)/i)||k}:/SamsungBrowser/i.test(n)?L={name:"Samsung Internet for Android",samsungBrowser:a,version:k||o(/(?:SamsungBrowser)[\s\/](\d+(\.\d+)?)/i)}:/Whale/i.test(n)?L={name:"NAVER Whale browser",whale:a,version:o(/(?:whale)[\s\/](\d+(?:\.\d+)+)/i)}:/MZBrowser/i.test(n)?L={name:"MZ Browser",mzbrowser:a,version:o(/(?:MZBrowser)[\s\/](\d+(?:\.\d+)+)/i)}:/coast/i.test(n)?L={name:"Opera Coast",coast:a,version:k||o(/(?:coast)[\s\/](\d+(\.\d+)?)/i)}:/focus/i.test(n)?L={name:"Focus",focus:a,version:o(/(?:focus)[\s\/](\d+(?:\.\d+)+)/i)}:/yabrowser/i.test(n)?L={name:"Yandex Browser",yandexbrowser:a,version:k||o(/(?:yabrowser)[\s\/](\d+(\.\d+)?)/i)}:/ucbrowser/i.test(n)?L={name:"UC Browser",ucbrowser:a,version:o(/(?:ucbrowser)[\s\/](\d+(?:\.\d+)+)/i)}:/mxios/i.test(n)?L={name:"Maxthon",maxthon:a,version:o(/(?:mxios)[\s\/](\d+(?:\.\d+)+)/i)}:/epiphany/i.test(n)?L={name:"Epiphany",epiphany:a,version:o(/(?:epiphany)[\s\/](\d+(?:\.\d+)+)/i)}:/puffin/i.test(n)?L={name:"Puffin",puffin:a,version:o(/(?:puffin)[\s\/](\d+(?:\.\d+)?)/i)}:/sleipnir/i.test(n)?L={name:"Sleipnir",sleipnir:a,version:o(/(?:sleipnir)[\s\/](\d+(?:\.\d+)+)/i)}:/k-meleon/i.test(n)?L={name:"K-Meleon",kMeleon:a,version:o(/(?:k-meleon)[\s\/](\d+(?:\.\d+)+)/i)}:O?(L={name:"Windows Phone",osname:"Windows Phone",windowsphone:a},T?(L.msedge=a,L.version=T):(L.msie=a,L.version=o(/iemobile\/(\d+(\.\d+)?)/i))):/msie|trident/i.test(n)?L={name:"Internet Explorer",msie:a,version:o(/(?:msie |rv:)(\d+(\.\d+)?)/i)}:S?L={name:"Chrome",osname:"Chrome OS",chromeos:a,chromeBook:a,chrome:a,version:o(/(?:chrome|crios|crmo)\/(\d+(\.\d+)?)/i)}:/edg([ea]|ios)/i.test(n)?L={name:"Microsoft Edge",msedge:a,version:T}:/vivaldi/i.test(n)?L={name:"Vivaldi",vivaldi:a,version:o(/vivaldi\/(\d+(\.\d+)?)/i)||k}:j?L={name:"Sailfish",osname:"Sailfish OS",sailfish:a,version:o(/sailfish\s?browser\/(\d+(\.\d+)?)/i)}:/seamonkey\//i.test(n)?L={name:"SeaMonkey",seamonkey:a,version:o(/seamonkey\/(\d+(\.\d+)?)/i)}:/firefox|iceweasel|fxios/i.test(n)?(L={name:"Firefox",firefox:a,version:o(/(?:firefox|iceweasel|fxios)[ \/](\d+(\.\d+)?)/i)},/\((mobile|tablet);[^\)]*rv:[\d\.]+\)/i.test(n)&&(L.firefoxos=a,L.osname="Firefox OS")):v?L={name:"Amazon Silk",silk:a,version:o(/silk\/(\d+(\.\d+)?)/i)}:/phantom/i.test(n)?L={name:"PhantomJS",phantom:a,version:o(/phantomjs\/(\d+(\.\d+)?)/i)}:/slimerjs/i.test(n)?L={name:"SlimerJS",slimer:a,version:o(/slimerjs\/(\d+(\.\d+)?)/i)}:/blackberry|\bbb\d+/i.test(n)||/rim\stablet/i.test(n)?L={name:"BlackBerry",osname:"BlackBerry OS",blackberry:a,version:k||o(/blackberry[\d]+\/(\d+(\.\d+)?)/i)}:x?(L={name:"WebOS",osname:"WebOS",webos:a,version:k||o(/w(?:eb)?osbrowser\/(\d+(\.\d+)?)/i)},/touchpad\//i.test(n)&&(L.touchpad=a)):/bada/i.test(n)?L={name:"Bada",osname:"Bada",bada:a,version:o(/dolfin\/(\d+(\.\d+)?)/i)}:y?L={name:"Tizen",osname:"Tizen",tizen:a,version:o(/(?:tizen\s?)?browser\/(\d+(\.\d+)?)/i)||k}:/qupzilla/i.test(n)?L={name:"QupZilla",qupzilla:a,version:o(/(?:qupzilla)[\s\/](\d+(?:\.\d+)+)/i)||k}:/chromium/i.test(n)?L={name:"Chromium",chromium:a,version:o(/(?:chromium)[\s\/](\d+(?:\.\d+)?)/i)||k}:/chrome|crios|crmo/i.test(n)?L={name:"Chrome",chrome:a,version:o(/(?:chrome|crios|crmo)\/(\d+(\.\d+)?)/i)}:m?L={name:"Android",version:k}:/safari|applewebkit/i.test(n)?(L={name:"Safari",safari:a},k&&(L.version=k)):f?(L={name:f=="iphone"?"iPhone":f=="ipad"?"iPad":"iPod"},k&&(L.version=k)):/googlebot/i.test(n)?L={name:"Googlebot",googlebot:a,version:o(/googlebot\/(\d+(\.\d+))/i)||k}:L={name:o(/^(.*)\/(.*) /),version:p(/^(.*)\/(.*) /)},!L.msedge&&/(apple)?webkit/i.test(n)?(/(apple)?webkit\/537\.36/i.test(n)?(L.name=L.name||"Blink",L.blink=a):(L.name=L.name||"Webkit",L.webkit=a),!L.version&&k&&(L.version=k)):!L.opera&&/gecko\//i.test(n)&&(L.name=L.name||"Gecko",L.gecko=a,L.version=L.version||o(/gecko\/(\d+(\.\d+)?)/i)),!L.windowsphone&&(m||L.silk)?(L.android=a,L.osname="Android"):!L.windowsphone&&f?(L[f]=a,L.ios=a,L.osname="iOS"):E?(L.mac=a,L.osname="macOS"):V?(L.xbox=a,L.osname="Xbox"):A?(L.windows=a,L.osname="Windows"):_&&(L.linux=a,L.osname="Linux");function Y(G){switch(G){case"NT":return"NT";case"XP":return"XP";case"NT 5.0":return"2000";case"NT 5.1":return"XP";case"NT 5.2":return"2003";case"NT 6.0":return"Vista";case"NT 6.1":return"7";case"NT 6.2":return"8";case"NT 6.3":return"8.1";case"NT 10.0":return"10";default:return}}var re="";L.windows?re=Y(o(/Windows ((NT|XP)( \d\d?.\d)?)/i)):L.windowsphone?re=o(/windows phone (?:os)?\s?(\d+(\.\d+)*)/i):L.mac?(re=o(/Mac OS X (\d+([_\.\s]\d+)*)/i),re=re.replace(/[_\s]/g,".")):f?(re=o(/os (\d+([_\s]\d+)*) like mac os x/i),re=re.replace(/[_\s]/g,".")):m?re=o(/android[ \/-](\d+(\.\d+)*)/i):L.webos?re=o(/(?:web|hpw)os\/(\d+(\.\d+)*)/i):L.blackberry?re=o(/rim\stablet\sos\s(\d+(\.\d+)*)/i):L.bada?re=o(/bada\/(\d+(\.\d+)*)/i):L.tizen&&(re=o(/tizen[\/\s](\d+(\.\d+)*)/i)),re&&(L.osversion=re);var z=!L.windows&&re.split(".")[0];return F||b||f=="ipad"||m&&(z==3||z>=4&&!W)||L.silk?L.tablet=a:(W||f=="iphone"||f=="ipod"||m||h||L.blackberry||L.webos||L.bada)&&(L.mobile=a),L.msedge||L.msie&&L.version>=10||L.yandexbrowser&&L.version>=15||L.vivaldi&&L.version>=1||L.chrome&&L.version>=20||L.samsungBrowser&&L.version>=4||L.whale&&s([L.version,"1.0"])===1||L.mzbrowser&&s([L.version,"6.0"])===1||L.focus&&s([L.version,"1.0"])===1||L.firefox&&L.version>=20||L.safari&&L.version>=6||L.opera&&L.version>=10||L.ios&&L.osversion&&L.osversion.split(".")[0]>=6||L.blackberry&&L.version>=10.1||L.chromium&&L.version>=20?L.a=a:L.msie&&L.version<10||L.chrome&&L.version<20||L.firefox&&L.version<20||L.safari&&L.version<6||L.opera&&L.version<10||L.ios&&L.osversion&&L.osversion.split(".")[0]<6||L.chromium&&L.version<20?L.c=a:L.x=a,L}var u=r(typeof navigator!="undefined"&&navigator.userAgent||"");u.test=function(n){for(var o=0;o=0;){if(p[0][o]>p[1][o])return 1;if(p[0][o]===p[1][o]){if(o===0)return 0}else return-1}}function t(n,o,p){var f=u;typeof o=="string"&&(p=o,o=void 0),o===void 0&&(o=!1),p&&(f=r(p));var d=""+f.version;for(var m in n)if(n.hasOwnProperty(m)&&f[m]){if(typeof n[m]!="string")throw new Error("Browser version in the minVersion map should be a string: "+m+": "+String(n));return s([d,n[m]])<0}return o}function i(n,o,p){return!t(n,o,p)}return u.isUnsupportedBrowser=t,u.compareVersions=s,u.check=i,u._detect=r,u.detect=r,u})},{}],84:[function(e,w,g){},{}],85:[function(e,w,g){(function(a,r){(function(){var u=e("base64-js"),l=e("ieee754"),c=e("isarray");g.Buffer=n,g.SlowBuffer=j,g.INSPECT_MAX_BYTES=50,n.TYPED_ARRAY_SUPPORT=a.TYPED_ARRAY_SUPPORT!==void 0?a.TYPED_ARRAY_SUPPORT:s(),g.kMaxLength=t();function s(){try{var $=new Uint8Array(1);return $.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},$.foo()===42&&typeof $.subarray=="function"&&$.subarray(1,1).byteLength===0}catch{return!1}}function t(){return n.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function i($,R){if(t()=t())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+t().toString(16)+" bytes");return $|0}function j($){return+$!=$&&($=0),n.alloc(+$)}n.isBuffer=function(R){return!!(R!=null&&R._isBuffer)},n.compare=function(R,C){if(!n.isBuffer(R)||!n.isBuffer(C))throw new TypeError("Arguments must be Buffers");if(R===C)return 0;for(var H=R.length,ee=C.length,ne=0,ue=Math.min(H,ee);ne>>1;case"base64":return oe($).length;default:if(H)return Z($).length;R=(""+R).toLowerCase(),H=!0}}n.byteLength=y;function x($,R,C){var H=!1;if((R===void 0||R<0)&&(R=0),R>this.length||((C===void 0||C>this.length)&&(C=this.length),C<=0)||(C>>>=0,R>>>=0,C<=R))return"";for($||($="utf8");;)switch($){case"hex":return P(this,R,C);case"utf8":case"utf-8":return Y(this,R,C);case"ascii":return G(this,R,C);case"latin1":case"binary":return U(this,R,C);case"base64":return L(this,R,C);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return B(this,R,C);default:if(H)throw new TypeError("Unknown encoding: "+$);$=($+"").toLowerCase(),H=!0}}n.prototype._isBuffer=!0;function O($,R,C){var H=$[R];$[R]=$[C],$[C]=H}n.prototype.swap16=function(){var R=this.length;if(R%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var C=0;C0&&(R=this.toString("hex",0,C).match(/.{2}/g).join(" "),this.length>C&&(R+=" ... ")),""},n.prototype.compare=function(R,C,H,ee,ne){if(!n.isBuffer(R))throw new TypeError("Argument must be a Buffer");if(C===void 0&&(C=0),H===void 0&&(H=R?R.length:0),ee===void 0&&(ee=0),ne===void 0&&(ne=this.length),C<0||H>R.length||ee<0||ne>this.length)throw new RangeError("out of range index");if(ee>=ne&&C>=H)return 0;if(ee>=ne)return-1;if(C>=H)return 1;if(C>>>=0,H>>>=0,ee>>>=0,ne>>>=0,this===R)return 0;for(var ue=ne-ee,se=H-C,de=Math.min(ue,se),be=this.slice(ee,ne),we=R.slice(C,H),ye=0;ye2147483647?C=2147483647:C<-2147483648&&(C=-2147483648),C=+C,isNaN(C)&&(C=ee?0:$.length-1),C<0&&(C=$.length+C),C>=$.length){if(ee)return-1;C=$.length-1}else if(C<0)if(ee)C=0;else return-1;if(typeof R=="string"&&(R=n.from(R,H)),n.isBuffer(R))return R.length===0?-1:E($,R,C,H,ee);if(typeof R=="number")return R=R&255,n.TYPED_ARRAY_SUPPORT&&typeof Uint8Array.prototype.indexOf=="function"?ee?Uint8Array.prototype.indexOf.call($,R,C):Uint8Array.prototype.lastIndexOf.call($,R,C):E($,[R],C,H,ee);throw new TypeError("val must be string, number or Buffer")}function E($,R,C,H,ee){var ne=1,ue=$.length,se=R.length;if(H!==void 0&&(H=String(H).toLowerCase(),H==="ucs2"||H==="ucs-2"||H==="utf16le"||H==="utf-16le")){if($.length<2||R.length<2)return-1;ne=2,ue/=2,se/=2,C/=2}function de(fe,pe){return ne===1?fe[pe]:fe.readUInt16BE(pe*ne)}var be;if(ee){var we=-1;for(be=C;beue&&(C=ue-se),be=C;be>=0;be--){for(var ye=!0,le=0;leee&&(H=ee)):H=ee;var ne=R.length;if(ne%2!==0)throw new TypeError("Invalid hex string");H>ne/2&&(H=ne/2);for(var ue=0;uene)&&(H=ne),R.length>0&&(H<0||C<0)||C>this.length)throw new RangeError("Attempt to write outside buffer bounds");ee||(ee="utf8");for(var ue=!1;;)switch(ee){case"hex":return _(this,R,C,H);case"utf8":case"utf-8":return T(this,R,C,H);case"ascii":return k(this,R,C,H);case"latin1":case"binary":return F(this,R,C,H);case"base64":return W(this,R,C,H);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return V(this,R,C,H);default:if(ue)throw new TypeError("Unknown encoding: "+ee);ee=(""+ee).toLowerCase(),ue=!0}},n.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function L($,R,C){return R===0&&C===$.length?u.fromByteArray($):u.fromByteArray($.slice(R,C))}function Y($,R,C){C=Math.min($.length,C);for(var H=[],ee=R;ee239?4:ne>223?3:ne>191?2:1;if(ee+se<=C){var de,be,we,ye;switch(se){case 1:ne<128&&(ue=ne);break;case 2:de=$[ee+1],(de&192)===128&&(ye=(ne&31)<<6|de&63,ye>127&&(ue=ye));break;case 3:de=$[ee+1],be=$[ee+2],(de&192)===128&&(be&192)===128&&(ye=(ne&15)<<12|(de&63)<<6|be&63,ye>2047&&(ye<55296||ye>57343)&&(ue=ye));break;case 4:de=$[ee+1],be=$[ee+2],we=$[ee+3],(de&192)===128&&(be&192)===128&&(we&192)===128&&(ye=(ne&15)<<18|(de&63)<<12|(be&63)<<6|we&63,ye>65535&&ye<1114112&&(ue=ye))}}ue===null?(ue=65533,se=1):ue>65535&&(ue-=65536,H.push(ue>>>10&1023|55296),ue=56320|ue&1023),H.push(ue),ee+=se}return z(H)}var re=4096;function z($){var R=$.length;if(R<=re)return String.fromCharCode.apply(String,$);for(var C="",H=0;HH)&&(C=H);for(var ee="",ne=R;neH&&(R=H),C<0?(C+=H,C<0&&(C=0)):C>H&&(C=H),CC)throw new RangeError("Trying to access beyond buffer length")}n.prototype.readUIntLE=function(R,C,H){R=R|0,C=C|0,H||K(R,C,this.length);for(var ee=this[R],ne=1,ue=0;++ue0&&(ne*=256);)ee+=this[R+--C]*ne;return ee},n.prototype.readUInt8=function(R,C){return C||K(R,1,this.length),this[R]},n.prototype.readUInt16LE=function(R,C){return C||K(R,2,this.length),this[R]|this[R+1]<<8},n.prototype.readUInt16BE=function(R,C){return C||K(R,2,this.length),this[R]<<8|this[R+1]},n.prototype.readUInt32LE=function(R,C){return C||K(R,4,this.length),(this[R]|this[R+1]<<8|this[R+2]<<16)+this[R+3]*16777216},n.prototype.readUInt32BE=function(R,C){return C||K(R,4,this.length),this[R]*16777216+(this[R+1]<<16|this[R+2]<<8|this[R+3])},n.prototype.readIntLE=function(R,C,H){R=R|0,C=C|0,H||K(R,C,this.length);for(var ee=this[R],ne=1,ue=0;++ue=ne&&(ee-=Math.pow(2,8*C)),ee},n.prototype.readIntBE=function(R,C,H){R=R|0,C=C|0,H||K(R,C,this.length);for(var ee=C,ne=1,ue=this[R+--ee];ee>0&&(ne*=256);)ue+=this[R+--ee]*ne;return ne*=128,ue>=ne&&(ue-=Math.pow(2,8*C)),ue},n.prototype.readInt8=function(R,C){return C||K(R,1,this.length),this[R]&128?(255-this[R]+1)*-1:this[R]},n.prototype.readInt16LE=function(R,C){C||K(R,2,this.length);var H=this[R]|this[R+1]<<8;return H&32768?H|4294901760:H},n.prototype.readInt16BE=function(R,C){C||K(R,2,this.length);var H=this[R+1]|this[R]<<8;return H&32768?H|4294901760:H},n.prototype.readInt32LE=function(R,C){return C||K(R,4,this.length),this[R]|this[R+1]<<8|this[R+2]<<16|this[R+3]<<24},n.prototype.readInt32BE=function(R,C){return C||K(R,4,this.length),this[R]<<24|this[R+1]<<16|this[R+2]<<8|this[R+3]},n.prototype.readFloatLE=function(R,C){return C||K(R,4,this.length),l.read(this,R,!0,23,4)},n.prototype.readFloatBE=function(R,C){return C||K(R,4,this.length),l.read(this,R,!1,23,4)},n.prototype.readDoubleLE=function(R,C){return C||K(R,8,this.length),l.read(this,R,!0,52,8)},n.prototype.readDoubleBE=function(R,C){return C||K(R,8,this.length),l.read(this,R,!1,52,8)};function J($,R,C,H,ee,ne){if(!n.isBuffer($))throw new TypeError('"buffer" argument must be a Buffer instance');if(R>ee||R$.length)throw new RangeError("Index out of range")}n.prototype.writeUIntLE=function(R,C,H,ee){if(R=+R,C=C|0,H=H|0,!ee){var ne=Math.pow(2,8*H)-1;J(this,R,C,H,ne,0)}var ue=1,se=0;for(this[C]=R&255;++se=0&&(se*=256);)this[C+ue]=R/se&255;return C+H},n.prototype.writeUInt8=function(R,C,H){return R=+R,C=C|0,H||J(this,R,C,1,255,0),n.TYPED_ARRAY_SUPPORT||(R=Math.floor(R)),this[C]=R&255,C+1};function q($,R,C,H){R<0&&(R=65535+R+1);for(var ee=0,ne=Math.min($.length-C,2);ee>>(H?ee:1-ee)*8}n.prototype.writeUInt16LE=function(R,C,H){return R=+R,C=C|0,H||J(this,R,C,2,65535,0),n.TYPED_ARRAY_SUPPORT?(this[C]=R&255,this[C+1]=R>>>8):q(this,R,C,!0),C+2},n.prototype.writeUInt16BE=function(R,C,H){return R=+R,C=C|0,H||J(this,R,C,2,65535,0),n.TYPED_ARRAY_SUPPORT?(this[C]=R>>>8,this[C+1]=R&255):q(this,R,C,!1),C+2};function X($,R,C,H){R<0&&(R=4294967295+R+1);for(var ee=0,ne=Math.min($.length-C,4);ee>>(H?ee:3-ee)*8&255}n.prototype.writeUInt32LE=function(R,C,H){return R=+R,C=C|0,H||J(this,R,C,4,4294967295,0),n.TYPED_ARRAY_SUPPORT?(this[C+3]=R>>>24,this[C+2]=R>>>16,this[C+1]=R>>>8,this[C]=R&255):X(this,R,C,!0),C+4},n.prototype.writeUInt32BE=function(R,C,H){return R=+R,C=C|0,H||J(this,R,C,4,4294967295,0),n.TYPED_ARRAY_SUPPORT?(this[C]=R>>>24,this[C+1]=R>>>16,this[C+2]=R>>>8,this[C+3]=R&255):X(this,R,C,!1),C+4},n.prototype.writeIntLE=function(R,C,H,ee){if(R=+R,C=C|0,!ee){var ne=Math.pow(2,8*H-1);J(this,R,C,H,ne-1,-ne)}var ue=0,se=1,de=0;for(this[C]=R&255;++ue>0)-de&255;return C+H},n.prototype.writeIntBE=function(R,C,H,ee){if(R=+R,C=C|0,!ee){var ne=Math.pow(2,8*H-1);J(this,R,C,H,ne-1,-ne)}var ue=H-1,se=1,de=0;for(this[C+ue]=R&255;--ue>=0&&(se*=256);)R<0&&de===0&&this[C+ue+1]!==0&&(de=1),this[C+ue]=(R/se>>0)-de&255;return C+H},n.prototype.writeInt8=function(R,C,H){return R=+R,C=C|0,H||J(this,R,C,1,127,-128),n.TYPED_ARRAY_SUPPORT||(R=Math.floor(R)),R<0&&(R=255+R+1),this[C]=R&255,C+1},n.prototype.writeInt16LE=function(R,C,H){return R=+R,C=C|0,H||J(this,R,C,2,32767,-32768),n.TYPED_ARRAY_SUPPORT?(this[C]=R&255,this[C+1]=R>>>8):q(this,R,C,!0),C+2},n.prototype.writeInt16BE=function(R,C,H){return R=+R,C=C|0,H||J(this,R,C,2,32767,-32768),n.TYPED_ARRAY_SUPPORT?(this[C]=R>>>8,this[C+1]=R&255):q(this,R,C,!1),C+2},n.prototype.writeInt32LE=function(R,C,H){return R=+R,C=C|0,H||J(this,R,C,4,2147483647,-2147483648),n.TYPED_ARRAY_SUPPORT?(this[C]=R&255,this[C+1]=R>>>8,this[C+2]=R>>>16,this[C+3]=R>>>24):X(this,R,C,!0),C+4},n.prototype.writeInt32BE=function(R,C,H){return R=+R,C=C|0,H||J(this,R,C,4,2147483647,-2147483648),R<0&&(R=4294967295+R+1),n.TYPED_ARRAY_SUPPORT?(this[C]=R>>>24,this[C+1]=R>>>16,this[C+2]=R>>>8,this[C+3]=R&255):X(this,R,C,!1),C+4};function ae($,R,C,H,ee,ne){if(C+H>$.length)throw new RangeError("Index out of range");if(C<0)throw new RangeError("Index out of range")}function M($,R,C,H,ee){return ee||ae($,R,C,4),l.write($,R,C,H,23,4),C+4}n.prototype.writeFloatLE=function(R,C,H){return M(this,R,C,!0,H)},n.prototype.writeFloatBE=function(R,C,H){return M(this,R,C,!1,H)};function D($,R,C,H,ee){return ee||ae($,R,C,8),l.write($,R,C,H,52,8),C+8}n.prototype.writeDoubleLE=function(R,C,H){return D(this,R,C,!0,H)},n.prototype.writeDoubleBE=function(R,C,H){return D(this,R,C,!1,H)},n.prototype.copy=function(R,C,H,ee){if(H||(H=0),!ee&&ee!==0&&(ee=this.length),C>=R.length&&(C=R.length),C||(C=0),ee>0&&ee=this.length)throw new RangeError("sourceStart out of bounds");if(ee<0)throw new RangeError("sourceEnd out of bounds");ee>this.length&&(ee=this.length),R.length-C=0;--ue)R[ue+C]=this[ue+H];else if(ne<1e3||!n.TYPED_ARRAY_SUPPORT)for(ue=0;ue>>0,H=H===void 0?this.length:H>>>0,R||(R=0);var ue;if(typeof R=="number")for(ue=C;ue55295&&C<57344){if(!ee){if(C>56319){(R-=3)>-1&&ne.push(239,191,189);continue}else if(ue+1===H){(R-=3)>-1&&ne.push(239,191,189);continue}ee=C;continue}if(C<56320){(R-=3)>-1&&ne.push(239,191,189),ee=C;continue}C=(ee-55296<<10|C-56320)+65536}else ee&&(R-=3)>-1&&ne.push(239,191,189);if(ee=null,C<128){if((R-=1)<0)break;ne.push(C)}else if(C<2048){if((R-=2)<0)break;ne.push(C>>6|192,C&63|128)}else if(C<65536){if((R-=3)<0)break;ne.push(C>>12|224,C>>6&63|128,C&63|128)}else if(C<1114112){if((R-=4)<0)break;ne.push(C>>18|240,C>>12&63|128,C>>6&63|128,C&63|128)}else throw new Error("Invalid code point")}return ne}function ie($){for(var R=[],C=0;C<$.length;++C)R.push($.charCodeAt(C)&255);return R}function ce($,R){for(var C,H,ee,ne=[],ue=0;ue<$.length&&!((R-=2)<0);++ue)C=$.charCodeAt(ue),H=C>>8,ee=C%256,ne.push(ee),ne.push(H);return ne}function oe($){return u.toByteArray(I($))}function me($,R,C,H){for(var ee=0;ee=R.length||ee>=$.length);++ee)R[ee+C]=$[ee];return ee}function ge($){return $!==$}}).call(this)}).call(this,typeof xe!="undefined"?xe:typeof self!="undefined"?self:typeof window!="undefined"?window:{},e("buffer").Buffer)},{"base64-js":82,buffer:85,ieee754:304,isarray:313}],86:[function(e,w,g){var a=e("buffer").Buffer,r=a.isEncoding||function(i){switch(i&&i.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function u(i){if(i&&!r(i))throw new Error("Unknown encoding: "+i)}var l=g.StringDecoder=function(i){switch(this.encoding=(i||"utf8").toLowerCase().replace(/[-_]/,""),u(i),this.encoding){case"utf8":this.surrogateSize=3;break;case"ucs2":case"utf16le":this.surrogateSize=2,this.detectIncompleteChar=s;break;case"base64":this.surrogateSize=3,this.detectIncompleteChar=t;break;default:this.write=c;return}this.charBuffer=new a(6),this.charReceived=0,this.charLength=0};l.prototype.write=function(i){for(var n="";this.charLength;){var o=i.length>=this.charLength-this.charReceived?this.charLength-this.charReceived:i.length;if(i.copy(this.charBuffer,this.charReceived,0,o),this.charReceived+=o,this.charReceived=55296&&f<=56319){this.charLength+=this.surrogateSize,n="";continue}if(this.charReceived=this.charLength=0,i.length===0)return n;break}this.detectIncompleteChar(i);var p=i.length;this.charLength&&(i.copy(this.charBuffer,0,i.length-this.charReceived,p),p-=this.charReceived),n+=i.toString(this.encoding,0,p);var p=n.length-1,f=n.charCodeAt(p);if(f>=55296&&f<=56319){var d=this.surrogateSize;return this.charLength+=d,this.charReceived+=d,this.charBuffer.copy(this.charBuffer,d,0,d),i.copy(this.charBuffer,0,0,d),n.substring(0,p)}return n},l.prototype.detectIncompleteChar=function(i){for(var n=i.length>=3?3:i.length;n>0;n--){var o=i[i.length-n];if(n==1&&o>>5==6){this.charLength=2;break}if(n<=2&&o>>4==14){this.charLength=3;break}if(n<=3&&o>>3==30){this.charLength=4;break}}this.charReceived=n},l.prototype.end=function(i){var n="";if(i&&i.length&&(n=this.write(i)),this.charReceived){var o=this.charReceived,p=this.charBuffer,f=this.encoding;n+=p.slice(0,o).toString(f)}return n};function c(i){return i.toString(this.encoding)}function s(i){this.charReceived=i.length%2,this.charLength=this.charReceived?2:0}function t(i){this.charReceived=i.length%3,this.charLength=this.charReceived?3:0}},{buffer:85}],87:[function(e,w,g){w.exports={"100":"Continue","101":"Switching Protocols","102":"Processing","200":"OK","201":"Created","202":"Accepted","203":"Non-Authoritative Information","204":"No Content","205":"Reset Content","206":"Partial Content","207":"Multi-Status","208":"Already Reported","226":"IM Used","300":"Multiple Choices","301":"Moved Permanently","302":"Found","303":"See Other","304":"Not Modified","305":"Use Proxy","307":"Temporary Redirect","308":"Permanent Redirect","400":"Bad Request","401":"Unauthorized","402":"Payment Required","403":"Forbidden","404":"Not Found","405":"Method Not Allowed","406":"Not Acceptable","407":"Proxy Authentication Required","408":"Request Timeout","409":"Conflict","410":"Gone","411":"Length Required","412":"Precondition Failed","413":"Payload Too Large","414":"URI Too Long","415":"Unsupported Media Type","416":"Range Not Satisfiable","417":"Expectation Failed","418":"I'm a teapot","421":"Misdirected Request","422":"Unprocessable Entity","423":"Locked","424":"Failed Dependency","425":"Unordered Collection","426":"Upgrade Required","428":"Precondition Required","429":"Too Many Requests","431":"Request Header Fields Too Large","451":"Unavailable For Legal Reasons","500":"Internal Server Error","501":"Not Implemented","502":"Bad Gateway","503":"Service Unavailable","504":"Gateway Timeout","505":"HTTP Version Not Supported","506":"Variant Also Negotiates","507":"Insufficient Storage","508":"Loop Detected","509":"Bandwidth Limit Exceeded","510":"Not Extended","511":"Network Authentication Required"}},{}],88:[function(e,w,g){var a=Array.prototype.slice;w.exports=r;function r(l,c){if(!(this instanceof r))return new r(l,c);this.src=l,this._withAccess=c}r.prototype.withAccess=function(l){return this._withAccess=l!==!1,this},r.prototype.pick=function(l){return Array.isArray(l)||(l=a.call(arguments)),l.length&&(this.keys=l),this},r.prototype.to=function(l){if(l=l||{},!this.src)return l;var c=this.keys||Object.keys(this.src);if(!this._withAccess){for(var s=0;s>8&255]},U=function(Q){return[Q&255,Q>>8&255,Q>>16&255,Q>>24&255]},P=function(Q){return Q[3]<<24|Q[2]<<16|Q[1]<<8|Q[0]},B=function(Q){return Y(Q,23,4)},K=function(Q){return Y(Q,52,8)},J=function(Q,Z){h(Q[A],Z,{get:function(){return j(this)[Z]}})},q=function(Q,Z,ie,ce){var oe=o(ie),me=j(Q);if(oe+Z>me.byteLength)throw L(_);var ge=j(me.buffer).bytes,$=oe+me.byteOffset,R=ge.slice($,$+Z);return ce?R:R.reverse()},X=function(Q,Z,ie,ce,oe,me){var ge=o(ie),$=j(Q);if(ge+Z>$.byteLength)throw L(_);for(var R=j($.buffer).bytes,C=ge+$.byteOffset,H=ce(+oe),ee=0;eeoe)throw L("Wrong offset");if(ce=ce===void 0?oe-me:n(ce),me+ce>oe)throw L(E);y(this,{buffer:Z,byteLength:ce,byteOffset:me}),r||(this.buffer=Z,this.byteLength=ce,this.byteOffset=me)},r&&(J(k,"byteLength"),J(F,"buffer"),J(F,"byteLength"),J(F,"byteOffset")),c(F[A],{getInt8:function(Z){return q(this,1,Z)[0]<<24>>24},getUint8:function(Z){return q(this,1,Z)[0]},getInt16:function(Z){var ie=q(this,2,Z,arguments.length>1?arguments[1]:void 0);return(ie[1]<<8|ie[0])<<16>>16},getUint16:function(Z){var ie=q(this,2,Z,arguments.length>1?arguments[1]:void 0);return ie[1]<<8|ie[0]},getInt32:function(Z){return P(q(this,4,Z,arguments.length>1?arguments[1]:void 0))},getUint32:function(Z){return P(q(this,4,Z,arguments.length>1?arguments[1]:void 0))>>>0},getFloat32:function(Z){return re(q(this,4,Z,arguments.length>1?arguments[1]:void 0),23)},getFloat64:function(Z){return re(q(this,8,Z,arguments.length>1?arguments[1]:void 0),52)},setInt8:function(Z,ie){X(this,1,Z,z,ie)},setUint8:function(Z,ie){X(this,1,Z,z,ie)},setInt16:function(Z,ie){X(this,2,Z,G,ie,arguments.length>2?arguments[2]:void 0)},setUint16:function(Z,ie){X(this,2,Z,G,ie,arguments.length>2?arguments[2]:void 0)},setInt32:function(Z,ie){X(this,4,Z,U,ie,arguments.length>2?arguments[2]:void 0)},setUint32:function(Z,ie){X(this,4,Z,U,ie,arguments.length>2?arguments[2]:void 0)},setFloat32:function(Z,ie){X(this,4,Z,B,ie,arguments.length>2?arguments[2]:void 0)},setFloat64:function(Z,ie){X(this,8,Z,K,ie,arguments.length>2?arguments[2]:void 0)}});else{if(!s(function(){T(1)})||!s(function(){new T(-1)})||s(function(){return new T,new T(1.5),new T(NaN),T.name!=x})){k=function(Z){return t(this,k),new T(o(Z))};for(var ae=k[A]=T[A],M=m(T),D=0,N;M.length>D;)(N=M[D++])in k||l(k,N,T[N]);ae.constructor=k}d&&f(W)!==V&&d(W,V);var I=new F(new k(2)),te=W.setInt8;I.setInt8(0,2147483648),I.setInt8(1,2147483649),(I.getInt8(0)||!I.getInt8(1))&&c(W,{setInt8:function(Z,ie){te.call(this,Z,ie<<24>>24)},setUint8:function(Z,ie){te.call(this,Z,ie<<24>>24)}},{unsafe:!0})}S(k,x),S(F,O),w.exports={ArrayBuffer:k,DataView:F}},{"../internals/an-instance":93,"../internals/array-buffer-native":95,"../internals/array-fill":99,"../internals/create-non-enumerable-property":120,"../internals/descriptors":125,"../internals/fails":140,"../internals/global":147,"../internals/ieee754":153,"../internals/internal-state":157,"../internals/object-define-property":179,"../internals/object-get-own-property-names":182,"../internals/object-get-prototype-of":184,"../internals/object-set-prototype-of":188,"../internals/redefine-all":196,"../internals/set-to-string-tag":208,"../internals/to-index":218,"../internals/to-integer":220,"../internals/to-length":221}],98:[function(e,w,g){var a=e("../internals/to-object"),r=e("../internals/to-absolute-index"),u=e("../internals/to-length"),l=Math.min;w.exports=[].copyWithin||function(s,t){var i=a(this),n=u(i.length),o=r(s,n),p=r(t,n),f=arguments.length>2?arguments[2]:void 0,d=l((f===void 0?n:r(f,n))-p,n-o),m=1;for(p0;)p in i?i[o]=i[p]:delete i[o],o+=m,p+=m;return i}},{"../internals/to-absolute-index":217,"../internals/to-length":221,"../internals/to-object":222}],99:[function(e,w,g){var a=e("../internals/to-object"),r=e("../internals/to-absolute-index"),u=e("../internals/to-length");w.exports=function(c){for(var s=a(this),t=u(s.length),i=arguments.length,n=r(i>1?arguments[1]:void 0,t),o=i>2?arguments[2]:void 0,p=o===void 0?t:r(o,t);p>n;)s[n++]=c;return s}},{"../internals/to-absolute-index":217,"../internals/to-length":221,"../internals/to-object":222}],100:[function(e,w,g){var a=e("../internals/array-iteration").forEach,r=e("../internals/array-method-is-strict"),u=r("forEach");w.exports=u?[].forEach:function(c){return a(this,c,arguments.length>1?arguments[1]:void 0)}},{"../internals/array-iteration":104,"../internals/array-method-is-strict":107}],101:[function(e,w,g){w.exports=function(a,r){for(var u=0,l=r.length,c=new a(l);l>u;)c[u]=r[u++];return c}},{}],102:[function(e,w,g){var a=e("../internals/function-bind-context"),r=e("../internals/to-object"),u=e("../internals/call-with-safe-iteration-closing"),l=e("../internals/is-array-iterator-method"),c=e("../internals/to-length"),s=e("../internals/create-property"),t=e("../internals/get-iterator"),i=e("../internals/get-iterator-method");w.exports=function(o){var p=r(o),f=typeof this=="function"?this:Array,d=arguments.length,m=d>1?arguments[1]:void 0,h=m!==void 0,b=i(p),S=0,v,j,y,x,O,A;if(h&&(m=a(m,d>2?arguments[2]:void 0,2)),b!=null&&!(f==Array&&l(b)))for(x=t(p,b),O=x.next,j=new f;!(y=O.call(x)).done;S++)A=h?u(x,m,[y.value,S],!0):y.value,s(j,S,A);else for(v=c(p.length),j=new f(v);v>S;S++)A=h?m(p[S],S):p[S],s(j,S,A);return j.length=S,j}},{"../internals/call-with-safe-iteration-closing":112,"../internals/create-property":122,"../internals/function-bind-context":142,"../internals/get-iterator":145,"../internals/get-iterator-method":144,"../internals/is-array-iterator-method":158,"../internals/to-length":221,"../internals/to-object":222}],103:[function(e,w,g){var a=e("../internals/to-indexed-object"),r=e("../internals/to-length"),u=e("../internals/to-absolute-index"),l=function(c){return function(s,t,i){var n=a(s),o=r(n.length),p=u(i,o),f;if(c&&t!=t){for(;o>p;)if(f=n[p++],f!=f)return!0}else for(;o>p;p++)if((c||p in n)&&n[p]===t)return c||p||0;return!c&&-1}};w.exports={includes:l(!0),indexOf:l(!1)}},{"../internals/to-absolute-index":217,"../internals/to-indexed-object":219,"../internals/to-length":221}],104:[function(e,w,g){var a=e("../internals/function-bind-context"),r=e("../internals/indexed-object"),u=e("../internals/to-object"),l=e("../internals/to-length"),c=e("../internals/array-species-create"),s=[].push,t=function(i){var n=i==1,o=i==2,p=i==3,f=i==4,d=i==6,m=i==7,h=i==5||d;return function(b,S,v,j){for(var y=u(b),x=r(y),O=a(S,v,3),A=l(x.length),E=0,_=j||c,T=n?_(b,A):o||m?_(b,0):void 0,k,F;A>E;E++)if((h||E in x)&&(k=x[E],F=O(k,E,y),i))if(n)T[E]=F;else if(F)switch(i){case 3:return!0;case 5:return k;case 6:return E;case 2:s.call(T,k)}else switch(i){case 4:return!1;case 7:s.call(T,k)}return d?-1:p||f?f:T}};w.exports={forEach:t(0),map:t(1),filter:t(2),some:t(3),every:t(4),find:t(5),findIndex:t(6),filterReject:t(7)}},{"../internals/array-species-create":111,"../internals/function-bind-context":142,"../internals/indexed-object":154,"../internals/to-length":221,"../internals/to-object":222}],105:[function(e,w,g){var a=e("../internals/to-indexed-object"),r=e("../internals/to-integer"),u=e("../internals/to-length"),l=e("../internals/array-method-is-strict"),c=Math.min,s=[].lastIndexOf,t=!!s&&1/[1].lastIndexOf(1,-0)<0,i=l("lastIndexOf"),n=t||!i;w.exports=n?function(p){if(t)return s.apply(this,arguments)||0;var f=a(this),d=u(f.length),m=d-1;for(arguments.length>1&&(m=c(m,r(arguments[1]))),m<0&&(m=d+m);m>=0;m--)if(m in f&&f[m]===p)return m||0;return-1}:s},{"../internals/array-method-is-strict":107,"../internals/to-indexed-object":219,"../internals/to-integer":220,"../internals/to-length":221}],106:[function(e,w,g){var a=e("../internals/fails"),r=e("../internals/well-known-symbol"),u=e("../internals/engine-v8-version"),l=r("species");w.exports=function(c){return u>=51||!a(function(){var s=[],t=s.constructor={};return t[l]=function(){return{foo:1}},s[c](Boolean).foo!==1})}},{"../internals/engine-v8-version":136,"../internals/fails":140,"../internals/well-known-symbol":237}],107:[function(e,w,g){var a=e("../internals/fails");w.exports=function(r,u){var l=[][r];return!!l&&a(function(){l.call(null,u||function(){throw 1},1)})}},{"../internals/fails":140}],108:[function(e,w,g){var a=e("../internals/a-function"),r=e("../internals/to-object"),u=e("../internals/indexed-object"),l=e("../internals/to-length"),c=function(s){return function(t,i,n,o){a(i);var p=r(t),f=u(p),d=l(p.length),m=s?d-1:0,h=s?-1:1;if(n<2)for(;;){if(m in f){o=f[m],m+=h;break}if(m+=h,s?m<0:d<=m)throw TypeError("Reduce of empty array with no initial value")}for(;s?m>=0:d>m;m+=h)m in f&&(o=i(o,f[m],m,p));return o}};w.exports={left:c(!1),right:c(!0)}},{"../internals/a-function":89,"../internals/indexed-object":154,"../internals/to-length":221,"../internals/to-object":222}],109:[function(e,w,g){var a=Math.floor,r=function(c,s){var t=c.length,i=a(t/2);return t<8?u(c,s):l(r(c.slice(0,i),s),r(c.slice(i),s),s)},u=function(c,s){for(var t=c.length,i=1,n,o;i0;)c[o]=c[--o];o!==i++&&(c[o]=n)}return c},l=function(c,s,t){for(var i=c.length,n=s.length,o=0,p=0,f=[];o=74)&&(t=r.match(/Chrome\/(\d+)/),t&&(i=t[1]))),w.exports=i&&+i},{"../internals/engine-user-agent":135,"../internals/global":147}],137:[function(e,w,g){var a=e("../internals/engine-user-agent"),r=a.match(/AppleWebKit\/(\d+)\./);w.exports=!!r&&+r[1]},{"../internals/engine-user-agent":135}],138:[function(e,w,g){w.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},{}],139:[function(e,w,g){var a=e("../internals/global"),r=e("../internals/object-get-own-property-descriptor").f,u=e("../internals/create-non-enumerable-property"),l=e("../internals/redefine"),c=e("../internals/set-global"),s=e("../internals/copy-constructor-properties"),t=e("../internals/is-forced");w.exports=function(i,n){var o=i.target,p=i.global,f=i.stat,d,m,h,b,S,v;if(p?m=a:f?m=a[o]||c(o,{}):m=(a[o]||{}).prototype,m)for(h in n){if(S=n[h],i.noTargetGet?(v=r(m,h),b=v&&v.value):b=m[h],d=t(p?h:o+(f?".":"#")+h,i.forced),!d&&b!==void 0){if(typeof S==typeof b)continue;s(S,b)}(i.sham||b&&b.sham)&&u(S,"sham",!0),l(m,h,S,i)}}},{"../internals/copy-constructor-properties":116,"../internals/create-non-enumerable-property":120,"../internals/global":147,"../internals/is-forced":160,"../internals/object-get-own-property-descriptor":180,"../internals/redefine":197,"../internals/set-global":206}],140:[function(e,w,g){w.exports=function(a){try{return!!a()}catch{return!0}}},{}],141:[function(e,w,g){e("../modules/es.regexp.exec");var a=e("../internals/redefine"),r=e("../internals/regexp-exec"),u=e("../internals/fails"),l=e("../internals/well-known-symbol"),c=e("../internals/create-non-enumerable-property"),s=l("species"),t=RegExp.prototype;w.exports=function(i,n,o,p){var f=l(i),d=!u(function(){var S={};return S[f]=function(){return 7},""[i](S)!=7}),m=d&&!u(function(){var S=!1,v=/a/;return i==="split"&&(v={},v.constructor={},v.constructor[s]=function(){return v},v.flags="",v[f]=/./[f]),v.exec=function(){return S=!0,null},v[f](""),!S});if(!d||!m||o){var h=/./[f],b=n(f,""[i],function(S,v,j,y,x){var O=v.exec;return O===r||O===t.exec?d&&!x?{done:!0,value:h.call(v,j,y)}:{done:!0,value:S.call(j,v,y)}:{done:!1}});a(String.prototype,i,b[0]),a(t,f,b[1])}p&&c(t[f],"sham",!0)}},{"../internals/create-non-enumerable-property":120,"../internals/fails":140,"../internals/redefine":197,"../internals/regexp-exec":199,"../internals/well-known-symbol":237,"../modules/es.regexp.exec":261}],142:[function(e,w,g){var a=e("../internals/a-function");w.exports=function(r,u,l){if(a(r),u===void 0)return r;switch(l){case 0:return function(){return r.call(u)};case 1:return function(c){return r.call(u,c)};case 2:return function(c,s){return r.call(u,c,s)};case 3:return function(c,s,t){return r.call(u,c,s,t)}}return function(){return r.apply(u,arguments)}}},{"../internals/a-function":89}],143:[function(e,w,g){var a=e("../internals/global"),r=function(u){return typeof u=="function"?u:void 0};w.exports=function(u,l){return arguments.length<2?r(a[u]):a[u]&&a[u][l]}},{"../internals/global":147}],144:[function(e,w,g){var a=e("../internals/classof"),r=e("../internals/iterators"),u=e("../internals/well-known-symbol"),l=u("iterator");w.exports=function(c){if(c!=null)return c[l]||c["@@iterator"]||r[a(c)]}},{"../internals/classof":115,"../internals/iterators":169,"../internals/well-known-symbol":237}],145:[function(e,w,g){var a=e("../internals/an-object"),r=e("../internals/get-iterator-method");w.exports=function(u,l){var c=arguments.length<2?r(u):l;if(typeof c!="function")throw TypeError(String(u)+" is not iterable");return a(c.call(u))}},{"../internals/an-object":94,"../internals/get-iterator-method":144}],146:[function(e,w,g){var a=e("../internals/to-object"),r=Math.floor,u="".replace,l=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,c=/\$([$&'`]|\d{1,2})/g;w.exports=function(s,t,i,n,o,p){var f=i+s.length,d=n.length,m=c;return o!==void 0&&(o=a(o),m=l),u.call(p,m,function(h,b){var S;switch(b.charAt(0)){case"$":return"$";case"&":return s;case"`":return t.slice(0,i);case"'":return t.slice(f);case"<":S=o[b.slice(1,-1)];break;default:var v=+b;if(v===0)return h;if(v>d){var j=r(v/10);return j===0?h:j<=d?n[j-1]===void 0?b.charAt(1):n[j-1]+b.charAt(1):h}S=n[v-1]}return S===void 0?"":S})}},{"../internals/to-object":222}],147:[function(e,w,g){(function(a){(function(){var r=function(u){return u&&u.Math==Math&&u};w.exports=r(typeof globalThis=="object"&&globalThis)||r(typeof window=="object"&&window)||r(typeof self=="object"&&self)||r(typeof a=="object"&&a)||function(){return this}()||Function("return this")()}).call(this)}).call(this,typeof xe!="undefined"?xe:typeof self!="undefined"?self:typeof window!="undefined"?window:{})},{}],148:[function(e,w,g){var a=e("../internals/to-object"),r={}.hasOwnProperty;w.exports=Object.hasOwn||function(l,c){return r.call(a(l),c)}},{"../internals/to-object":222}],149:[function(e,w,g){w.exports={}},{}],150:[function(e,w,g){var a=e("../internals/global");w.exports=function(r,u){var l=a.console;l&&l.error&&(arguments.length===1?l.error(r):l.error(r,u))}},{"../internals/global":147}],151:[function(e,w,g){var a=e("../internals/get-built-in");w.exports=a("document","documentElement")},{"../internals/get-built-in":143}],152:[function(e,w,g){var a=e("../internals/descriptors"),r=e("../internals/fails"),u=e("../internals/document-create-element");w.exports=!a&&!r(function(){return Object.defineProperty(u("div"),"a",{get:function(){return 7}}).a!=7})},{"../internals/descriptors":125,"../internals/document-create-element":126,"../internals/fails":140}],153:[function(e,w,g){var a=Math.abs,r=Math.pow,u=Math.floor,l=Math.log,c=Math.LN2,s=function(i,n,o){var p=new Array(o),f=o*8-n-1,d=(1<>1,h=n===23?r(2,-24)-r(2,-77):0,b=i<0||i===0&&1/i<0?1:0,S=0,v,j,y;for(i=a(i),i!=i||i===1/0?(j=i!=i?1:0,v=d):(v=u(l(i)/c),i*(y=r(2,-v))<1&&(v--,y*=2),v+m>=1?i+=h/y:i+=h*r(2,1-m),i*y>=2&&(v++,y/=2),v+m>=d?(j=0,v=d):v+m>=1?(j=(i*y-1)*r(2,n),v=v+m):(j=i*r(2,m-1)*r(2,n),v=0));n>=8;p[S++]=j&255,j/=256,n-=8);for(v=v<0;p[S++]=v&255,v/=256,f-=8);return p[--S]|=b*128,p},t=function(i,n){var o=i.length,p=o*8-n-1,f=(1<>1,m=p-7,h=o-1,b=i[h--],S=b&127,v;for(b>>=7;m>0;S=S*256+i[h],h--,m-=8);for(v=S&(1<<-m)-1,S>>=-m,m+=n;m>0;v=v*256+i[h],h--,m-=8);if(S===0)S=1-d;else{if(S===f)return v?NaN:b?-1/0:1/0;v=v+r(2,n),S=S-d}return(b?-1:1)*v*r(2,S-n)};w.exports={pack:s,unpack:t}},{}],154:[function(e,w,g){var a=e("../internals/fails"),r=e("../internals/classof-raw"),u="".split;w.exports=a(function(){return!Object("z").propertyIsEnumerable(0)})?function(l){return r(l)=="String"?u.call(l,""):Object(l)}:Object},{"../internals/classof-raw":114,"../internals/fails":140}],155:[function(e,w,g){var a=e("../internals/is-object"),r=e("../internals/object-set-prototype-of");w.exports=function(u,l,c){var s,t;return r&&typeof(s=l.constructor)=="function"&&s!==c&&a(t=s.prototype)&&t!==c.prototype&&r(u,t),u}},{"../internals/is-object":162,"../internals/object-set-prototype-of":188}],156:[function(e,w,g){var a=e("../internals/shared-store"),r=Function.toString;typeof a.inspectSource!="function"&&(a.inspectSource=function(u){return r.call(u)}),w.exports=a.inspectSource},{"../internals/shared-store":210}],157:[function(e,w,g){var a=e("../internals/native-weak-map"),r=e("../internals/global"),u=e("../internals/is-object"),l=e("../internals/create-non-enumerable-property"),c=e("../internals/has"),s=e("../internals/shared-store"),t=e("../internals/shared-key"),i=e("../internals/hidden-keys"),n="Object already initialized",o=r.WeakMap,p,f,d,m=function(x){return d(x)?f(x):p(x,{})},h=function(x){return function(O){var A;if(!u(O)||(A=f(O)).type!==x)throw TypeError("Incompatible receiver, "+x+" required");return A}};if(a||s.state){var b=s.state||(s.state=new o),S=b.get,v=b.has,j=b.set;p=function(x,O){if(v.call(b,x))throw new TypeError(n);return O.facade=x,j.call(b,x,O),O},f=function(x){return S.call(b,x)||{}},d=function(x){return v.call(b,x)}}else{var y=t("state");i[y]=!0,p=function(x,O){if(c(x,y))throw new TypeError(n);return O.facade=x,l(x,y,O),O},f=function(x){return c(x,y)?x[y]:{}},d=function(x){return c(x,y)}}w.exports={set:p,get:f,has:d,enforce:m,getterFor:h}},{"../internals/create-non-enumerable-property":120,"../internals/global":147,"../internals/has":148,"../internals/hidden-keys":149,"../internals/is-object":162,"../internals/native-weak-map":173,"../internals/shared-key":209,"../internals/shared-store":210}],158:[function(e,w,g){var a=e("../internals/well-known-symbol"),r=e("../internals/iterators"),u=a("iterator"),l=Array.prototype;w.exports=function(c){return c!==void 0&&(r.Array===c||l[u]===c)}},{"../internals/iterators":169,"../internals/well-known-symbol":237}],159:[function(e,w,g){var a=e("../internals/classof-raw");w.exports=Array.isArray||function(u){return a(u)=="Array"}},{"../internals/classof-raw":114}],160:[function(e,w,g){var a=e("../internals/fails"),r=/#|\.prototype\./,u=function(i,n){var o=c[l(i)];return o==t?!0:o==s?!1:typeof n=="function"?a(n):!!n},l=u.normalize=function(i){return String(i).replace(r,".").toLowerCase()},c=u.data={},s=u.NATIVE="N",t=u.POLYFILL="P";w.exports=u},{"../internals/fails":140}],161:[function(e,w,g){var a=e("../internals/is-object"),r=Math.floor;w.exports=function(l){return!a(l)&&isFinite(l)&&r(l)===l}},{"../internals/is-object":162}],162:[function(e,w,g){w.exports=function(a){return typeof a=="object"?a!==null:typeof a=="function"}},{}],163:[function(e,w,g){w.exports=!1},{}],164:[function(e,w,g){var a=e("../internals/is-object"),r=e("../internals/classof-raw"),u=e("../internals/well-known-symbol"),l=u("match");w.exports=function(c){var s;return a(c)&&((s=c[l])!==void 0?!!s:r(c)=="RegExp")}},{"../internals/classof-raw":114,"../internals/is-object":162,"../internals/well-known-symbol":237}],165:[function(e,w,g){var a=e("../internals/get-built-in"),r=e("../internals/use-symbol-as-uid");w.exports=r?function(u){return typeof u=="symbol"}:function(u){var l=a("Symbol");return typeof l=="function"&&Object(u)instanceof l}},{"../internals/get-built-in":143,"../internals/use-symbol-as-uid":235}],166:[function(e,w,g){var a=e("../internals/an-object"),r=e("../internals/is-array-iterator-method"),u=e("../internals/to-length"),l=e("../internals/function-bind-context"),c=e("../internals/get-iterator"),s=e("../internals/get-iterator-method"),t=e("../internals/iterator-close"),i=function(n,o){this.stopped=n,this.result=o};w.exports=function(n,o,p){var f=p&&p.that,d=!!(p&&p.AS_ENTRIES),m=!!(p&&p.IS_ITERATOR),h=!!(p&&p.INTERRUPTED),b=l(o,f,1+d+h),S,v,j,y,x,O,A,E=function(T){return S&&t(S,"normal",T),new i(!0,T)},_=function(T){return d?(a(T),h?b(T[0],T[1],E):b(T[0],T[1])):h?b(T,E):b(T)};if(m)S=n;else{if(v=s(n),typeof v!="function")throw TypeError("Target is not iterable");if(r(v)){for(j=0,y=u(n.length);y>j;j++)if(x=_(n[j]),x&&x instanceof i)return x;return new i(!1)}S=c(n,v)}for(O=S.next;!(A=O.call(S)).done;){try{x=_(A.value)}catch(T){t(S,"throw",T)}if(typeof x=="object"&&x&&x instanceof i)return x}return new i(!1)}},{"../internals/an-object":94,"../internals/function-bind-context":142,"../internals/get-iterator":145,"../internals/get-iterator-method":144,"../internals/is-array-iterator-method":158,"../internals/iterator-close":167,"../internals/to-length":221}],167:[function(e,w,g){var a=e("../internals/an-object");w.exports=function(r,u,l){var c,s;a(r);try{if(c=r.return,c===void 0){if(u==="throw")throw l;return l}c=c.call(r)}catch(t){s=!0,c=t}if(u==="throw")throw l;if(s)throw c;return a(c),l}},{"../internals/an-object":94}],168:[function(e,w,g){var a=e("../internals/fails"),r=e("../internals/object-get-prototype-of"),u=e("../internals/create-non-enumerable-property"),l=e("../internals/has"),c=e("../internals/well-known-symbol"),s=e("../internals/is-pure"),t=c("iterator"),i=!1,n=function(){return this},o,p,f;[].keys&&(f=[].keys(),"next"in f?(p=r(r(f)),p!==Object.prototype&&(o=p)):i=!0);var d=o==null||a(function(){var m={};return o[t].call(m)!==m});d&&(o={}),(!s||d)&&!l(o,t)&&u(o,t,n),w.exports={IteratorPrototype:o,BUGGY_SAFARI_ITERATORS:i}},{"../internals/create-non-enumerable-property":120,"../internals/fails":140,"../internals/has":148,"../internals/is-pure":163,"../internals/object-get-prototype-of":184,"../internals/well-known-symbol":237}],169:[function(e,w,g){arguments[4][149][0].apply(g,arguments)},{dup:149}],170:[function(e,w,g){var a=e("../internals/global"),r=e("../internals/object-get-own-property-descriptor").f,u=e("../internals/task").set,l=e("../internals/engine-is-ios"),c=e("../internals/engine-is-ios-pebble"),s=e("../internals/engine-is-webos-webkit"),t=e("../internals/engine-is-node"),i=a.MutationObserver||a.WebKitMutationObserver,n=a.document,o=a.process,p=a.Promise,f=r(a,"queueMicrotask"),d=f&&f.value,m,h,b,S,v,j,y,x;d||(m=function(){var O,A;for(t&&(O=o.domain)&&O.exit();h;){A=h.fn,h=h.next;try{A()}catch(E){throw h?S():b=void 0,E}}b=void 0,O&&O.enter()},!l&&!t&&!s&&i&&n?(v=!0,j=n.createTextNode(""),new i(m).observe(j,{characterData:!0}),S=function(){j.data=v=!v}):!c&&p&&p.resolve?(y=p.resolve(void 0),y.constructor=p,x=y.then,S=function(){x.call(y,m)}):t?S=function(){o.nextTick(m)}:S=function(){u.call(a,m)}),w.exports=d||function(O){var A={fn:O,next:void 0};b&&(b.next=A),h||(h=A,S()),b=A}},{"../internals/engine-is-ios":132,"../internals/engine-is-ios-pebble":131,"../internals/engine-is-node":133,"../internals/engine-is-webos-webkit":134,"../internals/global":147,"../internals/object-get-own-property-descriptor":180,"../internals/task":216}],171:[function(e,w,g){var a=e("../internals/global");w.exports=a.Promise},{"../internals/global":147}],172:[function(e,w,g){var a=e("../internals/engine-v8-version"),r=e("../internals/fails");w.exports=!!Object.getOwnPropertySymbols&&!r(function(){var u=Symbol();return!String(u)||!(Object(u)instanceof Symbol)||!Symbol.sham&&a&&a<41})},{"../internals/engine-v8-version":136,"../internals/fails":140}],173:[function(e,w,g){var a=e("../internals/global"),r=e("../internals/inspect-source"),u=a.WeakMap;w.exports=typeof u=="function"&&/native code/.test(r(u))},{"../internals/global":147,"../internals/inspect-source":156}],174:[function(e,w,g){var a=e("../internals/a-function"),r=function(u){var l,c;this.promise=new u(function(s,t){if(l!==void 0||c!==void 0)throw TypeError("Bad Promise constructor");l=s,c=t}),this.resolve=a(l),this.reject=a(c)};w.exports.f=function(u){return new r(u)}},{"../internals/a-function":89}],175:[function(e,w,g){var a=e("../internals/is-regexp");w.exports=function(r){if(a(r))throw TypeError("The method doesn't accept regular expressions");return r}},{"../internals/is-regexp":164}],176:[function(e,w,g){var a=e("../internals/descriptors"),r=e("../internals/fails"),u=e("../internals/object-keys"),l=e("../internals/object-get-own-property-symbols"),c=e("../internals/object-property-is-enumerable"),s=e("../internals/to-object"),t=e("../internals/indexed-object"),i=Object.assign,n=Object.defineProperty;w.exports=!i||r(function(){if(a&&i({b:1},i(n({},"a",{enumerable:!0,get:function(){n(this,"b",{value:3,enumerable:!1})}}),{b:2})).b!==1)return!0;var o={},p={},f=Symbol(),d="abcdefghijklmnopqrst";return o[f]=7,d.split("").forEach(function(m){p[m]=m}),i({},o)[f]!=7||u(i({},p)).join("")!=d})?function(p,f){for(var d=s(p),m=arguments.length,h=1,b=l.f,S=c.f;m>h;)for(var v=t(arguments[h++]),j=b?u(v).concat(b(v)):u(v),y=j.length,x=0,O;y>x;)O=j[x++],(!a||S.call(v,O))&&(d[O]=v[O]);return d}:i},{"../internals/descriptors":125,"../internals/fails":140,"../internals/indexed-object":154,"../internals/object-get-own-property-symbols":183,"../internals/object-keys":186,"../internals/object-property-is-enumerable":187,"../internals/to-object":222}],177:[function(e,w,g){var a=e("../internals/an-object"),r=e("../internals/object-define-properties"),u=e("../internals/enum-bug-keys"),l=e("../internals/hidden-keys"),c=e("../internals/html"),s=e("../internals/document-create-element"),t=e("../internals/shared-key"),i=">",n="<",o="prototype",p="script",f=t("IE_PROTO"),d=function(){},m=function(j){return n+p+i+j+n+"/"+p+i},h=function(j){j.write(m("")),j.close();var y=j.parentWindow.Object;return j=null,y},b=function(){var j=s("iframe"),y="java"+p+":",x;return j.style.display="none",c.appendChild(j),j.src=String(y),x=j.contentWindow.document,x.open(),x.write(m("document.F=Object")),x.close(),x.F},S,v=function(){try{S=new ActiveXObject("htmlfile")}catch{}v=typeof document!="undefined"?document.domain&&S?h(S):b():h(S);for(var j=u.length;j--;)delete v[o][u[j]];return v()};l[f]=!0,w.exports=Object.create||function(y,x){var O;return y!==null?(d[o]=a(y),O=new d,d[o]=null,O[f]=y):O=v(),x===void 0?O:r(O,x)}},{"../internals/an-object":94,"../internals/document-create-element":126,"../internals/enum-bug-keys":138,"../internals/hidden-keys":149,"../internals/html":151,"../internals/object-define-properties":178,"../internals/shared-key":209}],178:[function(e,w,g){var a=e("../internals/descriptors"),r=e("../internals/object-define-property"),u=e("../internals/an-object"),l=e("../internals/object-keys");w.exports=a?Object.defineProperties:function(s,t){u(s);for(var i=l(t),n=i.length,o=0,p;n>o;)r.f(s,p=i[o++],t[p]);return s}},{"../internals/an-object":94,"../internals/descriptors":125,"../internals/object-define-property":179,"../internals/object-keys":186}],179:[function(e,w,g){var a=e("../internals/descriptors"),r=e("../internals/ie8-dom-define"),u=e("../internals/an-object"),l=e("../internals/to-property-key"),c=Object.defineProperty;g.f=a?c:function(t,i,n){if(u(t),i=l(i),u(n),r)try{return c(t,i,n)}catch{}if("get"in n||"set"in n)throw TypeError("Accessors not supported");return"value"in n&&(t[i]=n.value),t}},{"../internals/an-object":94,"../internals/descriptors":125,"../internals/ie8-dom-define":152,"../internals/to-property-key":226}],180:[function(e,w,g){var a=e("../internals/descriptors"),r=e("../internals/object-property-is-enumerable"),u=e("../internals/create-property-descriptor"),l=e("../internals/to-indexed-object"),c=e("../internals/to-property-key"),s=e("../internals/has"),t=e("../internals/ie8-dom-define"),i=Object.getOwnPropertyDescriptor;g.f=a?i:function(o,p){if(o=l(o),p=c(p),t)try{return i(o,p)}catch{}if(s(o,p))return u(!r.f.call(o,p),o[p])}},{"../internals/create-property-descriptor":121,"../internals/descriptors":125,"../internals/has":148,"../internals/ie8-dom-define":152,"../internals/object-property-is-enumerable":187,"../internals/to-indexed-object":219,"../internals/to-property-key":226}],181:[function(e,w,g){var a=e("../internals/to-indexed-object"),r=e("../internals/object-get-own-property-names").f,u={}.toString,l=typeof window=="object"&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],c=function(s){try{return r(s)}catch{return l.slice()}};w.exports.f=function(t){return l&&u.call(t)=="[object Window]"?c(t):r(a(t))}},{"../internals/object-get-own-property-names":182,"../internals/to-indexed-object":219}],182:[function(e,w,g){var a=e("../internals/object-keys-internal"),r=e("../internals/enum-bug-keys"),u=r.concat("length","prototype");g.f=Object.getOwnPropertyNames||function(c){return a(c,u)}},{"../internals/enum-bug-keys":138,"../internals/object-keys-internal":185}],183:[function(e,w,g){g.f=Object.getOwnPropertySymbols},{}],184:[function(e,w,g){var a=e("../internals/has"),r=e("../internals/to-object"),u=e("../internals/shared-key"),l=e("../internals/correct-prototype-getter"),c=u("IE_PROTO"),s=Object.prototype;w.exports=l?Object.getPrototypeOf:function(t){return t=r(t),a(t,c)?t[c]:typeof t.constructor=="function"&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?s:null}},{"../internals/correct-prototype-getter":118,"../internals/has":148,"../internals/shared-key":209,"../internals/to-object":222}],185:[function(e,w,g){var a=e("../internals/has"),r=e("../internals/to-indexed-object"),u=e("../internals/array-includes").indexOf,l=e("../internals/hidden-keys");w.exports=function(c,s){var t=r(c),i=0,n=[],o;for(o in t)!a(l,o)&&a(t,o)&&n.push(o);for(;s.length>i;)a(t,o=s[i++])&&(~u(n,o)||n.push(o));return n}},{"../internals/array-includes":103,"../internals/has":148,"../internals/hidden-keys":149,"../internals/to-indexed-object":219}],186:[function(e,w,g){var a=e("../internals/object-keys-internal"),r=e("../internals/enum-bug-keys");w.exports=Object.keys||function(l){return a(l,r)}},{"../internals/enum-bug-keys":138,"../internals/object-keys-internal":185}],187:[function(e,w,g){var a={}.propertyIsEnumerable,r=Object.getOwnPropertyDescriptor,u=r&&!a.call({1:2},1);g.f=u?function(c){var s=r(this,c);return!!s&&s.enumerable}:a},{}],188:[function(e,w,g){var a=e("../internals/an-object"),r=e("../internals/a-possible-prototype");w.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var u=!1,l={},c;try{c=Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set,c.call(l,[]),u=l instanceof Array}catch{}return function(t,i){return a(t),r(i),u?c.call(t,i):t.__proto__=i,t}}():void 0)},{"../internals/a-possible-prototype":90,"../internals/an-object":94}],189:[function(e,w,g){var a=e("../internals/descriptors"),r=e("../internals/object-keys"),u=e("../internals/to-indexed-object"),l=e("../internals/object-property-is-enumerable").f,c=function(s){return function(t){for(var i=u(t),n=r(i),o=n.length,p=0,f=[],d;o>p;)d=n[p++],(!a||l.call(i,d))&&f.push(s?[d,i[d]]:i[d]);return f}};w.exports={entries:c(!0),values:c(!1)}},{"../internals/descriptors":125,"../internals/object-keys":186,"../internals/object-property-is-enumerable":187,"../internals/to-indexed-object":219}],190:[function(e,w,g){var a=e("../internals/to-string-tag-support"),r=e("../internals/classof");w.exports=a?{}.toString:function(){return"[object "+r(this)+"]"}},{"../internals/classof":115,"../internals/to-string-tag-support":227}],191:[function(e,w,g){var a=e("../internals/is-object");w.exports=function(r,u){var l,c;if(u==="string"&&typeof(l=r.toString)=="function"&&!a(c=l.call(r))||typeof(l=r.valueOf)=="function"&&!a(c=l.call(r))||u!=="string"&&typeof(l=r.toString)=="function"&&!a(c=l.call(r)))return c;throw TypeError("Can't convert object to primitive value")}},{"../internals/is-object":162}],192:[function(e,w,g){var a=e("../internals/get-built-in"),r=e("../internals/object-get-own-property-names"),u=e("../internals/object-get-own-property-symbols"),l=e("../internals/an-object");w.exports=a("Reflect","ownKeys")||function(s){var t=r.f(l(s)),i=u.f;return i?t.concat(i(s)):t}},{"../internals/an-object":94,"../internals/get-built-in":143,"../internals/object-get-own-property-names":182,"../internals/object-get-own-property-symbols":183}],193:[function(e,w,g){var a=e("../internals/global");w.exports=a},{"../internals/global":147}],194:[function(e,w,g){w.exports=function(a){try{return{error:!1,value:a()}}catch(r){return{error:!0,value:r}}}},{}],195:[function(e,w,g){var a=e("../internals/an-object"),r=e("../internals/is-object"),u=e("../internals/new-promise-capability");w.exports=function(l,c){if(a(l),r(c)&&c.constructor===l)return c;var s=u.f(l),t=s.resolve;return t(c),s.promise}},{"../internals/an-object":94,"../internals/is-object":162,"../internals/new-promise-capability":174}],196:[function(e,w,g){var a=e("../internals/redefine");w.exports=function(r,u,l){for(var c in u)a(r,c,u[c],l);return r}},{"../internals/redefine":197}],197:[function(e,w,g){var a=e("../internals/global"),r=e("../internals/create-non-enumerable-property"),u=e("../internals/has"),l=e("../internals/set-global"),c=e("../internals/inspect-source"),s=e("../internals/internal-state"),t=s.get,i=s.enforce,n=String(String).split("String");(w.exports=function(o,p,f,d){var m=d?!!d.unsafe:!1,h=d?!!d.enumerable:!1,b=d?!!d.noTargetGet:!1,S;if(typeof f=="function"&&(typeof p=="string"&&!u(f,"name")&&r(f,"name",p),S=i(f),S.source||(S.source=n.join(typeof p=="string"?p:""))),o===a){h?o[p]=f:l(p,f);return}else m?!b&&o[p]&&(h=!0):delete o[p];h?o[p]=f:r(o,p,f)})(Function.prototype,"toString",function(){return typeof this=="function"&&t(this).source||c(this)})},{"../internals/create-non-enumerable-property":120,"../internals/global":147,"../internals/has":148,"../internals/inspect-source":156,"../internals/internal-state":157,"../internals/set-global":206}],198:[function(e,w,g){var a=e("./classof-raw"),r=e("./regexp-exec");w.exports=function(u,l){var c=u.exec;if(typeof c=="function"){var s=c.call(u,l);if(typeof s!="object")throw TypeError("RegExp exec method returned something other than an Object or null");return s}if(a(u)!=="RegExp")throw TypeError("RegExp#exec called on incompatible receiver");return r.call(u,l)}},{"./classof-raw":114,"./regexp-exec":199}],199:[function(e,w,g){var a=e("../internals/to-string"),r=e("../internals/regexp-flags"),u=e("../internals/regexp-sticky-helpers"),l=e("../internals/shared"),c=e("../internals/object-create"),s=e("../internals/internal-state").get,t=e("../internals/regexp-unsupported-dot-all"),i=e("../internals/regexp-unsupported-ncg"),n=RegExp.prototype.exec,o=l("native-string-replace",String.prototype.replace),p=n,f=function(){var b=/a/,S=/b*/g;return n.call(b,"a"),n.call(S,"a"),b.lastIndex!==0||S.lastIndex!==0}(),d=u.UNSUPPORTED_Y||u.BROKEN_CARET,m=/()??/.exec("")[1]!==void 0,h=f||m||d||t||i;h&&(p=function(S){var v=this,j=s(v),y=a(S),x=j.raw,O,A,E,_,T,k,F;if(x)return x.lastIndex=v.lastIndex,O=p.call(x,y),v.lastIndex=x.lastIndex,O;var W=j.groups,V=d&&v.sticky,L=r.call(v),Y=v.source,re=0,z=y;if(V&&(L=L.replace("y",""),L.indexOf("g")===-1&&(L+="g"),z=y.slice(v.lastIndex),v.lastIndex>0&&(!v.multiline||v.multiline&&y.charAt(v.lastIndex-1)!==` +`)&&(Y="(?: "+Y+")",z=" "+z,re++),A=new RegExp("^(?:"+Y+")",L)),m&&(A=new RegExp("^"+Y+"$(?!\\s)",L)),f&&(E=v.lastIndex),_=n.call(V?A:v,z),V?_?(_.input=_.input.slice(re),_[0]=_[0].slice(re),_.index=v.lastIndex,v.lastIndex+=_[0].length):v.lastIndex=0:f&&_&&(v.lastIndex=v.global?_.index+_[0].length:E),m&&_&&_.length>1&&o.call(_[0],A,function(){for(T=1;Tb)","g");return l.exec("b").groups.a!=="b"||"b".replace(l,"$c")!=="bc"})},{"../internals/global":147,"./fails":140}],204:[function(e,w,g){w.exports=function(a){if(a==null)throw TypeError("Can't call method on "+a);return a}},{}],205:[function(e,w,g){w.exports=Object.is||function(r,u){return r===u?r!==0||1/r===1/u:r!=r&&u!=u}},{}],206:[function(e,w,g){var a=e("../internals/global");w.exports=function(r,u){try{Object.defineProperty(a,r,{value:u,configurable:!0,writable:!0})}catch{a[r]=u}return u}},{"../internals/global":147}],207:[function(e,w,g){var a=e("../internals/get-built-in"),r=e("../internals/object-define-property"),u=e("../internals/well-known-symbol"),l=e("../internals/descriptors"),c=u("species");w.exports=function(s){var t=a(s),i=r.f;l&&t&&!t[c]&&i(t,c,{configurable:!0,get:function(){return this}})}},{"../internals/descriptors":125,"../internals/get-built-in":143,"../internals/object-define-property":179,"../internals/well-known-symbol":237}],208:[function(e,w,g){var a=e("../internals/object-define-property").f,r=e("../internals/has"),u=e("../internals/well-known-symbol"),l=u("toStringTag");w.exports=function(c,s,t){c&&!r(c=t?c:c.prototype,l)&&a(c,l,{configurable:!0,value:s})}},{"../internals/has":148,"../internals/object-define-property":179,"../internals/well-known-symbol":237}],209:[function(e,w,g){var a=e("../internals/shared"),r=e("../internals/uid"),u=a("keys");w.exports=function(l){return u[l]||(u[l]=r(l))}},{"../internals/shared":211,"../internals/uid":234}],210:[function(e,w,g){var a=e("../internals/global"),r=e("../internals/set-global"),u="__core-js_shared__",l=a[u]||r(u,{});w.exports=l},{"../internals/global":147,"../internals/set-global":206}],211:[function(e,w,g){var a=e("../internals/is-pure"),r=e("../internals/shared-store");(w.exports=function(u,l){return r[u]||(r[u]=l!==void 0?l:{})})("versions",[]).push({version:"3.17.2",mode:a?"pure":"global",copyright:"\xA9 2021 Denis Pushkarev (zloirock.ru)"})},{"../internals/is-pure":163,"../internals/shared-store":210}],212:[function(e,w,g){var a=e("../internals/an-object"),r=e("../internals/a-function"),u=e("../internals/well-known-symbol"),l=u("species");w.exports=function(c,s){var t=a(c).constructor,i;return t===void 0||(i=a(t)[l])==null?s:r(i)}},{"../internals/a-function":89,"../internals/an-object":94,"../internals/well-known-symbol":237}],213:[function(e,w,g){var a=e("../internals/to-integer"),r=e("../internals/to-string"),u=e("../internals/require-object-coercible"),l=function(c){return function(s,t){var i=r(u(s)),n=a(t),o=i.length,p,f;return n<0||n>=o?c?"":void 0:(p=i.charCodeAt(n),p<55296||p>56319||n+1===o||(f=i.charCodeAt(n+1))<56320||f>57343?c?i.charAt(n):p:c?i.slice(n,n+2):(p-55296<<10)+(f-56320)+65536)}};w.exports={codeAt:l(!1),charAt:l(!0)}},{"../internals/require-object-coercible":204,"../internals/to-integer":220,"../internals/to-string":228}],214:[function(e,w,g){var a=e("../internals/fails"),r=e("../internals/whitespaces"),u="\u200B\x85\u180E";w.exports=function(l){return a(function(){return!!r[l]()||u[l]()!=u||r[l].name!==l})}},{"../internals/fails":140,"../internals/whitespaces":238}],215:[function(e,w,g){var a=e("../internals/require-object-coercible"),r=e("../internals/to-string"),u=e("../internals/whitespaces"),l="["+u+"]",c=RegExp("^"+l+l+"*"),s=RegExp(l+l+"*$"),t=function(i){return function(n){var o=r(a(n));return i&1&&(o=o.replace(c,"")),i&2&&(o=o.replace(s,"")),o}};w.exports={start:t(1),end:t(2),trim:t(3)}},{"../internals/require-object-coercible":204,"../internals/to-string":228,"../internals/whitespaces":238}],216:[function(e,w,g){var a=e("../internals/global"),r=e("../internals/fails"),u=e("../internals/function-bind-context"),l=e("../internals/html"),c=e("../internals/document-create-element"),s=e("../internals/engine-is-ios"),t=e("../internals/engine-is-node"),i=a.setImmediate,n=a.clearImmediate,o=a.process,p=a.MessageChannel,f=a.Dispatch,d=0,m={},h="onreadystatechange",b,S,v,j;try{b=a.location}catch{}var y=function(E){if(m.hasOwnProperty(E)){var _=m[E];delete m[E],_()}},x=function(E){return function(){y(E)}},O=function(E){y(E.data)},A=function(E){a.postMessage(String(E),b.protocol+"//"+b.host)};(!i||!n)&&(i=function(_){for(var T=[],k=arguments.length,F=1;k>F;)T.push(arguments[F++]);return m[++d]=function(){(typeof _=="function"?_:Function(_)).apply(void 0,T)},S(d),d},n=function(_){delete m[_]},t?S=function(E){o.nextTick(x(E))}:f&&f.now?S=function(E){f.now(x(E))}:p&&!s?(v=new p,j=v.port2,v.port1.onmessage=O,S=u(j.postMessage,j,1)):a.addEventListener&&typeof postMessage=="function"&&!a.importScripts&&b&&b.protocol!=="file:"&&!r(A)?(S=A,a.addEventListener("message",O,!1)):h in c("script")?S=function(E){l.appendChild(c("script"))[h]=function(){l.removeChild(this),y(E)}}:S=function(E){setTimeout(x(E),0)}),w.exports={set:i,clear:n}},{"../internals/document-create-element":126,"../internals/engine-is-ios":132,"../internals/engine-is-node":133,"../internals/fails":140,"../internals/function-bind-context":142,"../internals/global":147,"../internals/html":151}],217:[function(e,w,g){var a=e("../internals/to-integer"),r=Math.max,u=Math.min;w.exports=function(l,c){var s=a(l);return s<0?r(s+c,0):u(s,c)}},{"../internals/to-integer":220}],218:[function(e,w,g){var a=e("../internals/to-integer"),r=e("../internals/to-length");w.exports=function(u){if(u===void 0)return 0;var l=a(u),c=r(l);if(l!==c)throw RangeError("Wrong length or index");return c}},{"../internals/to-integer":220,"../internals/to-length":221}],219:[function(e,w,g){var a=e("../internals/indexed-object"),r=e("../internals/require-object-coercible");w.exports=function(u){return a(r(u))}},{"../internals/indexed-object":154,"../internals/require-object-coercible":204}],220:[function(e,w,g){var a=Math.ceil,r=Math.floor;w.exports=function(u){return isNaN(u=+u)?0:(u>0?r:a)(u)}},{}],221:[function(e,w,g){var a=e("../internals/to-integer"),r=Math.min;w.exports=function(u){return u>0?r(a(u),9007199254740991):0}},{"../internals/to-integer":220}],222:[function(e,w,g){var a=e("../internals/require-object-coercible");w.exports=function(r){return Object(a(r))}},{"../internals/require-object-coercible":204}],223:[function(e,w,g){var a=e("../internals/to-positive-integer");w.exports=function(r,u){var l=a(r);if(l%u)throw RangeError("Wrong offset");return l}},{"../internals/to-positive-integer":224}],224:[function(e,w,g){var a=e("../internals/to-integer");w.exports=function(r){var u=a(r);if(u<0)throw RangeError("The argument can't be less than 0");return u}},{"../internals/to-integer":220}],225:[function(e,w,g){var a=e("../internals/is-object"),r=e("../internals/is-symbol"),u=e("../internals/ordinary-to-primitive"),l=e("../internals/well-known-symbol"),c=l("toPrimitive");w.exports=function(s,t){if(!a(s)||r(s))return s;var i=s[c],n;if(i!==void 0){if(t===void 0&&(t="default"),n=i.call(s,t),!a(n)||r(n))return n;throw TypeError("Can't convert object to primitive value")}return t===void 0&&(t="number"),u(s,t)}},{"../internals/is-object":162,"../internals/is-symbol":165,"../internals/ordinary-to-primitive":191,"../internals/well-known-symbol":237}],226:[function(e,w,g){var a=e("../internals/to-primitive"),r=e("../internals/is-symbol");w.exports=function(u){var l=a(u,"string");return r(l)?l:String(l)}},{"../internals/is-symbol":165,"../internals/to-primitive":225}],227:[function(e,w,g){var a=e("../internals/well-known-symbol"),r=a("toStringTag"),u={};u[r]="z",w.exports=String(u)==="[object z]"},{"../internals/well-known-symbol":237}],228:[function(e,w,g){var a=e("../internals/is-symbol");w.exports=function(r){if(a(r))throw TypeError("Cannot convert a Symbol value to a string");return String(r)}},{"../internals/is-symbol":165}],229:[function(e,w,g){var a=e("../internals/export"),r=e("../internals/global"),u=e("../internals/descriptors"),l=e("../internals/typed-array-constructors-require-wrappers"),c=e("../internals/array-buffer-view-core"),s=e("../internals/array-buffer"),t=e("../internals/an-instance"),i=e("../internals/create-property-descriptor"),n=e("../internals/create-non-enumerable-property"),o=e("../internals/is-integer"),p=e("../internals/to-length"),f=e("../internals/to-index"),d=e("../internals/to-offset"),m=e("../internals/to-property-key"),h=e("../internals/has"),b=e("../internals/classof"),S=e("../internals/is-object"),v=e("../internals/is-symbol"),j=e("../internals/object-create"),y=e("../internals/object-set-prototype-of"),x=e("../internals/object-get-own-property-names").f,O=e("../internals/typed-array-from"),A=e("../internals/array-iteration").forEach,E=e("../internals/set-species"),_=e("../internals/object-define-property"),T=e("../internals/object-get-own-property-descriptor"),k=e("../internals/internal-state"),F=e("../internals/inherit-if-required"),W=k.get,V=k.set,L=_.f,Y=T.f,re=Math.round,z=r.RangeError,G=s.ArrayBuffer,U=s.DataView,P=c.NATIVE_ARRAY_BUFFER_VIEWS,B=c.TYPED_ARRAY_CONSTRUCTOR,K=c.TYPED_ARRAY_TAG,J=c.TypedArray,q=c.TypedArrayPrototype,X=c.aTypedArrayConstructor,ae=c.isTypedArray,M="BYTES_PER_ELEMENT",D="Wrong length",N=function(ce,oe){for(var me=0,ge=oe.length,$=new(X(ce))(ge);ge>me;)$[me]=oe[me++];return $},I=function(ce,oe){L(ce,oe,{get:function(){return W(this)[oe]}})},te=function(ce){var oe;return ce instanceof G||(oe=b(ce))=="ArrayBuffer"||oe=="SharedArrayBuffer"},Q=function(ce,oe){return ae(ce)&&!v(oe)&&oe in ce&&o(+oe)&&oe>=0},Z=function(oe,me){return me=m(me),Q(oe,me)?i(2,oe[me]):Y(oe,me)},ie=function(oe,me,ge){return me=m(me),Q(oe,me)&&S(ge)&&h(ge,"value")&&!h(ge,"get")&&!h(ge,"set")&&!ge.configurable&&(!h(ge,"writable")||ge.writable)&&(!h(ge,"enumerable")||ge.enumerable)?(oe[me]=ge.value,oe):L(oe,me,ge)};u?(P||(T.f=Z,_.f=ie,I(q,"buffer"),I(q,"byteOffset"),I(q,"byteLength"),I(q,"length")),a({target:"Object",stat:!0,forced:!P},{getOwnPropertyDescriptor:Z,defineProperty:ie}),w.exports=function(ce,oe,me){var ge=ce.match(/\d+$/)[0]/8,$=ce+(me?"Clamped":"")+"Array",R="get"+ce,C="set"+ce,H=r[$],ee=H,ne=ee&&ee.prototype,ue={},se=function(we,ye){var le=W(we);return le.view[R](ye*ge+le.byteOffset,!0)},de=function(we,ye,le){var fe=W(we);me&&(le=(le=re(le))<0?0:le>255?255:le&255),fe.view[C](ye*ge+fe.byteOffset,le,!0)},be=function(we,ye){L(we,ye,{get:function(){return se(this,ye)},set:function(le){return de(this,ye,le)},enumerable:!0})};P?l&&(ee=oe(function(we,ye,le,fe){return t(we,ee,$),F(function(){return S(ye)?te(ye)?fe!==void 0?new H(ye,d(le,ge),fe):le!==void 0?new H(ye,d(le,ge)):new H(ye):ae(ye)?N(ee,ye):O.call(ee,ye):new H(f(ye))}(),we,ee)}),y&&y(ee,J),A(x(H),function(we){we in ee||n(ee,we,H[we])}),ee.prototype=ne):(ee=oe(function(we,ye,le,fe){t(we,ee,$);var pe=0,he=0,ve,je,Te;if(!S(ye))Te=f(ye),je=Te*ge,ve=new G(je);else if(te(ye)){ve=ye,he=d(le,ge);var Ee=ye.byteLength;if(fe===void 0){if(Ee%ge||(je=Ee-he,je<0))throw z(D)}else if(je=p(fe)*ge,je+he>Ee)throw z(D);Te=je/ge}else return ae(ye)?N(ee,ye):O.call(ee,ye);for(V(we,{buffer:ve,byteOffset:he,byteLength:je,length:Te,view:new U(ve)});pe1?arguments[1]:void 0,d=f!==void 0,m=l(o),h,b,S,v,j,y;if(m!=null&&!c(m))for(j=u(o,m),y=j.next,o=[];!(v=y.call(j)).done;)o.push(v.value);for(d&&p>2&&(f=s(f,arguments[2],2)),b=r(o.length),S=new(t(this))(b),h=0;b>h;h++)S[h]=d?f(o[h],h):o[h];return S}},{"../internals/array-buffer-view-core":96,"../internals/function-bind-context":142,"../internals/get-iterator":145,"../internals/get-iterator-method":144,"../internals/is-array-iterator-method":158,"../internals/to-length":221,"../internals/to-object":222}],233:[function(e,w,g){var a=e("../internals/array-buffer-view-core"),r=e("../internals/species-constructor"),u=a.TYPED_ARRAY_CONSTRUCTOR,l=a.aTypedArrayConstructor;w.exports=function(c){return l(r(c,c[u]))}},{"../internals/array-buffer-view-core":96,"../internals/species-constructor":212}],234:[function(e,w,g){var a=0,r=Math.random();w.exports=function(u){return"Symbol("+String(u===void 0?"":u)+")_"+(++a+r).toString(36)}},{}],235:[function(e,w,g){var a=e("../internals/native-symbol");w.exports=a&&!Symbol.sham&&typeof Symbol.iterator=="symbol"},{"../internals/native-symbol":172}],236:[function(e,w,g){var a=e("../internals/well-known-symbol");g.f=a},{"../internals/well-known-symbol":237}],237:[function(e,w,g){var a=e("../internals/global"),r=e("../internals/shared"),u=e("../internals/has"),l=e("../internals/uid"),c=e("../internals/native-symbol"),s=e("../internals/use-symbol-as-uid"),t=r("wks"),i=a.Symbol,n=s?i:i&&i.withoutSetter||l;w.exports=function(o){return(!u(t,o)||!(c||typeof t[o]=="string"))&&(c&&u(i,o)?t[o]=i[o]:t[o]=n("Symbol."+o)),t[o]}},{"../internals/global":147,"../internals/has":148,"../internals/native-symbol":172,"../internals/shared":211,"../internals/uid":234,"../internals/use-symbol-as-uid":235}],238:[function(e,w,g){w.exports=` +\v\f\r \xA0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF`},{}],239:[function(e,w,g){var a=e("../internals/export"),r=e("../internals/global"),u=e("../internals/array-buffer"),l=e("../internals/set-species"),c="ArrayBuffer",s=u[c],t=r[c];a({global:!0,forced:t!==s},{ArrayBuffer:s}),l(c)},{"../internals/array-buffer":97,"../internals/export":139,"../internals/global":147,"../internals/set-species":207}],240:[function(e,w,g){var a=e("../internals/export"),r=e("../internals/fails"),u=e("../internals/array-buffer"),l=e("../internals/an-object"),c=e("../internals/to-absolute-index"),s=e("../internals/to-length"),t=e("../internals/species-constructor"),i=u.ArrayBuffer,n=u.DataView,o=i.prototype.slice,p=r(function(){return!new i(2).slice(1,void 0).byteLength});a({target:"ArrayBuffer",proto:!0,unsafe:!0,forced:p},{slice:function(d,m){if(o!==void 0&&m===void 0)return o.call(l(this),d);for(var h=l(this).byteLength,b=c(d,h),S=c(m===void 0?h:m,h),v=new(t(this,i))(s(S-b)),j=new n(this),y=new n(v),x=0;b=51||!r(function(){var j=[];return j[f]=!1,j.concat()[0]!==j}),b=n("concat"),S=function(j){if(!l(j))return!1;var y=j[f];return y!==void 0?!!y:u(j)},v=!h||!b;a({target:"Array",proto:!0,forced:v},{concat:function(y){var x=c(this),O=i(x,0),A=0,E,_,T,k,F;for(E=-1,T=arguments.length;Ed)throw TypeError(m);for(_=0;_=d)throw TypeError(m);t(O,A++,F)}return O.length=A,O}})},{"../internals/array-method-has-species-support":106,"../internals/array-species-create":111,"../internals/create-property":122,"../internals/engine-v8-version":136,"../internals/export":139,"../internals/fails":140,"../internals/is-array":159,"../internals/is-object":162,"../internals/to-length":221,"../internals/to-object":222,"../internals/well-known-symbol":237}],242:[function(e,w,g){var a=e("../internals/export"),r=e("../internals/array-fill"),u=e("../internals/add-to-unscopables");a({target:"Array",proto:!0},{fill:r}),u("fill")},{"../internals/add-to-unscopables":91,"../internals/array-fill":99,"../internals/export":139}],243:[function(e,w,g){var a=e("../internals/export"),r=e("../internals/array-iteration").filter,u=e("../internals/array-method-has-species-support"),l=u("filter");a({target:"Array",proto:!0,forced:!l},{filter:function(s){return r(this,s,arguments.length>1?arguments[1]:void 0)}})},{"../internals/array-iteration":104,"../internals/array-method-has-species-support":106,"../internals/export":139}],244:[function(e,w,g){var a=e("../internals/export"),r=e("../internals/array-iteration").find,u=e("../internals/add-to-unscopables"),l="find",c=!0;l in[]&&Array(1)[l](function(){c=!1}),a({target:"Array",proto:!0,forced:c},{find:function(t){return r(this,t,arguments.length>1?arguments[1]:void 0)}}),u(l)},{"../internals/add-to-unscopables":91,"../internals/array-iteration":104,"../internals/export":139}],245:[function(e,w,g){var a=e("../internals/export"),r=e("../internals/array-from"),u=e("../internals/check-correctness-of-iteration"),l=!u(function(c){Array.from(c)});a({target:"Array",stat:!0,forced:l},{from:r})},{"../internals/array-from":102,"../internals/check-correctness-of-iteration":113,"../internals/export":139}],246:[function(e,w,g){var a=e("../internals/export"),r=e("../internals/array-includes").includes,u=e("../internals/add-to-unscopables");a({target:"Array",proto:!0},{includes:function(c){return r(this,c,arguments.length>1?arguments[1]:void 0)}}),u("includes")},{"../internals/add-to-unscopables":91,"../internals/array-includes":103,"../internals/export":139}],247:[function(e,w,g){var a=e("../internals/to-indexed-object"),r=e("../internals/add-to-unscopables"),u=e("../internals/iterators"),l=e("../internals/internal-state"),c=e("../internals/define-iterator"),s="Array Iterator",t=l.set,i=l.getterFor(s);w.exports=c(Array,"Array",function(n,o){t(this,{type:s,target:a(n),index:0,kind:o})},function(){var n=i(this),o=n.target,p=n.kind,f=n.index++;return!o||f>=o.length?(n.target=void 0,{value:void 0,done:!0}):p=="keys"?{value:f,done:!1}:p=="values"?{value:o[f],done:!1}:{value:[f,o[f]],done:!1}},"values"),u.Arguments=u.Array,r("keys"),r("values"),r("entries")},{"../internals/add-to-unscopables":91,"../internals/define-iterator":123,"../internals/internal-state":157,"../internals/iterators":169,"../internals/to-indexed-object":219}],248:[function(e,w,g){var a=e("../internals/export"),r=e("../internals/indexed-object"),u=e("../internals/to-indexed-object"),l=e("../internals/array-method-is-strict"),c=[].join,s=r!=Object,t=l("join",",");a({target:"Array",proto:!0,forced:s||!t},{join:function(n){return c.call(u(this),n===void 0?",":n)}})},{"../internals/array-method-is-strict":107,"../internals/export":139,"../internals/indexed-object":154,"../internals/to-indexed-object":219}],249:[function(e,w,g){var a=e("../internals/export"),r=e("../internals/array-iteration").map,u=e("../internals/array-method-has-species-support"),l=u("map");a({target:"Array",proto:!0,forced:!l},{map:function(s){return r(this,s,arguments.length>1?arguments[1]:void 0)}})},{"../internals/array-iteration":104,"../internals/array-method-has-species-support":106,"../internals/export":139}],250:[function(e,w,g){var a=e("../internals/export"),r=e("../internals/is-object"),u=e("../internals/is-array"),l=e("../internals/to-absolute-index"),c=e("../internals/to-length"),s=e("../internals/to-indexed-object"),t=e("../internals/create-property"),i=e("../internals/well-known-symbol"),n=e("../internals/array-method-has-species-support"),o=n("slice"),p=i("species"),f=[].slice,d=Math.max;a({target:"Array",proto:!0,forced:!o},{slice:function(h,b){var S=s(this),v=c(S.length),j=l(h,v),y=l(b===void 0?v:b,v),x,O,A;if(u(S)&&(x=S.constructor,typeof x=="function"&&(x===Array||u(x.prototype))?x=void 0:r(x)&&(x=x[p],x===null&&(x=void 0)),x===Array||x===void 0))return f.call(S,j,y);for(O=new(x===void 0?Array:x)(d(y-j,0)),A=0;j3)){if(o)return!0;if(f)return f<603;var x="",O,A,E,_;for(O=65;O<76;O++){switch(A=String.fromCharCode(O),O){case 66:case 69:case 70:case 72:E=3;break;case 68:case 71:E=4;break;default:E=2}for(_=0;_<47;_++)d.push({k:A+_,v:E})}for(d.sort(function(T,k){return k.v-T.v}),_=0;_c(A)?1:-1}};a({target:"Array",proto:!0,forced:j},{sort:function(O){O!==void 0&&r(O);var A=u(this);if(v)return O===void 0?m.call(A):m.call(A,O);var E=[],_=l(A.length),T,k;for(k=0;k<_;k++)k in A&&E.push(A[k]);for(E=t(E,y(O)),T=E.length,k=0;kf)throw TypeError(d);for(A=s(S,O),E=0;Ev-O+x;E--)delete S[E-1]}else if(x>O)for(E=v-O;E>j;E--)_=E+O-1,T=E+x-1,_ in S?S[T]=S[_]:delete S[T];for(E=0;E2){if(T=h(T),k=T.charCodeAt(0),k===43||k===45){if(F=T.charCodeAt(2),F===88||F===120)return NaN}else if(k===48){switch(T.charCodeAt(1)){case 66:case 98:W=2,V=49;break;case 79:case 111:W=8,V=55;break;default:return+T}for(L=T.slice(2),Y=L.length,re=0;reV)return NaN;return parseInt(L,W)}}return+T};if(u(b,!S(" 0o1")||!S("0b1")||S("+0x1"))){for(var x=function(T){var k=arguments.length<1?0:T,F=this;return F instanceof x&&(j?o(function(){v.valueOf.call(F)}):s(F)!=b)?t(new S(y(k)),F,x):y(k)},O=a?f(S):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger,fromString,range".split(","),A=0,E;O.length>A;A++)c(S,E=O[A])&&!c(x,E)&&m(x,E,d(S,E));x.prototype=v,v.constructor=x,l(r,b,x)}},{"../internals/classof-raw":114,"../internals/descriptors":125,"../internals/fails":140,"../internals/global":147,"../internals/has":148,"../internals/inherit-if-required":155,"../internals/is-forced":160,"../internals/is-symbol":165,"../internals/object-create":177,"../internals/object-define-property":179,"../internals/object-get-own-property-descriptor":180,"../internals/object-get-own-property-names":182,"../internals/redefine":197,"../internals/string-trim":215,"../internals/to-primitive":225}],255:[function(e,w,g){var a=e("../internals/export"),r=e("../internals/object-assign");a({target:"Object",stat:!0,forced:Object.assign!==r},{assign:r})},{"../internals/export":139,"../internals/object-assign":176}],256:[function(e,w,g){var a=e("../internals/export"),r=e("../internals/object-to-array").entries;a({target:"Object",stat:!0},{entries:function(l){return r(l)}})},{"../internals/export":139,"../internals/object-to-array":189}],257:[function(e,w,g){var a=e("../internals/export"),r=e("../internals/to-object"),u=e("../internals/object-keys"),l=e("../internals/fails"),c=l(function(){u(1)});a({target:"Object",stat:!0,forced:c},{keys:function(t){return u(r(t))}})},{"../internals/export":139,"../internals/fails":140,"../internals/object-keys":186,"../internals/to-object":222}],258:[function(e,w,g){var a=e("../internals/to-string-tag-support"),r=e("../internals/redefine"),u=e("../internals/object-to-string");a||r(Object.prototype,"toString",u,{unsafe:!0})},{"../internals/object-to-string":190,"../internals/redefine":197,"../internals/to-string-tag-support":227}],259:[function(e,w,g){var a=e("../internals/export"),r=e("../internals/is-pure"),u=e("../internals/global"),l=e("../internals/get-built-in"),c=e("../internals/native-promise-constructor"),s=e("../internals/redefine"),t=e("../internals/redefine-all"),i=e("../internals/object-set-prototype-of"),n=e("../internals/set-to-string-tag"),o=e("../internals/set-species"),p=e("../internals/is-object"),f=e("../internals/a-function"),d=e("../internals/an-instance"),m=e("../internals/inspect-source"),h=e("../internals/iterate"),b=e("../internals/check-correctness-of-iteration"),S=e("../internals/species-constructor"),v=e("../internals/task").set,j=e("../internals/microtask"),y=e("../internals/promise-resolve"),x=e("../internals/host-report-errors"),O=e("../internals/new-promise-capability"),A=e("../internals/perform"),E=e("../internals/internal-state"),_=e("../internals/is-forced"),T=e("../internals/well-known-symbol"),k=e("../internals/engine-is-browser"),F=e("../internals/engine-is-node"),W=e("../internals/engine-v8-version"),V=T("species"),L="Promise",Y=E.get,re=E.set,z=E.getterFor(L),G=c&&c.prototype,U=c,P=G,B=u.TypeError,K=u.document,J=u.process,q=O.f,X=q,ae=!!(K&&K.createEvent&&u.dispatchEvent),M=typeof PromiseRejectionEvent=="function",D="unhandledrejection",N="rejectionhandled",I=0,te=1,Q=2,Z=1,ie=2,ce=!1,oe,me,ge,$,R=_(L,function(){var le=m(U),fe=le!==String(U);if(!fe&&W===66||r&&!P.finally)return!0;if(W>=51&&/native code/.test(le))return!1;var pe=new U(function(je){je(1)}),he=function(je){je(function(){},function(){})},ve=pe.constructor={};return ve[V]=he,ce=pe.then(function(){})instanceof he,ce?!fe&&k&&!M:!0}),C=R||!b(function(le){U.all(le).catch(function(){})}),H=function(le){var fe;return p(le)&&typeof(fe=le.then)=="function"?fe:!1},ee=function(le,fe){if(!le.notified){le.notified=!0;var pe=le.reactions;j(function(){for(var he=le.value,ve=le.state==te,je=0;pe.length>je;){var Te=pe[je++],Ee=ve?Te.ok:Te.fail,Se=Te.resolve,Ae=Te.reject,_e=Te.domain,Oe,Ie,ke;try{Ee?(ve||(le.rejection===ie&&de(le),le.rejection=Z),Ee===!0?Oe=he:(_e&&_e.enter(),Oe=Ee(he),_e&&(_e.exit(),ke=!0)),Oe===Te.promise?Ae(B("Promise-chain cycle")):(Ie=H(Oe))?Ie.call(Oe,Se,Ae):Se(Oe)):Ae(he)}catch(Ce){_e&&!ke&&_e.exit(),Ae(Ce)}}le.reactions=[],le.notified=!1,fe&&!le.rejection&&ue(le)})}},ne=function(le,fe,pe){var he,ve;ae?(he=K.createEvent("Event"),he.promise=fe,he.reason=pe,he.initEvent(le,!1,!0),u.dispatchEvent(he)):he={promise:fe,reason:pe},!M&&(ve=u["on"+le])?ve(he):le===D&&x("Unhandled promise rejection",pe)},ue=function(le){v.call(u,function(){var fe=le.facade,pe=le.value,he=se(le),ve;if(he&&(ve=A(function(){F?J.emit("unhandledRejection",pe,fe):ne(D,fe,pe)}),le.rejection=F||se(le)?ie:Z,ve.error))throw ve.value})},se=function(le){return le.rejection!==Z&&!le.parent},de=function(le){v.call(u,function(){var fe=le.facade;F?J.emit("rejectionHandled",fe):ne(N,fe,le.value)})},be=function(le,fe,pe){return function(he){le(fe,he,pe)}},we=function(le,fe,pe){le.done||(le.done=!0,pe&&(le=pe),le.value=fe,le.state=Q,ee(le,!0))},ye=function(le,fe,pe){if(!le.done){le.done=!0,pe&&(le=pe);try{if(le.facade===fe)throw B("Promise can't be resolved itself");var he=H(fe);he?j(function(){var ve={done:!1};try{he.call(fe,be(ye,ve,le),be(we,ve,le))}catch(je){we(ve,je,le)}}):(le.value=fe,le.state=te,ee(le,!1))}catch(ve){we({done:!1},ve,le)}}};if(R&&(U=function(fe){d(this,U,L),f(fe),oe.call(this);var pe=Y(this);try{fe(be(ye,pe),be(we,pe))}catch(he){we(pe,he)}},P=U.prototype,oe=function(fe){re(this,{type:L,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:I,value:void 0})},oe.prototype=t(P,{then:function(fe,pe){var he=z(this),ve=q(S(this,U));return ve.ok=typeof fe=="function"?fe:!0,ve.fail=typeof pe=="function"&&pe,ve.domain=F?J.domain:void 0,he.parent=!0,he.reactions.push(ve),he.state!=I&&ee(he,!1),ve.promise},catch:function(le){return this.then(void 0,le)}}),me=function(){var le=new oe,fe=Y(le);this.promise=le,this.resolve=be(ye,fe),this.reject=be(we,fe)},O.f=q=function(le){return le===U||le===ge?new me(le):X(le)},!r&&typeof c=="function"&&G!==Object.prototype)){$=G.then,ce||(s(G,"then",function(fe,pe){var he=this;return new U(function(ve,je){$.call(he,ve,je)}).then(fe,pe)},{unsafe:!0}),s(G,"catch",P.catch,{unsafe:!0}));try{delete G.constructor}catch{}i&&i(G,P)}a({global:!0,wrap:!0,forced:R},{Promise:U}),n(U,L,!1,!0),o(L),ge=l(L),a({target:L,stat:!0,forced:R},{reject:function(fe){var pe=q(this);return pe.reject.call(void 0,fe),pe.promise}}),a({target:L,stat:!0,forced:r||R},{resolve:function(fe){return y(r&&this===ge?U:this,fe)}}),a({target:L,stat:!0,forced:C},{all:function(fe){var pe=this,he=q(pe),ve=he.resolve,je=he.reject,Te=A(function(){var Ee=f(pe.resolve),Se=[],Ae=0,_e=1;h(fe,function(Oe){var Ie=Ae++,ke=!1;Se.push(void 0),_e++,Ee.call(pe,Oe).then(function(Ce){ke||(ke=!0,Se[Ie]=Ce,--_e||ve(Se))},je)}),--_e||ve(Se)});return Te.error&&je(Te.value),he.promise},race:function(fe){var pe=this,he=q(pe),ve=he.reject,je=A(function(){var Te=f(pe.resolve);h(fe,function(Ee){Te.call(pe,Ee).then(he.resolve,ve)})});return je.error&&ve(je.value),he.promise}})},{"../internals/a-function":89,"../internals/an-instance":93,"../internals/check-correctness-of-iteration":113,"../internals/engine-is-browser":129,"../internals/engine-is-node":133,"../internals/engine-v8-version":136,"../internals/export":139,"../internals/get-built-in":143,"../internals/global":147,"../internals/host-report-errors":150,"../internals/inspect-source":156,"../internals/internal-state":157,"../internals/is-forced":160,"../internals/is-object":162,"../internals/is-pure":163,"../internals/iterate":166,"../internals/microtask":170,"../internals/native-promise-constructor":171,"../internals/new-promise-capability":174,"../internals/object-set-prototype-of":188,"../internals/perform":194,"../internals/promise-resolve":195,"../internals/redefine":197,"../internals/redefine-all":196,"../internals/set-species":207,"../internals/set-to-string-tag":208,"../internals/species-constructor":212,"../internals/task":216,"../internals/well-known-symbol":237}],260:[function(e,w,g){var a=e("../internals/descriptors"),r=e("../internals/global"),u=e("../internals/is-forced"),l=e("../internals/inherit-if-required"),c=e("../internals/create-non-enumerable-property"),s=e("../internals/object-define-property").f,t=e("../internals/object-get-own-property-names").f,i=e("../internals/is-regexp"),n=e("../internals/to-string"),o=e("../internals/regexp-flags"),p=e("../internals/regexp-sticky-helpers"),f=e("../internals/redefine"),d=e("../internals/fails"),m=e("../internals/has"),h=e("../internals/internal-state").enforce,b=e("../internals/set-species"),S=e("../internals/well-known-symbol"),v=e("../internals/regexp-unsupported-dot-all"),j=e("../internals/regexp-unsupported-ncg"),y=S("match"),x=r.RegExp,O=x.prototype,A=/^\?<[^\s\d!#%&*+<=>@^][^\s!#%&*+<=>@^]*>/,E=/a/g,_=/a/g,T=new x(E)!==E,k=p.UNSUPPORTED_Y,F=a&&(!T||k||v||j||d(function(){return _[y]=!1,x(E)!=E||x(_)==_||x(E,"i")!="/a/i"})),W=function(G){for(var U=G.length,P=0,B="",K=!1,J;P<=U;P++){if(J=G.charAt(P),J==="\\"){B+=J+G.charAt(++P);continue}!K&&J==="."?B+="[\\s\\S]":(J==="["?K=!0:J==="]"&&(K=!1),B+=J)}return B},V=function(G){for(var U=G.length,P=0,B="",K=[],J={},q=!1,X=!1,ae=0,M="",D;P<=U;P++){if(D=G.charAt(P),D==="\\")D=D+G.charAt(++P);else if(D==="]")q=!1;else if(!q)switch(!0){case D==="[":q=!0;break;case D==="(":A.test(G.slice(P+1))&&(P+=2,X=!0),B+=D,ae++;continue;case(D===">"&&X):if(M===""||m(J,M))throw new SyntaxError("Invalid capture group name");J[M]=!0,K.push([M,ae]),X=!1,M="";continue}X?M+=D:B+=D}return[B,K]};if(u("RegExp",F)){for(var L=function(U,P){var B=this instanceof L,K=i(U),J=P===void 0,q=[],X=U,ae,M,D,N,I,te;if(!B&&K&&J&&U.constructor===L)return U;if((K||U instanceof L)&&(U=U.source,J&&(P="flags"in X?X.flags:o.call(X))),U=U===void 0?"":n(U),P=P===void 0?"":n(P),X=U,v&&"dotAll"in E&&(M=!!P&&P.indexOf("s")>-1,M&&(P=P.replace(/s/g,""))),ae=P,k&&"sticky"in E&&(D=!!P&&P.indexOf("y")>-1,D&&(P=P.replace(/y/g,""))),j&&(N=V(U),U=N[0],q=N[1]),I=l(x(U,P),B?this:O,L),(M||D||q.length)&&(te=h(I),M&&(te.dotAll=!0,te.raw=L(W(U),ae)),D&&(te.sticky=!0),q.length&&(te.groups=q)),U!==X)try{c(I,"source",X===""?"(?:)":X)}catch{}return I},Y=function(G){G in L||s(L,G,{configurable:!0,get:function(){return x[G]},set:function(U){x[G]=U}})},re=t(x),z=0;re.length>z;)Y(re[z++]);O.constructor=L,L.prototype=O,f(r,"RegExp",L)}b("RegExp")},{"../internals/create-non-enumerable-property":120,"../internals/descriptors":125,"../internals/fails":140,"../internals/global":147,"../internals/has":148,"../internals/inherit-if-required":155,"../internals/internal-state":157,"../internals/is-forced":160,"../internals/is-regexp":164,"../internals/object-define-property":179,"../internals/object-get-own-property-names":182,"../internals/redefine":197,"../internals/regexp-flags":200,"../internals/regexp-sticky-helpers":201,"../internals/regexp-unsupported-dot-all":202,"../internals/regexp-unsupported-ncg":203,"../internals/set-species":207,"../internals/to-string":228,"../internals/well-known-symbol":237}],261:[function(e,w,g){var a=e("../internals/export"),r=e("../internals/regexp-exec");a({target:"RegExp",proto:!0,forced:/./.exec!==r},{exec:r})},{"../internals/export":139,"../internals/regexp-exec":199}],262:[function(e,w,g){var a=e("../internals/redefine"),r=e("../internals/an-object"),u=e("../internals/to-string"),l=e("../internals/fails"),c=e("../internals/regexp-flags"),s="toString",t=RegExp.prototype,i=t[s],n=l(function(){return i.call({source:"a",flags:"b"})!="/a/b"}),o=i.name!=s;(n||o)&&a(RegExp.prototype,s,function(){var f=r(this),d=u(f.source),m=f.flags,h=u(m===void 0&&f instanceof RegExp&&!("flags"in t)?c.call(f):m);return"/"+d+"/"+h},{unsafe:!0})},{"../internals/an-object":94,"../internals/fails":140,"../internals/redefine":197,"../internals/regexp-flags":200,"../internals/to-string":228}],263:[function(e,w,g){var a=e("../internals/export"),r=e("../internals/not-a-regexp"),u=e("../internals/require-object-coercible"),l=e("../internals/to-string"),c=e("../internals/correct-is-regexp-logic");a({target:"String",proto:!0,forced:!c("includes")},{includes:function(t){return!!~l(u(this)).indexOf(l(r(t)),arguments.length>1?arguments[1]:void 0)}})},{"../internals/correct-is-regexp-logic":117,"../internals/export":139,"../internals/not-a-regexp":175,"../internals/require-object-coercible":204,"../internals/to-string":228}],264:[function(e,w,g){var a=e("../internals/string-multibyte").charAt,r=e("../internals/to-string"),u=e("../internals/internal-state"),l=e("../internals/define-iterator"),c="String Iterator",s=u.set,t=u.getterFor(c);l(String,"String",function(i){s(this,{type:c,string:r(i),index:0})},function(){var n=t(this),o=n.string,p=n.index,f;return p>=o.length?{value:void 0,done:!0}:(f=a(o,p),n.index+=f.length,{value:f,done:!1})})},{"../internals/define-iterator":123,"../internals/internal-state":157,"../internals/string-multibyte":213,"../internals/to-string":228}],265:[function(e,w,g){var a=e("../internals/fix-regexp-well-known-symbol-logic"),r=e("../internals/an-object"),u=e("../internals/to-length"),l=e("../internals/to-string"),c=e("../internals/require-object-coercible"),s=e("../internals/advance-string-index"),t=e("../internals/regexp-exec-abstract");a("match",function(i,n,o){return[function(f){var d=c(this),m=f==null?void 0:f[i];return m!==void 0?m.call(f,d):new RegExp(f)[i](l(d))},function(p){var f=r(this),d=l(p),m=o(n,f,d);if(m.done)return m.value;if(!f.global)return t(f,d);var h=f.unicode;f.lastIndex=0;for(var b=[],S=0,v;(v=t(f,d))!==null;){var j=l(v[0]);b[S]=j,j===""&&(f.lastIndex=s(d,u(f.lastIndex),h)),S++}return S===0?null:b}]})},{"../internals/advance-string-index":92,"../internals/an-object":94,"../internals/fix-regexp-well-known-symbol-logic":141,"../internals/regexp-exec-abstract":198,"../internals/require-object-coercible":204,"../internals/to-length":221,"../internals/to-string":228}],266:[function(e,w,g){var a=e("../internals/fix-regexp-well-known-symbol-logic"),r=e("../internals/fails"),u=e("../internals/an-object"),l=e("../internals/to-integer"),c=e("../internals/to-length"),s=e("../internals/to-string"),t=e("../internals/require-object-coercible"),i=e("../internals/advance-string-index"),n=e("../internals/get-substitution"),o=e("../internals/regexp-exec-abstract"),p=e("../internals/well-known-symbol"),f=p("replace"),d=Math.max,m=Math.min,h=function(j){return j===void 0?j:String(j)},b=function(){return"a".replace(/./,"$0")==="$0"}(),S=function(){return/./[f]?/./[f]("a","$0")==="":!1}(),v=!r(function(){var j=/./;return j.exec=function(){var y=[];return y.groups={a:"7"},y},"".replace(j,"$")!=="7"});a("replace",function(j,y,x){var O=S?"$":"$0";return[function(E,_){var T=t(this),k=E==null?void 0:E[f];return k!==void 0?k.call(E,T,_):y.call(s(T),E,_)},function(A,E){var _=u(this),T=s(A);if(typeof E=="string"&&E.indexOf(O)===-1&&E.indexOf("$<")===-1){var k=x(y,_,T,E);if(k.done)return k.value}var F=typeof E=="function";F||(E=s(E));var W=_.global;if(W){var V=_.unicode;_.lastIndex=0}for(var L=[];;){var Y=o(_,T);if(Y===null||(L.push(Y),!W))break;var re=s(Y[0]);re===""&&(_.lastIndex=i(T,c(_.lastIndex),V))}for(var z="",G=0,U=0;U=G&&(z+=T.slice(G,B)+ae,G=B+P.length)}return z+T.slice(G)}]},!v||!b||S)},{"../internals/advance-string-index":92,"../internals/an-object":94,"../internals/fails":140,"../internals/fix-regexp-well-known-symbol-logic":141,"../internals/get-substitution":146,"../internals/regexp-exec-abstract":198,"../internals/require-object-coercible":204,"../internals/to-integer":220,"../internals/to-length":221,"../internals/to-string":228,"../internals/well-known-symbol":237}],267:[function(e,w,g){var a=e("../internals/fix-regexp-well-known-symbol-logic"),r=e("../internals/an-object"),u=e("../internals/require-object-coercible"),l=e("../internals/same-value"),c=e("../internals/to-string"),s=e("../internals/regexp-exec-abstract");a("search",function(t,i,n){return[function(p){var f=u(this),d=p==null?void 0:p[t];return d!==void 0?d.call(p,f):new RegExp(p)[t](c(f))},function(o){var p=r(this),f=c(o),d=n(i,p,f);if(d.done)return d.value;var m=p.lastIndex;l(m,0)||(p.lastIndex=0);var h=s(p,f);return l(p.lastIndex,m)||(p.lastIndex=m),h===null?-1:h.index}]})},{"../internals/an-object":94,"../internals/fix-regexp-well-known-symbol-logic":141,"../internals/regexp-exec-abstract":198,"../internals/require-object-coercible":204,"../internals/same-value":205,"../internals/to-string":228}],268:[function(e,w,g){var a=e("../internals/fix-regexp-well-known-symbol-logic"),r=e("../internals/is-regexp"),u=e("../internals/an-object"),l=e("../internals/require-object-coercible"),c=e("../internals/species-constructor"),s=e("../internals/advance-string-index"),t=e("../internals/to-length"),i=e("../internals/to-string"),n=e("../internals/regexp-exec-abstract"),o=e("../internals/regexp-exec"),p=e("../internals/regexp-sticky-helpers"),f=e("../internals/fails"),d=p.UNSUPPORTED_Y,m=[].push,h=Math.min,b=4294967295,S=!f(function(){var v=/(?:)/,j=v.exec;v.exec=function(){return j.apply(this,arguments)};var y="ab".split(v);return y.length!==2||y[0]!=="a"||y[1]!=="b"});a("split",function(v,j,y){var x;return"abbc".split(/(b)*/)[1]=="c"||"test".split(/(?:)/,-1).length!=4||"ab".split(/(?:ab)*/).length!=2||".".split(/(.?)(.?)/).length!=4||".".split(/()()/).length>1||"".split(/.?/).length?x=function(O,A){var E=i(l(this)),_=A===void 0?b:A>>>0;if(_===0)return[];if(O===void 0)return[E];if(!r(O))return j.call(E,O,_);for(var T=[],k=(O.ignoreCase?"i":"")+(O.multiline?"m":"")+(O.unicode?"u":"")+(O.sticky?"y":""),F=0,W=new RegExp(O.source,k+"g"),V,L,Y;(V=o.call(W,E))&&(L=W.lastIndex,!(L>F&&(T.push(E.slice(F,V.index)),V.length>1&&V.index=_)));)W.lastIndex===V.index&&W.lastIndex++;return F===E.length?(Y||!W.test(""))&&T.push(""):T.push(E.slice(F)),T.length>_?T.slice(0,_):T}:"0".split(void 0,0).length?x=function(O,A){return O===void 0&&A===0?[]:j.call(this,O,A)}:x=j,[function(A,E){var _=l(this),T=A==null?void 0:A[v];return T!==void 0?T.call(A,_,E):x.call(i(_),A,E)},function(O,A){var E=u(this),_=i(O),T=y(x,E,_,A,x!==j);if(T.done)return T.value;var k=c(E,RegExp),F=E.unicode,W=(E.ignoreCase?"i":"")+(E.multiline?"m":"")+(E.unicode?"u":"")+(d?"g":"y"),V=new k(d?"^(?:"+E.source+")":E,W),L=A===void 0?b:A>>>0;if(L===0)return[];if(_.length===0)return n(V,_)===null?[_]:[];for(var Y=0,re=0,z=[];re<_.length;){V.lastIndex=d?0:re;var G=n(V,d?_.slice(re):_),U;if(G===null||(U=h(t(V.lastIndex+(d?re:0)),_.length))===Y)re=s(_,re,F);else{if(z.push(_.slice(Y,re)),z.length===L)return z;for(var P=1;P<=G.length-1;P++)if(z.push(G[P]),z.length===L)return z;re=Y=U}}return z.push(_.slice(Y)),z}]},!S,d)},{"../internals/advance-string-index":92,"../internals/an-object":94,"../internals/fails":140,"../internals/fix-regexp-well-known-symbol-logic":141,"../internals/is-regexp":164,"../internals/regexp-exec":199,"../internals/regexp-exec-abstract":198,"../internals/regexp-sticky-helpers":201,"../internals/require-object-coercible":204,"../internals/species-constructor":212,"../internals/to-length":221,"../internals/to-string":228}],269:[function(e,w,g){var a=e("../internals/export"),r=e("../internals/string-trim").trim,u=e("../internals/string-trim-forced");a({target:"String",proto:!0,forced:u("trim")},{trim:function(){return r(this)}})},{"../internals/export":139,"../internals/string-trim":215,"../internals/string-trim-forced":214}],270:[function(e,w,g){var a=e("../internals/export"),r=e("../internals/descriptors"),u=e("../internals/global"),l=e("../internals/has"),c=e("../internals/is-object"),s=e("../internals/object-define-property").f,t=e("../internals/copy-constructor-properties"),i=u.Symbol;if(r&&typeof i=="function"&&(!("description"in i.prototype)||i().description!==void 0)){var n={},o=function(){var b=arguments.length<1||arguments[0]===void 0?void 0:String(arguments[0]),S=this instanceof o?new i(b):b===void 0?i():i(b);return b===""&&(n[S]=!0),S};t(o,i);var p=o.prototype=i.prototype;p.constructor=o;var f=p.toString,d=String(i("test"))=="Symbol(test)",m=/^Symbol\((.*)\)[^)]+$/;s(p,"description",{configurable:!0,get:function(){var b=c(this)?this.valueOf():this,S=f.call(b);if(l(n,b))return"";var v=d?S.slice(7,-1):S.replace(m,"$1");return v===""?void 0:v}}),a({global:!0,forced:!0},{Symbol:o})}},{"../internals/copy-constructor-properties":116,"../internals/descriptors":125,"../internals/export":139,"../internals/global":147,"../internals/has":148,"../internals/is-object":162,"../internals/object-define-property":179}],271:[function(e,w,g){var a=e("../internals/export"),r=e("../internals/global"),u=e("../internals/get-built-in"),l=e("../internals/is-pure"),c=e("../internals/descriptors"),s=e("../internals/native-symbol"),t=e("../internals/fails"),i=e("../internals/has"),n=e("../internals/is-array"),o=e("../internals/is-object"),p=e("../internals/is-symbol"),f=e("../internals/an-object"),d=e("../internals/to-object"),m=e("../internals/to-indexed-object"),h=e("../internals/to-property-key"),b=e("../internals/to-string"),S=e("../internals/create-property-descriptor"),v=e("../internals/object-create"),j=e("../internals/object-keys"),y=e("../internals/object-get-own-property-names"),x=e("../internals/object-get-own-property-names-external"),O=e("../internals/object-get-own-property-symbols"),A=e("../internals/object-get-own-property-descriptor"),E=e("../internals/object-define-property"),_=e("../internals/object-property-is-enumerable"),T=e("../internals/create-non-enumerable-property"),k=e("../internals/redefine"),F=e("../internals/shared"),W=e("../internals/shared-key"),V=e("../internals/hidden-keys"),L=e("../internals/uid"),Y=e("../internals/well-known-symbol"),re=e("../internals/well-known-symbol-wrapped"),z=e("../internals/define-well-known-symbol"),G=e("../internals/set-to-string-tag"),U=e("../internals/internal-state"),P=e("../internals/array-iteration").forEach,B=W("hidden"),K="Symbol",J="prototype",q=Y("toPrimitive"),X=U.set,ae=U.getterFor(K),M=Object[J],D=r.Symbol,N=u("JSON","stringify"),I=A.f,te=E.f,Q=x.f,Z=_.f,ie=F("symbols"),ce=F("op-symbols"),oe=F("string-to-symbol-registry"),me=F("symbol-to-string-registry"),ge=F("wks"),$=r.QObject,R=!$||!$[J]||!$[J].findChild,C=c&&t(function(){return v(te({},"a",{get:function(){return te(this,"a",{value:7}).a}})).a!=7})?function(le,fe,pe){var he=I(M,fe);he&&delete M[fe],te(le,fe,pe),he&&le!==M&&te(M,fe,he)}:te,H=function(le,fe){var pe=ie[le]=v(D[J]);return X(pe,{type:K,tag:le,description:fe}),c||(pe.description=fe),pe},ee=function(fe,pe,he){fe===M&&ee(ce,pe,he),f(fe);var ve=h(pe);return f(he),i(ie,ve)?(he.enumerable?(i(fe,B)&&fe[B][ve]&&(fe[B][ve]=!1),he=v(he,{enumerable:S(0,!1)})):(i(fe,B)||te(fe,B,S(1,{})),fe[B][ve]=!0),C(fe,ve,he)):te(fe,ve,he)},ne=function(fe,pe){f(fe);var he=m(pe),ve=j(he).concat(we(he));return P(ve,function(je){(!c||se.call(he,je))&&ee(fe,je,he[je])}),fe},ue=function(fe,pe){return pe===void 0?v(fe):ne(v(fe),pe)},se=function(fe){var pe=h(fe),he=Z.call(this,pe);return this===M&&i(ie,pe)&&!i(ce,pe)?!1:he||!i(this,pe)||!i(ie,pe)||i(this,B)&&this[B][pe]?he:!0},de=function(fe,pe){var he=m(fe),ve=h(pe);if(!(he===M&&i(ie,ve)&&!i(ce,ve))){var je=I(he,ve);return je&&i(ie,ve)&&!(i(he,B)&&he[B][ve])&&(je.enumerable=!0),je}},be=function(fe){var pe=Q(m(fe)),he=[];return P(pe,function(ve){!i(ie,ve)&&!i(V,ve)&&he.push(ve)}),he},we=function(fe){var pe=fe===M,he=Q(pe?ce:m(fe)),ve=[];return P(he,function(je){i(ie,je)&&(!pe||i(M,je))&&ve.push(ie[je])}),ve};if(s||(D=function(){if(this instanceof D)throw TypeError("Symbol is not a constructor");var fe=!arguments.length||arguments[0]===void 0?void 0:b(arguments[0]),pe=L(fe),he=function(ve){this===M&&he.call(ce,ve),i(this,B)&&i(this[B],pe)&&(this[B][pe]=!1),C(this,pe,S(1,ve))};return c&&R&&C(M,pe,{configurable:!0,set:he}),H(pe,fe)},k(D[J],"toString",function(){return ae(this).tag}),k(D,"withoutSetter",function(le){return H(L(le),le)}),_.f=se,E.f=ee,A.f=de,y.f=x.f=be,O.f=we,re.f=function(le){return H(Y(le),le)},c&&(te(D[J],"description",{configurable:!0,get:function(){return ae(this).description}}),l||k(M,"propertyIsEnumerable",se,{unsafe:!0}))),a({global:!0,wrap:!0,forced:!s,sham:!s},{Symbol:D}),P(j(ge),function(le){z(le)}),a({target:K,stat:!0,forced:!s},{for:function(le){var fe=b(le);if(i(oe,fe))return oe[fe];var pe=D(fe);return oe[fe]=pe,me[pe]=fe,pe},keyFor:function(fe){if(!p(fe))throw TypeError(fe+" is not a symbol");if(i(me,fe))return me[fe]},useSetter:function(){R=!0},useSimple:function(){R=!1}}),a({target:"Object",stat:!0,forced:!s,sham:!c},{create:ue,defineProperty:ee,defineProperties:ne,getOwnPropertyDescriptor:de}),a({target:"Object",stat:!0,forced:!s},{getOwnPropertyNames:be,getOwnPropertySymbols:we}),a({target:"Object",stat:!0,forced:t(function(){O.f(1)})},{getOwnPropertySymbols:function(fe){return O.f(d(fe))}}),N){var ye=!s||t(function(){var le=D();return N([le])!="[null]"||N({a:le})!="{}"||N(Object(le))!="{}"});a({target:"JSON",stat:!0,forced:ye},{stringify:function(fe,pe,he){for(var ve=[fe],je=1,Te;arguments.length>je;)ve.push(arguments[je++]);if(Te=pe,!(!o(pe)&&fe===void 0||p(fe)))return n(pe)||(pe=function(Ee,Se){if(typeof Te=="function"&&(Se=Te.call(this,Ee,Se)),!p(Se))return Se}),ve[1]=pe,N.apply(null,ve)}})}D[J][q]||T(D[J],q,D[J].valueOf),G(D,K),V[B]=!0},{"../internals/an-object":94,"../internals/array-iteration":104,"../internals/create-non-enumerable-property":120,"../internals/create-property-descriptor":121,"../internals/define-well-known-symbol":124,"../internals/descriptors":125,"../internals/export":139,"../internals/fails":140,"../internals/get-built-in":143,"../internals/global":147,"../internals/has":148,"../internals/hidden-keys":149,"../internals/internal-state":157,"../internals/is-array":159,"../internals/is-object":162,"../internals/is-pure":163,"../internals/is-symbol":165,"../internals/native-symbol":172,"../internals/object-create":177,"../internals/object-define-property":179,"../internals/object-get-own-property-descriptor":180,"../internals/object-get-own-property-names":182,"../internals/object-get-own-property-names-external":181,"../internals/object-get-own-property-symbols":183,"../internals/object-keys":186,"../internals/object-property-is-enumerable":187,"../internals/redefine":197,"../internals/set-to-string-tag":208,"../internals/shared":211,"../internals/shared-key":209,"../internals/to-indexed-object":219,"../internals/to-object":222,"../internals/to-property-key":226,"../internals/to-string":228,"../internals/uid":234,"../internals/well-known-symbol":237,"../internals/well-known-symbol-wrapped":236}],272:[function(e,w,g){var a=e("../internals/array-buffer-view-core"),r=e("../internals/array-copy-within"),u=a.aTypedArray,l=a.exportTypedArrayMethod;l("copyWithin",function(s,t){return r.call(u(this),s,t,arguments.length>2?arguments[2]:void 0)})},{"../internals/array-buffer-view-core":96,"../internals/array-copy-within":98}],273:[function(e,w,g){var a=e("../internals/array-buffer-view-core"),r=e("../internals/array-iteration").every,u=a.aTypedArray,l=a.exportTypedArrayMethod;l("every",function(s){return r(u(this),s,arguments.length>1?arguments[1]:void 0)})},{"../internals/array-buffer-view-core":96,"../internals/array-iteration":104}],274:[function(e,w,g){var a=e("../internals/array-buffer-view-core"),r=e("../internals/array-fill"),u=a.aTypedArray,l=a.exportTypedArrayMethod;l("fill",function(s){return r.apply(u(this),arguments)})},{"../internals/array-buffer-view-core":96,"../internals/array-fill":99}],275:[function(e,w,g){var a=e("../internals/array-buffer-view-core"),r=e("../internals/array-iteration").filter,u=e("../internals/typed-array-from-species-and-list"),l=a.aTypedArray,c=a.exportTypedArrayMethod;c("filter",function(t){var i=r(l(this),t,arguments.length>1?arguments[1]:void 0);return u(this,i)})},{"../internals/array-buffer-view-core":96,"../internals/array-iteration":104,"../internals/typed-array-from-species-and-list":231}],276:[function(e,w,g){var a=e("../internals/array-buffer-view-core"),r=e("../internals/array-iteration").findIndex,u=a.aTypedArray,l=a.exportTypedArrayMethod;l("findIndex",function(s){return r(u(this),s,arguments.length>1?arguments[1]:void 0)})},{"../internals/array-buffer-view-core":96,"../internals/array-iteration":104}],277:[function(e,w,g){var a=e("../internals/array-buffer-view-core"),r=e("../internals/array-iteration").find,u=a.aTypedArray,l=a.exportTypedArrayMethod;l("find",function(s){return r(u(this),s,arguments.length>1?arguments[1]:void 0)})},{"../internals/array-buffer-view-core":96,"../internals/array-iteration":104}],278:[function(e,w,g){var a=e("../internals/array-buffer-view-core"),r=e("../internals/array-iteration").forEach,u=a.aTypedArray,l=a.exportTypedArrayMethod;l("forEach",function(s){r(u(this),s,arguments.length>1?arguments[1]:void 0)})},{"../internals/array-buffer-view-core":96,"../internals/array-iteration":104}],279:[function(e,w,g){var a=e("../internals/array-buffer-view-core"),r=e("../internals/array-includes").includes,u=a.aTypedArray,l=a.exportTypedArrayMethod;l("includes",function(s){return r(u(this),s,arguments.length>1?arguments[1]:void 0)})},{"../internals/array-buffer-view-core":96,"../internals/array-includes":103}],280:[function(e,w,g){var a=e("../internals/array-buffer-view-core"),r=e("../internals/array-includes").indexOf,u=a.aTypedArray,l=a.exportTypedArrayMethod;l("indexOf",function(s){return r(u(this),s,arguments.length>1?arguments[1]:void 0)})},{"../internals/array-buffer-view-core":96,"../internals/array-includes":103}],281:[function(e,w,g){var a=e("../internals/global"),r=e("../internals/array-buffer-view-core"),u=e("../modules/es.array.iterator"),l=e("../internals/well-known-symbol"),c=l("iterator"),s=a.Uint8Array,t=u.values,i=u.keys,n=u.entries,o=r.aTypedArray,p=r.exportTypedArrayMethod,f=s&&s.prototype[c],d=!!f&&(f.name=="values"||f.name==null),m=function(){return t.call(o(this))};p("entries",function(){return n.call(o(this))}),p("keys",function(){return i.call(o(this))}),p("values",m,!d),p(c,m,!d)},{"../internals/array-buffer-view-core":96,"../internals/global":147,"../internals/well-known-symbol":237,"../modules/es.array.iterator":247}],282:[function(e,w,g){var a=e("../internals/array-buffer-view-core"),r=a.aTypedArray,u=a.exportTypedArrayMethod,l=[].join;u("join",function(s){return l.apply(r(this),arguments)})},{"../internals/array-buffer-view-core":96}],283:[function(e,w,g){var a=e("../internals/array-buffer-view-core"),r=e("../internals/array-last-index-of"),u=a.aTypedArray,l=a.exportTypedArrayMethod;l("lastIndexOf",function(s){return r.apply(u(this),arguments)})},{"../internals/array-buffer-view-core":96,"../internals/array-last-index-of":105}],284:[function(e,w,g){var a=e("../internals/array-buffer-view-core"),r=e("../internals/array-iteration").map,u=e("../internals/typed-array-species-constructor"),l=a.aTypedArray,c=a.exportTypedArrayMethod;c("map",function(t){return r(l(this),t,arguments.length>1?arguments[1]:void 0,function(i,n){return new(u(i))(n)})})},{"../internals/array-buffer-view-core":96,"../internals/array-iteration":104,"../internals/typed-array-species-constructor":233}],285:[function(e,w,g){var a=e("../internals/array-buffer-view-core"),r=e("../internals/array-reduce").right,u=a.aTypedArray,l=a.exportTypedArrayMethod;l("reduceRight",function(s){return r(u(this),s,arguments.length,arguments.length>1?arguments[1]:void 0)})},{"../internals/array-buffer-view-core":96,"../internals/array-reduce":108}],286:[function(e,w,g){var a=e("../internals/array-buffer-view-core"),r=e("../internals/array-reduce").left,u=a.aTypedArray,l=a.exportTypedArrayMethod;l("reduce",function(s){return r(u(this),s,arguments.length,arguments.length>1?arguments[1]:void 0)})},{"../internals/array-buffer-view-core":96,"../internals/array-reduce":108}],287:[function(e,w,g){var a=e("../internals/array-buffer-view-core"),r=a.aTypedArray,u=a.exportTypedArrayMethod,l=Math.floor;u("reverse",function(){for(var s=this,t=r(s).length,i=l(t/2),n=0,o;n1?arguments[1]:void 0,1),f=this.length,d=l(o),m=r(d.length),h=0;if(m+p>f)throw RangeError("Wrong length");for(;hd;)h[d]=p[d++];return h},t)},{"../internals/array-buffer-view-core":96,"../internals/fails":140,"../internals/typed-array-species-constructor":233}],290:[function(e,w,g){var a=e("../internals/array-buffer-view-core"),r=e("../internals/array-iteration").some,u=a.aTypedArray,l=a.exportTypedArrayMethod;l("some",function(s){return r(u(this),s,arguments.length>1?arguments[1]:void 0)})},{"../internals/array-buffer-view-core":96,"../internals/array-iteration":104}],291:[function(e,w,g){var a=e("../internals/array-buffer-view-core"),r=e("../internals/global"),u=e("../internals/fails"),l=e("../internals/a-function"),c=e("../internals/to-length"),s=e("../internals/array-sort"),t=e("../internals/engine-ff-version"),i=e("../internals/engine-is-ie-or-edge"),n=e("../internals/engine-v8-version"),o=e("../internals/engine-webkit-version"),p=a.aTypedArray,f=a.exportTypedArrayMethod,d=r.Uint16Array,m=d&&d.prototype.sort,h=!!m&&!u(function(){var v=new d(2);v.sort(null),v.sort({})}),b=!!m&&!u(function(){if(n)return n<74;if(t)return t<67;if(i)return!0;if(o)return o<602;var v=new d(516),j=Array(516),y,x;for(y=0;y<516;y++)x=y%4,v[y]=515-y,j[y]=y-2*x+3;for(v.sort(function(O,A){return(O/4|0)-(A/4|0)}),y=0;y<516;y++)if(v[y]!==j[y])return!0}),S=function(v){return function(j,y){return v!==void 0?+v(j,y)||0:y!==y?-1:j!==j?1:j===0&&y===0?1/j>0&&1/y<0?1:-1:j>y}};f("sort",function(j){var y=this;if(j!==void 0&&l(j),b)return m.call(y,j);p(y);var x=c(y.length),O=Array(x),A;for(A=0;A0?"-":"+")+u(Math.floor(Math.abs(E)/60)*100+Math.abs(E)%60,4),S:["th","st","nd","rd"][b%10>3?0:(b%100-b%10!=10)*b%10],W:_,N:T};return p.replace(t,function(F){return F in k?k[F]:F.slice(1,F.length-1)})}}();r.masks={default:"ddd mmm dd yyyy HH:MM:ss",shortDate:"m/d/yy",mediumDate:"mmm d, yyyy",longDate:"mmmm d, yyyy",fullDate:"dddd, mmmm d, yyyy",shortTime:"h:MM TT",mediumTime:"h:MM:ss TT",longTime:"h:MM:ss TT Z",isoDate:"yyyy-mm-dd",isoTime:"HH:MM:ss",isoDateTime:"yyyy-mm-dd'T'HH:MM:sso",isoUtcDateTime:"UTC:yyyy-mm-dd'T'HH:MM:ss'Z'",expiresHeaderFormat:"ddd, dd mmm yyyy HH:MM:ss Z"},r.i18n={dayNames:["Sun","Mon","Tue","Wed","Thu","Fri","Sat","Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],monthNames:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec","January","February","March","April","May","June","July","August","September","October","November","December"]};function u(t,i){for(t=String(t),i=i||2;t.length]/;w.exports=r;function r(u){var l=""+u,c=a.exec(l);if(!c)return l;var s,t="",i=0,n=0;for(i=c.index;i0&&this._events[s].length>i&&(this._events[s].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[s].length),typeof console.trace=="function"&&console.trace())),this},a.prototype.on=a.prototype.addListener,a.prototype.once=function(s,t){if(!r(t))throw TypeError("listener must be a function");var i=!1;function n(){this.removeListener(s,n),i||(i=!0,t.apply(this,arguments))}return n.listener=t,this.on(s,n),this},a.prototype.removeListener=function(s,t){var i,n,o,p;if(!r(t))throw TypeError("listener must be a function");if(!this._events||!this._events[s])return this;if(i=this._events[s],o=i.length,n=-1,i===t||r(i.listener)&&i.listener===t)delete this._events[s],this._events.removeListener&&this.emit("removeListener",s,t);else if(l(i)){for(p=o;p-- >0;)if(i[p]===t||i[p].listener&&i[p].listener===t){n=p;break}if(n<0)return this;i.length===1?(i.length=0,delete this._events[s]):i.splice(n,1),this._events.removeListener&&this.emit("removeListener",s,t)}return this},a.prototype.removeAllListeners=function(s){var t,i;if(!this._events)return this;if(!this._events.removeListener)return arguments.length===0?this._events={}:this._events[s]&&delete this._events[s],this;if(arguments.length===0){for(t in this._events)t!=="removeListener"&&this.removeAllListeners(t);return this.removeAllListeners("removeListener"),this._events={},this}if(i=this._events[s],r(i))this.removeListener(s,i);else if(i)for(;i.length;)this.removeListener(s,i[i.length-1]);return delete this._events[s],this},a.prototype.listeners=function(s){var t;return!this._events||!this._events[s]?t=[]:r(this._events[s])?t=[this._events[s]]:t=this._events[s].slice(),t},a.prototype.listenerCount=function(s){if(this._events){var t=this._events[s];if(r(t))return 1;if(t)return t.length}return 0},a.listenerCount=function(s,t){return s.listenerCount(t)};function r(s){return typeof s=="function"}function u(s){return typeof s=="number"}function l(s){return typeof s=="object"&&s!==null}function c(s){return s===void 0}},{}],302:[function(e,w,g){var a=e("http"),r=w.exports;for(var u in a)a.hasOwnProperty(u)&&(r[u]=a[u]);r.request=function(l,c){return l||(l={}),l.scheme="https",l.protocol="https:",a.request.call(this,l,c)}},{http:400}],303:[function(e,w,g){var a=e("util"),r=e("ms");w.exports=function(u){if(typeof u=="number")return u;var l=r(u);if(l===void 0){var c=new Error(a.format("humanize-ms(%j) result undefined",u));console.warn(c.stack)}return l}},{ms:319,util:352}],304:[function(e,w,g){/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */g.read=function(a,r,u,l,c){var s,t,i=c*8-l-1,n=(1<>1,p=-7,f=u?c-1:0,d=u?-1:1,m=a[r+f];for(f+=d,s=m&(1<<-p)-1,m>>=-p,p+=i;p>0;s=s*256+a[r+f],f+=d,p-=8);for(t=s&(1<<-p)-1,s>>=-p,p+=l;p>0;t=t*256+a[r+f],f+=d,p-=8);if(s===0)s=1-o;else{if(s===n)return t?NaN:(m?-1:1)*(1/0);t=t+Math.pow(2,l),s=s-o}return(m?-1:1)*t*Math.pow(2,s-l)},g.write=function(a,r,u,l,c,s){var t,i,n,o=s*8-c-1,p=(1<>1,d=c===23?Math.pow(2,-24)-Math.pow(2,-77):0,m=l?0:s-1,h=l?1:-1,b=r<0||r===0&&1/r<0?1:0;for(r=Math.abs(r),isNaN(r)||r===1/0?(i=isNaN(r)?1:0,t=p):(t=Math.floor(Math.log(r)/Math.LN2),r*(n=Math.pow(2,-t))<1&&(t--,n*=2),t+f>=1?r+=d/n:r+=d*Math.pow(2,1-f),r*n>=2&&(t++,n/=2),t+f>=p?(i=0,t=p):t+f>=1?(i=(r*n-1)*Math.pow(2,c),t=t+f):(i=r*Math.pow(2,f-1)*Math.pow(2,c),t=0));c>=8;a[u+m]=i&255,m+=h,i/=256,c-=8);for(t=t<0;a[u+m]=t&255,m+=h,t/=256,o-=8);a[u+m-h]|=b*128}},{}],305:[function(e,w,g){var a=[e("./nextTick"),e("./queueMicrotask"),e("./mutation.js"),e("./messageChannel"),e("./stateChange"),e("./timeout")],r,u,l=-1,c=[],s=!1;function t(){!r||!u||(r=!1,u.length?c=u.concat(c):l=-1,c.length&&i())}function i(){if(!r){s=!1,r=!0;for(var m=c.length,h=setTimeout(t);m;){for(u=c,c=[];u&&++l1)for(var b=1;b + * @license MIT + */w.exports=function(u){return u!=null&&(a(u)||r(u)||!!u._isBuffer)};function a(u){return!!u.constructor&&typeof u.constructor.isBuffer=="function"&&u.constructor.isBuffer(u)}function r(u){return typeof u.readFloatLE=="function"&&typeof u.slice=="function"&&a(u.slice(0,0))}},{}],313:[function(e,w,g){var a={}.toString;w.exports=Array.isArray||function(r){return a.call(r)=="[object Array]"}},{}],314:[function(e,w,g){(function(a){(function(){(function(r,u){typeof g=="object"&&typeof w!="undefined"?w.exports=u(r):u(r)})(typeof self!="undefined"?self:typeof window!="undefined"?window:typeof a!="undefined"?a:this,function(r){r=r||{};var u=r.Base64,l="2.6.4",c="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=function(V){for(var L={},Y=0,re=V.length;Y>>6)+t(128|L&63):t(224|L>>>12&15)+t(128|L>>>6&63)+t(128|L&63)}else{var L=65536+(V.charCodeAt(0)-55296)*1024+(V.charCodeAt(1)-56320);return t(240|L>>>18&7)+t(128|L>>>12&63)+t(128|L>>>6&63)+t(128|L&63)}},n=/[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g,o=function(V){return V.replace(n,i)},p=function(V){var L=[0,2,1][V.length%3],Y=V.charCodeAt(0)<<16|(V.length>1?V.charCodeAt(1):0)<<8|(V.length>2?V.charCodeAt(2):0),re=[c.charAt(Y>>>18),c.charAt(Y>>>12&63),L>=2?"=":c.charAt(Y>>>6&63),L>=1?"=":c.charAt(Y&63)];return re.join("")},f=r.btoa&&typeof r.btoa=="function"?function(V){return r.btoa(V)}:function(V){if(V.match(/[^\x00-\xFF]/))throw new RangeError("The string contains invalid characters.");return V.replace(/[\s\S]{1,3}/g,p)},d=function(V){return f(o(String(V)))},m=function(V){return V.replace(/[+\/]/g,function(L){return L=="+"?"-":"_"}).replace(/=/g,"")},h=function(V,L){return L?m(d(V)):d(V)},b=function(V){return h(V,!0)},S;r.Uint8Array&&(S=function(V,L){for(var Y="",re=0,z=V.length;re>>18)+c.charAt(B>>>12&63)+(typeof U!="undefined"?c.charAt(B>>>6&63):"=")+(typeof P!="undefined"?c.charAt(B&63):"=")}return L?m(Y):Y});var v=/[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}/g,j=function(V){switch(V.length){case 4:var L=(7&V.charCodeAt(0))<<18|(63&V.charCodeAt(1))<<12|(63&V.charCodeAt(2))<<6|63&V.charCodeAt(3),Y=L-65536;return t((Y>>>10)+55296)+t((Y&1023)+56320);case 3:return t((15&V.charCodeAt(0))<<12|(63&V.charCodeAt(1))<<6|63&V.charCodeAt(2));default:return t((31&V.charCodeAt(0))<<6|63&V.charCodeAt(1))}},y=function(V){return V.replace(v,j)},x=function(V){var L=V.length,Y=L%4,re=(L>0?s[V.charAt(0)]<<18:0)|(L>1?s[V.charAt(1)]<<12:0)|(L>2?s[V.charAt(2)]<<6:0)|(L>3?s[V.charAt(3)]:0),z=[t(re>>>16),t(re>>>8&255),t(re&255)];return z.length-=[0,0,2,1][Y],z.join("")},O=r.atob&&typeof r.atob=="function"?function(V){return r.atob(V)}:function(V){return V.replace(/\S{1,4}/g,x)},A=function(V){return O(String(V).replace(/[^A-Za-z0-9\+\/]/g,""))},E=function(V){return y(O(V))},_=function(V){return String(V).replace(/[-_]/g,function(L){return L=="-"?"+":"/"}).replace(/[^A-Za-z0-9\+\/]/g,"")},T=function(V){return E(_(V))},k;r.Uint8Array&&(k=function(V){return Uint8Array.from(A(_(V)),function(L){return L.charCodeAt(0)})});var F=function(){var V=r.Base64;return r.Base64=u,V};if(r.Base64={VERSION:l,atob:A,btoa:f,fromBase64:T,toBase64:h,utob:o,encode:h,encodeURI:b,btou:y,decode:T,noConflict:F,fromUint8Array:S,toUint8Array:k},typeof Object.defineProperty=="function"){var W=function(V){return{value:V,enumerable:!1,writable:!0,configurable:!0}};r.Base64.extendString=function(){Object.defineProperty(String.prototype,"fromBase64",W(function(){return T(this)})),Object.defineProperty(String.prototype,"toBase64",W(function(V){return h(this,V)})),Object.defineProperty(String.prototype,"toBase64URI",W(function(){return h(this,!0)}))}}return r.Meteor&&(Base64=r.Base64),typeof w!="undefined"&&w.exports&&(w.exports.Base64=r.Base64),{Base64:r.Base64}})}).call(this)}).call(this,typeof xe!="undefined"?xe:typeof self!="undefined"?self:typeof window!="undefined"?window:{})},{}],315:[function(e,w,g){w.exports=r;var a=Object.prototype.hasOwnProperty;function r(u,l,c){if(!u)throw new TypeError("argument dest is required");if(!l)throw new TypeError("argument src is required");return c===void 0&&(c=!0),Object.getOwnPropertyNames(l).forEach(function(t){if(!(!c&&a.call(u,t))){var i=Object.getOwnPropertyDescriptor(l,t);Object.defineProperty(u,t,i)}}),u}},{}],316:[function(e,w,g){e("core-js/modules/es.array.map.js"),e("core-js/modules/es.regexp.exec.js"),e("core-js/modules/es.string.replace.js"),e("core-js/modules/es.regexp.constructor.js"),e("core-js/modules/es.regexp.to-string.js");function a(){this._types=Object.create(null),this._extensions=Object.create(null);for(var r=0;r0)return t(p);if(d==="number"&&isFinite(p))return f.long?n(p):i(p);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(p))};function t(p){if(p=String(p),!(p.length>100)){var f=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(p);if(!!f){var d=parseFloat(f[1]),m=(f[2]||"ms").toLowerCase();switch(m){case"years":case"year":case"yrs":case"yr":case"y":return d*s;case"weeks":case"week":case"w":return d*c;case"days":case"day":case"d":return d*l;case"hours":case"hour":case"hrs":case"hr":case"h":return d*u;case"minutes":case"minute":case"mins":case"min":case"m":return d*r;case"seconds":case"second":case"secs":case"sec":case"s":return d*a;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return d;default:return}}}}function i(p){var f=Math.abs(p);return f>=l?Math.round(p/l)+"d":f>=u?Math.round(p/u)+"h":f>=r?Math.round(p/r)+"m":f>=a?Math.round(p/a)+"s":p+"ms"}function n(p){var f=Math.abs(p);return f>=l?o(p,f,l,"day"):f>=u?o(p,f,u,"hour"):f>=r?o(p,f,r,"minute"):f>=a?o(p,f,a,"second"):p+" ms"}function o(p,f,d,m){var h=f>=d*1.5;return Math.round(p/d)+" "+m+(h?"s":"")}},{}],320:[function(e,w,g){var a=Object.getOwnPropertySymbols,r=Object.prototype.hasOwnProperty,u=Object.prototype.propertyIsEnumerable;function l(s){if(s==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(s)}function c(){try{if(!Object.assign)return!1;var s=new String("abc");if(s[5]="de",Object.getOwnPropertyNames(s)[0]==="5")return!1;for(var t={},i=0;i<10;i++)t["_"+String.fromCharCode(i)]=i;var n=Object.getOwnPropertyNames(t).map(function(p){return t[p]});if(n.join("")!=="0123456789")return!1;var o={};return"abcdefghijklmnopqrst".split("").forEach(function(p){o[p]=p}),Object.keys(Object.assign({},o)).join("")==="abcdefghijklmnopqrst"}catch{return!1}}w.exports=c()?Object.assign:function(s,t){for(var i,n=l(s),o,p=1;p=0;n--){var o=s[n];o==="."?s.splice(n,1):o===".."?(s.splice(n,1),i++):i&&(s.splice(n,1),i--)}if(t)for(;i--;i)s.unshift("..");return s}g.resolve=function(){for(var s="",t=!1,i=arguments.length-1;i>=-1&&!t;i--){var n=i>=0?arguments[i]:a.cwd();if(typeof n!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!n)continue;s=n+"/"+s,t=n.charAt(0)==="/"}return s=r(l(s.split("/"),function(o){return!!o}),!t).join("/"),(t?"/":"")+s||"."},g.normalize=function(s){var t=g.isAbsolute(s),i=c(s,-1)==="/";return s=r(l(s.split("/"),function(n){return!!n}),!t).join("/"),!s&&!t&&(s="."),s&&i&&(s+="/"),(t?"/":"")+s},g.isAbsolute=function(s){return s.charAt(0)==="/"},g.join=function(){var s=Array.prototype.slice.call(arguments,0);return g.normalize(l(s,function(t,i){if(typeof t!="string")throw new TypeError("Arguments to path.join must be strings");return t}).join("/"))},g.relative=function(s,t){s=g.resolve(s).substr(1),t=g.resolve(t).substr(1);function i(h){for(var b=0;b=0&&h[S]==="";S--);return b>S?[]:h.slice(b,S-b+1)}for(var n=i(s.split("/")),o=i(t.split("/")),p=Math.min(n.length,o.length),f=p,d=0;d=1;--p)if(t=s.charCodeAt(p),t===47){if(!o){n=p;break}}else o=!1;return n===-1?i?"/":".":i&&n===1?"/":s.slice(0,n)};function u(s){typeof s!="string"&&(s=s+"");var t=0,i=-1,n=!0,o;for(o=s.length-1;o>=0;--o)if(s.charCodeAt(o)===47){if(!n){t=o+1;break}}else i===-1&&(n=!1,i=o+1);return i===-1?"":s.slice(t,i)}g.basename=function(s,t){var i=u(s);return t&&i.substr(-1*t.length)===t&&(i=i.substr(0,i.length-t.length)),i},g.extname=function(s){typeof s!="string"&&(s=s+"");for(var t=-1,i=0,n=-1,o=!0,p=0,f=s.length-1;f>=0;--f){var d=s.charCodeAt(f);if(d===47){if(!o){i=f+1;break}continue}n===-1&&(o=!1,n=f+1),d===46?t===-1?t=f:p!==1&&(p=1):t!==-1&&(p=-1)}return t===-1||n===-1||p===0||p===1&&t===n-1&&t===i+1?"":s.slice(t,n)};function l(s,t){if(s.filter)return s.filter(t);for(var i=[],n=0;n-1&&k<=t)for(;++T3&&"WebKit"||/\bOpera\b/.test(Z)&&(/\bOPR\b/.test(E)?"Blink":"Presto")||/\b(?:Midori|Nook|Safari)\b/i.test(E)&&!/^(?:Trident|EdgeHTML)$/.test(Q)&&"WebKit"||!Q&&/\bMSIE\b/i.test(E)&&(oe=="Mac OS"?"Tasman":"Trident")||Q=="WebKit"&&/\bPlayStation\b(?! Vita\b)/i.test(Z)&&"NetFront")&&(Q=[X]),Z=="IE"&&(X=(/; *(?:XBLWP|ZuneWP)(\d+)/i.exec(E)||0)[1])?(Z+=" Mobile",oe="Windows Phone "+(/\+$/.test(X)?X:X+".x"),M.unshift("desktop mode")):/\bWPDesktop\b/i.test(E)?(Z="IE Mobile",oe="Windows Phone 8.x",M.unshift("desktop mode"),I||(I=(/\brv:([\d.]+)/.exec(E)||0)[1])):Z!="IE"&&Q=="Trident"&&(X=/\brv:([\d.]+)/.exec(E))&&(Z&&M.push("identifying as "+Z+(I?" "+I:"")),Z="IE",I=X[1]),N){if(v(_,"global"))if(G&&(X=G.lang.System,ae=X.getProperty("os.arch"),oe=oe||X.getProperty("os.name")+" "+X.getProperty("os.version")),U){try{I=_.require("ringo/engine").version.join("."),Z="RingoJS"}catch{(X=_.system)&&X.global.system==_.system&&(Z="Narwhal",oe||(oe=X[0].os||null))}Z||(Z="Rhino")}else typeof _.process=="object"&&!_.process.browser&&(X=_.process)&&(typeof X.versions=="object"&&(typeof X.versions.electron=="string"?(M.push("Node "+X.versions.node),Z="Electron",I=X.versions.electron):typeof X.versions.nw=="string"&&(M.push("Chromium "+I,"Node "+X.versions.node),Z="NW.js",I=X.versions.nw)),Z||(Z="Node.js",ae=X.arch,oe=X.platform,I=/[\d.]+/.exec(X.version),I=I?I[0]:null));else S(X=_.runtime)==L?(Z="Adobe AIR",oe=X.flash.system.Capabilities.os):S(X=_.phantom)==z?(Z="PhantomJS",I=(X=X.version||null)&&X.major+"."+X.minor+"."+X.patch):typeof K.documentMode=="number"&&(X=/\bTrident\/(\d+)/i.exec(E))?(I=[I,K.documentMode],(X=+X[1]+4)!=I[1]&&(M.push("IE "+I[1]+" mode"),Q&&(Q[1]=""),I[1]=X),I=Z=="IE"?String(I[1].toFixed(1)):I[0]):typeof K.documentMode=="number"&&/^(?:Chrome|Firefox)\b/.test(Z)&&(M.push("masking as "+Z+" "+I),Z="IE",I="11.0",Q=["Trident"],oe="Windows");oe=oe&&h(oe)}if(I&&(X=/(?:[ab]|dp|pre|[ab]\d+pre)(?:\d+\+?)?$/i.exec(I)||/(?:alpha|beta)(?: ?\d)?/i.exec(E+";"+(N&&k.appMinorVersion))||/\bMinefield\b/i.test(E)&&"a")&&(D=/b/i.test(X)?"beta":"alpha",I=I.replace(RegExp(X+"\\+?$"),"")+(D=="beta"?B:P)+(/\d+\+?/.exec(X)||"")),Z=="Fennec"||Z=="Firefox"&&/\b(?:Android|Firefox OS|KaiOS)\b/.test(oe))Z="Firefox Mobile";else if(Z=="Maxthon"&&I)I=I.replace(/\.[\d.]+/,".x");else if(/\bXbox\b/i.test(ie))ie=="Xbox 360"&&(oe=null),ie=="Xbox 360"&&/\bIEMobile\b/.test(E)&&M.unshift("mobile mode");else if((/^(?:Chrome|IE|Opera)$/.test(Z)||Z&&!ie&&!/Browser|Mobi/.test(Z))&&(oe=="Windows CE"||/Mobi/i.test(E)))Z+=" Mobile";else if(Z=="IE"&&N)try{_.external===null&&M.unshift("platform preview")}catch{M.unshift("embedded")}else(/\bBlackBerry\b/.test(ie)||/\bBB10\b/.test(E))&&(X=(RegExp(ie.replace(/ +/g," *")+"/([.\\d]+)","i").exec(E)||0)[1]||I)?(X=[X,/BB10/.test(E)],oe=(X[1]?(ie=null,ce="BlackBerry"):"Device Software")+" "+X[0],I=null):this!=b&&ie!="Wii"&&(N&&J||/Opera/.test(Z)&&/\b(?:MSIE|Firefox)\b/i.test(E)||Z=="Firefox"&&/\bOS X (?:\d+\.){2,}/.test(oe)||Z=="IE"&&(oe&&!/^Win/.test(oe)&&I>5.5||/\bWindows XP\b/.test(oe)&&I>8||I==8&&!/\bTrident\b/.test(E)))&&!i.test(X=O.call(b,E.replace(i,"")+";"))&&X.name&&(X="ing as "+X.name+((X=X.version)?" "+X:""),i.test(Z)?(/\bIE\b/.test(X)&&oe=="Mac OS"&&(oe=null),X="identify"+X):(X="mask"+X,q?Z=h(q.replace(/([a-z])([A-Z])/g,"$1 $2")):Z="Opera",/\bIE\b/.test(X)&&(oe=null),N||(I=null)),Q=["Presto"],M.push(X));(X=(/\bAppleWebKit\/([\d.]+\+?)/i.exec(E)||0)[1])&&(X=[parseFloat(X.replace(/\.(\d)$/,".0$1")),X],Z=="Safari"&&X[1].slice(-1)=="+"?(Z="WebKit Nightly",D="alpha",I=X[1].slice(0,-1)):(I==X[1]||I==(X[2]=(/\bSafari\/([\d.]+\+?)/i.exec(E)||0)[1]))&&(I=null),X[1]=(/\b(?:Headless)?Chrome\/([\d.]+)/i.exec(E)||0)[1],X[0]==537.36&&X[2]==537.36&&parseFloat(X[1])>=28&&Q=="WebKit"&&(Q=["Blink"]),!N||!W&&!X[1]?(Q&&(Q[1]="like Safari"),X=(X=X[0],X<400?1:X<500?2:X<526?3:X<533?4:X<534?"4+":X<535?5:X<537?6:X<538?7:X<601?8:X<602?9:X<604?10:X<606?11:X<608?12:"12")):(Q&&(Q[1]="like Chrome"),X=X[1]||(X=X[0],X<530?1:X<532?2:X<532.05?3:X<533?4:X<534.03?5:X<534.07?6:X<534.1?7:X<534.13?8:X<534.16?9:X<534.24?10:X<534.3?11:X<535.01?12:X<535.02?"13+":X<535.07?15:X<535.11?16:X<535.19?17:X<536.05?18:X<536.1?19:X<537.01?20:X<537.11?"21+":X<537.13?23:X<537.18?24:X<537.24?25:X<537.36?26:Q!="Blink"?"27":"28")),Q&&(Q[1]+=" "+(X+=typeof X=="number"?".x":/[.+]/.test(X)?"":"+")),Z=="Safari"&&(!I||parseInt(I)>45)?I=X:Z=="Chrome"&&/\bHeadlessChrome/i.test(E)&&M.unshift("headless")),Z=="Opera"&&(X=/\bzbov|zvav$/.exec(oe))?(Z+=" ",M.unshift("desktop mode"),X=="zvav"?(Z+="Mini",I=null):Z+="Mobile",oe=oe.replace(RegExp(" *"+X+"$"),"")):Z=="Safari"&&/\bChrome\b/.exec(Q&&Q[1])?(M.unshift("desktop mode"),Z="Chrome Mobile",I=null,/\bOS X\b/.test(oe)?(ce="Apple",oe="iOS 4.3+"):oe=null):/\bSRWare Iron\b/.test(Z)&&!I&&(I=H("Chrome")),I&&I.indexOf(X=/[\d.]+$/.exec(oe))==0&&E.indexOf("/"+X+"-")>-1&&(oe=x(oe.replace(X,""))),oe&&oe.indexOf(Z)!=-1&&!RegExp(Z+" OS").test(oe)&&(oe=oe.replace(RegExp(" *"+j(Z)+" *"),"")),Q&&!/\b(?:Avant|Nook)\b/.test(Z)&&(/Browser|Lunascape|Maxthon/.test(Z)||Z!="Safari"&&/^iOS/.test(oe)&&/\bSafari\b/.test(Q[1])||/^(?:Adobe|Arora|Breach|Midori|Opera|Phantom|Rekonq|Rock|Samsung Internet|Sleipnir|SRWare Iron|Vivaldi|Web)/.test(Z)&&Q[1])&&(X=Q[Q.length-1])&&M.push(X),M.length&&(M=["("+M.join("; ")+")"]),ce&&ie&&ie.indexOf(ce)<0&&M.push("on "+ce),ie&&M.push((/^on /.test(M[M.length-1])?"":"on ")+ie),oe&&(X=/ ([\d.+]+)$/.exec(oe),te=X&&oe.charAt(oe.length-X[0].length-1)=="/",oe={architecture:32,family:X&&!te?oe.replace(X[0],""):oe,version:X?X[1]:null,toString:function(){var ue=this.version;return this.family+(ue&&!te?" "+ue:"")+(this.architecture==64?" 64-bit":"")}}),(X=/\b(?:AMD|IA|Win|WOW|x86_|x)64\b/i.exec(ae))&&!/\bi686\b/i.test(ae)?(oe&&(oe.architecture=64,oe.family=oe.family.replace(RegExp(" *"+X),"")),Z&&(/\bWOW64\b/i.test(E)||N&&/\w(?:86|32)$/.test(k.cpuClass||k.platform)&&!/\bWin64; x64\b/i.test(E))&&M.unshift("32-bit")):oe&&/^OS X/.test(oe.family)&&Z=="Chrome"&&parseFloat(I)>=39&&(oe.architecture=64),E||(E=null);var ne={};return ne.description=E,ne.layout=Q&&Q[0],ne.manufacturer=ce,ne.name=Z,ne.prerelease=D,ne.product=ie,ne.ua=E,ne.version=Z&&I,ne.os=oe||{architecture:null,family:null,version:null,toString:function(){return"null"}},ne.parse=O,ne.toString=ee,ne.version&&M.unshift(I),ne.name&&M.unshift(Z),oe&&Z&&!(oe==String(oe).split(" ")[0]&&(oe==Z.split(" ")[0]||ie))&&M.push(ie?"("+oe+")":"on "+oe),M.length&&(ne.description=M.join(" ")),ne}var A=O();l&&c?b(A,function(E,_){l[_]=E}):u.platform=A}).call(this)}).call(this)}).call(this,typeof xe!="undefined"?xe:typeof self!="undefined"?self:typeof window!="undefined"?window:{})},{}],323:[function(e,w,g){(function(a){(function(){typeof a=="undefined"||!a.version||a.version.indexOf("v0.")===0||a.version.indexOf("v1.")===0&&a.version.indexOf("v1.8.")!==0?w.exports={nextTick:r}:w.exports=a;function r(u,l,c,s){if(typeof u!="function")throw new TypeError('"callback" argument must be a function');var t=arguments.length,i,n;switch(t){case 0:case 1:return a.nextTick(u);case 2:return a.nextTick(function(){u.call(null,l)});case 3:return a.nextTick(function(){u.call(null,l,c)});case 4:return a.nextTick(function(){u.call(null,l,c,s)});default:for(i=new Array(t-1),n=0;n1)for(var v=1;v= 0x80 (not a basic code point)","invalid-input":"Invalid input"},y=i-n,x=Math.floor,O=String.fromCharCode,A;function E(U){throw new RangeError(j[U])}function _(U,P){for(var B=U.length,K=[];B--;)K[B]=P(U[B]);return K}function T(U,P){var B=U.split("@"),K="";B.length>1&&(K=B[0]+"@",U=B[1]),U=U.replace(v,".");var J=U.split("."),q=_(J,P).join(".");return K+q}function k(U){for(var P=[],B=0,K=U.length,J,q;B=55296&&J<=56319&&B65535&&(P-=65536,B+=O(P>>>10&1023|55296),P=56320|P&1023),B+=O(P),B}).join("")}function W(U){return U-48<10?U-22:U-65<26?U-65:U-97<26?U-97:i}function V(U,P){return U+22+75*(U<26)-((P!=0)<<5)}function L(U,P,B){var K=0;for(U=B?x(U/f):U>>1,U+=x(U/P);U>y*o>>1;K+=i)U=x(U/y);return x(K+(y+1)*U/(U+p))}function Y(U){var P=[],B=U.length,K,J=0,q=m,X=d,ae,M,D,N,I,te,Q,Z,ie;for(ae=U.lastIndexOf(h),ae<0&&(ae=0),M=0;M=128&&E("not-basic"),P.push(U.charCodeAt(M));for(D=ae>0?ae+1:0;D=B&&E("invalid-input"),Q=W(U.charCodeAt(D++)),(Q>=i||Q>x((t-J)/I))&&E("overflow"),J+=Q*I,Z=te<=X?n:te>=X+o?o:te-X,!(Qx(t/ie)&&E("overflow"),I*=ie;K=P.length+1,X=L(J-N,K,N==0),x(J/K)>t-q&&E("overflow"),q+=x(J/K),J%=K,P.splice(J++,0,q)}return F(P)}function re(U){var P,B,K,J,q,X,ae,M,D,N,I,te=[],Q,Z,ie,ce;for(U=k(U),Q=U.length,P=m,B=0,q=d,X=0;X=P&&Ix((t-B)/Z)&&E("overflow"),B+=(ae-P)*Z,P=ae,X=0;Xt&&E("overflow"),I==P){for(M=B,D=i;N=D<=q?n:D>=q+o?o:D-q,!(M0&&o>n&&(o=n);for(var p=0;p=0?(m=f.substr(0,d),h=f.substr(d+1)):(m=f,h=""),b=decodeURIComponent(m),S=decodeURIComponent(h),a(t,b)?r(t[b])?t[b].push(S):t[b]=[t[b],S]:t[b]=S}return t};var r=Array.isArray||function(u){return Object.prototype.toString.call(u)==="[object Array]"}},{}],327:[function(e,w,g){var a=function(c){switch(typeof c){case"string":return c;case"boolean":return c?"true":"false";case"number":return isFinite(c)?c:"";default:return""}};w.exports=function(c,s,t,i){return s=s||"&",t=t||"=",c===null&&(c=void 0),typeof c=="object"?u(l(c),function(n){var o=encodeURIComponent(a(n))+t;return r(c[n])?u(c[n],function(p){return o+encodeURIComponent(a(p))}).join(s):o+encodeURIComponent(a(c[n]))}).join(s):i?encodeURIComponent(a(i))+t+encodeURIComponent(a(c)):""};var r=Array.isArray||function(c){return Object.prototype.toString.call(c)==="[object Array]"};function u(c,s){if(c.map)return c.map(s);for(var t=[],i=0;i0?(typeof I!="string"&&!ie.objectMode&&Object.getPrototypeOf(I)!==i.prototype&&(I=o(I)),Q?ie.endEmitted?N.emit("error",new Error("stream.unshift() after end event")):A(N,ie,I,!0):ie.ended?N.emit("error",new Error("stream.push() after EOF")):(ie.reading=!1,ie.decoder&&!te?(I=ie.decoder.write(I),ie.objectMode||I.length!==0?A(N,ie,I,!1):Y(N,ie)):A(N,ie,I,!1))):Q||(ie.reading=!1)}return _(ie)}function A(N,I,te,Q){I.flowing&&I.length===0&&!I.sync?(N.emit("data",te),N.read(0)):(I.length+=I.objectMode?1:te.length,Q?I.buffer.unshift(te):I.buffer.push(te),I.needReadable&&V(N)),Y(N,I)}function E(N,I){var te;return!p(I)&&typeof I!="string"&&I!==void 0&&!N.objectMode&&(te=new TypeError("Invalid non-string/buffer chunk")),te}function _(N){return!N.ended&&(N.needReadable||N.length=T?N=T:(N--,N|=N>>>1,N|=N>>>2,N|=N>>>4,N|=N>>>8,N|=N>>>16,N++),N}function F(N,I){return N<=0||I.length===0&&I.ended?0:I.objectMode?1:N!==N?I.flowing&&I.length?I.buffer.head.data.length:I.length:(N>I.highWaterMark&&(I.highWaterMark=k(N)),N<=I.length?N:I.ended?I.length:(I.needReadable=!0,0))}x.prototype.read=function(N){m("read",N),N=parseInt(N,10);var I=this._readableState,te=N;if(N!==0&&(I.emittedReadable=!1),N===0&&I.needReadable&&(I.length>=I.highWaterMark||I.ended))return m("read: emitReadable",I.length,I.ended),I.length===0&&I.ended?ae(this):V(this),null;if(N=F(N,I),N===0&&I.ended)return I.length===0&&ae(this),null;var Q=I.needReadable;m("need readable",Q),(I.length===0||I.length-N0?Z=K(N,I):Z=null,Z===null?(I.needReadable=!0,N=0):I.length-=N,I.length===0&&(I.ended||(I.needReadable=!0),te!==N&&I.ended&&ae(this)),Z!==null&&this.emit("data",Z),Z};function W(N,I){if(!I.ended){if(I.decoder){var te=I.decoder.end();te&&te.length&&(I.buffer.push(te),I.length+=I.objectMode?1:te.length)}I.ended=!0,V(N)}}function V(N){var I=N._readableState;I.needReadable=!1,I.emittedReadable||(m("emitReadable",I.flowing),I.emittedReadable=!0,I.sync?u.nextTick(L,N):L(N))}function L(N){m("emit readable"),N.emit("readable"),B(N)}function Y(N,I){I.readingMore||(I.readingMore=!0,u.nextTick(re,N,I))}function re(N,I){for(var te=I.length;!I.reading&&!I.flowing&&!I.ended&&I.length1&&D(Q.pipes,N)!==-1)&&!ge&&(m("false write response, pause",te._readableState.awaitDrain),te._readableState.awaitDrain++,R=!0),te.pause())}function H(se){m("onerror",se),ue(),N.removeListener("error",H),s(N,"error")===0&&N.emit("error",se)}j(N,"error",H);function ee(){N.removeListener("finish",ne),ue()}N.once("close",ee);function ne(){m("onfinish"),N.removeListener("close",ee),ue()}N.once("finish",ne);function ue(){m("unpipe"),te.unpipe(N)}return N.emit("pipe",te),Q.flowing||(m("pipe resume"),te.resume()),N};function z(N){return function(){var I=N._readableState;m("pipeOnDrain",I.awaitDrain),I.awaitDrain&&I.awaitDrain--,I.awaitDrain===0&&s(N,"data")&&(I.flowing=!0,B(N))}}x.prototype.unpipe=function(N){var I=this._readableState,te={hasUnpiped:!1};if(I.pipesCount===0)return this;if(I.pipesCount===1)return N&&N!==I.pipes?this:(N||(N=I.pipes),I.pipes=null,I.pipesCount=0,I.flowing=!1,N&&N.emit("unpipe",this,te),this);if(!N){var Q=I.pipes,Z=I.pipesCount;I.pipes=null,I.pipesCount=0,I.flowing=!1;for(var ie=0;ie=I.length?(I.decoder?te=I.buffer.join(""):I.buffer.length===1?te=I.buffer.head.data:te=I.buffer.concat(I.length),I.buffer.clear()):te=J(N,I.buffer,I.decoder),te}function J(N,I,te){var Q;return Nie.length?ie.length:N;if(ce===ie.length?Z+=ie:Z+=ie.slice(0,N),N-=ce,N===0){ce===ie.length?(++Q,te.next?I.head=te.next:I.head=I.tail=null):(I.head=te,te.data=ie.slice(ce));break}++Q}return I.length-=Q,Z}function X(N,I){var te=i.allocUnsafe(N),Q=I.head,Z=1;for(Q.data.copy(te),N-=Q.data.length;Q=Q.next;){var ie=Q.data,ce=N>ie.length?ie.length:N;if(ie.copy(te,te.length-N,0,ce),N-=ce,N===0){ce===ie.length?(++Z,Q.next?I.head=Q.next:I.head=I.tail=null):(I.head=Q,Q.data=ie.slice(ce));break}++Z}return I.length-=Z,te}function ae(N){var I=N._readableState;if(I.length>0)throw new Error('"endReadable()" called on non-empty stream');I.endEmitted||(I.ended=!0,u.nextTick(M,I,N))}function M(N,I){!N.endEmitted&&N.length===0&&(N.endEmitted=!0,I.readable=!1,I.emit("end"))}function D(N,I){for(var te=0,Q=N.length;te-1?u:l.nextTick,t;j.WritableState=S;var i=Object.create(e("core-util-is"));i.inherits=e("inherits");var n={deprecate:e("util-deprecate")},o=e("./internal/streams/stream"),p=e("safe-buffer").Buffer,f=r.Uint8Array||function(){};function d(P){return p.from(P)}function m(P){return p.isBuffer(P)||P instanceof f}var h=e("./internal/streams/destroy");i.inherits(j,o);function b(){}function S(P,B){t=t||e("./_stream_duplex"),P=P||{};var K=B instanceof t;this.objectMode=!!P.objectMode,K&&(this.objectMode=this.objectMode||!!P.writableObjectMode);var J=P.highWaterMark,q=P.writableHighWaterMark,X=this.objectMode?16:16*1024;J||J===0?this.highWaterMark=J:K&&(q||q===0)?this.highWaterMark=q:this.highWaterMark=X,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var ae=P.decodeStrings===!1;this.decodeStrings=!ae,this.defaultEncoding=P.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(M){k(B,M)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new c(this)}S.prototype.getBuffer=function(){for(var B=this.bufferedRequest,K=[];B;)K.push(B),B=B.next;return K},function(){try{Object.defineProperty(S.prototype,"buffer",{get:n.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}}();var v;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(v=Function.prototype[Symbol.hasInstance],Object.defineProperty(j,Symbol.hasInstance,{value:function(P){return v.call(this,P)?!0:this!==j?!1:P&&P._writableState instanceof S}})):v=function(P){return P instanceof this};function j(P){if(t=t||e("./_stream_duplex"),!v.call(j,this)&&!(this instanceof t))return new j(P);this._writableState=new S(P,this),this.writable=!0,P&&(typeof P.write=="function"&&(this._write=P.write),typeof P.writev=="function"&&(this._writev=P.writev),typeof P.destroy=="function"&&(this._destroy=P.destroy),typeof P.final=="function"&&(this._final=P.final)),o.call(this)}j.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))};function y(P,B){var K=new Error("write after end");P.emit("error",K),l.nextTick(B,K)}function x(P,B,K,J){var q=!0,X=!1;return K===null?X=new TypeError("May not write null values to stream"):typeof K!="string"&&K!==void 0&&!B.objectMode&&(X=new TypeError("Invalid non-string/buffer chunk")),X&&(P.emit("error",X),l.nextTick(J,X),q=!1),q}j.prototype.write=function(P,B,K){var J=this._writableState,q=!1,X=!J.objectMode&&m(P);return X&&!p.isBuffer(P)&&(P=d(P)),typeof B=="function"&&(K=B,B=null),X?B="buffer":B||(B=J.defaultEncoding),typeof K!="function"&&(K=b),J.ended?y(this,K):(X||x(this,J,P,K))&&(J.pendingcb++,q=A(this,J,X,P,B,K)),q},j.prototype.cork=function(){var P=this._writableState;P.corked++},j.prototype.uncork=function(){var P=this._writableState;P.corked&&(P.corked--,!P.writing&&!P.corked&&!P.finished&&!P.bufferProcessing&&P.bufferedRequest&&V(this,P))},j.prototype.setDefaultEncoding=function(B){if(typeof B=="string"&&(B=B.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((B+"").toLowerCase())>-1))throw new TypeError("Unknown encoding: "+B);return this._writableState.defaultEncoding=B,this};function O(P,B,K){return!P.objectMode&&P.decodeStrings!==!1&&typeof B=="string"&&(B=p.from(B,K)),B}Object.defineProperty(j.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function A(P,B,K,J,q,X){if(!K){var ae=O(B,J,q);J!==ae&&(K=!0,q="buffer",J=ae)}var M=B.objectMode?1:J.length;B.length+=M;var D=B.length0?this.tail.next=i:this.head=i,this.tail=i,++this.length},c.prototype.unshift=function(t){var i={data:t,next:this.head};this.length===0&&(this.tail=i),this.head=i,++this.length},c.prototype.shift=function(){if(this.length!==0){var t=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,t}},c.prototype.clear=function(){this.head=this.tail=null,this.length=0},c.prototype.join=function(t){if(this.length===0)return"";for(var i=this.head,n=""+i.data;i=i.next;)n+=t+i.data;return n},c.prototype.concat=function(t){if(this.length===0)return r.alloc(0);if(this.length===1)return this.head.data;for(var i=r.allocUnsafe(t>>>0),n=this.head,o=0;n;)l(n.data,i,o),o+=n.data.length,n=n.next;return i},c}(),u&&u.inspect&&u.inspect.custom&&(w.exports.prototype[u.inspect.custom]=function(){var c=u.inspect({length:this.length});return this.constructor.name+" "+c})},{"safe-buffer":343,util:84}],336:[function(e,w,g){var a=e("process-nextick-args");function r(c,s){var t=this,i=this._readableState&&this._readableState.destroyed,n=this._writableState&&this._writableState.destroyed;return i||n?(s?s(c):c&&(!this._writableState||!this._writableState.errorEmitted)&&a.nextTick(l,this,c),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(c||null,function(o){!s&&o?(a.nextTick(l,t,o),t._writableState&&(t._writableState.errorEmitted=!0)):s&&s(o)}),this)}function u(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function l(c,s){c.emit("error",s)}w.exports={destroy:r,undestroy:u}},{"process-nextick-args":323}],337:[function(e,w,g){w.exports=e("events").EventEmitter},{events:301}],338:[function(e,w,g){w.exports=e("./readable").PassThrough},{"./readable":339}],339:[function(e,w,g){g=w.exports=e("./lib/_stream_readable.js"),g.Stream=g,g.Readable=g,g.Writable=e("./lib/_stream_writable.js"),g.Duplex=e("./lib/_stream_duplex.js"),g.Transform=e("./lib/_stream_transform.js"),g.PassThrough=e("./lib/_stream_passthrough.js")},{"./lib/_stream_duplex.js":330,"./lib/_stream_passthrough.js":331,"./lib/_stream_readable.js":332,"./lib/_stream_transform.js":333,"./lib/_stream_writable.js":334}],340:[function(e,w,g){w.exports=e("./readable").Transform},{"./readable":339}],341:[function(e,w,g){w.exports=e("./lib/_stream_writable.js")},{"./lib/_stream_writable.js":334}],342:[function(e,w,g){var a=function(r){var u=Object.prototype,l=u.hasOwnProperty,c,s=typeof Symbol=="function"?Symbol:{},t=s.iterator||"@@iterator",i=s.asyncIterator||"@@asyncIterator",n=s.toStringTag||"@@toStringTag";function o(z,G,U){return Object.defineProperty(z,G,{value:U,enumerable:!0,configurable:!0,writable:!0}),z[G]}try{o({},"")}catch{o=function(G,U,P){return G[U]=P}}function p(z,G,U,P){var B=G&&G.prototype instanceof v?G:v,K=Object.create(B.prototype),J=new L(P||[]);return K._invoke=k(z,U,J),K}r.wrap=p;function f(z,G,U){try{return{type:"normal",arg:z.call(G,U)}}catch(P){return{type:"throw",arg:P}}}var d="suspendedStart",m="suspendedYield",h="executing",b="completed",S={};function v(){}function j(){}function y(){}var x={};o(x,t,function(){return this});var O=Object.getPrototypeOf,A=O&&O(O(Y([])));A&&A!==u&&l.call(A,t)&&(x=A);var E=y.prototype=v.prototype=Object.create(x);j.prototype=y,o(E,"constructor",y),o(y,"constructor",j),j.displayName=o(y,n,"GeneratorFunction");function _(z){["next","throw","return"].forEach(function(G){o(z,G,function(U){return this._invoke(G,U)})})}r.isGeneratorFunction=function(z){var G=typeof z=="function"&&z.constructor;return G?G===j||(G.displayName||G.name)==="GeneratorFunction":!1},r.mark=function(z){return Object.setPrototypeOf?Object.setPrototypeOf(z,y):(z.__proto__=y,o(z,n,"GeneratorFunction")),z.prototype=Object.create(E),z},r.awrap=function(z){return{__await:z}};function T(z,G){function U(K,J,q,X){var ae=f(z[K],z,J);if(ae.type==="throw")X(ae.arg);else{var M=ae.arg,D=M.value;return D&&typeof D=="object"&&l.call(D,"__await")?G.resolve(D.__await).then(function(N){U("next",N,q,X)},function(N){U("throw",N,q,X)}):G.resolve(D).then(function(N){M.value=N,q(M)},function(N){return U("throw",N,q,X)})}}var P;function B(K,J){function q(){return new G(function(X,ae){U(K,J,X,ae)})}return P=P?P.then(q,q):q()}this._invoke=B}_(T.prototype),o(T.prototype,i,function(){return this}),r.AsyncIterator=T,r.async=function(z,G,U,P,B){B===void 0&&(B=Promise);var K=new T(p(z,G,U,P),B);return r.isGeneratorFunction(G)?K:K.next().then(function(J){return J.done?J.value:K.next()})};function k(z,G,U){var P=d;return function(K,J){if(P===h)throw new Error("Generator is already running");if(P===b){if(K==="throw")throw J;return re()}for(U.method=K,U.arg=J;;){var q=U.delegate;if(q){var X=F(q,U);if(X){if(X===S)continue;return X}}if(U.method==="next")U.sent=U._sent=U.arg;else if(U.method==="throw"){if(P===d)throw P=b,U.arg;U.dispatchException(U.arg)}else U.method==="return"&&U.abrupt("return",U.arg);P=h;var ae=f(z,G,U);if(ae.type==="normal"){if(P=U.done?b:m,ae.arg===S)continue;return{value:ae.arg,done:U.done}}else ae.type==="throw"&&(P=b,U.method="throw",U.arg=ae.arg)}}}function F(z,G){var U=z.iterator[G.method];if(U===c){if(G.delegate=null,G.method==="throw"){if(z.iterator.return&&(G.method="return",G.arg=c,F(z,G),G.method==="throw"))return S;G.method="throw",G.arg=new TypeError("The iterator does not provide a 'throw' method")}return S}var P=f(U,z.iterator,G.arg);if(P.type==="throw")return G.method="throw",G.arg=P.arg,G.delegate=null,S;var B=P.arg;if(!B)return G.method="throw",G.arg=new TypeError("iterator result is not an object"),G.delegate=null,S;if(B.done)G[z.resultName]=B.value,G.next=z.nextLoc,G.method!=="return"&&(G.method="next",G.arg=c);else return B;return G.delegate=null,S}_(E),o(E,n,"Generator"),o(E,t,function(){return this}),o(E,"toString",function(){return"[object Generator]"});function W(z){var G={tryLoc:z[0]};1 in z&&(G.catchLoc=z[1]),2 in z&&(G.finallyLoc=z[2],G.afterLoc=z[3]),this.tryEntries.push(G)}function V(z){var G=z.completion||{};G.type="normal",delete G.arg,z.completion=G}function L(z){this.tryEntries=[{tryLoc:"root"}],z.forEach(W,this),this.reset(!0)}r.keys=function(z){var G=[];for(var U in z)G.push(U);return G.reverse(),function P(){for(;G.length;){var B=G.pop();if(B in z)return P.value=B,P.done=!1,P}return P.done=!0,P}};function Y(z){if(z){var G=z[t];if(G)return G.call(z);if(typeof z.next=="function")return z;if(!isNaN(z.length)){var U=-1,P=function B(){for(;++U=0;--P){var B=this.tryEntries[P],K=B.completion;if(B.tryLoc==="root")return U("end");if(B.tryLoc<=this.prev){var J=l.call(B,"catchLoc"),q=l.call(B,"finallyLoc");if(J&&q){if(this.prev=0;--U){var P=this.tryEntries[U];if(P.tryLoc<=this.prev&&l.call(P,"finallyLoc")&&this.prev=0;--G){var U=this.tryEntries[G];if(U.finallyLoc===z)return this.complete(U.completion,U.afterLoc),V(U),S}},catch:function(z){for(var G=this.tryEntries.length-1;G>=0;--G){var U=this.tryEntries[G];if(U.tryLoc===z){var P=U.completion;if(P.type==="throw"){var B=P.arg;V(U)}return B}}throw new Error("illegal catch attempt")},delegateYield:function(z,G,U){return this.delegate={iterator:Y(z),resultName:G,nextLoc:U},this.method==="next"&&(this.arg=c),S}},r}(typeof w=="object"?w.exports:{});try{regeneratorRuntime=a}catch{typeof globalThis=="object"?globalThis.regeneratorRuntime=a:Function("r","regeneratorRuntime = r")(a)}},{}],343:[function(e,w,g){var a=e("buffer"),r=a.Buffer;function u(c,s){for(var t in c)s[t]=c[t]}r.from&&r.alloc&&r.allocUnsafe&&r.allocUnsafeSlow?w.exports=a:(u(a,g),g.Buffer=l);function l(c,s,t){return r(c,s,t)}u(r,l),l.from=function(c,s,t){if(typeof c=="number")throw new TypeError("Argument must not be a number");return r(c,s,t)},l.alloc=function(c,s,t){if(typeof c!="number")throw new TypeError("Argument must be a number");var i=r(c);return s!==void 0?typeof t=="string"?i.fill(s,t):i.fill(s):i.fill(0),i},l.allocUnsafe=function(c){if(typeof c!="number")throw new TypeError("Argument must be a number");return r(c)},l.allocUnsafeSlow=function(c){if(typeof c!="number")throw new TypeError("Argument must be a number");return a.SlowBuffer(c)}},{buffer:85}],344:[function(e,w,g){(function(a){(function(){(function(r){r.parser=function(M,D){return new l(M,D)},r.SAXParser=l,r.SAXStream=p,r.createStream=o,r.MAX_BUFFER_LENGTH=64*1024;var u=["comment","sgmlDecl","textNode","tagName","doctype","procInstName","procInstBody","entity","attribName","attribValue","cdata","script"];r.EVENTS=["text","processinginstruction","sgmldeclaration","doctype","comment","opentagstart","attribute","opentag","closetag","opencdata","cdata","closecdata","error","end","ready","script","opennamespace","closenamespace"];function l(M,D){if(!(this instanceof l))return new l(M,D);var N=this;s(N),N.q=N.c="",N.bufferCheckPosition=r.MAX_BUFFER_LENGTH,N.opt=D||{},N.opt.lowercase=N.opt.lowercase||N.opt.lowercasetags,N.looseCase=N.opt.lowercase?"toLowerCase":"toUpperCase",N.tags=[],N.closed=N.closedRoot=N.sawRoot=!1,N.tag=N.error=null,N.strict=!!M,N.noscript=!!(M||N.opt.noscript),N.state=T.BEGIN,N.strictEntities=N.opt.strictEntities,N.ENTITIES=N.strictEntities?Object.create(r.XML_ENTITIES):Object.create(r.ENTITIES),N.attribList=[],N.opt.xmlns&&(N.ns=Object.create(b)),N.trackPosition=N.opt.position!==!1,N.trackPosition&&(N.position=N.line=N.column=0),F(N,"onready")}Object.create||(Object.create=function(M){function D(){}D.prototype=M;var N=new D;return N}),Object.keys||(Object.keys=function(M){var D=[];for(var N in M)M.hasOwnProperty(N)&&D.push(N);return D});function c(M){for(var D=Math.max(r.MAX_BUFFER_LENGTH,10),N=0,I=0,te=u.length;ID)switch(u[I]){case"textNode":V(M);break;case"cdata":W(M,"oncdata",M.cdata),M.cdata="";break;case"script":W(M,"onscript",M.script),M.script="";break;default:Y(M,"Max buffer length exceeded: "+u[I])}N=Math.max(N,Q)}var Z=r.MAX_BUFFER_LENGTH-N;M.bufferCheckPosition=Z+M.position}function s(M){for(var D=0,N=u.length;D"||x(M)}function E(M,D){return M.test(D)}function _(M,D){return!E(M,D)}var T=0;r.STATE={BEGIN:T++,BEGIN_WHITESPACE:T++,TEXT:T++,TEXT_ENTITY:T++,OPEN_WAKA:T++,SGML_DECL:T++,SGML_DECL_QUOTED:T++,DOCTYPE:T++,DOCTYPE_QUOTED:T++,DOCTYPE_DTD:T++,DOCTYPE_DTD_QUOTED:T++,COMMENT_STARTING:T++,COMMENT:T++,COMMENT_ENDING:T++,COMMENT_ENDED:T++,CDATA:T++,CDATA_ENDING:T++,CDATA_ENDING_2:T++,PROC_INST:T++,PROC_INST_BODY:T++,PROC_INST_ENDING:T++,OPEN_TAG:T++,OPEN_TAG_SLASH:T++,ATTRIB:T++,ATTRIB_NAME:T++,ATTRIB_NAME_SAW_WHITE:T++,ATTRIB_VALUE:T++,ATTRIB_VALUE_QUOTED:T++,ATTRIB_VALUE_CLOSED:T++,ATTRIB_VALUE_UNQUOTED:T++,ATTRIB_VALUE_ENTITY_Q:T++,ATTRIB_VALUE_ENTITY_U:T++,CLOSE_TAG:T++,CLOSE_TAG_SAW_WHITE:T++,SCRIPT:T++,SCRIPT_ENDING:T++},r.XML_ENTITIES={amp:"&",gt:">",lt:"<",quot:'"',apos:"'"},r.ENTITIES={amp:"&",gt:">",lt:"<",quot:'"',apos:"'",AElig:198,Aacute:193,Acirc:194,Agrave:192,Aring:197,Atilde:195,Auml:196,Ccedil:199,ETH:208,Eacute:201,Ecirc:202,Egrave:200,Euml:203,Iacute:205,Icirc:206,Igrave:204,Iuml:207,Ntilde:209,Oacute:211,Ocirc:212,Ograve:210,Oslash:216,Otilde:213,Ouml:214,THORN:222,Uacute:218,Ucirc:219,Ugrave:217,Uuml:220,Yacute:221,aacute:225,acirc:226,aelig:230,agrave:224,aring:229,atilde:227,auml:228,ccedil:231,eacute:233,ecirc:234,egrave:232,eth:240,euml:235,iacute:237,icirc:238,igrave:236,iuml:239,ntilde:241,oacute:243,ocirc:244,ograve:242,oslash:248,otilde:245,ouml:246,szlig:223,thorn:254,uacute:250,ucirc:251,ugrave:249,uuml:252,yacute:253,yuml:255,copy:169,reg:174,nbsp:160,iexcl:161,cent:162,pound:163,curren:164,yen:165,brvbar:166,sect:167,uml:168,ordf:170,laquo:171,not:172,shy:173,macr:175,deg:176,plusmn:177,sup1:185,sup2:178,sup3:179,acute:180,micro:181,para:182,middot:183,cedil:184,ordm:186,raquo:187,frac14:188,frac12:189,frac34:190,iquest:191,times:215,divide:247,OElig:338,oelig:339,Scaron:352,scaron:353,Yuml:376,fnof:402,circ:710,tilde:732,Alpha:913,Beta:914,Gamma:915,Delta:916,Epsilon:917,Zeta:918,Eta:919,Theta:920,Iota:921,Kappa:922,Lambda:923,Mu:924,Nu:925,Xi:926,Omicron:927,Pi:928,Rho:929,Sigma:931,Tau:932,Upsilon:933,Phi:934,Chi:935,Psi:936,Omega:937,alpha:945,beta:946,gamma:947,delta:948,epsilon:949,zeta:950,eta:951,theta:952,iota:953,kappa:954,lambda:955,mu:956,nu:957,xi:958,omicron:959,pi:960,rho:961,sigmaf:962,sigma:963,tau:964,upsilon:965,phi:966,chi:967,psi:968,omega:969,thetasym:977,upsih:978,piv:982,ensp:8194,emsp:8195,thinsp:8201,zwnj:8204,zwj:8205,lrm:8206,rlm:8207,ndash:8211,mdash:8212,lsquo:8216,rsquo:8217,sbquo:8218,ldquo:8220,rdquo:8221,bdquo:8222,dagger:8224,Dagger:8225,bull:8226,hellip:8230,permil:8240,prime:8242,Prime:8243,lsaquo:8249,rsaquo:8250,oline:8254,frasl:8260,euro:8364,image:8465,weierp:8472,real:8476,trade:8482,alefsym:8501,larr:8592,uarr:8593,rarr:8594,darr:8595,harr:8596,crarr:8629,lArr:8656,uArr:8657,rArr:8658,dArr:8659,hArr:8660,forall:8704,part:8706,exist:8707,empty:8709,nabla:8711,isin:8712,notin:8713,ni:8715,prod:8719,sum:8721,minus:8722,lowast:8727,radic:8730,prop:8733,infin:8734,ang:8736,and:8743,or:8744,cap:8745,cup:8746,int:8747,there4:8756,sim:8764,cong:8773,asymp:8776,ne:8800,equiv:8801,le:8804,ge:8805,sub:8834,sup:8835,nsub:8836,sube:8838,supe:8839,oplus:8853,otimes:8855,perp:8869,sdot:8901,lceil:8968,rceil:8969,lfloor:8970,rfloor:8971,lang:9001,rang:9002,loz:9674,spades:9824,clubs:9827,hearts:9829,diams:9830},Object.keys(r.ENTITIES).forEach(function(M){var D=r.ENTITIES[M],N=typeof D=="number"?String.fromCharCode(D):D;r.ENTITIES[M]=N});for(var k in r.STATE)r.STATE[r.STATE[k]]=k;T=r.STATE;function F(M,D,N){M[D]&&M[D](N)}function W(M,D,N){M.textNode&&V(M),F(M,D,N)}function V(M){M.textNode=L(M.opt,M.textNode),M.textNode&&F(M,"ontext",M.textNode),M.textNode=""}function L(M,D){return M.trim&&(D=D.trim()),M.normalize&&(D=D.replace(/\s+/g," ")),D}function Y(M,D){return V(M),M.trackPosition&&(D+=` +Line: `+M.line+` +Column: `+M.column+` +Char: `+M.c),D=new Error(D),M.error=D,F(M,"onerror",D),M}function re(M){return M.sawRoot&&!M.closedRoot&&z(M,"Unclosed root tag"),M.state!==T.BEGIN&&M.state!==T.BEGIN_WHITESPACE&&M.state!==T.TEXT&&Y(M,"Unexpected end"),V(M),M.c="",M.closed=!0,F(M,"onend"),l.call(M,M.strict,M.opt),M}function z(M,D){if(typeof M!="object"||!(M instanceof l))throw new Error("bad call to strictFail");M.strict&&Y(M,D)}function G(M){M.strict||(M.tagName=M.tagName[M.looseCase]());var D=M.tags[M.tags.length-1]||M,N=M.tag={name:M.tagName,attributes:{}};M.opt.xmlns&&(N.ns=D.ns),M.attribList.length=0,W(M,"onopentagstart",N)}function U(M,D){var N=M.indexOf(":"),I=N<0?["",M]:M.split(":"),te=I[0],Q=I[1];return D&&M==="xmlns"&&(te="xmlns",Q=""),{prefix:te,local:Q}}function P(M){if(M.strict||(M.attribName=M.attribName[M.looseCase]()),M.attribList.indexOf(M.attribName)!==-1||M.tag.attributes.hasOwnProperty(M.attribName)){M.attribName=M.attribValue="";return}if(M.opt.xmlns){var D=U(M.attribName,!0),N=D.prefix,I=D.local;if(N==="xmlns")if(I==="xml"&&M.attribValue!==m)z(M,"xml: prefix must be bound to "+m+` +Actual: `+M.attribValue);else if(I==="xmlns"&&M.attribValue!==h)z(M,"xmlns: prefix must be bound to "+h+` +Actual: `+M.attribValue);else{var te=M.tag,Q=M.tags[M.tags.length-1]||M;te.ns===Q.ns&&(te.ns=Object.create(Q.ns)),te.ns[I]=M.attribValue}M.attribList.push([M.attribName,M.attribValue])}else M.tag.attributes[M.attribName]=M.attribValue,W(M,"onattribute",{name:M.attribName,value:M.attribValue});M.attribName=M.attribValue=""}function B(M,D){if(M.opt.xmlns){var N=M.tag,I=U(M.tagName);N.prefix=I.prefix,N.local=I.local,N.uri=N.ns[I.prefix]||"",N.prefix&&!N.uri&&(z(M,"Unbound namespace prefix: "+JSON.stringify(M.tagName)),N.uri=I.prefix);var te=M.tags[M.tags.length-1]||M;N.ns&&te.ns!==N.ns&&Object.keys(N.ns).forEach(function(H){W(M,"onopennamespace",{prefix:H,uri:N.ns[H]})});for(var Q=0,Z=M.attribList.length;Q",M.tagName="",M.state=T.SCRIPT;return}W(M,"onscript",M.script),M.script=""}var D=M.tags.length,N=M.tagName;M.strict||(N=N[M.looseCase]());for(var I=N;D--;){var te=M.tags[D];if(te.name!==I)z(M,"Unexpected close tag");else break}if(D<0){z(M,"Unmatched closing tag: "+M.tagName),M.textNode+="",M.state=T.TEXT;return}M.tagName=N;for(var Q=M.tags.length;Q-- >D;){var Z=M.tag=M.tags.pop();M.tagName=M.tag.name,W(M,"onclosetag",M.tagName);var ie={};for(var ce in Z.ns)ie[ce]=Z.ns[ce];var oe=M.tags[M.tags.length-1]||M;M.opt.xmlns&&Z.ns!==oe.ns&&Object.keys(Z.ns).forEach(function(me){var ge=Z.ns[me];W(M,"onclosenamespace",{prefix:me,uri:ge})})}D===0&&(M.closedRoot=!0),M.tagName=M.attribValue=M.attribName="",M.attribList.length=0,M.state=T.TEXT}function J(M){var D=M.entity,N=D.toLowerCase(),I,te="";return M.ENTITIES[D]?M.ENTITIES[D]:M.ENTITIES[N]?M.ENTITIES[N]:(D=N,D.charAt(0)==="#"&&(D.charAt(1)==="x"?(D=D.slice(2),I=parseInt(D,16),te=I.toString(16)):(D=D.slice(1),I=parseInt(D,10),te=I.toString(10))),D=D.replace(/^0+/,""),isNaN(I)||te.toLowerCase()!==D?(z(M,"Invalid character entity"),"&"+M.entity+";"):String.fromCodePoint(I))}function q(M,D){D==="<"?(M.state=T.OPEN_WAKA,M.startTagPosition=M.position):x(D)||(z(M,"Non-whitespace before first tag."),M.textNode=D,M.state=T.TEXT)}function X(M,D){var N="";return D"?(W(D,"onsgmldeclaration",D.sgmlDecl),D.sgmlDecl="",D.state=T.TEXT):(O(I)&&(D.state=T.SGML_DECL_QUOTED),D.sgmlDecl+=I);continue;case T.SGML_DECL_QUOTED:I===D.q&&(D.state=T.SGML_DECL,D.q=""),D.sgmlDecl+=I;continue;case T.DOCTYPE:I===">"?(D.state=T.TEXT,W(D,"ondoctype",D.doctype),D.doctype=!0):(D.doctype+=I,I==="["?D.state=T.DOCTYPE_DTD:O(I)&&(D.state=T.DOCTYPE_QUOTED,D.q=I));continue;case T.DOCTYPE_QUOTED:D.doctype+=I,I===D.q&&(D.q="",D.state=T.DOCTYPE);continue;case T.DOCTYPE_DTD:D.doctype+=I,I==="]"?D.state=T.DOCTYPE:O(I)&&(D.state=T.DOCTYPE_DTD_QUOTED,D.q=I);continue;case T.DOCTYPE_DTD_QUOTED:D.doctype+=I,I===D.q&&(D.state=T.DOCTYPE_DTD,D.q="");continue;case T.COMMENT:I==="-"?D.state=T.COMMENT_ENDING:D.comment+=I;continue;case T.COMMENT_ENDING:I==="-"?(D.state=T.COMMENT_ENDED,D.comment=L(D.opt,D.comment),D.comment&&W(D,"oncomment",D.comment),D.comment=""):(D.comment+="-"+I,D.state=T.COMMENT);continue;case T.COMMENT_ENDED:I!==">"?(z(D,"Malformed comment"),D.comment+="--"+I,D.state=T.COMMENT):D.state=T.TEXT;continue;case T.CDATA:I==="]"?D.state=T.CDATA_ENDING:D.cdata+=I;continue;case T.CDATA_ENDING:I==="]"?D.state=T.CDATA_ENDING_2:(D.cdata+="]"+I,D.state=T.CDATA);continue;case T.CDATA_ENDING_2:I===">"?(D.cdata&&W(D,"oncdata",D.cdata),W(D,"onclosecdata"),D.cdata="",D.state=T.TEXT):I==="]"?D.cdata+="]":(D.cdata+="]]"+I,D.state=T.CDATA);continue;case T.PROC_INST:I==="?"?D.state=T.PROC_INST_ENDING:x(I)?D.state=T.PROC_INST_BODY:D.procInstName+=I;continue;case T.PROC_INST_BODY:if(!D.procInstBody&&x(I))continue;I==="?"?D.state=T.PROC_INST_ENDING:D.procInstBody+=I;continue;case T.PROC_INST_ENDING:I===">"?(W(D,"onprocessinginstruction",{name:D.procInstName,body:D.procInstBody}),D.procInstName=D.procInstBody="",D.state=T.TEXT):(D.procInstBody+="?"+I,D.state=T.PROC_INST_BODY);continue;case T.OPEN_TAG:E(v,I)?D.tagName+=I:(G(D),I===">"?B(D):I==="/"?D.state=T.OPEN_TAG_SLASH:(x(I)||z(D,"Invalid character in tag name"),D.state=T.ATTRIB));continue;case T.OPEN_TAG_SLASH:I===">"?(B(D,!0),K(D)):(z(D,"Forward-slash in opening tag not followed by >"),D.state=T.ATTRIB);continue;case T.ATTRIB:if(x(I))continue;I===">"?B(D):I==="/"?D.state=T.OPEN_TAG_SLASH:E(S,I)?(D.attribName=I,D.attribValue="",D.state=T.ATTRIB_NAME):z(D,"Invalid attribute name");continue;case T.ATTRIB_NAME:I==="="?D.state=T.ATTRIB_VALUE:I===">"?(z(D,"Attribute without value"),D.attribValue=D.attribName,P(D),B(D)):x(I)?D.state=T.ATTRIB_NAME_SAW_WHITE:E(v,I)?D.attribName+=I:z(D,"Invalid attribute name");continue;case T.ATTRIB_NAME_SAW_WHITE:if(I==="=")D.state=T.ATTRIB_VALUE;else{if(x(I))continue;z(D,"Attribute without value"),D.tag.attributes[D.attribName]="",D.attribValue="",W(D,"onattribute",{name:D.attribName,value:""}),D.attribName="",I===">"?B(D):E(S,I)?(D.attribName=I,D.state=T.ATTRIB_NAME):(z(D,"Invalid attribute name"),D.state=T.ATTRIB)}continue;case T.ATTRIB_VALUE:if(x(I))continue;O(I)?(D.q=I,D.state=T.ATTRIB_VALUE_QUOTED):(z(D,"Unquoted attribute value"),D.state=T.ATTRIB_VALUE_UNQUOTED,D.attribValue=I);continue;case T.ATTRIB_VALUE_QUOTED:if(I!==D.q){I==="&"?D.state=T.ATTRIB_VALUE_ENTITY_Q:D.attribValue+=I;continue}P(D),D.q="",D.state=T.ATTRIB_VALUE_CLOSED;continue;case T.ATTRIB_VALUE_CLOSED:x(I)?D.state=T.ATTRIB:I===">"?B(D):I==="/"?D.state=T.OPEN_TAG_SLASH:E(S,I)?(z(D,"No whitespace between attributes"),D.attribName=I,D.attribValue="",D.state=T.ATTRIB_NAME):z(D,"Invalid attribute name");continue;case T.ATTRIB_VALUE_UNQUOTED:if(!A(I)){I==="&"?D.state=T.ATTRIB_VALUE_ENTITY_U:D.attribValue+=I;continue}P(D),I===">"?B(D):D.state=T.ATTRIB;continue;case T.CLOSE_TAG:if(D.tagName)I===">"?K(D):E(v,I)?D.tagName+=I:D.script?(D.script+=""?K(D):z(D,"Invalid characters in closing tag");continue;case T.TEXT_ENTITY:case T.ATTRIB_VALUE_ENTITY_Q:case T.ATTRIB_VALUE_ENTITY_U:var Z,ie;switch(D.state){case T.TEXT_ENTITY:Z=T.TEXT,ie="textNode";break;case T.ATTRIB_VALUE_ENTITY_Q:Z=T.ATTRIB_VALUE_QUOTED,ie="attribValue";break;case T.ATTRIB_VALUE_ENTITY_U:Z=T.ATTRIB_VALUE_UNQUOTED,ie="attribValue";break}I===";"?(D[ie]+=J(D),D.entity="",D.state=Z):E(D.entity.length?y:j,I)?D.entity+=I:(z(D,"Invalid character in entity name"),D[ie]+="&"+D.entity+I,D.entity="",D.state=Z);continue;default:throw new Error(D,"Unknown state: "+D.state)}return D.position>=D.bufferCheckPosition&&c(D),D}/*! http://mths.be/fromcodepoint v0.1.0 by @mathias */String.fromCodePoint||function(){var M=String.fromCharCode,D=Math.floor,N=function(){var I=16384,te=[],Q,Z,ie=-1,ce=arguments.length;if(!ce)return"";for(var oe="";++ie1114111||D(me)!==me)throw RangeError("Invalid code point: "+me);me<=65535?te.push(me):(me-=65536,Q=(me>>10)+55296,Z=me%1024+56320,te.push(Q,Z)),(ie+1===ce||te.length>I)&&(oe+=M.apply(null,te),te.length=0)}return oe};Object.defineProperty?Object.defineProperty(String,"fromCodePoint",{value:N,configurable:!0,writable:!0}):String.fromCodePoint=N}()})(typeof g=="undefined"?this.sax={}:g)}).call(this)}).call(this,e("buffer").Buffer)},{buffer:85,stream:345,string_decoder:86}],345:[function(e,w,g){w.exports=u;var a=e("events").EventEmitter,r=e("inherits");r(u,a),u.Readable=e("readable-stream/readable.js"),u.Writable=e("readable-stream/writable.js"),u.Duplex=e("readable-stream/duplex.js"),u.Transform=e("readable-stream/transform.js"),u.PassThrough=e("readable-stream/passthrough.js"),u.Stream=u;function u(){a.call(this)}u.prototype.pipe=function(l,c){var s=this;function t(m){l.writable&&l.write(m)===!1&&s.pause&&s.pause()}s.on("data",t);function i(){s.readable&&s.resume&&s.resume()}l.on("drain",i),!l._isStdio&&(!c||c.end!==!1)&&(s.on("end",o),s.on("close",p));var n=!1;function o(){n||(n=!0,l.end())}function p(){n||(n=!0,typeof l.destroy=="function"&&l.destroy())}function f(m){if(d(),a.listenerCount(this,"error")===0)throw m}s.on("error",f),l.on("error",f);function d(){s.removeListener("data",t),l.removeListener("drain",i),s.removeListener("end",o),s.removeListener("close",p),s.removeListener("error",f),l.removeListener("error",f),s.removeListener("end",d),s.removeListener("close",d),l.removeListener("close",d)}return s.on("end",d),s.on("close",d),l.on("close",d),l.emit("pipe",s),l}},{events:301,inherits:311,"readable-stream/duplex.js":329,"readable-stream/passthrough.js":338,"readable-stream/readable.js":339,"readable-stream/transform.js":340,"readable-stream/writable.js":341}],346:[function(e,w,g){var a=e("safe-buffer").Buffer,r=a.isEncoding||function(v){switch(v=""+v,v&&v.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function u(v){if(!v)return"utf8";for(var j;;)switch(v){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return v;default:if(j)return;v=(""+v).toLowerCase(),j=!0}}function l(v){var j=u(v);if(typeof j!="string"&&(a.isEncoding===r||!r(v)))throw new Error("Unknown encoding: "+v);return j||v}g.StringDecoder=c;function c(v){this.encoding=l(v);var j;switch(this.encoding){case"utf16le":this.text=f,this.end=d,j=4;break;case"utf8":this.fillLast=n,j=4;break;case"base64":this.text=m,this.end=h,j=3;break;default:this.write=b,this.end=S;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=a.allocUnsafe(j)}c.prototype.write=function(v){if(v.length===0)return"";var j,y;if(this.lastNeed){if(j=this.fillLast(v),j===void 0)return"";y=this.lastNeed,this.lastNeed=0}else y=0;return y>5===6?2:v>>4===14?3:v>>3===30?4:v>>6===2?-1:-2}function t(v,j,y){var x=j.length-1;if(x=0?(O>0&&(v.lastNeed=O-1),O):--x=0?(O>0&&(v.lastNeed=O-2),O):--x=0?(O>0&&(O===2?O=0:v.lastNeed=O-3),O):0))}function i(v,j,y){if((j[0]&192)!==128)return v.lastNeed=0,"\uFFFD";if(v.lastNeed>1&&j.length>1){if((j[1]&192)!==128)return v.lastNeed=1,"\uFFFD";if(v.lastNeed>2&&j.length>2&&(j[2]&192)!==128)return v.lastNeed=2,"\uFFFD"}}function n(v){var j=this.lastTotal-this.lastNeed,y=i(this,v);if(y!==void 0)return y;if(this.lastNeed<=v.length)return v.copy(this.lastChar,j,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);v.copy(this.lastChar,j,0,v.length),this.lastNeed-=v.length}function o(v,j){var y=t(this,v,j);if(!this.lastNeed)return v.toString("utf8",j);this.lastTotal=y;var x=v.length-(y-this.lastNeed);return v.copy(this.lastChar,0,x),v.toString("utf8",j,x)}function p(v){var j=v&&v.length?this.write(v):"";return this.lastNeed?j+"\uFFFD":j}function f(v,j){if((v.length-j)%2===0){var y=v.toString("utf16le",j);if(y){var x=y.charCodeAt(y.length-1);if(x>=55296&&x<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=v[v.length-2],this.lastChar[1]=v[v.length-1],y.slice(0,-1)}return y}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=v[v.length-1],v.toString("utf16le",j,v.length-1)}function d(v){var j=v&&v.length?this.write(v):"";if(this.lastNeed){var y=this.lastTotal-this.lastNeed;return j+this.lastChar.toString("utf16le",0,y)}return j}function m(v,j){var y=(v.length-j)%3;return y===0?v.toString("base64",j):(this.lastNeed=3-y,this.lastTotal=3,y===1?this.lastChar[0]=v[v.length-1]:(this.lastChar[0]=v[v.length-2],this.lastChar[1]=v[v.length-1]),v.toString("base64",j,v.length-y))}function h(v){var j=v&&v.length?this.write(v):"";return this.lastNeed?j+this.lastChar.toString("base64",0,3-this.lastNeed):j}function b(v){return v.toString(this.encoding)}function S(v){return v&&v.length?this.write(v):""}},{"safe-buffer":343}],347:[function(e,w,g){(function(a,r){(function(){var u=e("process/browser.js").nextTick,l=Function.prototype.apply,c=Array.prototype.slice,s={},t=0;g.setTimeout=function(){return new i(l.call(setTimeout,window,arguments),clearTimeout)},g.setInterval=function(){return new i(l.call(setInterval,window,arguments),clearInterval)},g.clearTimeout=g.clearInterval=function(n){n.close()};function i(n,o){this._id=n,this._clearFn=o}i.prototype.unref=i.prototype.ref=function(){},i.prototype.close=function(){this._clearFn.call(window,this._id)},g.enroll=function(n,o){clearTimeout(n._idleTimeoutId),n._idleTimeout=o},g.unenroll=function(n){clearTimeout(n._idleTimeoutId),n._idleTimeout=-1},g._unrefActive=g.active=function(n){clearTimeout(n._idleTimeoutId);var o=n._idleTimeout;o>=0&&(n._idleTimeoutId=setTimeout(function(){n._onTimeout&&n._onTimeout()},o))},g.setImmediate=typeof a=="function"?a:function(n){var o=t++,p=arguments.length<2?!1:c.call(arguments,1);return s[o]=!0,u(function(){s[o]&&(p?n.apply(null,p):n.call(null),g.clearImmediate(o))}),o},g.clearImmediate=typeof r=="function"?r:function(n){delete s[n]}}).call(this)}).call(this,e("timers").setImmediate,e("timers").clearImmediate)},{"process/browser.js":324,timers:347}],348:[function(e,w,g){var a=e("buffer").Buffer;w.exports=function(r){if(r instanceof Uint8Array){if(r.byteOffset===0&&r.byteLength===r.buffer.byteLength)return r.buffer;if(typeof r.buffer.slice=="function")return r.buffer.slice(r.byteOffset,r.byteOffset+r.byteLength)}if(a.isBuffer(r)){for(var u=new Uint8Array(r.length),l=r.length,c=0;c=0||t.indexOf(">")>=0||t.indexOf("<")>=0)},c=function(t){return""},u=function(t){return t.replace("]]>","]]]]>")},g.Builder=function(){function t(i){var n,o,p;this.options={},o=r["0.2"];for(n in o)!s.call(o,n)||(p=o[n],this.options[n]=p);for(n in i)!s.call(i,n)||(p=i[n],this.options[n]=p)}return t.prototype.buildObject=function(i){var n,o,p,f,d;return n=this.options.attrkey,o=this.options.charkey,Object.keys(i).length===1&&this.options.rootName===r["0.2"].rootName?(d=Object.keys(i)[0],i=i[d]):d=this.options.rootName,p=function(m){return function(h,b){var S,v,j,y,x,O;if(typeof b!="object")m.options.cdata&&l(b)?h.raw(c(b)):h.txt(b);else if(Array.isArray(b)){for(y in b)if(!!s.call(b,y)){v=b[y];for(x in v)j=v[x],h=p(h.ele(x),j).up()}}else for(x in b)if(!!s.call(b,x))if(v=b[x],x===n){if(typeof v=="object")for(S in v)O=v[S],h=h.att(S,O)}else if(x===o)m.options.cdata&&l(v)?h=h.raw(c(v)):h=h.txt(v);else if(Array.isArray(v))for(y in v)!s.call(v,y)||(j=v[y],typeof j=="string"?m.options.cdata&&l(j)?h=h.ele(x).raw(c(j)).up():h=h.ele(x,j).up():h=p(h.ele(x),j).up());else typeof v=="object"?h=p(h.ele(x),v).up():typeof v=="string"&&m.options.cdata&&l(v)?h=h.ele(x).raw(c(v)).up():(v==null&&(v=""),h=h.ele(x,v.toString()).up());return h}}(this),f=a.create(d,this.options.xmldec,this.options.doctype,{headless:this.options.headless,allowSurrogateChars:this.options.allowSurrogateChars}),p(f,i).end(this.options.renderOpts)},t}()}).call(this)},{"./defaults":355,xmlbuilder:391}],355:[function(e,w,g){(function(){g.defaults={"0.1":{explicitCharkey:!1,trim:!0,normalize:!0,normalizeTags:!1,attrkey:"@",charkey:"#",explicitArray:!1,ignoreAttrs:!1,mergeAttrs:!1,explicitRoot:!1,validator:null,xmlns:!1,explicitChildren:!1,childkey:"@@",charsAsChildren:!1,includeWhiteChars:!1,async:!1,strict:!0,attrNameProcessors:null,attrValueProcessors:null,tagNameProcessors:null,valueProcessors:null,emptyTag:""},"0.2":{explicitCharkey:!1,trim:!1,normalize:!1,normalizeTags:!1,attrkey:"$",charkey:"_",explicitArray:!0,ignoreAttrs:!1,mergeAttrs:!1,explicitRoot:!0,validator:null,xmlns:!1,explicitChildren:!1,preserveChildrenOrder:!1,childkey:"$$",charsAsChildren:!1,includeWhiteChars:!1,async:!1,strict:!0,attrNameProcessors:null,attrValueProcessors:null,tagNameProcessors:null,valueProcessors:null,rootName:"root",xmldec:{version:"1.0",encoding:"UTF-8",standalone:!0},doctype:null,renderOpts:{pretty:!0,indent:" ",newline:` +`},headless:!1,chunkSize:1e4,emptyTag:"",cdata:!1}}}).call(this)},{}],356:[function(e,w,g){(function(){var a,r,u,l,c,s,t,i,n=function(f,d){return function(){return f.apply(d,arguments)}},o=function(f,d){for(var m in d)p.call(d,m)&&(f[m]=d[m]);function h(){this.constructor=f}return h.prototype=d.prototype,f.prototype=new h,f.__super__=d.prototype,f},p={}.hasOwnProperty;t=e("sax"),u=e("events"),a=e("./bom"),s=e("./processors"),i=e("timers").setImmediate,r=e("./defaults").defaults,l=function(f){return typeof f=="object"&&f!=null&&Object.keys(f).length===0},c=function(f,d,m){var h,b,S;for(h=0,b=f.length;h0&&(O[v.options.childkey]=E),E=O;else if(k){k[v.options.childkey]=k[v.options.childkey]||[],_={};for(x in E)!p.call(E,x)||(_[x]=E[x]);k[v.options.childkey].push(_),delete E["#name"],Object.keys(E).length===1&&h in E&&!v.EXPLICIT_CHARKEY&&(E=E[h])}}return S.length>0?v.assignOrPush(k,A,E):(v.options.explicitRoot&&(T=E,E={},E[A]=T),v.resultObject=E,v.saxParser.ended=!0,v.emit("end",v.resultObject))}}(this),b=function(v){return function(j){var y,x;if(x=S[S.length-1],x)return x[h]+=j,v.options.explicitChildren&&v.options.preserveChildrenOrder&&v.options.charsAsChildren&&(v.options.includeWhiteChars||j.replace(/\\n/g,"").trim()!=="")&&(x[v.options.childkey]=x[v.options.childkey]||[],y={"#name":"__text__"},y[h]=j,v.options.normalize&&(y[h]=y[h].replace(/\s{2,}/g," ").trim()),x[v.options.childkey].push(y)),x}}(this),this.saxParser.ontext=b,this.saxParser.oncdata=function(v){return function(j){var y;if(y=b(j),y)return y.cdata=!0}}()},d.prototype.parseString=function(m,h){var b;h!=null&&typeof h=="function"&&(this.on("end",function(S){return this.reset(),h(null,S)}),this.on("error",function(S){return this.reset(),h(S)}));try{return m=m.toString(),m.trim()===""?(this.emit("end",null),!0):(m=a.stripBOM(m),this.options.async?(this.remaining=m,i(this.processAsync),this.saxParser):this.saxParser.write(m).close())}catch(S){if(b=S,this.saxParser.errThrown||this.saxParser.ended){if(this.saxParser.ended)throw b}else return this.emit("error",b),this.saxParser.errThrown=!0}},d.prototype.parseStringPromise=function(m){return new Promise(function(h){return function(b,S){return h.parseString(m,function(v,j){return v?S(v):b(j)})}}(this))},d}(u),g.parseString=function(f,d,m){var h,b,S;return m!=null?(typeof m=="function"&&(h=m),typeof d=="object"&&(b=d)):(typeof d=="function"&&(h=d),b={}),S=new g.Parser(b),S.parseString(f,h)},g.parseStringPromise=function(f,d){var m,h;return typeof d=="object"&&(m=d),h=new g.Parser(m),h.parseStringPromise(f)}}).call(this)},{"./bom":353,"./defaults":355,"./processors":357,events:301,sax:344,timers:347}],357:[function(e,w,g){(function(){var a;a=new RegExp(/(?!xmlns)^.*:/),g.normalize=function(r){return r.toLowerCase()},g.firstCharLowerCase=function(r){return r.charAt(0).toLowerCase()+r.slice(1)},g.stripPrefix=function(r){return r.replace(a,"")},g.parseNumbers=function(r){return isNaN(r)||(r=r%1===0?parseInt(r,10):parseFloat(r)),r},g.parseBooleans=function(r){return/^(?:true|false)$/i.test(r)&&(r=r.toLowerCase()==="true"),r}}).call(this)},{}],358:[function(e,w,g){(function(){var a,r,u,l,c=function(t,i){for(var n in i)s.call(i,n)&&(t[n]=i[n]);function o(){this.constructor=t}return o.prototype=i.prototype,t.prototype=new o,t.__super__=i.prototype,t},s={}.hasOwnProperty;r=e("./defaults"),a=e("./builder"),u=e("./parser"),l=e("./processors"),g.defaults=r.defaults,g.processors=l,g.ValidationError=function(t){c(i,t);function i(n){this.message=n}return i}(Error),g.Builder=a.Builder,g.Parser=u.Parser,g.parseString=u.parseString,g.parseStringPromise=u.parseStringPromise}).call(this)},{"./builder":354,"./defaults":355,"./parser":356,"./processors":357}],359:[function(e,w,g){(function(){w.exports={Disconnected:1,Preceding:2,Following:4,Contains:8,ContainedBy:16,ImplementationSpecific:32}}).call(this)},{}],360:[function(e,w,g){(function(){w.exports={Element:1,Attribute:2,Text:3,CData:4,EntityReference:5,EntityDeclaration:6,ProcessingInstruction:7,Comment:8,Document:9,DocType:10,DocumentFragment:11,NotationDeclaration:12,Declaration:201,Raw:202,AttributeDeclaration:203,ElementDeclaration:204,Dummy:205}}).call(this)},{}],361:[function(e,w,g){(function(){var a,r,u,l,c,s,t,i=[].slice,n={}.hasOwnProperty;a=function(){var o,p,f,d,m,h;if(h=arguments[0],m=2<=arguments.length?i.call(arguments,1):[],c(Object.assign))Object.assign.apply(null,arguments);else for(o=0,f=m.length;o":"attribute: {"+u+"}, parent: <"+this.parent.name+">"},r.prototype.isEqualNode=function(u){return!(u.namespaceURI!==this.namespaceURI||u.prefix!==this.prefix||u.localName!==this.localName||u.value!==this.value)},r}()}).call(this)},{"./NodeType":360,"./XMLNode":382}],364:[function(e,w,g){(function(){var a,r,u=function(c,s){for(var t in s)l.call(s,t)&&(c[t]=s[t]);function i(){this.constructor=c}return i.prototype=s.prototype,c.prototype=new i,c.__super__=s.prototype,c},l={}.hasOwnProperty;a=e("./NodeType"),r=e("./XMLCharacterData"),w.exports=function(c){u(s,c);function s(t,i){if(s.__super__.constructor.call(this,t),i==null)throw new Error("Missing CDATA text. "+this.debugInfo());this.name="#cdata-section",this.type=a.CData,this.value=this.stringify.cdata(i)}return s.prototype.clone=function(){return Object.create(this)},s.prototype.toString=function(t){return this.options.writer.cdata(this,this.options.writer.filterOptions(t))},s}(r)}).call(this)},{"./NodeType":360,"./XMLCharacterData":365}],365:[function(e,w,g){(function(){var a,r=function(l,c){for(var s in c)u.call(c,s)&&(l[s]=c[s]);function t(){this.constructor=l}return t.prototype=c.prototype,l.prototype=new t,l.__super__=c.prototype,l},u={}.hasOwnProperty;a=e("./XMLNode"),w.exports=function(l){r(c,l);function c(s){c.__super__.constructor.call(this,s),this.value=""}return Object.defineProperty(c.prototype,"data",{get:function(){return this.value},set:function(s){return this.value=s||""}}),Object.defineProperty(c.prototype,"length",{get:function(){return this.value.length}}),Object.defineProperty(c.prototype,"textContent",{get:function(){return this.value},set:function(s){return this.value=s||""}}),c.prototype.clone=function(){return Object.create(this)},c.prototype.substringData=function(s,t){throw new Error("This DOM method is not implemented."+this.debugInfo())},c.prototype.appendData=function(s){throw new Error("This DOM method is not implemented."+this.debugInfo())},c.prototype.insertData=function(s,t){throw new Error("This DOM method is not implemented."+this.debugInfo())},c.prototype.deleteData=function(s,t){throw new Error("This DOM method is not implemented."+this.debugInfo())},c.prototype.replaceData=function(s,t,i){throw new Error("This DOM method is not implemented."+this.debugInfo())},c.prototype.isEqualNode=function(s){return!(!c.__super__.isEqualNode.apply(this,arguments).isEqualNode(s)||s.data!==this.data)},c}(a)}).call(this)},{"./XMLNode":382}],366:[function(e,w,g){(function(){var a,r,u=function(c,s){for(var t in s)l.call(s,t)&&(c[t]=s[t]);function i(){this.constructor=c}return i.prototype=s.prototype,c.prototype=new i,c.__super__=s.prototype,c},l={}.hasOwnProperty;a=e("./NodeType"),r=e("./XMLCharacterData"),w.exports=function(c){u(s,c);function s(t,i){if(s.__super__.constructor.call(this,t),i==null)throw new Error("Missing comment text. "+this.debugInfo());this.name="#comment",this.type=a.Comment,this.value=this.stringify.comment(i)}return s.prototype.clone=function(){return Object.create(this)},s.prototype.toString=function(t){return this.options.writer.comment(this,this.options.writer.filterOptions(t))},s}(r)}).call(this)},{"./NodeType":360,"./XMLCharacterData":365}],367:[function(e,w,g){(function(){var a,r;a=e("./XMLDOMErrorHandler"),r=e("./XMLDOMStringList"),w.exports=function(){function u(){this.defaultParams={"canonical-form":!1,"cdata-sections":!1,comments:!1,"datatype-normalization":!1,"element-content-whitespace":!0,entities:!0,"error-handler":new a,infoset:!0,"validate-if-schema":!1,namespaces:!0,"namespace-declarations":!0,"normalize-characters":!1,"schema-location":"","schema-type":"","split-cdata-sections":!0,validate:!1,"well-formed":!0},this.params=Object.create(this.defaultParams)}return Object.defineProperty(u.prototype,"parameterNames",{get:function(){return new r(Object.keys(this.defaultParams))}}),u.prototype.getParameter=function(l){return this.params.hasOwnProperty(l)?this.params[l]:null},u.prototype.canSetParameter=function(l,c){return!0},u.prototype.setParameter=function(l,c){return c!=null?this.params[l]=c:delete this.params[l]},u}()}).call(this)},{"./XMLDOMErrorHandler":368,"./XMLDOMStringList":370}],368:[function(e,w,g){(function(){w.exports=function(){function a(){}return a.prototype.handleError=function(r){throw new Error(r)},a}()}).call(this)},{}],369:[function(e,w,g){(function(){w.exports=function(){function a(){}return a.prototype.hasFeature=function(r,u){return!0},a.prototype.createDocumentType=function(r,u,l){throw new Error("This DOM method is not implemented.")},a.prototype.createDocument=function(r,u,l){throw new Error("This DOM method is not implemented.")},a.prototype.createHTMLDocument=function(r){throw new Error("This DOM method is not implemented.")},a.prototype.getFeature=function(r,u){throw new Error("This DOM method is not implemented.")},a}()}).call(this)},{}],370:[function(e,w,g){(function(){w.exports=function(){function a(r){this.arr=r||[]}return Object.defineProperty(a.prototype,"length",{get:function(){return this.arr.length}}),a.prototype.item=function(r){return this.arr[r]||null},a.prototype.contains=function(r){return this.arr.indexOf(r)!==-1},a}()}).call(this)},{}],371:[function(e,w,g){(function(){var a,r,u=function(c,s){for(var t in s)l.call(s,t)&&(c[t]=s[t]);function i(){this.constructor=c}return i.prototype=s.prototype,c.prototype=new i,c.__super__=s.prototype,c},l={}.hasOwnProperty;r=e("./XMLNode"),a=e("./NodeType"),w.exports=function(c){u(s,c);function s(t,i,n,o,p,f){if(s.__super__.constructor.call(this,t),i==null)throw new Error("Missing DTD element name. "+this.debugInfo());if(n==null)throw new Error("Missing DTD attribute name. "+this.debugInfo(i));if(!o)throw new Error("Missing DTD attribute type. "+this.debugInfo(i));if(!p)throw new Error("Missing DTD attribute default. "+this.debugInfo(i));if(p.indexOf("#")!==0&&(p="#"+p),!p.match(/^(#REQUIRED|#IMPLIED|#FIXED|#DEFAULT)$/))throw new Error("Invalid default value type; expected: #REQUIRED, #IMPLIED, #FIXED or #DEFAULT. "+this.debugInfo(i));if(f&&!p.match(/^(#FIXED|#DEFAULT)$/))throw new Error("Default value only applies to #FIXED or #DEFAULT. "+this.debugInfo(i));this.elementName=this.stringify.name(i),this.type=a.AttributeDeclaration,this.attributeName=this.stringify.name(n),this.attributeType=this.stringify.dtdAttType(o),f&&(this.defaultValue=this.stringify.dtdAttDefault(f)),this.defaultValueType=p}return s.prototype.toString=function(t){return this.options.writer.dtdAttList(this,this.options.writer.filterOptions(t))},s}(r)}).call(this)},{"./NodeType":360,"./XMLNode":382}],372:[function(e,w,g){(function(){var a,r,u=function(c,s){for(var t in s)l.call(s,t)&&(c[t]=s[t]);function i(){this.constructor=c}return i.prototype=s.prototype,c.prototype=new i,c.__super__=s.prototype,c},l={}.hasOwnProperty;r=e("./XMLNode"),a=e("./NodeType"),w.exports=function(c){u(s,c);function s(t,i,n){if(s.__super__.constructor.call(this,t),i==null)throw new Error("Missing DTD element name. "+this.debugInfo());n||(n="(#PCDATA)"),Array.isArray(n)&&(n="("+n.join(",")+")"),this.name=this.stringify.name(i),this.type=a.ElementDeclaration,this.value=this.stringify.dtdElementValue(n)}return s.prototype.toString=function(t){return this.options.writer.dtdElement(this,this.options.writer.filterOptions(t))},s}(r)}).call(this)},{"./NodeType":360,"./XMLNode":382}],373:[function(e,w,g){(function(){var a,r,u,l=function(s,t){for(var i in t)c.call(t,i)&&(s[i]=t[i]);function n(){this.constructor=s}return n.prototype=t.prototype,s.prototype=new n,s.__super__=t.prototype,s},c={}.hasOwnProperty;u=e("./Utility").isObject,r=e("./XMLNode"),a=e("./NodeType"),w.exports=function(s){l(t,s);function t(i,n,o,p){if(t.__super__.constructor.call(this,i),o==null)throw new Error("Missing DTD entity name. "+this.debugInfo(o));if(p==null)throw new Error("Missing DTD entity value. "+this.debugInfo(o));if(this.pe=!!n,this.name=this.stringify.name(o),this.type=a.EntityDeclaration,!u(p))this.value=this.stringify.dtdEntityValue(p),this.internal=!0;else{if(!p.pubID&&!p.sysID)throw new Error("Public and/or system identifiers are required for an external entity. "+this.debugInfo(o));if(p.pubID&&!p.sysID)throw new Error("System identifier is required for a public external entity. "+this.debugInfo(o));if(this.internal=!1,p.pubID!=null&&(this.pubID=this.stringify.dtdPubID(p.pubID)),p.sysID!=null&&(this.sysID=this.stringify.dtdSysID(p.sysID)),p.nData!=null&&(this.nData=this.stringify.dtdNData(p.nData)),this.pe&&this.nData)throw new Error("Notation declaration is not allowed in a parameter entity. "+this.debugInfo(o))}}return Object.defineProperty(t.prototype,"publicId",{get:function(){return this.pubID}}),Object.defineProperty(t.prototype,"systemId",{get:function(){return this.sysID}}),Object.defineProperty(t.prototype,"notationName",{get:function(){return this.nData||null}}),Object.defineProperty(t.prototype,"inputEncoding",{get:function(){return null}}),Object.defineProperty(t.prototype,"xmlEncoding",{get:function(){return null}}),Object.defineProperty(t.prototype,"xmlVersion",{get:function(){return null}}),t.prototype.toString=function(i){return this.options.writer.dtdEntity(this,this.options.writer.filterOptions(i))},t}(r)}).call(this)},{"./NodeType":360,"./Utility":361,"./XMLNode":382}],374:[function(e,w,g){(function(){var a,r,u=function(c,s){for(var t in s)l.call(s,t)&&(c[t]=s[t]);function i(){this.constructor=c}return i.prototype=s.prototype,c.prototype=new i,c.__super__=s.prototype,c},l={}.hasOwnProperty;r=e("./XMLNode"),a=e("./NodeType"),w.exports=function(c){u(s,c);function s(t,i,n){if(s.__super__.constructor.call(this,t),i==null)throw new Error("Missing DTD notation name. "+this.debugInfo(i));if(!n.pubID&&!n.sysID)throw new Error("Public or system identifiers are required for an external entity. "+this.debugInfo(i));this.name=this.stringify.name(i),this.type=a.NotationDeclaration,n.pubID!=null&&(this.pubID=this.stringify.dtdPubID(n.pubID)),n.sysID!=null&&(this.sysID=this.stringify.dtdSysID(n.sysID))}return Object.defineProperty(s.prototype,"publicId",{get:function(){return this.pubID}}),Object.defineProperty(s.prototype,"systemId",{get:function(){return this.sysID}}),s.prototype.toString=function(t){return this.options.writer.dtdNotation(this,this.options.writer.filterOptions(t))},s}(r)}).call(this)},{"./NodeType":360,"./XMLNode":382}],375:[function(e,w,g){(function(){var a,r,u,l=function(s,t){for(var i in t)c.call(t,i)&&(s[i]=t[i]);function n(){this.constructor=s}return n.prototype=t.prototype,s.prototype=new n,s.__super__=t.prototype,s},c={}.hasOwnProperty;u=e("./Utility").isObject,r=e("./XMLNode"),a=e("./NodeType"),w.exports=function(s){l(t,s);function t(i,n,o,p){var f;t.__super__.constructor.call(this,i),u(n)&&(f=n,n=f.version,o=f.encoding,p=f.standalone),n||(n="1.0"),this.type=a.Declaration,this.version=this.stringify.xmlVersion(n),o!=null&&(this.encoding=this.stringify.xmlEncoding(o)),p!=null&&(this.standalone=this.stringify.xmlStandalone(p))}return t.prototype.toString=function(i){return this.options.writer.declaration(this,this.options.writer.filterOptions(i))},t}(r)}).call(this)},{"./NodeType":360,"./Utility":361,"./XMLNode":382}],376:[function(e,w,g){(function(){var a,r,u,l,c,s,t,i,n=function(p,f){for(var d in f)o.call(f,d)&&(p[d]=f[d]);function m(){this.constructor=p}return m.prototype=f.prototype,p.prototype=new m,p.__super__=f.prototype,p},o={}.hasOwnProperty;i=e("./Utility").isObject,t=e("./XMLNode"),a=e("./NodeType"),r=e("./XMLDTDAttList"),l=e("./XMLDTDEntity"),u=e("./XMLDTDElement"),c=e("./XMLDTDNotation"),s=e("./XMLNamedNodeMap"),w.exports=function(p){n(f,p);function f(d,m,h){var b,S,v,j,y,x;if(f.__super__.constructor.call(this,d),this.type=a.DocType,d.children){for(j=d.children,S=0,v=j.length;S=0;)this.up();return this.onEnd()},_.prototype.openCurrent=function(){if(this.currentNode)return this.currentNode.children=!0,this.openNode(this.currentNode)},_.prototype.openNode=function(T){var k,F,W,V;if(!T.isOpen){if(!this.root&&this.currentLevel===0&&T.type===a.Element&&(this.root=T),F="",T.type===a.Element){this.writerOptions.state=r.OpenTag,F=this.writer.indent(T,this.writerOptions,this.currentLevel)+"<"+T.name,V=T.attribs;for(W in V)!E.call(V,W)||(k=V[W],F+=this.writer.attribute(k,this.writerOptions,this.currentLevel));F+=(T.children?">":"/>")+this.writer.endline(T,this.writerOptions,this.currentLevel),this.writerOptions.state=r.InsideTag}else this.writerOptions.state=r.OpenTag,F=this.writer.indent(T,this.writerOptions,this.currentLevel)+""),F+=this.writer.endline(T,this.writerOptions,this.currentLevel);return this.onData(F,this.currentLevel),T.isOpen=!0}},_.prototype.closeNode=function(T){var k;if(!T.isClosed)return k="",this.writerOptions.state=r.CloseTag,T.type===a.Element?k=this.writer.indent(T,this.writerOptions,this.currentLevel)+""+this.writer.endline(T,this.writerOptions,this.currentLevel):k=this.writer.indent(T,this.writerOptions,this.currentLevel)+"]>"+this.writer.endline(T,this.writerOptions,this.currentLevel),this.writerOptions.state=r.None,this.onData(k,this.currentLevel),T.isClosed=!0},_.prototype.onData=function(T,k){return this.documentStarted=!0,this.onDataCallback(T,k+1)},_.prototype.onEnd=function(){return this.documentCompleted=!0,this.onEndCallback()},_.prototype.debugInfo=function(T){return T==null?"":"node: <"+T+">"},_.prototype.ele=function(){return this.element.apply(this,arguments)},_.prototype.nod=function(T,k,F){return this.node(T,k,F)},_.prototype.txt=function(T){return this.text(T)},_.prototype.dat=function(T){return this.cdata(T)},_.prototype.com=function(T){return this.comment(T)},_.prototype.ins=function(T,k){return this.instruction(T,k)},_.prototype.dec=function(T,k,F){return this.declaration(T,k,F)},_.prototype.dtd=function(T,k,F){return this.doctype(T,k,F)},_.prototype.e=function(T,k,F){return this.element(T,k,F)},_.prototype.n=function(T,k,F){return this.node(T,k,F)},_.prototype.t=function(T){return this.text(T)},_.prototype.d=function(T){return this.cdata(T)},_.prototype.c=function(T){return this.comment(T)},_.prototype.r=function(T){return this.raw(T)},_.prototype.i=function(T,k){return this.instruction(T,k)},_.prototype.att=function(){return this.currentNode&&this.currentNode.type===a.DocType?this.attList.apply(this,arguments):this.attribute.apply(this,arguments)},_.prototype.a=function(){return this.currentNode&&this.currentNode.type===a.DocType?this.attList.apply(this,arguments):this.attribute.apply(this,arguments)},_.prototype.ent=function(T,k){return this.entity(T,k)},_.prototype.pent=function(T,k){return this.pEntity(T,k)},_.prototype.not=function(T,k){return this.notation(T,k)},_}()}).call(this)},{"./NodeType":360,"./Utility":361,"./WriterState":362,"./XMLAttribute":363,"./XMLCData":364,"./XMLComment":366,"./XMLDTDAttList":371,"./XMLDTDElement":372,"./XMLDTDEntity":373,"./XMLDTDNotation":374,"./XMLDeclaration":375,"./XMLDocType":376,"./XMLDocument":377,"./XMLElement":380,"./XMLProcessingInstruction":384,"./XMLRaw":385,"./XMLStringWriter":387,"./XMLStringifier":388,"./XMLText":389}],379:[function(e,w,g){(function(){var a,r,u=function(c,s){for(var t in s)l.call(s,t)&&(c[t]=s[t]);function i(){this.constructor=c}return i.prototype=s.prototype,c.prototype=new i,c.__super__=s.prototype,c},l={}.hasOwnProperty;r=e("./XMLNode"),a=e("./NodeType"),w.exports=function(c){u(s,c);function s(t){s.__super__.constructor.call(this,t),this.type=a.Dummy}return s.prototype.clone=function(){return Object.create(this)},s.prototype.toString=function(t){return""},s}(r)}).call(this)},{"./NodeType":360,"./XMLNode":382}],380:[function(e,w,g){(function(){var a,r,u,l,c,s,t,i,n=function(p,f){for(var d in f)o.call(f,d)&&(p[d]=f[d]);function m(){this.constructor=p}return m.prototype=f.prototype,p.prototype=new m,p.__super__=f.prototype,p},o={}.hasOwnProperty;i=e("./Utility"),t=i.isObject,s=i.isFunction,c=i.getValue,l=e("./XMLNode"),a=e("./NodeType"),r=e("./XMLAttribute"),u=e("./XMLNamedNodeMap"),w.exports=function(p){n(f,p);function f(d,m,h){var b,S,v,j;if(f.__super__.constructor.call(this,d),m==null)throw new Error("Missing element name. "+this.debugInfo());if(this.name=this.stringify.name(m),this.type=a.Element,this.attribs={},this.schemaTypeInfo=null,h!=null&&this.attribute(h),d.type===a.Document&&(this.isRoot=!0,this.documentObject=d,d.rootObject=this,d.children)){for(j=d.children,S=0,v=j.length;S=b;m=0<=b?++h:--h)if(!this.attribs[m].isEqualNode(d.attribs[m]))return!1;return!0},f}(l)}).call(this)},{"./NodeType":360,"./Utility":361,"./XMLAttribute":363,"./XMLNamedNodeMap":381,"./XMLNode":382}],381:[function(e,w,g){(function(){w.exports=function(){function a(r){this.nodes=r}return Object.defineProperty(a.prototype,"length",{get:function(){return Object.keys(this.nodes).length||0}}),a.prototype.clone=function(){return this.nodes=null},a.prototype.getNamedItem=function(r){return this.nodes[r]},a.prototype.setNamedItem=function(r){var u;return u=this.nodes[r.nodeName],this.nodes[r.nodeName]=r,u||null},a.prototype.removeNamedItem=function(r){var u;return u=this.nodes[r],delete this.nodes[r],u||null},a.prototype.item=function(r){return this.nodes[Object.keys(this.nodes)[r]]||null},a.prototype.getNamedItemNS=function(r,u){throw new Error("This DOM method is not implemented.")},a.prototype.setNamedItemNS=function(r){throw new Error("This DOM method is not implemented.")},a.prototype.removeNamedItemNS=function(r,u){throw new Error("This DOM method is not implemented.")},a}()}).call(this)},{}],382:[function(e,w,g){(function(){var a,r,u,l,c,s,t,i,n,o,p,f,d,m,h,b,S,v={}.hasOwnProperty;S=e("./Utility"),b=S.isObject,h=S.isFunction,m=S.isEmpty,d=S.getValue,i=null,u=null,l=null,c=null,s=null,p=null,f=null,o=null,t=null,r=null,n=null,a=null,w.exports=function(){function j(y){this.parent=y,this.parent&&(this.options=this.parent.options,this.stringify=this.parent.stringify),this.value=null,this.children=[],this.baseURI=null,i||(i=e("./XMLElement"),u=e("./XMLCData"),l=e("./XMLComment"),c=e("./XMLDeclaration"),s=e("./XMLDocType"),p=e("./XMLRaw"),f=e("./XMLText"),o=e("./XMLProcessingInstruction"),t=e("./XMLDummy"),r=e("./NodeType"),n=e("./XMLNodeList"),e("./XMLNamedNodeMap"),a=e("./DocumentPosition"))}return Object.defineProperty(j.prototype,"nodeName",{get:function(){return this.name}}),Object.defineProperty(j.prototype,"nodeType",{get:function(){return this.type}}),Object.defineProperty(j.prototype,"nodeValue",{get:function(){return this.value}}),Object.defineProperty(j.prototype,"parentNode",{get:function(){return this.parent}}),Object.defineProperty(j.prototype,"childNodes",{get:function(){return(!this.childNodeList||!this.childNodeList.nodes)&&(this.childNodeList=new n(this.children)),this.childNodeList}}),Object.defineProperty(j.prototype,"firstChild",{get:function(){return this.children[0]||null}}),Object.defineProperty(j.prototype,"lastChild",{get:function(){return this.children[this.children.length-1]||null}}),Object.defineProperty(j.prototype,"previousSibling",{get:function(){var y;return y=this.parent.children.indexOf(this),this.parent.children[y-1]||null}}),Object.defineProperty(j.prototype,"nextSibling",{get:function(){var y;return y=this.parent.children.indexOf(this),this.parent.children[y+1]||null}}),Object.defineProperty(j.prototype,"ownerDocument",{get:function(){return this.document()||null}}),Object.defineProperty(j.prototype,"textContent",{get:function(){var y,x,O,A,E;if(this.nodeType===r.Element||this.nodeType===r.DocumentFragment){for(E="",A=this.children,x=0,O=A.length;x":((O=this.parent)!=null?O.name:void 0)?"node: <"+y+">, parent: <"+this.parent.name+">":"node: <"+y+">"},j.prototype.ele=function(y,x,O){return this.element(y,x,O)},j.prototype.nod=function(y,x,O){return this.node(y,x,O)},j.prototype.txt=function(y){return this.text(y)},j.prototype.dat=function(y){return this.cdata(y)},j.prototype.com=function(y){return this.comment(y)},j.prototype.ins=function(y,x){return this.instruction(y,x)},j.prototype.doc=function(){return this.document()},j.prototype.dec=function(y,x,O){return this.declaration(y,x,O)},j.prototype.e=function(y,x,O){return this.element(y,x,O)},j.prototype.n=function(y,x,O){return this.node(y,x,O)},j.prototype.t=function(y){return this.text(y)},j.prototype.d=function(y){return this.cdata(y)},j.prototype.c=function(y){return this.comment(y)},j.prototype.r=function(y){return this.raw(y)},j.prototype.i=function(y,x){return this.instruction(y,x)},j.prototype.u=function(){return this.up()},j.prototype.importXMLBuilder=function(y){return this.importDocument(y)},j.prototype.replaceChild=function(y,x){throw new Error("This DOM method is not implemented."+this.debugInfo())},j.prototype.removeChild=function(y){throw new Error("This DOM method is not implemented."+this.debugInfo())},j.prototype.appendChild=function(y){throw new Error("This DOM method is not implemented."+this.debugInfo())},j.prototype.hasChildNodes=function(){return this.children.length!==0},j.prototype.cloneNode=function(y){throw new Error("This DOM method is not implemented."+this.debugInfo())},j.prototype.normalize=function(){throw new Error("This DOM method is not implemented."+this.debugInfo())},j.prototype.isSupported=function(y,x){return!0},j.prototype.hasAttributes=function(){return this.attribs.length!==0},j.prototype.compareDocumentPosition=function(y){var x,O;return x=this,x===y?0:this.document()!==y.document()?(O=a.Disconnected|a.ImplementationSpecific,Math.random()<.5?O|=a.Preceding:O|=a.Following,O):x.isAncestor(y)?a.Contains|a.Preceding:x.isDescendant(y)?a.Contains|a.Following:x.isPreceding(y)?a.Preceding:a.Following},j.prototype.isSameNode=function(y){throw new Error("This DOM method is not implemented."+this.debugInfo())},j.prototype.lookupPrefix=function(y){throw new Error("This DOM method is not implemented."+this.debugInfo())},j.prototype.isDefaultNamespace=function(y){throw new Error("This DOM method is not implemented."+this.debugInfo())},j.prototype.lookupNamespaceURI=function(y){throw new Error("This DOM method is not implemented."+this.debugInfo())},j.prototype.isEqualNode=function(y){var x,O,A;if(y.nodeType!==this.nodeType||y.children.length!==this.children.length)return!1;for(x=O=0,A=this.children.length-1;0<=A?O<=A:O>=A;x=0<=A?++O:--O)if(!this.children[x].isEqualNode(y.children[x]))return!1;return!0},j.prototype.getFeature=function(y,x){throw new Error("This DOM method is not implemented."+this.debugInfo())},j.prototype.setUserData=function(y,x,O){throw new Error("This DOM method is not implemented."+this.debugInfo())},j.prototype.getUserData=function(y){throw new Error("This DOM method is not implemented."+this.debugInfo())},j.prototype.contains=function(y){return y?y===this||this.isDescendant(y):!1},j.prototype.isDescendant=function(y){var x,O,A,E,_;for(_=this.children,A=0,E=_.length;AO},j.prototype.treePosition=function(y){var x,O;return O=0,x=!1,this.foreachTreeNode(this.document(),function(A){if(O++,!x&&A===y)return x=!0}),x?O:-1},j.prototype.foreachTreeNode=function(y,x){var O,A,E,_,T;for(y||(y=this.document()),_=y.children,A=0,E=_.length;A0){for(this.stream.write(" ["),this.stream.write(this.endline(i,n,o)),n.state=r.InsideTag,m=i.children,f=0,d=m.length;f"),this.stream.write(this.endline(i,n,o)),n.state=r.None,this.closeNode(i,n,o)},t.prototype.element=function(i,n,o){var p,f,d,m,h,b,S,v,j;o||(o=0),this.openNode(i,n,o),n.state=r.OpenTag,this.stream.write(this.indent(i,n,o)+"<"+i.name),v=i.attribs;for(S in v)!c.call(v,S)||(p=v[S],this.attribute(p,n,o));if(d=i.children.length,m=d===0?null:i.children[0],d===0||i.children.every(function(y){return(y.type===a.Text||y.type===a.Raw)&&y.value===""}))n.allowEmpty?(this.stream.write(">"),n.state=r.CloseTag,this.stream.write("")):(n.state=r.CloseTag,this.stream.write(n.spaceBeforeSlash+"/>"));else if(n.pretty&&d===1&&(m.type===a.Text||m.type===a.Raw)&&m.value!=null)this.stream.write(">"),n.state=r.InsideTag,n.suppressPrettyCount++,this.writeChildNode(m,n,o+1),n.suppressPrettyCount--,n.state=r.CloseTag,this.stream.write("");else{for(this.stream.write(">"+this.endline(i,n,o)),n.state=r.InsideTag,j=i.children,h=0,b=j.length;h")}return this.stream.write(this.endline(i,n,o)),n.state=r.None,this.closeNode(i,n,o)},t.prototype.processingInstruction=function(i,n,o){return this.stream.write(t.__super__.processingInstruction.call(this,i,n,o))},t.prototype.raw=function(i,n,o){return this.stream.write(t.__super__.raw.call(this,i,n,o))},t.prototype.text=function(i,n,o){return this.stream.write(t.__super__.text.call(this,i,n,o))},t.prototype.dtdAttList=function(i,n,o){return this.stream.write(t.__super__.dtdAttList.call(this,i,n,o))},t.prototype.dtdElement=function(i,n,o){return this.stream.write(t.__super__.dtdElement.call(this,i,n,o))},t.prototype.dtdEntity=function(i,n,o){return this.stream.write(t.__super__.dtdEntity.call(this,i,n,o))},t.prototype.dtdNotation=function(i,n,o){return this.stream.write(t.__super__.dtdNotation.call(this,i,n,o))},t}(u)}).call(this)},{"./NodeType":360,"./WriterState":362,"./XMLWriterBase":390}],387:[function(e,w,g){(function(){var a,r=function(l,c){for(var s in c)u.call(c,s)&&(l[s]=c[s]);function t(){this.constructor=l}return t.prototype=c.prototype,l.prototype=new t,l.__super__=c.prototype,l},u={}.hasOwnProperty;a=e("./XMLWriterBase"),w.exports=function(l){r(c,l);function c(s){c.__super__.constructor.call(this,s)}return c.prototype.document=function(s,t){var i,n,o,p,f;for(t=this.filterOptions(t),p="",f=s.children,n=0,o=f.length;n","]]]]>"),this.assertLegalChar(l))},u.prototype.comment=function(l){if(this.options.noValidation)return l;if(l=""+l||"",l.match(/--/))throw new Error("Comment text cannot contain double-hypen: "+l);return this.assertLegalChar(l)},u.prototype.raw=function(l){return this.options.noValidation?l:""+l||""},u.prototype.attValue=function(l){return this.options.noValidation?l:this.assertLegalChar(this.attEscape(l=""+l||""))},u.prototype.insTarget=function(l){return this.options.noValidation?l:this.assertLegalChar(""+l||"")},u.prototype.insValue=function(l){if(this.options.noValidation)return l;if(l=""+l||"",l.match(/\?>/))throw new Error("Invalid processing instruction value: "+l);return this.assertLegalChar(l)},u.prototype.xmlVersion=function(l){if(this.options.noValidation)return l;if(l=""+l||"",!l.match(/1\.[0-9]+/))throw new Error("Invalid version number: "+l);return l},u.prototype.xmlEncoding=function(l){if(this.options.noValidation)return l;if(l=""+l||"",!l.match(/^[A-Za-z](?:[A-Za-z0-9._-])*$/))throw new Error("Invalid encoding: "+l);return this.assertLegalChar(l)},u.prototype.xmlStandalone=function(l){return this.options.noValidation?l:l?"yes":"no"},u.prototype.dtdPubID=function(l){return this.options.noValidation?l:this.assertLegalChar(""+l||"")},u.prototype.dtdSysID=function(l){return this.options.noValidation?l:this.assertLegalChar(""+l||"")},u.prototype.dtdElementValue=function(l){return this.options.noValidation?l:this.assertLegalChar(""+l||"")},u.prototype.dtdAttType=function(l){return this.options.noValidation?l:this.assertLegalChar(""+l||"")},u.prototype.dtdAttDefault=function(l){return this.options.noValidation?l:this.assertLegalChar(""+l||"")},u.prototype.dtdEntityValue=function(l){return this.options.noValidation?l:this.assertLegalChar(""+l||"")},u.prototype.dtdNData=function(l){return this.options.noValidation?l:this.assertLegalChar(""+l||"")},u.prototype.convertAttKey="@",u.prototype.convertPIKey="?",u.prototype.convertTextKey="#text",u.prototype.convertCDataKey="#cdata",u.prototype.convertCommentKey="#comment",u.prototype.convertRawKey="#raw",u.prototype.assertLegalChar=function(l){var c,s;if(this.options.noValidation)return l;if(c="",this.options.version==="1.0"){if(c=/[\0-\x08\x0B\f\x0E-\x1F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,s=l.match(c))throw new Error("Invalid character in string: "+l+" at index "+s.index)}else if(this.options.version==="1.1"&&(c=/[\0\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,s=l.match(c)))throw new Error("Invalid character in string: "+l+" at index "+s.index);return l},u.prototype.assertLegalName=function(l){var c;if(this.options.noValidation)return l;if(this.assertLegalChar(l),c=/^([:A-Z_a-z\xC0-\xD6\xD8-\xF6\xF8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]|[\uD800-\uDB7F][\uDC00-\uDFFF])([\x2D\.0-:A-Z_a-z\xB7\xC0-\xD6\xD8-\xF6\xF8-\u037D\u037F-\u1FFF\u200C\u200D\u203F\u2040\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]|[\uD800-\uDB7F][\uDC00-\uDFFF])*$/,!l.match(c))throw new Error("Invalid character in name");return l},u.prototype.textEscape=function(l){var c;return this.options.noValidation?l:(c=this.options.noDoubleEncoding?/(?!&\S+;)&/g:/&/g,l.replace(c,"&").replace(//g,">").replace(/\r/g," "))},u.prototype.attEscape=function(l){var c;return this.options.noValidation?l:(c=this.options.noDoubleEncoding?/(?!&\S+;)&/g:/&/g,l.replace(c,"&").replace(/0)?new Array(n).join(t.indent):""},c.prototype.endline=function(s,t,i){return!t.pretty||t.suppressPrettyCount?"":t.newline},c.prototype.attribute=function(s,t,i){var n;return this.openAttribute(s,t,i),n=" "+s.name+'="'+s.value+'"',this.closeAttribute(s,t,i),n},c.prototype.cdata=function(s,t,i){var n;return this.openNode(s,t,i),t.state=r.OpenTag,n=this.indent(s,t,i)+""+this.endline(s,t,i),t.state=r.None,this.closeNode(s,t,i),n},c.prototype.comment=function(s,t,i){var n;return this.openNode(s,t,i),t.state=r.OpenTag,n=this.indent(s,t,i)+""+this.endline(s,t,i),t.state=r.None,this.closeNode(s,t,i),n},c.prototype.declaration=function(s,t,i){var n;return this.openNode(s,t,i),t.state=r.OpenTag,n=this.indent(s,t,i)+"",n+=this.endline(s,t,i),t.state=r.None,this.closeNode(s,t,i),n},c.prototype.docType=function(s,t,i){var n,o,p,f,d;if(i||(i=0),this.openNode(s,t,i),t.state=r.OpenTag,f=this.indent(s,t,i),f+="0){for(f+=" [",f+=this.endline(s,t,i),t.state=r.InsideTag,d=s.children,o=0,p=d.length;o",f+=this.endline(s,t,i),t.state=r.None,this.closeNode(s,t,i),f},c.prototype.element=function(s,t,i){var n,o,p,f,d,m,h,b,S,v,j,y,x,O;i||(i=0),v=!1,j="",this.openNode(s,t,i),t.state=r.OpenTag,j+=this.indent(s,t,i)+"<"+s.name,y=s.attribs;for(S in y)!l.call(y,S)||(n=y[S],j+=this.attribute(n,t,i));if(p=s.children.length,f=p===0?null:s.children[0],p===0||s.children.every(function(A){return(A.type===a.Text||A.type===a.Raw)&&A.value===""}))t.allowEmpty?(j+=">",t.state=r.CloseTag,j+=""+this.endline(s,t,i)):(t.state=r.CloseTag,j+=t.spaceBeforeSlash+"/>"+this.endline(s,t,i));else if(t.pretty&&p===1&&(f.type===a.Text||f.type===a.Raw)&&f.value!=null)j+=">",t.state=r.InsideTag,t.suppressPrettyCount++,v=!0,j+=this.writeChildNode(f,t,i+1),t.suppressPrettyCount--,v=!1,t.state=r.CloseTag,j+=""+this.endline(s,t,i);else{if(t.dontPrettyTextNodes){for(x=s.children,d=0,h=x.length;d"+this.endline(s,t,i),t.state=r.InsideTag,O=s.children,m=0,b=O.length;m",v&&t.suppressPrettyCount--,j+=this.endline(s,t,i),t.state=r.None}return this.closeNode(s,t,i),j},c.prototype.writeChildNode=function(s,t,i){switch(s.type){case a.CData:return this.cdata(s,t,i);case a.Comment:return this.comment(s,t,i);case a.Element:return this.element(s,t,i);case a.Raw:return this.raw(s,t,i);case a.Text:return this.text(s,t,i);case a.ProcessingInstruction:return this.processingInstruction(s,t,i);case a.Dummy:return"";case a.Declaration:return this.declaration(s,t,i);case a.DocType:return this.docType(s,t,i);case a.AttributeDeclaration:return this.dtdAttList(s,t,i);case a.ElementDeclaration:return this.dtdElement(s,t,i);case a.EntityDeclaration:return this.dtdEntity(s,t,i);case a.NotationDeclaration:return this.dtdNotation(s,t,i);default:throw new Error("Unknown XML node type: "+s.constructor.name)}},c.prototype.processingInstruction=function(s,t,i){var n;return this.openNode(s,t,i),t.state=r.OpenTag,n=this.indent(s,t,i)+"",n+=this.endline(s,t,i),t.state=r.None,this.closeNode(s,t,i),n},c.prototype.raw=function(s,t,i){var n;return this.openNode(s,t,i),t.state=r.OpenTag,n=this.indent(s,t,i),t.state=r.InsideTag,n+=s.value,t.state=r.CloseTag,n+=this.endline(s,t,i),t.state=r.None,this.closeNode(s,t,i),n},c.prototype.text=function(s,t,i){var n;return this.openNode(s,t,i),t.state=r.OpenTag,n=this.indent(s,t,i),t.state=r.InsideTag,n+=s.value,t.state=r.CloseTag,n+=this.endline(s,t,i),t.state=r.None,this.closeNode(s,t,i),n},c.prototype.dtdAttList=function(s,t,i){var n;return this.openNode(s,t,i),t.state=r.OpenTag,n=this.indent(s,t,i)+""+this.endline(s,t,i),t.state=r.None,this.closeNode(s,t,i),n},c.prototype.dtdElement=function(s,t,i){var n;return this.openNode(s,t,i),t.state=r.OpenTag,n=this.indent(s,t,i)+""+this.endline(s,t,i),t.state=r.None,this.closeNode(s,t,i),n},c.prototype.dtdEntity=function(s,t,i){var n;return this.openNode(s,t,i),t.state=r.OpenTag,n=this.indent(s,t,i)+""+this.endline(s,t,i),t.state=r.None,this.closeNode(s,t,i),n},c.prototype.dtdNotation=function(s,t,i){var n;return this.openNode(s,t,i),t.state=r.OpenTag,n=this.indent(s,t,i)+""+this.endline(s,t,i),t.state=r.None,this.closeNode(s,t,i),n},c.prototype.openNode=function(s,t,i){},c.prototype.closeNode=function(s,t,i){},c.prototype.openAttribute=function(s,t,i){},c.prototype.closeAttribute=function(s,t,i){},c}()}).call(this)},{"./NodeType":360,"./Utility":361,"./WriterState":362,"./XMLCData":364,"./XMLComment":366,"./XMLDTDAttList":371,"./XMLDTDElement":372,"./XMLDTDEntity":373,"./XMLDTDNotation":374,"./XMLDeclaration":375,"./XMLDocType":376,"./XMLDummy":379,"./XMLElement":380,"./XMLProcessingInstruction":384,"./XMLRaw":385,"./XMLText":389}],391:[function(e,w,g){(function(){var a,r,u,l,c,s,t,i,n,o;o=e("./Utility"),i=o.assign,n=o.isFunction,u=e("./XMLDOMImplementation"),l=e("./XMLDocument"),c=e("./XMLDocumentCB"),t=e("./XMLStringWriter"),s=e("./XMLStreamWriter"),a=e("./NodeType"),r=e("./WriterState"),w.exports.create=function(p,f,d,m){var h,b;if(p==null)throw new Error("Root element needs a name.");return m=i({},f,d,m),h=new l(m),b=h.element(p),m.headless||(h.declaration(m),(m.pubID!=null||m.sysID!=null)&&h.dtd(m)),b},w.exports.begin=function(p,f,d){var m;return n(p)&&(m=[p,f],f=m[0],d=m[1],p={}),f?new c(p,f,d):new l(p)},w.exports.stringWriter=function(p){return new t(p)},w.exports.streamWriter=function(p,f){return new s(p,f)},w.exports.implementation=new u,w.exports.nodeType=a,w.exports.writerState=r}).call(this)},{"./NodeType":360,"./Utility":361,"./WriterState":362,"./XMLDOMImplementation":369,"./XMLDocument":377,"./XMLDocumentCB":378,"./XMLStreamWriter":386,"./XMLStringWriter":387}],392:[function(e,w,g){w.exports=r;var a=Object.prototype.hasOwnProperty;function r(){for(var u={},l=0;lc?p=o(p):p.length>5]|=128<>>9<<4)+14]=p;for(var f=1732584193,d=-271733879,m=-1732584194,h=271733878,b=0;b>16)+(p>>16)+(f>>16);return d<<16|f&65535}function n(o,p){return o<>>32-p}w.exports=function(p){return a.hash(p,r,16)}},{"./helpers":394}],396:[function(e,w,g){var a=e("./helpers");function r(t,i){t[i>>5]|=128<<24-i%32,t[(i+64>>9<<4)+15]=i;for(var n=Array(80),o=1732584193,p=-271733879,f=-1732584194,d=271733878,m=-1009589776,h=0;h>16)+(i>>16)+(n>>16);return o<<16|n&65535}function s(t,i){return t<>>32-i}w.exports=function(i){return a.hash(i,r,20,!0)}},{"./helpers":394}],397:[function(e,w,g){w.exports=function(){return function(){}}},{}],398:[function(e,w,g){(function(a){(function(){var r=e("@babel/runtime/helpers/interopRequireDefault"),u=r(e("@babel/runtime/helpers/typeof")),l=e("stream"),c=l.Stream,s=e("../lib/common/utils/isArray"),t=s.isArray;w.exports.string=function(o){return typeof o=="string"},w.exports.array=t,w.exports.buffer=a.isBuffer;function i(n){return n instanceof c}w.exports.writableStream=function(o){return i(o)&&typeof o._write=="function"&&(0,u.default)(o._writableState)==="object"}}).call(this)}).call(this,{isBuffer:e("../node_modules/is-buffer/index.js")})},{"../lib/common/utils/isArray":61,"../node_modules/is-buffer/index.js":312,"@babel/runtime/helpers/interopRequireDefault":74,"@babel/runtime/helpers/typeof":75,stream:345}],399:[function(e,w,g){var a=e("immediate"),r=w.exports={};r.nextTick=a,r.title="browser",r.browser=!0,r.env={},r.argv=[],r.version="",r.versions={};function u(){}r.on=u,r.addListener=u,r.once=u,r.off=u,r.removeListener=u,r.removeAllListeners=u,r.emit=u,r.prependListener=u,r.prependOnceListener=u,r.listeners=function(l){return[]},r.binding=function(l){throw new Error("process.binding is not supported")},r.cwd=function(){return"/"},r.chdir=function(l){throw new Error("process.chdir is not supported")},r.umask=function(){return 0}},{immediate:305}],400:[function(e,w,g){(function(a){(function(){e("core-js/modules/es.regexp.exec.js"),e("core-js/modules/es.string.search.js");var r=e("./lib/request"),u=e("./lib/response"),l=e("xtend"),c=e("builtin-status-codes"),s=e("url"),t=g;t.request=function(i,n){typeof i=="string"?i=s.parse(i):i=l(i);var o=a.location.protocol.search(/^https?:$/)===-1?"http:":"",p=i.protocol||o,f=i.hostname||i.host,d=i.port,m=i.path||"/";f&&f.indexOf(":")!==-1&&(f="["+f+"]"),i.url=(f?p+"//"+f:"")+(d?":"+d:"")+m,i.method=(i.method||"GET").toUpperCase(),i.headers=i.headers||{};var h=new r(i);return n&&h.on("response",n),h},t.get=function(n,o){var p=t.request(n,o);return p.end(),p},t.ClientRequest=r,t.IncomingMessage=u.IncomingMessage,t.Agent=function(){},t.Agent.defaultMaxSockets=4,t.globalAgent=new t.Agent,t.STATUS_CODES=c,t.METHODS=["CHECKOUT","CONNECT","COPY","DELETE","GET","HEAD","LOCK","M-SEARCH","MERGE","MKACTIVITY","MKCOL","MOVE","NOTIFY","OPTIONS","PATCH","POST","PROPFIND","PROPPATCH","PURGE","PUT","REPORT","SEARCH","SUBSCRIBE","TRACE","UNLOCK","UNSUBSCRIBE"]}).call(this)}).call(this,typeof xe!="undefined"?xe:typeof self!="undefined"?self:typeof window!="undefined"?window:{})},{"./lib/request":402,"./lib/response":403,"builtin-status-codes":87,"core-js/modules/es.regexp.exec.js":261,"core-js/modules/es.string.search.js":267,url:404,xtend:392}],401:[function(e,w,g){(function(a){(function(){e("core-js/modules/es.object.to-string.js"),e("core-js/modules/es.promise.js"),e("core-js/modules/es.array-buffer.constructor.js"),e("core-js/modules/es.array-buffer.slice.js"),e("core-js/modules/es.array.slice.js"),g.fetch=t(a.fetch)&&t(a.ReadableStream),g.writableStream=t(a.WritableStream),g.abortController=t(a.AbortController),g.blobConstructor=!1;try{new Blob([new ArrayBuffer(1)]),g.blobConstructor=!0}catch{}var r;function u(){if(r!==void 0)return r;if(a.XMLHttpRequest){r=new a.XMLHttpRequest;try{r.open("GET",a.XDomainRequest?"/":"https://example.com")}catch{r=null}}else r=null;return r}function l(i){var n=u();if(!n)return!1;try{return n.responseType=i,n.responseType===i}catch{}return!1}var c=typeof a.ArrayBuffer!="undefined",s=c&&t(a.ArrayBuffer.prototype.slice);g.arraybuffer=g.fetch||c&&l("arraybuffer"),g.msstream=!g.fetch&&s&&l("ms-stream"),g.mozchunkedarraybuffer=!g.fetch&&c&&l("moz-chunked-arraybuffer"),g.overrideMimeType=g.fetch||(u()?t(u().overrideMimeType):!1),g.vbArray=t(a.VBArray);function t(i){return typeof i=="function"}r=null}).call(this)}).call(this,typeof xe!="undefined"?xe:typeof self!="undefined"?self:typeof window!="undefined"?window:{})},{"core-js/modules/es.array-buffer.constructor.js":239,"core-js/modules/es.array-buffer.slice.js":240,"core-js/modules/es.array.slice.js":250,"core-js/modules/es.object.to-string.js":258,"core-js/modules/es.promise.js":259}],402:[function(e,w,g){(function(a,r,u){(function(){e("core-js/modules/es.object.to-string.js"),e("core-js/modules/es.regexp.to-string.js"),e("core-js/modules/web.dom-collections.for-each.js"),e("core-js/modules/es.object.keys.js"),e("core-js/modules/es.array.concat.js"),e("core-js/modules/es.array.map.js"),e("core-js/modules/es.function.name.js"),e("core-js/modules/es.promise.js"),e("core-js/modules/es.regexp.exec.js"),e("core-js/modules/es.string.split.js");var l=e("./capability"),c=e("inherits"),s=e("./response"),t=e("readable-stream"),i=e("to-arraybuffer"),n=s.IncomingMessage,o=s.readyStates;function p(h,b){return l.fetch&&b?"fetch":l.mozchunkedarraybuffer?"moz-chunked-arraybuffer":l.msstream?"ms-stream":l.arraybuffer&&h?"arraybuffer":l.vbArray&&h?"text:vbarray":"text"}var f=w.exports=function(h){var b=this;t.Writable.call(b),b._opts=h,b._body=[],b._headers={},h.auth&&b.setHeader("Authorization","Basic "+new u(h.auth).toString("base64")),Object.keys(h.headers).forEach(function(j){b.setHeader(j,h.headers[j])});var S,v=!0;if(h.mode==="disable-fetch"||"requestTimeout"in h&&!l.abortController)v=!1,S=!0;else if(h.mode==="prefer-streaming")S=!1;else if(h.mode==="allow-wrong-content-type")S=!l.overrideMimeType;else if(!h.mode||h.mode==="default"||h.mode==="prefer-fast")S=!0;else throw new Error("Invalid value for opts.mode");b._mode=p(S,v),b._fetchTimer=null,b.on("finish",function(){b._onFinish()})};c(f,t.Writable),f.prototype.setHeader=function(h,b){var S=this,v=h.toLowerCase();m.indexOf(v)===-1&&(S._headers[v]={name:h,value:b})},f.prototype.getHeader=function(h){var b=this._headers[h.toLowerCase()];return b?b.value:null},f.prototype.removeHeader=function(h){var b=this;delete b._headers[h.toLowerCase()]},f.prototype._onFinish=function(){var h=this;if(!h._destroyed){var b=h._opts,S=h._headers,v=null;b.method!=="GET"&&b.method!=="HEAD"&&(l.arraybuffer?v=i(u.concat(h._body)):l.blobConstructor?v=new r.Blob(h._body.map(function(A){return i(A)}),{type:(S["content-type"]||{}).value||""}):v=u.concat(h._body).toString());var j=[];if(Object.keys(S).forEach(function(A){var E=S[A].name,_=S[A].value;Array.isArray(_)?_.forEach(function(T){j.push([E,T])}):j.push([E,_])}),h._mode==="fetch"){var y=null;if(l.abortController){var x=new AbortController;y=x.signal,h._fetchAbortController=x,"requestTimeout"in b&&b.requestTimeout!==0&&(h._fetchTimer=r.setTimeout(function(){h.emit("requestTimeout"),h._fetchAbortController&&h._fetchAbortController.abort()},b.requestTimeout))}r.fetch(h._opts.url,{method:h._opts.method,headers:j,body:v||void 0,mode:"cors",credentials:b.withCredentials?"include":"same-origin",signal:y}).then(function(A){h._fetchResponse=A,h._connect()},function(A){r.clearTimeout(h._fetchTimer),h._destroyed||h.emit("error",A)})}else{var O=h._xhr=new r.XMLHttpRequest;try{O.open(h._opts.method,h._opts.url,!0)}catch(A){a.nextTick(function(){h.emit("error",A)});return}"responseType"in O&&(O.responseType=h._mode.split(":")[0]),"withCredentials"in O&&(O.withCredentials=!!b.withCredentials),h._mode==="text"&&"overrideMimeType"in O&&O.overrideMimeType("text/plain; charset=x-user-defined"),"requestTimeout"in b&&(O.timeout=b.requestTimeout,O.ontimeout=function(){h.emit("requestTimeout")}),j.forEach(function(A){O.setRequestHeader(A[0],A[1])}),h._response=null,O.onreadystatechange=function(){switch(O.readyState){case o.LOADING:case o.DONE:h._onXHRProgress();break}},h._mode==="moz-chunked-arraybuffer"&&(O.onprogress=function(){h._onXHRProgress()}),O.onerror=function(){h._destroyed||h.emit("error",new Error("XHR error"))};try{O.send(v)}catch(A){a.nextTick(function(){h.emit("error",A)});return}}}};function d(h){try{var b=h.status;return b!==null&&b!==0}catch{return!1}}f.prototype._onXHRProgress=function(){var h=this;!d(h._xhr)||h._destroyed||(h._response||h._connect(),h._response._onXHRProgress())},f.prototype._connect=function(){var h=this;h._destroyed||(h._response=new n(h._xhr,h._fetchResponse,h._mode,h._fetchTimer),h._response.on("error",function(b){h.emit("error",b)}),h.emit("response",h._response))},f.prototype._write=function(h,b,S){var v=this;v._body.push(h),S()},f.prototype.abort=f.prototype.destroy=function(){var h=this;h._destroyed=!0,r.clearTimeout(h._fetchTimer),h._response&&(h._response._destroyed=!0),h._xhr?h._xhr.abort():h._fetchAbortController&&h._fetchAbortController.abort()},f.prototype.end=function(h,b,S){var v=this;typeof h=="function"&&(S=h,h=void 0),t.Writable.prototype.end.call(v,h,b,S)},f.prototype.flushHeaders=function(){},f.prototype.setTimeout=function(){},f.prototype.setNoDelay=function(){},f.prototype.setSocketKeepAlive=function(){};var m=["accept-charset","accept-encoding","access-control-request-headers","access-control-request-method","connection","content-length","cookie","cookie2","date","dnt","expect","host","keep-alive","origin","referer","te","trailer","transfer-encoding","upgrade","user-agent","via"]}).call(this)}).call(this,e("_process"),typeof xe!="undefined"?xe:typeof self!="undefined"?self:typeof window!="undefined"?window:{},e("buffer").Buffer)},{"./capability":401,"./response":403,_process:399,buffer:85,"core-js/modules/es.array.concat.js":241,"core-js/modules/es.array.map.js":249,"core-js/modules/es.function.name.js":253,"core-js/modules/es.object.keys.js":257,"core-js/modules/es.object.to-string.js":258,"core-js/modules/es.promise.js":259,"core-js/modules/es.regexp.exec.js":261,"core-js/modules/es.regexp.to-string.js":262,"core-js/modules/es.string.split.js":268,"core-js/modules/web.dom-collections.for-each.js":296,inherits:311,"readable-stream":339,"to-arraybuffer":348}],403:[function(e,w,g){(function(a,r,u){(function(){e("core-js/modules/web.dom-collections.for-each.js"),e("core-js/modules/es.object.to-string.js"),e("core-js/modules/es.promise.js"),e("core-js/modules/es.regexp.exec.js"),e("core-js/modules/es.string.split.js"),e("core-js/modules/es.string.match.js"),e("core-js/modules/es.array.iterator.js"),e("core-js/modules/es.array-buffer.slice.js"),e("core-js/modules/es.typed-array.uint8-array.js"),e("core-js/modules/es.typed-array.copy-within.js"),e("core-js/modules/es.typed-array.every.js"),e("core-js/modules/es.typed-array.fill.js"),e("core-js/modules/es.typed-array.filter.js"),e("core-js/modules/es.typed-array.find.js"),e("core-js/modules/es.typed-array.find-index.js"),e("core-js/modules/es.typed-array.for-each.js"),e("core-js/modules/es.typed-array.includes.js"),e("core-js/modules/es.typed-array.index-of.js"),e("core-js/modules/es.typed-array.iterator.js"),e("core-js/modules/es.typed-array.join.js"),e("core-js/modules/es.typed-array.last-index-of.js"),e("core-js/modules/es.typed-array.map.js"),e("core-js/modules/es.typed-array.reduce.js"),e("core-js/modules/es.typed-array.reduce-right.js"),e("core-js/modules/es.typed-array.reverse.js"),e("core-js/modules/es.typed-array.set.js"),e("core-js/modules/es.typed-array.slice.js"),e("core-js/modules/es.typed-array.some.js"),e("core-js/modules/es.typed-array.sort.js"),e("core-js/modules/es.typed-array.subarray.js"),e("core-js/modules/es.typed-array.to-locale-string.js"),e("core-js/modules/es.typed-array.to-string.js"),e("core-js/modules/es.array.slice.js");var l=e("./capability"),c=e("inherits"),s=e("readable-stream"),t=g.readyStates={UNSENT:0,OPENED:1,HEADERS_RECEIVED:2,LOADING:3,DONE:4},i=g.IncomingMessage=function(n,o,p,f){var d=this;if(s.Readable.call(d),d._mode=p,d.headers={},d.rawHeaders=[],d.trailers={},d.rawTrailers=[],d.on("end",function(){a.nextTick(function(){d.emit("close")})}),p==="fetch"){var m=function y(){b.read().then(function(x){if(!d._destroyed){if(x.done){r.clearTimeout(f),d.push(null);return}d.push(new u(x.value)),y()}}).catch(function(x){r.clearTimeout(f),d._destroyed||d.emit("error",x)})};if(d._fetchResponse=o,d.url=o.url,d.statusCode=o.status,d.statusMessage=o.statusText,o.headers.forEach(function(y,x){d.headers[x.toLowerCase()]=y,d.rawHeaders.push(x,y)}),l.writableStream){var h=new WritableStream({write:function(x){return new Promise(function(O,A){d._destroyed?A():d.push(new u(x))?O():d._resumeFetch=O})},close:function(){r.clearTimeout(f),d._destroyed||d.push(null)},abort:function(x){d._destroyed||d.emit("error",x)}});try{o.body.pipeTo(h).catch(function(y){r.clearTimeout(f),d._destroyed||d.emit("error",y)});return}catch{}}var b=o.body.getReader();m()}else{d._xhr=n,d._pos=0,d.url=n.responseURL,d.statusCode=n.status,d.statusMessage=n.statusText;var S=n.getAllResponseHeaders().split(/\r?\n/);if(S.forEach(function(y){var x=y.match(/^([^:]+):\s*(.*)/);if(x){var O=x[1].toLowerCase();O==="set-cookie"?(d.headers[O]===void 0&&(d.headers[O]=[]),d.headers[O].push(x[2])):d.headers[O]!==void 0?d.headers[O]+=", "+x[2]:d.headers[O]=x[2],d.rawHeaders.push(x[1],x[2])}}),d._charset="x-user-defined",!l.overrideMimeType){var v=d.rawHeaders["mime-type"];if(v){var j=v.match(/;\s*charset=([^;])(;|$)/);j&&(d._charset=j[1].toLowerCase())}d._charset||(d._charset="utf-8")}}};c(i,s.Readable),i.prototype._read=function(){var n=this,o=n._resumeFetch;o&&(n._resumeFetch=null,o())},i.prototype._onXHRProgress=function(){var n=this,o=n._xhr,p=null;switch(n._mode){case"text:vbarray":if(o.readyState!==t.DONE)break;try{p=new r.VBArray(o.responseBody).toArray()}catch{}if(p!==null){n.push(new u(p));break}case"text":try{p=o.responseText}catch{n._mode="text:vbarray";break}if(p.length>n._pos){var f=p.substr(n._pos);if(n._charset==="x-user-defined"){for(var d=new u(f.length),m=0;mn._pos&&(n.push(new u(new Uint8Array(h.result.slice(n._pos)))),n._pos=h.result.byteLength)},h.onload=function(){n.push(null)},h.readAsArrayBuffer(p);break}n._xhr.readyState===t.DONE&&n._mode!=="ms-stream"&&n.push(null)}}).call(this)}).call(this,e("_process"),typeof xe!="undefined"?xe:typeof self!="undefined"?self:typeof window!="undefined"?window:{},e("buffer").Buffer)},{"./capability":401,_process:399,buffer:85,"core-js/modules/es.array-buffer.slice.js":240,"core-js/modules/es.array.iterator.js":247,"core-js/modules/es.array.slice.js":250,"core-js/modules/es.object.to-string.js":258,"core-js/modules/es.promise.js":259,"core-js/modules/es.regexp.exec.js":261,"core-js/modules/es.string.match.js":265,"core-js/modules/es.string.split.js":268,"core-js/modules/es.typed-array.copy-within.js":272,"core-js/modules/es.typed-array.every.js":273,"core-js/modules/es.typed-array.fill.js":274,"core-js/modules/es.typed-array.filter.js":275,"core-js/modules/es.typed-array.find-index.js":276,"core-js/modules/es.typed-array.find.js":277,"core-js/modules/es.typed-array.for-each.js":278,"core-js/modules/es.typed-array.includes.js":279,"core-js/modules/es.typed-array.index-of.js":280,"core-js/modules/es.typed-array.iterator.js":281,"core-js/modules/es.typed-array.join.js":282,"core-js/modules/es.typed-array.last-index-of.js":283,"core-js/modules/es.typed-array.map.js":284,"core-js/modules/es.typed-array.reduce-right.js":285,"core-js/modules/es.typed-array.reduce.js":286,"core-js/modules/es.typed-array.reverse.js":287,"core-js/modules/es.typed-array.set.js":288,"core-js/modules/es.typed-array.slice.js":289,"core-js/modules/es.typed-array.some.js":290,"core-js/modules/es.typed-array.sort.js":291,"core-js/modules/es.typed-array.subarray.js":292,"core-js/modules/es.typed-array.to-locale-string.js":293,"core-js/modules/es.typed-array.to-string.js":294,"core-js/modules/es.typed-array.uint8-array.js":295,"core-js/modules/web.dom-collections.for-each.js":296,inherits:311,"readable-stream":339}],404:[function(e,w,g){var a=e("@babel/runtime/helpers/interopRequireDefault"),r=a(e("@babel/runtime/helpers/typeof"));e("core-js/modules/es.regexp.exec.js"),e("core-js/modules/es.string.search.js"),e("core-js/modules/es.array.concat.js"),e("core-js/modules/es.string.split.js"),e("core-js/modules/es.string.replace.js"),e("core-js/modules/es.array.join.js"),e("core-js/modules/es.string.trim.js"),e("core-js/modules/es.string.match.js"),e("core-js/modules/es.array.slice.js"),e("core-js/modules/es.object.keys.js"),e("core-js/modules/es.array.splice.js");var u=e("punycode"),l=e("./util");g.parse=x,g.resolve=A,g.resolveObject=E,g.format=O,g.Url=c;function c(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}var s=/^([a-z0-9.+-]+:)/i,t=/:[0-9]*$/,i=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,n=["<",">",'"',"`"," ","\r",` +`," "],o=["{","}","|","\\","^","`"].concat(n),p=["'"].concat(o),f=["%","/","?",";","#"].concat(p),d=["/","?","#"],m=255,h=/^[+a-z0-9A-Z_-]{0,63}$/,b=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,S={javascript:!0,"javascript:":!0},v={javascript:!0,"javascript:":!0},j={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},y=e("querystring");function x(_,T,k){if(_&&l.isObject(_)&&_ instanceof c)return _;var F=new c;return F.parse(_,T,k),F}c.prototype.parse=function(_,T,k){if(!l.isString(_))throw new TypeError("Parameter 'url' must be a string, not "+(0,r.default)(_));var F=_.indexOf("?"),W=F!==-1&&F<_.indexOf("#")?"?":"#",V=_.split(W),L=/\\/g;V[0]=V[0].replace(L,"/"),_=V.join(W);var Y=_;if(Y=Y.trim(),!k&&_.split("#").length===1){var re=i.exec(Y);if(re)return this.path=Y,this.href=Y,this.pathname=re[1],re[2]?(this.search=re[2],T?this.query=y.parse(this.search.substr(1)):this.query=this.search.substr(1)):T&&(this.search="",this.query={}),this}var z=s.exec(Y);if(z){z=z[0];var G=z.toLowerCase();this.protocol=G,Y=Y.substr(z.length)}if(k||z||Y.match(/^\/\/[^@\/]+@[^@\/]+/)){var U=Y.substr(0,2)==="//";U&&!(z&&v[z])&&(Y=Y.substr(2),this.slashes=!0)}if(!v[z]&&(U||z&&!j[z])){for(var P=-1,B=0;B127?N+="x":N+=D[I];if(!N.match(h)){var Q=ae.slice(0,B),Z=ae.slice(B+1),ie=D.match(b);ie&&(Q.push(ie[1]),Z.unshift(ie[2])),Z.length&&(Y="/"+Z.join(".")+Y),this.hostname=Q.join(".");break}}}this.hostname.length>m?this.hostname="":this.hostname=this.hostname.toLowerCase(),X||(this.hostname=u.toASCII(this.hostname));var ce=this.port?":"+this.port:"",oe=this.hostname||"";this.host=oe+ce,this.href+=this.host,X&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),Y[0]!=="/"&&(Y="/"+Y))}if(!S[G])for(var B=0,M=p.length;B0?k.host.split("@"):!1;N&&(k.auth=N.shift(),k.host=k.hostname=N.shift())}return k.search=_.search,k.query=_.query,(!l.isNull(k.pathname)||!l.isNull(k.search))&&(k.path=(k.pathname?k.pathname:"")+(k.search?k.search:"")),k.href=k.format(),k}if(!ae.length)return k.pathname=null,k.search?k.path="/"+k.search:k.path=null,k.href=k.format(),k;for(var I=ae.slice(-1)[0],te=(k.host||_.host||ae.length>1)&&(I==="."||I==="..")||I==="",Q=0,Z=ae.length;Z>=0;Z--)I=ae[Z],I==="."?ae.splice(Z,1):I===".."?(ae.splice(Z,1),Q++):Q&&(ae.splice(Z,1),Q--);if(!q&&!X)for(;Q--;Q)ae.unshift("..");q&&ae[0]!==""&&(!ae[0]||ae[0].charAt(0)!=="/")&&ae.unshift(""),te&&ae.join("/").substr(-1)!=="/"&&ae.push("");var ie=ae[0]===""||ae[0]&&ae[0].charAt(0)==="/";if(D){k.hostname=k.host=ie?"":ae.length?ae.shift():"";var N=k.host&&k.host.indexOf("@")>0?k.host.split("@"):!1;N&&(k.auth=N.shift(),k.host=k.hostname=N.shift())}return q=q||k.host&&ae.length,q&&!ie&&ae.unshift(""),ae.length?k.pathname=ae.join("/"):(k.pathname=null,k.path=null),(!l.isNull(k.pathname)||!l.isNull(k.search))&&(k.path=(k.pathname?k.pathname:"")+(k.search?k.search:"")),k.auth=_.auth||k.auth,k.slashes=k.slashes||_.slashes,k.href=k.format(),k},c.prototype.parseHost=function(){var _=this.host,T=t.exec(_);T&&(T=T[0],T!==":"&&(this.port=T.substr(1)),_=_.substr(0,_.length-T.length)),_&&(this.hostname=_)}},{"./util":405,"@babel/runtime/helpers/interopRequireDefault":74,"@babel/runtime/helpers/typeof":75,"core-js/modules/es.array.concat.js":241,"core-js/modules/es.array.join.js":248,"core-js/modules/es.array.slice.js":250,"core-js/modules/es.array.splice.js":252,"core-js/modules/es.object.keys.js":257,"core-js/modules/es.regexp.exec.js":261,"core-js/modules/es.string.match.js":265,"core-js/modules/es.string.replace.js":266,"core-js/modules/es.string.search.js":267,"core-js/modules/es.string.split.js":268,"core-js/modules/es.string.trim.js":269,punycode:325,querystring:328}],405:[function(e,w,g){var a=e("@babel/runtime/helpers/interopRequireDefault"),r=a(e("@babel/runtime/helpers/typeof"));w.exports={isString:function(l){return typeof l=="string"},isObject:function(l){return(0,r.default)(l)==="object"&&l!==null},isNull:function(l){return l===null},isNullOrUndefined:function(l){return l==null}}},{"@babel/runtime/helpers/interopRequireDefault":74,"@babel/runtime/helpers/typeof":75}],406:[function(e,w,g){e("core-js/modules/es.number.constructor.js"),g.encodeURIComponent=function(a){try{return encodeURIComponent(a)}catch{return a}},g.escape=e("escape-html"),g.timestamp=function(r){if(r){var u=r;return typeof u=="string"&&(u=Number(u)),String(r).length===10&&(u*=1e3),new Date(u)}return Math.round(Date.now()/1e3)}},{"core-js/modules/es.number.constructor.js":254,"escape-html":300}],407:[function(e,w,g){(function(a,r){(function(){var u=e("@babel/runtime/helpers/interopRequireDefault"),l=u(e("@babel/runtime/helpers/typeof"));e("core-js/modules/es.string.trim.js"),e("core-js/modules/es.regexp.exec.js"),e("core-js/modules/es.string.split.js"),e("core-js/modules/es.object.to-string.js"),e("core-js/modules/es.promise.js"),e("core-js/modules/es.function.name.js"),e("core-js/modules/es.array.concat.js");var c=e("util"),s=e("url"),t=e("http"),i=e("https"),n=e("debug")("urllib"),o=e("humanize-ms"),p=0,f=Math.pow(2,31)-10,d=/^https?:\/\//i;function m(v,j){return v===void 0?j:v}function h(v){return v?v.split(";")[0].trim().toLowerCase():""}function b(v,j){return function(y,x,O){if(y)return j(y);v({data:x,status:O.statusCode,headers:O.headers,res:O})}}g.TIMEOUTS=[o("300s"),o("300s")];var S=["json","text"];g.request=function(j,y,x){return arguments.length===2&&typeof y=="function"&&(x=y,y=null),typeof x=="function"?g.requestWithCallback(j,y,x):new Promise(function(O,A){g.requestWithCallback(j,y,b(O,A))})},g.requestWithCallback=function(j,y,x){if(!j||typeof j!="string"&&(0,l.default)(j)!=="object"){var O=c.format("expect request url to be a string or a http request options, but got %j",j);throw new Error(O)}arguments.length===2&&typeof y=="function"&&(x=y,y=null),y=y||{},p>=f&&(p=0);var A=++p;y.requestUrls=y.requestUrls||[];var E={requestId:A,url:j,args:y,ctx:y.ctx};y.emitter&&y.emitter.emit("request",E),y.timeout=y.timeout||g.TIMEOUTS,y.maxRedirects=y.maxRedirects||10,y.streaming=y.streaming||y.customResponse;var _=Date.now(),T;typeof j=="string"?(d.test(j)||(j="https://"+j),T=s.parse(j)):T=j;var k=(y.type||y.method||T.method||"GET").toUpperCase(),F=T.port||80,W=t,V=m(y.agent,g.agent),L=y.fixJSONCtlChars;T.protocol==="https:"&&(W=i,V=m(y.httpsAgent,g.httpsAgent),T.port||(F=443));var Y={host:T.hostname||T.host||"localhost",path:T.path||"/",method:k,port:F,agent:V,headers:y.headers||{},lookup:y.lookup};Array.isArray(y.timeout)?Y.requestTimeout=y.timeout[y.timeout.length-1]:typeof y.timeout!="undefined"&&(Y.requestTimeout=y.timeout);var re=y.auth||T.auth;re&&(Y.auth=re);var z=y.content||y.data,G=k==="GET"||k==="HEAD"||y.dataAsQueryString;if(!y.content&&z&&!(typeof z=="string"||r.isBuffer(z)))if(G)z=y.nestedQuerystring?qs.stringify(z):querystring.stringify(z);else{var U=Y.headers["Content-Type"]||Y.headers["content-type"];U||(y.contentType==="json"?U="application/json":U="application/x-www-form-urlencoded",Y.headers["Content-Type"]=U),h(U)==="application/json"?z=JSON.stringify(z):z=y.nestedQuerystring?qs.stringify(z):querystring.stringify(z)}G&&z&&(Y.path+=(T.query?"&":"?")+z,z=null);var P=0;if(z){var B=z.length;r.isBuffer(z)||(B=r.byteLength(z)),P=Y.headers["Content-Length"]=B}y.dataType==="json"&&(Y.headers.Accept="application/json"),typeof y.beforeRequest=="function"&&y.beforeRequest(Y);var K=null,J=null,q=null,X=!1,ae=!1,M=0,D=-1,N=!1,I="",te="",Q=null;y.timing&&(Q={queuing:0,dnslookup:0,connected:0,requestSent:0,waiting:0,contentDownload:0});function Z(){K&&(clearTimeout(K),K=null)}function ie(){J&&(clearTimeout(J),J=null)}function ce(se,de,be){if(ie(),!x){console.warn("[urllib:warn] [%s] [%s] [worker:%s] %s %s callback twice!!!",Date(),A,a.pid,Y.method,j),se&&console.warn(`[urllib:warn] [%s] [%s] [worker:%s] %s: %s +stack: %s`,Date(),A,a.pid,se.name,se.message,se.stack);return}var we=x;x=null;var ye={};be&&(D=be.statusCode,ye=be.headers);var le=Date.now()-_;Q&&(Q.contentDownload=le),n("[%sms] done, %s bytes HTTP %s %s %s %s, keepAliveSocket: %s, timing: %j",le,M,D,Y.method,Y.host,Y.path,ae,Q);var fe={status:D,statusCode:D,headers:ye,size:M,aborted:N,rt:le,keepAliveSocket:ae,data:de,requestUrls:y.requestUrls,timing:Q,remoteAddress:I,remotePort:te};if(se){var pe="";V&&typeof V.getCurrentStatus=="function"&&(pe=", agent status: "+JSON.stringify(V.getCurrentStatus())),se.message+=", "+Y.method+" "+j+" "+D+" (connected: "+X+", keepalive socket: "+ae+pe+`) +headers: `+JSON.stringify(ye),se.data=de,se.path=Y.path,se.status=D,se.headers=ye,se.res=fe}we(se,de,y.streaming?be:fe),y.emitter&&(E.url=j,E.socket=ne&&ne.connection,E.options=Y,E.size=P,y.emitter.emit("response",{requestId:A,error:se,ctx:y.ctx,req:E,res:fe}))}function oe(se){var de=null;if(y.followRedirect&&statuses.redirect[se.statusCode]){y._followRedirectCount=(y._followRedirectCount||0)+1;var be=se.headers.location;if(!be)de=new Error("Got statusCode "+se.statusCode+" but cannot resolve next location from headers"),de.name="FollowRedirectError";else if(y._followRedirectCount>y.maxRedirects)de=new Error("Exceeded maxRedirects. Probably stuck in a redirect loop "+j),de.name="MaxRedirectError";else{var we=y.formatRedirectUrl?y.formatRedirectUrl(j,be):s.resolve(j,be);n("Request#%d %s: `redirected` from %s to %s",A,Y.path,j,we),ie(),y.headers&&y.headers.Host&&d.test(be)&&(y.headers.Host=null);var ye=x;return x=null,g.requestWithCallback(we,y,ye),{redirect:!0,error:null}}}return{redirect:!1,error:de}}y.gzip&&!Y.headers["Accept-Encoding"]&&!Y.headers["accept-encoding"]&&(Y.headers["Accept-Encoding"]="gzip");function me(se,de,be){var we=se.headers["content-encoding"];return be(null,de,we)}var ge=y.writeStream;n("Request#%d %s %s with headers %j, options.path: %s",A,k,j,Y.headers,Y.path),y.requestUrls.push(j);function $(se){if(Q&&(Q.waiting=Date.now()-_),n("Request#%d %s `req response` event emit: status %d, headers: %j",A,j,se.statusCode,se.headers),y.streaming){var de=oe(se);if(de.redirect){se.resume();return}return de.error?(se.resume(),ce(de.error,null,se)):ce(null,null,se)}if(se.on("close",function(){n("Request#%d %s: `res close` event emit, total size %d",A,j,M)}),se.on("error",function(){n("Request#%d %s: `res error` event emit, total size %d",A,j,M)}),se.on("aborted",function(){N=!0,n("Request#%d %s: `res aborted` event emit, total size %d",A,j,M)}),ge){var be=oe(se);if(be.redirect){se.resume();return}return be.error?(se.resume(),ge.end(),ce(be.error,null,se)):(y.consumeWriteStream===!1?se.on("end",ce.bind(null,null,null,se)):ge.on("close",function(){n("Request#%d %s: writeStream close event emitted",A,j),ce(q||null,null,se)}),se.pipe(ge))}var we=[];se.on("data",function(ye){n("Request#%d %s: `res data` event emit, size %d",A,j,ye.length),M+=ye.length,we.push(ye)}),se.on("end",function(){var ye=r.concat(we,M);if(n("Request#%d %s: `res end` event emit, total size %d, _dumped: %s",A,j,M,se._dumped),q)return ce(q,ye,se);var le=oe(se);if(le.error)return ce(le.error,ye,se);le.redirect||me(se,ye,function(fe,pe,he){if(fe)return ce(fe,ye,se);if(!he&&S.indexOf(y.dataType)>=0){try{pe=decodeBodyByCharset(pe,se)}catch(je){return n("decodeBodyByCharset error: %s",je),ce(null,pe,se)}if(y.dataType==="json")if(M===0)pe=null;else{var ve=parseJSON(pe,L);ve.error?fe=ve.error:pe=ve.data}}N&&n("Request#%d %s: Remote socket was terminated before `response.end()` was called",A,j),ce(fe,pe,se)})})}var R,C;Array.isArray(y.timeout)?(R=o(y.timeout[0]),C=o(y.timeout[1])):R=C=o(y.timeout),n("ConnectTimeout: %d, ResponseTimeout: %d",R,C);function H(){n("Connect timer ticking, timeout: %d",R),K=setTimeout(function(){K=null,D===-1&&(D=-2);var se="Connect timeout for "+R+"ms",de="ConnectionTimeoutError";ne.socket||(de="SocketAssignTimeoutError",se+=", working sockets is full"),q=new Error(se),q.name=de,q.requestId=A,n("ConnectTimeout: Request#%d %s %s: %s, connected: %s",A,j,q.name,se,X),ue()},R)}function ee(){n("Response timer ticking, timeout: %d",C),J=setTimeout(function(){J=null;var se="Response timeout for "+C+"ms",de="ResponseTimeoutError";q=new Error(se),q.name=de,q.requestId=A,n("ResponseTimeout: Request#%d %s %s: %s, connected: %s",A,j,q.name,se,X),ue()},C)}var ne;Y.mode=y.mode?y.mode:"";try{ne=W.request(Y,$)}catch(se){return ce(se)}typeof window=="undefined"?H():ne.on("requestTimeout",function(){D===-1&&(D=-2);var se="Connect timeout for "+R+"ms",de="ConnectionTimeoutError";q=new Error(se),q.name=de,q.requestId=A,ue()});function ue(){n("Request#%d %s abort, connected: %s",A,j,X),ne.socket||(q.noSocket=!0,ce(q)),ne.abort()}return Q&&ne.on("finish",function(){Q.requestSent=Date.now()-_}),ne.once("socket",function(se){Q&&(Q.queuing=Date.now()-_);var de=se.readyState;if(de==="opening"){se.once("lookup",function(be,we,ye){n("Request#%d %s lookup: %s, %s, %s",A,j,be,we,ye),Q&&(Q.dnslookup=Date.now()-_),we&&(I=we)}),se.once("connect",function(){Q&&(Q.connected=Date.now()-_),Z(),ee(),n("Request#%d %s new socket connected",A,j),X=!0,I||(I=se.remoteAddress),te=se.remotePort});return}n("Request#%d %s reuse socket connected, readyState: %s",A,j,de),X=!0,ae=!0,I||(I=se.remoteAddress),te=se.remotePort,Z(),ee()}),ne.on("error",function(se){(se.name==="Error"||se.name==="TypeError")&&(se.name=X?"ResponseError":"RequestError"),se.message+=' (req "error")',n("Request#%d %s `req error` event emit, %s: %s",A,j,se.name,se.message),ce(q||se)}),ge&&ge.once("error",function(se){se.message+=' (writeStream "error")',q=se,n("Request#%d %s `writeStream error` event emit, %s: %s",A,j,se.name,se.message),ue()}),y.stream?(y.stream.pipe(ne),y.stream.once("error",function(se){se.message+=' (stream "error")',q=se,n("Request#%d %s `readStream error` event emit, %s: %s",A,j,se.name,se.message),ue()})):ne.end(z),ne.requestId=A,ne}}).call(this)}).call(this,e("_process"),e("buffer").Buffer)},{"@babel/runtime/helpers/interopRequireDefault":74,"@babel/runtime/helpers/typeof":75,_process:399,buffer:85,"core-js/modules/es.array.concat.js":241,"core-js/modules/es.function.name.js":253,"core-js/modules/es.object.to-string.js":258,"core-js/modules/es.promise.js":259,"core-js/modules/es.regexp.exec.js":261,"core-js/modules/es.string.split.js":268,"core-js/modules/es.string.trim.js":269,debug:397,http:400,https:302,"humanize-ms":303,url:404,util:352}]},{},[1])(1)})})(De);var Be=Me(De.exports);export{Be as O}; diff --git a/public/exadmin/assets/ant-design-vue.6b10f349.js b/public/exadmin/assets/ant-design-vue.6b10f349.js new file mode 100644 index 0000000..1aeac25 --- /dev/null +++ b/public/exadmin/assets/ant-design-vue.6b10f349.js @@ -0,0 +1,40 @@ +import{_ as Be,b as k,d as _e,e as H,f as O,h as Pe,i as os,r as sn,j as mi,k as pi,l as bb,m as Cb}from"./@babel.6cd0804c.js";import"./vue.db505ee4.js";import{G as xb,H as ht,T as ls,I as gn,d as Z,q as bt,x as nn,o as Ye,D as dn,z as yn,w as pe,B as ot,p as M,u as un,c,A as lt,J as wo,K as mm,L as is,r as U,M as Bl,f as Ze,n as Je,a as ut,N as Xt,O as Sb,P as da,v as ze,Q as Ln,R as hv,y as us,S as An,m as wb,t as qa,s as dt,U as Rt,b as cs,e as kb,V as Pb,F as pm,W as gi,X as ss,Y as Tb}from"./@vue.cb43a243.js";import{I as gm,C as ko,a as fa,E as Po,L as Rn,b as Un,c as ds,d as vs,e as fs,f as yi,g as mv,h as bi,S as Ci,D as To,V as Ib,i as hs,R as va,P as Ob,j as tr,k as ym,l as bm,m as Nb,n as ms,o as _b,p as Mb,q as Eb,Z as Fb,r as Ab,U as Rb,B as Db,s as Bb,t as Lb,A as Kb,u as Vb,v as oc,w as $b,W as jb,x as Hb,y as zb,F as Cm,z as Wb,M as Ub,G as Yb,H as Gb,J as qb,K as Xb,N as xm,O as Qb,Q as Zb,T as Jb,X as eC,Y as tC,_ as nC,$ as aC}from"./@ant-design.bcfb08ae.js";import{i as ps}from"./resize-observer-polyfill.8deb1e21.js";import{z as rC}from"./vue-types.6e6d84ba.js";import"./regenerator-runtime.8e24db72.js";import{T as su}from"./@ctrl.fa7cbd46.js";import{a as oC,b as lC}from"./dom-align.f1b5d360.js";import{i as xi,u as du,p as Sm,a as wm,b as km,d as Si,c as il,f as iC,o as uC,e as cC,g as sC,h as dC,j as vC,k as fC}from"./lodash-es.0ea26897.js";import{d as Gt,c as hC,a as mC,w as pC,l as gC,b as yC,e as bC}from"./dayjs.38e390ea.js";import{S as CC}from"./async-validator.5d25c98b.js";import{s as xC}from"./scroll-into-view-if-needed.5191fdbf.js";var SC=function(e){return typeof e=="function"},wC=Array.isArray,kC=function(e){return typeof e=="string"},PC=function(e){return e!==null&&Be(e)==="object"},TC=/^on[^a-z]/,IC=function(e){return TC.test(e)},Pm=function(e){var a=Object.create(null);return function(t){var r=a[t];return r||(a[t]=e(t))}},OC=/-(\w)/g,gs=Pm(function(n){return n.replace(OC,function(e,a){return a?a.toUpperCase():""})}),NC=/\B([A-Z])/g,_C=Pm(function(n){return n.replace(NC,"-$1").toLowerCase()}),MC=Object.prototype.hasOwnProperty,pv=function(e,a){return MC.call(e,a)};function EC(n,e,a,t){var r=n[a];if(r!=null){var o=pv(r,"default");if(o&&t===void 0){var l=r.default;t=r.type!==Function&&SC(l)?l():l}r.type===Boolean&&(!pv(e,a)&&!o?t=!1:t===""&&(t=!0))}return t}function FC(n){return Object.keys(n).reduce(function(e,a){return(a.substr(0,5)==="data-"||a.substr(0,5)==="aria-")&&(e[a]=n[a]),e},{})}function za(n){return typeof n=="number"?"".concat(n,"px"):n}function Qr(n){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},a=arguments.length>2?arguments[2]:void 0;return typeof n=="function"?n(e):n!=null?n:a}function te(){for(var n=[],e=0;e0&&arguments[0]!==void 0?arguments[0]:"",a=arguments.length>1?arguments[1]:void 0,t={},r=/;(?![^(]*\))/g,o=/:(.+)/;return Be(e)==="object"?e:(e.split(r).forEach(function(l){if(l){var i=l.split(o);if(i.length>1){var u=a?gs(i[0].trim()):i[0].trim();t[u]=i[1].trim()}}}),t)},oa=function(e,a){return e[a]!==void 0},St=function n(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,t=Array.isArray(e)?e:[e],r=[];return t.forEach(function(o){Array.isArray(o)?r.push.apply(r,_e(n(o,a))):o&&o.type===ht?r.push.apply(r,_e(n(o.children,a))):o&&gn(o)?a&&!Oo(o)?r.push(o):a||r.push(o):lc(o)&&r.push(o)}),r},Io=function(e){var a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"default",t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if(gn(e))return e.type===ht?a==="default"?St(e.children):[]:e.children&&e.children[a]?St(e.children[a](t)):[];var r=e.$slots[a]&&e.$slots[a](t);return St(r)},ka=function(e){for(var a,t=((a=e==null?void 0:e.vnode)===null||a===void 0?void 0:a.el)||e&&(e.$el||e);t&&!t.tagName;)t=t.nextSibling;return t},Tm=function(e){var a={};if(e.$&&e.$.vnode){var t=e.$.vnode.props||{};Object.keys(e.$props).forEach(function(i){var u=e.$props[i],s=_C(i);(u!==void 0||s in t)&&(a[i]=u)})}else if(gn(e)&&Be(e.type)==="object"){var r=e.props||{},o={};Object.keys(r).forEach(function(i){o[gs(i)]=r[i]});var l=e.type.props||{};Object.keys(l).forEach(function(i){var u=EC(l,o,i,o[i]);(u!==void 0||i in o)&&(a[i]=u)})}return a},Cs=function(e){var a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"default",t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e,r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,o=void 0;if(e.$){var l=e[a];if(l!==void 0)return typeof l=="function"&&r?l(t):l;o=e.$slots[a],o=r&&o?o(t):o}else if(gn(e)){var i=e.props&&e.props[a];if(i!==void 0&&e.props!==null)return typeof i=="function"&&r?i(t):i;e.type===ht?o=e.children:e.children&&e.children[a]&&(o=e.children[a],o=r&&o?o(t):o)}return Array.isArray(o)&&(o=St(o),o=o.length===1?o[0]:o,o=o.length===0?void 0:o),o};function gv(){var n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,a={};return n.$?a=k(k({},a),n.$attrs):a=k(k({},a),n.props),ys(a)[e?"onEvents":"events"]}function DC(n){var e=(gn(n)?n.props:n.$attrs)||{},a=e.class||{},t={};return typeof a=="string"?a.split(" ").forEach(function(r){t[r.trim()]=!0}):Array.isArray(a)?te(a).split(" ").forEach(function(r){t[r.trim()]=!0}):t=k(k({},t),a),t}function Im(n,e){var a=(gn(n)?n.props:n.$attrs)||{},t=a.style||{};if(typeof t=="string")t=bs(t,e);else if(e&&t){var r={};return Object.keys(t).forEach(function(o){return r[gs(o)]=t[o]}),r}return t}function BC(n){return n==null||n===""||Array.isArray(n)&&n.length===0}function Oo(n){return n&&(n.type===xb||n.type===ht&&n.children.length===0||n.type===ls&&n.children.trim()==="")}function LC(n){return n&&n.type===ls}function Ht(){var n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],e=[];return n.forEach(function(a){Array.isArray(a)?e.push.apply(e,_e(a)):a.type===ht?e.push.apply(e,_e(a.children)):e.push(a)}),e.filter(function(a){return!Oo(a)})}function Ur(n){if(n){var e=Ht(n);return e.length?e:void 0}else return n}function Vt(n){return Array.isArray(n)&&n.length===1&&(n=n[0]),n&&n.__v_isVNode&&Be(n.type)!=="symbol"}function wt(n,e){var a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"default",t,r;return(t=e[a])!==null&&t!==void 0?t:(r=n[a])===null||r===void 0?void 0:r.call(n)}var Nn=Z({name:"ResizeObserver",props:{disabled:Boolean,onResize:Function},emits:["resize"],setup:function(e,a){var t=a.slots,r=bt({width:0,height:0,offsetHeight:0,offsetWidth:0}),o=null,l=null,i=function(){l&&(l.disconnect(),l=null)},u=function(h){var f=e.onResize,m=h[0].target,y=m.getBoundingClientRect(),p=y.width,g=y.height,b=m.offsetWidth,C=m.offsetHeight,x=Math.floor(p),w=Math.floor(g);if(r.width!==x||r.height!==w||r.offsetWidth!==b||r.offsetHeight!==C){var S={width:x,height:w,offsetWidth:b,offsetHeight:C};k(r,S),f&&Promise.resolve().then(function(){f(k(k({},S),{offsetWidth:b,offsetHeight:C}),m)})}},s=nn(),d=function(){var h=e.disabled;if(h){i();return}var f=ka(s),m=f!==o;m&&(i(),o=f),!l&&f&&(l=new ps(u),l.observe(f))};return Ye(function(){d()}),dn(function(){d()}),yn(function(){i()}),pe(function(){return e.disabled},function(){d()},{flush:"post"}),function(){var v;return(v=t.default)===null||v===void 0?void 0:v.call(t)[0]}}}),Om=function(e){return setTimeout(e,16)},Nm=function(e){return clearTimeout(e)};typeof window!="undefined"&&"requestAnimationFrame"in window&&(Om=function(e){return window.requestAnimationFrame(e)},Nm=function(e){return window.cancelAnimationFrame(e)});var yv=0,xs=new Map;function _m(n){xs.delete(n)}function Qe(n){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1;yv+=1;var a=yv;function t(r){if(r===0)_m(a),n();else{var o=Om(function(){t(r-1)});xs.set(a,o)}}return t(e),a}Qe.cancel=function(n){var e=xs.get(n);return _m(e),Nm(e)};function ic(n){var e,a=function(o){return function(){e=null,n.apply(void 0,_e(o))}},t=function(){if(e==null){for(var o=arguments.length,l=new Array(o),i=0;in.top-a)return"".concat(a+e.top,"px")}function xv(n,e,a){if(a!==void 0&&e.bottom2&&arguments[2]!==void 0?arguments[2]:"";Hm(n,"[antdv: ".concat(e,"] ").concat(a))},uc="internalMark",ul=Z({name:"ALocaleProvider",props:{locale:{type:Object},ANT_MARK__:String},setup:function(e,a){var t=a.slots;Kt(e.ANT_MARK__===uc,"LocaleProvider","`LocaleProvider` is deprecated. Please use `locale` with `ConfigProvider` instead");var r=bt({antLocale:k(k({},e.locale),{exist:!0}),ANT_MARK__:uc});return lt("localeData",r),pe(function(){return e.locale},function(){r.antLocale=k(k({},e.locale),{exist:!0})},{immediate:!0}),function(){var o;return(o=t.default)===null||o===void 0?void 0:o.call(t)}}});ul.install=function(n){return n.component(ul.name,ul),n};var zm=Et(ul);globalThis&&globalThis.__rest;Tt("bottomLeft","bottomRight","topLeft","topRight");var ZC=function(e){return e!==void 0&&(e==="topLeft"||e==="topRight")?"slide-down":"slide-up"},Ma=function(e){var a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},t=e?k({name:e,appear:!0,enterFromClass:"".concat(e,"-enter ").concat(e,"-enter-prepare"),enterActiveClass:"".concat(e,"-enter ").concat(e,"-enter-prepare"),enterToClass:"".concat(e,"-enter ").concat(e,"-enter-active"),leaveFromClass:" ".concat(e,"-leave"),leaveActiveClass:"".concat(e,"-leave"),leaveToClass:"".concat(e,"-leave ").concat(e,"-leave-active")},a):k({css:!1},a);return t},Ss=function(e){var a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},t=e?k({name:e,appear:!0,appearActiveClass:"".concat(e),appearToClass:"".concat(e,"-appear ").concat(e,"-appear-active"),enterFromClass:"".concat(e,"-appear ").concat(e,"-enter ").concat(e,"-appear-prepare ").concat(e,"-enter-prepare"),enterActiveClass:"".concat(e),enterToClass:"".concat(e,"-enter ").concat(e,"-appear ").concat(e,"-appear-active ").concat(e,"-enter-active"),leaveActiveClass:"".concat(e," ").concat(e,"-leave"),leaveToClass:"".concat(e,"-leave-active")},a):k({css:!1},a);return t},ha=wo,Wm=mm,Bn=function(e,a,t){return t!==void 0?t:"".concat(e,"-").concat(a)},JC=Z({name:"Notice",inheritAttrs:!1,props:["prefixCls","duration","updateMark","noticeKey","closeIcon","closable","props","onClick","onClose","holder","visible"],setup:function(e,a){var t=a.attrs,r=a.slots,o,l=M(function(){return e.duration===void 0?1.5:e.duration}),i=function(){l.value&&(o=setTimeout(function(){s()},l.value*1e3))},u=function(){o&&(clearTimeout(o),o=null)},s=function(h){h&&h.stopPropagation(),u();var f=e.onClose,m=e.noticeKey;f&&f(m)},d=function(){u(),i()};return Ye(function(){i()}),yn(function(){u()}),pe([l,function(){return e.updateMark},function(){return e.visible}],function(v,h){var f=Pe(v,3),m=f[0],y=f[1],p=f[2],g=Pe(h,3),b=g[0],C=g[1],x=g[2];(m!==b||y!==C||p!==x&&x)&&d()},{flush:"post"}),function(){var v,h,f=e.prefixCls,m=e.closable,y=e.closeIcon,p=y===void 0?(v=r.closeIcon)===null||v===void 0?void 0:v.call(r):y,g=e.onClick,b=e.holder,C=t.class,x=t.style,w="".concat(f,"-notice"),S=Object.keys(t).reduce(function(T,I){return(I.substr(0,5)==="data-"||I.substr(0,5)==="aria-"||I==="role")&&(T[I]=t[I]),T},{}),P=c("div",H({class:te(w,C,O({},"".concat(w,"-closable"),m)),style:x,onMouseenter:u,onMouseleave:i,onClick:g},S),[c("div",{class:"".concat(w,"-content")},[(h=r.default)===null||h===void 0?void 0:h.call(r)]),m?c("a",{tabindex:0,onClick:s,class:"".concat(w,"-close")},[p||c("span",{class:"".concat(w,"-close-x")},null)]):null]);return b?c(is,{to:b},{default:function(){return P}}):P}}}),e1=globalThis&&globalThis.__rest||function(n,e){var a={};for(var t in n)Object.prototype.hasOwnProperty.call(n,t)&&e.indexOf(t)<0&&(a[t]=n[t]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,t=Object.getOwnPropertySymbols(n);r=p&&(y.key=b[0].notice.key,y.updateMark=Tv(),y.userPassKey=m,b.shift()),b.push({notice:y,holderCallback:f})),i.value=b},d=function(h){i.value=i.value.filter(function(f){var m=f.notice,y=m.key,p=m.userPassKey,g=p||y;return g!==h})};return r({add:s,remove:d,notices:i}),function(){var v,h,f=e.prefixCls,m=e.closeIcon,y=m===void 0?(h=o.closeIcon)===null||h===void 0?void 0:h.call(o,{prefixCls:f}):m,p=i.value.map(function(b,C){var x=b.notice,w=b.holderCallback,S=C===i.value.length-1?x.updateMark:void 0,P=x.key,T=x.userPassKey,I=x.content,N=k(k(k({prefixCls:f,closeIcon:typeof y=="function"?y({prefixCls:f}):y},x),x.props),{key:P,noticeKey:T||P,updateMark:S,onClose:function(R){var E;d(R),(E=x.onClose)===null||E===void 0||E.call(x)},onClick:x.onClick});return w?c("div",{key:P,class:"".concat(f,"-hook-holder"),ref:function(R){typeof P!="undefined"&&(R?(l.set(P,R),w(R,N)):l.delete(P))}},null):c(JC,N,{default:function(){return[typeof I=="function"?I({prefixCls:f}):I]}})}),g=(v={},O(v,f,1),O(v,t.class,!!t.class),v);return c("div",{class:g,style:t.style||{top:"65px",left:"50%"}},[c(mm,H({tag:"div"},u.value),{default:function(){return[p]}})])}}});cc.newInstance=function(e,a){var t=e||{},r=t.name,o=r===void 0?"notification":r,l=t.getContainer,i=t.appContext,u=t.prefixCls,s=t.rootPrefixCls,d=t.transitionName,v=t.hasTransitionName,h=e1(t,["name","getContainer","appContext","prefixCls","rootPrefixCls","transitionName","hasTransitionName"]),f=document.createElement("div");if(l){var m=l();m.appendChild(f)}else document.body.appendChild(f);var y=Z({name:"NotificationWrapper",setup:function(b,C){var x=C.attrs,w=U();return Ye(function(){a({notice:function(P){var T;(T=w.value)===null||T===void 0||T.add(P)},removeNotice:function(P){var T;(T=w.value)===null||T===void 0||T.remove(P)},destroy:function(){Bl(null,f),f.parentNode&&f.parentNode.removeChild(f)},component:w})}),function(){var S=pn,P=S.getPrefixCls(o,u),T=S.getRootPrefixCls(s,P),I=v?d:"".concat(T,"-").concat(d);return c(Is,H(H({},S),{},{notUpdateGlobalConfig:!0,prefixCls:T}),{default:function(){return[c(cc,H(H({ref:w},x),{},{prefixCls:P,transitionName:I}),null)]}})}}}),p=c(y,h);p.appContext=i||p.appContext,Bl(p,f)};var Um=cc,Ym=3,Gm,tn,n1=1,qm="",Xm="move-up",Qm=!1,Zm=function(){return document.body},Jm,ep=!1;function a1(){return n1++}function r1(n){n.top!==void 0&&(Gm=n.top,tn=null),n.duration!==void 0&&(Ym=n.duration),n.prefixCls!==void 0&&(qm=n.prefixCls),n.getContainer!==void 0&&(Zm=n.getContainer,tn=null),n.transitionName!==void 0&&(Xm=n.transitionName,tn=null,Qm=!0),n.maxCount!==void 0&&(Jm=n.maxCount,tn=null),n.rtl!==void 0&&(ep=n.rtl)}function o1(n,e){if(tn){e(tn);return}Um.newInstance({appContext:n.appContext,prefixCls:n.prefixCls||qm,rootPrefixCls:n.rootPrefixCls,transitionName:Xm,hasTransitionName:Qm,style:{top:Gm},getContainer:Zm||n.getPopupContainer,maxCount:Jm,name:"message"},function(a){if(tn){e(tn);return}tn=a,e(a)})}var l1={info:gm,success:ko,error:fa,warning:Po,loading:Rn};function i1(n){var e=n.duration!==void 0?n.duration:Ym,a=n.key||a1(),t=new Promise(function(o){var l=function(){return typeof n.onClose=="function"&&n.onClose(),o(!0)};o1(n,function(i){i.notice({key:a,duration:e,style:n.style||{},class:n.class,content:function(s){var d,v=s.prefixCls,h=l1[n.type],f=h?c(h,null,null):"",m=te("".concat(v,"-custom-content"),(d={},O(d,"".concat(v,"-").concat(n.type),n.type),O(d,"".concat(v,"-rtl"),ep===!0),d));return c("div",{class:m},[typeof n.icon=="function"?n.icon():n.icon||f,c("span",null,[typeof n.content=="function"?n.content():n.content])])},onClose:l,onClick:n.onClick})})}),r=function(){tn&&tn.removeNotice(a)};return r.then=function(o,l){return t.then(o,l)},r.promise=t,r}function u1(n){return Object.prototype.toString.call(n)==="[object Object]"&&!!n.content}var Ll={open:i1,config:r1,destroy:function(e){if(tn)if(e){var a=tn,t=a.removeNotice;t(e)}else{var r=tn,o=r.destroy;o(),tn=null}}};function c1(n,e){n[e]=function(a,t,r){return u1(a)?n.open(k(k({},a),{type:e})):(typeof t=="function"&&(r=t,t=void 0),n.open({content:a,duration:t,type:e,onClose:r}))}}["success","info","warning","error","loading"].forEach(function(n){return c1(Ll,n)});Ll.warn=Ll.warning;var ws=Ll;globalThis&&globalThis.__awaiter;var Wa={},tp=4.5,np="24px",ap="24px",sc="",rp="topRight",op=function(){return document.body},lp=null,dc=!1,ip;function s1(n){var e=n.duration,a=n.placement,t=n.bottom,r=n.top,o=n.getContainer,l=n.closeIcon,i=n.prefixCls;i!==void 0&&(sc=i),e!==void 0&&(tp=e),a!==void 0&&(rp=a),t!==void 0&&(ap=typeof t=="number"?"".concat(t,"px"):t),r!==void 0&&(np=typeof r=="number"?"".concat(r,"px"):r),o!==void 0&&(op=o),l!==void 0&&(lp=l),n.rtl!==void 0&&(dc=n.rtl),n.maxCount!==void 0&&(ip=n.maxCount)}function d1(n){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:np,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:ap,t;switch(n){case"topLeft":t={left:"0px",top:e,bottom:"auto"};break;case"topRight":t={right:"0px",top:e,bottom:"auto"};break;case"bottomLeft":t={left:"0px",top:"auto",bottom:a};break;default:t={right:"0px",top:"auto",bottom:a};break}return t}function v1(n,e){var a=n.prefixCls,t=n.placement,r=t===void 0?rp:t,o=n.getContainer,l=o===void 0?op:o,i=n.top,u=n.bottom,s=n.closeIcon,d=s===void 0?lp:s,v=n.appContext,h=T1(),f=h.getPrefixCls,m=f("notification",a||sc),y="".concat(m,"-").concat(r,"-").concat(dc),p=Wa[y];if(p){Promise.resolve(p).then(function(b){e(b)});return}var g=te("".concat(m,"-").concat(r),O({},"".concat(m,"-rtl"),dc===!0));Um.newInstance({name:"notification",prefixCls:a||sc,class:g,style:d1(r,i,u),appContext:v,getContainer:l,closeIcon:function(C){var x=C.prefixCls,w=c("span",{class:"".concat(x,"-close-x")},[Qr(d,{},c(Un,{class:"".concat(x,"-close-icon")},null))]);return w},maxCount:ip,hasTransitionName:!0},function(b){Wa[y]=b,e(b)})}var f1={success:ds,info:vs,error:fs,warning:yi};function h1(n){var e=n.icon,a=n.type,t=n.description,r=n.message,o=n.btn,l=n.duration===void 0?tp:n.duration;v1(n,function(i){i.notice({content:function(s){var d=s.prefixCls,v="".concat(d,"-notice"),h=null;if(e)h=function(){return c("span",{class:"".concat(v,"-icon")},[Qr(e)])};else if(a){var f=f1[a];h=function(){return c(f,{class:"".concat(v,"-icon ").concat(v,"-icon-").concat(a)},null)}}return c("div",{class:h?"".concat(v,"-with-icon"):""},[h&&h(),c("div",{class:"".concat(v,"-message")},[!t&&h?c("span",{class:"".concat(v,"-message-single-line-auto-margin")},null):null,Qr(r)]),c("div",{class:"".concat(v,"-description")},[Qr(t)]),o?c("span",{class:"".concat(v,"-btn")},[Qr(o)]):null])},duration:l,closable:!0,onClose:n.onClose,onClick:n.onClick,key:n.key,style:n.style||{},class:n.class})})}var ho={open:h1,close:function(e){Object.keys(Wa).forEach(function(a){return Promise.resolve(Wa[a]).then(function(t){t.removeNotice(e)})})},config:s1,destroy:function(){Object.keys(Wa).forEach(function(e){Promise.resolve(Wa[e]).then(function(a){a.destroy()}),delete Wa[e]})}},m1=["success","info","warning","error"];m1.forEach(function(n){ho[n]=function(e){return ho.open(k(k({},e),{type:n}))}});ho.warn=ho.warning;var ks=ho;function rr(){return!!(typeof window!="undefined"&&window.document&&window.document.createElement)}var p1="vc-util-key";function up(){var n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},e=n.mark;return e?e.startsWith("data-")?e:"data-".concat(e):p1}function Ps(n){if(n.attachTo)return n.attachTo;var e=document.querySelector("head");return e||document.body}function Iv(n){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},a,t;if(!rr())return null;var r=document.createElement("style");((a=e.csp)===null||a===void 0?void 0:a.nonce)&&(r.nonce=(t=e.csp)===null||t===void 0?void 0:t.nonce),r.innerHTML=n;var o=Ps(e),l=o.firstChild;return e.prepend&&o.prepend?o.prepend(r):e.prepend&&l?o.insertBefore(r,l):o.appendChild(r),r}var vc=new Map;function g1(n){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},a=Ps(e);return Array.from(vc.get(a).children).find(function(t){return t.tagName==="STYLE"&&t.getAttribute(up(e))===n})}function y1(n,e){var a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},t,r,o,l=Ps(a);if(!vc.has(l)){var i=Iv("",a),u=i.parentNode;vc.set(l,u),u.removeChild(i)}var s=g1(e,a);if(s)return((t=a.csp)===null||t===void 0?void 0:t.nonce)&&s.nonce!==((r=a.csp)===null||r===void 0?void 0:r.nonce)&&(s.nonce=(o=a.csp)===null||o===void 0?void 0:o.nonce),s.innerHTML!==n&&(s.innerHTML=n),s;var d=Iv(n,a);return d.setAttribute(up(a),e),d}var gt=function(n,e,a){Hm(n,"[ant-design-vue: ".concat(e,"] ").concat(a))},b1="-ant-".concat(Date.now(),"-").concat(Math.random());function C1(n,e){var a={},t=function(d,v){var h=d.clone();return h=(v==null?void 0:v(h))||h,h.toRgbString()},r=function(d,v){var h=new su(d),f=mv(h.toRgbString());a["".concat(v,"-color")]=t(h),a["".concat(v,"-color-disabled")]=f[1],a["".concat(v,"-color-hover")]=f[4],a["".concat(v,"-color-active")]=f[7],a["".concat(v,"-color-outline")]=h.clone().setAlpha(.2).toRgbString(),a["".concat(v,"-color-deprecated-bg")]=f[1],a["".concat(v,"-color-deprecated-border")]=f[3]};if(e.primaryColor){r(e.primaryColor,"primary");var o=new su(e.primaryColor),l=mv(o.toRgbString());l.forEach(function(s,d){a["primary-".concat(d+1)]=s}),a["primary-color-deprecated-l-35"]=t(o,function(s){return s.lighten(35)}),a["primary-color-deprecated-l-20"]=t(o,function(s){return s.lighten(20)}),a["primary-color-deprecated-t-20"]=t(o,function(s){return s.tint(20)}),a["primary-color-deprecated-t-50"]=t(o,function(s){return s.tint(50)}),a["primary-color-deprecated-f-12"]=t(o,function(s){return s.setAlpha(s.getAlpha()*.12)});var i=new su(l[0]);a["primary-color-active-deprecated-f-30"]=t(i,function(s){return s.setAlpha(s.getAlpha()*.3)}),a["primary-color-active-deprecated-d-02"]=t(i,function(s){return s.darken(2)})}e.successColor&&r(e.successColor,"success"),e.warningColor&&r(e.warningColor,"warning"),e.errorColor&&r(e.errorColor,"error"),e.infoColor&&r(e.infoColor,"info");var u=Object.keys(a).map(function(s){return"--".concat(n,"-").concat(s,": ").concat(a[s],";")});rr()?y1(` + :root { + `.concat(u.join(` +`),` + } + `),"".concat(b1,"-dynamic-theme")):gt(!1,"ConfigProvider","SSR do not support dynamic theme with css variables.")}var cp=Symbol("GlobalFormContextKey"),x1=function(e){lt(cp,e)},S1=function(){return ot(cp,{validateMessages:M(function(){})})},w1=function(){return{getTargetContainer:{type:Function},getPopupContainer:{type:Function},prefixCls:String,getPrefixCls:{type:Function},renderEmpty:{type:Function},transformCellText:{type:Function},csp:{type:Object,default:void 0},input:{type:Object},autoInsertSpaceInButton:{type:Boolean,default:void 0},locale:{type:Object,default:void 0},pageHeader:{type:Object},componentSize:{type:String},direction:{type:String},space:{type:Object},virtual:{type:Boolean,default:void 0},dropdownMatchSelectWidth:{type:[Number,Boolean],default:!0},form:{type:Object,default:void 0},notUpdateGlobalConfig:Boolean}},k1="ant";function kr(){return pn.prefixCls||k1}var fc=bt({}),sp=bt({}),pn=bt({});Ze(function(){k(pn,fc,sp),pn.prefixCls=kr(),pn.getPrefixCls=function(n,e){return e||(n?"".concat(pn.prefixCls,"-").concat(n):pn.prefixCls)},pn.getRootPrefixCls=function(n,e){return n||(pn.prefixCls?pn.prefixCls:e&&e.includes("-")?e.replace(/^(.*)-[^-]*$/,"$1"):kr())}});var vu,P1=function(e){vu&&vu(),vu=Ze(function(){k(sp,bt(e))}),e.theme&&C1(kr(),e.theme)},T1=function(){return{getPrefixCls:function(a,t){return t||(a?"".concat(kr(),"-").concat(a):kr())},getRootPrefixCls:function(a,t){return a||(pn.prefixCls?pn.prefixCls:t&&t.includes("-")?t.replace(/^(.*)-[^-]*$/,"$1"):kr())}}},ao=Z({name:"AConfigProvider",inheritAttrs:!1,props:w1(),setup:function(e,a){var t=a.slots,r=function(v,h){var f=e.prefixCls,m=f===void 0?"ant":f;return h||(v?"".concat(m,"-").concat(v):m)},o=function(v){var h=e.renderEmpty||t.renderEmpty||$m;return h(v)},l=function(v,h){var f=e.prefixCls;if(h)return h;var m=f||r("");return v?"".concat(m,"-").concat(v):m},i=bt(k(k({},e),{getPrefixCls:l,renderEmpty:o}));Object.keys(e).forEach(function(d){pe(function(){return e[d]},function(){i[d]=e[d]})}),e.notUpdateGlobalConfig||(k(fc,i),pe(i,function(){k(fc,i)}));var u=M(function(){var d,v,h={};return e.locale&&(h=((d=e.locale.Form)===null||d===void 0?void 0:d.defaultValidateMessages)||((v=Dn.Form)===null||v===void 0?void 0:v.defaultValidateMessages)||{}),e.form&&e.form.validateMessages&&(h=k(k({},h),e.form.validateMessages)),h});x1({validateMessages:u}),lt("configProvider",i);var s=function(v){var h;return c(zm,{locale:e.locale||v,ANT_MARK__:uc},{default:function(){return[(h=t.default)===null||h===void 0?void 0:h.call(t)]}})};return Ze(function(){e.direction&&(ws.config({rtl:e.direction==="rtl"}),ks.config({rtl:e.direction==="rtl"}))}),function(){return c(Br,{children:function(v,h,f){return s(f)}},null)}}}),Ts=bt({getPrefixCls:function(e,a){return a||(e?"ant-".concat(e):"ant")},renderEmpty:$m,direction:"ltr"});ao.config=P1;ao.install=function(n){n.component(ao.name,ao)};var Is=ao,Re=function(n,e){var a=ot("configProvider",Ts),t=M(function(){return a.getPrefixCls(n,e.prefixCls)}),r=M(function(){var b;return(b=e.direction)!==null&&b!==void 0?b:a.direction}),o=M(function(){return a.getPrefixCls()}),l=M(function(){return a.autoInsertSpaceInButton}),i=M(function(){return a.renderEmpty}),u=M(function(){return a.space}),s=M(function(){return a.pageHeader}),d=M(function(){return a.form}),v=M(function(){return e.getTargetContainer||a.getTargetContainer}),h=M(function(){return e.getPopupContainer||a.getPopupContainer}),f=M(function(){var b;return(b=e.dropdownMatchSelectWidth)!==null&&b!==void 0?b:a.dropdownMatchSelectWidth}),m=M(function(){return(e.virtual===void 0?a.virtual!==!1:e.virtual!==!1)&&f.value!==!1}),y=M(function(){return e.size||a.componentSize}),p=M(function(){var b;return e.autocomplete||((b=a.input)===null||b===void 0?void 0:b.autocomplete)}),g=M(function(){return a.csp});return{configProvider:a,prefixCls:t,direction:r,size:y,getTargetContainer:v,getPopupContainer:h,space:u,pageHeader:s,form:d,autoInsertSpaceInButton:l,renderEmpty:i,virtual:m,dropdownMatchSelectWidth:f,rootPrefixCls:o,getPrefixCls:a.getPrefixCls,autocomplete:p,csp:g}};function tt(n,e){for(var a=k({},n),t=0;t1&&arguments[1]!==void 0?arguments[1]:{},a=e.getContainer,t=a===void 0?function(){return window}:a,r=e.callback,o=e.duration,l=o===void 0?450:o,i=t(),u=Os(i,!0),s=Date.now(),d=function v(){var h=Date.now(),f=h-s,m=_1(f>l?l:f,u,n,l);hc(i)?i.scrollTo(window.pageXOffset,m):i instanceof HTMLDocument||i.constructor.name==="HTMLDocument"?i.documentElement.scrollTop=m:i.scrollTop=m,f0&&arguments[0]!==void 0?arguments[0]:0,P=arguments.length>1&&arguments[1]!==void 0?arguments[1]:5,T=[],I=y.value();if(f.links.forEach(function(A){var R=Nv.exec(A.toString());if(!!R){var E=document.getElementById(R[1]);if(E){var L=Ov(E,I);LA.top?R:A});return N.link}return""},g=function(S){var P=e.getCurrentAnchor;m.value!==S&&(m.value=typeof P=="function"?P():S,t("change",S))},b=function(S){var P=e.offsetTop,T=e.targetOffset;g(S);var I=y.value(),N=Os(I,!0),A=Nv.exec(S);if(!!A){var R=document.getElementById(A[1]);if(!!R){var E=Ov(R,I),L=N+E;L-=T!==void 0?T:P||0,f.animating=!0,Ns(L,{callback:function(){f.animating=!1},getContainer:y.value})}}};l({scrollTo:b});var C=function(){if(!f.animating){var S=e.offsetTop,P=e.bounds,T=e.targetOffset,I=p(T!==void 0?T:S||0,P);g(I)}},x=function(){var S=h.value.getElementsByClassName("".concat(u.value,"-link-title-active"))[0];S&&(v.value.style.top="".concat(S.offsetTop+S.clientHeight/2-4.5,"px"))};return F1({registerLink:function(S){f.links.includes(S)||f.links.push(S)},unregisterLink:function(S){var P=f.links.indexOf(S);P!==-1&&f.links.splice(P,1)},activeLink:m,scrollTo:b,handleClick:function(S,P){t("click",S,P)}}),Ye(function(){Je(function(){var w=y.value();f.scrollContainer=w,f.scrollEvent=Pt(f.scrollContainer,"scroll",C),C()})}),ut(function(){f.scrollEvent&&f.scrollEvent.remove()}),dn(function(){if(f.scrollEvent){var w=y.value();f.scrollContainer!==w&&(f.scrollContainer=w,f.scrollEvent.remove(),f.scrollEvent=Pt(f.scrollContainer,"scroll",C),C())}x()}),function(){var w,S=e.offsetTop,P=e.affix,T=e.showInkInFixed,I=u.value,N=te("".concat(I,"-ink-ball"),{visible:m.value}),A=te(e.wrapperClass,"".concat(I,"-wrapper"),O({},"".concat(I,"-rtl"),d.value==="rtl")),R=te(I,O({},"".concat(I,"-fixed"),!P&&!T)),E=k({maxHeight:S?"calc(100vh - ".concat(S,"px)"):"100vh"},e.wrapperStyle),L=c("div",{class:A,style:E,ref:h},[c("div",{class:R},[c("div",{class:"".concat(I,"-ink")},[c("span",{class:N,ref:v},null)]),(w=o.default)===null||w===void 0?void 0:w.call(o)])]);return P?c(dp,H(H({},r),{},{offsetTop:S,target:y.value}),{default:function(){return[L]}}):L}}}),D1=function(){return{prefixCls:String,href:String,title:$.any,target:String}},fp=Z({name:"AAnchorLink",props:it(D1(),{href:"#"}),slots:["title"],setup:function(e,a){var t=a.slots,r=null,o=E1(),l=o.handleClick,i=o.scrollTo,u=o.unregisterLink,s=o.registerLink,d=o.activeLink,v=Re("anchor",e),h=v.prefixCls,f=function(y){var p=e.href;l(y,{title:r,href:p}),i(p)};return pe(function(){return e.href},function(m,y){Je(function(){u(y),s(m)})}),Ye(function(){s(e.href)}),ut(function(){u(e.href)}),function(){var m,y=e.href,p=e.target,g=h.value,b=wt(t,e,"title");r=b;var C=d.value===y,x=te("".concat(g,"-link"),O({},"".concat(g,"-link-active"),C)),w=te("".concat(g,"-link-title"),O({},"".concat(g,"-link-title-active"),C));return c("div",{class:x},[c("a",{class:w,href:y,title:typeof b=="string"?b:"",target:p,onClick:f},[b]),(m=t.default)===null||m===void 0?void 0:m.call(t)])}}});Ua.Link=fp;Ua.install=function(n){return n.component(Ua.name,Ua),n.component(Ua.Link.name,Ua.Link),n};function _v(n,e){var a=n.key,t;return"value"in n&&(t=n.value),a!=null?a:t!==void 0?t:"rc-index-key-".concat(e)}function hp(n,e){var a=n||{},t=a.label,r=a.value,o=a.options;return{label:t||(e?"children":"label"),value:r||"value",options:o||"options"}}function B1(n){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},a=e.fieldNames,t=e.childrenAsData,r=[],o=hp(a,!1),l=o.label,i=o.value,u=o.options;function s(d,v){d.forEach(function(h){var f=h[l];if(v||!(u in h)){var m=h[i];r.push({key:_v(h,r.length),groupOption:v,data:h,label:f,value:m})}else{var y=f;y===void 0&&t&&(y=h.label),r.push({key:_v(h,r.length),group:!0,data:h,label:y}),s(h[u],!0)}})}return s(n,!1),r}function mc(n){var e=k({},n);return"props"in e||Object.defineProperty(e,"props",{get:function(){return e}}),e}function L1(n,e){if(!e||!e.length)return null;var a=!1;function t(o,l){var i=os(l),u=i[0],s=i.slice(1);if(!u)return[o];var d=o.split(u);return a=a||d.length>1,d.reduce(function(v,h){return[].concat(_e(v),_e(t(h,s)))},[]).filter(function(v){return v})}var r=t(n,e);return a?r:null}function Ya(n,e){return n?n.contains(e):!1}var mp=["moz","ms","webkit"];function K1(){var n=0;return function(e){var a=new Date().getTime(),t=Math.max(0,16-(a-n)),r=window.setTimeout(function(){e(a+t)},t);return n=a+t,r}}function V1(){if(typeof window=="undefined")return function(){};if(window.requestAnimationFrame)return window.requestAnimationFrame.bind(window);var n=mp.filter(function(e){return"".concat(e,"RequestAnimationFrame")in window})[0];return n?window["".concat(n,"RequestAnimationFrame")]:K1()}function $1(n){if(typeof window=="undefined")return null;if(window.cancelAnimationFrame)return window.cancelAnimationFrame(n);var e=mp.filter(function(a){return"".concat(a,"CancelAnimationFrame")in window||"".concat(a,"CancelRequestAnimationFrame")in window})[0];return e?(window["".concat(e,"CancelAnimationFrame")]||window["".concat(e,"CancelRequestAnimationFrame")]).call(this,n):clearTimeout(n)}var Mv=V1(),j1=function(e){return $1(e.id)},H1=function(e){var a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,t=Date.now();function r(){Date.now()-t>=a?e.call():o.id=Mv(r)}var o={id:Mv(r)};return o},_s={visible:Boolean,prefixCls:String,zIndex:Number,destroyPopupOnHide:Boolean,forceRender:Boolean,animation:[String,Object],transitionName:String,stretch:{type:String},align:{type:Object},point:{type:Object},getRootDomNode:{type:Function},getClassNameFromAlign:{type:Function},onMouseenter:{type:Function},onMouseleave:{type:Function},onMousedown:{type:Function},onTouchstart:{type:Function}},z1=k(k({},_s),{mobile:{type:Object}}),W1=k(k({},_s),{mask:Boolean,mobile:{type:Object},maskAnimation:String,maskTransitionName:String});function pp(n){var e=n.prefixCls,a=n.animation,t=n.transitionName;return a?{name:"".concat(e,"-").concat(a)}:t?{name:t}:{}}function gp(n){var e=n.prefixCls,a=n.visible,t=n.zIndex,r=n.mask,o=n.maskAnimation,l=n.maskTransitionName;if(!r)return null;var i={};return(l||o)&&(i=pp({prefixCls:e,transitionName:l,animation:o})),c(wo,H({appear:!0},i),{default:function(){return[Xt(c("div",{style:{zIndex:t},class:"".concat(e,"-mask")},null),[[Sb("if"),a]])]}})}gp.displayName="Mask";var U1=Z({name:"MobilePopupInner",inheritAttrs:!1,props:z1,emits:["mouseenter","mouseleave","mousedown","touchstart","align"],setup:function(e,a){var t=a.expose,r=a.slots,o=U();return t({forceAlign:function(){},getElement:function(){return o.value}}),function(){var l,i=e.zIndex,u=e.visible,s=e.prefixCls,d=e.mobile;d=d===void 0?{}:d;var v=d.popupClassName,h=d.popupStyle,f=d.popupMotion,m=f===void 0?{}:f,y=d.popupRender,p=k({zIndex:i},h),g=St((l=r.default)===null||l===void 0?void 0:l.call(r));g.length>1&&(g=c("div",{class:"".concat(s,"-content")},[g])),y&&(g=y(g));var b=te(s,v);return c(wo,H({ref:o},m),{default:function(){return[u?c("div",{class:b,style:p},[g]):null]}})}}}),Y1=globalThis&&globalThis.__awaiter||function(n,e,a,t){function r(o){return o instanceof a?o:new a(function(l){l(o)})}return new(a||(a=Promise))(function(o,l){function i(d){try{s(t.next(d))}catch(v){l(v)}}function u(d){try{s(t.throw(d))}catch(v){l(v)}}function s(d){d.done?o(d.value):r(d.value).then(i,u)}s((t=t.apply(n,e||[])).next())})},Ev=["measure","align",null,"motion"],G1=function(n,e){var a=U(null),t=U(),r=U(!1);function o(u){r.value||(a.value=u)}function l(){Qe.cancel(t.value)}function i(u){l(),t.value=Qe(function(){var s=a.value;switch(a.value){case"align":s="motion";break;case"motion":s="stable";break}o(s),u==null||u()})}return pe(n,function(){o("measure")},{immediate:!0,flush:"post"}),Ye(function(){pe(a,function(){switch(a.value){case"measure":e();break}a.value&&(t.value=Qe(function(){return Y1(void 0,void 0,void 0,sn.mark(function u(){var s,d;return sn.wrap(function(h){for(;;)switch(h.prev=h.next){case 0:s=Ev.indexOf(a.value),d=Ev[s+1],d&&s!==-1&&o(d);case 3:case"end":return h.stop()}},u)}))}))},{immediate:!0,flush:"post"})}),ut(function(){r.value=!0,l()}),[a,i]},q1=function(n){var e=U({width:0,height:0});function a(r){e.value={width:r.offsetWidth,height:r.offsetHeight}}var t=M(function(){var r={};if(n.value){var o=e.value,l=o.width,i=o.height;n.value.indexOf("height")!==-1&&i?r.height="".concat(i,"px"):n.value.indexOf("minHeight")!==-1&&i&&(r.minHeight="".concat(i,"px")),n.value.indexOf("width")!==-1&&l?r.width="".concat(l,"px"):n.value.indexOf("minWidth")!==-1&&l&&(r.minWidth="".concat(l,"px"))}return r});return[t,a]};function ft(n){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,t=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1,r=n;if(Array.isArray(n)&&(r=Ht(n)[0]),!r)return null;var o=da(r,e,t);return o.props=a?k(k({},o.props),e):o.props,Kt(Be(o.props.class)!=="object","class must be string"),o}function X1(n){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;return n.map(function(t){return ft(t,e,a)})}var Ms=function(n){if(!n)return!1;if(n.offsetParent)return!0;if(n.getBBox){var e=n.getBBox();if(e.width||e.height)return!0}if(n.getBoundingClientRect){var a=n.getBoundingClientRect();if(a.width||a.height)return!0}return!1};function Q1(n,e){return n===e?!0:!n||!e?!1:"pageX"in e&&"pageY"in e?n.pageX===e.pageX&&n.pageY===e.pageY:"clientX"in e&&"clientY"in e?n.clientX===e.clientX&&n.clientY===e.clientY:!1}function Z1(n,e){n!==document.activeElement&&Ya(e,n)&&typeof n.focus=="function"&&n.focus()}function Fv(n,e){var a=null,t=null;function r(l){var i=Pe(l,1),u=i[0].target;if(!!document.documentElement.contains(u)){var s=u.getBoundingClientRect(),d=s.width,v=s.height,h=Math.floor(d),f=Math.floor(v);(a!==h||t!==f)&&Promise.resolve().then(function(){e({width:h,height:f})}),a=h,t=f}}var o=new ps(r);return n&&o.observe(n),function(){o.disconnect()}}var J1=function(n,e){var a=!1,t=null;function r(){clearTimeout(t)}function o(l){if(!a||l===!0){if(n()===!1)return;a=!0,r(),t=setTimeout(function(){a=!1},e.value)}else r(),t=setTimeout(function(){a=!1,o()},e.value)}return[o,function(){a=!1,r()}]},ex={align:Object,target:[Object,Function],onAlign:Function,monitorBufferTime:Number,monitorWindowResize:Boolean,disabled:Boolean};function Av(n){return typeof n!="function"?null:n()}function Rv(n){return Be(n)!=="object"||!n?null:n}var tx=Z({name:"Align",props:ex,emits:["align"],setup:function(e,a){var t=a.expose,r=a.slots,o=U({}),l=U(),i=J1(function(){var y=e.disabled,p=e.target,g=e.align,b=e.onAlign;if(!y&&p&&l.value){var C=l.value,x,w=Av(p),S=Rv(p);o.value.element=w,o.value.point=S,o.value.align=g;var P=document,T=P.activeElement;return w&&Ms(w)?x=oC(C,w,g):S&&(x=lC(C,S,g)),Z1(T,C),b&&x&&b(C,x),!0}return!1},M(function(){return e.monitorBufferTime})),u=Pe(i,2),s=u[0],d=u[1],v=U({cancel:function(){}}),h=U({cancel:function(){}}),f=function(){var p=e.target,g=Av(p),b=Rv(p);l.value!==h.value.element&&(h.value.cancel(),h.value.element=l.value,h.value.cancel=Fv(l.value,s)),(o.value.element!==g||!Q1(o.value.point,b)||!xi(o.value.align,e.align))&&(s(),v.value.element!==g&&(v.value.cancel(),v.value.element=g,v.value.cancel=Fv(g,s)))};Ye(function(){Je(function(){f()})}),dn(function(){Je(function(){f()})}),pe(function(){return e.disabled},function(y){y?d():s()},{immediate:!0,flush:"post"});var m=U(null);return pe(function(){return e.monitorWindowResize},function(y){y?m.value||(m.value=Pt(window,"resize",s)):m.value&&(m.value.remove(),m.value=null)},{flush:"post"}),yn(function(){v.value.cancel(),h.value.cancel(),m.value&&m.value.remove(),d()}),t({forceAlign:function(){return s(!0)}}),function(){var y=r==null?void 0:r.default();return y?ft(y[0],{ref:l},!0,!0):null}}}),nx=Z({name:"PopupInner",inheritAttrs:!1,props:_s,emits:["mouseenter","mouseleave","mousedown","touchstart","align"],setup:function(e,a){var t=a.expose,r=a.attrs,o=a.slots,l=U(),i=U(),u=U(),s=q1(ze(e,"stretch")),d=Pe(s,2),v=d[0],h=d[1],f=function(){e.stretch&&h(e.getRootDomNode())},m=U(!1),y;pe(function(){return e.visible},function(A){clearTimeout(y),A?y=setTimeout(function(){m.value=e.visible}):m.value=!1},{immediate:!0});var p=G1(m,f),g=Pe(p,2),b=g[0],C=g[1],x=U(),w=function(){return e.point?e.point:e.getRootDomNode},S=function(){var R;(R=l.value)===null||R===void 0||R.forceAlign()},P=function(R,E){var L,B=e.getClassNameFromAlign(E),D=u.value;u.value!==B&&(u.value=B),b.value==="align"&&(D!==B?Promise.resolve().then(function(){S()}):C(function(){var F;(F=x.value)===null||F===void 0||F.call(x)}),(L=e.onAlign)===null||L===void 0||L.call(e,R,E))},T=M(function(){var A=Be(e.animation)==="object"?e.animation:pp(e);return["onAfterEnter","onAfterLeave"].forEach(function(R){var E=A[R];A[R]=function(L){C(),b.value="stable",E==null||E(L)}}),A}),I=function(){return new Promise(function(R){x.value=R})};pe([T,b],function(){!T.value&&b.value==="motion"&&C()},{immediate:!0}),t({forceAlign:S,getElement:function(){return i.value.$el||i.value}});var N=M(function(){var A;return!(((A=e.align)===null||A===void 0?void 0:A.points)&&(b.value==="align"||b.value==="stable"))});return function(){var A,R=e.zIndex,E=e.align,L=e.prefixCls,B=e.destroyPopupOnHide,D=e.onMouseenter,F=e.onMouseleave,_=e.onTouchstart,K=_===void 0?function(){}:_,z=e.onMousedown,j=b.value,G=[k(k({},v.value),{zIndex:R,opacity:j==="motion"||j==="stable"||!m.value?null:0,pointerEvents:j==="stable"?null:"none"}),r.style],Y=St((A=o.default)===null||A===void 0?void 0:A.call(o,{visible:e.visible}));Y.length>1&&(Y=c("div",{class:"".concat(L,"-content")},[Y]));var V=te(L,r.class,u.value),W=m.value||!e.visible,q=W?Ma(T.value.name,T.value):{};return c(wo,H(H({ref:i},q),{},{onBeforeEnter:I}),{default:function(){return!B||e.visible?Xt(c(tx,{target:w(),key:"popup",ref:l,monitorWindowResize:!0,disabled:N.value,align:E,onAlign:P},{default:function(){return c("div",H(H({class:V,onMouseenter:D,onMouseleave:F,onMousedown:hv(z,["capture"])},O({},jt?"onTouchstartPassive":"onTouchstart",hv(K,["capture"]))),{},{style:G}),[Y])}}),[[Ln,m.value]]):null}})}}}),ax=Z({name:"Popup",inheritAttrs:!1,props:W1,setup:function(e,a){var t=a.attrs,r=a.slots,o=a.expose,l=U(!1),i=U(!1),u=U();return pe([function(){return e.visible},function(){return e.mobile}],function(){l.value=e.visible,e.visible&&e.mobile&&(i.value=!0)},{immediate:!0,flush:"post"}),o({forceAlign:function(){var d;(d=u.value)===null||d===void 0||d.forceAlign()},getElement:function(){var d;return(d=u.value)===null||d===void 0?void 0:d.getElement()}}),function(){var s=k(k(k({},e),t),{visible:l.value}),d=i.value?c(U1,H(H({},s),{},{mobile:e.mobile,ref:u}),{default:r.default}):c(nx,H(H({},s),{},{ref:u}),{default:r.default});return c("div",null,[c(gp,s,null),d])}}});function rx(n,e,a){return a?n[0]===e[0]:n[0]===e[0]&&n[1]===e[1]}function Dv(n,e,a){var t=n[e]||{};return k(k({},t),a)}function ox(n,e,a,t){for(var r=a.points,o=Object.keys(n),l=0;l0&&arguments[0]!==void 0?arguments[0]:{},a=arguments.length>1?arguments[1]:void 0,t=typeof e=="function"?e(this.$data,this.$props):e;if(this.getDerivedStateFromProps){var r=this.getDerivedStateFromProps(Tm(this),k(k({},this.$data),t));if(r===null)return;t=k(k({},t),r||{})}k(this.$data,t),this._.isMounted&&this.$forceUpdate(),Je(function(){a&&a()})},__emit:function(){var e=[].slice.call(arguments,0),a=e[0];a="on".concat(a[0].toUpperCase()).concat(a.substring(1));var t=this.$props[a]||this.$attrs[a];if(e.length&&t)if(Array.isArray(t))for(var r=0,o=t.length;r1&&arguments[1]!==void 0?arguments[1]:{inTriggerContext:!0};lt(Cp,{inTriggerContext:a.inTriggerContext,shouldRender:M(function(){var t=e||{},r=t.sPopupVisible,o=t.popupRef,l=t.forceRender,i=t.autoDestroy,u=!1;return(r||o||l)&&(u=!0),!r&&i&&(u=!1),u})})},ix=function(){Es({},{inTriggerContext:!1});var e=ot(Cp,{shouldRender:M(function(){return!1}),inTriggerContext:!1});return{shouldRender:M(function(){return e.shouldRender.value||e.inTriggerContext===!1})}},pc=Z({name:"Portal",inheritAttrs:!1,props:{getContainer:$.func.isRequired,didUpdate:Function},setup:function(e,a){var t=a.slots,r=!0,o,l=ix(),i=l.shouldRender;us(function(){r=!1,i.value&&(o=e.getContainer())});var u=pe(i,function(){i.value&&!o&&(o=e.getContainer()),o&&u()});return dn(function(){Je(function(){var s;i.value&&((s=e.didUpdate)===null||s===void 0||s.call(e,e))})}),ut(function(){o&&o.parentNode&&o.parentNode.removeChild(o)}),function(){var s;return i.value?r?(s=t.default)===null||s===void 0?void 0:s.call(t):o?c(is,{to:o},t):null:null}}});function Bv(){}function ux(){return""}function cx(n){return n?n.ownerDocument:window.document}var sx=["onClick","onMousedown","onTouchstart","onMouseenter","onMouseleave","onFocus","onBlur","onContextmenu"],Kr=Z({name:"Trigger",mixins:[or],inheritAttrs:!1,props:{action:$.oneOfType([$.string,$.arrayOf($.string)]).def([]),showAction:$.any.def([]),hideAction:$.any.def([]),getPopupClassNameFromAlign:$.any.def(ux),onPopupVisibleChange:Function,afterPopupVisibleChange:$.func.def(Bv),popup:$.any,popupStyle:{type:Object,default:void 0},prefixCls:$.string.def("rc-trigger-popup"),popupClassName:$.string.def(""),popupPlacement:String,builtinPlacements:$.object,popupTransitionName:String,popupAnimation:$.any,mouseEnterDelay:$.number.def(0),mouseLeaveDelay:$.number.def(.1),zIndex:Number,focusDelay:$.number.def(0),blurDelay:$.number.def(.15),getPopupContainer:Function,getDocument:$.func.def(cx),forceRender:{type:Boolean,default:void 0},destroyPopupOnHide:{type:Boolean,default:!1},mask:{type:Boolean,default:!1},maskClosable:{type:Boolean,default:!0},popupAlign:$.object.def(function(){return{}}),popupVisible:{type:Boolean,default:void 0},defaultPopupVisible:{type:Boolean,default:!1},maskTransitionName:String,maskAnimation:String,stretch:String,alignPoint:{type:Boolean,default:void 0},autoDestroy:{type:Boolean,default:!1},mobile:Object,getTriggerDOMNode:Function},setup:function(e){var a=M(function(){var u=e.popupPlacement,s=e.popupAlign,d=e.builtinPlacements;return u&&d?Dv(d,u,s):s}),t=lx(),r=t.setPortal,o=t.popPortal,l=U(null),i=function(s){l.value=s};return{popPortal:o,setPortal:r,vcTriggerContext:ot("vcTriggerContext",{}),popupRef:l,setPopupRef:i,triggerRef:U(null),align:a,focusTime:null,clickOutsideHandler:null,contextmenuOutsideHandler1:null,contextmenuOutsideHandler2:null,touchOutsideHandler:null,attachId:null,delayTimer:null,hasPopupMouseDown:!1,preClickTime:null,preTouchTime:null,mouseDownTimeout:null,childOriginEvents:{}}},data:function(){var e=this,a,t,r=this.$props,o;return this.popupVisible!==void 0?o=!!r.popupVisible:o=!!r.defaultPopupVisible,sx.forEach(function(l){e["fire".concat(l)]=function(i){e.fireEvents(l,i)}}),(t=(a=this).setPortal)===null||t===void 0||t.call(a,c(pc,{key:"portal",getContainer:this.getContainer,didUpdate:this.handlePortalUpdate},{default:this.getComponent})),{prevPopupVisible:o,sPopupVisible:o,point:null}},watch:{popupVisible:function(e){e!==void 0&&(this.prevPopupVisible=this.sPopupVisible,this.sPopupVisible=e)}},created:function(){lt("vcTriggerContext",{onPopupMouseDown:this.onPopupMouseDown}),Es(this)},deactivated:function(){this.setPopupVisible(!1)},mounted:function(){var e=this;this.$nextTick(function(){e.updatedCal()})},updated:function(){var e=this;this.$nextTick(function(){e.updatedCal()})},beforeUnmount:function(){this.clearDelayTimer(),this.clearOutsideHandler(),clearTimeout(this.mouseDownTimeout),Qe.cancel(this.attachId)},methods:{updatedCal:function(){var e=this.$props,a=this.$data;if(a.sPopupVisible){var t;!this.clickOutsideHandler&&(this.isClickToHide()||this.isContextmenuToShow())&&(t=e.getDocument(this.getRootDomNode()),this.clickOutsideHandler=Pt(t,"mousedown",this.onDocumentClick)),this.touchOutsideHandler||(t=t||e.getDocument(this.getRootDomNode()),this.touchOutsideHandler=Pt(t,"touchstart",this.onDocumentClick,jt?{passive:!1}:!1)),!this.contextmenuOutsideHandler1&&this.isContextmenuToShow()&&(t=t||e.getDocument(this.getRootDomNode()),this.contextmenuOutsideHandler1=Pt(t,"scroll",this.onContextmenuClose)),!this.contextmenuOutsideHandler2&&this.isContextmenuToShow()&&(this.contextmenuOutsideHandler2=Pt(window,"blur",this.onContextmenuClose))}else this.clearOutsideHandler()},onMouseenter:function(e){var a=this.$props.mouseEnterDelay;this.fireEvents("onMouseenter",e),this.delaySetPopupVisible(!0,a,a?null:e)},onMouseMove:function(e){this.fireEvents("onMousemove",e),this.setPoint(e)},onMouseleave:function(e){this.fireEvents("onMouseleave",e),this.delaySetPopupVisible(!1,this.$props.mouseLeaveDelay)},onPopupMouseenter:function(){this.clearDelayTimer()},onPopupMouseleave:function(e){var a;e&&e.relatedTarget&&!e.relatedTarget.setTimeout&&Ya((a=this.popupRef)===null||a===void 0?void 0:a.getElement(),e.relatedTarget)||this.delaySetPopupVisible(!1,this.$props.mouseLeaveDelay)},onFocus:function(e){this.fireEvents("onFocus",e),this.clearDelayTimer(),this.isFocusToShow()&&(this.focusTime=Date.now(),this.delaySetPopupVisible(!0,this.$props.focusDelay))},onMousedown:function(e){this.fireEvents("onMousedown",e),this.preClickTime=Date.now()},onTouchstart:function(e){this.fireEvents("onTouchstart",e),this.preTouchTime=Date.now()},onBlur:function(e){Ya(e.target,e.relatedTarget||document.activeElement)||(this.fireEvents("onBlur",e),this.clearDelayTimer(),this.isBlurToHide()&&this.delaySetPopupVisible(!1,this.$props.blurDelay))},onContextmenu:function(e){e.preventDefault(),this.fireEvents("onContextmenu",e),this.setPopupVisible(!0,e)},onContextmenuClose:function(){this.isContextmenuToShow()&&this.close()},onClick:function(e){if(this.fireEvents("onClick",e),this.focusTime){var a;if(this.preClickTime&&this.preTouchTime?a=Math.min(this.preClickTime,this.preTouchTime):this.preClickTime?a=this.preClickTime:this.preTouchTime&&(a=this.preTouchTime),Math.abs(a-this.focusTime)<20)return;this.focusTime=0}this.preClickTime=0,this.preTouchTime=0,this.isClickToShow()&&(this.isClickToHide()||this.isBlurToHide())&&e&&e.preventDefault&&e.preventDefault(),e&&e.domEvent&&e.domEvent.preventDefault();var t=!this.$data.sPopupVisible;(this.isClickToHide()&&!t||t&&this.isClickToShow())&&this.setPopupVisible(!this.$data.sPopupVisible,e)},onPopupMouseDown:function(){var e=this,a=this.vcTriggerContext,t=a===void 0?{}:a;this.hasPopupMouseDown=!0,clearTimeout(this.mouseDownTimeout),this.mouseDownTimeout=setTimeout(function(){e.hasPopupMouseDown=!1},0),t.onPopupMouseDown&&t.onPopupMouseDown.apply(t,arguments)},onDocumentClick:function(e){if(!(this.$props.mask&&!this.$props.maskClosable)){var a=e.target,t=this.getRootDomNode(),r=this.getPopupDomNode();(!Ya(t,a)||this.isContextMenuOnly())&&!Ya(r,a)&&!this.hasPopupMouseDown&&this.delaySetPopupVisible(!1,.1)}},getPopupDomNode:function(){var e;return((e=this.popupRef)===null||e===void 0?void 0:e.getElement())||null},getRootDomNode:function(){var e=this.$props.getTriggerDOMNode;if(e){var a=ka(this.triggerRef);return ka(e(a))}try{var t=ka(this.triggerRef);if(t)return t}catch{}return ka(this)},handleGetPopupClassFromAlign:function(e){var a=[],t=this.$props,r=t.popupPlacement,o=t.builtinPlacements,l=t.prefixCls,i=t.alignPoint,u=t.getPopupClassNameFromAlign;return r&&o&&a.push(ox(o,l,e,i)),u&&a.push(u(e)),a.join(" ")},getPopupAlign:function(){var e=this.$props,a=e.popupPlacement,t=e.popupAlign,r=e.builtinPlacements;return a&&r?Dv(r,a,t):t},getComponent:function(){var e=this,a={};this.isMouseEnterToShow()&&(a.onMouseenter=this.onPopupMouseenter),this.isMouseLeaveToHide()&&(a.onMouseleave=this.onPopupMouseleave),a.onMousedown=this.onPopupMouseDown,a[jt?"onTouchstartPassive":"onTouchstart"]=this.onPopupMouseDown;var t=this.handleGetPopupClassFromAlign,r=this.getRootDomNode,o=this.getContainer,l=this.$attrs,i=this.$props,u=i.prefixCls,s=i.destroyPopupOnHide,d=i.popupClassName,v=i.popupAnimation,h=i.popupTransitionName,f=i.popupStyle,m=i.mask,y=i.maskAnimation,p=i.maskTransitionName,g=i.zIndex,b=i.stretch,C=i.alignPoint,x=i.mobile,w=i.forceRender,S=this.$data,P=S.sPopupVisible,T=S.point,I=k(k({prefixCls:u,destroyPopupOnHide:s,visible:P,point:C?T:null,align:this.align,animation:v,getClassNameFromAlign:t,stretch:b,getRootDomNode:r,mask:m,zIndex:g,transitionName:h,maskAnimation:y,maskTransitionName:p,getContainer:o,class:d,style:f,onAlign:l.onPopupAlign||Bv},a),{ref:this.setPopupRef,mobile:x,forceRender:w});return c(ax,I,{default:this.$slots.popup||function(){return Cs(e,"popup")}})},attachParent:function(e){var a=this;Qe.cancel(this.attachId);var t=this.$props,r=t.getPopupContainer,o=t.getDocument,l=this.getRootDomNode(),i;r?(l||r.length===0)&&(i=r(l)):i=o(this.getRootDomNode()).body,i?i.appendChild(e):this.attachId=Qe(function(){a.attachParent(e)})},getContainer:function(){var e=this.$props,a=e.getDocument,t=a(this.getRootDomNode()).createElement("div");return t.style.position="absolute",t.style.top="0",t.style.left="0",t.style.width="100%",this.attachParent(t),t},setPopupVisible:function(e,a){var t=this.alignPoint,r=this.sPopupVisible,o=this.onPopupVisibleChange;this.clearDelayTimer(),r!==e&&(oa(this,"popupVisible")||this.setState({sPopupVisible:e,prevPopupVisible:r}),o&&o(e)),t&&a&&e&&this.setPoint(a)},setPoint:function(e){var a=this.$props.alignPoint;!a||!e||this.setState({point:{pageX:e.pageX,pageY:e.pageY}})},handlePortalUpdate:function(){this.prevPopupVisible!==this.sPopupVisible&&this.afterPopupVisibleChange(this.sPopupVisible)},delaySetPopupVisible:function(e,a,t){var r=this,o=a*1e3;if(this.clearDelayTimer(),o){var l=t?{pageX:t.pageX,pageY:t.pageY}:null;this.delayTimer=H1(function(){r.setPopupVisible(e,l),r.clearDelayTimer()},o)}else this.setPopupVisible(e,t)},clearDelayTimer:function(){this.delayTimer&&(j1(this.delayTimer),this.delayTimer=null)},clearOutsideHandler:function(){this.clickOutsideHandler&&(this.clickOutsideHandler.remove(),this.clickOutsideHandler=null),this.contextmenuOutsideHandler1&&(this.contextmenuOutsideHandler1.remove(),this.contextmenuOutsideHandler1=null),this.contextmenuOutsideHandler2&&(this.contextmenuOutsideHandler2.remove(),this.contextmenuOutsideHandler2=null),this.touchOutsideHandler&&(this.touchOutsideHandler.remove(),this.touchOutsideHandler=null)},createTwoChains:function(e){var a=function(){},t=gv(this);return this.childOriginEvents[e]&&t[e]?this["fire".concat(e)]:(a=this.childOriginEvents[e]||t[e]||a,a)},isClickToShow:function(){var e=this.$props,a=e.action,t=e.showAction;return a.indexOf("click")!==-1||t.indexOf("click")!==-1},isContextMenuOnly:function(){var e=this.$props.action;return e==="contextmenu"||e.length===1&&e[0]==="contextmenu"},isContextmenuToShow:function(){var e=this.$props,a=e.action,t=e.showAction;return a.indexOf("contextmenu")!==-1||t.indexOf("contextmenu")!==-1},isClickToHide:function(){var e=this.$props,a=e.action,t=e.hideAction;return a.indexOf("click")!==-1||t.indexOf("click")!==-1},isMouseEnterToShow:function(){var e=this.$props,a=e.action,t=e.showAction;return a.indexOf("hover")!==-1||t.indexOf("mouseenter")!==-1},isMouseLeaveToHide:function(){var e=this.$props,a=e.action,t=e.hideAction;return a.indexOf("hover")!==-1||t.indexOf("mouseleave")!==-1},isFocusToShow:function(){var e=this.$props,a=e.action,t=e.showAction;return a.indexOf("focus")!==-1||t.indexOf("focus")!==-1},isBlurToHide:function(){var e=this.$props,a=e.action,t=e.hideAction;return a.indexOf("focus")!==-1||t.indexOf("blur")!==-1},forcePopupAlign:function(){var e;this.$data.sPopupVisible&&((e=this.popupRef)===null||e===void 0||e.forceAlign())},fireEvents:function(e,a){this.childOriginEvents[e]&&this.childOriginEvents[e](a);var t=this.$props[e]||this.$attrs[e];t&&t(a)},close:function(){this.setPopupVisible(!1)}},render:function(){var e=this,a=this.$attrs,t=Ht(Io(this)),r=this.$props.alignPoint,o=t[0];this.childOriginEvents=gv(o);var l={key:"trigger"};this.isContextmenuToShow()?l.onContextmenu=this.onContextmenu:l.onContextmenu=this.createTwoChains("onContextmenu"),this.isClickToHide()||this.isClickToShow()?(l.onClick=this.onClick,l.onMousedown=this.onMousedown,l[jt?"onTouchstartPassive":"onTouchstart"]=this.onTouchstart):(l.onClick=this.createTwoChains("onClick"),l.onMousedown=this.createTwoChains("onMousedown"),l[jt?"onTouchstartPassive":"onTouchstart"]=this.createTwoChains("onTouchstart")),this.isMouseEnterToShow()?(l.onMouseenter=this.onMouseenter,r&&(l.onMousemove=this.onMouseMove)):l.onMouseenter=this.createTwoChains("onMouseenter"),this.isMouseLeaveToHide()?l.onMouseleave=this.onMouseleave:l.onMouseleave=this.createTwoChains("onMouseleave"),this.isFocusToShow()||this.isBlurToHide()?(l.onFocus=this.onFocus,l.onBlur=this.onBlur):(l.onFocus=this.createTwoChains("onFocus"),l.onBlur=function(d){d&&(!d.relatedTarget||!Ya(d.target,d.relatedTarget))&&e.createTwoChains("onBlur")(d)});var i=te(o&&o.props&&o.props.class,a.class);i&&(l.class=i);var u=ft(o,k(k({},l),{ref:"triggerRef"}),!0,!0);if(this.popPortal)return u;var s=c(pc,{key:"portal",getContainer:this.getContainer,didUpdate:this.handlePortalUpdate},{default:this.getComponent});return c(ht,null,[s,u])}}),dx=globalThis&&globalThis.__rest||function(n,e){var a={};for(var t in n)Object.prototype.hasOwnProperty.call(n,t)&&e.indexOf(t)<0&&(a[t]=n[t]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,t=Object.getOwnPropertySymbols(n);r=st.F1&&a<=st.F12)return!1;switch(a){case st.ALT:case st.CAPS_LOCK:case st.CONTEXT_MENU:case st.CTRL:case st.DOWN:case st.END:case st.ESC:case st.HOME:case st.INSERT:case st.LEFT:case st.MAC_FF_META:case st.META:case st.NUMLOCK:case st.NUM_CENTER:case st.PAGE_DOWN:case st.PAGE_UP:case st.PAUSE:case st.PRINT_SCREEN:case st.RIGHT:case st.SHIFT:case st.UP:case st.WIN_KEY:case st.WIN_KEY_RIGHT:return!1;default:return!0}},isCharacterKey:function(e){if(e>=st.ZERO&&e<=st.NINE||e>=st.NUM_ZERO&&e<=st.NUM_MULTIPLY||e>=st.A&&e<=st.Z||window.navigator.userAgent.indexOf("WebKit")!==-1&&e===0)return!0;switch(e){case st.SPACE:case st.QUESTION_MARK:case st.NUM_PLUS:case st.NUM_MINUS:case st.NUM_PERIOD:case st.NUM_DIVISION:case st.SEMICOLON:case st.DASH:case st.EQUALS:case st.COMMA:case st.PERIOD:case st.SLASH:case st.APOSTROPHE:case st.SINGLE_QUOTE:case st.OPEN_SQUARE_BRACKET:case st.BACKSLASH:case st.CLOSE_SQUARE_BRACKET:return!0;default:return!1}}},ke=st,wi=function(e,a){var t=a.slots,r,o=e.class,l=e.customizeIcon,i=e.customizeIconProps,u=e.onMousedown,s=e.onClick,d;return typeof l=="function"?d=l(i):d=l,c("span",{class:o,onMousedown:function(h){h.preventDefault(),u&&u(h)},style:{userSelect:"none",WebkitUserSelect:"none"},unselectable:"on",onClick:s,"aria-hidden":!0},[d!==void 0?d:c("span",{class:o.split(/\s+/).map(function(v){return"".concat(v,"-icon")})},[(r=t.default)===null||r===void 0?void 0:r.call(t)])])};wi.inheritAttrs=!1;wi.displayName="TransBtn";wi.props={class:String,customizeIcon:$.any,customizeIconProps:$.any,onMousedown:Function,onClick:Function};var Kl=wi;function mx(n){n.target.composing=!0}function Lv(n){!n.target.composing||(n.target.composing=!1,px(n.target,"input"))}function px(n,e){var a=document.createEvent("HTMLEvents");a.initEvent(e,!0,!0),n.dispatchEvent(a)}function fu(n,e,a,t){n.addEventListener(e,a,t)}var gx={created:function(e,a){(!a.modifiers||!a.modifiers.lazy)&&(fu(e,"compositionstart",mx),fu(e,"compositionend",Lv),fu(e,"change",Lv))}},Vr=gx,yx={inputRef:$.any,prefixCls:String,id:String,inputElement:$.VueNode,disabled:{type:Boolean,default:void 0},autofocus:{type:Boolean,default:void 0},autocomplete:String,editable:{type:Boolean,default:void 0},activeDescendantId:String,value:String,open:{type:Boolean,default:void 0},tabindex:$.oneOfType([$.number,$.string]),attrs:$.object,onKeydown:{type:Function},onMousedown:{type:Function},onChange:{type:Function},onPaste:{type:Function},onCompositionstart:{type:Function},onCompositionend:{type:Function},onFocus:{type:Function},onBlur:{type:Function}},bx=Z({name:"Input",inheritAttrs:!1,props:yx,setup:function(e){var a=null,t=ot("VCSelectContainerEvent");return function(){var r,o=e.prefixCls,l=e.id,i=e.inputElement,u=e.disabled,s=e.tabindex,d=e.autofocus,v=e.autocomplete,h=e.editable,f=e.activeDescendantId,m=e.value,y=e.onKeydown,p=e.onMousedown,g=e.onChange,b=e.onPaste,C=e.onCompositionstart,x=e.onCompositionend,w=e.onFocus,S=e.onBlur,P=e.open,T=e.inputRef,I=e.attrs,N=i||Xt(c("input",null,null),[[Vr]]),A=N.props||{},R=A.onKeydown,E=A.onInput,L=A.onFocus,B=A.onBlur,D=A.onMousedown,F=A.onCompositionstart,_=A.onCompositionend,K=A.style;return N=ft(N,k(k(k(k(k({type:"search"},A),{id:l,ref:T,disabled:u,tabindex:s,autocomplete:v||"off",autofocus:d,class:te("".concat(o,"-selection-search-input"),(r=N==null?void 0:N.props)===null||r===void 0?void 0:r.class),role:"combobox","aria-expanded":P,"aria-haspopup":"listbox","aria-owns":"".concat(l,"_list"),"aria-autocomplete":"list","aria-controls":"".concat(l,"_list"),"aria-activedescendant":f}),I),{value:h?m:"",readonly:!h,unselectable:h?null:"on",style:k(k({},K),{opacity:h?null:0}),onKeydown:function(j){y(j),R&&R(j)},onMousedown:function(j){p(j),D&&D(j)},onInput:function(j){g(j),E&&E(j)},onCompositionstart:function(j){C(j),F&&F(j)},onCompositionend:function(j){x(j),_&&_(j)},onPaste:b,onFocus:function(){clearTimeout(a),L&&L(arguments.length<=0?void 0:arguments[0]),w&&w(arguments.length<=0?void 0:arguments[0]),t==null||t.focus(arguments.length<=0?void 0:arguments[0])},onBlur:function(){for(var j=arguments.length,G=new Array(j),Y=0;Yb{1Un3e%Cgw2 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 Qp8T2TST4Tv3;!Pj1NhvUfdBvi literal 0 HcmV?d00001 diff --git a/public/exadmin/assets/fa-brands-400.e523f49c.ttf b/public/exadmin/assets/fa-brands-400.e523f49c.ttf new file mode 100644 index 0000000000000000000000000000000000000000..430a02edc6d675c9111f345b5e617c7352b5d85a GIT binary patch literal 181852 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℘k@kUInlLOc0)M4!segxaAwmq^mZ?92- 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

    %2NHKpN>D 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

    V+nX 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

    W)6a&Ua1EGQKfY)QwwV{%lF=d31ScAH&d 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

    3#sN8Pr!Qz=q~QxSnL9Tl)GOSlu|0b{v2Uk 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 literal 0 HcmV?d00001 diff --git a/public/exadmin/assets/fa-v4compatibility.0db31bef.woff2 b/public/exadmin/assets/fa-v4compatibility.0db31bef.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..db5b0b9973f96a5fd25da1766fe1fc41e8d1da71 GIT binary patch literal 4960 zcmV-m6QAsNPew8T0RR91025#U3IG5A043-E023Gk0RsR400000000000000000000 z00001I07UDAO>Iqfg}KeEXuq{%Txu400$t2^AZtNwI2eYk+N|9e*gDQKkpq|8jUQ? zNVYYTJii#ET1p<7A}O$MqeXi;`^t-1!luM7B`I^t@P{e@eD$RGMRo~n|Nmd7{XP=t z>Rw3~2q3u;3$Rft3>HWU(^530ds;Vfh#>{B42fr6DdlrId8Jj>dcUuKmB#$NUh)5} znVy9&sOy$wg#)scwKew7?7r6th)r=)KH^OdHy1qEBTTMHg^+;; zWOBh|IJtB3tjT!t;>pVXJ>lb^of7G$i-*G z+r)v`7ta(=7f%z96+7Z)af8?r8{)JG1>=9=zu@2J-{oK7pW~n9pWz?mFXN}UW&h0n zsr}KhFP6|{p#jWu9AgeuSb*cugoglN%cr{MR+SvI`e_oot5FzGH%e(V5X5beAjO?o z&KYBjV|ERwdEIs6>pp#5c-?j3b)UWtbH?~A+c(TPV^5p?ZEx?&y}gY+wDvak_C|`I zf3g4kH8>5R!l?I4CP|Z2DyejOx@3VL_0lBmC21Iikxq3gl~nJqEl2e_AxU!XT#^t{ zZ$wee97{!4%kV+=WbTCYlbPxv~aQ~|v4CB=;Oq5jKAP&MP+`?qgZ=j?)4ZJ~|q)7v% zN5I&oOw(-KSr$|`N7O3Op{Y|5-Hf)TF}iIS+ZMO+=15T892#bcj!d13Q|eVZ7N($co4>}u5-%dfk$9n zrW(WmDL9%z|0+r0=EDFbbP@dgz%z6kICG#!s%sCQQ(WC!vLlVs*axSf%*SU5oP^Ik$Ex-L<&DJYL=SXvZdi$faw7 zYUbUvWEwo-{2UR$L#ROqE`mqGeE^ld>PgR)s?}H0t5Q8^g;5x}t7$S&ebtjoSY4|$ zJd5e}RoY8hDf&t-VOmzyo~P>y;Wn?BB1mTQQIjPcpW1tz(a z%ExWaSk4%)nVfOPcB0C|V9b~?o*c8o8S7kmbWp;2LUcNe5H18zgMOOCt5J9o{V0sx z)il|}WG6b+sVkLK?HT%>1E1-8`VCN%_I6Xv6scZJ+k^C2Y9^ z!0)G(q)8gDMqyB43{rIh&<4$p$i{MD8En?dWn_%sz3!Zx_!eWPZJXa*IRT}Wh(;DH zmus^l-tFTKXACo}RGgJ>nzn5+_N^0~u1X{~5dA}HHWOBx20p}_+{C_;o?E5*Nlbo} zNt&c?7=;l&n!ptpj*9e$`>2tidP)8LIatbkTtd+&00cG9aRqZ&0BEN{yvjUOJ~uv& zfj965F)IFOt5jb`=^am7O}zHn+YfI%ugV2pQz$f>XD_|+=t#@KV<~qG9tn2>v~}A1 z6&*%lBumkCf23+F*+8j0sig9%N~XycCR>=K43tFT4EUFi4U}op!Eg(c4*G#kb=qrF zq40rZ1Cuz6dIZq-H`Yg^^$p+0cuQfn!R*ELB}5^RF>BEvbiq)_i@bWu5k4iF&`ooJ z8`R*!5!@_j+Axkie8w?L(~6GnE)iVJ8%Le~)n%@tE?ZhIQ`3zssuzsKQjHh+aihwM z9BH*k9ahkav{^$X ztuP9sI7ySVMFVdTE2(-?dD+|6yjI-8A5^)GX!Gi9C$@}u=#0nCr;FJHVGcM}WrZLz z?X1~6%mD@4!~9qH1w4dH0otBU#f&JTN>cqKLMs~d8<<8^hY;jWzHYB7P^FP9&{AeiHoE~@tE1GVb_2Ez~ioJc06_G6s3;Db+5i4bI{HrBm@VHCV|O83p;Eo;ZLHN(Kqv}@9XtB`RX@M=ZOo)=jQeCFwU z7VcTtXcjfKlymUb45I^N;{`-A977dOKp!^X0vN${0AorAQq2cpk`Cf9YR}V1H`FDl zQB!XaDbTF~PmA*p+(0U+V#+Oaq>?I0)$8E?hZUzxie*B|-3nr*C=iRsL9^`B3iH{R zWT`a6Jh+Vv%jMcpx6wpwHoE8Co>UMk7h|PNNV$UDqVozYmuquq58jGdGaqY zGN(b>Z8XiEk~;6(5T{@WkB0l;nH-S%v?mT&am@!VT{ap-h_sOG7L#-nSQ87S+r}Q%d8K5|*zC{-a`H;A zL@TdCELRL7Nw=Wn4lvLAyOpwd!U_zsF)Rf`-Vtrdq+D9~a^O_MZk(Z!*O znNrJHjWzR`vdf~`3^qr~>4T3Lvu)GNFB7!LvH(<4upvoqzb;J(Cjqdfynu|?EBH|_ zjCD~^V0F`$+j4O{^I*bp^ILLAe!<}^#|&qt>}*^syNG4ChT~Z)X%g)@cQBjf00nU7 zIqt#~8T9BNd&Ldh0d|!jP8%|x8FsrzNAO_St?dcEWPyO1e~~O>4)qsNRxGciC?L8R z@eroT7D-asK-zC$@}1a07oYYMpBx|j+HgXG00HJX=9ohV zpfZq3Do>|u3#2X>&1l{7RF`Qqj6y<=@Ln;&++^$y*CER*XHWTlS=WlTWm&pesVw+P zA_A7nwX#qt@b1}_Wr9++ZOhWNV$t#}8>RBQHeFaY7IhjhQyTcuPzg3MN!>{DV&l#b z&!=L9Qu$-#xGQk->fsq1XA|RvaFZs*LA3d#x6o(Fwhd|LhEdN+Qc2~?^Xj;wq!s@Gu_MIVvcO3eQiQ7l&9EfiJPEz_K4G~HgG&*u13g$q8# zbJ_WI$+as9HTElUJE0$67ul>>PbLzkX_|~Z zz>=mZ%|s&k@^sp@h1d|5#W{&GRjDy{_QSHljpaA!(oN}XmehjeJcbByAhS=7)9JBg znwpkKm{JNY$u!fn4!EwL@x8L$sd9|Q*n?FZ!7b_>~s8hGhDukHp&UffPm4ueANqCI9UJLlyY5- zEfLFBLRRFXq{D0RWlU*|60X4wI0J;G^;d?6uOcKGco#{q5RtRlOU|*K&~`Ld@q#d` z>nt799NW)pbdK|WBn8%eTc&Zsb@Ls%&UM4o(^g4JqWSsN)%kf!rRGYuqS&^g*mES) zY1dQ}8qZPyyCG`4%9t;;2*TX`j?N8(Gd*LLv$^@z`S}i#m-4pgwe6R!%qANd!S#%0 znpUPpoLk>$i*w?`Nz1zva`in6GKtkxuq=vP(8!xc$dU}gjuWKf;kLt;LAGK~p<^>s zmZ`%FOzL%to4k<%A@r`nWGT0$!9;6BaLWSMDxhOn1Xg{Hr54?y;ISO604Q^vQ#HZB z0$vu{A2bJ_Yk^|Pt2BeK=+)1cWAv|qk&;_N2CD^SSNRDFO(tYP=>o|*{VBbQ##r~M zMi(dylpXsN<)ff2f@Pm-J2rFF5puQa2AAs8jJ}UX82I%K$@z|D8VOa?tT&&6J=R!R zNs!>u;yRHQ1h;QU&YdzP_V3>d=aR;p%W_H8G|MuLgjYBR`!tnGP2J);2`=^9eP7{R zeuy2a8GHANz=%NGmdNC>T@P!x8aD#jAoT5JQpVLq0d60%q6ItF$=i;bf7}}Lqxx^; zxhHa*xoVX&shzaJy7X#|eZO`W_w1o{MW%>SQrS>snkX%mHlm_i^uMld&UOub ziyOaULa<+%{N>la?Y39m{_O3qxaDofU-418@1y^F$}pZv%YW$lKV*9I@yGAl+`Q}Y z$7f&r{O196o84S}T#Xy_rnN2SwG=tFlPB|M=r@CF$*XwHl2>Uud3%|{AZ(U1ezQ^| zrm;NiO&zL6QI!}4x2ca!7jMvF6fM$Z5-vez(;AEuwJ55cFi2~9{1{wg-%=DU?K5Vt zGQ2_*6+8o{kgEu7ZzvjcJT}6>FET&4n#%c{lkx8hs?xeE(=N&ZDPJ^ufZGeH@cCYrXMQ0 z^0e|F^#S!u>Ms&6Nqj%qN`6~=h?(p$_5t=gJuudxxo4L0m3RivIRUv0mJX&jEaM}s$`-Zlf)YS%4jHI zfe|=_S1<+~Y%ysR@I8|0!<7n3Z~zTjJurlul_wbmQu#ll;y!w=Wa7XiaauJP4G}%a z2t1$^83R@NE0ab``PRwEKq~(~84sS^?rn8P?!L|a?)7nh*N0D@u4m? zPR17o?NRSk?|g6c7-9TsNl zqE}Pchl?RPv~u4@AE)7Bgcvc-;~bR#N)^9iYRv-04evt-+ZdvUg|8t397PpZppH61 e)NuqMn&WRX24*eUx8PD=v7e{d{=)zR0002E+j2$# literal 0 HcmV?d00001 diff --git a/public/exadmin/assets/fa-v4compatibility.86a687cf.ttf b/public/exadmin/assets/fa-v4compatibility.86a687cf.ttf new file mode 100644 index 0000000000000000000000000000000000000000..e9545ed579e6d86383c254713e8bd17356f72e6c GIT binary patch literal 10556 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"watchModel",e)},{debounce:300}),props.watch.forEach(field=>{let watchField=getWatchField(field);const watchValue=eval("attrs.model."+watchField);isReactive(watchValue)?watchDebounced(computed(()=>JSON.stringify(eval("attrs.model."+watchField))),(e,t)=>{watchQueue(field,JSON.parse(e),JSON.parse(t))},{debounce:300,deep:!0}):watchDebounced(()=>eval("attrs.model."+watchField),(e,t)=>{watchQueue(field,e,t)},{debounce:300})});function watchQueue(e,t,a){if(watchPauseField==e)return watchPauseField=null,!0;const r=watchData.length;if(JSON.stringify(t)!=JSON.stringify(a)){if(t===null&&a===""||a===null&&t==="")return;watchData.push({field:e,newValue:t,oldValue:a})}r===0&&watchListen()}function getWatchField(e,t=!1){let a=e;if(e.indexOf(".*.")>-1){let r=e.split(".*.");t?a=r[1]:a=r[0]}return a}async function watchListen(){const t=JSON.parse(JSON.stringify(watchData)).shift();t&&(await watchAjax(t.field,t.newValue,t.oldValue),watchData.shift(),watchListen())}function watchAjax(e,t,a){return new Promise((r,i)=>{submitPass=!1,service({url:props.url,method:props.method,data:Object.assign(props.callParams,{ex_admin_form_action:"watch",data:submitData(),ex_field:e,newValue:t,oldValue:a,formField:attrs.formField,id:props.editId},props.params)}).then(o=>{o.data.showField.forEach(s=>{proxyData[s]=1}),o.data.hideField.forEach(s=>{proxyData[s]=0});let l=o.data.data;for(let s in l){if(isReactive(attrs.model[s])){getWatchField(e)==s&&(watchPauseField=e);let n=getWatchField(e,!0);for(let d in l[s])try{l[s][d][n]=attrs.model[s][d][n]}catch{}}attrs.model[s]=l[s]}submitPass=!0}).finally(o=>{r(o)})})}props.focusFirst&&nextTick(()=>{enterNext()});function enterNext(){let e=form.value.$el.querySelectorAll("input,select,textarea");e=Array.from(e).filter(t=>!(t.nodeName=="INPUT"&&t.getAttribute("type")=="hidden")),e.forEach((t,a)=>{document.activeElement===t&&(enterTabIndex=a)}),enterTabIndexisNumber(a)?"*":a);lodash.exports.forEach(props.tabsValidateField,function(a){lodash.exports.forEach(a,function(r,i){t.join(".")==i&&lodash.exports.forEach(r,function(o){proxyData[o.model]=o.key})})}),form.value.scrollToField(e,{block:"center",behavior:"smooth"})}function validate(e,t,a){e=e.join("."),t?(props.validateField[e].message=null,props.validateField[e].status=null):(props.validateField[e].status="error",props.validateField[e].message=a)}function clearValidate(){lodash.exports.forEach(props.validateField,function(e,t){props.validateField[t].message=null,props.validateField[t].status=null})}const submitDebounce=lodash.exports.debounce(submit,500);function submit(){const e=submitData();emit("submit",e),form.value.validate().then(()=>{if(props.url){if(watchData.length>0||!submitPass){loading.value=!0,setTimeout(()=>{submit()},100);return}let t={ex_admin_form_action:"save",data:e,CURRENT_VALIDATION_STEP:props.stepCurrent,FORM_REF:attrs.form_ref};t.id=props.editId,http({url:props.url,method:props.method,data:Object.assign(props.callParams,t,props.params)}).then(a=>{if(clearValidate(),a.code===422){let r="";for(let i in a.data){r||(r=i);let o=a.data[i];props.validateField[i].status="error",props.validateField[i].message=Array.isArray(o)?o[0]:o}scrollToField([r]);return}else if(a.code===201){emit("update:stepCurrent",props.stepCurrent+1);return}else a.code===202&&(emit("update:stepCurrent",props.stepCurrent+1),stepResult.value=a.data);emit("success",a),emit("gridRefresh"),emit("formModalClose")})}else emit("success"),emit("gridRefresh"),emit("formModalClose")}).catch(t=>{scrollToField(t.errorFields[0].name)})}function stepReset(){emit("update:stepCurrent",0),form.value.resetFields(),stepResult.value=null}function reset(){form.value.resetFields(),clearValidate()}const context={submitData,submitDebounce,stepReset,form,loading,submit,reset};return useProvideFormContext(context),expose(context),(e,t)=>{const a=resolveComponent("render"),r=resolveComponent("a-form");return openBlock(),createBlock(r,mergeProps({class:"form",ref_key:"form",ref:form,onValidate:validate},e.$attrs,{onKeyup:withKeys(onEnter,["native","enter"])}),{default:withCtx(()=>[renderSlot(e.$slots,"default",{},void 0,!0),createVNode(a,{data:stepResult.value},null,8,["data"]),renderSlot(e.$slots,"footer",{},void 0,!0)]),_:3},16,["onKeyup"])}}});var form=_export_sfc(_sfc_main,[["__scopeId","data-v-4c591e3a"]]);export{form as default}; diff --git a/public/exadmin/assets/grid.72bf2236.css b/public/exadmin/assets/grid.72bf2236.css new file mode 100644 index 0000000..e20b16d --- /dev/null +++ b/public/exadmin/assets/grid.72bf2236.css @@ -0,0 +1 @@ +.grid[data-v-0225828e]{display:flex}.quickSearch[data-v-0225828e]{margin-right:8px;width:250px}.filter[data-v-0225828e]{border-top:1px solid #ededed;background:#fff;padding:20px 20px 0}.filter .form[data-v-0225828e]{padding:0}.filter .ant-form-inline[data-v-0225828e] .ant-form-item{margin-bottom:20px}.tools[data-v-0225828e]{background:#fff;position:relative;border-radius:5px;padding-left:10px;padding-bottom:10px;padding-top:10px;display:flex;flex-wrap:wrap;align-items:center}.tools .left[data-v-0225828e]{flex:1;display:flex;flex-wrap:wrap}.tools .right[data-v-0225828e]{display:flex;justify-content:end;margin:0 15px}.pagination[data-v-0225828e]{background:#fff;padding:10px 15px;border-radius:5px}.dark-theme .pagination[data-v-0225828e],.dark-theme .tools[data-v-0225828e]{background:#141414}.dark-theme .filter[data-v-0225828e]{border-top:1px solid #434343;background:#141414}.sortDrag[data-v-0225828e]{display:flex;flex-direction:column}.custom[data-v-0225828e]{background:none!important;padding-left:0!important;padding-top:0!important}.light-theme .mobile-list[data-v-0225828e]{background:#fff;border-top:1px solid #f0f0f0;border-bottom:1px solid #f0f0f0}.dark-theme .mobile-list[data-v-0225828e]{border-top:1px solid #303030;border-bottom:1px solid #303030}.custom-action[data-v-0225828e]{margin-top:15px;display:flex;align-items:center;justify-content:space-between} diff --git a/public/exadmin/assets/grid.c3e66c00.js b/public/exadmin/assets/grid.c3e66c00.js new file mode 100644 index 0000000..e00e29d --- /dev/null +++ b/public/exadmin/assets/grid.c3e66c00.js @@ -0,0 +1 @@ +import"./vue.db505ee4.js";import{_ as qt,u as Dt,a as jt,b as Tt,s as F,t as p,e as Ft,d as Te,c as Pt,g as Kt,o as Fe,j as Nt}from"./index.b35f53c6.js";import{l as P}from"./lodash.c9cf1bdb.js";import{d as $t,c as Pe}from"./@vueuse.952f4739.js";import{S as Ht}from"./sortablejs.412b554c.js";import{u as zt}from"./use-http.ec808253.js";import{r as y,w as he,x as Wt,V as Ut,q as Vt,p as Ke,n as Ne,a as Mt,ad as ve,aW as m,aR as d,ar as f,bd as l,au as K,c as u,as as v,at as k,S as w,ai as S,u as i,H as z,aV as L,R as Lt,af as $e,N as Jt,Q as Qt,aM as te,ay as He,aX as ze,m as Xt,ah as We,aT as Yt,aS as Zt}from"./@vue.cb43a243.js";import{M as ye,m as ea}from"./ant-design-vue.6b10f349.js";import"./@babel.6cd0804c.js";import"./regenerator-runtime.8e24db72.js";import"./js-md5.5179c6be.js";import"./vue-router.a08742b9.js";import"./js-cookie.31874410.js";import"./spark-md5.2cc5764b.js";import"./axios.e3200588.js";import"./@ant-design.bcfb08ae.js";import"./@ctrl.fa7cbd46.js";/* empty css */import"./dayjs.38e390ea.js";import"./clipboard.099d05c9.js";import"./markdown-it.80c3a67b.js";import"./entities.0d2c0164.js";import"./uc.micro.981ceb7b.js";import"./mdurl.ef76b4dc.js";import"./linkify-it.92c30060.js";import"./markdown-it-emoji.e3e91710.js";import"./escape-html.e5dfadb9.js";import"./prismjs.c97a8414.js";import"./diacritics.6be19c75.js";import"./markdown-it-container.512a5043.js";import"./markdown-it-anchor.c88e5394.js";import"./markdown-it-attrs.3af5ab50.js";import"./markdown-it-table-of-contents.8a4ce16f.js";import"./@kangc.86f7507c.js";import"./resize-observer-polyfill.8deb1e21.js";import"./vue-types.6e6d84ba.js";import"./dom-align.f1b5d360.js";import"./lodash-es.0ea26897.js";import"./async-validator.5d25c98b.js";import"./scroll-into-view-if-needed.5191fdbf.js";import"./compute-scroll-into-view.6058b3be.js";import"./vue-demi.5fb18120.js";const ta=n=>(Yt("data-v-0225828e"),n=n(),Zt(),n),aa={class:"ex-admin-shadow",style:{height:"100%"}},la={class:"ex-admin-shadow",style:{height:"100%"}},na={class:"left"},oa={class:"right"},ia={key:1,class:"filter"},ra={key:0,class:"custom-action"},da={style:{padding:"15px 10px","font-size":"14px",display:"flex"}},sa={key:0,style:{"margin-right":"5px",color:"#888888"}},ua=ta(()=>K("span",null,":",-1)),ca={key:0,class:"sortDrag"},fa={style:{"text-align":"center"}},ma={style:{"margin-top":"10px"}},pa={key:0},ha={key:1,style:{color:"red"}},va={inheritAttrs:!1,name:"ExGrid"},ya=Object.assign(va,{props:{pagination:Object,dataSource:Array,columns:Array,hidePage:Boolean,quickSearchText:String,addButton:[Object,Boolean],quickSearch:Boolean,hideDeleteSelection:Boolean,hideAdd:Boolean,hideDelete:Boolean,hideTrashedDelete:Boolean,hideTrashedRestore:Boolean,hideFilter:Boolean,hideSelection:Boolean,expandFilter:Boolean,hideTools:Boolean,hideExport:Boolean,queueExport:Boolean,hideExportCurrentPage:Boolean,hideExportSelection:Boolean,hideExportAll:Boolean,hideTrashed:Boolean,autoHeight:Boolean,sidebar:Object,selectedSidebar:[String,Number],selection:{type:Array,default:[]},selectionActions:[Boolean,Object],selectionField:String,selectionLimit:{type:Number,default:0},selectionType:{type:String,default:"checkbox"},filter:[Object,Boolean],header:[Object,Boolean],footer:[Object,Boolean],tools:[Object,Boolean],url:String,custom:[Object,Boolean],params:{type:Object,default:{}},callParams:{type:Object,default:{}},scroll:{type:Object,default:{}},expandedRowKeys:{type:Array,default:[]}},emits:["update:selection","update:selectedSidebar","update:expandFilter","update:expandedRowKeys"],setup(n,{expose:Ue,emit:W}){const s=n,ge=Dt(),xe=y(null),Ve=$t(xe);he(Ve.height,e=>{s.autoHeight&&Re()});const Me=Wt();jt(Me);const ae=Tt();let U=null,J={};const{loading:le,http:Le}=zt(),_=Ut(),g=Vt({visible:!1,status:"",percent:0,timer:null,url:""}),ne=y(s.header),oe=y(s.footer),be=y(s.tools),ie=y(s.addButton),x=y(Se(s.dataSource)),re=y(""),Q=y(s.expandFilter),O=y(1),X=y(s.pagination.attribute.pageSize),de=y(s.pagination.attribute.total),R=y(!1),I=y(P.exports.cloneDeep(s.scroll)),b=y(s.selection),_e=y([]),Je=JSON.parse(JSON.stringify(s.columns)),A=Pe(s,"columns",W),D=Pe(s,"expandedRowKeys",W);we();function ke(){return _.childrenColumnName||"children"}function Qe(e){var t=[];function a(r){(r||[]).forEach(function(c){t.push(c[_.rowKey]),a(c[ke()])})}return a(e),t}function Se(e){function t(a){(a||[]).forEach(function(r){for(let c in r)if(c!="dblclickAction"&&typeof r[c]=="object"&&!r.hide&&r.dblclickAction){r[c].content.default.push({name:"html",attribute:{style:{display:"none"}},content:{default:[r.dblclickAction]}});break}t(r[ke()])})}return t(e),e}function we(){_.defaultExpandAllRows&&(D.value=Qe(x.value))}const Ae=y(!1),G=y(A.value.map(e=>e.dataIndex));he(A,e=>{G.value=e.map(t=>t.dataIndex)});const j=y();he(j,e=>{W("update:selectedSidebar",e),C()});const B=y(),Ce=Ke(()=>A.value.filter(e=>(G.value.indexOf(e.dataIndex)>=0||e.dataIndex=="ExAdminAction")&&!e.hide));function Xe(e){G.value.push(e),G.value=P.exports.uniq(G.value)}function N(e,t){t=t.filter(a=>a!==void 0),Ee(b,_.rowKey,e,t),Ee(_e,"ex_admin_selected",e,t),W("update:selection",_e.value)}function Ye(e){D.value.indexOf(e)===-1?D.value.push(e):Te(D.value,e)}function Ee(e,t,a,r){const c=r.map(h=>h[t]);a?s.selectionType==="checkbox"?(e.value=P.exports.uniq(e.value.concat(c)),s.selectionLimit>0&&(e.value=e.value.slice(0,s.selectionLimit))):e.value=c:c.map(h=>{Te(e.value,h)})}const Ze=Ke(()=>s.hideSelection?null:{fixed:!0,selectedRowKeys:i(b),type:s.selectionType,onSelect:(e,t,a,r)=>{t?N(t,a):N(t,[e])},onSelectAll:(e,t,a)=>{e?N(e,t):N(e,a)}});function et(e){C()}function Ie(){O.value=1,C()}function tt(){ye.confirm({title:p("Grid.continue"),content:p("Grid.confirmClear"),onOk(){F({url:s.url,method:"delete",data:Object.assign(Y(),{ids:[],ex_admin_action:"delete",all:!0})}).then(e=>{b.value=[],C()})}})}function at(){ye.confirm({title:p("Grid.continue"),content:p("Grid.confirmClearSelected"),onOk(){F({url:s.url,method:"post",data:Object.assign(Y(),{ex_admin_action:"delete",ids:b.value,all:!1})}).then(e=>{b.value=[],C()})}})}function lt(){ye.confirm({title:p("Grid.continue"),content:p("Grid.confirmRecoverySelected"),onOk(){F({url:s.url,method:"post",data:V({ex_admin_action:"restore",ids:b.value})}).then(e=>{b.value=[],C()})}})}function V(e){let t={};return R.value&&Object.assign(t,{ex_admin_trashed:!0}),Object.assign(t,s.callParams,e),j.value!==void 0&&(t[s.sidebar.attribute.field]=j.value),t}function Be(){let e={grid_request_data:!0,ex_admin_page:O.value,ex_admin_size:X.value,quickSearch:re.value},t={};return s.filter&&(t=ae[s.filter.bindAttribute.model]||{},j.value!==void 0&&(t[s.sidebar.attribute.field]=j.value)),Object.assign(e,s.params,J,{ex_admin_filter:t}),e}function Y(){return V(Be())}function C(){Le({url:s.url,method:"post",data:Object.assign({_ajax:"get",GRID_REF:_.grid_ref},Y())}).then(e=>{Je.forEach(t=>{if(!t.width){let a=Pt(A.value,"dataIndex",t.dataIndex);a.width&&delete a.width}}),x.value=Se(e.data),de.value=e.total,_.headerRefresh&&(ne.value=e.header),_.footerRefresh&&(oe.value=e.footer),_.toolsRefresh&&(be.value=e.tools),ie.value=e.addButton,we(),Oe()})}Oe();function Oe(){I.value.y&&delete I.value.y,Ne(()=>{!s.custom&&!ge.isMobile&&(it(),nt())})}Mt(e=>{U&&U.destroy(),Z()});let se=null;function Re(){try{if((s.scroll.y||s.autoHeight)&&A.value.forEach((e,t)=>{let a=0;!e.width&&e.dataIndex!=="ExAdminAction"&&(P.exports.forEach(document.getElementsByClassName("ex_admin_table_th_"+e.dataIndex),r=>{let c=r.parentNode.offsetWidth;a{a{setTimeout(()=>{const r=B.value.table.$el,c=ue(),h=r.querySelectorAll(`.${c}`)[0];r.querySelectorAll(`.${c} > table`)[0].clientWidth>h.clientWidth&&(e.fixed="right",ve(A))})})}),!s.scroll.y&&s.autoHeight){const e=Kt(B.value.table.$el);e?(se||(se=e.offsetHeight),I.value.y=se-Fe(B.value.table.$el,["ant-modal","ant-drawer"])-(s.hidePage?0:45)):I.value.y=window.innerHeight-Fe(B.value.table.$el)-(s.hidePage?65:110),ve(A)}}catch(e){console.log(e)}}function nt(){const e=B.value.table.$el;A.value.forEach(t=>{if(t.dataIndex==="ExAdminAction"&&!t.width){let a=0,r=e.getElementsByClassName("ExAdminAction");if(r.length>0&&(r=Array.from(r),r.forEach(c=>{let h=c.offsetWidth;a table`)[0].clientWidth>h.clientWidth&&(t.fixed="right")}(s.autoHeight||t.fixed||s.scroll.y)&&Re()}}),ve(A)}function ot(){Q.value=!Q.value,W("update:expandFilter",!s.expandFilter)}function ue(){return I.value.y?"ant-table-body":"ant-table-content"}function it(){if(B.value){let e=B.value.table.$el;const t=ue();e=e.querySelectorAll(`.${t} > table > tbody`)[0],U&&U.destroy(),U=Ht.create(e,{animation:1e3,handle:".sortHandel",onEnd:a=>{var r=a.newIndex-1,c=a.oldIndex-1,h=x.value[c],T=(O.value-1)*X.value;const fe=x.value.splice(c,1)[0];if(x.value.splice(r,0,fe),c!=r){let ee;e.getElementsByClassName("sortHandel").length&&(ee=e.getElementsByClassName("sortHandel")[0].dataset.field),ce(h[_.rowKey],T+r,ee).catch(()=>{const $=x.value.splice(r,1)[0];x.value.splice(c,0,$)})}}})}}const rt=P.exports.debounce(dt,300);function dt(e,t,a){F({url:s.url,method:"post",data:V({ex_admin_action:"inputSort",id:e,field:a,sort:parseInt(t)})})}function st(e,t,a){ce(t,0,a).then(r=>{if(O.value===1){const c=x.value.splice(e,1)[0];x.value.unshift(c)}else x.value.splice(e,1)})}function ut(e,t,a){ce(t,de.value-1,a).then(r=>{if(O.value===1){const c=x.value.splice(e,1)[0];x.value.push(c)}else x.value.splice(e,1)})}function ce(e,t,a){return new Promise((r,c)=>{F({url:s.url,method:"post",data:V({ex_admin_action:"dragSort",id:e,field:a,sort:t})}).then(h=>{r(h)}).catch(h=>{c(h)})})}function ct(e,t,a){a.order==="descend"?J={ex_admin_sort_field:a.field,ex_admin_sort_by:"desc"}:a.order==="ascend"?J={ex_admin_sort_field:a.field,ex_admin_sort_by:"asc"}:J={},C()}function ft({key:e}){if(x.value.length==0)return ea.warning(p("Grid.empty")),!1;let t=!1,a=[];e=="all"?t=!0:e=="select"?(a=P.exports.cloneDeep(b.value),b.value=[]):e=="page"&&(a=x.value.map(r=>r[_.rowKey])),F({url:s.url,method:"post",data:V(Object.assign(Be(),{ex_admin_action:"export",ex_admin_export:!0,columns:A.value.filter(r=>G.value.indexOf(r.dataIndex)>=0&&!r.closeExport),selectIds:a,all:t,ex_admin_queue:s.queueExport}))}).then(r=>{g.status="",g.percent=0,g.visible=!0,g.timer=setInterval(()=>{F({url:"/ex-admin/system/exportProgress",method:"post",data:{key:r.data.key}}).then(c=>{c.data.status==0?g.percent=c.data.progress:c.data.status==1?(g.status="success",g.percent=100,g.url=c.data.url,Z()):c.data.status==2&&(g.status="exception",Z())})},500)})}function mt(e){e()}function pt(){R.value=!R.value,C()}function Z(){g.timer!=null&&clearInterval(g.timer)}function ht(e=!1){e&&(O.value=1),b.value=[],C()}function vt(e,t){return{onDblclick:a=>{e.dblclickAction&&(["AModal","ADrawer"].indexOf(e.dblclickAction.name)>-1?e.dblclickAction.initModal():e.dblclickAction.directive&&e.dblclickAction.directive.forEach(r=>{if(r.name=="redirect")return Nt(r.value)}))}}}return Ue({requestDataParams:Y,selectCheckboxColumn:Xe,requestData:C,handleFilter:Ie,refresh:ht,selectIds:b,onSelect:N,changeExpandedRow:Ye}),(e,t)=>{const a=m("render"),r=m("a-col"),c=m("DownOutlined"),h=m("a-button"),T=m("a-dropdown"),fe=m("search-outlined"),ee=m("a-input-search"),$=m("a-menu-item"),Ge=m("a-menu"),yt=m("download-outlined"),me=m("delete-outlined"),gt=m("diff-outlined"),xt=m("SearchOutlined"),M=m("a-tooltip"),qe=m("appstore-filled"),bt=m("reload-outlined"),_t=m("a-checkbox"),kt=m("a-checkbox-group"),De=m("a-list-item"),je=m("a-list"),St=m("filter-filled"),wt=m("caret-up-outlined"),At=m("drag-outlined"),Ct=m("caret-down-outlined"),Et=m("a-input"),It=m("a-table"),Bt=m("a-progress"),Ot=m("a-typography-link"),Rt=m("a-modal"),Gt=m("a-row");return d(),f(Gt,te({ref_key:"el",ref:xe},e.$attrs,{gutter:n.sidebar?10:0,style:n.sidebar&&I.value.y?"maxHeight:"+I.value.y+"px":""}),{default:l(()=>[n.sidebar?(d(),f(r,{key:0,md:n.sidebar.attribute.span,sm:24,xs:24},{default:l(()=>[K("div",aa,[u(a,{data:n.sidebar,value:j.value,"onUpdate:value":t[0]||(t[0]=o=>j.value=o)},null,8,["data","value"])])]),_:1},8,["md"])):v("",!0),u(r,{md:n.sidebar?24-n.sidebar.attribute.span:24,sm:24,xs:24},{default:l(()=>[K("div",la,[n.hideTools?v("",!0):(d(),k("div",{key:0,class:$e(["tools",n.custom&&n.custom.attribute.customStyle!="card"?"custom":""])},[K("div",na,[b.value.length>0?(d(),f(T,{key:0,trigger:["click"]},{overlay:l(()=>[u(a,{data:n.selectionActions},null,8,["data"])]),default:l(()=>[u(h,{style:{"margin-right":"8px"}},{default:l(()=>[w(S(i(p)("Grid.selectedTotal",{total:b.value.length}))+" ",1),n.selectionActions?(d(),f(c,{key:0})):v("",!0)]),_:1})]),_:1})):v("",!0),n.quickSearch?(d(),f(ee,{key:1,class:"quickSearch",allowClear:"","enter-button":i(p)("Grid.search"),value:re.value,"onUpdate:value":t[1]||(t[1]=o=>re.value=o),placeholder:n.quickSearchText||i(p)("Grid.quickSearchText"),onSearch:Ie},{prefix:l(()=>[u(fe,{style:{color:"#c0c4cc"}})]),_:1},8,["enter-button","value","placeholder"])):v("",!0),ie.value&&!n.hideAdd?(d(),f(a,{key:2,data:ie.value},null,8,["data"])):v("",!0),n.hideExport?v("",!0):(d(),f(T,{key:3,trigger:["click"]},{overlay:l(()=>[u(Ge,{onClick:ft},{default:l(()=>[n.hideExportCurrentPage?v("",!0):(d(),f($,{key:"page"},{default:l(()=>[w(S(i(p)("Grid.exportPage")),1)]),_:1})),n.hideExportSelection?v("",!0):(d(),f($,{key:"select",disabled:b.value.length===0},{default:l(()=>[w(S(i(p)("Grid.exportSelect")),1)]),_:1},8,["disabled"])),n.hideExportAll?v("",!0):(d(),f($,{key:"all"},{default:l(()=>[w(S(i(p)("Grid.exportAll")),1)]),_:1}))]),_:1})]),default:l(()=>[u(h,{type:"primary"},{icon:l(()=>[u(yt)]),default:l(()=>[w(" "+S(i(p)("Grid.export"))+" ",1),u(c)]),_:1})]),_:1})),!n.hideDeleteSelection&&b.value.length>0&&!R.value?(d(),f(h,{key:4,onClick:at},{icon:l(()=>[u(me)]),default:l(()=>[w(" "+S(i(p)("Grid.deleteSelected")),1)]),_:1})):v("",!0),!n.hideTrashedRestore&&b.value.length>0&&R.value?(d(),f(h,{key:5,onClick:lt},{icon:l(()=>[u(gt)]),default:l(()=>[w(" "+S(i(p)("Grid.restoreSelected")),1)]),_:1})):v("",!0),!n.hideDelete&&!(R.value&&n.hideTrashedDelete)?(d(),f(h,{key:6,onClick:tt,type:"primary",danger:""},{icon:l(()=>[u(me)]),default:l(()=>[w(" "+S(i(p)("Grid.clearData")),1)]),_:1})):v("",!0),(d(!0),k(z,null,L(be.value,o=>(d(),f(a,{data:o},null,8,["data"]))),256))]),K("div",oa,[n.filter&&!n.hideFilter?(d(),f(M,{key:0,title:Q.value?i(p)("Grid.collapseFilter"):i(p)("Grid.expandFilter")},{default:l(()=>[u(h,{shape:"circle",size:"small",onClick:ot},{icon:l(()=>[u(xt)]),_:1})]),_:1},8,["title"])):v("",!0),n.hideTrashed?v("",!0):(d(),f(M,{key:1,title:R.value?i(p)("Grid.dataList"):i(p)("Grid.recycle")},{default:l(()=>[u(h,{shape:"circle",size:"small",onClick:pt},{icon:l(()=>[R.value?(d(),f(qe,{key:0})):(d(),f(me,{key:1}))]),_:1})]),_:1},8,["title"])),u(h,{shape:"circle",size:"small",onClick:C},{icon:l(()=>[u(bt)]),_:1}),n.custom?v("",!0):(d(),f(T,{key:2,visible:Ae.value,"onUpdate:visible":t[4]||(t[4]=o=>Ae.value=o)},{overlay:l(()=>[u(Ge,null,{default:l(()=>[u(kt,{value:G.value,"onUpdate:value":t[3]||(t[3]=o=>G.value=o)},{default:l(()=>[(d(!0),k(z,null,L(i(A),o=>(d(),k(z,null,[o.title&&!o.hide?(d(),f($,{key:0},{default:l(()=>[u(_t,{value:o.dataIndex},{default:l(()=>[w(S(o.title),1)]),_:2},1032,["value"])]),_:2},1024)):v("",!0)],64))),256))]),_:1},8,["value"])]),_:1})]),default:l(()=>[u(h,{shape:"circle",size:"small",onClick:t[2]||(t[2]=Lt(()=>{},["prevent"]))},{icon:l(()=>[u(qe)]),_:1})]),_:1},8,["visible"]))])],2)),n.filter?Jt((d(),k("div",ia,[u(a,{data:n.filter},null,8,["data"])],512)),[[Qt,Q.value&&!n.hideFilter]]):v("",!0),n.custom?(d(),f(je,te({key:2,"data-source":x.value,loading:i(le)},n.custom.attribute,{"row-key":i(_).rowKey,class:"scrollbar",style:I.value.y?"height:"+(I.value.y-65)+"px":""}),He({renderItem:l(({item:o,index:E})=>[u(De,null,{default:l(()=>[(d(),f(ze(n.custom.attribute.container),null,{default:l(()=>[u(a,{data:o.custom},null,8,["data"]),o.ExAdminAction?(d(),k("div",ra,[n.hideSelection?v("",!0):(d(),f(ze(n.selectionType=="checkbox"?"ACheckbox":"ARadio"),{key:0,checked:b.value.indexOf(o[i(_).rowKey])>-1,onChange:q=>N(q.target.checked,[o])},null,8,["checked","onChange"])),o.ExAdminAction?(d(),f(a,{key:1,data:o.ExAdminAction},null,8,["data"])):v("",!0)])):v("",!0)]),_:2},1024))]),_:2},1024)]),_:2},[n.custom.attribute.header?{name:"header",fn:l(()=>[u(a,{data:n.custom.attribute.header},null,8,["data"])])}:void 0,n.custom.attribute.footer?{name:"footer",fn:l(()=>[u(a,{data:n.custom.attribute.footer},null,8,["data"])])}:void 0]),1040,["data-source","loading","row-key","style"])):i(ge).isMobile?(d(),f(je,te({key:3,size:"small","item-layout":"vertical","data-source":x.value,loading:i(le),class:"mobile-list"},e.$attrs),{renderItem:l(({item:o})=>[u(De,null,{default:l(()=>[(d(!0),k(z,null,L(i(Ce),E=>(d(),k("div",da,[E.title?(d(),k("div",sa,[w(S(E.title),1),ua])):v("",!0),u(a,{data:o[E.dataIndex]},null,8,["data"])]))),256))]),_:2},1024)]),_:1},16,["data-source","loading"])):(d(),f(It,te({key:4},e.$attrs,{"row-selection":i(Ze),dataSource:x.value,columns:i(Ce),pagination:!1,loading:i(le),scroll:I.value,"custom-row":vt,expandedRowKeys:i(D),"onUpdate:expandedRowKeys":t[5]||(t[5]=o=>Xt(D)?D.value=o:null),onChange:ct,ref_key:"dragTable",ref:B}),He({headerCell:l(({column:o})=>[u(a,{data:o.header,style:We(o.width?"":"white-space:nowrap;display:block")},null,8,["data","style"])]),customFilterDropdown:l(({setSelectedKeys:o,selectedKeys:E,confirm:q,clearFilters:pe,column:H})=>[u(a,{data:H.customFilterForm,context:i(ae),onSuccess:ga=>mt(q)},null,8,["data","context","onSuccess"])]),customFilterIcon:l(({filtered:o,column:E})=>[u(St,{style:We({color:i(Ft)(i(ae)[n.filter.bindAttribute.model][E.dataIndex])?void 0:"#108ee9"})},null,8,["style"])]),bodyCell:l(({column:o,record:E,text:q,index:pe})=>[o.type=="sortDrag"?(d(),k("div",ca,[u(M,{placement:"right",title:i(p)("Grid.sortTop")},{default:l(()=>[u(wt,{style:{cursor:"pointer"},onClick:H=>st(pe,E[i(_).rowKey],o.dataIndex)},null,8,["onClick"])]),_:2},1032,["title"]),u(M,{placement:"right",title:i(p)("Grid.sortDrag")},{default:l(()=>[u(At,{class:"sortHandel","data-field":o.dataIndex,style:{"font-weight":"bold",cursor:"grab"}},null,8,["data-field"])]),_:2},1032,["title"]),u(M,{placement:"right",title:i(p)("Grid.sortBottom")},{default:l(()=>[u(Ct,{style:{cursor:"pointer"},onClick:H=>ut(pe,E[i(_).rowKey],o.dataIndex)},null,8,["onClick"])]),_:2},1032,["title"])])):o.type=="sortInput"?(d(),f(Et,{key:1,value:q.content.default[0],"onUpdate:value":H=>q.content.default[0]=H,onChange:H=>i(rt)(E[i(_).rowKey],q.content.default[0],o.dataIndex)},null,8,["value","onUpdate:value","onChange"])):(d(),f(a,{key:2,data:q},null,8,["data"]))]),_:2},[ne.value?{name:"title",fn:l(()=>[(d(!0),k(z,null,L(ne.value,o=>(d(),f(a,{data:o},null,8,["data"]))),256))])}:void 0,i(_).expandedRow?{name:"expandedRowRender",fn:l(({record:o})=>[u(a,{data:o.ExAdminExpandRow},null,8,["data"])])}:void 0,oe.value?{name:"footer",fn:l(()=>[(d(!0),k(z,null,L(oe.value,o=>(d(),f(a,{data:o},null,8,["data"]))),256))])}:void 0]),1040,["row-selection","dataSource","columns","loading","scroll","expandedRowKeys"])),n.hidePage?v("",!0):(d(),f(a,{key:5,class:$e(["pagination",n.custom&&n.custom.attribute.customStyle!="card"?"custom":""]),data:n.pagination,current:O.value,"onUpdate:current":t[6]||(t[6]=o=>O.value=o),pageSize:X.value,"onUpdate:pageSize":t[7]||(t[7]=o=>X.value=o),total:de.value,onChange:et},null,8,["class","data","current","pageSize","total"])),u(Rt,{afterClose:Z,maskClosable:!1,keyboard:!1,footer:null,visible:i(g).visible,"onUpdate:visible":t[8]||(t[8]=o=>i(g).visible=o),title:i(p)("Grid.exportProgress")},{default:l(()=>[K("div",fa,[u(Bt,{type:"circle",percent:i(g).percent,status:i(g).status},null,8,["percent","status"]),K("div",ma,[i(g).status=="success"?(d(),k("div",pa,[w(S(i(p)("Grid.exportSuccess"))+" ",1),u(Ot,{href:i(g).url,target:"_blank"},{default:l(()=>[w(S(i(p)("Grid.download")),1)]),_:1},8,["href"])])):i(g).status=="exception"?(d(),k("div",ha,S(i(p)("Grid.exportFail")),1)):v("",!0)])])]),_:1},8,["visible","title"])])]),_:1},8,["md"])]),_:1},16,["gutter","style"])}}});var rl=qt(ya,[["__scopeId","data-v-0225828e"]]);export{rl as default}; diff --git a/public/exadmin/assets/icon.f0cf1419.js b/public/exadmin/assets/icon.f0cf1419.js new file mode 100644 index 0000000..7ea9ddd --- /dev/null +++ b/public/exadmin/assets/icon.f0cf1419.js @@ -0,0 +1 @@ +import"./vue.db505ee4.js";import{r as p,x as l,w as u,h as f,aR as m,ar as _,aX as x}from"./@vue.cb43a243.js";import"./@babel.6cd0804c.js";import"./regenerator-runtime.8e24db72.js";const C={name:"ExIcon"},w=Object.assign(C,{props:{icon:String},setup(c){const n=c,o=p(),a=l().appContext.components;u(()=>n.icon,e=>{t()}),t();function t(){let e;n.icon.indexOf("fa-")===-1?(e=s(n.icon),a[e]&&(e=a[e])):e=n.icon,typeof e=="string"?o.value=f("i",{class:e}):o.value=e}function s(e){return e&&(e=e.replace(/\-(\w)/g,(r,i)=>i.toUpperCase()),e[0].toUpperCase()+e.substr(1))}return(e,r)=>(m(),_(x(o.value)))}});export{w as default}; diff --git a/public/exadmin/assets/index.081aed29.css b/public/exadmin/assets/index.081aed29.css new file mode 100644 index 0000000..99460dc --- /dev/null +++ b/public/exadmin/assets/index.081aed29.css @@ -0,0 +1 @@ +.layout[data-v-18921aa6]{height:100%;background-color:#fff}.components[data-v-18921aa6]{padding:10px}.components-draggable .components-item[data-v-18921aa6]{display:inline-block;width:46%;margin:2%;box-shadow:1px 1px 3px 1px #ccc;border-radius:5px}.components-body[data-v-18921aa6]{padding:8px 10px;font-size:12px;cursor:move;border-radius:3px}.components-body[data-v-18921aa6]:hover{cursor:move;border:1px dashed var(--ant-primary-color)}.drawing[data-v-18921aa6]{position:relative;flex:1}.main[data-v-18921aa6]{border:1px solid #f1e8e8;border-top:none;border-bottom:none;display:flex;flex-direction:column}.main .header[data-v-18921aa6]{margin-left:10px;height:50px;display:flex;align-items:center;border-bottom:1px solid #f1e8e8}.controller[data-v-18921aa6]{height:100%}.controller .title[data-v-18921aa6]{padding:5px 0;display:flex;justify-content:space-between;margin:0 10px;align-items:center;text-align:center;border-bottom:1px solid #f1e8e8;font-size:16px}.controller ul[data-v-18921aa6]{border-right:1px solid #f1e8e8;height:100%;padding:0;margin:0;list-style:none}.controller .active[data-v-18921aa6]{cursor:pointer;background:var(--ant-primary-color);color:#f0f0f0}.controller .active .desc[data-v-18921aa6]{color:#f0f0f0}.controller li[data-v-18921aa6]{padding:10px 0;text-overflow:ellipsis;text-indent:15px}.controller li[data-v-18921aa6]:hover{cursor:pointer;background:var(--ant-primary-color);color:#f0f0f0}.controller li:hover .desc[data-v-18921aa6]{color:#f0f0f0}.controller li .name[data-v-18921aa6]{text-overflow:ellipsis;overflow:hidden}.controller li .desc[data-v-18921aa6]{font-size:12px;color:#00000073;text-overflow:ellipsis;overflow:hidden}.right[data-v-18921aa6] .ant-tabs-nav-list{width:100%}.right[data-v-18921aa6] .ant-tabs-tab{width:50%}.right[data-v-18921aa6] .ant-tabs-tab-btn{margin:0 auto}.field-title[data-v-18921aa6]{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;flex:1;margin-left:5px}.field-title-desc[data-v-18921aa6]{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;flex:1;margin-left:20px;color:#999}[data-v-18921aa6] .curd-setting-form .ant-form-item{margin:0 0 8px}.collapse[data-v-18921aa6]{display:flex;justify-content:center;align-items:center;padding:0 5px;cursor:pointer;border-right:1px solid #f1e8e8}[data-v-18921aa6] .curd-table-tree .ant-tree-node-content-wrapper{display:flex}[data-v-18921aa6] .curd-table-tree{overflow-y:auto;flex:1}[data-v-18921aa6] .curd-table-tree .ant-menu-item{line-height:normal}[data-v-18921aa6] .curd-table-tree .ant-menu-title-content{align-self:start}[data-v-18921aa6] .curd-table-tree .ant-menu-submenu-title{line-height:normal}[data-v-18921aa6] .curd-table-tree .ant-tree-title{flex:1;width:220px}.table-tree-action[data-v-18921aa6]{width:95px}.table-tree-action-table[data-v-18921aa6]{width:160px}.table-tree-title[data-v-18921aa6]{display:flex;align-items:center;justify-content:space-between}.curd-tabs[data-v-18921aa6]{height:100%}.curd-tabs[data-v-18921aa6] .ant-tabs-content{height:100%;overflow-y:auto}.flex-column[data-v-18921aa6]{display:flex;flex-direction:column;height:100%}.flex-1-auto[data-v-18921aa6]{flex:1;overflow-y:auto} diff --git a/public/exadmin/assets/index.8c22d4cb.css b/public/exadmin/assets/index.8c22d4cb.css new file mode 100644 index 0000000..f0aa6aa --- /dev/null +++ b/public/exadmin/assets/index.8c22d4cb.css @@ -0,0 +1 @@ +.tabs[data-v-1bd1daac]{display:flex;height:35px;align-items:center;margin:0 15px 0 20px}.tabs .left[data-v-1bd1daac]{width:0;flex:1;display:flex;overflow-x:auto;height:100%}.tabs .right[data-v-1bd1daac]{margin-left:auto;margin-right:10px;height:35px;display:flex;align-items:center}.tabs .right .tool+.tool[data-v-1bd1daac]{margin-left:10px}.tabs .right .tool[data-v-1bd1daac]{padding:0 10px;height:35px;cursor:pointer;display:flex;align-items:center;background:white;border-radius:5px}.tabs .right .tool[data-v-1bd1daac]:hover{background:rgba(0,0,0,.085)}.tabs .item[data-v-1bd1daac]{color:#999;cursor:pointer;height:100%;padding:0 15px;background:rgba(0,0,0,.04);border-right:solid 1px #f0f0f0;white-space:nowrap;display:flex;align-items:center;border-radius:5px}.tabs .item+.item[data-v-1bd1daac]{margin-left:5px}.tabs .item[data-v-1bd1daac]:hover{background:white}.tabs .active[data-v-1bd1daac]{background:white;color:#000000d9}.close[data-v-1bd1daac]{font-size:12px;margin-left:10px;padding-right:2px;color:#ccc}.close[data-v-1bd1daac]:hover{padding:1px;border-radius:50%;color:#fff;background:#c0c4cc}.dark-theme .tabs .active[data-v-1bd1daac]{color:#fff}.dark-theme .tabs .item[data-v-1bd1daac]{background:#141414;border-right:solid 1px #434343}.dark-theme .tabs .tool[data-v-1bd1daac]{background:#141414}.white[data-v-7ccf4265]{color:#ffffff80}.white[data-v-7ccf4265] .ant-breadcrumb-separator{margin:0 8px;color:#ffffff73}.white>span[data-v-7ccf4265]:last-child{color:#ffffffd9}.header-title .title[data-v-0d1d3ff8]{font-weight:500;font-size:20px;color:#17233d}.header-title .desc[data-v-0d1d3ff8]{font-size:14px;display:inline-block;padding-left:5px;color:#777;border-left:#dcdfe6 solid 1px;margin-left:8px;text-indent:3px}.header-title[data-v-0d1d3ff8]{display:flex;justify-content:space-between;align-items:center;font-weight:400;font-size:24px;font-family:Montserrat,Nunito,sans-serif;margin:0 5px 10px}.dark-theme .header-title .title[data-v-0d1d3ff8]{color:#ffffffd9}.dark-theme .header-title .desc[data-v-0d1d3ff8]{border-left:#434343 solid 1px}.mainContainer[data-v-fc407ed0]{padding:10px 20px 20px;overflow-y:auto}.logo[data-v-1c0c4ce2]{color:#fff;height:31px;margin:12px 20px 12px 15px;display:flex;align-items:center;justify-content:center}.logo img[data-v-1c0c4ce2]{object-fit:contain;height:100%}.logo a[data-v-1c0c4ce2]{display:contents}.logo span[data-v-1c0c4ce2]{margin-left:10px;font-weight:600;font-size:16px;white-space:nowrap}.black span[data-v-1c0c4ce2]{color:#000}.dark-theme .black span[data-v-1c0c4ce2]{color:#fff}.dark-theme .ant-layout-sider-light[data-v-1c0c4ce2]{background:none}.block-sider[data-v-51f4182a]{margin:20px 0 20px 20px;border-radius:5px}.headerSider[data-v-51f4182a]{margin-top:0!important}.mobile[data-v-51f4182a]{position:fixed;z-index:9999;height:100%;margin-left:0;border-radius:0}.sideMenuBar[data-v-51f4182a]{background:#060910;width:36px;color:#ffffffb3}.sideMenuBar .item[data-v-51f4182a]{opacity:.7;cursor:pointer;display:flex;flex-direction:column;align-items:center;font-size:12px;padding:20px 0;border-bottom:1px solid rgba(255,255,255,.16)}.sideMenuBar .item .text[data-v-51f4182a]{width:10px;text-align:center;margin-top:5px;word-wrap:break-word}.sideMenuBar .selected[data-v-51f4182a]{background:#121929}[data-v-51f4182a] .ant-menu.ant-menu-inline-collapsed>.ant-menu-item span>span{display:inline-block;opacity:0}.header[data-v-74b14ca8]{height:55px;padding:0;display:flex;align-items:center;font-size:16px;box-shadow:0 0 10px 2px #22292f1a;border-radius:5px;margin:20px 20px 10px}.dark-theme .header[data-v-74b14ca8]{border-bottom:solid 1px #434343}.light-theme .header[data-v-74b14ca8]{background-color:#fff;border-bottom:solid 1px #f0f0f0}.light-theme .header-sider[data-v-74b14ca8]{background-color:var(--header-menu-color);border-bottom:none}.light-theme .header-sider .navbar-right .item[data-v-74b14ca8],.light-theme .header-sider .fold[data-v-74b14ca8],.light-theme .header-sider .notice span[data-v-74b14ca8]{color:#fff}.fold[data-v-74b14ca8]{margin-right:10px;cursor:pointer}.navbar-right[data-v-74b14ca8]{height:55px;display:flex;align-items:center;margin-left:auto}.navbar-right .item[data-v-74b14ca8]{display:flex;height:55px;align-items:center;font-weight:500;padding:0 10px;cursor:pointer}.navbar-right .notice[data-v-74b14ca8]{padding:0 15px 0 10px}.navbar-right .item[data-v-74b14ca8]:hover{background:rgba(255,255,255,.045)}.account-name[data-v-74b14ca8]{margin-left:10px}.mark[data-v-2ccdb2c2]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9998;width:100%;height:100vh;overflow:hidden;background:#000;opacity:.5}.error-full-modal iframe{display:block}.error-full-modal .ant-modal{max-width:100%;top:0;padding-bottom:0;margin:0}.error-full-modal .ant-modal-content{max-height:100vh;height:100vh}.error-full-modal .ant-modal-body{flex:1;padding:0}:root{--c-white: #ffffff;--c-white-dark: #f8f8f8;--c-black: #000000;--c-divider-light: rgba(60, 60, 67, .12);--c-divider-dark: rgba(84, 84, 88, .48);--c-text-light-1: #2c3e50;--c-text-light-2: #476582;--c-text-light-3: #90a4b7;--c-brand: #3eaf7c;--c-brand-light: #4abf8a;--font-family-base: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;--font-family-mono: source-code-pro, Menlo, Monaco, Consolas, "Courier New", monospace;--z-index-navbar: 10;--z-index-sidebar: 6;--shadow-1: 0 1px 2px rgba(0, 0, 0, .04), 0 1px 2px rgba(0, 0, 0, .06);--shadow-2: 0 3px 12px rgba(0, 0, 0, .07), 0 1px 4px rgba(0, 0, 0, .07);--shadow-3: 0 12px 32px rgba(0, 0, 0, .1), 0 2px 6px rgba(0, 0, 0, .08);--shadow-4: 0 14px 44px rgba(0, 0, 0, .12), 0 3px 9px rgba(0, 0, 0, .12);--shadow-5: 0 18px 56px rgba(0, 0, 0, .16), 0 4px 12px rgba(0, 0, 0, .16);--header-height: 3.6rem}:root{--c-divider: var(--c-divider-light);--c-text: var(--c-text-light-1);--c-text-light: var(--c-text-light-2);--c-text-lighter: var(--c-text-light-3);--c-bg: var(--c-white);--c-bg-accent: var(--c-white-dark);--code-line-height: 24px;--code-font-family: var(--font-family-mono);--code-font-size: 14px;--code-inline-bg-color: rgba(27, 31, 35, .05);--code-bg-color: #282c34}code{margin:0;border-radius:3px;padding:.25rem .5rem;font-family:var(--code-font-family);font-size:.85em;color:var(--c-text-light);background-color:var(--code-inline-bg-color)}code .token.deleted{color:#ec5975}code .token.inserted{color:var(--c-brand)}div[class*=language-]{position:relative;margin:1rem -1.5rem;background-color:var(--code-bg-color);overflow-x:auto}li>div[class*=language-]{border-radius:6px 0 0 6px;margin:1rem -1.5rem 1rem -1.25rem;line-height:initial}@media (min-width: 420px){div[class*=language-]{margin:1rem 0;border-radius:6px}li>div[class*=language-]{margin:1rem 0 1rem 0rem;border-radius:6px}}[class*=language-] pre,[class*=language-] code{text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;background:transparent}[class*=language-] pre{position:relative;z-index:1;margin:0;padding:1.25rem 1.5rem;overflow-x:auto}[class*=language-] code{padding:0;line-height:var(--code-line-height);font-size:var(--code-font-size);color:#eee}.highlight-lines{position:absolute;top:0;bottom:0;left:0;padding:1.25rem 0;width:100%;line-height:var(--code-line-height);font-family:var(--code-font-family);font-size:var(--code-font-size);user-select:none;overflow:hidden}.highlight-lines .highlighted{background-color:#000000a8}div[class*=language-].line-numbers-mode{padding-left:3.5rem}.line-numbers-wrapper{position:absolute;top:0;bottom:0;left:0;z-index:3;border-right:1px solid rgba(0,0,0,.5);padding:1.25rem 0;width:3.5rem;text-align:center;line-height:var(--code-line-height);font-family:var(--code-font-family);font-size:var(--code-font-size);color:#888}div[class*=language-]:before{position:absolute;top:.6em;right:1em;z-index:2;font-size:.8rem;color:#888}div[class~=language-html]:before,div[class~=language-markup]:before{content:"html"}div[class~=language-md]:before,div[class~=language-markdown]:before{content:"md"}div[class~=language-css]:before{content:"css"}div[class~=language-sass]:before{content:"sass"}div[class~=language-scss]:before{content:"scss"}div[class~=language-less]:before{content:"less"}div[class~=language-stylus]:before{content:"styl"}div[class~=language-js]:before,div[class~=language-javascript]:before{content:"js"}div[class~=language-ts]:before,div[class~=language-typescript]:before{content:"ts"}div[class~=language-json]:before{content:"json"}div[class~=language-rb]:before,div[class~=language-ruby]:before{content:"rb"}div[class~=language-py]:before,div[class~=language-python]:before{content:"py"}div[class~=language-sh]:before,div[class~=language-bash]:before{content:"sh"}div[class~=language-php]:before{content:"php"}div[class~=language-go]:before{content:"go"}div[class~=language-rust]:before{content:"rust"}div[class~=language-java]:before{content:"java"}div[class~=language-c]:before{content:"c"}div[class~=language-yaml]:before{content:"yaml"}div[class~=language-dockerfile]:before{content:"dockerfile"}div[class~=language-vue]:before{content:"vue"}.token.comment,.token.block-comment,.token.prolog,.token.doctype,.token.cdata{color:#999}.token.punctuation{color:#ccc}.token.tag,.token.attr-name,.token.namespace,.token.deleted{color:#e2777a}.token.function-name{color:#6196cc}.token.boolean,.token.number,.token.function{color:#f08d49}.token.property,.token.class-name,.token.constant,.token.symbol{color:#f8c555}.token.selector,.token.important,.token.atrule,.token.keyword,.token.builtin{color:#cc99cd}.token.string,.token.char,.token.attr-value,.token.regex,.token.variable{color:#7ec699}.token.operator,.token.entity,.token.url{color:#67cdcc}.token.important,.token.bold{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.token.inserted{color:green}.dark-theme .ant-layout-sider{background:#1f1f1f}.light-theme .ant-layout-sider{background:none}.light-theme .light .sider{background-color:#fff;box-shadow:0 0 10px 2px #00000014}.light-theme .light .ant-menu-dark.ant-menu-horizontal{background:var(--header-menu-color)}.light-theme .light .ant-menu.ant-menu-dark .ant-menu-item-selected{background-color:#fff0}.light-theme .light .ant-menu-dark.ant-menu-horizontal>.ant-menu-item:hover{background-color:#fff0}.light-theme .light .ant-menu-sub.ant-menu-inline{background-color:#fff}.light-theme .dark .sider,.light-theme .dark .ant-menu.ant-menu-dark,.light-theme .dark .ant-menu-dark .ant-menu-sub,.light-theme .dark .ant-menu.ant-menu-dark .ant-menu-sub{background-color:var(--sider-menu-color)}.light-theme .dark .ant-menu-dark.ant-menu-horizontal{background:var(--header-menu-color)}.light-theme .dark .ant-menu.ant-menu-dark .ant-menu-item-selected{background:linear-gradient(to right,var(--sider-menu-selected-color2),var(--sider-menu-selected-color1),var(--sider-menu-selected-color2))}.light-theme .dark .ant-menu-dark.ant-menu-horizontal>.ant-menu-item:hover{background-color:#fff0}.light-theme .dark .ant-menu-submenu{border-top:1px solid rgba(255,255,255,.16)}.light-theme .dark .ant-menu-submenu-horizontal{border-top:none}.ant-btn{padding:4px 8px!important;border-radius:4px!important;box-shadow:0 3px 1px -2px #0001,0 2px 2px #0001,0 1px 5px 1px #0001!important;font-size:12px!important}.ant-input-group-addon .ant-btn{border-radius:0 4px 4px 0!important}.ant-btn+.ant-btn{margin-left:8px}.ant-btn-icon-only{padding:2.4px 0!important;border-radius:2px!important}.ant-btn-circle{padding-right:0!important;padding-left:0!important;border-radius:50%!important}.ant-btn-icon-only.ant-btn-sm{padding:0!important}.ant-btn-sm{padding:0 7px!important}.ant-btn.ant-btn-loading:not(.ant-btn-circle):not(.ant-btn-circle-outline):not(.ant-btn-icon-only){padding-left:29px!important}.ant-switch{box-shadow:0 3px 1px -2px #0001,0 2px 2px #0001,0 1px 5px 1px #0001}.ant-image-img{width:100%;height:100%!important}.ant-modal-content{display:flex;flex-direction:column;overflow:hidden;max-height:85vh}.ant-modal-body{overflow:auto}.ant-modal-footer .ant-form-item,.ant-drawer-footer .ant-form-item{margin-bottom:0}.ant-table-filter-dropdown .ant-form-item{margin-bottom:10px}.light-theme .ant-table-thead>tr>th{padding:10px!important;background:linear-gradient(0deg,#fafafa,#fff)!important;border-top:1px solid #ededed}.ant-table-bordered .ant-table-thead>tr>th{border-top:none}.ant-pagination-item a{padding:0 10px!important}.ant-pagination-item-active{border-color:transparent!important}.ant-menu-sub.ant-menu-inline{display:flex;flex-wrap:wrap}.ant-menu-sub.ant-menu-inline .ant-menu-submenu{width:100%}.ant-menu-inline .ant-menu-item{width:var(--sider-menu-width)!important}.full-modal .ant-modal{max-width:100%;top:0;padding-bottom:0;margin:0}.full-modal .ant-modal-content{display:flex;flex-direction:column;height:100vh;max-height:100vh}.full-modal .ant-modal-body{flex:1}.ant-card{border-radius:5px!important}.ex-drag-copy{position:absolute;right:56px;color:var(--ant-primary-color);background:#fff;border:1px solid var(--ant-primary-color);top:-10px;width:22px;height:22px;line-height:22px;text-align:center;border-radius:50%;font-size:12px;cursor:pointer;z-index:1}.ex-drag-delete{position:absolute;right:24px;color:#f56c6c;background:#fff;border:1px solid #f56c6c;top:-10px;width:22px;height:22px;line-height:22px;text-align:center;border-radius:50%;font-size:12px;cursor:pointer;z-index:1}.ex-drag-copy:hover{background:#409eff;color:#fff;cursor:pointer}.ex-drag-delete:hover{background:#f56c6c;color:#fff;cursor:pointer}.ex-drag-choose{border:1px dashed var(--ant-primary-color);background:#f6f7ff;border-radius:5px!important}[data-choose]{background:#f6f7ff!important;position:relative;border-radius:5px!important}.ex-drag{position:relative;min-height:32px!important;padding:10px!important}.ex-row-drag{position:relative;min-height:32px!important}.ex-drag-hover{position:relative;cursor:move;transition:all .3s;border-radius:5px!important;background:#f6f7ff!important}.chosen-class{border:1px dashed var(--ant-primary-color);background:#f6f7ff;border-radius:5px!important}.curd-row-draggable,.curd-children-row{min-height:32px;width:100%;border:1px dashed #cccccc;border-radius:5px!important}.curd-row-draggable>.curd-children-row{border:0;padding:0!important}.curd-row-draggable>.curd-children-row:hover{border:0!important}.curd-children-row>.curd-row-position{display:none}.curd-col-position,.curd-row-position{position:absolute;top:0;left:0;font-size:12px;color:#bbb;display:inline-block;padding:0 6px}.markdown h1,.markdown h2,.markdown h3,.markdown h4,.markdown h5,.markdown h6{margin:0;line-height:1.25}.markdown h1,.markdown h2,.markdown h3,.markdown h4,.markdown h5,.markdown h6,.markdown strong,.markdown b{font-weight:600}.markdown h1:hover .header-anchor,.markdown h1:focus .header-anchor,.markdown h2:hover .header-anchor,.markdown h2:focus .header-anchor,.markdown h3:hover .header-anchor,.markdown h3:focus .header-anchor,.markdown h4:hover .header-anchor,.markdown h4:focus .header-anchor,.markdown h5:hover .header-anchor,.markdown h5:focus .header-anchor,.markdown h6:hover .header-anchor,.markdown h6:focus .header-anchor{opacity:1}.markdown h1{margin-top:1.5rem;font-size:1.9rem}@media screen and (min-width: 420px){.markdown h1{font-size:2.2rem}}.markdown h2{margin-top:2.25rem;margin-bottom:1.25rem;border-bottom:1px solid var(--c-divider);padding-bottom:.3rem;line-height:1.25;font-size:1.65rem}.markdown h2+h3{margin-top:1.5rem}.markdown h3{margin-top:2rem;font-size:1.35rem}.markdown h4{font-size:1.15rem}.markdown p,.markdown ol,.markdown ul{margin:1rem 0;line-height:1.7}.markdown a,.markdown area,.markdown button,.markdown [role=button],.markdown input,.markdown label,.markdown select,.markdown summary,.markdown textarea{touch-action:manipulation}.markdown a{text-decoration:none;color:var(--c-brand)}.markdown a:hover{text-decoration:underline}.markdown a.header-anchor{float:left;margin-top:.125em;margin-left:-.87em;padding-right:.23em;font-size:.85em;opacity:0}.markdown a.header-anchor:hover,.markdown a.header-anchor:focus{text-decoration:none}.markdown figure{margin:0}.markdown img{max-width:100%}.markdown ul,.markdown ol{padding-left:1.25em}.markdown li>ul,.markdown li>ol{margin:0}.markdown table{display:block;border-collapse:collapse;margin:1rem 0;overflow-x:auto}.markdown tr{border-top:1px solid #dfe2e5}.markdown tr:nth-child(2n){background-color:#f6f8fa}.markdown th,.markdown td{border:1px solid #dfe2e5;padding:.6em 1em}.markdown blockquote{margin:1rem 0;border-left:.2rem solid #dfe2e5;padding:.25rem 0 .25rem 1rem;font-size:1rem;color:#999}.markdown blockquote>p{margin:0}.markdown form{margin:0}.markdown .theme.sidebar-open .sidebar-mask{display:block}.markdown .theme.no-navbar>h1,.markdown .theme.no-navbar>h2,.markdown .theme.no-navbar>h3,.markdown .theme.no-navbar>h4,.markdown .theme.no-navbar>h5,.markdown .theme.no-navbar>h6{margin-top:1.5rem;padding-top:0}.markdown .theme.no-navbar aside{top:0}@media screen and (min-width: 720px){.markdown .theme.no-sidebar aside{display:none}.markdown .theme.no-sidebar main{margin-left:0}}.markdown .sidebar-mask{position:fixed;z-index:2;display:none;width:100vw;height:100vh}.markdown .custom-block.tip,.markdown .custom-block.info,.markdown .custom-block.warning,.markdown .custom-block.danger{margin:1rem 0;border-left:.5rem solid;padding:.1rem 1.5rem;overflow-x:auto}.markdown .custom-block.tip{background-color:#f3f5f7;border-color:var(--c-brand)}.markdown .custom-block.info{background-color:#f3f5f7;border-color:var(--c-text-light-2)}.markdown .custom-block.warning{border-color:#e7c000;color:#6b5900;background-color:#ffe5644d}.markdown .custom-block.warning .custom-block-title{color:#b29400}.markdown .custom-block.warning a{color:var(--c-text)}.markdown .custom-block.danger{border-color:#c00;color:#4d0000;background-color:#ffe6e6}.markdown .custom-block.danger .custom-block-title{color:#900}.markdown .custom-block.danger a{color:var(--c-text)}.markdown .custom-block.details{position:relative;display:block;border-radius:2px;margin:1.6em 0;padding:1.6em;background-color:#eee}.markdown .custom-block.details h4{margin-top:0}.markdown .custom-block.details figure:last-child,.markdown .custom-block.details p:last-child{margin-bottom:0;padding-bottom:0}.markdown .custom-block.details summary{outline:none;cursor:pointer}.markdown .custom-block-title{margin-bottom:-.4rem;font-weight:600}#app,html{height:100%}body{height:100%;padding:0;margin:0}.scrollbar{overflow:hidden}.scrollbar:hover{overflow:hidden auto}body *::-webkit-scrollbar{width:9px;height:9px}body *::-webkit-scrollbar-thumb{border-radius:5px;border-style:solid;background-color:#9da5b766;border-color:transparent;border-width:2px;background-clip:padding-box}body *::-webkit-scrollbar-thumb:hover{background:rgba(157,165,183,.5)}.ex-message-upload{box-shadow:none!important}.ex-admin-editable-cell{position:relative;display:flex;align-items:center;padding-right:25px;min-height:20px}.ex-admin-editable-cell .editable-cell-icon{position:absolute;right:0;width:20px;cursor:pointer}.ex-admin-editable-cell .editable-cell-icon{display:none}.ex-admin-editable-cell:hover .editable-cell-icon{display:inline-block}.ex-admin-editable-cell .editable-cell-icon:hover{color:var(--ant-primary-color)}.ex-admin-tag{color:#1890ff;background:#e6f7ff;box-sizing:border-box;margin:0 8px 0 0;font-variant:tabular-nums;list-style:none;font-feature-settings:"tnum";display:inline-block;height:auto;padding:0 7px;font-size:12px;line-height:20px;white-space:nowrap;border:1px solid #91d5ff;border-radius:2px;opacity:1;transition:all .3s}.ex-admin-shadow{box-shadow:0 0 10px 2px #22292f1a}.table .ant-form-item[data-v-5617eef3]{margin-bottom:0}.hasMany>.hasMany[data-v-5617eef3]{margin-left:30px} diff --git a/public/exadmin/assets/index.b35f53c6.js b/public/exadmin/assets/index.b35f53c6.js new file mode 100644 index 0000000..ce94745 --- /dev/null +++ b/public/exadmin/assets/index.b35f53c6.js @@ -0,0 +1,28 @@ +var yn=Object.defineProperty,zn=Object.defineProperties;var _n=Object.getOwnPropertyDescriptors;var Nt=Object.getOwnPropertySymbols;var In=Object.prototype.hasOwnProperty,Sn=Object.prototype.propertyIsEnumerable;var Tt=(t,n,a)=>n in t?yn(t,n,{enumerable:!0,configurable:!0,writable:!0,value:a}):t[n]=a,tt=(t,n)=>{for(var a in n||(n={}))In.call(n,a)&&Tt(t,a,n[a]);if(Nt)for(var a of Nt(n))Sn.call(n,a)&&Tt(t,a,n[a]);return t},Ut=(t,n)=>zn(t,_n(n));import{v as On}from"./vue.db505ee4.js";import{m as Mn}from"./js-md5.5179c6be.js";import{u as xt,a as jn,c as Rn,b as Ln}from"./vue-router.a08742b9.js";import{p as It,aW as v,aR as h,at as D,au as $,H,aV as it,af as dt,u as l,c as m,ai as C,R as tn,bd as u,S as F,r as at,f as Dt,ar as L,d as nn,as as N,x as St,h as G,al as En,aX as Cn,N as ct,Q as gt,ah as Dn,w as ot,B as Zt,A as an,U as Bt,q as en,a as At,C as Zn,bu as on,a6 as An,O as rn,Y as Nn,n as Tn,X as Un,aA as q}from"./@vue.cb43a243.js";import{a as Bn}from"./js-cookie.31874410.js";import{C as Fn,M as ln,m as pt,n as sn,A as $n}from"./ant-design-vue.6b10f349.js";import{l as ft}from"./lodash.c9cf1bdb.js";import{S as Yn}from"./spark-md5.2cc5764b.js";import{u as Xn,a as Pn,t as qn,b as Vn,V as Hn,c as Wn}from"./@vueuse.952f4739.js";import{a as Gn}from"./axios.e3200588.js";import{a0 as Ft}from"./@ant-design.bcfb08ae.js";/* empty css */import{d as Kn}from"./dayjs.38e390ea.js";import{S as Jn}from"./sortablejs.412b554c.js";import{C as Qn}from"./clipboard.099d05c9.js";import{h as ta,H as na,f as zt,m as aa}from"./markdown-it.80c3a67b.js";import{r as ea,m as oa}from"./markdown-it-emoji.e3e91710.js";import{e as ra}from"./escape-html.e5dfadb9.js";import{P as _t}from"./prismjs.c97a8414.js";import{r as ia}from"./diacritics.6be19c75.js";import{m as pn}from"./markdown-it-container.512a5043.js";import{b as $t}from"./markdown-it-anchor.c88e5394.js";import{m as la}from"./markdown-it-attrs.3af5ab50.js";import{m as sa}from"./markdown-it-table-of-contents.8a4ce16f.js";import{V as cn,v as pa}from"./@kangc.86f7507c.js";import"./@babel.6cd0804c.js";import"./regenerator-runtime.8e24db72.js";import"./resize-observer-polyfill.8deb1e21.js";import"./vue-types.6e6d84ba.js";import"./@ctrl.fa7cbd46.js";import"./dom-align.f1b5d360.js";import"./lodash-es.0ea26897.js";import"./async-validator.5d25c98b.js";import"./scroll-into-view-if-needed.5191fdbf.js";import"./compute-scroll-into-view.6058b3be.js";import"./vue-demi.5fb18120.js";import"./entities.0d2c0164.js";import"./uc.micro.981ceb7b.js";import"./mdurl.ef76b4dc.js";import"./linkify-it.92c30060.js";const ca=function(){const n=document.createElement("link").relList;if(n&&n.supports&&n.supports("modulepreload"))return;for(const e of document.querySelectorAll('link[rel="modulepreload"]'))o(e);new MutationObserver(e=>{for(const r of e)if(r.type==="childList")for(const i of r.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&o(i)}).observe(document,{childList:!0,subtree:!0});function a(e){const r={};return e.integrity&&(r.integrity=e.integrity),e.referrerpolicy&&(r.referrerPolicy=e.referrerpolicy),e.crossorigin==="use-credentials"?r.credentials="include":e.crossorigin==="anonymous"?r.credentials="omit":r.credentials="same-origin",r}function o(e){if(e.ep)return;e.ep=!0;const r=a(e);fetch(e.href,r)}};ca();var st=(t,n)=>{const a=t.__vccOpts||t;for(const[o,e]of n)a[o]=e;return a};const da={class:"tabs"},ma={class:"left"},ua=["onClick"],ba={class:"right"},ga={class:"tool"},fa={name:"ExTabs"},ha=Object.assign(fa,{setup(t){const n=xt(),a=jn(),o=et(),e=It(()=>o.tabTags);function r(){a.back()}function i(w){lt(w)}function d(w){o.tabTags.length>1&&(o.tabTags.splice(w,1),a.push(o.tabTags[o.tabTags.length-1].url))}function x({key:w}){if(w==="left"){const p=Ot(e,"url",n.fullPath);o.tabTags.splice(0,p)}else if(w==="right"){const p=Ot(e,"url",n.fullPath);o.tabTags.splice(p+1)}else w==="other"&&(o.tabTags=o.tabTags.filter(p=>n.fullPath===p.url))}return(w,p)=>{const y=v("a-badge"),X=v("close-outlined"),_=v("ArrowLeftOutlined"),Y=v("a-tooltip"),Z=v("MoreOutlined"),O=v("CloseOutlined"),T=v("a-menu-item"),s=v("ArrowRightOutlined"),k=v("a-menu"),b=v("a-dropdown");return h(),D("div",da,[$("div",ma,[(h(!0),D(H,null,it(l(e),(I,c)=>(h(),D("div",{class:dt(["item",I.url==l(n).fullPath?"active":""]),onClick:f=>i(I.url)},[m(y,{color:I.url===l(n).fullPath?"green":"#CCCCCC"},null,8,["color"]),$("span",null,C(I.name),1),m(X,{onClick:tn(f=>d(c),["stop"]),class:"close"},null,8,["onClick"])],10,ua))),256))]),$("div",ba,[m(Y,{placement:"bottom"},{title:u(()=>[$("span",null,C(l(S)("TabsTag.back")),1)]),default:u(()=>[$("div",{class:"tool",onClick:r},[m(_)])]),_:1}),m(b,null,{overlay:u(()=>[m(k,{onClick:x},{default:u(()=>[m(T,{key:"other"},{icon:u(()=>[m(O)]),default:u(()=>[F(" "+C(l(S)("TabsTag.closeOther")),1)]),_:1}),m(T,{key:"left"},{icon:u(()=>[m(_)]),default:u(()=>[F(" "+C(l(S)("TabsTag.closeLeft")),1)]),_:1}),m(T,{key:"right"},{icon:u(()=>[m(s)]),default:u(()=>[F(" "+C(l(S)("TabsTag.closeRight")),1)]),_:1})]),_:1})]),default:u(()=>[$("div",ga,[m(Z)])]),_:1})])])}}});var xa=st(ha,[["__scopeId","data-v-1bd1daac"]]);const wa={name:"ExBreadcrumb"},ka=Object.assign(wa,{props:{type:String},setup(t){const n=xt(),a=et(),o=at([]);return Dt(()=>{const e=ut(a.menus,"url",n.fullPath.substr(1));e&&(o.value=Wa(a.menus,e.id))}),(e,r)=>{const i=v("a-breadcrumb-item"),d=v("a-breadcrumb");return h(),L(d,{class:dt(["breadcrumb",t.type])},{default:u(()=>[(h(!0),D(H,null,it(o.value,x=>(h(),L(i,null,{default:u(()=>[F(C(x.name),1)]),_:2},1024))),256))]),_:1},8,["class"])}}});var dn=st(ka,[["__scopeId","data-v-7ccf4265"]]);const va={class:"header-title"},ya={class:"title"},za={key:0,class:"desc"},_a=nn({name:"headerTitle",props:{title:String,description:String}}),Ia=Object.assign(_a,{setup(t){const n=et();return(a,o)=>(h(),D("div",va,[$("div",null,[$("span",ya,C(a.title),1),a.description?(h(),D("span",za,C(a.description),1)):N("",!0)]),l(n).isMobile?N("",!0):(h(),L(dn,{key:0}))]))}});var Sa=st(Ia,[["__scopeId","data-v-0d1d3ff8"]]);const Oa={setup(t){const n=xt(),a=et(),o=It(()=>a.tabTags.map(i=>i.url)),e=It(()=>{const i=Ot(a.tabTags,"url",n.fullPath);if(i>-1){const d=n.fullPath;if(!St().appContext.components[d]){const x=a.tabTags[i].component;St().appContext.app.component(d,{name:d,render(){return r(x)}})}return d}else return r(a.component)});function r(i){return i&&(i.attribute.ex_admin_title?G(H,[G(Sa,{title:i.attribute.ex_admin_title,description:i.attribute.ex_admin_description}),G(v("render"),{data:i})]):G(v("render"),{data:i}))}return(i,d)=>{const x=v("a-back-top"),w=v("a-spin"),p=v("a-layout");return h(),L(p,null,{default:u(()=>[l(a).tabs?(h(),L(xa,{key:0})):N("",!0),m(p,{class:"mainContainer"},{default:u(()=>[m(x),m(w,{spinning:l(a).loading,style:{position:"fixed",left:"50%"}},null,8,["spinning"]),(h(),L(En,{include:l(o)},[(h(),L(Cn(l(e))))],1032,["include"]))]),_:1})]),_:1})}}};var Yt=st(Oa,[["__scopeId","data-v-fc407ed0"]]);const Ma=["href"],ja=["src"],Ra={key:0},La={setup(t){const n=et();return(a,o)=>(h(),D("div",{class:dt(["logo",(l(n).layout=="sider"||l(n).isMobile)&&(l(n).menu_theme=="light"||l(n).menu_theme=="dark"&&l(n).navigationMode=="topMenuLayout")?"black":""])},[$("a",{href:l(n).systemInfo.logo_href},[$("img",{src:l(n).systemInfo.logo},null,8,ja)],8,Ma),l(n).systemInfo.name&&!l(n).sidebar.collapsed?(h(),D("span",Ra,C(l(n).systemInfo.name),1)):N("",!0)],2))}};var mn=st(La,[["__scopeId","data-v-1c0c4ce2"]]);const Ea={name:"ExMenuItem"},un=Object.assign(Ea,{props:{menu:[Object,Array]},setup(t){return(n,a)=>{const o=v("ex-icon"),e=v("menu-item",!0),r=v("a-sub-menu"),i=v("a-menu-item");return t.menu.children&&t.menu.status==1?(h(),L(r,{key:t.menu.id},{icon:u(()=>[t.menu.icon?(h(),L(o,{key:0,icon:t.menu.icon},null,8,["icon"])):N("",!0)]),title:u(()=>[F(C(t.menu.name),1)]),default:u(()=>[(h(!0),D(H,null,it(t.menu.children,d=>(h(),D(H,{key:d.id},[t.menu.status==1?(h(),L(e,{key:0,menu:d},null,8,["menu"])):N("",!0)],64))),128))]),_:1})):t.menu.status==1?(h(),L(i,{key:t.menu.id,info:t.menu},{default:u(()=>[t.menu.icon?(h(),L(o,{key:0,icon:t.menu.icon,style:{"margin-right":"10px"}},null,8,["icon"])):N("",!0),$("span",null,C(t.menu.name),1)]),_:1},8,["info"])):N("",!0)}}});const Ca={key:0,class:"sideMenuBar scrollbar"},Da=["onClick"],Za={class:"text"},Aa={name:"ExSidebar"},Na=Object.assign(Aa,{setup(t){const n=xt(),a=et(),o=at([]),e=at([]);o.value=gn(a.menus,"id","open").map(x=>x);const r=It(()=>{let x=[];return a.navigationMode==="sideMenuLayout"||a.isMobile?x=a.menus:a.menus.forEach(w=>{w.id==a.topMenuSelectKey&&w.children&&(x=w.children)}),B.sidebarVisible(x.length>0),x});Dt(()=>{let x=[],w=ut(r.value,"url",n.fullPath.substr(1));w&&(x=[w.id]),e.value=x});function i({item:x}){lt(x.info.url)}function d(x){if(x.children){let w=Mt(x.children);lt(w.url)}else lt(x.url)}return(x,w)=>{const p=v("ex-icon"),y=v("a-menu"),X=v("a-layout-sider");return h(),D(H,null,[!l(a).isMobile&&l(a).layout=="sider"&&l(a).navigationMode=="sideTopMenuLayout"?(h(),D("div",Ca,[(h(!0),D(H,null,it(l(a).menus,_=>(h(),D(H,null,[_.status==1?(h(),D("div",{key:0,class:dt(["item",l(a).topMenuSelectKey==_.id?"selected":""]),onClick:Y=>d(_)},[m(p,{icon:_.icon},null,8,["icon"]),$("div",Za,C(_.name),1)],10,Da)):N("",!0)],64))),256))])):N("",!0),ct(m(X,{width:l(a).sidebar.width,collapsedWidth:60,class:dt(["sider",l(a).isMobile?"mobile":"block-sider",l(a).layout=="headerSider"?"headerSider":""]),theme:l(a).menu_theme,collapsed:l(a).sidebar.collapsed,"onUpdate:collapsed":w[2]||(w[2]=_=>l(a).sidebar.collapsed=_)},{default:u(()=>[l(a).layout=="sider"||l(a).isMobile?(h(),L(mn,{key:0})):N("",!0),m(y,{selectedKeys:e.value,"onUpdate:selectedKeys":w[0]||(w[0]=_=>e.value=_),openKeys:o.value,"onUpdate:openKeys":w[1]||(w[1]=_=>o.value=_),mode:"inline",class:"scrollbar",theme:l(a).menu_theme,onSelect:i,style:Dn({borderRight:0,height:l(a).layout=="sider"?"calc(100% - 55px)":"100%",borderRadius:"5px"})},{default:u(()=>[(h(!0),D(H,null,it(l(r),_=>(h(),L(un,{menu:_,key:_.id},null,8,["menu"]))),128))]),_:1},8,["selectedKeys","openKeys","theme","style"])]),_:1},8,["width","class","theme","collapsed"]),[[gt,["sideTopMenuLayout","sideMenuLayout"].indexOf(l(a).navigationMode)>-1&&l(a).sidebar.visible]])],64)}}});var Xt=st(Na,[["__scopeId","data-v-51f4182a"]]);const Ta={props:{modelValue:Boolean},emits:["update:modelValue"],setup(t,{emit:n}){const a=t,o=at(a.modelValue);ot(()=>a.modelValue,p=>{o.value=p}),ot(o,p=>{n("update:modelValue",p)});const e=et();let r={sidebar:{}};const i=["lang","layout","theme","header_background","theme_color","menu_theme","navigationMode","tabs","sidebar.color","sidebar.background","sidebar.menu_num","sidebar.visible","sidebar.width","sidebar.collapsed"],d=window["App-Name"]+"_setting";if(localStorage.getItem(d)){r=JSON.parse(localStorage.getItem(d));for(let p in r)K(e,p,J(r,p))}x(e.theme_color),B.changeTheme(e.theme),B.setSiderMenuNum(e.sidebar.menu_num),B.setSiderMenuSelectedColor(e.sidebar.color),B.changeTopMenuColor(e.header_background),B.changeSiderMenuColor(e.sidebar.background),ot(e,p=>{i.forEach(y=>{K(r,y,J(p,y))}),localStorage.setItem(d,JSON.stringify(r))},{deep:!0}),ot(()=>e.lang.default,p=>{Bn.set("ex_admin_lang",p),location.reload()});function x(p){Fn.config({theme:{primaryColor:p}})}function w(){localStorage.removeItem(d),location.reload()}return ot(()=>e.sidebar.color,p=>{B.setSiderMenuSelectedColor(p)}),ot(()=>e.sidebar.menu_num,p=>{B.setSiderMenuNum(p)}),ot(()=>e.header_background,p=>{B.changeTopMenuColor(p)}),ot(()=>e.sidebar.background,p=>{B.changeSiderMenuColor(p)}),ot(()=>e.theme_color,p=>{x(p)}),(p,y)=>{const X=v("SettingOutlined"),_=v("a-radio"),Y=v("a-radio-group"),Z=v("a-form-item"),O=v("ExColorPicker"),T=v("a-switch"),s=v("a-divider"),k=v("a-input-number"),b=v("a-button"),I=v("a-form"),c=v("a-drawer");return h(),D(H,null,[m(X,{onClick:y[0]||(y[0]=f=>o.value=!0)}),m(c,{width:300,placement:"right",maskStyle:{backgroundColor:"rgba(0,0,0,0)"},visible:o.value,"onUpdate:visible":y[14]||(y[14]=f=>o.value=f)},{default:u(()=>[m(I,{layout:"vertical"},{default:u(()=>[m(Z,{label:l(S)("Setting.lang")},{default:u(()=>[m(Y,{value:l(e).lang.default,"onUpdate:value":y[1]||(y[1]=f=>l(e).lang.default=f)},{default:u(()=>[(h(!0),D(H,null,it(l(e).lang.list,(f,g)=>(h(),L(_,{value:g,key:g},{default:u(()=>[F(C(f),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1},8,["label"]),m(Z,{label:l(S)("Setting.theme_color")},{default:u(()=>[m(O,{value:l(e).theme_color,"onUpdate:value":y[2]||(y[2]=f=>l(e).theme_color=f)},null,8,["value"])]),_:1},8,["label"]),m(Z,{label:l(S)("Setting.sidebar_background")},{default:u(()=>[m(O,{value:l(e).sidebar.background,"onUpdate:value":y[3]||(y[3]=f=>l(e).sidebar.background=f)},null,8,["value"])]),_:1},8,["label"]),m(Z,{label:l(S)("Setting.sidebar_color")},{default:u(()=>[m(O,{value:l(e).sidebar.color,"onUpdate:value":y[4]||(y[4]=f=>l(e).sidebar.color=f)},null,8,["value"])]),_:1},8,["label"]),m(Z,{label:l(S)("Setting.header_background")},{default:u(()=>[m(O,{value:l(e).header_background,"onUpdate:value":y[5]||(y[5]=f=>l(e).header_background=f)},null,8,["value"])]),_:1},8,["label"]),m(Z,{label:l(S)("Setting.layout")},{default:u(()=>[m(Y,{value:l(e).layout,"onUpdate:value":y[6]||(y[6]=f=>l(e).layout=f)},{default:u(()=>[m(_,{value:"headerSider"},{default:u(()=>[F(C(l(S)("Setting.header_sider")),1)]),_:1}),m(_,{value:"sider"},{default:u(()=>[F(C(l(S)("Setting.sider")),1)]),_:1})]),_:1},8,["value"])]),_:1},8,["label"]),m(Z,{label:l(S)("Setting.menu_style")},{default:u(()=>[m(Y,{value:l(e).menu_theme,"onUpdate:value":y[7]||(y[7]=f=>l(e).menu_theme=f)},{default:u(()=>[m(_,{value:"light"},{default:u(()=>[F(C(l(S)("Setting.light")),1)]),_:1}),m(_,{value:"dark"},{default:u(()=>[F(C(l(S)("Setting.dark")),1)]),_:1})]),_:1},8,["value"])]),_:1},8,["label"]),m(Z,{label:l(S)("Setting.menu_layout")},{default:u(()=>[m(Y,{value:l(e).navigationMode,"onUpdate:value":y[8]||(y[8]=f=>l(e).navigationMode=f)},{default:u(()=>[m(_,{value:"sideTopMenuLayout"},{default:u(()=>[F(C(l(S)("Setting.header_sider")),1)]),_:1}),m(_,{value:"sideMenuLayout"},{default:u(()=>[F(C(l(S)("Setting.sider")),1)]),_:1}),m(_,{value:"topMenuLayout"},{default:u(()=>[F(C(l(S)("Setting.header")),1)]),_:1})]),_:1},8,["value"])]),_:1},8,["label"]),m(Z,{label:l(S)("Setting.tabs")},{default:u(()=>[m(T,{checked:l(e).tabs,"onUpdate:checked":y[9]||(y[9]=f=>l(e).tabs=f)},null,8,["checked"])]),_:1},8,["label"]),m(s,null,{default:u(()=>[F(C(l(S)("Setting.sidebar.label")),1)]),_:1}),m(Z,{label:l(S)("Setting.sidebar.width")},{default:u(()=>[m(k,{value:l(e).sidebar.width,"onUpdate:value":y[10]||(y[10]=f=>l(e).sidebar.width=f)},null,8,["value"])]),_:1},8,["label"]),m(Z,{label:l(S)("Setting.sidebar.menu_num")},{default:u(()=>[m(k,{value:l(e).sidebar.menu_num,"onUpdate:value":y[11]||(y[11]=f=>l(e).sidebar.menu_num=f)},null,8,["value"])]),_:1},8,["label"]),m(Z,{label:l(S)("Setting.sidebar.visible")},{default:u(()=>[m(T,{checked:l(e).sidebar.visible,"onUpdate:checked":y[12]||(y[12]=f=>l(e).sidebar.visible=f)},null,8,["checked"])]),_:1},8,["label"]),m(Z,{label:l(S)("Setting.sidebar.collapsed")},{default:u(()=>[m(T,{checked:l(e).sidebar.collapsed,"onUpdate:checked":y[13]||(y[13]=f=>l(e).sidebar.collapsed=f)},null,8,["checked"])]),_:1},8,["label"]),m(Z,null,{default:u(()=>[m(b,{onClick:w},{default:u(()=>[F(C(l(S)("Setting.defualt")),1)]),_:1})]),_:1})]),_:1})]),_:1},8,["maskStyle","visible"])],64)}}},jt=window["App-Name"]+"_ex-admin-token",yt={get:function(){return localStorage.getItem(jt)},set(t){localStorage.setItem(jt,t)},clear(){localStorage.removeItem(jt)}};const Ua={style:{"margin-left":"20px"}},Ba={class:"navbar-right"},Fa={class:"item"},$a={class:"item"},Ya={class:"account-name"},Xa={setup(t){const n=xt(),a=et(),o=at([]),e=at(!1);Dt(()=>{o.value=[a.topMenuSelectKey]});function r(){B.loadComponent(n.fullPath,!0)}function i({key:w,item:p}){if(p.info.children){let y=Mt(p.info.children);lt(y.url)}else lt(p.info.url)}function d(){a.theme=="light"?B.changeTheme("dark"):B.changeTheme("light")}function x(){ln.confirm({title:S("Logout.title"),content:S("Logout.content"),onOk(){B.logout(n.fullPath)}})}return(w,p)=>{const y=v("menu-unfold-outlined"),X=v("menu-fold-outlined"),_=v("ex-icon"),Y=v("a-menu-item"),Z=v("a-menu"),O=v("render"),T=v("ReloadOutlined"),s=v("a-tooltip"),k=v("a-avatar"),b=v("a-menu-divider"),I=v("a-dropdown"),c=v("a-layout-header");return h(),L(c,{class:dt(["header",l(a).layout=="headerSider"?"header-sider":""])},{default:u(()=>[!l(a).isMobile&&(l(a).layout=="headerSider"||l(a).navigationMode=="topMenuLayout")?(h(),L(mn,{key:0})):N("",!0),$("div",Ua,[["sideTopMenuLayout","sideMenuLayout"].indexOf(l(a).navigationMode)>-1&&l(a).sidebar.visible||l(a).isMobile?(h(),D(H,{key:0},[l(a).sidebar.collapsed?(h(),L(y,{key:0,class:"fold",onClick:p[0]||(p[0]=f=>l(B).collapsed(!1))})):N("",!0),l(a).sidebar.collapsed?N("",!0):(h(),L(X,{key:1,class:"fold",onClick:p[1]||(p[1]=f=>l(B).collapsed(!0))}))],64)):N("",!0)]),!l(a).isMobile&&(l(a).layout=="headerSider"&&l(a).navigationMode=="sideMenuLayout"||l(a).layout=="sider"&&["sideTopMenuLayout","sideMenuLayout"].indexOf(l(a).navigationMode)>-1)?(h(),L(dn,{key:1,type:l(a).layout=="headerSider"&&l(a).navigationMode=="sideMenuLayout"?"white":""},null,8,["type"])):N("",!0),!l(a).isMobile&&["sideTopMenuLayout","topMenuLayout"].indexOf(l(a).navigationMode)>-1&&l(a).layout=="headerSider"||l(a).layout=="sider"&&l(a).navigationMode=="topMenuLayout"?(h(),L(Z,{key:2,selectedKeys:o.value,"onUpdate:selectedKeys":p[2]||(p[2]=f=>o.value=f),theme:l(a).layout=="sider"?"light":"dark",mode:"horizontal",onSelect:i,style:{lineHeight:"54px",flex:"1",width:0}},{default:u(()=>[l(a).navigationMode=="sideTopMenuLayout"?(h(!0),D(H,{key:0},it(l(a).menus,f=>(h(),D(H,null,[f.status==1?(h(),L(Y,{key:f.id,info:f},{icon:u(()=>[m(_,{icon:f.icon},null,8,["icon"])]),default:u(()=>[F(" "+C(f.name),1)]),_:2},1032,["info"])):N("",!0)],64))),256)):(h(!0),D(H,{key:1},it(l(a).menus,f=>(h(),L(un,{menu:f,key:f.id},null,8,["menu"]))),128))]),_:1},8,["selectedKeys","theme"])):N("",!0),$("div",Ba,[(h(!0),D(H,null,it(l(a).systemInfo.navbarRight,f=>(h(),D("div",Fa,[m(O,{data:f},null,8,["data"])]))),256)),m(s,null,{title:u(()=>[$("span",null,C(l(S)("Header.refresh")),1)]),default:u(()=>[$("div",{class:"item",onClick:r},[m(T)])]),_:1}),m(s,null,{title:u(()=>[$("span",null,C(l(a).theme=="light"?l(S)("Header.light"):l(S)("Header.dark")),1)]),default:u(()=>[$("div",{class:"item",onClick:d},[$("i",{class:dt([l(a).theme=="light"?"far fa-moon":"fas fa-sun"])},null,2)])]),_:1}),$("div",{class:"item",onClick:p[4]||(p[4]=f=>e.value=!0)},[m(Ta,{modelValue:e.value,"onUpdate:modelValue":p[3]||(p[3]=f=>e.value=f)},null,8,["modelValue"])]),l(yt).get()?(h(),L(I,{key:0},{overlay:u(()=>[m(Z,null,{default:u(()=>[(h(!0),D(H,null,it(l(a).systemInfo.adminDropdown,f=>(h(),L(O,{data:f},null,8,["data"]))),256)),m(b),m(Y,null,{default:u(()=>[$("span",{onClick:x},C(l(S)("Logout.title")),1)]),_:1})]),_:1})]),default:u(()=>[$("div",$a,[m(k,{size:"35",src:l(a).systemInfo.user_info.avatar},null,8,["src"]),$("span",Ya,C(l(a).systemInfo.user_info.nickname),1)])]),_:1})):N("",!0)])]),_:1},8,["class"])}}};var Pt=st(Xa,[["__scopeId","data-v-74b14ca8"]]);const Pa={name:"ExIndex"},qa=Object.assign(Pa,{setup(t){const n=et();return(a,o)=>{const e=v("a-layout");return h(),L(e,{class:dt(l(n).menu_theme),style:{height:"100%"}},{default:u(()=>[l(n).isMobile||l(n).layout=="sider"?(h(),D(H,{key:0},[m(Xt),m(e,null,{default:u(()=>[m(Pt),m(Yt)]),_:1}),ct($("div",{class:"mark",onClick:o[0]||(o[0]=r=>l(B).collapsed(!0))},null,512),[[gt,l(n).isMobile&&!l(n).sidebar.collapsed]])],64)):l(n).layout=="headerSider"?(h(),D(H,{key:1},[m(Pt),m(e,null,{default:u(()=>[m(Xt),m(Yt)]),_:1})],64)):N("",!0)]),_:1},8,["class"])}}});var bn=st(qa,[["__scopeId","data-v-2ccdb2c2"]]);const Va={name:"ExCommon"},Et=Object.assign(Va,{setup(t){const n=et();return(a,o)=>{const e=v("render");return h(),L(e,{data:l(n).component},null,8,["data"])}}}),Ha=[{name:"common",path:"/common/:pathMatch(.*)",component:Et},{name:"admin",path:"/:pathMatch(.*)",component:bn}],nt=Rn({history:Ln(),routes:Ha});nt.beforeEach(async(t,n,a)=>(t.path.indexOf(j.commonRoutePrefix)!==0&&t.path!==j.loginRoute&&!j.systemInfo&&await B.systemInfo(),t.fullPath!=="/"&&t.fullPath!=="/common/curd"&&await B.loadComponent(t.fullPath),B.watchRouteMenu(t.fullPath),a()));nt.afterEach(t=>{});function wt(t,n){let a=document.getElementsByTagName("head")[0];const o=a.getElementsByTagName("style");if(o.length>0)for(let r in o)try{o[r].getAttribute("data-type")===n&&o[r].remove()}catch{}let e=document.createElement("style");e.dataset.type=n,e.innerHTML=t,a.appendChild(e)}function Ot(t,n,a){return t.findIndex(o=>o[n]===a)}function K(t,n,a){const o=n.split("."),e=o.length-1;o.reduce((r,i,d)=>(d===e?r[i]=a:r[i]===void 0&&(r[i]={}),r[i]),t)}function J(t,n,a=void 0){const o=n.split(".");let e=t,r=0;for(let i=0;i1)){o>1&&o--;let i=ut(t[r][e],n,a,o);if(i)return i}}return null}function Wa(t,n,a="id",o="pid",e="children"){let r=[],i;do i=ut(t,a,n,-1,e),i&&(r.unshift(i),n=i[o]);while(i);return r}function Ga(t){return t.className.indexOf("ant-modal")>-1||t.className.indexOf("ant-drawer")>-1?t:t.parentElement?Ga(t.parentElement):null}function Ka(t,n=[]){for(let a in n)if(t.className.indexOf(n[a])>-1)return 0;return t.offsetParent?Ka(t.offsetParent,n)+t.offsetTop:t.offsetTop}function Ja(t,n){let a;do if(a=ut(t,"id",n),a&&(n=a.pid,n===0))break;while(a);return a}function gn(t,n,a){let o=[],e=[];const r=t.filter(i=>(i.children&&(o=o.concat(gn(i.children,n,a))),!!i[a]));return o=o.concat(r),e=o.map(i=>i[n]?i[n]:i),e}function Qa(t){return new Promise((n,a)=>{Xn(t,o=>{n(o)})})}function S(t,n={}){let a=J(j.locale,t);for(let o in n)a=a.replace("{"+o+"}",n[o]);return a}function Vt(t,n){if(n>0){const a=t[n-1];t[n-1]=t[n],t[n]=a}}function Ht(t,n){if(n0;a--)t[a-1]==n&&t.splice(a-1,1)}function gr(t){if(!t&&t!==0||Array.isArray(t)&&t.length==0)return!0}function fr(t,n,a,o){let e=JSON.parse(JSON.stringify(t));return e.filter(r=>{let i=e.filter(d=>r[n]==d[a]);return i.length>0&&(r[o]=i),r[a]==0})}function hr(t){var n=File.prototype.slice||File.prototype.mozSlice||File.prototype.webkitSlice,a=2097152,o=Math.ceil(t.size/a),e=0,r=new Yn,i={},d=new FileReader;d.onload=function(p){r.appendBinary(p.target.result),e+=1,i.onProgress&&i.onProgress(parseInt(e/o*100)),e=t.size?t.size:p+a;d.readAsBinaryString(n.call(t,p,y))}return w(),{watch:x}}function te(t){var n={},a=t.length==4?4:8,o=(1<>=a,n[e]=a==4?17*r:r}),n)}function ne(t,n,a=[]){ft.exports.forEach(t,function(o,e){let r=[...a];r.push(e);let i=r.join(".");if(n.indexOf(i)>-1)delete t[e];else if(Array.isArray(o)){let d=[...a];d.push(e),ft.exports.forEach(o,function(x){ne(x,n,d)})}})}function ht(t,n=!1,a=[],o=null){return new Promise((e,r)=>{if(n){if(a.length==0)return pt.warn(S("Grid.selectedAction"));t.data&&(t.data={}),t.data.selected=a}t.data&&t.data.ex_admin_ajax_action&&o&&Object.assign(t.data,o.grid.exposed.requestDataParams()),t.method.toUpperCase()==="GET"&&(t.params=t.data),rt(t).then(i=>{e(i)}).catch(i=>{r(i)})})}const fn=Symbol("grid");function xr(t){an(fn,t)}function ae(){return Zt(fn,null)}const hn=Symbol("render");function ee(t){an(hn,t)}function wr(){return Zt(hn,null)}const Rt=(t,n)=>{const a=new RegExp(`<${n}[^>]*>`);let o=t.match(a);if(o)o=o[0];else return"";return t.slice(t.indexOf(o)+o.length,t.lastIndexOf(``))};var oe=(t,n)=>{let a=Rt(n,"script").replace(/export default/,"return "),o=Rt(n,"style"),e=Rt(n,"template");if(o){let i=[],d=o.match(/(\.[a-zA-Z0-9\-_:\s]*?)\{/sg);d&&(d.forEach(x=>{x=x.replace(/\s/,"").replace("{","").replace(".","").trim();let w=new RegExp(`(class=["']`+x+`["'])`,"g"),p=new RegExp(`(class=["']s`+x+`["'])`,"g");i.push(x),e=e.replace(w,"$1 data-v-"+t),e=e.replace(p,"$1 data-v-"+t)}),o=o.replace(/\.([a-zA-Z0-9\-_].*?)\{.*?\}/sg,function(x,w){return i.indexOf(w)>-1?x.replace(w,w.trim()+"[data-v-"+t+"]"):x.trim()}))}let r=Ut(tt({},new Function(a)()),{template:e});return r.beforeCreate=function(){const{unload:i}=Pn(o);qn(i)},r};const vt=nn({name:"render",props:{data:{type:[String,Object],default:""},scopeProp:{type:Object,default:{}},context:{type:Object,default:{}}},render(){if(this.data){const t=Bt(this.data);this.setProxyData(t,1);let n=[],a=[];return t.where&&(n=t.where.AND||[],a=t.where.OR||[]),this.where(n,a)?this.renderComponent(t,this.scopeProp):null}return null},setup(t,n){const a=St();let o=ae(),e;const r=en(t.context),i=[];ee(r),ot(()=>t.data,(s,k)=>{k&&T(k,0)}),At(()=>{i.forEach(s=>{delete a.appContext.components[s]}),t.data&&T(t.data,0)});function d(s,k){if(!s.attribute)return;let b={},I,c=tt({},s.attribute),f=null;k&&k.row?(f=k.row,c.hasManyRow=f):f=r,s.name=="DraggableRender"&&(c.scopeProp=k);for(let g in s.bindAttribute)if(g==="ref"){const E=at();s.name=="ExForm"&&(e=E),r[s.bindAttribute[g]]=E,c[g]=E}else if(typeof s.bindAttribute[g]=="string")c[g]=J(f,s.bindAttribute[g]);else if(typeof s.bindAttribute[g]=="object"){let E={};ft.exports.forEach(s.bindAttribute[g],function(A,M){E[M]=J(f,A)}),c[g]?Object.assign(c[g],E):c[g]=E}for(let g in s.bindFunction)c[g]=new Function(...s.bindFunction[g]);s.bindExpose&&s.bindExpose.forEach(g=>{J(r,g.ref)&&(c[g.attr]=J(r,g.ref)[g.expose])});for(let g in s.modelBind){let E=s.modelBind[g];c[g]=J(f,E,J(r,E)),g==="value"&&c.changeLoadOptions&&(c.changeLoadOptions=c.changeLoadOptions.map(A=>({params:A,updateObject:f}))),c["onUpdate:"+g]=A=>{if(s.name=="ARangePicker"||s.name=="ATimeRangePicker"||s.name=="ExNumberRange")c.startField==c.endField?K(f,c.startField,A):A==null?(K(f,c.startField,null),K(f,c.endField,null)):(K(f,c.startField,A[0]),K(f,c.endField,A[1]));else if(s.name=="ExCascader")if(s.attribute.multiple&&s.attribute.relation){let M=[];A.forEach(P=>{let R={};s.attribute.bindField.forEach((U,W)=>{R[U]=P[W]||0}),M.push(R)}),K(f,s.attribute.relation,M)}else s.attribute.bindField&&(A?s.attribute.bindField.forEach((M,P)=>{K(f,M,A[P]||0)}):s.attribute.bindField.forEach(M=>{K(f,M,null)}));K(f,E,A)}}for(let g in s.event){let E=[],A=g;g.indexOf(".")>-1&&(E=g.split("."),A=E.shift()),!s.event.Focus&&A==="Blur"&&(s.name==="AInput"||s.name==="AInputNumber"||s.name==="AAutoComplete")&&(c.onFocus=P=>{s.attribute.exFocusValue=P.target.value},s.event["Keyup.enter"]=JSON.parse(JSON.stringify(s.event[g]))),s.event[g].custom&&s.event[g].custom.forEach(P=>{P.type==="Modal"&&(s.modal.initModal=function(){let R=P.params;if(s.modal.init=!0,R.url){let U;s.modal.attribute.gridBatch&&(U=o.exposed.selectIds.value),ht(R,s.modal.attribute.gridBatch,U).then(W=>{if(W.name==="ExForm"){const Q=W.content.footer||[];delete W.content.footer,delete s.modal.attribute.footer,s.modal.content.footer=Q,W.bindAttribute.stepCurrent&&(s.modal.name=="AModal"?s.modal.event.Cancel={custom:[{type:"GridRefresh",params:[]}]}:s.modal.event.Close={custom:[{type:"GridRefresh",params:[]}]}),W.event.Success&&W.event.Success.custom.forEach(function(mt){mt.type==="CloseModal"&&(mt.params=R.modal)})}T(W,1),R.data.GridRefreshOff&&W.event.Success.custom.forEach((Q,mt)=>{Q.type=="GridRefresh"&&W.event.Success.custom.splice(mt,1)}),s.modal.content.default=[W],K(r,R.modal,!0)})}else K(r,R.modal,!0)})});let M=function(P){if(!(s.attribute.hasOwnProperty("exFocusValue")&&s.attribute.exFocusValue==P.target.value)){if(n.emit(A),typeof s.event[g]=="function")return s.event[g].call(null,P);s.event[g].variable&&s.event[g].variable.forEach(R=>{for(let U in R)K(r,U,R[U])}),s.event[g].function&&s.event[g].function.forEach(R=>{let U=J(r,R.ref);if(U){if(R.conditionFunction&&!new Function(...R.conditionFunction)(P))return;J(U,R.function).apply(U,R.params)}}),s.event[g].custom&&s.event[g].custom.forEach(R=>{let U=R.params;if(R.type==="Modal")s.modal.initModal();else if(R.type==="CloseModal"&&U.length>0)K(r,U,!1);else if(R.type==="GridRefresh"&&o)o.exposed.refresh.apply(o.exposed,R.params);else if(R.type==="ChangeLoadOptions")x(U,P,f);else if(R.type==="Function")new Function(...U)(...arguments);else if(R.type==="GridEditable"){U.ajax.data.data={};let W=r[U.bindField];W===void 0&&(W=null),U.ajax.data.data[U.ex_admin_field]=W,ht(U.ajax).then(Q=>{U.ex_admin_success&&o.exposed.refresh()})}})}};A=="Keyup"?c["on"+A]=on(M,E):E.length>0?c["on"+A]=tn(M,E):c["on"+A]=M}for(let g in s.content)b[g]=E=>(E===void 0||!An(E)&&E instanceof Object&&Object.keys(E).length==0?E=k:E=Object.assign(JSON.parse(JSON.stringify(k)),E),w(s.content[g],E));if(s.name==="html")return s.attribute["data-tag"]==="component"?(v(c.key)===c.key&&(St().appContext.app.component(c.key,oe(c.key,s.content.default[0])),i.push(c.key)),delete c["data-tag"],G(v(c.key),c)):s.attribute["html-raw"]?G({setup(){return tt({},r)},template:s.content.default.join("")}):(n.slots.default&&(b.default=n.slots.default),p(s,s.attribute["data-tag"]||"span",c,b,s.directive));if(I=v(s.name),k&&k.row){let g=k.field.split(".");g.push(k.$index),s.name=="AFormItem"?c.name=k.recursion.concat(g).concat(c.name):s.name=="ExFormMany"&&(c.recursion=k.recursion.concat(g))}if(s.name=="AFormItem"&&c.validateFormField){let g=c.name.join(".");r[c.validateFormField]||(r[c.validateFormField]={}),r[c.validateFormField][g]||(r[c.validateFormField][g]={status:null,message:null}),c.validateStatus=r[c.validateFormField][g].status,c.help=r[c.validateFormField][g].message}if(s.map&&s.map.bindName){let g=s.map.bindName,E=J(r,g)||[];return k&&k.row&&(k.row.hasOwnProperty(g)?E=k.row[g]||[]:k.row[g]=E),Array.isArray(E)||(E=[]),E.map(A=>{for(let R in s.map.attribute)c[R]=A[s.map.attribute[R]];let M=tt({},c);M.slotDefault&&(M.slotDefault instanceof Object?b.default=()=>d(Bt(M.slotDefault),{}):b.default=()=>M.slotDefault);let P=tt({},b);return p(s,I,M,P,s.directive,k)})}else return n.slots.default&&(b.default=n.slots.default),p(s,I,c,b,s.directive,k)}function x(s,k,b){s.data.value=k,e&&(s.data.data=e.value.submitData()),ht(s).then(I=>{if(I.data)for(let c in I.data)K(b,c,I.data[c])})}function w(s,k){return s.map(b=>{if(!b)return;let I=[],c=[];return b.where&&(I=b.where.AND||[],c=b.where.OR||[]),b&&typeof b.where=="object"&&(I.length>0||c.length>0)?_(I,c,k)?d(b,k):null:b&&typeof b=="object"?d(b,k):b&&typeof b=="string"&&b.indexOf("#")!==0?y(b)||X(b)?G({setup(){return tt({},r)},template:`${b}`}):G({setup(){return tt({},r)},render(){return b}}):b})}function p(s,k,b,I,c,f){delete b["data-tag"];let g=[];c=c||[],c.forEach(M=>{g.push([rn(M.name),M.value,M.argument])});let E=[],A=[];if(s.where&&(E=s.where.AND||[],A=s.where.OR||[]),Y(E,A,f,"v-show")&&g.push([gt,_(E,A,f,"v-show")]),g.length>0)return s.name==="AMenuItem"?ct(G("div",G(k,b,I)),g):ct(G(k,b,I),g);if(["AModal","ADrawer"].indexOf(s.name)>-1&&b.reference){const M=ft.exports.cloneDeep(b.reference);if(delete M.reference,M.modal=s,s.init)if(M.name==="AMenuItem"){const P=ft.exports.cloneDeep(s);return delete P.attribute.reference,M.content.default.push(P),d(M)}else return[G(k,b,I),d(M)];else return d(M)}else return G(k,b,I)}function y(s){var k=/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/g;let b=s.match(k);if(b){let I=s.split("<").length-1;if(b.length===I)return!0}return!1}function X(s){var k=/\{\{([\w.]+)\}\}/g;return k.test(s)}function _(s,k,b,I="v-if"){if(s.length===0&&k.length===0)return!0;const c=Y(s,k,b,I);return c?new Function("return "+c)():!0}function Y(s,k,b,I="v-if"){let c=Z(s,"AND",b,I),f=Z(k,"OR",b,I);return c&&f?c+=" || "+f:f&&(c=f),c}function Z(s,k,b,I="v-if"){let c=[],f="";return s.forEach((g,E)=>{if(g.where){let A=Y(g.where.AND,g.where.OR,b,I);A&&c.push("("+A+")")}else{if(I!==g.type)return;let A;if(b&&b.row?A=J(b.row,g.field):A=J(r,g.field),Array.isArray(A)){let M;b&&b.row?M=J(b.row,g.field):M=J(r,g.field);let P=M.indexOf(g.condition),R=M.indexOf(`'${g.condition}'`);g.op=="notIn"?qt(g.condition)?c.push(`(${P} == -1 && ${R} == -1)`):c.push(`(${R} == -1)`):qt(g.condition)?c.push(`(${P} >= 0 || ${R} >= 0)`):c.push(`(${R} >= 0)`)}else{let M=g.op;g.op=="notIn"&&(M="!="),c.push("'"+A+"' "+M+" '"+g.condition+"'")}}}),k=="AND"?k="&&":k="||",f+=c.join(" "+k+" "),f}function O(){this.$forceUpdate()}function T(s,k){for(let b in s.bind){if(!r.hasOwnProperty(b)&&k===1)if(b.indexOf(".")>-1){let I=J(r,b);if(I===void 0)K(r,b,s.bind[b]);else if(Zn(I)&&typeof s.bind[b]=="object"){for(let c in s.bind[b])I.hasOwnProperty(c)||(I[c]=s.bind[b][c]);for(let c in I)s.bind[b].hasOwnProperty(c)||delete I[c]}}else r[b]=s.bind[b];r.hasOwnProperty(b)&&k===0&&delete r[b]}for(let b in s.content)s.content[b].forEach(I=>{I&&typeof I=="object"&&T(I,k)})}return{grid:o,modelValue:r,where:_,renderComponent:d,setProxyData:T,forceUpdate:O}}}),rt=Gn.create({baseURL:"/",timeout:0});rt.interceptors.request.use(t=>(t.headers["App-Name"]=window["App-Name"],t.headers["X-Requested-With"]="XMLHttpRequest",t.headers.Authorization=yt.get(),t),t=>(console.log(t),Promise.reject(t)));rt.interceptors.response.use(t=>{const n=t.data;return n.code===200?n:n.code===7e4?ht(n.data):n.code===80010?(sn.open(Wt(n.data)),Gt(n.data)):n.code===80020?(pt.open(Wt(n.data)),Gt(n.data)):typeof n=="object"&&!n.message?n:Promise.reject(n)},t=>{if(console.log("err"+t),t.code==="ECONNABORTED"||t.message==="Network Error"||t.message.includes("timeout"))pt.error("\u7F51\u7EDC\u8BF7\u6C42\u8D85\u65F6");else if(t.response.status===401)yt.clear(),nt.push(`${j.loginRoute}`),t.response.data.code!==40001&&pt.error(t.response.data.message);else if(t.response.status===500)B.openErrorPage(t.response.data);else{let n;t.response&&t.response.data.message?n=t.response.data.message:n=t.message,pt.error(n)}return Promise.reject(t)});function Wt(t){return t.message&&t.message.name&&(t.message=G(vt,{data:t.message})),t.content&&t.content.name&&(t.content=G(vt,{data:t.content})),t.description&&t.description.name&&(t.description=G(vt,{data:t.description})),t.appContext=z._context,t}function Gt(t){return t.url&&(t.url=="back"?nt.back():lt(t.url)),t.menu&&B.setMenu(t.menu),t.refresh&&B.loadComponent(nt.currentRoute.value.fullPath,!0),t.type==="success"?{code:200,data:t.data||[]}:Promise.reject()}var re=`/*! + * + * ant-design-vue v3.2.7 + * + * Copyright 2017-present, ant-design-vue. + * All rights reserved. + * + */[class*=ant-] input::-ms-clear,[class*=ant-] input::-ms-reveal,[class*=ant-]::-ms-clear,[class^=ant-] input::-ms-clear,[class^=ant-] input::-ms-reveal,[class^=ant-]::-ms-clear{display:none}body,html{height:100%;width:100%}input::-ms-clear,input::-ms-reveal{display:none}*,:after,:before{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:rgba(0,0,0,0);font-family:sans-serif;line-height:1.15}body{font-feature-settings:"tnum";background-color:#fff;color:rgba(0,0,0,.85);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:14px;font-variant:tabular-nums;line-height:1.5715;margin:0}[tabindex="-1"]:focus{outline:none!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{color:rgba(0,0,0,.85);font-weight:500;margin-bottom:.5em;margin-top:0}p{margin-bottom:1em;margin-top:0}abbr[data-original-title],abbr[title]{border-bottom:0;cursor:help;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}address{font-style:normal;line-height:inherit;margin-bottom:1em}input[type=number],input[type=password],input[type=text],textarea{-webkit-appearance:none}dl,ol,ul{margin-bottom:1em;margin-top:0}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:500}dd{margin-bottom:.5em;margin-left:0}blockquote{margin:0 0 1em}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{-webkit-text-decoration-skip:objects;background-color:transparent;color:var(--ant-primary-color);cursor:pointer;outline:none;text-decoration:none;transition:color .3s}a:hover{color:var(--ant-primary-color-hover)}a:active{color:var(--ant-primary-color-active)}a:active,a:focus,a:hover{outline:0;text-decoration:none}a[disabled]{color:rgba(0,0,0,.25);cursor:not-allowed}code,kbd,pre,samp{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;font-size:1em}pre{margin-bottom:1em;margin-top:0;overflow:auto}figure{margin:0 0 1em}img{border-style:none;vertical-align:middle}[role=button],a,area,button,input:not([type=range]),label,select,summary,textarea{touch-action:manipulation}table{border-collapse:collapse}caption{caption-side:bottom;color:rgba(0,0,0,.45);padding-bottom:.3em;padding-top:.75em;text-align:left}button,input,optgroup,select,textarea{color:inherit;font-family:inherit;font-size:inherit;line-height:inherit;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{border:0;margin:0;min-width:0;padding:0}legend{color:inherit;display:block;font-size:1.5em;line-height:inherit;margin-bottom:.5em;max-width:100%;padding:0;white-space:normal;width:100%}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:none;outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}output{display:inline-block}summary{display:list-item}template{display:none}[hidden]{display:none!important}mark{background-color:#feffe6;padding:.2em}::-moz-selection{background:var(--ant-primary-color);color:#fff}::selection{background:var(--ant-primary-color);color:#fff}.clearfix:after,.clearfix:before{content:"";display:table}.clearfix:after{clear:both}.anticon{text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:inherit;display:inline-block;font-style:normal;line-height:0;text-align:center;text-transform:none;vertical-align:-.125em}.anticon>*{line-height:1}.anticon svg{display:inline-block}.anticon:before{display:none}.anticon .anticon-icon{display:block}.anticon>.anticon{line-height:0;vertical-align:0}.anticon[tabindex]{cursor:pointer}.anticon-spin,.anticon-spin:before{-webkit-animation:loadingCircle 1s linear infinite;animation:loadingCircle 1s linear infinite;display:inline-block}.ant-fade-appear,.ant-fade-enter,.ant-fade-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.ant-fade-appear.ant-fade-appear-active,.ant-fade-enter.ant-fade-enter-active{-webkit-animation-name:antFadeIn;animation-name:antFadeIn;-webkit-animation-play-state:running;animation-play-state:running}.ant-fade-leave.ant-fade-leave-active{-webkit-animation-name:antFadeOut;animation-name:antFadeOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.ant-fade-appear,.ant-fade-enter{opacity:0}.ant-fade-appear,.ant-fade-enter,.ant-fade-leave{-webkit-animation-timing-function:linear;animation-timing-function:linear}.fade-appear,.fade-enter,.fade-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.fade-appear.fade-appear-active,.fade-enter.fade-enter-active{-webkit-animation-name:antFadeIn;animation-name:antFadeIn;-webkit-animation-play-state:running;animation-play-state:running}.fade-leave.fade-leave-active{-webkit-animation-name:antFadeOut;animation-name:antFadeOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.fade-appear,.fade-enter{opacity:0}.fade-appear,.fade-enter,.fade-leave{-webkit-animation-timing-function:linear;animation-timing-function:linear}@-webkit-keyframes antFadeIn{0%{opacity:0}to{opacity:1}}@keyframes antFadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes antFadeOut{0%{opacity:1}to{opacity:0}}@keyframes antFadeOut{0%{opacity:1}to{opacity:0}}.ant-move-up-appear,.ant-move-up-enter,.ant-move-up-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.ant-move-up-appear.ant-move-up-appear-active,.ant-move-up-enter.ant-move-up-enter-active{-webkit-animation-name:antMoveUpIn;animation-name:antMoveUpIn;-webkit-animation-play-state:running;animation-play-state:running}.ant-move-up-leave.ant-move-up-leave-active{-webkit-animation-name:antMoveUpOut;animation-name:antMoveUpOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.ant-move-up-appear,.ant-move-up-enter{-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1);opacity:0}.ant-move-up-leave{-webkit-animation-timing-function:cubic-bezier(.6,.04,.98,.34);animation-timing-function:cubic-bezier(.6,.04,.98,.34)}.move-up-appear,.move-up-enter,.move-up-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.move-up-appear.move-up-appear-active,.move-up-enter.move-up-enter-active{-webkit-animation-name:antMoveUpIn;animation-name:antMoveUpIn;-webkit-animation-play-state:running;animation-play-state:running}.move-up-leave.move-up-leave-active{-webkit-animation-name:antMoveUpOut;animation-name:antMoveUpOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.move-up-appear,.move-up-enter{-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1);opacity:0}.move-up-leave{-webkit-animation-timing-function:cubic-bezier(.6,.04,.98,.34);animation-timing-function:cubic-bezier(.6,.04,.98,.34)}.ant-move-down-appear,.ant-move-down-enter,.ant-move-down-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.ant-move-down-appear.ant-move-down-appear-active,.ant-move-down-enter.ant-move-down-enter-active{-webkit-animation-name:antMoveDownIn;animation-name:antMoveDownIn;-webkit-animation-play-state:running;animation-play-state:running}.ant-move-down-leave.ant-move-down-leave-active{-webkit-animation-name:antMoveDownOut;animation-name:antMoveDownOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.ant-move-down-appear,.ant-move-down-enter{-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1);opacity:0}.ant-move-down-leave{-webkit-animation-timing-function:cubic-bezier(.6,.04,.98,.34);animation-timing-function:cubic-bezier(.6,.04,.98,.34)}.move-down-appear,.move-down-enter,.move-down-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.move-down-appear.move-down-appear-active,.move-down-enter.move-down-enter-active{-webkit-animation-name:antMoveDownIn;animation-name:antMoveDownIn;-webkit-animation-play-state:running;animation-play-state:running}.move-down-leave.move-down-leave-active{-webkit-animation-name:antMoveDownOut;animation-name:antMoveDownOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.move-down-appear,.move-down-enter{-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1);opacity:0}.move-down-leave{-webkit-animation-timing-function:cubic-bezier(.6,.04,.98,.34);animation-timing-function:cubic-bezier(.6,.04,.98,.34)}.ant-move-left-appear,.ant-move-left-enter,.ant-move-left-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.ant-move-left-appear.ant-move-left-appear-active,.ant-move-left-enter.ant-move-left-enter-active{-webkit-animation-name:antMoveLeftIn;animation-name:antMoveLeftIn;-webkit-animation-play-state:running;animation-play-state:running}.ant-move-left-leave.ant-move-left-leave-active{-webkit-animation-name:antMoveLeftOut;animation-name:antMoveLeftOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.ant-move-left-appear,.ant-move-left-enter{-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1);opacity:0}.ant-move-left-leave{-webkit-animation-timing-function:cubic-bezier(.6,.04,.98,.34);animation-timing-function:cubic-bezier(.6,.04,.98,.34)}.move-left-appear,.move-left-enter,.move-left-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.move-left-appear.move-left-appear-active,.move-left-enter.move-left-enter-active{-webkit-animation-name:antMoveLeftIn;animation-name:antMoveLeftIn;-webkit-animation-play-state:running;animation-play-state:running}.move-left-leave.move-left-leave-active{-webkit-animation-name:antMoveLeftOut;animation-name:antMoveLeftOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.move-left-appear,.move-left-enter{-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1);opacity:0}.move-left-leave{-webkit-animation-timing-function:cubic-bezier(.6,.04,.98,.34);animation-timing-function:cubic-bezier(.6,.04,.98,.34)}.ant-move-right-appear,.ant-move-right-enter,.ant-move-right-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.ant-move-right-appear.ant-move-right-appear-active,.ant-move-right-enter.ant-move-right-enter-active{-webkit-animation-name:antMoveRightIn;animation-name:antMoveRightIn;-webkit-animation-play-state:running;animation-play-state:running}.ant-move-right-leave.ant-move-right-leave-active{-webkit-animation-name:antMoveRightOut;animation-name:antMoveRightOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.ant-move-right-appear,.ant-move-right-enter{-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1);opacity:0}.ant-move-right-leave{-webkit-animation-timing-function:cubic-bezier(.6,.04,.98,.34);animation-timing-function:cubic-bezier(.6,.04,.98,.34)}.move-right-appear,.move-right-enter,.move-right-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.move-right-appear.move-right-appear-active,.move-right-enter.move-right-enter-active{-webkit-animation-name:antMoveRightIn;animation-name:antMoveRightIn;-webkit-animation-play-state:running;animation-play-state:running}.move-right-leave.move-right-leave-active{-webkit-animation-name:antMoveRightOut;animation-name:antMoveRightOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.move-right-appear,.move-right-enter{-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1);opacity:0}.move-right-leave{-webkit-animation-timing-function:cubic-bezier(.6,.04,.98,.34);animation-timing-function:cubic-bezier(.6,.04,.98,.34)}@-webkit-keyframes antMoveDownIn{0%{opacity:0;transform:translateY(100%);transform-origin:0 0}to{opacity:1;transform:translateY(0);transform-origin:0 0}}@keyframes antMoveDownIn{0%{opacity:0;transform:translateY(100%);transform-origin:0 0}to{opacity:1;transform:translateY(0);transform-origin:0 0}}@-webkit-keyframes antMoveDownOut{0%{opacity:1;transform:translateY(0);transform-origin:0 0}to{opacity:0;transform:translateY(100%);transform-origin:0 0}}@keyframes antMoveDownOut{0%{opacity:1;transform:translateY(0);transform-origin:0 0}to{opacity:0;transform:translateY(100%);transform-origin:0 0}}@-webkit-keyframes antMoveLeftIn{0%{opacity:0;transform:translateX(-100%);transform-origin:0 0}to{opacity:1;transform:translateX(0);transform-origin:0 0}}@keyframes antMoveLeftIn{0%{opacity:0;transform:translateX(-100%);transform-origin:0 0}to{opacity:1;transform:translateX(0);transform-origin:0 0}}@-webkit-keyframes antMoveLeftOut{0%{opacity:1;transform:translateX(0);transform-origin:0 0}to{opacity:0;transform:translateX(-100%);transform-origin:0 0}}@keyframes antMoveLeftOut{0%{opacity:1;transform:translateX(0);transform-origin:0 0}to{opacity:0;transform:translateX(-100%);transform-origin:0 0}}@-webkit-keyframes antMoveRightIn{0%{opacity:0;transform:translateX(100%);transform-origin:0 0}to{opacity:1;transform:translateX(0);transform-origin:0 0}}@keyframes antMoveRightIn{0%{opacity:0;transform:translateX(100%);transform-origin:0 0}to{opacity:1;transform:translateX(0);transform-origin:0 0}}@-webkit-keyframes antMoveRightOut{0%{opacity:1;transform:translateX(0);transform-origin:0 0}to{opacity:0;transform:translateX(100%);transform-origin:0 0}}@keyframes antMoveRightOut{0%{opacity:1;transform:translateX(0);transform-origin:0 0}to{opacity:0;transform:translateX(100%);transform-origin:0 0}}@-webkit-keyframes antMoveUpIn{0%{opacity:0;transform:translateY(-100%);transform-origin:0 0}to{opacity:1;transform:translateY(0);transform-origin:0 0}}@keyframes antMoveUpIn{0%{opacity:0;transform:translateY(-100%);transform-origin:0 0}to{opacity:1;transform:translateY(0);transform-origin:0 0}}@-webkit-keyframes antMoveUpOut{0%{opacity:1;transform:translateY(0);transform-origin:0 0}to{opacity:0;transform:translateY(-100%);transform-origin:0 0}}@keyframes antMoveUpOut{0%{opacity:1;transform:translateY(0);transform-origin:0 0}to{opacity:0;transform:translateY(-100%);transform-origin:0 0}}@-webkit-keyframes loadingCircle{to{transform:rotate(1turn)}}@keyframes loadingCircle{to{transform:rotate(1turn)}}[ant-click-animating-without-extra-node=true],[ant-click-animating=true]{position:relative}html{--antd-wave-shadow-color:var(--ant-primary-color);--scroll-bar:0}.ant-click-animating-node,[ant-click-animating-without-extra-node=true]:after{-webkit-animation:fadeEffect 2s cubic-bezier(.08,.82,.17,1),waveEffect .4s cubic-bezier(.08,.82,.17,1);animation:fadeEffect 2s cubic-bezier(.08,.82,.17,1),waveEffect .4s cubic-bezier(.08,.82,.17,1);-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;border-radius:inherit;bottom:0;box-shadow:0 0 0 0 var(--ant-primary-color);box-shadow:0 0 0 0 var(--antd-wave-shadow-color);content:"";display:block;left:0;opacity:.2;pointer-events:none;position:absolute;right:0;top:0}@-webkit-keyframes waveEffect{to{box-shadow:0 0 0 var(--ant-primary-color);box-shadow:0 0 0 6px var(--antd-wave-shadow-color)}}@keyframes waveEffect{to{box-shadow:0 0 0 var(--ant-primary-color);box-shadow:0 0 0 6px var(--antd-wave-shadow-color)}}@-webkit-keyframes fadeEffect{to{opacity:0}}@keyframes fadeEffect{to{opacity:0}}.slide-up-appear,.slide-up-enter,.slide-up-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.slide-up-appear.slide-up-appear-active,.slide-up-enter.slide-up-enter-active{-webkit-animation-name:antSlideUpIn;animation-name:antSlideUpIn;-webkit-animation-play-state:running;animation-play-state:running}.slide-up-leave.slide-up-leave-active{-webkit-animation-name:antSlideUpOut;animation-name:antSlideUpOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.slide-up-appear,.slide-up-enter{-webkit-animation-timing-function:cubic-bezier(.23,1,.32,1);animation-timing-function:cubic-bezier(.23,1,.32,1);opacity:0}.slide-up-leave{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06)}.slide-down-appear,.slide-down-enter,.slide-down-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.slide-down-appear.slide-down-appear-active,.slide-down-enter.slide-down-enter-active{-webkit-animation-name:antSlideDownIn;animation-name:antSlideDownIn;-webkit-animation-play-state:running;animation-play-state:running}.slide-down-leave.slide-down-leave-active{-webkit-animation-name:antSlideDownOut;animation-name:antSlideDownOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.slide-down-appear,.slide-down-enter{-webkit-animation-timing-function:cubic-bezier(.23,1,.32,1);animation-timing-function:cubic-bezier(.23,1,.32,1);opacity:0}.slide-down-leave{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06)}.slide-left-appear,.slide-left-enter,.slide-left-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.slide-left-appear.slide-left-appear-active,.slide-left-enter.slide-left-enter-active{-webkit-animation-name:antSlideLeftIn;animation-name:antSlideLeftIn;-webkit-animation-play-state:running;animation-play-state:running}.slide-left-leave.slide-left-leave-active{-webkit-animation-name:antSlideLeftOut;animation-name:antSlideLeftOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.slide-left-appear,.slide-left-enter{-webkit-animation-timing-function:cubic-bezier(.23,1,.32,1);animation-timing-function:cubic-bezier(.23,1,.32,1);opacity:0}.slide-left-leave{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06)}.slide-right-appear,.slide-right-enter,.slide-right-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.slide-right-appear.slide-right-appear-active,.slide-right-enter.slide-right-enter-active{-webkit-animation-name:antSlideRightIn;animation-name:antSlideRightIn;-webkit-animation-play-state:running;animation-play-state:running}.slide-right-leave.slide-right-leave-active{-webkit-animation-name:antSlideRightOut;animation-name:antSlideRightOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.slide-right-appear,.slide-right-enter{-webkit-animation-timing-function:cubic-bezier(.23,1,.32,1);animation-timing-function:cubic-bezier(.23,1,.32,1);opacity:0}.slide-right-leave{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06)}.ant-slide-up-appear,.ant-slide-up-enter,.ant-slide-up-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.ant-slide-up-appear.ant-slide-up-appear-active,.ant-slide-up-enter.ant-slide-up-enter-active{-webkit-animation-name:antSlideUpIn;animation-name:antSlideUpIn;-webkit-animation-play-state:running;animation-play-state:running}.ant-slide-up-leave.ant-slide-up-leave-active{-webkit-animation-name:antSlideUpOut;animation-name:antSlideUpOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.ant-slide-up-appear,.ant-slide-up-enter{-webkit-animation-timing-function:cubic-bezier(.23,1,.32,1);animation-timing-function:cubic-bezier(.23,1,.32,1);opacity:0}.ant-slide-up-leave{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06)}.ant-slide-down-appear,.ant-slide-down-enter,.ant-slide-down-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.ant-slide-down-appear.ant-slide-down-appear-active,.ant-slide-down-enter.ant-slide-down-enter-active{-webkit-animation-name:antSlideDownIn;animation-name:antSlideDownIn;-webkit-animation-play-state:running;animation-play-state:running}.ant-slide-down-leave.ant-slide-down-leave-active{-webkit-animation-name:antSlideDownOut;animation-name:antSlideDownOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.ant-slide-down-appear,.ant-slide-down-enter{-webkit-animation-timing-function:cubic-bezier(.23,1,.32,1);animation-timing-function:cubic-bezier(.23,1,.32,1);opacity:0}.ant-slide-down-leave{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06)}.ant-slide-left-appear,.ant-slide-left-enter,.ant-slide-left-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.ant-slide-left-appear.ant-slide-left-appear-active,.ant-slide-left-enter.ant-slide-left-enter-active{-webkit-animation-name:antSlideLeftIn;animation-name:antSlideLeftIn;-webkit-animation-play-state:running;animation-play-state:running}.ant-slide-left-leave.ant-slide-left-leave-active{-webkit-animation-name:antSlideLeftOut;animation-name:antSlideLeftOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.ant-slide-left-appear,.ant-slide-left-enter{-webkit-animation-timing-function:cubic-bezier(.23,1,.32,1);animation-timing-function:cubic-bezier(.23,1,.32,1);opacity:0}.ant-slide-left-leave{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06)}.ant-slide-right-appear,.ant-slide-right-enter,.ant-slide-right-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.ant-slide-right-appear.ant-slide-right-appear-active,.ant-slide-right-enter.ant-slide-right-enter-active{-webkit-animation-name:antSlideRightIn;animation-name:antSlideRightIn;-webkit-animation-play-state:running;animation-play-state:running}.ant-slide-right-leave.ant-slide-right-leave-active{-webkit-animation-name:antSlideRightOut;animation-name:antSlideRightOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.ant-slide-right-appear,.ant-slide-right-enter{-webkit-animation-timing-function:cubic-bezier(.23,1,.32,1);animation-timing-function:cubic-bezier(.23,1,.32,1);opacity:0}.ant-slide-right-leave{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06)}@-webkit-keyframes antSlideUpIn{0%{opacity:0;transform:scaleY(.8);transform-origin:0 0}to{opacity:1;transform:scaleY(1);transform-origin:0 0}}@keyframes antSlideUpIn{0%{opacity:0;transform:scaleY(.8);transform-origin:0 0}to{opacity:1;transform:scaleY(1);transform-origin:0 0}}@-webkit-keyframes antSlideUpOut{0%{opacity:1;transform:scaleY(1);transform-origin:0 0}to{opacity:0;transform:scaleY(.8);transform-origin:0 0}}@keyframes antSlideUpOut{0%{opacity:1;transform:scaleY(1);transform-origin:0 0}to{opacity:0;transform:scaleY(.8);transform-origin:0 0}}@-webkit-keyframes antSlideDownIn{0%{opacity:0;transform:scaleY(.8);transform-origin:100% 100%}to{opacity:1;transform:scaleY(1);transform-origin:100% 100%}}@keyframes antSlideDownIn{0%{opacity:0;transform:scaleY(.8);transform-origin:100% 100%}to{opacity:1;transform:scaleY(1);transform-origin:100% 100%}}@-webkit-keyframes antSlideDownOut{0%{opacity:1;transform:scaleY(1);transform-origin:100% 100%}to{opacity:0;transform:scaleY(.8);transform-origin:100% 100%}}@keyframes antSlideDownOut{0%{opacity:1;transform:scaleY(1);transform-origin:100% 100%}to{opacity:0;transform:scaleY(.8);transform-origin:100% 100%}}@-webkit-keyframes antSlideLeftIn{0%{opacity:0;transform:scaleX(.8);transform-origin:0 0}to{opacity:1;transform:scaleX(1);transform-origin:0 0}}@keyframes antSlideLeftIn{0%{opacity:0;transform:scaleX(.8);transform-origin:0 0}to{opacity:1;transform:scaleX(1);transform-origin:0 0}}@-webkit-keyframes antSlideLeftOut{0%{opacity:1;transform:scaleX(1);transform-origin:0 0}to{opacity:0;transform:scaleX(.8);transform-origin:0 0}}@keyframes antSlideLeftOut{0%{opacity:1;transform:scaleX(1);transform-origin:0 0}to{opacity:0;transform:scaleX(.8);transform-origin:0 0}}@-webkit-keyframes antSlideRightIn{0%{opacity:0;transform:scaleX(.8);transform-origin:100% 0}to{opacity:1;transform:scaleX(1);transform-origin:100% 0}}@keyframes antSlideRightIn{0%{opacity:0;transform:scaleX(.8);transform-origin:100% 0}to{opacity:1;transform:scaleX(1);transform-origin:100% 0}}@-webkit-keyframes antSlideRightOut{0%{opacity:1;transform:scaleX(1);transform-origin:100% 0}to{opacity:0;transform:scaleX(.8);transform-origin:100% 0}}@keyframes antSlideRightOut{0%{opacity:1;transform:scaleX(1);transform-origin:100% 0}to{opacity:0;transform:scaleX(.8);transform-origin:100% 0}}.ant-zoom-appear,.ant-zoom-enter,.ant-zoom-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.ant-zoom-appear.ant-zoom-appear-active,.ant-zoom-enter.ant-zoom-enter-active{-webkit-animation-name:antZoomIn;animation-name:antZoomIn;-webkit-animation-play-state:running;animation-play-state:running}.ant-zoom-leave.ant-zoom-leave-active{-webkit-animation-name:antZoomOut;animation-name:antZoomOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.ant-zoom-appear,.ant-zoom-enter{-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1);opacity:0;transform:scale(0)}.ant-zoom-appear-prepare,.ant-zoom-enter-prepare{transform:none}.ant-zoom-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-appear,.zoom-enter,.zoom-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-appear.zoom-appear-active,.zoom-enter.zoom-enter-active{-webkit-animation-name:antZoomIn;animation-name:antZoomIn;-webkit-animation-play-state:running;animation-play-state:running}.zoom-leave.zoom-leave-active{-webkit-animation-name:antZoomOut;animation-name:antZoomOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-appear,.zoom-enter{-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1);opacity:0;transform:scale(0)}.zoom-appear-prepare,.zoom-enter-prepare{transform:none}.zoom-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.ant-zoom-big-appear,.ant-zoom-big-enter,.ant-zoom-big-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.ant-zoom-big-appear.ant-zoom-big-appear-active,.ant-zoom-big-enter.ant-zoom-big-enter-active{-webkit-animation-name:antZoomBigIn;animation-name:antZoomBigIn;-webkit-animation-play-state:running;animation-play-state:running}.ant-zoom-big-leave.ant-zoom-big-leave-active{-webkit-animation-name:antZoomBigOut;animation-name:antZoomBigOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.ant-zoom-big-appear,.ant-zoom-big-enter{-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1);opacity:0;transform:scale(0)}.ant-zoom-big-appear-prepare,.ant-zoom-big-enter-prepare{transform:none}.ant-zoom-big-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-big-appear,.zoom-big-enter,.zoom-big-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-big-appear.zoom-big-appear-active,.zoom-big-enter.zoom-big-enter-active{-webkit-animation-name:antZoomBigIn;animation-name:antZoomBigIn;-webkit-animation-play-state:running;animation-play-state:running}.zoom-big-leave.zoom-big-leave-active{-webkit-animation-name:antZoomBigOut;animation-name:antZoomBigOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-big-appear,.zoom-big-enter{-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1);opacity:0;transform:scale(0)}.zoom-big-appear-prepare,.zoom-big-enter-prepare{transform:none}.zoom-big-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.ant-zoom-big-fast-appear,.ant-zoom-big-fast-enter,.ant-zoom-big-fast-leave{-webkit-animation-duration:.1s;animation-duration:.1s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.ant-zoom-big-fast-appear.ant-zoom-big-fast-appear-active,.ant-zoom-big-fast-enter.ant-zoom-big-fast-enter-active{-webkit-animation-name:antZoomBigIn;animation-name:antZoomBigIn;-webkit-animation-play-state:running;animation-play-state:running}.ant-zoom-big-fast-leave.ant-zoom-big-fast-leave-active{-webkit-animation-name:antZoomBigOut;animation-name:antZoomBigOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.ant-zoom-big-fast-appear,.ant-zoom-big-fast-enter{-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1);opacity:0;transform:scale(0)}.ant-zoom-big-fast-appear-prepare,.ant-zoom-big-fast-enter-prepare{transform:none}.ant-zoom-big-fast-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-big-fast-appear,.zoom-big-fast-enter,.zoom-big-fast-leave{-webkit-animation-duration:.1s;animation-duration:.1s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-big-fast-appear.zoom-big-fast-appear-active,.zoom-big-fast-enter.zoom-big-fast-enter-active{-webkit-animation-name:antZoomBigIn;animation-name:antZoomBigIn;-webkit-animation-play-state:running;animation-play-state:running}.zoom-big-fast-leave.zoom-big-fast-leave-active{-webkit-animation-name:antZoomBigOut;animation-name:antZoomBigOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-big-fast-appear,.zoom-big-fast-enter{-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1);opacity:0;transform:scale(0)}.zoom-big-fast-appear-prepare,.zoom-big-fast-enter-prepare{transform:none}.zoom-big-fast-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.ant-zoom-up-appear,.ant-zoom-up-enter,.ant-zoom-up-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.ant-zoom-up-appear.ant-zoom-up-appear-active,.ant-zoom-up-enter.ant-zoom-up-enter-active{-webkit-animation-name:antZoomUpIn;animation-name:antZoomUpIn;-webkit-animation-play-state:running;animation-play-state:running}.ant-zoom-up-leave.ant-zoom-up-leave-active{-webkit-animation-name:antZoomUpOut;animation-name:antZoomUpOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.ant-zoom-up-appear,.ant-zoom-up-enter{-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1);opacity:0;transform:scale(0)}.ant-zoom-up-appear-prepare,.ant-zoom-up-enter-prepare{transform:none}.ant-zoom-up-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-up-appear,.zoom-up-enter,.zoom-up-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-up-appear.zoom-up-appear-active,.zoom-up-enter.zoom-up-enter-active{-webkit-animation-name:antZoomUpIn;animation-name:antZoomUpIn;-webkit-animation-play-state:running;animation-play-state:running}.zoom-up-leave.zoom-up-leave-active{-webkit-animation-name:antZoomUpOut;animation-name:antZoomUpOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-up-appear,.zoom-up-enter{-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1);opacity:0;transform:scale(0)}.zoom-up-appear-prepare,.zoom-up-enter-prepare{transform:none}.zoom-up-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.ant-zoom-down-appear,.ant-zoom-down-enter,.ant-zoom-down-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.ant-zoom-down-appear.ant-zoom-down-appear-active,.ant-zoom-down-enter.ant-zoom-down-enter-active{-webkit-animation-name:antZoomDownIn;animation-name:antZoomDownIn;-webkit-animation-play-state:running;animation-play-state:running}.ant-zoom-down-leave.ant-zoom-down-leave-active{-webkit-animation-name:antZoomDownOut;animation-name:antZoomDownOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.ant-zoom-down-appear,.ant-zoom-down-enter{-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1);opacity:0;transform:scale(0)}.ant-zoom-down-appear-prepare,.ant-zoom-down-enter-prepare{transform:none}.ant-zoom-down-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-down-appear,.zoom-down-enter,.zoom-down-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-down-appear.zoom-down-appear-active,.zoom-down-enter.zoom-down-enter-active{-webkit-animation-name:antZoomDownIn;animation-name:antZoomDownIn;-webkit-animation-play-state:running;animation-play-state:running}.zoom-down-leave.zoom-down-leave-active{-webkit-animation-name:antZoomDownOut;animation-name:antZoomDownOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-down-appear,.zoom-down-enter{-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1);opacity:0;transform:scale(0)}.zoom-down-appear-prepare,.zoom-down-enter-prepare{transform:none}.zoom-down-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.ant-zoom-left-appear,.ant-zoom-left-enter,.ant-zoom-left-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.ant-zoom-left-appear.ant-zoom-left-appear-active,.ant-zoom-left-enter.ant-zoom-left-enter-active{-webkit-animation-name:antZoomLeftIn;animation-name:antZoomLeftIn;-webkit-animation-play-state:running;animation-play-state:running}.ant-zoom-left-leave.ant-zoom-left-leave-active{-webkit-animation-name:antZoomLeftOut;animation-name:antZoomLeftOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.ant-zoom-left-appear,.ant-zoom-left-enter{-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1);opacity:0;transform:scale(0)}.ant-zoom-left-appear-prepare,.ant-zoom-left-enter-prepare{transform:none}.ant-zoom-left-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-left-appear,.zoom-left-enter,.zoom-left-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-left-appear.zoom-left-appear-active,.zoom-left-enter.zoom-left-enter-active{-webkit-animation-name:antZoomLeftIn;animation-name:antZoomLeftIn;-webkit-animation-play-state:running;animation-play-state:running}.zoom-left-leave.zoom-left-leave-active{-webkit-animation-name:antZoomLeftOut;animation-name:antZoomLeftOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-left-appear,.zoom-left-enter{-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1);opacity:0;transform:scale(0)}.zoom-left-appear-prepare,.zoom-left-enter-prepare{transform:none}.zoom-left-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.ant-zoom-right-appear,.ant-zoom-right-enter,.ant-zoom-right-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.ant-zoom-right-appear.ant-zoom-right-appear-active,.ant-zoom-right-enter.ant-zoom-right-enter-active{-webkit-animation-name:antZoomRightIn;animation-name:antZoomRightIn;-webkit-animation-play-state:running;animation-play-state:running}.ant-zoom-right-leave.ant-zoom-right-leave-active{-webkit-animation-name:antZoomRightOut;animation-name:antZoomRightOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.ant-zoom-right-appear,.ant-zoom-right-enter{-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1);opacity:0;transform:scale(0)}.ant-zoom-right-appear-prepare,.ant-zoom-right-enter-prepare{transform:none}.ant-zoom-right-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-right-appear,.zoom-right-enter,.zoom-right-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-right-appear.zoom-right-appear-active,.zoom-right-enter.zoom-right-enter-active{-webkit-animation-name:antZoomRightIn;animation-name:antZoomRightIn;-webkit-animation-play-state:running;animation-play-state:running}.zoom-right-leave.zoom-right-leave-active{-webkit-animation-name:antZoomRightOut;animation-name:antZoomRightOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-right-appear,.zoom-right-enter{-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1);opacity:0;transform:scale(0)}.zoom-right-appear-prepare,.zoom-right-enter-prepare{transform:none}.zoom-right-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}@-webkit-keyframes antZoomIn{0%{opacity:0;transform:scale(.2)}to{opacity:1;transform:scale(1)}}@keyframes antZoomIn{0%{opacity:0;transform:scale(.2)}to{opacity:1;transform:scale(1)}}@-webkit-keyframes antZoomOut{0%{transform:scale(1)}to{opacity:0;transform:scale(.2)}}@keyframes antZoomOut{0%{transform:scale(1)}to{opacity:0;transform:scale(.2)}}@-webkit-keyframes antZoomBigIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes antZoomBigIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@-webkit-keyframes antZoomBigOut{0%{transform:scale(1)}to{opacity:0;transform:scale(.8)}}@keyframes antZoomBigOut{0%{transform:scale(1)}to{opacity:0;transform:scale(.8)}}@-webkit-keyframes antZoomUpIn{0%{opacity:0;transform:scale(.8);transform-origin:50% 0}to{transform:scale(1);transform-origin:50% 0}}@keyframes antZoomUpIn{0%{opacity:0;transform:scale(.8);transform-origin:50% 0}to{transform:scale(1);transform-origin:50% 0}}@-webkit-keyframes antZoomUpOut{0%{transform:scale(1);transform-origin:50% 0}to{opacity:0;transform:scale(.8);transform-origin:50% 0}}@keyframes antZoomUpOut{0%{transform:scale(1);transform-origin:50% 0}to{opacity:0;transform:scale(.8);transform-origin:50% 0}}@-webkit-keyframes antZoomLeftIn{0%{opacity:0;transform:scale(.8);transform-origin:0 50%}to{transform:scale(1);transform-origin:0 50%}}@keyframes antZoomLeftIn{0%{opacity:0;transform:scale(.8);transform-origin:0 50%}to{transform:scale(1);transform-origin:0 50%}}@-webkit-keyframes antZoomLeftOut{0%{transform:scale(1);transform-origin:0 50%}to{opacity:0;transform:scale(.8);transform-origin:0 50%}}@keyframes antZoomLeftOut{0%{transform:scale(1);transform-origin:0 50%}to{opacity:0;transform:scale(.8);transform-origin:0 50%}}@-webkit-keyframes antZoomRightIn{0%{opacity:0;transform:scale(.8);transform-origin:100% 50%}to{transform:scale(1);transform-origin:100% 50%}}@keyframes antZoomRightIn{0%{opacity:0;transform:scale(.8);transform-origin:100% 50%}to{transform:scale(1);transform-origin:100% 50%}}@-webkit-keyframes antZoomRightOut{0%{transform:scale(1);transform-origin:100% 50%}to{opacity:0;transform:scale(.8);transform-origin:100% 50%}}@keyframes antZoomRightOut{0%{transform:scale(1);transform-origin:100% 50%}to{opacity:0;transform:scale(.8);transform-origin:100% 50%}}@-webkit-keyframes antZoomDownIn{0%{opacity:0;transform:scale(.8);transform-origin:50% 100%}to{transform:scale(1);transform-origin:50% 100%}}@keyframes antZoomDownIn{0%{opacity:0;transform:scale(.8);transform-origin:50% 100%}to{transform:scale(1);transform-origin:50% 100%}}@-webkit-keyframes antZoomDownOut{0%{transform:scale(1);transform-origin:50% 100%}to{opacity:0;transform:scale(.8);transform-origin:50% 100%}}@keyframes antZoomDownOut{0%{transform:scale(1);transform-origin:50% 100%}to{opacity:0;transform:scale(.8);transform-origin:50% 100%}}.ant-motion-collapse-legacy{overflow:hidden}.ant-motion-collapse,.ant-motion-collapse-legacy-active{transition:height .2s cubic-bezier(.645,.045,.355,1),opacity .2s cubic-bezier(.645,.045,.355,1)!important}.ant-motion-collapse{overflow:hidden}.ant-affix{position:fixed;z-index:10}.ant-alert{font-feature-settings:"tnum";word-wrap:break-word;align-items:center;border-radius:2px;box-sizing:border-box;color:rgba(0,0,0,.85);display:flex;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:8px 15px;position:relative}.ant-alert-content{flex:1;min-width:0}.ant-alert-icon{margin-right:8px}.ant-alert-description{display:none;font-size:14px;line-height:22px}.ant-alert-success{background-color:var(--ant-success-color-deprecated-bg);border:1px solid var(--ant-success-color-deprecated-border)}.ant-alert-success .ant-alert-icon{color:var(--ant-success-color)}.ant-alert-info{background-color:var(--ant-info-color-deprecated-bg);border:1px solid var(--ant-info-color-deprecated-border)}.ant-alert-info .ant-alert-icon{color:var(--ant-info-color)}.ant-alert-warning{background-color:var(--ant-warning-color-deprecated-bg);border:1px solid var(--ant-warning-color-deprecated-border)}.ant-alert-warning .ant-alert-icon{color:var(--ant-warning-color)}.ant-alert-error{background-color:var(--ant-error-color-deprecated-bg);border:1px solid var(--ant-error-color-deprecated-border)}.ant-alert-error .ant-alert-icon{color:var(--ant-error-color)}.ant-alert-error .ant-alert-description>pre{margin:0;padding:0}.ant-alert-action{margin-left:8px}.ant-alert-close-icon{background-color:transparent;border:none;cursor:pointer;font-size:12px;line-height:12px;margin-left:8px;outline:none;overflow:hidden;padding:0}.ant-alert-close-icon .anticon-close{color:rgba(0,0,0,.45);transition:color .3s}.ant-alert-close-icon .anticon-close:hover{color:rgba(0,0,0,.75)}.ant-alert-close-text{color:rgba(0,0,0,.45);transition:color .3s}.ant-alert-close-text:hover{color:rgba(0,0,0,.75)}.ant-alert-with-description{align-items:flex-start;padding:15px 15px 15px 24px}.ant-alert-with-description.ant-alert-no-icon{padding:15px}.ant-alert-with-description .ant-alert-icon{font-size:24px;margin-right:15px}.ant-alert-with-description .ant-alert-message{color:rgba(0,0,0,.85);display:block;font-size:16px;margin-bottom:4px}.ant-alert-message{color:rgba(0,0,0,.85)}.ant-alert-with-description .ant-alert-description{display:block}.ant-alert.ant-alert-motion-leave{opacity:1;overflow:hidden;transition:max-height .3s cubic-bezier(.78,.14,.15,.86),opacity .3s cubic-bezier(.78,.14,.15,.86),padding-top .3s cubic-bezier(.78,.14,.15,.86),padding-bottom .3s cubic-bezier(.78,.14,.15,.86),margin-bottom .3s cubic-bezier(.78,.14,.15,.86)}.ant-alert.ant-alert-motion-leave-active{margin-bottom:0!important;max-height:0;opacity:0;padding-bottom:0;padding-top:0}.ant-alert-banner{border:0;border-radius:0;margin-bottom:0}.ant-alert.ant-alert-rtl{direction:rtl}.ant-alert-rtl .ant-alert-icon{margin-left:8px;margin-right:auto}.ant-alert-rtl .ant-alert-action,.ant-alert-rtl .ant-alert-close-icon{margin-left:auto;margin-right:8px}.ant-alert-rtl.ant-alert-with-description{padding-left:15px;padding-right:24px}.ant-alert-rtl.ant-alert-with-description .ant-alert-icon{margin-left:15px;margin-right:auto}.ant-anchor{font-feature-settings:"tnum";box-sizing:border-box;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0 0 0 2px;position:relative}.ant-anchor-wrapper{background-color:transparent;margin-left:-4px;overflow:auto;padding-left:4px}.ant-anchor-ink{height:100%;left:0;position:absolute;top:0}.ant-anchor-ink:before{background-color:#f0f0f0;content:" ";display:block;height:100%;margin:0 auto;position:relative;width:2px}.ant-anchor-ink-ball{background-color:#fff;border:2px solid var(--ant-primary-color);border-radius:8px;display:none;height:8px;left:50%;position:absolute;transform:translateX(-50%);transition:top .3s ease-in-out;width:8px}.ant-anchor-ink-ball.visible{display:inline-block}.ant-anchor-fixed .ant-anchor-ink .ant-anchor-ink-ball{display:none}.ant-anchor-link{line-height:1.143;padding:7px 0 7px 16px}.ant-anchor-link-title{color:rgba(0,0,0,.85);display:block;margin-bottom:6px;overflow:hidden;position:relative;text-overflow:ellipsis;transition:all .3s;white-space:nowrap}.ant-anchor-link-title:only-child{margin-bottom:0}.ant-anchor-link-active>.ant-anchor-link-title{color:var(--ant-primary-color)}.ant-anchor-link .ant-anchor-link{padding-bottom:5px;padding-top:5px}.ant-anchor-rtl{direction:rtl}.ant-anchor-rtl.ant-anchor-wrapper{margin-left:0;margin-right:-4px;padding-left:0;padding-right:4px}.ant-anchor-rtl .ant-anchor-ink{left:auto;right:0}.ant-anchor-rtl .ant-anchor-ink-ball{left:0;right:50%;transform:translateX(50%)}.ant-anchor-rtl .ant-anchor-link{padding:7px 16px 7px 0}.ant-select-auto-complete{font-feature-settings:"tnum";box-sizing:border-box;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0}.ant-select-auto-complete .ant-select-clear{right:13px}.ant-select-single .ant-select-selector{display:flex}.ant-select-single .ant-select-selector .ant-select-selection-search{bottom:0;left:11px;position:absolute;right:11px;top:0}.ant-select-single .ant-select-selector .ant-select-selection-search-input{width:100%}.ant-select-single .ant-select-selector .ant-select-selection-item,.ant-select-single .ant-select-selector .ant-select-selection-placeholder{line-height:30px;padding:0;transition:all .3s}@supports (-moz-appearance:meterbar){.ant-select-single .ant-select-selector .ant-select-selection-item,.ant-select-single .ant-select-selector .ant-select-selection-placeholder{line-height:30px}}.ant-select-single .ant-select-selector .ant-select-selection-item{position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ant-select-single .ant-select-selector .ant-select-selection-placeholder{pointer-events:none;transition:none}.ant-select-single .ant-select-selector .ant-select-selection-item:after,.ant-select-single .ant-select-selector .ant-select-selection-placeholder:after,.ant-select-single .ant-select-selector:after{content:"\\a0";display:inline-block;visibility:hidden;width:0}.ant-select-single.ant-select-show-arrow .ant-select-selection-search{right:25px}.ant-select-single.ant-select-show-arrow .ant-select-selection-item,.ant-select-single.ant-select-show-arrow .ant-select-selection-placeholder{padding-right:18px}.ant-select-single.ant-select-open .ant-select-selection-item{color:#bfbfbf}.ant-select-single:not(.ant-select-customize-input) .ant-select-selector{height:32px;padding:0 11px;width:100%}.ant-select-single:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-search-input{height:30px}.ant-select-single:not(.ant-select-customize-input) .ant-select-selector:after{line-height:30px}.ant-select-single.ant-select-customize-input .ant-select-selector:after{display:none}.ant-select-single.ant-select-customize-input .ant-select-selector .ant-select-selection-search{position:static;width:100%}.ant-select-single.ant-select-customize-input .ant-select-selector .ant-select-selection-placeholder{left:0;padding:0 11px;position:absolute;right:0}.ant-select-single.ant-select-customize-input .ant-select-selector .ant-select-selection-placeholder:after{display:none}.ant-select-single.ant-select-lg:not(.ant-select-customize-input) .ant-select-selector{height:40px}.ant-select-single.ant-select-lg:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-item,.ant-select-single.ant-select-lg:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-placeholder,.ant-select-single.ant-select-lg:not(.ant-select-customize-input) .ant-select-selector:after{line-height:38px}.ant-select-single.ant-select-lg:not(.ant-select-customize-input):not(.ant-select-customize-input) .ant-select-selection-search-input{height:38px}.ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selector{height:24px}.ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-item,.ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-placeholder,.ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selector:after{line-height:22px}.ant-select-single.ant-select-sm:not(.ant-select-customize-input):not(.ant-select-customize-input) .ant-select-selection-search-input{height:22px}.ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selection-search{left:7px;right:7px}.ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selector{padding:0 7px}.ant-select-single.ant-select-sm:not(.ant-select-customize-input).ant-select-show-arrow .ant-select-selection-search{right:28px}.ant-select-single.ant-select-sm:not(.ant-select-customize-input).ant-select-show-arrow .ant-select-selection-item,.ant-select-single.ant-select-sm:not(.ant-select-customize-input).ant-select-show-arrow .ant-select-selection-placeholder{padding-right:21px}.ant-select-single.ant-select-lg:not(.ant-select-customize-input) .ant-select-selector{padding:0 11px}.ant-select-selection-overflow{display:flex;flex:auto;flex-wrap:wrap;max-width:100%;position:relative}.ant-select-selection-overflow-item{align-self:center;flex:none;max-width:100%}.ant-select-multiple .ant-select-selector{align-items:center;display:flex;flex-wrap:wrap;padding:1px 4px}.ant-select-show-search.ant-select-multiple .ant-select-selector{cursor:text}.ant-select-disabled.ant-select-multiple .ant-select-selector{background:#f5f5f5;cursor:not-allowed}.ant-select-multiple .ant-select-selector:after{content:"\\a0";display:inline-block;line-height:24px;margin:2px 0;width:0}.ant-select-multiple.ant-select-allow-clear .ant-select-selector,.ant-select-multiple.ant-select-show-arrow .ant-select-selector{padding-right:24px}.ant-select-multiple .ant-select-selection-item{-webkit-margin-end:4px;-webkit-padding-start:8px;-webkit-padding-end:4px;background:#f5f5f5;border:1px solid #f0f0f0;border-radius:2px;box-sizing:border-box;cursor:default;display:flex;flex:none;height:24px;line-height:22px;margin-bottom:2px;margin-inline-end:4px;margin-top:2px;max-width:100%;padding-inline-end:4px;padding-inline-start:8px;position:relative;transition:font-size .3s,line-height .3s,height .3s;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ant-select-disabled.ant-select-multiple .ant-select-selection-item{border-color:#d9d9d9;color:#bfbfbf;cursor:not-allowed}.ant-select-multiple .ant-select-selection-item-content{display:inline-block;margin-right:4px;overflow:hidden;text-overflow:ellipsis;white-space:pre}.ant-select-multiple .ant-select-selection-item-remove{text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:inherit;color:rgba(0,0,0,.45);cursor:pointer;display:inline-block;font-size:10px;font-style:normal;font-weight:700;line-height:0;line-height:inherit;text-align:center;text-transform:none;vertical-align:-.125em}.ant-select-multiple .ant-select-selection-item-remove>*{line-height:1}.ant-select-multiple .ant-select-selection-item-remove svg{display:inline-block}.ant-select-multiple .ant-select-selection-item-remove:before{display:none}.ant-select-multiple .ant-select-selection-item-remove .ant-select-multiple .ant-select-selection-item-remove-icon{display:block}.ant-select-multiple .ant-select-selection-item-remove>.anticon{vertical-align:-.2em}.ant-select-multiple .ant-select-selection-item-remove:hover{color:rgba(0,0,0,.75)}.ant-select-multiple .ant-select-selection-overflow-item+.ant-select-selection-overflow-item .ant-select-selection-search{-webkit-margin-start:0;margin-inline-start:0}.ant-select-multiple .ant-select-selection-search{-webkit-margin-start:7px;margin-inline-start:7px;max-width:100%;position:relative}.ant-select-multiple .ant-select-selection-search-input,.ant-select-multiple .ant-select-selection-search-mirror{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;height:24px;line-height:24px;transition:all .3s}.ant-select-multiple .ant-select-selection-search-input{min-width:4.1px;width:100%}.ant-select-multiple .ant-select-selection-search-mirror{left:0;position:absolute;top:0;visibility:hidden;white-space:pre;z-index:999}.ant-select-multiple .ant-select-selection-placeholder{left:11px;position:absolute;right:11px;top:50%;transform:translateY(-50%);transition:all .3s}.ant-select-multiple.ant-select-lg .ant-select-selector:after{line-height:32px}.ant-select-multiple.ant-select-lg .ant-select-selection-item{line-height:30px}.ant-select-multiple.ant-select-lg .ant-select-selection-search{height:32px;line-height:32px}.ant-select-multiple.ant-select-lg .ant-select-selection-search-input,.ant-select-multiple.ant-select-lg .ant-select-selection-search-mirror{height:32px;line-height:30px}.ant-select-multiple.ant-select-sm .ant-select-selector:after{line-height:16px}.ant-select-multiple.ant-select-sm .ant-select-selection-item{height:16px;line-height:14px}.ant-select-multiple.ant-select-sm .ant-select-selection-search{height:16px;line-height:16px}.ant-select-multiple.ant-select-sm .ant-select-selection-search-input,.ant-select-multiple.ant-select-sm .ant-select-selection-search-mirror{height:16px;line-height:14px}.ant-select-multiple.ant-select-sm .ant-select-selection-placeholder{left:7px}.ant-select-multiple.ant-select-sm .ant-select-selection-search{-webkit-margin-start:3px;margin-inline-start:3px}.ant-select-multiple.ant-select-lg .ant-select-selection-item{height:32px;line-height:32px}.ant-select-disabled .ant-select-selection-item-remove{display:none}.ant-select{font-feature-settings:"tnum";box-sizing:border-box;color:rgba(0,0,0,.85);cursor:pointer;display:inline-block;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0;position:relative}.ant-select:not(.ant-select-customize-input) .ant-select-selector{background-color:#fff;border:1px solid #d9d9d9;border-radius:2px;position:relative;transition:all .3s cubic-bezier(.645,.045,.355,1)}.ant-select:not(.ant-select-customize-input) .ant-select-selector input{cursor:pointer}.ant-select-show-search.ant-select:not(.ant-select-customize-input) .ant-select-selector{cursor:text}.ant-select-show-search.ant-select:not(.ant-select-customize-input) .ant-select-selector input{cursor:auto}.ant-select-focused:not(.ant-select-disabled).ant-select:not(.ant-select-customize-input) .ant-select-selector{border-color:var(--ant-primary-color-hover);border-right-width:1px!important;box-shadow:0 0 0 2px var(--ant-primary-color-outline);outline:0}.ant-select-disabled.ant-select:not(.ant-select-customize-input) .ant-select-selector{background:#f5f5f5;color:rgba(0,0,0,.25);cursor:not-allowed}.ant-select-multiple.ant-select-disabled.ant-select:not(.ant-select-customize-input) .ant-select-selector{background:#f5f5f5}.ant-select-disabled.ant-select:not(.ant-select-customize-input) .ant-select-selector input{cursor:not-allowed}.ant-select:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-search-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:none;margin:0;outline:none;padding:0}.ant-select:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-search-input::-webkit-search-cancel-button{-webkit-appearance:none;display:none}.ant-select:not(.ant-select-disabled):hover .ant-select-selector{border-color:var(--ant-primary-5);border-right-width:1px!important}.ant-select-selection-item{flex:1;font-weight:400;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (-ms-high-contrast:none){.ant-select-selection-item,.ant-select-selection-item ::-ms-backdrop{flex:auto}}.ant-select-selection-placeholder{color:#bfbfbf;flex:1;overflow:hidden;pointer-events:none;text-overflow:ellipsis;white-space:nowrap}@media (-ms-high-contrast:none){.ant-select-selection-placeholder,.ant-select-selection-placeholder ::-ms-backdrop{flex:auto}}.ant-select-arrow{text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:inherit;color:rgba(0,0,0,.25);display:inline-block;font-size:12px;font-style:normal;height:12px;line-height:0;line-height:1;margin-top:-6px;pointer-events:none;position:absolute;right:11px;text-align:center;text-transform:none;top:50%;vertical-align:-.125em;width:12px}.ant-select-arrow>*{line-height:1}.ant-select-arrow svg{display:inline-block}.ant-select-arrow:before{display:none}.ant-select-arrow .ant-select-arrow-icon{display:block}.ant-select-arrow .anticon{transition:transform .3s;vertical-align:top}.ant-select-arrow .anticon>svg{vertical-align:top}.ant-select-arrow .anticon:not(.ant-select-suffix){pointer-events:auto}.ant-select-disabled .ant-select-arrow{cursor:not-allowed}.ant-select-clear{text-rendering:auto;background:#fff;color:rgba(0,0,0,.25);cursor:pointer;display:inline-block;font-size:12px;font-style:normal;height:12px;line-height:1;margin-top:-6px;opacity:0;position:absolute;right:11px;text-align:center;text-transform:none;top:50%;transition:color .3s ease,opacity .15s ease;width:12px;z-index:1}.ant-select-clear:before{display:block}.ant-select-clear:hover{color:rgba(0,0,0,.45)}.ant-select:hover .ant-select-clear{opacity:1}.ant-select-dropdown{font-feature-settings:"tnum";background-color:#fff;border-radius:2px;box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05);box-sizing:border-box;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;font-variant:normal;left:-9999px;line-height:1.5715;list-style:none;margin:0;outline:none;overflow:hidden;padding:4px 0;position:absolute;top:-9999px;z-index:1050}.ant-select-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-select-dropdown-placement-bottomLeft,.ant-select-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-select-dropdown-placement-bottomLeft{-webkit-animation-name:antSlideUpIn;animation-name:antSlideUpIn}.ant-select-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-select-dropdown-placement-topLeft,.ant-select-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-select-dropdown-placement-topLeft{-webkit-animation-name:antSlideDownIn;animation-name:antSlideDownIn}.ant-select-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-select-dropdown-placement-bottomLeft{-webkit-animation-name:antSlideUpOut;animation-name:antSlideUpOut}.ant-select-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-select-dropdown-placement-topLeft{-webkit-animation-name:antSlideDownOut;animation-name:antSlideDownOut}.ant-select-dropdown-hidden{display:none}.ant-select-dropdown-empty{color:rgba(0,0,0,.25)}.ant-select-item-empty{color:rgba(0,0,0,.85);color:rgba(0,0,0,.25)}.ant-select-item,.ant-select-item-empty{display:block;font-size:14px;font-weight:400;line-height:22px;min-height:32px;padding:5px 12px;position:relative}.ant-select-item{color:rgba(0,0,0,.85);cursor:pointer;transition:background .3s ease}.ant-select-item-group{color:rgba(0,0,0,.45);cursor:default;font-size:12px}.ant-select-item-option{display:flex}.ant-select-item-option-content{flex:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ant-select-item-option-state{flex:none}.ant-select-item-option-active:not(.ant-select-item-option-disabled){background-color:#f5f5f5}.ant-select-item-option-selected:not(.ant-select-item-option-disabled){background-color:var(--ant-primary-1);color:rgba(0,0,0,.85);font-weight:600}.ant-select-item-option-selected:not(.ant-select-item-option-disabled) .ant-select-item-option-state{color:var(--ant-primary-color)}.ant-select-item-option-disabled{color:rgba(0,0,0,.25);cursor:not-allowed}.ant-select-item-option-disabled.ant-select-item-option-selected{background-color:#f5f5f5}.ant-select-item-option-grouped{padding-left:24px}.ant-select-lg{font-size:16px}.ant-select-borderless .ant-select-selector{background-color:transparent!important;border-color:transparent!important;box-shadow:none!important}.ant-select-rtl{direction:rtl}.ant-select-rtl .ant-select-arrow,.ant-select-rtl .ant-select-clear{left:11px;right:auto}.ant-select-dropdown-rtl{direction:rtl}.ant-select-dropdown-rtl .ant-select-item-option-grouped{padding-left:12px;padding-right:24px}.ant-select-rtl.ant-select-multiple.ant-select-allow-clear .ant-select-selector,.ant-select-rtl.ant-select-multiple.ant-select-show-arrow .ant-select-selector{padding-left:24px;padding-right:4px}.ant-select-rtl.ant-select-multiple .ant-select-selection-item{text-align:right}.ant-select-rtl.ant-select-multiple .ant-select-selection-item-content{margin-left:4px;margin-right:0;text-align:right}.ant-select-rtl.ant-select-multiple .ant-select-selection-search-mirror{left:auto;right:0}.ant-select-rtl.ant-select-multiple .ant-select-selection-placeholder{left:auto;right:11px}.ant-select-rtl.ant-select-multiple.ant-select-sm .ant-select-selection-placeholder{right:7px}.ant-select-rtl.ant-select-single .ant-select-selector .ant-select-selection-item,.ant-select-rtl.ant-select-single .ant-select-selector .ant-select-selection-placeholder{left:9px;right:0;text-align:right}.ant-select-rtl.ant-select-single.ant-select-show-arrow .ant-select-selection-search{left:25px;right:11px}.ant-select-rtl.ant-select-single.ant-select-show-arrow .ant-select-selection-item,.ant-select-rtl.ant-select-single.ant-select-show-arrow .ant-select-selection-placeholder{padding-left:18px;padding-right:0}.ant-select-rtl.ant-select-single.ant-select-sm:not(.ant-select-customize-input).ant-select-show-arrow .ant-select-selection-search{right:6px}.ant-select-rtl.ant-select-single.ant-select-sm:not(.ant-select-customize-input).ant-select-show-arrow .ant-select-selection-item,.ant-select-rtl.ant-select-single.ant-select-sm:not(.ant-select-customize-input).ant-select-show-arrow .ant-select-selection-placeholder{padding-left:21px;padding-right:0}.ant-empty{font-size:14px;line-height:1.5715;margin:0 8px;text-align:center}.ant-empty-image{height:100px;margin-bottom:8px}.ant-empty-image img{height:100%}.ant-empty-image svg{height:100%;margin:auto}.ant-empty-footer{margin-top:16px}.ant-empty-normal{color:rgba(0,0,0,.25);margin:32px 0}.ant-empty-normal .ant-empty-image{height:40px}.ant-empty-small{color:rgba(0,0,0,.25);margin:8px 0}.ant-empty-small .ant-empty-image{height:35px}.ant-empty-img-default-ellipse{fill:#f5f5f5;fill-opacity:.8}.ant-empty-img-default-path-1{fill:#aeb8c2}.ant-empty-img-default-path-2{fill:url(#linearGradient-1)}.ant-empty-img-default-path-3{fill:#f5f5f7}.ant-empty-img-default-path-4,.ant-empty-img-default-path-5{fill:#dce0e6}.ant-empty-img-default-g{fill:#fff}.ant-empty-img-simple-ellipse{fill:#f5f5f5}.ant-empty-img-simple-g{stroke:#d9d9d9}.ant-empty-img-simple-path{fill:#fafafa}.ant-empty-rtl{direction:rtl}.ant-avatar{font-feature-settings:"tnum";background:#ccc;border-radius:50%;box-sizing:border-box;color:rgba(0,0,0,.85);color:#fff;display:inline-block;font-size:14px;font-variant:tabular-nums;height:32px;line-height:1.5715;line-height:32px;list-style:none;margin:0;overflow:hidden;padding:0;position:relative;text-align:center;vertical-align:middle;white-space:nowrap;width:32px}.ant-avatar-image{background:transparent}.ant-avatar .ant-image-img{display:block}.ant-avatar-string{left:50%;position:absolute;transform-origin:0 center}.ant-avatar.ant-avatar-icon{font-size:18px}.ant-avatar.ant-avatar-icon>.anticon{margin:0}.ant-avatar-lg{border-radius:50%;height:40px;line-height:40px;width:40px}.ant-avatar-lg-string{left:50%;position:absolute;transform-origin:0 center}.ant-avatar-lg.ant-avatar-icon{font-size:24px}.ant-avatar-lg.ant-avatar-icon>.anticon{margin:0}.ant-avatar-sm{border-radius:50%;height:24px;line-height:24px;width:24px}.ant-avatar-sm-string{left:50%;position:absolute;transform-origin:0 center}.ant-avatar-sm.ant-avatar-icon{font-size:14px}.ant-avatar-sm.ant-avatar-icon>.anticon{margin:0}.ant-avatar-square{border-radius:2px}.ant-avatar>img{display:block;height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.ant-avatar-group{display:inline-flex}.ant-avatar-group .ant-avatar{border:1px solid #fff}.ant-avatar-group .ant-avatar:not(:first-child){margin-left:-8px}.ant-avatar-group-popover .ant-avatar+.ant-avatar{margin-left:3px}.ant-avatar-group-rtl .ant-avatar:not(:first-child){margin-left:0;margin-right:-8px}.ant-avatar-group-popover.ant-popover-rtl .ant-avatar+.ant-avatar{margin-left:0;margin-right:3px}.ant-back-top{font-feature-settings:"tnum";bottom:50px;box-sizing:border-box;color:rgba(0,0,0,.85);cursor:pointer;font-size:14px;font-variant:tabular-nums;height:40px;line-height:1.5715;list-style:none;margin:0;padding:0;position:fixed;right:100px;width:40px;z-index:10}.ant-back-top:empty{display:none}.ant-back-top-rtl{direction:rtl;left:100px;right:auto}.ant-back-top-content{background-color:rgba(0,0,0,.45);border-radius:20px;color:#fff;height:40px;overflow:hidden;text-align:center;transition:all .3s;width:40px}.ant-back-top-content:hover{background-color:rgba(0,0,0,.85);transition:all .3s}.ant-back-top-icon{font-size:24px;line-height:40px}@media screen and (max-width:768px){.ant-back-top{right:60px}}@media screen and (max-width:480px){.ant-back-top{right:20px}}.ant-badge{font-feature-settings:"tnum";box-sizing:border-box;color:rgba(0,0,0,.85);display:inline-block;font-size:14px;font-variant:tabular-nums;line-height:1.5715;line-height:1;list-style:none;margin:0;padding:0;position:relative}.ant-badge-count{background:#ff4d4f;border-radius:10px;box-shadow:0 0 0 1px #fff;color:#fff;font-size:12px;font-weight:400;height:20px;line-height:20px;min-width:20px;padding:0 6px;text-align:center;white-space:nowrap;z-index:auto}.ant-badge-count a,.ant-badge-count a:hover{color:#fff}.ant-badge-count-sm{border-radius:7px;font-size:12px;height:14px;line-height:14px;min-width:14px;padding:0}.ant-badge-multiple-words{padding:0 8px}.ant-badge-dot{background:#ff4d4f;border-radius:100%;box-shadow:0 0 0 1px #fff;height:6px;min-width:6px;width:6px;z-index:auto}.ant-badge-dot.ant-scroll-number{transition:background 1.5s}.ant-badge .ant-scroll-number-custom-component,.ant-badge-count,.ant-badge-dot{position:absolute;right:0;top:0;transform:translate(50%,-50%);transform-origin:100% 0}.ant-badge .ant-scroll-number-custom-component.anticon-spin,.ant-badge-count.anticon-spin,.ant-badge-dot.anticon-spin{-webkit-animation:antBadgeLoadingCircle 1s linear infinite;animation:antBadgeLoadingCircle 1s linear infinite}.ant-badge-status{line-height:inherit;vertical-align:baseline}.ant-badge-status-dot{border-radius:50%;display:inline-block;height:6px;position:relative;top:-1px;vertical-align:middle;width:6px}.ant-badge-status-success{background-color:var(--ant-success-color)}.ant-badge-status-processing{background-color:var(--ant-primary-color);position:relative}.ant-badge-status-processing:after{-webkit-animation:antStatusProcessing 1.2s ease-in-out infinite;animation:antStatusProcessing 1.2s ease-in-out infinite;border:1px solid var(--ant-primary-color);border-radius:50%;content:"";height:100%;left:0;position:absolute;top:0;width:100%}.ant-badge-status-default{background-color:#d9d9d9}.ant-badge-status-error{background-color:var(--ant-error-color)}.ant-badge-status-warning{background-color:var(--ant-warning-color)}.ant-badge-status-magenta,.ant-badge-status-pink{background:#eb2f96}.ant-badge-status-red{background:#f5222d}.ant-badge-status-volcano{background:#fa541c}.ant-badge-status-orange{background:#fa8c16}.ant-badge-status-yellow{background:#fadb14}.ant-badge-status-gold{background:#faad14}.ant-badge-status-cyan{background:#13c2c2}.ant-badge-status-lime{background:#a0d911}.ant-badge-status-green{background:#52c41a}.ant-badge-status-blue{background:#1890ff}.ant-badge-status-geekblue{background:#2f54eb}.ant-badge-status-purple{background:#722ed1}.ant-badge-status-text{color:rgba(0,0,0,.85);font-size:14px;margin-left:8px}.ant-badge-zoom-appear,.ant-badge-zoom-enter{-webkit-animation:antZoomBadgeIn .3s cubic-bezier(.12,.4,.29,1.46);animation:antZoomBadgeIn .3s cubic-bezier(.12,.4,.29,1.46);-webkit-animation-fill-mode:both;animation-fill-mode:both}.ant-badge-zoom-leave{-webkit-animation:antZoomBadgeOut .3s cubic-bezier(.71,-.46,.88,.6);animation:antZoomBadgeOut .3s cubic-bezier(.71,-.46,.88,.6);-webkit-animation-fill-mode:both;animation-fill-mode:both}.ant-badge-not-a-wrapper .ant-badge-zoom-appear,.ant-badge-not-a-wrapper .ant-badge-zoom-enter{-webkit-animation:antNoWrapperZoomBadgeIn .3s cubic-bezier(.12,.4,.29,1.46);animation:antNoWrapperZoomBadgeIn .3s cubic-bezier(.12,.4,.29,1.46)}.ant-badge-not-a-wrapper .ant-badge-zoom-leave{-webkit-animation:antNoWrapperZoomBadgeOut .3s cubic-bezier(.71,-.46,.88,.6);animation:antNoWrapperZoomBadgeOut .3s cubic-bezier(.71,-.46,.88,.6)}.ant-badge-not-a-wrapper:not(.ant-badge-status){vertical-align:middle}.ant-badge-not-a-wrapper .ant-badge-count,.ant-badge-not-a-wrapper .ant-scroll-number-custom-component{transform:none}.ant-badge-not-a-wrapper .ant-scroll-number,.ant-badge-not-a-wrapper .ant-scroll-number-custom-component{display:block;position:relative;top:auto;transform-origin:50% 50%}@-webkit-keyframes antStatusProcessing{0%{opacity:.5;transform:scale(.8)}to{opacity:0;transform:scale(2.4)}}@keyframes antStatusProcessing{0%{opacity:.5;transform:scale(.8)}to{opacity:0;transform:scale(2.4)}}.ant-scroll-number{direction:ltr;overflow:hidden}.ant-scroll-number-only{display:inline-block;position:relative;transition:all .3s cubic-bezier(.645,.045,.355,1)}.ant-scroll-number-only,.ant-scroll-number-only>p.ant-scroll-number-only-unit{-webkit-backface-visibility:hidden;height:20px;-webkit-transform-style:preserve-3d}.ant-scroll-number-only>p.ant-scroll-number-only-unit{margin:0}.ant-scroll-number-symbol{vertical-align:top}@-webkit-keyframes antZoomBadgeIn{0%{opacity:0;transform:scale(0) translate(50%,-50%)}to{transform:scale(1) translate(50%,-50%)}}@keyframes antZoomBadgeIn{0%{opacity:0;transform:scale(0) translate(50%,-50%)}to{transform:scale(1) translate(50%,-50%)}}@-webkit-keyframes antZoomBadgeOut{0%{transform:scale(1) translate(50%,-50%)}to{opacity:0;transform:scale(0) translate(50%,-50%)}}@keyframes antZoomBadgeOut{0%{transform:scale(1) translate(50%,-50%)}to{opacity:0;transform:scale(0) translate(50%,-50%)}}@-webkit-keyframes antNoWrapperZoomBadgeIn{0%{opacity:0;transform:scale(0)}to{transform:scale(1)}}@keyframes antNoWrapperZoomBadgeIn{0%{opacity:0;transform:scale(0)}to{transform:scale(1)}}@-webkit-keyframes antNoWrapperZoomBadgeOut{0%{transform:scale(1)}to{opacity:0;transform:scale(0)}}@keyframes antNoWrapperZoomBadgeOut{0%{transform:scale(1)}to{opacity:0;transform:scale(0)}}@-webkit-keyframes antBadgeLoadingCircle{0%{transform-origin:50%}to{transform:translate(50%,-50%) rotate(1turn);transform-origin:50%}}@keyframes antBadgeLoadingCircle{0%{transform-origin:50%}to{transform:translate(50%,-50%) rotate(1turn);transform-origin:50%}}.ant-ribbon-wrapper{position:relative}.ant-ribbon{font-feature-settings:"tnum";background-color:var(--ant-primary-color);border-radius:2px;box-sizing:border-box;color:rgba(0,0,0,.85);color:#fff;font-size:14px;font-variant:tabular-nums;height:22px;line-height:1.5715;line-height:22px;list-style:none;margin:0;padding:0 8px;position:absolute;top:8px;white-space:nowrap}.ant-ribbon-text{color:#fff}.ant-ribbon-corner{border:4px solid;color:currentcolor;height:8px;position:absolute;top:100%;transform:scaleY(.75);transform-origin:top;width:8px}.ant-ribbon-corner:after{border:inherit;color:rgba(0,0,0,.25);content:"";height:inherit;left:-4px;position:absolute;top:-4px;width:inherit}.ant-ribbon-color-magenta,.ant-ribbon-color-pink{background:#eb2f96;color:#eb2f96}.ant-ribbon-color-red{background:#f5222d;color:#f5222d}.ant-ribbon-color-volcano{background:#fa541c;color:#fa541c}.ant-ribbon-color-orange{background:#fa8c16;color:#fa8c16}.ant-ribbon-color-yellow{background:#fadb14;color:#fadb14}.ant-ribbon-color-gold{background:#faad14;color:#faad14}.ant-ribbon-color-cyan{background:#13c2c2;color:#13c2c2}.ant-ribbon-color-lime{background:#a0d911;color:#a0d911}.ant-ribbon-color-green{background:#52c41a;color:#52c41a}.ant-ribbon-color-blue{background:#1890ff;color:#1890ff}.ant-ribbon-color-geekblue{background:#2f54eb;color:#2f54eb}.ant-ribbon-color-purple{background:#722ed1;color:#722ed1}.ant-ribbon.ant-ribbon-placement-end{border-bottom-right-radius:0;right:-8px}.ant-ribbon.ant-ribbon-placement-end .ant-ribbon-corner{border-color:currentcolor transparent transparent currentcolor;right:0}.ant-ribbon.ant-ribbon-placement-start{border-bottom-left-radius:0;left:-8px}.ant-ribbon.ant-ribbon-placement-start .ant-ribbon-corner{border-color:currentcolor currentcolor transparent transparent;left:0}.ant-badge-rtl{direction:rtl}.ant-badge-rtl .ant-badge:not(.ant-badge-not-a-wrapper) .ant-badge-count,.ant-badge-rtl .ant-badge:not(.ant-badge-not-a-wrapper) .ant-badge-dot,.ant-badge-rtl .ant-badge:not(.ant-badge-not-a-wrapper) .ant-scroll-number-custom-component{direction:ltr;left:0;right:auto;transform:translate(-50%,-50%);transform-origin:0 0}.ant-badge-rtl.ant-badge:not(.ant-badge-not-a-wrapper) .ant-scroll-number-custom-component{left:0;right:auto;transform:translate(-50%,-50%);transform-origin:0 0}.ant-badge-rtl .ant-badge-status-text{margin-left:0;margin-right:8px}.ant-ribbon-rtl{direction:rtl}.ant-ribbon-rtl.ant-ribbon-placement-end{border-bottom-left-radius:0;border-bottom-right-radius:2px;left:-8px;right:unset}.ant-ribbon-rtl.ant-ribbon-placement-end .ant-ribbon-corner{left:0;right:unset}.ant-ribbon-rtl.ant-ribbon-placement-end .ant-ribbon-corner,.ant-ribbon-rtl.ant-ribbon-placement-end .ant-ribbon-corner:after{border-color:currentcolor currentcolor transparent transparent}.ant-ribbon-rtl.ant-ribbon-placement-start{border-bottom-left-radius:2px;border-bottom-right-radius:0;left:unset;right:-8px}.ant-ribbon-rtl.ant-ribbon-placement-start .ant-ribbon-corner{left:unset;right:0}.ant-ribbon-rtl.ant-ribbon-placement-start .ant-ribbon-corner,.ant-ribbon-rtl.ant-ribbon-placement-start .ant-ribbon-corner:after{border-color:currentcolor transparent transparent currentcolor}.ant-breadcrumb{font-feature-settings:"tnum";box-sizing:border-box;color:rgba(0,0,0,.85);color:rgba(0,0,0,.45);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0}.ant-breadcrumb .anticon{font-size:14px}.ant-breadcrumb a{color:rgba(0,0,0,.45);transition:color .3s}.ant-breadcrumb a:hover{color:var(--ant-primary-5)}.ant-breadcrumb>span:last-child,.ant-breadcrumb>span:last-child a{color:rgba(0,0,0,.85)}.ant-breadcrumb>span:last-child .ant-breadcrumb-separator{display:none}.ant-breadcrumb-separator{color:rgba(0,0,0,.45);margin:0 8px}.ant-breadcrumb-link>.anticon+a,.ant-breadcrumb-link>.anticon+span,.ant-breadcrumb-overlay-link>.anticon{margin-left:4px}.ant-breadcrumb-rtl{direction:rtl}.ant-breadcrumb-rtl:before{content:"";display:table}.ant-breadcrumb-rtl:after{clear:both;content:"";display:table}.ant-breadcrumb-rtl>span{float:right}.ant-breadcrumb-rtl .ant-breadcrumb-link>.anticon+a,.ant-breadcrumb-rtl .ant-breadcrumb-link>.anticon+span,.ant-breadcrumb-rtl .ant-breadcrumb-overlay-link>.anticon{margin-left:0;margin-right:4px}.ant-menu-item-danger.ant-menu-item,.ant-menu-item-danger.ant-menu-item-active,.ant-menu-item-danger.ant-menu-item:hover{color:var(--ant-error-color)}.ant-menu-item-danger.ant-menu-item:active{background:#fff1f0}.ant-menu-item-danger.ant-menu-item-selected,.ant-menu-item-danger.ant-menu-item-selected>a,.ant-menu-item-danger.ant-menu-item-selected>a:hover{color:var(--ant-error-color)}.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-danger.ant-menu-item-selected{background-color:#fff1f0}.ant-menu-inline .ant-menu-item-danger.ant-menu-item:after{border-right-color:var(--ant-error-color)}.ant-menu-dark .ant-menu-item-danger.ant-menu-item,.ant-menu-dark .ant-menu-item-danger.ant-menu-item:hover,.ant-menu-dark .ant-menu-item-danger.ant-menu-item>a{color:var(--ant-error-color)}.ant-menu-dark.ant-menu-dark:not(.ant-menu-horizontal) .ant-menu-item-danger.ant-menu-item-selected{background-color:var(--ant-error-color);color:#fff}.ant-menu{font-feature-settings:"tnum";background:#fff;box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05);box-sizing:border-box;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;line-height:0;list-style:none;margin:0;outline:none;padding:0;text-align:left;transition:background .3s,width .3s cubic-bezier(.2,0,0,1) 0s}.ant-menu:after,.ant-menu:before{content:"";display:table}.ant-menu:after{clear:both}.ant-menu.ant-menu-root:focus-visible{box-shadow:0 0 0 2px var(--ant-primary-2)}.ant-menu ol,.ant-menu ul{list-style:none;margin:0;padding:0}.ant-menu-overflow{display:flex}.ant-menu-overflow-item{flex:none}.ant-menu-hidden,.ant-menu-submenu-hidden{display:none}.ant-menu-item-group-title{color:rgba(0,0,0,.45);font-size:14px;height:1.5715;line-height:1.5715;padding:8px 16px;transition:all .3s}.ant-menu-horizontal .ant-menu-submenu{transition:border-color .3s cubic-bezier(.645,.045,.355,1),background .3s cubic-bezier(.645,.045,.355,1)}.ant-menu-submenu,.ant-menu-submenu-inline{transition:border-color .3s cubic-bezier(.645,.045,.355,1),background .3s cubic-bezier(.645,.045,.355,1),padding .15s cubic-bezier(.645,.045,.355,1)}.ant-menu-submenu-selected{color:var(--ant-primary-color)}.ant-menu-item:active,.ant-menu-submenu-title:active{background:var(--ant-primary-1)}.ant-menu-submenu .ant-menu-sub{cursor:auto;transition:background .3s cubic-bezier(.645,.045,.355,1),padding .3s cubic-bezier(.645,.045,.355,1)}.ant-menu-title-content{transition:color .3s}.ant-menu-item a{color:rgba(0,0,0,.85)}.ant-menu-item a:hover{color:var(--ant-primary-color)}.ant-menu-item a:before{background-color:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-menu-item>.ant-badge a{color:rgba(0,0,0,.85)}.ant-menu-item>.ant-badge a:hover{color:var(--ant-primary-color)}.ant-menu-item-divider{border:solid #f0f0f0;border-width:1px 0 0;line-height:0;overflow:hidden}.ant-menu-item-divider-dashed{border-style:dashed}.ant-menu-horizontal .ant-menu-item,.ant-menu-horizontal .ant-menu-submenu{margin-top:-1px}.ant-menu-horizontal>.ant-menu-item-active,.ant-menu-horizontal>.ant-menu-item:hover,.ant-menu-horizontal>.ant-menu-submenu .ant-menu-submenu-title:hover{background-color:transparent}.ant-menu-item-selected,.ant-menu-item-selected a,.ant-menu-item-selected a:hover{color:var(--ant-primary-color)}.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-selected{background-color:var(--ant-primary-1)}.ant-menu-inline,.ant-menu-vertical,.ant-menu-vertical-left{border-right:1px solid #f0f0f0}.ant-menu-vertical-right{border-left:1px solid #f0f0f0}.ant-menu-vertical-left.ant-menu-sub,.ant-menu-vertical-right.ant-menu-sub,.ant-menu-vertical.ant-menu-sub{border-right:0;max-height:calc(100vh - 100px);min-width:160px;overflow:hidden;padding:0}.ant-menu-vertical-left.ant-menu-sub:not([class*=-active]),.ant-menu-vertical-right.ant-menu-sub:not([class*=-active]),.ant-menu-vertical.ant-menu-sub:not([class*=-active]){overflow-x:hidden;overflow-y:auto}.ant-menu-vertical-left.ant-menu-sub .ant-menu-item,.ant-menu-vertical-right.ant-menu-sub .ant-menu-item,.ant-menu-vertical.ant-menu-sub .ant-menu-item{border-right:0;left:0;margin-left:0}.ant-menu-vertical-left.ant-menu-sub .ant-menu-item:after,.ant-menu-vertical-right.ant-menu-sub .ant-menu-item:after,.ant-menu-vertical.ant-menu-sub .ant-menu-item:after{border-right:0}.ant-menu-vertical-left.ant-menu-sub>.ant-menu-item,.ant-menu-vertical-left.ant-menu-sub>.ant-menu-submenu,.ant-menu-vertical-right.ant-menu-sub>.ant-menu-item,.ant-menu-vertical-right.ant-menu-sub>.ant-menu-submenu,.ant-menu-vertical.ant-menu-sub>.ant-menu-item,.ant-menu-vertical.ant-menu-sub>.ant-menu-submenu{transform-origin:0 0}.ant-menu-horizontal.ant-menu-sub{min-width:114px}.ant-menu-horizontal .ant-menu-item,.ant-menu-horizontal .ant-menu-submenu-title{transition:border-color .3s,background .3s}.ant-menu-item,.ant-menu-submenu-title{cursor:pointer;display:block;margin:0;padding:0 20px;position:relative;transition:border-color .3s,background .3s,padding .3s cubic-bezier(.645,.045,.355,1);white-space:nowrap}.ant-menu-item .ant-menu-item-icon,.ant-menu-item .anticon,.ant-menu-submenu-title .ant-menu-item-icon,.ant-menu-submenu-title .anticon{font-size:14px;min-width:14px;transition:font-size .15s cubic-bezier(.215,.61,.355,1),margin .3s cubic-bezier(.645,.045,.355,1),color .3s}.ant-menu-item .ant-menu-item-icon+span,.ant-menu-item .anticon+span,.ant-menu-submenu-title .ant-menu-item-icon+span,.ant-menu-submenu-title .anticon+span{margin-left:10px;opacity:1;transition:opacity .3s cubic-bezier(.645,.045,.355,1),margin .3s,color .3s}.ant-menu-item .ant-menu-item-icon.svg,.ant-menu-submenu-title .ant-menu-item-icon.svg{vertical-align:-.125em}.ant-menu-item.ant-menu-item-only-child>.ant-menu-item-icon,.ant-menu-item.ant-menu-item-only-child>.anticon,.ant-menu-submenu-title.ant-menu-item-only-child>.ant-menu-item-icon,.ant-menu-submenu-title.ant-menu-item-only-child>.anticon{margin-right:0}.ant-menu-item:focus-visible,.ant-menu-submenu-title:focus-visible{box-shadow:0 0 0 2px var(--ant-primary-2)}.ant-menu>.ant-menu-item-divider{margin:1px 0;padding:0}.ant-menu-submenu-popup{background:transparent;border-radius:2px;box-shadow:none;position:absolute;transform-origin:0 0;z-index:1050}.ant-menu-submenu-popup:before{bottom:0;content:" ";height:100%;left:0;opacity:.0001;position:absolute;right:0;top:-7px;width:100%;z-index:-1}.ant-menu-submenu-placement-rightTop:before{left:-7px;top:0}.ant-menu-submenu>.ant-menu{background-color:#fff;border-radius:2px}.ant-menu-submenu>.ant-menu-submenu-title:after{transition:transform .3s cubic-bezier(.645,.045,.355,1)}.ant-menu-submenu-popup>.ant-menu{background-color:#fff}.ant-menu-submenu-arrow,.ant-menu-submenu-expand-icon{color:rgba(0,0,0,.85);position:absolute;right:16px;top:50%;transform:translateY(-50%);transition:transform .3s cubic-bezier(.645,.045,.355,1);width:10px}.ant-menu-submenu-arrow:after,.ant-menu-submenu-arrow:before{background-color:currentcolor;border-radius:2px;content:"";height:1.5px;position:absolute;transition:background .3s cubic-bezier(.645,.045,.355,1),transform .3s cubic-bezier(.645,.045,.355,1),top .3s cubic-bezier(.645,.045,.355,1),color .3s cubic-bezier(.645,.045,.355,1);width:6px}.ant-menu-submenu-arrow:before{transform:rotate(45deg) translateY(-2.5px)}.ant-menu-submenu-arrow:after{transform:rotate(-45deg) translateY(2.5px)}.ant-menu-submenu:hover>.ant-menu-submenu-title>.ant-menu-submenu-arrow,.ant-menu-submenu:hover>.ant-menu-submenu-title>.ant-menu-submenu-expand-icon{color:var(--ant-primary-color)}.ant-menu-inline-collapsed .ant-menu-submenu-arrow:before,.ant-menu-submenu-inline .ant-menu-submenu-arrow:before{transform:rotate(-45deg) translateX(2.5px)}.ant-menu-inline-collapsed .ant-menu-submenu-arrow:after,.ant-menu-submenu-inline .ant-menu-submenu-arrow:after{transform:rotate(45deg) translateX(-2.5px)}.ant-menu-submenu-horizontal .ant-menu-submenu-arrow{display:none}.ant-menu-submenu-open.ant-menu-submenu-inline>.ant-menu-submenu-title>.ant-menu-submenu-arrow{transform:translateY(-2px)}.ant-menu-submenu-open.ant-menu-submenu-inline>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after{transform:rotate(-45deg) translateX(-2.5px)}.ant-menu-submenu-open.ant-menu-submenu-inline>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before{transform:rotate(45deg) translateX(2.5px)}.ant-menu-vertical .ant-menu-submenu-selected,.ant-menu-vertical-left .ant-menu-submenu-selected,.ant-menu-vertical-right .ant-menu-submenu-selected{color:var(--ant-primary-color)}.ant-menu-horizontal{border:0;border-bottom:1px solid #f0f0f0;box-shadow:none;line-height:46px}.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-item,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-submenu{margin-bottom:0;margin-top:-1px;padding:0 20px}.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-item-active,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-item-open,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-item-selected,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-item:hover,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-submenu-active,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-submenu-open,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-submenu-selected,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-submenu:hover{color:var(--ant-primary-color)}.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-item-active:after,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-item-open:after,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-item-selected:after,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-item:hover:after,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-submenu-active:after,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-submenu-open:after,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-submenu-selected:after,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-submenu:hover:after{border-bottom:2px solid var(--ant-primary-color)}.ant-menu-horizontal>.ant-menu-item,.ant-menu-horizontal>.ant-menu-submenu{display:inline-block;position:relative;top:1px;vertical-align:bottom}.ant-menu-horizontal>.ant-menu-item:after,.ant-menu-horizontal>.ant-menu-submenu:after{border-bottom:2px solid transparent;bottom:0;content:"";left:20px;position:absolute;right:20px;transition:border-color .3s cubic-bezier(.645,.045,.355,1)}.ant-menu-horizontal>.ant-menu-submenu>.ant-menu-submenu-title{padding:0}.ant-menu-horizontal>.ant-menu-item a{color:rgba(0,0,0,.85)}.ant-menu-horizontal>.ant-menu-item a:hover{color:var(--ant-primary-color)}.ant-menu-horizontal>.ant-menu-item a:before{bottom:-2px}.ant-menu-horizontal>.ant-menu-item-selected a{color:var(--ant-primary-color)}.ant-menu-horizontal:after{clear:both;content:"\\20";display:block;height:0}.ant-menu-inline .ant-menu-item,.ant-menu-vertical .ant-menu-item,.ant-menu-vertical-left .ant-menu-item,.ant-menu-vertical-right .ant-menu-item{position:relative}.ant-menu-inline .ant-menu-item:after,.ant-menu-vertical .ant-menu-item:after,.ant-menu-vertical-left .ant-menu-item:after,.ant-menu-vertical-right .ant-menu-item:after{border-right:3px solid var(--ant-primary-color);bottom:0;content:"";opacity:0;position:absolute;right:0;top:0;transform:scaleY(.0001);transition:transform .15s cubic-bezier(.215,.61,.355,1),opacity .15s cubic-bezier(.215,.61,.355,1)}.ant-menu-inline .ant-menu-item,.ant-menu-inline .ant-menu-submenu-title,.ant-menu-vertical .ant-menu-item,.ant-menu-vertical .ant-menu-submenu-title,.ant-menu-vertical-left .ant-menu-item,.ant-menu-vertical-left .ant-menu-submenu-title,.ant-menu-vertical-right .ant-menu-item,.ant-menu-vertical-right .ant-menu-submenu-title{height:40px;line-height:40px;margin-bottom:4px;margin-top:4px;overflow:hidden;padding:0 16px;text-overflow:ellipsis}.ant-menu-inline .ant-menu-submenu,.ant-menu-vertical .ant-menu-submenu,.ant-menu-vertical-left .ant-menu-submenu,.ant-menu-vertical-right .ant-menu-submenu{padding-bottom:.02px}.ant-menu-inline .ant-menu-item:not(:last-child),.ant-menu-vertical .ant-menu-item:not(:last-child),.ant-menu-vertical-left .ant-menu-item:not(:last-child),.ant-menu-vertical-right .ant-menu-item:not(:last-child){margin-bottom:8px}.ant-menu-inline>.ant-menu-item,.ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title,.ant-menu-vertical-left>.ant-menu-item,.ant-menu-vertical-left>.ant-menu-submenu>.ant-menu-submenu-title,.ant-menu-vertical-right>.ant-menu-item,.ant-menu-vertical-right>.ant-menu-submenu>.ant-menu-submenu-title,.ant-menu-vertical>.ant-menu-item,.ant-menu-vertical>.ant-menu-submenu>.ant-menu-submenu-title{height:40px;line-height:40px}.ant-menu-vertical .ant-menu-item-group-list .ant-menu-submenu-title,.ant-menu-vertical .ant-menu-submenu-title{padding-right:34px}.ant-menu-inline{width:100%}.ant-menu-inline .ant-menu-item-selected:after,.ant-menu-inline .ant-menu-selected:after{opacity:1;transform:scaleY(1);transition:transform .15s cubic-bezier(.645,.045,.355,1),opacity .15s cubic-bezier(.645,.045,.355,1)}.ant-menu-inline .ant-menu-item,.ant-menu-inline .ant-menu-submenu-title{width:calc(100% + 1px)}.ant-menu-inline .ant-menu-item-group-list .ant-menu-submenu-title,.ant-menu-inline .ant-menu-submenu-title{padding-right:34px}.ant-menu-inline.ant-menu-root .ant-menu-item,.ant-menu-inline.ant-menu-root .ant-menu-submenu-title{align-items:center;display:flex;transition:border-color .3s,background .3s,padding .1s cubic-bezier(.215,.61,.355,1)}.ant-menu-inline.ant-menu-root .ant-menu-item>.ant-menu-title-content,.ant-menu-inline.ant-menu-root .ant-menu-submenu-title>.ant-menu-title-content{flex:auto;min-width:0;overflow:hidden;text-overflow:ellipsis}.ant-menu-inline.ant-menu-root .ant-menu-item>*,.ant-menu-inline.ant-menu-root .ant-menu-submenu-title>*{flex:none}.ant-menu.ant-menu-inline-collapsed{width:80px}.ant-menu.ant-menu-inline-collapsed>.ant-menu-item,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-item,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-submenu>.ant-menu-submenu-title,.ant-menu.ant-menu-inline-collapsed>.ant-menu-submenu>.ant-menu-submenu-title{left:0;padding:0 calc(50% - 8px);text-overflow:clip}.ant-menu.ant-menu-inline-collapsed>.ant-menu-item .ant-menu-submenu-arrow,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-item .ant-menu-submenu-arrow,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-submenu-arrow,.ant-menu.ant-menu-inline-collapsed>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-submenu-arrow{opacity:0}.ant-menu.ant-menu-inline-collapsed>.ant-menu-item .ant-menu-item-icon,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item .anticon,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-item .ant-menu-item-icon,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-item .anticon,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-item-icon,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-submenu>.ant-menu-submenu-title .anticon,.ant-menu.ant-menu-inline-collapsed>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-item-icon,.ant-menu.ant-menu-inline-collapsed>.ant-menu-submenu>.ant-menu-submenu-title .anticon{font-size:16px;line-height:40px;margin:0}.ant-menu.ant-menu-inline-collapsed>.ant-menu-item .ant-menu-item-icon+span,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item .anticon+span,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-item .ant-menu-item-icon+span,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-item .anticon+span,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-item-icon+span,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-submenu>.ant-menu-submenu-title .anticon+span,.ant-menu.ant-menu-inline-collapsed>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-item-icon+span,.ant-menu.ant-menu-inline-collapsed>.ant-menu-submenu>.ant-menu-submenu-title .anticon+span{display:inline-block;opacity:0}.ant-menu.ant-menu-inline-collapsed .ant-menu-item-icon,.ant-menu.ant-menu-inline-collapsed .anticon{display:inline-block}.ant-menu.ant-menu-inline-collapsed-tooltip{pointer-events:none}.ant-menu.ant-menu-inline-collapsed-tooltip .ant-menu-item-icon,.ant-menu.ant-menu-inline-collapsed-tooltip .anticon{display:none}.ant-menu.ant-menu-inline-collapsed-tooltip a{color:hsla(0,0%,100%,.85)}.ant-menu.ant-menu-inline-collapsed .ant-menu-item-group-title{overflow:hidden;padding-left:4px;padding-right:4px;text-overflow:ellipsis;white-space:nowrap}.ant-menu-item-group-list{margin:0;padding:0}.ant-menu-item-group-list .ant-menu-item,.ant-menu-item-group-list .ant-menu-submenu-title{padding:0 16px 0 28px}.ant-menu-root.ant-menu-inline,.ant-menu-root.ant-menu-vertical,.ant-menu-root.ant-menu-vertical-left,.ant-menu-root.ant-menu-vertical-right{box-shadow:none}.ant-menu-root.ant-menu-inline-collapsed .ant-menu-item>.ant-menu-inline-collapsed-noicon,.ant-menu-root.ant-menu-inline-collapsed .ant-menu-submenu .ant-menu-submenu-title>.ant-menu-inline-collapsed-noicon{font-size:16px;text-align:center}.ant-menu-sub.ant-menu-inline{background:#fafafa;border-radius:0;box-shadow:none;padding:0}.ant-menu-sub.ant-menu-inline>.ant-menu-item,.ant-menu-sub.ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title{height:40px;line-height:40px;list-style-position:inside;list-style-type:disc}.ant-menu-sub.ant-menu-inline .ant-menu-item-group-title{padding-left:32px}.ant-menu-item-disabled,.ant-menu-submenu-disabled{background:none;color:rgba(0,0,0,.25)!important;cursor:not-allowed}.ant-menu-item-disabled:after,.ant-menu-submenu-disabled:after{border-color:transparent!important}.ant-menu-item-disabled a,.ant-menu-submenu-disabled a{color:rgba(0,0,0,.25)!important;pointer-events:none}.ant-menu-item-disabled>.ant-menu-submenu-title,.ant-menu-submenu-disabled>.ant-menu-submenu-title{color:rgba(0,0,0,.25)!important;cursor:not-allowed}.ant-menu-item-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-item-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before,.ant-menu-submenu-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-submenu-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before{background:rgba(0,0,0,.25)!important}.ant-layout-header .ant-menu{line-height:inherit}.ant-menu-inline-collapsed-tooltip a,.ant-menu-inline-collapsed-tooltip a:hover{color:#fff}.ant-menu-light .ant-menu-item-active,.ant-menu-light .ant-menu-item:hover,.ant-menu-light .ant-menu-submenu-active,.ant-menu-light .ant-menu-submenu-title:hover,.ant-menu-light .ant-menu:not(.ant-menu-inline) .ant-menu-submenu-open{color:var(--ant-primary-color)}.ant-menu.ant-menu-root:focus-visible{box-shadow:0 0 0 2px var(--ant-primary-7)}.ant-menu-dark .ant-menu-item:focus-visible,.ant-menu-dark .ant-menu-submenu-title:focus-visible{box-shadow:0 0 0 2px var(--ant-primary-7)}.ant-menu-dark .ant-menu-sub,.ant-menu.ant-menu-dark,.ant-menu.ant-menu-dark .ant-menu-sub{background:#001529;color:hsla(0,0%,100%,.65)}.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow,.ant-menu.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow,.ant-menu.ant-menu-dark .ant-menu-submenu-title .ant-menu-submenu-arrow{opacity:.45;transition:all .3s}.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow:before,.ant-menu.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow:after,.ant-menu.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow:before,.ant-menu.ant-menu-dark .ant-menu-submenu-title .ant-menu-submenu-arrow:after,.ant-menu.ant-menu-dark .ant-menu-submenu-title .ant-menu-submenu-arrow:before{background:#fff}.ant-menu-dark.ant-menu-submenu-popup{background:transparent}.ant-menu-dark .ant-menu-inline.ant-menu-sub{background:#000c17}.ant-menu-dark.ant-menu-horizontal{border-bottom:0}.ant-menu-dark.ant-menu-horizontal>.ant-menu-item,.ant-menu-dark.ant-menu-horizontal>.ant-menu-submenu{border-color:#001529;border-bottom:0;margin-top:0;padding:0 20px;top:0}.ant-menu-dark.ant-menu-horizontal>.ant-menu-item:hover{background-color:var(--ant-primary-color)}.ant-menu-dark.ant-menu-horizontal>.ant-menu-item>a:before{bottom:0}.ant-menu-dark .ant-menu-item,.ant-menu-dark .ant-menu-item-group-title,.ant-menu-dark .ant-menu-item>a,.ant-menu-dark .ant-menu-item>span>a{color:hsla(0,0%,100%,.65)}.ant-menu-dark.ant-menu-inline,.ant-menu-dark.ant-menu-vertical,.ant-menu-dark.ant-menu-vertical-left,.ant-menu-dark.ant-menu-vertical-right{border-right:0}.ant-menu-dark.ant-menu-inline .ant-menu-item,.ant-menu-dark.ant-menu-vertical .ant-menu-item,.ant-menu-dark.ant-menu-vertical-left .ant-menu-item,.ant-menu-dark.ant-menu-vertical-right .ant-menu-item{border-right:0;left:0;margin-left:0}.ant-menu-dark.ant-menu-inline .ant-menu-item:after,.ant-menu-dark.ant-menu-vertical .ant-menu-item:after,.ant-menu-dark.ant-menu-vertical-left .ant-menu-item:after,.ant-menu-dark.ant-menu-vertical-right .ant-menu-item:after{border-right:0}.ant-menu-dark.ant-menu-inline .ant-menu-item,.ant-menu-dark.ant-menu-inline .ant-menu-submenu-title{width:100%}.ant-menu-dark .ant-menu-item-active,.ant-menu-dark .ant-menu-item:hover,.ant-menu-dark .ant-menu-submenu-active,.ant-menu-dark .ant-menu-submenu-open,.ant-menu-dark .ant-menu-submenu-selected,.ant-menu-dark .ant-menu-submenu-title:hover{background-color:transparent;color:#fff}.ant-menu-dark .ant-menu-item-active>a,.ant-menu-dark .ant-menu-item-active>span>a,.ant-menu-dark .ant-menu-item:hover>a,.ant-menu-dark .ant-menu-item:hover>span>a,.ant-menu-dark .ant-menu-submenu-active>a,.ant-menu-dark .ant-menu-submenu-active>span>a,.ant-menu-dark .ant-menu-submenu-open>a,.ant-menu-dark .ant-menu-submenu-open>span>a,.ant-menu-dark .ant-menu-submenu-selected>a,.ant-menu-dark .ant-menu-submenu-selected>span>a,.ant-menu-dark .ant-menu-submenu-title:hover>a,.ant-menu-dark .ant-menu-submenu-title:hover>span>a{color:#fff}.ant-menu-dark .ant-menu-item-active>.ant-menu-submenu-title>.ant-menu-submenu-arrow,.ant-menu-dark .ant-menu-item:hover>.ant-menu-submenu-title>.ant-menu-submenu-arrow,.ant-menu-dark .ant-menu-submenu-active>.ant-menu-submenu-title>.ant-menu-submenu-arrow,.ant-menu-dark .ant-menu-submenu-open>.ant-menu-submenu-title>.ant-menu-submenu-arrow,.ant-menu-dark .ant-menu-submenu-selected>.ant-menu-submenu-title>.ant-menu-submenu-arrow,.ant-menu-dark .ant-menu-submenu-title:hover>.ant-menu-submenu-title>.ant-menu-submenu-arrow{opacity:1}.ant-menu-dark .ant-menu-item-active>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-item-active>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before,.ant-menu-dark .ant-menu-item:hover>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-item:hover>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before,.ant-menu-dark .ant-menu-submenu-active>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-submenu-active>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before,.ant-menu-dark .ant-menu-submenu-open>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-submenu-open>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before,.ant-menu-dark .ant-menu-submenu-selected>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-submenu-selected>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before,.ant-menu-dark .ant-menu-submenu-title:hover>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-submenu-title:hover>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before{background:#fff}.ant-menu-dark .ant-menu-item:hover{background-color:transparent}.ant-menu-dark.ant-menu-dark:not(.ant-menu-horizontal) .ant-menu-item-selected{background-color:var(--ant-primary-color)}.ant-menu-dark .ant-menu-item-selected{border-right:0;color:#fff}.ant-menu-dark .ant-menu-item-selected:after{border-right:0}.ant-menu-dark .ant-menu-item-selected .ant-menu-item-icon,.ant-menu-dark .ant-menu-item-selected .ant-menu-item-icon+span,.ant-menu-dark .ant-menu-item-selected .anticon,.ant-menu-dark .ant-menu-item-selected .anticon+span,.ant-menu-dark .ant-menu-item-selected>a,.ant-menu-dark .ant-menu-item-selected>a:hover,.ant-menu-dark .ant-menu-item-selected>span>a,.ant-menu-dark .ant-menu-item-selected>span>a:hover{color:#fff}.ant-menu-submenu-popup.ant-menu-dark .ant-menu-item-selected,.ant-menu.ant-menu-dark .ant-menu-item-selected{background-color:var(--ant-primary-color)}.ant-menu-dark .ant-menu-item-disabled,.ant-menu-dark .ant-menu-item-disabled>a,.ant-menu-dark .ant-menu-item-disabled>span>a,.ant-menu-dark .ant-menu-submenu-disabled,.ant-menu-dark .ant-menu-submenu-disabled>a,.ant-menu-dark .ant-menu-submenu-disabled>span>a{color:hsla(0,0%,100%,.35)!important;opacity:.8}.ant-menu-dark .ant-menu-item-disabled>.ant-menu-submenu-title,.ant-menu-dark .ant-menu-submenu-disabled>.ant-menu-submenu-title{color:hsla(0,0%,100%,.35)!important}.ant-menu-dark .ant-menu-item-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-item-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before,.ant-menu-dark .ant-menu-submenu-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-submenu-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before{background:hsla(0,0%,100%,.35)!important}.ant-menu.ant-menu-rtl{direction:rtl;text-align:right}.ant-menu-rtl .ant-menu-item-group-title{text-align:right}.ant-menu-rtl.ant-menu-inline,.ant-menu-rtl.ant-menu-vertical{border-left:1px solid #f0f0f0;border-right:none}.ant-menu-rtl.ant-menu-dark.ant-menu-inline,.ant-menu-rtl.ant-menu-dark.ant-menu-vertical{border-left:none}.ant-menu-rtl.ant-menu-vertical-left.ant-menu-sub>.ant-menu-item,.ant-menu-rtl.ant-menu-vertical-left.ant-menu-sub>.ant-menu-submenu,.ant-menu-rtl.ant-menu-vertical-right.ant-menu-sub>.ant-menu-item,.ant-menu-rtl.ant-menu-vertical-right.ant-menu-sub>.ant-menu-submenu,.ant-menu-rtl.ant-menu-vertical.ant-menu-sub>.ant-menu-item,.ant-menu-rtl.ant-menu-vertical.ant-menu-sub>.ant-menu-submenu{transform-origin:top right}.ant-menu-rtl .ant-menu-item .ant-menu-item-icon,.ant-menu-rtl .ant-menu-item .anticon,.ant-menu-rtl .ant-menu-submenu-title .ant-menu-item-icon,.ant-menu-rtl .ant-menu-submenu-title .anticon{margin-left:10px;margin-right:auto}.ant-menu-rtl .ant-menu-item.ant-menu-item-only-child>.ant-menu-item-icon,.ant-menu-rtl .ant-menu-item.ant-menu-item-only-child>.anticon,.ant-menu-rtl .ant-menu-submenu-title.ant-menu-item-only-child>.ant-menu-item-icon,.ant-menu-rtl .ant-menu-submenu-title.ant-menu-item-only-child>.anticon{margin-left:0}.ant-menu-submenu-rtl.ant-menu-submenu-popup{transform-origin:100% 0}.ant-menu-rtl .ant-menu-submenu-inline>.ant-menu-submenu-title .ant-menu-submenu-arrow,.ant-menu-rtl .ant-menu-submenu-vertical-left>.ant-menu-submenu-title .ant-menu-submenu-arrow,.ant-menu-rtl .ant-menu-submenu-vertical-right>.ant-menu-submenu-title .ant-menu-submenu-arrow,.ant-menu-rtl .ant-menu-submenu-vertical>.ant-menu-submenu-title .ant-menu-submenu-arrow{left:16px;right:auto}.ant-menu-rtl .ant-menu-submenu-vertical-left>.ant-menu-submenu-title .ant-menu-submenu-arrow:before,.ant-menu-rtl .ant-menu-submenu-vertical-right>.ant-menu-submenu-title .ant-menu-submenu-arrow:before,.ant-menu-rtl .ant-menu-submenu-vertical>.ant-menu-submenu-title .ant-menu-submenu-arrow:before{transform:rotate(-45deg) translateY(-2px)}.ant-menu-rtl .ant-menu-submenu-vertical-left>.ant-menu-submenu-title .ant-menu-submenu-arrow:after,.ant-menu-rtl .ant-menu-submenu-vertical-right>.ant-menu-submenu-title .ant-menu-submenu-arrow:after,.ant-menu-rtl .ant-menu-submenu-vertical>.ant-menu-submenu-title .ant-menu-submenu-arrow:after{transform:rotate(45deg) translateY(2px)}.ant-menu-rtl.ant-menu-inline .ant-menu-item:after,.ant-menu-rtl.ant-menu-vertical .ant-menu-item:after,.ant-menu-rtl.ant-menu-vertical-left .ant-menu-item:after,.ant-menu-rtl.ant-menu-vertical-right .ant-menu-item:after{left:0;right:auto}.ant-menu-rtl.ant-menu-inline .ant-menu-item,.ant-menu-rtl.ant-menu-inline .ant-menu-submenu-title,.ant-menu-rtl.ant-menu-vertical .ant-menu-item,.ant-menu-rtl.ant-menu-vertical .ant-menu-submenu-title,.ant-menu-rtl.ant-menu-vertical-left .ant-menu-item,.ant-menu-rtl.ant-menu-vertical-left .ant-menu-submenu-title,.ant-menu-rtl.ant-menu-vertical-right .ant-menu-item,.ant-menu-rtl.ant-menu-vertical-right .ant-menu-submenu-title{text-align:right}.ant-menu-rtl.ant-menu-inline .ant-menu-submenu-title{padding-left:34px;padding-right:0}.ant-menu-rtl.ant-menu-vertical .ant-menu-submenu-title{padding-left:34px;padding-right:16px}.ant-menu-rtl.ant-menu-inline-collapsed.ant-menu-vertical .ant-menu-submenu-title{padding:0 calc(50% - 8px)}.ant-menu-rtl .ant-menu-item-group-list .ant-menu-item,.ant-menu-rtl .ant-menu-item-group-list .ant-menu-submenu-title{padding:0 28px 0 16px}.ant-menu-sub.ant-menu-inline{border:0}.ant-menu-rtl.ant-menu-sub.ant-menu-inline .ant-menu-item-group-title{padding-left:0;padding-right:32px}.ant-tooltip{font-feature-settings:"tnum";box-sizing:border-box;color:rgba(0,0,0,.85);display:block;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;max-width:250px;padding:0;position:absolute;visibility:visible;width:-webkit-max-content;width:-moz-max-content;width:max-content;z-index:1070}.ant-tooltip-hidden{display:none}.ant-tooltip-placement-top,.ant-tooltip-placement-topLeft,.ant-tooltip-placement-topRight{padding-bottom:8px}.ant-tooltip-placement-right,.ant-tooltip-placement-rightBottom,.ant-tooltip-placement-rightTop{padding-left:8px}.ant-tooltip-placement-bottom,.ant-tooltip-placement-bottomLeft,.ant-tooltip-placement-bottomRight{padding-top:8px}.ant-tooltip-placement-left,.ant-tooltip-placement-leftBottom,.ant-tooltip-placement-leftTop{padding-right:8px}.ant-tooltip-inner{word-wrap:break-word;background-color:rgba(0,0,0,.75);border-radius:2px;box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05);color:#fff;min-height:32px;min-width:30px;padding:6px 8px;text-align:left;text-decoration:none}.ant-tooltip-arrow{background:transparent;display:block;height:13.07106781px;overflow:hidden;pointer-events:none;position:absolute;width:13.07106781px}.ant-tooltip-arrow-content{background-color:rgba(0,0,0,.75);bottom:0;content:"";display:block;height:5px;left:0;margin:auto;pointer-events:auto;position:absolute;right:0;top:0;width:5px}.ant-tooltip-placement-top .ant-tooltip-arrow,.ant-tooltip-placement-topLeft .ant-tooltip-arrow,.ant-tooltip-placement-topRight .ant-tooltip-arrow{bottom:-5.07106781px}.ant-tooltip-placement-top .ant-tooltip-arrow-content,.ant-tooltip-placement-topLeft .ant-tooltip-arrow-content,.ant-tooltip-placement-topRight .ant-tooltip-arrow-content{box-shadow:3px 3px 7px rgba(0,0,0,.07);transform:translateY(-6.53553391px) rotate(45deg)}.ant-tooltip-placement-top .ant-tooltip-arrow{left:50%;transform:translateX(-50%)}.ant-tooltip-placement-topLeft .ant-tooltip-arrow{left:13px}.ant-tooltip-placement-topRight .ant-tooltip-arrow{right:13px}.ant-tooltip-placement-right .ant-tooltip-arrow,.ant-tooltip-placement-rightBottom .ant-tooltip-arrow,.ant-tooltip-placement-rightTop .ant-tooltip-arrow{left:-5.07106781px}.ant-tooltip-placement-right .ant-tooltip-arrow-content,.ant-tooltip-placement-rightBottom .ant-tooltip-arrow-content,.ant-tooltip-placement-rightTop .ant-tooltip-arrow-content{box-shadow:-3px 3px 7px rgba(0,0,0,.07);transform:translateX(6.53553391px) rotate(45deg)}.ant-tooltip-placement-right .ant-tooltip-arrow{top:50%;transform:translateY(-50%)}.ant-tooltip-placement-rightTop .ant-tooltip-arrow{top:5px}.ant-tooltip-placement-rightBottom .ant-tooltip-arrow{bottom:5px}.ant-tooltip-placement-left .ant-tooltip-arrow,.ant-tooltip-placement-leftBottom .ant-tooltip-arrow,.ant-tooltip-placement-leftTop .ant-tooltip-arrow{right:-5.07106781px}.ant-tooltip-placement-left .ant-tooltip-arrow-content,.ant-tooltip-placement-leftBottom .ant-tooltip-arrow-content,.ant-tooltip-placement-leftTop .ant-tooltip-arrow-content{box-shadow:3px -3px 7px rgba(0,0,0,.07);transform:translateX(-6.53553391px) rotate(45deg)}.ant-tooltip-placement-left .ant-tooltip-arrow{top:50%;transform:translateY(-50%)}.ant-tooltip-placement-leftTop .ant-tooltip-arrow{top:5px}.ant-tooltip-placement-leftBottom .ant-tooltip-arrow{bottom:5px}.ant-tooltip-placement-bottom .ant-tooltip-arrow,.ant-tooltip-placement-bottomLeft .ant-tooltip-arrow,.ant-tooltip-placement-bottomRight .ant-tooltip-arrow{top:-5.07106781px}.ant-tooltip-placement-bottom .ant-tooltip-arrow-content,.ant-tooltip-placement-bottomLeft .ant-tooltip-arrow-content,.ant-tooltip-placement-bottomRight .ant-tooltip-arrow-content{box-shadow:-3px -3px 7px rgba(0,0,0,.07);transform:translateY(6.53553391px) rotate(45deg)}.ant-tooltip-placement-bottom .ant-tooltip-arrow{left:50%;transform:translateX(-50%)}.ant-tooltip-placement-bottomLeft .ant-tooltip-arrow{left:13px}.ant-tooltip-placement-bottomRight .ant-tooltip-arrow{right:13px}.ant-tooltip-magenta .ant-tooltip-arrow-content,.ant-tooltip-magenta .ant-tooltip-inner,.ant-tooltip-pink .ant-tooltip-arrow-content,.ant-tooltip-pink .ant-tooltip-inner{background-color:#eb2f96}.ant-tooltip-red .ant-tooltip-arrow-content,.ant-tooltip-red .ant-tooltip-inner{background-color:#f5222d}.ant-tooltip-volcano .ant-tooltip-arrow-content,.ant-tooltip-volcano .ant-tooltip-inner{background-color:#fa541c}.ant-tooltip-orange .ant-tooltip-arrow-content,.ant-tooltip-orange .ant-tooltip-inner{background-color:#fa8c16}.ant-tooltip-yellow .ant-tooltip-arrow-content,.ant-tooltip-yellow .ant-tooltip-inner{background-color:#fadb14}.ant-tooltip-gold .ant-tooltip-arrow-content,.ant-tooltip-gold .ant-tooltip-inner{background-color:#faad14}.ant-tooltip-cyan .ant-tooltip-arrow-content,.ant-tooltip-cyan .ant-tooltip-inner{background-color:#13c2c2}.ant-tooltip-lime .ant-tooltip-arrow-content,.ant-tooltip-lime .ant-tooltip-inner{background-color:#a0d911}.ant-tooltip-green .ant-tooltip-arrow-content,.ant-tooltip-green .ant-tooltip-inner{background-color:#52c41a}.ant-tooltip-blue .ant-tooltip-arrow-content,.ant-tooltip-blue .ant-tooltip-inner{background-color:#1890ff}.ant-tooltip-geekblue .ant-tooltip-arrow-content,.ant-tooltip-geekblue .ant-tooltip-inner{background-color:#2f54eb}.ant-tooltip-purple .ant-tooltip-arrow-content,.ant-tooltip-purple .ant-tooltip-inner{background-color:#722ed1}.ant-tooltip-rtl{direction:rtl}.ant-tooltip-rtl .ant-tooltip-inner{text-align:right}.ant-dropdown-menu-item.ant-dropdown-menu-item-danger{color:var(--ant-error-color)}.ant-dropdown-menu-item.ant-dropdown-menu-item-danger:hover{background-color:var(--ant-error-color);color:#fff}.ant-dropdown{font-feature-settings:"tnum";box-sizing:border-box;color:rgba(0,0,0,.85);display:block;font-size:14px;font-variant:tabular-nums;left:-9999px;line-height:1.5715;list-style:none;margin:0;padding:0;position:absolute;top:-9999px;z-index:1050}.ant-dropdown:before{bottom:-4px;content:" ";left:-7px;opacity:.0001;position:absolute;right:0;top:-4px;z-index:-9999}.ant-dropdown-wrap{position:relative}.ant-dropdown-wrap .ant-btn>.anticon-down{font-size:10px}.ant-dropdown-wrap .anticon-down:before{transition:transform .2s}.ant-dropdown-wrap-open .anticon-down:before{transform:rotate(180deg)}.ant-dropdown-hidden,.ant-dropdown-menu-hidden,.ant-dropdown-menu-submenu-hidden{display:none}.ant-dropdown-show-arrow.ant-dropdown-placement-topCenter,.ant-dropdown-show-arrow.ant-dropdown-placement-topLeft,.ant-dropdown-show-arrow.ant-dropdown-placement-topRight{padding-bottom:10px}.ant-dropdown-show-arrow.ant-dropdown-placement-bottomCenter,.ant-dropdown-show-arrow.ant-dropdown-placement-bottomLeft,.ant-dropdown-show-arrow.ant-dropdown-placement-bottomRight{padding-top:10px}.ant-dropdown-arrow{background:transparent;border-style:solid;border-width:4.24264069px;display:block;height:8.48528137px;position:absolute;transform:rotate(45deg);width:8.48528137px;z-index:1}.ant-dropdown-placement-topCenter>.ant-dropdown-arrow,.ant-dropdown-placement-topLeft>.ant-dropdown-arrow,.ant-dropdown-placement-topRight>.ant-dropdown-arrow{border-color:transparent #fff #fff transparent;bottom:6.2px;box-shadow:3px 3px 7px rgba(0,0,0,.07)}.ant-dropdown-placement-topCenter>.ant-dropdown-arrow{left:50%;transform:translateX(-50%) rotate(45deg)}.ant-dropdown-placement-topLeft>.ant-dropdown-arrow{left:16px}.ant-dropdown-placement-topRight>.ant-dropdown-arrow{right:16px}.ant-dropdown-placement-bottomCenter>.ant-dropdown-arrow,.ant-dropdown-placement-bottomLeft>.ant-dropdown-arrow,.ant-dropdown-placement-bottomRight>.ant-dropdown-arrow{border-color:#fff transparent transparent #fff;box-shadow:-2px -2px 5px rgba(0,0,0,.06);top:6px}.ant-dropdown-placement-bottomCenter>.ant-dropdown-arrow{left:50%;transform:translateX(-50%) rotate(45deg)}.ant-dropdown-placement-bottomLeft>.ant-dropdown-arrow{left:16px}.ant-dropdown-placement-bottomRight>.ant-dropdown-arrow{right:16px}.ant-dropdown-menu{background-clip:padding-box;background-color:#fff;border-radius:2px;box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05);list-style-type:none;margin:0;outline:none;padding:4px 0;position:relative;text-align:left}.ant-dropdown-menu-item-group-title{color:rgba(0,0,0,.45);padding:5px 12px;transition:all .3s}.ant-dropdown-menu-submenu-popup{background:transparent;box-shadow:none;position:absolute;transform-origin:0 0;z-index:1050}.ant-dropdown-menu-submenu-popup li,.ant-dropdown-menu-submenu-popup ul{list-style:none}.ant-dropdown-menu-submenu-popup ul{margin-left:.3em;margin-right:.3em}.ant-dropdown-menu-item{align-items:center;display:flex;position:relative}.ant-dropdown-menu-item-icon{font-size:12px;margin-right:8px;min-width:12px}.ant-dropdown-menu-title-content{flex:auto}.ant-dropdown-menu-title-content>a{color:inherit;transition:all .3s}.ant-dropdown-menu-title-content>a:hover{color:inherit}.ant-dropdown-menu-title-content>a:after{bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-dropdown-menu-item,.ant-dropdown-menu-submenu-title{clear:both;color:rgba(0,0,0,.85);cursor:pointer;font-size:14px;font-weight:400;line-height:22px;margin:0;padding:5px 12px;transition:all .3s}.ant-dropdown-menu-item-selected,.ant-dropdown-menu-submenu-title-selected{background-color:var(--ant-primary-1);color:var(--ant-primary-color)}.ant-dropdown-menu-item:hover,.ant-dropdown-menu-submenu-title:hover{background-color:#f5f5f5}.ant-dropdown-menu-item-disabled,.ant-dropdown-menu-submenu-title-disabled{color:rgba(0,0,0,.25);cursor:not-allowed}.ant-dropdown-menu-item-disabled:hover,.ant-dropdown-menu-submenu-title-disabled:hover{background-color:#fff;color:rgba(0,0,0,.25);cursor:not-allowed}.ant-dropdown-menu-item-disabled a,.ant-dropdown-menu-submenu-title-disabled a{pointer-events:none}.ant-dropdown-menu-item-divider,.ant-dropdown-menu-submenu-title-divider{background-color:#f0f0f0;height:1px;line-height:0;margin:4px 0;overflow:hidden}.ant-dropdown-menu-item .ant-dropdown-menu-submenu-expand-icon,.ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-expand-icon{position:absolute;right:8px}.ant-dropdown-menu-item .ant-dropdown-menu-submenu-expand-icon .ant-dropdown-menu-submenu-arrow-icon,.ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-expand-icon .ant-dropdown-menu-submenu-arrow-icon{color:rgba(0,0,0,.45);font-size:10px;font-style:normal;margin-right:0!important}.ant-dropdown-menu-item-group-list{list-style:none;margin:0 8px;padding:0}.ant-dropdown-menu-submenu-title{padding-right:24px}.ant-dropdown-menu-submenu-vertical{position:relative}.ant-dropdown-menu-submenu-vertical>.ant-dropdown-menu{left:100%;margin-left:4px;min-width:100%;position:absolute;top:0;transform-origin:0 0}.ant-dropdown-menu-submenu.ant-dropdown-menu-submenu-disabled .ant-dropdown-menu-submenu-title,.ant-dropdown-menu-submenu.ant-dropdown-menu-submenu-disabled .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-arrow-icon{background-color:#fff;color:rgba(0,0,0,.25);cursor:not-allowed}.ant-dropdown-menu-submenu-selected .ant-dropdown-menu-submenu-title{color:var(--ant-primary-color)}.ant-dropdown.ant-slide-down-appear.ant-slide-down-appear-active.ant-dropdown-placement-bottomCenter,.ant-dropdown.ant-slide-down-appear.ant-slide-down-appear-active.ant-dropdown-placement-bottomLeft,.ant-dropdown.ant-slide-down-appear.ant-slide-down-appear-active.ant-dropdown-placement-bottomRight,.ant-dropdown.ant-slide-down-enter.ant-slide-down-enter-active.ant-dropdown-placement-bottomCenter,.ant-dropdown.ant-slide-down-enter.ant-slide-down-enter-active.ant-dropdown-placement-bottomLeft,.ant-dropdown.ant-slide-down-enter.ant-slide-down-enter-active.ant-dropdown-placement-bottomRight{-webkit-animation-name:antSlideUpIn;animation-name:antSlideUpIn}.ant-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-dropdown-placement-topCenter,.ant-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-dropdown-placement-topLeft,.ant-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-dropdown-placement-topRight,.ant-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-dropdown-placement-topCenter,.ant-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-dropdown-placement-topLeft,.ant-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-dropdown-placement-topRight{-webkit-animation-name:antSlideDownIn;animation-name:antSlideDownIn}.ant-dropdown.ant-slide-down-leave.ant-slide-down-leave-active.ant-dropdown-placement-bottomCenter,.ant-dropdown.ant-slide-down-leave.ant-slide-down-leave-active.ant-dropdown-placement-bottomLeft,.ant-dropdown.ant-slide-down-leave.ant-slide-down-leave-active.ant-dropdown-placement-bottomRight{-webkit-animation-name:antSlideUpOut;animation-name:antSlideUpOut}.ant-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-dropdown-placement-topCenter,.ant-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-dropdown-placement-topLeft,.ant-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-dropdown-placement-topRight{-webkit-animation-name:antSlideDownOut;animation-name:antSlideDownOut}.ant-dropdown-button>.anticon.anticon-down,.ant-dropdown-link>.anticon.anticon-down,.ant-dropdown-trigger>.anticon.anticon-down{font-size:10px;vertical-align:baseline}.ant-dropdown-button{white-space:nowrap}.ant-dropdown-button.ant-btn-group>.ant-btn-loading,.ant-dropdown-button.ant-btn-group>.ant-btn-loading+.ant-btn{cursor:default;pointer-events:none}.ant-dropdown-button.ant-btn-group>.ant-btn-loading+.ant-btn:before{display:block}.ant-dropdown-button.ant-btn-group>.ant-btn:last-child:not(:first-child):not(.ant-btn-icon-only){padding-left:8px;padding-right:8px}.ant-dropdown-menu-dark,.ant-dropdown-menu-dark .ant-dropdown-menu{background:#001529}.ant-dropdown-menu-dark .ant-dropdown-menu-item,.ant-dropdown-menu-dark .ant-dropdown-menu-item .ant-dropdown-menu-submenu-arrow:after,.ant-dropdown-menu-dark .ant-dropdown-menu-item>.anticon+span>a,.ant-dropdown-menu-dark .ant-dropdown-menu-item>.anticon+span>a .ant-dropdown-menu-submenu-arrow:after,.ant-dropdown-menu-dark .ant-dropdown-menu-item>a,.ant-dropdown-menu-dark .ant-dropdown-menu-item>a .ant-dropdown-menu-submenu-arrow:after,.ant-dropdown-menu-dark .ant-dropdown-menu-submenu-title,.ant-dropdown-menu-dark .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-arrow:after{color:hsla(0,0%,100%,.65)}.ant-dropdown-menu-dark .ant-dropdown-menu-item:hover,.ant-dropdown-menu-dark .ant-dropdown-menu-item>.anticon+span>a:hover,.ant-dropdown-menu-dark .ant-dropdown-menu-item>a:hover,.ant-dropdown-menu-dark .ant-dropdown-menu-submenu-title:hover{background:transparent;color:#fff}.ant-dropdown-menu-dark .ant-dropdown-menu-item-selected,.ant-dropdown-menu-dark .ant-dropdown-menu-item-selected:hover,.ant-dropdown-menu-dark .ant-dropdown-menu-item-selected>a{background:var(--ant-primary-color);color:#fff}.ant-dropdown-rtl{direction:rtl}.ant-dropdown-rtl.ant-dropdown:before{left:0;right:-7px}.ant-dropdown-menu-submenu-rtl .ant-dropdown-menu-item-group-title,.ant-dropdown-menu.ant-dropdown-menu-rtl,.ant-dropdown-rtl .ant-dropdown-menu-item-group-title{direction:rtl;text-align:right}.ant-dropdown-menu-submenu-popup.ant-dropdown-menu-submenu-rtl{transform-origin:100% 0}.ant-dropdown-rtl .ant-dropdown-menu-item,.ant-dropdown-rtl .ant-dropdown-menu-submenu-popup li,.ant-dropdown-rtl .ant-dropdown-menu-submenu-popup ul,.ant-dropdown-rtl .ant-dropdown-menu-submenu-title{text-align:right}.ant-dropdown-rtl .ant-dropdown-menu-item>.anticon:first-child,.ant-dropdown-rtl .ant-dropdown-menu-item>span>.anticon:first-child,.ant-dropdown-rtl .ant-dropdown-menu-submenu-title>.anticon:first-child,.ant-dropdown-rtl .ant-dropdown-menu-submenu-title>span>.anticon:first-child{margin-left:8px;margin-right:0}.ant-dropdown-rtl .ant-dropdown-menu-item .ant-dropdown-menu-submenu-expand-icon,.ant-dropdown-rtl .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-expand-icon{left:8px;right:auto}.ant-dropdown-rtl .ant-dropdown-menu-item .ant-dropdown-menu-submenu-expand-icon .ant-dropdown-menu-submenu-arrow-icon,.ant-dropdown-rtl .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-expand-icon .ant-dropdown-menu-submenu-arrow-icon{margin-left:0!important;transform:scaleX(-1)}.ant-dropdown-rtl .ant-dropdown-menu-submenu-title{padding-left:24px;padding-right:12px}.ant-dropdown-rtl .ant-dropdown-menu-submenu-vertical>.ant-dropdown-menu{left:0;margin-left:0;margin-right:4px;right:100%}.ant-btn{background-image:none;background:#fff;border:1px solid #d9d9d9;border-radius:2px;box-shadow:0 2px 0 rgba(0,0,0,.015);color:rgba(0,0,0,.85);cursor:pointer;display:inline-block;font-size:14px;font-weight:400;height:32px;line-height:1.5715;padding:4px 15px;position:relative;text-align:center;touch-action:manipulation;transition:all .3s cubic-bezier(.645,.045,.355,1);-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.ant-btn>.anticon{line-height:1}.ant-btn,.ant-btn:active,.ant-btn:focus{outline:0}.ant-btn:not([disabled]):hover{text-decoration:none}.ant-btn:not([disabled]):active{box-shadow:none;outline:0}.ant-btn[disabled]{cursor:not-allowed}.ant-btn[disabled]>*{pointer-events:none}.ant-btn-lg{border-radius:2px;font-size:16px;height:40px;padding:6.4px 15px}.ant-btn-sm{border-radius:2px;font-size:14px;height:24px;padding:0 7px}.ant-btn>a:only-child{color:currentcolor}.ant-btn>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn:focus,.ant-btn:hover{background:#fff;border-color:var(--ant-primary-color-hover);color:var(--ant-primary-color-hover)}.ant-btn:focus>a:only-child,.ant-btn:hover>a:only-child{color:currentcolor}.ant-btn:focus>a:only-child:after,.ant-btn:hover>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn:active{background:#fff;border-color:var(--ant-primary-color-active);color:var(--ant-primary-color-active)}.ant-btn:active>a:only-child{color:currentcolor}.ant-btn:active>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn[disabled],.ant-btn[disabled]:active,.ant-btn[disabled]:focus,.ant-btn[disabled]:hover{background:#f5f5f5;border-color:#d9d9d9;box-shadow:none;color:rgba(0,0,0,.25);text-shadow:none}.ant-btn[disabled]:active>a:only-child,.ant-btn[disabled]:focus>a:only-child,.ant-btn[disabled]:hover>a:only-child,.ant-btn[disabled]>a:only-child{color:currentcolor}.ant-btn[disabled]:active>a:only-child:after,.ant-btn[disabled]:focus>a:only-child:after,.ant-btn[disabled]:hover>a:only-child:after,.ant-btn[disabled]>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn:active,.ant-btn:focus,.ant-btn:hover{background:#fff;text-decoration:none}.ant-btn>span{display:inline-block}.ant-btn-primary{background:var(--ant-primary-color);border-color:var(--ant-primary-color);box-shadow:0 2px 0 rgba(0,0,0,.045);color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.12)}.ant-btn-primary>a:only-child{color:currentcolor}.ant-btn-primary>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-primary:focus,.ant-btn-primary:hover{background:var(--ant-primary-color-hover);border-color:var(--ant-primary-color-hover);color:#fff}.ant-btn-primary:focus>a:only-child,.ant-btn-primary:hover>a:only-child{color:currentcolor}.ant-btn-primary:focus>a:only-child:after,.ant-btn-primary:hover>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-primary:active{background:var(--ant-primary-color-active);border-color:var(--ant-primary-color-active);color:#fff}.ant-btn-primary:active>a:only-child{color:currentcolor}.ant-btn-primary:active>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-primary[disabled],.ant-btn-primary[disabled]:active,.ant-btn-primary[disabled]:focus,.ant-btn-primary[disabled]:hover{background:#f5f5f5;border-color:#d9d9d9;box-shadow:none;color:rgba(0,0,0,.25);text-shadow:none}.ant-btn-primary[disabled]:active>a:only-child,.ant-btn-primary[disabled]:focus>a:only-child,.ant-btn-primary[disabled]:hover>a:only-child,.ant-btn-primary[disabled]>a:only-child{color:currentcolor}.ant-btn-primary[disabled]:active>a:only-child:after,.ant-btn-primary[disabled]:focus>a:only-child:after,.ant-btn-primary[disabled]:hover>a:only-child:after,.ant-btn-primary[disabled]>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-group .ant-btn-primary:not(:first-child):not(:last-child){border-left-color:var(--ant-primary-5);border-right-color:var(--ant-primary-5)}.ant-btn-group .ant-btn-primary:not(:first-child):not(:last-child):disabled{border-color:#d9d9d9}.ant-btn-group .ant-btn-primary:first-child:not(:last-child){border-right-color:var(--ant-primary-5)}.ant-btn-group .ant-btn-primary:first-child:not(:last-child)[disabled]{border-right-color:#d9d9d9}.ant-btn-group .ant-btn-primary+.ant-btn-primary,.ant-btn-group .ant-btn-primary:last-child:not(:first-child){border-left-color:var(--ant-primary-5)}.ant-btn-group .ant-btn-primary+.ant-btn-primary[disabled],.ant-btn-group .ant-btn-primary:last-child:not(:first-child)[disabled]{border-left-color:#d9d9d9}.ant-btn-ghost{background:transparent;border-color:#d9d9d9;color:rgba(0,0,0,.85)}.ant-btn-ghost>a:only-child{color:currentcolor}.ant-btn-ghost>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-ghost:focus,.ant-btn-ghost:hover{background:transparent;border-color:var(--ant-primary-color-hover);color:var(--ant-primary-color-hover)}.ant-btn-ghost:focus>a:only-child,.ant-btn-ghost:hover>a:only-child{color:currentcolor}.ant-btn-ghost:focus>a:only-child:after,.ant-btn-ghost:hover>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-ghost:active{background:transparent;border-color:var(--ant-primary-color-active);color:var(--ant-primary-color-active)}.ant-btn-ghost:active>a:only-child{color:currentcolor}.ant-btn-ghost:active>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-ghost[disabled],.ant-btn-ghost[disabled]:active,.ant-btn-ghost[disabled]:focus,.ant-btn-ghost[disabled]:hover{background:#f5f5f5;border-color:#d9d9d9;box-shadow:none;color:rgba(0,0,0,.25);text-shadow:none}.ant-btn-ghost[disabled]:active>a:only-child,.ant-btn-ghost[disabled]:focus>a:only-child,.ant-btn-ghost[disabled]:hover>a:only-child,.ant-btn-ghost[disabled]>a:only-child{color:currentcolor}.ant-btn-ghost[disabled]:active>a:only-child:after,.ant-btn-ghost[disabled]:focus>a:only-child:after,.ant-btn-ghost[disabled]:hover>a:only-child:after,.ant-btn-ghost[disabled]>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-dashed{background:#fff;border-color:#d9d9d9;border-style:dashed;color:rgba(0,0,0,.85)}.ant-btn-dashed>a:only-child{color:currentcolor}.ant-btn-dashed>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-dashed:focus,.ant-btn-dashed:hover{background:#fff;border-color:var(--ant-primary-color-hover);color:var(--ant-primary-color-hover)}.ant-btn-dashed:focus>a:only-child,.ant-btn-dashed:hover>a:only-child{color:currentcolor}.ant-btn-dashed:focus>a:only-child:after,.ant-btn-dashed:hover>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-dashed:active{background:#fff;border-color:var(--ant-primary-color-active);color:var(--ant-primary-color-active)}.ant-btn-dashed:active>a:only-child{color:currentcolor}.ant-btn-dashed:active>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-dashed[disabled],.ant-btn-dashed[disabled]:active,.ant-btn-dashed[disabled]:focus,.ant-btn-dashed[disabled]:hover{background:#f5f5f5;border-color:#d9d9d9;box-shadow:none;color:rgba(0,0,0,.25);text-shadow:none}.ant-btn-dashed[disabled]:active>a:only-child,.ant-btn-dashed[disabled]:focus>a:only-child,.ant-btn-dashed[disabled]:hover>a:only-child,.ant-btn-dashed[disabled]>a:only-child{color:currentcolor}.ant-btn-dashed[disabled]:active>a:only-child:after,.ant-btn-dashed[disabled]:focus>a:only-child:after,.ant-btn-dashed[disabled]:hover>a:only-child:after,.ant-btn-dashed[disabled]>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-danger{background:var(--ant-error-color);border-color:var(--ant-error-color);box-shadow:0 2px 0 rgba(0,0,0,.045);color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.12)}.ant-btn-danger>a:only-child{color:currentcolor}.ant-btn-danger>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-danger:focus,.ant-btn-danger:hover{background:var(--ant-error-color-hover);border-color:var(--ant-error-color-hover);color:#fff}.ant-btn-danger:focus>a:only-child,.ant-btn-danger:hover>a:only-child{color:currentcolor}.ant-btn-danger:focus>a:only-child:after,.ant-btn-danger:hover>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-danger:active{background:var(--ant-error-color-active);border-color:var(--ant-error-color-active);color:#fff}.ant-btn-danger:active>a:only-child{color:currentcolor}.ant-btn-danger:active>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-danger[disabled],.ant-btn-danger[disabled]:active,.ant-btn-danger[disabled]:focus,.ant-btn-danger[disabled]:hover{background:#f5f5f5;border-color:#d9d9d9;box-shadow:none;color:rgba(0,0,0,.25);text-shadow:none}.ant-btn-danger[disabled]:active>a:only-child,.ant-btn-danger[disabled]:focus>a:only-child,.ant-btn-danger[disabled]:hover>a:only-child,.ant-btn-danger[disabled]>a:only-child{color:currentcolor}.ant-btn-danger[disabled]:active>a:only-child:after,.ant-btn-danger[disabled]:focus>a:only-child:after,.ant-btn-danger[disabled]:hover>a:only-child:after,.ant-btn-danger[disabled]>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-link{background:transparent;border-color:transparent;box-shadow:none;color:var(--ant-primary-color)}.ant-btn-link>a:only-child{color:currentcolor}.ant-btn-link>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-link:focus,.ant-btn-link:hover{background:transparent;border-color:var(--ant-primary-color-hover);color:var(--ant-primary-color-hover)}.ant-btn-link:focus>a:only-child,.ant-btn-link:hover>a:only-child{color:currentcolor}.ant-btn-link:focus>a:only-child:after,.ant-btn-link:hover>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-link:active{background:transparent;border-color:var(--ant-primary-color-active);color:var(--ant-primary-color-active)}.ant-btn-link:active>a:only-child{color:currentcolor}.ant-btn-link:active>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-link[disabled],.ant-btn-link[disabled]:active,.ant-btn-link[disabled]:focus,.ant-btn-link[disabled]:hover{background:#f5f5f5;border-color:#d9d9d9}.ant-btn-link:hover{background:transparent}.ant-btn-link:active,.ant-btn-link:focus,.ant-btn-link:hover{border-color:transparent}.ant-btn-link[disabled],.ant-btn-link[disabled]:active,.ant-btn-link[disabled]:focus,.ant-btn-link[disabled]:hover{background:transparent;border-color:transparent;box-shadow:none;color:rgba(0,0,0,.25);text-shadow:none}.ant-btn-link[disabled]:active>a:only-child,.ant-btn-link[disabled]:focus>a:only-child,.ant-btn-link[disabled]:hover>a:only-child,.ant-btn-link[disabled]>a:only-child{color:currentcolor}.ant-btn-link[disabled]:active>a:only-child:after,.ant-btn-link[disabled]:focus>a:only-child:after,.ant-btn-link[disabled]:hover>a:only-child:after,.ant-btn-link[disabled]>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-text{background:transparent;border-color:transparent;box-shadow:none;color:rgba(0,0,0,.85)}.ant-btn-text>a:only-child{color:currentcolor}.ant-btn-text>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-text:focus,.ant-btn-text:hover{background:transparent;border-color:var(--ant-primary-color-hover);color:var(--ant-primary-color-hover)}.ant-btn-text:focus>a:only-child,.ant-btn-text:hover>a:only-child{color:currentcolor}.ant-btn-text:focus>a:only-child:after,.ant-btn-text:hover>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-text:active{background:transparent;border-color:var(--ant-primary-color-active);color:var(--ant-primary-color-active)}.ant-btn-text:active>a:only-child{color:currentcolor}.ant-btn-text:active>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-text[disabled],.ant-btn-text[disabled]:active,.ant-btn-text[disabled]:focus,.ant-btn-text[disabled]:hover{background:#f5f5f5;border-color:#d9d9d9}.ant-btn-text:focus,.ant-btn-text:hover{background:rgba(0,0,0,.018);border-color:transparent;color:rgba(0,0,0,.85)}.ant-btn-text:active{background:rgba(0,0,0,.028);border-color:transparent;color:rgba(0,0,0,.85)}.ant-btn-text[disabled],.ant-btn-text[disabled]:active,.ant-btn-text[disabled]:focus,.ant-btn-text[disabled]:hover{background:transparent;border-color:transparent;box-shadow:none;color:rgba(0,0,0,.25);text-shadow:none}.ant-btn-text[disabled]:active>a:only-child,.ant-btn-text[disabled]:focus>a:only-child,.ant-btn-text[disabled]:hover>a:only-child,.ant-btn-text[disabled]>a:only-child{color:currentcolor}.ant-btn-text[disabled]:active>a:only-child:after,.ant-btn-text[disabled]:focus>a:only-child:after,.ant-btn-text[disabled]:hover>a:only-child:after,.ant-btn-text[disabled]>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-dangerous{background:#fff;border-color:var(--ant-error-color);color:var(--ant-error-color)}.ant-btn-dangerous>a:only-child{color:currentcolor}.ant-btn-dangerous>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-dangerous:focus,.ant-btn-dangerous:hover{background:#fff;border-color:var(--ant-error-color-hover);color:var(--ant-error-color-hover)}.ant-btn-dangerous:focus>a:only-child,.ant-btn-dangerous:hover>a:only-child{color:currentcolor}.ant-btn-dangerous:focus>a:only-child:after,.ant-btn-dangerous:hover>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-dangerous:active{background:#fff;border-color:var(--ant-error-color-active);color:var(--ant-error-color-active)}.ant-btn-dangerous:active>a:only-child{color:currentcolor}.ant-btn-dangerous:active>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-dangerous[disabled],.ant-btn-dangerous[disabled]:active,.ant-btn-dangerous[disabled]:focus,.ant-btn-dangerous[disabled]:hover{background:#f5f5f5;border-color:#d9d9d9;box-shadow:none;color:rgba(0,0,0,.25);text-shadow:none}.ant-btn-dangerous[disabled]:active>a:only-child,.ant-btn-dangerous[disabled]:focus>a:only-child,.ant-btn-dangerous[disabled]:hover>a:only-child,.ant-btn-dangerous[disabled]>a:only-child{color:currentcolor}.ant-btn-dangerous[disabled]:active>a:only-child:after,.ant-btn-dangerous[disabled]:focus>a:only-child:after,.ant-btn-dangerous[disabled]:hover>a:only-child:after,.ant-btn-dangerous[disabled]>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-dangerous.ant-btn-primary{background:var(--ant-error-color);border-color:var(--ant-error-color);box-shadow:0 2px 0 rgba(0,0,0,.045);color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.12)}.ant-btn-dangerous.ant-btn-primary>a:only-child{color:currentcolor}.ant-btn-dangerous.ant-btn-primary>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-dangerous.ant-btn-primary:focus,.ant-btn-dangerous.ant-btn-primary:hover{background:var(--ant-error-color-hover);border-color:var(--ant-error-color-hover);color:#fff}.ant-btn-dangerous.ant-btn-primary:focus>a:only-child,.ant-btn-dangerous.ant-btn-primary:hover>a:only-child{color:currentcolor}.ant-btn-dangerous.ant-btn-primary:focus>a:only-child:after,.ant-btn-dangerous.ant-btn-primary:hover>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-dangerous.ant-btn-primary:active{background:var(--ant-error-color-active);border-color:var(--ant-error-color-active);color:#fff}.ant-btn-dangerous.ant-btn-primary:active>a:only-child{color:currentcolor}.ant-btn-dangerous.ant-btn-primary:active>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-dangerous.ant-btn-primary[disabled],.ant-btn-dangerous.ant-btn-primary[disabled]:active,.ant-btn-dangerous.ant-btn-primary[disabled]:focus,.ant-btn-dangerous.ant-btn-primary[disabled]:hover{background:#f5f5f5;border-color:#d9d9d9;box-shadow:none;color:rgba(0,0,0,.25);text-shadow:none}.ant-btn-dangerous.ant-btn-primary[disabled]:active>a:only-child,.ant-btn-dangerous.ant-btn-primary[disabled]:focus>a:only-child,.ant-btn-dangerous.ant-btn-primary[disabled]:hover>a:only-child,.ant-btn-dangerous.ant-btn-primary[disabled]>a:only-child{color:currentcolor}.ant-btn-dangerous.ant-btn-primary[disabled]:active>a:only-child:after,.ant-btn-dangerous.ant-btn-primary[disabled]:focus>a:only-child:after,.ant-btn-dangerous.ant-btn-primary[disabled]:hover>a:only-child:after,.ant-btn-dangerous.ant-btn-primary[disabled]>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-dangerous.ant-btn-link{background:transparent;border-color:transparent;box-shadow:none;color:var(--ant-error-color)}.ant-btn-dangerous.ant-btn-link>a:only-child{color:currentcolor}.ant-btn-dangerous.ant-btn-link>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-dangerous.ant-btn-link:focus,.ant-btn-dangerous.ant-btn-link:hover{border-color:var(--ant-primary-color-hover);color:var(--ant-primary-color-hover)}.ant-btn-dangerous.ant-btn-link:active{border-color:var(--ant-primary-color-active);color:var(--ant-primary-color-active)}.ant-btn-dangerous.ant-btn-link[disabled],.ant-btn-dangerous.ant-btn-link[disabled]:active,.ant-btn-dangerous.ant-btn-link[disabled]:focus,.ant-btn-dangerous.ant-btn-link[disabled]:hover{background:#f5f5f5;border-color:#d9d9d9}.ant-btn-dangerous.ant-btn-link:focus,.ant-btn-dangerous.ant-btn-link:hover{background:transparent;border-color:transparent;color:var(--ant-error-color-hover)}.ant-btn-dangerous.ant-btn-link:focus>a:only-child,.ant-btn-dangerous.ant-btn-link:hover>a:only-child{color:currentcolor}.ant-btn-dangerous.ant-btn-link:focus>a:only-child:after,.ant-btn-dangerous.ant-btn-link:hover>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-dangerous.ant-btn-link:active{background:transparent;border-color:transparent;color:var(--ant-error-color-active)}.ant-btn-dangerous.ant-btn-link:active>a:only-child{color:currentcolor}.ant-btn-dangerous.ant-btn-link:active>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-dangerous.ant-btn-link[disabled],.ant-btn-dangerous.ant-btn-link[disabled]:active,.ant-btn-dangerous.ant-btn-link[disabled]:focus,.ant-btn-dangerous.ant-btn-link[disabled]:hover{background:transparent;border-color:transparent;box-shadow:none;color:rgba(0,0,0,.25);text-shadow:none}.ant-btn-dangerous.ant-btn-link[disabled]:active>a:only-child,.ant-btn-dangerous.ant-btn-link[disabled]:focus>a:only-child,.ant-btn-dangerous.ant-btn-link[disabled]:hover>a:only-child,.ant-btn-dangerous.ant-btn-link[disabled]>a:only-child{color:currentcolor}.ant-btn-dangerous.ant-btn-link[disabled]:active>a:only-child:after,.ant-btn-dangerous.ant-btn-link[disabled]:focus>a:only-child:after,.ant-btn-dangerous.ant-btn-link[disabled]:hover>a:only-child:after,.ant-btn-dangerous.ant-btn-link[disabled]>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-dangerous.ant-btn-text{background:transparent;border-color:transparent;box-shadow:none;color:var(--ant-error-color)}.ant-btn-dangerous.ant-btn-text>a:only-child{color:currentcolor}.ant-btn-dangerous.ant-btn-text>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-dangerous.ant-btn-text:focus,.ant-btn-dangerous.ant-btn-text:hover{background:transparent;border-color:var(--ant-primary-color-hover);color:var(--ant-primary-color-hover)}.ant-btn-dangerous.ant-btn-text:active{background:transparent;border-color:var(--ant-primary-color-active);color:var(--ant-primary-color-active)}.ant-btn-dangerous.ant-btn-text[disabled],.ant-btn-dangerous.ant-btn-text[disabled]:active,.ant-btn-dangerous.ant-btn-text[disabled]:focus,.ant-btn-dangerous.ant-btn-text[disabled]:hover{background:#f5f5f5;border-color:#d9d9d9}.ant-btn-dangerous.ant-btn-text:focus,.ant-btn-dangerous.ant-btn-text:hover{background:rgba(0,0,0,.018);border-color:transparent;color:var(--ant-error-color-hover)}.ant-btn-dangerous.ant-btn-text:focus>a:only-child,.ant-btn-dangerous.ant-btn-text:hover>a:only-child{color:currentcolor}.ant-btn-dangerous.ant-btn-text:focus>a:only-child:after,.ant-btn-dangerous.ant-btn-text:hover>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-dangerous.ant-btn-text:active{background:rgba(0,0,0,.028);border-color:transparent;color:var(--ant-error-color-active)}.ant-btn-dangerous.ant-btn-text:active>a:only-child{color:currentcolor}.ant-btn-dangerous.ant-btn-text:active>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-dangerous.ant-btn-text[disabled],.ant-btn-dangerous.ant-btn-text[disabled]:active,.ant-btn-dangerous.ant-btn-text[disabled]:focus,.ant-btn-dangerous.ant-btn-text[disabled]:hover{background:transparent;border-color:transparent;box-shadow:none;color:rgba(0,0,0,.25);text-shadow:none}.ant-btn-dangerous.ant-btn-text[disabled]:active>a:only-child,.ant-btn-dangerous.ant-btn-text[disabled]:focus>a:only-child,.ant-btn-dangerous.ant-btn-text[disabled]:hover>a:only-child,.ant-btn-dangerous.ant-btn-text[disabled]>a:only-child{color:currentcolor}.ant-btn-dangerous.ant-btn-text[disabled]:active>a:only-child:after,.ant-btn-dangerous.ant-btn-text[disabled]:focus>a:only-child:after,.ant-btn-dangerous.ant-btn-text[disabled]:hover>a:only-child:after,.ant-btn-dangerous.ant-btn-text[disabled]>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-icon-only{border-radius:2px;font-size:16px;height:32px;padding:2.4px 0;vertical-align:-3px;width:32px}.ant-btn-icon-only>*{font-size:16px}.ant-btn-icon-only.ant-btn-lg{border-radius:2px;font-size:18px;height:40px;padding:4.9px 0;width:40px}.ant-btn-icon-only.ant-btn-lg>*{font-size:18px}.ant-btn-icon-only.ant-btn-sm{border-radius:2px;font-size:14px;height:24px;padding:0;width:24px}.ant-btn-icon-only.ant-btn-sm>*{font-size:14px}.ant-btn-icon-only>.anticon{display:flex;justify-content:center}a.ant-btn-icon-only{vertical-align:-1px}a.ant-btn-icon-only>.anticon{display:inline}.ant-btn-round{border-radius:32px;font-size:14px;height:32px;padding:4px 16px}.ant-btn-round.ant-btn-lg{border-radius:40px;font-size:16px;height:40px;padding:6.4px 20px}.ant-btn-round.ant-btn-sm{border-radius:24px;font-size:14px;height:24px;padding:0 12px}.ant-btn-round.ant-btn-icon-only{width:auto}.ant-btn-circle{border-radius:50%;min-width:32px;padding-left:0;padding-right:0;text-align:center}.ant-btn-circle.ant-btn-lg{border-radius:50%;min-width:40px}.ant-btn-circle.ant-btn-sm{border-radius:50%;min-width:24px}.ant-btn:before{background:#fff;border-radius:inherit;bottom:-1px;content:"";display:none;left:-1px;opacity:.35;pointer-events:none;position:absolute;right:-1px;top:-1px;transition:opacity .2s;z-index:1}.ant-btn .anticon{transition:margin-left .3s cubic-bezier(.645,.045,.355,1)}.ant-btn .anticon.anticon-minus>svg,.ant-btn .anticon.anticon-plus>svg{shape-rendering:optimizespeed}.ant-btn.ant-btn-loading{cursor:default;position:relative}.ant-btn.ant-btn-loading:before{display:block}.ant-btn>.ant-btn-loading-icon{transition:width .3s cubic-bezier(.645,.045,.355,1),opacity .3s cubic-bezier(.645,.045,.355,1)}.ant-btn>.ant-btn-loading-icon .anticon{-webkit-animation:none;animation:none;padding-right:8px}.ant-btn>.ant-btn-loading-icon .anticon svg{-webkit-animation:loadingCircle 1s linear infinite;animation:loadingCircle 1s linear infinite}.ant-btn-group{display:inline-flex}.ant-btn-group,.ant-btn-group>.ant-btn,.ant-btn-group>span>.ant-btn{position:relative}.ant-btn-group>.ant-btn:active,.ant-btn-group>.ant-btn:focus,.ant-btn-group>.ant-btn:hover,.ant-btn-group>span>.ant-btn:active,.ant-btn-group>span>.ant-btn:focus,.ant-btn-group>span>.ant-btn:hover{z-index:2}.ant-btn-group>.ant-btn[disabled],.ant-btn-group>span>.ant-btn[disabled]{z-index:0}.ant-btn-group .ant-btn-icon-only{font-size:14px}.ant-btn-group-lg>.ant-btn,.ant-btn-group-lg>span>.ant-btn{border-radius:0;font-size:16px;height:40px;padding:6.4px 15px}.ant-btn-group-lg .ant-btn.ant-btn-icon-only{height:40px;padding-left:0;padding-right:0;width:40px}.ant-btn-group-sm>.ant-btn,.ant-btn-group-sm>span>.ant-btn{border-radius:0;font-size:14px;height:24px;padding:0 7px}.ant-btn-group-sm>.ant-btn>.anticon,.ant-btn-group-sm>span>.ant-btn>.anticon{font-size:14px}.ant-btn-group-sm .ant-btn.ant-btn-icon-only{height:24px;padding-left:0;padding-right:0;width:24px}.ant-btn+.ant-btn-group,.ant-btn-group .ant-btn+.ant-btn,.ant-btn-group .ant-btn+span,.ant-btn-group span+.ant-btn,.ant-btn-group+.ant-btn,.ant-btn-group+.ant-btn-group,.ant-btn-group>span+span{margin-left:-1px}.ant-btn-group .ant-btn-primary+.ant-btn:not(.ant-btn-primary):not([disabled]){border-left-color:transparent}.ant-btn-group .ant-btn{border-radius:0}.ant-btn-group>.ant-btn:first-child,.ant-btn-group>span:first-child>.ant-btn{margin-left:0}.ant-btn-group>.ant-btn:only-child,.ant-btn-group>span:only-child>.ant-btn{border-radius:2px}.ant-btn-group>.ant-btn:first-child:not(:last-child),.ant-btn-group>span:first-child:not(:last-child)>.ant-btn{border-bottom-left-radius:2px;border-top-left-radius:2px}.ant-btn-group>.ant-btn:last-child:not(:first-child),.ant-btn-group>span:last-child:not(:first-child)>.ant-btn{border-bottom-right-radius:2px;border-top-right-radius:2px}.ant-btn-group-sm>.ant-btn:only-child,.ant-btn-group-sm>span:only-child>.ant-btn{border-radius:2px}.ant-btn-group-sm>.ant-btn:first-child:not(:last-child),.ant-btn-group-sm>span:first-child:not(:last-child)>.ant-btn{border-bottom-left-radius:2px;border-top-left-radius:2px}.ant-btn-group-sm>.ant-btn:last-child:not(:first-child),.ant-btn-group-sm>span:last-child:not(:first-child)>.ant-btn{border-bottom-right-radius:2px;border-top-right-radius:2px}.ant-btn-group>.ant-btn-group{float:left}.ant-btn-group>.ant-btn-group:not(:first-child):not(:last-child)>.ant-btn{border-radius:0}.ant-btn-group>.ant-btn-group:first-child:not(:last-child)>.ant-btn:last-child{border-bottom-right-radius:0;border-top-right-radius:0;padding-right:8px}.ant-btn-group>.ant-btn-group:last-child:not(:first-child)>.ant-btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0;padding-left:8px}.ant-btn-group-rtl.ant-btn+.ant-btn-group,.ant-btn-group-rtl.ant-btn-group .ant-btn+.ant-btn,.ant-btn-group-rtl.ant-btn-group .ant-btn+span,.ant-btn-group-rtl.ant-btn-group span+.ant-btn,.ant-btn-group-rtl.ant-btn-group+.ant-btn,.ant-btn-group-rtl.ant-btn-group+.ant-btn-group,.ant-btn-group-rtl.ant-btn-group>span+span,.ant-btn-rtl.ant-btn+.ant-btn-group,.ant-btn-rtl.ant-btn-group .ant-btn+.ant-btn,.ant-btn-rtl.ant-btn-group .ant-btn+span,.ant-btn-rtl.ant-btn-group span+.ant-btn,.ant-btn-rtl.ant-btn-group+.ant-btn,.ant-btn-rtl.ant-btn-group+.ant-btn-group,.ant-btn-rtl.ant-btn-group>span+span{margin-left:auto;margin-right:-1px}.ant-btn-group.ant-btn-group-rtl{direction:rtl}.ant-btn-group-rtl.ant-btn-group>.ant-btn:first-child:not(:last-child),.ant-btn-group-rtl.ant-btn-group>span:first-child:not(:last-child)>.ant-btn{border-radius:0 2px 2px 0}.ant-btn-group-rtl.ant-btn-group>.ant-btn:last-child:not(:first-child),.ant-btn-group-rtl.ant-btn-group>span:last-child:not(:first-child)>.ant-btn{border-radius:2px 0 0 2px}.ant-btn-group-rtl.ant-btn-group-sm>.ant-btn:first-child:not(:last-child),.ant-btn-group-rtl.ant-btn-group-sm>span:first-child:not(:last-child)>.ant-btn{border-radius:0 2px 2px 0}.ant-btn-group-rtl.ant-btn-group-sm>.ant-btn:last-child:not(:first-child),.ant-btn-group-rtl.ant-btn-group-sm>span:last-child:not(:first-child)>.ant-btn{border-radius:2px 0 0 2px}.ant-btn:active>span,.ant-btn:focus>span{position:relative}.ant-btn>.anticon+span,.ant-btn>span+.anticon{margin-left:8px}.ant-btn.ant-btn-background-ghost{border-color:#fff;color:#fff}.ant-btn.ant-btn-background-ghost,.ant-btn.ant-btn-background-ghost:active,.ant-btn.ant-btn-background-ghost:focus,.ant-btn.ant-btn-background-ghost:hover{background:transparent}.ant-btn.ant-btn-background-ghost:focus,.ant-btn.ant-btn-background-ghost:hover{border-color:var(--ant-primary-color-hover);color:var(--ant-primary-color-hover)}.ant-btn.ant-btn-background-ghost:active{border-color:var(--ant-primary-color-active);color:var(--ant-primary-color-active)}.ant-btn.ant-btn-background-ghost[disabled]{background:transparent;border-color:#d9d9d9;color:rgba(0,0,0,.25)}.ant-btn-background-ghost.ant-btn-primary{border-color:var(--ant-primary-color);color:var(--ant-primary-color);text-shadow:none}.ant-btn-background-ghost.ant-btn-primary>a:only-child{color:currentcolor}.ant-btn-background-ghost.ant-btn-primary>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-background-ghost.ant-btn-primary:focus,.ant-btn-background-ghost.ant-btn-primary:hover{background:transparent;border-color:var(--ant-primary-color-hover);color:var(--ant-primary-color-hover)}.ant-btn-background-ghost.ant-btn-primary:focus>a:only-child,.ant-btn-background-ghost.ant-btn-primary:hover>a:only-child{color:currentcolor}.ant-btn-background-ghost.ant-btn-primary:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-primary:hover>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-background-ghost.ant-btn-primary:active{background:transparent;border-color:var(--ant-primary-color-active);color:var(--ant-primary-color-active)}.ant-btn-background-ghost.ant-btn-primary:active>a:only-child{color:currentcolor}.ant-btn-background-ghost.ant-btn-primary:active>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-background-ghost.ant-btn-primary[disabled],.ant-btn-background-ghost.ant-btn-primary[disabled]:active,.ant-btn-background-ghost.ant-btn-primary[disabled]:focus,.ant-btn-background-ghost.ant-btn-primary[disabled]:hover{background:#f5f5f5;border-color:#d9d9d9;box-shadow:none;color:rgba(0,0,0,.25);text-shadow:none}.ant-btn-background-ghost.ant-btn-primary[disabled]:active>a:only-child,.ant-btn-background-ghost.ant-btn-primary[disabled]:focus>a:only-child,.ant-btn-background-ghost.ant-btn-primary[disabled]:hover>a:only-child,.ant-btn-background-ghost.ant-btn-primary[disabled]>a:only-child{color:currentcolor}.ant-btn-background-ghost.ant-btn-primary[disabled]:active>a:only-child:after,.ant-btn-background-ghost.ant-btn-primary[disabled]:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-primary[disabled]:hover>a:only-child:after,.ant-btn-background-ghost.ant-btn-primary[disabled]>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-background-ghost.ant-btn-danger{border-color:var(--ant-error-color);color:var(--ant-error-color);text-shadow:none}.ant-btn-background-ghost.ant-btn-danger>a:only-child{color:currentcolor}.ant-btn-background-ghost.ant-btn-danger>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-background-ghost.ant-btn-danger:focus,.ant-btn-background-ghost.ant-btn-danger:hover{background:transparent;border-color:var(--ant-error-color-hover);color:var(--ant-error-color-hover)}.ant-btn-background-ghost.ant-btn-danger:focus>a:only-child,.ant-btn-background-ghost.ant-btn-danger:hover>a:only-child{color:currentcolor}.ant-btn-background-ghost.ant-btn-danger:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-danger:hover>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-background-ghost.ant-btn-danger:active{background:transparent;border-color:var(--ant-error-color-active);color:var(--ant-error-color-active)}.ant-btn-background-ghost.ant-btn-danger:active>a:only-child{color:currentcolor}.ant-btn-background-ghost.ant-btn-danger:active>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-background-ghost.ant-btn-danger[disabled],.ant-btn-background-ghost.ant-btn-danger[disabled]:active,.ant-btn-background-ghost.ant-btn-danger[disabled]:focus,.ant-btn-background-ghost.ant-btn-danger[disabled]:hover{background:#f5f5f5;border-color:#d9d9d9;box-shadow:none;color:rgba(0,0,0,.25);text-shadow:none}.ant-btn-background-ghost.ant-btn-danger[disabled]:active>a:only-child,.ant-btn-background-ghost.ant-btn-danger[disabled]:focus>a:only-child,.ant-btn-background-ghost.ant-btn-danger[disabled]:hover>a:only-child,.ant-btn-background-ghost.ant-btn-danger[disabled]>a:only-child{color:currentcolor}.ant-btn-background-ghost.ant-btn-danger[disabled]:active>a:only-child:after,.ant-btn-background-ghost.ant-btn-danger[disabled]:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-danger[disabled]:hover>a:only-child:after,.ant-btn-background-ghost.ant-btn-danger[disabled]>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-background-ghost.ant-btn-dangerous{border-color:var(--ant-error-color);color:var(--ant-error-color);text-shadow:none}.ant-btn-background-ghost.ant-btn-dangerous>a:only-child{color:currentcolor}.ant-btn-background-ghost.ant-btn-dangerous>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-background-ghost.ant-btn-dangerous:focus,.ant-btn-background-ghost.ant-btn-dangerous:hover{background:transparent;border-color:var(--ant-error-color-hover);color:var(--ant-error-color-hover)}.ant-btn-background-ghost.ant-btn-dangerous:focus>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous:hover>a:only-child{color:currentcolor}.ant-btn-background-ghost.ant-btn-dangerous:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous:hover>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-background-ghost.ant-btn-dangerous:active{background:transparent;border-color:var(--ant-error-color-active);color:var(--ant-error-color-active)}.ant-btn-background-ghost.ant-btn-dangerous:active>a:only-child{color:currentcolor}.ant-btn-background-ghost.ant-btn-dangerous:active>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-background-ghost.ant-btn-dangerous[disabled],.ant-btn-background-ghost.ant-btn-dangerous[disabled]:active,.ant-btn-background-ghost.ant-btn-dangerous[disabled]:focus,.ant-btn-background-ghost.ant-btn-dangerous[disabled]:hover{background:#f5f5f5;border-color:#d9d9d9;box-shadow:none;color:rgba(0,0,0,.25);text-shadow:none}.ant-btn-background-ghost.ant-btn-dangerous[disabled]:active>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous[disabled]:focus>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous[disabled]:hover>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous[disabled]>a:only-child{color:currentcolor}.ant-btn-background-ghost.ant-btn-dangerous[disabled]:active>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous[disabled]:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous[disabled]:hover>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous[disabled]>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link{border-color:transparent;color:var(--ant-error-color);text-shadow:none}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link>a:only-child{color:currentcolor}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:focus,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:hover{background:transparent;border-color:transparent;color:var(--ant-error-color-active)}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:focus>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:hover>a:only-child{color:currentcolor}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:hover>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:active{background:transparent;border-color:transparent;color:var(--ant-error-color-active)}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:active>a:only-child{color:currentcolor}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:active>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled],.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:active,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:focus,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:hover{background:#f5f5f5;border-color:#d9d9d9;box-shadow:none;color:rgba(0,0,0,.25);text-shadow:none}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:active>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:focus>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:hover>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]>a:only-child{color:currentcolor}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:active>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:hover>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-two-chinese-chars:first-letter{letter-spacing:.34em}.ant-btn-two-chinese-chars>:not(.anticon){letter-spacing:.34em;margin-right:-.34em}.ant-btn.ant-btn-block{width:100%}.ant-btn:empty{content:"\\a0";display:inline-block;visibility:hidden;width:0}a.ant-btn{line-height:30px;padding-top:.01px!important}a.ant-btn-lg{line-height:38px}a.ant-btn-sm{line-height:22px}.ant-btn-rtl{direction:rtl}.ant-btn-group-rtl.ant-btn-group .ant-btn-primary+.ant-btn-primary,.ant-btn-group-rtl.ant-btn-group .ant-btn-primary:last-child:not(:first-child){border-left-color:#d9d9d9;border-right-color:var(--ant-primary-5)}.ant-btn-group-rtl.ant-btn-group .ant-btn-primary+.ant-btn-primary[disabled],.ant-btn-group-rtl.ant-btn-group .ant-btn-primary:last-child:not(:first-child)[disabled]{border-left-color:var(--ant-primary-5);border-right-color:#d9d9d9}.ant-btn-rtl.ant-btn>.ant-btn-loading-icon .anticon{padding-left:8px;padding-right:0}.ant-btn>.ant-btn-loading-icon:only-child .anticon{padding-left:0;padding-right:0}.ant-btn-rtl.ant-btn>.anticon+span,.ant-btn-rtl.ant-btn>span+.anticon{margin-left:0;margin-right:8px}.ant-picker-calendar{font-feature-settings:"tnum";background:#fff;box-sizing:border-box;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0}.ant-picker-calendar-header{display:flex;justify-content:flex-end;padding:12px 0}.ant-picker-calendar-header .ant-picker-calendar-year-select{min-width:80px}.ant-picker-calendar-header .ant-picker-calendar-month-select{margin-left:8px;min-width:70px}.ant-picker-calendar-header .ant-picker-calendar-mode-switch{margin-left:8px}.ant-picker-calendar .ant-picker-panel{background:#fff;border:0;border-radius:0;border-top:1px solid #f0f0f0}.ant-picker-calendar .ant-picker-panel .ant-picker-date-panel,.ant-picker-calendar .ant-picker-panel .ant-picker-month-panel{width:auto}.ant-picker-calendar .ant-picker-panel .ant-picker-body{padding:8px 0}.ant-picker-calendar .ant-picker-panel .ant-picker-content{width:100%}.ant-picker-calendar-mini{border-radius:2px}.ant-picker-calendar-mini .ant-picker-calendar-header{padding-left:8px;padding-right:8px}.ant-picker-calendar-mini .ant-picker-panel{border-radius:0 0 2px 2px}.ant-picker-calendar-mini .ant-picker-content{height:256px}.ant-picker-calendar-mini .ant-picker-content th{height:auto;line-height:18px;padding:0}.ant-picker-calendar-full .ant-picker-panel{background:#fff;border:0;display:block;text-align:right;width:100%}.ant-picker-calendar-full .ant-picker-panel .ant-picker-body td,.ant-picker-calendar-full .ant-picker-panel .ant-picker-body th{padding:0}.ant-picker-calendar-full .ant-picker-panel .ant-picker-body th{height:auto;line-height:18px;padding:0 12px 5px 0}.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell:before{display:none}.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell:hover .ant-picker-calendar-date{background:#f5f5f5}.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell .ant-picker-calendar-date-today:before{display:none}.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell-selected .ant-picker-calendar-date,.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell-selected .ant-picker-calendar-date-today,.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell-selected:hover .ant-picker-calendar-date,.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell-selected:hover .ant-picker-calendar-date-today{background:var(--ant-primary-1)}.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell-selected .ant-picker-calendar-date .ant-picker-calendar-date-value,.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell-selected .ant-picker-calendar-date-today .ant-picker-calendar-date-value,.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell-selected:hover .ant-picker-calendar-date .ant-picker-calendar-date-value,.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell-selected:hover .ant-picker-calendar-date-today .ant-picker-calendar-date-value{color:var(--ant-primary-color)}.ant-picker-calendar-full .ant-picker-panel .ant-picker-calendar-date{border:0;border-radius:0;border-top:2px solid #f0f0f0;display:block;height:auto;margin:0 4px;padding:4px 8px 0;transition:background .3s;width:auto}.ant-picker-calendar-full .ant-picker-panel .ant-picker-calendar-date-value{line-height:24px;transition:color .3s}.ant-picker-calendar-full .ant-picker-panel .ant-picker-calendar-date-content{color:rgba(0,0,0,.85);height:86px;line-height:1.5715;overflow-y:auto;position:static;text-align:left;width:auto}.ant-picker-calendar-full .ant-picker-panel .ant-picker-calendar-date-today{border-color:var(--ant-primary-color)}.ant-picker-calendar-full .ant-picker-panel .ant-picker-calendar-date-today .ant-picker-calendar-date-value{color:rgba(0,0,0,.85)}@media only screen and (max-width:480px){.ant-picker-calendar-header{display:block}.ant-picker-calendar-header .ant-picker-calendar-year-select{width:50%}.ant-picker-calendar-header .ant-picker-calendar-month-select{width:calc(50% - 8px)}.ant-picker-calendar-header .ant-picker-calendar-mode-switch{margin-left:0;margin-top:8px;width:100%}.ant-picker-calendar-header .ant-picker-calendar-mode-switch>label{text-align:center;width:50%}}.ant-picker-calendar-rtl{direction:rtl}.ant-picker-calendar-rtl .ant-picker-calendar-header .ant-picker-calendar-mode-switch,.ant-picker-calendar-rtl .ant-picker-calendar-header .ant-picker-calendar-month-select{margin-left:0;margin-right:8px}.ant-picker-calendar-rtl.ant-picker-calendar-full .ant-picker-panel{text-align:left}.ant-picker-calendar-rtl.ant-picker-calendar-full .ant-picker-panel .ant-picker-body th{padding:0 0 5px 12px}.ant-picker-calendar-rtl.ant-picker-calendar-full .ant-picker-panel .ant-picker-calendar-date-content{text-align:right}.ant-radio-group{font-feature-settings:"tnum";box-sizing:border-box;color:rgba(0,0,0,.85);display:inline-block;font-size:14px;font-size:0;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0}.ant-radio-group .ant-badge-count{z-index:1}.ant-radio-group>.ant-badge:not(:first-child)>.ant-radio-button-wrapper{border-left:none}.ant-radio-wrapper{font-feature-settings:"tnum";align-items:baseline;box-sizing:border-box;color:rgba(0,0,0,.85);cursor:pointer;display:inline-flex;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0 8px 0 0;padding:0;position:relative}.ant-radio-wrapper-disabled{cursor:not-allowed}.ant-radio-wrapper:after{content:"\\a0";display:inline-block;overflow:hidden;width:0}.ant-radio{font-feature-settings:"tnum";box-sizing:border-box;color:rgba(0,0,0,.85);cursor:pointer;display:inline-block;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;outline:none;padding:0;position:relative;top:.2em}.ant-radio-input:focus+.ant-radio-inner,.ant-radio-wrapper:hover .ant-radio,.ant-radio:hover .ant-radio-inner{border-color:var(--ant-primary-color)}.ant-radio-input:focus+.ant-radio-inner{box-shadow:0 0 0 3px var(--ant-primary-1)}.ant-radio-checked:after{-webkit-animation:antRadioEffect .36s ease-in-out;animation:antRadioEffect .36s ease-in-out;-webkit-animation-fill-mode:both;animation-fill-mode:both;border:1px solid var(--ant-primary-color);border-radius:50%;content:"";height:100%;left:0;position:absolute;top:0;visibility:hidden;width:100%}.ant-radio-wrapper:hover .ant-radio:after,.ant-radio:hover:after{visibility:visible}.ant-radio-inner{background-color:#fff;border:1px solid #d9d9d9;border-radius:50%;display:block;height:16px;left:0;position:relative;top:0;transition:all .3s;width:16px}.ant-radio-inner:after{background-color:var(--ant-primary-color);border-left:0;border-radius:16px;border-top:0;content:" ";display:block;height:16px;left:50%;margin-left:-8px;margin-top:-8px;opacity:0;position:absolute;top:50%;transform:scale(0);transition:all .3s cubic-bezier(.78,.14,.15,.86);width:16px}.ant-radio-input{bottom:0;cursor:pointer;left:0;opacity:0;position:absolute;right:0;top:0;z-index:1}.ant-radio-checked .ant-radio-inner{border-color:var(--ant-primary-color)}.ant-radio-checked .ant-radio-inner:after{opacity:1;transform:scale(.5);transition:all .3s cubic-bezier(.78,.14,.15,.86)}.ant-radio-disabled{cursor:not-allowed}.ant-radio-disabled .ant-radio-inner{background-color:#f5f5f5;border-color:#d9d9d9!important;cursor:not-allowed}.ant-radio-disabled .ant-radio-inner:after{background-color:rgba(0,0,0,.2)}.ant-radio-disabled .ant-radio-input{cursor:not-allowed}.ant-radio-disabled+span{color:rgba(0,0,0,.25);cursor:not-allowed}span.ant-radio+*{padding-left:8px;padding-right:8px}.ant-radio-button-wrapper{background:#fff;border-color:#d9d9d9;border-style:solid;border-width:1.02px 1px 1px 0;color:rgba(0,0,0,.85);cursor:pointer;display:inline-block;font-size:14px;height:32px;line-height:30px;margin:0;padding:0 15px;position:relative;transition:color .3s,background .3s,border-color .3s,box-shadow .3s}.ant-radio-button-wrapper a{color:rgba(0,0,0,.85)}.ant-radio-button-wrapper>.ant-radio-button{height:100%;left:0;position:absolute;top:0;width:100%;z-index:-1}.ant-radio-group-large .ant-radio-button-wrapper{font-size:16px;height:40px;line-height:38px}.ant-radio-group-small .ant-radio-button-wrapper{height:24px;line-height:22px;padding:0 7px}.ant-radio-button-wrapper:not(:first-child):before{background-color:#d9d9d9;box-sizing:content-box;content:"";display:block;height:100%;left:-1px;padding:1px 0;position:absolute;top:-1px;transition:background-color .3s;width:1px}.ant-radio-button-wrapper:first-child{border-left:1px solid #d9d9d9;border-radius:2px 0 0 2px}.ant-radio-button-wrapper:last-child{border-radius:0 2px 2px 0}.ant-radio-button-wrapper:first-child:last-child{border-radius:2px}.ant-radio-button-wrapper:hover{color:var(--ant-primary-color);position:relative}.ant-radio-button-wrapper:focus-within{box-shadow:0 0 0 3px var(--ant-primary-1)}.ant-radio-button-wrapper .ant-radio-inner,.ant-radio-button-wrapper input[type=checkbox],.ant-radio-button-wrapper input[type=radio]{height:0;opacity:0;pointer-events:none;width:0}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled){background:#fff;border-color:var(--ant-primary-color);color:var(--ant-primary-color);z-index:1}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):before{background-color:var(--ant-primary-color)}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):first-child{border-color:var(--ant-primary-color)}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):hover{border-color:var(--ant-primary-5);color:var(--ant-primary-5)}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):hover:before{background-color:var(--ant-primary-5)}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):active{border-color:var(--ant-primary-7);color:var(--ant-primary-7)}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):active:before{background-color:var(--ant-primary-7)}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):focus-within{box-shadow:0 0 0 3px var(--ant-primary-1)}.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled){background:var(--ant-primary-color);border-color:var(--ant-primary-color);color:#fff}.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):hover{background:var(--ant-primary-5);border-color:var(--ant-primary-5);color:#fff}.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):active{background:var(--ant-primary-7);border-color:var(--ant-primary-7);color:#fff}.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):focus-within{box-shadow:0 0 0 3px var(--ant-primary-1)}.ant-radio-button-wrapper-disabled{cursor:not-allowed}.ant-radio-button-wrapper-disabled,.ant-radio-button-wrapper-disabled:first-child,.ant-radio-button-wrapper-disabled:hover{background-color:#f5f5f5;border-color:#d9d9d9;color:rgba(0,0,0,.25)}.ant-radio-button-wrapper-disabled:first-child{border-left-color:#d9d9d9}.ant-radio-button-wrapper-disabled.ant-radio-button-wrapper-checked{background-color:#e6e6e6;border-color:#d9d9d9;box-shadow:none;color:rgba(0,0,0,.25)}@-webkit-keyframes antRadioEffect{0%{opacity:.5;transform:scale(1)}to{opacity:0;transform:scale(1.6)}}@keyframes antRadioEffect{0%{opacity:.5;transform:scale(1)}to{opacity:0;transform:scale(1.6)}}.ant-radio-group.ant-radio-group-rtl{direction:rtl}.ant-radio-wrapper.ant-radio-wrapper-rtl{direction:rtl;margin-left:8px;margin-right:0}.ant-radio-button-wrapper.ant-radio-button-wrapper-rtl{border-left-width:1px;border-right-width:0}.ant-radio-button-wrapper.ant-radio-button-wrapper-rtl.ant-radio-button-wrapper:not(:first-child):before{left:0;right:-1px}.ant-radio-button-wrapper.ant-radio-button-wrapper-rtl.ant-radio-button-wrapper:first-child{border-radius:0 2px 2px 0;border-right:1px solid #d9d9d9}.ant-radio-button-wrapper-checked:not([class*=" ant-radio-button-wrapper-disabled"]).ant-radio-button-wrapper:first-child{border-right-color:var(--ant-primary-5)}.ant-radio-button-wrapper.ant-radio-button-wrapper-rtl.ant-radio-button-wrapper:last-child{border-radius:2px 0 0 2px}.ant-radio-button-wrapper.ant-radio-button-wrapper-rtl.ant-radio-button-wrapper-disabled:first-child{border-right-color:#d9d9d9}.ant-picker{font-feature-settings:"tnum";align-items:center;background:#fff;border:1px solid #d9d9d9;border-radius:2px;box-sizing:border-box;color:rgba(0,0,0,.85);display:inline-flex;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:4px 11px;position:relative;transition:border .3s,box-shadow .3s}.ant-picker-focused,.ant-picker:hover{border-color:var(--ant-primary-5);border-right-width:1px!important}.ant-picker-focused{border-color:var(--ant-primary-color-hover);border-right-width:1px!important;box-shadow:0 0 0 2px var(--ant-primary-color-outline);outline:0}.ant-picker.ant-picker-disabled{background:#f5f5f5;border-color:#d9d9d9;cursor:not-allowed}.ant-picker.ant-picker-disabled .ant-picker-suffix{color:rgba(0,0,0,.25)}.ant-picker.ant-picker-borderless{background-color:transparent!important;border-color:transparent!important;box-shadow:none!important}.ant-picker-input{align-items:center;display:inline-flex;position:relative;width:100%}.ant-picker-input>input{background-color:#fff;background-image:none;background:transparent;border:0;border-radius:2px;color:rgba(0,0,0,.85);display:inline-block;flex:auto;font-size:14px;height:auto;line-height:1.5715;min-width:0;min-width:1px;padding:0;position:relative;transition:all .3s;width:100%}.ant-picker-input>input::-moz-placeholder{opacity:1}.ant-picker-input>input::placeholder{color:#bfbfbf;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ant-picker-input>input:-moz-placeholder-shown{text-overflow:ellipsis}.ant-picker-input>input:placeholder-shown{text-overflow:ellipsis}.ant-picker-input>input:hover{border-color:var(--ant-primary-5);border-right-width:1px!important}.ant-picker-input>input-focused,.ant-picker-input>input:focus{border-color:var(--ant-primary-color-hover);border-right-width:1px!important;box-shadow:0 0 0 2px var(--ant-primary-color-outline);outline:0}.ant-picker-input>input-disabled{background-color:#f5f5f5;border-color:#d9d9d9;box-shadow:none;color:rgba(0,0,0,.25);cursor:not-allowed;opacity:1}.ant-picker-input>input-disabled:hover{border-color:#d9d9d9;border-right-width:1px!important}.ant-picker-input>input[disabled]{background-color:#f5f5f5;border-color:#d9d9d9;box-shadow:none;color:rgba(0,0,0,.25);cursor:not-allowed;opacity:1}.ant-picker-input>input[disabled]:hover{border-color:#d9d9d9;border-right-width:1px!important}.ant-picker-input>input-borderless,.ant-picker-input>input-borderless-disabled,.ant-picker-input>input-borderless-focused,.ant-picker-input>input-borderless:focus,.ant-picker-input>input-borderless:hover,.ant-picker-input>input-borderless[disabled]{background-color:transparent;border:none;box-shadow:none}textarea.ant-picker-input>input{height:auto;line-height:1.5715;max-width:100%;min-height:32px;transition:all .3s,height 0s;vertical-align:bottom}.ant-picker-input>input-lg{font-size:16px;padding:6.5px 11px}.ant-picker-input>input-sm{padding:0 7px}.ant-picker-input>input:focus{box-shadow:none}.ant-picker-input>input[disabled]{background:transparent}.ant-picker-input:hover .ant-picker-clear{opacity:1}.ant-picker-input-placeholder>input{color:#bfbfbf}.ant-picker-large{padding:6.5px 11px}.ant-picker-large .ant-picker-input>input{font-size:16px}.ant-picker-small{padding:0 7px}.ant-picker-suffix{align-self:center;color:rgba(0,0,0,.25);line-height:1;margin-left:4px;pointer-events:none}.ant-picker-suffix>*{vertical-align:top}.ant-picker-clear{background:#fff;color:rgba(0,0,0,.25);cursor:pointer;line-height:1;opacity:0;position:absolute;right:0;top:50%;transform:translateY(-50%);transition:opacity .3s,color .3s}.ant-picker-clear>*{vertical-align:top}.ant-picker-clear:hover{color:rgba(0,0,0,.45)}.ant-picker-separator{color:rgba(0,0,0,.25);cursor:default;display:inline-block;font-size:16px;height:16px;position:relative;vertical-align:top;width:1em}.ant-picker-focused .ant-picker-separator{color:rgba(0,0,0,.45)}.ant-picker-disabled .ant-picker-range-separator .ant-picker-separator{cursor:not-allowed}.ant-picker-range{display:inline-flex;position:relative}.ant-picker-range .ant-picker-clear{right:11px}.ant-picker-range:hover .ant-picker-clear{opacity:1}.ant-picker-range .ant-picker-active-bar{background:var(--ant-primary-color);bottom:-1px;height:2px;margin-left:11px;opacity:0;pointer-events:none;transition:all .3s ease-out}.ant-picker-range.ant-picker-focused .ant-picker-active-bar{opacity:1}.ant-picker-range-separator{align-items:center;line-height:1;padding:0 8px}.ant-picker-range.ant-picker-small .ant-picker-clear{right:7px}.ant-picker-range.ant-picker-small .ant-picker-active-bar{margin-left:7px}.ant-picker-dropdown{font-feature-settings:"tnum";box-sizing:border-box;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0;position:absolute;z-index:1050}.ant-picker-dropdown-hidden{display:none}.ant-picker-dropdown-placement-bottomLeft .ant-picker-range-arrow{display:block;top:1.66666667px;transform:rotate(-45deg)}.ant-picker-dropdown-placement-topLeft .ant-picker-range-arrow{bottom:1.66666667px;display:block;transform:rotate(135deg)}.ant-picker-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-picker-dropdown-placement-topLeft,.ant-picker-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-picker-dropdown-placement-topRight,.ant-picker-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-picker-dropdown-placement-topLeft,.ant-picker-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-picker-dropdown-placement-topRight{-webkit-animation-name:antSlideDownIn;animation-name:antSlideDownIn}.ant-picker-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-picker-dropdown-placement-bottomLeft,.ant-picker-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-picker-dropdown-placement-bottomRight,.ant-picker-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-picker-dropdown-placement-bottomLeft,.ant-picker-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-picker-dropdown-placement-bottomRight{-webkit-animation-name:antSlideUpIn;animation-name:antSlideUpIn}.ant-picker-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-picker-dropdown-placement-topLeft,.ant-picker-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-picker-dropdown-placement-topRight{-webkit-animation-name:antSlideDownOut;animation-name:antSlideDownOut}.ant-picker-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-picker-dropdown-placement-bottomLeft,.ant-picker-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-picker-dropdown-placement-bottomRight{-webkit-animation-name:antSlideUpOut;animation-name:antSlideUpOut}.ant-picker-dropdown-range{padding:6.66666667px 0}.ant-picker-dropdown-range-hidden{display:none}.ant-picker-dropdown .ant-picker-panel>.ant-picker-time-panel{padding-top:4px}.ant-picker-ranges{line-height:34px;list-style:none;margin-bottom:0;overflow:hidden;padding:4px 12px;text-align:left}.ant-picker-ranges>li{display:inline-block}.ant-picker-ranges .ant-picker-preset>.ant-tag-blue{background:var(--ant-primary-1);border-color:var(--ant-primary-3);color:var(--ant-primary-color);cursor:pointer}.ant-picker-ranges .ant-picker-ok{float:right;margin-left:8px}.ant-picker-range-wrapper{display:flex}.ant-picker-range-arrow{box-shadow:2px -2px 6px rgba(0,0,0,.06);display:none;height:10px;margin-left:16.5px;position:absolute;transition:left .3s ease-out;width:10px;z-index:1}.ant-picker-range-arrow:after{border-color:#fff #fff transparent transparent;border-style:solid;border-width:5px;content:"";height:10px;position:absolute;right:1px;top:1px;width:10px}.ant-picker-panel-container{background:#fff;border-radius:2px;box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05);overflow:hidden;transition:margin .3s;vertical-align:top}.ant-picker-panel-container .ant-picker-panels{direction:ltr;display:inline-flex;flex-wrap:nowrap}.ant-picker-panel-container .ant-picker-panel{background:transparent;border-radius:0;border-width:0 0 1px;vertical-align:top}.ant-picker-panel-container .ant-picker-panel .ant-picker-content,.ant-picker-panel-container .ant-picker-panel table{text-align:center}.ant-picker-panel-container .ant-picker-panel-focused{border-color:#f0f0f0}.ant-picker-panel{background:#fff;border:1px solid #f0f0f0;border-radius:2px;display:inline-flex;flex-direction:column;outline:none;text-align:center}.ant-picker-panel-focused{border-color:var(--ant-primary-color)}.ant-picker-date-panel,.ant-picker-decade-panel,.ant-picker-month-panel,.ant-picker-quarter-panel,.ant-picker-time-panel,.ant-picker-week-panel,.ant-picker-year-panel{display:flex;flex-direction:column;width:280px}.ant-picker-header{border-bottom:1px solid #f0f0f0;color:rgba(0,0,0,.85);display:flex;padding:0 8px}.ant-picker-header>*{flex:none}.ant-picker-header button{background:transparent;border:0;color:rgba(0,0,0,.25);cursor:pointer;line-height:40px;padding:0;transition:color .3s}.ant-picker-header>button{font-size:14px;min-width:1.6em}.ant-picker-header>button:hover{color:rgba(0,0,0,.85)}.ant-picker-header-view{flex:auto;font-weight:500;line-height:40px}.ant-picker-header-view button{color:inherit;font-weight:inherit}.ant-picker-header-view button:not(:first-child){margin-left:8px}.ant-picker-header-view button:hover{color:var(--ant-primary-color)}.ant-picker-next-icon,.ant-picker-prev-icon,.ant-picker-super-next-icon,.ant-picker-super-prev-icon{display:inline-block;height:7px;position:relative;width:7px}.ant-picker-next-icon:before,.ant-picker-prev-icon:before,.ant-picker-super-next-icon:before,.ant-picker-super-prev-icon:before{border:0 solid;border-width:1.5px 0 0 1.5px;content:"";display:inline-block;height:7px;left:0;position:absolute;top:0;width:7px}.ant-picker-super-next-icon:after,.ant-picker-super-prev-icon:after{border:0 solid;border-width:1.5px 0 0 1.5px;content:"";display:inline-block;height:7px;left:4px;position:absolute;top:4px;width:7px}.ant-picker-prev-icon,.ant-picker-super-prev-icon{transform:rotate(-45deg)}.ant-picker-next-icon,.ant-picker-super-next-icon{transform:rotate(135deg)}.ant-picker-content{border-collapse:collapse;table-layout:fixed;width:100%}.ant-picker-content td,.ant-picker-content th{font-weight:400;min-width:24px;position:relative}.ant-picker-content th{color:rgba(0,0,0,.85);height:30px;line-height:30px}.ant-picker-cell{color:rgba(0,0,0,.25);cursor:pointer;padding:3px 0}.ant-picker-cell-in-view{color:rgba(0,0,0,.85)}.ant-picker-cell:before{content:"";height:24px;left:0;position:absolute;right:0;top:50%;transform:translateY(-50%);transition:all .3s;z-index:1}.ant-picker-cell:hover:not(.ant-picker-cell-in-view) .ant-picker-cell-inner,.ant-picker-cell:hover:not(.ant-picker-cell-selected):not(.ant-picker-cell-range-start):not(.ant-picker-cell-range-end):not(.ant-picker-cell-range-hover-start):not(.ant-picker-cell-range-hover-end) .ant-picker-cell-inner{background:#f5f5f5}.ant-picker-cell-in-view.ant-picker-cell-today .ant-picker-cell-inner:before{border:1px solid var(--ant-primary-color);border-radius:2px;bottom:0;content:"";left:0;position:absolute;right:0;top:0;z-index:1}.ant-picker-cell-in-view.ant-picker-cell-in-range{position:relative}.ant-picker-cell-in-view.ant-picker-cell-in-range:before{background:var(--ant-primary-1)}.ant-picker-cell-in-view.ant-picker-cell-range-end .ant-picker-cell-inner,.ant-picker-cell-in-view.ant-picker-cell-range-start .ant-picker-cell-inner,.ant-picker-cell-in-view.ant-picker-cell-selected .ant-picker-cell-inner{background:var(--ant-primary-color);color:#fff}.ant-picker-cell-in-view.ant-picker-cell-range-end:not(.ant-picker-cell-range-end-single):before,.ant-picker-cell-in-view.ant-picker-cell-range-start:not(.ant-picker-cell-range-start-single):before{background:var(--ant-primary-1)}.ant-picker-cell-in-view.ant-picker-cell-range-start:before{left:50%}.ant-picker-cell-in-view.ant-picker-cell-range-end:before{right:50%}.ant-picker-cell-in-view.ant-picker-cell-range-hover-end.ant-picker-cell-range-end-single:after,.ant-picker-cell-in-view.ant-picker-cell-range-hover-end.ant-picker-cell-range-start.ant-picker-cell-range-end.ant-picker-cell-range-start-near-hover:after,.ant-picker-cell-in-view.ant-picker-cell-range-hover-end:not(.ant-picker-cell-in-range):not(.ant-picker-cell-range-start):not(.ant-picker-cell-range-end):after,.ant-picker-cell-in-view.ant-picker-cell-range-hover-start.ant-picker-cell-range-start-single:after,.ant-picker-cell-in-view.ant-picker-cell-range-hover-start.ant-picker-cell-range-start.ant-picker-cell-range-end.ant-picker-cell-range-end-near-hover:after,.ant-picker-cell-in-view.ant-picker-cell-range-hover-start:not(.ant-picker-cell-in-range):not(.ant-picker-cell-range-start):not(.ant-picker-cell-range-end):after,.ant-picker-cell-in-view.ant-picker-cell-range-hover:not(.ant-picker-cell-in-range):after{border-bottom:1px dashed var(--ant-primary-color-deprecated-l-20);border-top:1px dashed var(--ant-primary-color-deprecated-l-20);content:"";height:24px;position:absolute;top:50%;transform:translateY(-50%);transition:all .3s;z-index:0}.ant-picker-cell-range-hover-end:after,.ant-picker-cell-range-hover-start:after,.ant-picker-cell-range-hover:after{left:2px;right:0}.ant-picker-cell-in-view.ant-picker-cell-in-range.ant-picker-cell-range-hover:before,.ant-picker-cell-in-view.ant-picker-cell-range-end.ant-picker-cell-range-hover:before,.ant-picker-cell-in-view.ant-picker-cell-range-end:not(.ant-picker-cell-range-end-single).ant-picker-cell-range-hover-end:before,.ant-picker-cell-in-view.ant-picker-cell-range-start.ant-picker-cell-range-hover:before,.ant-picker-cell-in-view.ant-picker-cell-range-start:not(.ant-picker-cell-range-start-single).ant-picker-cell-range-hover-start:before,.ant-picker-panel>:not(.ant-picker-date-panel) .ant-picker-cell-in-view.ant-picker-cell-in-range.ant-picker-cell-range-hover-end:before,.ant-picker-panel>:not(.ant-picker-date-panel) .ant-picker-cell-in-view.ant-picker-cell-in-range.ant-picker-cell-range-hover-start:before{background:var(--ant-primary-color-deprecated-l-35)}.ant-picker-cell-in-view.ant-picker-cell-range-start:not(.ant-picker-cell-range-start-single):not(.ant-picker-cell-range-end) .ant-picker-cell-inner{border-radius:2px 0 0 2px}.ant-picker-cell-in-view.ant-picker-cell-range-end:not(.ant-picker-cell-range-end-single):not(.ant-picker-cell-range-start) .ant-picker-cell-inner{border-radius:0 2px 2px 0}.ant-picker-date-panel .ant-picker-cell-in-view.ant-picker-cell-in-range.ant-picker-cell-range-hover-end .ant-picker-cell-inner:after,.ant-picker-date-panel .ant-picker-cell-in-view.ant-picker-cell-in-range.ant-picker-cell-range-hover-start .ant-picker-cell-inner:after{background:var(--ant-primary-color-deprecated-l-35);bottom:0;content:"";position:absolute;top:0;transition:all .3s;z-index:-1}.ant-picker-date-panel .ant-picker-cell-in-view.ant-picker-cell-in-range.ant-picker-cell-range-hover-start .ant-picker-cell-inner:after{left:0;right:-6px}.ant-picker-date-panel .ant-picker-cell-in-view.ant-picker-cell-in-range.ant-picker-cell-range-hover-end .ant-picker-cell-inner:after{left:-6px;right:0}.ant-picker-cell-range-hover.ant-picker-cell-range-start:after{right:50%}.ant-picker-cell-range-hover.ant-picker-cell-range-end:after{left:50%}.ant-picker-cell-in-view.ant-picker-cell-range-hover-edge-start:not(.ant-picker-cell-range-hover-edge-start-near-range):after,.ant-picker-cell-in-view.ant-picker-cell-range-hover-start:after,.ant-picker-cell-in-view.ant-picker-cell-start.ant-picker-cell-range-hover-edge-start.ant-picker-cell-range-hover-edge-start-near-range:after,tr>.ant-picker-cell-in-view.ant-picker-cell-range-hover-end:first-child:after,tr>.ant-picker-cell-in-view.ant-picker-cell-range-hover:first-child:after{border-bottom-left-radius:2px;border-left:1px dashed var(--ant-primary-color-deprecated-l-20);border-top-left-radius:2px;left:6px}.ant-picker-cell-in-view.ant-picker-cell-end.ant-picker-cell-range-hover-edge-end.ant-picker-cell-range-hover-edge-end-near-range:after,.ant-picker-cell-in-view.ant-picker-cell-range-hover-edge-end:not(.ant-picker-cell-range-hover-edge-end-near-range):after,.ant-picker-cell-in-view.ant-picker-cell-range-hover-end:after,tr>.ant-picker-cell-in-view.ant-picker-cell-range-hover-start:last-child:after,tr>.ant-picker-cell-in-view.ant-picker-cell-range-hover:last-child:after{border-bottom-right-radius:2px;border-right:1px dashed var(--ant-primary-color-deprecated-l-20);border-top-right-radius:2px;right:6px}.ant-picker-cell-disabled{color:rgba(0,0,0,.25);pointer-events:none}.ant-picker-cell-disabled .ant-picker-cell-inner{background:transparent}.ant-picker-cell-disabled:before{background:rgba(0,0,0,.04)}.ant-picker-cell-disabled.ant-picker-cell-today .ant-picker-cell-inner:before{border-color:rgba(0,0,0,.25)}.ant-picker-decade-panel .ant-picker-content,.ant-picker-month-panel .ant-picker-content,.ant-picker-quarter-panel .ant-picker-content,.ant-picker-year-panel .ant-picker-content{height:264px}.ant-picker-decade-panel .ant-picker-cell-inner,.ant-picker-month-panel .ant-picker-cell-inner,.ant-picker-quarter-panel .ant-picker-cell-inner,.ant-picker-year-panel .ant-picker-cell-inner{padding:0 8px}.ant-picker-quarter-panel .ant-picker-content{height:56px}.ant-picker-footer{border-bottom:1px solid transparent;line-height:38px;min-width:100%;text-align:center;width:-webkit-min-content;width:-moz-min-content;width:min-content}.ant-picker-panel .ant-picker-footer{border-top:1px solid #f0f0f0}.ant-picker-footer-extra{line-height:38px;padding:0 12px;text-align:left}.ant-picker-footer-extra:not(:last-child){border-bottom:1px solid #f0f0f0}.ant-picker-now{text-align:left}.ant-picker-today-btn{color:var(--ant-primary-color)}.ant-picker-today-btn:hover{color:var(--ant-primary-color-hover)}.ant-picker-today-btn:active{color:var(--ant-primary-color-active)}.ant-picker-today-btn.ant-picker-today-btn-disabled{color:rgba(0,0,0,.25);cursor:not-allowed}.ant-picker-decade-panel .ant-picker-cell-inner{padding:0 4px}.ant-picker-decade-panel .ant-picker-cell:before{display:none}.ant-picker-month-panel .ant-picker-body,.ant-picker-quarter-panel .ant-picker-body,.ant-picker-year-panel .ant-picker-body{padding:0 8px}.ant-picker-month-panel .ant-picker-cell-inner,.ant-picker-quarter-panel .ant-picker-cell-inner,.ant-picker-year-panel .ant-picker-cell-inner{width:60px}.ant-picker-month-panel .ant-picker-cell-range-hover-start:after,.ant-picker-quarter-panel .ant-picker-cell-range-hover-start:after,.ant-picker-year-panel .ant-picker-cell-range-hover-start:after{border-left:1px dashed var(--ant-primary-color-deprecated-l-20);border-radius:2px 0 0 2px;left:14px}.ant-picker-month-panel .ant-picker-cell-range-hover-end:after,.ant-picker-panel-rtl .ant-picker-month-panel .ant-picker-cell-range-hover-start:after,.ant-picker-panel-rtl .ant-picker-quarter-panel .ant-picker-cell-range-hover-start:after,.ant-picker-panel-rtl .ant-picker-year-panel .ant-picker-cell-range-hover-start:after,.ant-picker-quarter-panel .ant-picker-cell-range-hover-end:after,.ant-picker-year-panel .ant-picker-cell-range-hover-end:after{border-radius:0 2px 2px 0;border-right:1px dashed var(--ant-primary-color-deprecated-l-20);right:14px}.ant-picker-panel-rtl .ant-picker-month-panel .ant-picker-cell-range-hover-end:after,.ant-picker-panel-rtl .ant-picker-quarter-panel .ant-picker-cell-range-hover-end:after,.ant-picker-panel-rtl .ant-picker-year-panel .ant-picker-cell-range-hover-end:after{border-left:1px dashed var(--ant-primary-color-deprecated-l-20);border-radius:2px 0 0 2px;left:14px}.ant-picker-week-panel .ant-picker-body{padding:8px 12px}.ant-picker-week-panel .ant-picker-cell .ant-picker-cell-inner,.ant-picker-week-panel .ant-picker-cell-selected .ant-picker-cell-inner,.ant-picker-week-panel .ant-picker-cell:hover .ant-picker-cell-inner{background:transparent!important}.ant-picker-week-panel-row td{transition:background .3s}.ant-picker-week-panel-row:hover td{background:#f5f5f5}.ant-picker-week-panel-row-selected td,.ant-picker-week-panel-row-selected:hover td{background:var(--ant-primary-color)}.ant-picker-week-panel-row-selected td.ant-picker-cell-week,.ant-picker-week-panel-row-selected:hover td.ant-picker-cell-week{color:hsla(0,0%,100%,.5)}.ant-picker-week-panel-row-selected td.ant-picker-cell-today .ant-picker-cell-inner:before,.ant-picker-week-panel-row-selected:hover td.ant-picker-cell-today .ant-picker-cell-inner:before{border-color:#fff}.ant-picker-week-panel-row-selected td .ant-picker-cell-inner,.ant-picker-week-panel-row-selected:hover td .ant-picker-cell-inner{color:#fff}.ant-picker-date-panel .ant-picker-body{padding:8px 12px}.ant-picker-date-panel .ant-picker-content{width:252px}.ant-picker-date-panel .ant-picker-content th{width:36px}.ant-picker-datetime-panel{display:flex}.ant-picker-datetime-panel .ant-picker-time-panel{border-left:1px solid #f0f0f0}.ant-picker-datetime-panel .ant-picker-date-panel,.ant-picker-datetime-panel .ant-picker-time-panel{transition:opacity .3s}.ant-picker-datetime-panel-active .ant-picker-date-panel,.ant-picker-datetime-panel-active .ant-picker-time-panel{opacity:.3}.ant-picker-datetime-panel-active .ant-picker-date-panel-active,.ant-picker-datetime-panel-active .ant-picker-time-panel-active{opacity:1}.ant-picker-time-panel{min-width:auto;width:auto}.ant-picker-time-panel .ant-picker-content{display:flex;flex:auto;height:224px}.ant-picker-time-panel-column{flex:1 0 auto;list-style:none;margin:0;overflow-y:hidden;padding:0;text-align:left;transition:background .3s;width:56px}.ant-picker-time-panel-column:after{content:"";display:block;height:196px}.ant-picker-datetime-panel .ant-picker-time-panel-column:after{height:198px}.ant-picker-time-panel-column:not(:first-child){border-left:1px solid #f0f0f0}.ant-picker-time-panel-column-active{background:var(--ant-primary-color-active-deprecated-f-30)}.ant-picker-time-panel-column:hover{overflow-y:auto}.ant-picker-time-panel-column>li{margin:0;padding:0}.ant-picker-time-panel-column>li.ant-picker-time-panel-cell .ant-picker-time-panel-cell-inner{border-radius:0;color:rgba(0,0,0,.85);cursor:pointer;display:block;height:28px;line-height:28px;margin:0;padding:0 0 0 14px;transition:background .3s;width:100%}.ant-picker-time-panel-column>li.ant-picker-time-panel-cell .ant-picker-time-panel-cell-inner:hover{background:#f5f5f5}.ant-picker-time-panel-column>li.ant-picker-time-panel-cell-selected .ant-picker-time-panel-cell-inner{background:var(--ant-primary-1)}.ant-picker-time-panel-column>li.ant-picker-time-panel-cell-disabled .ant-picker-time-panel-cell-inner{background:transparent;color:rgba(0,0,0,.25);cursor:not-allowed}:root .ant-picker-range-wrapper .ant-picker-month-panel .ant-picker-cell,:root .ant-picker-range-wrapper .ant-picker-year-panel .ant-picker-cell,_:-ms-fullscreen .ant-picker-range-wrapper .ant-picker-month-panel .ant-picker-cell,_:-ms-fullscreen .ant-picker-range-wrapper .ant-picker-year-panel .ant-picker-cell{padding:21px 0}.ant-picker-rtl{direction:rtl}.ant-picker-rtl .ant-picker-suffix{margin-left:0;margin-right:4px}.ant-picker-rtl .ant-picker-clear{left:0;right:auto}.ant-picker-rtl .ant-picker-separator{transform:rotate(180deg)}.ant-picker-panel-rtl .ant-picker-header-view button:not(:first-child){margin-left:0;margin-right:8px}.ant-picker-rtl.ant-picker-range .ant-picker-clear{left:11px;right:auto}.ant-picker-rtl.ant-picker-range .ant-picker-active-bar{margin-left:0;margin-right:11px}.ant-picker-rtl.ant-picker-range.ant-picker-small .ant-picker-active-bar{margin-right:7px}.ant-picker-dropdown-rtl .ant-picker-ranges{text-align:right}.ant-picker-dropdown-rtl .ant-picker-ranges .ant-picker-ok{float:left;margin-left:0;margin-right:8px}.ant-picker-panel-rtl{direction:rtl}.ant-picker-panel-rtl .ant-picker-prev-icon,.ant-picker-panel-rtl .ant-picker-super-prev-icon{transform:rotate(135deg)}.ant-picker-panel-rtl .ant-picker-next-icon,.ant-picker-panel-rtl .ant-picker-super-next-icon{transform:rotate(-45deg)}.ant-picker-cell .ant-picker-cell-inner{border-radius:2px;display:inline-block;height:24px;line-height:24px;min-width:24px;position:relative;transition:background .3s,border .3s;z-index:2}.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-range-start:before{left:0;right:50%}.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-range-end:before{left:50%;right:0}.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-range-start.ant-picker-cell-range-end:before{left:50%;right:50%}.ant-picker-panel-rtl .ant-picker-date-panel .ant-picker-cell-in-view.ant-picker-cell-in-range.ant-picker-cell-range-hover-start .ant-picker-cell-inner:after{left:-6px;right:0}.ant-picker-panel-rtl .ant-picker-date-panel .ant-picker-cell-in-view.ant-picker-cell-in-range.ant-picker-cell-range-hover-end .ant-picker-cell-inner:after{left:0;right:-6px}.ant-picker-panel-rtl .ant-picker-cell-range-hover.ant-picker-cell-range-start:after{left:50%;right:0}.ant-picker-panel-rtl .ant-picker-cell-range-hover.ant-picker-cell-range-end:after{left:0;right:50%}.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-range-start:not(.ant-picker-cell-range-start-single):not(.ant-picker-cell-range-end) .ant-picker-cell-inner{border-radius:0 2px 2px 0}.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-range-end:not(.ant-picker-cell-range-end-single):not(.ant-picker-cell-range-start) .ant-picker-cell-inner{border-radius:2px 0 0 2px}.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-range-hover-edge-start:not(.ant-picker-cell-range-hover-edge-start-near-range):after,.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-range-hover-start:after,.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-start.ant-picker-cell-range-hover-edge-start.ant-picker-cell-range-hover-edge-start-near-range:after,.ant-picker-panel-rtl tr>.ant-picker-cell-in-view.ant-picker-cell-range-hover:not(.ant-picker-cell-selected):first-child:after{border-left:none;border-radius:0 2px 2px 0;border-right:1px dashed var(--ant-primary-color-deprecated-l-20);left:0;right:6px}.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-end.ant-picker-cell-range-hover-edge-end.ant-picker-cell-range-hover-edge-end-near-range:after,.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-range-hover-edge-end:not(.ant-picker-cell-range-hover-edge-end-near-range):after,.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-range-hover-end:after,.ant-picker-panel-rtl tr>.ant-picker-cell-in-view.ant-picker-cell-range-hover:not(.ant-picker-cell-selected):last-child:after{border-left:1px dashed var(--ant-primary-color-deprecated-l-20);border-radius:2px 0 0 2px;border-right:none;left:6px;right:0}.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-end.ant-picker-cell-range-hover-start.ant-picker-cell-range-hover-edge-end:not(.ant-picker-cell-range-hover):after,.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-start.ant-picker-cell-range-hover-edge-start:not(.ant-picker-cell-range-hover):after,.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-start.ant-picker-cell-range-hover-end.ant-picker-cell-range-hover-edge-start:not(.ant-picker-cell-range-hover):after,.ant-picker-panel-rtl tr>.ant-picker-cell-in-view.ant-picker-cell-end.ant-picker-cell-range-hover.ant-picker-cell-range-hover-edge-end:first-child:after,.ant-picker-panel-rtl tr>.ant-picker-cell-in-view.ant-picker-cell-range-hover-end:first-child:after,.ant-picker-panel-rtl tr>.ant-picker-cell-in-view.ant-picker-cell-range-hover-start:last-child:after,.ant-picker-panel-rtl tr>.ant-picker-cell-in-view.ant-picker-cell-start.ant-picker-cell-range-hover.ant-picker-cell-range-hover-edge-start:last-child:after{border-left:1px dashed var(--ant-primary-color-deprecated-l-20);border-radius:2px;border-right:1px dashed var(--ant-primary-color-deprecated-l-20);left:6px;right:6px}.ant-picker-dropdown-rtl .ant-picker-footer-extra{direction:rtl;text-align:right}.ant-picker-panel-rtl .ant-picker-time-panel{direction:ltr}.ant-tag{font-feature-settings:"tnum";background:#fafafa;border:1px solid #d9d9d9;border-radius:2px;box-sizing:border-box;display:inline-block;font-size:14px;font-size:12px;font-variant:tabular-nums;height:auto;line-height:1.5715;line-height:20px;list-style:none;margin:0 8px 0 0;opacity:1;padding:0 7px;transition:all .3s;white-space:nowrap}.ant-tag,.ant-tag a,.ant-tag a:hover{color:rgba(0,0,0,.85)}.ant-tag>a:first-child:last-child{display:inline-block;margin:0 -8px;padding:0 8px}.ant-tag-close-icon{color:rgba(0,0,0,.45);cursor:pointer;font-size:10px;margin-left:3px;transition:all .3s}.ant-tag-close-icon:hover{color:rgba(0,0,0,.85)}.ant-tag-has-color{border-color:transparent}.ant-tag-has-color,.ant-tag-has-color .anticon-close,.ant-tag-has-color .anticon-close:hover,.ant-tag-has-color a,.ant-tag-has-color a:hover{color:#fff}.ant-tag-checkable{background-color:transparent;border-color:transparent;cursor:pointer}.ant-tag-checkable:not(.ant-tag-checkable-checked):hover{color:var(--ant-primary-color)}.ant-tag-checkable-checked,.ant-tag-checkable:active{color:#fff}.ant-tag-checkable-checked{background-color:var(--ant-primary-6)}.ant-tag-checkable:active{background-color:var(--ant-primary-7)}.ant-tag-hidden{display:none}.ant-tag-pink{background:#fff0f6;border-color:#ffadd2;color:#c41d7f}.ant-tag-pink-inverse{background:#eb2f96;border-color:#eb2f96;color:#fff}.ant-tag-magenta{background:#fff0f6;border-color:#ffadd2;color:#c41d7f}.ant-tag-magenta-inverse{background:#eb2f96;border-color:#eb2f96;color:#fff}.ant-tag-red{background:#fff1f0;border-color:#ffa39e;color:#cf1322}.ant-tag-red-inverse{background:#f5222d;border-color:#f5222d;color:#fff}.ant-tag-volcano{background:#fff2e8;border-color:#ffbb96;color:#d4380d}.ant-tag-volcano-inverse{background:#fa541c;border-color:#fa541c;color:#fff}.ant-tag-orange{background:#fff7e6;border-color:#ffd591;color:#d46b08}.ant-tag-orange-inverse{background:#fa8c16;border-color:#fa8c16;color:#fff}.ant-tag-yellow{background:#feffe6;border-color:#fffb8f;color:#d4b106}.ant-tag-yellow-inverse{background:#fadb14;border-color:#fadb14;color:#fff}.ant-tag-gold{background:#fffbe6;border-color:#ffe58f;color:#d48806}.ant-tag-gold-inverse{background:#faad14;border-color:#faad14;color:#fff}.ant-tag-cyan{background:#e6fffb;border-color:#87e8de;color:#08979c}.ant-tag-cyan-inverse{background:#13c2c2;border-color:#13c2c2;color:#fff}.ant-tag-lime{background:#fcffe6;border-color:#eaff8f;color:#7cb305}.ant-tag-lime-inverse{background:#a0d911;border-color:#a0d911;color:#fff}.ant-tag-green{background:#f6ffed;border-color:#b7eb8f;color:#389e0d}.ant-tag-green-inverse{background:#52c41a;border-color:#52c41a;color:#fff}.ant-tag-blue{background:#e6f7ff;border-color:#91d5ff;color:#096dd9}.ant-tag-blue-inverse{background:#1890ff;border-color:#1890ff;color:#fff}.ant-tag-geekblue{background:#f0f5ff;border-color:#adc6ff;color:#1d39c4}.ant-tag-geekblue-inverse{background:#2f54eb;border-color:#2f54eb;color:#fff}.ant-tag-purple{background:#f9f0ff;border-color:#d3adf7;color:#531dab}.ant-tag-purple-inverse{background:#722ed1;border-color:#722ed1;color:#fff}.ant-tag-success{background:var(--ant-success-color-deprecated-bg);border-color:var(--ant-success-color-deprecated-border);color:var(--ant-success-color)}.ant-tag-processing{background:var(--ant-info-color-deprecated-bg);border-color:var(--ant-info-color-deprecated-border);color:var(--ant-info-color)}.ant-tag-error{background:var(--ant-error-color-deprecated-bg);border-color:var(--ant-error-color-deprecated-border);color:var(--ant-error-color)}.ant-tag-warning{background:var(--ant-warning-color-deprecated-bg);border-color:var(--ant-warning-color-deprecated-border);color:var(--ant-warning-color)}.ant-tag>.anticon+span,.ant-tag>span+.anticon{margin-left:7px}.ant-tag.ant-tag-rtl{direction:rtl;margin-left:8px;margin-right:0;text-align:right}.ant-tag-rtl .ant-tag-close-icon{margin-left:0;margin-right:3px}.ant-tag-rtl.ant-tag>.anticon+span,.ant-tag-rtl.ant-tag>span+.anticon{margin-left:0;margin-right:7px}.ant-card{font-feature-settings:"tnum";background:#fff;border-radius:2px;box-sizing:border-box;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0;position:relative}.ant-card-rtl{direction:rtl}.ant-card-hoverable{cursor:pointer;transition:box-shadow .3s,border-color .3s}.ant-card-hoverable:hover{border-color:transparent;box-shadow:0 1px 2px -2px rgba(0,0,0,.16),0 3px 6px 0 rgba(0,0,0,.12),0 5px 12px 4px rgba(0,0,0,.09)}.ant-card-bordered{border:1px solid #f0f0f0}.ant-card-head{background:transparent;border-bottom:1px solid #f0f0f0;border-radius:2px 2px 0 0;color:rgba(0,0,0,.85);font-size:16px;font-weight:500;margin-bottom:-1px;min-height:48px;padding:0 24px}.ant-card-head:after,.ant-card-head:before{content:"";display:table}.ant-card-head:after{clear:both}.ant-card-head-wrapper{align-items:center;display:flex}.ant-card-head-title{display:inline-block;flex:1;overflow:hidden;padding:16px 0;text-overflow:ellipsis;white-space:nowrap}.ant-card-head-title>.ant-typography,.ant-card-head-title>.ant-typography-edit-content{left:0;margin-bottom:0;margin-top:0}.ant-card-head .ant-tabs-top{clear:both;color:rgba(0,0,0,.85);font-size:14px;font-weight:400;margin-bottom:-17px}.ant-card-head .ant-tabs-top-bar{border-bottom:1px solid #f0f0f0}.ant-card-extra{color:rgba(0,0,0,.85);float:right;font-size:14px;font-weight:400;margin-left:auto;padding:16px 0}.ant-card-rtl .ant-card-extra{margin-left:0;margin-right:auto}.ant-card-body{padding:24px}.ant-card-body:after,.ant-card-body:before{content:"";display:table}.ant-card-body:after{clear:both}.ant-card-contain-grid:not(.ant-card-loading) .ant-card-body{margin:-1px 0 0 -1px;padding:0}.ant-card-grid{border:0;border-radius:0;box-shadow:1px 0 0 0 #f0f0f0,0 1px 0 0 #f0f0f0,1px 1px 0 0 #f0f0f0,inset 1px 0 0 0 #f0f0f0,inset 0 1px 0 0 #f0f0f0;float:left;padding:24px;transition:all .3s;width:33.33%}.ant-card-rtl .ant-card-grid{float:right}.ant-card-grid-hoverable:hover{box-shadow:0 1px 2px -2px rgba(0,0,0,.16),0 3px 6px 0 rgba(0,0,0,.12),0 5px 12px 4px rgba(0,0,0,.09);position:relative;z-index:1}.ant-card-contain-tabs>.ant-card-head .ant-card-head-title{min-height:32px;padding-bottom:0}.ant-card-contain-tabs>.ant-card-head .ant-card-extra{padding-bottom:0}.ant-card-bordered .ant-card-cover{margin-left:-1px;margin-right:-1px;margin-top:-1px}.ant-card-cover>*{display:block;width:100%}.ant-card-cover img{border-radius:2px 2px 0 0}.ant-card-actions{background:#fff;border-top:1px solid #f0f0f0;list-style:none;margin:0;padding:0}.ant-card-actions:after,.ant-card-actions:before{content:"";display:table}.ant-card-actions:after{clear:both}.ant-card-actions>li{color:rgba(0,0,0,.45);float:left;margin:12px 0;text-align:center}.ant-card-rtl .ant-card-actions>li{float:right}.ant-card-actions>li>span{cursor:pointer;display:block;font-size:14px;line-height:1.5715;min-width:32px;position:relative}.ant-card-actions>li>span:hover{color:var(--ant-primary-color);transition:color .3s}.ant-card-actions>li>span a:not(.ant-btn),.ant-card-actions>li>span>.anticon{color:rgba(0,0,0,.45);display:inline-block;line-height:22px;transition:color .3s;width:100%}.ant-card-actions>li>span a:not(.ant-btn):hover,.ant-card-actions>li>span>.anticon:hover{color:var(--ant-primary-color)}.ant-card-actions>li>span>.anticon{font-size:16px;line-height:22px}.ant-card-actions>li:not(:last-child){border-right:1px solid #f0f0f0}.ant-card-rtl .ant-card-actions>li:not(:last-child){border-left:1px solid #f0f0f0;border-right:none}.ant-card-type-inner .ant-card-head{background:#fafafa;padding:0 24px}.ant-card-type-inner .ant-card-head-title{font-size:14px;padding:12px 0}.ant-card-type-inner .ant-card-body{padding:16px 24px}.ant-card-type-inner .ant-card-extra{padding:13.5px 0}.ant-card-meta{margin:-4px 0}.ant-card-meta:after,.ant-card-meta:before{content:"";display:table}.ant-card-meta:after{clear:both}.ant-card-meta-avatar{float:left;padding-right:16px}.ant-card-rtl .ant-card-meta-avatar{float:right;padding-left:16px;padding-right:0}.ant-card-meta-detail{overflow:hidden}.ant-card-meta-detail>div:not(:last-child){margin-bottom:8px}.ant-card-meta-title{color:rgba(0,0,0,.85);font-size:16px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ant-card-meta-description{color:rgba(0,0,0,.45)}.ant-card-loading{overflow:hidden}.ant-card-loading .ant-card-body{-webkit-user-select:none;-moz-user-select:none;user-select:none}.ant-card-loading-content p{margin:0}.ant-card-loading-block{-webkit-animation:card-loading 1.4s ease infinite;animation:card-loading 1.4s ease infinite;background:linear-gradient(90deg,rgba(207,216,220,.2),rgba(207,216,220,.4),rgba(207,216,220,.2));background-size:600% 600%;border-radius:2px;height:14px;margin:4px 0}@-webkit-keyframes card-loading{0%,to{background-position:0 50%}50%{background-position:100% 50%}}@keyframes card-loading{0%,to{background-position:0 50%}50%{background-position:100% 50%}}.ant-card-small>.ant-card-head{font-size:14px;min-height:36px;padding:0 12px}.ant-card-small>.ant-card-head>.ant-card-head-wrapper>.ant-card-head-title{padding:8px 0}.ant-card-small>.ant-card-head>.ant-card-head-wrapper>.ant-card-extra{font-size:14px;padding:8px 0}.ant-card-small>.ant-card-body{padding:12px}.ant-tabs-small>.ant-tabs-nav .ant-tabs-tab{font-size:14px;padding:8px 0}.ant-tabs-large>.ant-tabs-nav .ant-tabs-tab{font-size:16px;padding:16px 0}.ant-tabs-card.ant-tabs-small>.ant-tabs-nav .ant-tabs-tab{padding:6px 16px}.ant-tabs-card.ant-tabs-large>.ant-tabs-nav .ant-tabs-tab{padding:7px 16px 6px}.ant-tabs-rtl{direction:rtl}.ant-tabs-rtl .ant-tabs-nav .ant-tabs-tab{margin:0 0 0 32px}.ant-tabs-rtl .ant-tabs-nav .ant-tabs-tab:last-of-type{margin-left:0}.ant-tabs-rtl .ant-tabs-nav .ant-tabs-tab .anticon{margin-left:12px;margin-right:0}.ant-tabs-rtl .ant-tabs-nav .ant-tabs-tab .ant-tabs-tab-remove{margin-left:-4px;margin-right:8px}.ant-tabs-rtl .ant-tabs-nav .ant-tabs-tab .ant-tabs-tab-remove .anticon{margin:0}.ant-tabs-rtl.ant-tabs-left>.ant-tabs-nav{order:1}.ant-tabs-rtl.ant-tabs-left>.ant-tabs-content-holder,.ant-tabs-rtl.ant-tabs-right>.ant-tabs-nav{order:0}.ant-tabs-rtl.ant-tabs-right>.ant-tabs-content-holder{order:1}.ant-tabs-rtl.ant-tabs-card.ant-tabs-bottom>.ant-tabs-nav .ant-tabs-nav-add,.ant-tabs-rtl.ant-tabs-card.ant-tabs-bottom>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab,.ant-tabs-rtl.ant-tabs-card.ant-tabs-bottom>div>.ant-tabs-nav .ant-tabs-nav-add,.ant-tabs-rtl.ant-tabs-card.ant-tabs-bottom>div>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab,.ant-tabs-rtl.ant-tabs-card.ant-tabs-top>.ant-tabs-nav .ant-tabs-nav-add,.ant-tabs-rtl.ant-tabs-card.ant-tabs-top>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab,.ant-tabs-rtl.ant-tabs-card.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-nav-add,.ant-tabs-rtl.ant-tabs-card.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab{margin-left:0;margin-right:2px}.ant-tabs-dropdown-rtl{direction:rtl}.ant-tabs-dropdown-rtl .ant-tabs-dropdown-menu-item{text-align:right}.ant-tabs-bottom,.ant-tabs-top{flex-direction:column}.ant-tabs-bottom>.ant-tabs-nav,.ant-tabs-bottom>div>.ant-tabs-nav,.ant-tabs-top>.ant-tabs-nav,.ant-tabs-top>div>.ant-tabs-nav{margin:0 0 16px}.ant-tabs-bottom>.ant-tabs-nav:before,.ant-tabs-bottom>div>.ant-tabs-nav:before,.ant-tabs-top>.ant-tabs-nav:before,.ant-tabs-top>div>.ant-tabs-nav:before{border-bottom:1px solid #f0f0f0;content:"";left:0;position:absolute;right:0}.ant-tabs-bottom>.ant-tabs-nav .ant-tabs-ink-bar,.ant-tabs-bottom>div>.ant-tabs-nav .ant-tabs-ink-bar,.ant-tabs-top>.ant-tabs-nav .ant-tabs-ink-bar,.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-ink-bar{height:2px}.ant-tabs-bottom>.ant-tabs-nav .ant-tabs-ink-bar-animated,.ant-tabs-bottom>div>.ant-tabs-nav .ant-tabs-ink-bar-animated,.ant-tabs-top>.ant-tabs-nav .ant-tabs-ink-bar-animated,.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-ink-bar-animated{transition:width .3s,left .3s,right .3s}.ant-tabs-bottom>.ant-tabs-nav .ant-tabs-nav-wrap:after,.ant-tabs-bottom>.ant-tabs-nav .ant-tabs-nav-wrap:before,.ant-tabs-bottom>div>.ant-tabs-nav .ant-tabs-nav-wrap:after,.ant-tabs-bottom>div>.ant-tabs-nav .ant-tabs-nav-wrap:before,.ant-tabs-top>.ant-tabs-nav .ant-tabs-nav-wrap:after,.ant-tabs-top>.ant-tabs-nav .ant-tabs-nav-wrap:before,.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-nav-wrap:after,.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-nav-wrap:before{bottom:0;top:0;width:30px}.ant-tabs-bottom>.ant-tabs-nav .ant-tabs-nav-wrap:before,.ant-tabs-bottom>div>.ant-tabs-nav .ant-tabs-nav-wrap:before,.ant-tabs-top>.ant-tabs-nav .ant-tabs-nav-wrap:before,.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-nav-wrap:before{box-shadow:inset 10px 0 8px -8px rgba(0,0,0,.08);left:0}.ant-tabs-bottom>.ant-tabs-nav .ant-tabs-nav-wrap:after,.ant-tabs-bottom>div>.ant-tabs-nav .ant-tabs-nav-wrap:after,.ant-tabs-top>.ant-tabs-nav .ant-tabs-nav-wrap:after,.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-nav-wrap:after{box-shadow:inset -10px 0 8px -8px rgba(0,0,0,.08);right:0}.ant-tabs-bottom>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-left:before,.ant-tabs-bottom>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-right:after,.ant-tabs-bottom>div>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-left:before,.ant-tabs-bottom>div>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-right:after,.ant-tabs-top>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-left:before,.ant-tabs-top>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-right:after,.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-left:before,.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-right:after{opacity:1}.ant-tabs-top>.ant-tabs-nav .ant-tabs-ink-bar,.ant-tabs-top>.ant-tabs-nav:before,.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-ink-bar,.ant-tabs-top>div>.ant-tabs-nav:before{bottom:0}.ant-tabs-bottom>.ant-tabs-nav,.ant-tabs-bottom>div>.ant-tabs-nav{margin-bottom:0;margin-top:16px;order:1}.ant-tabs-bottom>.ant-tabs-nav .ant-tabs-ink-bar,.ant-tabs-bottom>.ant-tabs-nav:before,.ant-tabs-bottom>div>.ant-tabs-nav .ant-tabs-ink-bar,.ant-tabs-bottom>div>.ant-tabs-nav:before{top:0}.ant-tabs-bottom>.ant-tabs-content-holder,.ant-tabs-bottom>div>.ant-tabs-content-holder{order:0}.ant-tabs-left>.ant-tabs-nav,.ant-tabs-left>div>.ant-tabs-nav,.ant-tabs-right>.ant-tabs-nav,.ant-tabs-right>div>.ant-tabs-nav{flex-direction:column;min-width:50px}.ant-tabs-left>.ant-tabs-nav .ant-tabs-tab,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-tab,.ant-tabs-right>.ant-tabs-nav .ant-tabs-tab,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-tab{padding:8px 24px;text-align:center}.ant-tabs-left>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab,.ant-tabs-right>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab{margin:16px 0 0}.ant-tabs-left>.ant-tabs-nav .ant-tabs-nav-wrap,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-nav-wrap,.ant-tabs-right>.ant-tabs-nav .ant-tabs-nav-wrap,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-nav-wrap{flex-direction:column}.ant-tabs-left>.ant-tabs-nav .ant-tabs-nav-wrap:after,.ant-tabs-left>.ant-tabs-nav .ant-tabs-nav-wrap:before,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-nav-wrap:after,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-nav-wrap:before,.ant-tabs-right>.ant-tabs-nav .ant-tabs-nav-wrap:after,.ant-tabs-right>.ant-tabs-nav .ant-tabs-nav-wrap:before,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-nav-wrap:after,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-nav-wrap:before{height:30px;left:0;right:0}.ant-tabs-left>.ant-tabs-nav .ant-tabs-nav-wrap:before,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-nav-wrap:before,.ant-tabs-right>.ant-tabs-nav .ant-tabs-nav-wrap:before,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-nav-wrap:before{box-shadow:inset 0 10px 8px -8px rgba(0,0,0,.08);top:0}.ant-tabs-left>.ant-tabs-nav .ant-tabs-nav-wrap:after,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-nav-wrap:after,.ant-tabs-right>.ant-tabs-nav .ant-tabs-nav-wrap:after,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-nav-wrap:after{bottom:0;box-shadow:inset 0 -10px 8px -8px rgba(0,0,0,.08)}.ant-tabs-left>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-bottom:after,.ant-tabs-left>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-top:before,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-bottom:after,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-top:before,.ant-tabs-right>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-bottom:after,.ant-tabs-right>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-top:before,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-bottom:after,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-top:before{opacity:1}.ant-tabs-left>.ant-tabs-nav .ant-tabs-ink-bar,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-ink-bar,.ant-tabs-right>.ant-tabs-nav .ant-tabs-ink-bar,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-ink-bar{width:2px}.ant-tabs-left>.ant-tabs-nav .ant-tabs-ink-bar-animated,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-ink-bar-animated,.ant-tabs-right>.ant-tabs-nav .ant-tabs-ink-bar-animated,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-ink-bar-animated{transition:height .3s,top .3s}.ant-tabs-left>.ant-tabs-nav .ant-tabs-nav-list,.ant-tabs-left>.ant-tabs-nav .ant-tabs-nav-operations,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-nav-list,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-nav-operations,.ant-tabs-right>.ant-tabs-nav .ant-tabs-nav-list,.ant-tabs-right>.ant-tabs-nav .ant-tabs-nav-operations,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-nav-list,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-nav-operations{flex:1 0 auto;flex-direction:column}.ant-tabs-left>.ant-tabs-nav .ant-tabs-ink-bar,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-ink-bar{right:0}.ant-tabs-left>.ant-tabs-content-holder,.ant-tabs-left>div>.ant-tabs-content-holder{border-left:1px solid #f0f0f0;margin-left:-1px}.ant-tabs-left>.ant-tabs-content-holder>.ant-tabs-content>.ant-tabs-tabpane,.ant-tabs-left>div>.ant-tabs-content-holder>.ant-tabs-content>.ant-tabs-tabpane{padding-left:24px}.ant-tabs-right>.ant-tabs-nav,.ant-tabs-right>div>.ant-tabs-nav{order:1}.ant-tabs-right>.ant-tabs-nav .ant-tabs-ink-bar,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-ink-bar{left:0}.ant-tabs-right>.ant-tabs-content-holder,.ant-tabs-right>div>.ant-tabs-content-holder{border-right:1px solid #f0f0f0;margin-right:-1px;order:0}.ant-tabs-right>.ant-tabs-content-holder>.ant-tabs-content>.ant-tabs-tabpane,.ant-tabs-right>div>.ant-tabs-content-holder>.ant-tabs-content>.ant-tabs-tabpane{padding-right:24px}.ant-tabs-dropdown{font-feature-settings:"tnum";box-sizing:border-box;color:rgba(0,0,0,.85);display:block;font-size:14px;font-variant:tabular-nums;left:-9999px;line-height:1.5715;list-style:none;margin:0;padding:0;position:absolute;top:-9999px;z-index:1050}.ant-tabs-dropdown-hidden{display:none}.ant-tabs-dropdown-menu{background-clip:padding-box;background-color:#fff;border-radius:2px;box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05);list-style-type:none;margin:0;max-height:200px;outline:none;overflow-x:hidden;overflow-y:auto;padding:4px 0;text-align:left}.ant-tabs-dropdown-menu-item{align-items:center;color:rgba(0,0,0,.85);cursor:pointer;display:flex;font-size:14px;font-weight:400;line-height:22px;margin:0;min-width:120px;overflow:hidden;padding:5px 12px;text-overflow:ellipsis;transition:all .3s;white-space:nowrap}.ant-tabs-dropdown-menu-item>span{flex:1;white-space:nowrap}.ant-tabs-dropdown-menu-item-remove{background:transparent;border:0;color:rgba(0,0,0,.45);cursor:pointer;flex:none;font-size:12px;margin-left:12px}.ant-tabs-dropdown-menu-item-remove:hover{color:var(--ant-primary-5)}.ant-tabs-dropdown-menu-item:hover{background:#f5f5f5}.ant-tabs-dropdown-menu-item-disabled,.ant-tabs-dropdown-menu-item-disabled:hover{background:transparent;color:rgba(0,0,0,.25);cursor:not-allowed}.ant-tabs-card>.ant-tabs-nav .ant-tabs-tab,.ant-tabs-card>div>.ant-tabs-nav .ant-tabs-tab{background:#fafafa;border:1px solid #f0f0f0;margin:0;padding:8px 16px;transition:all .3s cubic-bezier(.645,.045,.355,1)}.ant-tabs-card>.ant-tabs-nav .ant-tabs-tab-active,.ant-tabs-card>div>.ant-tabs-nav .ant-tabs-tab-active{background:#fff;color:var(--ant-primary-color)}.ant-tabs-card>.ant-tabs-nav .ant-tabs-ink-bar,.ant-tabs-card>div>.ant-tabs-nav .ant-tabs-ink-bar{visibility:hidden}.ant-tabs-card.ant-tabs-bottom>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab,.ant-tabs-card.ant-tabs-bottom>div>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab,.ant-tabs-card.ant-tabs-top>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab,.ant-tabs-card.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab{margin-left:2px}.ant-tabs-card.ant-tabs-top>.ant-tabs-nav .ant-tabs-tab,.ant-tabs-card.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-tab{border-radius:2px 2px 0 0}.ant-tabs-card.ant-tabs-top>.ant-tabs-nav .ant-tabs-tab-active,.ant-tabs-card.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-tab-active{border-bottom-color:#fff}.ant-tabs-card.ant-tabs-bottom>.ant-tabs-nav .ant-tabs-tab,.ant-tabs-card.ant-tabs-bottom>div>.ant-tabs-nav .ant-tabs-tab{border-radius:0 0 2px 2px}.ant-tabs-card.ant-tabs-bottom>.ant-tabs-nav .ant-tabs-tab-active,.ant-tabs-card.ant-tabs-bottom>div>.ant-tabs-nav .ant-tabs-tab-active{border-top-color:#fff}.ant-tabs-card.ant-tabs-left>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab,.ant-tabs-card.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab,.ant-tabs-card.ant-tabs-right>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab,.ant-tabs-card.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab{margin-top:2px}.ant-tabs-card.ant-tabs-left>.ant-tabs-nav .ant-tabs-tab,.ant-tabs-card.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-tab{border-radius:2px 0 0 2px}.ant-tabs-card.ant-tabs-left>.ant-tabs-nav .ant-tabs-tab-active,.ant-tabs-card.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-tab-active{border-right-color:#fff}.ant-tabs-card.ant-tabs-right>.ant-tabs-nav .ant-tabs-tab,.ant-tabs-card.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-tab{border-radius:0 2px 2px 0}.ant-tabs-card.ant-tabs-right>.ant-tabs-nav .ant-tabs-tab-active,.ant-tabs-card.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-tab-active{border-left-color:#fff}.ant-tabs{font-feature-settings:"tnum";box-sizing:border-box;color:rgba(0,0,0,.85);display:flex;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;overflow:hidden;padding:0}.ant-tabs>.ant-tabs-nav,.ant-tabs>div>.ant-tabs-nav{align-items:center;display:flex;flex:none;position:relative}.ant-tabs>.ant-tabs-nav .ant-tabs-nav-wrap,.ant-tabs>div>.ant-tabs-nav .ant-tabs-nav-wrap{align-self:stretch;display:inline-block;display:flex;flex:auto;overflow:hidden;position:relative;transform:translate(0);white-space:nowrap}.ant-tabs>.ant-tabs-nav .ant-tabs-nav-wrap:after,.ant-tabs>.ant-tabs-nav .ant-tabs-nav-wrap:before,.ant-tabs>div>.ant-tabs-nav .ant-tabs-nav-wrap:after,.ant-tabs>div>.ant-tabs-nav .ant-tabs-nav-wrap:before{content:"";opacity:0;pointer-events:none;position:absolute;transition:opacity .3s;z-index:1}.ant-tabs>.ant-tabs-nav .ant-tabs-nav-list,.ant-tabs>div>.ant-tabs-nav .ant-tabs-nav-list{display:flex;position:relative;transition:transform .3s}.ant-tabs>.ant-tabs-nav .ant-tabs-nav-operations,.ant-tabs>div>.ant-tabs-nav .ant-tabs-nav-operations{align-self:stretch;display:flex}.ant-tabs>.ant-tabs-nav .ant-tabs-nav-operations-hidden,.ant-tabs>div>.ant-tabs-nav .ant-tabs-nav-operations-hidden{pointer-events:none;position:absolute;visibility:hidden}.ant-tabs>.ant-tabs-nav .ant-tabs-nav-more,.ant-tabs>div>.ant-tabs-nav .ant-tabs-nav-more{background:transparent;border:0;padding:8px 16px;position:relative}.ant-tabs>.ant-tabs-nav .ant-tabs-nav-more:after,.ant-tabs>div>.ant-tabs-nav .ant-tabs-nav-more:after{bottom:0;content:"";height:5px;left:0;position:absolute;right:0;transform:translateY(100%)}.ant-tabs>.ant-tabs-nav .ant-tabs-nav-add,.ant-tabs>div>.ant-tabs-nav .ant-tabs-nav-add{background:#fafafa;border:1px solid #f0f0f0;border-radius:2px 2px 0 0;cursor:pointer;margin-left:2px;min-width:40px;outline:none;padding:0 8px;transition:all .3s cubic-bezier(.645,.045,.355,1)}.ant-tabs>.ant-tabs-nav .ant-tabs-nav-add:hover,.ant-tabs>div>.ant-tabs-nav .ant-tabs-nav-add:hover{color:var(--ant-primary-5)}.ant-tabs>.ant-tabs-nav .ant-tabs-nav-add:active,.ant-tabs>.ant-tabs-nav .ant-tabs-nav-add:focus,.ant-tabs>div>.ant-tabs-nav .ant-tabs-nav-add:active,.ant-tabs>div>.ant-tabs-nav .ant-tabs-nav-add:focus{color:var(--ant-primary-7)}.ant-tabs-extra-content{flex:none}.ant-tabs-centered>.ant-tabs-nav .ant-tabs-nav-wrap:not([class*=ant-tabs-nav-wrap-ping]),.ant-tabs-centered>div>.ant-tabs-nav .ant-tabs-nav-wrap:not([class*=ant-tabs-nav-wrap-ping]){justify-content:center}.ant-tabs-ink-bar{background:var(--ant-primary-color);pointer-events:none;position:absolute}.ant-tabs-tab{align-items:center;background:transparent;border:0;cursor:pointer;display:inline-flex;font-size:14px;outline:none;padding:12px 0;position:relative}.ant-tabs-tab-btn:active,.ant-tabs-tab-btn:focus,.ant-tabs-tab-remove:active,.ant-tabs-tab-remove:focus{color:var(--ant-primary-7)}.ant-tabs-tab-btn,.ant-tabs-tab-remove{outline:none;transition:all .3s}.ant-tabs-tab-remove{background:transparent;border:none;color:rgba(0,0,0,.45);cursor:pointer;flex:none;font-size:12px;margin-left:8px;margin-right:-4px}.ant-tabs-tab-remove:hover{color:rgba(0,0,0,.85)}.ant-tabs-tab:hover{color:var(--ant-primary-5)}.ant-tabs-tab.ant-tabs-tab-active .ant-tabs-tab-btn{color:var(--ant-primary-color);text-shadow:0 0 .25px currentcolor}.ant-tabs-tab.ant-tabs-tab-disabled{color:rgba(0,0,0,.25);cursor:not-allowed}.ant-tabs-tab.ant-tabs-tab-disabled .ant-tabs-tab-btn:active,.ant-tabs-tab.ant-tabs-tab-disabled .ant-tabs-tab-btn:focus,.ant-tabs-tab.ant-tabs-tab-disabled .ant-tabs-tab-remove:active,.ant-tabs-tab.ant-tabs-tab-disabled .ant-tabs-tab-remove:focus{color:rgba(0,0,0,.25)}.ant-tabs-tab .ant-tabs-tab-remove .anticon{margin:0}.ant-tabs-tab .anticon{margin-right:12px}.ant-tabs-tab+.ant-tabs-tab{margin:0 0 0 32px}.ant-tabs-content{display:flex;width:100%}.ant-tabs-content-holder{flex:auto;min-height:0;min-width:0}.ant-tabs-content-animated{transition:margin .3s}.ant-tabs-tabpane{flex:none;outline:none;width:100%}.ant-row{flex-flow:row wrap}.ant-row,.ant-row:after,.ant-row:before{display:flex}.ant-row-no-wrap{flex-wrap:nowrap}.ant-row-start{justify-content:flex-start}.ant-row-center{justify-content:center}.ant-row-end{justify-content:flex-end}.ant-row-space-between{justify-content:space-between}.ant-row-space-around{justify-content:space-around}.ant-row-top{align-items:flex-start}.ant-row-middle{align-items:center}.ant-row-bottom{align-items:flex-end}.ant-col{max-width:100%;min-height:1px;position:relative}.ant-col-24{display:block;flex:0 0 100%;max-width:100%}.ant-col-push-24{left:100%}.ant-col-pull-24{right:100%}.ant-col-offset-24{margin-left:100%}.ant-col-order-24{order:24}.ant-col-23{display:block;flex:0 0 95.83333333%;max-width:95.83333333%}.ant-col-push-23{left:95.83333333%}.ant-col-pull-23{right:95.83333333%}.ant-col-offset-23{margin-left:95.83333333%}.ant-col-order-23{order:23}.ant-col-22{display:block;flex:0 0 91.66666667%;max-width:91.66666667%}.ant-col-push-22{left:91.66666667%}.ant-col-pull-22{right:91.66666667%}.ant-col-offset-22{margin-left:91.66666667%}.ant-col-order-22{order:22}.ant-col-21{display:block;flex:0 0 87.5%;max-width:87.5%}.ant-col-push-21{left:87.5%}.ant-col-pull-21{right:87.5%}.ant-col-offset-21{margin-left:87.5%}.ant-col-order-21{order:21}.ant-col-20{display:block;flex:0 0 83.33333333%;max-width:83.33333333%}.ant-col-push-20{left:83.33333333%}.ant-col-pull-20{right:83.33333333%}.ant-col-offset-20{margin-left:83.33333333%}.ant-col-order-20{order:20}.ant-col-19{display:block;flex:0 0 79.16666667%;max-width:79.16666667%}.ant-col-push-19{left:79.16666667%}.ant-col-pull-19{right:79.16666667%}.ant-col-offset-19{margin-left:79.16666667%}.ant-col-order-19{order:19}.ant-col-18{display:block;flex:0 0 75%;max-width:75%}.ant-col-push-18{left:75%}.ant-col-pull-18{right:75%}.ant-col-offset-18{margin-left:75%}.ant-col-order-18{order:18}.ant-col-17{display:block;flex:0 0 70.83333333%;max-width:70.83333333%}.ant-col-push-17{left:70.83333333%}.ant-col-pull-17{right:70.83333333%}.ant-col-offset-17{margin-left:70.83333333%}.ant-col-order-17{order:17}.ant-col-16{display:block;flex:0 0 66.66666667%;max-width:66.66666667%}.ant-col-push-16{left:66.66666667%}.ant-col-pull-16{right:66.66666667%}.ant-col-offset-16{margin-left:66.66666667%}.ant-col-order-16{order:16}.ant-col-15{display:block;flex:0 0 62.5%;max-width:62.5%}.ant-col-push-15{left:62.5%}.ant-col-pull-15{right:62.5%}.ant-col-offset-15{margin-left:62.5%}.ant-col-order-15{order:15}.ant-col-14{display:block;flex:0 0 58.33333333%;max-width:58.33333333%}.ant-col-push-14{left:58.33333333%}.ant-col-pull-14{right:58.33333333%}.ant-col-offset-14{margin-left:58.33333333%}.ant-col-order-14{order:14}.ant-col-13{display:block;flex:0 0 54.16666667%;max-width:54.16666667%}.ant-col-push-13{left:54.16666667%}.ant-col-pull-13{right:54.16666667%}.ant-col-offset-13{margin-left:54.16666667%}.ant-col-order-13{order:13}.ant-col-12{display:block;flex:0 0 50%;max-width:50%}.ant-col-push-12{left:50%}.ant-col-pull-12{right:50%}.ant-col-offset-12{margin-left:50%}.ant-col-order-12{order:12}.ant-col-11{display:block;flex:0 0 45.83333333%;max-width:45.83333333%}.ant-col-push-11{left:45.83333333%}.ant-col-pull-11{right:45.83333333%}.ant-col-offset-11{margin-left:45.83333333%}.ant-col-order-11{order:11}.ant-col-10{display:block;flex:0 0 41.66666667%;max-width:41.66666667%}.ant-col-push-10{left:41.66666667%}.ant-col-pull-10{right:41.66666667%}.ant-col-offset-10{margin-left:41.66666667%}.ant-col-order-10{order:10}.ant-col-9{display:block;flex:0 0 37.5%;max-width:37.5%}.ant-col-push-9{left:37.5%}.ant-col-pull-9{right:37.5%}.ant-col-offset-9{margin-left:37.5%}.ant-col-order-9{order:9}.ant-col-8{display:block;flex:0 0 33.33333333%;max-width:33.33333333%}.ant-col-push-8{left:33.33333333%}.ant-col-pull-8{right:33.33333333%}.ant-col-offset-8{margin-left:33.33333333%}.ant-col-order-8{order:8}.ant-col-7{display:block;flex:0 0 29.16666667%;max-width:29.16666667%}.ant-col-push-7{left:29.16666667%}.ant-col-pull-7{right:29.16666667%}.ant-col-offset-7{margin-left:29.16666667%}.ant-col-order-7{order:7}.ant-col-6{display:block;flex:0 0 25%;max-width:25%}.ant-col-push-6{left:25%}.ant-col-pull-6{right:25%}.ant-col-offset-6{margin-left:25%}.ant-col-order-6{order:6}.ant-col-5{display:block;flex:0 0 20.83333333%;max-width:20.83333333%}.ant-col-push-5{left:20.83333333%}.ant-col-pull-5{right:20.83333333%}.ant-col-offset-5{margin-left:20.83333333%}.ant-col-order-5{order:5}.ant-col-4{display:block;flex:0 0 16.66666667%;max-width:16.66666667%}.ant-col-push-4{left:16.66666667%}.ant-col-pull-4{right:16.66666667%}.ant-col-offset-4{margin-left:16.66666667%}.ant-col-order-4{order:4}.ant-col-3{display:block;flex:0 0 12.5%;max-width:12.5%}.ant-col-push-3{left:12.5%}.ant-col-pull-3{right:12.5%}.ant-col-offset-3{margin-left:12.5%}.ant-col-order-3{order:3}.ant-col-2{display:block;flex:0 0 8.33333333%;max-width:8.33333333%}.ant-col-push-2{left:8.33333333%}.ant-col-pull-2{right:8.33333333%}.ant-col-offset-2{margin-left:8.33333333%}.ant-col-order-2{order:2}.ant-col-1{display:block;flex:0 0 4.16666667%;max-width:4.16666667%}.ant-col-push-1{left:4.16666667%}.ant-col-pull-1{right:4.16666667%}.ant-col-offset-1{margin-left:4.16666667%}.ant-col-order-1{order:1}.ant-col-0{display:none}.ant-col-offset-0{margin-left:0}.ant-col-order-0{order:0}.ant-col-offset-0.ant-col-rtl{margin-right:0}.ant-col-push-1.ant-col-rtl{left:auto;right:4.16666667%}.ant-col-pull-1.ant-col-rtl{left:4.16666667%;right:auto}.ant-col-offset-1.ant-col-rtl{margin-left:0;margin-right:4.16666667%}.ant-col-push-2.ant-col-rtl{left:auto;right:8.33333333%}.ant-col-pull-2.ant-col-rtl{left:8.33333333%;right:auto}.ant-col-offset-2.ant-col-rtl{margin-left:0;margin-right:8.33333333%}.ant-col-push-3.ant-col-rtl{left:auto;right:12.5%}.ant-col-pull-3.ant-col-rtl{left:12.5%;right:auto}.ant-col-offset-3.ant-col-rtl{margin-left:0;margin-right:12.5%}.ant-col-push-4.ant-col-rtl{left:auto;right:16.66666667%}.ant-col-pull-4.ant-col-rtl{left:16.66666667%;right:auto}.ant-col-offset-4.ant-col-rtl{margin-left:0;margin-right:16.66666667%}.ant-col-push-5.ant-col-rtl{left:auto;right:20.83333333%}.ant-col-pull-5.ant-col-rtl{left:20.83333333%;right:auto}.ant-col-offset-5.ant-col-rtl{margin-left:0;margin-right:20.83333333%}.ant-col-push-6.ant-col-rtl{left:auto;right:25%}.ant-col-pull-6.ant-col-rtl{left:25%;right:auto}.ant-col-offset-6.ant-col-rtl{margin-left:0;margin-right:25%}.ant-col-push-7.ant-col-rtl{left:auto;right:29.16666667%}.ant-col-pull-7.ant-col-rtl{left:29.16666667%;right:auto}.ant-col-offset-7.ant-col-rtl{margin-left:0;margin-right:29.16666667%}.ant-col-push-8.ant-col-rtl{left:auto;right:33.33333333%}.ant-col-pull-8.ant-col-rtl{left:33.33333333%;right:auto}.ant-col-offset-8.ant-col-rtl{margin-left:0;margin-right:33.33333333%}.ant-col-push-9.ant-col-rtl{left:auto;right:37.5%}.ant-col-pull-9.ant-col-rtl{left:37.5%;right:auto}.ant-col-offset-9.ant-col-rtl{margin-left:0;margin-right:37.5%}.ant-col-push-10.ant-col-rtl{left:auto;right:41.66666667%}.ant-col-pull-10.ant-col-rtl{left:41.66666667%;right:auto}.ant-col-offset-10.ant-col-rtl{margin-left:0;margin-right:41.66666667%}.ant-col-push-11.ant-col-rtl{left:auto;right:45.83333333%}.ant-col-pull-11.ant-col-rtl{left:45.83333333%;right:auto}.ant-col-offset-11.ant-col-rtl{margin-left:0;margin-right:45.83333333%}.ant-col-push-12.ant-col-rtl{left:auto;right:50%}.ant-col-pull-12.ant-col-rtl{left:50%;right:auto}.ant-col-offset-12.ant-col-rtl{margin-left:0;margin-right:50%}.ant-col-push-13.ant-col-rtl{left:auto;right:54.16666667%}.ant-col-pull-13.ant-col-rtl{left:54.16666667%;right:auto}.ant-col-offset-13.ant-col-rtl{margin-left:0;margin-right:54.16666667%}.ant-col-push-14.ant-col-rtl{left:auto;right:58.33333333%}.ant-col-pull-14.ant-col-rtl{left:58.33333333%;right:auto}.ant-col-offset-14.ant-col-rtl{margin-left:0;margin-right:58.33333333%}.ant-col-push-15.ant-col-rtl{left:auto;right:62.5%}.ant-col-pull-15.ant-col-rtl{left:62.5%;right:auto}.ant-col-offset-15.ant-col-rtl{margin-left:0;margin-right:62.5%}.ant-col-push-16.ant-col-rtl{left:auto;right:66.66666667%}.ant-col-pull-16.ant-col-rtl{left:66.66666667%;right:auto}.ant-col-offset-16.ant-col-rtl{margin-left:0;margin-right:66.66666667%}.ant-col-push-17.ant-col-rtl{left:auto;right:70.83333333%}.ant-col-pull-17.ant-col-rtl{left:70.83333333%;right:auto}.ant-col-offset-17.ant-col-rtl{margin-left:0;margin-right:70.83333333%}.ant-col-push-18.ant-col-rtl{left:auto;right:75%}.ant-col-pull-18.ant-col-rtl{left:75%;right:auto}.ant-col-offset-18.ant-col-rtl{margin-left:0;margin-right:75%}.ant-col-push-19.ant-col-rtl{left:auto;right:79.16666667%}.ant-col-pull-19.ant-col-rtl{left:79.16666667%;right:auto}.ant-col-offset-19.ant-col-rtl{margin-left:0;margin-right:79.16666667%}.ant-col-push-20.ant-col-rtl{left:auto;right:83.33333333%}.ant-col-pull-20.ant-col-rtl{left:83.33333333%;right:auto}.ant-col-offset-20.ant-col-rtl{margin-left:0;margin-right:83.33333333%}.ant-col-push-21.ant-col-rtl{left:auto;right:87.5%}.ant-col-pull-21.ant-col-rtl{left:87.5%;right:auto}.ant-col-offset-21.ant-col-rtl{margin-left:0;margin-right:87.5%}.ant-col-push-22.ant-col-rtl{left:auto;right:91.66666667%}.ant-col-pull-22.ant-col-rtl{left:91.66666667%;right:auto}.ant-col-offset-22.ant-col-rtl{margin-left:0;margin-right:91.66666667%}.ant-col-push-23.ant-col-rtl{left:auto;right:95.83333333%}.ant-col-pull-23.ant-col-rtl{left:95.83333333%;right:auto}.ant-col-offset-23.ant-col-rtl{margin-left:0;margin-right:95.83333333%}.ant-col-push-24.ant-col-rtl{left:auto;right:100%}.ant-col-pull-24.ant-col-rtl{left:100%;right:auto}.ant-col-offset-24.ant-col-rtl{margin-left:0;margin-right:100%}.ant-col-xs-24{display:block;flex:0 0 100%;max-width:100%}.ant-col-xs-push-24{left:100%}.ant-col-xs-pull-24{right:100%}.ant-col-xs-offset-24{margin-left:100%}.ant-col-xs-order-24{order:24}.ant-col-xs-23{display:block;flex:0 0 95.83333333%;max-width:95.83333333%}.ant-col-xs-push-23{left:95.83333333%}.ant-col-xs-pull-23{right:95.83333333%}.ant-col-xs-offset-23{margin-left:95.83333333%}.ant-col-xs-order-23{order:23}.ant-col-xs-22{display:block;flex:0 0 91.66666667%;max-width:91.66666667%}.ant-col-xs-push-22{left:91.66666667%}.ant-col-xs-pull-22{right:91.66666667%}.ant-col-xs-offset-22{margin-left:91.66666667%}.ant-col-xs-order-22{order:22}.ant-col-xs-21{display:block;flex:0 0 87.5%;max-width:87.5%}.ant-col-xs-push-21{left:87.5%}.ant-col-xs-pull-21{right:87.5%}.ant-col-xs-offset-21{margin-left:87.5%}.ant-col-xs-order-21{order:21}.ant-col-xs-20{display:block;flex:0 0 83.33333333%;max-width:83.33333333%}.ant-col-xs-push-20{left:83.33333333%}.ant-col-xs-pull-20{right:83.33333333%}.ant-col-xs-offset-20{margin-left:83.33333333%}.ant-col-xs-order-20{order:20}.ant-col-xs-19{display:block;flex:0 0 79.16666667%;max-width:79.16666667%}.ant-col-xs-push-19{left:79.16666667%}.ant-col-xs-pull-19{right:79.16666667%}.ant-col-xs-offset-19{margin-left:79.16666667%}.ant-col-xs-order-19{order:19}.ant-col-xs-18{display:block;flex:0 0 75%;max-width:75%}.ant-col-xs-push-18{left:75%}.ant-col-xs-pull-18{right:75%}.ant-col-xs-offset-18{margin-left:75%}.ant-col-xs-order-18{order:18}.ant-col-xs-17{display:block;flex:0 0 70.83333333%;max-width:70.83333333%}.ant-col-xs-push-17{left:70.83333333%}.ant-col-xs-pull-17{right:70.83333333%}.ant-col-xs-offset-17{margin-left:70.83333333%}.ant-col-xs-order-17{order:17}.ant-col-xs-16{display:block;flex:0 0 66.66666667%;max-width:66.66666667%}.ant-col-xs-push-16{left:66.66666667%}.ant-col-xs-pull-16{right:66.66666667%}.ant-col-xs-offset-16{margin-left:66.66666667%}.ant-col-xs-order-16{order:16}.ant-col-xs-15{display:block;flex:0 0 62.5%;max-width:62.5%}.ant-col-xs-push-15{left:62.5%}.ant-col-xs-pull-15{right:62.5%}.ant-col-xs-offset-15{margin-left:62.5%}.ant-col-xs-order-15{order:15}.ant-col-xs-14{display:block;flex:0 0 58.33333333%;max-width:58.33333333%}.ant-col-xs-push-14{left:58.33333333%}.ant-col-xs-pull-14{right:58.33333333%}.ant-col-xs-offset-14{margin-left:58.33333333%}.ant-col-xs-order-14{order:14}.ant-col-xs-13{display:block;flex:0 0 54.16666667%;max-width:54.16666667%}.ant-col-xs-push-13{left:54.16666667%}.ant-col-xs-pull-13{right:54.16666667%}.ant-col-xs-offset-13{margin-left:54.16666667%}.ant-col-xs-order-13{order:13}.ant-col-xs-12{display:block;flex:0 0 50%;max-width:50%}.ant-col-xs-push-12{left:50%}.ant-col-xs-pull-12{right:50%}.ant-col-xs-offset-12{margin-left:50%}.ant-col-xs-order-12{order:12}.ant-col-xs-11{display:block;flex:0 0 45.83333333%;max-width:45.83333333%}.ant-col-xs-push-11{left:45.83333333%}.ant-col-xs-pull-11{right:45.83333333%}.ant-col-xs-offset-11{margin-left:45.83333333%}.ant-col-xs-order-11{order:11}.ant-col-xs-10{display:block;flex:0 0 41.66666667%;max-width:41.66666667%}.ant-col-xs-push-10{left:41.66666667%}.ant-col-xs-pull-10{right:41.66666667%}.ant-col-xs-offset-10{margin-left:41.66666667%}.ant-col-xs-order-10{order:10}.ant-col-xs-9{display:block;flex:0 0 37.5%;max-width:37.5%}.ant-col-xs-push-9{left:37.5%}.ant-col-xs-pull-9{right:37.5%}.ant-col-xs-offset-9{margin-left:37.5%}.ant-col-xs-order-9{order:9}.ant-col-xs-8{display:block;flex:0 0 33.33333333%;max-width:33.33333333%}.ant-col-xs-push-8{left:33.33333333%}.ant-col-xs-pull-8{right:33.33333333%}.ant-col-xs-offset-8{margin-left:33.33333333%}.ant-col-xs-order-8{order:8}.ant-col-xs-7{display:block;flex:0 0 29.16666667%;max-width:29.16666667%}.ant-col-xs-push-7{left:29.16666667%}.ant-col-xs-pull-7{right:29.16666667%}.ant-col-xs-offset-7{margin-left:29.16666667%}.ant-col-xs-order-7{order:7}.ant-col-xs-6{display:block;flex:0 0 25%;max-width:25%}.ant-col-xs-push-6{left:25%}.ant-col-xs-pull-6{right:25%}.ant-col-xs-offset-6{margin-left:25%}.ant-col-xs-order-6{order:6}.ant-col-xs-5{display:block;flex:0 0 20.83333333%;max-width:20.83333333%}.ant-col-xs-push-5{left:20.83333333%}.ant-col-xs-pull-5{right:20.83333333%}.ant-col-xs-offset-5{margin-left:20.83333333%}.ant-col-xs-order-5{order:5}.ant-col-xs-4{display:block;flex:0 0 16.66666667%;max-width:16.66666667%}.ant-col-xs-push-4{left:16.66666667%}.ant-col-xs-pull-4{right:16.66666667%}.ant-col-xs-offset-4{margin-left:16.66666667%}.ant-col-xs-order-4{order:4}.ant-col-xs-3{display:block;flex:0 0 12.5%;max-width:12.5%}.ant-col-xs-push-3{left:12.5%}.ant-col-xs-pull-3{right:12.5%}.ant-col-xs-offset-3{margin-left:12.5%}.ant-col-xs-order-3{order:3}.ant-col-xs-2{display:block;flex:0 0 8.33333333%;max-width:8.33333333%}.ant-col-xs-push-2{left:8.33333333%}.ant-col-xs-pull-2{right:8.33333333%}.ant-col-xs-offset-2{margin-left:8.33333333%}.ant-col-xs-order-2{order:2}.ant-col-xs-1{display:block;flex:0 0 4.16666667%;max-width:4.16666667%}.ant-col-xs-push-1{left:4.16666667%}.ant-col-xs-pull-1{right:4.16666667%}.ant-col-xs-offset-1{margin-left:4.16666667%}.ant-col-xs-order-1{order:1}.ant-col-xs-0{display:none}.ant-col-push-0{left:auto}.ant-col-pull-0{right:auto}.ant-col-xs-push-0{left:auto}.ant-col-xs-pull-0{right:auto}.ant-col-xs-offset-0{margin-left:0}.ant-col-xs-order-0{order:0}.ant-col-push-0.ant-col-rtl{right:auto}.ant-col-pull-0.ant-col-rtl{left:auto}.ant-col-xs-push-0.ant-col-rtl{right:auto}.ant-col-xs-pull-0.ant-col-rtl{left:auto}.ant-col-xs-offset-0.ant-col-rtl{margin-right:0}.ant-col-xs-push-1.ant-col-rtl{left:auto;right:4.16666667%}.ant-col-xs-pull-1.ant-col-rtl{left:4.16666667%;right:auto}.ant-col-xs-offset-1.ant-col-rtl{margin-left:0;margin-right:4.16666667%}.ant-col-xs-push-2.ant-col-rtl{left:auto;right:8.33333333%}.ant-col-xs-pull-2.ant-col-rtl{left:8.33333333%;right:auto}.ant-col-xs-offset-2.ant-col-rtl{margin-left:0;margin-right:8.33333333%}.ant-col-xs-push-3.ant-col-rtl{left:auto;right:12.5%}.ant-col-xs-pull-3.ant-col-rtl{left:12.5%;right:auto}.ant-col-xs-offset-3.ant-col-rtl{margin-left:0;margin-right:12.5%}.ant-col-xs-push-4.ant-col-rtl{left:auto;right:16.66666667%}.ant-col-xs-pull-4.ant-col-rtl{left:16.66666667%;right:auto}.ant-col-xs-offset-4.ant-col-rtl{margin-left:0;margin-right:16.66666667%}.ant-col-xs-push-5.ant-col-rtl{left:auto;right:20.83333333%}.ant-col-xs-pull-5.ant-col-rtl{left:20.83333333%;right:auto}.ant-col-xs-offset-5.ant-col-rtl{margin-left:0;margin-right:20.83333333%}.ant-col-xs-push-6.ant-col-rtl{left:auto;right:25%}.ant-col-xs-pull-6.ant-col-rtl{left:25%;right:auto}.ant-col-xs-offset-6.ant-col-rtl{margin-left:0;margin-right:25%}.ant-col-xs-push-7.ant-col-rtl{left:auto;right:29.16666667%}.ant-col-xs-pull-7.ant-col-rtl{left:29.16666667%;right:auto}.ant-col-xs-offset-7.ant-col-rtl{margin-left:0;margin-right:29.16666667%}.ant-col-xs-push-8.ant-col-rtl{left:auto;right:33.33333333%}.ant-col-xs-pull-8.ant-col-rtl{left:33.33333333%;right:auto}.ant-col-xs-offset-8.ant-col-rtl{margin-left:0;margin-right:33.33333333%}.ant-col-xs-push-9.ant-col-rtl{left:auto;right:37.5%}.ant-col-xs-pull-9.ant-col-rtl{left:37.5%;right:auto}.ant-col-xs-offset-9.ant-col-rtl{margin-left:0;margin-right:37.5%}.ant-col-xs-push-10.ant-col-rtl{left:auto;right:41.66666667%}.ant-col-xs-pull-10.ant-col-rtl{left:41.66666667%;right:auto}.ant-col-xs-offset-10.ant-col-rtl{margin-left:0;margin-right:41.66666667%}.ant-col-xs-push-11.ant-col-rtl{left:auto;right:45.83333333%}.ant-col-xs-pull-11.ant-col-rtl{left:45.83333333%;right:auto}.ant-col-xs-offset-11.ant-col-rtl{margin-left:0;margin-right:45.83333333%}.ant-col-xs-push-12.ant-col-rtl{left:auto;right:50%}.ant-col-xs-pull-12.ant-col-rtl{left:50%;right:auto}.ant-col-xs-offset-12.ant-col-rtl{margin-left:0;margin-right:50%}.ant-col-xs-push-13.ant-col-rtl{left:auto;right:54.16666667%}.ant-col-xs-pull-13.ant-col-rtl{left:54.16666667%;right:auto}.ant-col-xs-offset-13.ant-col-rtl{margin-left:0;margin-right:54.16666667%}.ant-col-xs-push-14.ant-col-rtl{left:auto;right:58.33333333%}.ant-col-xs-pull-14.ant-col-rtl{left:58.33333333%;right:auto}.ant-col-xs-offset-14.ant-col-rtl{margin-left:0;margin-right:58.33333333%}.ant-col-xs-push-15.ant-col-rtl{left:auto;right:62.5%}.ant-col-xs-pull-15.ant-col-rtl{left:62.5%;right:auto}.ant-col-xs-offset-15.ant-col-rtl{margin-left:0;margin-right:62.5%}.ant-col-xs-push-16.ant-col-rtl{left:auto;right:66.66666667%}.ant-col-xs-pull-16.ant-col-rtl{left:66.66666667%;right:auto}.ant-col-xs-offset-16.ant-col-rtl{margin-left:0;margin-right:66.66666667%}.ant-col-xs-push-17.ant-col-rtl{left:auto;right:70.83333333%}.ant-col-xs-pull-17.ant-col-rtl{left:70.83333333%;right:auto}.ant-col-xs-offset-17.ant-col-rtl{margin-left:0;margin-right:70.83333333%}.ant-col-xs-push-18.ant-col-rtl{left:auto;right:75%}.ant-col-xs-pull-18.ant-col-rtl{left:75%;right:auto}.ant-col-xs-offset-18.ant-col-rtl{margin-left:0;margin-right:75%}.ant-col-xs-push-19.ant-col-rtl{left:auto;right:79.16666667%}.ant-col-xs-pull-19.ant-col-rtl{left:79.16666667%;right:auto}.ant-col-xs-offset-19.ant-col-rtl{margin-left:0;margin-right:79.16666667%}.ant-col-xs-push-20.ant-col-rtl{left:auto;right:83.33333333%}.ant-col-xs-pull-20.ant-col-rtl{left:83.33333333%;right:auto}.ant-col-xs-offset-20.ant-col-rtl{margin-left:0;margin-right:83.33333333%}.ant-col-xs-push-21.ant-col-rtl{left:auto;right:87.5%}.ant-col-xs-pull-21.ant-col-rtl{left:87.5%;right:auto}.ant-col-xs-offset-21.ant-col-rtl{margin-left:0;margin-right:87.5%}.ant-col-xs-push-22.ant-col-rtl{left:auto;right:91.66666667%}.ant-col-xs-pull-22.ant-col-rtl{left:91.66666667%;right:auto}.ant-col-xs-offset-22.ant-col-rtl{margin-left:0;margin-right:91.66666667%}.ant-col-xs-push-23.ant-col-rtl{left:auto;right:95.83333333%}.ant-col-xs-pull-23.ant-col-rtl{left:95.83333333%;right:auto}.ant-col-xs-offset-23.ant-col-rtl{margin-left:0;margin-right:95.83333333%}.ant-col-xs-push-24.ant-col-rtl{left:auto;right:100%}.ant-col-xs-pull-24.ant-col-rtl{left:100%;right:auto}.ant-col-xs-offset-24.ant-col-rtl{margin-left:0;margin-right:100%}@media (min-width:576px){.ant-col-sm-24{display:block;flex:0 0 100%;max-width:100%}.ant-col-sm-push-24{left:100%}.ant-col-sm-pull-24{right:100%}.ant-col-sm-offset-24{margin-left:100%}.ant-col-sm-order-24{order:24}.ant-col-sm-23{display:block;flex:0 0 95.83333333%;max-width:95.83333333%}.ant-col-sm-push-23{left:95.83333333%}.ant-col-sm-pull-23{right:95.83333333%}.ant-col-sm-offset-23{margin-left:95.83333333%}.ant-col-sm-order-23{order:23}.ant-col-sm-22{display:block;flex:0 0 91.66666667%;max-width:91.66666667%}.ant-col-sm-push-22{left:91.66666667%}.ant-col-sm-pull-22{right:91.66666667%}.ant-col-sm-offset-22{margin-left:91.66666667%}.ant-col-sm-order-22{order:22}.ant-col-sm-21{display:block;flex:0 0 87.5%;max-width:87.5%}.ant-col-sm-push-21{left:87.5%}.ant-col-sm-pull-21{right:87.5%}.ant-col-sm-offset-21{margin-left:87.5%}.ant-col-sm-order-21{order:21}.ant-col-sm-20{display:block;flex:0 0 83.33333333%;max-width:83.33333333%}.ant-col-sm-push-20{left:83.33333333%}.ant-col-sm-pull-20{right:83.33333333%}.ant-col-sm-offset-20{margin-left:83.33333333%}.ant-col-sm-order-20{order:20}.ant-col-sm-19{display:block;flex:0 0 79.16666667%;max-width:79.16666667%}.ant-col-sm-push-19{left:79.16666667%}.ant-col-sm-pull-19{right:79.16666667%}.ant-col-sm-offset-19{margin-left:79.16666667%}.ant-col-sm-order-19{order:19}.ant-col-sm-18{display:block;flex:0 0 75%;max-width:75%}.ant-col-sm-push-18{left:75%}.ant-col-sm-pull-18{right:75%}.ant-col-sm-offset-18{margin-left:75%}.ant-col-sm-order-18{order:18}.ant-col-sm-17{display:block;flex:0 0 70.83333333%;max-width:70.83333333%}.ant-col-sm-push-17{left:70.83333333%}.ant-col-sm-pull-17{right:70.83333333%}.ant-col-sm-offset-17{margin-left:70.83333333%}.ant-col-sm-order-17{order:17}.ant-col-sm-16{display:block;flex:0 0 66.66666667%;max-width:66.66666667%}.ant-col-sm-push-16{left:66.66666667%}.ant-col-sm-pull-16{right:66.66666667%}.ant-col-sm-offset-16{margin-left:66.66666667%}.ant-col-sm-order-16{order:16}.ant-col-sm-15{display:block;flex:0 0 62.5%;max-width:62.5%}.ant-col-sm-push-15{left:62.5%}.ant-col-sm-pull-15{right:62.5%}.ant-col-sm-offset-15{margin-left:62.5%}.ant-col-sm-order-15{order:15}.ant-col-sm-14{display:block;flex:0 0 58.33333333%;max-width:58.33333333%}.ant-col-sm-push-14{left:58.33333333%}.ant-col-sm-pull-14{right:58.33333333%}.ant-col-sm-offset-14{margin-left:58.33333333%}.ant-col-sm-order-14{order:14}.ant-col-sm-13{display:block;flex:0 0 54.16666667%;max-width:54.16666667%}.ant-col-sm-push-13{left:54.16666667%}.ant-col-sm-pull-13{right:54.16666667%}.ant-col-sm-offset-13{margin-left:54.16666667%}.ant-col-sm-order-13{order:13}.ant-col-sm-12{display:block;flex:0 0 50%;max-width:50%}.ant-col-sm-push-12{left:50%}.ant-col-sm-pull-12{right:50%}.ant-col-sm-offset-12{margin-left:50%}.ant-col-sm-order-12{order:12}.ant-col-sm-11{display:block;flex:0 0 45.83333333%;max-width:45.83333333%}.ant-col-sm-push-11{left:45.83333333%}.ant-col-sm-pull-11{right:45.83333333%}.ant-col-sm-offset-11{margin-left:45.83333333%}.ant-col-sm-order-11{order:11}.ant-col-sm-10{display:block;flex:0 0 41.66666667%;max-width:41.66666667%}.ant-col-sm-push-10{left:41.66666667%}.ant-col-sm-pull-10{right:41.66666667%}.ant-col-sm-offset-10{margin-left:41.66666667%}.ant-col-sm-order-10{order:10}.ant-col-sm-9{display:block;flex:0 0 37.5%;max-width:37.5%}.ant-col-sm-push-9{left:37.5%}.ant-col-sm-pull-9{right:37.5%}.ant-col-sm-offset-9{margin-left:37.5%}.ant-col-sm-order-9{order:9}.ant-col-sm-8{display:block;flex:0 0 33.33333333%;max-width:33.33333333%}.ant-col-sm-push-8{left:33.33333333%}.ant-col-sm-pull-8{right:33.33333333%}.ant-col-sm-offset-8{margin-left:33.33333333%}.ant-col-sm-order-8{order:8}.ant-col-sm-7{display:block;flex:0 0 29.16666667%;max-width:29.16666667%}.ant-col-sm-push-7{left:29.16666667%}.ant-col-sm-pull-7{right:29.16666667%}.ant-col-sm-offset-7{margin-left:29.16666667%}.ant-col-sm-order-7{order:7}.ant-col-sm-6{display:block;flex:0 0 25%;max-width:25%}.ant-col-sm-push-6{left:25%}.ant-col-sm-pull-6{right:25%}.ant-col-sm-offset-6{margin-left:25%}.ant-col-sm-order-6{order:6}.ant-col-sm-5{display:block;flex:0 0 20.83333333%;max-width:20.83333333%}.ant-col-sm-push-5{left:20.83333333%}.ant-col-sm-pull-5{right:20.83333333%}.ant-col-sm-offset-5{margin-left:20.83333333%}.ant-col-sm-order-5{order:5}.ant-col-sm-4{display:block;flex:0 0 16.66666667%;max-width:16.66666667%}.ant-col-sm-push-4{left:16.66666667%}.ant-col-sm-pull-4{right:16.66666667%}.ant-col-sm-offset-4{margin-left:16.66666667%}.ant-col-sm-order-4{order:4}.ant-col-sm-3{display:block;flex:0 0 12.5%;max-width:12.5%}.ant-col-sm-push-3{left:12.5%}.ant-col-sm-pull-3{right:12.5%}.ant-col-sm-offset-3{margin-left:12.5%}.ant-col-sm-order-3{order:3}.ant-col-sm-2{display:block;flex:0 0 8.33333333%;max-width:8.33333333%}.ant-col-sm-push-2{left:8.33333333%}.ant-col-sm-pull-2{right:8.33333333%}.ant-col-sm-offset-2{margin-left:8.33333333%}.ant-col-sm-order-2{order:2}.ant-col-sm-1{display:block;flex:0 0 4.16666667%;max-width:4.16666667%}.ant-col-sm-push-1{left:4.16666667%}.ant-col-sm-pull-1{right:4.16666667%}.ant-col-sm-offset-1{margin-left:4.16666667%}.ant-col-sm-order-1{order:1}.ant-col-sm-0{display:none}.ant-col-push-0{left:auto}.ant-col-pull-0{right:auto}.ant-col-sm-push-0{left:auto}.ant-col-sm-pull-0{right:auto}.ant-col-sm-offset-0{margin-left:0}.ant-col-sm-order-0{order:0}.ant-col-push-0.ant-col-rtl{right:auto}.ant-col-pull-0.ant-col-rtl{left:auto}.ant-col-sm-push-0.ant-col-rtl{right:auto}.ant-col-sm-pull-0.ant-col-rtl{left:auto}.ant-col-sm-offset-0.ant-col-rtl{margin-right:0}.ant-col-sm-push-1.ant-col-rtl{left:auto;right:4.16666667%}.ant-col-sm-pull-1.ant-col-rtl{left:4.16666667%;right:auto}.ant-col-sm-offset-1.ant-col-rtl{margin-left:0;margin-right:4.16666667%}.ant-col-sm-push-2.ant-col-rtl{left:auto;right:8.33333333%}.ant-col-sm-pull-2.ant-col-rtl{left:8.33333333%;right:auto}.ant-col-sm-offset-2.ant-col-rtl{margin-left:0;margin-right:8.33333333%}.ant-col-sm-push-3.ant-col-rtl{left:auto;right:12.5%}.ant-col-sm-pull-3.ant-col-rtl{left:12.5%;right:auto}.ant-col-sm-offset-3.ant-col-rtl{margin-left:0;margin-right:12.5%}.ant-col-sm-push-4.ant-col-rtl{left:auto;right:16.66666667%}.ant-col-sm-pull-4.ant-col-rtl{left:16.66666667%;right:auto}.ant-col-sm-offset-4.ant-col-rtl{margin-left:0;margin-right:16.66666667%}.ant-col-sm-push-5.ant-col-rtl{left:auto;right:20.83333333%}.ant-col-sm-pull-5.ant-col-rtl{left:20.83333333%;right:auto}.ant-col-sm-offset-5.ant-col-rtl{margin-left:0;margin-right:20.83333333%}.ant-col-sm-push-6.ant-col-rtl{left:auto;right:25%}.ant-col-sm-pull-6.ant-col-rtl{left:25%;right:auto}.ant-col-sm-offset-6.ant-col-rtl{margin-left:0;margin-right:25%}.ant-col-sm-push-7.ant-col-rtl{left:auto;right:29.16666667%}.ant-col-sm-pull-7.ant-col-rtl{left:29.16666667%;right:auto}.ant-col-sm-offset-7.ant-col-rtl{margin-left:0;margin-right:29.16666667%}.ant-col-sm-push-8.ant-col-rtl{left:auto;right:33.33333333%}.ant-col-sm-pull-8.ant-col-rtl{left:33.33333333%;right:auto}.ant-col-sm-offset-8.ant-col-rtl{margin-left:0;margin-right:33.33333333%}.ant-col-sm-push-9.ant-col-rtl{left:auto;right:37.5%}.ant-col-sm-pull-9.ant-col-rtl{left:37.5%;right:auto}.ant-col-sm-offset-9.ant-col-rtl{margin-left:0;margin-right:37.5%}.ant-col-sm-push-10.ant-col-rtl{left:auto;right:41.66666667%}.ant-col-sm-pull-10.ant-col-rtl{left:41.66666667%;right:auto}.ant-col-sm-offset-10.ant-col-rtl{margin-left:0;margin-right:41.66666667%}.ant-col-sm-push-11.ant-col-rtl{left:auto;right:45.83333333%}.ant-col-sm-pull-11.ant-col-rtl{left:45.83333333%;right:auto}.ant-col-sm-offset-11.ant-col-rtl{margin-left:0;margin-right:45.83333333%}.ant-col-sm-push-12.ant-col-rtl{left:auto;right:50%}.ant-col-sm-pull-12.ant-col-rtl{left:50%;right:auto}.ant-col-sm-offset-12.ant-col-rtl{margin-left:0;margin-right:50%}.ant-col-sm-push-13.ant-col-rtl{left:auto;right:54.16666667%}.ant-col-sm-pull-13.ant-col-rtl{left:54.16666667%;right:auto}.ant-col-sm-offset-13.ant-col-rtl{margin-left:0;margin-right:54.16666667%}.ant-col-sm-push-14.ant-col-rtl{left:auto;right:58.33333333%}.ant-col-sm-pull-14.ant-col-rtl{left:58.33333333%;right:auto}.ant-col-sm-offset-14.ant-col-rtl{margin-left:0;margin-right:58.33333333%}.ant-col-sm-push-15.ant-col-rtl{left:auto;right:62.5%}.ant-col-sm-pull-15.ant-col-rtl{left:62.5%;right:auto}.ant-col-sm-offset-15.ant-col-rtl{margin-left:0;margin-right:62.5%}.ant-col-sm-push-16.ant-col-rtl{left:auto;right:66.66666667%}.ant-col-sm-pull-16.ant-col-rtl{left:66.66666667%;right:auto}.ant-col-sm-offset-16.ant-col-rtl{margin-left:0;margin-right:66.66666667%}.ant-col-sm-push-17.ant-col-rtl{left:auto;right:70.83333333%}.ant-col-sm-pull-17.ant-col-rtl{left:70.83333333%;right:auto}.ant-col-sm-offset-17.ant-col-rtl{margin-left:0;margin-right:70.83333333%}.ant-col-sm-push-18.ant-col-rtl{left:auto;right:75%}.ant-col-sm-pull-18.ant-col-rtl{left:75%;right:auto}.ant-col-sm-offset-18.ant-col-rtl{margin-left:0;margin-right:75%}.ant-col-sm-push-19.ant-col-rtl{left:auto;right:79.16666667%}.ant-col-sm-pull-19.ant-col-rtl{left:79.16666667%;right:auto}.ant-col-sm-offset-19.ant-col-rtl{margin-left:0;margin-right:79.16666667%}.ant-col-sm-push-20.ant-col-rtl{left:auto;right:83.33333333%}.ant-col-sm-pull-20.ant-col-rtl{left:83.33333333%;right:auto}.ant-col-sm-offset-20.ant-col-rtl{margin-left:0;margin-right:83.33333333%}.ant-col-sm-push-21.ant-col-rtl{left:auto;right:87.5%}.ant-col-sm-pull-21.ant-col-rtl{left:87.5%;right:auto}.ant-col-sm-offset-21.ant-col-rtl{margin-left:0;margin-right:87.5%}.ant-col-sm-push-22.ant-col-rtl{left:auto;right:91.66666667%}.ant-col-sm-pull-22.ant-col-rtl{left:91.66666667%;right:auto}.ant-col-sm-offset-22.ant-col-rtl{margin-left:0;margin-right:91.66666667%}.ant-col-sm-push-23.ant-col-rtl{left:auto;right:95.83333333%}.ant-col-sm-pull-23.ant-col-rtl{left:95.83333333%;right:auto}.ant-col-sm-offset-23.ant-col-rtl{margin-left:0;margin-right:95.83333333%}.ant-col-sm-push-24.ant-col-rtl{left:auto;right:100%}.ant-col-sm-pull-24.ant-col-rtl{left:100%;right:auto}.ant-col-sm-offset-24.ant-col-rtl{margin-left:0;margin-right:100%}}@media (min-width:768px){.ant-col-md-24{display:block;flex:0 0 100%;max-width:100%}.ant-col-md-push-24{left:100%}.ant-col-md-pull-24{right:100%}.ant-col-md-offset-24{margin-left:100%}.ant-col-md-order-24{order:24}.ant-col-md-23{display:block;flex:0 0 95.83333333%;max-width:95.83333333%}.ant-col-md-push-23{left:95.83333333%}.ant-col-md-pull-23{right:95.83333333%}.ant-col-md-offset-23{margin-left:95.83333333%}.ant-col-md-order-23{order:23}.ant-col-md-22{display:block;flex:0 0 91.66666667%;max-width:91.66666667%}.ant-col-md-push-22{left:91.66666667%}.ant-col-md-pull-22{right:91.66666667%}.ant-col-md-offset-22{margin-left:91.66666667%}.ant-col-md-order-22{order:22}.ant-col-md-21{display:block;flex:0 0 87.5%;max-width:87.5%}.ant-col-md-push-21{left:87.5%}.ant-col-md-pull-21{right:87.5%}.ant-col-md-offset-21{margin-left:87.5%}.ant-col-md-order-21{order:21}.ant-col-md-20{display:block;flex:0 0 83.33333333%;max-width:83.33333333%}.ant-col-md-push-20{left:83.33333333%}.ant-col-md-pull-20{right:83.33333333%}.ant-col-md-offset-20{margin-left:83.33333333%}.ant-col-md-order-20{order:20}.ant-col-md-19{display:block;flex:0 0 79.16666667%;max-width:79.16666667%}.ant-col-md-push-19{left:79.16666667%}.ant-col-md-pull-19{right:79.16666667%}.ant-col-md-offset-19{margin-left:79.16666667%}.ant-col-md-order-19{order:19}.ant-col-md-18{display:block;flex:0 0 75%;max-width:75%}.ant-col-md-push-18{left:75%}.ant-col-md-pull-18{right:75%}.ant-col-md-offset-18{margin-left:75%}.ant-col-md-order-18{order:18}.ant-col-md-17{display:block;flex:0 0 70.83333333%;max-width:70.83333333%}.ant-col-md-push-17{left:70.83333333%}.ant-col-md-pull-17{right:70.83333333%}.ant-col-md-offset-17{margin-left:70.83333333%}.ant-col-md-order-17{order:17}.ant-col-md-16{display:block;flex:0 0 66.66666667%;max-width:66.66666667%}.ant-col-md-push-16{left:66.66666667%}.ant-col-md-pull-16{right:66.66666667%}.ant-col-md-offset-16{margin-left:66.66666667%}.ant-col-md-order-16{order:16}.ant-col-md-15{display:block;flex:0 0 62.5%;max-width:62.5%}.ant-col-md-push-15{left:62.5%}.ant-col-md-pull-15{right:62.5%}.ant-col-md-offset-15{margin-left:62.5%}.ant-col-md-order-15{order:15}.ant-col-md-14{display:block;flex:0 0 58.33333333%;max-width:58.33333333%}.ant-col-md-push-14{left:58.33333333%}.ant-col-md-pull-14{right:58.33333333%}.ant-col-md-offset-14{margin-left:58.33333333%}.ant-col-md-order-14{order:14}.ant-col-md-13{display:block;flex:0 0 54.16666667%;max-width:54.16666667%}.ant-col-md-push-13{left:54.16666667%}.ant-col-md-pull-13{right:54.16666667%}.ant-col-md-offset-13{margin-left:54.16666667%}.ant-col-md-order-13{order:13}.ant-col-md-12{display:block;flex:0 0 50%;max-width:50%}.ant-col-md-push-12{left:50%}.ant-col-md-pull-12{right:50%}.ant-col-md-offset-12{margin-left:50%}.ant-col-md-order-12{order:12}.ant-col-md-11{display:block;flex:0 0 45.83333333%;max-width:45.83333333%}.ant-col-md-push-11{left:45.83333333%}.ant-col-md-pull-11{right:45.83333333%}.ant-col-md-offset-11{margin-left:45.83333333%}.ant-col-md-order-11{order:11}.ant-col-md-10{display:block;flex:0 0 41.66666667%;max-width:41.66666667%}.ant-col-md-push-10{left:41.66666667%}.ant-col-md-pull-10{right:41.66666667%}.ant-col-md-offset-10{margin-left:41.66666667%}.ant-col-md-order-10{order:10}.ant-col-md-9{display:block;flex:0 0 37.5%;max-width:37.5%}.ant-col-md-push-9{left:37.5%}.ant-col-md-pull-9{right:37.5%}.ant-col-md-offset-9{margin-left:37.5%}.ant-col-md-order-9{order:9}.ant-col-md-8{display:block;flex:0 0 33.33333333%;max-width:33.33333333%}.ant-col-md-push-8{left:33.33333333%}.ant-col-md-pull-8{right:33.33333333%}.ant-col-md-offset-8{margin-left:33.33333333%}.ant-col-md-order-8{order:8}.ant-col-md-7{display:block;flex:0 0 29.16666667%;max-width:29.16666667%}.ant-col-md-push-7{left:29.16666667%}.ant-col-md-pull-7{right:29.16666667%}.ant-col-md-offset-7{margin-left:29.16666667%}.ant-col-md-order-7{order:7}.ant-col-md-6{display:block;flex:0 0 25%;max-width:25%}.ant-col-md-push-6{left:25%}.ant-col-md-pull-6{right:25%}.ant-col-md-offset-6{margin-left:25%}.ant-col-md-order-6{order:6}.ant-col-md-5{display:block;flex:0 0 20.83333333%;max-width:20.83333333%}.ant-col-md-push-5{left:20.83333333%}.ant-col-md-pull-5{right:20.83333333%}.ant-col-md-offset-5{margin-left:20.83333333%}.ant-col-md-order-5{order:5}.ant-col-md-4{display:block;flex:0 0 16.66666667%;max-width:16.66666667%}.ant-col-md-push-4{left:16.66666667%}.ant-col-md-pull-4{right:16.66666667%}.ant-col-md-offset-4{margin-left:16.66666667%}.ant-col-md-order-4{order:4}.ant-col-md-3{display:block;flex:0 0 12.5%;max-width:12.5%}.ant-col-md-push-3{left:12.5%}.ant-col-md-pull-3{right:12.5%}.ant-col-md-offset-3{margin-left:12.5%}.ant-col-md-order-3{order:3}.ant-col-md-2{display:block;flex:0 0 8.33333333%;max-width:8.33333333%}.ant-col-md-push-2{left:8.33333333%}.ant-col-md-pull-2{right:8.33333333%}.ant-col-md-offset-2{margin-left:8.33333333%}.ant-col-md-order-2{order:2}.ant-col-md-1{display:block;flex:0 0 4.16666667%;max-width:4.16666667%}.ant-col-md-push-1{left:4.16666667%}.ant-col-md-pull-1{right:4.16666667%}.ant-col-md-offset-1{margin-left:4.16666667%}.ant-col-md-order-1{order:1}.ant-col-md-0{display:none}.ant-col-push-0{left:auto}.ant-col-pull-0{right:auto}.ant-col-md-push-0{left:auto}.ant-col-md-pull-0{right:auto}.ant-col-md-offset-0{margin-left:0}.ant-col-md-order-0{order:0}.ant-col-push-0.ant-col-rtl{right:auto}.ant-col-pull-0.ant-col-rtl{left:auto}.ant-col-md-push-0.ant-col-rtl{right:auto}.ant-col-md-pull-0.ant-col-rtl{left:auto}.ant-col-md-offset-0.ant-col-rtl{margin-right:0}.ant-col-md-push-1.ant-col-rtl{left:auto;right:4.16666667%}.ant-col-md-pull-1.ant-col-rtl{left:4.16666667%;right:auto}.ant-col-md-offset-1.ant-col-rtl{margin-left:0;margin-right:4.16666667%}.ant-col-md-push-2.ant-col-rtl{left:auto;right:8.33333333%}.ant-col-md-pull-2.ant-col-rtl{left:8.33333333%;right:auto}.ant-col-md-offset-2.ant-col-rtl{margin-left:0;margin-right:8.33333333%}.ant-col-md-push-3.ant-col-rtl{left:auto;right:12.5%}.ant-col-md-pull-3.ant-col-rtl{left:12.5%;right:auto}.ant-col-md-offset-3.ant-col-rtl{margin-left:0;margin-right:12.5%}.ant-col-md-push-4.ant-col-rtl{left:auto;right:16.66666667%}.ant-col-md-pull-4.ant-col-rtl{left:16.66666667%;right:auto}.ant-col-md-offset-4.ant-col-rtl{margin-left:0;margin-right:16.66666667%}.ant-col-md-push-5.ant-col-rtl{left:auto;right:20.83333333%}.ant-col-md-pull-5.ant-col-rtl{left:20.83333333%;right:auto}.ant-col-md-offset-5.ant-col-rtl{margin-left:0;margin-right:20.83333333%}.ant-col-md-push-6.ant-col-rtl{left:auto;right:25%}.ant-col-md-pull-6.ant-col-rtl{left:25%;right:auto}.ant-col-md-offset-6.ant-col-rtl{margin-left:0;margin-right:25%}.ant-col-md-push-7.ant-col-rtl{left:auto;right:29.16666667%}.ant-col-md-pull-7.ant-col-rtl{left:29.16666667%;right:auto}.ant-col-md-offset-7.ant-col-rtl{margin-left:0;margin-right:29.16666667%}.ant-col-md-push-8.ant-col-rtl{left:auto;right:33.33333333%}.ant-col-md-pull-8.ant-col-rtl{left:33.33333333%;right:auto}.ant-col-md-offset-8.ant-col-rtl{margin-left:0;margin-right:33.33333333%}.ant-col-md-push-9.ant-col-rtl{left:auto;right:37.5%}.ant-col-md-pull-9.ant-col-rtl{left:37.5%;right:auto}.ant-col-md-offset-9.ant-col-rtl{margin-left:0;margin-right:37.5%}.ant-col-md-push-10.ant-col-rtl{left:auto;right:41.66666667%}.ant-col-md-pull-10.ant-col-rtl{left:41.66666667%;right:auto}.ant-col-md-offset-10.ant-col-rtl{margin-left:0;margin-right:41.66666667%}.ant-col-md-push-11.ant-col-rtl{left:auto;right:45.83333333%}.ant-col-md-pull-11.ant-col-rtl{left:45.83333333%;right:auto}.ant-col-md-offset-11.ant-col-rtl{margin-left:0;margin-right:45.83333333%}.ant-col-md-push-12.ant-col-rtl{left:auto;right:50%}.ant-col-md-pull-12.ant-col-rtl{left:50%;right:auto}.ant-col-md-offset-12.ant-col-rtl{margin-left:0;margin-right:50%}.ant-col-md-push-13.ant-col-rtl{left:auto;right:54.16666667%}.ant-col-md-pull-13.ant-col-rtl{left:54.16666667%;right:auto}.ant-col-md-offset-13.ant-col-rtl{margin-left:0;margin-right:54.16666667%}.ant-col-md-push-14.ant-col-rtl{left:auto;right:58.33333333%}.ant-col-md-pull-14.ant-col-rtl{left:58.33333333%;right:auto}.ant-col-md-offset-14.ant-col-rtl{margin-left:0;margin-right:58.33333333%}.ant-col-md-push-15.ant-col-rtl{left:auto;right:62.5%}.ant-col-md-pull-15.ant-col-rtl{left:62.5%;right:auto}.ant-col-md-offset-15.ant-col-rtl{margin-left:0;margin-right:62.5%}.ant-col-md-push-16.ant-col-rtl{left:auto;right:66.66666667%}.ant-col-md-pull-16.ant-col-rtl{left:66.66666667%;right:auto}.ant-col-md-offset-16.ant-col-rtl{margin-left:0;margin-right:66.66666667%}.ant-col-md-push-17.ant-col-rtl{left:auto;right:70.83333333%}.ant-col-md-pull-17.ant-col-rtl{left:70.83333333%;right:auto}.ant-col-md-offset-17.ant-col-rtl{margin-left:0;margin-right:70.83333333%}.ant-col-md-push-18.ant-col-rtl{left:auto;right:75%}.ant-col-md-pull-18.ant-col-rtl{left:75%;right:auto}.ant-col-md-offset-18.ant-col-rtl{margin-left:0;margin-right:75%}.ant-col-md-push-19.ant-col-rtl{left:auto;right:79.16666667%}.ant-col-md-pull-19.ant-col-rtl{left:79.16666667%;right:auto}.ant-col-md-offset-19.ant-col-rtl{margin-left:0;margin-right:79.16666667%}.ant-col-md-push-20.ant-col-rtl{left:auto;right:83.33333333%}.ant-col-md-pull-20.ant-col-rtl{left:83.33333333%;right:auto}.ant-col-md-offset-20.ant-col-rtl{margin-left:0;margin-right:83.33333333%}.ant-col-md-push-21.ant-col-rtl{left:auto;right:87.5%}.ant-col-md-pull-21.ant-col-rtl{left:87.5%;right:auto}.ant-col-md-offset-21.ant-col-rtl{margin-left:0;margin-right:87.5%}.ant-col-md-push-22.ant-col-rtl{left:auto;right:91.66666667%}.ant-col-md-pull-22.ant-col-rtl{left:91.66666667%;right:auto}.ant-col-md-offset-22.ant-col-rtl{margin-left:0;margin-right:91.66666667%}.ant-col-md-push-23.ant-col-rtl{left:auto;right:95.83333333%}.ant-col-md-pull-23.ant-col-rtl{left:95.83333333%;right:auto}.ant-col-md-offset-23.ant-col-rtl{margin-left:0;margin-right:95.83333333%}.ant-col-md-push-24.ant-col-rtl{left:auto;right:100%}.ant-col-md-pull-24.ant-col-rtl{left:100%;right:auto}.ant-col-md-offset-24.ant-col-rtl{margin-left:0;margin-right:100%}}@media (min-width:992px){.ant-col-lg-24{display:block;flex:0 0 100%;max-width:100%}.ant-col-lg-push-24{left:100%}.ant-col-lg-pull-24{right:100%}.ant-col-lg-offset-24{margin-left:100%}.ant-col-lg-order-24{order:24}.ant-col-lg-23{display:block;flex:0 0 95.83333333%;max-width:95.83333333%}.ant-col-lg-push-23{left:95.83333333%}.ant-col-lg-pull-23{right:95.83333333%}.ant-col-lg-offset-23{margin-left:95.83333333%}.ant-col-lg-order-23{order:23}.ant-col-lg-22{display:block;flex:0 0 91.66666667%;max-width:91.66666667%}.ant-col-lg-push-22{left:91.66666667%}.ant-col-lg-pull-22{right:91.66666667%}.ant-col-lg-offset-22{margin-left:91.66666667%}.ant-col-lg-order-22{order:22}.ant-col-lg-21{display:block;flex:0 0 87.5%;max-width:87.5%}.ant-col-lg-push-21{left:87.5%}.ant-col-lg-pull-21{right:87.5%}.ant-col-lg-offset-21{margin-left:87.5%}.ant-col-lg-order-21{order:21}.ant-col-lg-20{display:block;flex:0 0 83.33333333%;max-width:83.33333333%}.ant-col-lg-push-20{left:83.33333333%}.ant-col-lg-pull-20{right:83.33333333%}.ant-col-lg-offset-20{margin-left:83.33333333%}.ant-col-lg-order-20{order:20}.ant-col-lg-19{display:block;flex:0 0 79.16666667%;max-width:79.16666667%}.ant-col-lg-push-19{left:79.16666667%}.ant-col-lg-pull-19{right:79.16666667%}.ant-col-lg-offset-19{margin-left:79.16666667%}.ant-col-lg-order-19{order:19}.ant-col-lg-18{display:block;flex:0 0 75%;max-width:75%}.ant-col-lg-push-18{left:75%}.ant-col-lg-pull-18{right:75%}.ant-col-lg-offset-18{margin-left:75%}.ant-col-lg-order-18{order:18}.ant-col-lg-17{display:block;flex:0 0 70.83333333%;max-width:70.83333333%}.ant-col-lg-push-17{left:70.83333333%}.ant-col-lg-pull-17{right:70.83333333%}.ant-col-lg-offset-17{margin-left:70.83333333%}.ant-col-lg-order-17{order:17}.ant-col-lg-16{display:block;flex:0 0 66.66666667%;max-width:66.66666667%}.ant-col-lg-push-16{left:66.66666667%}.ant-col-lg-pull-16{right:66.66666667%}.ant-col-lg-offset-16{margin-left:66.66666667%}.ant-col-lg-order-16{order:16}.ant-col-lg-15{display:block;flex:0 0 62.5%;max-width:62.5%}.ant-col-lg-push-15{left:62.5%}.ant-col-lg-pull-15{right:62.5%}.ant-col-lg-offset-15{margin-left:62.5%}.ant-col-lg-order-15{order:15}.ant-col-lg-14{display:block;flex:0 0 58.33333333%;max-width:58.33333333%}.ant-col-lg-push-14{left:58.33333333%}.ant-col-lg-pull-14{right:58.33333333%}.ant-col-lg-offset-14{margin-left:58.33333333%}.ant-col-lg-order-14{order:14}.ant-col-lg-13{display:block;flex:0 0 54.16666667%;max-width:54.16666667%}.ant-col-lg-push-13{left:54.16666667%}.ant-col-lg-pull-13{right:54.16666667%}.ant-col-lg-offset-13{margin-left:54.16666667%}.ant-col-lg-order-13{order:13}.ant-col-lg-12{display:block;flex:0 0 50%;max-width:50%}.ant-col-lg-push-12{left:50%}.ant-col-lg-pull-12{right:50%}.ant-col-lg-offset-12{margin-left:50%}.ant-col-lg-order-12{order:12}.ant-col-lg-11{display:block;flex:0 0 45.83333333%;max-width:45.83333333%}.ant-col-lg-push-11{left:45.83333333%}.ant-col-lg-pull-11{right:45.83333333%}.ant-col-lg-offset-11{margin-left:45.83333333%}.ant-col-lg-order-11{order:11}.ant-col-lg-10{display:block;flex:0 0 41.66666667%;max-width:41.66666667%}.ant-col-lg-push-10{left:41.66666667%}.ant-col-lg-pull-10{right:41.66666667%}.ant-col-lg-offset-10{margin-left:41.66666667%}.ant-col-lg-order-10{order:10}.ant-col-lg-9{display:block;flex:0 0 37.5%;max-width:37.5%}.ant-col-lg-push-9{left:37.5%}.ant-col-lg-pull-9{right:37.5%}.ant-col-lg-offset-9{margin-left:37.5%}.ant-col-lg-order-9{order:9}.ant-col-lg-8{display:block;flex:0 0 33.33333333%;max-width:33.33333333%}.ant-col-lg-push-8{left:33.33333333%}.ant-col-lg-pull-8{right:33.33333333%}.ant-col-lg-offset-8{margin-left:33.33333333%}.ant-col-lg-order-8{order:8}.ant-col-lg-7{display:block;flex:0 0 29.16666667%;max-width:29.16666667%}.ant-col-lg-push-7{left:29.16666667%}.ant-col-lg-pull-7{right:29.16666667%}.ant-col-lg-offset-7{margin-left:29.16666667%}.ant-col-lg-order-7{order:7}.ant-col-lg-6{display:block;flex:0 0 25%;max-width:25%}.ant-col-lg-push-6{left:25%}.ant-col-lg-pull-6{right:25%}.ant-col-lg-offset-6{margin-left:25%}.ant-col-lg-order-6{order:6}.ant-col-lg-5{display:block;flex:0 0 20.83333333%;max-width:20.83333333%}.ant-col-lg-push-5{left:20.83333333%}.ant-col-lg-pull-5{right:20.83333333%}.ant-col-lg-offset-5{margin-left:20.83333333%}.ant-col-lg-order-5{order:5}.ant-col-lg-4{display:block;flex:0 0 16.66666667%;max-width:16.66666667%}.ant-col-lg-push-4{left:16.66666667%}.ant-col-lg-pull-4{right:16.66666667%}.ant-col-lg-offset-4{margin-left:16.66666667%}.ant-col-lg-order-4{order:4}.ant-col-lg-3{display:block;flex:0 0 12.5%;max-width:12.5%}.ant-col-lg-push-3{left:12.5%}.ant-col-lg-pull-3{right:12.5%}.ant-col-lg-offset-3{margin-left:12.5%}.ant-col-lg-order-3{order:3}.ant-col-lg-2{display:block;flex:0 0 8.33333333%;max-width:8.33333333%}.ant-col-lg-push-2{left:8.33333333%}.ant-col-lg-pull-2{right:8.33333333%}.ant-col-lg-offset-2{margin-left:8.33333333%}.ant-col-lg-order-2{order:2}.ant-col-lg-1{display:block;flex:0 0 4.16666667%;max-width:4.16666667%}.ant-col-lg-push-1{left:4.16666667%}.ant-col-lg-pull-1{right:4.16666667%}.ant-col-lg-offset-1{margin-left:4.16666667%}.ant-col-lg-order-1{order:1}.ant-col-lg-0{display:none}.ant-col-push-0{left:auto}.ant-col-pull-0{right:auto}.ant-col-lg-push-0{left:auto}.ant-col-lg-pull-0{right:auto}.ant-col-lg-offset-0{margin-left:0}.ant-col-lg-order-0{order:0}.ant-col-push-0.ant-col-rtl{right:auto}.ant-col-pull-0.ant-col-rtl{left:auto}.ant-col-lg-push-0.ant-col-rtl{right:auto}.ant-col-lg-pull-0.ant-col-rtl{left:auto}.ant-col-lg-offset-0.ant-col-rtl{margin-right:0}.ant-col-lg-push-1.ant-col-rtl{left:auto;right:4.16666667%}.ant-col-lg-pull-1.ant-col-rtl{left:4.16666667%;right:auto}.ant-col-lg-offset-1.ant-col-rtl{margin-left:0;margin-right:4.16666667%}.ant-col-lg-push-2.ant-col-rtl{left:auto;right:8.33333333%}.ant-col-lg-pull-2.ant-col-rtl{left:8.33333333%;right:auto}.ant-col-lg-offset-2.ant-col-rtl{margin-left:0;margin-right:8.33333333%}.ant-col-lg-push-3.ant-col-rtl{left:auto;right:12.5%}.ant-col-lg-pull-3.ant-col-rtl{left:12.5%;right:auto}.ant-col-lg-offset-3.ant-col-rtl{margin-left:0;margin-right:12.5%}.ant-col-lg-push-4.ant-col-rtl{left:auto;right:16.66666667%}.ant-col-lg-pull-4.ant-col-rtl{left:16.66666667%;right:auto}.ant-col-lg-offset-4.ant-col-rtl{margin-left:0;margin-right:16.66666667%}.ant-col-lg-push-5.ant-col-rtl{left:auto;right:20.83333333%}.ant-col-lg-pull-5.ant-col-rtl{left:20.83333333%;right:auto}.ant-col-lg-offset-5.ant-col-rtl{margin-left:0;margin-right:20.83333333%}.ant-col-lg-push-6.ant-col-rtl{left:auto;right:25%}.ant-col-lg-pull-6.ant-col-rtl{left:25%;right:auto}.ant-col-lg-offset-6.ant-col-rtl{margin-left:0;margin-right:25%}.ant-col-lg-push-7.ant-col-rtl{left:auto;right:29.16666667%}.ant-col-lg-pull-7.ant-col-rtl{left:29.16666667%;right:auto}.ant-col-lg-offset-7.ant-col-rtl{margin-left:0;margin-right:29.16666667%}.ant-col-lg-push-8.ant-col-rtl{left:auto;right:33.33333333%}.ant-col-lg-pull-8.ant-col-rtl{left:33.33333333%;right:auto}.ant-col-lg-offset-8.ant-col-rtl{margin-left:0;margin-right:33.33333333%}.ant-col-lg-push-9.ant-col-rtl{left:auto;right:37.5%}.ant-col-lg-pull-9.ant-col-rtl{left:37.5%;right:auto}.ant-col-lg-offset-9.ant-col-rtl{margin-left:0;margin-right:37.5%}.ant-col-lg-push-10.ant-col-rtl{left:auto;right:41.66666667%}.ant-col-lg-pull-10.ant-col-rtl{left:41.66666667%;right:auto}.ant-col-lg-offset-10.ant-col-rtl{margin-left:0;margin-right:41.66666667%}.ant-col-lg-push-11.ant-col-rtl{left:auto;right:45.83333333%}.ant-col-lg-pull-11.ant-col-rtl{left:45.83333333%;right:auto}.ant-col-lg-offset-11.ant-col-rtl{margin-left:0;margin-right:45.83333333%}.ant-col-lg-push-12.ant-col-rtl{left:auto;right:50%}.ant-col-lg-pull-12.ant-col-rtl{left:50%;right:auto}.ant-col-lg-offset-12.ant-col-rtl{margin-left:0;margin-right:50%}.ant-col-lg-push-13.ant-col-rtl{left:auto;right:54.16666667%}.ant-col-lg-pull-13.ant-col-rtl{left:54.16666667%;right:auto}.ant-col-lg-offset-13.ant-col-rtl{margin-left:0;margin-right:54.16666667%}.ant-col-lg-push-14.ant-col-rtl{left:auto;right:58.33333333%}.ant-col-lg-pull-14.ant-col-rtl{left:58.33333333%;right:auto}.ant-col-lg-offset-14.ant-col-rtl{margin-left:0;margin-right:58.33333333%}.ant-col-lg-push-15.ant-col-rtl{left:auto;right:62.5%}.ant-col-lg-pull-15.ant-col-rtl{left:62.5%;right:auto}.ant-col-lg-offset-15.ant-col-rtl{margin-left:0;margin-right:62.5%}.ant-col-lg-push-16.ant-col-rtl{left:auto;right:66.66666667%}.ant-col-lg-pull-16.ant-col-rtl{left:66.66666667%;right:auto}.ant-col-lg-offset-16.ant-col-rtl{margin-left:0;margin-right:66.66666667%}.ant-col-lg-push-17.ant-col-rtl{left:auto;right:70.83333333%}.ant-col-lg-pull-17.ant-col-rtl{left:70.83333333%;right:auto}.ant-col-lg-offset-17.ant-col-rtl{margin-left:0;margin-right:70.83333333%}.ant-col-lg-push-18.ant-col-rtl{left:auto;right:75%}.ant-col-lg-pull-18.ant-col-rtl{left:75%;right:auto}.ant-col-lg-offset-18.ant-col-rtl{margin-left:0;margin-right:75%}.ant-col-lg-push-19.ant-col-rtl{left:auto;right:79.16666667%}.ant-col-lg-pull-19.ant-col-rtl{left:79.16666667%;right:auto}.ant-col-lg-offset-19.ant-col-rtl{margin-left:0;margin-right:79.16666667%}.ant-col-lg-push-20.ant-col-rtl{left:auto;right:83.33333333%}.ant-col-lg-pull-20.ant-col-rtl{left:83.33333333%;right:auto}.ant-col-lg-offset-20.ant-col-rtl{margin-left:0;margin-right:83.33333333%}.ant-col-lg-push-21.ant-col-rtl{left:auto;right:87.5%}.ant-col-lg-pull-21.ant-col-rtl{left:87.5%;right:auto}.ant-col-lg-offset-21.ant-col-rtl{margin-left:0;margin-right:87.5%}.ant-col-lg-push-22.ant-col-rtl{left:auto;right:91.66666667%}.ant-col-lg-pull-22.ant-col-rtl{left:91.66666667%;right:auto}.ant-col-lg-offset-22.ant-col-rtl{margin-left:0;margin-right:91.66666667%}.ant-col-lg-push-23.ant-col-rtl{left:auto;right:95.83333333%}.ant-col-lg-pull-23.ant-col-rtl{left:95.83333333%;right:auto}.ant-col-lg-offset-23.ant-col-rtl{margin-left:0;margin-right:95.83333333%}.ant-col-lg-push-24.ant-col-rtl{left:auto;right:100%}.ant-col-lg-pull-24.ant-col-rtl{left:100%;right:auto}.ant-col-lg-offset-24.ant-col-rtl{margin-left:0;margin-right:100%}}@media (min-width:1200px){.ant-col-xl-24{display:block;flex:0 0 100%;max-width:100%}.ant-col-xl-push-24{left:100%}.ant-col-xl-pull-24{right:100%}.ant-col-xl-offset-24{margin-left:100%}.ant-col-xl-order-24{order:24}.ant-col-xl-23{display:block;flex:0 0 95.83333333%;max-width:95.83333333%}.ant-col-xl-push-23{left:95.83333333%}.ant-col-xl-pull-23{right:95.83333333%}.ant-col-xl-offset-23{margin-left:95.83333333%}.ant-col-xl-order-23{order:23}.ant-col-xl-22{display:block;flex:0 0 91.66666667%;max-width:91.66666667%}.ant-col-xl-push-22{left:91.66666667%}.ant-col-xl-pull-22{right:91.66666667%}.ant-col-xl-offset-22{margin-left:91.66666667%}.ant-col-xl-order-22{order:22}.ant-col-xl-21{display:block;flex:0 0 87.5%;max-width:87.5%}.ant-col-xl-push-21{left:87.5%}.ant-col-xl-pull-21{right:87.5%}.ant-col-xl-offset-21{margin-left:87.5%}.ant-col-xl-order-21{order:21}.ant-col-xl-20{display:block;flex:0 0 83.33333333%;max-width:83.33333333%}.ant-col-xl-push-20{left:83.33333333%}.ant-col-xl-pull-20{right:83.33333333%}.ant-col-xl-offset-20{margin-left:83.33333333%}.ant-col-xl-order-20{order:20}.ant-col-xl-19{display:block;flex:0 0 79.16666667%;max-width:79.16666667%}.ant-col-xl-push-19{left:79.16666667%}.ant-col-xl-pull-19{right:79.16666667%}.ant-col-xl-offset-19{margin-left:79.16666667%}.ant-col-xl-order-19{order:19}.ant-col-xl-18{display:block;flex:0 0 75%;max-width:75%}.ant-col-xl-push-18{left:75%}.ant-col-xl-pull-18{right:75%}.ant-col-xl-offset-18{margin-left:75%}.ant-col-xl-order-18{order:18}.ant-col-xl-17{display:block;flex:0 0 70.83333333%;max-width:70.83333333%}.ant-col-xl-push-17{left:70.83333333%}.ant-col-xl-pull-17{right:70.83333333%}.ant-col-xl-offset-17{margin-left:70.83333333%}.ant-col-xl-order-17{order:17}.ant-col-xl-16{display:block;flex:0 0 66.66666667%;max-width:66.66666667%}.ant-col-xl-push-16{left:66.66666667%}.ant-col-xl-pull-16{right:66.66666667%}.ant-col-xl-offset-16{margin-left:66.66666667%}.ant-col-xl-order-16{order:16}.ant-col-xl-15{display:block;flex:0 0 62.5%;max-width:62.5%}.ant-col-xl-push-15{left:62.5%}.ant-col-xl-pull-15{right:62.5%}.ant-col-xl-offset-15{margin-left:62.5%}.ant-col-xl-order-15{order:15}.ant-col-xl-14{display:block;flex:0 0 58.33333333%;max-width:58.33333333%}.ant-col-xl-push-14{left:58.33333333%}.ant-col-xl-pull-14{right:58.33333333%}.ant-col-xl-offset-14{margin-left:58.33333333%}.ant-col-xl-order-14{order:14}.ant-col-xl-13{display:block;flex:0 0 54.16666667%;max-width:54.16666667%}.ant-col-xl-push-13{left:54.16666667%}.ant-col-xl-pull-13{right:54.16666667%}.ant-col-xl-offset-13{margin-left:54.16666667%}.ant-col-xl-order-13{order:13}.ant-col-xl-12{display:block;flex:0 0 50%;max-width:50%}.ant-col-xl-push-12{left:50%}.ant-col-xl-pull-12{right:50%}.ant-col-xl-offset-12{margin-left:50%}.ant-col-xl-order-12{order:12}.ant-col-xl-11{display:block;flex:0 0 45.83333333%;max-width:45.83333333%}.ant-col-xl-push-11{left:45.83333333%}.ant-col-xl-pull-11{right:45.83333333%}.ant-col-xl-offset-11{margin-left:45.83333333%}.ant-col-xl-order-11{order:11}.ant-col-xl-10{display:block;flex:0 0 41.66666667%;max-width:41.66666667%}.ant-col-xl-push-10{left:41.66666667%}.ant-col-xl-pull-10{right:41.66666667%}.ant-col-xl-offset-10{margin-left:41.66666667%}.ant-col-xl-order-10{order:10}.ant-col-xl-9{display:block;flex:0 0 37.5%;max-width:37.5%}.ant-col-xl-push-9{left:37.5%}.ant-col-xl-pull-9{right:37.5%}.ant-col-xl-offset-9{margin-left:37.5%}.ant-col-xl-order-9{order:9}.ant-col-xl-8{display:block;flex:0 0 33.33333333%;max-width:33.33333333%}.ant-col-xl-push-8{left:33.33333333%}.ant-col-xl-pull-8{right:33.33333333%}.ant-col-xl-offset-8{margin-left:33.33333333%}.ant-col-xl-order-8{order:8}.ant-col-xl-7{display:block;flex:0 0 29.16666667%;max-width:29.16666667%}.ant-col-xl-push-7{left:29.16666667%}.ant-col-xl-pull-7{right:29.16666667%}.ant-col-xl-offset-7{margin-left:29.16666667%}.ant-col-xl-order-7{order:7}.ant-col-xl-6{display:block;flex:0 0 25%;max-width:25%}.ant-col-xl-push-6{left:25%}.ant-col-xl-pull-6{right:25%}.ant-col-xl-offset-6{margin-left:25%}.ant-col-xl-order-6{order:6}.ant-col-xl-5{display:block;flex:0 0 20.83333333%;max-width:20.83333333%}.ant-col-xl-push-5{left:20.83333333%}.ant-col-xl-pull-5{right:20.83333333%}.ant-col-xl-offset-5{margin-left:20.83333333%}.ant-col-xl-order-5{order:5}.ant-col-xl-4{display:block;flex:0 0 16.66666667%;max-width:16.66666667%}.ant-col-xl-push-4{left:16.66666667%}.ant-col-xl-pull-4{right:16.66666667%}.ant-col-xl-offset-4{margin-left:16.66666667%}.ant-col-xl-order-4{order:4}.ant-col-xl-3{display:block;flex:0 0 12.5%;max-width:12.5%}.ant-col-xl-push-3{left:12.5%}.ant-col-xl-pull-3{right:12.5%}.ant-col-xl-offset-3{margin-left:12.5%}.ant-col-xl-order-3{order:3}.ant-col-xl-2{display:block;flex:0 0 8.33333333%;max-width:8.33333333%}.ant-col-xl-push-2{left:8.33333333%}.ant-col-xl-pull-2{right:8.33333333%}.ant-col-xl-offset-2{margin-left:8.33333333%}.ant-col-xl-order-2{order:2}.ant-col-xl-1{display:block;flex:0 0 4.16666667%;max-width:4.16666667%}.ant-col-xl-push-1{left:4.16666667%}.ant-col-xl-pull-1{right:4.16666667%}.ant-col-xl-offset-1{margin-left:4.16666667%}.ant-col-xl-order-1{order:1}.ant-col-xl-0{display:none}.ant-col-push-0{left:auto}.ant-col-pull-0{right:auto}.ant-col-xl-push-0{left:auto}.ant-col-xl-pull-0{right:auto}.ant-col-xl-offset-0{margin-left:0}.ant-col-xl-order-0{order:0}.ant-col-push-0.ant-col-rtl{right:auto}.ant-col-pull-0.ant-col-rtl{left:auto}.ant-col-xl-push-0.ant-col-rtl{right:auto}.ant-col-xl-pull-0.ant-col-rtl{left:auto}.ant-col-xl-offset-0.ant-col-rtl{margin-right:0}.ant-col-xl-push-1.ant-col-rtl{left:auto;right:4.16666667%}.ant-col-xl-pull-1.ant-col-rtl{left:4.16666667%;right:auto}.ant-col-xl-offset-1.ant-col-rtl{margin-left:0;margin-right:4.16666667%}.ant-col-xl-push-2.ant-col-rtl{left:auto;right:8.33333333%}.ant-col-xl-pull-2.ant-col-rtl{left:8.33333333%;right:auto}.ant-col-xl-offset-2.ant-col-rtl{margin-left:0;margin-right:8.33333333%}.ant-col-xl-push-3.ant-col-rtl{left:auto;right:12.5%}.ant-col-xl-pull-3.ant-col-rtl{left:12.5%;right:auto}.ant-col-xl-offset-3.ant-col-rtl{margin-left:0;margin-right:12.5%}.ant-col-xl-push-4.ant-col-rtl{left:auto;right:16.66666667%}.ant-col-xl-pull-4.ant-col-rtl{left:16.66666667%;right:auto}.ant-col-xl-offset-4.ant-col-rtl{margin-left:0;margin-right:16.66666667%}.ant-col-xl-push-5.ant-col-rtl{left:auto;right:20.83333333%}.ant-col-xl-pull-5.ant-col-rtl{left:20.83333333%;right:auto}.ant-col-xl-offset-5.ant-col-rtl{margin-left:0;margin-right:20.83333333%}.ant-col-xl-push-6.ant-col-rtl{left:auto;right:25%}.ant-col-xl-pull-6.ant-col-rtl{left:25%;right:auto}.ant-col-xl-offset-6.ant-col-rtl{margin-left:0;margin-right:25%}.ant-col-xl-push-7.ant-col-rtl{left:auto;right:29.16666667%}.ant-col-xl-pull-7.ant-col-rtl{left:29.16666667%;right:auto}.ant-col-xl-offset-7.ant-col-rtl{margin-left:0;margin-right:29.16666667%}.ant-col-xl-push-8.ant-col-rtl{left:auto;right:33.33333333%}.ant-col-xl-pull-8.ant-col-rtl{left:33.33333333%;right:auto}.ant-col-xl-offset-8.ant-col-rtl{margin-left:0;margin-right:33.33333333%}.ant-col-xl-push-9.ant-col-rtl{left:auto;right:37.5%}.ant-col-xl-pull-9.ant-col-rtl{left:37.5%;right:auto}.ant-col-xl-offset-9.ant-col-rtl{margin-left:0;margin-right:37.5%}.ant-col-xl-push-10.ant-col-rtl{left:auto;right:41.66666667%}.ant-col-xl-pull-10.ant-col-rtl{left:41.66666667%;right:auto}.ant-col-xl-offset-10.ant-col-rtl{margin-left:0;margin-right:41.66666667%}.ant-col-xl-push-11.ant-col-rtl{left:auto;right:45.83333333%}.ant-col-xl-pull-11.ant-col-rtl{left:45.83333333%;right:auto}.ant-col-xl-offset-11.ant-col-rtl{margin-left:0;margin-right:45.83333333%}.ant-col-xl-push-12.ant-col-rtl{left:auto;right:50%}.ant-col-xl-pull-12.ant-col-rtl{left:50%;right:auto}.ant-col-xl-offset-12.ant-col-rtl{margin-left:0;margin-right:50%}.ant-col-xl-push-13.ant-col-rtl{left:auto;right:54.16666667%}.ant-col-xl-pull-13.ant-col-rtl{left:54.16666667%;right:auto}.ant-col-xl-offset-13.ant-col-rtl{margin-left:0;margin-right:54.16666667%}.ant-col-xl-push-14.ant-col-rtl{left:auto;right:58.33333333%}.ant-col-xl-pull-14.ant-col-rtl{left:58.33333333%;right:auto}.ant-col-xl-offset-14.ant-col-rtl{margin-left:0;margin-right:58.33333333%}.ant-col-xl-push-15.ant-col-rtl{left:auto;right:62.5%}.ant-col-xl-pull-15.ant-col-rtl{left:62.5%;right:auto}.ant-col-xl-offset-15.ant-col-rtl{margin-left:0;margin-right:62.5%}.ant-col-xl-push-16.ant-col-rtl{left:auto;right:66.66666667%}.ant-col-xl-pull-16.ant-col-rtl{left:66.66666667%;right:auto}.ant-col-xl-offset-16.ant-col-rtl{margin-left:0;margin-right:66.66666667%}.ant-col-xl-push-17.ant-col-rtl{left:auto;right:70.83333333%}.ant-col-xl-pull-17.ant-col-rtl{left:70.83333333%;right:auto}.ant-col-xl-offset-17.ant-col-rtl{margin-left:0;margin-right:70.83333333%}.ant-col-xl-push-18.ant-col-rtl{left:auto;right:75%}.ant-col-xl-pull-18.ant-col-rtl{left:75%;right:auto}.ant-col-xl-offset-18.ant-col-rtl{margin-left:0;margin-right:75%}.ant-col-xl-push-19.ant-col-rtl{left:auto;right:79.16666667%}.ant-col-xl-pull-19.ant-col-rtl{left:79.16666667%;right:auto}.ant-col-xl-offset-19.ant-col-rtl{margin-left:0;margin-right:79.16666667%}.ant-col-xl-push-20.ant-col-rtl{left:auto;right:83.33333333%}.ant-col-xl-pull-20.ant-col-rtl{left:83.33333333%;right:auto}.ant-col-xl-offset-20.ant-col-rtl{margin-left:0;margin-right:83.33333333%}.ant-col-xl-push-21.ant-col-rtl{left:auto;right:87.5%}.ant-col-xl-pull-21.ant-col-rtl{left:87.5%;right:auto}.ant-col-xl-offset-21.ant-col-rtl{margin-left:0;margin-right:87.5%}.ant-col-xl-push-22.ant-col-rtl{left:auto;right:91.66666667%}.ant-col-xl-pull-22.ant-col-rtl{left:91.66666667%;right:auto}.ant-col-xl-offset-22.ant-col-rtl{margin-left:0;margin-right:91.66666667%}.ant-col-xl-push-23.ant-col-rtl{left:auto;right:95.83333333%}.ant-col-xl-pull-23.ant-col-rtl{left:95.83333333%;right:auto}.ant-col-xl-offset-23.ant-col-rtl{margin-left:0;margin-right:95.83333333%}.ant-col-xl-push-24.ant-col-rtl{left:auto;right:100%}.ant-col-xl-pull-24.ant-col-rtl{left:100%;right:auto}.ant-col-xl-offset-24.ant-col-rtl{margin-left:0;margin-right:100%}}@media (min-width:1600px){.ant-col-xxl-24{display:block;flex:0 0 100%;max-width:100%}.ant-col-xxl-push-24{left:100%}.ant-col-xxl-pull-24{right:100%}.ant-col-xxl-offset-24{margin-left:100%}.ant-col-xxl-order-24{order:24}.ant-col-xxl-23{display:block;flex:0 0 95.83333333%;max-width:95.83333333%}.ant-col-xxl-push-23{left:95.83333333%}.ant-col-xxl-pull-23{right:95.83333333%}.ant-col-xxl-offset-23{margin-left:95.83333333%}.ant-col-xxl-order-23{order:23}.ant-col-xxl-22{display:block;flex:0 0 91.66666667%;max-width:91.66666667%}.ant-col-xxl-push-22{left:91.66666667%}.ant-col-xxl-pull-22{right:91.66666667%}.ant-col-xxl-offset-22{margin-left:91.66666667%}.ant-col-xxl-order-22{order:22}.ant-col-xxl-21{display:block;flex:0 0 87.5%;max-width:87.5%}.ant-col-xxl-push-21{left:87.5%}.ant-col-xxl-pull-21{right:87.5%}.ant-col-xxl-offset-21{margin-left:87.5%}.ant-col-xxl-order-21{order:21}.ant-col-xxl-20{display:block;flex:0 0 83.33333333%;max-width:83.33333333%}.ant-col-xxl-push-20{left:83.33333333%}.ant-col-xxl-pull-20{right:83.33333333%}.ant-col-xxl-offset-20{margin-left:83.33333333%}.ant-col-xxl-order-20{order:20}.ant-col-xxl-19{display:block;flex:0 0 79.16666667%;max-width:79.16666667%}.ant-col-xxl-push-19{left:79.16666667%}.ant-col-xxl-pull-19{right:79.16666667%}.ant-col-xxl-offset-19{margin-left:79.16666667%}.ant-col-xxl-order-19{order:19}.ant-col-xxl-18{display:block;flex:0 0 75%;max-width:75%}.ant-col-xxl-push-18{left:75%}.ant-col-xxl-pull-18{right:75%}.ant-col-xxl-offset-18{margin-left:75%}.ant-col-xxl-order-18{order:18}.ant-col-xxl-17{display:block;flex:0 0 70.83333333%;max-width:70.83333333%}.ant-col-xxl-push-17{left:70.83333333%}.ant-col-xxl-pull-17{right:70.83333333%}.ant-col-xxl-offset-17{margin-left:70.83333333%}.ant-col-xxl-order-17{order:17}.ant-col-xxl-16{display:block;flex:0 0 66.66666667%;max-width:66.66666667%}.ant-col-xxl-push-16{left:66.66666667%}.ant-col-xxl-pull-16{right:66.66666667%}.ant-col-xxl-offset-16{margin-left:66.66666667%}.ant-col-xxl-order-16{order:16}.ant-col-xxl-15{display:block;flex:0 0 62.5%;max-width:62.5%}.ant-col-xxl-push-15{left:62.5%}.ant-col-xxl-pull-15{right:62.5%}.ant-col-xxl-offset-15{margin-left:62.5%}.ant-col-xxl-order-15{order:15}.ant-col-xxl-14{display:block;flex:0 0 58.33333333%;max-width:58.33333333%}.ant-col-xxl-push-14{left:58.33333333%}.ant-col-xxl-pull-14{right:58.33333333%}.ant-col-xxl-offset-14{margin-left:58.33333333%}.ant-col-xxl-order-14{order:14}.ant-col-xxl-13{display:block;flex:0 0 54.16666667%;max-width:54.16666667%}.ant-col-xxl-push-13{left:54.16666667%}.ant-col-xxl-pull-13{right:54.16666667%}.ant-col-xxl-offset-13{margin-left:54.16666667%}.ant-col-xxl-order-13{order:13}.ant-col-xxl-12{display:block;flex:0 0 50%;max-width:50%}.ant-col-xxl-push-12{left:50%}.ant-col-xxl-pull-12{right:50%}.ant-col-xxl-offset-12{margin-left:50%}.ant-col-xxl-order-12{order:12}.ant-col-xxl-11{display:block;flex:0 0 45.83333333%;max-width:45.83333333%}.ant-col-xxl-push-11{left:45.83333333%}.ant-col-xxl-pull-11{right:45.83333333%}.ant-col-xxl-offset-11{margin-left:45.83333333%}.ant-col-xxl-order-11{order:11}.ant-col-xxl-10{display:block;flex:0 0 41.66666667%;max-width:41.66666667%}.ant-col-xxl-push-10{left:41.66666667%}.ant-col-xxl-pull-10{right:41.66666667%}.ant-col-xxl-offset-10{margin-left:41.66666667%}.ant-col-xxl-order-10{order:10}.ant-col-xxl-9{display:block;flex:0 0 37.5%;max-width:37.5%}.ant-col-xxl-push-9{left:37.5%}.ant-col-xxl-pull-9{right:37.5%}.ant-col-xxl-offset-9{margin-left:37.5%}.ant-col-xxl-order-9{order:9}.ant-col-xxl-8{display:block;flex:0 0 33.33333333%;max-width:33.33333333%}.ant-col-xxl-push-8{left:33.33333333%}.ant-col-xxl-pull-8{right:33.33333333%}.ant-col-xxl-offset-8{margin-left:33.33333333%}.ant-col-xxl-order-8{order:8}.ant-col-xxl-7{display:block;flex:0 0 29.16666667%;max-width:29.16666667%}.ant-col-xxl-push-7{left:29.16666667%}.ant-col-xxl-pull-7{right:29.16666667%}.ant-col-xxl-offset-7{margin-left:29.16666667%}.ant-col-xxl-order-7{order:7}.ant-col-xxl-6{display:block;flex:0 0 25%;max-width:25%}.ant-col-xxl-push-6{left:25%}.ant-col-xxl-pull-6{right:25%}.ant-col-xxl-offset-6{margin-left:25%}.ant-col-xxl-order-6{order:6}.ant-col-xxl-5{display:block;flex:0 0 20.83333333%;max-width:20.83333333%}.ant-col-xxl-push-5{left:20.83333333%}.ant-col-xxl-pull-5{right:20.83333333%}.ant-col-xxl-offset-5{margin-left:20.83333333%}.ant-col-xxl-order-5{order:5}.ant-col-xxl-4{display:block;flex:0 0 16.66666667%;max-width:16.66666667%}.ant-col-xxl-push-4{left:16.66666667%}.ant-col-xxl-pull-4{right:16.66666667%}.ant-col-xxl-offset-4{margin-left:16.66666667%}.ant-col-xxl-order-4{order:4}.ant-col-xxl-3{display:block;flex:0 0 12.5%;max-width:12.5%}.ant-col-xxl-push-3{left:12.5%}.ant-col-xxl-pull-3{right:12.5%}.ant-col-xxl-offset-3{margin-left:12.5%}.ant-col-xxl-order-3{order:3}.ant-col-xxl-2{display:block;flex:0 0 8.33333333%;max-width:8.33333333%}.ant-col-xxl-push-2{left:8.33333333%}.ant-col-xxl-pull-2{right:8.33333333%}.ant-col-xxl-offset-2{margin-left:8.33333333%}.ant-col-xxl-order-2{order:2}.ant-col-xxl-1{display:block;flex:0 0 4.16666667%;max-width:4.16666667%}.ant-col-xxl-push-1{left:4.16666667%}.ant-col-xxl-pull-1{right:4.16666667%}.ant-col-xxl-offset-1{margin-left:4.16666667%}.ant-col-xxl-order-1{order:1}.ant-col-xxl-0{display:none}.ant-col-push-0{left:auto}.ant-col-pull-0{right:auto}.ant-col-xxl-push-0{left:auto}.ant-col-xxl-pull-0{right:auto}.ant-col-xxl-offset-0{margin-left:0}.ant-col-xxl-order-0{order:0}.ant-col-push-0.ant-col-rtl{right:auto}.ant-col-pull-0.ant-col-rtl{left:auto}.ant-col-xxl-push-0.ant-col-rtl{right:auto}.ant-col-xxl-pull-0.ant-col-rtl{left:auto}.ant-col-xxl-offset-0.ant-col-rtl{margin-right:0}.ant-col-xxl-push-1.ant-col-rtl{left:auto;right:4.16666667%}.ant-col-xxl-pull-1.ant-col-rtl{left:4.16666667%;right:auto}.ant-col-xxl-offset-1.ant-col-rtl{margin-left:0;margin-right:4.16666667%}.ant-col-xxl-push-2.ant-col-rtl{left:auto;right:8.33333333%}.ant-col-xxl-pull-2.ant-col-rtl{left:8.33333333%;right:auto}.ant-col-xxl-offset-2.ant-col-rtl{margin-left:0;margin-right:8.33333333%}.ant-col-xxl-push-3.ant-col-rtl{left:auto;right:12.5%}.ant-col-xxl-pull-3.ant-col-rtl{left:12.5%;right:auto}.ant-col-xxl-offset-3.ant-col-rtl{margin-left:0;margin-right:12.5%}.ant-col-xxl-push-4.ant-col-rtl{left:auto;right:16.66666667%}.ant-col-xxl-pull-4.ant-col-rtl{left:16.66666667%;right:auto}.ant-col-xxl-offset-4.ant-col-rtl{margin-left:0;margin-right:16.66666667%}.ant-col-xxl-push-5.ant-col-rtl{left:auto;right:20.83333333%}.ant-col-xxl-pull-5.ant-col-rtl{left:20.83333333%;right:auto}.ant-col-xxl-offset-5.ant-col-rtl{margin-left:0;margin-right:20.83333333%}.ant-col-xxl-push-6.ant-col-rtl{left:auto;right:25%}.ant-col-xxl-pull-6.ant-col-rtl{left:25%;right:auto}.ant-col-xxl-offset-6.ant-col-rtl{margin-left:0;margin-right:25%}.ant-col-xxl-push-7.ant-col-rtl{left:auto;right:29.16666667%}.ant-col-xxl-pull-7.ant-col-rtl{left:29.16666667%;right:auto}.ant-col-xxl-offset-7.ant-col-rtl{margin-left:0;margin-right:29.16666667%}.ant-col-xxl-push-8.ant-col-rtl{left:auto;right:33.33333333%}.ant-col-xxl-pull-8.ant-col-rtl{left:33.33333333%;right:auto}.ant-col-xxl-offset-8.ant-col-rtl{margin-left:0;margin-right:33.33333333%}.ant-col-xxl-push-9.ant-col-rtl{left:auto;right:37.5%}.ant-col-xxl-pull-9.ant-col-rtl{left:37.5%;right:auto}.ant-col-xxl-offset-9.ant-col-rtl{margin-left:0;margin-right:37.5%}.ant-col-xxl-push-10.ant-col-rtl{left:auto;right:41.66666667%}.ant-col-xxl-pull-10.ant-col-rtl{left:41.66666667%;right:auto}.ant-col-xxl-offset-10.ant-col-rtl{margin-left:0;margin-right:41.66666667%}.ant-col-xxl-push-11.ant-col-rtl{left:auto;right:45.83333333%}.ant-col-xxl-pull-11.ant-col-rtl{left:45.83333333%;right:auto}.ant-col-xxl-offset-11.ant-col-rtl{margin-left:0;margin-right:45.83333333%}.ant-col-xxl-push-12.ant-col-rtl{left:auto;right:50%}.ant-col-xxl-pull-12.ant-col-rtl{left:50%;right:auto}.ant-col-xxl-offset-12.ant-col-rtl{margin-left:0;margin-right:50%}.ant-col-xxl-push-13.ant-col-rtl{left:auto;right:54.16666667%}.ant-col-xxl-pull-13.ant-col-rtl{left:54.16666667%;right:auto}.ant-col-xxl-offset-13.ant-col-rtl{margin-left:0;margin-right:54.16666667%}.ant-col-xxl-push-14.ant-col-rtl{left:auto;right:58.33333333%}.ant-col-xxl-pull-14.ant-col-rtl{left:58.33333333%;right:auto}.ant-col-xxl-offset-14.ant-col-rtl{margin-left:0;margin-right:58.33333333%}.ant-col-xxl-push-15.ant-col-rtl{left:auto;right:62.5%}.ant-col-xxl-pull-15.ant-col-rtl{left:62.5%;right:auto}.ant-col-xxl-offset-15.ant-col-rtl{margin-left:0;margin-right:62.5%}.ant-col-xxl-push-16.ant-col-rtl{left:auto;right:66.66666667%}.ant-col-xxl-pull-16.ant-col-rtl{left:66.66666667%;right:auto}.ant-col-xxl-offset-16.ant-col-rtl{margin-left:0;margin-right:66.66666667%}.ant-col-xxl-push-17.ant-col-rtl{left:auto;right:70.83333333%}.ant-col-xxl-pull-17.ant-col-rtl{left:70.83333333%;right:auto}.ant-col-xxl-offset-17.ant-col-rtl{margin-left:0;margin-right:70.83333333%}.ant-col-xxl-push-18.ant-col-rtl{left:auto;right:75%}.ant-col-xxl-pull-18.ant-col-rtl{left:75%;right:auto}.ant-col-xxl-offset-18.ant-col-rtl{margin-left:0;margin-right:75%}.ant-col-xxl-push-19.ant-col-rtl{left:auto;right:79.16666667%}.ant-col-xxl-pull-19.ant-col-rtl{left:79.16666667%;right:auto}.ant-col-xxl-offset-19.ant-col-rtl{margin-left:0;margin-right:79.16666667%}.ant-col-xxl-push-20.ant-col-rtl{left:auto;right:83.33333333%}.ant-col-xxl-pull-20.ant-col-rtl{left:83.33333333%;right:auto}.ant-col-xxl-offset-20.ant-col-rtl{margin-left:0;margin-right:83.33333333%}.ant-col-xxl-push-21.ant-col-rtl{left:auto;right:87.5%}.ant-col-xxl-pull-21.ant-col-rtl{left:87.5%;right:auto}.ant-col-xxl-offset-21.ant-col-rtl{margin-left:0;margin-right:87.5%}.ant-col-xxl-push-22.ant-col-rtl{left:auto;right:91.66666667%}.ant-col-xxl-pull-22.ant-col-rtl{left:91.66666667%;right:auto}.ant-col-xxl-offset-22.ant-col-rtl{margin-left:0;margin-right:91.66666667%}.ant-col-xxl-push-23.ant-col-rtl{left:auto;right:95.83333333%}.ant-col-xxl-pull-23.ant-col-rtl{left:95.83333333%;right:auto}.ant-col-xxl-offset-23.ant-col-rtl{margin-left:0;margin-right:95.83333333%}.ant-col-xxl-push-24.ant-col-rtl{left:auto;right:100%}.ant-col-xxl-pull-24.ant-col-rtl{left:100%;right:auto}.ant-col-xxl-offset-24.ant-col-rtl{margin-left:0;margin-right:100%}}@media (min-width:2000px){.ant-col-xxxl-24{display:block;flex:0 0 100%;max-width:100%}.ant-col-xxxl-push-24{left:100%}.ant-col-xxxl-pull-24{right:100%}.ant-col-xxxl-offset-24{margin-left:100%}.ant-col-xxxl-order-24{order:24}.ant-col-xxxl-23{display:block;flex:0 0 95.83333333%;max-width:95.83333333%}.ant-col-xxxl-push-23{left:95.83333333%}.ant-col-xxxl-pull-23{right:95.83333333%}.ant-col-xxxl-offset-23{margin-left:95.83333333%}.ant-col-xxxl-order-23{order:23}.ant-col-xxxl-22{display:block;flex:0 0 91.66666667%;max-width:91.66666667%}.ant-col-xxxl-push-22{left:91.66666667%}.ant-col-xxxl-pull-22{right:91.66666667%}.ant-col-xxxl-offset-22{margin-left:91.66666667%}.ant-col-xxxl-order-22{order:22}.ant-col-xxxl-21{display:block;flex:0 0 87.5%;max-width:87.5%}.ant-col-xxxl-push-21{left:87.5%}.ant-col-xxxl-pull-21{right:87.5%}.ant-col-xxxl-offset-21{margin-left:87.5%}.ant-col-xxxl-order-21{order:21}.ant-col-xxxl-20{display:block;flex:0 0 83.33333333%;max-width:83.33333333%}.ant-col-xxxl-push-20{left:83.33333333%}.ant-col-xxxl-pull-20{right:83.33333333%}.ant-col-xxxl-offset-20{margin-left:83.33333333%}.ant-col-xxxl-order-20{order:20}.ant-col-xxxl-19{display:block;flex:0 0 79.16666667%;max-width:79.16666667%}.ant-col-xxxl-push-19{left:79.16666667%}.ant-col-xxxl-pull-19{right:79.16666667%}.ant-col-xxxl-offset-19{margin-left:79.16666667%}.ant-col-xxxl-order-19{order:19}.ant-col-xxxl-18{display:block;flex:0 0 75%;max-width:75%}.ant-col-xxxl-push-18{left:75%}.ant-col-xxxl-pull-18{right:75%}.ant-col-xxxl-offset-18{margin-left:75%}.ant-col-xxxl-order-18{order:18}.ant-col-xxxl-17{display:block;flex:0 0 70.83333333%;max-width:70.83333333%}.ant-col-xxxl-push-17{left:70.83333333%}.ant-col-xxxl-pull-17{right:70.83333333%}.ant-col-xxxl-offset-17{margin-left:70.83333333%}.ant-col-xxxl-order-17{order:17}.ant-col-xxxl-16{display:block;flex:0 0 66.66666667%;max-width:66.66666667%}.ant-col-xxxl-push-16{left:66.66666667%}.ant-col-xxxl-pull-16{right:66.66666667%}.ant-col-xxxl-offset-16{margin-left:66.66666667%}.ant-col-xxxl-order-16{order:16}.ant-col-xxxl-15{display:block;flex:0 0 62.5%;max-width:62.5%}.ant-col-xxxl-push-15{left:62.5%}.ant-col-xxxl-pull-15{right:62.5%}.ant-col-xxxl-offset-15{margin-left:62.5%}.ant-col-xxxl-order-15{order:15}.ant-col-xxxl-14{display:block;flex:0 0 58.33333333%;max-width:58.33333333%}.ant-col-xxxl-push-14{left:58.33333333%}.ant-col-xxxl-pull-14{right:58.33333333%}.ant-col-xxxl-offset-14{margin-left:58.33333333%}.ant-col-xxxl-order-14{order:14}.ant-col-xxxl-13{display:block;flex:0 0 54.16666667%;max-width:54.16666667%}.ant-col-xxxl-push-13{left:54.16666667%}.ant-col-xxxl-pull-13{right:54.16666667%}.ant-col-xxxl-offset-13{margin-left:54.16666667%}.ant-col-xxxl-order-13{order:13}.ant-col-xxxl-12{display:block;flex:0 0 50%;max-width:50%}.ant-col-xxxl-push-12{left:50%}.ant-col-xxxl-pull-12{right:50%}.ant-col-xxxl-offset-12{margin-left:50%}.ant-col-xxxl-order-12{order:12}.ant-col-xxxl-11{display:block;flex:0 0 45.83333333%;max-width:45.83333333%}.ant-col-xxxl-push-11{left:45.83333333%}.ant-col-xxxl-pull-11{right:45.83333333%}.ant-col-xxxl-offset-11{margin-left:45.83333333%}.ant-col-xxxl-order-11{order:11}.ant-col-xxxl-10{display:block;flex:0 0 41.66666667%;max-width:41.66666667%}.ant-col-xxxl-push-10{left:41.66666667%}.ant-col-xxxl-pull-10{right:41.66666667%}.ant-col-xxxl-offset-10{margin-left:41.66666667%}.ant-col-xxxl-order-10{order:10}.ant-col-xxxl-9{display:block;flex:0 0 37.5%;max-width:37.5%}.ant-col-xxxl-push-9{left:37.5%}.ant-col-xxxl-pull-9{right:37.5%}.ant-col-xxxl-offset-9{margin-left:37.5%}.ant-col-xxxl-order-9{order:9}.ant-col-xxxl-8{display:block;flex:0 0 33.33333333%;max-width:33.33333333%}.ant-col-xxxl-push-8{left:33.33333333%}.ant-col-xxxl-pull-8{right:33.33333333%}.ant-col-xxxl-offset-8{margin-left:33.33333333%}.ant-col-xxxl-order-8{order:8}.ant-col-xxxl-7{display:block;flex:0 0 29.16666667%;max-width:29.16666667%}.ant-col-xxxl-push-7{left:29.16666667%}.ant-col-xxxl-pull-7{right:29.16666667%}.ant-col-xxxl-offset-7{margin-left:29.16666667%}.ant-col-xxxl-order-7{order:7}.ant-col-xxxl-6{display:block;flex:0 0 25%;max-width:25%}.ant-col-xxxl-push-6{left:25%}.ant-col-xxxl-pull-6{right:25%}.ant-col-xxxl-offset-6{margin-left:25%}.ant-col-xxxl-order-6{order:6}.ant-col-xxxl-5{display:block;flex:0 0 20.83333333%;max-width:20.83333333%}.ant-col-xxxl-push-5{left:20.83333333%}.ant-col-xxxl-pull-5{right:20.83333333%}.ant-col-xxxl-offset-5{margin-left:20.83333333%}.ant-col-xxxl-order-5{order:5}.ant-col-xxxl-4{display:block;flex:0 0 16.66666667%;max-width:16.66666667%}.ant-col-xxxl-push-4{left:16.66666667%}.ant-col-xxxl-pull-4{right:16.66666667%}.ant-col-xxxl-offset-4{margin-left:16.66666667%}.ant-col-xxxl-order-4{order:4}.ant-col-xxxl-3{display:block;flex:0 0 12.5%;max-width:12.5%}.ant-col-xxxl-push-3{left:12.5%}.ant-col-xxxl-pull-3{right:12.5%}.ant-col-xxxl-offset-3{margin-left:12.5%}.ant-col-xxxl-order-3{order:3}.ant-col-xxxl-2{display:block;flex:0 0 8.33333333%;max-width:8.33333333%}.ant-col-xxxl-push-2{left:8.33333333%}.ant-col-xxxl-pull-2{right:8.33333333%}.ant-col-xxxl-offset-2{margin-left:8.33333333%}.ant-col-xxxl-order-2{order:2}.ant-col-xxxl-1{display:block;flex:0 0 4.16666667%;max-width:4.16666667%}.ant-col-xxxl-push-1{left:4.16666667%}.ant-col-xxxl-pull-1{right:4.16666667%}.ant-col-xxxl-offset-1{margin-left:4.16666667%}.ant-col-xxxl-order-1{order:1}.ant-col-xxxl-0{display:none}.ant-col-push-0{left:auto}.ant-col-pull-0{right:auto}.ant-col-xxxl-push-0{left:auto}.ant-col-xxxl-pull-0{right:auto}.ant-col-xxxl-offset-0{margin-left:0}.ant-col-xxxl-order-0{order:0}.ant-col-push-0.ant-col-rtl{right:auto}.ant-col-pull-0.ant-col-rtl{left:auto}.ant-col-xxxl-push-0.ant-col-rtl{right:auto}.ant-col-xxxl-pull-0.ant-col-rtl{left:auto}.ant-col-xxxl-offset-0.ant-col-rtl{margin-right:0}.ant-col-xxxl-push-1.ant-col-rtl{left:auto;right:4.16666667%}.ant-col-xxxl-pull-1.ant-col-rtl{left:4.16666667%;right:auto}.ant-col-xxxl-offset-1.ant-col-rtl{margin-left:0;margin-right:4.16666667%}.ant-col-xxxl-push-2.ant-col-rtl{left:auto;right:8.33333333%}.ant-col-xxxl-pull-2.ant-col-rtl{left:8.33333333%;right:auto}.ant-col-xxxl-offset-2.ant-col-rtl{margin-left:0;margin-right:8.33333333%}.ant-col-xxxl-push-3.ant-col-rtl{left:auto;right:12.5%}.ant-col-xxxl-pull-3.ant-col-rtl{left:12.5%;right:auto}.ant-col-xxxl-offset-3.ant-col-rtl{margin-left:0;margin-right:12.5%}.ant-col-xxxl-push-4.ant-col-rtl{left:auto;right:16.66666667%}.ant-col-xxxl-pull-4.ant-col-rtl{left:16.66666667%;right:auto}.ant-col-xxxl-offset-4.ant-col-rtl{margin-left:0;margin-right:16.66666667%}.ant-col-xxxl-push-5.ant-col-rtl{left:auto;right:20.83333333%}.ant-col-xxxl-pull-5.ant-col-rtl{left:20.83333333%;right:auto}.ant-col-xxxl-offset-5.ant-col-rtl{margin-left:0;margin-right:20.83333333%}.ant-col-xxxl-push-6.ant-col-rtl{left:auto;right:25%}.ant-col-xxxl-pull-6.ant-col-rtl{left:25%;right:auto}.ant-col-xxxl-offset-6.ant-col-rtl{margin-left:0;margin-right:25%}.ant-col-xxxl-push-7.ant-col-rtl{left:auto;right:29.16666667%}.ant-col-xxxl-pull-7.ant-col-rtl{left:29.16666667%;right:auto}.ant-col-xxxl-offset-7.ant-col-rtl{margin-left:0;margin-right:29.16666667%}.ant-col-xxxl-push-8.ant-col-rtl{left:auto;right:33.33333333%}.ant-col-xxxl-pull-8.ant-col-rtl{left:33.33333333%;right:auto}.ant-col-xxxl-offset-8.ant-col-rtl{margin-left:0;margin-right:33.33333333%}.ant-col-xxxl-push-9.ant-col-rtl{left:auto;right:37.5%}.ant-col-xxxl-pull-9.ant-col-rtl{left:37.5%;right:auto}.ant-col-xxxl-offset-9.ant-col-rtl{margin-left:0;margin-right:37.5%}.ant-col-xxxl-push-10.ant-col-rtl{left:auto;right:41.66666667%}.ant-col-xxxl-pull-10.ant-col-rtl{left:41.66666667%;right:auto}.ant-col-xxxl-offset-10.ant-col-rtl{margin-left:0;margin-right:41.66666667%}.ant-col-xxxl-push-11.ant-col-rtl{left:auto;right:45.83333333%}.ant-col-xxxl-pull-11.ant-col-rtl{left:45.83333333%;right:auto}.ant-col-xxxl-offset-11.ant-col-rtl{margin-left:0;margin-right:45.83333333%}.ant-col-xxxl-push-12.ant-col-rtl{left:auto;right:50%}.ant-col-xxxl-pull-12.ant-col-rtl{left:50%;right:auto}.ant-col-xxxl-offset-12.ant-col-rtl{margin-left:0;margin-right:50%}.ant-col-xxxl-push-13.ant-col-rtl{left:auto;right:54.16666667%}.ant-col-xxxl-pull-13.ant-col-rtl{left:54.16666667%;right:auto}.ant-col-xxxl-offset-13.ant-col-rtl{margin-left:0;margin-right:54.16666667%}.ant-col-xxxl-push-14.ant-col-rtl{left:auto;right:58.33333333%}.ant-col-xxxl-pull-14.ant-col-rtl{left:58.33333333%;right:auto}.ant-col-xxxl-offset-14.ant-col-rtl{margin-left:0;margin-right:58.33333333%}.ant-col-xxxl-push-15.ant-col-rtl{left:auto;right:62.5%}.ant-col-xxxl-pull-15.ant-col-rtl{left:62.5%;right:auto}.ant-col-xxxl-offset-15.ant-col-rtl{margin-left:0;margin-right:62.5%}.ant-col-xxxl-push-16.ant-col-rtl{left:auto;right:66.66666667%}.ant-col-xxxl-pull-16.ant-col-rtl{left:66.66666667%;right:auto}.ant-col-xxxl-offset-16.ant-col-rtl{margin-left:0;margin-right:66.66666667%}.ant-col-xxxl-push-17.ant-col-rtl{left:auto;right:70.83333333%}.ant-col-xxxl-pull-17.ant-col-rtl{left:70.83333333%;right:auto}.ant-col-xxxl-offset-17.ant-col-rtl{margin-left:0;margin-right:70.83333333%}.ant-col-xxxl-push-18.ant-col-rtl{left:auto;right:75%}.ant-col-xxxl-pull-18.ant-col-rtl{left:75%;right:auto}.ant-col-xxxl-offset-18.ant-col-rtl{margin-left:0;margin-right:75%}.ant-col-xxxl-push-19.ant-col-rtl{left:auto;right:79.16666667%}.ant-col-xxxl-pull-19.ant-col-rtl{left:79.16666667%;right:auto}.ant-col-xxxl-offset-19.ant-col-rtl{margin-left:0;margin-right:79.16666667%}.ant-col-xxxl-push-20.ant-col-rtl{left:auto;right:83.33333333%}.ant-col-xxxl-pull-20.ant-col-rtl{left:83.33333333%;right:auto}.ant-col-xxxl-offset-20.ant-col-rtl{margin-left:0;margin-right:83.33333333%}.ant-col-xxxl-push-21.ant-col-rtl{left:auto;right:87.5%}.ant-col-xxxl-pull-21.ant-col-rtl{left:87.5%;right:auto}.ant-col-xxxl-offset-21.ant-col-rtl{margin-left:0;margin-right:87.5%}.ant-col-xxxl-push-22.ant-col-rtl{left:auto;right:91.66666667%}.ant-col-xxxl-pull-22.ant-col-rtl{left:91.66666667%;right:auto}.ant-col-xxxl-offset-22.ant-col-rtl{margin-left:0;margin-right:91.66666667%}.ant-col-xxxl-push-23.ant-col-rtl{left:auto;right:95.83333333%}.ant-col-xxxl-pull-23.ant-col-rtl{left:95.83333333%;right:auto}.ant-col-xxxl-offset-23.ant-col-rtl{margin-left:0;margin-right:95.83333333%}.ant-col-xxxl-push-24.ant-col-rtl{left:auto;right:100%}.ant-col-xxxl-pull-24.ant-col-rtl{left:100%;right:auto}.ant-col-xxxl-offset-24.ant-col-rtl{margin-left:0;margin-right:100%}}.ant-row-rtl{direction:rtl}.ant-carousel{font-feature-settings:"tnum";box-sizing:border-box;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0}.ant-carousel .slick-slider{-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;box-sizing:border-box;display:block;position:relative;touch-action:pan-y}.ant-carousel .slick-list{display:block;margin:0;overflow:hidden;padding:0;position:relative}.ant-carousel .slick-list:focus{outline:none}.ant-carousel .slick-list.dragging{cursor:pointer}.ant-carousel .slick-list .slick-slide{pointer-events:none}.ant-carousel .slick-list .slick-slide input.ant-checkbox-input,.ant-carousel .slick-list .slick-slide input.ant-radio-input{visibility:hidden}.ant-carousel .slick-list .slick-slide.slick-active{pointer-events:auto}.ant-carousel .slick-list .slick-slide.slick-active input.ant-checkbox-input,.ant-carousel .slick-list .slick-slide.slick-active input.ant-radio-input{visibility:visible}.ant-carousel .slick-list .slick-slide>div>div{vertical-align:bottom}.ant-carousel .slick-slider .slick-list,.ant-carousel .slick-slider .slick-track{touch-action:pan-y;transform:translateZ(0)}.ant-carousel .slick-track{display:block;left:0;position:relative;top:0}.ant-carousel .slick-track:after,.ant-carousel .slick-track:before{content:"";display:table}.ant-carousel .slick-track:after{clear:both}.slick-loading .ant-carousel .slick-track{visibility:hidden}.ant-carousel .slick-slide{display:none;float:left;height:100%;min-height:1px}.ant-carousel .slick-slide img{display:block}.ant-carousel .slick-slide.slick-loading img{display:none}.ant-carousel .slick-slide.dragging img{pointer-events:none}.ant-carousel .slick-initialized .slick-slide{display:block}.ant-carousel .slick-loading .slick-slide{visibility:hidden}.ant-carousel .slick-vertical .slick-slide{display:block;height:auto}.ant-carousel .slick-arrow.slick-hidden{display:none}.ant-carousel .slick-next,.ant-carousel .slick-prev{border:0;cursor:pointer;display:block;font-size:0;height:20px;line-height:0;margin-top:-10px;padding:0;position:absolute;top:50%;width:20px}.ant-carousel .slick-next,.ant-carousel .slick-next:focus,.ant-carousel .slick-next:hover,.ant-carousel .slick-prev,.ant-carousel .slick-prev:focus,.ant-carousel .slick-prev:hover{background:transparent;color:transparent;outline:none}.ant-carousel .slick-next:focus:before,.ant-carousel .slick-next:hover:before,.ant-carousel .slick-prev:focus:before,.ant-carousel .slick-prev:hover:before{opacity:1}.ant-carousel .slick-next.slick-disabled:before,.ant-carousel .slick-prev.slick-disabled:before{opacity:.25}.ant-carousel .slick-prev{left:-25px}.ant-carousel .slick-prev:before{content:"\u2190"}.ant-carousel .slick-next{right:-25px}.ant-carousel .slick-next:before{content:"\u2192"}.ant-carousel .slick-dots{bottom:0;display:flex!important;justify-content:center;left:0;list-style:none;margin-left:15%;margin-right:15%;padding-left:0;position:absolute;right:0;z-index:15}.ant-carousel .slick-dots-bottom{bottom:12px}.ant-carousel .slick-dots-top{bottom:auto;top:12px}.ant-carousel .slick-dots li{box-sizing:content-box;display:inline-block;flex:0 1 auto;height:3px;margin:0 3px;padding:0;position:relative;text-align:center;text-indent:-999px;transition:all .5s;vertical-align:top;width:16px}.ant-carousel .slick-dots li button{background:#fff;border:0;border-radius:1px;color:transparent;cursor:pointer;display:block;font-size:0;height:3px;opacity:.3;outline:none;padding:0;transition:all .5s;width:100%}.ant-carousel .slick-dots li button:focus,.ant-carousel .slick-dots li button:hover{opacity:.75}.ant-carousel .slick-dots li.slick-active{width:24px}.ant-carousel .slick-dots li.slick-active button{background:#fff;opacity:1}.ant-carousel .slick-dots li.slick-active:focus,.ant-carousel .slick-dots li.slick-active:hover{opacity:1}.ant-carousel-vertical .slick-dots{bottom:auto;flex-direction:column;height:auto;margin:0;top:50%;transform:translateY(-50%);width:3px}.ant-carousel-vertical .slick-dots-left{left:12px;right:auto}.ant-carousel-vertical .slick-dots-right{left:auto;right:12px}.ant-carousel-vertical .slick-dots li{height:16px;margin:4px 2px;vertical-align:baseline;width:3px}.ant-carousel-vertical .slick-dots li button{height:16px;width:3px}.ant-carousel-vertical .slick-dots li.slick-active,.ant-carousel-vertical .slick-dots li.slick-active button{height:24px;width:3px}.ant-carousel-rtl{direction:rtl}.ant-carousel-rtl .ant-carousel .slick-track{left:auto;right:0}.ant-carousel-rtl .ant-carousel .slick-prev{left:auto;right:-25px}.ant-carousel-rtl .ant-carousel .slick-prev:before{content:"\u2192"}.ant-carousel-rtl .ant-carousel .slick-next{left:-25px;right:auto}.ant-carousel-rtl .ant-carousel .slick-next:before{content:"\u2190"}.ant-carousel-rtl.ant-carousel .slick-dots{flex-direction:row-reverse}.ant-carousel-rtl.ant-carousel-vertical .slick-dots{flex-direction:column}.ant-cascader-checkbox{font-feature-settings:"tnum";box-sizing:border-box;color:rgba(0,0,0,.85);cursor:pointer;font-size:14px;font-variant:tabular-nums;line-height:1.5715;line-height:1;list-style:none;margin:0;outline:none;padding:0;position:relative;top:.2em;white-space:nowrap}.ant-cascader-checkbox-input:focus+.ant-cascader-checkbox-inner,.ant-cascader-checkbox-wrapper:hover .ant-cascader-checkbox-inner,.ant-cascader-checkbox:hover .ant-cascader-checkbox-inner{border-color:var(--ant-primary-color)}.ant-cascader-checkbox-checked:after{-webkit-animation:antCheckboxEffect .36s ease-in-out;animation:antCheckboxEffect .36s ease-in-out;-webkit-animation-fill-mode:backwards;animation-fill-mode:backwards;border:1px solid var(--ant-primary-color);border-radius:2px;content:"";height:100%;left:0;position:absolute;top:0;visibility:hidden;width:100%}.ant-cascader-checkbox-wrapper:hover .ant-cascader-checkbox:after,.ant-cascader-checkbox:hover:after{visibility:visible}.ant-cascader-checkbox-inner{background-color:#fff;border:1px solid #d9d9d9;border-collapse:separate;border-radius:2px;direction:ltr;display:block;height:16px;left:0;position:relative;top:0;transition:all .3s;width:16px}.ant-cascader-checkbox-inner:after{border:2px solid #fff;border-left:0;border-top:0;content:" ";display:table;height:9.14285714px;left:21.5%;opacity:0;position:absolute;top:50%;transform:rotate(45deg) scale(0) translate(-50%,-50%);transition:all .1s cubic-bezier(.71,-.46,.88,.6),opacity .1s;width:5.71428571px}.ant-cascader-checkbox-input{bottom:0;cursor:pointer;height:100%;left:0;opacity:0;position:absolute;right:0;top:0;width:100%;z-index:1}.ant-cascader-checkbox-checked .ant-cascader-checkbox-inner:after{border:2px solid #fff;border-left:0;border-top:0;content:" ";display:table;opacity:1;position:absolute;transform:rotate(45deg) scale(1) translate(-50%,-50%);transition:all .2s cubic-bezier(.12,.4,.29,1.46) .1s}.ant-cascader-checkbox-checked .ant-cascader-checkbox-inner{background-color:var(--ant-primary-color);border-color:var(--ant-primary-color)}.ant-cascader-checkbox-disabled{cursor:not-allowed}.ant-cascader-checkbox-disabled.ant-cascader-checkbox-checked .ant-cascader-checkbox-inner:after{-webkit-animation-name:none;animation-name:none;border-color:rgba(0,0,0,.25)}.ant-cascader-checkbox-disabled .ant-cascader-checkbox-input{cursor:not-allowed;pointer-events:none}.ant-cascader-checkbox-disabled .ant-cascader-checkbox-inner{background-color:#f5f5f5;border-color:#d9d9d9!important}.ant-cascader-checkbox-disabled .ant-cascader-checkbox-inner:after{-webkit-animation-name:none;animation-name:none;border-collapse:separate;border-color:#f5f5f5}.ant-cascader-checkbox-disabled+span{color:rgba(0,0,0,.25);cursor:not-allowed}.ant-cascader-checkbox-disabled:hover:after,.ant-cascader-checkbox-wrapper:hover .ant-cascader-checkbox-disabled:after{visibility:hidden}.ant-cascader-checkbox-wrapper{font-feature-settings:"tnum";align-items:baseline;box-sizing:border-box;color:rgba(0,0,0,.85);cursor:pointer;display:inline-flex;font-size:14px;font-variant:tabular-nums;line-height:1.5715;line-height:unset;list-style:none;margin:0;padding:0}.ant-cascader-checkbox-wrapper:after{content:"\\a0";display:inline-block;overflow:hidden;width:0}.ant-cascader-checkbox-wrapper.ant-cascader-checkbox-wrapper-disabled{cursor:not-allowed}.ant-cascader-checkbox-wrapper+.ant-cascader-checkbox-wrapper{margin-left:8px}.ant-cascader-checkbox+span{padding-left:8px;padding-right:8px}.ant-cascader-checkbox-group{font-feature-settings:"tnum";box-sizing:border-box;color:rgba(0,0,0,.85);display:inline-block;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0}.ant-cascader-checkbox-group-item{margin-right:8px}.ant-cascader-checkbox-group-item:last-child{margin-right:0}.ant-cascader-checkbox-group-item+.ant-cascader-checkbox-group-item{margin-left:0}.ant-cascader-checkbox-indeterminate .ant-cascader-checkbox-inner{background-color:#fff;border-color:#d9d9d9}.ant-cascader-checkbox-indeterminate .ant-cascader-checkbox-inner:after{background-color:var(--ant-primary-color);border:0;content:" ";height:8px;left:50%;opacity:1;top:50%;transform:translate(-50%,-50%) scale(1);width:8px}.ant-cascader-checkbox-indeterminate.ant-cascader-checkbox-disabled .ant-cascader-checkbox-inner:after{background-color:rgba(0,0,0,.25);border-color:rgba(0,0,0,.25)}.ant-cascader{width:184px}.ant-cascader-checkbox{margin-right:8px;top:0}.ant-cascader-menus{align-items:flex-start;display:flex;flex-wrap:nowrap}.ant-cascader-menus.ant-cascader-menu-empty .ant-cascader-menu{height:auto;width:100%}.ant-cascader-menu{-ms-overflow-style:-ms-autohiding-scrollbar;border-right:1px solid #f0f0f0;height:180px;list-style:none;margin:-4px 0;min-width:111px;overflow:auto;padding:4px 0;vertical-align:top}.ant-cascader-menu-item{align-items:center;cursor:pointer;display:flex;flex-wrap:nowrap;line-height:22px;overflow:hidden;padding:5px 12px;text-overflow:ellipsis;transition:all .3s;white-space:nowrap}.ant-cascader-menu-item:hover{background:#f5f5f5}.ant-cascader-menu-item-disabled{color:rgba(0,0,0,.25);cursor:not-allowed}.ant-cascader-menu-item-disabled:hover{background:transparent}.ant-cascader-menu-empty .ant-cascader-menu-item{color:rgba(0,0,0,.25);cursor:default;pointer-events:none}.ant-cascader-menu-item-active:not(.ant-cascader-menu-item-disabled),.ant-cascader-menu-item-active:not(.ant-cascader-menu-item-disabled):hover{background-color:var(--ant-primary-1);font-weight:600}.ant-cascader-menu-item-content{flex:auto}.ant-cascader-menu-item-expand .ant-cascader-menu-item-expand-icon,.ant-cascader-menu-item-loading-icon{color:rgba(0,0,0,.45);font-size:10px;margin-left:4px}.ant-cascader-menu-item-disabled.ant-cascader-menu-item-expand .ant-cascader-menu-item-expand-icon,.ant-cascader-menu-item-disabled.ant-cascader-menu-item-loading-icon{color:rgba(0,0,0,.25)}.ant-cascader-menu-item-keyword{color:#ff4d4f}.ant-cascader-rtl .ant-cascader-menu-item-expand-icon,.ant-cascader-rtl .ant-cascader-menu-item-loading-icon{margin-left:0;margin-right:4px}.ant-cascader-rtl .ant-cascader-checkbox{margin-left:8px;margin-right:0;top:0}.ant-checkbox{font-feature-settings:"tnum";box-sizing:border-box;color:rgba(0,0,0,.85);cursor:pointer;font-size:14px;font-variant:tabular-nums;line-height:1.5715;line-height:1;list-style:none;margin:0;outline:none;padding:0;position:relative;top:.2em;white-space:nowrap}.ant-checkbox-input:focus+.ant-checkbox-inner,.ant-checkbox-wrapper:hover .ant-checkbox-inner,.ant-checkbox:hover .ant-checkbox-inner{border-color:var(--ant-primary-color)}.ant-checkbox-checked:after{-webkit-animation:antCheckboxEffect .36s ease-in-out;animation:antCheckboxEffect .36s ease-in-out;-webkit-animation-fill-mode:backwards;animation-fill-mode:backwards;border:1px solid var(--ant-primary-color);border-radius:2px;content:"";height:100%;left:0;position:absolute;top:0;visibility:hidden;width:100%}.ant-checkbox-wrapper:hover .ant-checkbox:after,.ant-checkbox:hover:after{visibility:visible}.ant-checkbox-inner{background-color:#fff;border:1px solid #d9d9d9;border-collapse:separate;border-radius:2px;direction:ltr;display:block;height:16px;left:0;position:relative;top:0;transition:all .3s;width:16px}.ant-checkbox-inner:after{border:2px solid #fff;border-left:0;border-top:0;content:" ";display:table;height:9.14285714px;left:21.5%;opacity:0;position:absolute;top:50%;transform:rotate(45deg) scale(0) translate(-50%,-50%);transition:all .1s cubic-bezier(.71,-.46,.88,.6),opacity .1s;width:5.71428571px}.ant-checkbox-input{bottom:0;cursor:pointer;height:100%;left:0;opacity:0;position:absolute;right:0;top:0;width:100%;z-index:1}.ant-checkbox-checked .ant-checkbox-inner:after{border:2px solid #fff;border-left:0;border-top:0;content:" ";display:table;opacity:1;position:absolute;transform:rotate(45deg) scale(1) translate(-50%,-50%);transition:all .2s cubic-bezier(.12,.4,.29,1.46) .1s}.ant-checkbox-checked .ant-checkbox-inner{background-color:var(--ant-primary-color);border-color:var(--ant-primary-color)}.ant-checkbox-disabled{cursor:not-allowed}.ant-checkbox-disabled.ant-checkbox-checked .ant-checkbox-inner:after{-webkit-animation-name:none;animation-name:none;border-color:rgba(0,0,0,.25)}.ant-checkbox-disabled .ant-checkbox-input{cursor:not-allowed;pointer-events:none}.ant-checkbox-disabled .ant-checkbox-inner{background-color:#f5f5f5;border-color:#d9d9d9!important}.ant-checkbox-disabled .ant-checkbox-inner:after{-webkit-animation-name:none;animation-name:none;border-collapse:separate;border-color:#f5f5f5}.ant-checkbox-disabled+span{color:rgba(0,0,0,.25);cursor:not-allowed}.ant-checkbox-disabled:hover:after,.ant-checkbox-wrapper:hover .ant-checkbox-disabled:after{visibility:hidden}.ant-checkbox-wrapper{font-feature-settings:"tnum";align-items:baseline;box-sizing:border-box;color:rgba(0,0,0,.85);cursor:pointer;display:inline-flex;font-size:14px;font-variant:tabular-nums;line-height:1.5715;line-height:unset;list-style:none;margin:0;padding:0}.ant-checkbox-wrapper:after{content:"\\a0";display:inline-block;overflow:hidden;width:0}.ant-checkbox-wrapper.ant-checkbox-wrapper-disabled{cursor:not-allowed}.ant-checkbox-wrapper+.ant-checkbox-wrapper{margin-left:8px}.ant-checkbox+span{padding-left:8px;padding-right:8px}.ant-checkbox-group{font-feature-settings:"tnum";box-sizing:border-box;color:rgba(0,0,0,.85);display:inline-block;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0}.ant-checkbox-group-item{margin-right:8px}.ant-checkbox-group-item:last-child{margin-right:0}.ant-checkbox-group-item+.ant-checkbox-group-item{margin-left:0}.ant-checkbox-indeterminate .ant-checkbox-inner{background-color:#fff;border-color:#d9d9d9}.ant-checkbox-indeterminate .ant-checkbox-inner:after{background-color:var(--ant-primary-color);border:0;content:" ";height:8px;left:50%;opacity:1;top:50%;transform:translate(-50%,-50%) scale(1);width:8px}.ant-checkbox-indeterminate.ant-checkbox-disabled .ant-checkbox-inner:after{background-color:rgba(0,0,0,.25);border-color:rgba(0,0,0,.25)}.ant-checkbox-rtl{direction:rtl}.ant-checkbox-group-rtl .ant-checkbox-group-item{margin-left:8px;margin-right:0}.ant-checkbox-group-rtl .ant-checkbox-group-item:last-child{margin-left:0!important}.ant-checkbox-group-rtl .ant-checkbox-group-item+.ant-checkbox-group-item{margin-left:8px}.ant-collapse{font-feature-settings:"tnum";background-color:#fafafa;border:1px solid #d9d9d9;border-bottom:0;border-radius:2px;box-sizing:border-box;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0}.ant-collapse>.ant-collapse-item{border-bottom:1px solid #d9d9d9}.ant-collapse>.ant-collapse-item:last-child,.ant-collapse>.ant-collapse-item:last-child>.ant-collapse-header{border-radius:0 0 2px 2px}.ant-collapse>.ant-collapse-item>.ant-collapse-header{align-items:flex-start;color:rgba(0,0,0,.85);cursor:pointer;display:flex;flex-wrap:nowrap;line-height:1.5715;padding:12px 16px;position:relative;transition:all .3s,visibility 0s}.ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-arrow{display:inline-block;font-size:12px;margin-right:12px;vertical-align:-1px}.ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-arrow svg{transition:transform .24s}.ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-extra{margin-left:auto}.ant-collapse>.ant-collapse-item>.ant-collapse-header:focus{outline:none}.ant-collapse>.ant-collapse-item .ant-collapse-header-collapsible-only{cursor:default}.ant-collapse>.ant-collapse-item .ant-collapse-header-collapsible-only .ant-collapse-header-text{cursor:pointer}.ant-collapse>.ant-collapse-item.ant-collapse-no-arrow>.ant-collapse-header{padding-left:12px}.ant-collapse-icon-position-right>.ant-collapse-item>.ant-collapse-header{padding:12px 40px 12px 16px;position:relative}.ant-collapse-icon-position-right>.ant-collapse-item>.ant-collapse-header .ant-collapse-arrow{left:auto;margin:0;position:absolute;right:16px;top:50%;transform:translateY(-50%)}.ant-collapse-content{background-color:#fff;border-top:1px solid #d9d9d9;color:rgba(0,0,0,.85)}.ant-collapse-content>.ant-collapse-content-box{padding:16px}.ant-collapse-content-hidden{display:none}.ant-collapse-item:last-child>.ant-collapse-content{border-radius:0 0 2px 2px}.ant-collapse-borderless{background-color:#fafafa;border:0}.ant-collapse-borderless>.ant-collapse-item{border-bottom:1px solid #d9d9d9}.ant-collapse-borderless>.ant-collapse-item:last-child,.ant-collapse-borderless>.ant-collapse-item:last-child .ant-collapse-header{border-radius:0}.ant-collapse-borderless>.ant-collapse-item>.ant-collapse-content{background-color:transparent;border-top:0}.ant-collapse-borderless>.ant-collapse-item>.ant-collapse-content>.ant-collapse-content-box{padding-top:4px}.ant-collapse-ghost{background-color:transparent;border:0}.ant-collapse-ghost>.ant-collapse-item{border-bottom:0}.ant-collapse-ghost>.ant-collapse-item>.ant-collapse-content{background-color:transparent;border-top:0}.ant-collapse-ghost>.ant-collapse-item>.ant-collapse-content>.ant-collapse-content-box{padding-bottom:12px;padding-top:12px}.ant-collapse .ant-collapse-item-disabled>.ant-collapse-header,.ant-collapse .ant-collapse-item-disabled>.ant-collapse-header>.arrow{color:rgba(0,0,0,.25);cursor:not-allowed}.ant-collapse-rtl{direction:rtl}.ant-collapse-rtl .ant-collapse>.ant-collapse-item>.ant-collapse-header{padding:12px 40px 12px 16px}.ant-collapse-rtl.ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-arrow{margin-left:12px;margin-right:0}.ant-collapse-rtl.ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-arrow svg{transform:rotate(180deg)}.ant-collapse-rtl.ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-extra{margin-left:0;margin-right:auto}.ant-collapse-rtl.ant-collapse>.ant-collapse-item.ant-collapse-no-arrow>.ant-collapse-header{padding-left:0;padding-right:12px}.ant-comment{background-color:inherit;position:relative}.ant-comment-inner{display:flex;padding:16px 0}.ant-comment-avatar{cursor:pointer;flex-shrink:0;margin-right:12px;position:relative}.ant-comment-avatar img{border-radius:50%;height:32px;width:32px}.ant-comment-content{word-wrap:break-word;flex:1 1 auto;font-size:14px;min-width:1px;position:relative}.ant-comment-content-author{display:flex;flex-wrap:wrap;font-size:14px;justify-content:flex-start;margin-bottom:4px}.ant-comment-content-author>a,.ant-comment-content-author>span{font-size:12px;line-height:18px;padding-right:8px}.ant-comment-content-author-name{color:rgba(0,0,0,.45);font-size:14px;transition:color .3s}.ant-comment-content-author-name>*,.ant-comment-content-author-name>:hover{color:rgba(0,0,0,.45)}.ant-comment-content-author-time{color:#ccc;cursor:auto;white-space:nowrap}.ant-comment-content-detail p{margin-bottom:inherit;white-space:pre-wrap}.ant-comment-actions{margin-bottom:inherit;margin-top:12px;padding-left:0}.ant-comment-actions>li{color:rgba(0,0,0,.45);display:inline-block}.ant-comment-actions>li>span{color:rgba(0,0,0,.45);cursor:pointer;font-size:12px;margin-right:10px;transition:color .3s;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ant-comment-actions>li>span:hover{color:#595959}.ant-comment-nested{margin-left:44px}.ant-comment-rtl{direction:rtl}.ant-comment-rtl .ant-comment-avatar{margin-left:12px;margin-right:0}.ant-comment-rtl .ant-comment-content-author>a,.ant-comment-rtl .ant-comment-content-author>span{padding-left:8px;padding-right:0}.ant-comment-rtl .ant-comment-actions{padding-right:0}.ant-comment-rtl .ant-comment-actions>li>span{margin-left:10px;margin-right:0}.ant-comment-rtl .ant-comment-nested{margin-left:0;margin-right:44px}.ant-descriptions-header{align-items:center;display:flex;margin-bottom:20px}.ant-descriptions-title{color:rgba(0,0,0,.85);flex:auto;font-size:16px;font-weight:700;line-height:1.5715;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ant-descriptions-extra{color:rgba(0,0,0,.85);font-size:14px;margin-left:auto}.ant-descriptions-view{border-radius:2px;width:100%}.ant-descriptions-view table{table-layout:fixed;width:100%}.ant-descriptions-row>td,.ant-descriptions-row>th{padding-bottom:16px}.ant-descriptions-row:last-child{border-bottom:none}.ant-descriptions-item-label{color:rgba(0,0,0,.85);font-size:14px;font-weight:400;line-height:1.5715;text-align:start}.ant-descriptions-item-label:after{content:":";margin:0 8px 0 2px;position:relative;top:-.5px}.ant-descriptions-item-label.ant-descriptions-item-no-colon:after{content:" "}.ant-descriptions-item-no-label:after{content:"";margin:0}.ant-descriptions-item-content{color:rgba(0,0,0,.85);display:table-cell;flex:1;font-size:14px;line-height:1.5715;overflow-wrap:break-word;word-break:break-word}.ant-descriptions-item{padding-bottom:0;vertical-align:top}.ant-descriptions-item-container{display:flex}.ant-descriptions-item-container .ant-descriptions-item-content,.ant-descriptions-item-container .ant-descriptions-item-label{align-items:baseline;display:inline-flex}.ant-descriptions-middle .ant-descriptions-row>td,.ant-descriptions-middle .ant-descriptions-row>th{padding-bottom:12px}.ant-descriptions-small .ant-descriptions-row>td,.ant-descriptions-small .ant-descriptions-row>th{padding-bottom:8px}.ant-descriptions-bordered .ant-descriptions-view{border:1px solid #f0f0f0}.ant-descriptions-bordered .ant-descriptions-view>table{border-collapse:collapse;table-layout:auto}.ant-descriptions-bordered .ant-descriptions-item-content,.ant-descriptions-bordered .ant-descriptions-item-label{border-right:1px solid #f0f0f0;padding:16px 24px}.ant-descriptions-bordered .ant-descriptions-item-content:last-child,.ant-descriptions-bordered .ant-descriptions-item-label:last-child{border-right:none}.ant-descriptions-bordered .ant-descriptions-item-label{background-color:#fafafa}.ant-descriptions-bordered .ant-descriptions-item-label:after{display:none}.ant-descriptions-bordered .ant-descriptions-row{border-bottom:1px solid #f0f0f0}.ant-descriptions-bordered .ant-descriptions-row:last-child{border-bottom:none}.ant-descriptions-bordered.ant-descriptions-middle .ant-descriptions-item-content,.ant-descriptions-bordered.ant-descriptions-middle .ant-descriptions-item-label{padding:12px 24px}.ant-descriptions-bordered.ant-descriptions-small .ant-descriptions-item-content,.ant-descriptions-bordered.ant-descriptions-small .ant-descriptions-item-label{padding:8px 16px}.ant-descriptions-rtl{direction:rtl}.ant-descriptions-rtl .ant-descriptions-item-label:after{margin:0 2px 0 8px}.ant-descriptions-rtl.ant-descriptions-bordered .ant-descriptions-item-content,.ant-descriptions-rtl.ant-descriptions-bordered .ant-descriptions-item-label{border-left:1px solid #f0f0f0;border-right:none}.ant-descriptions-rtl.ant-descriptions-bordered .ant-descriptions-item-content:last-child,.ant-descriptions-rtl.ant-descriptions-bordered .ant-descriptions-item-label:last-child{border-left:none}.ant-divider{font-feature-settings:"tnum";border-top:1px solid rgba(0,0,0,.06);box-sizing:border-box;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0}.ant-divider-vertical{border-left:1px solid rgba(0,0,0,.06);border-top:0;display:inline-block;height:.9em;margin:0 8px;position:relative;top:-.06em;vertical-align:middle}.ant-divider-horizontal{clear:both;display:flex;margin:24px 0;min-width:100%;width:100%}.ant-divider-horizontal.ant-divider-with-text{border-top:0;border-top-color:rgba(0,0,0,.06);color:rgba(0,0,0,.85);display:flex;font-size:16px;font-weight:500;margin:16px 0;text-align:center;white-space:nowrap}.ant-divider-horizontal.ant-divider-with-text:after,.ant-divider-horizontal.ant-divider-with-text:before{border-bottom:0;border-top:1px solid transparent;border-top-color:inherit;content:"";position:relative;top:50%;transform:translateY(50%);width:50%}.ant-divider-horizontal.ant-divider-with-text-left:before{top:50%;width:5%}.ant-divider-horizontal.ant-divider-with-text-left:after,.ant-divider-horizontal.ant-divider-with-text-right:before{top:50%;width:95%}.ant-divider-horizontal.ant-divider-with-text-right:after{top:50%;width:5%}.ant-divider-inner-text{display:inline-block;padding:0 1em}.ant-divider-dashed{background:none;border:dashed rgba(0,0,0,.06);border-width:1px 0 0}.ant-divider-horizontal.ant-divider-with-text.ant-divider-dashed:after,.ant-divider-horizontal.ant-divider-with-text.ant-divider-dashed:before{border-style:dashed none none}.ant-divider-vertical.ant-divider-dashed{border-width:0 0 0 1px}.ant-divider-plain.ant-divider-with-text{color:rgba(0,0,0,.85);font-size:14px;font-weight:400}.ant-divider-horizontal.ant-divider-with-text-left.ant-divider-no-default-orientation-margin-left:before{width:0}.ant-divider-horizontal.ant-divider-with-text-left.ant-divider-no-default-orientation-margin-left:after{width:100%}.ant-divider-horizontal.ant-divider-with-text-left.ant-divider-no-default-orientation-margin-left .ant-divider-inner-text{padding-left:0}.ant-divider-horizontal.ant-divider-with-text-right.ant-divider-no-default-orientation-margin-right:before{width:100%}.ant-divider-horizontal.ant-divider-with-text-right.ant-divider-no-default-orientation-margin-right:after{width:0}.ant-divider-horizontal.ant-divider-with-text-right.ant-divider-no-default-orientation-margin-right .ant-divider-inner-text{padding-right:0}.ant-divider-rtl{direction:rtl}.ant-divider-rtl.ant-divider-horizontal.ant-divider-with-text-left:before{width:95%}.ant-divider-rtl.ant-divider-horizontal.ant-divider-with-text-left:after,.ant-divider-rtl.ant-divider-horizontal.ant-divider-with-text-right:before{width:5%}.ant-divider-rtl.ant-divider-horizontal.ant-divider-with-text-right:after{width:95%}.ant-drawer{height:100%;position:fixed;transition:width 0s ease .3s,height 0s ease .3s;width:0;z-index:1000}.ant-drawer-content-wrapper{height:100%;position:absolute;transition:transform .3s cubic-bezier(.23,1,.32,1),box-shadow .3s cubic-bezier(.23,1,.32,1);width:100%}.ant-drawer .ant-drawer-content{height:100%;width:100%}.ant-drawer-left,.ant-drawer-right{height:100%;top:0;width:0}.ant-drawer-left .ant-drawer-content-wrapper,.ant-drawer-right .ant-drawer-content-wrapper{height:100%}.ant-drawer-left.ant-drawer-open,.ant-drawer-right.ant-drawer-open{transition:transform .3s cubic-bezier(.23,1,.32,1);width:100%}.ant-drawer-left,.ant-drawer-left .ant-drawer-content-wrapper{left:0}.ant-drawer-left.ant-drawer-open .ant-drawer-content-wrapper{box-shadow:6px 0 16px -8px rgba(0,0,0,.08),9px 0 28px 0 rgba(0,0,0,.05),12px 0 48px 16px rgba(0,0,0,.03)}.ant-drawer-right,.ant-drawer-right .ant-drawer-content-wrapper{right:0}.ant-drawer-right.ant-drawer-open .ant-drawer-content-wrapper{box-shadow:-6px 0 16px -8px rgba(0,0,0,.08),-9px 0 28px 0 rgba(0,0,0,.05),-12px 0 48px 16px rgba(0,0,0,.03)}.ant-drawer-right.ant-drawer-open.no-mask{right:1px;transform:translateX(1px)}.ant-drawer-bottom,.ant-drawer-top{height:0;left:0;width:100%}.ant-drawer-bottom .ant-drawer-content-wrapper,.ant-drawer-top .ant-drawer-content-wrapper{width:100%}.ant-drawer-bottom.ant-drawer-open,.ant-drawer-top.ant-drawer-open{height:100%;transition:transform .3s cubic-bezier(.23,1,.32,1)}.ant-drawer-top{top:0}.ant-drawer-top.ant-drawer-open .ant-drawer-content-wrapper{box-shadow:0 6px 16px -8px rgba(0,0,0,.08),0 9px 28px 0 rgba(0,0,0,.05),0 12px 48px 16px rgba(0,0,0,.03)}.ant-drawer-bottom,.ant-drawer-bottom .ant-drawer-content-wrapper{bottom:0}.ant-drawer-bottom.ant-drawer-open .ant-drawer-content-wrapper{box-shadow:0 -6px 16px -8px rgba(0,0,0,.08),0 -9px 28px 0 rgba(0,0,0,.05),0 -12px 48px 16px rgba(0,0,0,.03)}.ant-drawer-bottom.ant-drawer-open.no-mask{bottom:1px;transform:translateY(1px)}.ant-drawer.ant-drawer-open .ant-drawer-mask{-webkit-animation:antdDrawerFadeIn .3s cubic-bezier(.23,1,.32,1);animation:antdDrawerFadeIn .3s cubic-bezier(.23,1,.32,1);height:100%;opacity:1;pointer-events:auto;transition:none}.ant-drawer-title{color:rgba(0,0,0,.85);flex:1;font-size:16px;font-weight:500;line-height:22px;margin:0}.ant-drawer-content{background-clip:padding-box;background-color:#fff;border:0;overflow:auto;position:relative;z-index:1}.ant-drawer-close{text-rendering:auto;background:transparent;border:0;color:rgba(0,0,0,.45);cursor:pointer;display:inline-block;font-size:16px;font-style:normal;font-weight:700;line-height:1;margin-right:12px;outline:0;text-align:center;text-decoration:none;text-transform:none;transition:color .3s}.ant-drawer-close:focus,.ant-drawer-close:hover{color:rgba(0,0,0,.75);text-decoration:none}.ant-drawer-header{background:#fff;border-bottom:1px solid #f0f0f0;border-radius:2px 2px 0 0;color:rgba(0,0,0,.85);padding:16px 24px;position:relative}.ant-drawer-header,.ant-drawer-header-title{align-items:center;display:flex;justify-content:space-between}.ant-drawer-header-title{flex:1}.ant-drawer-header-close-only{border:none;padding-bottom:0}.ant-drawer-wrapper-body{display:flex;flex-flow:column nowrap;height:100%;width:100%}.ant-drawer-body{word-wrap:break-word;flex-grow:1;font-size:14px;line-height:1.5715;overflow:auto;padding:24px}.ant-drawer-footer{border-top:1px solid #f0f0f0;flex-shrink:0;padding:10px 16px}.ant-drawer-mask{background-color:rgba(0,0,0,.45);height:0;left:0;opacity:0;pointer-events:none;position:absolute;top:0;transition:opacity .3s linear,height 0s ease .3s;width:100%}.ant-drawer .ant-picker-clear{background:#fff}@-webkit-keyframes antdDrawerFadeIn{0%{opacity:0}to{opacity:1}}@keyframes antdDrawerFadeIn{0%{opacity:0}to{opacity:1}}.ant-drawer-rtl{direction:rtl}.ant-drawer-rtl .ant-drawer-close{margin-left:12px;margin-right:0}.ant-form-item .ant-upload{background:transparent}.ant-form-item .ant-upload.ant-upload-drag{background:#fafafa}.ant-form-item input[type=checkbox],.ant-form-item input[type=radio]{height:14px;width:14px}.ant-form-item .ant-checkbox-inline,.ant-form-item .ant-radio-inline{cursor:pointer;display:inline-block;font-weight:400;margin-left:8px;vertical-align:middle}.ant-form-item .ant-checkbox-inline:first-child,.ant-form-item .ant-radio-inline:first-child{margin-left:0}.ant-form-item .ant-checkbox-vertical,.ant-form-item .ant-radio-vertical{display:block}.ant-form-item .ant-checkbox-vertical+.ant-checkbox-vertical,.ant-form-item .ant-radio-vertical+.ant-radio-vertical{margin-left:0}.ant-form-item .ant-input-number+.ant-form-text{margin-left:8px}.ant-form-item .ant-input-number-handler-wrap{z-index:2}.ant-form-item .ant-cascader-picker,.ant-form-item .ant-select{width:100%}.ant-form-item .ant-input-group .ant-cascader-picker,.ant-form-item .ant-input-group .ant-select,.ant-form-item .ant-input-number-group .ant-cascader-picker,.ant-form-item .ant-input-number-group .ant-select,.ant-form-item .ant-picker-calendar-month-select,.ant-form-item .ant-picker-calendar-year-select{width:auto}.ant-form-inline{display:flex;flex-wrap:wrap}.ant-form-inline .ant-form-item{flex:none;flex-wrap:nowrap;margin-bottom:0;margin-right:16px}.ant-form-inline .ant-form-item-with-help{margin-bottom:24px}.ant-form-inline .ant-form-item>.ant-form-item-control,.ant-form-inline .ant-form-item>.ant-form-item-label{display:inline-block;vertical-align:top}.ant-form-inline .ant-form-item>.ant-form-item-label{flex:none}.ant-form-inline .ant-form-item .ant-form-item-has-feedback,.ant-form-inline .ant-form-item .ant-form-text{display:inline-block}.ant-form-horizontal .ant-form-item-label{flex-grow:0}.ant-form-horizontal .ant-form-item-control{flex:1 1 0;min-width:0}.ant-form-horizontal .ant-form-item-label.ant-col-24+.ant-form-item-control{min-width:unset}.ant-form-vertical .ant-form-item{flex-direction:column}.ant-form-vertical .ant-form-item-label>label{height:auto}.ant-col-24.ant-form-item-label,.ant-col-xl-24.ant-form-item-label,.ant-form-vertical .ant-form-item-label{line-height:1.5715;padding:0 0 8px;text-align:left;white-space:normal}.ant-col-24.ant-form-item-label>label,.ant-col-xl-24.ant-form-item-label>label,.ant-form-vertical .ant-form-item-label>label{margin:0}.ant-col-24.ant-form-item-label>label:after,.ant-col-xl-24.ant-form-item-label>label:after,.ant-form-vertical .ant-form-item-label>label:after{display:none}.ant-form-rtl.ant-col-24.ant-form-item-label,.ant-form-rtl.ant-col-xl-24.ant-form-item-label,.ant-form-rtl.ant-form-vertical .ant-form-item-label{text-align:right}@media (max-width:575px){.ant-form-item .ant-form-item-label{line-height:1.5715;padding:0 0 8px;text-align:left;white-space:normal}.ant-form-item .ant-form-item-label>label{margin:0}.ant-form-item .ant-form-item-label>label:after{display:none}.ant-form-rtl.ant-form-item .ant-form-item-label{text-align:right}.ant-form .ant-form-item{flex-wrap:wrap}.ant-form .ant-form-item .ant-form-item-control,.ant-form .ant-form-item .ant-form-item-label{flex:0 0 100%;max-width:100%}.ant-col-xs-24.ant-form-item-label{line-height:1.5715;padding:0 0 8px;text-align:left;white-space:normal}.ant-col-xs-24.ant-form-item-label>label{margin:0}.ant-col-xs-24.ant-form-item-label>label:after{display:none}.ant-form-rtl.ant-col-xs-24.ant-form-item-label{text-align:right}}@media (max-width:767px){.ant-col-sm-24.ant-form-item-label{line-height:1.5715;padding:0 0 8px;text-align:left;white-space:normal}.ant-col-sm-24.ant-form-item-label>label{margin:0}.ant-col-sm-24.ant-form-item-label>label:after{display:none}.ant-form-rtl.ant-col-sm-24.ant-form-item-label{text-align:right}}@media (max-width:991px){.ant-col-md-24.ant-form-item-label{line-height:1.5715;padding:0 0 8px;text-align:left;white-space:normal}.ant-col-md-24.ant-form-item-label>label{margin:0}.ant-col-md-24.ant-form-item-label>label:after{display:none}.ant-form-rtl.ant-col-md-24.ant-form-item-label{text-align:right}}@media (max-width:1199px){.ant-col-lg-24.ant-form-item-label{line-height:1.5715;padding:0 0 8px;text-align:left;white-space:normal}.ant-col-lg-24.ant-form-item-label>label{margin:0}.ant-col-lg-24.ant-form-item-label>label:after{display:none}.ant-form-rtl.ant-col-lg-24.ant-form-item-label{text-align:right}}@media (max-width:1599px){.ant-col-xl-24.ant-form-item-label{line-height:1.5715;padding:0 0 8px;text-align:left;white-space:normal}.ant-col-xl-24.ant-form-item-label>label{margin:0}.ant-col-xl-24.ant-form-item-label>label:after{display:none}.ant-form-rtl.ant-col-xl-24.ant-form-item-label{text-align:right}}.ant-form-item-explain-error{color:var(--ant-error-color)}.ant-form-item-explain-warning{color:var(--ant-warning-color)}.ant-form-item-has-feedback .ant-input{padding-right:24px}.ant-form-item-has-feedback .ant-input-affix-wrapper .ant-input-suffix{padding-right:18px}.ant-form-item-has-feedback .ant-input-search:not(.ant-input-search-enter-button) .ant-input-suffix{right:28px}.ant-form-item-has-feedback .ant-switch{margin:2px 0 4px}.ant-form-item-has-feedback :not(.ant-input-group-addon)>.ant-select .ant-select-arrow,.ant-form-item-has-feedback :not(.ant-input-group-addon)>.ant-select .ant-select-clear,.ant-form-item-has-feedback :not(.ant-input-number-group-addon)>.ant-select .ant-select-arrow,.ant-form-item-has-feedback :not(.ant-input-number-group-addon)>.ant-select .ant-select-clear,.ant-form-item-has-feedback>.ant-select .ant-select-arrow,.ant-form-item-has-feedback>.ant-select .ant-select-clear{right:32px}.ant-form-item-has-feedback :not(.ant-input-group-addon)>.ant-select .ant-select-selection-selected-value,.ant-form-item-has-feedback :not(.ant-input-number-group-addon)>.ant-select .ant-select-selection-selected-value,.ant-form-item-has-feedback>.ant-select .ant-select-selection-selected-value{padding-right:42px}.ant-form-item-has-feedback .ant-cascader-picker-arrow{margin-right:19px}.ant-form-item-has-feedback .ant-cascader-picker-clear{right:32px}.ant-form-item-has-feedback .ant-picker,.ant-form-item-has-feedback .ant-picker-large{padding-right:29.2px}.ant-form-item-has-feedback .ant-picker-small{padding-right:25.2px}.ant-form-item-has-feedback.ant-form-item-has-error .ant-form-item-children-icon,.ant-form-item-has-feedback.ant-form-item-has-success .ant-form-item-children-icon,.ant-form-item-has-feedback.ant-form-item-has-warning .ant-form-item-children-icon,.ant-form-item-has-feedback.ant-form-item-is-validating .ant-form-item-children-icon{-webkit-animation:zoomIn .3s cubic-bezier(.12,.4,.29,1.46);animation:zoomIn .3s cubic-bezier(.12,.4,.29,1.46);font-size:14px;height:20px;line-height:20px;margin-top:-10px;pointer-events:none;position:absolute;right:0;text-align:center;top:50%;visibility:visible;width:32px;z-index:1}.ant-form-item-has-success.ant-form-item-has-feedback .ant-form-item-children-icon{-webkit-animation-name:diffZoomIn1!important;animation-name:diffZoomIn1!important;color:var(--ant-success-color)}.ant-form-item-has-warning .ant-form-item-split{color:var(--ant-warning-color)}.ant-form-item-has-warning :not(.ant-input-affix-wrapper-disabled):not(.ant-input-affix-wrapper-borderless).ant-input-affix-wrapper,.ant-form-item-has-warning :not(.ant-input-affix-wrapper-disabled):not(.ant-input-affix-wrapper-borderless).ant-input-affix-wrapper:hover,.ant-form-item-has-warning :not(.ant-input-disabled):not(.ant-input-borderless).ant-input,.ant-form-item-has-warning :not(.ant-input-disabled):not(.ant-input-borderless).ant-input:hover,.ant-form-item-has-warning :not(.ant-input-number-affix-wrapper-disabled):not(.ant-input-number-affix-wrapper-borderless).ant-input-number-affix-wrapper,.ant-form-item-has-warning :not(.ant-input-number-affix-wrapper-disabled):not(.ant-input-number-affix-wrapper-borderless).ant-input-number-affix-wrapper:hover{background-color:#fff;border-color:var(--ant-warning-color)}.ant-form-item-has-warning .ant-calendar-picker-open .ant-calendar-picker-input,.ant-form-item-has-warning :not(.ant-input-affix-wrapper-disabled):not(.ant-input-affix-wrapper-borderless).ant-input-affix-wrapper-focused,.ant-form-item-has-warning :not(.ant-input-affix-wrapper-disabled):not(.ant-input-affix-wrapper-borderless).ant-input-affix-wrapper:focus,.ant-form-item-has-warning :not(.ant-input-disabled):not(.ant-input-borderless).ant-input-focused,.ant-form-item-has-warning :not(.ant-input-disabled):not(.ant-input-borderless).ant-input:focus,.ant-form-item-has-warning :not(.ant-input-number-affix-wrapper-disabled):not(.ant-input-number-affix-wrapper-borderless).ant-input-number-affix-wrapper-focused,.ant-form-item-has-warning :not(.ant-input-number-affix-wrapper-disabled):not(.ant-input-number-affix-wrapper-borderless).ant-input-number-affix-wrapper:focus{border-color:var(--ant-warning-color-hover);border-right-width:1px!important;box-shadow:0 0 0 2px var(--ant-warning-color-outline);outline:0}.ant-form-item-has-warning .ant-input-number-prefix,.ant-form-item-has-warning .ant-input-prefix{color:var(--ant-warning-color)}.ant-form-item-has-warning .ant-input-group-addon,.ant-form-item-has-warning .ant-input-number-group-addon{border-color:var(--ant-warning-color);color:var(--ant-warning-color)}.ant-form-item-has-warning .has-feedback{color:var(--ant-warning-color)}.ant-form-item-has-warning.ant-form-item-has-feedback .ant-form-item-children-icon{-webkit-animation-name:diffZoomIn3!important;animation-name:diffZoomIn3!important;color:var(--ant-warning-color)}.ant-form-item-has-warning .ant-select:not(.ant-select-disabled):not(.ant-select-customize-input) .ant-select-selector{background-color:#fff;border-color:var(--ant-warning-color)!important}.ant-form-item-has-warning .ant-select:not(.ant-select-disabled):not(.ant-select-customize-input).ant-select-focused .ant-select-selector,.ant-form-item-has-warning .ant-select:not(.ant-select-disabled):not(.ant-select-customize-input).ant-select-open .ant-select-selector{border-color:var(--ant-warning-color-hover);border-right-width:1px!important;box-shadow:0 0 0 2px var(--ant-warning-color-outline);outline:0}.ant-form-item-has-warning .ant-input-number,.ant-form-item-has-warning .ant-picker{background-color:#fff;border-color:var(--ant-warning-color)}.ant-form-item-has-warning .ant-input-number-focused,.ant-form-item-has-warning .ant-input-number:focus,.ant-form-item-has-warning .ant-picker-focused,.ant-form-item-has-warning .ant-picker:focus{border-color:var(--ant-warning-color-hover);border-right-width:1px!important;box-shadow:0 0 0 2px var(--ant-warning-color-outline);outline:0}.ant-form-item-has-warning .ant-input-number:not([disabled]):hover,.ant-form-item-has-warning .ant-picker:not([disabled]):hover{background-color:#fff;border-color:var(--ant-warning-color)}.ant-form-item-has-warning .ant-cascader-picker:focus .ant-cascader-input{border-color:var(--ant-warning-color-hover);border-right-width:1px!important;box-shadow:0 0 0 2px var(--ant-warning-color-outline);outline:0}.ant-form-item-has-error .ant-form-item-split{color:var(--ant-error-color)}.ant-form-item-has-error :not(.ant-input-affix-wrapper-disabled):not(.ant-input-affix-wrapper-borderless).ant-input-affix-wrapper,.ant-form-item-has-error :not(.ant-input-affix-wrapper-disabled):not(.ant-input-affix-wrapper-borderless).ant-input-affix-wrapper:hover,.ant-form-item-has-error :not(.ant-input-disabled):not(.ant-input-borderless).ant-input,.ant-form-item-has-error :not(.ant-input-disabled):not(.ant-input-borderless).ant-input:hover,.ant-form-item-has-error :not(.ant-input-number-affix-wrapper-disabled):not(.ant-input-number-affix-wrapper-borderless).ant-input-number-affix-wrapper,.ant-form-item-has-error :not(.ant-input-number-affix-wrapper-disabled):not(.ant-input-number-affix-wrapper-borderless).ant-input-number-affix-wrapper:hover{background-color:#fff;border-color:var(--ant-error-color)}.ant-form-item-has-error .ant-calendar-picker-open .ant-calendar-picker-input,.ant-form-item-has-error :not(.ant-input-affix-wrapper-disabled):not(.ant-input-affix-wrapper-borderless).ant-input-affix-wrapper-focused,.ant-form-item-has-error :not(.ant-input-affix-wrapper-disabled):not(.ant-input-affix-wrapper-borderless).ant-input-affix-wrapper:focus,.ant-form-item-has-error :not(.ant-input-disabled):not(.ant-input-borderless).ant-input-focused,.ant-form-item-has-error :not(.ant-input-disabled):not(.ant-input-borderless).ant-input:focus,.ant-form-item-has-error :not(.ant-input-number-affix-wrapper-disabled):not(.ant-input-number-affix-wrapper-borderless).ant-input-number-affix-wrapper-focused,.ant-form-item-has-error :not(.ant-input-number-affix-wrapper-disabled):not(.ant-input-number-affix-wrapper-borderless).ant-input-number-affix-wrapper:focus{border-color:var(--ant-error-color-hover);border-right-width:1px!important;box-shadow:0 0 0 2px var(--ant-error-color-outline);outline:0}.ant-form-item-has-error .ant-input-number-prefix,.ant-form-item-has-error .ant-input-prefix{color:var(--ant-error-color)}.ant-form-item-has-error .ant-input-group-addon,.ant-form-item-has-error .ant-input-number-group-addon{border-color:var(--ant-error-color);color:var(--ant-error-color)}.ant-form-item-has-error .has-feedback{color:var(--ant-error-color)}.ant-form-item-has-error.ant-form-item-has-feedback .ant-form-item-children-icon{-webkit-animation-name:diffZoomIn2!important;animation-name:diffZoomIn2!important;color:var(--ant-error-color)}.ant-form-item-has-error .ant-select:not(.ant-select-disabled):not(.ant-select-customize-input) .ant-select-selector{background-color:#fff;border-color:var(--ant-error-color)!important}.ant-form-item-has-error .ant-select:not(.ant-select-disabled):not(.ant-select-customize-input).ant-select-focused .ant-select-selector,.ant-form-item-has-error .ant-select:not(.ant-select-disabled):not(.ant-select-customize-input).ant-select-open .ant-select-selector{border-color:var(--ant-error-color-hover);border-right-width:1px!important;box-shadow:0 0 0 2px var(--ant-error-color-outline);outline:0}.ant-form-item-has-error .ant-input-group-addon .ant-select.ant-select-single:not(.ant-select-customize-input) .ant-select-selector,.ant-form-item-has-error .ant-input-number-group-addon .ant-select.ant-select-single:not(.ant-select-customize-input) .ant-select-selector{background-color:inherit;border:0;box-shadow:none}.ant-form-item-has-error .ant-select.ant-select-auto-complete .ant-input:focus{border-color:var(--ant-error-color)}.ant-form-item-has-error .ant-input-number,.ant-form-item-has-error .ant-picker{background-color:#fff;border-color:var(--ant-error-color)}.ant-form-item-has-error .ant-input-number-focused,.ant-form-item-has-error .ant-input-number:focus,.ant-form-item-has-error .ant-picker-focused,.ant-form-item-has-error .ant-picker:focus{border-color:var(--ant-error-color-hover);border-right-width:1px!important;box-shadow:0 0 0 2px var(--ant-error-color-outline);outline:0}.ant-form-item-has-error .ant-input-number:not([disabled]):hover,.ant-form-item-has-error .ant-mention-wrapper .ant-mention-editor,.ant-form-item-has-error .ant-mention-wrapper .ant-mention-editor:not([disabled]):hover,.ant-form-item-has-error .ant-picker:not([disabled]):hover{background-color:#fff;border-color:var(--ant-error-color)}.ant-form-item-has-error .ant-mention-wrapper .ant-mention-editor:not([disabled]):focus,.ant-form-item-has-error .ant-mention-wrapper.ant-mention-active:not([disabled]) .ant-mention-editor{border-color:var(--ant-error-color-hover);border-right-width:1px!important;box-shadow:0 0 0 2px var(--ant-error-color-outline);outline:0}.ant-form-item-has-error .ant-cascader-picker:hover .ant-cascader-picker-label:hover+.ant-cascader-input.ant-input{border-color:var(--ant-error-color)}.ant-form-item-has-error .ant-cascader-picker:focus .ant-cascader-input{background-color:#fff;border-color:var(--ant-error-color-hover);border-right-width:1px!important;box-shadow:0 0 0 2px var(--ant-error-color-outline);outline:0}.ant-form-item-has-error .ant-transfer-list{border-color:var(--ant-error-color)}.ant-form-item-has-error .ant-transfer-list-search:not([disabled]){border-color:#d9d9d9}.ant-form-item-has-error .ant-transfer-list-search:not([disabled]):hover{border-color:var(--ant-primary-5);border-right-width:1px!important}.ant-form-item-has-error .ant-transfer-list-search:not([disabled]):focus{border-color:var(--ant-primary-color-hover);border-right-width:1px!important;box-shadow:0 0 0 2px var(--ant-primary-color-outline);outline:0}.ant-form-item-has-error .ant-radio-button-wrapper{border-color:var(--ant-error-color)!important}.ant-form-item-has-error .ant-radio-button-wrapper:not(:first-child):before{background-color:var(--ant-error-color)}.ant-form-item-has-error .ant-mentions{border-color:var(--ant-error-color)!important}.ant-form-item-has-error .ant-mentions-focused,.ant-form-item-has-error .ant-mentions:focus{border-color:var(--ant-error-color-hover);border-right-width:1px!important;box-shadow:0 0 0 2px var(--ant-error-color-outline);outline:0}.ant-form-item-is-validating.ant-form-item-has-feedback .ant-form-item-children-icon{color:var(--ant-primary-color);display:inline-block}.ant-form{font-feature-settings:"tnum";box-sizing:border-box;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0}.ant-form legend{border:0;border-bottom:1px solid #d9d9d9;color:rgba(0,0,0,.45);display:block;font-size:16px;line-height:inherit;margin-bottom:20px;padding:0;width:100%}.ant-form label{font-size:14px}.ant-form input[type=search]{box-sizing:border-box}.ant-form input[type=checkbox],.ant-form input[type=radio]{line-height:normal}.ant-form input[type=file]{display:block}.ant-form input[type=range]{display:block;width:100%}.ant-form select[multiple],.ant-form select[size]{height:auto}.ant-form input[type=checkbox]:focus,.ant-form input[type=file]:focus,.ant-form input[type=radio]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.ant-form output{color:rgba(0,0,0,.85);display:block;font-size:14px;line-height:1.5715;padding-top:15px}.ant-form .ant-form-text{display:inline-block;padding-right:8px}.ant-form-small .ant-form-item-label>label{height:24px}.ant-form-small .ant-form-item-control-input{min-height:24px}.ant-form-large .ant-form-item-label>label{height:40px}.ant-form-large .ant-form-item-control-input{min-height:40px}.ant-form-item{font-feature-settings:"tnum";box-sizing:border-box;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0 0 24px;padding:0;vertical-align:top}.ant-form-item-with-help{margin-bottom:0;transition:none}.ant-form-item-hidden,.ant-form-item-hidden.ant-row{display:none}.ant-form-item-label{display:inline-block;flex-grow:0;overflow:hidden;text-align:right;vertical-align:middle;white-space:nowrap}.ant-form-item-label-left{text-align:left}.ant-form-item-label-wrap{line-height:1.3215em;overflow:unset;white-space:unset}.ant-form-item-label>label{align-items:center;color:rgba(0,0,0,.85);display:inline-flex;font-size:14px;height:32px;max-width:100%;position:relative}.ant-form-item-label>label>.anticon{font-size:14px;vertical-align:top}.ant-form-item-label>label.ant-form-item-required:not(.ant-form-item-required-mark-optional):before{color:#ff4d4f;content:"*";display:inline-block;font-family:SimSun,sans-serif;font-size:14px;line-height:1;margin-right:4px}.ant-form-hide-required-mark .ant-form-item-label>label.ant-form-item-required:not(.ant-form-item-required-mark-optional):before{display:none}.ant-form-item-label>label .ant-form-item-optional{color:rgba(0,0,0,.45);display:inline-block;margin-left:4px}.ant-form-hide-required-mark .ant-form-item-label>label .ant-form-item-optional{display:none}.ant-form-item-label>label .ant-form-item-tooltip{-webkit-margin-start:4px;color:rgba(0,0,0,.45);cursor:help;margin-inline-start:4px;writing-mode:horizontal-tb}.ant-form-item-label>label:after{content:":";margin:0 8px 0 2px;position:relative;top:-.5px}.ant-form-item-label>label.ant-form-item-no-colon:after{content:" "}.ant-form-item-control{display:flex;flex-direction:column;flex-grow:1}.ant-form-item-control:first-child:not([class^=ant-col-]):not([class*=" ant-col-"]){width:100%}.ant-form-item-control-input{align-items:center;display:flex;min-height:32px;position:relative}.ant-form-item-control-input-content{flex:auto;max-width:100%}.ant-form-item-explain,.ant-form-item-extra{clear:both;color:rgba(0,0,0,.45);font-size:14px;line-height:1.5715;transition:color .3s cubic-bezier(.215,.61,.355,1)}.ant-form-item-explain-connected{height:0;min-height:0;opacity:0}.ant-form-item-extra{min-height:24px}.ant-form-item .ant-input-textarea-show-count:after{margin-bottom:-22px}.ant-form-item-with-help .ant-form-item-explain{height:auto;min-height:24px;opacity:1}.ant-show-help{transition:height .3s linear,min-height .3s linear,margin-bottom .3s cubic-bezier(.645,.045,.355,1),opacity .3s cubic-bezier(.645,.045,.355,1)}.ant-show-help-leave{min-height:24px}.ant-show-help-leave-active{min-height:0}.ant-show-help-item{overflow:hidden;transition:height .3s cubic-bezier(.645,.045,.355,1),opacity .3s cubic-bezier(.645,.045,.355,1),transform .3s cubic-bezier(.645,.045,.355,1)!important}.ant-show-help-item-appear,.ant-show-help-item-enter{opacity:0;transform:translateY(-5px)}.ant-show-help-item-appear-active,.ant-show-help-item-enter-active{opacity:1;transform:translateY(0)}.ant-show-help-item-leave-active{transform:translateY(-5px)}@-webkit-keyframes diffZoomIn1{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}@keyframes diffZoomIn1{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}@-webkit-keyframes diffZoomIn2{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}@keyframes diffZoomIn2{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}@-webkit-keyframes diffZoomIn3{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}@keyframes diffZoomIn3{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}.ant-form-rtl{direction:rtl}.ant-form-rtl .ant-form-item-label{text-align:left}.ant-form-rtl .ant-form-item-label>label.ant-form-item-required:before{margin-left:4px;margin-right:0}.ant-form-rtl .ant-form-item-label>label:after{margin:0 2px 0 8px}.ant-form-rtl .ant-form-item-label>label .ant-form-item-optional{margin-left:0;margin-right:4px}.ant-col-rtl .ant-form-item-control:first-child{width:100%}.ant-form-rtl .ant-form-item-has-feedback .ant-input{padding-left:24px;padding-right:11px}.ant-form-rtl .ant-form-item-has-feedback .ant-input-affix-wrapper .ant-input-suffix{padding-left:18px;padding-right:11px}.ant-form-rtl .ant-form-item-has-feedback .ant-input-affix-wrapper .ant-input,.ant-form-rtl .ant-form-item-has-feedback .ant-input-number-affix-wrapper .ant-input-number{padding:0}.ant-form-rtl .ant-form-item-has-feedback .ant-input-search:not(.ant-input-search-enter-button) .ant-input-suffix{left:28px;right:auto}.ant-form-rtl .ant-form-item-has-feedback .ant-input-number{padding-left:18px}.ant-form-rtl .ant-form-item-has-feedback :not(.ant-input-group-addon)>.ant-select .ant-select-arrow,.ant-form-rtl .ant-form-item-has-feedback :not(.ant-input-group-addon)>.ant-select .ant-select-clear,.ant-form-rtl .ant-form-item-has-feedback :not(.ant-input-number-group-addon)>.ant-select .ant-select-arrow,.ant-form-rtl .ant-form-item-has-feedback :not(.ant-input-number-group-addon)>.ant-select .ant-select-clear,.ant-form-rtl .ant-form-item-has-feedback>.ant-select .ant-select-arrow,.ant-form-rtl .ant-form-item-has-feedback>.ant-select .ant-select-clear{left:32px;right:auto}.ant-form-rtl .ant-form-item-has-feedback :not(.ant-input-group-addon)>.ant-select .ant-select-selection-selected-value,.ant-form-rtl .ant-form-item-has-feedback :not(.ant-input-number-group-addon)>.ant-select .ant-select-selection-selected-value,.ant-form-rtl .ant-form-item-has-feedback>.ant-select .ant-select-selection-selected-value{padding-left:42px;padding-right:0}.ant-form-rtl .ant-form-item-has-feedback .ant-cascader-picker-arrow{margin-left:19px;margin-right:0}.ant-form-rtl .ant-form-item-has-feedback .ant-cascader-picker-clear{left:32px;right:auto}.ant-form-rtl .ant-form-item-has-feedback .ant-picker,.ant-form-rtl .ant-form-item-has-feedback .ant-picker-large{padding-left:29.2px;padding-right:11px}.ant-form-rtl .ant-form-item-has-feedback .ant-picker-small{padding-left:25.2px;padding-right:7px}.ant-form-rtl .ant-form-item-has-feedback.ant-form-item-has-error .ant-form-item-children-icon,.ant-form-rtl .ant-form-item-has-feedback.ant-form-item-has-success .ant-form-item-children-icon,.ant-form-rtl .ant-form-item-has-feedback.ant-form-item-has-warning .ant-form-item-children-icon,.ant-form-rtl .ant-form-item-has-feedback.ant-form-item-is-validating .ant-form-item-children-icon{left:0;right:auto}.ant-form-rtl.ant-form-inline .ant-form-item{margin-left:16px;margin-right:0}.ant-image{display:inline-block;position:relative}.ant-image-img{height:auto;vertical-align:middle;width:100%}.ant-image-img-placeholder{background-color:#f5f5f5;background-image:url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE0LjUgMi41aC0xM0EuNS41IDAgMCAwIDEgM3YxMGEuNS41IDAgMCAwIC41LjVoMTNhLjUuNSAwIDAgMCAuNS0uNVYzYS41LjUgMCAwIDAtLjUtLjV6TTUuMjgxIDQuNzVhMSAxIDAgMCAxIDAgMiAxIDEgMCAwIDEgMC0yem04LjAzIDYuODNhLjEyNy4xMjcgMCAwIDEtLjA4MS4wM0gyLjc2OWEuMTI1LjEyNSAwIDAgMS0uMDk2LS4yMDdsMi42NjEtMy4xNTZhLjEyNi4xMjYgMCAwIDEgLjE3Ny0uMDE2bC4wMTYuMDE2TDcuMDggMTAuMDlsMi40Ny0yLjkzYS4xMjYuMTI2IDAgMCAxIC4xNzctLjAxNmwuMDE1LjAxNiAzLjU4OCA0LjI0NGEuMTI3LjEyNyAwIDAgMS0uMDIuMTc1eiIgZmlsbD0iIzhDOEM4QyIvPjwvc3ZnPg==");background-position:50%;background-repeat:no-repeat;background-size:30%}.ant-image-mask{align-items:center;background:rgba(0,0,0,.5);bottom:0;color:#fff;cursor:pointer;display:flex;justify-content:center;left:0;opacity:0;position:absolute;right:0;top:0;transition:opacity .3s}.ant-image-mask-info{overflow:hidden;padding:0 4px;text-overflow:ellipsis;white-space:nowrap}.ant-image-mask-info .anticon{-webkit-margin-end:4px;margin-inline-end:4px}.ant-image-mask:hover{opacity:1}.ant-image-placeholder{bottom:0;left:0;position:absolute;right:0;top:0}.ant-image-preview{height:100%;pointer-events:none;text-align:center}.ant-image-preview.ant-zoom-enter,.ant-image-preview.antzoom-appear{-webkit-animation-duration:.3s;animation-duration:.3s;opacity:0;transform:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ant-image-preview-mask{background-color:rgba(0,0,0,.45);bottom:0;height:100%;left:0;position:fixed;right:0;top:0;z-index:1000}.ant-image-preview-mask-hidden{display:none}.ant-image-preview-wrap{-webkit-overflow-scrolling:touch;bottom:0;left:0;outline:0;overflow:auto;position:fixed;right:0;top:0}.ant-image-preview-body{bottom:0;left:0;overflow:hidden;position:absolute;right:0;top:0}.ant-image-preview-img{cursor:-webkit-grab;cursor:grab;max-height:100%;max-width:100%;pointer-events:auto;transform:scaleX(1);-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle}.ant-image-preview-img,.ant-image-preview-img-wrapper{transition:transform .3s cubic-bezier(.215,.61,.355,1) 0s}.ant-image-preview-img-wrapper{bottom:0;left:0;position:absolute;right:0;top:0}.ant-image-preview-img-wrapper:before{content:"";display:inline-block;height:50%;margin-right:-1px;width:1px}.ant-image-preview-moving .ant-image-preview-img{cursor:-webkit-grabbing;cursor:grabbing}.ant-image-preview-moving .ant-image-preview-img-wrapper{transition-duration:0s}.ant-image-preview-wrap{z-index:1080}.ant-image-preview-operations{font-feature-settings:"tnum";align-items:center;background:rgba(0,0,0,.1);box-sizing:border-box;color:rgba(0,0,0,.85);color:hsla(0,0%,100%,.85);display:flex;flex-direction:row-reverse;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0;pointer-events:auto;position:absolute;right:0;top:0;width:100%;z-index:1}.ant-image-preview-operations-operation{cursor:pointer;margin-left:12px;padding:12px}.ant-image-preview-operations-operation-disabled{color:hsla(0,0%,100%,.25);pointer-events:none}.ant-image-preview-operations-operation:last-of-type{margin-left:0}.ant-image-preview-operations-icon{font-size:18px}.ant-image-preview-switch-left,.ant-image-preview-switch-right{align-items:center;background:rgba(0,0,0,.1);border-radius:50%;color:hsla(0,0%,100%,.85);cursor:pointer;display:flex;height:44px;justify-content:center;margin-top:-22px;pointer-events:auto;position:absolute;right:10px;top:50%;width:44px;z-index:1}.ant-image-preview-switch-left-disabled,.ant-image-preview-switch-right-disabled{color:hsla(0,0%,100%,.25);cursor:not-allowed}.ant-image-preview-switch-left-disabled>.anticon,.ant-image-preview-switch-right-disabled>.anticon{cursor:not-allowed}.ant-image-preview-switch-left>.anticon,.ant-image-preview-switch-right>.anticon{font-size:18px}.ant-image-preview-switch-left{left:10px}.ant-image-preview-switch-right{right:10px}.ant-input-number-affix-wrapper{-webkit-padding-start:11px;background-color:#fff;background-image:none;border:1px solid #d9d9d9;border-radius:2px;color:rgba(0,0,0,.85);display:inline-block;display:inline-flex;font-size:14px;line-height:1.5715;min-width:0;padding:0;padding-inline-start:11px;position:relative;position:static;transition:all .3s;width:100%;width:90px}.ant-input-number-affix-wrapper::-moz-placeholder{opacity:1}.ant-input-number-affix-wrapper::placeholder{color:#bfbfbf;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ant-input-number-affix-wrapper:-moz-placeholder-shown{text-overflow:ellipsis}.ant-input-number-affix-wrapper:placeholder-shown{text-overflow:ellipsis}.ant-input-number-affix-wrapper:hover{border-color:var(--ant-primary-5);border-right-width:1px!important}.ant-input-number-affix-wrapper-focused,.ant-input-number-affix-wrapper:focus{border-color:var(--ant-primary-color-hover);border-right-width:1px!important;box-shadow:0 0 0 2px var(--ant-primary-color-outline);outline:0}.ant-input-number-affix-wrapper-disabled{background-color:#f5f5f5;border-color:#d9d9d9;box-shadow:none;color:rgba(0,0,0,.25);cursor:not-allowed;opacity:1}.ant-input-number-affix-wrapper-disabled:hover{border-color:#d9d9d9;border-right-width:1px!important}.ant-input-number-affix-wrapper[disabled]{background-color:#f5f5f5;border-color:#d9d9d9;box-shadow:none;color:rgba(0,0,0,.25);cursor:not-allowed;opacity:1}.ant-input-number-affix-wrapper[disabled]:hover{border-color:#d9d9d9;border-right-width:1px!important}.ant-input-number-affix-wrapper-borderless,.ant-input-number-affix-wrapper-borderless-disabled,.ant-input-number-affix-wrapper-borderless-focused,.ant-input-number-affix-wrapper-borderless:focus,.ant-input-number-affix-wrapper-borderless:hover,.ant-input-number-affix-wrapper-borderless[disabled]{background-color:transparent;border:none;box-shadow:none}textarea.ant-input-number-affix-wrapper{height:auto;line-height:1.5715;max-width:100%;min-height:32px;transition:all .3s,height 0s;vertical-align:bottom}.ant-input-number-affix-wrapper-lg{font-size:16px;padding:6.5px 11px}.ant-input-number-affix-wrapper-sm{padding:0 7px}.ant-input-number-affix-wrapper:not(.ant-input-number-affix-wrapper-disabled):hover{border-color:var(--ant-primary-5);border-right-width:1px!important;z-index:1}.ant-input-number-affix-wrapper-focused,.ant-input-number-affix-wrapper:focus{z-index:1}.ant-input-number-affix-wrapper-disabled .ant-input-number[disabled]{background:transparent}.ant-input-number-affix-wrapper>div.ant-input-number{border:none;outline:none;width:100%}.ant-input-number-affix-wrapper>div.ant-input-number.ant-input-number-focused{box-shadow:none!important}.ant-input-number-affix-wrapper input.ant-input-number-input{padding:0}.ant-input-number-affix-wrapper:before{content:"\\a0";visibility:hidden;width:0}.ant-input-number-prefix{-webkit-margin-end:4px;align-items:center;display:flex;flex:none;margin-inline-end:4px}.ant-input-number-group-wrapper .ant-input-number-affix-wrapper{width:100%}.ant-input-number{font-feature-settings:"tnum";background-color:#fff;background-image:none;border:1px solid #d9d9d9;border-radius:2px;box-sizing:border-box;color:rgba(0,0,0,.85);display:inline-block;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;min-width:0;padding:0;position:relative;transition:all .3s;width:100%;width:90px}.ant-input-number::-moz-placeholder{opacity:1}.ant-input-number::placeholder{color:#bfbfbf;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ant-input-number:-moz-placeholder-shown{text-overflow:ellipsis}.ant-input-number:placeholder-shown{text-overflow:ellipsis}.ant-input-number-focused,.ant-input-number:focus{border-color:var(--ant-primary-color-hover);border-right-width:1px!important;box-shadow:0 0 0 2px var(--ant-primary-color-outline);outline:0}.ant-input-number[disabled]{background-color:#f5f5f5;border-color:#d9d9d9;box-shadow:none;color:rgba(0,0,0,.25);cursor:not-allowed;opacity:1}.ant-input-number[disabled]:hover{border-color:#d9d9d9;border-right-width:1px!important}.ant-input-number-borderless,.ant-input-number-borderless-disabled,.ant-input-number-borderless-focused,.ant-input-number-borderless:focus,.ant-input-number-borderless:hover,.ant-input-number-borderless[disabled]{background-color:transparent;border:none;box-shadow:none}textarea.ant-input-number{height:auto;line-height:1.5715;max-width:100%;min-height:32px;transition:all .3s,height 0s;vertical-align:bottom}.ant-input-number-lg{padding:6.5px 11px}.ant-input-number-sm{padding:0 7px}.ant-input-number-group{font-feature-settings:"tnum";border-collapse:separate;border-spacing:0;box-sizing:border-box;color:rgba(0,0,0,.85);display:table;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0;position:relative;width:100%}.ant-input-number-group[class*=col-]{float:none;padding-left:0;padding-right:0}.ant-input-number-group>[class*=col-]{padding-right:8px}.ant-input-number-group>[class*=col-]:last-child{padding-right:0}.ant-input-number-group-addon,.ant-input-number-group-wrap,.ant-input-number-group>.ant-input-number{display:table-cell}.ant-input-number-group-addon:not(:first-child):not(:last-child),.ant-input-number-group-wrap:not(:first-child):not(:last-child),.ant-input-number-group>.ant-input-number:not(:first-child):not(:last-child){border-radius:0}.ant-input-number-group-addon,.ant-input-number-group-wrap{vertical-align:middle;white-space:nowrap;width:1px}.ant-input-number-group-wrap>*{display:block!important}.ant-input-number-group .ant-input-number{float:left;margin-bottom:0;text-align:inherit;width:100%}.ant-input-number-group .ant-input-number:focus,.ant-input-number-group .ant-input-number:hover{border-right-width:1px;z-index:1}.ant-input-search-with-button .ant-input-number-group .ant-input-number:hover{z-index:0}.ant-input-number-group-addon{background-color:#fafafa;border:1px solid #d9d9d9;border-radius:2px;color:rgba(0,0,0,.85);font-size:14px;font-weight:400;padding:0 11px;position:relative;text-align:center;transition:all .3s}.ant-input-number-group-addon .ant-select{margin:-5px -11px}.ant-input-number-group-addon .ant-select.ant-select-single:not(.ant-select-customize-input) .ant-select-selector{background-color:inherit;border:1px solid transparent;box-shadow:none}.ant-input-number-group-addon .ant-select-focused .ant-select-selector,.ant-input-number-group-addon .ant-select-open .ant-select-selector{color:var(--ant-primary-color)}.ant-input-number-group-addon .ant-cascader-picker{background-color:transparent;margin:-9px -12px}.ant-input-number-group-addon .ant-cascader-picker .ant-cascader-input{border:0;box-shadow:none;text-align:left}.ant-input-number-group-addon:first-child,.ant-input-number-group-addon:first-child .ant-select .ant-select-selector,.ant-input-number-group>.ant-input-number:first-child,.ant-input-number-group>.ant-input-number:first-child .ant-select .ant-select-selector{border-bottom-right-radius:0;border-top-right-radius:0}.ant-input-number-group>.ant-input-number-affix-wrapper:not(:first-child) .ant-input-number{border-bottom-left-radius:0;border-top-left-radius:0}.ant-input-number-group>.ant-input-number-affix-wrapper:not(:last-child) .ant-input-number{border-bottom-right-radius:0;border-top-right-radius:0}.ant-input-number-group-addon:first-child{border-right:0}.ant-input-number-group-addon:last-child{border-left:0}.ant-input-number-group-addon:last-child,.ant-input-number-group-addon:last-child .ant-select .ant-select-selector,.ant-input-number-group>.ant-input-number:last-child,.ant-input-number-group>.ant-input-number:last-child .ant-select .ant-select-selector{border-bottom-left-radius:0;border-top-left-radius:0}.ant-input-number-group-lg .ant-input-number,.ant-input-number-group-lg>.ant-input-number-group-addon{font-size:16px;padding:6.5px 11px}.ant-input-number-group-sm .ant-input-number,.ant-input-number-group-sm>.ant-input-number-group-addon{padding:0 7px}.ant-input-number-group-lg .ant-select-single .ant-select-selector{height:40px}.ant-input-number-group-sm .ant-select-single .ant-select-selector{height:24px}.ant-input-number-group .ant-input-number-affix-wrapper:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.ant-input-search .ant-input-number-group .ant-input-number-affix-wrapper:not(:last-child){border-bottom-left-radius:2px;border-top-left-radius:2px}.ant-input-number-group .ant-input-number-affix-wrapper:not(:first-child),.ant-input-search .ant-input-number-group .ant-input-number-affix-wrapper:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.ant-input-number-group.ant-input-number-group-compact{display:block}.ant-input-number-group.ant-input-number-group-compact:before{content:"";display:table}.ant-input-number-group.ant-input-number-group-compact:after{clear:both;content:"";display:table}.ant-input-number-group.ant-input-number-group-compact-addon:not(:first-child):not(:last-child),.ant-input-number-group.ant-input-number-group-compact-wrap:not(:first-child):not(:last-child),.ant-input-number-group.ant-input-number-group-compact>.ant-input-number:not(:first-child):not(:last-child){border-right-width:1px}.ant-input-number-group.ant-input-number-group-compact-addon:not(:first-child):not(:last-child):focus,.ant-input-number-group.ant-input-number-group-compact-addon:not(:first-child):not(:last-child):hover,.ant-input-number-group.ant-input-number-group-compact-wrap:not(:first-child):not(:last-child):focus,.ant-input-number-group.ant-input-number-group-compact-wrap:not(:first-child):not(:last-child):hover,.ant-input-number-group.ant-input-number-group-compact>.ant-input-number:not(:first-child):not(:last-child):focus,.ant-input-number-group.ant-input-number-group-compact>.ant-input-number:not(:first-child):not(:last-child):hover{z-index:1}.ant-input-number-group.ant-input-number-group-compact>*{border-radius:0;display:inline-block;float:none;vertical-align:top}.ant-input-number-group.ant-input-number-group-compact>.ant-input-number-affix-wrapper,.ant-input-number-group.ant-input-number-group-compact>.ant-picker-range{display:inline-flex}.ant-input-number-group.ant-input-number-group-compact>:not(:last-child){border-right-width:1px;margin-right:-1px}.ant-input-number-group.ant-input-number-group-compact .ant-input-number{float:none}.ant-input-number-group.ant-input-number-group-compact>.ant-cascader-picker .ant-input,.ant-input-number-group.ant-input-number-group-compact>.ant-input-group-wrapper .ant-input,.ant-input-number-group.ant-input-number-group-compact>.ant-select-auto-complete .ant-input,.ant-input-number-group.ant-input-number-group-compact>.ant-select>.ant-select-selector{border-radius:0;border-right-width:1px}.ant-input-number-group.ant-input-number-group-compact>.ant-cascader-picker .ant-input:focus,.ant-input-number-group.ant-input-number-group-compact>.ant-cascader-picker .ant-input:hover,.ant-input-number-group.ant-input-number-group-compact>.ant-input-group-wrapper .ant-input:focus,.ant-input-number-group.ant-input-number-group-compact>.ant-input-group-wrapper .ant-input:hover,.ant-input-number-group.ant-input-number-group-compact>.ant-select-auto-complete .ant-input:focus,.ant-input-number-group.ant-input-number-group-compact>.ant-select-auto-complete .ant-input:hover,.ant-input-number-group.ant-input-number-group-compact>.ant-select-focused,.ant-input-number-group.ant-input-number-group-compact>.ant-select>.ant-select-arrow,.ant-input-number-group.ant-input-number-group-compact>.ant-select>.ant-select-selector:focus,.ant-input-number-group.ant-input-number-group-compact>.ant-select>.ant-select-selector:hover{z-index:1}.ant-input-number-group.ant-input-number-group-compact>.ant-cascader-picker:first-child .ant-input,.ant-input-number-group.ant-input-number-group-compact>.ant-select-auto-complete:first-child .ant-input,.ant-input-number-group.ant-input-number-group-compact>.ant-select:first-child>.ant-select-selector,.ant-input-number-group.ant-input-number-group-compact>:first-child{border-bottom-left-radius:2px;border-top-left-radius:2px}.ant-input-number-group.ant-input-number-group-compact>.ant-cascader-picker-focused:last-child .ant-input,.ant-input-number-group.ant-input-number-group-compact>.ant-cascader-picker:last-child .ant-input,.ant-input-number-group.ant-input-number-group-compact>.ant-select:last-child>.ant-select-selector,.ant-input-number-group.ant-input-number-group-compact>:last-child{border-bottom-right-radius:2px;border-right-width:1px;border-top-right-radius:2px}.ant-input-number-group.ant-input-number-group-compact>.ant-select-auto-complete .ant-input{vertical-align:top}.ant-input-number-group.ant-input-number-group-compact .ant-input-group-wrapper+.ant-input-group-wrapper{margin-left:-1px}.ant-input-number-group.ant-input-number-group-compact .ant-input-group-wrapper+.ant-input-group-wrapper .ant-input-affix-wrapper,.ant-input-number-group.ant-input-number-group-compact .ant-input-group-wrapper:not(:last-child).ant-input-search>.ant-input-group>.ant-input-group-addon>.ant-input-search-button{border-radius:0}.ant-input-number-group.ant-input-number-group-compact .ant-input-group-wrapper:not(:last-child).ant-input-search>.ant-input-group>.ant-input{border-radius:2px 0 0 2px}.ant-input-number-group-wrapper{display:inline-block;text-align:start;vertical-align:top}.ant-input-number-handler{border-left:1px solid #d9d9d9;color:rgba(0,0,0,.45);display:block;font-weight:700;height:50%;line-height:0;overflow:hidden;position:relative;text-align:center;transition:all .1s linear;width:100%}.ant-input-number-handler:active{background:#f4f4f4}.ant-input-number-handler:hover .ant-input-number-handler-down-inner,.ant-input-number-handler:hover .ant-input-number-handler-up-inner{color:var(--ant-primary-5)}.ant-input-number-handler-down-inner,.ant-input-number-handler-up-inner{text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:inherit;color:rgba(0,0,0,.45);display:inline-block;font-style:normal;height:12px;line-height:0;line-height:12px;position:absolute;right:4px;text-align:center;text-transform:none;transition:all .1s linear;-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:-.125em;width:12px}.ant-input-number-handler-down-inner>*,.ant-input-number-handler-up-inner>*{line-height:1}.ant-input-number-handler-down-inner svg,.ant-input-number-handler-up-inner svg{display:inline-block}.ant-input-number-handler-down-inner:before,.ant-input-number-handler-up-inner:before{display:none}.ant-input-number-handler-down-inner .ant-input-number-handler-down-inner-icon,.ant-input-number-handler-down-inner .ant-input-number-handler-up-inner-icon,.ant-input-number-handler-up-inner .ant-input-number-handler-down-inner-icon,.ant-input-number-handler-up-inner .ant-input-number-handler-up-inner-icon{display:block}.ant-input-number:hover{border-color:var(--ant-primary-5);border-right-width:1px!important}.ant-input-number:hover+.ant-form-item-children-icon{opacity:0;transition:opacity .24s linear .24s}.ant-input-number-focused{border-color:var(--ant-primary-color-hover);border-right-width:1px!important;box-shadow:0 0 0 2px var(--ant-primary-color-outline);outline:0}.ant-input-number-disabled{background-color:#f5f5f5;border-color:#d9d9d9;box-shadow:none;color:rgba(0,0,0,.25);cursor:not-allowed;opacity:1}.ant-input-number-disabled:hover{border-color:#d9d9d9;border-right-width:1px!important}.ant-input-number-disabled .ant-input-number-input{cursor:not-allowed}.ant-input-number-disabled .ant-input-number-handler-wrap,.ant-input-number-readonly .ant-input-number-handler-wrap{display:none}.ant-input-number-input{-webkit-appearance:textfield!important;-moz-appearance:textfield!important;appearance:textfield!important;background-color:transparent;border:0;border-radius:2px;height:30px;outline:0;padding:0 11px;text-align:left;transition:all .3s linear;width:100%}.ant-input-number-input::-moz-placeholder{opacity:1}.ant-input-number-input::placeholder{color:#bfbfbf;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ant-input-number-input:-moz-placeholder-shown{text-overflow:ellipsis}.ant-input-number-input:placeholder-shown{text-overflow:ellipsis}.ant-input-number-input[type=number]::-webkit-inner-spin-button,.ant-input-number-input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;appearance:none;margin:0}.ant-input-number-lg{font-size:16px;padding:0}.ant-input-number-lg input{height:38px}.ant-input-number-sm{padding:0}.ant-input-number-sm input{height:22px;padding:0 7px}.ant-input-number-handler-wrap{background:#fff;border-radius:0 2px 2px 0;height:100%;opacity:0;position:absolute;right:0;top:0;transition:opacity .24s linear .1s;width:22px}.ant-input-number-handler-wrap .ant-input-number-handler .ant-input-number-handler-down-inner,.ant-input-number-handler-wrap .ant-input-number-handler .ant-input-number-handler-up-inner{align-items:center;display:flex;font-size:7px;justify-content:center;margin-right:0;min-width:auto}.ant-input-number-borderless .ant-input-number-handler-wrap{border-left-width:0}.ant-input-number-handler-wrap:hover .ant-input-number-handler{height:40%}.ant-input-number-focused .ant-input-number-handler-wrap,.ant-input-number:hover .ant-input-number-handler-wrap{opacity:1}.ant-input-number-handler-up{border-top-right-radius:2px;cursor:pointer}.ant-input-number-handler-up-inner{margin-top:-5px;text-align:center;top:50%}.ant-input-number-handler-up:hover{height:60%!important}.ant-input-number-handler-down{border-bottom-right-radius:2px;border-top:1px solid #d9d9d9;cursor:pointer;top:0}.ant-input-number-handler-down-inner{text-align:center;top:50%;transform:translateY(-50%)}.ant-input-number-handler-down:hover{height:60%!important}.ant-input-number-borderless .ant-input-number-handler-down{border-top-width:0}.ant-input-number-handler-down-disabled,.ant-input-number-handler-up-disabled{cursor:not-allowed}.ant-input-number-handler-down-disabled:hover .ant-input-number-handler-down-inner,.ant-input-number-handler-up-disabled:hover .ant-input-number-handler-up-inner{color:rgba(0,0,0,.25)}.ant-input-number-borderless{box-shadow:none}.ant-input-number-out-of-range input{color:var(--ant-error-color)}.ant-input-number-rtl{direction:rtl}.ant-input-number-rtl .ant-input-number-handler{border-left:0;border-right:1px solid #d9d9d9}.ant-input-number-rtl .ant-input-number-handler-wrap{left:0;right:auto}.ant-input-number-rtl.ant-input-number-borderless .ant-input-number-handler-wrap{border-right-width:0}.ant-input-number-rtl .ant-input-number-handler-up{border-top-right-radius:0}.ant-input-number-rtl .ant-input-number-handler-down{border-bottom-right-radius:0}.ant-input-number-rtl .ant-input-number-input{direction:ltr;text-align:right}.ant-input-affix-wrapper{background-color:#fff;background-image:none;border:1px solid #d9d9d9;border-radius:2px;color:rgba(0,0,0,.85);display:inline-block;display:inline-flex;font-size:14px;line-height:1.5715;min-width:0;padding:4px 11px;position:relative;transition:all .3s;width:100%}.ant-input-affix-wrapper::-moz-placeholder{opacity:1}.ant-input-affix-wrapper::placeholder{color:#bfbfbf;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ant-input-affix-wrapper:-moz-placeholder-shown{text-overflow:ellipsis}.ant-input-affix-wrapper:placeholder-shown{text-overflow:ellipsis}.ant-input-affix-wrapper:hover{border-color:var(--ant-primary-5);border-right-width:1px!important}.ant-input-rtl .ant-input-affix-wrapper:hover{border-left-width:1px!important;border-right-width:0}.ant-input-affix-wrapper-focused,.ant-input-affix-wrapper:focus{border-color:var(--ant-primary-color-hover);border-right-width:1px!important;box-shadow:0 0 0 2px var(--ant-primary-color-outline);outline:0}.ant-input-rtl .ant-input-affix-wrapper-focused,.ant-input-rtl .ant-input-affix-wrapper:focus{border-left-width:1px!important;border-right-width:0}.ant-input-affix-wrapper-disabled{background-color:#f5f5f5;border-color:#d9d9d9;box-shadow:none;color:rgba(0,0,0,.25);cursor:not-allowed;opacity:1}.ant-input-affix-wrapper-disabled:hover{border-color:#d9d9d9;border-right-width:1px!important}.ant-input-affix-wrapper[disabled]{background-color:#f5f5f5;border-color:#d9d9d9;box-shadow:none;color:rgba(0,0,0,.25);cursor:not-allowed;opacity:1}.ant-input-affix-wrapper[disabled]:hover{border-color:#d9d9d9;border-right-width:1px!important}.ant-input-affix-wrapper-borderless,.ant-input-affix-wrapper-borderless-disabled,.ant-input-affix-wrapper-borderless-focused,.ant-input-affix-wrapper-borderless:focus,.ant-input-affix-wrapper-borderless:hover,.ant-input-affix-wrapper-borderless[disabled]{background-color:transparent;border:none;box-shadow:none}textarea.ant-input-affix-wrapper{height:auto;line-height:1.5715;max-width:100%;min-height:32px;transition:all .3s,height 0s;vertical-align:bottom}.ant-input-affix-wrapper-lg{font-size:16px;padding:6.5px 11px}.ant-input-affix-wrapper-sm{padding:0 7px}.ant-input-affix-wrapper-rtl{direction:rtl}.ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled):hover{border-color:var(--ant-primary-5);border-right-width:1px!important;z-index:1}.ant-input-rtl .ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled):hover{border-left-width:1px!important;border-right-width:0}.ant-input-search-with-button .ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled):hover{z-index:0}.ant-input-affix-wrapper-focused,.ant-input-affix-wrapper:focus{z-index:1}.ant-input-affix-wrapper-disabled .ant-input[disabled]{background:transparent}.ant-input-affix-wrapper>input.ant-input{border:none;outline:none;padding:0}.ant-input-affix-wrapper>input.ant-input:focus{box-shadow:none!important}.ant-input-affix-wrapper:before{content:"\\a0";visibility:hidden;width:0}.ant-input-prefix,.ant-input-suffix{align-items:center;display:flex;flex:none}.ant-input-show-count-suffix{color:rgba(0,0,0,.45)}.ant-input-show-count-has-suffix{margin-right:2px}.ant-input-prefix{margin-right:4px}.ant-input-suffix{margin-left:4px}.anticon.ant-input-clear-icon{color:rgba(0,0,0,.25);cursor:pointer;font-size:12px;margin:0;transition:color .3s;vertical-align:-1px}.anticon.ant-input-clear-icon:hover{color:rgba(0,0,0,.45)}.anticon.ant-input-clear-icon:active{color:rgba(0,0,0,.85)}.anticon.ant-input-clear-icon-hidden{visibility:hidden}.anticon.ant-input-clear-icon-has-suffix{margin:0 4px}.ant-input-affix-wrapper-textarea-with-clear-btn{border:0!important;padding:0!important}.ant-input-affix-wrapper-textarea-with-clear-btn .ant-input-clear-icon{position:absolute;right:8px;top:8px;z-index:1}.ant-input{font-feature-settings:"tnum";background-color:#fff;background-image:none;border:1px solid #d9d9d9;border-radius:2px;box-sizing:border-box;color:rgba(0,0,0,.85);display:inline-block;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;min-width:0;padding:4px 11px;position:relative;transition:all .3s;width:100%}.ant-input::-moz-placeholder{opacity:1}.ant-input::placeholder{color:#bfbfbf;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ant-input:-moz-placeholder-shown{text-overflow:ellipsis}.ant-input:placeholder-shown{text-overflow:ellipsis}.ant-input:hover{border-color:var(--ant-primary-5);border-right-width:1px!important}.ant-input-rtl .ant-input:hover{border-left-width:1px!important;border-right-width:0}.ant-input-focused,.ant-input:focus{border-color:var(--ant-primary-color-hover);border-right-width:1px!important;box-shadow:0 0 0 2px var(--ant-primary-color-outline);outline:0}.ant-input-rtl .ant-input-focused,.ant-input-rtl .ant-input:focus{border-left-width:1px!important;border-right-width:0}.ant-input-disabled{background-color:#f5f5f5;border-color:#d9d9d9;box-shadow:none;color:rgba(0,0,0,.25);cursor:not-allowed;opacity:1}.ant-input-disabled:hover{border-color:#d9d9d9;border-right-width:1px!important}.ant-input[disabled]{background-color:#f5f5f5;border-color:#d9d9d9;box-shadow:none;color:rgba(0,0,0,.25);cursor:not-allowed;opacity:1}.ant-input[disabled]:hover{border-color:#d9d9d9;border-right-width:1px!important}.ant-input-borderless,.ant-input-borderless-disabled,.ant-input-borderless-focused,.ant-input-borderless:focus,.ant-input-borderless:hover,.ant-input-borderless[disabled]{background-color:transparent;border:none;box-shadow:none}textarea.ant-input{height:auto;line-height:1.5715;max-width:100%;min-height:32px;transition:all .3s,height 0s;vertical-align:bottom}.ant-input-lg{font-size:16px;padding:6.5px 11px}.ant-input-sm{padding:0 7px}.ant-input-rtl{direction:rtl}.ant-input-group{font-feature-settings:"tnum";border-collapse:separate;border-spacing:0;box-sizing:border-box;color:rgba(0,0,0,.85);display:table;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0;position:relative;width:100%}.ant-input-group[class*=col-]{float:none;padding-left:0;padding-right:0}.ant-input-group>[class*=col-]{padding-right:8px}.ant-input-group>[class*=col-]:last-child{padding-right:0}.ant-input-group-addon,.ant-input-group-wrap,.ant-input-group>.ant-input{display:table-cell}.ant-input-group-addon:not(:first-child):not(:last-child),.ant-input-group-wrap:not(:first-child):not(:last-child),.ant-input-group>.ant-input:not(:first-child):not(:last-child){border-radius:0}.ant-input-group-addon,.ant-input-group-wrap{vertical-align:middle;white-space:nowrap;width:1px}.ant-input-group-wrap>*{display:block!important}.ant-input-group .ant-input{float:left;margin-bottom:0;text-align:inherit;width:100%}.ant-input-group .ant-input:focus,.ant-input-group .ant-input:hover{border-right-width:1px;z-index:1}.ant-input-search-with-button .ant-input-group .ant-input:hover{z-index:0}.ant-input-group-addon{background-color:#fafafa;border:1px solid #d9d9d9;border-radius:2px;color:rgba(0,0,0,.85);font-size:14px;font-weight:400;padding:0 11px;position:relative;text-align:center;transition:all .3s}.ant-input-group-addon .ant-select{margin:-5px -11px}.ant-input-group-addon .ant-select.ant-select-single:not(.ant-select-customize-input) .ant-select-selector{background-color:inherit;border:1px solid transparent;box-shadow:none}.ant-input-group-addon .ant-select-focused .ant-select-selector,.ant-input-group-addon .ant-select-open .ant-select-selector{color:var(--ant-primary-color)}.ant-input-group-addon .ant-cascader-picker{background-color:transparent;margin:-9px -12px}.ant-input-group-addon .ant-cascader-picker .ant-cascader-input{border:0;box-shadow:none;text-align:left}.ant-input-group-addon:first-child,.ant-input-group-addon:first-child .ant-select .ant-select-selector,.ant-input-group>.ant-input:first-child,.ant-input-group>.ant-input:first-child .ant-select .ant-select-selector{border-bottom-right-radius:0;border-top-right-radius:0}.ant-input-group>.ant-input-affix-wrapper:not(:first-child) .ant-input{border-bottom-left-radius:0;border-top-left-radius:0}.ant-input-group>.ant-input-affix-wrapper:not(:last-child) .ant-input{border-bottom-right-radius:0;border-top-right-radius:0}.ant-input-group-addon:first-child{border-right:0}.ant-input-group-addon:last-child{border-left:0}.ant-input-group-addon:last-child,.ant-input-group-addon:last-child .ant-select .ant-select-selector,.ant-input-group>.ant-input:last-child,.ant-input-group>.ant-input:last-child .ant-select .ant-select-selector{border-bottom-left-radius:0;border-top-left-radius:0}.ant-input-group-lg .ant-input,.ant-input-group-lg>.ant-input-group-addon{font-size:16px;padding:6.5px 11px}.ant-input-group-sm .ant-input,.ant-input-group-sm>.ant-input-group-addon{padding:0 7px}.ant-input-group-lg .ant-select-single .ant-select-selector{height:40px}.ant-input-group-sm .ant-select-single .ant-select-selector{height:24px}.ant-input-group .ant-input-affix-wrapper:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.ant-input-search .ant-input-group .ant-input-affix-wrapper:not(:last-child){border-bottom-left-radius:2px;border-top-left-radius:2px}.ant-input-group .ant-input-affix-wrapper:not(:first-child),.ant-input-search .ant-input-group .ant-input-affix-wrapper:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.ant-input-group.ant-input-group-compact{display:block}.ant-input-group.ant-input-group-compact:before{content:"";display:table}.ant-input-group.ant-input-group-compact:after{clear:both;content:"";display:table}.ant-input-group.ant-input-group-compact-addon:not(:first-child):not(:last-child),.ant-input-group.ant-input-group-compact-wrap:not(:first-child):not(:last-child),.ant-input-group.ant-input-group-compact>.ant-input:not(:first-child):not(:last-child){border-right-width:1px}.ant-input-group.ant-input-group-compact-addon:not(:first-child):not(:last-child):focus,.ant-input-group.ant-input-group-compact-addon:not(:first-child):not(:last-child):hover,.ant-input-group.ant-input-group-compact-wrap:not(:first-child):not(:last-child):focus,.ant-input-group.ant-input-group-compact-wrap:not(:first-child):not(:last-child):hover,.ant-input-group.ant-input-group-compact>.ant-input:not(:first-child):not(:last-child):focus,.ant-input-group.ant-input-group-compact>.ant-input:not(:first-child):not(:last-child):hover{z-index:1}.ant-input-group.ant-input-group-compact>*{border-radius:0;display:inline-block;float:none;vertical-align:top}.ant-input-group.ant-input-group-compact>.ant-input-affix-wrapper,.ant-input-group.ant-input-group-compact>.ant-picker-range{display:inline-flex}.ant-input-group.ant-input-group-compact>:not(:last-child){border-right-width:1px;margin-right:-1px}.ant-input-group.ant-input-group-compact .ant-input{float:none}.ant-input-group.ant-input-group-compact>.ant-cascader-picker .ant-input,.ant-input-group.ant-input-group-compact>.ant-input-group-wrapper .ant-input,.ant-input-group.ant-input-group-compact>.ant-select-auto-complete .ant-input,.ant-input-group.ant-input-group-compact>.ant-select>.ant-select-selector{border-radius:0;border-right-width:1px}.ant-input-group.ant-input-group-compact>.ant-cascader-picker .ant-input:focus,.ant-input-group.ant-input-group-compact>.ant-cascader-picker .ant-input:hover,.ant-input-group.ant-input-group-compact>.ant-input-group-wrapper .ant-input:focus,.ant-input-group.ant-input-group-compact>.ant-input-group-wrapper .ant-input:hover,.ant-input-group.ant-input-group-compact>.ant-select-auto-complete .ant-input:focus,.ant-input-group.ant-input-group-compact>.ant-select-auto-complete .ant-input:hover,.ant-input-group.ant-input-group-compact>.ant-select-focused,.ant-input-group.ant-input-group-compact>.ant-select>.ant-select-arrow,.ant-input-group.ant-input-group-compact>.ant-select>.ant-select-selector:focus,.ant-input-group.ant-input-group-compact>.ant-select>.ant-select-selector:hover{z-index:1}.ant-input-group.ant-input-group-compact>.ant-cascader-picker:first-child .ant-input,.ant-input-group.ant-input-group-compact>.ant-select-auto-complete:first-child .ant-input,.ant-input-group.ant-input-group-compact>.ant-select:first-child>.ant-select-selector,.ant-input-group.ant-input-group-compact>:first-child{border-bottom-left-radius:2px;border-top-left-radius:2px}.ant-input-group.ant-input-group-compact>.ant-cascader-picker-focused:last-child .ant-input,.ant-input-group.ant-input-group-compact>.ant-cascader-picker:last-child .ant-input,.ant-input-group.ant-input-group-compact>.ant-select:last-child>.ant-select-selector,.ant-input-group.ant-input-group-compact>:last-child{border-bottom-right-radius:2px;border-right-width:1px;border-top-right-radius:2px}.ant-input-group.ant-input-group-compact>.ant-select-auto-complete .ant-input{vertical-align:top}.ant-input-group.ant-input-group-compact .ant-input-group-wrapper+.ant-input-group-wrapper{margin-left:-1px}.ant-input-group.ant-input-group-compact .ant-input-group-wrapper+.ant-input-group-wrapper .ant-input-affix-wrapper,.ant-input-group.ant-input-group-compact .ant-input-group-wrapper:not(:last-child).ant-input-search>.ant-input-group>.ant-input-group-addon>.ant-input-search-button{border-radius:0}.ant-input-group.ant-input-group-compact .ant-input-group-wrapper:not(:last-child).ant-input-search>.ant-input-group>.ant-input{border-radius:2px 0 0 2px}.ant-input-group-rtl .ant-input-group-addon:first-child,.ant-input-group>.ant-input-rtl:first-child{border-radius:0 2px 2px 0}.ant-input-group-rtl .ant-input-group-addon:first-child{border-left:0;border-right:1px solid #d9d9d9}.ant-input-group-rtl .ant-input-group-addon:last-child{border-left:1px solid #d9d9d9;border-right:0}.ant-input-group-rtl.ant-input-group .ant-input-affix-wrapper:not(:first-child),.ant-input-group-rtl.ant-input-group-addon:last-child,.ant-input-group-rtl.ant-input-group>.ant-input:last-child{border-radius:2px 0 0 2px}.ant-input-group-rtl.ant-input-group .ant-input-affix-wrapper:not(:last-child){border-radius:0 2px 2px 0}.ant-input-group-rtl.ant-input-group.ant-input-group-compact>:not(:last-child){border-left-width:1px;margin-left:-1px;margin-right:0}.ant-input-group-rtl.ant-input-group.ant-input-group-compact>.ant-cascader-picker:first-child .ant-input,.ant-input-group-rtl.ant-input-group.ant-input-group-compact>.ant-select-auto-complete:first-child .ant-input,.ant-input-group-rtl.ant-input-group.ant-input-group-compact>.ant-select:first-child>.ant-select-selector,.ant-input-group-rtl.ant-input-group.ant-input-group-compact>:first-child{border-radius:0 2px 2px 0}.ant-input-group-rtl.ant-input-group.ant-input-group-compact>.ant-cascader-picker-focused:last-child .ant-input,.ant-input-group-rtl.ant-input-group.ant-input-group-compact>.ant-cascader-picker:last-child .ant-input,.ant-input-group-rtl.ant-input-group.ant-input-group-compact>.ant-select-auto-complete:last-child .ant-input,.ant-input-group-rtl.ant-input-group.ant-input-group-compact>.ant-select:last-child>.ant-select-selector,.ant-input-group-rtl.ant-input-group.ant-input-group-compact>:last-child{border-left-width:1px;border-radius:2px 0 0 2px}.ant-input-group.ant-input-group-compact .ant-input-group-wrapper-rtl+.ant-input-group-wrapper-rtl{margin-left:0;margin-right:-1px}.ant-input-group.ant-input-group-compact .ant-input-group-wrapper-rtl:not(:last-child).ant-input-search>.ant-input-group>.ant-input{border-radius:0 2px 2px 0}.ant-input-group-wrapper{display:inline-block;text-align:start;vertical-align:top;width:100%}.ant-input-password-icon{color:rgba(0,0,0,.45);cursor:pointer;transition:all .3s}.ant-input-password-icon:hover{color:rgba(0,0,0,.85)}.ant-input[type=color]{height:32px}.ant-input[type=color].ant-input-lg{height:40px}.ant-input[type=color].ant-input-sm{height:24px;padding-bottom:3px;padding-top:3px}.ant-input-textarea-show-count>.ant-input{height:100%}.ant-input-textarea-show-count:after{color:rgba(0,0,0,.45);content:attr(data-count);float:right;pointer-events:none;white-space:nowrap}.ant-input-search .ant-input:focus,.ant-input-search .ant-input:hover{border-color:var(--ant-primary-5)}.ant-input-search .ant-input:focus+.ant-input-group-addon .ant-input-search-button:not(.ant-btn-primary),.ant-input-search .ant-input:hover+.ant-input-group-addon .ant-input-search-button:not(.ant-btn-primary){border-left-color:var(--ant-primary-5)}.ant-input-search .ant-input-affix-wrapper{border-radius:0}.ant-input-search .ant-input-lg{line-height:1.5713}.ant-input-search>.ant-input-group>.ant-input-group-addon:last-child{border:0;left:-1px;padding:0}.ant-input-search>.ant-input-group>.ant-input-group-addon:last-child .ant-input-search-button{border-radius:0 2px 2px 0;padding-bottom:0;padding-top:0}.ant-input-search>.ant-input-group>.ant-input-group-addon:last-child .ant-input-search-button:not(.ant-btn-primary){color:rgba(0,0,0,.45)}.ant-input-search>.ant-input-group>.ant-input-group-addon:last-child .ant-input-search-button:not(.ant-btn-primary).ant-btn-loading:before{bottom:0;left:0;right:0;top:0}.ant-input-search-button{height:32px}.ant-input-search-button:focus,.ant-input-search-button:hover{z-index:1}.ant-input-search-large .ant-input-search-button{height:40px}.ant-input-search-small .ant-input-search-button{height:24px}.ant-input-group-rtl,.ant-input-group-wrapper-rtl{direction:rtl}.ant-input-affix-wrapper.ant-input-affix-wrapper-rtl>input.ant-input{border:none;outline:none}.ant-input-affix-wrapper-rtl .ant-input-prefix{margin:0 0 0 4px}.ant-input-affix-wrapper-rtl .ant-input-suffix{margin:0 4px 0 0}.ant-input-textarea-rtl{direction:rtl}.ant-input-textarea-rtl.ant-input-textarea-show-count:after{text-align:left}.ant-input-affix-wrapper-rtl .ant-input-clear-icon-has-suffix{margin-left:4px;margin-right:0}.ant-input-affix-wrapper-rtl .ant-input-clear-icon{left:8px;right:auto}.ant-input-search-rtl{direction:rtl}.ant-input-search-rtl .ant-input:focus+.ant-input-group-addon .ant-input-search-button:not(.ant-btn-primary),.ant-input-search-rtl .ant-input:hover+.ant-input-group-addon .ant-input-search-button:not(.ant-btn-primary){border-left-color:#d9d9d9;border-right-color:var(--ant-primary-5)}.ant-input-search-rtl>.ant-input-group>.ant-input-affix-wrapper-focused,.ant-input-search-rtl>.ant-input-group>.ant-input-affix-wrapper:hover{border-right-color:var(--ant-primary-5)}.ant-input-search-rtl>.ant-input-group>.ant-input-group-addon{left:auto;right:-1px}.ant-input-search-rtl>.ant-input-group>.ant-input-group-addon .ant-input-search-button{border-radius:2px 0 0 2px}@media (-ms-high-contrast:none),screen and (-ms-high-contrast:active){.ant-input{height:32px}.ant-input-lg{height:40px}.ant-input-sm{height:24px}.ant-input-affix-wrapper>input.ant-input{height:auto}}.ant-layout{background:#f0f2f5;display:flex;flex:auto;flex-direction:column;min-height:0}.ant-layout,.ant-layout *{box-sizing:border-box}.ant-layout.ant-layout-has-sider{flex-direction:row}.ant-layout.ant-layout-has-sider>.ant-layout,.ant-layout.ant-layout-has-sider>.ant-layout-content{width:0}.ant-layout-footer,.ant-layout-header{flex:0 0 auto}.ant-layout-header{background:#001529;color:rgba(0,0,0,.85);height:64px;line-height:64px;padding:0 50px}.ant-layout-footer{background:#f0f2f5;color:rgba(0,0,0,.85);font-size:14px;padding:24px 50px}.ant-layout-content{flex:auto;min-height:0}.ant-layout-sider{background:#001529;min-width:0;position:relative;transition:all .2s}.ant-layout-sider-children{height:100%;margin-top:-.1px;padding-top:.1px}.ant-layout-sider-children .ant-menu.ant-menu-inline-collapsed{width:auto}.ant-layout-sider-has-trigger{padding-bottom:48px}.ant-layout-sider-right{order:1}.ant-layout-sider-trigger{background:#002140;bottom:0;color:#fff;cursor:pointer;height:48px;line-height:48px;position:fixed;text-align:center;transition:all .2s;z-index:1}.ant-layout-sider-zero-width>*{overflow:hidden}.ant-layout-sider-zero-width-trigger{background:#001529;border-radius:0 2px 2px 0;color:#fff;cursor:pointer;font-size:18px;height:42px;line-height:42px;position:absolute;right:-36px;text-align:center;top:64px;transition:background .3s ease;width:36px;z-index:1}.ant-layout-sider-zero-width-trigger:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0;transition:all .3s}.ant-layout-sider-zero-width-trigger:hover:after{background:hsla(0,0%,100%,.1)}.ant-layout-sider-zero-width-trigger-right{border-radius:2px 0 0 2px;left:-36px}.ant-layout-sider-light{background:#fff}.ant-layout-sider-light .ant-layout-sider-trigger,.ant-layout-sider-light .ant-layout-sider-zero-width-trigger{background:#fff;color:rgba(0,0,0,.85)}.ant-layout-rtl{direction:rtl}.ant-list{font-feature-settings:"tnum";box-sizing:border-box;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0;position:relative}.ant-list *{outline:none}.ant-list-pagination{margin-top:24px;text-align:right}.ant-list-pagination .ant-pagination-options{text-align:left}.ant-list-more{margin-top:12px;text-align:center}.ant-list-more button{padding-left:32px;padding-right:32px}.ant-list-spin{min-height:40px;text-align:center}.ant-list-empty-text{color:rgba(0,0,0,.25);font-size:14px;padding:16px;text-align:center}.ant-list-items{list-style:none;margin:0;padding:0}.ant-list-item{align-items:center;color:rgba(0,0,0,.85);display:flex;justify-content:space-between;padding:12px 0}.ant-list-item-meta{align-items:flex-start;display:flex;flex:1;max-width:100%}.ant-list-item-meta-avatar{margin-right:16px}.ant-list-item-meta-content{color:rgba(0,0,0,.85);flex:1 0;width:0}.ant-list-item-meta-title{color:rgba(0,0,0,.85);font-size:14px;line-height:1.5715;margin-bottom:4px}.ant-list-item-meta-title>a{color:rgba(0,0,0,.85);transition:all .3s}.ant-list-item-meta-title>a:hover{color:var(--ant-primary-color)}.ant-list-item-meta-description{color:rgba(0,0,0,.45);font-size:14px;line-height:1.5715}.ant-list-item-action{flex:0 0 auto;font-size:0;list-style:none;margin-left:48px;padding:0}.ant-list-item-action>li{color:rgba(0,0,0,.45);display:inline-block;font-size:14px;line-height:1.5715;padding:0 8px;position:relative;text-align:center}.ant-list-item-action>li:first-child{padding-left:0}.ant-list-item-action-split{background-color:#f0f0f0;height:14px;margin-top:-7px;position:absolute;right:0;top:50%;width:1px}.ant-list-footer,.ant-list-header{background:transparent}.ant-list-footer,.ant-list-header{padding-bottom:12px;padding-top:12px}.ant-list-empty{color:rgba(0,0,0,.45);font-size:12px;padding:16px 0;text-align:center}.ant-list-split .ant-list-item{border-bottom:1px solid #f0f0f0}.ant-list-split .ant-list-item:last-child{border-bottom:none}.ant-list-split .ant-list-header{border-bottom:1px solid #f0f0f0}.ant-list-split.ant-list-empty .ant-list-footer{border-top:1px solid #f0f0f0}.ant-list-loading .ant-list-spin-nested-loading{min-height:32px}.ant-list-split.ant-list-something-after-last-item .ant-spin-container>.ant-list-items>.ant-list-item:last-child{border-bottom:1px solid #f0f0f0}.ant-list-lg .ant-list-item{padding:16px 24px}.ant-list-sm .ant-list-item{padding:8px 16px}.ant-list-vertical .ant-list-item{align-items:normal}.ant-list-vertical .ant-list-item-main{display:block;flex:1}.ant-list-vertical .ant-list-item-extra{margin-left:40px}.ant-list-vertical .ant-list-item-meta{margin-bottom:16px}.ant-list-vertical .ant-list-item-meta-title{color:rgba(0,0,0,.85);font-size:16px;line-height:24px;margin-bottom:12px}.ant-list-vertical .ant-list-item-action{margin-left:auto;margin-top:16px}.ant-list-vertical .ant-list-item-action>li{padding:0 16px}.ant-list-vertical .ant-list-item-action>li:first-child{padding-left:0}.ant-list-grid .ant-col>.ant-list-item{border-bottom:none;display:block;margin-bottom:16px;max-width:100%;padding-bottom:0;padding-top:0}.ant-list-item-no-flex{display:block}.ant-list:not(.ant-list-vertical) .ant-list-item-no-flex .ant-list-item-action{float:right}.ant-list-bordered{border:1px solid #d9d9d9;border-radius:2px}.ant-list-bordered .ant-list-footer,.ant-list-bordered .ant-list-header,.ant-list-bordered .ant-list-item{padding-left:24px;padding-right:24px}.ant-list-bordered .ant-list-pagination{margin:16px 24px}.ant-list-bordered.ant-list-sm .ant-list-footer,.ant-list-bordered.ant-list-sm .ant-list-header,.ant-list-bordered.ant-list-sm .ant-list-item{padding:8px 16px}.ant-list-bordered.ant-list-lg .ant-list-footer,.ant-list-bordered.ant-list-lg .ant-list-header,.ant-list-bordered.ant-list-lg .ant-list-item{padding:16px 24px}@media screen and (max-width:768px){.ant-list-item-action,.ant-list-vertical .ant-list-item-extra{margin-left:24px}}@media screen and (max-width:576px){.ant-list-item{flex-wrap:wrap}.ant-list-item-action{margin-left:12px}.ant-list-vertical .ant-list-item{flex-wrap:wrap-reverse}.ant-list-vertical .ant-list-item-main{min-width:220px}.ant-list-vertical .ant-list-item-extra{margin:auto auto 16px}}.ant-list-rtl{direction:rtl;text-align:right}.ant-list-rtl .ReactVirtualized__List .ant-list-item{direction:rtl}.ant-list-rtl .ant-list-pagination{text-align:left}.ant-list-rtl .ant-list-item-meta-avatar{margin-left:16px;margin-right:0}.ant-list-rtl .ant-list-item-action{margin-left:0;margin-right:48px}.ant-list.ant-list-rtl .ant-list-item-action>li:first-child{padding-left:16px;padding-right:0}.ant-list-rtl .ant-list-item-action-split{left:0;right:auto}.ant-list-rtl.ant-list-vertical .ant-list-item-extra{margin-left:0;margin-right:40px}.ant-list-rtl.ant-list-vertical .ant-list-item-action{margin-right:auto}.ant-list-rtl .ant-list-vertical .ant-list-item-action>li:first-child{padding-left:16px;padding-right:0}.ant-list-rtl .ant-list:not(.ant-list-vertical) .ant-list-item-no-flex .ant-list-item-action{float:left}@media screen and (max-width:768px){.ant-list-rtl .ant-list-item-action,.ant-list-rtl .ant-list-vertical .ant-list-item-extra{margin-left:0;margin-right:24px}}@media screen and (max-width:576px){.ant-list-rtl .ant-list-item-action{margin-left:0;margin-right:22px}.ant-list-rtl.ant-list-vertical .ant-list-item-extra{margin:auto auto 16px}}.ant-spin{font-feature-settings:"tnum";box-sizing:border-box;color:rgba(0,0,0,.85);color:var(--ant-primary-color);display:none;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;opacity:0;padding:0;position:absolute;text-align:center;transition:transform .3s cubic-bezier(.78,.14,.15,.86);vertical-align:middle}.ant-spin-spinning{display:inline-block;opacity:1;position:static}.ant-spin-nested-loading{position:relative}.ant-spin-nested-loading>div>.ant-spin{display:block;height:100%;left:0;max-height:400px;position:absolute;top:0;width:100%;z-index:4}.ant-spin-nested-loading>div>.ant-spin .ant-spin-dot{left:50%;margin:-10px;position:absolute;top:50%}.ant-spin-nested-loading>div>.ant-spin .ant-spin-text{padding-top:5px;position:absolute;text-shadow:0 1px 2px #fff;top:50%;width:100%}.ant-spin-nested-loading>div>.ant-spin.ant-spin-show-text .ant-spin-dot{margin-top:-20px}.ant-spin-nested-loading>div>.ant-spin-sm .ant-spin-dot{margin:-7px}.ant-spin-nested-loading>div>.ant-spin-sm .ant-spin-text{padding-top:2px}.ant-spin-nested-loading>div>.ant-spin-sm.ant-spin-show-text .ant-spin-dot{margin-top:-17px}.ant-spin-nested-loading>div>.ant-spin-lg .ant-spin-dot{margin:-16px}.ant-spin-nested-loading>div>.ant-spin-lg .ant-spin-text{padding-top:11px}.ant-spin-nested-loading>div>.ant-spin-lg.ant-spin-show-text .ant-spin-dot{margin-top:-26px}.ant-spin-container{position:relative;transition:opacity .3s}.ant-spin-container:after{background:#fff;bottom:0;content:"";display:none\\9;height:100%;left:0;opacity:0;pointer-events:none;position:absolute;right:0;top:0;transition:all .3s;width:100%;z-index:10}.ant-spin-blur{clear:both;opacity:.5;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ant-spin-blur:after{opacity:.4;pointer-events:auto}.ant-spin-tip{color:rgba(0,0,0,.45)}.ant-spin-dot{display:inline-block;font-size:20px;height:1em;position:relative;width:1em}.ant-spin-dot-item{-webkit-animation:antSpinMove 1s linear infinite alternate;animation:antSpinMove 1s linear infinite alternate;background-color:var(--ant-primary-color);border-radius:100%;display:block;height:9px;opacity:.3;position:absolute;transform:scale(.75);transform-origin:50% 50%;width:9px}.ant-spin-dot-item:first-child{left:0;top:0}.ant-spin-dot-item:nth-child(2){-webkit-animation-delay:.4s;animation-delay:.4s;right:0;top:0}.ant-spin-dot-item:nth-child(3){-webkit-animation-delay:.8s;animation-delay:.8s;bottom:0;right:0}.ant-spin-dot-item:nth-child(4){-webkit-animation-delay:1.2s;animation-delay:1.2s;bottom:0;left:0}.ant-spin-dot-spin{-webkit-animation:antRotate 1.2s linear infinite;animation:antRotate 1.2s linear infinite;transform:rotate(45deg)}.ant-spin-sm .ant-spin-dot{font-size:14px}.ant-spin-sm .ant-spin-dot i{height:6px;width:6px}.ant-spin-lg .ant-spin-dot{font-size:32px}.ant-spin-lg .ant-spin-dot i{height:14px;width:14px}.ant-spin.ant-spin-show-text .ant-spin-text{display:block}@media (-ms-high-contrast:active),(-ms-high-contrast:none){.ant-spin-blur{background:#fff;opacity:.5}}@-webkit-keyframes antSpinMove{to{opacity:1}}@keyframes antSpinMove{to{opacity:1}}@-webkit-keyframes antRotate{to{transform:rotate(405deg)}}@keyframes antRotate{to{transform:rotate(405deg)}}.ant-spin-rtl{direction:rtl}.ant-spin-rtl .ant-spin-dot-spin{-webkit-animation-name:antRotateRtl;animation-name:antRotateRtl;transform:rotate(-45deg)}@-webkit-keyframes antRotateRtl{to{transform:rotate(-405deg)}}@keyframes antRotateRtl{to{transform:rotate(-405deg)}}.ant-pagination{font-feature-settings:"tnum";box-sizing:border-box;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715}.ant-pagination,.ant-pagination ol,.ant-pagination ul{list-style:none;margin:0;padding:0}.ant-pagination:after{clear:both;content:" ";display:block;height:0;overflow:hidden;visibility:hidden}.ant-pagination-item,.ant-pagination-total-text{display:inline-block;height:32px;line-height:30px;margin-right:8px;vertical-align:middle}.ant-pagination-item{background-color:#fff;border:1px solid #d9d9d9;border-radius:2px;cursor:pointer;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;list-style:none;min-width:32px;outline:0;text-align:center;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ant-pagination-item a{color:rgba(0,0,0,.85);display:block;padding:0 6px;transition:none}.ant-pagination-item a:hover{text-decoration:none}.ant-pagination-item:hover{border-color:var(--ant-primary-color);transition:all .3s}.ant-pagination-item:hover a{color:var(--ant-primary-color)}.ant-pagination-item:focus-visible{border-color:var(--ant-primary-color);transition:all .3s}.ant-pagination-item:focus-visible a{color:var(--ant-primary-color)}.ant-pagination-item-active{background:#fff;border-color:var(--ant-primary-color);font-weight:500}.ant-pagination-item-active a{color:var(--ant-primary-color)}.ant-pagination-item-active:hover{border-color:var(--ant-primary-5)}.ant-pagination-item-active:focus-visible{border-color:var(--ant-primary-5)}.ant-pagination-item-active:hover a{color:var(--ant-primary-5)}.ant-pagination-item-active:focus-visible a{color:var(--ant-primary-5)}.ant-pagination-jump-next,.ant-pagination-jump-prev{outline:0}.ant-pagination-jump-next .ant-pagination-item-container,.ant-pagination-jump-prev .ant-pagination-item-container{position:relative}.ant-pagination-jump-next .ant-pagination-item-container .ant-pagination-item-link-icon,.ant-pagination-jump-prev .ant-pagination-item-container .ant-pagination-item-link-icon{color:var(--ant-primary-color);font-size:12px;letter-spacing:-1px;opacity:0;transition:all .2s}.ant-pagination-jump-next .ant-pagination-item-container .ant-pagination-item-link-icon-svg,.ant-pagination-jump-prev .ant-pagination-item-container .ant-pagination-item-link-icon-svg{bottom:0;left:0;margin:auto;right:0;top:0}.ant-pagination-jump-next .ant-pagination-item-container .ant-pagination-item-ellipsis,.ant-pagination-jump-prev .ant-pagination-item-container .ant-pagination-item-ellipsis{bottom:0;color:rgba(0,0,0,.25);display:block;font-family:Arial,Helvetica,sans-serif;left:0;letter-spacing:2px;margin:auto;opacity:1;position:absolute;right:0;text-align:center;text-indent:.13em;top:0;transition:all .2s}.ant-pagination-jump-next:hover .ant-pagination-item-link-icon,.ant-pagination-jump-prev:hover .ant-pagination-item-link-icon{opacity:1}.ant-pagination-jump-next:hover .ant-pagination-item-ellipsis,.ant-pagination-jump-prev:hover .ant-pagination-item-ellipsis{opacity:0}.ant-pagination-jump-next:focus-visible .ant-pagination-item-link-icon,.ant-pagination-jump-prev:focus-visible .ant-pagination-item-link-icon{opacity:1}.ant-pagination-jump-next:focus-visible .ant-pagination-item-ellipsis,.ant-pagination-jump-prev:focus-visible .ant-pagination-item-ellipsis{opacity:0}.ant-pagination-jump-next,.ant-pagination-jump-prev,.ant-pagination-prev{margin-right:8px}.ant-pagination-jump-next,.ant-pagination-jump-prev,.ant-pagination-next,.ant-pagination-prev{border-radius:2px;color:rgba(0,0,0,.85);cursor:pointer;display:inline-block;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;height:32px;line-height:32px;list-style:none;min-width:32px;text-align:center;transition:all .3s;vertical-align:middle}.ant-pagination-next,.ant-pagination-prev{font-family:Arial,Helvetica,sans-serif;outline:0}.ant-pagination-next button,.ant-pagination-prev button{color:rgba(0,0,0,.85);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ant-pagination-next:hover button,.ant-pagination-prev:hover button{border-color:var(--ant-primary-5)}.ant-pagination-next .ant-pagination-item-link,.ant-pagination-prev .ant-pagination-item-link{background-color:#fff;border:1px solid #d9d9d9;border-radius:2px;display:block;font-size:12px;height:100%;outline:none;padding:0;text-align:center;transition:all .3s;width:100%}.ant-pagination-next:focus-visible .ant-pagination-item-link,.ant-pagination-prev:focus-visible .ant-pagination-item-link{border-color:var(--ant-primary-color);color:var(--ant-primary-color)}.ant-pagination-next:hover .ant-pagination-item-link,.ant-pagination-prev:hover .ant-pagination-item-link{border-color:var(--ant-primary-color);color:var(--ant-primary-color)}.ant-pagination-disabled,.ant-pagination-disabled:hover{cursor:not-allowed}.ant-pagination-disabled .ant-pagination-item-link,.ant-pagination-disabled:hover .ant-pagination-item-link{border-color:#d9d9d9;color:rgba(0,0,0,.25);cursor:not-allowed}.ant-pagination-disabled:focus-visible{cursor:not-allowed}.ant-pagination-disabled:focus-visible .ant-pagination-item-link{border-color:#d9d9d9;color:rgba(0,0,0,.25);cursor:not-allowed}.ant-pagination-slash{margin:0 10px 0 5px}.ant-pagination-options{display:inline-block;margin-left:16px;vertical-align:middle}@media (-ms-high-contrast:none){.ant-pagination-options,.ant-pagination-options ::-ms-backdrop{vertical-align:top}}.ant-pagination-options-size-changer.ant-select{display:inline-block;width:auto}.ant-pagination-options-quick-jumper{display:inline-block;height:32px;line-height:32px;margin-left:8px;vertical-align:top}.ant-pagination-options-quick-jumper input{background-color:#fff;background-image:none;border:1px solid #d9d9d9;border-radius:2px;color:rgba(0,0,0,.85);display:inline-block;font-size:14px;height:32px;line-height:1.5715;margin:0 8px;min-width:0;padding:4px 11px;position:relative;transition:all .3s;width:100%;width:50px}.ant-pagination-options-quick-jumper input::-moz-placeholder{opacity:1}.ant-pagination-options-quick-jumper input::placeholder{color:#bfbfbf;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ant-pagination-options-quick-jumper input:-moz-placeholder-shown{text-overflow:ellipsis}.ant-pagination-options-quick-jumper input:placeholder-shown{text-overflow:ellipsis}.ant-pagination-options-quick-jumper input:hover{border-color:var(--ant-primary-5);border-right-width:1px!important}.ant-pagination-options-quick-jumper input-focused,.ant-pagination-options-quick-jumper input:focus{border-color:var(--ant-primary-color-hover);border-right-width:1px!important;box-shadow:0 0 0 2px var(--ant-primary-color-outline);outline:0}.ant-pagination-options-quick-jumper input-disabled{background-color:#f5f5f5;border-color:#d9d9d9;box-shadow:none;color:rgba(0,0,0,.25);cursor:not-allowed;opacity:1}.ant-pagination-options-quick-jumper input-disabled:hover{border-color:#d9d9d9;border-right-width:1px!important}.ant-pagination-options-quick-jumper input[disabled]{background-color:#f5f5f5;border-color:#d9d9d9;box-shadow:none;color:rgba(0,0,0,.25);cursor:not-allowed;opacity:1}.ant-pagination-options-quick-jumper input[disabled]:hover{border-color:#d9d9d9;border-right-width:1px!important}.ant-pagination-options-quick-jumper input-borderless,.ant-pagination-options-quick-jumper input-borderless-disabled,.ant-pagination-options-quick-jumper input-borderless-focused,.ant-pagination-options-quick-jumper input-borderless:focus,.ant-pagination-options-quick-jumper input-borderless:hover,.ant-pagination-options-quick-jumper input-borderless[disabled]{background-color:transparent;border:none;box-shadow:none}textarea.ant-pagination-options-quick-jumper input{height:auto;line-height:1.5715;max-width:100%;min-height:32px;transition:all .3s,height 0s;vertical-align:bottom}.ant-pagination-options-quick-jumper input-lg{font-size:16px;padding:6.5px 11px}.ant-pagination-options-quick-jumper input-sm{padding:0 7px}.ant-pagination-simple .ant-pagination-next,.ant-pagination-simple .ant-pagination-prev{height:24px;line-height:24px;vertical-align:top}.ant-pagination-simple .ant-pagination-next .ant-pagination-item-link,.ant-pagination-simple .ant-pagination-prev .ant-pagination-item-link{background-color:transparent;border:0;height:24px}.ant-pagination-simple .ant-pagination-next .ant-pagination-item-link:after,.ant-pagination-simple .ant-pagination-prev .ant-pagination-item-link:after{height:24px;line-height:24px}.ant-pagination-simple .ant-pagination-simple-pager{display:inline-block;height:24px;margin-right:8px}.ant-pagination-simple .ant-pagination-simple-pager input{background-color:#fff;border:1px solid #d9d9d9;border-radius:2px;box-sizing:border-box;height:100%;margin-right:8px;outline:none;padding:0 6px;text-align:center;transition:border-color .3s}.ant-pagination-simple .ant-pagination-simple-pager input:hover{border-color:var(--ant-primary-color)}.ant-pagination-simple .ant-pagination-simple-pager input:focus{border-color:var(--ant-primary-color-hover);box-shadow:0 0 0 2px var(--ant-primary-color-outline)}.ant-pagination-simple .ant-pagination-simple-pager input[disabled]{background:#f5f5f5;border-color:#d9d9d9;color:rgba(0,0,0,.25);cursor:not-allowed}.ant-pagination.mini .ant-pagination-simple-pager,.ant-pagination.mini .ant-pagination-total-text{height:24px;line-height:24px}.ant-pagination.mini .ant-pagination-item{height:24px;line-height:22px;margin:0;min-width:24px}.ant-pagination.mini .ant-pagination-item:not(.ant-pagination-item-active){background:transparent;border-color:transparent}.ant-pagination.mini .ant-pagination-next,.ant-pagination.mini .ant-pagination-prev{height:24px;line-height:24px;margin:0;min-width:24px}.ant-pagination.mini .ant-pagination-next .ant-pagination-item-link,.ant-pagination.mini .ant-pagination-prev .ant-pagination-item-link{background:transparent;border-color:transparent}.ant-pagination.mini .ant-pagination-next .ant-pagination-item-link:after,.ant-pagination.mini .ant-pagination-prev .ant-pagination-item-link:after{height:24px;line-height:24px}.ant-pagination.mini .ant-pagination-jump-next,.ant-pagination.mini .ant-pagination-jump-prev{height:24px;line-height:24px;margin-right:0}.ant-pagination.mini .ant-pagination-options{margin-left:2px}.ant-pagination.mini .ant-pagination-options-size-changer{top:0}.ant-pagination.mini .ant-pagination-options-quick-jumper{height:24px;line-height:24px}.ant-pagination.mini .ant-pagination-options-quick-jumper input{height:24px;padding:0 7px;width:44px}.ant-pagination.ant-pagination-disabled{cursor:not-allowed}.ant-pagination.ant-pagination-disabled .ant-pagination-item{background:#f5f5f5;border-color:#d9d9d9;cursor:not-allowed}.ant-pagination.ant-pagination-disabled .ant-pagination-item a{background:transparent;border:none;color:rgba(0,0,0,.25);cursor:not-allowed}.ant-pagination.ant-pagination-disabled .ant-pagination-item-active{background:#e6e6e6}.ant-pagination.ant-pagination-disabled .ant-pagination-item-active a{color:rgba(0,0,0,.25)}.ant-pagination.ant-pagination-disabled .ant-pagination-item-link{background:#f5f5f5;border-color:#d9d9d9;color:rgba(0,0,0,.25);cursor:not-allowed}.ant-pagination-simple.ant-pagination.ant-pagination-disabled .ant-pagination-item-link{background:transparent}.ant-pagination.ant-pagination-disabled .ant-pagination-item-link-icon{opacity:0}.ant-pagination.ant-pagination-disabled .ant-pagination-item-ellipsis{opacity:1}.ant-pagination.ant-pagination-disabled .ant-pagination-simple-pager{color:rgba(0,0,0,.25)}@media only screen and (max-width:992px){.ant-pagination-item-after-jump-prev,.ant-pagination-item-before-jump-next{display:none}}@media only screen and (max-width:576px){.ant-pagination-options{display:none}}.ant-pagination-rtl .ant-pagination-item,.ant-pagination-rtl .ant-pagination-jump-next,.ant-pagination-rtl .ant-pagination-jump-prev,.ant-pagination-rtl .ant-pagination-prev,.ant-pagination-rtl .ant-pagination-total-text{margin-left:8px;margin-right:0}.ant-pagination-rtl .ant-pagination-slash{margin:0 5px 0 10px}.ant-pagination-rtl .ant-pagination-options{margin-left:0;margin-right:16px}.ant-pagination-rtl .ant-pagination-options .ant-pagination-options-size-changer.ant-select{margin-left:8px;margin-right:0}.ant-pagination-rtl .ant-pagination-options .ant-pagination-options-quick-jumper{margin-left:0}.ant-pagination-rtl.ant-pagination-simple .ant-pagination-simple-pager,.ant-pagination-rtl.ant-pagination-simple .ant-pagination-simple-pager input{margin-left:8px;margin-right:0}.ant-pagination-rtl.ant-pagination.mini .ant-pagination-options{margin-left:0;margin-right:2px}.ant-mentions{font-feature-settings:"tnum";background-color:#fff;background-image:none;border:1px solid #d9d9d9;border-radius:2px;box-sizing:border-box;color:rgba(0,0,0,.85);display:inline-block;font-size:14px;font-variant:tabular-nums;height:auto;line-height:1.5715;list-style:none;margin:0;min-width:0;overflow:hidden;padding:0;position:relative;transition:all .3s;vertical-align:bottom;white-space:pre-wrap;width:100%}.ant-mentions::-moz-placeholder{opacity:1}.ant-mentions::placeholder{color:#bfbfbf;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ant-mentions:-moz-placeholder-shown{text-overflow:ellipsis}.ant-mentions:placeholder-shown{text-overflow:ellipsis}.ant-mentions:hover{border-color:var(--ant-primary-5);border-right-width:1px!important}.ant-mentions-focused,.ant-mentions:focus{border-color:var(--ant-primary-color-hover);border-right-width:1px!important;box-shadow:0 0 0 2px var(--ant-primary-color-outline);outline:0}.ant-mentions-disabled{background-color:#f5f5f5;border-color:#d9d9d9;box-shadow:none;color:rgba(0,0,0,.25);cursor:not-allowed;opacity:1}.ant-mentions-disabled:hover{border-color:#d9d9d9;border-right-width:1px!important}.ant-mentions[disabled]{background-color:#f5f5f5;border-color:#d9d9d9;box-shadow:none;color:rgba(0,0,0,.25);cursor:not-allowed;opacity:1}.ant-mentions[disabled]:hover{border-color:#d9d9d9;border-right-width:1px!important}.ant-mentions-borderless,.ant-mentions-borderless-disabled,.ant-mentions-borderless-focused,.ant-mentions-borderless:focus,.ant-mentions-borderless:hover,.ant-mentions-borderless[disabled]{background-color:transparent;border:none;box-shadow:none}textarea.ant-mentions{height:auto;line-height:1.5715;max-width:100%;min-height:32px;transition:all .3s,height 0s;vertical-align:bottom}.ant-mentions-lg{font-size:16px;padding:6.5px 11px}.ant-mentions-sm{padding:0 7px}.ant-mentions-disabled>textarea{background-color:#f5f5f5;border-color:#d9d9d9;box-shadow:none;color:rgba(0,0,0,.25);cursor:not-allowed;opacity:1}.ant-mentions-disabled>textarea:hover{border-color:#d9d9d9;border-right-width:1px!important}.ant-mentions-focused{border-color:var(--ant-primary-color-hover);border-right-width:1px!important;box-shadow:0 0 0 2px var(--ant-primary-color-outline);outline:0}.ant-mentions-measure,.ant-mentions>textarea{word-wrap:break-word;direction:inherit;font-family:inherit;font-size:inherit;font-size-adjust:inherit;font-stretch:inherit;font-style:inherit;font-variant:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;min-height:30px;overflow:inherit;overflow-x:hidden;overflow-y:auto;padding:4px 11px;-moz-tab-size:inherit;-o-tab-size:inherit;tab-size:inherit;text-align:inherit;vertical-align:top;white-space:inherit;word-break:inherit}.ant-mentions>textarea{border:none;outline:none;resize:none;width:100%}.ant-mentions>textarea::-moz-placeholder{opacity:1}.ant-mentions>textarea::placeholder{color:#bfbfbf;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ant-mentions>textarea:-moz-placeholder-shown{text-overflow:ellipsis}.ant-mentions>textarea:placeholder-shown{text-overflow:ellipsis}.ant-mentions-measure{bottom:0;color:transparent;left:0;pointer-events:none;position:absolute;right:0;top:0;z-index:-1}.ant-mentions-measure>span{display:inline-block;min-height:1em}.ant-mentions-dropdown{font-feature-settings:"tnum";background-color:#fff;border-radius:2px;box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05);box-sizing:border-box;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;font-variant:normal;left:-9999px;line-height:1.5715;list-style:none;margin:0;outline:none;padding:0;position:absolute;top:-9999px;z-index:1050}.ant-mentions-dropdown-hidden{display:none}.ant-mentions-dropdown-menu{list-style:none;margin-bottom:0;max-height:250px;outline:none;overflow:auto;padding-left:0}.ant-mentions-dropdown-menu-item{color:rgba(0,0,0,.85);cursor:pointer;display:block;font-weight:400;line-height:1.5715;min-width:100px;overflow:hidden;padding:5px 12px;position:relative;text-overflow:ellipsis;transition:background .3s ease;white-space:nowrap}.ant-mentions-dropdown-menu-item:hover{background-color:#f5f5f5}.ant-mentions-dropdown-menu-item:first-child{border-radius:2px 2px 0 0}.ant-mentions-dropdown-menu-item:last-child{border-radius:0 0 2px 2px}.ant-mentions-dropdown-menu-item-disabled{color:rgba(0,0,0,.25);cursor:not-allowed}.ant-mentions-dropdown-menu-item-disabled:hover{background-color:#fff;color:rgba(0,0,0,.25);cursor:not-allowed}.ant-mentions-dropdown-menu-item-selected{background-color:#fafafa;color:rgba(0,0,0,.85);font-weight:600}.ant-mentions-dropdown-menu-item-active{background-color:#f5f5f5}.ant-mentions-rtl{direction:rtl}.ant-message{font-feature-settings:"tnum";box-sizing:border-box;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;left:0;line-height:1.5715;list-style:none;margin:0;padding:0;pointer-events:none;position:fixed;top:8px;width:100%;z-index:1010}.ant-message-notice{padding:8px;text-align:center}.ant-message-notice-content{background:#fff;border-radius:2px;box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05);display:inline-block;padding:10px 16px;pointer-events:all}.ant-message-success .anticon{color:var(--ant-success-color)}.ant-message-error .anticon{color:var(--ant-error-color)}.ant-message-warning .anticon{color:var(--ant-warning-color)}.ant-message-info .anticon,.ant-message-loading .anticon{color:var(--ant-info-color)}.ant-message .anticon{font-size:16px;margin-right:8px;position:relative;top:1px}.ant-message-notice.ant-move-up-leave.ant-move-up-leave-active{-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-name:MessageMoveOut;animation-name:MessageMoveOut}@-webkit-keyframes MessageMoveOut{0%{max-height:150px;opacity:1;padding:8px}to{max-height:0;opacity:0;padding:0}}@keyframes MessageMoveOut{0%{max-height:150px;opacity:1;padding:8px}to{max-height:0;opacity:0;padding:0}}.ant-message-rtl,.ant-message-rtl span{direction:rtl}.ant-message-rtl .anticon{margin-left:8px;margin-right:0}.ant-modal{font-feature-settings:"tnum";box-sizing:border-box;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0 auto;max-width:calc(100vw - 32px);padding:0 0 24px;pointer-events:none;position:relative;top:100px;width:auto}.ant-modal.ant-zoom-enter,.ant-modal.antzoom-appear{-webkit-animation-duration:.3s;animation-duration:.3s;opacity:0;transform:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ant-modal-mask{background-color:rgba(0,0,0,.45);bottom:0;height:100%;left:0;position:fixed;right:0;top:0;z-index:1000}.ant-modal-mask-hidden{display:none}.ant-modal-wrap{-webkit-overflow-scrolling:touch;bottom:0;left:0;outline:0;overflow:auto;position:fixed;right:0;top:0;z-index:1000}.ant-modal-title{word-wrap:break-word;color:rgba(0,0,0,.85);font-size:16px;font-weight:500;line-height:22px;margin:0}.ant-modal-content{background-clip:padding-box;background-color:#fff;border:0;border-radius:2px;box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05);pointer-events:auto;position:relative}.ant-modal-close{background:transparent;border:0;color:rgba(0,0,0,.45);cursor:pointer;font-weight:700;line-height:1;outline:0;padding:0;position:absolute;right:0;text-decoration:none;top:0;transition:color .3s;z-index:10}.ant-modal-close-x{text-rendering:auto;display:block;font-size:16px;font-style:normal;height:56px;line-height:56px;text-align:center;text-transform:none;width:56px}.ant-modal-close:focus,.ant-modal-close:hover{color:rgba(0,0,0,.75);text-decoration:none}.ant-modal-header{background:#fff;border-bottom:1px solid #f0f0f0;border-radius:2px 2px 0 0;color:rgba(0,0,0,.85);padding:16px 24px}.ant-modal-body{word-wrap:break-word;font-size:14px;line-height:1.5715;padding:24px}.ant-modal-footer{background:transparent;border-radius:0 0 2px 2px;border-top:1px solid #f0f0f0;padding:10px 16px;text-align:right}.ant-modal-footer .ant-btn+.ant-btn:not(.ant-dropdown-trigger){margin-bottom:0;margin-left:8px}.ant-modal-open{overflow:hidden}.ant-modal-centered{text-align:center}.ant-modal-centered:before{content:"";display:inline-block;height:100%;vertical-align:middle;width:0}.ant-modal-centered .ant-modal{display:inline-block;padding-bottom:0;text-align:left;top:0;vertical-align:middle}@media (max-width:767px){.ant-modal{margin:8px auto;max-width:calc(100vw - 16px)}.ant-modal-centered .ant-modal{flex:1}}.ant-modal-confirm .ant-modal-header{display:none}.ant-modal-confirm .ant-modal-body{padding:32px 32px 24px}.ant-modal-confirm-body-wrapper:before{content:"";display:table}.ant-modal-confirm-body-wrapper:after{clear:both;content:"";display:table}.ant-modal-confirm-body .ant-modal-confirm-title{color:rgba(0,0,0,.85);display:block;font-size:16px;font-weight:500;line-height:1.4;overflow:hidden}.ant-modal-confirm-body .ant-modal-confirm-content{color:rgba(0,0,0,.85);font-size:14px;margin-top:8px}.ant-modal-confirm-body>.anticon{float:left;font-size:22px;margin-right:16px}.ant-modal-confirm-body>.anticon+.ant-modal-confirm-title+.ant-modal-confirm-content{margin-left:38px}.ant-modal-confirm .ant-modal-confirm-btns{float:right;margin-top:24px}.ant-modal-confirm .ant-modal-confirm-btns .ant-btn+.ant-btn{margin-bottom:0;margin-left:8px}.ant-modal-confirm-error .ant-modal-confirm-body>.anticon{color:var(--ant-error-color)}.ant-modal-confirm-confirm .ant-modal-confirm-body>.anticon,.ant-modal-confirm-warning .ant-modal-confirm-body>.anticon{color:var(--ant-warning-color)}.ant-modal-confirm-info .ant-modal-confirm-body>.anticon{color:var(--ant-info-color)}.ant-modal-confirm-success .ant-modal-confirm-body>.anticon{color:var(--ant-success-color)}.ant-modal-wrap-rtl{direction:rtl}.ant-modal-wrap-rtl .ant-modal-close{left:0;right:auto}.ant-modal-wrap-rtl .ant-modal-footer{text-align:left}.ant-modal-wrap-rtl .ant-modal-footer .ant-btn+.ant-btn{margin-left:0;margin-right:8px}.ant-modal-wrap-rtl .ant-modal-confirm-body{direction:rtl}.ant-modal-wrap-rtl .ant-modal-confirm-body>.anticon{float:right;margin-left:16px;margin-right:0}.ant-modal-wrap-rtl .ant-modal-confirm-body>.anticon+.ant-modal-confirm-title+.ant-modal-confirm-content{margin-left:0;margin-right:38px}.ant-modal-wrap-rtl .ant-modal-confirm-btns{float:left}.ant-modal-wrap-rtl .ant-modal-confirm-btns .ant-btn+.ant-btn{margin-left:0;margin-right:8px}.ant-modal-wrap-rtl.ant-modal-centered .ant-modal{text-align:right}.ant-notification{font-feature-settings:"tnum";box-sizing:border-box;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0 24px 0 0;padding:0;position:fixed;z-index:1010}.ant-notification-bottomLeft,.ant-notification-topLeft{margin-left:24px;margin-right:0}.ant-notification-bottomLeft .ant-notification-fade-appear.ant-notification-fade-appear-active,.ant-notification-bottomLeft .ant-notification-fade-enter.ant-notification-fade-enter-active,.ant-notification-topLeft .ant-notification-fade-appear.ant-notification-fade-appear-active,.ant-notification-topLeft .ant-notification-fade-enter.ant-notification-fade-enter-active{-webkit-animation-name:NotificationLeftFadeIn;animation-name:NotificationLeftFadeIn}.ant-notification-close-icon{cursor:pointer;font-size:14px}.ant-notification-hook-holder{position:relative}.ant-notification-notice{word-wrap:break-word;background:#fff;border-radius:2px;box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05);line-height:1.5715;margin-bottom:16px;margin-left:auto;max-width:calc(100vw - 48px);overflow:hidden;padding:16px 24px;position:relative;width:384px}.ant-notification-bottomLeft .ant-notification-notice,.ant-notification-topLeft .ant-notification-notice{margin-left:0;margin-right:auto}.ant-notification-notice-message{color:rgba(0,0,0,.85);font-size:16px;line-height:24px;margin-bottom:8px}.ant-notification-notice-message-single-line-auto-margin{background-color:transparent;display:block;max-width:4px;pointer-events:none;width:calc(264px - 100%)}.ant-notification-notice-message-single-line-auto-margin:before{content:"";display:block}.ant-notification-notice-description{font-size:14px}.ant-notification-notice-closable .ant-notification-notice-message{padding-right:24px}.ant-notification-notice-with-icon .ant-notification-notice-message{font-size:16px;margin-bottom:4px;margin-left:48px}.ant-notification-notice-with-icon .ant-notification-notice-description{font-size:14px;margin-left:48px}.ant-notification-notice-icon{font-size:24px;line-height:24px;margin-left:4px;position:absolute}.anticon.ant-notification-notice-icon-success{color:var(--ant-success-color)}.anticon.ant-notification-notice-icon-info{color:var(--ant-info-color)}.anticon.ant-notification-notice-icon-warning{color:var(--ant-warning-color)}.anticon.ant-notification-notice-icon-error{color:var(--ant-error-color)}.ant-notification-notice-close{color:rgba(0,0,0,.45);outline:none;position:absolute;right:22px;top:16px}.ant-notification-notice-close:hover{color:rgba(0,0,0,.67)}.ant-notification-notice-btn{float:right;margin-top:16px}.ant-notification .notification-fade-effect{-webkit-animation-duration:.24s;animation-duration:.24s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-timing-function:cubic-bezier(.645,.045,.355,1);animation-timing-function:cubic-bezier(.645,.045,.355,1)}.ant-notification-fade-appear,.ant-notification-fade-enter{-webkit-animation-play-state:paused;animation-play-state:paused;opacity:0}.ant-notification-fade-appear,.ant-notification-fade-enter,.ant-notification-fade-leave{-webkit-animation-duration:.24s;animation-duration:.24s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-timing-function:cubic-bezier(.645,.045,.355,1);animation-timing-function:cubic-bezier(.645,.045,.355,1)}.ant-notification-fade-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-play-state:paused;animation-play-state:paused}.ant-notification-fade-appear.ant-notification-fade-appear-active,.ant-notification-fade-enter.ant-notification-fade-enter-active{-webkit-animation-name:NotificationFadeIn;animation-name:NotificationFadeIn;-webkit-animation-play-state:running;animation-play-state:running}.ant-notification-fade-leave.ant-notification-fade-leave-active{-webkit-animation-name:NotificationFadeOut;animation-name:NotificationFadeOut;-webkit-animation-play-state:running;animation-play-state:running}@-webkit-keyframes NotificationFadeIn{0%{left:384px;opacity:0}to{left:0;opacity:1}}@keyframes NotificationFadeIn{0%{left:384px;opacity:0}to{left:0;opacity:1}}@-webkit-keyframes NotificationLeftFadeIn{0%{opacity:0;right:384px}to{opacity:1;right:0}}@keyframes NotificationLeftFadeIn{0%{opacity:0;right:384px}to{opacity:1;right:0}}@-webkit-keyframes NotificationFadeOut{0%{margin-bottom:16px;max-height:150px;opacity:1}to{margin-bottom:0;max-height:0;opacity:0;padding-bottom:0;padding-top:0}}@keyframes NotificationFadeOut{0%{margin-bottom:16px;max-height:150px;opacity:1}to{margin-bottom:0;max-height:0;opacity:0;padding-bottom:0;padding-top:0}}.ant-notification-rtl{direction:rtl}.ant-notification-rtl .ant-notification-notice-closable .ant-notification-notice-message{padding-left:24px;padding-right:0}.ant-notification-rtl .ant-notification-notice-with-icon .ant-notification-notice-description,.ant-notification-rtl .ant-notification-notice-with-icon .ant-notification-notice-message{margin-left:0;margin-right:48px}.ant-notification-rtl .ant-notification-notice-icon{margin-left:0;margin-right:4px}.ant-notification-rtl .ant-notification-notice-close{left:22px;right:auto}.ant-notification-rtl .ant-notification-notice-btn{float:left}.ant-page-header{font-feature-settings:"tnum";background-color:#fff;box-sizing:border-box;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:16px 24px;position:relative}.ant-page-header-ghost{background-color:inherit}.ant-page-header.has-breadcrumb{padding-top:12px}.ant-page-header.has-footer{padding-bottom:0}.ant-page-header-back{font-size:16px;line-height:1;margin-right:16px}.ant-page-header-back-button{color:var(--ant-primary-color);color:#000;cursor:pointer;outline:none;text-decoration:none;transition:color .3s}.ant-page-header-back-button:focus,.ant-page-header-back-button:hover{color:var(--ant-primary-color-hover)}.ant-page-header-back-button:active{color:var(--ant-primary-color-active)}.ant-page-header .ant-divider-vertical{height:14px;margin:0 12px;vertical-align:middle}.ant-breadcrumb+.ant-page-header-heading{margin-top:8px}.ant-page-header-heading{display:flex;justify-content:space-between}.ant-page-header-heading-left{align-items:center;display:flex;margin:4px 0;overflow:hidden}.ant-page-header-heading-title{color:rgba(0,0,0,.85);font-size:20px;font-weight:600;line-height:32px;margin-bottom:0;margin-right:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ant-page-header-heading .ant-avatar{margin-right:12px}.ant-page-header-heading-sub-title{color:rgba(0,0,0,.45);font-size:14px;line-height:1.5715;margin-right:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ant-page-header-heading-extra{margin:4px 0;white-space:nowrap}.ant-page-header-heading-extra>*{margin-left:12px;white-space:unset}.ant-page-header-heading-extra>:first-child{margin-left:0}.ant-page-header-content{padding-top:12px}.ant-page-header-footer{margin-top:16px}.ant-page-header-footer .ant-tabs>.ant-tabs-nav{margin:0}.ant-page-header-footer .ant-tabs>.ant-tabs-nav:before{border:none}.ant-page-header-footer .ant-tabs .ant-tabs-tab{font-size:16px;padding-bottom:8px;padding-top:8px}.ant-page-header-compact .ant-page-header-heading{flex-wrap:wrap}.ant-page-header-rtl{direction:rtl}.ant-page-header-rtl .ant-page-header-back{float:right;margin-left:16px;margin-right:0}.ant-page-header-rtl .ant-page-header-heading .ant-avatar,.ant-page-header-rtl .ant-page-header-heading-title{margin-left:12px;margin-right:0}.ant-page-header-rtl .ant-page-header-heading-sub-title{float:right;margin-left:12px;margin-right:0}.ant-page-header-rtl .ant-page-header-heading-tags{float:right}.ant-page-header-rtl .ant-page-header-heading-extra{float:left}.ant-page-header-rtl .ant-page-header-heading-extra>*{margin-left:0;margin-right:12px}.ant-page-header-rtl .ant-page-header-heading-extra>:first-child{margin-right:0}.ant-page-header-rtl .ant-page-header-footer .ant-tabs-bar .ant-tabs-nav{float:right}.ant-popover{font-feature-settings:"tnum";box-sizing:border-box;color:rgba(0,0,0,.85);cursor:auto;font-size:14px;font-variant:tabular-nums;font-weight:400;left:0;line-height:1.5715;list-style:none;margin:0;padding:0;position:absolute;text-align:left;top:0;-webkit-user-select:text;-moz-user-select:text;user-select:text;white-space:normal;z-index:1030}.ant-popover:after{background:hsla(0,0%,100%,.01);content:"";position:absolute}.ant-popover-hidden{display:none}.ant-popover-placement-top,.ant-popover-placement-topLeft,.ant-popover-placement-topRight{padding-bottom:10px}.ant-popover-placement-right,.ant-popover-placement-rightBottom,.ant-popover-placement-rightTop{padding-left:10px}.ant-popover-placement-bottom,.ant-popover-placement-bottomLeft,.ant-popover-placement-bottomRight{padding-top:10px}.ant-popover-placement-left,.ant-popover-placement-leftBottom,.ant-popover-placement-leftTop{padding-right:10px}.ant-popover-inner{background-clip:padding-box;background-color:#fff;border-radius:2px;box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05);box-shadow:0 0 8px rgba(0,0,0,.15)\\9}@media (-ms-high-contrast:none),screen and (-ms-high-contrast:active){.ant-popover-inner{box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05)}}.ant-popover-title{border-bottom:1px solid #f0f0f0;color:rgba(0,0,0,.85);font-weight:500;margin:0;min-height:32px;min-width:177px;padding:5px 16px 4px}.ant-popover-inner-content{color:rgba(0,0,0,.85);padding:12px 16px}.ant-popover-message{color:rgba(0,0,0,.85);font-size:14px;padding:4px 0 12px;position:relative}.ant-popover-message>.anticon{color:var(--ant-warning-color);font-size:14px;position:absolute;top:8.0005px}.ant-popover-message-title{padding-left:22px}.ant-popover-buttons{margin-bottom:4px;text-align:right}.ant-popover-buttons button{margin-left:8px}.ant-popover-arrow{background:transparent;display:block;height:8.48528137px;overflow:hidden;pointer-events:none;position:absolute;width:8.48528137px}.ant-popover-arrow-content{background-color:#fff;bottom:0;content:"";display:block;height:6px;left:0;margin:auto;pointer-events:auto;position:absolute;right:0;top:0;width:6px}.ant-popover-placement-top .ant-popover-arrow,.ant-popover-placement-topLeft .ant-popover-arrow,.ant-popover-placement-topRight .ant-popover-arrow{bottom:1.51471863px}.ant-popover-placement-top .ant-popover-arrow-content,.ant-popover-placement-topLeft .ant-popover-arrow-content,.ant-popover-placement-topRight .ant-popover-arrow-content{box-shadow:3px 3px 7px rgba(0,0,0,.07);transform:translateY(-4.24264069px) rotate(45deg)}.ant-popover-placement-top .ant-popover-arrow{left:50%;transform:translateX(-50%)}.ant-popover-placement-topLeft .ant-popover-arrow{left:16px}.ant-popover-placement-topRight .ant-popover-arrow{right:16px}.ant-popover-placement-right .ant-popover-arrow,.ant-popover-placement-rightBottom .ant-popover-arrow,.ant-popover-placement-rightTop .ant-popover-arrow{left:1.51471863px}.ant-popover-placement-right .ant-popover-arrow-content,.ant-popover-placement-rightBottom .ant-popover-arrow-content,.ant-popover-placement-rightTop .ant-popover-arrow-content{box-shadow:-3px 3px 7px rgba(0,0,0,.07);transform:translateX(4.24264069px) rotate(45deg)}.ant-popover-placement-right .ant-popover-arrow{top:50%;transform:translateY(-50%)}.ant-popover-placement-rightTop .ant-popover-arrow{top:12px}.ant-popover-placement-rightBottom .ant-popover-arrow{bottom:12px}.ant-popover-placement-bottom .ant-popover-arrow,.ant-popover-placement-bottomLeft .ant-popover-arrow,.ant-popover-placement-bottomRight .ant-popover-arrow{top:1.51471863px}.ant-popover-placement-bottom .ant-popover-arrow-content,.ant-popover-placement-bottomLeft .ant-popover-arrow-content,.ant-popover-placement-bottomRight .ant-popover-arrow-content{box-shadow:-2px -2px 5px rgba(0,0,0,.06);transform:translateY(4.24264069px) rotate(45deg)}.ant-popover-placement-bottom .ant-popover-arrow{left:50%;transform:translateX(-50%)}.ant-popover-placement-bottomLeft .ant-popover-arrow{left:16px}.ant-popover-placement-bottomRight .ant-popover-arrow{right:16px}.ant-popover-placement-left .ant-popover-arrow,.ant-popover-placement-leftBottom .ant-popover-arrow,.ant-popover-placement-leftTop .ant-popover-arrow{right:1.51471863px}.ant-popover-placement-left .ant-popover-arrow-content,.ant-popover-placement-leftBottom .ant-popover-arrow-content,.ant-popover-placement-leftTop .ant-popover-arrow-content{box-shadow:3px -3px 7px rgba(0,0,0,.07);transform:translateX(-4.24264069px) rotate(45deg)}.ant-popover-placement-left .ant-popover-arrow{top:50%;transform:translateY(-50%)}.ant-popover-placement-leftTop .ant-popover-arrow{top:12px}.ant-popover-placement-leftBottom .ant-popover-arrow{bottom:12px}.ant-popover-magenta .ant-popover-arrow-content,.ant-popover-magenta .ant-popover-inner,.ant-popover-pink .ant-popover-arrow-content,.ant-popover-pink .ant-popover-inner{background-color:#eb2f96}.ant-popover-red .ant-popover-arrow-content,.ant-popover-red .ant-popover-inner{background-color:#f5222d}.ant-popover-volcano .ant-popover-arrow-content,.ant-popover-volcano .ant-popover-inner{background-color:#fa541c}.ant-popover-orange .ant-popover-arrow-content,.ant-popover-orange .ant-popover-inner{background-color:#fa8c16}.ant-popover-yellow .ant-popover-arrow-content,.ant-popover-yellow .ant-popover-inner{background-color:#fadb14}.ant-popover-gold .ant-popover-arrow-content,.ant-popover-gold .ant-popover-inner{background-color:#faad14}.ant-popover-cyan .ant-popover-arrow-content,.ant-popover-cyan .ant-popover-inner{background-color:#13c2c2}.ant-popover-lime .ant-popover-arrow-content,.ant-popover-lime .ant-popover-inner{background-color:#a0d911}.ant-popover-green .ant-popover-arrow-content,.ant-popover-green .ant-popover-inner{background-color:#52c41a}.ant-popover-blue .ant-popover-arrow-content,.ant-popover-blue .ant-popover-inner{background-color:#1890ff}.ant-popover-geekblue .ant-popover-arrow-content,.ant-popover-geekblue .ant-popover-inner{background-color:#2f54eb}.ant-popover-purple .ant-popover-arrow-content,.ant-popover-purple .ant-popover-inner{background-color:#722ed1}.ant-popover-rtl{direction:rtl;text-align:right}.ant-popover-rtl .ant-popover-message-title{padding-left:16px;padding-right:22px}.ant-popover-rtl .ant-popover-buttons{text-align:left}.ant-popover-rtl .ant-popover-buttons button{margin-left:0;margin-right:8px}.ant-popconfirm{z-index:1060}.ant-progress{font-feature-settings:"tnum";box-sizing:border-box;color:rgba(0,0,0,.85);display:inline-block;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0}.ant-progress-line{font-size:14px;position:relative;width:100%}.ant-progress-steps{display:inline-block}.ant-progress-steps-outer{align-items:center;display:flex;flex-direction:row}.ant-progress-steps-item{background:#f3f3f3;flex-shrink:0;margin-right:2px;min-width:2px;transition:all .3s}.ant-progress-steps-item-active{background:var(--ant-primary-color)}.ant-progress-small.ant-progress-line,.ant-progress-small.ant-progress-line .ant-progress-text .anticon{font-size:12px}.ant-progress-outer{display:inline-block;margin-right:0;padding-right:0;width:100%}.ant-progress-show-info .ant-progress-outer{margin-right:calc(-2em - 8px);padding-right:calc(2em + 8px)}.ant-progress-inner{background-color:#f5f5f5;border-radius:100px;display:inline-block;overflow:hidden;position:relative;vertical-align:middle;width:100%}.ant-progress-circle-trail{stroke:#f5f5f5}.ant-progress-circle-path{-webkit-animation:ant-progress-appear .3s;animation:ant-progress-appear .3s}.ant-progress-inner:not(.ant-progress-circle-gradient) .ant-progress-circle-path{stroke:var(--ant-primary-color)}.ant-progress-bg,.ant-progress-success-bg{background-color:var(--ant-primary-color);border-radius:100px;position:relative;transition:all .4s cubic-bezier(.08,.82,.17,1) 0s}.ant-progress-success-bg{background-color:var(--ant-success-color);left:0;position:absolute;top:0}.ant-progress-text{color:rgba(0,0,0,.85);display:inline-block;font-size:1em;line-height:1;margin-left:8px;text-align:left;vertical-align:middle;white-space:nowrap;width:2em;word-break:normal}.ant-progress-text .anticon{font-size:14px}.ant-progress-status-active .ant-progress-bg:before{-webkit-animation:ant-progress-active 2.4s cubic-bezier(.23,1,.32,1) infinite;animation:ant-progress-active 2.4s cubic-bezier(.23,1,.32,1) infinite;background:#fff;border-radius:10px;bottom:0;content:"";left:0;opacity:0;position:absolute;right:0;top:0}.ant-progress-status-exception .ant-progress-bg{background-color:var(--ant-error-color)}.ant-progress-status-exception .ant-progress-text{color:var(--ant-error-color)}.ant-progress-status-exception .ant-progress-inner:not(.ant-progress-circle-gradient) .ant-progress-circle-path{stroke:var(--ant-error-color)}.ant-progress-status-success .ant-progress-bg{background-color:var(--ant-success-color)}.ant-progress-status-success .ant-progress-text{color:var(--ant-success-color)}.ant-progress-status-success .ant-progress-inner:not(.ant-progress-circle-gradient) .ant-progress-circle-path{stroke:var(--ant-success-color)}.ant-progress-circle .ant-progress-inner{background-color:transparent;line-height:1;position:relative}.ant-progress-circle .ant-progress-text{color:rgba(0,0,0,.85);font-size:1em;left:50%;line-height:1;margin:0;padding:0;position:absolute;text-align:center;top:50%;transform:translate(-50%,-50%);white-space:normal;width:100%}.ant-progress-circle .ant-progress-text .anticon{font-size:1.16666667em}.ant-progress-circle.ant-progress-status-exception .ant-progress-text{color:var(--ant-error-color)}.ant-progress-circle.ant-progress-status-success .ant-progress-text{color:var(--ant-success-color)}@-webkit-keyframes ant-progress-active{0%{opacity:.1;transform:translateX(-100%) scaleX(0)}20%{opacity:.5;transform:translateX(-100%) scaleX(0)}to{opacity:0;transform:translateX(0) scaleX(1)}}@keyframes ant-progress-active{0%{opacity:.1;transform:translateX(-100%) scaleX(0)}20%{opacity:.5;transform:translateX(-100%) scaleX(0)}to{opacity:0;transform:translateX(0) scaleX(1)}}.ant-progress-rtl{direction:rtl}.ant-progress-rtl.ant-progress-show-info .ant-progress-outer{margin-left:calc(-2em - 8px);margin-right:0;padding-left:calc(2em + 8px);padding-right:0}.ant-progress-rtl .ant-progress-success-bg{left:auto;right:0}.ant-progress-rtl.ant-progress-line .ant-progress-text,.ant-progress-rtl.ant-progress-steps .ant-progress-text{margin-left:0;margin-right:8px;text-align:right}.ant-rate{font-feature-settings:"tnum";box-sizing:border-box;color:rgba(0,0,0,.85);color:#fadb14;display:inline-block;font-size:14px;font-size:20px;font-variant:tabular-nums;line-height:1.5715;line-height:unset;list-style:none;margin:0;outline:none;padding:0}.ant-rate-disabled .ant-rate-star{cursor:default}.ant-rate-disabled .ant-rate-star:hover{transform:scale(1)}.ant-rate-star{color:inherit;cursor:pointer;display:inline-block;position:relative}.ant-rate-star:not(:last-child){margin-right:8px}.ant-rate-star>div{transition:all .3s,outline 0s}.ant-rate-star>div:hover{transform:scale(1.1)}.ant-rate-star>div:focus{outline:0}.ant-rate-star>div:focus-visible{outline:1px dashed #fadb14;transform:scale(1.1)}.ant-rate-star-first,.ant-rate-star-second{color:#f0f0f0;transition:all .3s;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ant-rate-star-first .anticon,.ant-rate-star-second .anticon{vertical-align:middle}.ant-rate-star-first{height:100%;left:0;opacity:0;overflow:hidden;position:absolute;top:0;width:50%}.ant-rate-star-half .ant-rate-star-first,.ant-rate-star-half .ant-rate-star-second{opacity:1}.ant-rate-star-full .ant-rate-star-second,.ant-rate-star-half .ant-rate-star-first{color:inherit}.ant-rate-text{display:inline-block;font-size:14px;margin:0 8px}.ant-rate-rtl{direction:rtl}.ant-rate-rtl .ant-rate-star:not(:last-child){margin-left:8px;margin-right:0}.ant-rate-rtl .ant-rate-star-first{left:auto;right:0}.ant-result{padding:48px 32px}.ant-result-success .ant-result-icon>.anticon{color:var(--ant-success-color)}.ant-result-error .ant-result-icon>.anticon{color:var(--ant-error-color)}.ant-result-info .ant-result-icon>.anticon{color:var(--ant-info-color)}.ant-result-warning .ant-result-icon>.anticon{color:var(--ant-warning-color)}.ant-result-image{height:295px;margin:auto;width:250px}.ant-result-icon{margin-bottom:24px;text-align:center}.ant-result-icon>.anticon{font-size:72px}.ant-result-title{color:rgba(0,0,0,.85);font-size:24px;line-height:1.8;text-align:center}.ant-result-subtitle{color:rgba(0,0,0,.45);font-size:14px;line-height:1.6;text-align:center}.ant-result-extra{margin:24px 0 0;text-align:center}.ant-result-extra>*{margin-right:8px}.ant-result-extra>:last-child{margin-right:0}.ant-result-content{background-color:#fafafa;margin-top:24px;padding:24px 40px}.ant-result-rtl{direction:rtl}.ant-result-rtl .ant-result-extra>*{margin-left:8px;margin-right:0}.ant-result-rtl .ant-result-extra>:last-child{margin-left:0}.ant-skeleton{display:table;width:100%}.ant-skeleton-header{display:table-cell;padding-right:16px;vertical-align:top}.ant-skeleton-header .ant-skeleton-avatar{background:hsla(0,0%,75%,.2);display:inline-block;height:32px;line-height:32px;vertical-align:top;width:32px}.ant-skeleton-header .ant-skeleton-avatar.ant-skeleton-avatar-circle{border-radius:50%}.ant-skeleton-header .ant-skeleton-avatar-lg{height:40px;line-height:40px;width:40px}.ant-skeleton-header .ant-skeleton-avatar-lg.ant-skeleton-avatar-circle{border-radius:50%}.ant-skeleton-header .ant-skeleton-avatar-sm{height:24px;line-height:24px;width:24px}.ant-skeleton-header .ant-skeleton-avatar-sm.ant-skeleton-avatar-circle{border-radius:50%}.ant-skeleton-content{display:table-cell;vertical-align:top;width:100%}.ant-skeleton-content .ant-skeleton-title{background:hsla(0,0%,75%,.2);border-radius:4px;height:16px;margin-top:16px;width:100%}.ant-skeleton-content .ant-skeleton-title+.ant-skeleton-paragraph{margin-top:24px}.ant-skeleton-content .ant-skeleton-paragraph{padding:0}.ant-skeleton-content .ant-skeleton-paragraph>li{background:hsla(0,0%,75%,.2);border-radius:4px;height:16px;list-style:none;width:100%}.ant-skeleton-content .ant-skeleton-paragraph>li:last-child:not(:first-child):not(:nth-child(2)){width:61%}.ant-skeleton-content .ant-skeleton-paragraph>li+li{margin-top:16px}.ant-skeleton-with-avatar .ant-skeleton-content .ant-skeleton-title{margin-top:12px}.ant-skeleton-with-avatar .ant-skeleton-content .ant-skeleton-title+.ant-skeleton-paragraph{margin-top:28px}.ant-skeleton-round .ant-skeleton-content .ant-skeleton-paragraph>li,.ant-skeleton-round .ant-skeleton-content .ant-skeleton-title{border-radius:100px}.ant-skeleton.ant-skeleton-active .ant-skeleton-avatar,.ant-skeleton.ant-skeleton-active .ant-skeleton-button,.ant-skeleton.ant-skeleton-active .ant-skeleton-content .ant-skeleton-paragraph>li,.ant-skeleton.ant-skeleton-active .ant-skeleton-content .ant-skeleton-title,.ant-skeleton.ant-skeleton-active .ant-skeleton-image,.ant-skeleton.ant-skeleton-active .ant-skeleton-input{-webkit-animation:ant-skeleton-loading 1.4s ease infinite;animation:ant-skeleton-loading 1.4s ease infinite;background:linear-gradient(90deg,hsla(0,0%,75%,.2) 25%,hsla(0,0%,51%,.24) 37%,hsla(0,0%,75%,.2) 63%);background-size:400% 100%}.ant-skeleton.ant-skeleton-block,.ant-skeleton.ant-skeleton-block .ant-skeleton-button{width:100%}.ant-skeleton-element{display:inline-block;width:auto}.ant-skeleton-element .ant-skeleton-button{background:hsla(0,0%,75%,.2);border-radius:2px;display:inline-block;height:32px;line-height:32px;min-width:64px;vertical-align:top;width:64px}.ant-skeleton-element .ant-skeleton-button.ant-skeleton-button-circle{border-radius:50%;min-width:32px;width:32px}.ant-skeleton-element .ant-skeleton-button.ant-skeleton-button-round{border-radius:32px}.ant-skeleton-element .ant-skeleton-button-lg{height:40px;line-height:40px;min-width:80px;width:80px}.ant-skeleton-element .ant-skeleton-button-lg.ant-skeleton-button-circle{border-radius:50%;min-width:40px;width:40px}.ant-skeleton-element .ant-skeleton-button-lg.ant-skeleton-button-round{border-radius:40px}.ant-skeleton-element .ant-skeleton-button-sm{height:24px;line-height:24px;min-width:48px;width:48px}.ant-skeleton-element .ant-skeleton-button-sm.ant-skeleton-button-circle{border-radius:50%;min-width:24px;width:24px}.ant-skeleton-element .ant-skeleton-button-sm.ant-skeleton-button-round{border-radius:24px}.ant-skeleton-element .ant-skeleton-avatar{background:hsla(0,0%,75%,.2);display:inline-block;height:32px;line-height:32px;vertical-align:top;width:32px}.ant-skeleton-element .ant-skeleton-avatar.ant-skeleton-avatar-circle{border-radius:50%}.ant-skeleton-element .ant-skeleton-avatar-lg{height:40px;line-height:40px;width:40px}.ant-skeleton-element .ant-skeleton-avatar-lg.ant-skeleton-avatar-circle{border-radius:50%}.ant-skeleton-element .ant-skeleton-avatar-sm{height:24px;line-height:24px;width:24px}.ant-skeleton-element .ant-skeleton-avatar-sm.ant-skeleton-avatar-circle{border-radius:50%}.ant-skeleton-element .ant-skeleton-input{background:hsla(0,0%,75%,.2);display:inline-block;height:32px;line-height:32px;vertical-align:top;width:100%}.ant-skeleton-element .ant-skeleton-input-lg{height:40px;line-height:40px;width:100%}.ant-skeleton-element .ant-skeleton-input-sm{height:24px;line-height:24px;width:100%}.ant-skeleton-element .ant-skeleton-image{align-items:center;background:hsla(0,0%,75%,.2);display:flex;height:96px;justify-content:center;line-height:96px;vertical-align:top;width:96px}.ant-skeleton-element .ant-skeleton-image.ant-skeleton-image-circle{border-radius:50%}.ant-skeleton-element .ant-skeleton-image-path{fill:#bfbfbf}.ant-skeleton-element .ant-skeleton-image-svg{height:48px;line-height:48px;max-height:192px;max-width:192px;width:48px}.ant-skeleton-element .ant-skeleton-image-svg.ant-skeleton-image-circle{border-radius:50%}@-webkit-keyframes ant-skeleton-loading{0%{background-position:100% 50%}to{background-position:0 50%}}@keyframes ant-skeleton-loading{0%{background-position:100% 50%}to{background-position:0 50%}}.ant-skeleton-rtl{direction:rtl}.ant-skeleton-rtl .ant-skeleton-header{padding-left:16px;padding-right:0}.ant-skeleton-rtl.ant-skeleton.ant-skeleton-active .ant-skeleton-avatar,.ant-skeleton-rtl.ant-skeleton.ant-skeleton-active .ant-skeleton-content .ant-skeleton-paragraph>li,.ant-skeleton-rtl.ant-skeleton.ant-skeleton-active .ant-skeleton-content .ant-skeleton-title{-webkit-animation-name:ant-skeleton-loading-rtl;animation-name:ant-skeleton-loading-rtl}@-webkit-keyframes ant-skeleton-loading-rtl{0%{background-position:0 50%}to{background-position:100% 50%}}@keyframes ant-skeleton-loading-rtl{0%{background-position:0 50%}to{background-position:100% 50%}}.ant-slider{font-feature-settings:"tnum";box-sizing:border-box;color:rgba(0,0,0,.85);cursor:pointer;font-size:14px;font-variant:tabular-nums;height:12px;line-height:1.5715;list-style:none;margin:10px 6px;padding:4px 0;position:relative;touch-action:none}.ant-slider-vertical{height:100%;margin:6px 10px;padding:0 4px;width:12px}.ant-slider-vertical .ant-slider-rail{height:100%;width:4px}.ant-slider-vertical .ant-slider-track{width:4px}.ant-slider-vertical .ant-slider-handle{margin-left:-5px;margin-top:-6px}.ant-slider-vertical .ant-slider-mark{height:100%;left:12px;top:0;width:18px}.ant-slider-vertical .ant-slider-mark-text{left:4px;white-space:nowrap}.ant-slider-vertical .ant-slider-step{height:100%;width:4px}.ant-slider-vertical .ant-slider-dot{left:2px;margin-bottom:-4px;top:auto}.ant-slider-tooltip .ant-tooltip-inner{min-width:unset}.ant-slider-rtl.ant-slider-vertical .ant-slider-handle{margin-left:0;margin-right:-5px}.ant-slider-rtl.ant-slider-vertical .ant-slider-mark{left:auto;right:12px}.ant-slider-rtl.ant-slider-vertical .ant-slider-mark-text{left:auto;right:4px}.ant-slider-rtl.ant-slider-vertical .ant-slider-dot{left:auto;right:2px}.ant-slider-with-marks{margin-bottom:28px}.ant-slider-rail{background-color:#f5f5f5;width:100%}.ant-slider-rail,.ant-slider-track{border-radius:2px;height:4px;position:absolute;transition:background-color .3s}.ant-slider-track{background-color:var(--ant-primary-3)}.ant-slider-handle{background-color:#fff;border:2px solid var(--ant-primary-3);border-radius:50%;box-shadow:0;cursor:pointer;height:14px;margin-top:-5px;position:absolute;transition:border-color .3s,box-shadow .6s,transform .3s cubic-bezier(.18,.89,.32,1.28);width:14px}.ant-slider-handle-dragging.ant-slider-handle-dragging.ant-slider-handle-dragging,.ant-slider-handle:focus{border-color:var(--ant-primary-color-deprecated-t-20);box-shadow:0 0 0 5px var(--ant-primary-color-deprecated-f-12)}.ant-slider-handle:focus{outline:none}.ant-slider-handle.ant-tooltip-open{border-color:var(--ant-primary-color)}.ant-slider:hover .ant-slider-rail{background-color:#e1e1e1}.ant-slider:hover .ant-slider-track{background-color:var(--ant-primary-4)}.ant-slider:hover .ant-slider-handle:not(.ant-tooltip-open){border-color:var(--ant-primary-4)}.ant-slider-mark{font-size:14px;left:0;position:absolute;top:14px;width:100%}.ant-slider-mark-text{color:rgba(0,0,0,.45);cursor:pointer;display:inline-block;position:absolute;text-align:center;-webkit-user-select:none;-moz-user-select:none;user-select:none;word-break:keep-all}.ant-slider-mark-text-active{color:rgba(0,0,0,.85)}.ant-slider-step{background:transparent;height:4px;position:absolute;width:100%}.ant-slider-dot{background-color:#fff;border:2px solid #f0f0f0;border-radius:50%;cursor:pointer;height:8px;position:absolute;top:-2px;width:8px}.ant-slider-dot,.ant-slider-dot:first-child,.ant-slider-dot:last-child{margin-left:-4px}.ant-slider-dot-active{border-color:var(--ant-primary-color-deprecated-t-50)}.ant-slider-disabled{cursor:not-allowed}.ant-slider-disabled .ant-slider-rail{background-color:#f5f5f5!important}.ant-slider-disabled .ant-slider-track{background-color:rgba(0,0,0,.25)!important}.ant-slider-disabled .ant-slider-dot,.ant-slider-disabled .ant-slider-handle{background-color:#fff;border-color:rgba(0,0,0,.25)!important;box-shadow:none;cursor:not-allowed}.ant-slider-disabled .ant-slider-dot,.ant-slider-disabled .ant-slider-mark-text{cursor:not-allowed!important}.ant-slider-rtl{direction:rtl}.ant-slider-rtl .ant-slider-mark{left:auto;right:0}.ant-slider-rtl .ant-slider-dot,.ant-slider-rtl .ant-slider-dot:first-child,.ant-slider-rtl .ant-slider-dot:last-child{margin-left:0;margin-right:-4px}.ant-space{display:inline-flex}.ant-space-vertical{flex-direction:column}.ant-space-align-center{align-items:center}.ant-space-align-start{align-items:flex-start}.ant-space-align-end{align-items:flex-end}.ant-space-align-baseline{align-items:baseline}.ant-space-item:empty{display:none}.ant-space-rtl{direction:rtl}.ant-statistic{font-feature-settings:"tnum";box-sizing:border-box;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0}.ant-statistic-title{color:rgba(0,0,0,.45);font-size:14px;margin-bottom:4px}.ant-statistic-content{color:rgba(0,0,0,.85);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:24px}.ant-statistic-content-value{direction:ltr;display:inline-block}.ant-statistic-content-prefix,.ant-statistic-content-suffix{display:inline-block}.ant-statistic-content-prefix{margin-right:4px}.ant-statistic-content-suffix{margin-left:4px}.ant-statistic-rtl{direction:rtl}.ant-statistic-rtl .ant-statistic-content-prefix{margin-left:4px;margin-right:0}.ant-statistic-rtl .ant-statistic-content-suffix{margin-left:0;margin-right:4px}.ant-steps{font-feature-settings:"tnum";box-sizing:border-box;color:rgba(0,0,0,.85);display:flex;font-size:14px;font-size:0;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0;text-align:initial;width:100%}.ant-steps-item{display:inline-block;flex:1;overflow:hidden;position:relative;vertical-align:top}.ant-steps-item-container{outline:none}.ant-steps-item:last-child{flex:none}.ant-steps-item:last-child>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title:after,.ant-steps-item:last-child>.ant-steps-item-container>.ant-steps-item-tail{display:none}.ant-steps-item-content,.ant-steps-item-icon{display:inline-block;vertical-align:top}.ant-steps-item-icon{border:1px solid rgba(0,0,0,.25);border-radius:32px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:16px;height:32px;line-height:32px;margin:0 8px 0 0;text-align:center;transition:background-color .3s,border-color .3s;width:32px}.ant-steps-item-icon .ant-steps-icon{color:var(--ant-primary-color);line-height:1;position:relative;top:-.5px}.ant-steps-item-tail{left:0;padding:0 10px;position:absolute;top:12px;width:100%}.ant-steps-item-tail:after{background:#f0f0f0;border-radius:1px;content:"";display:inline-block;height:1px;transition:background .3s;width:100%}.ant-steps-item-title{color:rgba(0,0,0,.85);display:inline-block;font-size:16px;line-height:32px;padding-right:16px;position:relative}.ant-steps-item-title:after{background:#f0f0f0;content:"";display:block;height:1px;left:100%;position:absolute;top:16px;width:9999px}.ant-steps-item-subtitle{display:inline;font-weight:400;margin-left:8px}.ant-steps-item-description,.ant-steps-item-subtitle{color:rgba(0,0,0,.45);font-size:14px}.ant-steps-item-wait .ant-steps-item-icon{background-color:#fff;border-color:rgba(0,0,0,.25)}.ant-steps-item-wait .ant-steps-item-icon>.ant-steps-icon{color:rgba(0,0,0,.25)}.ant-steps-item-wait .ant-steps-item-icon>.ant-steps-icon .ant-steps-icon-dot{background:rgba(0,0,0,.25)}.ant-steps-item-wait>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title{color:rgba(0,0,0,.45)}.ant-steps-item-wait>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title:after{background-color:#f0f0f0}.ant-steps-item-wait>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-description{color:rgba(0,0,0,.45)}.ant-steps-item-wait>.ant-steps-item-container>.ant-steps-item-tail:after{background-color:#f0f0f0}.ant-steps-item-process .ant-steps-item-icon{background-color:#fff;border-color:var(--ant-primary-color)}.ant-steps-item-process .ant-steps-item-icon>.ant-steps-icon{color:var(--ant-primary-color)}.ant-steps-item-process .ant-steps-item-icon>.ant-steps-icon .ant-steps-icon-dot{background:var(--ant-primary-color)}.ant-steps-item-process>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title{color:rgba(0,0,0,.85)}.ant-steps-item-process>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title:after{background-color:#f0f0f0}.ant-steps-item-process>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-description{color:rgba(0,0,0,.85)}.ant-steps-item-process>.ant-steps-item-container>.ant-steps-item-tail:after{background-color:#f0f0f0}.ant-steps-item-process>.ant-steps-item-container>.ant-steps-item-icon{background:var(--ant-primary-color)}.ant-steps-item-process>.ant-steps-item-container>.ant-steps-item-icon .ant-steps-icon{color:#fff}.ant-steps-item-process>.ant-steps-item-container>.ant-steps-item-title{font-weight:500}.ant-steps-item-finish .ant-steps-item-icon{background-color:#fff;border-color:var(--ant-primary-color)}.ant-steps-item-finish .ant-steps-item-icon>.ant-steps-icon{color:var(--ant-primary-color)}.ant-steps-item-finish .ant-steps-item-icon>.ant-steps-icon .ant-steps-icon-dot{background:var(--ant-primary-color)}.ant-steps-item-finish>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title{color:rgba(0,0,0,.85)}.ant-steps-item-finish>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title:after{background-color:var(--ant-primary-color)}.ant-steps-item-finish>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-description{color:rgba(0,0,0,.45)}.ant-steps-item-finish>.ant-steps-item-container>.ant-steps-item-tail:after{background-color:var(--ant-primary-color)}.ant-steps-item-error .ant-steps-item-icon{background-color:#fff;border-color:var(--ant-error-color)}.ant-steps-item-error .ant-steps-item-icon>.ant-steps-icon{color:var(--ant-error-color)}.ant-steps-item-error .ant-steps-item-icon>.ant-steps-icon .ant-steps-icon-dot{background:var(--ant-error-color)}.ant-steps-item-error>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title{color:var(--ant-error-color)}.ant-steps-item-error>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title:after{background-color:#f0f0f0}.ant-steps-item-error>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-description{color:var(--ant-error-color)}.ant-steps-item-error>.ant-steps-item-container>.ant-steps-item-tail:after{background-color:#f0f0f0}.ant-steps-item.ant-steps-next-error .ant-steps-item-title:after{background:var(--ant-error-color)}.ant-steps-item-disabled{cursor:not-allowed}.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role=button]{cursor:pointer}.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role=button] .ant-steps-item-description,.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role=button] .ant-steps-item-icon .ant-steps-icon,.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role=button] .ant-steps-item-subtitle,.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role=button] .ant-steps-item-title{transition:color .3s}.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role=button]:hover .ant-steps-item-description,.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role=button]:hover .ant-steps-item-subtitle,.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role=button]:hover .ant-steps-item-title{color:var(--ant-primary-color)}.ant-steps .ant-steps-item:not(.ant-steps-item-active):not(.ant-steps-item-process)>.ant-steps-item-container[role=button]:hover .ant-steps-item-icon{border-color:var(--ant-primary-color)}.ant-steps .ant-steps-item:not(.ant-steps-item-active):not(.ant-steps-item-process)>.ant-steps-item-container[role=button]:hover .ant-steps-item-icon .ant-steps-icon{color:var(--ant-primary-color)}.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item{padding-left:16px;white-space:nowrap}.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item:first-child{padding-left:0}.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item:last-child .ant-steps-item-title{padding-right:0}.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item-tail{display:none}.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item-description{max-width:140px;white-space:normal}.ant-steps-item-custom>.ant-steps-item-container>.ant-steps-item-icon{background:none;border:0;height:auto}.ant-steps-item-custom>.ant-steps-item-container>.ant-steps-item-icon>.ant-steps-icon{font-size:24px;height:32px;left:.5px;line-height:32px;top:0;width:32px}.ant-steps-item-custom.ant-steps-item-process .ant-steps-item-icon>.ant-steps-icon{color:var(--ant-primary-color)}.ant-steps:not(.ant-steps-vertical) .ant-steps-item-custom .ant-steps-item-icon{background:none;width:auto}.ant-steps-small.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item{padding-left:12px}.ant-steps-small.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item:first-child{padding-left:0}.ant-steps-small .ant-steps-item-icon{border-radius:24px;font-size:12px;height:24px;line-height:24px;margin:0 8px 0 0;text-align:center;width:24px}.ant-steps-small .ant-steps-item-title{font-size:14px;line-height:24px;padding-right:12px}.ant-steps-small .ant-steps-item-title:after{top:12px}.ant-steps-small .ant-steps-item-description{color:rgba(0,0,0,.45);font-size:14px}.ant-steps-small .ant-steps-item-tail{top:8px}.ant-steps-small .ant-steps-item-custom .ant-steps-item-icon{background:none;border:0;border-radius:0;height:inherit;line-height:inherit;width:inherit}.ant-steps-small .ant-steps-item-custom .ant-steps-item-icon>.ant-steps-icon{font-size:24px;line-height:24px;transform:none}.ant-steps-vertical{display:flex;flex-direction:column}.ant-steps-vertical>.ant-steps-item{display:block;flex:1 0 auto;overflow:visible;padding-left:0}.ant-steps-vertical>.ant-steps-item .ant-steps-item-icon{float:left;margin-right:16px}.ant-steps-vertical>.ant-steps-item .ant-steps-item-content{display:block;min-height:48px;overflow:hidden}.ant-steps-vertical>.ant-steps-item .ant-steps-item-title{line-height:32px}.ant-steps-vertical>.ant-steps-item .ant-steps-item-description{padding-bottom:12px}.ant-steps-vertical>.ant-steps-item>.ant-steps-item-container>.ant-steps-item-tail{height:100%;left:16px;padding:38px 0 6px;position:absolute;top:0;width:1px}.ant-steps-vertical>.ant-steps-item>.ant-steps-item-container>.ant-steps-item-tail:after{height:100%;width:1px}.ant-steps-vertical>.ant-steps-item:not(:last-child)>.ant-steps-item-container>.ant-steps-item-tail{display:block}.ant-steps-vertical>.ant-steps-item>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title:after{display:none}.ant-steps-vertical.ant-steps-small .ant-steps-item-container .ant-steps-item-tail{left:12px;padding:30px 0 6px;position:absolute;top:0}.ant-steps-vertical.ant-steps-small .ant-steps-item-container .ant-steps-item-title{line-height:24px}.ant-steps-label-vertical .ant-steps-item{overflow:visible}.ant-steps-label-vertical .ant-steps-item-tail{margin-left:58px;padding:3.5px 24px}.ant-steps-label-vertical .ant-steps-item-content{display:block;margin-top:8px;text-align:center;width:116px}.ant-steps-label-vertical .ant-steps-item-icon{display:inline-block;margin-left:42px}.ant-steps-label-vertical .ant-steps-item-title{padding-left:0;padding-right:0}.ant-steps-label-vertical .ant-steps-item-title:after{display:none}.ant-steps-label-vertical .ant-steps-item-subtitle{display:block;line-height:1.5715;margin-bottom:4px;margin-left:0}.ant-steps-label-vertical.ant-steps-small:not(.ant-steps-dot) .ant-steps-item-icon{margin-left:46px}.ant-steps-dot .ant-steps-item-title,.ant-steps-dot.ant-steps-small .ant-steps-item-title{line-height:1.5715}.ant-steps-dot .ant-steps-item-tail,.ant-steps-dot.ant-steps-small .ant-steps-item-tail{margin:0 0 0 70px;padding:0;top:2px;width:100%}.ant-steps-dot .ant-steps-item-tail:after,.ant-steps-dot.ant-steps-small .ant-steps-item-tail:after{height:3px;margin-left:12px;width:calc(100% - 20px)}.ant-steps-dot .ant-steps-item:first-child .ant-steps-icon-dot,.ant-steps-dot.ant-steps-small .ant-steps-item:first-child .ant-steps-icon-dot{left:2px}.ant-steps-dot .ant-steps-item-icon,.ant-steps-dot.ant-steps-small .ant-steps-item-icon{background:transparent;border:0;height:8px;line-height:8px;margin-left:67px;padding-right:0;width:8px}.ant-steps-dot .ant-steps-item-icon .ant-steps-icon-dot,.ant-steps-dot.ant-steps-small .ant-steps-item-icon .ant-steps-icon-dot{border-radius:100px;float:left;height:100%;position:relative;transition:all .3s;width:100%}.ant-steps-dot .ant-steps-item-icon .ant-steps-icon-dot:after,.ant-steps-dot.ant-steps-small .ant-steps-item-icon .ant-steps-icon-dot:after{background:rgba(0,0,0,.001);content:"";height:32px;left:-26px;position:absolute;top:-12px;width:60px}.ant-steps-dot .ant-steps-item-content,.ant-steps-dot.ant-steps-small .ant-steps-item-content{width:140px}.ant-steps-dot .ant-steps-item-process .ant-steps-item-icon,.ant-steps-dot.ant-steps-small .ant-steps-item-process .ant-steps-item-icon{background:none;height:10px;line-height:10px;position:relative;top:-1px;width:10px}.ant-steps-dot .ant-steps-item-process .ant-steps-icon:first-child .ant-steps-icon-dot,.ant-steps-dot.ant-steps-small .ant-steps-item-process .ant-steps-icon:first-child .ant-steps-icon-dot{left:0}.ant-steps-vertical.ant-steps-dot .ant-steps-item-icon{background:none;margin-left:0;margin-top:13px}.ant-steps-vertical.ant-steps-dot .ant-steps-item>.ant-steps-item-container>.ant-steps-item-tail{left:-9px;margin:0;padding:22px 0 4px;top:6.5px}.ant-steps-vertical.ant-steps-dot .ant-steps-item:first-child .ant-steps-icon-dot{left:0}.ant-steps-vertical.ant-steps-dot .ant-steps-item-content{width:inherit}.ant-steps-vertical.ant-steps-dot .ant-steps-item-process .ant-steps-item-container .ant-steps-item-icon .ant-steps-icon-dot{left:-1px;top:-1px}.ant-steps-navigation{padding-top:12px}.ant-steps-navigation.ant-steps-small .ant-steps-item-container{margin-left:-12px}.ant-steps-navigation .ant-steps-item{overflow:visible;text-align:center}.ant-steps-navigation .ant-steps-item-container{display:inline-block;height:100%;margin-left:-16px;padding-bottom:12px;text-align:left;transition:opacity .3s}.ant-steps-navigation .ant-steps-item-container .ant-steps-item-content{max-width:auto}.ant-steps-navigation .ant-steps-item-container .ant-steps-item-title{max-width:100%;overflow:hidden;padding-right:0;text-overflow:ellipsis;white-space:nowrap}.ant-steps-navigation .ant-steps-item-container .ant-steps-item-title:after{display:none}.ant-steps-navigation .ant-steps-item:not(.ant-steps-item-active) .ant-steps-item-container[role=button]{cursor:pointer}.ant-steps-navigation .ant-steps-item:not(.ant-steps-item-active) .ant-steps-item-container[role=button]:hover{opacity:.85}.ant-steps-navigation .ant-steps-item:last-child{flex:1}.ant-steps-navigation .ant-steps-item:last-child:after{display:none}.ant-steps-navigation .ant-steps-item:after{border:1px solid rgba(0,0,0,.25);border-bottom:none;border-left:none;content:"";display:inline-block;height:12px;left:100%;margin-left:-2px;margin-top:-14px;position:absolute;top:50%;transform:rotate(45deg);width:12px}.ant-steps-navigation .ant-steps-item:before{background-color:var(--ant-primary-color);bottom:0;content:"";display:inline-block;height:2px;left:50%;position:absolute;transition:width .3s,left .3s;transition-timing-function:ease-out;width:0}.ant-steps-navigation .ant-steps-item.ant-steps-item-active:before{left:0;width:100%}.ant-steps-navigation.ant-steps-vertical>.ant-steps-item{margin-right:0!important}.ant-steps-navigation.ant-steps-vertical>.ant-steps-item:before{display:none}.ant-steps-navigation.ant-steps-vertical>.ant-steps-item.ant-steps-item-active:before{display:block;height:calc(100% - 24px);left:unset;right:0;top:0;width:3px}.ant-steps-navigation.ant-steps-vertical>.ant-steps-item:after{display:block;height:8px;left:50%;margin-bottom:8px;position:relative;text-align:center;top:-2px;transform:rotate(135deg);width:8px}.ant-steps-navigation.ant-steps-horizontal>.ant-steps-item>.ant-steps-item-container>.ant-steps-item-tail,.ant-steps-navigation.ant-steps-vertical>.ant-steps-item>.ant-steps-item-container>.ant-steps-item-tail{visibility:hidden}.ant-steps-rtl{direction:rtl}.ant-steps.ant-steps-rtl .ant-steps-item-icon{margin-left:8px;margin-right:0}.ant-steps-rtl .ant-steps-item-tail{left:auto;right:0}.ant-steps-rtl .ant-steps-item-title{padding-left:16px;padding-right:0}.ant-steps-rtl .ant-steps-item-title:after{left:auto;right:100%}.ant-steps-rtl.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item{padding-left:0;padding-right:16px}.ant-steps-rtl.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item:first-child{padding-right:0}.ant-steps-rtl.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item:last-child .ant-steps-item-title{padding-left:0}.ant-steps-rtl .ant-steps-item-custom .ant-steps-item-icon>.ant-steps-icon{left:auto;right:.5px}.ant-steps-rtl.ant-steps-navigation.ant-steps-small .ant-steps-item-container{margin-left:0;margin-right:-12px}.ant-steps-rtl.ant-steps-navigation .ant-steps-item-container{margin-left:0;margin-right:-16px;text-align:right}.ant-steps-rtl.ant-steps-navigation .ant-steps-item-container .ant-steps-item-title{padding-left:0}.ant-steps-rtl.ant-steps-navigation .ant-steps-item:after{left:auto;margin-left:0;margin-right:-2px;right:100%;transform:rotate(225deg)}.ant-steps-rtl.ant-steps-small.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item{padding-left:0;padding-right:12px}.ant-steps-rtl.ant-steps-small.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item:first-child{padding-right:0}.ant-steps-rtl.ant-steps-small .ant-steps-item-title{padding-left:12px;padding-right:0}.ant-steps-rtl.ant-steps-vertical>.ant-steps-item .ant-steps-item-icon{float:right;margin-left:16px;margin-right:0}.ant-steps-rtl.ant-steps-vertical>.ant-steps-item>.ant-steps-item-container>.ant-steps-item-tail{left:auto;right:16px}.ant-steps-rtl.ant-steps-vertical.ant-steps-small .ant-steps-item-container .ant-steps-item-tail{left:auto;right:12px}.ant-steps-rtl.ant-steps-label-vertical .ant-steps-item-title{padding-left:0}.ant-steps-rtl.ant-steps-dot .ant-steps-item-tail,.ant-steps-rtl.ant-steps-dot.ant-steps-small .ant-steps-item-tail{margin:0 70px 0 0}.ant-steps-rtl.ant-steps-dot .ant-steps-item-tail:after,.ant-steps-rtl.ant-steps-dot.ant-steps-small .ant-steps-item-tail:after{margin-left:0;margin-right:12px}.ant-steps-rtl.ant-steps-dot .ant-steps-item:first-child .ant-steps-icon-dot,.ant-steps-rtl.ant-steps-dot.ant-steps-small .ant-steps-item:first-child .ant-steps-icon-dot{left:auto;right:2px}.ant-steps-rtl.ant-steps-dot .ant-steps-item-icon,.ant-steps-rtl.ant-steps-dot.ant-steps-small .ant-steps-item-icon{margin-left:0;margin-right:67px}.ant-steps-rtl.ant-steps-dot .ant-steps-item-icon .ant-steps-icon-dot,.ant-steps-rtl.ant-steps-dot.ant-steps-small .ant-steps-item-icon .ant-steps-icon-dot{float:right}.ant-steps-rtl.ant-steps-dot .ant-steps-item-icon .ant-steps-icon-dot:after,.ant-steps-rtl.ant-steps-dot.ant-steps-small .ant-steps-item-icon .ant-steps-icon-dot:after{left:auto;right:-26px}.ant-steps-rtl.ant-steps-vertical.ant-steps-dot .ant-steps-item-icon{margin-left:16px;margin-right:0}.ant-steps-rtl.ant-steps-vertical.ant-steps-dot .ant-steps-item>.ant-steps-item-container>.ant-steps-item-tail{left:auto;right:-9px}.ant-steps-rtl.ant-steps-vertical.ant-steps-dot .ant-steps-item:first-child .ant-steps-icon-dot{left:auto;right:0}.ant-steps-rtl.ant-steps-vertical.ant-steps-dot .ant-steps-item-process .ant-steps-icon-dot{left:auto;right:-2px}.ant-steps-rtl.ant-steps-with-progress.ant-steps-horizontal.ant-steps-label-horizontal .ant-steps-item:first-child.ant-steps-item-active{padding-right:4px}.ant-steps-with-progress .ant-steps-item{padding-top:4px}.ant-steps-with-progress .ant-steps-item .ant-steps-item-tail{top:4px!important}.ant-steps-with-progress.ant-steps-horizontal .ant-steps-item:first-child{padding-bottom:4px;padding-left:4px}.ant-steps-with-progress .ant-steps-item-icon{position:relative}.ant-steps-with-progress .ant-steps-item-icon .ant-progress{bottom:-5px;left:-5px;position:absolute;right:-5px;top:-5px}.ant-switch{font-feature-settings:"tnum";background-color:rgba(0,0,0,.25);border:0;border-radius:100px;box-sizing:border-box;color:rgba(0,0,0,.85);cursor:pointer;display:inline-block;font-size:14px;font-variant:tabular-nums;height:22px;line-height:1.5715;line-height:22px;list-style:none;margin:0;min-width:44px;padding:0;position:relative;transition:all .2s;-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle}.ant-switch:focus{box-shadow:0 0 0 2px rgba(0,0,0,.1);outline:0}.ant-switch-checked:focus{box-shadow:0 0 0 2px var(--ant-primary-1)}.ant-switch:focus:hover{box-shadow:none}.ant-switch-checked{background-color:var(--ant-primary-color)}.ant-switch-disabled,.ant-switch-loading{cursor:not-allowed;opacity:.4}.ant-switch-disabled *,.ant-switch-loading *{box-shadow:none;cursor:not-allowed}.ant-switch-inner{color:#fff;display:block;font-size:12px;margin:0 7px 0 25px;transition:margin .2s}.ant-switch-checked .ant-switch-inner{margin:0 25px 0 7px}.ant-switch-handle{height:18px;left:2px;top:2px;width:18px}.ant-switch-handle,.ant-switch-handle:before{position:absolute;transition:all .2s ease-in-out}.ant-switch-handle:before{background-color:#fff;border-radius:9px;bottom:0;box-shadow:0 2px 4px 0 rgba(0,35,11,.2);content:"";left:0;right:0;top:0}.ant-switch-checked .ant-switch-handle{left:calc(100% - 20px)}.ant-switch:not(.ant-switch-disabled):active .ant-switch-handle:before{left:0;right:-30%}.ant-switch:not(.ant-switch-disabled):active.ant-switch-checked .ant-switch-handle:before{left:-30%;right:0}.ant-switch-loading-icon.anticon{color:rgba(0,0,0,.65);position:relative;top:2px;vertical-align:top}.ant-switch-checked .ant-switch-loading-icon{color:var(--ant-primary-color)}.ant-switch-small{height:16px;line-height:16px;min-width:28px}.ant-switch-small .ant-switch-inner{font-size:12px;margin:0 5px 0 18px}.ant-switch-small .ant-switch-handle{height:12px;width:12px}.ant-switch-small .ant-switch-loading-icon{font-size:9px;top:1.5px}.ant-switch-small.ant-switch-checked .ant-switch-inner{margin:0 18px 0 5px}.ant-switch-small.ant-switch-checked .ant-switch-handle{left:calc(100% - 14px)}.ant-switch-rtl{direction:rtl}.ant-switch-rtl .ant-switch-inner{margin:0 25px 0 7px}.ant-switch-rtl .ant-switch-handle{left:auto;right:2px}.ant-switch-rtl:not(.ant-switch-rtl-disabled):active .ant-switch-handle:before{left:-30%;right:0}.ant-switch-rtl:not(.ant-switch-rtl-disabled):active.ant-switch-checked .ant-switch-handle:before{left:0;right:-30%}.ant-switch-rtl.ant-switch-checked .ant-switch-inner{margin:0 7px 0 25px}.ant-switch-rtl.ant-switch-checked .ant-switch-handle{right:calc(100% - 20px)}.ant-switch-rtl.ant-switch-small.ant-switch-checked .ant-switch-handle{right:calc(100% - 14px)}.ant-table.ant-table-middle{font-size:14px}.ant-table.ant-table-middle .ant-table-footer,.ant-table.ant-table-middle .ant-table-tbody>tr>td,.ant-table.ant-table-middle .ant-table-thead>tr>th,.ant-table.ant-table-middle .ant-table-title,.ant-table.ant-table-middle tfoot>tr>td,.ant-table.ant-table-middle tfoot>tr>th{padding:12px 8px}.ant-table.ant-table-middle .ant-table-filter-trigger{margin-right:-4px}.ant-table.ant-table-middle .ant-table-expanded-row-fixed{margin:-12px -8px}.ant-table.ant-table-middle .ant-table-tbody .ant-table-wrapper:only-child .ant-table{margin:-12px -8px -12px 25px}.ant-table.ant-table-small{font-size:14px}.ant-table.ant-table-small .ant-table-footer,.ant-table.ant-table-small .ant-table-tbody>tr>td,.ant-table.ant-table-small .ant-table-thead>tr>th,.ant-table.ant-table-small .ant-table-title,.ant-table.ant-table-small tfoot>tr>td,.ant-table.ant-table-small tfoot>tr>th{padding:8px}.ant-table.ant-table-small .ant-table-filter-trigger{margin-right:-4px}.ant-table.ant-table-small .ant-table-expanded-row-fixed{margin:-8px}.ant-table.ant-table-small .ant-table-tbody .ant-table-wrapper:only-child .ant-table{margin:-8px -8px -8px 25px}.ant-table-small .ant-table-thead>tr>th{background-color:#fafafa}.ant-table-small .ant-table-selection-column{min-width:46px;width:46px}.ant-table.ant-table-bordered>.ant-table-title{border:1px solid #f0f0f0;border-bottom:0}.ant-table.ant-table-bordered>.ant-table-container{border-left:1px solid #f0f0f0}.ant-table.ant-table-bordered>.ant-table-container>.ant-table-body>table>tbody>tr>td,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-body>table>tfoot>tr>td,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-body>table>tfoot>tr>th,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-body>table>thead>tr>th,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-content>table>tbody>tr>td,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-content>table>tfoot>tr>td,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-content>table>tfoot>tr>th,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-content>table>thead>tr>th,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-header>table>tbody>tr>td,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-header>table>tfoot>tr>td,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-header>table>tfoot>tr>th,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-header>table>thead>tr>th,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-summary>table>tbody>tr>td,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-summary>table>tfoot>tr>td,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-summary>table>tfoot>tr>th,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-summary>table>thead>tr>th{border-right:1px solid #f0f0f0}.ant-table.ant-table-bordered>.ant-table-container>.ant-table-body>table>thead>tr:not(:last-child)>th,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-content>table>thead>tr:not(:last-child)>th,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-header>table>thead>tr:not(:last-child)>th,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-summary>table>thead>tr:not(:last-child)>th{border-bottom:1px solid #f0f0f0}.ant-table.ant-table-bordered>.ant-table-container>.ant-table-body>table>thead>tr>th:before,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-content>table>thead>tr>th:before,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-header>table>thead>tr>th:before,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-summary>table>thead>tr>th:before{background-color:transparent!important}.ant-table.ant-table-bordered>.ant-table-container>.ant-table-body>table>tbody>tr>.ant-table-cell-fix-right-first:after,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-body>table>tfoot>tr>.ant-table-cell-fix-right-first:after,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-body>table>thead>tr>.ant-table-cell-fix-right-first:after,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-content>table>tbody>tr>.ant-table-cell-fix-right-first:after,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-content>table>tfoot>tr>.ant-table-cell-fix-right-first:after,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-content>table>thead>tr>.ant-table-cell-fix-right-first:after,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-header>table>tbody>tr>.ant-table-cell-fix-right-first:after,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-header>table>tfoot>tr>.ant-table-cell-fix-right-first:after,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-header>table>thead>tr>.ant-table-cell-fix-right-first:after,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-summary>table>tbody>tr>.ant-table-cell-fix-right-first:after,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-summary>table>tfoot>tr>.ant-table-cell-fix-right-first:after,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-summary>table>thead>tr>.ant-table-cell-fix-right-first:after{border-right:1px solid #f0f0f0}.ant-table.ant-table-bordered>.ant-table-container>.ant-table-body>table>tbody>tr>td>.ant-table-expanded-row-fixed,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-content>table>tbody>tr>td>.ant-table-expanded-row-fixed,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-header>table>tbody>tr>td>.ant-table-expanded-row-fixed,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-summary>table>tbody>tr>td>.ant-table-expanded-row-fixed{margin:-16px -17px}.ant-table.ant-table-bordered>.ant-table-container>.ant-table-body>table>tbody>tr>td>.ant-table-expanded-row-fixed:after,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-content>table>tbody>tr>td>.ant-table-expanded-row-fixed:after,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-header>table>tbody>tr>td>.ant-table-expanded-row-fixed:after,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-summary>table>tbody>tr>td>.ant-table-expanded-row-fixed:after{border-right:1px solid #f0f0f0;bottom:0;content:"";position:absolute;right:1px;top:0}.ant-table.ant-table-bordered>.ant-table-container>.ant-table-content>table,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-header>table{border-top:1px solid #f0f0f0}.ant-table.ant-table-bordered.ant-table-scroll-horizontal>.ant-table-container>.ant-table-body>table>tbody>tr.ant-table-expanded-row>td,.ant-table.ant-table-bordered.ant-table-scroll-horizontal>.ant-table-container>.ant-table-body>table>tbody>tr.ant-table-placeholder>td{border-right:0}.ant-table.ant-table-bordered.ant-table-middle>.ant-table-container>.ant-table-body>table>tbody>tr>td>.ant-table-expanded-row-fixed,.ant-table.ant-table-bordered.ant-table-middle>.ant-table-container>.ant-table-content>table>tbody>tr>td>.ant-table-expanded-row-fixed{margin:-12px -9px}.ant-table.ant-table-bordered.ant-table-small>.ant-table-container>.ant-table-body>table>tbody>tr>td>.ant-table-expanded-row-fixed,.ant-table.ant-table-bordered.ant-table-small>.ant-table-container>.ant-table-content>table>tbody>tr>td>.ant-table-expanded-row-fixed{margin:-8px -9px}.ant-table.ant-table-bordered>.ant-table-footer{border:1px solid #f0f0f0;border-top:0}.ant-table-cell .ant-table-container:first-child{border-top:0}.ant-table-cell-scrollbar{box-shadow:0 1px 0 1px #fafafa}.ant-table-resize-handle{bottom:0;cursor:col-resize;height:100%!important;left:auto!important;position:absolute;right:-8px;top:0;touch-action:none;-webkit-user-select:auto;-moz-user-select:auto;user-select:auto;width:16px;z-index:1}.ant-table-resize-handle-line{background-color:var(--ant-primary-color);display:block;height:100%!important;margin-left:7px;opacity:0;width:1px}.ant-table-resize-handle.dragging .ant-table-resize-handle-line,.ant-table-resize-handle:hover .ant-table-resize-handle-line{opacity:1}.ant-table-resize-handle.dragging:before{bottom:0;content:" ";opacity:0;position:absolute;top:0;transform:translateX(-50%);width:100%;width:200vw}.ant-table-wrapper{clear:both;max-width:100%}.ant-table-wrapper:before{content:"";display:table}.ant-table-wrapper:after{clear:both;content:"";display:table}.ant-table{font-feature-settings:"tnum";background:#fff;border-radius:2px;box-sizing:border-box;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0;position:relative}.ant-table table{border-collapse:separate;border-radius:2px 2px 0 0;border-spacing:0;text-align:left;width:100%}.ant-table tfoot>tr>td,.ant-table tfoot>tr>th,.ant-table-tbody>tr>td,.ant-table-thead>tr>th{overflow-wrap:break-word;padding:16px;position:relative}.ant-table-cell-ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-break:keep-all}.ant-table-cell-ellipsis.ant-table-cell-fix-left-last,.ant-table-cell-ellipsis.ant-table-cell-fix-right-first{overflow:visible}.ant-table-cell-ellipsis.ant-table-cell-fix-left-last .ant-table-cell-content,.ant-table-cell-ellipsis.ant-table-cell-fix-right-first .ant-table-cell-content{display:block;overflow:hidden;text-overflow:ellipsis}.ant-table-cell-ellipsis .ant-table-column-title{overflow:hidden;text-overflow:ellipsis;word-break:keep-all}.ant-table-title{padding:16px}.ant-table-footer{background:#fafafa;color:rgba(0,0,0,.85);padding:16px}.ant-table-thead>tr>th{background:#fafafa;border-bottom:1px solid #f0f0f0;color:rgba(0,0,0,.85);font-weight:500;position:relative;text-align:left;transition:background .3s ease}.ant-table-thead>tr>th[colspan]:not([colspan="1"]){text-align:center}.ant-table-thead>tr>th:not(:last-child):not(.ant-table-selection-column):not(.ant-table-row-expand-icon-cell):not([colspan]):before{background-color:rgba(0,0,0,.06);content:"";height:1.6em;position:absolute;right:0;top:50%;transform:translateY(-50%);transition:background-color .3s;width:1px}.ant-table-thead>tr:not(:last-child)>th[colspan]{border-bottom:0}.ant-table-tbody>tr>td{border-bottom:1px solid #f0f0f0;transition:background .3s}.ant-table-tbody>tr>td>.ant-table-expanded-row-fixed>.ant-table-wrapper:only-child .ant-table,.ant-table-tbody>tr>td>.ant-table-wrapper:only-child .ant-table{margin:-16px -16px -16px 33px}.ant-table-tbody>tr>td>.ant-table-expanded-row-fixed>.ant-table-wrapper:only-child .ant-table-tbody>tr:last-child>td,.ant-table-tbody>tr>td>.ant-table-wrapper:only-child .ant-table-tbody>tr:last-child>td{border-bottom:0}.ant-table-tbody>tr>td>.ant-table-expanded-row-fixed>.ant-table-wrapper:only-child .ant-table-tbody>tr:last-child>td:first-child,.ant-table-tbody>tr>td>.ant-table-expanded-row-fixed>.ant-table-wrapper:only-child .ant-table-tbody>tr:last-child>td:last-child,.ant-table-tbody>tr>td>.ant-table-wrapper:only-child .ant-table-tbody>tr:last-child>td:first-child,.ant-table-tbody>tr>td>.ant-table-wrapper:only-child .ant-table-tbody>tr:last-child>td:last-child{border-radius:0}.ant-table-tbody>tr.ant-table-row:hover>td,.ant-table-tbody>tr>td.ant-table-cell-row-hover{background:#fafafa}.ant-table-tbody>tr.ant-table-row-selected>td{background:var(--ant-primary-1);border-color:rgba(0,0,0,.03)}.ant-table-tbody>tr.ant-table-row-selected:hover>td{background:var(--ant-primary-color-active-deprecated-d-02)}.ant-table-summary{background:#fff;position:relative;z-index:2}div.ant-table-summary{box-shadow:0 -1px 0 #f0f0f0}.ant-table-summary>tr>td,.ant-table-summary>tr>th{border-bottom:1px solid #f0f0f0}.ant-table-pagination.ant-pagination{margin:16px 0}.ant-table-pagination{display:flex;flex-wrap:wrap;row-gap:8px}.ant-table-pagination>*{flex:none}.ant-table-pagination-left{justify-content:flex-start}.ant-table-pagination-center{justify-content:center}.ant-table-pagination-right{justify-content:flex-end}.ant-table-thead th.ant-table-column-has-sorters{cursor:pointer;transition:all .3s}.ant-table-thead th.ant-table-column-has-sorters:hover{background:rgba(0,0,0,.04)}.ant-table-thead th.ant-table-column-has-sorters:hover:before{background-color:transparent!important}.ant-table-thead th.ant-table-column-has-sorters.ant-table-cell-fix-left:hover,.ant-table-thead th.ant-table-column-has-sorters.ant-table-cell-fix-right:hover,.ant-table-thead th.ant-table-column-sort{background:#f5f5f5}.ant-table-thead th.ant-table-column-sort:before{background-color:transparent!important}td.ant-table-column-sort{background:#fafafa}.ant-table-column-title{flex:1;position:relative;z-index:1}.ant-table-column-sorters{align-items:center;display:flex;flex:auto;justify-content:space-between}.ant-table-column-sorters:after{bottom:0;content:"";height:100%;left:0;position:absolute;right:0;top:0;width:100%}.ant-table-column-sorter{color:#bfbfbf;font-size:0;margin-left:4px;transition:color .3s}.ant-table-column-sorter-inner{align-items:center;display:inline-flex;flex-direction:column}.ant-table-column-sorter-down,.ant-table-column-sorter-up{font-size:11px}.ant-table-column-sorter-down.active,.ant-table-column-sorter-up.active{color:var(--ant-primary-color)}.ant-table-column-sorter-up+.ant-table-column-sorter-down{margin-top:-.3em}.ant-table-column-sorters:hover .ant-table-column-sorter{color:#a6a6a6}.ant-table-filter-column{display:flex;justify-content:space-between}.ant-table-filter-trigger{align-items:center;border-radius:2px;color:#bfbfbf;cursor:pointer;display:flex;font-size:12px;margin:-4px -8px -4px 4px;padding:0 4px;position:relative;transition:all .3s}.ant-table-filter-trigger:hover{background:rgba(0,0,0,.04);color:rgba(0,0,0,.45)}.ant-table-filter-trigger.active{color:var(--ant-primary-color)}.ant-table-filter-dropdown{font-feature-settings:"tnum";background-color:#fff;border-radius:2px;box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05);box-sizing:border-box;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;min-width:120px;padding:0}.ant-table-filter-dropdown .ant-dropdown-menu{border:0;box-shadow:none;max-height:264px;overflow-x:hidden}.ant-table-filter-dropdown .ant-dropdown-menu:empty:after{color:rgba(0,0,0,.25);content:"Not Found";display:block;font-size:12px;padding:8px 0;text-align:center}.ant-table-filter-dropdown-tree{padding:8px 8px 0}.ant-table-filter-dropdown-tree .ant-tree-treenode .ant-tree-node-content-wrapper:hover{background-color:#f5f5f5}.ant-table-filter-dropdown-tree .ant-tree-treenode-checkbox-checked .ant-tree-node-content-wrapper,.ant-table-filter-dropdown-tree .ant-tree-treenode-checkbox-checked .ant-tree-node-content-wrapper:hover{background-color:var(--ant-primary-2)}.ant-table-filter-dropdown-search{border-bottom:1px solid #f0f0f0;padding:8px}.ant-table-filter-dropdown-search-input input{min-width:140px}.ant-table-filter-dropdown-search-input .anticon{color:rgba(0,0,0,.25)}.ant-table-filter-dropdown-checkall{margin-bottom:4px;margin-left:4px;width:100%}.ant-table-filter-dropdown-submenu>ul{max-height:calc(100vh - 130px);overflow-x:hidden;overflow-y:auto}.ant-table-filter-dropdown .ant-checkbox-wrapper+span,.ant-table-filter-dropdown-submenu .ant-checkbox-wrapper+span{padding-left:8px}.ant-table-filter-dropdown-btns{background-color:inherit;border-top:1px solid #f0f0f0;display:flex;justify-content:space-between;overflow:hidden;padding:7px 8px}.ant-table-selection-col{width:32px}.ant-table-bordered .ant-table-selection-col{width:50px}table tr td.ant-table-selection-column,table tr th.ant-table-selection-column{padding-left:8px;padding-right:8px;text-align:center}table tr td.ant-table-selection-column .ant-radio-wrapper,table tr th.ant-table-selection-column .ant-radio-wrapper{margin-right:0}table tr th.ant-table-selection-column.ant-table-cell-fix-left{z-index:3}table tr th.ant-table-selection-column:after{background-color:transparent!important}.ant-table-selection{display:inline-flex;flex-direction:column;position:relative}.ant-table-selection-extra{-webkit-margin-start:100%;-webkit-padding-start:4px;cursor:pointer;margin-inline-start:100%;padding-inline-start:4px;position:absolute;top:0;transition:all .3s;z-index:1}.ant-table-selection-extra .anticon{color:#bfbfbf;font-size:10px}.ant-table-selection-extra .anticon:hover{color:#a6a6a6}.ant-table-expand-icon-col{width:48px}.ant-table-row-expand-icon-cell{text-align:center}.ant-table-row-indent{float:left;height:1px}.ant-table-row-expand-icon{background:#fff;border:1px solid #f0f0f0;border-radius:2px;box-sizing:border-box;color:var(--ant-primary-color);color:inherit;cursor:pointer;display:inline-flex;float:left;height:17px;line-height:17px;outline:none;padding:0;position:relative;text-decoration:none;transform:scale(.94117647);transition:color .3s;transition:all .3s;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:17px}.ant-table-row-expand-icon:focus,.ant-table-row-expand-icon:hover{color:var(--ant-primary-color-hover)}.ant-table-row-expand-icon:active{color:var(--ant-primary-color-active)}.ant-table-row-expand-icon:active,.ant-table-row-expand-icon:focus,.ant-table-row-expand-icon:hover{border-color:currentcolor}.ant-table-row-expand-icon:after,.ant-table-row-expand-icon:before{background:currentcolor;content:"";position:absolute;transition:transform .3s ease-out}.ant-table-row-expand-icon:before{height:1px;left:3px;right:3px;top:7px}.ant-table-row-expand-icon:after{bottom:3px;left:7px;top:3px;transform:rotate(90deg);width:1px}.ant-table-row-expand-icon-collapsed:before{transform:rotate(-180deg)}.ant-table-row-expand-icon-collapsed:after{transform:rotate(0deg)}.ant-table-row-expand-icon-spaced{background:transparent;border:0;visibility:hidden}.ant-table-row-expand-icon-spaced:after,.ant-table-row-expand-icon-spaced:before{content:none;display:none}.ant-table-row-indent+.ant-table-row-expand-icon{margin-right:8px;margin-top:2.5005px}tr.ant-table-expanded-row:hover>td,tr.ant-table-expanded-row>td{background:#fbfbfb}tr.ant-table-expanded-row .ant-descriptions-view{display:flex}tr.ant-table-expanded-row .ant-descriptions-view table{flex:auto;width:auto}.ant-table .ant-table-expanded-row-fixed{margin:-16px;padding:16px;position:relative}.ant-table-tbody>tr.ant-table-placeholder{text-align:center}.ant-table-empty .ant-table-tbody>tr.ant-table-placeholder{color:rgba(0,0,0,.25)}.ant-table-tbody>tr.ant-table-placeholder:hover>td{background:#fff}.ant-table-cell-fix-left,.ant-table-cell-fix-right{background:#fff;position:-webkit-sticky!important;position:sticky!important;z-index:2}.ant-table-cell-fix-left-first:after,.ant-table-cell-fix-left-last:after{bottom:-1px;content:"";pointer-events:none;position:absolute;right:0;top:0;transform:translateX(100%);transition:box-shadow .3s;width:30px}.ant-table-cell-fix-right-first:after,.ant-table-cell-fix-right-last:after{bottom:-1px;content:"";left:0;pointer-events:none;position:absolute;top:0;transform:translateX(-100%);transition:box-shadow .3s;width:30px}.ant-table .ant-table-container:after,.ant-table .ant-table-container:before{bottom:0;content:"";pointer-events:none;position:absolute;top:0;transition:box-shadow .3s;width:30px;z-index:1}.ant-table .ant-table-container:before{left:0}.ant-table .ant-table-container:after{right:0}.ant-table-ping-left:not(.ant-table-has-fix-left) .ant-table-container{position:relative}.ant-table-ping-left .ant-table-cell-fix-left-first:after,.ant-table-ping-left .ant-table-cell-fix-left-last:after,.ant-table-ping-left:not(.ant-table-has-fix-left) .ant-table-container:before{box-shadow:inset 10px 0 8px -8px rgba(0,0,0,.15)}.ant-table-ping-left .ant-table-cell-fix-left-last:before{background-color:transparent!important}.ant-table-ping-right:not(.ant-table-has-fix-right) .ant-table-container{position:relative}.ant-table-ping-right .ant-table-cell-fix-right-first:after,.ant-table-ping-right .ant-table-cell-fix-right-last:after,.ant-table-ping-right:not(.ant-table-has-fix-right) .ant-table-container:after{box-shadow:inset -10px 0 8px -8px rgba(0,0,0,.15)}.ant-table-sticky-holder,.ant-table-sticky-scroll{background:#fff;position:-webkit-sticky;position:sticky;z-index:3}.ant-table-sticky-scroll{align-items:center;border-top:1px solid #f0f0f0;bottom:0;display:flex;opacity:.6}.ant-table-sticky-scroll:hover{transform-origin:center bottom}.ant-table-sticky-scroll-bar{background-color:rgba(0,0,0,.35);border-radius:4px;height:8px}.ant-table-sticky-scroll-bar-active,.ant-table-sticky-scroll-bar:hover{background-color:rgba(0,0,0,.8)}@media (-ms-high-contrast:none){.ant-table-ping-left .ant-table-cell-fix-left-last:after,.ant-table-ping-right .ant-table-cell-fix-right-first:after{box-shadow:none!important}}.ant-table-title{border-radius:2px 2px 0 0}.ant-table-title+.ant-table-container{border-top-left-radius:0;border-top-right-radius:0}.ant-table-title+.ant-table-container table>thead>tr:first-child th:first-child,.ant-table-title+.ant-table-container table>thead>tr:first-child th:last-child{border-radius:0}.ant-table-container{border-top-right-radius:2px}.ant-table-container,.ant-table-container table>thead>tr:first-child th:first-child{border-top-left-radius:2px}.ant-table-container table>thead>tr:first-child th:last-child{border-top-right-radius:2px}.ant-table-footer{border-radius:0 0 2px 2px}.ant-table-rtl,.ant-table-wrapper-rtl{direction:rtl}.ant-table-wrapper-rtl .ant-table table{text-align:right}.ant-table-wrapper-rtl .ant-table-thead>tr>th[colspan]:not([colspan="1"]){text-align:center}.ant-table-wrapper-rtl .ant-table-thead>tr>th:not(:last-child):not(.ant-table-selection-column):not(.ant-table-row-expand-icon-cell):not([colspan]):before{left:0;right:auto}.ant-table-wrapper-rtl .ant-table-thead>tr>th{text-align:right}.ant-table-tbody>tr .ant-table-wrapper:only-child .ant-table.ant-table-rtl{margin:-16px 33px -16px -16px}.ant-table-wrapper.ant-table-wrapper-rtl .ant-table-pagination-left{justify-content:flex-end}.ant-table-wrapper.ant-table-wrapper-rtl .ant-table-pagination-right{justify-content:flex-start}.ant-table-wrapper-rtl .ant-table-column-sorter{margin-left:0;margin-right:4px}.ant-table-wrapper-rtl .ant-table-filter-column-title{padding:16px 16px 16px 2.3em}.ant-table-rtl .ant-table-thead tr th.ant-table-column-has-sorters .ant-table-filter-column-title{padding:0 0 0 2.3em}.ant-table-wrapper-rtl .ant-table-filter-trigger{margin:-4px 4px -4px -8px}.ant-dropdown-menu-submenu-rtl.ant-table-filter-dropdown .ant-checkbox-wrapper+span,.ant-dropdown-menu-submenu-rtl.ant-table-filter-dropdown-submenu .ant-checkbox-wrapper+span,.ant-dropdown-rtl .ant-table-filter-dropdown .ant-checkbox-wrapper+span,.ant-dropdown-rtl .ant-table-filter-dropdown-submenu .ant-checkbox-wrapper+span{padding-left:0;padding-right:8px}.ant-table-wrapper-rtl .ant-table-selection{text-align:center}.ant-table-wrapper-rtl .ant-table-row-expand-icon,.ant-table-wrapper-rtl .ant-table-row-indent{float:right}.ant-table-wrapper-rtl .ant-table-row-indent+.ant-table-row-expand-icon{margin-left:8px;margin-right:0}.ant-table-wrapper-rtl .ant-table-row-expand-icon:after{transform:rotate(-90deg)}.ant-table-wrapper-rtl .ant-table-row-expand-icon-collapsed:before{transform:rotate(180deg)}.ant-table-wrapper-rtl .ant-table-row-expand-icon-collapsed:after{transform:rotate(0deg)}.ant-tree.ant-tree-directory .ant-tree-treenode{position:relative}.ant-tree.ant-tree-directory .ant-tree-treenode:before{bottom:4px;content:"";left:0;pointer-events:none;position:absolute;right:0;top:0;transition:background-color .3s}.ant-tree.ant-tree-directory .ant-tree-treenode:hover:before{background:#f5f5f5}.ant-tree.ant-tree-directory .ant-tree-treenode>*{z-index:1}.ant-tree.ant-tree-directory .ant-tree-treenode .ant-tree-switcher{transition:color .3s}.ant-tree.ant-tree-directory .ant-tree-treenode .ant-tree-node-content-wrapper{border-radius:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ant-tree.ant-tree-directory .ant-tree-treenode .ant-tree-node-content-wrapper:hover{background:transparent}.ant-tree.ant-tree-directory .ant-tree-treenode .ant-tree-node-content-wrapper.ant-tree-node-selected{background:transparent;color:#fff}.ant-tree.ant-tree-directory .ant-tree-treenode-selected:before,.ant-tree.ant-tree-directory .ant-tree-treenode-selected:hover:before{background:var(--ant-primary-color)}.ant-tree.ant-tree-directory .ant-tree-treenode-selected .ant-tree-switcher{color:#fff}.ant-tree.ant-tree-directory .ant-tree-treenode-selected .ant-tree-node-content-wrapper{background:transparent;color:#fff}.ant-tree-checkbox{font-feature-settings:"tnum";box-sizing:border-box;color:rgba(0,0,0,.85);cursor:pointer;font-size:14px;font-variant:tabular-nums;line-height:1.5715;line-height:1;list-style:none;margin:0;outline:none;padding:0;position:relative;top:.2em;white-space:nowrap}.ant-tree-checkbox-input:focus+.ant-tree-checkbox-inner,.ant-tree-checkbox-wrapper:hover .ant-tree-checkbox-inner,.ant-tree-checkbox:hover .ant-tree-checkbox-inner{border-color:var(--ant-primary-color)}.ant-tree-checkbox-checked:after{-webkit-animation:antCheckboxEffect .36s ease-in-out;animation:antCheckboxEffect .36s ease-in-out;-webkit-animation-fill-mode:backwards;animation-fill-mode:backwards;border:1px solid var(--ant-primary-color);border-radius:2px;content:"";height:100%;left:0;position:absolute;top:0;visibility:hidden;width:100%}.ant-tree-checkbox-wrapper:hover .ant-tree-checkbox:after,.ant-tree-checkbox:hover:after{visibility:visible}.ant-tree-checkbox-inner{background-color:#fff;border:1px solid #d9d9d9;border-collapse:separate;border-radius:2px;direction:ltr;display:block;height:16px;left:0;position:relative;top:0;transition:all .3s;width:16px}.ant-tree-checkbox-inner:after{border:2px solid #fff;border-left:0;border-top:0;content:" ";display:table;height:9.14285714px;left:21.5%;opacity:0;position:absolute;top:50%;transform:rotate(45deg) scale(0) translate(-50%,-50%);transition:all .1s cubic-bezier(.71,-.46,.88,.6),opacity .1s;width:5.71428571px}.ant-tree-checkbox-input{bottom:0;cursor:pointer;height:100%;left:0;opacity:0;position:absolute;right:0;top:0;width:100%;z-index:1}.ant-tree-checkbox-checked .ant-tree-checkbox-inner:after{border:2px solid #fff;border-left:0;border-top:0;content:" ";display:table;opacity:1;position:absolute;transform:rotate(45deg) scale(1) translate(-50%,-50%);transition:all .2s cubic-bezier(.12,.4,.29,1.46) .1s}.ant-tree-checkbox-checked .ant-tree-checkbox-inner{background-color:var(--ant-primary-color);border-color:var(--ant-primary-color)}.ant-tree-checkbox-disabled{cursor:not-allowed}.ant-tree-checkbox-disabled.ant-tree-checkbox-checked .ant-tree-checkbox-inner:after{-webkit-animation-name:none;animation-name:none;border-color:rgba(0,0,0,.25)}.ant-tree-checkbox-disabled .ant-tree-checkbox-input{cursor:not-allowed;pointer-events:none}.ant-tree-checkbox-disabled .ant-tree-checkbox-inner{background-color:#f5f5f5;border-color:#d9d9d9!important}.ant-tree-checkbox-disabled .ant-tree-checkbox-inner:after{-webkit-animation-name:none;animation-name:none;border-collapse:separate;border-color:#f5f5f5}.ant-tree-checkbox-disabled+span{color:rgba(0,0,0,.25);cursor:not-allowed}.ant-tree-checkbox-disabled:hover:after,.ant-tree-checkbox-wrapper:hover .ant-tree-checkbox-disabled:after{visibility:hidden}.ant-tree-checkbox-wrapper{font-feature-settings:"tnum";align-items:baseline;box-sizing:border-box;color:rgba(0,0,0,.85);cursor:pointer;display:inline-flex;font-size:14px;font-variant:tabular-nums;line-height:1.5715;line-height:unset;list-style:none;margin:0;padding:0}.ant-tree-checkbox-wrapper:after{content:"\\a0";display:inline-block;overflow:hidden;width:0}.ant-tree-checkbox-wrapper.ant-tree-checkbox-wrapper-disabled{cursor:not-allowed}.ant-tree-checkbox-wrapper+.ant-tree-checkbox-wrapper{margin-left:8px}.ant-tree-checkbox+span{padding-left:8px;padding-right:8px}.ant-tree-checkbox-group{font-feature-settings:"tnum";box-sizing:border-box;color:rgba(0,0,0,.85);display:inline-block;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0}.ant-tree-checkbox-group-item{margin-right:8px}.ant-tree-checkbox-group-item:last-child{margin-right:0}.ant-tree-checkbox-group-item+.ant-tree-checkbox-group-item{margin-left:0}.ant-tree-checkbox-indeterminate .ant-tree-checkbox-inner{background-color:#fff;border-color:#d9d9d9}.ant-tree-checkbox-indeterminate .ant-tree-checkbox-inner:after{background-color:var(--ant-primary-color);border:0;content:" ";height:8px;left:50%;opacity:1;top:50%;transform:translate(-50%,-50%) scale(1);width:8px}.ant-tree-checkbox-indeterminate.ant-tree-checkbox-disabled .ant-tree-checkbox-inner:after{background-color:rgba(0,0,0,.25);border-color:rgba(0,0,0,.25)}.ant-tree{font-feature-settings:"tnum";background:#fff;border-radius:2px;box-sizing:border-box;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0;transition:background-color .3s}.ant-tree-focused:not(:hover):not(.ant-tree-active-focused){background:var(--ant-primary-1)}.ant-tree-list-holder-inner{align-items:flex-start}.ant-tree.ant-tree-block-node .ant-tree-list-holder-inner{align-items:stretch}.ant-tree.ant-tree-block-node .ant-tree-list-holder-inner .ant-tree-node-content-wrapper{flex:auto}.ant-tree.ant-tree-block-node .ant-tree-list-holder-inner .ant-tree-treenode.dragging{position:relative}.ant-tree.ant-tree-block-node .ant-tree-list-holder-inner .ant-tree-treenode.dragging:after{-webkit-animation:ant-tree-node-fx-do-not-use .3s;animation:ant-tree-node-fx-do-not-use .3s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-play-state:running;animation-play-state:running;border:1px solid var(--ant-primary-color);bottom:4px;content:"";left:0;opacity:0;pointer-events:none;position:absolute;right:0;top:0}.ant-tree .ant-tree-treenode{align-items:flex-start;display:flex;outline:none;padding:0 0 4px}.ant-tree .ant-tree-treenode-disabled .ant-tree-node-content-wrapper{color:rgba(0,0,0,.25);cursor:not-allowed}.ant-tree .ant-tree-treenode-disabled .ant-tree-node-content-wrapper:hover{background:transparent}.ant-tree .ant-tree-treenode-active .ant-tree-node-content-wrapper{background:#f5f5f5}.ant-tree .ant-tree-treenode:not(.ant-tree .ant-tree-treenode-disabled).filter-node .ant-tree-title{color:inherit;font-weight:500}.ant-tree-indent{align-self:stretch;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.ant-tree-indent-unit{display:inline-block;width:24px}.ant-tree-draggable-icon{line-height:24px;opacity:.2;text-align:center;transition:opacity .3s;width:24px}.ant-tree-treenode:hover .ant-tree-draggable-icon{opacity:.45}.ant-tree-switcher{align-self:stretch;cursor:pointer;flex:none;line-height:24px;margin:0;position:relative;text-align:center;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:24px}.ant-tree-switcher .ant-select-tree-switcher-icon,.ant-tree-switcher .ant-tree-switcher-icon{display:inline-block;font-size:10px;vertical-align:baseline}.ant-tree-switcher .ant-select-tree-switcher-icon svg,.ant-tree-switcher .ant-tree-switcher-icon svg{transition:transform .3s}.ant-tree-switcher-noop{cursor:default}.ant-tree-switcher_close .ant-tree-switcher-icon svg{transform:rotate(-90deg)}.ant-tree-switcher-loading-icon{color:var(--ant-primary-color)}.ant-tree-switcher-leaf-line{display:inline-block;height:100%;position:relative;width:100%;z-index:1}.ant-tree-switcher-leaf-line:before{border-right:1px solid #d9d9d9;bottom:-4px;content:" ";margin-left:-1px;position:absolute;right:12px;top:0}.ant-tree-switcher-leaf-line:after{border-bottom:1px solid #d9d9d9;content:" ";height:14px;position:absolute;width:10px}.ant-tree-checkbox{margin:4px 8px 0 0;top:auto}.ant-tree .ant-tree-node-content-wrapper{background:transparent;border-radius:2px;color:inherit;cursor:pointer;line-height:24px;margin:0;min-height:24px;padding:0 4px;position:relative;transition:all .3s,border 0s,line-height 0s,box-shadow 0s;z-index:auto}.ant-tree .ant-tree-node-content-wrapper:hover{background-color:#f5f5f5}.ant-tree .ant-tree-node-content-wrapper.ant-tree-node-selected{background-color:var(--ant-primary-2)}.ant-tree .ant-tree-node-content-wrapper .ant-tree-iconEle{display:inline-block;height:24px;line-height:24px;text-align:center;vertical-align:top;width:24px}.ant-tree .ant-tree-node-content-wrapper .ant-tree-iconEle:empty{display:none}.ant-tree-unselectable .ant-tree-node-content-wrapper:hover{background-color:transparent}.ant-tree-node-content-wrapper{line-height:24px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ant-tree-node-content-wrapper .ant-tree-drop-indicator{background-color:var(--ant-primary-color);border-radius:1px;height:2px;pointer-events:none;position:absolute;z-index:1}.ant-tree-node-content-wrapper .ant-tree-drop-indicator:after{background-color:transparent;border:2px solid var(--ant-primary-color);border-radius:50%;content:"";height:8px;left:-6px;position:absolute;top:-3px;width:8px}.ant-tree .ant-tree-treenode.drop-container>[draggable]{box-shadow:0 0 0 2px var(--ant-primary-color)}.ant-tree-show-line .ant-tree-indent-unit{height:100%;position:relative}.ant-tree-show-line .ant-tree-indent-unit:before{border-right:1px solid #d9d9d9;bottom:-4px;content:"";position:absolute;right:12px;top:0}.ant-tree-show-line .ant-tree-indent-unit-end:before{display:none}.ant-tree-show-line .ant-tree-switcher{background:#fff}.ant-tree-show-line .ant-tree-switcher-line-icon{vertical-align:-.15em}.ant-tree .ant-tree-treenode-leaf-last .ant-tree-switcher-leaf-line:before{bottom:auto!important;height:14px!important;top:auto!important}.ant-tree-rtl{direction:rtl}.ant-tree-rtl .ant-tree-node-content-wrapper[draggable=true] .ant-tree-drop-indicator:after{left:unset;right:-6px}.ant-tree .ant-tree-treenode-rtl{direction:rtl}.ant-tree-rtl .ant-tree-switcher_close .ant-tree-switcher-icon svg{transform:rotate(90deg)}.ant-tree-rtl.ant-tree-show-line .ant-tree-indent-unit:before{border-left:1px solid #d9d9d9;border-right:none;left:-13px;right:auto}.ant-tree-rtl.ant-tree-checkbox,.ant-tree-select-dropdown-rtl .ant-select-tree-checkbox{margin:4px 0 0 8px}.ant-timeline{font-feature-settings:"tnum";box-sizing:border-box;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0}.ant-timeline-item{font-size:14px;list-style:none;margin:0;padding-bottom:20px;position:relative}.ant-timeline-item-tail{border-left:2px solid #f0f0f0;height:calc(100% - 10px);left:4px;position:absolute;top:10px}.ant-timeline-item-pending .ant-timeline-item-head{background-color:transparent;font-size:12px}.ant-timeline-item-pending .ant-timeline-item-tail{display:none}.ant-timeline-item-head{background-color:#fff;border:2px solid transparent;border-radius:100px;height:10px;position:absolute;width:10px}.ant-timeline-item-head-blue{border-color:var(--ant-primary-color);color:var(--ant-primary-color)}.ant-timeline-item-head-red{border-color:var(--ant-error-color);color:var(--ant-error-color)}.ant-timeline-item-head-green{border-color:var(--ant-success-color);color:var(--ant-success-color)}.ant-timeline-item-head-gray{border-color:rgba(0,0,0,.25);color:rgba(0,0,0,.25)}.ant-timeline-item-head-custom{border:0;border-radius:0;height:auto;left:5px;line-height:1;margin-top:0;padding:3px 1px;position:absolute;text-align:center;top:5.5px;transform:translate(-50%,-50%);width:auto}.ant-timeline-item-content{margin:0 0 0 26px;position:relative;top:-7.001px;word-break:break-word}.ant-timeline-item-last>.ant-timeline-item-tail{display:none}.ant-timeline-item-last>.ant-timeline-item-content{min-height:48px}.ant-timeline.ant-timeline-alternate .ant-timeline-item-head,.ant-timeline.ant-timeline-alternate .ant-timeline-item-head-custom,.ant-timeline.ant-timeline-alternate .ant-timeline-item-tail,.ant-timeline.ant-timeline-label .ant-timeline-item-head,.ant-timeline.ant-timeline-label .ant-timeline-item-head-custom,.ant-timeline.ant-timeline-label .ant-timeline-item-tail,.ant-timeline.ant-timeline-right .ant-timeline-item-head,.ant-timeline.ant-timeline-right .ant-timeline-item-head-custom,.ant-timeline.ant-timeline-right .ant-timeline-item-tail{left:50%}.ant-timeline.ant-timeline-alternate .ant-timeline-item-head,.ant-timeline.ant-timeline-label .ant-timeline-item-head,.ant-timeline.ant-timeline-right .ant-timeline-item-head{margin-left:-4px}.ant-timeline.ant-timeline-alternate .ant-timeline-item-head-custom,.ant-timeline.ant-timeline-label .ant-timeline-item-head-custom,.ant-timeline.ant-timeline-right .ant-timeline-item-head-custom{margin-left:1px}.ant-timeline.ant-timeline-alternate .ant-timeline-item-left .ant-timeline-item-content,.ant-timeline.ant-timeline-label .ant-timeline-item-left .ant-timeline-item-content,.ant-timeline.ant-timeline-right .ant-timeline-item-left .ant-timeline-item-content{left:calc(50% - 4px);text-align:left;width:calc(50% - 14px)}.ant-timeline.ant-timeline-alternate .ant-timeline-item-right .ant-timeline-item-content,.ant-timeline.ant-timeline-label .ant-timeline-item-right .ant-timeline-item-content,.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-content{margin:0;text-align:right;width:calc(50% - 12px)}.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-head,.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-head-custom,.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-tail{left:calc(100% - 6px)}.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-content{width:calc(100% - 18px)}.ant-timeline.ant-timeline-pending .ant-timeline-item-last .ant-timeline-item-tail{border-left:2px dotted #f0f0f0;display:block;height:calc(100% - 14px)}.ant-timeline.ant-timeline-reverse .ant-timeline-item-last .ant-timeline-item-tail{display:none}.ant-timeline.ant-timeline-reverse .ant-timeline-item-pending .ant-timeline-item-tail{border-left:2px dotted #f0f0f0;display:block;height:calc(100% - 15px);top:15px}.ant-timeline.ant-timeline-reverse .ant-timeline-item-pending .ant-timeline-item-content{min-height:48px}.ant-timeline.ant-timeline-label .ant-timeline-item-label{position:absolute;text-align:right;top:-7.001px;width:calc(50% - 12px)}.ant-timeline.ant-timeline-label .ant-timeline-item-right .ant-timeline-item-label{left:calc(50% + 14px);text-align:left;width:calc(50% - 14px)}.ant-timeline-rtl{direction:rtl}.ant-timeline-rtl .ant-timeline-item-tail{border-left:none;border-right:2px solid #f0f0f0;left:auto;right:4px}.ant-timeline-rtl .ant-timeline-item-head-custom{left:auto;right:5px;transform:translate(50%,-50%)}.ant-timeline-rtl .ant-timeline-item-content{margin:0 18px 0 0}.ant-timeline-rtl.ant-timeline.ant-timeline-alternate .ant-timeline-item-head,.ant-timeline-rtl.ant-timeline.ant-timeline-alternate .ant-timeline-item-head-custom,.ant-timeline-rtl.ant-timeline.ant-timeline-alternate .ant-timeline-item-tail,.ant-timeline-rtl.ant-timeline.ant-timeline-label .ant-timeline-item-head,.ant-timeline-rtl.ant-timeline.ant-timeline-label .ant-timeline-item-head-custom,.ant-timeline-rtl.ant-timeline.ant-timeline-label .ant-timeline-item-tail,.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-head,.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-head-custom,.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-tail{left:auto;right:50%}.ant-timeline-rtl.ant-timeline.ant-timeline-alternate .ant-timeline-item-head,.ant-timeline-rtl.ant-timeline.ant-timeline-label .ant-timeline-item-head,.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-head{margin-left:0;margin-right:-4px}.ant-timeline-rtl.ant-timeline.ant-timeline-alternate .ant-timeline-item-head-custom,.ant-timeline-rtl.ant-timeline.ant-timeline-label .ant-timeline-item-head-custom,.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-head-custom{margin-left:0;margin-right:1px}.ant-timeline-rtl.ant-timeline.ant-timeline-alternate .ant-timeline-item-left .ant-timeline-item-content,.ant-timeline-rtl.ant-timeline.ant-timeline-label .ant-timeline-item-left .ant-timeline-item-content,.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-left .ant-timeline-item-content{left:auto;right:calc(50% - 4px);text-align:right}.ant-timeline-rtl.ant-timeline.ant-timeline-alternate .ant-timeline-item-right .ant-timeline-item-content,.ant-timeline-rtl.ant-timeline.ant-timeline-label .ant-timeline-item-right .ant-timeline-item-content,.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-content{text-align:left}.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-head,.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-head-custom,.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-tail{left:auto;right:0}.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-content{margin-right:18px;text-align:right;width:100%}.ant-timeline-rtl.ant-timeline.ant-timeline-pending .ant-timeline-item-last .ant-timeline-item-tail,.ant-timeline-rtl.ant-timeline.ant-timeline-reverse .ant-timeline-item-pending .ant-timeline-item-tail{border-left:none;border-right:2px dotted #f0f0f0}.ant-timeline-rtl.ant-timeline.ant-timeline-label .ant-timeline-item-label{text-align:left}.ant-timeline-rtl.ant-timeline.ant-timeline-label .ant-timeline-item-right .ant-timeline-item-label{right:calc(50% + 14px);text-align:right}.ant-transfer-customize-list .ant-transfer-list{flex:1 1 50%;height:auto;min-height:200px;width:auto}.ant-transfer-customize-list .ant-table-wrapper .ant-table-small{border:0;border-radius:0}.ant-transfer-customize-list .ant-table-wrapper .ant-table-small .ant-table-selection-column{min-width:40px;width:40px}.ant-transfer-customize-list .ant-table-wrapper .ant-table-small>.ant-table-content>.ant-table-body>table>.ant-table-thead>tr>th{background:#fafafa}.ant-transfer-customize-list .ant-table-wrapper .ant-table-small>.ant-table-content .ant-table-row:last-child td{border-bottom:1px solid #f0f0f0}.ant-transfer-customize-list .ant-table-wrapper .ant-table-small .ant-table-body{margin:0}.ant-transfer-customize-list .ant-table-wrapper .ant-table-pagination.ant-pagination{margin:16px 0 4px}.ant-transfer-customize-list .ant-input[disabled]{background-color:transparent}.ant-transfer{font-feature-settings:"tnum";align-items:stretch;box-sizing:border-box;color:rgba(0,0,0,.85);display:flex;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0;position:relative}.ant-transfer-disabled .ant-transfer-list{background:#f5f5f5}.ant-transfer-list{border:1px solid #d9d9d9;border-radius:2px;display:flex;flex-direction:column;height:200px;width:180px}.ant-transfer-list-with-pagination{height:auto;width:250px}.ant-transfer-list-search .anticon-search{color:rgba(0,0,0,.25)}.ant-transfer-list-header{align-items:center;background:#fff;border-bottom:1px solid #f0f0f0;border-radius:2px 2px 0 0;color:rgba(0,0,0,.85);display:flex;flex:none;height:40px;padding:8px 12px 9px}.ant-transfer-list-header>:not(:last-child){margin-right:4px}.ant-transfer-list-header>*{flex:none}.ant-transfer-list-header-title{flex:auto;overflow:hidden;text-align:right;text-overflow:ellipsis;white-space:nowrap}.ant-transfer-list-header-dropdown{cursor:pointer;font-size:10px;transform:translateY(10%)}.ant-transfer-list-header-dropdown[disabled]{cursor:not-allowed}.ant-transfer-list-body{display:flex;flex:auto;flex-direction:column;font-size:14px;overflow:hidden}.ant-transfer-list-body-search-wrapper{flex:none;padding:12px;position:relative}.ant-transfer-list-content{flex:auto;list-style:none;margin:0;overflow:auto;padding:0}.ant-transfer-list-content-item{align-items:center;display:flex;line-height:20px;min-height:32px;padding:6px 12px;transition:all .3s}.ant-transfer-list-content-item>:not(:last-child){margin-right:8px}.ant-transfer-list-content-item>*{flex:none}.ant-transfer-list-content-item-text{flex:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ant-transfer-list-content-item-remove{color:var(--ant-primary-color);color:#d9d9d9;cursor:pointer;outline:none;position:relative;text-decoration:none;transition:color .3s}.ant-transfer-list-content-item-remove:focus,.ant-transfer-list-content-item-remove:hover{color:var(--ant-primary-color-hover)}.ant-transfer-list-content-item-remove:active{color:var(--ant-primary-color-active)}.ant-transfer-list-content-item-remove:after{bottom:-6px;content:"";left:-50%;position:absolute;right:-50%;top:-6px}.ant-transfer-list-content-item-remove:hover{color:var(--ant-primary-color-hover)}.ant-transfer-list-content-item:not(.ant-transfer-list-content-item-disabled):hover{background-color:#f5f5f5;cursor:pointer}.ant-transfer-list-content-item:not(.ant-transfer-list-content-item-disabled).ant-transfer-list-content-item-checked:hover{background-color:var(--ant-primary-color-active-deprecated-d-02)}.ant-transfer-list-content-show-remove .ant-transfer-list-content-item:not(.ant-transfer-list-content-item-disabled):hover{background:transparent;cursor:default}.ant-transfer-list-content-item-checked{background-color:var(--ant-primary-1)}.ant-transfer-list-content-item-disabled{color:rgba(0,0,0,.25);cursor:not-allowed}.ant-transfer-list-pagination{border-top:1px solid #f0f0f0;padding:8px 0;text-align:right}.ant-transfer-list-body-not-found{color:rgba(0,0,0,.25);flex:none;margin:auto 0;text-align:center;width:100%}.ant-transfer-list-footer{border-top:1px solid #f0f0f0}.ant-transfer-operation{align-self:center;display:flex;flex:none;flex-direction:column;margin:0 8px;vertical-align:middle}.ant-transfer-operation .ant-btn{display:block}.ant-transfer-operation .ant-btn:first-child{margin-bottom:4px}.ant-transfer-operation .ant-btn .anticon{font-size:12px}.ant-transfer .ant-empty-image{max-height:-2px}.ant-transfer-rtl{direction:rtl}.ant-transfer-rtl .ant-transfer-list-search{padding-left:24px;padding-right:8px}.ant-transfer-rtl .ant-transfer-list-search-action{left:12px;right:auto}.ant-transfer-rtl .ant-transfer-list-header>:not(:last-child){margin-left:4px;margin-right:0}.ant-transfer-rtl .ant-transfer-list-header{left:auto;right:0}.ant-transfer-rtl .ant-transfer-list-header-title{text-align:left}.ant-transfer-rtl .ant-transfer-list-content-item>:not(:last-child){margin-left:8px;margin-right:0}.ant-transfer-rtl .ant-transfer-list-pagination{text-align:left}.ant-transfer-rtl .ant-transfer-list-footer{left:auto;right:0}@-webkit-keyframes ant-tree-node-fx-do-not-use{0%{opacity:0}to{opacity:1}}@keyframes ant-tree-node-fx-do-not-use{0%{opacity:0}to{opacity:1}}@-webkit-keyframes antCheckboxEffect{0%{opacity:.5;transform:scale(1)}to{opacity:0;transform:scale(1.6)}}@keyframes antCheckboxEffect{0%{opacity:.5;transform:scale(1)}to{opacity:0;transform:scale(1.6)}}.ant-select-tree-checkbox{font-feature-settings:"tnum";box-sizing:border-box;color:rgba(0,0,0,.85);cursor:pointer;font-size:14px;font-variant:tabular-nums;line-height:1.5715;line-height:1;list-style:none;margin:0;outline:none;padding:0;position:relative;top:.2em;white-space:nowrap}.ant-select-tree-checkbox-input:focus+.ant-select-tree-checkbox-inner,.ant-select-tree-checkbox-wrapper:hover .ant-select-tree-checkbox-inner,.ant-select-tree-checkbox:hover .ant-select-tree-checkbox-inner{border-color:var(--ant-primary-color)}.ant-select-tree-checkbox-checked:after{-webkit-animation:antCheckboxEffect .36s ease-in-out;animation:antCheckboxEffect .36s ease-in-out;-webkit-animation-fill-mode:backwards;animation-fill-mode:backwards;border:1px solid var(--ant-primary-color);border-radius:2px;content:"";height:100%;left:0;position:absolute;top:0;visibility:hidden;width:100%}.ant-select-tree-checkbox-wrapper:hover .ant-select-tree-checkbox:after,.ant-select-tree-checkbox:hover:after{visibility:visible}.ant-select-tree-checkbox-inner{background-color:#fff;border:1px solid #d9d9d9;border-collapse:separate;border-radius:2px;direction:ltr;display:block;height:16px;left:0;position:relative;top:0;transition:all .3s;width:16px}.ant-select-tree-checkbox-inner:after{border:2px solid #fff;border-left:0;border-top:0;content:" ";display:table;height:9.14285714px;left:21.5%;opacity:0;position:absolute;top:50%;transform:rotate(45deg) scale(0) translate(-50%,-50%);transition:all .1s cubic-bezier(.71,-.46,.88,.6),opacity .1s;width:5.71428571px}.ant-select-tree-checkbox-input{bottom:0;cursor:pointer;height:100%;left:0;opacity:0;position:absolute;right:0;top:0;width:100%;z-index:1}.ant-select-tree-checkbox-checked .ant-select-tree-checkbox-inner:after{border:2px solid #fff;border-left:0;border-top:0;content:" ";display:table;opacity:1;position:absolute;transform:rotate(45deg) scale(1) translate(-50%,-50%);transition:all .2s cubic-bezier(.12,.4,.29,1.46) .1s}.ant-select-tree-checkbox-checked .ant-select-tree-checkbox-inner{background-color:var(--ant-primary-color);border-color:var(--ant-primary-color)}.ant-select-tree-checkbox-disabled{cursor:not-allowed}.ant-select-tree-checkbox-disabled.ant-select-tree-checkbox-checked .ant-select-tree-checkbox-inner:after{-webkit-animation-name:none;animation-name:none;border-color:rgba(0,0,0,.25)}.ant-select-tree-checkbox-disabled .ant-select-tree-checkbox-input{cursor:not-allowed;pointer-events:none}.ant-select-tree-checkbox-disabled .ant-select-tree-checkbox-inner{background-color:#f5f5f5;border-color:#d9d9d9!important}.ant-select-tree-checkbox-disabled .ant-select-tree-checkbox-inner:after{-webkit-animation-name:none;animation-name:none;border-collapse:separate;border-color:#f5f5f5}.ant-select-tree-checkbox-disabled+span{color:rgba(0,0,0,.25);cursor:not-allowed}.ant-select-tree-checkbox-disabled:hover:after,.ant-select-tree-checkbox-wrapper:hover .ant-select-tree-checkbox-disabled:after{visibility:hidden}.ant-select-tree-checkbox-wrapper{font-feature-settings:"tnum";align-items:baseline;box-sizing:border-box;color:rgba(0,0,0,.85);cursor:pointer;display:inline-flex;font-size:14px;font-variant:tabular-nums;line-height:1.5715;line-height:unset;list-style:none;margin:0;padding:0}.ant-select-tree-checkbox-wrapper:after{content:"\\a0";display:inline-block;overflow:hidden;width:0}.ant-select-tree-checkbox-wrapper.ant-select-tree-checkbox-wrapper-disabled{cursor:not-allowed}.ant-select-tree-checkbox-wrapper+.ant-select-tree-checkbox-wrapper{margin-left:8px}.ant-select-tree-checkbox+span{padding-left:8px;padding-right:8px}.ant-select-tree-checkbox-group{font-feature-settings:"tnum";box-sizing:border-box;color:rgba(0,0,0,.85);display:inline-block;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0}.ant-select-tree-checkbox-group-item{margin-right:8px}.ant-select-tree-checkbox-group-item:last-child{margin-right:0}.ant-select-tree-checkbox-group-item+.ant-select-tree-checkbox-group-item{margin-left:0}.ant-select-tree-checkbox-indeterminate .ant-select-tree-checkbox-inner{background-color:#fff;border-color:#d9d9d9}.ant-select-tree-checkbox-indeterminate .ant-select-tree-checkbox-inner:after{background-color:var(--ant-primary-color);border:0;content:" ";height:8px;left:50%;opacity:1;top:50%;transform:translate(-50%,-50%) scale(1);width:8px}.ant-select-tree-checkbox-indeterminate.ant-select-tree-checkbox-disabled .ant-select-tree-checkbox-inner:after{background-color:rgba(0,0,0,.25);border-color:rgba(0,0,0,.25)}.ant-tree-select-dropdown{padding:8px 4px}.ant-tree-select-dropdown-rtl{direction:rtl}.ant-tree-select-dropdown .ant-select-tree{border-radius:0}.ant-tree-select-dropdown .ant-select-tree-list-holder-inner{align-items:stretch}.ant-tree-select-dropdown .ant-select-tree-list-holder-inner .ant-select-tree-treenode .ant-select-tree-node-content-wrapper{flex:auto}.ant-select-tree{font-feature-settings:"tnum";background:#fff;border-radius:2px;box-sizing:border-box;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0;transition:background-color .3s}.ant-select-tree-focused:not(:hover):not(.ant-select-tree-active-focused){background:var(--ant-primary-1)}.ant-select-tree-list-holder-inner{align-items:flex-start}.ant-select-tree.ant-select-tree-block-node .ant-select-tree-list-holder-inner{align-items:stretch}.ant-select-tree.ant-select-tree-block-node .ant-select-tree-list-holder-inner .ant-select-tree-node-content-wrapper{flex:auto}.ant-select-tree.ant-select-tree-block-node .ant-select-tree-list-holder-inner .ant-select-tree-treenode.dragging{position:relative}.ant-select-tree.ant-select-tree-block-node .ant-select-tree-list-holder-inner .ant-select-tree-treenode.dragging:after{-webkit-animation:ant-tree-node-fx-do-not-use .3s;animation:ant-tree-node-fx-do-not-use .3s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-play-state:running;animation-play-state:running;border:1px solid var(--ant-primary-color);bottom:4px;content:"";left:0;opacity:0;pointer-events:none;position:absolute;right:0;top:0}.ant-select-tree .ant-select-tree-treenode{align-items:flex-start;display:flex;outline:none;padding:0 0 4px}.ant-select-tree .ant-select-tree-treenode-disabled .ant-select-tree-node-content-wrapper{color:rgba(0,0,0,.25);cursor:not-allowed}.ant-select-tree .ant-select-tree-treenode-disabled .ant-select-tree-node-content-wrapper:hover{background:transparent}.ant-select-tree .ant-select-tree-treenode-active .ant-select-tree-node-content-wrapper{background:#f5f5f5}.ant-select-tree .ant-select-tree-treenode:not(.ant-select-tree .ant-select-tree-treenode-disabled).filter-node .ant-select-tree-title{color:inherit;font-weight:500}.ant-select-tree-indent{align-self:stretch;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.ant-select-tree-indent-unit{display:inline-block;width:24px}.ant-select-tree-draggable-icon{line-height:24px;opacity:.2;text-align:center;transition:opacity .3s;width:24px}.ant-select-tree-treenode:hover .ant-select-tree-draggable-icon{opacity:.45}.ant-select-tree-switcher{align-self:stretch;cursor:pointer;flex:none;line-height:24px;margin:0;position:relative;text-align:center;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:24px}.ant-select-tree-switcher .ant-select-tree-switcher-icon,.ant-select-tree-switcher .ant-tree-switcher-icon{display:inline-block;font-size:10px;vertical-align:baseline}.ant-select-tree-switcher .ant-select-tree-switcher-icon svg,.ant-select-tree-switcher .ant-tree-switcher-icon svg{transition:transform .3s}.ant-select-tree-switcher-noop{cursor:default}.ant-select-tree-switcher_close .ant-select-tree-switcher-icon svg{transform:rotate(-90deg)}.ant-select-tree-switcher-loading-icon{color:var(--ant-primary-color)}.ant-select-tree-switcher-leaf-line{display:inline-block;height:100%;position:relative;width:100%;z-index:1}.ant-select-tree-switcher-leaf-line:before{border-right:1px solid #d9d9d9;bottom:-4px;content:" ";margin-left:-1px;position:absolute;right:12px;top:0}.ant-select-tree-switcher-leaf-line:after{border-bottom:1px solid #d9d9d9;content:" ";height:14px;position:absolute;width:10px}.ant-select-tree-checkbox{margin:4px 8px 0 0;top:auto}.ant-select-tree .ant-select-tree-node-content-wrapper{background:transparent;border-radius:2px;color:inherit;cursor:pointer;line-height:24px;margin:0;min-height:24px;padding:0 4px;position:relative;transition:all .3s,border 0s,line-height 0s,box-shadow 0s;z-index:auto}.ant-select-tree .ant-select-tree-node-content-wrapper:hover{background-color:#f5f5f5}.ant-select-tree .ant-select-tree-node-content-wrapper.ant-select-tree-node-selected{background-color:var(--ant-primary-2)}.ant-select-tree .ant-select-tree-node-content-wrapper .ant-select-tree-iconEle{display:inline-block;height:24px;line-height:24px;text-align:center;vertical-align:top;width:24px}.ant-select-tree .ant-select-tree-node-content-wrapper .ant-select-tree-iconEle:empty{display:none}.ant-select-tree-unselectable .ant-select-tree-node-content-wrapper:hover{background-color:transparent}.ant-select-tree-node-content-wrapper{line-height:24px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ant-select-tree-node-content-wrapper .ant-tree-drop-indicator{background-color:var(--ant-primary-color);border-radius:1px;height:2px;pointer-events:none;position:absolute;z-index:1}.ant-select-tree-node-content-wrapper .ant-tree-drop-indicator:after{background-color:transparent;border:2px solid var(--ant-primary-color);border-radius:50%;content:"";height:8px;left:-6px;position:absolute;top:-3px;width:8px}.ant-select-tree .ant-select-tree-treenode.drop-container>[draggable]{box-shadow:0 0 0 2px var(--ant-primary-color)}.ant-select-tree-show-line .ant-select-tree-indent-unit{height:100%;position:relative}.ant-select-tree-show-line .ant-select-tree-indent-unit:before{border-right:1px solid #d9d9d9;bottom:-4px;content:"";position:absolute;right:12px;top:0}.ant-select-tree-show-line .ant-select-tree-indent-unit-end:before{display:none}.ant-select-tree-show-line .ant-select-tree-switcher{background:#fff}.ant-select-tree-show-line .ant-select-tree-switcher-line-icon{vertical-align:-.15em}.ant-select-tree .ant-select-tree-treenode-leaf-last .ant-select-tree-switcher-leaf-line:before{bottom:auto!important;height:14px!important;top:auto!important}.ant-tree-select-dropdown-rtl .ant-select-tree .ant-select-tree-switcher_close .ant-select-tree-switcher-icon svg{transform:rotate(90deg)}.ant-tree-select-dropdown-rtl .ant-select-tree .ant-select-tree-switcher-loading-icon{transform:scaleY(-1)}.ant-typography{color:rgba(0,0,0,.85);overflow-wrap:break-word}.ant-typography.ant-typography-secondary{color:rgba(0,0,0,.45)}.ant-typography.ant-typography-success{color:var(--ant-success-color)}.ant-typography.ant-typography-warning{color:var(--ant-warning-color)}.ant-typography.ant-typography-danger{color:var(--ant-error-color)}a.ant-typography.ant-typography-danger:active,a.ant-typography.ant-typography-danger:focus,a.ant-typography.ant-typography-danger:hover{color:#0d0c0c}.ant-typography.ant-typography-disabled{color:rgba(0,0,0,.25);cursor:not-allowed;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ant-typography p,div.ant-typography{margin-bottom:1em}.ant-typography h1,h1.ant-typography{color:rgba(0,0,0,.85);font-size:38px;font-weight:600;line-height:1.23;margin-bottom:.5em}.ant-typography h2,h2.ant-typography{color:rgba(0,0,0,.85);font-size:30px;font-weight:600;line-height:1.35;margin-bottom:.5em}.ant-typography h3,h3.ant-typography{color:rgba(0,0,0,.85);font-size:24px;font-weight:600;line-height:1.35;margin-bottom:.5em}.ant-typography h4,h4.ant-typography{color:rgba(0,0,0,.85);font-size:20px;font-weight:600;line-height:1.4;margin-bottom:.5em}.ant-typography h5,h5.ant-typography{color:rgba(0,0,0,.85);font-size:16px;font-weight:600;line-height:1.5;margin-bottom:.5em}.ant-typography div+h1,.ant-typography div+h2,.ant-typography div+h3,.ant-typography div+h4,.ant-typography div+h5,.ant-typography h1+h1,.ant-typography h1+h2,.ant-typography h1+h3,.ant-typography h1+h4,.ant-typography h1+h5,.ant-typography h2+h1,.ant-typography h2+h2,.ant-typography h2+h3,.ant-typography h2+h4,.ant-typography h2+h5,.ant-typography h3+h1,.ant-typography h3+h2,.ant-typography h3+h3,.ant-typography h3+h4,.ant-typography h3+h5,.ant-typography h4+h1,.ant-typography h4+h2,.ant-typography h4+h3,.ant-typography h4+h4,.ant-typography h4+h5,.ant-typography h5+h1,.ant-typography h5+h2,.ant-typography h5+h3,.ant-typography h5+h4,.ant-typography h5+h5,.ant-typography li+h1,.ant-typography li+h2,.ant-typography li+h3,.ant-typography li+h4,.ant-typography li+h5,.ant-typography p+h1,.ant-typography p+h2,.ant-typography p+h3,.ant-typography p+h4,.ant-typography p+h5,.ant-typography ul+h1,.ant-typography ul+h2,.ant-typography ul+h3,.ant-typography ul+h4,.ant-typography ul+h5,.ant-typography+h1.ant-typography,.ant-typography+h2.ant-typography,.ant-typography+h3.ant-typography,.ant-typography+h4.ant-typography,.ant-typography+h5.ant-typography{margin-top:1.2em}a.ant-typography-ellipsis,span.ant-typography-ellipsis{display:inline-block;max-width:100%}.ant-typography a,a.ant-typography{color:var(--ant-primary-color);cursor:pointer;outline:none;text-decoration:none;transition:color .3s}.ant-typography a:focus,.ant-typography a:hover,a.ant-typography:focus,a.ant-typography:hover{color:var(--ant-primary-color-hover)}.ant-typography a:active,a.ant-typography:active{color:var(--ant-primary-color-active)}.ant-typography a:active,.ant-typography a:hover,a.ant-typography:active,a.ant-typography:hover{text-decoration:none}.ant-typography a.ant-typography-disabled,.ant-typography a[disabled],a.ant-typography.ant-typography-disabled,a.ant-typography[disabled]{color:rgba(0,0,0,.25);cursor:not-allowed}.ant-typography a.ant-typography-disabled:active,.ant-typography a.ant-typography-disabled:hover,.ant-typography a[disabled]:active,.ant-typography a[disabled]:hover,a.ant-typography.ant-typography-disabled:active,a.ant-typography.ant-typography-disabled:hover,a.ant-typography[disabled]:active,a.ant-typography[disabled]:hover{color:rgba(0,0,0,.25)}.ant-typography a.ant-typography-disabled:active,.ant-typography a[disabled]:active,a.ant-typography.ant-typography-disabled:active,a.ant-typography[disabled]:active{pointer-events:none}.ant-typography code{background:hsla(0,0%,59%,.1);border:1px solid hsla(0,0%,39%,.2);border-radius:3px;font-size:85%;margin:0 .2em;padding:.2em .4em .1em}.ant-typography kbd{background:hsla(0,0%,59%,.06);border:solid hsla(0,0%,39%,.2);border-radius:3px;border-width:1px 1px 2px;font-size:90%;margin:0 .2em;padding:.15em .4em .1em}.ant-typography mark{background-color:#ffe58f;padding:0}.ant-typography ins,.ant-typography u{-webkit-text-decoration-skip:ink;text-decoration:underline;text-decoration-skip-ink:auto}.ant-typography del,.ant-typography s{text-decoration:line-through}.ant-typography strong{font-weight:600}.ant-typography-copy,.ant-typography-edit,.ant-typography-expand{color:var(--ant-primary-color);cursor:pointer;margin-left:4px;outline:none;text-decoration:none;transition:color .3s}.ant-typography-copy:focus,.ant-typography-copy:hover,.ant-typography-edit:focus,.ant-typography-edit:hover,.ant-typography-expand:focus,.ant-typography-expand:hover{color:var(--ant-primary-color-hover)}.ant-typography-copy:active,.ant-typography-edit:active,.ant-typography-expand:active{color:var(--ant-primary-color-active)}.ant-typography-copy-success,.ant-typography-copy-success:focus,.ant-typography-copy-success:hover{color:var(--ant-success-color)}.ant-typography-edit-content{position:relative}div.ant-typography-edit-content{left:-12px;margin-bottom:calc(1em - 5px);margin-top:-5px}.ant-typography-edit-content-confirm{bottom:8px;color:rgba(0,0,0,.45);pointer-events:none;position:absolute;right:10px}.ant-typography-edit-content textarea{-moz-transition:none}.ant-typography ol,.ant-typography ul{margin:0 0 1em;padding:0}.ant-typography ol li,.ant-typography ul li{margin:0 0 0 20px;padding:0 0 0 4px}.ant-typography ul{list-style-type:circle}.ant-typography ul ul{list-style-type:disc}.ant-typography ol{list-style-type:decimal}.ant-typography blockquote,.ant-typography pre{margin:1em 0}.ant-typography pre{word-wrap:break-word;background:hsla(0,0%,59%,.1);border:1px solid hsla(0,0%,39%,.2);border-radius:3px;padding:.4em .6em;white-space:pre-wrap}.ant-typography pre code{background:transparent;border:0;display:inline;font-family:inherit;font-size:inherit;margin:0;padding:0}.ant-typography blockquote{border-left:4px solid hsla(0,0%,39%,.2);opacity:.85;padding:0 0 0 .6em}.ant-typography-single-line{white-space:nowrap}.ant-typography-ellipsis-single-line{overflow:hidden;text-overflow:ellipsis}a.ant-typography-ellipsis-single-line,span.ant-typography-ellipsis-single-line{vertical-align:bottom}.ant-typography-ellipsis-multiple-line{-webkit-line-clamp:3; + /*! autoprefixer: ignore next */-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.ant-typography-rtl{direction:rtl}.ant-typography-rtl .ant-typography-copy,.ant-typography-rtl .ant-typography-edit,.ant-typography-rtl .ant-typography-expand{margin-left:0;margin-right:4px}.ant-typography-rtl .ant-typography-expand{float:left}div.ant-typography-edit-content.ant-typography-rtl{left:auto;right:-12px}.ant-typography-rtl .ant-typography-edit-content-confirm{left:10px;right:auto}.ant-typography-rtl.ant-typography ol li,.ant-typography-rtl.ant-typography ul li{margin:0 20px 0 0;padding:0 4px 0 0}html{--ant-primary-color:#1890ff;--ant-primary-color-hover:#40a9ff;--ant-primary-color-active:#096dd9;--ant-primary-color-outline:rgba(24,144,255,.2);--ant-primary-1:#e6f7ff;--ant-primary-2:#bae7ff;--ant-primary-3:#91d5ff;--ant-primary-4:#69c0ff;--ant-primary-5:#40a9ff;--ant-primary-6:#1890ff;--ant-primary-7:#096dd9;--ant-primary-color-deprecated-pure: ;--ant-primary-color-deprecated-l-35:#cbe6ff;--ant-primary-color-deprecated-l-20:#7ec1ff;--ant-primary-color-deprecated-t-20:#46a6ff;--ant-primary-color-deprecated-t-50:#8cc8ff;--ant-primary-color-deprecated-f-12:rgba(24,144,255,.12);--ant-primary-color-active-deprecated-f-30:rgba(230,247,255,.3);--ant-primary-color-active-deprecated-d-02:#dcf4ff;--ant-success-color:#52c41a;--ant-success-color-hover:#73d13d;--ant-success-color-active:#389e0d;--ant-success-color-outline:rgba(82,196,26,.2);--ant-success-color-deprecated-bg:#f6ffed;--ant-success-color-deprecated-border:#b7eb8f;--ant-error-color:#ff4d4f;--ant-error-color-hover:#ff7875;--ant-error-color-active:#d9363e;--ant-error-color-outline:rgba(255,77,79,.2);--ant-error-color-deprecated-bg:#fff2f0;--ant-error-color-deprecated-border:#ffccc7;--ant-warning-color:#faad14;--ant-warning-color-hover:#ffc53d;--ant-warning-color-active:#d48806;--ant-warning-color-outline:rgba(250,173,20,.2);--ant-warning-color-deprecated-bg:#fffbe6;--ant-warning-color-deprecated-border:#ffe58f;--ant-info-color:#1890ff;--ant-info-color-deprecated-bg:#e6f7ff;--ant-info-color-deprecated-border:#91d5ff}.ant-upload{font-feature-settings:"tnum";box-sizing:border-box;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;outline:0;padding:0}.ant-upload p{margin:0}.ant-upload-btn{display:block;outline:none;width:100%}.ant-upload input[type=file]{cursor:pointer}.ant-upload.ant-upload-select{display:inline-block}.ant-upload.ant-upload-disabled{cursor:not-allowed}.ant-upload.ant-upload-select-picture-card{background-color:#fafafa;border:1px dashed #d9d9d9;border-radius:2px;cursor:pointer;height:104px;margin-bottom:8px;margin-right:8px;text-align:center;transition:border-color .3s;vertical-align:top;width:104px}.ant-upload.ant-upload-select-picture-card>.ant-upload{align-items:center;display:flex;height:100%;justify-content:center;text-align:center}.ant-upload.ant-upload-select-picture-card:hover{border-color:var(--ant-primary-color)}.ant-upload-disabled.ant-upload.ant-upload-select-picture-card:hover{border-color:#d9d9d9}.ant-upload.ant-upload-drag{background:#fafafa;border:1px dashed #d9d9d9;border-radius:2px;cursor:pointer;height:100%;position:relative;text-align:center;transition:border-color .3s;width:100%}.ant-upload.ant-upload-drag .ant-upload{padding:16px 0}.ant-upload.ant-upload-drag.ant-upload-drag-hover:not(.ant-upload-disabled){border-color:var(--ant-primary-7)}.ant-upload.ant-upload-drag.ant-upload-disabled{cursor:not-allowed}.ant-upload.ant-upload-drag .ant-upload-btn{display:table;height:100%}.ant-upload.ant-upload-drag .ant-upload-drag-container{display:table-cell;vertical-align:middle}.ant-upload.ant-upload-drag:not(.ant-upload-disabled):hover{border-color:var(--ant-primary-5)}.ant-upload.ant-upload-drag p.ant-upload-drag-icon{margin-bottom:20px}.ant-upload.ant-upload-drag p.ant-upload-drag-icon .anticon{color:var(--ant-primary-5);font-size:48px}.ant-upload.ant-upload-drag p.ant-upload-text{color:rgba(0,0,0,.85);font-size:16px;margin:0 0 4px}.ant-upload.ant-upload-drag p.ant-upload-hint{color:rgba(0,0,0,.45);font-size:14px}.ant-upload.ant-upload-drag .anticon-plus{color:rgba(0,0,0,.25);font-size:30px;transition:all .3s}.ant-upload.ant-upload-drag .anticon-plus:hover,.ant-upload.ant-upload-drag:hover .anticon-plus{color:rgba(0,0,0,.45)}.ant-upload-picture-card-wrapper{display:inline-block;width:100%}.ant-upload-picture-card-wrapper:before{content:"";display:table}.ant-upload-picture-card-wrapper:after{clear:both;content:"";display:table}.ant-upload-list{font-feature-settings:"tnum";box-sizing:border-box;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0}.ant-upload-list:after,.ant-upload-list:before{content:"";display:table}.ant-upload-list:after{clear:both}.ant-upload-list-item{font-size:14px;height:22.001px;margin-top:8px;position:relative}.ant-upload-list-item-name{display:inline-block;line-height:1.5715;overflow:hidden;padding-left:22px;text-overflow:ellipsis;white-space:nowrap;width:100%}.ant-upload-list-item-card-actions{position:absolute;right:0}.ant-upload-list-item-card-actions-btn{opacity:0}.ant-upload-list-item-card-actions-btn.ant-btn-sm{height:20px;line-height:1}.ant-upload-list-item-card-actions.picture{line-height:0;top:22px}.ant-upload-list-item-card-actions-btn:focus,.ant-upload-list-item-card-actions.picture .ant-upload-list-item-card-actions-btn{opacity:1}.ant-upload-list-item-card-actions .anticon{color:rgba(0,0,0,.45)}.ant-upload-list-item-info{height:100%;padding:0 4px;transition:background-color .3s}.ant-upload-list-item-info>span{display:block;height:100%;width:100%}.ant-upload-list-item-info .ant-upload-text-icon .anticon,.ant-upload-list-item-info .anticon-loading .anticon{color:rgba(0,0,0,.45);font-size:14px;position:absolute;top:5px}.ant-upload-list-item .anticon-close{color:rgba(0,0,0,.45);cursor:pointer;font-size:10px;line-height:0;opacity:0;position:absolute;right:4px;top:6px;transition:all .3s}.ant-upload-list-item .anticon-close:hover{color:rgba(0,0,0,.85)}.ant-upload-list-item:hover .ant-upload-list-item-info{background-color:#f5f5f5}.ant-upload-list-item:hover .ant-upload-list-item-card-actions-btn,.ant-upload-list-item:hover .anticon-close{opacity:1}.ant-upload-list-item-error,.ant-upload-list-item-error .ant-upload-list-item-card-actions .anticon,.ant-upload-list-item-error .ant-upload-list-item-name,.ant-upload-list-item-error .ant-upload-text-icon>.anticon{color:var(--ant-error-color)}.ant-upload-list-item-error .ant-upload-list-item-card-actions-btn{opacity:1}.ant-upload-list-item-progress{bottom:-12px;font-size:14px;line-height:0;padding-left:26px;position:absolute;width:100%}.ant-upload-list-picture .ant-upload-list-item,.ant-upload-list-picture-card .ant-upload-list-item{border:1px solid #d9d9d9;border-radius:2px;height:66px;padding:8px;position:relative}.ant-upload-list-picture .ant-upload-list-item:hover,.ant-upload-list-picture-card .ant-upload-list-item:hover{background:transparent}.ant-upload-list-picture .ant-upload-list-item-error,.ant-upload-list-picture-card .ant-upload-list-item-error{border-color:var(--ant-error-color)}.ant-upload-list-picture .ant-upload-list-item:hover .ant-upload-list-item-info,.ant-upload-list-picture-card .ant-upload-list-item:hover .ant-upload-list-item-info{background:transparent}.ant-upload-list-picture .ant-upload-list-item-uploading,.ant-upload-list-picture-card .ant-upload-list-item-uploading{border-style:dashed}.ant-upload-list-picture .ant-upload-list-item-thumbnail,.ant-upload-list-picture-card .ant-upload-list-item-thumbnail{height:48px;line-height:60px;opacity:.8;text-align:center;width:48px}.ant-upload-list-picture .ant-upload-list-item-thumbnail .anticon,.ant-upload-list-picture-card .ant-upload-list-item-thumbnail .anticon{font-size:26px}.ant-upload-list-picture .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill="#e6f7ff"],.ant-upload-list-picture-card .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill="#e6f7ff"]{fill:var(--ant-error-color-deprecated-bg)}.ant-upload-list-picture .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill="#1890ff"],.ant-upload-list-picture-card .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill="#1890ff"]{fill:var(--ant-error-color)}.ant-upload-list-picture .ant-upload-list-item-icon,.ant-upload-list-picture-card .ant-upload-list-item-icon{font-size:26px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.ant-upload-list-picture .ant-upload-list-item-icon .anticon,.ant-upload-list-picture-card .ant-upload-list-item-icon .anticon{font-size:26px}.ant-upload-list-picture .ant-upload-list-item-image,.ant-upload-list-picture-card .ant-upload-list-item-image{max-width:100%}.ant-upload-list-picture .ant-upload-list-item-thumbnail img,.ant-upload-list-picture-card .ant-upload-list-item-thumbnail img{display:block;height:48px;overflow:hidden;width:48px}.ant-upload-list-picture .ant-upload-list-item-name,.ant-upload-list-picture-card .ant-upload-list-item-name{box-sizing:border-box;display:inline-block;line-height:44px;margin:0 0 0 8px;max-width:100%;overflow:hidden;padding-left:48px;padding-right:8px;text-overflow:ellipsis;transition:all .3s;white-space:nowrap}.ant-upload-list-picture .ant-upload-list-item-uploading .ant-upload-list-item-name,.ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-name{margin-bottom:12px}.ant-upload-list-picture .ant-upload-list-item-progress,.ant-upload-list-picture-card .ant-upload-list-item-progress{bottom:14px;margin-top:0;padding-left:56px;width:calc(100% - 24px)}.ant-upload-list-picture .anticon-close,.ant-upload-list-picture-card .anticon-close{line-height:1;opacity:1;position:absolute;right:8px;top:8px}.ant-upload-list-picture-card-container{display:inline-block;height:104px;margin:0 8px 8px 0;vertical-align:top;width:104px}.ant-upload-list-picture-card.ant-upload-list:after{display:none}.ant-upload-list-picture-card .ant-upload-list-item{height:100%;margin:0}.ant-upload-list-picture-card .ant-upload-list-item-info{height:100%;overflow:hidden;position:relative}.ant-upload-list-picture-card .ant-upload-list-item-info:before{background-color:rgba(0,0,0,.5);content:" ";height:100%;opacity:0;position:absolute;transition:all .3s;width:100%;z-index:1}.ant-upload-list-picture-card .ant-upload-list-item:hover .ant-upload-list-item-info:before{opacity:1}.ant-upload-list-picture-card .ant-upload-list-item-actions{left:50%;opacity:0;position:absolute;top:50%;transform:translate(-50%,-50%);transition:all .3s;white-space:nowrap;z-index:10}.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-delete,.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-download,.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-eye{color:hsla(0,0%,100%,.85);cursor:pointer;font-size:16px;margin:0 4px;transition:all .3s;width:16px;z-index:10}.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-delete:hover,.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-download:hover,.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-eye:hover{color:#fff}.ant-upload-list-picture-card .ant-upload-list-item-actions:hover,.ant-upload-list-picture-card .ant-upload-list-item-info:hover+.ant-upload-list-item-actions{opacity:1}.ant-upload-list-picture-card .ant-upload-list-item-thumbnail,.ant-upload-list-picture-card .ant-upload-list-item-thumbnail img{display:block;height:100%;-o-object-fit:contain;object-fit:contain;position:static;width:100%}.ant-upload-list-picture-card .ant-upload-list-item-name{display:none;line-height:1.5715;margin:8px 0 0;padding:0;text-align:center}.ant-upload-list-picture-card .ant-upload-list-item-file+.ant-upload-list-item-name{bottom:10px;display:block;position:absolute}.ant-upload-list-picture-card .ant-upload-list-item-uploading.ant-upload-list-item{background-color:#fafafa}.ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-info{height:auto}.ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-info .anticon-delete,.ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-info .anticon-eye,.ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-info:before{display:none}.ant-upload-list-picture-card .ant-upload-list-item-progress{bottom:32px;padding-left:0;width:calc(100% - 14px)}.ant-upload-list-picture-container,.ant-upload-list-text-container{transition:opacity .3s,height .3s}.ant-upload-list-picture-container:before,.ant-upload-list-text-container:before{content:"";display:table;height:0;width:0}.ant-upload-list-picture-container .ant-upload-span,.ant-upload-list-text-container .ant-upload-span{display:block;flex:auto}.ant-upload-list-picture .ant-upload-span,.ant-upload-list-text .ant-upload-span{align-items:center;display:flex}.ant-upload-list-picture .ant-upload-span>*,.ant-upload-list-text .ant-upload-span>*{flex:none}.ant-upload-list-picture .ant-upload-list-item-name,.ant-upload-list-text .ant-upload-list-item-name{flex:auto;margin:0;padding:0 8px}.ant-upload-list-picture .ant-upload-list-item-card-actions,.ant-upload-list-text .ant-upload-list-item-card-actions,.ant-upload-list-text .ant-upload-text-icon .anticon{position:static}.ant-upload-list .ant-upload-animate-inline-appear,.ant-upload-list .ant-upload-animate-inline-enter,.ant-upload-list .ant-upload-animate-inline-leave{-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-fill-mode:cubic-bezier(.78,.14,.15,.86);animation-fill-mode:cubic-bezier(.78,.14,.15,.86)}.ant-upload-list .ant-upload-animate-inline-appear,.ant-upload-list .ant-upload-animate-inline-enter{-webkit-animation-name:uploadAnimateInlineIn;animation-name:uploadAnimateInlineIn}.ant-upload-list .ant-upload-animate-inline-leave{-webkit-animation-name:uploadAnimateInlineOut;animation-name:uploadAnimateInlineOut}@-webkit-keyframes uploadAnimateInlineIn{0%{height:0;margin:0;opacity:0;padding:0;width:0}}@keyframes uploadAnimateInlineIn{0%{height:0;margin:0;opacity:0;padding:0;width:0}}@-webkit-keyframes uploadAnimateInlineOut{to{height:0;margin:0;opacity:0;padding:0;width:0}}@keyframes uploadAnimateInlineOut{to{height:0;margin:0;opacity:0;padding:0;width:0}}.ant-upload-rtl{direction:rtl}.ant-upload-rtl.ant-upload.ant-upload-select-picture-card{margin-left:8px;margin-right:auto}.ant-upload-list-rtl{direction:rtl}.ant-upload-list-rtl .ant-upload-list-item-list-type-text:hover .ant-upload-list-item-name-icon-count-1{padding-left:14px;padding-right:22px}.ant-upload-list-rtl .ant-upload-list-item-list-type-text:hover .ant-upload-list-item-name-icon-count-2{padding-left:28px;padding-right:22px}.ant-upload-list-rtl .ant-upload-list-item-name{padding-left:0;padding-right:22px}.ant-upload-list-rtl .ant-upload-list-item-name-icon-count-1{padding-left:14px}.ant-upload-list-rtl .ant-upload-list-item-card-actions{left:0;right:auto}.ant-upload-list-rtl .ant-upload-list-item-card-actions .anticon{padding-left:5px;padding-right:0}.ant-upload-list-rtl .ant-upload-list-item-info{padding:0 4px 0 12px}.ant-upload-list-rtl .ant-upload-list-item .anticon-close{left:4px;right:auto}.ant-upload-list-rtl .ant-upload-list-item-error .ant-upload-list-item-card-actions .anticon{padding-left:5px;padding-right:0}.ant-upload-list-rtl .ant-upload-list-item-progress{padding-left:0;padding-right:26px}.ant-upload-list-picture .ant-upload-list-item-info,.ant-upload-list-picture-card .ant-upload-list-item-info{padding:0}.ant-upload-list-rtl.ant-upload-list-picture .ant-upload-list-item-thumbnail,.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-thumbnail{left:auto;right:8px}.ant-upload-list-rtl.ant-upload-list-picture .ant-upload-list-item-icon,.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-icon{left:auto;right:50%;transform:translate(50%,-50%)}.ant-upload-list-rtl.ant-upload-list-picture .ant-upload-list-item-name,.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-name{margin:0 8px 0 0;padding-left:8px;padding-right:48px}.ant-upload-list-rtl.ant-upload-list-picture .ant-upload-list-item-name-icon-count-1,.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-name-icon-count-1{padding-left:18px;padding-right:48px}.ant-upload-list-rtl.ant-upload-list-picture .ant-upload-list-item-name-icon-count-2,.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-name-icon-count-2{padding-left:36px;padding-right:48px}.ant-upload-list-rtl.ant-upload-list-picture .ant-upload-list-item-progress,.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-progress{padding-left:0;padding-right:0}.ant-upload-list-rtl.ant-upload-list-picture .anticon-close,.ant-upload-list-rtl.ant-upload-list-picture-card .anticon-close{left:8px;right:auto}.ant-upload-list-rtl .ant-upload-list-picture-card-container{margin:0 0 8px 8px}.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-actions{left:auto;right:50%;transform:translate(50%,-50%)}.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-file+.ant-upload-list-item-name{margin:8px 0 0;padding:0} +`,ie=`/*! + * + * ant-design-vue v3.2.7 + * + * Copyright 2017-present, ant-design-vue. + * All rights reserved. + * + */[class*=ant-] input::-ms-clear,[class*=ant-] input::-ms-reveal,[class*=ant-]::-ms-clear,[class^=ant-] input::-ms-clear,[class^=ant-] input::-ms-reveal,[class^=ant-]::-ms-clear{display:none}body,html{height:100%;width:100%}input::-ms-clear,input::-ms-reveal{display:none}*,:after,:before{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:rgba(0,0,0,0);font-family:sans-serif;line-height:1.15}body{font-feature-settings:"tnum";background-color:#000;color:hsla(0,0%,100%,.85);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:14px;font-variant:tabular-nums;line-height:1.5715;margin:0}[tabindex="-1"]:focus{outline:none!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{color:hsla(0,0%,100%,.85);font-weight:500;margin-bottom:.5em;margin-top:0}p{margin-bottom:1em;margin-top:0}abbr[data-original-title],abbr[title]{border-bottom:0;cursor:help;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}address{font-style:normal;line-height:inherit;margin-bottom:1em}input[type=number],input[type=password],input[type=text],textarea{-webkit-appearance:none}dl,ol,ul{margin-bottom:1em;margin-top:0}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:500}dd{margin-bottom:.5em;margin-left:0}blockquote{margin:0 0 1em}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{-webkit-text-decoration-skip:objects;background-color:transparent;color:#177ddc;cursor:pointer;outline:none;text-decoration:none;transition:color .3s}a:hover{color:#165996}a:active{color:#388ed3}a:active,a:focus,a:hover{outline:0;text-decoration:none}a[disabled]{color:hsla(0,0%,100%,.3);cursor:not-allowed}code,kbd,pre,samp{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;font-size:1em}pre{margin-bottom:1em;margin-top:0;overflow:auto}figure{margin:0 0 1em}img{border-style:none;vertical-align:middle}[role=button],a,area,button,input:not([type=range]),label,select,summary,textarea{touch-action:manipulation}table{border-collapse:collapse}caption{caption-side:bottom;color:hsla(0,0%,100%,.45);padding-bottom:.3em;padding-top:.75em;text-align:left}button,input,optgroup,select,textarea{color:inherit;font-family:inherit;font-size:inherit;line-height:inherit;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{border:0;margin:0;min-width:0;padding:0}legend{color:inherit;display:block;font-size:1.5em;line-height:inherit;margin-bottom:.5em;max-width:100%;padding:0;white-space:normal;width:100%}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:none;outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}output{display:inline-block}summary{display:list-item}template{display:none}[hidden]{display:none!important}mark{background-color:#2b2611;padding:.2em}::-moz-selection{background:#177ddc;color:#fff}::selection{background:#177ddc;color:#fff}.clearfix:after,.clearfix:before{content:"";display:table}.clearfix:after{clear:both}.anticon{text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:inherit;display:inline-block;font-style:normal;line-height:0;text-align:center;text-transform:none;vertical-align:-.125em}.anticon>*{line-height:1}.anticon svg{display:inline-block}.anticon:before{display:none}.anticon .anticon-icon{display:block}.anticon>.anticon{line-height:0;vertical-align:0}.anticon[tabindex]{cursor:pointer}.anticon-spin,.anticon-spin:before{-webkit-animation:loadingCircle 1s linear infinite;animation:loadingCircle 1s linear infinite;display:inline-block}.ant-fade-appear,.ant-fade-enter,.ant-fade-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.ant-fade-appear.ant-fade-appear-active,.ant-fade-enter.ant-fade-enter-active{-webkit-animation-name:antFadeIn;animation-name:antFadeIn;-webkit-animation-play-state:running;animation-play-state:running}.ant-fade-leave.ant-fade-leave-active{-webkit-animation-name:antFadeOut;animation-name:antFadeOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.ant-fade-appear,.ant-fade-enter{opacity:0}.ant-fade-appear,.ant-fade-enter,.ant-fade-leave{-webkit-animation-timing-function:linear;animation-timing-function:linear}.fade-appear,.fade-enter,.fade-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.fade-appear.fade-appear-active,.fade-enter.fade-enter-active{-webkit-animation-name:antFadeIn;animation-name:antFadeIn;-webkit-animation-play-state:running;animation-play-state:running}.fade-leave.fade-leave-active{-webkit-animation-name:antFadeOut;animation-name:antFadeOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.fade-appear,.fade-enter{opacity:0}.fade-appear,.fade-enter,.fade-leave{-webkit-animation-timing-function:linear;animation-timing-function:linear}@-webkit-keyframes antFadeIn{0%{opacity:0}to{opacity:1}}@keyframes antFadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes antFadeOut{0%{opacity:1}to{opacity:0}}@keyframes antFadeOut{0%{opacity:1}to{opacity:0}}.ant-move-up-appear,.ant-move-up-enter,.ant-move-up-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.ant-move-up-appear.ant-move-up-appear-active,.ant-move-up-enter.ant-move-up-enter-active{-webkit-animation-name:antMoveUpIn;animation-name:antMoveUpIn;-webkit-animation-play-state:running;animation-play-state:running}.ant-move-up-leave.ant-move-up-leave-active{-webkit-animation-name:antMoveUpOut;animation-name:antMoveUpOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.ant-move-up-appear,.ant-move-up-enter{-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1);opacity:0}.ant-move-up-leave{-webkit-animation-timing-function:cubic-bezier(.6,.04,.98,.34);animation-timing-function:cubic-bezier(.6,.04,.98,.34)}.move-up-appear,.move-up-enter,.move-up-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.move-up-appear.move-up-appear-active,.move-up-enter.move-up-enter-active{-webkit-animation-name:antMoveUpIn;animation-name:antMoveUpIn;-webkit-animation-play-state:running;animation-play-state:running}.move-up-leave.move-up-leave-active{-webkit-animation-name:antMoveUpOut;animation-name:antMoveUpOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.move-up-appear,.move-up-enter{-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1);opacity:0}.move-up-leave{-webkit-animation-timing-function:cubic-bezier(.6,.04,.98,.34);animation-timing-function:cubic-bezier(.6,.04,.98,.34)}.ant-move-down-appear,.ant-move-down-enter,.ant-move-down-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.ant-move-down-appear.ant-move-down-appear-active,.ant-move-down-enter.ant-move-down-enter-active{-webkit-animation-name:antMoveDownIn;animation-name:antMoveDownIn;-webkit-animation-play-state:running;animation-play-state:running}.ant-move-down-leave.ant-move-down-leave-active{-webkit-animation-name:antMoveDownOut;animation-name:antMoveDownOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.ant-move-down-appear,.ant-move-down-enter{-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1);opacity:0}.ant-move-down-leave{-webkit-animation-timing-function:cubic-bezier(.6,.04,.98,.34);animation-timing-function:cubic-bezier(.6,.04,.98,.34)}.move-down-appear,.move-down-enter,.move-down-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.move-down-appear.move-down-appear-active,.move-down-enter.move-down-enter-active{-webkit-animation-name:antMoveDownIn;animation-name:antMoveDownIn;-webkit-animation-play-state:running;animation-play-state:running}.move-down-leave.move-down-leave-active{-webkit-animation-name:antMoveDownOut;animation-name:antMoveDownOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.move-down-appear,.move-down-enter{-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1);opacity:0}.move-down-leave{-webkit-animation-timing-function:cubic-bezier(.6,.04,.98,.34);animation-timing-function:cubic-bezier(.6,.04,.98,.34)}.ant-move-left-appear,.ant-move-left-enter,.ant-move-left-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.ant-move-left-appear.ant-move-left-appear-active,.ant-move-left-enter.ant-move-left-enter-active{-webkit-animation-name:antMoveLeftIn;animation-name:antMoveLeftIn;-webkit-animation-play-state:running;animation-play-state:running}.ant-move-left-leave.ant-move-left-leave-active{-webkit-animation-name:antMoveLeftOut;animation-name:antMoveLeftOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.ant-move-left-appear,.ant-move-left-enter{-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1);opacity:0}.ant-move-left-leave{-webkit-animation-timing-function:cubic-bezier(.6,.04,.98,.34);animation-timing-function:cubic-bezier(.6,.04,.98,.34)}.move-left-appear,.move-left-enter,.move-left-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.move-left-appear.move-left-appear-active,.move-left-enter.move-left-enter-active{-webkit-animation-name:antMoveLeftIn;animation-name:antMoveLeftIn;-webkit-animation-play-state:running;animation-play-state:running}.move-left-leave.move-left-leave-active{-webkit-animation-name:antMoveLeftOut;animation-name:antMoveLeftOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.move-left-appear,.move-left-enter{-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1);opacity:0}.move-left-leave{-webkit-animation-timing-function:cubic-bezier(.6,.04,.98,.34);animation-timing-function:cubic-bezier(.6,.04,.98,.34)}.ant-move-right-appear,.ant-move-right-enter,.ant-move-right-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.ant-move-right-appear.ant-move-right-appear-active,.ant-move-right-enter.ant-move-right-enter-active{-webkit-animation-name:antMoveRightIn;animation-name:antMoveRightIn;-webkit-animation-play-state:running;animation-play-state:running}.ant-move-right-leave.ant-move-right-leave-active{-webkit-animation-name:antMoveRightOut;animation-name:antMoveRightOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.ant-move-right-appear,.ant-move-right-enter{-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1);opacity:0}.ant-move-right-leave{-webkit-animation-timing-function:cubic-bezier(.6,.04,.98,.34);animation-timing-function:cubic-bezier(.6,.04,.98,.34)}.move-right-appear,.move-right-enter,.move-right-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.move-right-appear.move-right-appear-active,.move-right-enter.move-right-enter-active{-webkit-animation-name:antMoveRightIn;animation-name:antMoveRightIn;-webkit-animation-play-state:running;animation-play-state:running}.move-right-leave.move-right-leave-active{-webkit-animation-name:antMoveRightOut;animation-name:antMoveRightOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.move-right-appear,.move-right-enter{-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1);opacity:0}.move-right-leave{-webkit-animation-timing-function:cubic-bezier(.6,.04,.98,.34);animation-timing-function:cubic-bezier(.6,.04,.98,.34)}@-webkit-keyframes antMoveDownIn{0%{opacity:0;transform:translateY(100%);transform-origin:0 0}to{opacity:1;transform:translateY(0);transform-origin:0 0}}@keyframes antMoveDownIn{0%{opacity:0;transform:translateY(100%);transform-origin:0 0}to{opacity:1;transform:translateY(0);transform-origin:0 0}}@-webkit-keyframes antMoveDownOut{0%{opacity:1;transform:translateY(0);transform-origin:0 0}to{opacity:0;transform:translateY(100%);transform-origin:0 0}}@keyframes antMoveDownOut{0%{opacity:1;transform:translateY(0);transform-origin:0 0}to{opacity:0;transform:translateY(100%);transform-origin:0 0}}@-webkit-keyframes antMoveLeftIn{0%{opacity:0;transform:translateX(-100%);transform-origin:0 0}to{opacity:1;transform:translateX(0);transform-origin:0 0}}@keyframes antMoveLeftIn{0%{opacity:0;transform:translateX(-100%);transform-origin:0 0}to{opacity:1;transform:translateX(0);transform-origin:0 0}}@-webkit-keyframes antMoveLeftOut{0%{opacity:1;transform:translateX(0);transform-origin:0 0}to{opacity:0;transform:translateX(-100%);transform-origin:0 0}}@keyframes antMoveLeftOut{0%{opacity:1;transform:translateX(0);transform-origin:0 0}to{opacity:0;transform:translateX(-100%);transform-origin:0 0}}@-webkit-keyframes antMoveRightIn{0%{opacity:0;transform:translateX(100%);transform-origin:0 0}to{opacity:1;transform:translateX(0);transform-origin:0 0}}@keyframes antMoveRightIn{0%{opacity:0;transform:translateX(100%);transform-origin:0 0}to{opacity:1;transform:translateX(0);transform-origin:0 0}}@-webkit-keyframes antMoveRightOut{0%{opacity:1;transform:translateX(0);transform-origin:0 0}to{opacity:0;transform:translateX(100%);transform-origin:0 0}}@keyframes antMoveRightOut{0%{opacity:1;transform:translateX(0);transform-origin:0 0}to{opacity:0;transform:translateX(100%);transform-origin:0 0}}@-webkit-keyframes antMoveUpIn{0%{opacity:0;transform:translateY(-100%);transform-origin:0 0}to{opacity:1;transform:translateY(0);transform-origin:0 0}}@keyframes antMoveUpIn{0%{opacity:0;transform:translateY(-100%);transform-origin:0 0}to{opacity:1;transform:translateY(0);transform-origin:0 0}}@-webkit-keyframes antMoveUpOut{0%{opacity:1;transform:translateY(0);transform-origin:0 0}to{opacity:0;transform:translateY(-100%);transform-origin:0 0}}@keyframes antMoveUpOut{0%{opacity:1;transform:translateY(0);transform-origin:0 0}to{opacity:0;transform:translateY(-100%);transform-origin:0 0}}@-webkit-keyframes loadingCircle{to{transform:rotate(1turn)}}@keyframes loadingCircle{to{transform:rotate(1turn)}}[ant-click-animating-without-extra-node=true],[ant-click-animating=true]{position:relative}html{--antd-wave-shadow-color:#177ddc;--scroll-bar:0}.ant-click-animating-node,[ant-click-animating-without-extra-node=true]:after{-webkit-animation:fadeEffect 2s cubic-bezier(.08,.82,.17,1),waveEffect .4s cubic-bezier(.08,.82,.17,1);animation:fadeEffect 2s cubic-bezier(.08,.82,.17,1),waveEffect .4s cubic-bezier(.08,.82,.17,1);-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;border-radius:inherit;bottom:0;box-shadow:0 0 0 0 #177ddc;box-shadow:0 0 0 0 var(--antd-wave-shadow-color);content:"";display:block;left:0;opacity:.2;pointer-events:none;position:absolute;right:0;top:0}@-webkit-keyframes waveEffect{to{box-shadow:0 0 0 #177ddc;box-shadow:0 0 0 6px var(--antd-wave-shadow-color)}}@keyframes waveEffect{to{box-shadow:0 0 0 #177ddc;box-shadow:0 0 0 6px var(--antd-wave-shadow-color)}}@-webkit-keyframes fadeEffect{to{opacity:0}}@keyframes fadeEffect{to{opacity:0}}.slide-up-appear,.slide-up-enter,.slide-up-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.slide-up-appear.slide-up-appear-active,.slide-up-enter.slide-up-enter-active{-webkit-animation-name:antSlideUpIn;animation-name:antSlideUpIn;-webkit-animation-play-state:running;animation-play-state:running}.slide-up-leave.slide-up-leave-active{-webkit-animation-name:antSlideUpOut;animation-name:antSlideUpOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.slide-up-appear,.slide-up-enter{-webkit-animation-timing-function:cubic-bezier(.23,1,.32,1);animation-timing-function:cubic-bezier(.23,1,.32,1);opacity:0}.slide-up-leave{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06)}.slide-down-appear,.slide-down-enter,.slide-down-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.slide-down-appear.slide-down-appear-active,.slide-down-enter.slide-down-enter-active{-webkit-animation-name:antSlideDownIn;animation-name:antSlideDownIn;-webkit-animation-play-state:running;animation-play-state:running}.slide-down-leave.slide-down-leave-active{-webkit-animation-name:antSlideDownOut;animation-name:antSlideDownOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.slide-down-appear,.slide-down-enter{-webkit-animation-timing-function:cubic-bezier(.23,1,.32,1);animation-timing-function:cubic-bezier(.23,1,.32,1);opacity:0}.slide-down-leave{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06)}.slide-left-appear,.slide-left-enter,.slide-left-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.slide-left-appear.slide-left-appear-active,.slide-left-enter.slide-left-enter-active{-webkit-animation-name:antSlideLeftIn;animation-name:antSlideLeftIn;-webkit-animation-play-state:running;animation-play-state:running}.slide-left-leave.slide-left-leave-active{-webkit-animation-name:antSlideLeftOut;animation-name:antSlideLeftOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.slide-left-appear,.slide-left-enter{-webkit-animation-timing-function:cubic-bezier(.23,1,.32,1);animation-timing-function:cubic-bezier(.23,1,.32,1);opacity:0}.slide-left-leave{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06)}.slide-right-appear,.slide-right-enter,.slide-right-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.slide-right-appear.slide-right-appear-active,.slide-right-enter.slide-right-enter-active{-webkit-animation-name:antSlideRightIn;animation-name:antSlideRightIn;-webkit-animation-play-state:running;animation-play-state:running}.slide-right-leave.slide-right-leave-active{-webkit-animation-name:antSlideRightOut;animation-name:antSlideRightOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.slide-right-appear,.slide-right-enter{-webkit-animation-timing-function:cubic-bezier(.23,1,.32,1);animation-timing-function:cubic-bezier(.23,1,.32,1);opacity:0}.slide-right-leave{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06)}.ant-slide-up-appear,.ant-slide-up-enter,.ant-slide-up-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.ant-slide-up-appear.ant-slide-up-appear-active,.ant-slide-up-enter.ant-slide-up-enter-active{-webkit-animation-name:antSlideUpIn;animation-name:antSlideUpIn;-webkit-animation-play-state:running;animation-play-state:running}.ant-slide-up-leave.ant-slide-up-leave-active{-webkit-animation-name:antSlideUpOut;animation-name:antSlideUpOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.ant-slide-up-appear,.ant-slide-up-enter{-webkit-animation-timing-function:cubic-bezier(.23,1,.32,1);animation-timing-function:cubic-bezier(.23,1,.32,1);opacity:0}.ant-slide-up-leave{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06)}.ant-slide-down-appear,.ant-slide-down-enter,.ant-slide-down-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.ant-slide-down-appear.ant-slide-down-appear-active,.ant-slide-down-enter.ant-slide-down-enter-active{-webkit-animation-name:antSlideDownIn;animation-name:antSlideDownIn;-webkit-animation-play-state:running;animation-play-state:running}.ant-slide-down-leave.ant-slide-down-leave-active{-webkit-animation-name:antSlideDownOut;animation-name:antSlideDownOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.ant-slide-down-appear,.ant-slide-down-enter{-webkit-animation-timing-function:cubic-bezier(.23,1,.32,1);animation-timing-function:cubic-bezier(.23,1,.32,1);opacity:0}.ant-slide-down-leave{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06)}.ant-slide-left-appear,.ant-slide-left-enter,.ant-slide-left-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.ant-slide-left-appear.ant-slide-left-appear-active,.ant-slide-left-enter.ant-slide-left-enter-active{-webkit-animation-name:antSlideLeftIn;animation-name:antSlideLeftIn;-webkit-animation-play-state:running;animation-play-state:running}.ant-slide-left-leave.ant-slide-left-leave-active{-webkit-animation-name:antSlideLeftOut;animation-name:antSlideLeftOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.ant-slide-left-appear,.ant-slide-left-enter{-webkit-animation-timing-function:cubic-bezier(.23,1,.32,1);animation-timing-function:cubic-bezier(.23,1,.32,1);opacity:0}.ant-slide-left-leave{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06)}.ant-slide-right-appear,.ant-slide-right-enter,.ant-slide-right-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.ant-slide-right-appear.ant-slide-right-appear-active,.ant-slide-right-enter.ant-slide-right-enter-active{-webkit-animation-name:antSlideRightIn;animation-name:antSlideRightIn;-webkit-animation-play-state:running;animation-play-state:running}.ant-slide-right-leave.ant-slide-right-leave-active{-webkit-animation-name:antSlideRightOut;animation-name:antSlideRightOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.ant-slide-right-appear,.ant-slide-right-enter{-webkit-animation-timing-function:cubic-bezier(.23,1,.32,1);animation-timing-function:cubic-bezier(.23,1,.32,1);opacity:0}.ant-slide-right-leave{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06)}@-webkit-keyframes antSlideUpIn{0%{opacity:0;transform:scaleY(.8);transform-origin:0 0}to{opacity:1;transform:scaleY(1);transform-origin:0 0}}@keyframes antSlideUpIn{0%{opacity:0;transform:scaleY(.8);transform-origin:0 0}to{opacity:1;transform:scaleY(1);transform-origin:0 0}}@-webkit-keyframes antSlideUpOut{0%{opacity:1;transform:scaleY(1);transform-origin:0 0}to{opacity:0;transform:scaleY(.8);transform-origin:0 0}}@keyframes antSlideUpOut{0%{opacity:1;transform:scaleY(1);transform-origin:0 0}to{opacity:0;transform:scaleY(.8);transform-origin:0 0}}@-webkit-keyframes antSlideDownIn{0%{opacity:0;transform:scaleY(.8);transform-origin:100% 100%}to{opacity:1;transform:scaleY(1);transform-origin:100% 100%}}@keyframes antSlideDownIn{0%{opacity:0;transform:scaleY(.8);transform-origin:100% 100%}to{opacity:1;transform:scaleY(1);transform-origin:100% 100%}}@-webkit-keyframes antSlideDownOut{0%{opacity:1;transform:scaleY(1);transform-origin:100% 100%}to{opacity:0;transform:scaleY(.8);transform-origin:100% 100%}}@keyframes antSlideDownOut{0%{opacity:1;transform:scaleY(1);transform-origin:100% 100%}to{opacity:0;transform:scaleY(.8);transform-origin:100% 100%}}@-webkit-keyframes antSlideLeftIn{0%{opacity:0;transform:scaleX(.8);transform-origin:0 0}to{opacity:1;transform:scaleX(1);transform-origin:0 0}}@keyframes antSlideLeftIn{0%{opacity:0;transform:scaleX(.8);transform-origin:0 0}to{opacity:1;transform:scaleX(1);transform-origin:0 0}}@-webkit-keyframes antSlideLeftOut{0%{opacity:1;transform:scaleX(1);transform-origin:0 0}to{opacity:0;transform:scaleX(.8);transform-origin:0 0}}@keyframes antSlideLeftOut{0%{opacity:1;transform:scaleX(1);transform-origin:0 0}to{opacity:0;transform:scaleX(.8);transform-origin:0 0}}@-webkit-keyframes antSlideRightIn{0%{opacity:0;transform:scaleX(.8);transform-origin:100% 0}to{opacity:1;transform:scaleX(1);transform-origin:100% 0}}@keyframes antSlideRightIn{0%{opacity:0;transform:scaleX(.8);transform-origin:100% 0}to{opacity:1;transform:scaleX(1);transform-origin:100% 0}}@-webkit-keyframes antSlideRightOut{0%{opacity:1;transform:scaleX(1);transform-origin:100% 0}to{opacity:0;transform:scaleX(.8);transform-origin:100% 0}}@keyframes antSlideRightOut{0%{opacity:1;transform:scaleX(1);transform-origin:100% 0}to{opacity:0;transform:scaleX(.8);transform-origin:100% 0}}.ant-zoom-appear,.ant-zoom-enter,.ant-zoom-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.ant-zoom-appear.ant-zoom-appear-active,.ant-zoom-enter.ant-zoom-enter-active{-webkit-animation-name:antZoomIn;animation-name:antZoomIn;-webkit-animation-play-state:running;animation-play-state:running}.ant-zoom-leave.ant-zoom-leave-active{-webkit-animation-name:antZoomOut;animation-name:antZoomOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.ant-zoom-appear,.ant-zoom-enter{-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1);opacity:0;transform:scale(0)}.ant-zoom-appear-prepare,.ant-zoom-enter-prepare{transform:none}.ant-zoom-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-appear,.zoom-enter,.zoom-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-appear.zoom-appear-active,.zoom-enter.zoom-enter-active{-webkit-animation-name:antZoomIn;animation-name:antZoomIn;-webkit-animation-play-state:running;animation-play-state:running}.zoom-leave.zoom-leave-active{-webkit-animation-name:antZoomOut;animation-name:antZoomOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-appear,.zoom-enter{-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1);opacity:0;transform:scale(0)}.zoom-appear-prepare,.zoom-enter-prepare{transform:none}.zoom-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.ant-zoom-big-appear,.ant-zoom-big-enter,.ant-zoom-big-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.ant-zoom-big-appear.ant-zoom-big-appear-active,.ant-zoom-big-enter.ant-zoom-big-enter-active{-webkit-animation-name:antZoomBigIn;animation-name:antZoomBigIn;-webkit-animation-play-state:running;animation-play-state:running}.ant-zoom-big-leave.ant-zoom-big-leave-active{-webkit-animation-name:antZoomBigOut;animation-name:antZoomBigOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.ant-zoom-big-appear,.ant-zoom-big-enter{-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1);opacity:0;transform:scale(0)}.ant-zoom-big-appear-prepare,.ant-zoom-big-enter-prepare{transform:none}.ant-zoom-big-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-big-appear,.zoom-big-enter,.zoom-big-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-big-appear.zoom-big-appear-active,.zoom-big-enter.zoom-big-enter-active{-webkit-animation-name:antZoomBigIn;animation-name:antZoomBigIn;-webkit-animation-play-state:running;animation-play-state:running}.zoom-big-leave.zoom-big-leave-active{-webkit-animation-name:antZoomBigOut;animation-name:antZoomBigOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-big-appear,.zoom-big-enter{-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1);opacity:0;transform:scale(0)}.zoom-big-appear-prepare,.zoom-big-enter-prepare{transform:none}.zoom-big-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.ant-zoom-big-fast-appear,.ant-zoom-big-fast-enter,.ant-zoom-big-fast-leave{-webkit-animation-duration:.1s;animation-duration:.1s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.ant-zoom-big-fast-appear.ant-zoom-big-fast-appear-active,.ant-zoom-big-fast-enter.ant-zoom-big-fast-enter-active{-webkit-animation-name:antZoomBigIn;animation-name:antZoomBigIn;-webkit-animation-play-state:running;animation-play-state:running}.ant-zoom-big-fast-leave.ant-zoom-big-fast-leave-active{-webkit-animation-name:antZoomBigOut;animation-name:antZoomBigOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.ant-zoom-big-fast-appear,.ant-zoom-big-fast-enter{-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1);opacity:0;transform:scale(0)}.ant-zoom-big-fast-appear-prepare,.ant-zoom-big-fast-enter-prepare{transform:none}.ant-zoom-big-fast-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-big-fast-appear,.zoom-big-fast-enter,.zoom-big-fast-leave{-webkit-animation-duration:.1s;animation-duration:.1s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-big-fast-appear.zoom-big-fast-appear-active,.zoom-big-fast-enter.zoom-big-fast-enter-active{-webkit-animation-name:antZoomBigIn;animation-name:antZoomBigIn;-webkit-animation-play-state:running;animation-play-state:running}.zoom-big-fast-leave.zoom-big-fast-leave-active{-webkit-animation-name:antZoomBigOut;animation-name:antZoomBigOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-big-fast-appear,.zoom-big-fast-enter{-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1);opacity:0;transform:scale(0)}.zoom-big-fast-appear-prepare,.zoom-big-fast-enter-prepare{transform:none}.zoom-big-fast-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.ant-zoom-up-appear,.ant-zoom-up-enter,.ant-zoom-up-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.ant-zoom-up-appear.ant-zoom-up-appear-active,.ant-zoom-up-enter.ant-zoom-up-enter-active{-webkit-animation-name:antZoomUpIn;animation-name:antZoomUpIn;-webkit-animation-play-state:running;animation-play-state:running}.ant-zoom-up-leave.ant-zoom-up-leave-active{-webkit-animation-name:antZoomUpOut;animation-name:antZoomUpOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.ant-zoom-up-appear,.ant-zoom-up-enter{-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1);opacity:0;transform:scale(0)}.ant-zoom-up-appear-prepare,.ant-zoom-up-enter-prepare{transform:none}.ant-zoom-up-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-up-appear,.zoom-up-enter,.zoom-up-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-up-appear.zoom-up-appear-active,.zoom-up-enter.zoom-up-enter-active{-webkit-animation-name:antZoomUpIn;animation-name:antZoomUpIn;-webkit-animation-play-state:running;animation-play-state:running}.zoom-up-leave.zoom-up-leave-active{-webkit-animation-name:antZoomUpOut;animation-name:antZoomUpOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-up-appear,.zoom-up-enter{-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1);opacity:0;transform:scale(0)}.zoom-up-appear-prepare,.zoom-up-enter-prepare{transform:none}.zoom-up-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.ant-zoom-down-appear,.ant-zoom-down-enter,.ant-zoom-down-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.ant-zoom-down-appear.ant-zoom-down-appear-active,.ant-zoom-down-enter.ant-zoom-down-enter-active{-webkit-animation-name:antZoomDownIn;animation-name:antZoomDownIn;-webkit-animation-play-state:running;animation-play-state:running}.ant-zoom-down-leave.ant-zoom-down-leave-active{-webkit-animation-name:antZoomDownOut;animation-name:antZoomDownOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.ant-zoom-down-appear,.ant-zoom-down-enter{-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1);opacity:0;transform:scale(0)}.ant-zoom-down-appear-prepare,.ant-zoom-down-enter-prepare{transform:none}.ant-zoom-down-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-down-appear,.zoom-down-enter,.zoom-down-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-down-appear.zoom-down-appear-active,.zoom-down-enter.zoom-down-enter-active{-webkit-animation-name:antZoomDownIn;animation-name:antZoomDownIn;-webkit-animation-play-state:running;animation-play-state:running}.zoom-down-leave.zoom-down-leave-active{-webkit-animation-name:antZoomDownOut;animation-name:antZoomDownOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-down-appear,.zoom-down-enter{-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1);opacity:0;transform:scale(0)}.zoom-down-appear-prepare,.zoom-down-enter-prepare{transform:none}.zoom-down-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.ant-zoom-left-appear,.ant-zoom-left-enter,.ant-zoom-left-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.ant-zoom-left-appear.ant-zoom-left-appear-active,.ant-zoom-left-enter.ant-zoom-left-enter-active{-webkit-animation-name:antZoomLeftIn;animation-name:antZoomLeftIn;-webkit-animation-play-state:running;animation-play-state:running}.ant-zoom-left-leave.ant-zoom-left-leave-active{-webkit-animation-name:antZoomLeftOut;animation-name:antZoomLeftOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.ant-zoom-left-appear,.ant-zoom-left-enter{-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1);opacity:0;transform:scale(0)}.ant-zoom-left-appear-prepare,.ant-zoom-left-enter-prepare{transform:none}.ant-zoom-left-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-left-appear,.zoom-left-enter,.zoom-left-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-left-appear.zoom-left-appear-active,.zoom-left-enter.zoom-left-enter-active{-webkit-animation-name:antZoomLeftIn;animation-name:antZoomLeftIn;-webkit-animation-play-state:running;animation-play-state:running}.zoom-left-leave.zoom-left-leave-active{-webkit-animation-name:antZoomLeftOut;animation-name:antZoomLeftOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-left-appear,.zoom-left-enter{-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1);opacity:0;transform:scale(0)}.zoom-left-appear-prepare,.zoom-left-enter-prepare{transform:none}.zoom-left-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.ant-zoom-right-appear,.ant-zoom-right-enter,.ant-zoom-right-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.ant-zoom-right-appear.ant-zoom-right-appear-active,.ant-zoom-right-enter.ant-zoom-right-enter-active{-webkit-animation-name:antZoomRightIn;animation-name:antZoomRightIn;-webkit-animation-play-state:running;animation-play-state:running}.ant-zoom-right-leave.ant-zoom-right-leave-active{-webkit-animation-name:antZoomRightOut;animation-name:antZoomRightOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.ant-zoom-right-appear,.ant-zoom-right-enter{-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1);opacity:0;transform:scale(0)}.ant-zoom-right-appear-prepare,.ant-zoom-right-enter-prepare{transform:none}.ant-zoom-right-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-right-appear,.zoom-right-enter,.zoom-right-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-right-appear.zoom-right-appear-active,.zoom-right-enter.zoom-right-enter-active{-webkit-animation-name:antZoomRightIn;animation-name:antZoomRightIn;-webkit-animation-play-state:running;animation-play-state:running}.zoom-right-leave.zoom-right-leave-active{-webkit-animation-name:antZoomRightOut;animation-name:antZoomRightOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-right-appear,.zoom-right-enter{-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1);opacity:0;transform:scale(0)}.zoom-right-appear-prepare,.zoom-right-enter-prepare{transform:none}.zoom-right-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}@-webkit-keyframes antZoomIn{0%{opacity:0;transform:scale(.2)}to{opacity:1;transform:scale(1)}}@keyframes antZoomIn{0%{opacity:0;transform:scale(.2)}to{opacity:1;transform:scale(1)}}@-webkit-keyframes antZoomOut{0%{transform:scale(1)}to{opacity:0;transform:scale(.2)}}@keyframes antZoomOut{0%{transform:scale(1)}to{opacity:0;transform:scale(.2)}}@-webkit-keyframes antZoomBigIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes antZoomBigIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@-webkit-keyframes antZoomBigOut{0%{transform:scale(1)}to{opacity:0;transform:scale(.8)}}@keyframes antZoomBigOut{0%{transform:scale(1)}to{opacity:0;transform:scale(.8)}}@-webkit-keyframes antZoomUpIn{0%{opacity:0;transform:scale(.8);transform-origin:50% 0}to{transform:scale(1);transform-origin:50% 0}}@keyframes antZoomUpIn{0%{opacity:0;transform:scale(.8);transform-origin:50% 0}to{transform:scale(1);transform-origin:50% 0}}@-webkit-keyframes antZoomUpOut{0%{transform:scale(1);transform-origin:50% 0}to{opacity:0;transform:scale(.8);transform-origin:50% 0}}@keyframes antZoomUpOut{0%{transform:scale(1);transform-origin:50% 0}to{opacity:0;transform:scale(.8);transform-origin:50% 0}}@-webkit-keyframes antZoomLeftIn{0%{opacity:0;transform:scale(.8);transform-origin:0 50%}to{transform:scale(1);transform-origin:0 50%}}@keyframes antZoomLeftIn{0%{opacity:0;transform:scale(.8);transform-origin:0 50%}to{transform:scale(1);transform-origin:0 50%}}@-webkit-keyframes antZoomLeftOut{0%{transform:scale(1);transform-origin:0 50%}to{opacity:0;transform:scale(.8);transform-origin:0 50%}}@keyframes antZoomLeftOut{0%{transform:scale(1);transform-origin:0 50%}to{opacity:0;transform:scale(.8);transform-origin:0 50%}}@-webkit-keyframes antZoomRightIn{0%{opacity:0;transform:scale(.8);transform-origin:100% 50%}to{transform:scale(1);transform-origin:100% 50%}}@keyframes antZoomRightIn{0%{opacity:0;transform:scale(.8);transform-origin:100% 50%}to{transform:scale(1);transform-origin:100% 50%}}@-webkit-keyframes antZoomRightOut{0%{transform:scale(1);transform-origin:100% 50%}to{opacity:0;transform:scale(.8);transform-origin:100% 50%}}@keyframes antZoomRightOut{0%{transform:scale(1);transform-origin:100% 50%}to{opacity:0;transform:scale(.8);transform-origin:100% 50%}}@-webkit-keyframes antZoomDownIn{0%{opacity:0;transform:scale(.8);transform-origin:50% 100%}to{transform:scale(1);transform-origin:50% 100%}}@keyframes antZoomDownIn{0%{opacity:0;transform:scale(.8);transform-origin:50% 100%}to{transform:scale(1);transform-origin:50% 100%}}@-webkit-keyframes antZoomDownOut{0%{transform:scale(1);transform-origin:50% 100%}to{opacity:0;transform:scale(.8);transform-origin:50% 100%}}@keyframes antZoomDownOut{0%{transform:scale(1);transform-origin:50% 100%}to{opacity:0;transform:scale(.8);transform-origin:50% 100%}}.ant-motion-collapse-legacy{overflow:hidden}.ant-motion-collapse,.ant-motion-collapse-legacy-active{transition:height .2s cubic-bezier(.645,.045,.355,1),opacity .2s cubic-bezier(.645,.045,.355,1)!important}.ant-motion-collapse{overflow:hidden}.ant-affix{position:fixed;z-index:10}.ant-alert{font-feature-settings:"tnum";word-wrap:break-word;align-items:center;border-radius:2px;box-sizing:border-box;color:hsla(0,0%,100%,.85);display:flex;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:8px 15px;position:relative}.ant-alert-content{flex:1;min-width:0}.ant-alert-icon{margin-right:8px}.ant-alert-description{display:none;font-size:14px;line-height:22px}.ant-alert-success{background-color:#162312;border:1px solid #274916}.ant-alert-success .ant-alert-icon{color:#49aa19}.ant-alert-info{background-color:#111b26;border:1px solid #153450}.ant-alert-info .ant-alert-icon{color:#177ddc}.ant-alert-warning{background-color:#2b2111;border:1px solid #594214}.ant-alert-warning .ant-alert-icon{color:#d89614}.ant-alert-error{background-color:#2a1215;border:1px solid #58181c}.ant-alert-error .ant-alert-icon{color:#a61d24}.ant-alert-error .ant-alert-description>pre{margin:0;padding:0}.ant-alert-action{margin-left:8px}.ant-alert-close-icon{background-color:transparent;border:none;cursor:pointer;font-size:12px;line-height:12px;margin-left:8px;outline:none;overflow:hidden;padding:0}.ant-alert-close-icon .anticon-close{color:hsla(0,0%,100%,.45);transition:color .3s}.ant-alert-close-icon .anticon-close:hover{color:hsla(0,0%,100%,.75)}.ant-alert-close-text{color:hsla(0,0%,100%,.45);transition:color .3s}.ant-alert-close-text:hover{color:hsla(0,0%,100%,.75)}.ant-alert-with-description{align-items:flex-start;padding:15px 15px 15px 24px}.ant-alert-with-description.ant-alert-no-icon{padding:15px}.ant-alert-with-description .ant-alert-icon{font-size:24px;margin-right:15px}.ant-alert-with-description .ant-alert-message{color:hsla(0,0%,100%,.85);display:block;font-size:16px;margin-bottom:4px}.ant-alert-message{color:hsla(0,0%,100%,.85)}.ant-alert-with-description .ant-alert-description{display:block}.ant-alert.ant-alert-motion-leave{opacity:1;overflow:hidden;transition:max-height .3s cubic-bezier(.78,.14,.15,.86),opacity .3s cubic-bezier(.78,.14,.15,.86),padding-top .3s cubic-bezier(.78,.14,.15,.86),padding-bottom .3s cubic-bezier(.78,.14,.15,.86),margin-bottom .3s cubic-bezier(.78,.14,.15,.86)}.ant-alert.ant-alert-motion-leave-active{margin-bottom:0!important;max-height:0;opacity:0;padding-bottom:0;padding-top:0}.ant-alert-banner{border:0;border-radius:0;margin-bottom:0}.ant-alert.ant-alert-rtl{direction:rtl}.ant-alert-rtl .ant-alert-icon{margin-left:8px;margin-right:auto}.ant-alert-rtl .ant-alert-action,.ant-alert-rtl .ant-alert-close-icon{margin-left:auto;margin-right:8px}.ant-alert-rtl.ant-alert-with-description{padding-left:15px;padding-right:24px}.ant-alert-rtl.ant-alert-with-description .ant-alert-icon{margin-left:15px;margin-right:auto}.ant-anchor{font-feature-settings:"tnum";box-sizing:border-box;color:hsla(0,0%,100%,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0 0 0 2px;position:relative}.ant-anchor-wrapper{background-color:transparent;margin-left:-4px;overflow:auto;padding-left:4px}.ant-anchor-ink{height:100%;left:0;position:absolute;top:0}.ant-anchor-ink:before{background-color:#303030;content:" ";display:block;height:100%;margin:0 auto;position:relative;width:2px}.ant-anchor-ink-ball{background-color:#141414;border:2px solid #177ddc;border-radius:8px;display:none;height:8px;left:50%;position:absolute;transform:translateX(-50%);transition:top .3s ease-in-out;width:8px}.ant-anchor-ink-ball.visible{display:inline-block}.ant-anchor-fixed .ant-anchor-ink .ant-anchor-ink-ball{display:none}.ant-anchor-link{line-height:1.143;padding:7px 0 7px 16px}.ant-anchor-link-title{color:hsla(0,0%,100%,.85);display:block;margin-bottom:6px;overflow:hidden;position:relative;text-overflow:ellipsis;transition:all .3s;white-space:nowrap}.ant-anchor-link-title:only-child{margin-bottom:0}.ant-anchor-link-active>.ant-anchor-link-title{color:#177ddc}.ant-anchor-link .ant-anchor-link{padding-bottom:5px;padding-top:5px}.ant-anchor-rtl{direction:rtl}.ant-anchor-rtl.ant-anchor-wrapper{margin-left:0;margin-right:-4px;padding-left:0;padding-right:4px}.ant-anchor-rtl .ant-anchor-ink{left:auto;right:0}.ant-anchor-rtl .ant-anchor-ink-ball{left:0;right:50%;transform:translateX(50%)}.ant-anchor-rtl .ant-anchor-link{padding:7px 16px 7px 0}.ant-select-auto-complete{font-feature-settings:"tnum";box-sizing:border-box;color:hsla(0,0%,100%,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0}.ant-select-auto-complete .ant-select-clear{right:13px}.ant-select-single .ant-select-selector{display:flex}.ant-select-single .ant-select-selector .ant-select-selection-search{bottom:0;left:11px;position:absolute;right:11px;top:0}.ant-select-single .ant-select-selector .ant-select-selection-search-input{width:100%}.ant-select-single .ant-select-selector .ant-select-selection-item,.ant-select-single .ant-select-selector .ant-select-selection-placeholder{line-height:30px;padding:0;transition:all .3s}@supports (-moz-appearance:meterbar){.ant-select-single .ant-select-selector .ant-select-selection-item,.ant-select-single .ant-select-selector .ant-select-selection-placeholder{line-height:30px}}.ant-select-single .ant-select-selector .ant-select-selection-item{position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ant-select-single .ant-select-selector .ant-select-selection-placeholder{pointer-events:none;transition:none}.ant-select-single .ant-select-selector .ant-select-selection-item:after,.ant-select-single .ant-select-selector .ant-select-selection-placeholder:after,.ant-select-single .ant-select-selector:after{content:"\\a0";display:inline-block;visibility:hidden;width:0}.ant-select-single.ant-select-show-arrow .ant-select-selection-search{right:25px}.ant-select-single.ant-select-show-arrow .ant-select-selection-item,.ant-select-single.ant-select-show-arrow .ant-select-selection-placeholder{padding-right:18px}.ant-select-single.ant-select-open .ant-select-selection-item{color:hsla(0,0%,100%,.3)}.ant-select-single:not(.ant-select-customize-input) .ant-select-selector{height:32px;padding:0 11px;width:100%}.ant-select-single:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-search-input{height:30px}.ant-select-single:not(.ant-select-customize-input) .ant-select-selector:after{line-height:30px}.ant-select-single.ant-select-customize-input .ant-select-selector:after{display:none}.ant-select-single.ant-select-customize-input .ant-select-selector .ant-select-selection-search{position:static;width:100%}.ant-select-single.ant-select-customize-input .ant-select-selector .ant-select-selection-placeholder{left:0;padding:0 11px;position:absolute;right:0}.ant-select-single.ant-select-customize-input .ant-select-selector .ant-select-selection-placeholder:after{display:none}.ant-select-single.ant-select-lg:not(.ant-select-customize-input) .ant-select-selector{height:40px}.ant-select-single.ant-select-lg:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-item,.ant-select-single.ant-select-lg:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-placeholder,.ant-select-single.ant-select-lg:not(.ant-select-customize-input) .ant-select-selector:after{line-height:38px}.ant-select-single.ant-select-lg:not(.ant-select-customize-input):not(.ant-select-customize-input) .ant-select-selection-search-input{height:38px}.ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selector{height:24px}.ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-item,.ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-placeholder,.ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selector:after{line-height:22px}.ant-select-single.ant-select-sm:not(.ant-select-customize-input):not(.ant-select-customize-input) .ant-select-selection-search-input{height:22px}.ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selection-search{left:7px;right:7px}.ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selector{padding:0 7px}.ant-select-single.ant-select-sm:not(.ant-select-customize-input).ant-select-show-arrow .ant-select-selection-search{right:28px}.ant-select-single.ant-select-sm:not(.ant-select-customize-input).ant-select-show-arrow .ant-select-selection-item,.ant-select-single.ant-select-sm:not(.ant-select-customize-input).ant-select-show-arrow .ant-select-selection-placeholder{padding-right:21px}.ant-select-single.ant-select-lg:not(.ant-select-customize-input) .ant-select-selector{padding:0 11px}.ant-select-selection-overflow{display:flex;flex:auto;flex-wrap:wrap;max-width:100%;position:relative}.ant-select-selection-overflow-item{align-self:center;flex:none;max-width:100%}.ant-select-multiple .ant-select-selector{align-items:center;display:flex;flex-wrap:wrap;padding:1px 4px}.ant-select-show-search.ant-select-multiple .ant-select-selector{cursor:text}.ant-select-disabled.ant-select-multiple .ant-select-selector{background:#141414;cursor:not-allowed}.ant-select-multiple .ant-select-selector:after{content:"\\a0";display:inline-block;line-height:24px;margin:2px 0;width:0}.ant-select-multiple.ant-select-allow-clear .ant-select-selector,.ant-select-multiple.ant-select-show-arrow .ant-select-selector{padding-right:24px}.ant-select-multiple .ant-select-selection-item{-webkit-margin-end:4px;-webkit-padding-start:8px;-webkit-padding-end:4px;background:hsla(0,0%,100%,.08);border:1px solid #303030;border-radius:2px;box-sizing:border-box;cursor:default;display:flex;flex:none;height:24px;line-height:22px;margin-bottom:2px;margin-inline-end:4px;margin-top:2px;max-width:100%;padding-inline-end:4px;padding-inline-start:8px;position:relative;transition:font-size .3s,line-height .3s,height .3s;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ant-select-disabled.ant-select-multiple .ant-select-selection-item{border-color:#1f1f1f;color:#595959;cursor:not-allowed}.ant-select-multiple .ant-select-selection-item-content{display:inline-block;margin-right:4px;overflow:hidden;text-overflow:ellipsis;white-space:pre}.ant-select-multiple .ant-select-selection-item-remove{text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:inherit;color:hsla(0,0%,100%,.45);cursor:pointer;display:inline-block;font-size:10px;font-style:normal;font-weight:700;line-height:0;line-height:inherit;text-align:center;text-transform:none;vertical-align:-.125em}.ant-select-multiple .ant-select-selection-item-remove>*{line-height:1}.ant-select-multiple .ant-select-selection-item-remove svg{display:inline-block}.ant-select-multiple .ant-select-selection-item-remove:before{display:none}.ant-select-multiple .ant-select-selection-item-remove .ant-select-multiple .ant-select-selection-item-remove-icon{display:block}.ant-select-multiple .ant-select-selection-item-remove>.anticon{vertical-align:-.2em}.ant-select-multiple .ant-select-selection-item-remove:hover{color:hsla(0,0%,100%,.75)}.ant-select-multiple .ant-select-selection-overflow-item+.ant-select-selection-overflow-item .ant-select-selection-search{-webkit-margin-start:0;margin-inline-start:0}.ant-select-multiple .ant-select-selection-search{-webkit-margin-start:7px;margin-inline-start:7px;max-width:100%;position:relative}.ant-select-multiple .ant-select-selection-search-input,.ant-select-multiple .ant-select-selection-search-mirror{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;height:24px;line-height:24px;transition:all .3s}.ant-select-multiple .ant-select-selection-search-input{min-width:4.1px;width:100%}.ant-select-multiple .ant-select-selection-search-mirror{left:0;position:absolute;top:0;visibility:hidden;white-space:pre;z-index:999}.ant-select-multiple .ant-select-selection-placeholder{left:11px;position:absolute;right:11px;top:50%;transform:translateY(-50%);transition:all .3s}.ant-select-multiple.ant-select-lg .ant-select-selector:after{line-height:32px}.ant-select-multiple.ant-select-lg .ant-select-selection-item{line-height:30px}.ant-select-multiple.ant-select-lg .ant-select-selection-search{height:32px;line-height:32px}.ant-select-multiple.ant-select-lg .ant-select-selection-search-input,.ant-select-multiple.ant-select-lg .ant-select-selection-search-mirror{height:32px;line-height:30px}.ant-select-multiple.ant-select-sm .ant-select-selector:after{line-height:16px}.ant-select-multiple.ant-select-sm .ant-select-selection-item{height:16px;line-height:14px}.ant-select-multiple.ant-select-sm .ant-select-selection-search{height:16px;line-height:16px}.ant-select-multiple.ant-select-sm .ant-select-selection-search-input,.ant-select-multiple.ant-select-sm .ant-select-selection-search-mirror{height:16px;line-height:14px}.ant-select-multiple.ant-select-sm .ant-select-selection-placeholder{left:7px}.ant-select-multiple.ant-select-sm .ant-select-selection-search{-webkit-margin-start:3px;margin-inline-start:3px}.ant-select-multiple.ant-select-lg .ant-select-selection-item{height:32px;line-height:32px}.ant-select-disabled .ant-select-selection-item-remove{display:none}.ant-select{font-feature-settings:"tnum";box-sizing:border-box;color:hsla(0,0%,100%,.85);cursor:pointer;display:inline-block;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0;position:relative}.ant-select:not(.ant-select-customize-input) .ant-select-selector{background-color:transparent;border:1px solid #434343;border-radius:2px;position:relative;transition:all .3s cubic-bezier(.645,.045,.355,1)}.ant-select:not(.ant-select-customize-input) .ant-select-selector input{cursor:pointer}.ant-select-show-search.ant-select:not(.ant-select-customize-input) .ant-select-selector{cursor:text}.ant-select-show-search.ant-select:not(.ant-select-customize-input) .ant-select-selector input{cursor:auto}.ant-select-focused:not(.ant-select-disabled).ant-select:not(.ant-select-customize-input) .ant-select-selector{border-color:#177ddc;border-right-width:1px!important;box-shadow:0 0 0 2px rgba(23,125,220,.2);outline:0}.ant-select-disabled.ant-select:not(.ant-select-customize-input) .ant-select-selector{background:hsla(0,0%,100%,.08);color:hsla(0,0%,100%,.3);cursor:not-allowed}.ant-select-multiple.ant-select-disabled.ant-select:not(.ant-select-customize-input) .ant-select-selector{background:#141414}.ant-select-disabled.ant-select:not(.ant-select-customize-input) .ant-select-selector input{cursor:not-allowed}.ant-select:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-search-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:none;margin:0;outline:none;padding:0}.ant-select:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-search-input::-webkit-search-cancel-button{-webkit-appearance:none;display:none}.ant-select:not(.ant-select-disabled):hover .ant-select-selector{border-color:#165996;border-right-width:1px!important}.ant-select-selection-item{flex:1;font-weight:400;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (-ms-high-contrast:none){.ant-select-selection-item,.ant-select-selection-item ::-ms-backdrop{flex:auto}}.ant-select-selection-placeholder{color:hsla(0,0%,100%,.3);flex:1;overflow:hidden;pointer-events:none;text-overflow:ellipsis;white-space:nowrap}@media (-ms-high-contrast:none){.ant-select-selection-placeholder,.ant-select-selection-placeholder ::-ms-backdrop{flex:auto}}.ant-select-arrow{text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:inherit;color:hsla(0,0%,100%,.3);display:inline-block;font-size:12px;font-style:normal;height:12px;line-height:0;line-height:1;margin-top:-6px;pointer-events:none;position:absolute;right:11px;text-align:center;text-transform:none;top:50%;vertical-align:-.125em;width:12px}.ant-select-arrow>*{line-height:1}.ant-select-arrow svg{display:inline-block}.ant-select-arrow:before{display:none}.ant-select-arrow .ant-select-arrow-icon{display:block}.ant-select-arrow .anticon{transition:transform .3s;vertical-align:top}.ant-select-arrow .anticon>svg{vertical-align:top}.ant-select-arrow .anticon:not(.ant-select-suffix){pointer-events:auto}.ant-select-disabled .ant-select-arrow{cursor:not-allowed}.ant-select-clear{text-rendering:auto;background:#141414;color:hsla(0,0%,100%,.3);cursor:pointer;display:inline-block;font-size:12px;font-style:normal;height:12px;line-height:1;margin-top:-6px;opacity:0;position:absolute;right:11px;text-align:center;text-transform:none;top:50%;transition:color .3s ease,opacity .15s ease;width:12px;z-index:1}.ant-select-clear:before{display:block}.ant-select-clear:hover{color:hsla(0,0%,100%,.45)}.ant-select:hover .ant-select-clear{opacity:1}.ant-select-dropdown{font-feature-settings:"tnum";background-color:#1f1f1f;border-radius:2px;box-shadow:0 3px 6px -4px rgba(0,0,0,.48),0 6px 16px 0 rgba(0,0,0,.32),0 9px 28px 8px rgba(0,0,0,.2);box-sizing:border-box;color:hsla(0,0%,100%,.85);font-size:14px;font-variant:tabular-nums;font-variant:normal;left:-9999px;line-height:1.5715;list-style:none;margin:0;outline:none;overflow:hidden;padding:4px 0;position:absolute;top:-9999px;z-index:1050}.ant-select-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-select-dropdown-placement-bottomLeft,.ant-select-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-select-dropdown-placement-bottomLeft{-webkit-animation-name:antSlideUpIn;animation-name:antSlideUpIn}.ant-select-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-select-dropdown-placement-topLeft,.ant-select-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-select-dropdown-placement-topLeft{-webkit-animation-name:antSlideDownIn;animation-name:antSlideDownIn}.ant-select-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-select-dropdown-placement-bottomLeft{-webkit-animation-name:antSlideUpOut;animation-name:antSlideUpOut}.ant-select-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-select-dropdown-placement-topLeft{-webkit-animation-name:antSlideDownOut;animation-name:antSlideDownOut}.ant-select-dropdown-hidden{display:none}.ant-select-dropdown-empty{color:hsla(0,0%,100%,.3)}.ant-select-item-empty{color:hsla(0,0%,100%,.85);color:hsla(0,0%,100%,.3)}.ant-select-item,.ant-select-item-empty{display:block;font-size:14px;font-weight:400;line-height:22px;min-height:32px;padding:5px 12px;position:relative}.ant-select-item{color:hsla(0,0%,100%,.85);cursor:pointer;transition:background .3s ease}.ant-select-item-group{color:hsla(0,0%,100%,.45);cursor:default;font-size:12px}.ant-select-item-option{display:flex}.ant-select-item-option-content{flex:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ant-select-item-option-state{flex:none}.ant-select-item-option-active:not(.ant-select-item-option-disabled){background-color:hsla(0,0%,100%,.08)}.ant-select-item-option-selected:not(.ant-select-item-option-disabled){background-color:#111b26;color:hsla(0,0%,100%,.85);font-weight:600}.ant-select-item-option-selected:not(.ant-select-item-option-disabled) .ant-select-item-option-state{color:#177ddc}.ant-select-item-option-disabled{color:hsla(0,0%,100%,.3);cursor:not-allowed}.ant-select-item-option-disabled.ant-select-item-option-selected{background-color:#141414}.ant-select-item-option-grouped{padding-left:24px}.ant-select-lg{font-size:16px}.ant-select-borderless .ant-select-selector{background-color:transparent!important;border-color:transparent!important;box-shadow:none!important}.ant-select-rtl{direction:rtl}.ant-select-rtl .ant-select-arrow,.ant-select-rtl .ant-select-clear{left:11px;right:auto}.ant-select-dropdown-rtl{direction:rtl}.ant-select-dropdown-rtl .ant-select-item-option-grouped{padding-left:12px;padding-right:24px}.ant-select-rtl.ant-select-multiple.ant-select-allow-clear .ant-select-selector,.ant-select-rtl.ant-select-multiple.ant-select-show-arrow .ant-select-selector{padding-left:24px;padding-right:4px}.ant-select-rtl.ant-select-multiple .ant-select-selection-item{text-align:right}.ant-select-rtl.ant-select-multiple .ant-select-selection-item-content{margin-left:4px;margin-right:0;text-align:right}.ant-select-rtl.ant-select-multiple .ant-select-selection-search-mirror{left:auto;right:0}.ant-select-rtl.ant-select-multiple .ant-select-selection-placeholder{left:auto;right:11px}.ant-select-rtl.ant-select-multiple.ant-select-sm .ant-select-selection-placeholder{right:7px}.ant-select-rtl.ant-select-single .ant-select-selector .ant-select-selection-item,.ant-select-rtl.ant-select-single .ant-select-selector .ant-select-selection-placeholder{left:9px;right:0;text-align:right}.ant-select-rtl.ant-select-single.ant-select-show-arrow .ant-select-selection-search{left:25px;right:11px}.ant-select-rtl.ant-select-single.ant-select-show-arrow .ant-select-selection-item,.ant-select-rtl.ant-select-single.ant-select-show-arrow .ant-select-selection-placeholder{padding-left:18px;padding-right:0}.ant-select-rtl.ant-select-single.ant-select-sm:not(.ant-select-customize-input).ant-select-show-arrow .ant-select-selection-search{right:6px}.ant-select-rtl.ant-select-single.ant-select-sm:not(.ant-select-customize-input).ant-select-show-arrow .ant-select-selection-item,.ant-select-rtl.ant-select-single.ant-select-sm:not(.ant-select-customize-input).ant-select-show-arrow .ant-select-selection-placeholder{padding-left:21px;padding-right:0}.ant-empty{font-size:14px;line-height:1.5715;margin:0 8px;text-align:center}.ant-empty-image{height:100px;margin-bottom:8px}.ant-empty-image img{height:100%}.ant-empty-image svg{height:100%;margin:auto}.ant-empty-footer{margin-top:16px}.ant-empty-normal{color:hsla(0,0%,100%,.3);margin:32px 0}.ant-empty-normal .ant-empty-image{height:40px}.ant-empty-small{color:hsla(0,0%,100%,.3);margin:8px 0}.ant-empty-small .ant-empty-image{height:35px}.ant-empty-img-default-ellipse{fill:#fff;fill-opacity:.08}.ant-empty-img-default-path-1{fill:#262626}.ant-empty-img-default-path-2{fill:url(#linearGradient-1)}.ant-empty-img-default-path-3{fill:#595959}.ant-empty-img-default-path-4{fill:#434343}.ant-empty-img-default-path-5{fill:#595959}.ant-empty-img-default-g{fill:#434343}.ant-empty-img-simple-ellipse{fill:#fff;fill-opacity:.08}.ant-empty-img-simple-g{stroke:#434343}.ant-empty-img-simple-path{fill:#262626;stroke:#434343}.ant-empty-rtl{direction:rtl}.ant-avatar{font-feature-settings:"tnum";background:hsla(0,0%,100%,.3);border-radius:50%;box-sizing:border-box;color:hsla(0,0%,100%,.85);color:#fff;display:inline-block;font-size:14px;font-variant:tabular-nums;height:32px;line-height:1.5715;line-height:32px;list-style:none;margin:0;overflow:hidden;padding:0;position:relative;text-align:center;vertical-align:middle;white-space:nowrap;width:32px}.ant-avatar-image{background:transparent}.ant-avatar .ant-image-img{display:block}.ant-avatar-string{left:50%;position:absolute;transform-origin:0 center}.ant-avatar.ant-avatar-icon{font-size:18px}.ant-avatar.ant-avatar-icon>.anticon{margin:0}.ant-avatar-lg{border-radius:50%;height:40px;line-height:40px;width:40px}.ant-avatar-lg-string{left:50%;position:absolute;transform-origin:0 center}.ant-avatar-lg.ant-avatar-icon{font-size:24px}.ant-avatar-lg.ant-avatar-icon>.anticon{margin:0}.ant-avatar-sm{border-radius:50%;height:24px;line-height:24px;width:24px}.ant-avatar-sm-string{left:50%;position:absolute;transform-origin:0 center}.ant-avatar-sm.ant-avatar-icon{font-size:14px}.ant-avatar-sm.ant-avatar-icon>.anticon{margin:0}.ant-avatar-square{border-radius:2px}.ant-avatar>img{display:block;height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.ant-avatar-group{display:inline-flex}.ant-avatar-group .ant-avatar{border:1px solid #fff}.ant-avatar-group .ant-avatar:not(:first-child){margin-left:-8px}.ant-avatar-group-popover .ant-avatar+.ant-avatar{margin-left:3px}.ant-avatar-group-rtl .ant-avatar:not(:first-child){margin-left:0;margin-right:-8px}.ant-avatar-group-popover.ant-popover-rtl .ant-avatar+.ant-avatar{margin-left:0;margin-right:3px}.ant-back-top{font-feature-settings:"tnum";bottom:50px;box-sizing:border-box;color:hsla(0,0%,100%,.85);cursor:pointer;font-size:14px;font-variant:tabular-nums;height:40px;line-height:1.5715;list-style:none;margin:0;padding:0;position:fixed;right:100px;width:40px;z-index:10}.ant-back-top:empty{display:none}.ant-back-top-rtl{direction:rtl;left:100px;right:auto}.ant-back-top-content{background-color:hsla(0,0%,100%,.45);border-radius:20px;color:#fff;height:40px;overflow:hidden;text-align:center;transition:all .3s;width:40px}.ant-back-top-content:hover{background-color:hsla(0,0%,100%,.85);transition:all .3s}.ant-back-top-icon{font-size:24px;line-height:40px}@media screen and (max-width:768px){.ant-back-top{right:60px}}@media screen and (max-width:480px){.ant-back-top{right:20px}}.ant-badge{font-feature-settings:"tnum";box-sizing:border-box;color:hsla(0,0%,100%,.85);display:inline-block;font-size:14px;font-variant:tabular-nums;line-height:1.5715;line-height:1;list-style:none;margin:0;padding:0;position:relative}.ant-badge-count{background:#a61d24;border-radius:10px;box-shadow:0 0 0 1px #141414;color:#fff;font-size:12px;font-weight:400;height:20px;line-height:20px;min-width:20px;padding:0 6px;text-align:center;white-space:nowrap;z-index:auto}.ant-badge-count a,.ant-badge-count a:hover{color:#fff}.ant-badge-count-sm{border-radius:7px;font-size:12px;height:14px;line-height:14px;min-width:14px;padding:0}.ant-badge-multiple-words{padding:0 8px}.ant-badge-dot{background:#a61d24;border-radius:100%;box-shadow:0 0 0 1px #141414;height:6px;min-width:6px;width:6px;z-index:auto}.ant-badge-dot.ant-scroll-number{transition:background 1.5s}.ant-badge .ant-scroll-number-custom-component,.ant-badge-count,.ant-badge-dot{position:absolute;right:0;top:0;transform:translate(50%,-50%);transform-origin:100% 0}.ant-badge .ant-scroll-number-custom-component.anticon-spin,.ant-badge-count.anticon-spin,.ant-badge-dot.anticon-spin{-webkit-animation:antBadgeLoadingCircle 1s linear infinite;animation:antBadgeLoadingCircle 1s linear infinite}.ant-badge-status{line-height:inherit;vertical-align:baseline}.ant-badge-status-dot{border-radius:50%;display:inline-block;height:6px;position:relative;top:-1px;vertical-align:middle;width:6px}.ant-badge-status-success{background-color:#49aa19}.ant-badge-status-processing{background-color:#177ddc;position:relative}.ant-badge-status-processing:after{-webkit-animation:antStatusProcessing 1.2s ease-in-out infinite;animation:antStatusProcessing 1.2s ease-in-out infinite;border:1px solid #177ddc;border-radius:50%;content:"";height:100%;left:0;position:absolute;top:0;width:100%}.ant-badge-status-default{background-color:#d9d9d9}.ant-badge-status-error{background-color:#a61d24}.ant-badge-status-warning{background-color:#d89614}.ant-badge-status-magenta,.ant-badge-status-pink{background:#cb2b83}.ant-badge-status-red{background:#d32029}.ant-badge-status-volcano{background:#d84a1b}.ant-badge-status-orange{background:#d87a16}.ant-badge-status-yellow{background:#d8bd14}.ant-badge-status-gold{background:#d89614}.ant-badge-status-cyan{background:#13a8a8}.ant-badge-status-lime{background:#8bbb11}.ant-badge-status-green{background:#49aa19}.ant-badge-status-blue{background:#177ddc}.ant-badge-status-geekblue{background:#2b4acb}.ant-badge-status-purple{background:#642ab5}.ant-badge-status-text{color:hsla(0,0%,100%,.85);font-size:14px;margin-left:8px}.ant-badge-zoom-appear,.ant-badge-zoom-enter{-webkit-animation:antZoomBadgeIn .3s cubic-bezier(.12,.4,.29,1.46);animation:antZoomBadgeIn .3s cubic-bezier(.12,.4,.29,1.46);-webkit-animation-fill-mode:both;animation-fill-mode:both}.ant-badge-zoom-leave{-webkit-animation:antZoomBadgeOut .3s cubic-bezier(.71,-.46,.88,.6);animation:antZoomBadgeOut .3s cubic-bezier(.71,-.46,.88,.6);-webkit-animation-fill-mode:both;animation-fill-mode:both}.ant-badge-not-a-wrapper .ant-badge-zoom-appear,.ant-badge-not-a-wrapper .ant-badge-zoom-enter{-webkit-animation:antNoWrapperZoomBadgeIn .3s cubic-bezier(.12,.4,.29,1.46);animation:antNoWrapperZoomBadgeIn .3s cubic-bezier(.12,.4,.29,1.46)}.ant-badge-not-a-wrapper .ant-badge-zoom-leave{-webkit-animation:antNoWrapperZoomBadgeOut .3s cubic-bezier(.71,-.46,.88,.6);animation:antNoWrapperZoomBadgeOut .3s cubic-bezier(.71,-.46,.88,.6)}.ant-badge-not-a-wrapper:not(.ant-badge-status){vertical-align:middle}.ant-badge-not-a-wrapper .ant-badge-count,.ant-badge-not-a-wrapper .ant-scroll-number-custom-component{transform:none}.ant-badge-not-a-wrapper .ant-scroll-number,.ant-badge-not-a-wrapper .ant-scroll-number-custom-component{display:block;position:relative;top:auto;transform-origin:50% 50%}@-webkit-keyframes antStatusProcessing{0%{opacity:.5;transform:scale(.8)}to{opacity:0;transform:scale(2.4)}}@keyframes antStatusProcessing{0%{opacity:.5;transform:scale(.8)}to{opacity:0;transform:scale(2.4)}}.ant-scroll-number{direction:ltr;overflow:hidden}.ant-scroll-number-only{display:inline-block;position:relative;transition:all .3s cubic-bezier(.645,.045,.355,1)}.ant-scroll-number-only,.ant-scroll-number-only>p.ant-scroll-number-only-unit{-webkit-backface-visibility:hidden;height:20px;-webkit-transform-style:preserve-3d}.ant-scroll-number-only>p.ant-scroll-number-only-unit{margin:0}.ant-scroll-number-symbol{vertical-align:top}@-webkit-keyframes antZoomBadgeIn{0%{opacity:0;transform:scale(0) translate(50%,-50%)}to{transform:scale(1) translate(50%,-50%)}}@keyframes antZoomBadgeIn{0%{opacity:0;transform:scale(0) translate(50%,-50%)}to{transform:scale(1) translate(50%,-50%)}}@-webkit-keyframes antZoomBadgeOut{0%{transform:scale(1) translate(50%,-50%)}to{opacity:0;transform:scale(0) translate(50%,-50%)}}@keyframes antZoomBadgeOut{0%{transform:scale(1) translate(50%,-50%)}to{opacity:0;transform:scale(0) translate(50%,-50%)}}@-webkit-keyframes antNoWrapperZoomBadgeIn{0%{opacity:0;transform:scale(0)}to{transform:scale(1)}}@keyframes antNoWrapperZoomBadgeIn{0%{opacity:0;transform:scale(0)}to{transform:scale(1)}}@-webkit-keyframes antNoWrapperZoomBadgeOut{0%{transform:scale(1)}to{opacity:0;transform:scale(0)}}@keyframes antNoWrapperZoomBadgeOut{0%{transform:scale(1)}to{opacity:0;transform:scale(0)}}@-webkit-keyframes antBadgeLoadingCircle{0%{transform-origin:50%}to{transform:translate(50%,-50%) rotate(1turn);transform-origin:50%}}@keyframes antBadgeLoadingCircle{0%{transform-origin:50%}to{transform:translate(50%,-50%) rotate(1turn);transform-origin:50%}}.ant-ribbon-wrapper{position:relative}.ant-ribbon{font-feature-settings:"tnum";background-color:#177ddc;border-radius:2px;box-sizing:border-box;color:hsla(0,0%,100%,.85);color:#fff;font-size:14px;font-variant:tabular-nums;height:22px;line-height:1.5715;line-height:22px;list-style:none;margin:0;padding:0 8px;position:absolute;top:8px;white-space:nowrap}.ant-ribbon-text{color:#fff}.ant-ribbon-corner{border:4px solid;color:currentcolor;height:8px;position:absolute;top:100%;transform:scaleY(.75);transform-origin:top;width:8px}.ant-ribbon-corner:after{border:inherit;color:rgba(0,0,0,.25);content:"";height:inherit;left:-4px;position:absolute;top:-4px;width:inherit}.ant-ribbon-color-magenta,.ant-ribbon-color-pink{background:#cb2b83;color:#cb2b83}.ant-ribbon-color-red{background:#d32029;color:#d32029}.ant-ribbon-color-volcano{background:#d84a1b;color:#d84a1b}.ant-ribbon-color-orange{background:#d87a16;color:#d87a16}.ant-ribbon-color-yellow{background:#d8bd14;color:#d8bd14}.ant-ribbon-color-gold{background:#d89614;color:#d89614}.ant-ribbon-color-cyan{background:#13a8a8;color:#13a8a8}.ant-ribbon-color-lime{background:#8bbb11;color:#8bbb11}.ant-ribbon-color-green{background:#49aa19;color:#49aa19}.ant-ribbon-color-blue{background:#177ddc;color:#177ddc}.ant-ribbon-color-geekblue{background:#2b4acb;color:#2b4acb}.ant-ribbon-color-purple{background:#642ab5;color:#642ab5}.ant-ribbon.ant-ribbon-placement-end{border-bottom-right-radius:0;right:-8px}.ant-ribbon.ant-ribbon-placement-end .ant-ribbon-corner{border-color:currentcolor transparent transparent currentcolor;right:0}.ant-ribbon.ant-ribbon-placement-start{border-bottom-left-radius:0;left:-8px}.ant-ribbon.ant-ribbon-placement-start .ant-ribbon-corner{border-color:currentcolor currentcolor transparent transparent;left:0}.ant-badge-rtl{direction:rtl}.ant-badge-rtl .ant-badge:not(.ant-badge-not-a-wrapper) .ant-badge-count,.ant-badge-rtl .ant-badge:not(.ant-badge-not-a-wrapper) .ant-badge-dot,.ant-badge-rtl .ant-badge:not(.ant-badge-not-a-wrapper) .ant-scroll-number-custom-component{direction:ltr;left:0;right:auto;transform:translate(-50%,-50%);transform-origin:0 0}.ant-badge-rtl.ant-badge:not(.ant-badge-not-a-wrapper) .ant-scroll-number-custom-component{left:0;right:auto;transform:translate(-50%,-50%);transform-origin:0 0}.ant-badge-rtl .ant-badge-status-text{margin-left:0;margin-right:8px}.ant-ribbon-rtl{direction:rtl}.ant-ribbon-rtl.ant-ribbon-placement-end{border-bottom-left-radius:0;border-bottom-right-radius:2px;left:-8px;right:unset}.ant-ribbon-rtl.ant-ribbon-placement-end .ant-ribbon-corner{left:0;right:unset}.ant-ribbon-rtl.ant-ribbon-placement-end .ant-ribbon-corner,.ant-ribbon-rtl.ant-ribbon-placement-end .ant-ribbon-corner:after{border-color:currentcolor currentcolor transparent transparent}.ant-ribbon-rtl.ant-ribbon-placement-start{border-bottom-left-radius:2px;border-bottom-right-radius:0;left:unset;right:-8px}.ant-ribbon-rtl.ant-ribbon-placement-start .ant-ribbon-corner{left:unset;right:0}.ant-ribbon-rtl.ant-ribbon-placement-start .ant-ribbon-corner,.ant-ribbon-rtl.ant-ribbon-placement-start .ant-ribbon-corner:after{border-color:currentcolor transparent transparent currentcolor}.ant-breadcrumb{font-feature-settings:"tnum";box-sizing:border-box;color:hsla(0,0%,100%,.85);color:hsla(0,0%,100%,.45);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0}.ant-breadcrumb .anticon{font-size:14px}.ant-breadcrumb a{color:hsla(0,0%,100%,.45);transition:color .3s}.ant-breadcrumb a:hover{color:#165996}.ant-breadcrumb>span:last-child,.ant-breadcrumb>span:last-child a{color:hsla(0,0%,100%,.85)}.ant-breadcrumb>span:last-child .ant-breadcrumb-separator{display:none}.ant-breadcrumb-separator{color:hsla(0,0%,100%,.45);margin:0 8px}.ant-breadcrumb-link>.anticon+a,.ant-breadcrumb-link>.anticon+span,.ant-breadcrumb-overlay-link>.anticon{margin-left:4px}.ant-breadcrumb-rtl{direction:rtl}.ant-breadcrumb-rtl:before{content:"";display:table}.ant-breadcrumb-rtl:after{clear:both;content:"";display:table}.ant-breadcrumb-rtl>span{float:right}.ant-breadcrumb-rtl .ant-breadcrumb-link>.anticon+a,.ant-breadcrumb-rtl .ant-breadcrumb-link>.anticon+span,.ant-breadcrumb-rtl .ant-breadcrumb-overlay-link>.anticon{margin-left:0;margin-right:4px}.ant-menu-item-danger.ant-menu-item,.ant-menu-item-danger.ant-menu-item-active,.ant-menu-item-danger.ant-menu-item:hover{color:#a61d24}.ant-menu-item-danger.ant-menu-item:active{background:#2a1215}.ant-menu-item-danger.ant-menu-item-selected,.ant-menu-item-danger.ant-menu-item-selected>a,.ant-menu-item-danger.ant-menu-item-selected>a:hover{color:#a61d24}.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-danger.ant-menu-item-selected{background-color:#2a1215}.ant-menu-inline .ant-menu-item-danger.ant-menu-item:after{border-right-color:#a61d24}.ant-menu-dark .ant-menu-item-danger.ant-menu-item,.ant-menu-dark .ant-menu-item-danger.ant-menu-item:hover,.ant-menu-dark .ant-menu-item-danger.ant-menu-item>a{color:#a61d24}.ant-menu-dark.ant-menu-dark:not(.ant-menu-horizontal) .ant-menu-item-danger.ant-menu-item-selected{background-color:#a61d24;color:#fff}.ant-menu{font-feature-settings:"tnum";background:#141414;box-shadow:0 3px 6px -4px rgba(0,0,0,.48),0 6px 16px 0 rgba(0,0,0,.32),0 9px 28px 8px rgba(0,0,0,.2);box-sizing:border-box;color:hsla(0,0%,100%,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;line-height:0;list-style:none;margin:0;outline:none;padding:0;text-align:left;transition:background .3s,width .3s cubic-bezier(.2,0,0,1) 0s}.ant-menu:after,.ant-menu:before{content:"";display:table}.ant-menu:after{clear:both}.ant-menu.ant-menu-root:focus-visible{box-shadow:0 0 0 2px #11263c}.ant-menu ol,.ant-menu ul{list-style:none;margin:0;padding:0}.ant-menu-overflow{display:flex}.ant-menu-overflow-item{flex:none}.ant-menu-hidden,.ant-menu-submenu-hidden{display:none}.ant-menu-item-group-title{color:hsla(0,0%,100%,.45);font-size:14px;height:1.5715;line-height:1.5715;padding:8px 16px;transition:all .3s}.ant-menu-horizontal .ant-menu-submenu{transition:border-color .3s cubic-bezier(.645,.045,.355,1),background .3s cubic-bezier(.645,.045,.355,1)}.ant-menu-submenu,.ant-menu-submenu-inline{transition:border-color .3s cubic-bezier(.645,.045,.355,1),background .3s cubic-bezier(.645,.045,.355,1),padding .15s cubic-bezier(.645,.045,.355,1)}.ant-menu-submenu-selected{color:#177ddc}.ant-menu-item:active,.ant-menu-submenu-title:active{background:#111b26}.ant-menu-submenu .ant-menu-sub{cursor:auto;transition:background .3s cubic-bezier(.645,.045,.355,1),padding .3s cubic-bezier(.645,.045,.355,1)}.ant-menu-title-content{transition:color .3s}.ant-menu-item a{color:hsla(0,0%,100%,.85)}.ant-menu-item a:hover{color:#177ddc}.ant-menu-item a:before{background-color:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-menu-item>.ant-badge a{color:hsla(0,0%,100%,.85)}.ant-menu-item>.ant-badge a:hover{color:#177ddc}.ant-menu-item-divider{border:solid #303030;border-width:1px 0 0;line-height:0;overflow:hidden}.ant-menu-item-divider-dashed{border-style:dashed}.ant-menu-horizontal .ant-menu-item,.ant-menu-horizontal .ant-menu-submenu{margin-top:-1px}.ant-menu-horizontal>.ant-menu-item-active,.ant-menu-horizontal>.ant-menu-item:hover,.ant-menu-horizontal>.ant-menu-submenu .ant-menu-submenu-title:hover{background-color:transparent}.ant-menu-item-selected,.ant-menu-item-selected a,.ant-menu-item-selected a:hover{color:#177ddc}.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-selected{background-color:#111b26}.ant-menu-inline,.ant-menu-vertical,.ant-menu-vertical-left{border-right:1px solid #303030}.ant-menu-vertical-right{border-left:1px solid #303030}.ant-menu-vertical-left.ant-menu-sub,.ant-menu-vertical-right.ant-menu-sub,.ant-menu-vertical.ant-menu-sub{border-right:0;max-height:calc(100vh - 100px);min-width:160px;overflow:hidden;padding:0}.ant-menu-vertical-left.ant-menu-sub:not([class*=-active]),.ant-menu-vertical-right.ant-menu-sub:not([class*=-active]),.ant-menu-vertical.ant-menu-sub:not([class*=-active]){overflow-x:hidden;overflow-y:auto}.ant-menu-vertical-left.ant-menu-sub .ant-menu-item,.ant-menu-vertical-right.ant-menu-sub .ant-menu-item,.ant-menu-vertical.ant-menu-sub .ant-menu-item{border-right:0;left:0;margin-left:0}.ant-menu-vertical-left.ant-menu-sub .ant-menu-item:after,.ant-menu-vertical-right.ant-menu-sub .ant-menu-item:after,.ant-menu-vertical.ant-menu-sub .ant-menu-item:after{border-right:0}.ant-menu-vertical-left.ant-menu-sub>.ant-menu-item,.ant-menu-vertical-left.ant-menu-sub>.ant-menu-submenu,.ant-menu-vertical-right.ant-menu-sub>.ant-menu-item,.ant-menu-vertical-right.ant-menu-sub>.ant-menu-submenu,.ant-menu-vertical.ant-menu-sub>.ant-menu-item,.ant-menu-vertical.ant-menu-sub>.ant-menu-submenu{transform-origin:0 0}.ant-menu-horizontal.ant-menu-sub{min-width:114px}.ant-menu-horizontal .ant-menu-item,.ant-menu-horizontal .ant-menu-submenu-title{transition:border-color .3s,background .3s}.ant-menu-item,.ant-menu-submenu-title{cursor:pointer;display:block;margin:0;padding:0 20px;position:relative;transition:border-color .3s,background .3s,padding .3s cubic-bezier(.645,.045,.355,1);white-space:nowrap}.ant-menu-item .ant-menu-item-icon,.ant-menu-item .anticon,.ant-menu-submenu-title .ant-menu-item-icon,.ant-menu-submenu-title .anticon{font-size:14px;min-width:14px;transition:font-size .15s cubic-bezier(.215,.61,.355,1),margin .3s cubic-bezier(.645,.045,.355,1),color .3s}.ant-menu-item .ant-menu-item-icon+span,.ant-menu-item .anticon+span,.ant-menu-submenu-title .ant-menu-item-icon+span,.ant-menu-submenu-title .anticon+span{margin-left:10px;opacity:1;transition:opacity .3s cubic-bezier(.645,.045,.355,1),margin .3s,color .3s}.ant-menu-item .ant-menu-item-icon.svg,.ant-menu-submenu-title .ant-menu-item-icon.svg{vertical-align:-.125em}.ant-menu-item.ant-menu-item-only-child>.ant-menu-item-icon,.ant-menu-item.ant-menu-item-only-child>.anticon,.ant-menu-submenu-title.ant-menu-item-only-child>.ant-menu-item-icon,.ant-menu-submenu-title.ant-menu-item-only-child>.anticon{margin-right:0}.ant-menu-item:focus-visible,.ant-menu-submenu-title:focus-visible{box-shadow:0 0 0 2px #11263c}.ant-menu>.ant-menu-item-divider{margin:1px 0;padding:0}.ant-menu-submenu-popup{background:transparent;border-radius:2px;box-shadow:none;position:absolute;transform-origin:0 0;z-index:1050}.ant-menu-submenu-popup:before{bottom:0;content:" ";height:100%;left:0;opacity:.0001;position:absolute;right:0;top:-7px;width:100%;z-index:-1}.ant-menu-submenu-placement-rightTop:before{left:-7px;top:0}.ant-menu-submenu>.ant-menu{background-color:#141414;border-radius:2px}.ant-menu-submenu>.ant-menu-submenu-title:after{transition:transform .3s cubic-bezier(.645,.045,.355,1)}.ant-menu-submenu-popup>.ant-menu{background-color:#1f1f1f}.ant-menu-submenu-arrow,.ant-menu-submenu-expand-icon{color:hsla(0,0%,100%,.85);position:absolute;right:16px;top:50%;transform:translateY(-50%);transition:transform .3s cubic-bezier(.645,.045,.355,1);width:10px}.ant-menu-submenu-arrow:after,.ant-menu-submenu-arrow:before{background-color:currentcolor;border-radius:2px;content:"";height:1.5px;position:absolute;transition:background .3s cubic-bezier(.645,.045,.355,1),transform .3s cubic-bezier(.645,.045,.355,1),top .3s cubic-bezier(.645,.045,.355,1),color .3s cubic-bezier(.645,.045,.355,1);width:6px}.ant-menu-submenu-arrow:before{transform:rotate(45deg) translateY(-2.5px)}.ant-menu-submenu-arrow:after{transform:rotate(-45deg) translateY(2.5px)}.ant-menu-submenu:hover>.ant-menu-submenu-title>.ant-menu-submenu-arrow,.ant-menu-submenu:hover>.ant-menu-submenu-title>.ant-menu-submenu-expand-icon{color:#177ddc}.ant-menu-inline-collapsed .ant-menu-submenu-arrow:before,.ant-menu-submenu-inline .ant-menu-submenu-arrow:before{transform:rotate(-45deg) translateX(2.5px)}.ant-menu-inline-collapsed .ant-menu-submenu-arrow:after,.ant-menu-submenu-inline .ant-menu-submenu-arrow:after{transform:rotate(45deg) translateX(-2.5px)}.ant-menu-submenu-horizontal .ant-menu-submenu-arrow{display:none}.ant-menu-submenu-open.ant-menu-submenu-inline>.ant-menu-submenu-title>.ant-menu-submenu-arrow{transform:translateY(-2px)}.ant-menu-submenu-open.ant-menu-submenu-inline>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after{transform:rotate(-45deg) translateX(-2.5px)}.ant-menu-submenu-open.ant-menu-submenu-inline>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before{transform:rotate(45deg) translateX(2.5px)}.ant-menu-vertical .ant-menu-submenu-selected,.ant-menu-vertical-left .ant-menu-submenu-selected,.ant-menu-vertical-right .ant-menu-submenu-selected{color:#177ddc}.ant-menu-horizontal{border:0;border-bottom:1px solid #303030;box-shadow:none;line-height:46px}.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-item,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-submenu{margin-bottom:0;margin-top:-1px;padding:0 20px}.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-item-active,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-item-open,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-item-selected,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-item:hover,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-submenu-active,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-submenu-open,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-submenu-selected,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-submenu:hover{color:#177ddc}.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-item-active:after,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-item-open:after,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-item-selected:after,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-item:hover:after,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-submenu-active:after,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-submenu-open:after,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-submenu-selected:after,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-submenu:hover:after{border-bottom:2px solid #177ddc}.ant-menu-horizontal>.ant-menu-item,.ant-menu-horizontal>.ant-menu-submenu{display:inline-block;position:relative;top:1px;vertical-align:bottom}.ant-menu-horizontal>.ant-menu-item:after,.ant-menu-horizontal>.ant-menu-submenu:after{border-bottom:2px solid transparent;bottom:0;content:"";left:20px;position:absolute;right:20px;transition:border-color .3s cubic-bezier(.645,.045,.355,1)}.ant-menu-horizontal>.ant-menu-submenu>.ant-menu-submenu-title{padding:0}.ant-menu-horizontal>.ant-menu-item a{color:hsla(0,0%,100%,.85)}.ant-menu-horizontal>.ant-menu-item a:hover{color:#177ddc}.ant-menu-horizontal>.ant-menu-item a:before{bottom:-2px}.ant-menu-horizontal>.ant-menu-item-selected a{color:#177ddc}.ant-menu-horizontal:after{clear:both;content:"\\20";display:block;height:0}.ant-menu-inline .ant-menu-item,.ant-menu-vertical .ant-menu-item,.ant-menu-vertical-left .ant-menu-item,.ant-menu-vertical-right .ant-menu-item{position:relative}.ant-menu-inline .ant-menu-item:after,.ant-menu-vertical .ant-menu-item:after,.ant-menu-vertical-left .ant-menu-item:after,.ant-menu-vertical-right .ant-menu-item:after{border-right:3px solid #177ddc;bottom:0;content:"";opacity:0;position:absolute;right:0;top:0;transform:scaleY(.0001);transition:transform .15s cubic-bezier(.215,.61,.355,1),opacity .15s cubic-bezier(.215,.61,.355,1)}.ant-menu-inline .ant-menu-item,.ant-menu-inline .ant-menu-submenu-title,.ant-menu-vertical .ant-menu-item,.ant-menu-vertical .ant-menu-submenu-title,.ant-menu-vertical-left .ant-menu-item,.ant-menu-vertical-left .ant-menu-submenu-title,.ant-menu-vertical-right .ant-menu-item,.ant-menu-vertical-right .ant-menu-submenu-title{height:40px;line-height:40px;margin-bottom:4px;margin-top:4px;overflow:hidden;padding:0 16px;text-overflow:ellipsis}.ant-menu-inline .ant-menu-submenu,.ant-menu-vertical .ant-menu-submenu,.ant-menu-vertical-left .ant-menu-submenu,.ant-menu-vertical-right .ant-menu-submenu{padding-bottom:.02px}.ant-menu-inline .ant-menu-item:not(:last-child),.ant-menu-vertical .ant-menu-item:not(:last-child),.ant-menu-vertical-left .ant-menu-item:not(:last-child),.ant-menu-vertical-right .ant-menu-item:not(:last-child){margin-bottom:8px}.ant-menu-inline>.ant-menu-item,.ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title,.ant-menu-vertical-left>.ant-menu-item,.ant-menu-vertical-left>.ant-menu-submenu>.ant-menu-submenu-title,.ant-menu-vertical-right>.ant-menu-item,.ant-menu-vertical-right>.ant-menu-submenu>.ant-menu-submenu-title,.ant-menu-vertical>.ant-menu-item,.ant-menu-vertical>.ant-menu-submenu>.ant-menu-submenu-title{height:40px;line-height:40px}.ant-menu-vertical .ant-menu-item-group-list .ant-menu-submenu-title,.ant-menu-vertical .ant-menu-submenu-title{padding-right:34px}.ant-menu-inline{width:100%}.ant-menu-inline .ant-menu-item-selected:after,.ant-menu-inline .ant-menu-selected:after{opacity:1;transform:scaleY(1);transition:transform .15s cubic-bezier(.645,.045,.355,1),opacity .15s cubic-bezier(.645,.045,.355,1)}.ant-menu-inline .ant-menu-item,.ant-menu-inline .ant-menu-submenu-title{width:calc(100% + 1px)}.ant-menu-inline .ant-menu-item-group-list .ant-menu-submenu-title,.ant-menu-inline .ant-menu-submenu-title{padding-right:34px}.ant-menu-inline.ant-menu-root .ant-menu-item,.ant-menu-inline.ant-menu-root .ant-menu-submenu-title{align-items:center;display:flex;transition:border-color .3s,background .3s,padding .1s cubic-bezier(.215,.61,.355,1)}.ant-menu-inline.ant-menu-root .ant-menu-item>.ant-menu-title-content,.ant-menu-inline.ant-menu-root .ant-menu-submenu-title>.ant-menu-title-content{flex:auto;min-width:0;overflow:hidden;text-overflow:ellipsis}.ant-menu-inline.ant-menu-root .ant-menu-item>*,.ant-menu-inline.ant-menu-root .ant-menu-submenu-title>*{flex:none}.ant-menu.ant-menu-inline-collapsed{width:80px}.ant-menu.ant-menu-inline-collapsed>.ant-menu-item,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-item,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-submenu>.ant-menu-submenu-title,.ant-menu.ant-menu-inline-collapsed>.ant-menu-submenu>.ant-menu-submenu-title{left:0;padding:0 calc(50% - 8px);text-overflow:clip}.ant-menu.ant-menu-inline-collapsed>.ant-menu-item .ant-menu-submenu-arrow,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-item .ant-menu-submenu-arrow,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-submenu-arrow,.ant-menu.ant-menu-inline-collapsed>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-submenu-arrow{opacity:0}.ant-menu.ant-menu-inline-collapsed>.ant-menu-item .ant-menu-item-icon,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item .anticon,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-item .ant-menu-item-icon,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-item .anticon,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-item-icon,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-submenu>.ant-menu-submenu-title .anticon,.ant-menu.ant-menu-inline-collapsed>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-item-icon,.ant-menu.ant-menu-inline-collapsed>.ant-menu-submenu>.ant-menu-submenu-title .anticon{font-size:16px;line-height:40px;margin:0}.ant-menu.ant-menu-inline-collapsed>.ant-menu-item .ant-menu-item-icon+span,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item .anticon+span,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-item .ant-menu-item-icon+span,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-item .anticon+span,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-item-icon+span,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-submenu>.ant-menu-submenu-title .anticon+span,.ant-menu.ant-menu-inline-collapsed>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-item-icon+span,.ant-menu.ant-menu-inline-collapsed>.ant-menu-submenu>.ant-menu-submenu-title .anticon+span{display:inline-block;opacity:0}.ant-menu.ant-menu-inline-collapsed .ant-menu-item-icon,.ant-menu.ant-menu-inline-collapsed .anticon{display:inline-block}.ant-menu.ant-menu-inline-collapsed-tooltip{pointer-events:none}.ant-menu.ant-menu-inline-collapsed-tooltip .ant-menu-item-icon,.ant-menu.ant-menu-inline-collapsed-tooltip .anticon{display:none}.ant-menu.ant-menu-inline-collapsed-tooltip a{color:hsla(0,0%,100%,.85)}.ant-menu.ant-menu-inline-collapsed .ant-menu-item-group-title{overflow:hidden;padding-left:4px;padding-right:4px;text-overflow:ellipsis;white-space:nowrap}.ant-menu-item-group-list{margin:0;padding:0}.ant-menu-item-group-list .ant-menu-item,.ant-menu-item-group-list .ant-menu-submenu-title{padding:0 16px 0 28px}.ant-menu-root.ant-menu-inline,.ant-menu-root.ant-menu-vertical,.ant-menu-root.ant-menu-vertical-left,.ant-menu-root.ant-menu-vertical-right{box-shadow:none}.ant-menu-root.ant-menu-inline-collapsed .ant-menu-item>.ant-menu-inline-collapsed-noicon,.ant-menu-root.ant-menu-inline-collapsed .ant-menu-submenu .ant-menu-submenu-title>.ant-menu-inline-collapsed-noicon{font-size:16px;text-align:center}.ant-menu-sub.ant-menu-inline{background:hsla(0,0%,100%,.04);border-radius:0;box-shadow:none;padding:0}.ant-menu-sub.ant-menu-inline>.ant-menu-item,.ant-menu-sub.ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title{height:40px;line-height:40px;list-style-position:inside;list-style-type:disc}.ant-menu-sub.ant-menu-inline .ant-menu-item-group-title{padding-left:32px}.ant-menu-item-disabled,.ant-menu-submenu-disabled{background:none;color:hsla(0,0%,100%,.3)!important;cursor:not-allowed}.ant-menu-item-disabled:after,.ant-menu-submenu-disabled:after{border-color:transparent!important}.ant-menu-item-disabled a,.ant-menu-submenu-disabled a{color:hsla(0,0%,100%,.3)!important;pointer-events:none}.ant-menu-item-disabled>.ant-menu-submenu-title,.ant-menu-submenu-disabled>.ant-menu-submenu-title{color:hsla(0,0%,100%,.3)!important;cursor:not-allowed}.ant-menu-item-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-item-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before,.ant-menu-submenu-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-submenu-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before{background:hsla(0,0%,100%,.3)!important}.ant-layout-header .ant-menu{line-height:inherit}.ant-menu-inline-collapsed-tooltip a,.ant-menu-inline-collapsed-tooltip a:hover{color:#fff}.ant-menu-light .ant-menu-item-active,.ant-menu-light .ant-menu-item:hover,.ant-menu-light .ant-menu-submenu-active,.ant-menu-light .ant-menu-submenu-title:hover,.ant-menu-light .ant-menu:not(.ant-menu-inline) .ant-menu-submenu-open{color:#177ddc}.ant-menu.ant-menu-root:focus-visible{box-shadow:0 0 0 2px #388ed3}.ant-menu-dark .ant-menu-item:focus-visible,.ant-menu-dark .ant-menu-submenu-title:focus-visible{box-shadow:0 0 0 2px #388ed3}.ant-menu-dark .ant-menu-sub,.ant-menu.ant-menu-dark,.ant-menu.ant-menu-dark .ant-menu-sub{background:#1f1f1f;color:hsla(0,0%,100%,.65)}.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow,.ant-menu.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow,.ant-menu.ant-menu-dark .ant-menu-submenu-title .ant-menu-submenu-arrow{opacity:.45;transition:all .3s}.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow:before,.ant-menu.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow:after,.ant-menu.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow:before,.ant-menu.ant-menu-dark .ant-menu-submenu-title .ant-menu-submenu-arrow:after,.ant-menu.ant-menu-dark .ant-menu-submenu-title .ant-menu-submenu-arrow:before{background:#fff}.ant-menu-dark.ant-menu-submenu-popup{background:transparent}.ant-menu-dark .ant-menu-inline.ant-menu-sub{background:#141414}.ant-menu-dark.ant-menu-horizontal{border-bottom:0}.ant-menu-dark.ant-menu-horizontal>.ant-menu-item,.ant-menu-dark.ant-menu-horizontal>.ant-menu-submenu{border-color:#1f1f1f;border-bottom:0;margin-top:0;padding:0 20px;top:0}.ant-menu-dark.ant-menu-horizontal>.ant-menu-item:hover{background-color:#177ddc}.ant-menu-dark.ant-menu-horizontal>.ant-menu-item>a:before{bottom:0}.ant-menu-dark .ant-menu-item,.ant-menu-dark .ant-menu-item-group-title,.ant-menu-dark .ant-menu-item>a,.ant-menu-dark .ant-menu-item>span>a{color:hsla(0,0%,100%,.65)}.ant-menu-dark.ant-menu-inline,.ant-menu-dark.ant-menu-vertical,.ant-menu-dark.ant-menu-vertical-left,.ant-menu-dark.ant-menu-vertical-right{border-right:0}.ant-menu-dark.ant-menu-inline .ant-menu-item,.ant-menu-dark.ant-menu-vertical .ant-menu-item,.ant-menu-dark.ant-menu-vertical-left .ant-menu-item,.ant-menu-dark.ant-menu-vertical-right .ant-menu-item{border-right:0;left:0;margin-left:0}.ant-menu-dark.ant-menu-inline .ant-menu-item:after,.ant-menu-dark.ant-menu-vertical .ant-menu-item:after,.ant-menu-dark.ant-menu-vertical-left .ant-menu-item:after,.ant-menu-dark.ant-menu-vertical-right .ant-menu-item:after{border-right:0}.ant-menu-dark.ant-menu-inline .ant-menu-item,.ant-menu-dark.ant-menu-inline .ant-menu-submenu-title{width:100%}.ant-menu-dark .ant-menu-item-active,.ant-menu-dark .ant-menu-item:hover,.ant-menu-dark .ant-menu-submenu-active,.ant-menu-dark .ant-menu-submenu-open,.ant-menu-dark .ant-menu-submenu-selected,.ant-menu-dark .ant-menu-submenu-title:hover{background-color:transparent;color:#fff}.ant-menu-dark .ant-menu-item-active>a,.ant-menu-dark .ant-menu-item-active>span>a,.ant-menu-dark .ant-menu-item:hover>a,.ant-menu-dark .ant-menu-item:hover>span>a,.ant-menu-dark .ant-menu-submenu-active>a,.ant-menu-dark .ant-menu-submenu-active>span>a,.ant-menu-dark .ant-menu-submenu-open>a,.ant-menu-dark .ant-menu-submenu-open>span>a,.ant-menu-dark .ant-menu-submenu-selected>a,.ant-menu-dark .ant-menu-submenu-selected>span>a,.ant-menu-dark .ant-menu-submenu-title:hover>a,.ant-menu-dark .ant-menu-submenu-title:hover>span>a{color:#fff}.ant-menu-dark .ant-menu-item-active>.ant-menu-submenu-title>.ant-menu-submenu-arrow,.ant-menu-dark .ant-menu-item:hover>.ant-menu-submenu-title>.ant-menu-submenu-arrow,.ant-menu-dark .ant-menu-submenu-active>.ant-menu-submenu-title>.ant-menu-submenu-arrow,.ant-menu-dark .ant-menu-submenu-open>.ant-menu-submenu-title>.ant-menu-submenu-arrow,.ant-menu-dark .ant-menu-submenu-selected>.ant-menu-submenu-title>.ant-menu-submenu-arrow,.ant-menu-dark .ant-menu-submenu-title:hover>.ant-menu-submenu-title>.ant-menu-submenu-arrow{opacity:1}.ant-menu-dark .ant-menu-item-active>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-item-active>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before,.ant-menu-dark .ant-menu-item:hover>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-item:hover>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before,.ant-menu-dark .ant-menu-submenu-active>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-submenu-active>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before,.ant-menu-dark .ant-menu-submenu-open>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-submenu-open>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before,.ant-menu-dark .ant-menu-submenu-selected>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-submenu-selected>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before,.ant-menu-dark .ant-menu-submenu-title:hover>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-submenu-title:hover>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before{background:#fff}.ant-menu-dark .ant-menu-item:hover{background-color:transparent}.ant-menu-dark.ant-menu-dark:not(.ant-menu-horizontal) .ant-menu-item-selected{background-color:#177ddc}.ant-menu-dark .ant-menu-item-selected{border-right:0;color:#fff}.ant-menu-dark .ant-menu-item-selected:after{border-right:0}.ant-menu-dark .ant-menu-item-selected .ant-menu-item-icon,.ant-menu-dark .ant-menu-item-selected .ant-menu-item-icon+span,.ant-menu-dark .ant-menu-item-selected .anticon,.ant-menu-dark .ant-menu-item-selected .anticon+span,.ant-menu-dark .ant-menu-item-selected>a,.ant-menu-dark .ant-menu-item-selected>a:hover,.ant-menu-dark .ant-menu-item-selected>span>a,.ant-menu-dark .ant-menu-item-selected>span>a:hover{color:#fff}.ant-menu-submenu-popup.ant-menu-dark .ant-menu-item-selected,.ant-menu.ant-menu-dark .ant-menu-item-selected{background-color:#177ddc}.ant-menu-dark .ant-menu-item-disabled,.ant-menu-dark .ant-menu-item-disabled>a,.ant-menu-dark .ant-menu-item-disabled>span>a,.ant-menu-dark .ant-menu-submenu-disabled,.ant-menu-dark .ant-menu-submenu-disabled>a,.ant-menu-dark .ant-menu-submenu-disabled>span>a{color:hsla(0,0%,100%,.3)!important;opacity:.8}.ant-menu-dark .ant-menu-item-disabled>.ant-menu-submenu-title,.ant-menu-dark .ant-menu-submenu-disabled>.ant-menu-submenu-title{color:hsla(0,0%,100%,.3)!important}.ant-menu-dark .ant-menu-item-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-item-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before,.ant-menu-dark .ant-menu-submenu-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-submenu-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before{background:hsla(0,0%,100%,.3)!important}.ant-menu.ant-menu-rtl{direction:rtl;text-align:right}.ant-menu-rtl .ant-menu-item-group-title{text-align:right}.ant-menu-rtl.ant-menu-inline,.ant-menu-rtl.ant-menu-vertical{border-left:1px solid #303030;border-right:none}.ant-menu-rtl.ant-menu-dark.ant-menu-inline,.ant-menu-rtl.ant-menu-dark.ant-menu-vertical{border-left:none}.ant-menu-rtl.ant-menu-vertical-left.ant-menu-sub>.ant-menu-item,.ant-menu-rtl.ant-menu-vertical-left.ant-menu-sub>.ant-menu-submenu,.ant-menu-rtl.ant-menu-vertical-right.ant-menu-sub>.ant-menu-item,.ant-menu-rtl.ant-menu-vertical-right.ant-menu-sub>.ant-menu-submenu,.ant-menu-rtl.ant-menu-vertical.ant-menu-sub>.ant-menu-item,.ant-menu-rtl.ant-menu-vertical.ant-menu-sub>.ant-menu-submenu{transform-origin:top right}.ant-menu-rtl .ant-menu-item .ant-menu-item-icon,.ant-menu-rtl .ant-menu-item .anticon,.ant-menu-rtl .ant-menu-submenu-title .ant-menu-item-icon,.ant-menu-rtl .ant-menu-submenu-title .anticon{margin-left:10px;margin-right:auto}.ant-menu-rtl .ant-menu-item.ant-menu-item-only-child>.ant-menu-item-icon,.ant-menu-rtl .ant-menu-item.ant-menu-item-only-child>.anticon,.ant-menu-rtl .ant-menu-submenu-title.ant-menu-item-only-child>.ant-menu-item-icon,.ant-menu-rtl .ant-menu-submenu-title.ant-menu-item-only-child>.anticon{margin-left:0}.ant-menu-submenu-rtl.ant-menu-submenu-popup{transform-origin:100% 0}.ant-menu-rtl .ant-menu-submenu-inline>.ant-menu-submenu-title .ant-menu-submenu-arrow,.ant-menu-rtl .ant-menu-submenu-vertical-left>.ant-menu-submenu-title .ant-menu-submenu-arrow,.ant-menu-rtl .ant-menu-submenu-vertical-right>.ant-menu-submenu-title .ant-menu-submenu-arrow,.ant-menu-rtl .ant-menu-submenu-vertical>.ant-menu-submenu-title .ant-menu-submenu-arrow{left:16px;right:auto}.ant-menu-rtl .ant-menu-submenu-vertical-left>.ant-menu-submenu-title .ant-menu-submenu-arrow:before,.ant-menu-rtl .ant-menu-submenu-vertical-right>.ant-menu-submenu-title .ant-menu-submenu-arrow:before,.ant-menu-rtl .ant-menu-submenu-vertical>.ant-menu-submenu-title .ant-menu-submenu-arrow:before{transform:rotate(-45deg) translateY(-2px)}.ant-menu-rtl .ant-menu-submenu-vertical-left>.ant-menu-submenu-title .ant-menu-submenu-arrow:after,.ant-menu-rtl .ant-menu-submenu-vertical-right>.ant-menu-submenu-title .ant-menu-submenu-arrow:after,.ant-menu-rtl .ant-menu-submenu-vertical>.ant-menu-submenu-title .ant-menu-submenu-arrow:after{transform:rotate(45deg) translateY(2px)}.ant-menu-rtl.ant-menu-inline .ant-menu-item:after,.ant-menu-rtl.ant-menu-vertical .ant-menu-item:after,.ant-menu-rtl.ant-menu-vertical-left .ant-menu-item:after,.ant-menu-rtl.ant-menu-vertical-right .ant-menu-item:after{left:0;right:auto}.ant-menu-rtl.ant-menu-inline .ant-menu-item,.ant-menu-rtl.ant-menu-inline .ant-menu-submenu-title,.ant-menu-rtl.ant-menu-vertical .ant-menu-item,.ant-menu-rtl.ant-menu-vertical .ant-menu-submenu-title,.ant-menu-rtl.ant-menu-vertical-left .ant-menu-item,.ant-menu-rtl.ant-menu-vertical-left .ant-menu-submenu-title,.ant-menu-rtl.ant-menu-vertical-right .ant-menu-item,.ant-menu-rtl.ant-menu-vertical-right .ant-menu-submenu-title{text-align:right}.ant-menu-rtl.ant-menu-inline .ant-menu-submenu-title{padding-left:34px;padding-right:0}.ant-menu-rtl.ant-menu-vertical .ant-menu-submenu-title{padding-left:34px;padding-right:16px}.ant-menu-rtl.ant-menu-inline-collapsed.ant-menu-vertical .ant-menu-submenu-title{padding:0 calc(50% - 8px)}.ant-menu-rtl .ant-menu-item-group-list .ant-menu-item,.ant-menu-rtl .ant-menu-item-group-list .ant-menu-submenu-title{padding:0 28px 0 16px}.ant-menu-sub.ant-menu-inline{border:0}.ant-menu-rtl.ant-menu-sub.ant-menu-inline .ant-menu-item-group-title{padding-left:0;padding-right:32px}.ant-tooltip{font-feature-settings:"tnum";box-sizing:border-box;color:hsla(0,0%,100%,.85);display:block;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;max-width:250px;padding:0;position:absolute;visibility:visible;width:-webkit-max-content;width:-moz-max-content;width:max-content;z-index:1070}.ant-tooltip-hidden{display:none}.ant-tooltip-placement-top,.ant-tooltip-placement-topLeft,.ant-tooltip-placement-topRight{padding-bottom:8px}.ant-tooltip-placement-right,.ant-tooltip-placement-rightBottom,.ant-tooltip-placement-rightTop{padding-left:8px}.ant-tooltip-placement-bottom,.ant-tooltip-placement-bottomLeft,.ant-tooltip-placement-bottomRight{padding-top:8px}.ant-tooltip-placement-left,.ant-tooltip-placement-leftBottom,.ant-tooltip-placement-leftTop{padding-right:8px}.ant-tooltip-inner{word-wrap:break-word;background-color:#434343;border-radius:2px;box-shadow:0 3px 6px -4px rgba(0,0,0,.48),0 6px 16px 0 rgba(0,0,0,.32),0 9px 28px 8px rgba(0,0,0,.2);color:#fff;min-height:32px;min-width:30px;padding:6px 8px;text-align:left;text-decoration:none}.ant-tooltip-arrow{background:transparent;display:block;height:13.07106781px;overflow:hidden;pointer-events:none;position:absolute;width:13.07106781px}.ant-tooltip-arrow-content{background-color:#434343;bottom:0;content:"";display:block;height:5px;left:0;margin:auto;pointer-events:auto;position:absolute;right:0;top:0;width:5px}.ant-tooltip-placement-top .ant-tooltip-arrow,.ant-tooltip-placement-topLeft .ant-tooltip-arrow,.ant-tooltip-placement-topRight .ant-tooltip-arrow{bottom:-5.07106781px}.ant-tooltip-placement-top .ant-tooltip-arrow-content,.ant-tooltip-placement-topLeft .ant-tooltip-arrow-content,.ant-tooltip-placement-topRight .ant-tooltip-arrow-content{box-shadow:3px 3px 7px rgba(0,0,0,.07);transform:translateY(-6.53553391px) rotate(45deg)}.ant-tooltip-placement-top .ant-tooltip-arrow{left:50%;transform:translateX(-50%)}.ant-tooltip-placement-topLeft .ant-tooltip-arrow{left:13px}.ant-tooltip-placement-topRight .ant-tooltip-arrow{right:13px}.ant-tooltip-placement-right .ant-tooltip-arrow,.ant-tooltip-placement-rightBottom .ant-tooltip-arrow,.ant-tooltip-placement-rightTop .ant-tooltip-arrow{left:-5.07106781px}.ant-tooltip-placement-right .ant-tooltip-arrow-content,.ant-tooltip-placement-rightBottom .ant-tooltip-arrow-content,.ant-tooltip-placement-rightTop .ant-tooltip-arrow-content{box-shadow:-3px 3px 7px rgba(0,0,0,.07);transform:translateX(6.53553391px) rotate(45deg)}.ant-tooltip-placement-right .ant-tooltip-arrow{top:50%;transform:translateY(-50%)}.ant-tooltip-placement-rightTop .ant-tooltip-arrow{top:5px}.ant-tooltip-placement-rightBottom .ant-tooltip-arrow{bottom:5px}.ant-tooltip-placement-left .ant-tooltip-arrow,.ant-tooltip-placement-leftBottom .ant-tooltip-arrow,.ant-tooltip-placement-leftTop .ant-tooltip-arrow{right:-5.07106781px}.ant-tooltip-placement-left .ant-tooltip-arrow-content,.ant-tooltip-placement-leftBottom .ant-tooltip-arrow-content,.ant-tooltip-placement-leftTop .ant-tooltip-arrow-content{box-shadow:3px -3px 7px rgba(0,0,0,.07);transform:translateX(-6.53553391px) rotate(45deg)}.ant-tooltip-placement-left .ant-tooltip-arrow{top:50%;transform:translateY(-50%)}.ant-tooltip-placement-leftTop .ant-tooltip-arrow{top:5px}.ant-tooltip-placement-leftBottom .ant-tooltip-arrow{bottom:5px}.ant-tooltip-placement-bottom .ant-tooltip-arrow,.ant-tooltip-placement-bottomLeft .ant-tooltip-arrow,.ant-tooltip-placement-bottomRight .ant-tooltip-arrow{top:-5.07106781px}.ant-tooltip-placement-bottom .ant-tooltip-arrow-content,.ant-tooltip-placement-bottomLeft .ant-tooltip-arrow-content,.ant-tooltip-placement-bottomRight .ant-tooltip-arrow-content{box-shadow:-3px -3px 7px rgba(0,0,0,.07);transform:translateY(6.53553391px) rotate(45deg)}.ant-tooltip-placement-bottom .ant-tooltip-arrow{left:50%;transform:translateX(-50%)}.ant-tooltip-placement-bottomLeft .ant-tooltip-arrow{left:13px}.ant-tooltip-placement-bottomRight .ant-tooltip-arrow{right:13px}.ant-tooltip-magenta .ant-tooltip-arrow-content,.ant-tooltip-magenta .ant-tooltip-inner,.ant-tooltip-pink .ant-tooltip-arrow-content,.ant-tooltip-pink .ant-tooltip-inner{background-color:#cb2b83}.ant-tooltip-red .ant-tooltip-arrow-content,.ant-tooltip-red .ant-tooltip-inner{background-color:#d32029}.ant-tooltip-volcano .ant-tooltip-arrow-content,.ant-tooltip-volcano .ant-tooltip-inner{background-color:#d84a1b}.ant-tooltip-orange .ant-tooltip-arrow-content,.ant-tooltip-orange .ant-tooltip-inner{background-color:#d87a16}.ant-tooltip-yellow .ant-tooltip-arrow-content,.ant-tooltip-yellow .ant-tooltip-inner{background-color:#d8bd14}.ant-tooltip-gold .ant-tooltip-arrow-content,.ant-tooltip-gold .ant-tooltip-inner{background-color:#d89614}.ant-tooltip-cyan .ant-tooltip-arrow-content,.ant-tooltip-cyan .ant-tooltip-inner{background-color:#13a8a8}.ant-tooltip-lime .ant-tooltip-arrow-content,.ant-tooltip-lime .ant-tooltip-inner{background-color:#8bbb11}.ant-tooltip-green .ant-tooltip-arrow-content,.ant-tooltip-green .ant-tooltip-inner{background-color:#49aa19}.ant-tooltip-blue .ant-tooltip-arrow-content,.ant-tooltip-blue .ant-tooltip-inner{background-color:#177ddc}.ant-tooltip-geekblue .ant-tooltip-arrow-content,.ant-tooltip-geekblue .ant-tooltip-inner{background-color:#2b4acb}.ant-tooltip-purple .ant-tooltip-arrow-content,.ant-tooltip-purple .ant-tooltip-inner{background-color:#642ab5}.ant-tooltip-rtl{direction:rtl}.ant-tooltip-rtl .ant-tooltip-inner{text-align:right}.ant-dropdown-menu-item.ant-dropdown-menu-item-danger{color:#a61d24}.ant-dropdown-menu-item.ant-dropdown-menu-item-danger:hover{background-color:#a61d24;color:#fff}.ant-dropdown{font-feature-settings:"tnum";box-sizing:border-box;color:hsla(0,0%,100%,.85);display:block;font-size:14px;font-variant:tabular-nums;left:-9999px;line-height:1.5715;list-style:none;margin:0;padding:0;position:absolute;top:-9999px;z-index:1050}.ant-dropdown:before{bottom:-4px;content:" ";left:-7px;opacity:.0001;position:absolute;right:0;top:-4px;z-index:-9999}.ant-dropdown-wrap{position:relative}.ant-dropdown-wrap .ant-btn>.anticon-down{font-size:10px}.ant-dropdown-wrap .anticon-down:before{transition:transform .2s}.ant-dropdown-wrap-open .anticon-down:before{transform:rotate(180deg)}.ant-dropdown-hidden,.ant-dropdown-menu-hidden,.ant-dropdown-menu-submenu-hidden{display:none}.ant-dropdown-show-arrow.ant-dropdown-placement-topCenter,.ant-dropdown-show-arrow.ant-dropdown-placement-topLeft,.ant-dropdown-show-arrow.ant-dropdown-placement-topRight{padding-bottom:10px}.ant-dropdown-show-arrow.ant-dropdown-placement-bottomCenter,.ant-dropdown-show-arrow.ant-dropdown-placement-bottomLeft,.ant-dropdown-show-arrow.ant-dropdown-placement-bottomRight{padding-top:10px}.ant-dropdown-arrow{background:transparent;border-style:solid;border-width:4.24264069px;display:block;height:8.48528137px;position:absolute;transform:rotate(45deg);width:8.48528137px;z-index:1}.ant-dropdown-placement-topCenter>.ant-dropdown-arrow,.ant-dropdown-placement-topLeft>.ant-dropdown-arrow,.ant-dropdown-placement-topRight>.ant-dropdown-arrow{border-color:transparent #1f1f1f #1f1f1f transparent;bottom:6.2px;box-shadow:3px 3px 7px rgba(0,0,0,.07)}.ant-dropdown-placement-topCenter>.ant-dropdown-arrow{left:50%;transform:translateX(-50%) rotate(45deg)}.ant-dropdown-placement-topLeft>.ant-dropdown-arrow{left:16px}.ant-dropdown-placement-topRight>.ant-dropdown-arrow{right:16px}.ant-dropdown-placement-bottomCenter>.ant-dropdown-arrow,.ant-dropdown-placement-bottomLeft>.ant-dropdown-arrow,.ant-dropdown-placement-bottomRight>.ant-dropdown-arrow{border-color:#1f1f1f transparent transparent #1f1f1f;box-shadow:-2px -2px 5px rgba(0,0,0,.06);top:6px}.ant-dropdown-placement-bottomCenter>.ant-dropdown-arrow{left:50%;transform:translateX(-50%) rotate(45deg)}.ant-dropdown-placement-bottomLeft>.ant-dropdown-arrow{left:16px}.ant-dropdown-placement-bottomRight>.ant-dropdown-arrow{right:16px}.ant-dropdown-menu{background-clip:padding-box;background-color:#1f1f1f;border-radius:2px;box-shadow:0 3px 6px -4px rgba(0,0,0,.48),0 6px 16px 0 rgba(0,0,0,.32),0 9px 28px 8px rgba(0,0,0,.2);list-style-type:none;margin:0;outline:none;padding:4px 0;position:relative;text-align:left}.ant-dropdown-menu-item-group-title{color:hsla(0,0%,100%,.45);padding:5px 12px;transition:all .3s}.ant-dropdown-menu-submenu-popup{background:transparent;box-shadow:none;position:absolute;transform-origin:0 0;z-index:1050}.ant-dropdown-menu-submenu-popup li,.ant-dropdown-menu-submenu-popup ul{list-style:none}.ant-dropdown-menu-submenu-popup ul{margin-left:.3em;margin-right:.3em}.ant-dropdown-menu-item{align-items:center;display:flex;position:relative}.ant-dropdown-menu-item-icon{font-size:12px;margin-right:8px;min-width:12px}.ant-dropdown-menu-title-content{flex:auto}.ant-dropdown-menu-title-content>a{color:inherit;transition:all .3s}.ant-dropdown-menu-title-content>a:hover{color:inherit}.ant-dropdown-menu-title-content>a:after{bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-dropdown-menu-item,.ant-dropdown-menu-submenu-title{clear:both;color:hsla(0,0%,100%,.85);cursor:pointer;font-size:14px;font-weight:400;line-height:22px;margin:0;padding:5px 12px;transition:all .3s}.ant-dropdown-menu-item-selected,.ant-dropdown-menu-submenu-title-selected{background-color:#111b26;color:#177ddc}.ant-dropdown-menu-item:hover,.ant-dropdown-menu-submenu-title:hover{background-color:hsla(0,0%,100%,.08)}.ant-dropdown-menu-item-disabled,.ant-dropdown-menu-submenu-title-disabled{color:hsla(0,0%,100%,.3);cursor:not-allowed}.ant-dropdown-menu-item-disabled:hover,.ant-dropdown-menu-submenu-title-disabled:hover{background-color:transparent;color:hsla(0,0%,100%,.3);cursor:not-allowed}.ant-dropdown-menu-item-disabled a,.ant-dropdown-menu-submenu-title-disabled a{pointer-events:none}.ant-dropdown-menu-item-divider,.ant-dropdown-menu-submenu-title-divider{background-color:#303030;height:1px;line-height:0;margin:4px 0;overflow:hidden}.ant-dropdown-menu-item .ant-dropdown-menu-submenu-expand-icon,.ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-expand-icon{position:absolute;right:8px}.ant-dropdown-menu-item .ant-dropdown-menu-submenu-expand-icon .ant-dropdown-menu-submenu-arrow-icon,.ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-expand-icon .ant-dropdown-menu-submenu-arrow-icon{color:hsla(0,0%,100%,.45);font-size:10px;font-style:normal;margin-right:0!important}.ant-dropdown-menu-item-group-list{list-style:none;margin:0 8px;padding:0}.ant-dropdown-menu-submenu-title{padding-right:24px}.ant-dropdown-menu-submenu-vertical{position:relative}.ant-dropdown-menu-submenu-vertical>.ant-dropdown-menu{left:100%;margin-left:4px;min-width:100%;position:absolute;top:0;transform-origin:0 0}.ant-dropdown-menu-submenu.ant-dropdown-menu-submenu-disabled .ant-dropdown-menu-submenu-title,.ant-dropdown-menu-submenu.ant-dropdown-menu-submenu-disabled .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-arrow-icon{background-color:transparent;color:hsla(0,0%,100%,.3);cursor:not-allowed}.ant-dropdown-menu-submenu-selected .ant-dropdown-menu-submenu-title{color:#177ddc}.ant-dropdown.ant-slide-down-appear.ant-slide-down-appear-active.ant-dropdown-placement-bottomCenter,.ant-dropdown.ant-slide-down-appear.ant-slide-down-appear-active.ant-dropdown-placement-bottomLeft,.ant-dropdown.ant-slide-down-appear.ant-slide-down-appear-active.ant-dropdown-placement-bottomRight,.ant-dropdown.ant-slide-down-enter.ant-slide-down-enter-active.ant-dropdown-placement-bottomCenter,.ant-dropdown.ant-slide-down-enter.ant-slide-down-enter-active.ant-dropdown-placement-bottomLeft,.ant-dropdown.ant-slide-down-enter.ant-slide-down-enter-active.ant-dropdown-placement-bottomRight{-webkit-animation-name:antSlideUpIn;animation-name:antSlideUpIn}.ant-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-dropdown-placement-topCenter,.ant-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-dropdown-placement-topLeft,.ant-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-dropdown-placement-topRight,.ant-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-dropdown-placement-topCenter,.ant-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-dropdown-placement-topLeft,.ant-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-dropdown-placement-topRight{-webkit-animation-name:antSlideDownIn;animation-name:antSlideDownIn}.ant-dropdown.ant-slide-down-leave.ant-slide-down-leave-active.ant-dropdown-placement-bottomCenter,.ant-dropdown.ant-slide-down-leave.ant-slide-down-leave-active.ant-dropdown-placement-bottomLeft,.ant-dropdown.ant-slide-down-leave.ant-slide-down-leave-active.ant-dropdown-placement-bottomRight{-webkit-animation-name:antSlideUpOut;animation-name:antSlideUpOut}.ant-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-dropdown-placement-topCenter,.ant-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-dropdown-placement-topLeft,.ant-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-dropdown-placement-topRight{-webkit-animation-name:antSlideDownOut;animation-name:antSlideDownOut}.ant-dropdown-button>.anticon.anticon-down,.ant-dropdown-link>.anticon.anticon-down,.ant-dropdown-trigger>.anticon.anticon-down{font-size:10px;vertical-align:baseline}.ant-dropdown-button{white-space:nowrap}.ant-dropdown-button.ant-btn-group>.ant-btn-loading,.ant-dropdown-button.ant-btn-group>.ant-btn-loading+.ant-btn{cursor:default;pointer-events:none}.ant-dropdown-button.ant-btn-group>.ant-btn-loading+.ant-btn:before{display:block}.ant-dropdown-button.ant-btn-group>.ant-btn:last-child:not(:first-child):not(.ant-btn-icon-only){padding-left:8px;padding-right:8px}.ant-dropdown-menu-dark,.ant-dropdown-menu-dark .ant-dropdown-menu{background:#1f1f1f}.ant-dropdown-menu-dark .ant-dropdown-menu-item,.ant-dropdown-menu-dark .ant-dropdown-menu-item .ant-dropdown-menu-submenu-arrow:after,.ant-dropdown-menu-dark .ant-dropdown-menu-item>.anticon+span>a,.ant-dropdown-menu-dark .ant-dropdown-menu-item>.anticon+span>a .ant-dropdown-menu-submenu-arrow:after,.ant-dropdown-menu-dark .ant-dropdown-menu-item>a,.ant-dropdown-menu-dark .ant-dropdown-menu-item>a .ant-dropdown-menu-submenu-arrow:after,.ant-dropdown-menu-dark .ant-dropdown-menu-submenu-title,.ant-dropdown-menu-dark .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-arrow:after{color:hsla(0,0%,100%,.65)}.ant-dropdown-menu-dark .ant-dropdown-menu-item:hover,.ant-dropdown-menu-dark .ant-dropdown-menu-item>.anticon+span>a:hover,.ant-dropdown-menu-dark .ant-dropdown-menu-item>a:hover,.ant-dropdown-menu-dark .ant-dropdown-menu-submenu-title:hover{background:transparent;color:#fff}.ant-dropdown-menu-dark .ant-dropdown-menu-item-selected,.ant-dropdown-menu-dark .ant-dropdown-menu-item-selected:hover,.ant-dropdown-menu-dark .ant-dropdown-menu-item-selected>a{background:#177ddc;color:#fff}.ant-dropdown-rtl{direction:rtl}.ant-dropdown-rtl.ant-dropdown:before{left:0;right:-7px}.ant-dropdown-menu-submenu-rtl .ant-dropdown-menu-item-group-title,.ant-dropdown-menu.ant-dropdown-menu-rtl,.ant-dropdown-rtl .ant-dropdown-menu-item-group-title{direction:rtl;text-align:right}.ant-dropdown-menu-submenu-popup.ant-dropdown-menu-submenu-rtl{transform-origin:100% 0}.ant-dropdown-rtl .ant-dropdown-menu-item,.ant-dropdown-rtl .ant-dropdown-menu-submenu-popup li,.ant-dropdown-rtl .ant-dropdown-menu-submenu-popup ul,.ant-dropdown-rtl .ant-dropdown-menu-submenu-title{text-align:right}.ant-dropdown-rtl .ant-dropdown-menu-item>.anticon:first-child,.ant-dropdown-rtl .ant-dropdown-menu-item>span>.anticon:first-child,.ant-dropdown-rtl .ant-dropdown-menu-submenu-title>.anticon:first-child,.ant-dropdown-rtl .ant-dropdown-menu-submenu-title>span>.anticon:first-child{margin-left:8px;margin-right:0}.ant-dropdown-rtl .ant-dropdown-menu-item .ant-dropdown-menu-submenu-expand-icon,.ant-dropdown-rtl .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-expand-icon{left:8px;right:auto}.ant-dropdown-rtl .ant-dropdown-menu-item .ant-dropdown-menu-submenu-expand-icon .ant-dropdown-menu-submenu-arrow-icon,.ant-dropdown-rtl .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-expand-icon .ant-dropdown-menu-submenu-arrow-icon{margin-left:0!important;transform:scaleX(-1)}.ant-dropdown-rtl .ant-dropdown-menu-submenu-title{padding-left:24px;padding-right:12px}.ant-dropdown-rtl .ant-dropdown-menu-submenu-vertical>.ant-dropdown-menu{left:0;margin-left:0;margin-right:4px;right:100%}.ant-btn{background-image:none;background:transparent;border:1px solid #434343;border-radius:2px;box-shadow:0 2px 0 rgba(0,0,0,.015);color:hsla(0,0%,100%,.85);cursor:pointer;display:inline-block;font-size:14px;font-weight:400;height:32px;line-height:1.5715;padding:4px 15px;position:relative;text-align:center;touch-action:manipulation;transition:all .3s cubic-bezier(.645,.045,.355,1);-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.ant-btn>.anticon{line-height:1}.ant-btn,.ant-btn:active,.ant-btn:focus{outline:0}.ant-btn:not([disabled]):hover{text-decoration:none}.ant-btn:not([disabled]):active{box-shadow:none;outline:0}.ant-btn[disabled]{cursor:not-allowed}.ant-btn[disabled]>*{pointer-events:none}.ant-btn-lg{border-radius:2px;font-size:16px;height:40px;padding:6.4px 15px}.ant-btn-sm{border-radius:2px;font-size:14px;height:24px;padding:0 7px}.ant-btn>a:only-child{color:currentcolor}.ant-btn>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn:focus,.ant-btn:hover{background:transparent;border-color:#165996;color:#165996}.ant-btn:focus>a:only-child,.ant-btn:hover>a:only-child{color:currentcolor}.ant-btn:focus>a:only-child:after,.ant-btn:hover>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn:active{background:transparent;border-color:#388ed3;color:#388ed3}.ant-btn:active>a:only-child{color:currentcolor}.ant-btn:active>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn[disabled],.ant-btn[disabled]:active,.ant-btn[disabled]:focus,.ant-btn[disabled]:hover{background:hsla(0,0%,100%,.08);border-color:#434343;box-shadow:none;color:hsla(0,0%,100%,.3);text-shadow:none}.ant-btn[disabled]:active>a:only-child,.ant-btn[disabled]:focus>a:only-child,.ant-btn[disabled]:hover>a:only-child,.ant-btn[disabled]>a:only-child{color:currentcolor}.ant-btn[disabled]:active>a:only-child:after,.ant-btn[disabled]:focus>a:only-child:after,.ant-btn[disabled]:hover>a:only-child:after,.ant-btn[disabled]>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn:active,.ant-btn:focus,.ant-btn:hover{background:transparent;text-decoration:none}.ant-btn>span{display:inline-block}.ant-btn-primary{background:#177ddc;border-color:#177ddc;box-shadow:0 2px 0 rgba(0,0,0,.045);color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.12)}.ant-btn-primary>a:only-child{color:currentcolor}.ant-btn-primary>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-primary:focus,.ant-btn-primary:hover{background:#095cb5;border-color:#095cb5;color:#fff}.ant-btn-primary:focus>a:only-child,.ant-btn-primary:hover>a:only-child{color:currentcolor}.ant-btn-primary:focus>a:only-child:after,.ant-btn-primary:hover>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-primary:active{background:#3c9be8;border-color:#3c9be8;color:#fff}.ant-btn-primary:active>a:only-child{color:currentcolor}.ant-btn-primary:active>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-primary[disabled],.ant-btn-primary[disabled]:active,.ant-btn-primary[disabled]:focus,.ant-btn-primary[disabled]:hover{background:hsla(0,0%,100%,.08);border-color:#434343;box-shadow:none;color:hsla(0,0%,100%,.3);text-shadow:none}.ant-btn-primary[disabled]:active>a:only-child,.ant-btn-primary[disabled]:focus>a:only-child,.ant-btn-primary[disabled]:hover>a:only-child,.ant-btn-primary[disabled]>a:only-child{color:currentcolor}.ant-btn-primary[disabled]:active>a:only-child:after,.ant-btn-primary[disabled]:focus>a:only-child:after,.ant-btn-primary[disabled]:hover>a:only-child:after,.ant-btn-primary[disabled]>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-group .ant-btn-primary:not(:first-child):not(:last-child){border-left-color:#165996;border-right-color:#165996}.ant-btn-group .ant-btn-primary:not(:first-child):not(:last-child):disabled{border-color:#434343}.ant-btn-group .ant-btn-primary:first-child:not(:last-child){border-right-color:#165996}.ant-btn-group .ant-btn-primary:first-child:not(:last-child)[disabled]{border-right-color:#434343}.ant-btn-group .ant-btn-primary+.ant-btn-primary,.ant-btn-group .ant-btn-primary:last-child:not(:first-child){border-left-color:#165996}.ant-btn-group .ant-btn-primary+.ant-btn-primary[disabled],.ant-btn-group .ant-btn-primary:last-child:not(:first-child)[disabled]{border-left-color:#434343}.ant-btn-ghost{background:transparent;border-color:#434343;color:hsla(0,0%,100%,.85)}.ant-btn-ghost>a:only-child{color:currentcolor}.ant-btn-ghost>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-ghost:focus,.ant-btn-ghost:hover{background:transparent;border-color:#165996;color:#165996}.ant-btn-ghost:focus>a:only-child,.ant-btn-ghost:hover>a:only-child{color:currentcolor}.ant-btn-ghost:focus>a:only-child:after,.ant-btn-ghost:hover>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-ghost:active{background:transparent;border-color:#388ed3;color:#388ed3}.ant-btn-ghost:active>a:only-child{color:currentcolor}.ant-btn-ghost:active>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-ghost[disabled],.ant-btn-ghost[disabled]:active,.ant-btn-ghost[disabled]:focus,.ant-btn-ghost[disabled]:hover{background:hsla(0,0%,100%,.08);border-color:#434343;box-shadow:none;color:hsla(0,0%,100%,.3);text-shadow:none}.ant-btn-ghost[disabled]:active>a:only-child,.ant-btn-ghost[disabled]:focus>a:only-child,.ant-btn-ghost[disabled]:hover>a:only-child,.ant-btn-ghost[disabled]>a:only-child{color:currentcolor}.ant-btn-ghost[disabled]:active>a:only-child:after,.ant-btn-ghost[disabled]:focus>a:only-child:after,.ant-btn-ghost[disabled]:hover>a:only-child:after,.ant-btn-ghost[disabled]>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-dashed{background:transparent;border-color:#434343;border-style:dashed;color:hsla(0,0%,100%,.85)}.ant-btn-dashed>a:only-child{color:currentcolor}.ant-btn-dashed>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-dashed:focus,.ant-btn-dashed:hover{background:transparent;border-color:#165996;color:#165996}.ant-btn-dashed:focus>a:only-child,.ant-btn-dashed:hover>a:only-child{color:currentcolor}.ant-btn-dashed:focus>a:only-child:after,.ant-btn-dashed:hover>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-dashed:active{background:transparent;border-color:#388ed3;color:#388ed3}.ant-btn-dashed:active>a:only-child{color:currentcolor}.ant-btn-dashed:active>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-dashed[disabled],.ant-btn-dashed[disabled]:active,.ant-btn-dashed[disabled]:focus,.ant-btn-dashed[disabled]:hover{background:hsla(0,0%,100%,.08);border-color:#434343;box-shadow:none;color:hsla(0,0%,100%,.3);text-shadow:none}.ant-btn-dashed[disabled]:active>a:only-child,.ant-btn-dashed[disabled]:focus>a:only-child,.ant-btn-dashed[disabled]:hover>a:only-child,.ant-btn-dashed[disabled]>a:only-child{color:currentcolor}.ant-btn-dashed[disabled]:active>a:only-child:after,.ant-btn-dashed[disabled]:focus>a:only-child:after,.ant-btn-dashed[disabled]:hover>a:only-child:after,.ant-btn-dashed[disabled]>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-danger{background:#a61d24;border-color:#a61d24;box-shadow:0 2px 0 rgba(0,0,0,.045);color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.12)}.ant-btn-danger>a:only-child{color:currentcolor}.ant-btn-danger>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-danger:focus,.ant-btn-danger:hover{background:#800f19;border-color:#800f19;color:#fff}.ant-btn-danger:focus>a:only-child,.ant-btn-danger:hover>a:only-child{color:currentcolor}.ant-btn-danger:focus>a:only-child:after,.ant-btn-danger:hover>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-danger:active{background:#b33b3d;border-color:#b33b3d;color:#fff}.ant-btn-danger:active>a:only-child{color:currentcolor}.ant-btn-danger:active>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-danger[disabled],.ant-btn-danger[disabled]:active,.ant-btn-danger[disabled]:focus,.ant-btn-danger[disabled]:hover{background:hsla(0,0%,100%,.08);border-color:#434343;box-shadow:none;color:hsla(0,0%,100%,.3);text-shadow:none}.ant-btn-danger[disabled]:active>a:only-child,.ant-btn-danger[disabled]:focus>a:only-child,.ant-btn-danger[disabled]:hover>a:only-child,.ant-btn-danger[disabled]>a:only-child{color:currentcolor}.ant-btn-danger[disabled]:active>a:only-child:after,.ant-btn-danger[disabled]:focus>a:only-child:after,.ant-btn-danger[disabled]:hover>a:only-child:after,.ant-btn-danger[disabled]>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-link{background:transparent;border-color:transparent;box-shadow:none;color:#177ddc}.ant-btn-link>a:only-child{color:currentcolor}.ant-btn-link>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-link:focus,.ant-btn-link:hover{background:transparent;border-color:#165996;color:#165996}.ant-btn-link:focus>a:only-child,.ant-btn-link:hover>a:only-child{color:currentcolor}.ant-btn-link:focus>a:only-child:after,.ant-btn-link:hover>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-link:active{background:transparent;border-color:#388ed3;color:#388ed3}.ant-btn-link:active>a:only-child{color:currentcolor}.ant-btn-link:active>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-link[disabled],.ant-btn-link[disabled]:active,.ant-btn-link[disabled]:focus,.ant-btn-link[disabled]:hover{background:hsla(0,0%,100%,.08);border-color:#434343}.ant-btn-link:hover{background:transparent}.ant-btn-link:active,.ant-btn-link:focus,.ant-btn-link:hover{border-color:transparent}.ant-btn-link[disabled],.ant-btn-link[disabled]:active,.ant-btn-link[disabled]:focus,.ant-btn-link[disabled]:hover{background:transparent;border-color:transparent;box-shadow:none;color:hsla(0,0%,100%,.3);text-shadow:none}.ant-btn-link[disabled]:active>a:only-child,.ant-btn-link[disabled]:focus>a:only-child,.ant-btn-link[disabled]:hover>a:only-child,.ant-btn-link[disabled]>a:only-child{color:currentcolor}.ant-btn-link[disabled]:active>a:only-child:after,.ant-btn-link[disabled]:focus>a:only-child:after,.ant-btn-link[disabled]:hover>a:only-child:after,.ant-btn-link[disabled]>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-text{background:transparent;border-color:transparent;box-shadow:none;color:hsla(0,0%,100%,.85)}.ant-btn-text>a:only-child{color:currentcolor}.ant-btn-text>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-text:focus,.ant-btn-text:hover{background:transparent;border-color:#165996;color:#165996}.ant-btn-text:focus>a:only-child,.ant-btn-text:hover>a:only-child{color:currentcolor}.ant-btn-text:focus>a:only-child:after,.ant-btn-text:hover>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-text:active{background:transparent;border-color:#388ed3;color:#388ed3}.ant-btn-text:active>a:only-child{color:currentcolor}.ant-btn-text:active>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-text[disabled],.ant-btn-text[disabled]:active,.ant-btn-text[disabled]:focus,.ant-btn-text[disabled]:hover{background:hsla(0,0%,100%,.08);border-color:#434343}.ant-btn-text:focus,.ant-btn-text:hover{background:hsla(0,0%,100%,.03);border-color:transparent;color:hsla(0,0%,100%,.85)}.ant-btn-text:active{background:hsla(0,0%,100%,.04);border-color:transparent;color:hsla(0,0%,100%,.85)}.ant-btn-text[disabled],.ant-btn-text[disabled]:active,.ant-btn-text[disabled]:focus,.ant-btn-text[disabled]:hover{background:transparent;border-color:transparent;box-shadow:none;color:hsla(0,0%,100%,.3);text-shadow:none}.ant-btn-text[disabled]:active>a:only-child,.ant-btn-text[disabled]:focus>a:only-child,.ant-btn-text[disabled]:hover>a:only-child,.ant-btn-text[disabled]>a:only-child{color:currentcolor}.ant-btn-text[disabled]:active>a:only-child:after,.ant-btn-text[disabled]:focus>a:only-child:after,.ant-btn-text[disabled]:hover>a:only-child:after,.ant-btn-text[disabled]>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-dangerous{background:transparent;border-color:#a61d24;color:#a61d24}.ant-btn-dangerous>a:only-child{color:currentcolor}.ant-btn-dangerous>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-dangerous:focus,.ant-btn-dangerous:hover{background:transparent;border-color:#800f19;color:#800f19}.ant-btn-dangerous:focus>a:only-child,.ant-btn-dangerous:hover>a:only-child{color:currentcolor}.ant-btn-dangerous:focus>a:only-child:after,.ant-btn-dangerous:hover>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-dangerous:active{background:transparent;border-color:#b33b3d;color:#b33b3d}.ant-btn-dangerous:active>a:only-child{color:currentcolor}.ant-btn-dangerous:active>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-dangerous[disabled],.ant-btn-dangerous[disabled]:active,.ant-btn-dangerous[disabled]:focus,.ant-btn-dangerous[disabled]:hover{background:hsla(0,0%,100%,.08);border-color:#434343;box-shadow:none;color:hsla(0,0%,100%,.3);text-shadow:none}.ant-btn-dangerous[disabled]:active>a:only-child,.ant-btn-dangerous[disabled]:focus>a:only-child,.ant-btn-dangerous[disabled]:hover>a:only-child,.ant-btn-dangerous[disabled]>a:only-child{color:currentcolor}.ant-btn-dangerous[disabled]:active>a:only-child:after,.ant-btn-dangerous[disabled]:focus>a:only-child:after,.ant-btn-dangerous[disabled]:hover>a:only-child:after,.ant-btn-dangerous[disabled]>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-dangerous.ant-btn-primary{background:#a61d24;border-color:#a61d24;box-shadow:0 2px 0 rgba(0,0,0,.045);color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.12)}.ant-btn-dangerous.ant-btn-primary>a:only-child{color:currentcolor}.ant-btn-dangerous.ant-btn-primary>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-dangerous.ant-btn-primary:focus,.ant-btn-dangerous.ant-btn-primary:hover{background:#800f19;border-color:#800f19;color:#fff}.ant-btn-dangerous.ant-btn-primary:focus>a:only-child,.ant-btn-dangerous.ant-btn-primary:hover>a:only-child{color:currentcolor}.ant-btn-dangerous.ant-btn-primary:focus>a:only-child:after,.ant-btn-dangerous.ant-btn-primary:hover>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-dangerous.ant-btn-primary:active{background:#b33b3d;border-color:#b33b3d;color:#fff}.ant-btn-dangerous.ant-btn-primary:active>a:only-child{color:currentcolor}.ant-btn-dangerous.ant-btn-primary:active>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-dangerous.ant-btn-primary[disabled],.ant-btn-dangerous.ant-btn-primary[disabled]:active,.ant-btn-dangerous.ant-btn-primary[disabled]:focus,.ant-btn-dangerous.ant-btn-primary[disabled]:hover{background:hsla(0,0%,100%,.08);border-color:#434343;box-shadow:none;color:hsla(0,0%,100%,.3);text-shadow:none}.ant-btn-dangerous.ant-btn-primary[disabled]:active>a:only-child,.ant-btn-dangerous.ant-btn-primary[disabled]:focus>a:only-child,.ant-btn-dangerous.ant-btn-primary[disabled]:hover>a:only-child,.ant-btn-dangerous.ant-btn-primary[disabled]>a:only-child{color:currentcolor}.ant-btn-dangerous.ant-btn-primary[disabled]:active>a:only-child:after,.ant-btn-dangerous.ant-btn-primary[disabled]:focus>a:only-child:after,.ant-btn-dangerous.ant-btn-primary[disabled]:hover>a:only-child:after,.ant-btn-dangerous.ant-btn-primary[disabled]>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-dangerous.ant-btn-link{background:transparent;border-color:transparent;box-shadow:none;color:#a61d24}.ant-btn-dangerous.ant-btn-link>a:only-child{color:currentcolor}.ant-btn-dangerous.ant-btn-link>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-dangerous.ant-btn-link:focus,.ant-btn-dangerous.ant-btn-link:hover{border-color:#165996;color:#165996}.ant-btn-dangerous.ant-btn-link:active{border-color:#388ed3;color:#388ed3}.ant-btn-dangerous.ant-btn-link[disabled],.ant-btn-dangerous.ant-btn-link[disabled]:active,.ant-btn-dangerous.ant-btn-link[disabled]:focus,.ant-btn-dangerous.ant-btn-link[disabled]:hover{background:hsla(0,0%,100%,.08);border-color:#434343}.ant-btn-dangerous.ant-btn-link:focus,.ant-btn-dangerous.ant-btn-link:hover{background:transparent;border-color:transparent;color:#800f19}.ant-btn-dangerous.ant-btn-link:focus>a:only-child,.ant-btn-dangerous.ant-btn-link:hover>a:only-child{color:currentcolor}.ant-btn-dangerous.ant-btn-link:focus>a:only-child:after,.ant-btn-dangerous.ant-btn-link:hover>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-dangerous.ant-btn-link:active{background:transparent;border-color:transparent;color:#b33b3d}.ant-btn-dangerous.ant-btn-link:active>a:only-child{color:currentcolor}.ant-btn-dangerous.ant-btn-link:active>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-dangerous.ant-btn-link[disabled],.ant-btn-dangerous.ant-btn-link[disabled]:active,.ant-btn-dangerous.ant-btn-link[disabled]:focus,.ant-btn-dangerous.ant-btn-link[disabled]:hover{background:transparent;border-color:transparent;box-shadow:none;color:hsla(0,0%,100%,.3);text-shadow:none}.ant-btn-dangerous.ant-btn-link[disabled]:active>a:only-child,.ant-btn-dangerous.ant-btn-link[disabled]:focus>a:only-child,.ant-btn-dangerous.ant-btn-link[disabled]:hover>a:only-child,.ant-btn-dangerous.ant-btn-link[disabled]>a:only-child{color:currentcolor}.ant-btn-dangerous.ant-btn-link[disabled]:active>a:only-child:after,.ant-btn-dangerous.ant-btn-link[disabled]:focus>a:only-child:after,.ant-btn-dangerous.ant-btn-link[disabled]:hover>a:only-child:after,.ant-btn-dangerous.ant-btn-link[disabled]>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-dangerous.ant-btn-text{background:transparent;border-color:transparent;box-shadow:none;color:#a61d24}.ant-btn-dangerous.ant-btn-text>a:only-child{color:currentcolor}.ant-btn-dangerous.ant-btn-text>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-dangerous.ant-btn-text:focus,.ant-btn-dangerous.ant-btn-text:hover{background:transparent;border-color:#165996;color:#165996}.ant-btn-dangerous.ant-btn-text:active{background:transparent;border-color:#388ed3;color:#388ed3}.ant-btn-dangerous.ant-btn-text[disabled],.ant-btn-dangerous.ant-btn-text[disabled]:active,.ant-btn-dangerous.ant-btn-text[disabled]:focus,.ant-btn-dangerous.ant-btn-text[disabled]:hover{background:hsla(0,0%,100%,.08);border-color:#434343}.ant-btn-dangerous.ant-btn-text:focus,.ant-btn-dangerous.ant-btn-text:hover{background:hsla(0,0%,100%,.03);border-color:transparent;color:#800f19}.ant-btn-dangerous.ant-btn-text:focus>a:only-child,.ant-btn-dangerous.ant-btn-text:hover>a:only-child{color:currentcolor}.ant-btn-dangerous.ant-btn-text:focus>a:only-child:after,.ant-btn-dangerous.ant-btn-text:hover>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-dangerous.ant-btn-text:active{background:hsla(0,0%,100%,.04);border-color:transparent;color:#b33b3d}.ant-btn-dangerous.ant-btn-text:active>a:only-child{color:currentcolor}.ant-btn-dangerous.ant-btn-text:active>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-dangerous.ant-btn-text[disabled],.ant-btn-dangerous.ant-btn-text[disabled]:active,.ant-btn-dangerous.ant-btn-text[disabled]:focus,.ant-btn-dangerous.ant-btn-text[disabled]:hover{background:transparent;border-color:transparent;box-shadow:none;color:hsla(0,0%,100%,.3);text-shadow:none}.ant-btn-dangerous.ant-btn-text[disabled]:active>a:only-child,.ant-btn-dangerous.ant-btn-text[disabled]:focus>a:only-child,.ant-btn-dangerous.ant-btn-text[disabled]:hover>a:only-child,.ant-btn-dangerous.ant-btn-text[disabled]>a:only-child{color:currentcolor}.ant-btn-dangerous.ant-btn-text[disabled]:active>a:only-child:after,.ant-btn-dangerous.ant-btn-text[disabled]:focus>a:only-child:after,.ant-btn-dangerous.ant-btn-text[disabled]:hover>a:only-child:after,.ant-btn-dangerous.ant-btn-text[disabled]>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-icon-only{border-radius:2px;font-size:16px;height:32px;padding:2.4px 0;vertical-align:-3px;width:32px}.ant-btn-icon-only>*{font-size:16px}.ant-btn-icon-only.ant-btn-lg{border-radius:2px;font-size:18px;height:40px;padding:4.9px 0;width:40px}.ant-btn-icon-only.ant-btn-lg>*{font-size:18px}.ant-btn-icon-only.ant-btn-sm{border-radius:2px;font-size:14px;height:24px;padding:0;width:24px}.ant-btn-icon-only.ant-btn-sm>*{font-size:14px}.ant-btn-icon-only>.anticon{display:flex;justify-content:center}a.ant-btn-icon-only{vertical-align:-1px}a.ant-btn-icon-only>.anticon{display:inline}.ant-btn-round{border-radius:32px;font-size:14px;height:32px;padding:4px 16px}.ant-btn-round.ant-btn-lg{border-radius:40px;font-size:16px;height:40px;padding:6.4px 20px}.ant-btn-round.ant-btn-sm{border-radius:24px;font-size:14px;height:24px;padding:0 12px}.ant-btn-round.ant-btn-icon-only{width:auto}.ant-btn-circle{border-radius:50%;min-width:32px;padding-left:0;padding-right:0;text-align:center}.ant-btn-circle.ant-btn-lg{border-radius:50%;min-width:40px}.ant-btn-circle.ant-btn-sm{border-radius:50%;min-width:24px}.ant-btn:before{background:#141414;border-radius:inherit;bottom:-1px;content:"";display:none;left:-1px;opacity:.35;pointer-events:none;position:absolute;right:-1px;top:-1px;transition:opacity .2s;z-index:1}.ant-btn .anticon{transition:margin-left .3s cubic-bezier(.645,.045,.355,1)}.ant-btn .anticon.anticon-minus>svg,.ant-btn .anticon.anticon-plus>svg{shape-rendering:optimizespeed}.ant-btn.ant-btn-loading{cursor:default;position:relative}.ant-btn.ant-btn-loading:before{display:block}.ant-btn>.ant-btn-loading-icon{transition:width .3s cubic-bezier(.645,.045,.355,1),opacity .3s cubic-bezier(.645,.045,.355,1)}.ant-btn>.ant-btn-loading-icon .anticon{-webkit-animation:none;animation:none;padding-right:8px}.ant-btn>.ant-btn-loading-icon .anticon svg{-webkit-animation:loadingCircle 1s linear infinite;animation:loadingCircle 1s linear infinite}.ant-btn-group{display:inline-flex}.ant-btn-group,.ant-btn-group>.ant-btn,.ant-btn-group>span>.ant-btn{position:relative}.ant-btn-group>.ant-btn:active,.ant-btn-group>.ant-btn:focus,.ant-btn-group>.ant-btn:hover,.ant-btn-group>span>.ant-btn:active,.ant-btn-group>span>.ant-btn:focus,.ant-btn-group>span>.ant-btn:hover{z-index:2}.ant-btn-group>.ant-btn[disabled],.ant-btn-group>span>.ant-btn[disabled]{z-index:0}.ant-btn-group .ant-btn-icon-only{font-size:14px}.ant-btn-group-lg>.ant-btn,.ant-btn-group-lg>span>.ant-btn{border-radius:0;font-size:16px;height:40px;padding:6.4px 15px}.ant-btn-group-lg .ant-btn.ant-btn-icon-only{height:40px;padding-left:0;padding-right:0;width:40px}.ant-btn-group-sm>.ant-btn,.ant-btn-group-sm>span>.ant-btn{border-radius:0;font-size:14px;height:24px;padding:0 7px}.ant-btn-group-sm>.ant-btn>.anticon,.ant-btn-group-sm>span>.ant-btn>.anticon{font-size:14px}.ant-btn-group-sm .ant-btn.ant-btn-icon-only{height:24px;padding-left:0;padding-right:0;width:24px}.ant-btn+.ant-btn-group,.ant-btn-group .ant-btn+.ant-btn,.ant-btn-group .ant-btn+span,.ant-btn-group span+.ant-btn,.ant-btn-group+.ant-btn,.ant-btn-group+.ant-btn-group,.ant-btn-group>span+span{margin-left:-1px}.ant-btn-group .ant-btn-primary+.ant-btn:not(.ant-btn-primary):not([disabled]){border-left-color:transparent}.ant-btn-group .ant-btn{border-radius:0}.ant-btn-group>.ant-btn:first-child,.ant-btn-group>span:first-child>.ant-btn{margin-left:0}.ant-btn-group>.ant-btn:only-child,.ant-btn-group>span:only-child>.ant-btn{border-radius:2px}.ant-btn-group>.ant-btn:first-child:not(:last-child),.ant-btn-group>span:first-child:not(:last-child)>.ant-btn{border-bottom-left-radius:2px;border-top-left-radius:2px}.ant-btn-group>.ant-btn:last-child:not(:first-child),.ant-btn-group>span:last-child:not(:first-child)>.ant-btn{border-bottom-right-radius:2px;border-top-right-radius:2px}.ant-btn-group-sm>.ant-btn:only-child,.ant-btn-group-sm>span:only-child>.ant-btn{border-radius:2px}.ant-btn-group-sm>.ant-btn:first-child:not(:last-child),.ant-btn-group-sm>span:first-child:not(:last-child)>.ant-btn{border-bottom-left-radius:2px;border-top-left-radius:2px}.ant-btn-group-sm>.ant-btn:last-child:not(:first-child),.ant-btn-group-sm>span:last-child:not(:first-child)>.ant-btn{border-bottom-right-radius:2px;border-top-right-radius:2px}.ant-btn-group>.ant-btn-group{float:left}.ant-btn-group>.ant-btn-group:not(:first-child):not(:last-child)>.ant-btn{border-radius:0}.ant-btn-group>.ant-btn-group:first-child:not(:last-child)>.ant-btn:last-child{border-bottom-right-radius:0;border-top-right-radius:0;padding-right:8px}.ant-btn-group>.ant-btn-group:last-child:not(:first-child)>.ant-btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0;padding-left:8px}.ant-btn-group-rtl.ant-btn+.ant-btn-group,.ant-btn-group-rtl.ant-btn-group .ant-btn+.ant-btn,.ant-btn-group-rtl.ant-btn-group .ant-btn+span,.ant-btn-group-rtl.ant-btn-group span+.ant-btn,.ant-btn-group-rtl.ant-btn-group+.ant-btn,.ant-btn-group-rtl.ant-btn-group+.ant-btn-group,.ant-btn-group-rtl.ant-btn-group>span+span,.ant-btn-rtl.ant-btn+.ant-btn-group,.ant-btn-rtl.ant-btn-group .ant-btn+.ant-btn,.ant-btn-rtl.ant-btn-group .ant-btn+span,.ant-btn-rtl.ant-btn-group span+.ant-btn,.ant-btn-rtl.ant-btn-group+.ant-btn,.ant-btn-rtl.ant-btn-group+.ant-btn-group,.ant-btn-rtl.ant-btn-group>span+span{margin-left:auto;margin-right:-1px}.ant-btn-group.ant-btn-group-rtl{direction:rtl}.ant-btn-group-rtl.ant-btn-group>.ant-btn:first-child:not(:last-child),.ant-btn-group-rtl.ant-btn-group>span:first-child:not(:last-child)>.ant-btn{border-radius:0 2px 2px 0}.ant-btn-group-rtl.ant-btn-group>.ant-btn:last-child:not(:first-child),.ant-btn-group-rtl.ant-btn-group>span:last-child:not(:first-child)>.ant-btn{border-radius:2px 0 0 2px}.ant-btn-group-rtl.ant-btn-group-sm>.ant-btn:first-child:not(:last-child),.ant-btn-group-rtl.ant-btn-group-sm>span:first-child:not(:last-child)>.ant-btn{border-radius:0 2px 2px 0}.ant-btn-group-rtl.ant-btn-group-sm>.ant-btn:last-child:not(:first-child),.ant-btn-group-rtl.ant-btn-group-sm>span:last-child:not(:first-child)>.ant-btn{border-radius:2px 0 0 2px}.ant-btn:active>span,.ant-btn:focus>span{position:relative}.ant-btn>.anticon+span,.ant-btn>span+.anticon{margin-left:8px}.ant-btn.ant-btn-background-ghost{border-color:hsla(0,0%,100%,.25);color:hsla(0,0%,100%,.85)}.ant-btn.ant-btn-background-ghost,.ant-btn.ant-btn-background-ghost:active,.ant-btn.ant-btn-background-ghost:focus,.ant-btn.ant-btn-background-ghost:hover{background:transparent}.ant-btn.ant-btn-background-ghost:focus,.ant-btn.ant-btn-background-ghost:hover{border-color:#3c9be8;color:#3c9be8}.ant-btn.ant-btn-background-ghost:active{border-color:#095cb5;color:#095cb5}.ant-btn.ant-btn-background-ghost[disabled]{background:transparent;border-color:#434343;color:hsla(0,0%,100%,.3)}.ant-btn-background-ghost.ant-btn-primary{border-color:#177ddc;color:#177ddc;text-shadow:none}.ant-btn-background-ghost.ant-btn-primary>a:only-child{color:currentcolor}.ant-btn-background-ghost.ant-btn-primary>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-background-ghost.ant-btn-primary:focus,.ant-btn-background-ghost.ant-btn-primary:hover{border-color:#095cb5;color:#095cb5}.ant-btn-background-ghost.ant-btn-primary:focus>a:only-child,.ant-btn-background-ghost.ant-btn-primary:hover>a:only-child{color:currentcolor}.ant-btn-background-ghost.ant-btn-primary:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-primary:hover>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-background-ghost.ant-btn-primary:active{border-color:#3c9be8;color:#3c9be8}.ant-btn-background-ghost.ant-btn-primary:active>a:only-child{color:currentcolor}.ant-btn-background-ghost.ant-btn-primary:active>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-background-ghost.ant-btn-primary[disabled],.ant-btn-background-ghost.ant-btn-primary[disabled]:active,.ant-btn-background-ghost.ant-btn-primary[disabled]:focus,.ant-btn-background-ghost.ant-btn-primary[disabled]:hover{background:hsla(0,0%,100%,.08);border-color:#434343;box-shadow:none;color:hsla(0,0%,100%,.3);text-shadow:none}.ant-btn-background-ghost.ant-btn-primary[disabled]:active>a:only-child,.ant-btn-background-ghost.ant-btn-primary[disabled]:focus>a:only-child,.ant-btn-background-ghost.ant-btn-primary[disabled]:hover>a:only-child,.ant-btn-background-ghost.ant-btn-primary[disabled]>a:only-child{color:currentcolor}.ant-btn-background-ghost.ant-btn-primary[disabled]:active>a:only-child:after,.ant-btn-background-ghost.ant-btn-primary[disabled]:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-primary[disabled]:hover>a:only-child:after,.ant-btn-background-ghost.ant-btn-primary[disabled]>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-background-ghost.ant-btn-danger{border-color:#a61d24;color:#a61d24;text-shadow:none}.ant-btn-background-ghost.ant-btn-danger>a:only-child{color:currentcolor}.ant-btn-background-ghost.ant-btn-danger>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-background-ghost.ant-btn-danger:focus,.ant-btn-background-ghost.ant-btn-danger:hover{border-color:#800f19;color:#800f19}.ant-btn-background-ghost.ant-btn-danger:focus>a:only-child,.ant-btn-background-ghost.ant-btn-danger:hover>a:only-child{color:currentcolor}.ant-btn-background-ghost.ant-btn-danger:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-danger:hover>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-background-ghost.ant-btn-danger:active{border-color:#b33b3d;color:#b33b3d}.ant-btn-background-ghost.ant-btn-danger:active>a:only-child{color:currentcolor}.ant-btn-background-ghost.ant-btn-danger:active>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-background-ghost.ant-btn-danger[disabled],.ant-btn-background-ghost.ant-btn-danger[disabled]:active,.ant-btn-background-ghost.ant-btn-danger[disabled]:focus,.ant-btn-background-ghost.ant-btn-danger[disabled]:hover{background:hsla(0,0%,100%,.08);border-color:#434343;box-shadow:none;color:hsla(0,0%,100%,.3);text-shadow:none}.ant-btn-background-ghost.ant-btn-danger[disabled]:active>a:only-child,.ant-btn-background-ghost.ant-btn-danger[disabled]:focus>a:only-child,.ant-btn-background-ghost.ant-btn-danger[disabled]:hover>a:only-child,.ant-btn-background-ghost.ant-btn-danger[disabled]>a:only-child{color:currentcolor}.ant-btn-background-ghost.ant-btn-danger[disabled]:active>a:only-child:after,.ant-btn-background-ghost.ant-btn-danger[disabled]:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-danger[disabled]:hover>a:only-child:after,.ant-btn-background-ghost.ant-btn-danger[disabled]>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-background-ghost.ant-btn-dangerous{border-color:#a61d24;color:#a61d24;text-shadow:none}.ant-btn-background-ghost.ant-btn-dangerous>a:only-child{color:currentcolor}.ant-btn-background-ghost.ant-btn-dangerous>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-background-ghost.ant-btn-dangerous:focus,.ant-btn-background-ghost.ant-btn-dangerous:hover{border-color:#800f19;color:#800f19}.ant-btn-background-ghost.ant-btn-dangerous:focus>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous:hover>a:only-child{color:currentcolor}.ant-btn-background-ghost.ant-btn-dangerous:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous:hover>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-background-ghost.ant-btn-dangerous:active{border-color:#b33b3d;color:#b33b3d}.ant-btn-background-ghost.ant-btn-dangerous:active>a:only-child{color:currentcolor}.ant-btn-background-ghost.ant-btn-dangerous:active>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-background-ghost.ant-btn-dangerous[disabled],.ant-btn-background-ghost.ant-btn-dangerous[disabled]:active,.ant-btn-background-ghost.ant-btn-dangerous[disabled]:focus,.ant-btn-background-ghost.ant-btn-dangerous[disabled]:hover{background:hsla(0,0%,100%,.08);border-color:#434343;box-shadow:none;color:hsla(0,0%,100%,.3);text-shadow:none}.ant-btn-background-ghost.ant-btn-dangerous[disabled]:active>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous[disabled]:focus>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous[disabled]:hover>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous[disabled]>a:only-child{color:currentcolor}.ant-btn-background-ghost.ant-btn-dangerous[disabled]:active>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous[disabled]:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous[disabled]:hover>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous[disabled]>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link{border-color:transparent;color:#a61d24;text-shadow:none}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link>a:only-child{color:currentcolor}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:focus,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:hover{border-color:transparent;color:#800f19}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:focus>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:hover>a:only-child{color:currentcolor}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:hover>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:active{border-color:transparent;color:#b33b3d}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:active>a:only-child{color:currentcolor}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:active>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled],.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:active,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:focus,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:hover{background:hsla(0,0%,100%,.08);border-color:#434343;box-shadow:none;color:hsla(0,0%,100%,.3);text-shadow:none}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:active>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:focus>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:hover>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]>a:only-child{color:currentcolor}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:active>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:hover>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]>a:only-child:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.ant-btn-two-chinese-chars:first-letter{letter-spacing:.34em}.ant-btn-two-chinese-chars>:not(.anticon){letter-spacing:.34em;margin-right:-.34em}.ant-btn.ant-btn-block{width:100%}.ant-btn:empty{content:"\\a0";display:inline-block;visibility:hidden;width:0}a.ant-btn{line-height:30px;padding-top:.01px!important}a.ant-btn-lg{line-height:38px}a.ant-btn-sm{line-height:22px}.ant-btn-rtl{direction:rtl}.ant-btn-group-rtl.ant-btn-group .ant-btn-primary+.ant-btn-primary,.ant-btn-group-rtl.ant-btn-group .ant-btn-primary:last-child:not(:first-child){border-left-color:#434343;border-right-color:#165996}.ant-btn-group-rtl.ant-btn-group .ant-btn-primary+.ant-btn-primary[disabled],.ant-btn-group-rtl.ant-btn-group .ant-btn-primary:last-child:not(:first-child)[disabled]{border-left-color:#165996;border-right-color:#434343}.ant-btn-rtl.ant-btn>.ant-btn-loading-icon .anticon{padding-left:8px;padding-right:0}.ant-btn>.ant-btn-loading-icon:only-child .anticon{padding-left:0;padding-right:0}.ant-btn-rtl.ant-btn>.anticon+span,.ant-btn-rtl.ant-btn>span+.anticon{margin-left:0;margin-right:8px}.ant-picker-calendar{font-feature-settings:"tnum";background:#141414;box-sizing:border-box;color:hsla(0,0%,100%,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0}.ant-picker-calendar-header{display:flex;justify-content:flex-end;padding:12px 0}.ant-picker-calendar-header .ant-picker-calendar-year-select{min-width:80px}.ant-picker-calendar-header .ant-picker-calendar-month-select{margin-left:8px;min-width:70px}.ant-picker-calendar-header .ant-picker-calendar-mode-switch{margin-left:8px}.ant-picker-calendar .ant-picker-panel{background:#141414;border:0;border-radius:0;border-top:1px solid #303030}.ant-picker-calendar .ant-picker-panel .ant-picker-date-panel,.ant-picker-calendar .ant-picker-panel .ant-picker-month-panel{width:auto}.ant-picker-calendar .ant-picker-panel .ant-picker-body{padding:8px 0}.ant-picker-calendar .ant-picker-panel .ant-picker-content{width:100%}.ant-picker-calendar-mini{border-radius:2px}.ant-picker-calendar-mini .ant-picker-calendar-header{padding-left:8px;padding-right:8px}.ant-picker-calendar-mini .ant-picker-panel{border-radius:0 0 2px 2px}.ant-picker-calendar-mini .ant-picker-content{height:256px}.ant-picker-calendar-mini .ant-picker-content th{height:auto;line-height:18px;padding:0}.ant-picker-calendar-full .ant-picker-panel{background:#141414;border:0;display:block;text-align:right;width:100%}.ant-picker-calendar-full .ant-picker-panel .ant-picker-body td,.ant-picker-calendar-full .ant-picker-panel .ant-picker-body th{padding:0}.ant-picker-calendar-full .ant-picker-panel .ant-picker-body th{height:auto;line-height:18px;padding:0 12px 5px 0}.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell:before{display:none}.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell:hover .ant-picker-calendar-date{background:hsla(0,0%,100%,.08)}.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell .ant-picker-calendar-date-today:before{display:none}.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell-selected .ant-picker-calendar-date,.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell-selected .ant-picker-calendar-date-today,.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell-selected:hover .ant-picker-calendar-date,.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell-selected:hover .ant-picker-calendar-date-today{background:#111b26}.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell-selected .ant-picker-calendar-date .ant-picker-calendar-date-value,.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell-selected .ant-picker-calendar-date-today .ant-picker-calendar-date-value,.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell-selected:hover .ant-picker-calendar-date .ant-picker-calendar-date-value,.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell-selected:hover .ant-picker-calendar-date-today .ant-picker-calendar-date-value{color:#177ddc}.ant-picker-calendar-full .ant-picker-panel .ant-picker-calendar-date{border:0;border-radius:0;border-top:2px solid #303030;display:block;height:auto;margin:0 4px;padding:4px 8px 0;transition:background .3s;width:auto}.ant-picker-calendar-full .ant-picker-panel .ant-picker-calendar-date-value{line-height:24px;transition:color .3s}.ant-picker-calendar-full .ant-picker-panel .ant-picker-calendar-date-content{color:hsla(0,0%,100%,.85);height:86px;line-height:1.5715;overflow-y:auto;position:static;text-align:left;width:auto}.ant-picker-calendar-full .ant-picker-panel .ant-picker-calendar-date-today{border-color:#177ddc}.ant-picker-calendar-full .ant-picker-panel .ant-picker-calendar-date-today .ant-picker-calendar-date-value{color:hsla(0,0%,100%,.85)}@media only screen and (max-width:480px){.ant-picker-calendar-header{display:block}.ant-picker-calendar-header .ant-picker-calendar-year-select{width:50%}.ant-picker-calendar-header .ant-picker-calendar-month-select{width:calc(50% - 8px)}.ant-picker-calendar-header .ant-picker-calendar-mode-switch{margin-left:0;margin-top:8px;width:100%}.ant-picker-calendar-header .ant-picker-calendar-mode-switch>label{text-align:center;width:50%}}.ant-picker-calendar-rtl{direction:rtl}.ant-picker-calendar-rtl .ant-picker-calendar-header .ant-picker-calendar-mode-switch,.ant-picker-calendar-rtl .ant-picker-calendar-header .ant-picker-calendar-month-select{margin-left:0;margin-right:8px}.ant-picker-calendar-rtl.ant-picker-calendar-full .ant-picker-panel{text-align:left}.ant-picker-calendar-rtl.ant-picker-calendar-full .ant-picker-panel .ant-picker-body th{padding:0 0 5px 12px}.ant-picker-calendar-rtl.ant-picker-calendar-full .ant-picker-panel .ant-picker-calendar-date-content{text-align:right}.ant-radio-group{font-feature-settings:"tnum";box-sizing:border-box;color:hsla(0,0%,100%,.85);display:inline-block;font-size:14px;font-size:0;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0}.ant-radio-group .ant-badge-count{z-index:1}.ant-radio-group>.ant-badge:not(:first-child)>.ant-radio-button-wrapper{border-left:none}.ant-radio-wrapper{font-feature-settings:"tnum";align-items:baseline;box-sizing:border-box;color:hsla(0,0%,100%,.85);cursor:pointer;display:inline-flex;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0 8px 0 0;padding:0;position:relative}.ant-radio-wrapper-disabled{cursor:not-allowed}.ant-radio-wrapper:after{content:"\\a0";display:inline-block;overflow:hidden;width:0}.ant-radio{font-feature-settings:"tnum";box-sizing:border-box;color:hsla(0,0%,100%,.85);cursor:pointer;display:inline-block;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;outline:none;padding:0;position:relative;top:.2em}.ant-radio-input:focus+.ant-radio-inner,.ant-radio-wrapper:hover .ant-radio,.ant-radio:hover .ant-radio-inner{border-color:#177ddc}.ant-radio-input:focus+.ant-radio-inner{box-shadow:0 0 0 3px #111b26}.ant-radio-checked:after{-webkit-animation:antRadioEffect .36s ease-in-out;animation:antRadioEffect .36s ease-in-out;-webkit-animation-fill-mode:both;animation-fill-mode:both;border:1px solid #177ddc;border-radius:50%;content:"";height:100%;left:0;position:absolute;top:0;visibility:hidden;width:100%}.ant-radio-wrapper:hover .ant-radio:after,.ant-radio:hover:after{visibility:visible}.ant-radio-inner{background-color:transparent;border:1px solid #434343;border-radius:50%;display:block;height:16px;left:0;position:relative;top:0;transition:all .3s;width:16px}.ant-radio-inner:after{background-color:#177ddc;border-left:0;border-radius:16px;border-top:0;content:" ";display:block;height:16px;left:50%;margin-left:-8px;margin-top:-8px;opacity:0;position:absolute;top:50%;transform:scale(0);transition:all .3s cubic-bezier(.78,.14,.15,.86);width:16px}.ant-radio-input{bottom:0;cursor:pointer;left:0;opacity:0;position:absolute;right:0;top:0;z-index:1}.ant-radio-checked .ant-radio-inner{border-color:#177ddc}.ant-radio-checked .ant-radio-inner:after{opacity:1;transform:scale(.5);transition:all .3s cubic-bezier(.78,.14,.15,.86)}.ant-radio-disabled{cursor:not-allowed}.ant-radio-disabled .ant-radio-inner{background-color:hsla(0,0%,100%,.08);border-color:#434343!important;cursor:not-allowed}.ant-radio-disabled .ant-radio-inner:after{background-color:hsla(0,0%,100%,.2)}.ant-radio-disabled .ant-radio-input{cursor:not-allowed}.ant-radio-disabled+span{color:hsla(0,0%,100%,.3);cursor:not-allowed}span.ant-radio+*{padding-left:8px;padding-right:8px}.ant-radio-button-wrapper{background:transparent;border-color:#434343;border-style:solid;border-width:1.02px 1px 1px 0;color:hsla(0,0%,100%,.85);cursor:pointer;display:inline-block;font-size:14px;height:32px;line-height:30px;margin:0;padding:0 15px;position:relative;transition:color .3s,background .3s,border-color .3s,box-shadow .3s}.ant-radio-button-wrapper a{color:hsla(0,0%,100%,.85)}.ant-radio-button-wrapper>.ant-radio-button{height:100%;left:0;position:absolute;top:0;width:100%;z-index:-1}.ant-radio-group-large .ant-radio-button-wrapper{font-size:16px;height:40px;line-height:38px}.ant-radio-group-small .ant-radio-button-wrapper{height:24px;line-height:22px;padding:0 7px}.ant-radio-button-wrapper:not(:first-child):before{background-color:#434343;box-sizing:content-box;content:"";display:block;height:100%;left:-1px;padding:1px 0;position:absolute;top:-1px;transition:background-color .3s;width:1px}.ant-radio-button-wrapper:first-child{border-left:1px solid #434343;border-radius:2px 0 0 2px}.ant-radio-button-wrapper:last-child{border-radius:0 2px 2px 0}.ant-radio-button-wrapper:first-child:last-child{border-radius:2px}.ant-radio-button-wrapper:hover{color:#177ddc;position:relative}.ant-radio-button-wrapper:focus-within{box-shadow:0 0 0 3px #111b26}.ant-radio-button-wrapper .ant-radio-inner,.ant-radio-button-wrapper input[type=checkbox],.ant-radio-button-wrapper input[type=radio]{height:0;opacity:0;pointer-events:none;width:0}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled){background:transparent;border-color:#177ddc;color:#177ddc;z-index:1}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):before{background-color:#177ddc}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):first-child{border-color:#177ddc}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):hover{border-color:#165996;color:#165996}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):hover:before{background-color:#165996}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):active{border-color:#388ed3;color:#388ed3}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):active:before{background-color:#388ed3}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):focus-within{box-shadow:0 0 0 3px #111b26}.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled){background:#177ddc;border-color:#177ddc;color:#fff}.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):hover{background:#165996;border-color:#165996;color:#fff}.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):active{background:#388ed3;border-color:#388ed3;color:#fff}.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):focus-within{box-shadow:0 0 0 3px #111b26}.ant-radio-button-wrapper-disabled{cursor:not-allowed}.ant-radio-button-wrapper-disabled,.ant-radio-button-wrapper-disabled:first-child,.ant-radio-button-wrapper-disabled:hover{background-color:hsla(0,0%,100%,.08);border-color:#434343;color:hsla(0,0%,100%,.3)}.ant-radio-button-wrapper-disabled:first-child{border-left-color:#434343}.ant-radio-button-wrapper-disabled.ant-radio-button-wrapper-checked{background-color:hsla(0,0%,100%,.2);border-color:#434343;box-shadow:none;color:hsla(0,0%,100%,.3)}@-webkit-keyframes antRadioEffect{0%{opacity:.5;transform:scale(1)}to{opacity:0;transform:scale(1.6)}}@keyframes antRadioEffect{0%{opacity:.5;transform:scale(1)}to{opacity:0;transform:scale(1.6)}}.ant-radio-group.ant-radio-group-rtl{direction:rtl}.ant-radio-wrapper.ant-radio-wrapper-rtl{direction:rtl;margin-left:8px;margin-right:0}.ant-radio-button-wrapper.ant-radio-button-wrapper-rtl{border-left-width:1px;border-right-width:0}.ant-radio-button-wrapper.ant-radio-button-wrapper-rtl.ant-radio-button-wrapper:not(:first-child):before{left:0;right:-1px}.ant-radio-button-wrapper.ant-radio-button-wrapper-rtl.ant-radio-button-wrapper:first-child{border-radius:0 2px 2px 0;border-right:1px solid #434343}.ant-radio-button-wrapper-checked:not([class*=" ant-radio-button-wrapper-disabled"]).ant-radio-button-wrapper:first-child{border-right-color:#165996}.ant-radio-button-wrapper.ant-radio-button-wrapper-rtl.ant-radio-button-wrapper:last-child{border-radius:2px 0 0 2px}.ant-radio-button-wrapper.ant-radio-button-wrapper-rtl.ant-radio-button-wrapper-disabled:first-child{border-right-color:#434343}.ant-picker{font-feature-settings:"tnum";align-items:center;background:transparent;border:1px solid #434343;border-radius:2px;box-sizing:border-box;color:hsla(0,0%,100%,.85);display:inline-flex;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:4px 11px;position:relative;transition:border .3s,box-shadow .3s}.ant-picker-focused,.ant-picker:hover{border-color:#165996;border-right-width:1px!important}.ant-picker-focused{border-color:#177ddc;border-right-width:1px!important;box-shadow:0 0 0 2px rgba(23,125,220,.2);outline:0}.ant-picker.ant-picker-disabled{background:hsla(0,0%,100%,.08);border-color:#434343;cursor:not-allowed}.ant-picker.ant-picker-disabled .ant-picker-suffix{color:hsla(0,0%,100%,.3)}.ant-picker.ant-picker-borderless{background-color:transparent!important;border-color:transparent!important;box-shadow:none!important}.ant-picker-input{align-items:center;display:inline-flex;position:relative;width:100%}.ant-picker-input>input{background-color:transparent;background-image:none;background:transparent;border:0;border-radius:2px;color:hsla(0,0%,100%,.85);display:inline-block;flex:auto;font-size:14px;height:auto;line-height:1.5715;min-width:0;min-width:1px;padding:0;position:relative;transition:all .3s;width:100%}.ant-picker-input>input::-moz-placeholder{opacity:1}.ant-picker-input>input::placeholder{color:hsla(0,0%,100%,.3);-webkit-user-select:none;-moz-user-select:none;user-select:none}.ant-picker-input>input:-moz-placeholder-shown{text-overflow:ellipsis}.ant-picker-input>input:placeholder-shown{text-overflow:ellipsis}.ant-picker-input>input:hover{border-color:#165996;border-right-width:1px!important}.ant-picker-input>input-focused,.ant-picker-input>input:focus{border-color:#177ddc;border-right-width:1px!important;box-shadow:0 0 0 2px rgba(23,125,220,.2);outline:0}.ant-picker-input>input-disabled{background-color:hsla(0,0%,100%,.08);border-color:#434343;box-shadow:none;color:hsla(0,0%,100%,.3);cursor:not-allowed;opacity:1}.ant-picker-input>input-disabled:hover{border-color:#434343;border-right-width:1px!important}.ant-picker-input>input[disabled]{background-color:hsla(0,0%,100%,.08);border-color:#434343;box-shadow:none;color:hsla(0,0%,100%,.3);cursor:not-allowed;opacity:1}.ant-picker-input>input[disabled]:hover{border-color:#434343;border-right-width:1px!important}.ant-picker-input>input-borderless,.ant-picker-input>input-borderless-disabled,.ant-picker-input>input-borderless-focused,.ant-picker-input>input-borderless:focus,.ant-picker-input>input-borderless:hover,.ant-picker-input>input-borderless[disabled]{background-color:transparent;border:none;box-shadow:none}textarea.ant-picker-input>input{height:auto;line-height:1.5715;max-width:100%;min-height:32px;transition:all .3s,height 0s;vertical-align:bottom}.ant-picker-input>input-lg{font-size:16px;padding:6.5px 11px}.ant-picker-input>input-sm{padding:0 7px}.ant-picker-input>input:focus{box-shadow:none}.ant-picker-input>input[disabled]{background:transparent}.ant-picker-input:hover .ant-picker-clear{opacity:1}.ant-picker-input-placeholder>input{color:hsla(0,0%,100%,.3)}.ant-picker-large{padding:6.5px 11px}.ant-picker-large .ant-picker-input>input{font-size:16px}.ant-picker-small{padding:0 7px}.ant-picker-suffix{align-self:center;color:hsla(0,0%,100%,.3);line-height:1;margin-left:4px;pointer-events:none}.ant-picker-suffix>*{vertical-align:top}.ant-picker-clear{background:#141414;color:hsla(0,0%,100%,.3);cursor:pointer;line-height:1;opacity:0;position:absolute;right:0;top:50%;transform:translateY(-50%);transition:opacity .3s,color .3s}.ant-picker-clear>*{vertical-align:top}.ant-picker-clear:hover{color:hsla(0,0%,100%,.45)}.ant-picker-separator{color:hsla(0,0%,100%,.3);cursor:default;display:inline-block;font-size:16px;height:16px;position:relative;vertical-align:top;width:1em}.ant-picker-focused .ant-picker-separator{color:hsla(0,0%,100%,.45)}.ant-picker-disabled .ant-picker-range-separator .ant-picker-separator{cursor:not-allowed}.ant-picker-range{display:inline-flex;position:relative}.ant-picker-range .ant-picker-clear{right:11px}.ant-picker-range:hover .ant-picker-clear{opacity:1}.ant-picker-range .ant-picker-active-bar{background:#177ddc;bottom:-1px;height:2px;margin-left:11px;opacity:0;pointer-events:none;transition:all .3s ease-out}.ant-picker-range.ant-picker-focused .ant-picker-active-bar{opacity:1}.ant-picker-range-separator{align-items:center;line-height:1;padding:0 8px}.ant-picker-range.ant-picker-small .ant-picker-clear{right:7px}.ant-picker-range.ant-picker-small .ant-picker-active-bar{margin-left:7px}.ant-picker-dropdown{font-feature-settings:"tnum";box-sizing:border-box;color:hsla(0,0%,100%,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0;position:absolute;z-index:1050}.ant-picker-dropdown-hidden{display:none}.ant-picker-dropdown-placement-bottomLeft .ant-picker-range-arrow{display:block;top:1.66666667px;transform:rotate(-45deg)}.ant-picker-dropdown-placement-topLeft .ant-picker-range-arrow{bottom:1.66666667px;display:block;transform:rotate(135deg)}.ant-picker-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-picker-dropdown-placement-topLeft,.ant-picker-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-picker-dropdown-placement-topRight,.ant-picker-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-picker-dropdown-placement-topLeft,.ant-picker-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-picker-dropdown-placement-topRight{-webkit-animation-name:antSlideDownIn;animation-name:antSlideDownIn}.ant-picker-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-picker-dropdown-placement-bottomLeft,.ant-picker-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-picker-dropdown-placement-bottomRight,.ant-picker-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-picker-dropdown-placement-bottomLeft,.ant-picker-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-picker-dropdown-placement-bottomRight{-webkit-animation-name:antSlideUpIn;animation-name:antSlideUpIn}.ant-picker-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-picker-dropdown-placement-topLeft,.ant-picker-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-picker-dropdown-placement-topRight{-webkit-animation-name:antSlideDownOut;animation-name:antSlideDownOut}.ant-picker-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-picker-dropdown-placement-bottomLeft,.ant-picker-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-picker-dropdown-placement-bottomRight{-webkit-animation-name:antSlideUpOut;animation-name:antSlideUpOut}.ant-picker-dropdown-range{padding:6.66666667px 0}.ant-picker-dropdown-range-hidden{display:none}.ant-picker-dropdown .ant-picker-panel>.ant-picker-time-panel{padding-top:4px}.ant-picker-ranges{line-height:34px;list-style:none;margin-bottom:0;overflow:hidden;padding:4px 12px;text-align:left}.ant-picker-ranges>li{display:inline-block}.ant-picker-ranges .ant-picker-preset>.ant-tag-blue{background:#111b26;border-color:#153450;color:#177ddc;cursor:pointer}.ant-picker-ranges .ant-picker-ok{float:right;margin-left:8px}.ant-picker-range-wrapper{display:flex}.ant-picker-range-arrow{box-shadow:2px -2px 6px rgba(0,0,0,.06);display:none;height:10px;margin-left:16.5px;position:absolute;transition:left .3s ease-out;width:10px;z-index:1}.ant-picker-range-arrow:after{border-color:#1f1f1f #1f1f1f transparent transparent;border-style:solid;border-width:5px;content:"";height:10px;position:absolute;right:1px;top:1px;width:10px}.ant-picker-panel-container{background:#1f1f1f;border-radius:2px;box-shadow:0 3px 6px -4px rgba(0,0,0,.48),0 6px 16px 0 rgba(0,0,0,.32),0 9px 28px 8px rgba(0,0,0,.2);overflow:hidden;transition:margin .3s;vertical-align:top}.ant-picker-panel-container .ant-picker-panels{direction:ltr;display:inline-flex;flex-wrap:nowrap}.ant-picker-panel-container .ant-picker-panel{background:transparent;border-radius:0;border-width:0 0 1px;vertical-align:top}.ant-picker-panel-container .ant-picker-panel .ant-picker-content,.ant-picker-panel-container .ant-picker-panel table{text-align:center}.ant-picker-panel-container .ant-picker-panel-focused{border-color:#303030}.ant-picker-panel{background:#1f1f1f;border:1px solid #303030;border-radius:2px;display:inline-flex;flex-direction:column;outline:none;text-align:center}.ant-picker-panel-focused{border-color:#177ddc}.ant-picker-date-panel,.ant-picker-decade-panel,.ant-picker-month-panel,.ant-picker-quarter-panel,.ant-picker-time-panel,.ant-picker-week-panel,.ant-picker-year-panel{display:flex;flex-direction:column;width:280px}.ant-picker-header{border-bottom:1px solid #303030;color:hsla(0,0%,100%,.85);display:flex;padding:0 8px}.ant-picker-header>*{flex:none}.ant-picker-header button{background:transparent;border:0;color:hsla(0,0%,100%,.3);cursor:pointer;line-height:40px;padding:0;transition:color .3s}.ant-picker-header>button{font-size:14px;min-width:1.6em}.ant-picker-header>button:hover{color:hsla(0,0%,100%,.85)}.ant-picker-header-view{flex:auto;font-weight:500;line-height:40px}.ant-picker-header-view button{color:inherit;font-weight:inherit}.ant-picker-header-view button:not(:first-child){margin-left:8px}.ant-picker-header-view button:hover{color:#177ddc}.ant-picker-next-icon,.ant-picker-prev-icon,.ant-picker-super-next-icon,.ant-picker-super-prev-icon{display:inline-block;height:7px;position:relative;width:7px}.ant-picker-next-icon:before,.ant-picker-prev-icon:before,.ant-picker-super-next-icon:before,.ant-picker-super-prev-icon:before{border:0 solid;border-width:1.5px 0 0 1.5px;content:"";display:inline-block;height:7px;left:0;position:absolute;top:0;width:7px}.ant-picker-super-next-icon:after,.ant-picker-super-prev-icon:after{border:0 solid;border-width:1.5px 0 0 1.5px;content:"";display:inline-block;height:7px;left:4px;position:absolute;top:4px;width:7px}.ant-picker-prev-icon,.ant-picker-super-prev-icon{transform:rotate(-45deg)}.ant-picker-next-icon,.ant-picker-super-next-icon{transform:rotate(135deg)}.ant-picker-content{border-collapse:collapse;table-layout:fixed;width:100%}.ant-picker-content td,.ant-picker-content th{font-weight:400;min-width:24px;position:relative}.ant-picker-content th{color:hsla(0,0%,100%,.85);height:30px;line-height:30px}.ant-picker-cell{color:hsla(0,0%,100%,.3);cursor:pointer;padding:3px 0}.ant-picker-cell-in-view{color:hsla(0,0%,100%,.85)}.ant-picker-cell:before{content:"";height:24px;left:0;position:absolute;right:0;top:50%;transform:translateY(-50%);transition:all .3s;z-index:1}.ant-picker-cell:hover:not(.ant-picker-cell-in-view) .ant-picker-cell-inner,.ant-picker-cell:hover:not(.ant-picker-cell-selected):not(.ant-picker-cell-range-start):not(.ant-picker-cell-range-end):not(.ant-picker-cell-range-hover-start):not(.ant-picker-cell-range-hover-end) .ant-picker-cell-inner{background:hsla(0,0%,100%,.08)}.ant-picker-cell-in-view.ant-picker-cell-today .ant-picker-cell-inner:before{border:1px solid #177ddc;border-radius:2px;bottom:0;content:"";left:0;position:absolute;right:0;top:0;z-index:1}.ant-picker-cell-in-view.ant-picker-cell-in-range{position:relative}.ant-picker-cell-in-view.ant-picker-cell-in-range:before{background:#111b26}.ant-picker-cell-in-view.ant-picker-cell-range-end .ant-picker-cell-inner,.ant-picker-cell-in-view.ant-picker-cell-range-start .ant-picker-cell-inner,.ant-picker-cell-in-view.ant-picker-cell-selected .ant-picker-cell-inner{background:#177ddc;color:#fff}.ant-picker-cell-in-view.ant-picker-cell-range-end:not(.ant-picker-cell-range-end-single):before,.ant-picker-cell-in-view.ant-picker-cell-range-start:not(.ant-picker-cell-range-start-single):before{background:#111b26}.ant-picker-cell-in-view.ant-picker-cell-range-start:before{left:50%}.ant-picker-cell-in-view.ant-picker-cell-range-end:before{right:50%}.ant-picker-cell-in-view.ant-picker-cell-range-hover-end.ant-picker-cell-range-end-single:after,.ant-picker-cell-in-view.ant-picker-cell-range-hover-end.ant-picker-cell-range-start.ant-picker-cell-range-end.ant-picker-cell-range-start-near-hover:after,.ant-picker-cell-in-view.ant-picker-cell-range-hover-end:not(.ant-picker-cell-in-range):not(.ant-picker-cell-range-start):not(.ant-picker-cell-range-end):after,.ant-picker-cell-in-view.ant-picker-cell-range-hover-start.ant-picker-cell-range-start-single:after,.ant-picker-cell-in-view.ant-picker-cell-range-hover-start.ant-picker-cell-range-start.ant-picker-cell-range-end.ant-picker-cell-range-end-near-hover:after,.ant-picker-cell-in-view.ant-picker-cell-range-hover-start:not(.ant-picker-cell-in-range):not(.ant-picker-cell-range-start):not(.ant-picker-cell-range-end):after,.ant-picker-cell-in-view.ant-picker-cell-range-hover:not(.ant-picker-cell-in-range):after{border-bottom:1px dashed #0e4980;border-top:1px dashed #0e4980;content:"";height:24px;position:absolute;top:50%;transform:translateY(-50%);transition:all .3s;z-index:0}.ant-picker-cell-range-hover-end:after,.ant-picker-cell-range-hover-start:after,.ant-picker-cell-range-hover:after{left:2px;right:0}.ant-picker-cell-in-view.ant-picker-cell-in-range.ant-picker-cell-range-hover:before,.ant-picker-cell-in-view.ant-picker-cell-range-end.ant-picker-cell-range-hover:before,.ant-picker-cell-in-view.ant-picker-cell-range-end:not(.ant-picker-cell-range-end-single).ant-picker-cell-range-hover-end:before,.ant-picker-cell-in-view.ant-picker-cell-range-start.ant-picker-cell-range-hover:before,.ant-picker-cell-in-view.ant-picker-cell-range-start:not(.ant-picker-cell-range-start-single).ant-picker-cell-range-hover-start:before,.ant-picker-panel>:not(.ant-picker-date-panel) .ant-picker-cell-in-view.ant-picker-cell-in-range.ant-picker-cell-range-hover-end:before,.ant-picker-panel>:not(.ant-picker-date-panel) .ant-picker-cell-in-view.ant-picker-cell-in-range.ant-picker-cell-range-hover-start:before{background:#06213a}.ant-picker-cell-in-view.ant-picker-cell-range-start:not(.ant-picker-cell-range-start-single):not(.ant-picker-cell-range-end) .ant-picker-cell-inner{border-radius:2px 0 0 2px}.ant-picker-cell-in-view.ant-picker-cell-range-end:not(.ant-picker-cell-range-end-single):not(.ant-picker-cell-range-start) .ant-picker-cell-inner{border-radius:0 2px 2px 0}.ant-picker-date-panel .ant-picker-cell-in-view.ant-picker-cell-in-range.ant-picker-cell-range-hover-end .ant-picker-cell-inner:after,.ant-picker-date-panel .ant-picker-cell-in-view.ant-picker-cell-in-range.ant-picker-cell-range-hover-start .ant-picker-cell-inner:after{background:#06213a;bottom:0;content:"";position:absolute;top:0;transition:all .3s;z-index:-1}.ant-picker-date-panel .ant-picker-cell-in-view.ant-picker-cell-in-range.ant-picker-cell-range-hover-start .ant-picker-cell-inner:after{left:0;right:-6px}.ant-picker-date-panel .ant-picker-cell-in-view.ant-picker-cell-in-range.ant-picker-cell-range-hover-end .ant-picker-cell-inner:after{left:-6px;right:0}.ant-picker-cell-range-hover.ant-picker-cell-range-start:after{right:50%}.ant-picker-cell-range-hover.ant-picker-cell-range-end:after{left:50%}.ant-picker-cell-in-view.ant-picker-cell-range-hover-edge-start:not(.ant-picker-cell-range-hover-edge-start-near-range):after,.ant-picker-cell-in-view.ant-picker-cell-range-hover-start:after,.ant-picker-cell-in-view.ant-picker-cell-start.ant-picker-cell-range-hover-edge-start.ant-picker-cell-range-hover-edge-start-near-range:after,tr>.ant-picker-cell-in-view.ant-picker-cell-range-hover-end:first-child:after,tr>.ant-picker-cell-in-view.ant-picker-cell-range-hover:first-child:after{border-bottom-left-radius:2px;border-left:1px dashed #0e4980;border-top-left-radius:2px;left:6px}.ant-picker-cell-in-view.ant-picker-cell-end.ant-picker-cell-range-hover-edge-end.ant-picker-cell-range-hover-edge-end-near-range:after,.ant-picker-cell-in-view.ant-picker-cell-range-hover-edge-end:not(.ant-picker-cell-range-hover-edge-end-near-range):after,.ant-picker-cell-in-view.ant-picker-cell-range-hover-end:after,tr>.ant-picker-cell-in-view.ant-picker-cell-range-hover-start:last-child:after,tr>.ant-picker-cell-in-view.ant-picker-cell-range-hover:last-child:after{border-bottom-right-radius:2px;border-right:1px dashed #0e4980;border-top-right-radius:2px;right:6px}.ant-picker-cell-disabled{color:hsla(0,0%,100%,.3);pointer-events:none}.ant-picker-cell-disabled .ant-picker-cell-inner{background:transparent}.ant-picker-cell-disabled:before{background:#303030}.ant-picker-cell-disabled.ant-picker-cell-today .ant-picker-cell-inner:before{border-color:hsla(0,0%,100%,.3)}.ant-picker-decade-panel .ant-picker-content,.ant-picker-month-panel .ant-picker-content,.ant-picker-quarter-panel .ant-picker-content,.ant-picker-year-panel .ant-picker-content{height:264px}.ant-picker-decade-panel .ant-picker-cell-inner,.ant-picker-month-panel .ant-picker-cell-inner,.ant-picker-quarter-panel .ant-picker-cell-inner,.ant-picker-year-panel .ant-picker-cell-inner{padding:0 8px}.ant-picker-quarter-panel .ant-picker-content{height:56px}.ant-picker-footer{border-bottom:1px solid transparent;line-height:38px;min-width:100%;text-align:center;width:-webkit-min-content;width:-moz-min-content;width:min-content}.ant-picker-panel .ant-picker-footer{border-top:1px solid #303030}.ant-picker-footer-extra{line-height:38px;padding:0 12px;text-align:left}.ant-picker-footer-extra:not(:last-child){border-bottom:1px solid #303030}.ant-picker-now{text-align:left}.ant-picker-today-btn{color:#177ddc}.ant-picker-today-btn:hover{color:#165996}.ant-picker-today-btn:active{color:#388ed3}.ant-picker-today-btn.ant-picker-today-btn-disabled{color:hsla(0,0%,100%,.3);cursor:not-allowed}.ant-picker-decade-panel .ant-picker-cell-inner{padding:0 4px}.ant-picker-decade-panel .ant-picker-cell:before{display:none}.ant-picker-month-panel .ant-picker-body,.ant-picker-quarter-panel .ant-picker-body,.ant-picker-year-panel .ant-picker-body{padding:0 8px}.ant-picker-month-panel .ant-picker-cell-inner,.ant-picker-quarter-panel .ant-picker-cell-inner,.ant-picker-year-panel .ant-picker-cell-inner{width:60px}.ant-picker-month-panel .ant-picker-cell-range-hover-start:after,.ant-picker-quarter-panel .ant-picker-cell-range-hover-start:after,.ant-picker-year-panel .ant-picker-cell-range-hover-start:after{border-left:1px dashed #0e4980;border-radius:2px 0 0 2px;left:14px}.ant-picker-month-panel .ant-picker-cell-range-hover-end:after,.ant-picker-panel-rtl .ant-picker-month-panel .ant-picker-cell-range-hover-start:after,.ant-picker-panel-rtl .ant-picker-quarter-panel .ant-picker-cell-range-hover-start:after,.ant-picker-panel-rtl .ant-picker-year-panel .ant-picker-cell-range-hover-start:after,.ant-picker-quarter-panel .ant-picker-cell-range-hover-end:after,.ant-picker-year-panel .ant-picker-cell-range-hover-end:after{border-radius:0 2px 2px 0;border-right:1px dashed #0e4980;right:14px}.ant-picker-panel-rtl .ant-picker-month-panel .ant-picker-cell-range-hover-end:after,.ant-picker-panel-rtl .ant-picker-quarter-panel .ant-picker-cell-range-hover-end:after,.ant-picker-panel-rtl .ant-picker-year-panel .ant-picker-cell-range-hover-end:after{border-left:1px dashed #0e4980;border-radius:2px 0 0 2px;left:14px}.ant-picker-week-panel .ant-picker-body{padding:8px 12px}.ant-picker-week-panel .ant-picker-cell .ant-picker-cell-inner,.ant-picker-week-panel .ant-picker-cell-selected .ant-picker-cell-inner,.ant-picker-week-panel .ant-picker-cell:hover .ant-picker-cell-inner{background:transparent!important}.ant-picker-week-panel-row td{transition:background .3s}.ant-picker-week-panel-row:hover td{background:hsla(0,0%,100%,.08)}.ant-picker-week-panel-row-selected td,.ant-picker-week-panel-row-selected:hover td{background:#177ddc}.ant-picker-week-panel-row-selected td.ant-picker-cell-week,.ant-picker-week-panel-row-selected:hover td.ant-picker-cell-week{color:hsla(0,0%,100%,.5)}.ant-picker-week-panel-row-selected td.ant-picker-cell-today .ant-picker-cell-inner:before,.ant-picker-week-panel-row-selected:hover td.ant-picker-cell-today .ant-picker-cell-inner:before{border-color:#fff}.ant-picker-week-panel-row-selected td .ant-picker-cell-inner,.ant-picker-week-panel-row-selected:hover td .ant-picker-cell-inner{color:#fff}.ant-picker-date-panel .ant-picker-body{padding:8px 12px}.ant-picker-date-panel .ant-picker-content{width:252px}.ant-picker-date-panel .ant-picker-content th{width:36px}.ant-picker-datetime-panel{display:flex}.ant-picker-datetime-panel .ant-picker-time-panel{border-left:1px solid #303030}.ant-picker-datetime-panel .ant-picker-date-panel,.ant-picker-datetime-panel .ant-picker-time-panel{transition:opacity .3s}.ant-picker-datetime-panel-active .ant-picker-date-panel,.ant-picker-datetime-panel-active .ant-picker-time-panel{opacity:.3}.ant-picker-datetime-panel-active .ant-picker-date-panel-active,.ant-picker-datetime-panel-active .ant-picker-time-panel-active{opacity:1}.ant-picker-time-panel{min-width:auto;width:auto}.ant-picker-time-panel .ant-picker-content{display:flex;flex:auto;height:224px}.ant-picker-time-panel-column{flex:1 0 auto;list-style:none;margin:0;overflow-y:hidden;padding:0;text-align:left;transition:background .3s;width:56px}.ant-picker-time-panel-column:after{content:"";display:block;height:196px}.ant-picker-datetime-panel .ant-picker-time-panel-column:after{height:198px}.ant-picker-time-panel-column:not(:first-child){border-left:1px solid #303030}.ant-picker-time-panel-column-active{background:rgba(17,27,38,.2)}.ant-picker-time-panel-column:hover{overflow-y:auto}.ant-picker-time-panel-column>li{margin:0;padding:0}.ant-picker-time-panel-column>li.ant-picker-time-panel-cell .ant-picker-time-panel-cell-inner{border-radius:0;color:hsla(0,0%,100%,.85);cursor:pointer;display:block;height:28px;line-height:28px;margin:0;padding:0 0 0 14px;transition:background .3s;width:100%}.ant-picker-time-panel-column>li.ant-picker-time-panel-cell .ant-picker-time-panel-cell-inner:hover{background:hsla(0,0%,100%,.08)}.ant-picker-time-panel-column>li.ant-picker-time-panel-cell-selected .ant-picker-time-panel-cell-inner{background:#111b26}.ant-picker-time-panel-column>li.ant-picker-time-panel-cell-disabled .ant-picker-time-panel-cell-inner{background:transparent;color:hsla(0,0%,100%,.3);cursor:not-allowed}:root .ant-picker-range-wrapper .ant-picker-month-panel .ant-picker-cell,:root .ant-picker-range-wrapper .ant-picker-year-panel .ant-picker-cell,_:-ms-fullscreen .ant-picker-range-wrapper .ant-picker-month-panel .ant-picker-cell,_:-ms-fullscreen .ant-picker-range-wrapper .ant-picker-year-panel .ant-picker-cell{padding:21px 0}.ant-picker-rtl{direction:rtl}.ant-picker-rtl .ant-picker-suffix{margin-left:0;margin-right:4px}.ant-picker-rtl .ant-picker-clear{left:0;right:auto}.ant-picker-rtl .ant-picker-separator{transform:rotate(180deg)}.ant-picker-panel-rtl .ant-picker-header-view button:not(:first-child){margin-left:0;margin-right:8px}.ant-picker-rtl.ant-picker-range .ant-picker-clear{left:11px;right:auto}.ant-picker-rtl.ant-picker-range .ant-picker-active-bar{margin-left:0;margin-right:11px}.ant-picker-rtl.ant-picker-range.ant-picker-small .ant-picker-active-bar{margin-right:7px}.ant-picker-dropdown-rtl .ant-picker-ranges{text-align:right}.ant-picker-dropdown-rtl .ant-picker-ranges .ant-picker-ok{float:left;margin-left:0;margin-right:8px}.ant-picker-panel-rtl{direction:rtl}.ant-picker-panel-rtl .ant-picker-prev-icon,.ant-picker-panel-rtl .ant-picker-super-prev-icon{transform:rotate(135deg)}.ant-picker-panel-rtl .ant-picker-next-icon,.ant-picker-panel-rtl .ant-picker-super-next-icon{transform:rotate(-45deg)}.ant-picker-cell .ant-picker-cell-inner{border-radius:2px;display:inline-block;height:24px;line-height:24px;min-width:24px;position:relative;transition:background .3s,border .3s;z-index:2}.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-range-start:before{left:0;right:50%}.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-range-end:before{left:50%;right:0}.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-range-start.ant-picker-cell-range-end:before{left:50%;right:50%}.ant-picker-panel-rtl .ant-picker-date-panel .ant-picker-cell-in-view.ant-picker-cell-in-range.ant-picker-cell-range-hover-start .ant-picker-cell-inner:after{left:-6px;right:0}.ant-picker-panel-rtl .ant-picker-date-panel .ant-picker-cell-in-view.ant-picker-cell-in-range.ant-picker-cell-range-hover-end .ant-picker-cell-inner:after{left:0;right:-6px}.ant-picker-panel-rtl .ant-picker-cell-range-hover.ant-picker-cell-range-start:after{left:50%;right:0}.ant-picker-panel-rtl .ant-picker-cell-range-hover.ant-picker-cell-range-end:after{left:0;right:50%}.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-range-start:not(.ant-picker-cell-range-start-single):not(.ant-picker-cell-range-end) .ant-picker-cell-inner{border-radius:0 2px 2px 0}.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-range-end:not(.ant-picker-cell-range-end-single):not(.ant-picker-cell-range-start) .ant-picker-cell-inner{border-radius:2px 0 0 2px}.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-range-hover-edge-start:not(.ant-picker-cell-range-hover-edge-start-near-range):after,.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-range-hover-start:after,.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-start.ant-picker-cell-range-hover-edge-start.ant-picker-cell-range-hover-edge-start-near-range:after,.ant-picker-panel-rtl tr>.ant-picker-cell-in-view.ant-picker-cell-range-hover:not(.ant-picker-cell-selected):first-child:after{border-left:none;border-radius:0 2px 2px 0;border-right:1px dashed #0e4980;left:0;right:6px}.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-end.ant-picker-cell-range-hover-edge-end.ant-picker-cell-range-hover-edge-end-near-range:after,.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-range-hover-edge-end:not(.ant-picker-cell-range-hover-edge-end-near-range):after,.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-range-hover-end:after,.ant-picker-panel-rtl tr>.ant-picker-cell-in-view.ant-picker-cell-range-hover:not(.ant-picker-cell-selected):last-child:after{border-left:1px dashed #0e4980;border-radius:2px 0 0 2px;border-right:none;left:6px;right:0}.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-end.ant-picker-cell-range-hover-start.ant-picker-cell-range-hover-edge-end:not(.ant-picker-cell-range-hover):after,.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-start.ant-picker-cell-range-hover-edge-start:not(.ant-picker-cell-range-hover):after,.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-start.ant-picker-cell-range-hover-end.ant-picker-cell-range-hover-edge-start:not(.ant-picker-cell-range-hover):after,.ant-picker-panel-rtl tr>.ant-picker-cell-in-view.ant-picker-cell-end.ant-picker-cell-range-hover.ant-picker-cell-range-hover-edge-end:first-child:after,.ant-picker-panel-rtl tr>.ant-picker-cell-in-view.ant-picker-cell-range-hover-end:first-child:after,.ant-picker-panel-rtl tr>.ant-picker-cell-in-view.ant-picker-cell-range-hover-start:last-child:after,.ant-picker-panel-rtl tr>.ant-picker-cell-in-view.ant-picker-cell-start.ant-picker-cell-range-hover.ant-picker-cell-range-hover-edge-start:last-child:after{border-left:1px dashed #0e4980;border-radius:2px;border-right:1px dashed #0e4980;left:6px;right:6px}.ant-picker-dropdown-rtl .ant-picker-footer-extra{direction:rtl;text-align:right}.ant-picker-panel-rtl .ant-picker-time-panel{direction:ltr}.ant-tag{font-feature-settings:"tnum";background:hsla(0,0%,100%,.04);border:1px solid #434343;border-radius:2px;box-sizing:border-box;display:inline-block;font-size:14px;font-size:12px;font-variant:tabular-nums;height:auto;line-height:1.5715;line-height:20px;list-style:none;margin:0 8px 0 0;opacity:1;padding:0 7px;transition:all .3s;white-space:nowrap}.ant-tag,.ant-tag a,.ant-tag a:hover{color:hsla(0,0%,100%,.85)}.ant-tag>a:first-child:last-child{display:inline-block;margin:0 -8px;padding:0 8px}.ant-tag-close-icon{color:hsla(0,0%,100%,.45);cursor:pointer;font-size:10px;margin-left:3px;transition:all .3s}.ant-tag-close-icon:hover{color:hsla(0,0%,100%,.85)}.ant-tag-has-color{border-color:transparent}.ant-tag-has-color,.ant-tag-has-color .anticon-close,.ant-tag-has-color .anticon-close:hover,.ant-tag-has-color a,.ant-tag-has-color a:hover{color:#fff}.ant-tag-checkable{background-color:transparent;border-color:transparent;cursor:pointer}.ant-tag-checkable:not(.ant-tag-checkable-checked):hover{color:#177ddc}.ant-tag-checkable-checked,.ant-tag-checkable:active{color:#fff}.ant-tag-checkable-checked{background-color:#177ddc}.ant-tag-checkable:active{background-color:#388ed3}.ant-tag-hidden{display:none}.ant-tag-pink{background:#291321;border-color:#551c3b;color:#e0529c}.ant-tag-pink-inverse{background:#cb2b83;border-color:#cb2b83;color:#fff}.ant-tag-magenta{background:#291321;border-color:#551c3b;color:#e0529c}.ant-tag-magenta-inverse{background:#cb2b83;border-color:#cb2b83;color:#fff}.ant-tag-red{background:#2a1215;border-color:#58181c;color:#e84749}.ant-tag-red-inverse{background:#d32029;border-color:#d32029;color:#fff}.ant-tag-volcano{background:#2b1611;border-color:#592716;color:#e87040}.ant-tag-volcano-inverse{background:#d84a1b;border-color:#d84a1b;color:#fff}.ant-tag-orange{background:#2b1d11;border-color:#593815;color:#e89a3c}.ant-tag-orange-inverse{background:#d87a16;border-color:#d87a16;color:#fff}.ant-tag-yellow{background:#2b2611;border-color:#595014;color:#e8d639}.ant-tag-yellow-inverse{background:#d8bd14;border-color:#d8bd14;color:#fff}.ant-tag-gold{background:#2b2111;border-color:#594214;color:#e8b339}.ant-tag-gold-inverse{background:#d89614;border-color:#d89614;color:#fff}.ant-tag-cyan{background:#112123;border-color:#144848;color:#33bcb7}.ant-tag-cyan-inverse{background:#13a8a8;border-color:#13a8a8;color:#fff}.ant-tag-lime{background:#1f2611;border-color:#3e4f13;color:#a9d134}.ant-tag-lime-inverse{background:#8bbb11;border-color:#8bbb11;color:#fff}.ant-tag-green{background:#162312;border-color:#274916;color:#6abe39}.ant-tag-green-inverse{background:#49aa19;border-color:#49aa19;color:#fff}.ant-tag-blue{background:#111d2c;border-color:#15395b;color:#3c9ae8}.ant-tag-blue-inverse{background:#177ddc;border-color:#177ddc;color:#fff}.ant-tag-geekblue{background:#131629;border-color:#1c2755;color:#5273e0}.ant-tag-geekblue-inverse{background:#2b4acb;border-color:#2b4acb;color:#fff}.ant-tag-purple{background:#1a1325;border-color:#301c4d;color:#854eca}.ant-tag-purple-inverse{background:#642ab5;border-color:#642ab5;color:#fff}.ant-tag-success{background:#162312;border-color:#274916;color:#49aa19}.ant-tag-processing{background:#111b26;border-color:#153450;color:#177ddc}.ant-tag-error{background:#2a1215;border-color:#58181c;color:#a61d24}.ant-tag-warning{background:#2b1d11;border-color:#593815;color:#d89614}.ant-tag>.anticon+span,.ant-tag>span+.anticon{margin-left:7px}.ant-tag.ant-tag-rtl{direction:rtl;margin-left:8px;margin-right:0;text-align:right}.ant-tag-rtl .ant-tag-close-icon{margin-left:0;margin-right:3px}.ant-tag-rtl.ant-tag>.anticon+span,.ant-tag-rtl.ant-tag>span+.anticon{margin-left:0;margin-right:7px}.ant-card{font-feature-settings:"tnum";background:#141414;border-radius:2px;box-sizing:border-box;color:hsla(0,0%,100%,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0;position:relative}.ant-card-rtl{direction:rtl}.ant-card-hoverable{cursor:pointer;transition:box-shadow .3s,border-color .3s}.ant-card-hoverable:hover{border-color:transparent;box-shadow:0 1px 2px -2px rgba(0,0,0,.64),0 3px 6px 0 rgba(0,0,0,.48),0 5px 12px 4px rgba(0,0,0,.36)}.ant-card-bordered{border:1px solid #303030}.ant-card-head{background:transparent;border-bottom:1px solid #303030;border-radius:2px 2px 0 0;color:hsla(0,0%,100%,.85);font-size:16px;font-weight:500;margin-bottom:-1px;min-height:48px;padding:0 24px}.ant-card-head:after,.ant-card-head:before{content:"";display:table}.ant-card-head:after{clear:both}.ant-card-head-wrapper{align-items:center;display:flex}.ant-card-head-title{display:inline-block;flex:1;overflow:hidden;padding:16px 0;text-overflow:ellipsis;white-space:nowrap}.ant-card-head-title>.ant-typography,.ant-card-head-title>.ant-typography-edit-content{left:0;margin-bottom:0;margin-top:0}.ant-card-head .ant-tabs-top{clear:both;color:hsla(0,0%,100%,.85);font-size:14px;font-weight:400;margin-bottom:-17px}.ant-card-head .ant-tabs-top-bar{border-bottom:1px solid #303030}.ant-card-extra{color:hsla(0,0%,100%,.85);float:right;font-size:14px;font-weight:400;margin-left:auto;padding:16px 0}.ant-card-rtl .ant-card-extra{margin-left:0;margin-right:auto}.ant-card-body{padding:24px}.ant-card-body:after,.ant-card-body:before{content:"";display:table}.ant-card-body:after{clear:both}.ant-card-contain-grid:not(.ant-card-loading) .ant-card-body{margin:-1px 0 0 -1px;padding:0}.ant-card-grid{border:0;border-radius:0;box-shadow:1px 0 0 0 #303030,0 1px 0 0 #303030,1px 1px 0 0 #303030,inset 1px 0 0 0 #303030,inset 0 1px 0 0 #303030;float:left;padding:24px;transition:all .3s;width:33.33%}.ant-card-rtl .ant-card-grid{float:right}.ant-card-grid-hoverable:hover{box-shadow:0 1px 2px -2px rgba(0,0,0,.64),0 3px 6px 0 rgba(0,0,0,.48),0 5px 12px 4px rgba(0,0,0,.36);position:relative;z-index:1}.ant-card-contain-tabs>.ant-card-head .ant-card-head-title{min-height:32px;padding-bottom:0}.ant-card-contain-tabs>.ant-card-head .ant-card-extra{padding-bottom:0}.ant-card-bordered .ant-card-cover{margin-left:-1px;margin-right:-1px;margin-top:-1px}.ant-card-cover>*{display:block;width:100%}.ant-card-cover img{border-radius:2px 2px 0 0}.ant-card-actions{background:#141414;border-top:1px solid #303030;list-style:none;margin:0;padding:0}.ant-card-actions:after,.ant-card-actions:before{content:"";display:table}.ant-card-actions:after{clear:both}.ant-card-actions>li{color:hsla(0,0%,100%,.45);float:left;margin:12px 0;text-align:center}.ant-card-rtl .ant-card-actions>li{float:right}.ant-card-actions>li>span{cursor:pointer;display:block;font-size:14px;line-height:1.5715;min-width:32px;position:relative}.ant-card-actions>li>span:hover{color:#177ddc;transition:color .3s}.ant-card-actions>li>span a:not(.ant-btn),.ant-card-actions>li>span>.anticon{color:hsla(0,0%,100%,.45);display:inline-block;line-height:22px;transition:color .3s;width:100%}.ant-card-actions>li>span a:not(.ant-btn):hover,.ant-card-actions>li>span>.anticon:hover{color:#177ddc}.ant-card-actions>li>span>.anticon{font-size:16px;line-height:22px}.ant-card-actions>li:not(:last-child){border-right:1px solid #303030}.ant-card-rtl .ant-card-actions>li:not(:last-child){border-left:1px solid #303030;border-right:none}.ant-card-type-inner .ant-card-head{background:hsla(0,0%,100%,.04);padding:0 24px}.ant-card-type-inner .ant-card-head-title{font-size:14px;padding:12px 0}.ant-card-type-inner .ant-card-body{padding:16px 24px}.ant-card-type-inner .ant-card-extra{padding:13.5px 0}.ant-card-meta{margin:-4px 0}.ant-card-meta:after,.ant-card-meta:before{content:"";display:table}.ant-card-meta:after{clear:both}.ant-card-meta-avatar{float:left;padding-right:16px}.ant-card-rtl .ant-card-meta-avatar{float:right;padding-left:16px;padding-right:0}.ant-card-meta-detail{overflow:hidden}.ant-card-meta-detail>div:not(:last-child){margin-bottom:8px}.ant-card-meta-title{color:hsla(0,0%,100%,.85);font-size:16px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ant-card-meta-description{color:hsla(0,0%,100%,.45)}.ant-card-loading{overflow:hidden}.ant-card-loading .ant-card-body{-webkit-user-select:none;-moz-user-select:none;user-select:none}.ant-card-loading-content p{margin:0}.ant-card-loading-block{-webkit-animation:card-loading 1.4s ease infinite;animation:card-loading 1.4s ease infinite;background:linear-gradient(90deg,rgba(48,48,48,.2),rgba(48,48,48,.4),rgba(48,48,48,.2));background-size:600% 600%;border-radius:2px;height:14px;margin:4px 0}@-webkit-keyframes card-loading{0%,to{background-position:0 50%}50%{background-position:100% 50%}}@keyframes card-loading{0%,to{background-position:0 50%}50%{background-position:100% 50%}}.ant-card-small>.ant-card-head{font-size:14px;min-height:36px;padding:0 12px}.ant-card-small>.ant-card-head>.ant-card-head-wrapper>.ant-card-head-title{padding:8px 0}.ant-card-small>.ant-card-head>.ant-card-head-wrapper>.ant-card-extra{font-size:14px;padding:8px 0}.ant-card-small>.ant-card-body{padding:12px}.ant-tabs-small>.ant-tabs-nav .ant-tabs-tab{font-size:14px;padding:8px 0}.ant-tabs-large>.ant-tabs-nav .ant-tabs-tab{font-size:16px;padding:16px 0}.ant-tabs-card.ant-tabs-small>.ant-tabs-nav .ant-tabs-tab{padding:6px 16px}.ant-tabs-card.ant-tabs-large>.ant-tabs-nav .ant-tabs-tab{padding:7px 16px 6px}.ant-tabs-rtl{direction:rtl}.ant-tabs-rtl .ant-tabs-nav .ant-tabs-tab{margin:0 0 0 32px}.ant-tabs-rtl .ant-tabs-nav .ant-tabs-tab:last-of-type{margin-left:0}.ant-tabs-rtl .ant-tabs-nav .ant-tabs-tab .anticon{margin-left:12px;margin-right:0}.ant-tabs-rtl .ant-tabs-nav .ant-tabs-tab .ant-tabs-tab-remove{margin-left:-4px;margin-right:8px}.ant-tabs-rtl .ant-tabs-nav .ant-tabs-tab .ant-tabs-tab-remove .anticon{margin:0}.ant-tabs-rtl.ant-tabs-left>.ant-tabs-nav{order:1}.ant-tabs-rtl.ant-tabs-left>.ant-tabs-content-holder,.ant-tabs-rtl.ant-tabs-right>.ant-tabs-nav{order:0}.ant-tabs-rtl.ant-tabs-right>.ant-tabs-content-holder{order:1}.ant-tabs-rtl.ant-tabs-card.ant-tabs-bottom>.ant-tabs-nav .ant-tabs-nav-add,.ant-tabs-rtl.ant-tabs-card.ant-tabs-bottom>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab,.ant-tabs-rtl.ant-tabs-card.ant-tabs-bottom>div>.ant-tabs-nav .ant-tabs-nav-add,.ant-tabs-rtl.ant-tabs-card.ant-tabs-bottom>div>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab,.ant-tabs-rtl.ant-tabs-card.ant-tabs-top>.ant-tabs-nav .ant-tabs-nav-add,.ant-tabs-rtl.ant-tabs-card.ant-tabs-top>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab,.ant-tabs-rtl.ant-tabs-card.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-nav-add,.ant-tabs-rtl.ant-tabs-card.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab{margin-left:0;margin-right:2px}.ant-tabs-dropdown-rtl{direction:rtl}.ant-tabs-dropdown-rtl .ant-tabs-dropdown-menu-item{text-align:right}.ant-tabs-bottom,.ant-tabs-top{flex-direction:column}.ant-tabs-bottom>.ant-tabs-nav,.ant-tabs-bottom>div>.ant-tabs-nav,.ant-tabs-top>.ant-tabs-nav,.ant-tabs-top>div>.ant-tabs-nav{margin:0 0 16px}.ant-tabs-bottom>.ant-tabs-nav:before,.ant-tabs-bottom>div>.ant-tabs-nav:before,.ant-tabs-top>.ant-tabs-nav:before,.ant-tabs-top>div>.ant-tabs-nav:before{border-bottom:1px solid #303030;content:"";left:0;position:absolute;right:0}.ant-tabs-bottom>.ant-tabs-nav .ant-tabs-ink-bar,.ant-tabs-bottom>div>.ant-tabs-nav .ant-tabs-ink-bar,.ant-tabs-top>.ant-tabs-nav .ant-tabs-ink-bar,.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-ink-bar{height:2px}.ant-tabs-bottom>.ant-tabs-nav .ant-tabs-ink-bar-animated,.ant-tabs-bottom>div>.ant-tabs-nav .ant-tabs-ink-bar-animated,.ant-tabs-top>.ant-tabs-nav .ant-tabs-ink-bar-animated,.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-ink-bar-animated{transition:width .3s,left .3s,right .3s}.ant-tabs-bottom>.ant-tabs-nav .ant-tabs-nav-wrap:after,.ant-tabs-bottom>.ant-tabs-nav .ant-tabs-nav-wrap:before,.ant-tabs-bottom>div>.ant-tabs-nav .ant-tabs-nav-wrap:after,.ant-tabs-bottom>div>.ant-tabs-nav .ant-tabs-nav-wrap:before,.ant-tabs-top>.ant-tabs-nav .ant-tabs-nav-wrap:after,.ant-tabs-top>.ant-tabs-nav .ant-tabs-nav-wrap:before,.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-nav-wrap:after,.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-nav-wrap:before{bottom:0;top:0;width:30px}.ant-tabs-bottom>.ant-tabs-nav .ant-tabs-nav-wrap:before,.ant-tabs-bottom>div>.ant-tabs-nav .ant-tabs-nav-wrap:before,.ant-tabs-top>.ant-tabs-nav .ant-tabs-nav-wrap:before,.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-nav-wrap:before{box-shadow:inset 10px 0 8px -8px rgba(0,0,0,.08);left:0}.ant-tabs-bottom>.ant-tabs-nav .ant-tabs-nav-wrap:after,.ant-tabs-bottom>div>.ant-tabs-nav .ant-tabs-nav-wrap:after,.ant-tabs-top>.ant-tabs-nav .ant-tabs-nav-wrap:after,.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-nav-wrap:after{box-shadow:inset -10px 0 8px -8px rgba(0,0,0,.08);right:0}.ant-tabs-bottom>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-left:before,.ant-tabs-bottom>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-right:after,.ant-tabs-bottom>div>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-left:before,.ant-tabs-bottom>div>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-right:after,.ant-tabs-top>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-left:before,.ant-tabs-top>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-right:after,.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-left:before,.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-right:after{opacity:1}.ant-tabs-top>.ant-tabs-nav .ant-tabs-ink-bar,.ant-tabs-top>.ant-tabs-nav:before,.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-ink-bar,.ant-tabs-top>div>.ant-tabs-nav:before{bottom:0}.ant-tabs-bottom>.ant-tabs-nav,.ant-tabs-bottom>div>.ant-tabs-nav{margin-bottom:0;margin-top:16px;order:1}.ant-tabs-bottom>.ant-tabs-nav .ant-tabs-ink-bar,.ant-tabs-bottom>.ant-tabs-nav:before,.ant-tabs-bottom>div>.ant-tabs-nav .ant-tabs-ink-bar,.ant-tabs-bottom>div>.ant-tabs-nav:before{top:0}.ant-tabs-bottom>.ant-tabs-content-holder,.ant-tabs-bottom>div>.ant-tabs-content-holder{order:0}.ant-tabs-left>.ant-tabs-nav,.ant-tabs-left>div>.ant-tabs-nav,.ant-tabs-right>.ant-tabs-nav,.ant-tabs-right>div>.ant-tabs-nav{flex-direction:column;min-width:50px}.ant-tabs-left>.ant-tabs-nav .ant-tabs-tab,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-tab,.ant-tabs-right>.ant-tabs-nav .ant-tabs-tab,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-tab{padding:8px 24px;text-align:center}.ant-tabs-left>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab,.ant-tabs-right>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab{margin:16px 0 0}.ant-tabs-left>.ant-tabs-nav .ant-tabs-nav-wrap,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-nav-wrap,.ant-tabs-right>.ant-tabs-nav .ant-tabs-nav-wrap,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-nav-wrap{flex-direction:column}.ant-tabs-left>.ant-tabs-nav .ant-tabs-nav-wrap:after,.ant-tabs-left>.ant-tabs-nav .ant-tabs-nav-wrap:before,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-nav-wrap:after,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-nav-wrap:before,.ant-tabs-right>.ant-tabs-nav .ant-tabs-nav-wrap:after,.ant-tabs-right>.ant-tabs-nav .ant-tabs-nav-wrap:before,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-nav-wrap:after,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-nav-wrap:before{height:30px;left:0;right:0}.ant-tabs-left>.ant-tabs-nav .ant-tabs-nav-wrap:before,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-nav-wrap:before,.ant-tabs-right>.ant-tabs-nav .ant-tabs-nav-wrap:before,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-nav-wrap:before{box-shadow:inset 0 10px 8px -8px rgba(0,0,0,.08);top:0}.ant-tabs-left>.ant-tabs-nav .ant-tabs-nav-wrap:after,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-nav-wrap:after,.ant-tabs-right>.ant-tabs-nav .ant-tabs-nav-wrap:after,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-nav-wrap:after{bottom:0;box-shadow:inset 0 -10px 8px -8px rgba(0,0,0,.08)}.ant-tabs-left>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-bottom:after,.ant-tabs-left>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-top:before,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-bottom:after,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-top:before,.ant-tabs-right>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-bottom:after,.ant-tabs-right>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-top:before,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-bottom:after,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-top:before{opacity:1}.ant-tabs-left>.ant-tabs-nav .ant-tabs-ink-bar,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-ink-bar,.ant-tabs-right>.ant-tabs-nav .ant-tabs-ink-bar,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-ink-bar{width:2px}.ant-tabs-left>.ant-tabs-nav .ant-tabs-ink-bar-animated,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-ink-bar-animated,.ant-tabs-right>.ant-tabs-nav .ant-tabs-ink-bar-animated,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-ink-bar-animated{transition:height .3s,top .3s}.ant-tabs-left>.ant-tabs-nav .ant-tabs-nav-list,.ant-tabs-left>.ant-tabs-nav .ant-tabs-nav-operations,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-nav-list,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-nav-operations,.ant-tabs-right>.ant-tabs-nav .ant-tabs-nav-list,.ant-tabs-right>.ant-tabs-nav .ant-tabs-nav-operations,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-nav-list,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-nav-operations{flex:1 0 auto;flex-direction:column}.ant-tabs-left>.ant-tabs-nav .ant-tabs-ink-bar,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-ink-bar{right:0}.ant-tabs-left>.ant-tabs-content-holder,.ant-tabs-left>div>.ant-tabs-content-holder{border-left:1px solid #303030;margin-left:-1px}.ant-tabs-left>.ant-tabs-content-holder>.ant-tabs-content>.ant-tabs-tabpane,.ant-tabs-left>div>.ant-tabs-content-holder>.ant-tabs-content>.ant-tabs-tabpane{padding-left:24px}.ant-tabs-right>.ant-tabs-nav,.ant-tabs-right>div>.ant-tabs-nav{order:1}.ant-tabs-right>.ant-tabs-nav .ant-tabs-ink-bar,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-ink-bar{left:0}.ant-tabs-right>.ant-tabs-content-holder,.ant-tabs-right>div>.ant-tabs-content-holder{border-right:1px solid #303030;margin-right:-1px;order:0}.ant-tabs-right>.ant-tabs-content-holder>.ant-tabs-content>.ant-tabs-tabpane,.ant-tabs-right>div>.ant-tabs-content-holder>.ant-tabs-content>.ant-tabs-tabpane{padding-right:24px}.ant-tabs-dropdown{font-feature-settings:"tnum";box-sizing:border-box;color:hsla(0,0%,100%,.85);display:block;font-size:14px;font-variant:tabular-nums;left:-9999px;line-height:1.5715;list-style:none;margin:0;padding:0;position:absolute;top:-9999px;z-index:1050}.ant-tabs-dropdown-hidden{display:none}.ant-tabs-dropdown-menu{background-clip:padding-box;background-color:#1f1f1f;border-radius:2px;box-shadow:0 3px 6px -4px rgba(0,0,0,.48),0 6px 16px 0 rgba(0,0,0,.32),0 9px 28px 8px rgba(0,0,0,.2);list-style-type:none;margin:0;max-height:200px;outline:none;overflow-x:hidden;overflow-y:auto;padding:4px 0;text-align:left}.ant-tabs-dropdown-menu-item{align-items:center;color:hsla(0,0%,100%,.85);cursor:pointer;display:flex;font-size:14px;font-weight:400;line-height:22px;margin:0;min-width:120px;overflow:hidden;padding:5px 12px;text-overflow:ellipsis;transition:all .3s;white-space:nowrap}.ant-tabs-dropdown-menu-item>span{flex:1;white-space:nowrap}.ant-tabs-dropdown-menu-item-remove{background:transparent;border:0;color:hsla(0,0%,100%,.45);cursor:pointer;flex:none;font-size:12px;margin-left:12px}.ant-tabs-dropdown-menu-item-remove:hover{color:#165996}.ant-tabs-dropdown-menu-item:hover{background:hsla(0,0%,100%,.08)}.ant-tabs-dropdown-menu-item-disabled,.ant-tabs-dropdown-menu-item-disabled:hover{background:transparent;color:hsla(0,0%,100%,.3);cursor:not-allowed}.ant-tabs-card>.ant-tabs-nav .ant-tabs-tab,.ant-tabs-card>div>.ant-tabs-nav .ant-tabs-tab{background:hsla(0,0%,100%,.04);border:1px solid #303030;margin:0;padding:8px 16px;transition:all .3s cubic-bezier(.645,.045,.355,1)}.ant-tabs-card>.ant-tabs-nav .ant-tabs-tab-active,.ant-tabs-card>div>.ant-tabs-nav .ant-tabs-tab-active{background:#141414;color:#177ddc}.ant-tabs-card>.ant-tabs-nav .ant-tabs-ink-bar,.ant-tabs-card>div>.ant-tabs-nav .ant-tabs-ink-bar{visibility:hidden}.ant-tabs-card.ant-tabs-bottom>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab,.ant-tabs-card.ant-tabs-bottom>div>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab,.ant-tabs-card.ant-tabs-top>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab,.ant-tabs-card.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab{margin-left:2px}.ant-tabs-card.ant-tabs-top>.ant-tabs-nav .ant-tabs-tab,.ant-tabs-card.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-tab{border-radius:2px 2px 0 0}.ant-tabs-card.ant-tabs-top>.ant-tabs-nav .ant-tabs-tab-active,.ant-tabs-card.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-tab-active{border-bottom-color:#141414}.ant-tabs-card.ant-tabs-bottom>.ant-tabs-nav .ant-tabs-tab,.ant-tabs-card.ant-tabs-bottom>div>.ant-tabs-nav .ant-tabs-tab{border-radius:0 0 2px 2px}.ant-tabs-card.ant-tabs-bottom>.ant-tabs-nav .ant-tabs-tab-active,.ant-tabs-card.ant-tabs-bottom>div>.ant-tabs-nav .ant-tabs-tab-active{border-top-color:#141414}.ant-tabs-card.ant-tabs-left>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab,.ant-tabs-card.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab,.ant-tabs-card.ant-tabs-right>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab,.ant-tabs-card.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab{margin-top:2px}.ant-tabs-card.ant-tabs-left>.ant-tabs-nav .ant-tabs-tab,.ant-tabs-card.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-tab{border-radius:2px 0 0 2px}.ant-tabs-card.ant-tabs-left>.ant-tabs-nav .ant-tabs-tab-active,.ant-tabs-card.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-tab-active{border-right-color:#141414}.ant-tabs-card.ant-tabs-right>.ant-tabs-nav .ant-tabs-tab,.ant-tabs-card.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-tab{border-radius:0 2px 2px 0}.ant-tabs-card.ant-tabs-right>.ant-tabs-nav .ant-tabs-tab-active,.ant-tabs-card.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-tab-active{border-left-color:#141414}.ant-tabs{font-feature-settings:"tnum";box-sizing:border-box;color:hsla(0,0%,100%,.85);display:flex;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;overflow:hidden;padding:0}.ant-tabs>.ant-tabs-nav,.ant-tabs>div>.ant-tabs-nav{align-items:center;display:flex;flex:none;position:relative}.ant-tabs>.ant-tabs-nav .ant-tabs-nav-wrap,.ant-tabs>div>.ant-tabs-nav .ant-tabs-nav-wrap{align-self:stretch;display:inline-block;display:flex;flex:auto;overflow:hidden;position:relative;transform:translate(0);white-space:nowrap}.ant-tabs>.ant-tabs-nav .ant-tabs-nav-wrap:after,.ant-tabs>.ant-tabs-nav .ant-tabs-nav-wrap:before,.ant-tabs>div>.ant-tabs-nav .ant-tabs-nav-wrap:after,.ant-tabs>div>.ant-tabs-nav .ant-tabs-nav-wrap:before{content:"";opacity:0;pointer-events:none;position:absolute;transition:opacity .3s;z-index:1}.ant-tabs>.ant-tabs-nav .ant-tabs-nav-list,.ant-tabs>div>.ant-tabs-nav .ant-tabs-nav-list{display:flex;position:relative;transition:transform .3s}.ant-tabs>.ant-tabs-nav .ant-tabs-nav-operations,.ant-tabs>div>.ant-tabs-nav .ant-tabs-nav-operations{align-self:stretch;display:flex}.ant-tabs>.ant-tabs-nav .ant-tabs-nav-operations-hidden,.ant-tabs>div>.ant-tabs-nav .ant-tabs-nav-operations-hidden{pointer-events:none;position:absolute;visibility:hidden}.ant-tabs>.ant-tabs-nav .ant-tabs-nav-more,.ant-tabs>div>.ant-tabs-nav .ant-tabs-nav-more{background:transparent;border:0;padding:8px 16px;position:relative}.ant-tabs>.ant-tabs-nav .ant-tabs-nav-more:after,.ant-tabs>div>.ant-tabs-nav .ant-tabs-nav-more:after{bottom:0;content:"";height:5px;left:0;position:absolute;right:0;transform:translateY(100%)}.ant-tabs>.ant-tabs-nav .ant-tabs-nav-add,.ant-tabs>div>.ant-tabs-nav .ant-tabs-nav-add{background:hsla(0,0%,100%,.04);border:1px solid #303030;border-radius:2px 2px 0 0;cursor:pointer;margin-left:2px;min-width:40px;outline:none;padding:0 8px;transition:all .3s cubic-bezier(.645,.045,.355,1)}.ant-tabs>.ant-tabs-nav .ant-tabs-nav-add:hover,.ant-tabs>div>.ant-tabs-nav .ant-tabs-nav-add:hover{color:#165996}.ant-tabs>.ant-tabs-nav .ant-tabs-nav-add:active,.ant-tabs>.ant-tabs-nav .ant-tabs-nav-add:focus,.ant-tabs>div>.ant-tabs-nav .ant-tabs-nav-add:active,.ant-tabs>div>.ant-tabs-nav .ant-tabs-nav-add:focus{color:#388ed3}.ant-tabs-extra-content{flex:none}.ant-tabs-centered>.ant-tabs-nav .ant-tabs-nav-wrap:not([class*=ant-tabs-nav-wrap-ping]),.ant-tabs-centered>div>.ant-tabs-nav .ant-tabs-nav-wrap:not([class*=ant-tabs-nav-wrap-ping]){justify-content:center}.ant-tabs-ink-bar{background:#177ddc;pointer-events:none;position:absolute}.ant-tabs-tab{align-items:center;background:transparent;border:0;cursor:pointer;display:inline-flex;font-size:14px;outline:none;padding:12px 0;position:relative}.ant-tabs-tab-btn:active,.ant-tabs-tab-btn:focus,.ant-tabs-tab-remove:active,.ant-tabs-tab-remove:focus{color:#388ed3}.ant-tabs-tab-btn,.ant-tabs-tab-remove{outline:none;transition:all .3s}.ant-tabs-tab-remove{background:transparent;border:none;color:hsla(0,0%,100%,.45);cursor:pointer;flex:none;font-size:12px;margin-left:8px;margin-right:-4px}.ant-tabs-tab-remove:hover{color:hsla(0,0%,100%,.85)}.ant-tabs-tab:hover{color:#165996}.ant-tabs-tab.ant-tabs-tab-active .ant-tabs-tab-btn{color:#177ddc;text-shadow:0 0 .25px currentcolor}.ant-tabs-tab.ant-tabs-tab-disabled{color:hsla(0,0%,100%,.3);cursor:not-allowed}.ant-tabs-tab.ant-tabs-tab-disabled .ant-tabs-tab-btn:active,.ant-tabs-tab.ant-tabs-tab-disabled .ant-tabs-tab-btn:focus,.ant-tabs-tab.ant-tabs-tab-disabled .ant-tabs-tab-remove:active,.ant-tabs-tab.ant-tabs-tab-disabled .ant-tabs-tab-remove:focus{color:hsla(0,0%,100%,.3)}.ant-tabs-tab .ant-tabs-tab-remove .anticon{margin:0}.ant-tabs-tab .anticon{margin-right:12px}.ant-tabs-tab+.ant-tabs-tab{margin:0 0 0 32px}.ant-tabs-content{display:flex;width:100%}.ant-tabs-content-holder{flex:auto;min-height:0;min-width:0}.ant-tabs-content-animated{transition:margin .3s}.ant-tabs-tabpane{flex:none;outline:none;width:100%}.ant-row{flex-flow:row wrap}.ant-row,.ant-row:after,.ant-row:before{display:flex}.ant-row-no-wrap{flex-wrap:nowrap}.ant-row-start{justify-content:flex-start}.ant-row-center{justify-content:center}.ant-row-end{justify-content:flex-end}.ant-row-space-between{justify-content:space-between}.ant-row-space-around{justify-content:space-around}.ant-row-top{align-items:flex-start}.ant-row-middle{align-items:center}.ant-row-bottom{align-items:flex-end}.ant-col{max-width:100%;min-height:1px;position:relative}.ant-col-24{display:block;flex:0 0 100%;max-width:100%}.ant-col-push-24{left:100%}.ant-col-pull-24{right:100%}.ant-col-offset-24{margin-left:100%}.ant-col-order-24{order:24}.ant-col-23{display:block;flex:0 0 95.83333333%;max-width:95.83333333%}.ant-col-push-23{left:95.83333333%}.ant-col-pull-23{right:95.83333333%}.ant-col-offset-23{margin-left:95.83333333%}.ant-col-order-23{order:23}.ant-col-22{display:block;flex:0 0 91.66666667%;max-width:91.66666667%}.ant-col-push-22{left:91.66666667%}.ant-col-pull-22{right:91.66666667%}.ant-col-offset-22{margin-left:91.66666667%}.ant-col-order-22{order:22}.ant-col-21{display:block;flex:0 0 87.5%;max-width:87.5%}.ant-col-push-21{left:87.5%}.ant-col-pull-21{right:87.5%}.ant-col-offset-21{margin-left:87.5%}.ant-col-order-21{order:21}.ant-col-20{display:block;flex:0 0 83.33333333%;max-width:83.33333333%}.ant-col-push-20{left:83.33333333%}.ant-col-pull-20{right:83.33333333%}.ant-col-offset-20{margin-left:83.33333333%}.ant-col-order-20{order:20}.ant-col-19{display:block;flex:0 0 79.16666667%;max-width:79.16666667%}.ant-col-push-19{left:79.16666667%}.ant-col-pull-19{right:79.16666667%}.ant-col-offset-19{margin-left:79.16666667%}.ant-col-order-19{order:19}.ant-col-18{display:block;flex:0 0 75%;max-width:75%}.ant-col-push-18{left:75%}.ant-col-pull-18{right:75%}.ant-col-offset-18{margin-left:75%}.ant-col-order-18{order:18}.ant-col-17{display:block;flex:0 0 70.83333333%;max-width:70.83333333%}.ant-col-push-17{left:70.83333333%}.ant-col-pull-17{right:70.83333333%}.ant-col-offset-17{margin-left:70.83333333%}.ant-col-order-17{order:17}.ant-col-16{display:block;flex:0 0 66.66666667%;max-width:66.66666667%}.ant-col-push-16{left:66.66666667%}.ant-col-pull-16{right:66.66666667%}.ant-col-offset-16{margin-left:66.66666667%}.ant-col-order-16{order:16}.ant-col-15{display:block;flex:0 0 62.5%;max-width:62.5%}.ant-col-push-15{left:62.5%}.ant-col-pull-15{right:62.5%}.ant-col-offset-15{margin-left:62.5%}.ant-col-order-15{order:15}.ant-col-14{display:block;flex:0 0 58.33333333%;max-width:58.33333333%}.ant-col-push-14{left:58.33333333%}.ant-col-pull-14{right:58.33333333%}.ant-col-offset-14{margin-left:58.33333333%}.ant-col-order-14{order:14}.ant-col-13{display:block;flex:0 0 54.16666667%;max-width:54.16666667%}.ant-col-push-13{left:54.16666667%}.ant-col-pull-13{right:54.16666667%}.ant-col-offset-13{margin-left:54.16666667%}.ant-col-order-13{order:13}.ant-col-12{display:block;flex:0 0 50%;max-width:50%}.ant-col-push-12{left:50%}.ant-col-pull-12{right:50%}.ant-col-offset-12{margin-left:50%}.ant-col-order-12{order:12}.ant-col-11{display:block;flex:0 0 45.83333333%;max-width:45.83333333%}.ant-col-push-11{left:45.83333333%}.ant-col-pull-11{right:45.83333333%}.ant-col-offset-11{margin-left:45.83333333%}.ant-col-order-11{order:11}.ant-col-10{display:block;flex:0 0 41.66666667%;max-width:41.66666667%}.ant-col-push-10{left:41.66666667%}.ant-col-pull-10{right:41.66666667%}.ant-col-offset-10{margin-left:41.66666667%}.ant-col-order-10{order:10}.ant-col-9{display:block;flex:0 0 37.5%;max-width:37.5%}.ant-col-push-9{left:37.5%}.ant-col-pull-9{right:37.5%}.ant-col-offset-9{margin-left:37.5%}.ant-col-order-9{order:9}.ant-col-8{display:block;flex:0 0 33.33333333%;max-width:33.33333333%}.ant-col-push-8{left:33.33333333%}.ant-col-pull-8{right:33.33333333%}.ant-col-offset-8{margin-left:33.33333333%}.ant-col-order-8{order:8}.ant-col-7{display:block;flex:0 0 29.16666667%;max-width:29.16666667%}.ant-col-push-7{left:29.16666667%}.ant-col-pull-7{right:29.16666667%}.ant-col-offset-7{margin-left:29.16666667%}.ant-col-order-7{order:7}.ant-col-6{display:block;flex:0 0 25%;max-width:25%}.ant-col-push-6{left:25%}.ant-col-pull-6{right:25%}.ant-col-offset-6{margin-left:25%}.ant-col-order-6{order:6}.ant-col-5{display:block;flex:0 0 20.83333333%;max-width:20.83333333%}.ant-col-push-5{left:20.83333333%}.ant-col-pull-5{right:20.83333333%}.ant-col-offset-5{margin-left:20.83333333%}.ant-col-order-5{order:5}.ant-col-4{display:block;flex:0 0 16.66666667%;max-width:16.66666667%}.ant-col-push-4{left:16.66666667%}.ant-col-pull-4{right:16.66666667%}.ant-col-offset-4{margin-left:16.66666667%}.ant-col-order-4{order:4}.ant-col-3{display:block;flex:0 0 12.5%;max-width:12.5%}.ant-col-push-3{left:12.5%}.ant-col-pull-3{right:12.5%}.ant-col-offset-3{margin-left:12.5%}.ant-col-order-3{order:3}.ant-col-2{display:block;flex:0 0 8.33333333%;max-width:8.33333333%}.ant-col-push-2{left:8.33333333%}.ant-col-pull-2{right:8.33333333%}.ant-col-offset-2{margin-left:8.33333333%}.ant-col-order-2{order:2}.ant-col-1{display:block;flex:0 0 4.16666667%;max-width:4.16666667%}.ant-col-push-1{left:4.16666667%}.ant-col-pull-1{right:4.16666667%}.ant-col-offset-1{margin-left:4.16666667%}.ant-col-order-1{order:1}.ant-col-0{display:none}.ant-col-offset-0{margin-left:0}.ant-col-order-0{order:0}.ant-col-offset-0.ant-col-rtl{margin-right:0}.ant-col-push-1.ant-col-rtl{left:auto;right:4.16666667%}.ant-col-pull-1.ant-col-rtl{left:4.16666667%;right:auto}.ant-col-offset-1.ant-col-rtl{margin-left:0;margin-right:4.16666667%}.ant-col-push-2.ant-col-rtl{left:auto;right:8.33333333%}.ant-col-pull-2.ant-col-rtl{left:8.33333333%;right:auto}.ant-col-offset-2.ant-col-rtl{margin-left:0;margin-right:8.33333333%}.ant-col-push-3.ant-col-rtl{left:auto;right:12.5%}.ant-col-pull-3.ant-col-rtl{left:12.5%;right:auto}.ant-col-offset-3.ant-col-rtl{margin-left:0;margin-right:12.5%}.ant-col-push-4.ant-col-rtl{left:auto;right:16.66666667%}.ant-col-pull-4.ant-col-rtl{left:16.66666667%;right:auto}.ant-col-offset-4.ant-col-rtl{margin-left:0;margin-right:16.66666667%}.ant-col-push-5.ant-col-rtl{left:auto;right:20.83333333%}.ant-col-pull-5.ant-col-rtl{left:20.83333333%;right:auto}.ant-col-offset-5.ant-col-rtl{margin-left:0;margin-right:20.83333333%}.ant-col-push-6.ant-col-rtl{left:auto;right:25%}.ant-col-pull-6.ant-col-rtl{left:25%;right:auto}.ant-col-offset-6.ant-col-rtl{margin-left:0;margin-right:25%}.ant-col-push-7.ant-col-rtl{left:auto;right:29.16666667%}.ant-col-pull-7.ant-col-rtl{left:29.16666667%;right:auto}.ant-col-offset-7.ant-col-rtl{margin-left:0;margin-right:29.16666667%}.ant-col-push-8.ant-col-rtl{left:auto;right:33.33333333%}.ant-col-pull-8.ant-col-rtl{left:33.33333333%;right:auto}.ant-col-offset-8.ant-col-rtl{margin-left:0;margin-right:33.33333333%}.ant-col-push-9.ant-col-rtl{left:auto;right:37.5%}.ant-col-pull-9.ant-col-rtl{left:37.5%;right:auto}.ant-col-offset-9.ant-col-rtl{margin-left:0;margin-right:37.5%}.ant-col-push-10.ant-col-rtl{left:auto;right:41.66666667%}.ant-col-pull-10.ant-col-rtl{left:41.66666667%;right:auto}.ant-col-offset-10.ant-col-rtl{margin-left:0;margin-right:41.66666667%}.ant-col-push-11.ant-col-rtl{left:auto;right:45.83333333%}.ant-col-pull-11.ant-col-rtl{left:45.83333333%;right:auto}.ant-col-offset-11.ant-col-rtl{margin-left:0;margin-right:45.83333333%}.ant-col-push-12.ant-col-rtl{left:auto;right:50%}.ant-col-pull-12.ant-col-rtl{left:50%;right:auto}.ant-col-offset-12.ant-col-rtl{margin-left:0;margin-right:50%}.ant-col-push-13.ant-col-rtl{left:auto;right:54.16666667%}.ant-col-pull-13.ant-col-rtl{left:54.16666667%;right:auto}.ant-col-offset-13.ant-col-rtl{margin-left:0;margin-right:54.16666667%}.ant-col-push-14.ant-col-rtl{left:auto;right:58.33333333%}.ant-col-pull-14.ant-col-rtl{left:58.33333333%;right:auto}.ant-col-offset-14.ant-col-rtl{margin-left:0;margin-right:58.33333333%}.ant-col-push-15.ant-col-rtl{left:auto;right:62.5%}.ant-col-pull-15.ant-col-rtl{left:62.5%;right:auto}.ant-col-offset-15.ant-col-rtl{margin-left:0;margin-right:62.5%}.ant-col-push-16.ant-col-rtl{left:auto;right:66.66666667%}.ant-col-pull-16.ant-col-rtl{left:66.66666667%;right:auto}.ant-col-offset-16.ant-col-rtl{margin-left:0;margin-right:66.66666667%}.ant-col-push-17.ant-col-rtl{left:auto;right:70.83333333%}.ant-col-pull-17.ant-col-rtl{left:70.83333333%;right:auto}.ant-col-offset-17.ant-col-rtl{margin-left:0;margin-right:70.83333333%}.ant-col-push-18.ant-col-rtl{left:auto;right:75%}.ant-col-pull-18.ant-col-rtl{left:75%;right:auto}.ant-col-offset-18.ant-col-rtl{margin-left:0;margin-right:75%}.ant-col-push-19.ant-col-rtl{left:auto;right:79.16666667%}.ant-col-pull-19.ant-col-rtl{left:79.16666667%;right:auto}.ant-col-offset-19.ant-col-rtl{margin-left:0;margin-right:79.16666667%}.ant-col-push-20.ant-col-rtl{left:auto;right:83.33333333%}.ant-col-pull-20.ant-col-rtl{left:83.33333333%;right:auto}.ant-col-offset-20.ant-col-rtl{margin-left:0;margin-right:83.33333333%}.ant-col-push-21.ant-col-rtl{left:auto;right:87.5%}.ant-col-pull-21.ant-col-rtl{left:87.5%;right:auto}.ant-col-offset-21.ant-col-rtl{margin-left:0;margin-right:87.5%}.ant-col-push-22.ant-col-rtl{left:auto;right:91.66666667%}.ant-col-pull-22.ant-col-rtl{left:91.66666667%;right:auto}.ant-col-offset-22.ant-col-rtl{margin-left:0;margin-right:91.66666667%}.ant-col-push-23.ant-col-rtl{left:auto;right:95.83333333%}.ant-col-pull-23.ant-col-rtl{left:95.83333333%;right:auto}.ant-col-offset-23.ant-col-rtl{margin-left:0;margin-right:95.83333333%}.ant-col-push-24.ant-col-rtl{left:auto;right:100%}.ant-col-pull-24.ant-col-rtl{left:100%;right:auto}.ant-col-offset-24.ant-col-rtl{margin-left:0;margin-right:100%}.ant-col-xs-24{display:block;flex:0 0 100%;max-width:100%}.ant-col-xs-push-24{left:100%}.ant-col-xs-pull-24{right:100%}.ant-col-xs-offset-24{margin-left:100%}.ant-col-xs-order-24{order:24}.ant-col-xs-23{display:block;flex:0 0 95.83333333%;max-width:95.83333333%}.ant-col-xs-push-23{left:95.83333333%}.ant-col-xs-pull-23{right:95.83333333%}.ant-col-xs-offset-23{margin-left:95.83333333%}.ant-col-xs-order-23{order:23}.ant-col-xs-22{display:block;flex:0 0 91.66666667%;max-width:91.66666667%}.ant-col-xs-push-22{left:91.66666667%}.ant-col-xs-pull-22{right:91.66666667%}.ant-col-xs-offset-22{margin-left:91.66666667%}.ant-col-xs-order-22{order:22}.ant-col-xs-21{display:block;flex:0 0 87.5%;max-width:87.5%}.ant-col-xs-push-21{left:87.5%}.ant-col-xs-pull-21{right:87.5%}.ant-col-xs-offset-21{margin-left:87.5%}.ant-col-xs-order-21{order:21}.ant-col-xs-20{display:block;flex:0 0 83.33333333%;max-width:83.33333333%}.ant-col-xs-push-20{left:83.33333333%}.ant-col-xs-pull-20{right:83.33333333%}.ant-col-xs-offset-20{margin-left:83.33333333%}.ant-col-xs-order-20{order:20}.ant-col-xs-19{display:block;flex:0 0 79.16666667%;max-width:79.16666667%}.ant-col-xs-push-19{left:79.16666667%}.ant-col-xs-pull-19{right:79.16666667%}.ant-col-xs-offset-19{margin-left:79.16666667%}.ant-col-xs-order-19{order:19}.ant-col-xs-18{display:block;flex:0 0 75%;max-width:75%}.ant-col-xs-push-18{left:75%}.ant-col-xs-pull-18{right:75%}.ant-col-xs-offset-18{margin-left:75%}.ant-col-xs-order-18{order:18}.ant-col-xs-17{display:block;flex:0 0 70.83333333%;max-width:70.83333333%}.ant-col-xs-push-17{left:70.83333333%}.ant-col-xs-pull-17{right:70.83333333%}.ant-col-xs-offset-17{margin-left:70.83333333%}.ant-col-xs-order-17{order:17}.ant-col-xs-16{display:block;flex:0 0 66.66666667%;max-width:66.66666667%}.ant-col-xs-push-16{left:66.66666667%}.ant-col-xs-pull-16{right:66.66666667%}.ant-col-xs-offset-16{margin-left:66.66666667%}.ant-col-xs-order-16{order:16}.ant-col-xs-15{display:block;flex:0 0 62.5%;max-width:62.5%}.ant-col-xs-push-15{left:62.5%}.ant-col-xs-pull-15{right:62.5%}.ant-col-xs-offset-15{margin-left:62.5%}.ant-col-xs-order-15{order:15}.ant-col-xs-14{display:block;flex:0 0 58.33333333%;max-width:58.33333333%}.ant-col-xs-push-14{left:58.33333333%}.ant-col-xs-pull-14{right:58.33333333%}.ant-col-xs-offset-14{margin-left:58.33333333%}.ant-col-xs-order-14{order:14}.ant-col-xs-13{display:block;flex:0 0 54.16666667%;max-width:54.16666667%}.ant-col-xs-push-13{left:54.16666667%}.ant-col-xs-pull-13{right:54.16666667%}.ant-col-xs-offset-13{margin-left:54.16666667%}.ant-col-xs-order-13{order:13}.ant-col-xs-12{display:block;flex:0 0 50%;max-width:50%}.ant-col-xs-push-12{left:50%}.ant-col-xs-pull-12{right:50%}.ant-col-xs-offset-12{margin-left:50%}.ant-col-xs-order-12{order:12}.ant-col-xs-11{display:block;flex:0 0 45.83333333%;max-width:45.83333333%}.ant-col-xs-push-11{left:45.83333333%}.ant-col-xs-pull-11{right:45.83333333%}.ant-col-xs-offset-11{margin-left:45.83333333%}.ant-col-xs-order-11{order:11}.ant-col-xs-10{display:block;flex:0 0 41.66666667%;max-width:41.66666667%}.ant-col-xs-push-10{left:41.66666667%}.ant-col-xs-pull-10{right:41.66666667%}.ant-col-xs-offset-10{margin-left:41.66666667%}.ant-col-xs-order-10{order:10}.ant-col-xs-9{display:block;flex:0 0 37.5%;max-width:37.5%}.ant-col-xs-push-9{left:37.5%}.ant-col-xs-pull-9{right:37.5%}.ant-col-xs-offset-9{margin-left:37.5%}.ant-col-xs-order-9{order:9}.ant-col-xs-8{display:block;flex:0 0 33.33333333%;max-width:33.33333333%}.ant-col-xs-push-8{left:33.33333333%}.ant-col-xs-pull-8{right:33.33333333%}.ant-col-xs-offset-8{margin-left:33.33333333%}.ant-col-xs-order-8{order:8}.ant-col-xs-7{display:block;flex:0 0 29.16666667%;max-width:29.16666667%}.ant-col-xs-push-7{left:29.16666667%}.ant-col-xs-pull-7{right:29.16666667%}.ant-col-xs-offset-7{margin-left:29.16666667%}.ant-col-xs-order-7{order:7}.ant-col-xs-6{display:block;flex:0 0 25%;max-width:25%}.ant-col-xs-push-6{left:25%}.ant-col-xs-pull-6{right:25%}.ant-col-xs-offset-6{margin-left:25%}.ant-col-xs-order-6{order:6}.ant-col-xs-5{display:block;flex:0 0 20.83333333%;max-width:20.83333333%}.ant-col-xs-push-5{left:20.83333333%}.ant-col-xs-pull-5{right:20.83333333%}.ant-col-xs-offset-5{margin-left:20.83333333%}.ant-col-xs-order-5{order:5}.ant-col-xs-4{display:block;flex:0 0 16.66666667%;max-width:16.66666667%}.ant-col-xs-push-4{left:16.66666667%}.ant-col-xs-pull-4{right:16.66666667%}.ant-col-xs-offset-4{margin-left:16.66666667%}.ant-col-xs-order-4{order:4}.ant-col-xs-3{display:block;flex:0 0 12.5%;max-width:12.5%}.ant-col-xs-push-3{left:12.5%}.ant-col-xs-pull-3{right:12.5%}.ant-col-xs-offset-3{margin-left:12.5%}.ant-col-xs-order-3{order:3}.ant-col-xs-2{display:block;flex:0 0 8.33333333%;max-width:8.33333333%}.ant-col-xs-push-2{left:8.33333333%}.ant-col-xs-pull-2{right:8.33333333%}.ant-col-xs-offset-2{margin-left:8.33333333%}.ant-col-xs-order-2{order:2}.ant-col-xs-1{display:block;flex:0 0 4.16666667%;max-width:4.16666667%}.ant-col-xs-push-1{left:4.16666667%}.ant-col-xs-pull-1{right:4.16666667%}.ant-col-xs-offset-1{margin-left:4.16666667%}.ant-col-xs-order-1{order:1}.ant-col-xs-0{display:none}.ant-col-push-0{left:auto}.ant-col-pull-0{right:auto}.ant-col-xs-push-0{left:auto}.ant-col-xs-pull-0{right:auto}.ant-col-xs-offset-0{margin-left:0}.ant-col-xs-order-0{order:0}.ant-col-push-0.ant-col-rtl{right:auto}.ant-col-pull-0.ant-col-rtl{left:auto}.ant-col-xs-push-0.ant-col-rtl{right:auto}.ant-col-xs-pull-0.ant-col-rtl{left:auto}.ant-col-xs-offset-0.ant-col-rtl{margin-right:0}.ant-col-xs-push-1.ant-col-rtl{left:auto;right:4.16666667%}.ant-col-xs-pull-1.ant-col-rtl{left:4.16666667%;right:auto}.ant-col-xs-offset-1.ant-col-rtl{margin-left:0;margin-right:4.16666667%}.ant-col-xs-push-2.ant-col-rtl{left:auto;right:8.33333333%}.ant-col-xs-pull-2.ant-col-rtl{left:8.33333333%;right:auto}.ant-col-xs-offset-2.ant-col-rtl{margin-left:0;margin-right:8.33333333%}.ant-col-xs-push-3.ant-col-rtl{left:auto;right:12.5%}.ant-col-xs-pull-3.ant-col-rtl{left:12.5%;right:auto}.ant-col-xs-offset-3.ant-col-rtl{margin-left:0;margin-right:12.5%}.ant-col-xs-push-4.ant-col-rtl{left:auto;right:16.66666667%}.ant-col-xs-pull-4.ant-col-rtl{left:16.66666667%;right:auto}.ant-col-xs-offset-4.ant-col-rtl{margin-left:0;margin-right:16.66666667%}.ant-col-xs-push-5.ant-col-rtl{left:auto;right:20.83333333%}.ant-col-xs-pull-5.ant-col-rtl{left:20.83333333%;right:auto}.ant-col-xs-offset-5.ant-col-rtl{margin-left:0;margin-right:20.83333333%}.ant-col-xs-push-6.ant-col-rtl{left:auto;right:25%}.ant-col-xs-pull-6.ant-col-rtl{left:25%;right:auto}.ant-col-xs-offset-6.ant-col-rtl{margin-left:0;margin-right:25%}.ant-col-xs-push-7.ant-col-rtl{left:auto;right:29.16666667%}.ant-col-xs-pull-7.ant-col-rtl{left:29.16666667%;right:auto}.ant-col-xs-offset-7.ant-col-rtl{margin-left:0;margin-right:29.16666667%}.ant-col-xs-push-8.ant-col-rtl{left:auto;right:33.33333333%}.ant-col-xs-pull-8.ant-col-rtl{left:33.33333333%;right:auto}.ant-col-xs-offset-8.ant-col-rtl{margin-left:0;margin-right:33.33333333%}.ant-col-xs-push-9.ant-col-rtl{left:auto;right:37.5%}.ant-col-xs-pull-9.ant-col-rtl{left:37.5%;right:auto}.ant-col-xs-offset-9.ant-col-rtl{margin-left:0;margin-right:37.5%}.ant-col-xs-push-10.ant-col-rtl{left:auto;right:41.66666667%}.ant-col-xs-pull-10.ant-col-rtl{left:41.66666667%;right:auto}.ant-col-xs-offset-10.ant-col-rtl{margin-left:0;margin-right:41.66666667%}.ant-col-xs-push-11.ant-col-rtl{left:auto;right:45.83333333%}.ant-col-xs-pull-11.ant-col-rtl{left:45.83333333%;right:auto}.ant-col-xs-offset-11.ant-col-rtl{margin-left:0;margin-right:45.83333333%}.ant-col-xs-push-12.ant-col-rtl{left:auto;right:50%}.ant-col-xs-pull-12.ant-col-rtl{left:50%;right:auto}.ant-col-xs-offset-12.ant-col-rtl{margin-left:0;margin-right:50%}.ant-col-xs-push-13.ant-col-rtl{left:auto;right:54.16666667%}.ant-col-xs-pull-13.ant-col-rtl{left:54.16666667%;right:auto}.ant-col-xs-offset-13.ant-col-rtl{margin-left:0;margin-right:54.16666667%}.ant-col-xs-push-14.ant-col-rtl{left:auto;right:58.33333333%}.ant-col-xs-pull-14.ant-col-rtl{left:58.33333333%;right:auto}.ant-col-xs-offset-14.ant-col-rtl{margin-left:0;margin-right:58.33333333%}.ant-col-xs-push-15.ant-col-rtl{left:auto;right:62.5%}.ant-col-xs-pull-15.ant-col-rtl{left:62.5%;right:auto}.ant-col-xs-offset-15.ant-col-rtl{margin-left:0;margin-right:62.5%}.ant-col-xs-push-16.ant-col-rtl{left:auto;right:66.66666667%}.ant-col-xs-pull-16.ant-col-rtl{left:66.66666667%;right:auto}.ant-col-xs-offset-16.ant-col-rtl{margin-left:0;margin-right:66.66666667%}.ant-col-xs-push-17.ant-col-rtl{left:auto;right:70.83333333%}.ant-col-xs-pull-17.ant-col-rtl{left:70.83333333%;right:auto}.ant-col-xs-offset-17.ant-col-rtl{margin-left:0;margin-right:70.83333333%}.ant-col-xs-push-18.ant-col-rtl{left:auto;right:75%}.ant-col-xs-pull-18.ant-col-rtl{left:75%;right:auto}.ant-col-xs-offset-18.ant-col-rtl{margin-left:0;margin-right:75%}.ant-col-xs-push-19.ant-col-rtl{left:auto;right:79.16666667%}.ant-col-xs-pull-19.ant-col-rtl{left:79.16666667%;right:auto}.ant-col-xs-offset-19.ant-col-rtl{margin-left:0;margin-right:79.16666667%}.ant-col-xs-push-20.ant-col-rtl{left:auto;right:83.33333333%}.ant-col-xs-pull-20.ant-col-rtl{left:83.33333333%;right:auto}.ant-col-xs-offset-20.ant-col-rtl{margin-left:0;margin-right:83.33333333%}.ant-col-xs-push-21.ant-col-rtl{left:auto;right:87.5%}.ant-col-xs-pull-21.ant-col-rtl{left:87.5%;right:auto}.ant-col-xs-offset-21.ant-col-rtl{margin-left:0;margin-right:87.5%}.ant-col-xs-push-22.ant-col-rtl{left:auto;right:91.66666667%}.ant-col-xs-pull-22.ant-col-rtl{left:91.66666667%;right:auto}.ant-col-xs-offset-22.ant-col-rtl{margin-left:0;margin-right:91.66666667%}.ant-col-xs-push-23.ant-col-rtl{left:auto;right:95.83333333%}.ant-col-xs-pull-23.ant-col-rtl{left:95.83333333%;right:auto}.ant-col-xs-offset-23.ant-col-rtl{margin-left:0;margin-right:95.83333333%}.ant-col-xs-push-24.ant-col-rtl{left:auto;right:100%}.ant-col-xs-pull-24.ant-col-rtl{left:100%;right:auto}.ant-col-xs-offset-24.ant-col-rtl{margin-left:0;margin-right:100%}@media (min-width:576px){.ant-col-sm-24{display:block;flex:0 0 100%;max-width:100%}.ant-col-sm-push-24{left:100%}.ant-col-sm-pull-24{right:100%}.ant-col-sm-offset-24{margin-left:100%}.ant-col-sm-order-24{order:24}.ant-col-sm-23{display:block;flex:0 0 95.83333333%;max-width:95.83333333%}.ant-col-sm-push-23{left:95.83333333%}.ant-col-sm-pull-23{right:95.83333333%}.ant-col-sm-offset-23{margin-left:95.83333333%}.ant-col-sm-order-23{order:23}.ant-col-sm-22{display:block;flex:0 0 91.66666667%;max-width:91.66666667%}.ant-col-sm-push-22{left:91.66666667%}.ant-col-sm-pull-22{right:91.66666667%}.ant-col-sm-offset-22{margin-left:91.66666667%}.ant-col-sm-order-22{order:22}.ant-col-sm-21{display:block;flex:0 0 87.5%;max-width:87.5%}.ant-col-sm-push-21{left:87.5%}.ant-col-sm-pull-21{right:87.5%}.ant-col-sm-offset-21{margin-left:87.5%}.ant-col-sm-order-21{order:21}.ant-col-sm-20{display:block;flex:0 0 83.33333333%;max-width:83.33333333%}.ant-col-sm-push-20{left:83.33333333%}.ant-col-sm-pull-20{right:83.33333333%}.ant-col-sm-offset-20{margin-left:83.33333333%}.ant-col-sm-order-20{order:20}.ant-col-sm-19{display:block;flex:0 0 79.16666667%;max-width:79.16666667%}.ant-col-sm-push-19{left:79.16666667%}.ant-col-sm-pull-19{right:79.16666667%}.ant-col-sm-offset-19{margin-left:79.16666667%}.ant-col-sm-order-19{order:19}.ant-col-sm-18{display:block;flex:0 0 75%;max-width:75%}.ant-col-sm-push-18{left:75%}.ant-col-sm-pull-18{right:75%}.ant-col-sm-offset-18{margin-left:75%}.ant-col-sm-order-18{order:18}.ant-col-sm-17{display:block;flex:0 0 70.83333333%;max-width:70.83333333%}.ant-col-sm-push-17{left:70.83333333%}.ant-col-sm-pull-17{right:70.83333333%}.ant-col-sm-offset-17{margin-left:70.83333333%}.ant-col-sm-order-17{order:17}.ant-col-sm-16{display:block;flex:0 0 66.66666667%;max-width:66.66666667%}.ant-col-sm-push-16{left:66.66666667%}.ant-col-sm-pull-16{right:66.66666667%}.ant-col-sm-offset-16{margin-left:66.66666667%}.ant-col-sm-order-16{order:16}.ant-col-sm-15{display:block;flex:0 0 62.5%;max-width:62.5%}.ant-col-sm-push-15{left:62.5%}.ant-col-sm-pull-15{right:62.5%}.ant-col-sm-offset-15{margin-left:62.5%}.ant-col-sm-order-15{order:15}.ant-col-sm-14{display:block;flex:0 0 58.33333333%;max-width:58.33333333%}.ant-col-sm-push-14{left:58.33333333%}.ant-col-sm-pull-14{right:58.33333333%}.ant-col-sm-offset-14{margin-left:58.33333333%}.ant-col-sm-order-14{order:14}.ant-col-sm-13{display:block;flex:0 0 54.16666667%;max-width:54.16666667%}.ant-col-sm-push-13{left:54.16666667%}.ant-col-sm-pull-13{right:54.16666667%}.ant-col-sm-offset-13{margin-left:54.16666667%}.ant-col-sm-order-13{order:13}.ant-col-sm-12{display:block;flex:0 0 50%;max-width:50%}.ant-col-sm-push-12{left:50%}.ant-col-sm-pull-12{right:50%}.ant-col-sm-offset-12{margin-left:50%}.ant-col-sm-order-12{order:12}.ant-col-sm-11{display:block;flex:0 0 45.83333333%;max-width:45.83333333%}.ant-col-sm-push-11{left:45.83333333%}.ant-col-sm-pull-11{right:45.83333333%}.ant-col-sm-offset-11{margin-left:45.83333333%}.ant-col-sm-order-11{order:11}.ant-col-sm-10{display:block;flex:0 0 41.66666667%;max-width:41.66666667%}.ant-col-sm-push-10{left:41.66666667%}.ant-col-sm-pull-10{right:41.66666667%}.ant-col-sm-offset-10{margin-left:41.66666667%}.ant-col-sm-order-10{order:10}.ant-col-sm-9{display:block;flex:0 0 37.5%;max-width:37.5%}.ant-col-sm-push-9{left:37.5%}.ant-col-sm-pull-9{right:37.5%}.ant-col-sm-offset-9{margin-left:37.5%}.ant-col-sm-order-9{order:9}.ant-col-sm-8{display:block;flex:0 0 33.33333333%;max-width:33.33333333%}.ant-col-sm-push-8{left:33.33333333%}.ant-col-sm-pull-8{right:33.33333333%}.ant-col-sm-offset-8{margin-left:33.33333333%}.ant-col-sm-order-8{order:8}.ant-col-sm-7{display:block;flex:0 0 29.16666667%;max-width:29.16666667%}.ant-col-sm-push-7{left:29.16666667%}.ant-col-sm-pull-7{right:29.16666667%}.ant-col-sm-offset-7{margin-left:29.16666667%}.ant-col-sm-order-7{order:7}.ant-col-sm-6{display:block;flex:0 0 25%;max-width:25%}.ant-col-sm-push-6{left:25%}.ant-col-sm-pull-6{right:25%}.ant-col-sm-offset-6{margin-left:25%}.ant-col-sm-order-6{order:6}.ant-col-sm-5{display:block;flex:0 0 20.83333333%;max-width:20.83333333%}.ant-col-sm-push-5{left:20.83333333%}.ant-col-sm-pull-5{right:20.83333333%}.ant-col-sm-offset-5{margin-left:20.83333333%}.ant-col-sm-order-5{order:5}.ant-col-sm-4{display:block;flex:0 0 16.66666667%;max-width:16.66666667%}.ant-col-sm-push-4{left:16.66666667%}.ant-col-sm-pull-4{right:16.66666667%}.ant-col-sm-offset-4{margin-left:16.66666667%}.ant-col-sm-order-4{order:4}.ant-col-sm-3{display:block;flex:0 0 12.5%;max-width:12.5%}.ant-col-sm-push-3{left:12.5%}.ant-col-sm-pull-3{right:12.5%}.ant-col-sm-offset-3{margin-left:12.5%}.ant-col-sm-order-3{order:3}.ant-col-sm-2{display:block;flex:0 0 8.33333333%;max-width:8.33333333%}.ant-col-sm-push-2{left:8.33333333%}.ant-col-sm-pull-2{right:8.33333333%}.ant-col-sm-offset-2{margin-left:8.33333333%}.ant-col-sm-order-2{order:2}.ant-col-sm-1{display:block;flex:0 0 4.16666667%;max-width:4.16666667%}.ant-col-sm-push-1{left:4.16666667%}.ant-col-sm-pull-1{right:4.16666667%}.ant-col-sm-offset-1{margin-left:4.16666667%}.ant-col-sm-order-1{order:1}.ant-col-sm-0{display:none}.ant-col-push-0{left:auto}.ant-col-pull-0{right:auto}.ant-col-sm-push-0{left:auto}.ant-col-sm-pull-0{right:auto}.ant-col-sm-offset-0{margin-left:0}.ant-col-sm-order-0{order:0}.ant-col-push-0.ant-col-rtl{right:auto}.ant-col-pull-0.ant-col-rtl{left:auto}.ant-col-sm-push-0.ant-col-rtl{right:auto}.ant-col-sm-pull-0.ant-col-rtl{left:auto}.ant-col-sm-offset-0.ant-col-rtl{margin-right:0}.ant-col-sm-push-1.ant-col-rtl{left:auto;right:4.16666667%}.ant-col-sm-pull-1.ant-col-rtl{left:4.16666667%;right:auto}.ant-col-sm-offset-1.ant-col-rtl{margin-left:0;margin-right:4.16666667%}.ant-col-sm-push-2.ant-col-rtl{left:auto;right:8.33333333%}.ant-col-sm-pull-2.ant-col-rtl{left:8.33333333%;right:auto}.ant-col-sm-offset-2.ant-col-rtl{margin-left:0;margin-right:8.33333333%}.ant-col-sm-push-3.ant-col-rtl{left:auto;right:12.5%}.ant-col-sm-pull-3.ant-col-rtl{left:12.5%;right:auto}.ant-col-sm-offset-3.ant-col-rtl{margin-left:0;margin-right:12.5%}.ant-col-sm-push-4.ant-col-rtl{left:auto;right:16.66666667%}.ant-col-sm-pull-4.ant-col-rtl{left:16.66666667%;right:auto}.ant-col-sm-offset-4.ant-col-rtl{margin-left:0;margin-right:16.66666667%}.ant-col-sm-push-5.ant-col-rtl{left:auto;right:20.83333333%}.ant-col-sm-pull-5.ant-col-rtl{left:20.83333333%;right:auto}.ant-col-sm-offset-5.ant-col-rtl{margin-left:0;margin-right:20.83333333%}.ant-col-sm-push-6.ant-col-rtl{left:auto;right:25%}.ant-col-sm-pull-6.ant-col-rtl{left:25%;right:auto}.ant-col-sm-offset-6.ant-col-rtl{margin-left:0;margin-right:25%}.ant-col-sm-push-7.ant-col-rtl{left:auto;right:29.16666667%}.ant-col-sm-pull-7.ant-col-rtl{left:29.16666667%;right:auto}.ant-col-sm-offset-7.ant-col-rtl{margin-left:0;margin-right:29.16666667%}.ant-col-sm-push-8.ant-col-rtl{left:auto;right:33.33333333%}.ant-col-sm-pull-8.ant-col-rtl{left:33.33333333%;right:auto}.ant-col-sm-offset-8.ant-col-rtl{margin-left:0;margin-right:33.33333333%}.ant-col-sm-push-9.ant-col-rtl{left:auto;right:37.5%}.ant-col-sm-pull-9.ant-col-rtl{left:37.5%;right:auto}.ant-col-sm-offset-9.ant-col-rtl{margin-left:0;margin-right:37.5%}.ant-col-sm-push-10.ant-col-rtl{left:auto;right:41.66666667%}.ant-col-sm-pull-10.ant-col-rtl{left:41.66666667%;right:auto}.ant-col-sm-offset-10.ant-col-rtl{margin-left:0;margin-right:41.66666667%}.ant-col-sm-push-11.ant-col-rtl{left:auto;right:45.83333333%}.ant-col-sm-pull-11.ant-col-rtl{left:45.83333333%;right:auto}.ant-col-sm-offset-11.ant-col-rtl{margin-left:0;margin-right:45.83333333%}.ant-col-sm-push-12.ant-col-rtl{left:auto;right:50%}.ant-col-sm-pull-12.ant-col-rtl{left:50%;right:auto}.ant-col-sm-offset-12.ant-col-rtl{margin-left:0;margin-right:50%}.ant-col-sm-push-13.ant-col-rtl{left:auto;right:54.16666667%}.ant-col-sm-pull-13.ant-col-rtl{left:54.16666667%;right:auto}.ant-col-sm-offset-13.ant-col-rtl{margin-left:0;margin-right:54.16666667%}.ant-col-sm-push-14.ant-col-rtl{left:auto;right:58.33333333%}.ant-col-sm-pull-14.ant-col-rtl{left:58.33333333%;right:auto}.ant-col-sm-offset-14.ant-col-rtl{margin-left:0;margin-right:58.33333333%}.ant-col-sm-push-15.ant-col-rtl{left:auto;right:62.5%}.ant-col-sm-pull-15.ant-col-rtl{left:62.5%;right:auto}.ant-col-sm-offset-15.ant-col-rtl{margin-left:0;margin-right:62.5%}.ant-col-sm-push-16.ant-col-rtl{left:auto;right:66.66666667%}.ant-col-sm-pull-16.ant-col-rtl{left:66.66666667%;right:auto}.ant-col-sm-offset-16.ant-col-rtl{margin-left:0;margin-right:66.66666667%}.ant-col-sm-push-17.ant-col-rtl{left:auto;right:70.83333333%}.ant-col-sm-pull-17.ant-col-rtl{left:70.83333333%;right:auto}.ant-col-sm-offset-17.ant-col-rtl{margin-left:0;margin-right:70.83333333%}.ant-col-sm-push-18.ant-col-rtl{left:auto;right:75%}.ant-col-sm-pull-18.ant-col-rtl{left:75%;right:auto}.ant-col-sm-offset-18.ant-col-rtl{margin-left:0;margin-right:75%}.ant-col-sm-push-19.ant-col-rtl{left:auto;right:79.16666667%}.ant-col-sm-pull-19.ant-col-rtl{left:79.16666667%;right:auto}.ant-col-sm-offset-19.ant-col-rtl{margin-left:0;margin-right:79.16666667%}.ant-col-sm-push-20.ant-col-rtl{left:auto;right:83.33333333%}.ant-col-sm-pull-20.ant-col-rtl{left:83.33333333%;right:auto}.ant-col-sm-offset-20.ant-col-rtl{margin-left:0;margin-right:83.33333333%}.ant-col-sm-push-21.ant-col-rtl{left:auto;right:87.5%}.ant-col-sm-pull-21.ant-col-rtl{left:87.5%;right:auto}.ant-col-sm-offset-21.ant-col-rtl{margin-left:0;margin-right:87.5%}.ant-col-sm-push-22.ant-col-rtl{left:auto;right:91.66666667%}.ant-col-sm-pull-22.ant-col-rtl{left:91.66666667%;right:auto}.ant-col-sm-offset-22.ant-col-rtl{margin-left:0;margin-right:91.66666667%}.ant-col-sm-push-23.ant-col-rtl{left:auto;right:95.83333333%}.ant-col-sm-pull-23.ant-col-rtl{left:95.83333333%;right:auto}.ant-col-sm-offset-23.ant-col-rtl{margin-left:0;margin-right:95.83333333%}.ant-col-sm-push-24.ant-col-rtl{left:auto;right:100%}.ant-col-sm-pull-24.ant-col-rtl{left:100%;right:auto}.ant-col-sm-offset-24.ant-col-rtl{margin-left:0;margin-right:100%}}@media (min-width:768px){.ant-col-md-24{display:block;flex:0 0 100%;max-width:100%}.ant-col-md-push-24{left:100%}.ant-col-md-pull-24{right:100%}.ant-col-md-offset-24{margin-left:100%}.ant-col-md-order-24{order:24}.ant-col-md-23{display:block;flex:0 0 95.83333333%;max-width:95.83333333%}.ant-col-md-push-23{left:95.83333333%}.ant-col-md-pull-23{right:95.83333333%}.ant-col-md-offset-23{margin-left:95.83333333%}.ant-col-md-order-23{order:23}.ant-col-md-22{display:block;flex:0 0 91.66666667%;max-width:91.66666667%}.ant-col-md-push-22{left:91.66666667%}.ant-col-md-pull-22{right:91.66666667%}.ant-col-md-offset-22{margin-left:91.66666667%}.ant-col-md-order-22{order:22}.ant-col-md-21{display:block;flex:0 0 87.5%;max-width:87.5%}.ant-col-md-push-21{left:87.5%}.ant-col-md-pull-21{right:87.5%}.ant-col-md-offset-21{margin-left:87.5%}.ant-col-md-order-21{order:21}.ant-col-md-20{display:block;flex:0 0 83.33333333%;max-width:83.33333333%}.ant-col-md-push-20{left:83.33333333%}.ant-col-md-pull-20{right:83.33333333%}.ant-col-md-offset-20{margin-left:83.33333333%}.ant-col-md-order-20{order:20}.ant-col-md-19{display:block;flex:0 0 79.16666667%;max-width:79.16666667%}.ant-col-md-push-19{left:79.16666667%}.ant-col-md-pull-19{right:79.16666667%}.ant-col-md-offset-19{margin-left:79.16666667%}.ant-col-md-order-19{order:19}.ant-col-md-18{display:block;flex:0 0 75%;max-width:75%}.ant-col-md-push-18{left:75%}.ant-col-md-pull-18{right:75%}.ant-col-md-offset-18{margin-left:75%}.ant-col-md-order-18{order:18}.ant-col-md-17{display:block;flex:0 0 70.83333333%;max-width:70.83333333%}.ant-col-md-push-17{left:70.83333333%}.ant-col-md-pull-17{right:70.83333333%}.ant-col-md-offset-17{margin-left:70.83333333%}.ant-col-md-order-17{order:17}.ant-col-md-16{display:block;flex:0 0 66.66666667%;max-width:66.66666667%}.ant-col-md-push-16{left:66.66666667%}.ant-col-md-pull-16{right:66.66666667%}.ant-col-md-offset-16{margin-left:66.66666667%}.ant-col-md-order-16{order:16}.ant-col-md-15{display:block;flex:0 0 62.5%;max-width:62.5%}.ant-col-md-push-15{left:62.5%}.ant-col-md-pull-15{right:62.5%}.ant-col-md-offset-15{margin-left:62.5%}.ant-col-md-order-15{order:15}.ant-col-md-14{display:block;flex:0 0 58.33333333%;max-width:58.33333333%}.ant-col-md-push-14{left:58.33333333%}.ant-col-md-pull-14{right:58.33333333%}.ant-col-md-offset-14{margin-left:58.33333333%}.ant-col-md-order-14{order:14}.ant-col-md-13{display:block;flex:0 0 54.16666667%;max-width:54.16666667%}.ant-col-md-push-13{left:54.16666667%}.ant-col-md-pull-13{right:54.16666667%}.ant-col-md-offset-13{margin-left:54.16666667%}.ant-col-md-order-13{order:13}.ant-col-md-12{display:block;flex:0 0 50%;max-width:50%}.ant-col-md-push-12{left:50%}.ant-col-md-pull-12{right:50%}.ant-col-md-offset-12{margin-left:50%}.ant-col-md-order-12{order:12}.ant-col-md-11{display:block;flex:0 0 45.83333333%;max-width:45.83333333%}.ant-col-md-push-11{left:45.83333333%}.ant-col-md-pull-11{right:45.83333333%}.ant-col-md-offset-11{margin-left:45.83333333%}.ant-col-md-order-11{order:11}.ant-col-md-10{display:block;flex:0 0 41.66666667%;max-width:41.66666667%}.ant-col-md-push-10{left:41.66666667%}.ant-col-md-pull-10{right:41.66666667%}.ant-col-md-offset-10{margin-left:41.66666667%}.ant-col-md-order-10{order:10}.ant-col-md-9{display:block;flex:0 0 37.5%;max-width:37.5%}.ant-col-md-push-9{left:37.5%}.ant-col-md-pull-9{right:37.5%}.ant-col-md-offset-9{margin-left:37.5%}.ant-col-md-order-9{order:9}.ant-col-md-8{display:block;flex:0 0 33.33333333%;max-width:33.33333333%}.ant-col-md-push-8{left:33.33333333%}.ant-col-md-pull-8{right:33.33333333%}.ant-col-md-offset-8{margin-left:33.33333333%}.ant-col-md-order-8{order:8}.ant-col-md-7{display:block;flex:0 0 29.16666667%;max-width:29.16666667%}.ant-col-md-push-7{left:29.16666667%}.ant-col-md-pull-7{right:29.16666667%}.ant-col-md-offset-7{margin-left:29.16666667%}.ant-col-md-order-7{order:7}.ant-col-md-6{display:block;flex:0 0 25%;max-width:25%}.ant-col-md-push-6{left:25%}.ant-col-md-pull-6{right:25%}.ant-col-md-offset-6{margin-left:25%}.ant-col-md-order-6{order:6}.ant-col-md-5{display:block;flex:0 0 20.83333333%;max-width:20.83333333%}.ant-col-md-push-5{left:20.83333333%}.ant-col-md-pull-5{right:20.83333333%}.ant-col-md-offset-5{margin-left:20.83333333%}.ant-col-md-order-5{order:5}.ant-col-md-4{display:block;flex:0 0 16.66666667%;max-width:16.66666667%}.ant-col-md-push-4{left:16.66666667%}.ant-col-md-pull-4{right:16.66666667%}.ant-col-md-offset-4{margin-left:16.66666667%}.ant-col-md-order-4{order:4}.ant-col-md-3{display:block;flex:0 0 12.5%;max-width:12.5%}.ant-col-md-push-3{left:12.5%}.ant-col-md-pull-3{right:12.5%}.ant-col-md-offset-3{margin-left:12.5%}.ant-col-md-order-3{order:3}.ant-col-md-2{display:block;flex:0 0 8.33333333%;max-width:8.33333333%}.ant-col-md-push-2{left:8.33333333%}.ant-col-md-pull-2{right:8.33333333%}.ant-col-md-offset-2{margin-left:8.33333333%}.ant-col-md-order-2{order:2}.ant-col-md-1{display:block;flex:0 0 4.16666667%;max-width:4.16666667%}.ant-col-md-push-1{left:4.16666667%}.ant-col-md-pull-1{right:4.16666667%}.ant-col-md-offset-1{margin-left:4.16666667%}.ant-col-md-order-1{order:1}.ant-col-md-0{display:none}.ant-col-push-0{left:auto}.ant-col-pull-0{right:auto}.ant-col-md-push-0{left:auto}.ant-col-md-pull-0{right:auto}.ant-col-md-offset-0{margin-left:0}.ant-col-md-order-0{order:0}.ant-col-push-0.ant-col-rtl{right:auto}.ant-col-pull-0.ant-col-rtl{left:auto}.ant-col-md-push-0.ant-col-rtl{right:auto}.ant-col-md-pull-0.ant-col-rtl{left:auto}.ant-col-md-offset-0.ant-col-rtl{margin-right:0}.ant-col-md-push-1.ant-col-rtl{left:auto;right:4.16666667%}.ant-col-md-pull-1.ant-col-rtl{left:4.16666667%;right:auto}.ant-col-md-offset-1.ant-col-rtl{margin-left:0;margin-right:4.16666667%}.ant-col-md-push-2.ant-col-rtl{left:auto;right:8.33333333%}.ant-col-md-pull-2.ant-col-rtl{left:8.33333333%;right:auto}.ant-col-md-offset-2.ant-col-rtl{margin-left:0;margin-right:8.33333333%}.ant-col-md-push-3.ant-col-rtl{left:auto;right:12.5%}.ant-col-md-pull-3.ant-col-rtl{left:12.5%;right:auto}.ant-col-md-offset-3.ant-col-rtl{margin-left:0;margin-right:12.5%}.ant-col-md-push-4.ant-col-rtl{left:auto;right:16.66666667%}.ant-col-md-pull-4.ant-col-rtl{left:16.66666667%;right:auto}.ant-col-md-offset-4.ant-col-rtl{margin-left:0;margin-right:16.66666667%}.ant-col-md-push-5.ant-col-rtl{left:auto;right:20.83333333%}.ant-col-md-pull-5.ant-col-rtl{left:20.83333333%;right:auto}.ant-col-md-offset-5.ant-col-rtl{margin-left:0;margin-right:20.83333333%}.ant-col-md-push-6.ant-col-rtl{left:auto;right:25%}.ant-col-md-pull-6.ant-col-rtl{left:25%;right:auto}.ant-col-md-offset-6.ant-col-rtl{margin-left:0;margin-right:25%}.ant-col-md-push-7.ant-col-rtl{left:auto;right:29.16666667%}.ant-col-md-pull-7.ant-col-rtl{left:29.16666667%;right:auto}.ant-col-md-offset-7.ant-col-rtl{margin-left:0;margin-right:29.16666667%}.ant-col-md-push-8.ant-col-rtl{left:auto;right:33.33333333%}.ant-col-md-pull-8.ant-col-rtl{left:33.33333333%;right:auto}.ant-col-md-offset-8.ant-col-rtl{margin-left:0;margin-right:33.33333333%}.ant-col-md-push-9.ant-col-rtl{left:auto;right:37.5%}.ant-col-md-pull-9.ant-col-rtl{left:37.5%;right:auto}.ant-col-md-offset-9.ant-col-rtl{margin-left:0;margin-right:37.5%}.ant-col-md-push-10.ant-col-rtl{left:auto;right:41.66666667%}.ant-col-md-pull-10.ant-col-rtl{left:41.66666667%;right:auto}.ant-col-md-offset-10.ant-col-rtl{margin-left:0;margin-right:41.66666667%}.ant-col-md-push-11.ant-col-rtl{left:auto;right:45.83333333%}.ant-col-md-pull-11.ant-col-rtl{left:45.83333333%;right:auto}.ant-col-md-offset-11.ant-col-rtl{margin-left:0;margin-right:45.83333333%}.ant-col-md-push-12.ant-col-rtl{left:auto;right:50%}.ant-col-md-pull-12.ant-col-rtl{left:50%;right:auto}.ant-col-md-offset-12.ant-col-rtl{margin-left:0;margin-right:50%}.ant-col-md-push-13.ant-col-rtl{left:auto;right:54.16666667%}.ant-col-md-pull-13.ant-col-rtl{left:54.16666667%;right:auto}.ant-col-md-offset-13.ant-col-rtl{margin-left:0;margin-right:54.16666667%}.ant-col-md-push-14.ant-col-rtl{left:auto;right:58.33333333%}.ant-col-md-pull-14.ant-col-rtl{left:58.33333333%;right:auto}.ant-col-md-offset-14.ant-col-rtl{margin-left:0;margin-right:58.33333333%}.ant-col-md-push-15.ant-col-rtl{left:auto;right:62.5%}.ant-col-md-pull-15.ant-col-rtl{left:62.5%;right:auto}.ant-col-md-offset-15.ant-col-rtl{margin-left:0;margin-right:62.5%}.ant-col-md-push-16.ant-col-rtl{left:auto;right:66.66666667%}.ant-col-md-pull-16.ant-col-rtl{left:66.66666667%;right:auto}.ant-col-md-offset-16.ant-col-rtl{margin-left:0;margin-right:66.66666667%}.ant-col-md-push-17.ant-col-rtl{left:auto;right:70.83333333%}.ant-col-md-pull-17.ant-col-rtl{left:70.83333333%;right:auto}.ant-col-md-offset-17.ant-col-rtl{margin-left:0;margin-right:70.83333333%}.ant-col-md-push-18.ant-col-rtl{left:auto;right:75%}.ant-col-md-pull-18.ant-col-rtl{left:75%;right:auto}.ant-col-md-offset-18.ant-col-rtl{margin-left:0;margin-right:75%}.ant-col-md-push-19.ant-col-rtl{left:auto;right:79.16666667%}.ant-col-md-pull-19.ant-col-rtl{left:79.16666667%;right:auto}.ant-col-md-offset-19.ant-col-rtl{margin-left:0;margin-right:79.16666667%}.ant-col-md-push-20.ant-col-rtl{left:auto;right:83.33333333%}.ant-col-md-pull-20.ant-col-rtl{left:83.33333333%;right:auto}.ant-col-md-offset-20.ant-col-rtl{margin-left:0;margin-right:83.33333333%}.ant-col-md-push-21.ant-col-rtl{left:auto;right:87.5%}.ant-col-md-pull-21.ant-col-rtl{left:87.5%;right:auto}.ant-col-md-offset-21.ant-col-rtl{margin-left:0;margin-right:87.5%}.ant-col-md-push-22.ant-col-rtl{left:auto;right:91.66666667%}.ant-col-md-pull-22.ant-col-rtl{left:91.66666667%;right:auto}.ant-col-md-offset-22.ant-col-rtl{margin-left:0;margin-right:91.66666667%}.ant-col-md-push-23.ant-col-rtl{left:auto;right:95.83333333%}.ant-col-md-pull-23.ant-col-rtl{left:95.83333333%;right:auto}.ant-col-md-offset-23.ant-col-rtl{margin-left:0;margin-right:95.83333333%}.ant-col-md-push-24.ant-col-rtl{left:auto;right:100%}.ant-col-md-pull-24.ant-col-rtl{left:100%;right:auto}.ant-col-md-offset-24.ant-col-rtl{margin-left:0;margin-right:100%}}@media (min-width:992px){.ant-col-lg-24{display:block;flex:0 0 100%;max-width:100%}.ant-col-lg-push-24{left:100%}.ant-col-lg-pull-24{right:100%}.ant-col-lg-offset-24{margin-left:100%}.ant-col-lg-order-24{order:24}.ant-col-lg-23{display:block;flex:0 0 95.83333333%;max-width:95.83333333%}.ant-col-lg-push-23{left:95.83333333%}.ant-col-lg-pull-23{right:95.83333333%}.ant-col-lg-offset-23{margin-left:95.83333333%}.ant-col-lg-order-23{order:23}.ant-col-lg-22{display:block;flex:0 0 91.66666667%;max-width:91.66666667%}.ant-col-lg-push-22{left:91.66666667%}.ant-col-lg-pull-22{right:91.66666667%}.ant-col-lg-offset-22{margin-left:91.66666667%}.ant-col-lg-order-22{order:22}.ant-col-lg-21{display:block;flex:0 0 87.5%;max-width:87.5%}.ant-col-lg-push-21{left:87.5%}.ant-col-lg-pull-21{right:87.5%}.ant-col-lg-offset-21{margin-left:87.5%}.ant-col-lg-order-21{order:21}.ant-col-lg-20{display:block;flex:0 0 83.33333333%;max-width:83.33333333%}.ant-col-lg-push-20{left:83.33333333%}.ant-col-lg-pull-20{right:83.33333333%}.ant-col-lg-offset-20{margin-left:83.33333333%}.ant-col-lg-order-20{order:20}.ant-col-lg-19{display:block;flex:0 0 79.16666667%;max-width:79.16666667%}.ant-col-lg-push-19{left:79.16666667%}.ant-col-lg-pull-19{right:79.16666667%}.ant-col-lg-offset-19{margin-left:79.16666667%}.ant-col-lg-order-19{order:19}.ant-col-lg-18{display:block;flex:0 0 75%;max-width:75%}.ant-col-lg-push-18{left:75%}.ant-col-lg-pull-18{right:75%}.ant-col-lg-offset-18{margin-left:75%}.ant-col-lg-order-18{order:18}.ant-col-lg-17{display:block;flex:0 0 70.83333333%;max-width:70.83333333%}.ant-col-lg-push-17{left:70.83333333%}.ant-col-lg-pull-17{right:70.83333333%}.ant-col-lg-offset-17{margin-left:70.83333333%}.ant-col-lg-order-17{order:17}.ant-col-lg-16{display:block;flex:0 0 66.66666667%;max-width:66.66666667%}.ant-col-lg-push-16{left:66.66666667%}.ant-col-lg-pull-16{right:66.66666667%}.ant-col-lg-offset-16{margin-left:66.66666667%}.ant-col-lg-order-16{order:16}.ant-col-lg-15{display:block;flex:0 0 62.5%;max-width:62.5%}.ant-col-lg-push-15{left:62.5%}.ant-col-lg-pull-15{right:62.5%}.ant-col-lg-offset-15{margin-left:62.5%}.ant-col-lg-order-15{order:15}.ant-col-lg-14{display:block;flex:0 0 58.33333333%;max-width:58.33333333%}.ant-col-lg-push-14{left:58.33333333%}.ant-col-lg-pull-14{right:58.33333333%}.ant-col-lg-offset-14{margin-left:58.33333333%}.ant-col-lg-order-14{order:14}.ant-col-lg-13{display:block;flex:0 0 54.16666667%;max-width:54.16666667%}.ant-col-lg-push-13{left:54.16666667%}.ant-col-lg-pull-13{right:54.16666667%}.ant-col-lg-offset-13{margin-left:54.16666667%}.ant-col-lg-order-13{order:13}.ant-col-lg-12{display:block;flex:0 0 50%;max-width:50%}.ant-col-lg-push-12{left:50%}.ant-col-lg-pull-12{right:50%}.ant-col-lg-offset-12{margin-left:50%}.ant-col-lg-order-12{order:12}.ant-col-lg-11{display:block;flex:0 0 45.83333333%;max-width:45.83333333%}.ant-col-lg-push-11{left:45.83333333%}.ant-col-lg-pull-11{right:45.83333333%}.ant-col-lg-offset-11{margin-left:45.83333333%}.ant-col-lg-order-11{order:11}.ant-col-lg-10{display:block;flex:0 0 41.66666667%;max-width:41.66666667%}.ant-col-lg-push-10{left:41.66666667%}.ant-col-lg-pull-10{right:41.66666667%}.ant-col-lg-offset-10{margin-left:41.66666667%}.ant-col-lg-order-10{order:10}.ant-col-lg-9{display:block;flex:0 0 37.5%;max-width:37.5%}.ant-col-lg-push-9{left:37.5%}.ant-col-lg-pull-9{right:37.5%}.ant-col-lg-offset-9{margin-left:37.5%}.ant-col-lg-order-9{order:9}.ant-col-lg-8{display:block;flex:0 0 33.33333333%;max-width:33.33333333%}.ant-col-lg-push-8{left:33.33333333%}.ant-col-lg-pull-8{right:33.33333333%}.ant-col-lg-offset-8{margin-left:33.33333333%}.ant-col-lg-order-8{order:8}.ant-col-lg-7{display:block;flex:0 0 29.16666667%;max-width:29.16666667%}.ant-col-lg-push-7{left:29.16666667%}.ant-col-lg-pull-7{right:29.16666667%}.ant-col-lg-offset-7{margin-left:29.16666667%}.ant-col-lg-order-7{order:7}.ant-col-lg-6{display:block;flex:0 0 25%;max-width:25%}.ant-col-lg-push-6{left:25%}.ant-col-lg-pull-6{right:25%}.ant-col-lg-offset-6{margin-left:25%}.ant-col-lg-order-6{order:6}.ant-col-lg-5{display:block;flex:0 0 20.83333333%;max-width:20.83333333%}.ant-col-lg-push-5{left:20.83333333%}.ant-col-lg-pull-5{right:20.83333333%}.ant-col-lg-offset-5{margin-left:20.83333333%}.ant-col-lg-order-5{order:5}.ant-col-lg-4{display:block;flex:0 0 16.66666667%;max-width:16.66666667%}.ant-col-lg-push-4{left:16.66666667%}.ant-col-lg-pull-4{right:16.66666667%}.ant-col-lg-offset-4{margin-left:16.66666667%}.ant-col-lg-order-4{order:4}.ant-col-lg-3{display:block;flex:0 0 12.5%;max-width:12.5%}.ant-col-lg-push-3{left:12.5%}.ant-col-lg-pull-3{right:12.5%}.ant-col-lg-offset-3{margin-left:12.5%}.ant-col-lg-order-3{order:3}.ant-col-lg-2{display:block;flex:0 0 8.33333333%;max-width:8.33333333%}.ant-col-lg-push-2{left:8.33333333%}.ant-col-lg-pull-2{right:8.33333333%}.ant-col-lg-offset-2{margin-left:8.33333333%}.ant-col-lg-order-2{order:2}.ant-col-lg-1{display:block;flex:0 0 4.16666667%;max-width:4.16666667%}.ant-col-lg-push-1{left:4.16666667%}.ant-col-lg-pull-1{right:4.16666667%}.ant-col-lg-offset-1{margin-left:4.16666667%}.ant-col-lg-order-1{order:1}.ant-col-lg-0{display:none}.ant-col-push-0{left:auto}.ant-col-pull-0{right:auto}.ant-col-lg-push-0{left:auto}.ant-col-lg-pull-0{right:auto}.ant-col-lg-offset-0{margin-left:0}.ant-col-lg-order-0{order:0}.ant-col-push-0.ant-col-rtl{right:auto}.ant-col-pull-0.ant-col-rtl{left:auto}.ant-col-lg-push-0.ant-col-rtl{right:auto}.ant-col-lg-pull-0.ant-col-rtl{left:auto}.ant-col-lg-offset-0.ant-col-rtl{margin-right:0}.ant-col-lg-push-1.ant-col-rtl{left:auto;right:4.16666667%}.ant-col-lg-pull-1.ant-col-rtl{left:4.16666667%;right:auto}.ant-col-lg-offset-1.ant-col-rtl{margin-left:0;margin-right:4.16666667%}.ant-col-lg-push-2.ant-col-rtl{left:auto;right:8.33333333%}.ant-col-lg-pull-2.ant-col-rtl{left:8.33333333%;right:auto}.ant-col-lg-offset-2.ant-col-rtl{margin-left:0;margin-right:8.33333333%}.ant-col-lg-push-3.ant-col-rtl{left:auto;right:12.5%}.ant-col-lg-pull-3.ant-col-rtl{left:12.5%;right:auto}.ant-col-lg-offset-3.ant-col-rtl{margin-left:0;margin-right:12.5%}.ant-col-lg-push-4.ant-col-rtl{left:auto;right:16.66666667%}.ant-col-lg-pull-4.ant-col-rtl{left:16.66666667%;right:auto}.ant-col-lg-offset-4.ant-col-rtl{margin-left:0;margin-right:16.66666667%}.ant-col-lg-push-5.ant-col-rtl{left:auto;right:20.83333333%}.ant-col-lg-pull-5.ant-col-rtl{left:20.83333333%;right:auto}.ant-col-lg-offset-5.ant-col-rtl{margin-left:0;margin-right:20.83333333%}.ant-col-lg-push-6.ant-col-rtl{left:auto;right:25%}.ant-col-lg-pull-6.ant-col-rtl{left:25%;right:auto}.ant-col-lg-offset-6.ant-col-rtl{margin-left:0;margin-right:25%}.ant-col-lg-push-7.ant-col-rtl{left:auto;right:29.16666667%}.ant-col-lg-pull-7.ant-col-rtl{left:29.16666667%;right:auto}.ant-col-lg-offset-7.ant-col-rtl{margin-left:0;margin-right:29.16666667%}.ant-col-lg-push-8.ant-col-rtl{left:auto;right:33.33333333%}.ant-col-lg-pull-8.ant-col-rtl{left:33.33333333%;right:auto}.ant-col-lg-offset-8.ant-col-rtl{margin-left:0;margin-right:33.33333333%}.ant-col-lg-push-9.ant-col-rtl{left:auto;right:37.5%}.ant-col-lg-pull-9.ant-col-rtl{left:37.5%;right:auto}.ant-col-lg-offset-9.ant-col-rtl{margin-left:0;margin-right:37.5%}.ant-col-lg-push-10.ant-col-rtl{left:auto;right:41.66666667%}.ant-col-lg-pull-10.ant-col-rtl{left:41.66666667%;right:auto}.ant-col-lg-offset-10.ant-col-rtl{margin-left:0;margin-right:41.66666667%}.ant-col-lg-push-11.ant-col-rtl{left:auto;right:45.83333333%}.ant-col-lg-pull-11.ant-col-rtl{left:45.83333333%;right:auto}.ant-col-lg-offset-11.ant-col-rtl{margin-left:0;margin-right:45.83333333%}.ant-col-lg-push-12.ant-col-rtl{left:auto;right:50%}.ant-col-lg-pull-12.ant-col-rtl{left:50%;right:auto}.ant-col-lg-offset-12.ant-col-rtl{margin-left:0;margin-right:50%}.ant-col-lg-push-13.ant-col-rtl{left:auto;right:54.16666667%}.ant-col-lg-pull-13.ant-col-rtl{left:54.16666667%;right:auto}.ant-col-lg-offset-13.ant-col-rtl{margin-left:0;margin-right:54.16666667%}.ant-col-lg-push-14.ant-col-rtl{left:auto;right:58.33333333%}.ant-col-lg-pull-14.ant-col-rtl{left:58.33333333%;right:auto}.ant-col-lg-offset-14.ant-col-rtl{margin-left:0;margin-right:58.33333333%}.ant-col-lg-push-15.ant-col-rtl{left:auto;right:62.5%}.ant-col-lg-pull-15.ant-col-rtl{left:62.5%;right:auto}.ant-col-lg-offset-15.ant-col-rtl{margin-left:0;margin-right:62.5%}.ant-col-lg-push-16.ant-col-rtl{left:auto;right:66.66666667%}.ant-col-lg-pull-16.ant-col-rtl{left:66.66666667%;right:auto}.ant-col-lg-offset-16.ant-col-rtl{margin-left:0;margin-right:66.66666667%}.ant-col-lg-push-17.ant-col-rtl{left:auto;right:70.83333333%}.ant-col-lg-pull-17.ant-col-rtl{left:70.83333333%;right:auto}.ant-col-lg-offset-17.ant-col-rtl{margin-left:0;margin-right:70.83333333%}.ant-col-lg-push-18.ant-col-rtl{left:auto;right:75%}.ant-col-lg-pull-18.ant-col-rtl{left:75%;right:auto}.ant-col-lg-offset-18.ant-col-rtl{margin-left:0;margin-right:75%}.ant-col-lg-push-19.ant-col-rtl{left:auto;right:79.16666667%}.ant-col-lg-pull-19.ant-col-rtl{left:79.16666667%;right:auto}.ant-col-lg-offset-19.ant-col-rtl{margin-left:0;margin-right:79.16666667%}.ant-col-lg-push-20.ant-col-rtl{left:auto;right:83.33333333%}.ant-col-lg-pull-20.ant-col-rtl{left:83.33333333%;right:auto}.ant-col-lg-offset-20.ant-col-rtl{margin-left:0;margin-right:83.33333333%}.ant-col-lg-push-21.ant-col-rtl{left:auto;right:87.5%}.ant-col-lg-pull-21.ant-col-rtl{left:87.5%;right:auto}.ant-col-lg-offset-21.ant-col-rtl{margin-left:0;margin-right:87.5%}.ant-col-lg-push-22.ant-col-rtl{left:auto;right:91.66666667%}.ant-col-lg-pull-22.ant-col-rtl{left:91.66666667%;right:auto}.ant-col-lg-offset-22.ant-col-rtl{margin-left:0;margin-right:91.66666667%}.ant-col-lg-push-23.ant-col-rtl{left:auto;right:95.83333333%}.ant-col-lg-pull-23.ant-col-rtl{left:95.83333333%;right:auto}.ant-col-lg-offset-23.ant-col-rtl{margin-left:0;margin-right:95.83333333%}.ant-col-lg-push-24.ant-col-rtl{left:auto;right:100%}.ant-col-lg-pull-24.ant-col-rtl{left:100%;right:auto}.ant-col-lg-offset-24.ant-col-rtl{margin-left:0;margin-right:100%}}@media (min-width:1200px){.ant-col-xl-24{display:block;flex:0 0 100%;max-width:100%}.ant-col-xl-push-24{left:100%}.ant-col-xl-pull-24{right:100%}.ant-col-xl-offset-24{margin-left:100%}.ant-col-xl-order-24{order:24}.ant-col-xl-23{display:block;flex:0 0 95.83333333%;max-width:95.83333333%}.ant-col-xl-push-23{left:95.83333333%}.ant-col-xl-pull-23{right:95.83333333%}.ant-col-xl-offset-23{margin-left:95.83333333%}.ant-col-xl-order-23{order:23}.ant-col-xl-22{display:block;flex:0 0 91.66666667%;max-width:91.66666667%}.ant-col-xl-push-22{left:91.66666667%}.ant-col-xl-pull-22{right:91.66666667%}.ant-col-xl-offset-22{margin-left:91.66666667%}.ant-col-xl-order-22{order:22}.ant-col-xl-21{display:block;flex:0 0 87.5%;max-width:87.5%}.ant-col-xl-push-21{left:87.5%}.ant-col-xl-pull-21{right:87.5%}.ant-col-xl-offset-21{margin-left:87.5%}.ant-col-xl-order-21{order:21}.ant-col-xl-20{display:block;flex:0 0 83.33333333%;max-width:83.33333333%}.ant-col-xl-push-20{left:83.33333333%}.ant-col-xl-pull-20{right:83.33333333%}.ant-col-xl-offset-20{margin-left:83.33333333%}.ant-col-xl-order-20{order:20}.ant-col-xl-19{display:block;flex:0 0 79.16666667%;max-width:79.16666667%}.ant-col-xl-push-19{left:79.16666667%}.ant-col-xl-pull-19{right:79.16666667%}.ant-col-xl-offset-19{margin-left:79.16666667%}.ant-col-xl-order-19{order:19}.ant-col-xl-18{display:block;flex:0 0 75%;max-width:75%}.ant-col-xl-push-18{left:75%}.ant-col-xl-pull-18{right:75%}.ant-col-xl-offset-18{margin-left:75%}.ant-col-xl-order-18{order:18}.ant-col-xl-17{display:block;flex:0 0 70.83333333%;max-width:70.83333333%}.ant-col-xl-push-17{left:70.83333333%}.ant-col-xl-pull-17{right:70.83333333%}.ant-col-xl-offset-17{margin-left:70.83333333%}.ant-col-xl-order-17{order:17}.ant-col-xl-16{display:block;flex:0 0 66.66666667%;max-width:66.66666667%}.ant-col-xl-push-16{left:66.66666667%}.ant-col-xl-pull-16{right:66.66666667%}.ant-col-xl-offset-16{margin-left:66.66666667%}.ant-col-xl-order-16{order:16}.ant-col-xl-15{display:block;flex:0 0 62.5%;max-width:62.5%}.ant-col-xl-push-15{left:62.5%}.ant-col-xl-pull-15{right:62.5%}.ant-col-xl-offset-15{margin-left:62.5%}.ant-col-xl-order-15{order:15}.ant-col-xl-14{display:block;flex:0 0 58.33333333%;max-width:58.33333333%}.ant-col-xl-push-14{left:58.33333333%}.ant-col-xl-pull-14{right:58.33333333%}.ant-col-xl-offset-14{margin-left:58.33333333%}.ant-col-xl-order-14{order:14}.ant-col-xl-13{display:block;flex:0 0 54.16666667%;max-width:54.16666667%}.ant-col-xl-push-13{left:54.16666667%}.ant-col-xl-pull-13{right:54.16666667%}.ant-col-xl-offset-13{margin-left:54.16666667%}.ant-col-xl-order-13{order:13}.ant-col-xl-12{display:block;flex:0 0 50%;max-width:50%}.ant-col-xl-push-12{left:50%}.ant-col-xl-pull-12{right:50%}.ant-col-xl-offset-12{margin-left:50%}.ant-col-xl-order-12{order:12}.ant-col-xl-11{display:block;flex:0 0 45.83333333%;max-width:45.83333333%}.ant-col-xl-push-11{left:45.83333333%}.ant-col-xl-pull-11{right:45.83333333%}.ant-col-xl-offset-11{margin-left:45.83333333%}.ant-col-xl-order-11{order:11}.ant-col-xl-10{display:block;flex:0 0 41.66666667%;max-width:41.66666667%}.ant-col-xl-push-10{left:41.66666667%}.ant-col-xl-pull-10{right:41.66666667%}.ant-col-xl-offset-10{margin-left:41.66666667%}.ant-col-xl-order-10{order:10}.ant-col-xl-9{display:block;flex:0 0 37.5%;max-width:37.5%}.ant-col-xl-push-9{left:37.5%}.ant-col-xl-pull-9{right:37.5%}.ant-col-xl-offset-9{margin-left:37.5%}.ant-col-xl-order-9{order:9}.ant-col-xl-8{display:block;flex:0 0 33.33333333%;max-width:33.33333333%}.ant-col-xl-push-8{left:33.33333333%}.ant-col-xl-pull-8{right:33.33333333%}.ant-col-xl-offset-8{margin-left:33.33333333%}.ant-col-xl-order-8{order:8}.ant-col-xl-7{display:block;flex:0 0 29.16666667%;max-width:29.16666667%}.ant-col-xl-push-7{left:29.16666667%}.ant-col-xl-pull-7{right:29.16666667%}.ant-col-xl-offset-7{margin-left:29.16666667%}.ant-col-xl-order-7{order:7}.ant-col-xl-6{display:block;flex:0 0 25%;max-width:25%}.ant-col-xl-push-6{left:25%}.ant-col-xl-pull-6{right:25%}.ant-col-xl-offset-6{margin-left:25%}.ant-col-xl-order-6{order:6}.ant-col-xl-5{display:block;flex:0 0 20.83333333%;max-width:20.83333333%}.ant-col-xl-push-5{left:20.83333333%}.ant-col-xl-pull-5{right:20.83333333%}.ant-col-xl-offset-5{margin-left:20.83333333%}.ant-col-xl-order-5{order:5}.ant-col-xl-4{display:block;flex:0 0 16.66666667%;max-width:16.66666667%}.ant-col-xl-push-4{left:16.66666667%}.ant-col-xl-pull-4{right:16.66666667%}.ant-col-xl-offset-4{margin-left:16.66666667%}.ant-col-xl-order-4{order:4}.ant-col-xl-3{display:block;flex:0 0 12.5%;max-width:12.5%}.ant-col-xl-push-3{left:12.5%}.ant-col-xl-pull-3{right:12.5%}.ant-col-xl-offset-3{margin-left:12.5%}.ant-col-xl-order-3{order:3}.ant-col-xl-2{display:block;flex:0 0 8.33333333%;max-width:8.33333333%}.ant-col-xl-push-2{left:8.33333333%}.ant-col-xl-pull-2{right:8.33333333%}.ant-col-xl-offset-2{margin-left:8.33333333%}.ant-col-xl-order-2{order:2}.ant-col-xl-1{display:block;flex:0 0 4.16666667%;max-width:4.16666667%}.ant-col-xl-push-1{left:4.16666667%}.ant-col-xl-pull-1{right:4.16666667%}.ant-col-xl-offset-1{margin-left:4.16666667%}.ant-col-xl-order-1{order:1}.ant-col-xl-0{display:none}.ant-col-push-0{left:auto}.ant-col-pull-0{right:auto}.ant-col-xl-push-0{left:auto}.ant-col-xl-pull-0{right:auto}.ant-col-xl-offset-0{margin-left:0}.ant-col-xl-order-0{order:0}.ant-col-push-0.ant-col-rtl{right:auto}.ant-col-pull-0.ant-col-rtl{left:auto}.ant-col-xl-push-0.ant-col-rtl{right:auto}.ant-col-xl-pull-0.ant-col-rtl{left:auto}.ant-col-xl-offset-0.ant-col-rtl{margin-right:0}.ant-col-xl-push-1.ant-col-rtl{left:auto;right:4.16666667%}.ant-col-xl-pull-1.ant-col-rtl{left:4.16666667%;right:auto}.ant-col-xl-offset-1.ant-col-rtl{margin-left:0;margin-right:4.16666667%}.ant-col-xl-push-2.ant-col-rtl{left:auto;right:8.33333333%}.ant-col-xl-pull-2.ant-col-rtl{left:8.33333333%;right:auto}.ant-col-xl-offset-2.ant-col-rtl{margin-left:0;margin-right:8.33333333%}.ant-col-xl-push-3.ant-col-rtl{left:auto;right:12.5%}.ant-col-xl-pull-3.ant-col-rtl{left:12.5%;right:auto}.ant-col-xl-offset-3.ant-col-rtl{margin-left:0;margin-right:12.5%}.ant-col-xl-push-4.ant-col-rtl{left:auto;right:16.66666667%}.ant-col-xl-pull-4.ant-col-rtl{left:16.66666667%;right:auto}.ant-col-xl-offset-4.ant-col-rtl{margin-left:0;margin-right:16.66666667%}.ant-col-xl-push-5.ant-col-rtl{left:auto;right:20.83333333%}.ant-col-xl-pull-5.ant-col-rtl{left:20.83333333%;right:auto}.ant-col-xl-offset-5.ant-col-rtl{margin-left:0;margin-right:20.83333333%}.ant-col-xl-push-6.ant-col-rtl{left:auto;right:25%}.ant-col-xl-pull-6.ant-col-rtl{left:25%;right:auto}.ant-col-xl-offset-6.ant-col-rtl{margin-left:0;margin-right:25%}.ant-col-xl-push-7.ant-col-rtl{left:auto;right:29.16666667%}.ant-col-xl-pull-7.ant-col-rtl{left:29.16666667%;right:auto}.ant-col-xl-offset-7.ant-col-rtl{margin-left:0;margin-right:29.16666667%}.ant-col-xl-push-8.ant-col-rtl{left:auto;right:33.33333333%}.ant-col-xl-pull-8.ant-col-rtl{left:33.33333333%;right:auto}.ant-col-xl-offset-8.ant-col-rtl{margin-left:0;margin-right:33.33333333%}.ant-col-xl-push-9.ant-col-rtl{left:auto;right:37.5%}.ant-col-xl-pull-9.ant-col-rtl{left:37.5%;right:auto}.ant-col-xl-offset-9.ant-col-rtl{margin-left:0;margin-right:37.5%}.ant-col-xl-push-10.ant-col-rtl{left:auto;right:41.66666667%}.ant-col-xl-pull-10.ant-col-rtl{left:41.66666667%;right:auto}.ant-col-xl-offset-10.ant-col-rtl{margin-left:0;margin-right:41.66666667%}.ant-col-xl-push-11.ant-col-rtl{left:auto;right:45.83333333%}.ant-col-xl-pull-11.ant-col-rtl{left:45.83333333%;right:auto}.ant-col-xl-offset-11.ant-col-rtl{margin-left:0;margin-right:45.83333333%}.ant-col-xl-push-12.ant-col-rtl{left:auto;right:50%}.ant-col-xl-pull-12.ant-col-rtl{left:50%;right:auto}.ant-col-xl-offset-12.ant-col-rtl{margin-left:0;margin-right:50%}.ant-col-xl-push-13.ant-col-rtl{left:auto;right:54.16666667%}.ant-col-xl-pull-13.ant-col-rtl{left:54.16666667%;right:auto}.ant-col-xl-offset-13.ant-col-rtl{margin-left:0;margin-right:54.16666667%}.ant-col-xl-push-14.ant-col-rtl{left:auto;right:58.33333333%}.ant-col-xl-pull-14.ant-col-rtl{left:58.33333333%;right:auto}.ant-col-xl-offset-14.ant-col-rtl{margin-left:0;margin-right:58.33333333%}.ant-col-xl-push-15.ant-col-rtl{left:auto;right:62.5%}.ant-col-xl-pull-15.ant-col-rtl{left:62.5%;right:auto}.ant-col-xl-offset-15.ant-col-rtl{margin-left:0;margin-right:62.5%}.ant-col-xl-push-16.ant-col-rtl{left:auto;right:66.66666667%}.ant-col-xl-pull-16.ant-col-rtl{left:66.66666667%;right:auto}.ant-col-xl-offset-16.ant-col-rtl{margin-left:0;margin-right:66.66666667%}.ant-col-xl-push-17.ant-col-rtl{left:auto;right:70.83333333%}.ant-col-xl-pull-17.ant-col-rtl{left:70.83333333%;right:auto}.ant-col-xl-offset-17.ant-col-rtl{margin-left:0;margin-right:70.83333333%}.ant-col-xl-push-18.ant-col-rtl{left:auto;right:75%}.ant-col-xl-pull-18.ant-col-rtl{left:75%;right:auto}.ant-col-xl-offset-18.ant-col-rtl{margin-left:0;margin-right:75%}.ant-col-xl-push-19.ant-col-rtl{left:auto;right:79.16666667%}.ant-col-xl-pull-19.ant-col-rtl{left:79.16666667%;right:auto}.ant-col-xl-offset-19.ant-col-rtl{margin-left:0;margin-right:79.16666667%}.ant-col-xl-push-20.ant-col-rtl{left:auto;right:83.33333333%}.ant-col-xl-pull-20.ant-col-rtl{left:83.33333333%;right:auto}.ant-col-xl-offset-20.ant-col-rtl{margin-left:0;margin-right:83.33333333%}.ant-col-xl-push-21.ant-col-rtl{left:auto;right:87.5%}.ant-col-xl-pull-21.ant-col-rtl{left:87.5%;right:auto}.ant-col-xl-offset-21.ant-col-rtl{margin-left:0;margin-right:87.5%}.ant-col-xl-push-22.ant-col-rtl{left:auto;right:91.66666667%}.ant-col-xl-pull-22.ant-col-rtl{left:91.66666667%;right:auto}.ant-col-xl-offset-22.ant-col-rtl{margin-left:0;margin-right:91.66666667%}.ant-col-xl-push-23.ant-col-rtl{left:auto;right:95.83333333%}.ant-col-xl-pull-23.ant-col-rtl{left:95.83333333%;right:auto}.ant-col-xl-offset-23.ant-col-rtl{margin-left:0;margin-right:95.83333333%}.ant-col-xl-push-24.ant-col-rtl{left:auto;right:100%}.ant-col-xl-pull-24.ant-col-rtl{left:100%;right:auto}.ant-col-xl-offset-24.ant-col-rtl{margin-left:0;margin-right:100%}}@media (min-width:1600px){.ant-col-xxl-24{display:block;flex:0 0 100%;max-width:100%}.ant-col-xxl-push-24{left:100%}.ant-col-xxl-pull-24{right:100%}.ant-col-xxl-offset-24{margin-left:100%}.ant-col-xxl-order-24{order:24}.ant-col-xxl-23{display:block;flex:0 0 95.83333333%;max-width:95.83333333%}.ant-col-xxl-push-23{left:95.83333333%}.ant-col-xxl-pull-23{right:95.83333333%}.ant-col-xxl-offset-23{margin-left:95.83333333%}.ant-col-xxl-order-23{order:23}.ant-col-xxl-22{display:block;flex:0 0 91.66666667%;max-width:91.66666667%}.ant-col-xxl-push-22{left:91.66666667%}.ant-col-xxl-pull-22{right:91.66666667%}.ant-col-xxl-offset-22{margin-left:91.66666667%}.ant-col-xxl-order-22{order:22}.ant-col-xxl-21{display:block;flex:0 0 87.5%;max-width:87.5%}.ant-col-xxl-push-21{left:87.5%}.ant-col-xxl-pull-21{right:87.5%}.ant-col-xxl-offset-21{margin-left:87.5%}.ant-col-xxl-order-21{order:21}.ant-col-xxl-20{display:block;flex:0 0 83.33333333%;max-width:83.33333333%}.ant-col-xxl-push-20{left:83.33333333%}.ant-col-xxl-pull-20{right:83.33333333%}.ant-col-xxl-offset-20{margin-left:83.33333333%}.ant-col-xxl-order-20{order:20}.ant-col-xxl-19{display:block;flex:0 0 79.16666667%;max-width:79.16666667%}.ant-col-xxl-push-19{left:79.16666667%}.ant-col-xxl-pull-19{right:79.16666667%}.ant-col-xxl-offset-19{margin-left:79.16666667%}.ant-col-xxl-order-19{order:19}.ant-col-xxl-18{display:block;flex:0 0 75%;max-width:75%}.ant-col-xxl-push-18{left:75%}.ant-col-xxl-pull-18{right:75%}.ant-col-xxl-offset-18{margin-left:75%}.ant-col-xxl-order-18{order:18}.ant-col-xxl-17{display:block;flex:0 0 70.83333333%;max-width:70.83333333%}.ant-col-xxl-push-17{left:70.83333333%}.ant-col-xxl-pull-17{right:70.83333333%}.ant-col-xxl-offset-17{margin-left:70.83333333%}.ant-col-xxl-order-17{order:17}.ant-col-xxl-16{display:block;flex:0 0 66.66666667%;max-width:66.66666667%}.ant-col-xxl-push-16{left:66.66666667%}.ant-col-xxl-pull-16{right:66.66666667%}.ant-col-xxl-offset-16{margin-left:66.66666667%}.ant-col-xxl-order-16{order:16}.ant-col-xxl-15{display:block;flex:0 0 62.5%;max-width:62.5%}.ant-col-xxl-push-15{left:62.5%}.ant-col-xxl-pull-15{right:62.5%}.ant-col-xxl-offset-15{margin-left:62.5%}.ant-col-xxl-order-15{order:15}.ant-col-xxl-14{display:block;flex:0 0 58.33333333%;max-width:58.33333333%}.ant-col-xxl-push-14{left:58.33333333%}.ant-col-xxl-pull-14{right:58.33333333%}.ant-col-xxl-offset-14{margin-left:58.33333333%}.ant-col-xxl-order-14{order:14}.ant-col-xxl-13{display:block;flex:0 0 54.16666667%;max-width:54.16666667%}.ant-col-xxl-push-13{left:54.16666667%}.ant-col-xxl-pull-13{right:54.16666667%}.ant-col-xxl-offset-13{margin-left:54.16666667%}.ant-col-xxl-order-13{order:13}.ant-col-xxl-12{display:block;flex:0 0 50%;max-width:50%}.ant-col-xxl-push-12{left:50%}.ant-col-xxl-pull-12{right:50%}.ant-col-xxl-offset-12{margin-left:50%}.ant-col-xxl-order-12{order:12}.ant-col-xxl-11{display:block;flex:0 0 45.83333333%;max-width:45.83333333%}.ant-col-xxl-push-11{left:45.83333333%}.ant-col-xxl-pull-11{right:45.83333333%}.ant-col-xxl-offset-11{margin-left:45.83333333%}.ant-col-xxl-order-11{order:11}.ant-col-xxl-10{display:block;flex:0 0 41.66666667%;max-width:41.66666667%}.ant-col-xxl-push-10{left:41.66666667%}.ant-col-xxl-pull-10{right:41.66666667%}.ant-col-xxl-offset-10{margin-left:41.66666667%}.ant-col-xxl-order-10{order:10}.ant-col-xxl-9{display:block;flex:0 0 37.5%;max-width:37.5%}.ant-col-xxl-push-9{left:37.5%}.ant-col-xxl-pull-9{right:37.5%}.ant-col-xxl-offset-9{margin-left:37.5%}.ant-col-xxl-order-9{order:9}.ant-col-xxl-8{display:block;flex:0 0 33.33333333%;max-width:33.33333333%}.ant-col-xxl-push-8{left:33.33333333%}.ant-col-xxl-pull-8{right:33.33333333%}.ant-col-xxl-offset-8{margin-left:33.33333333%}.ant-col-xxl-order-8{order:8}.ant-col-xxl-7{display:block;flex:0 0 29.16666667%;max-width:29.16666667%}.ant-col-xxl-push-7{left:29.16666667%}.ant-col-xxl-pull-7{right:29.16666667%}.ant-col-xxl-offset-7{margin-left:29.16666667%}.ant-col-xxl-order-7{order:7}.ant-col-xxl-6{display:block;flex:0 0 25%;max-width:25%}.ant-col-xxl-push-6{left:25%}.ant-col-xxl-pull-6{right:25%}.ant-col-xxl-offset-6{margin-left:25%}.ant-col-xxl-order-6{order:6}.ant-col-xxl-5{display:block;flex:0 0 20.83333333%;max-width:20.83333333%}.ant-col-xxl-push-5{left:20.83333333%}.ant-col-xxl-pull-5{right:20.83333333%}.ant-col-xxl-offset-5{margin-left:20.83333333%}.ant-col-xxl-order-5{order:5}.ant-col-xxl-4{display:block;flex:0 0 16.66666667%;max-width:16.66666667%}.ant-col-xxl-push-4{left:16.66666667%}.ant-col-xxl-pull-4{right:16.66666667%}.ant-col-xxl-offset-4{margin-left:16.66666667%}.ant-col-xxl-order-4{order:4}.ant-col-xxl-3{display:block;flex:0 0 12.5%;max-width:12.5%}.ant-col-xxl-push-3{left:12.5%}.ant-col-xxl-pull-3{right:12.5%}.ant-col-xxl-offset-3{margin-left:12.5%}.ant-col-xxl-order-3{order:3}.ant-col-xxl-2{display:block;flex:0 0 8.33333333%;max-width:8.33333333%}.ant-col-xxl-push-2{left:8.33333333%}.ant-col-xxl-pull-2{right:8.33333333%}.ant-col-xxl-offset-2{margin-left:8.33333333%}.ant-col-xxl-order-2{order:2}.ant-col-xxl-1{display:block;flex:0 0 4.16666667%;max-width:4.16666667%}.ant-col-xxl-push-1{left:4.16666667%}.ant-col-xxl-pull-1{right:4.16666667%}.ant-col-xxl-offset-1{margin-left:4.16666667%}.ant-col-xxl-order-1{order:1}.ant-col-xxl-0{display:none}.ant-col-push-0{left:auto}.ant-col-pull-0{right:auto}.ant-col-xxl-push-0{left:auto}.ant-col-xxl-pull-0{right:auto}.ant-col-xxl-offset-0{margin-left:0}.ant-col-xxl-order-0{order:0}.ant-col-push-0.ant-col-rtl{right:auto}.ant-col-pull-0.ant-col-rtl{left:auto}.ant-col-xxl-push-0.ant-col-rtl{right:auto}.ant-col-xxl-pull-0.ant-col-rtl{left:auto}.ant-col-xxl-offset-0.ant-col-rtl{margin-right:0}.ant-col-xxl-push-1.ant-col-rtl{left:auto;right:4.16666667%}.ant-col-xxl-pull-1.ant-col-rtl{left:4.16666667%;right:auto}.ant-col-xxl-offset-1.ant-col-rtl{margin-left:0;margin-right:4.16666667%}.ant-col-xxl-push-2.ant-col-rtl{left:auto;right:8.33333333%}.ant-col-xxl-pull-2.ant-col-rtl{left:8.33333333%;right:auto}.ant-col-xxl-offset-2.ant-col-rtl{margin-left:0;margin-right:8.33333333%}.ant-col-xxl-push-3.ant-col-rtl{left:auto;right:12.5%}.ant-col-xxl-pull-3.ant-col-rtl{left:12.5%;right:auto}.ant-col-xxl-offset-3.ant-col-rtl{margin-left:0;margin-right:12.5%}.ant-col-xxl-push-4.ant-col-rtl{left:auto;right:16.66666667%}.ant-col-xxl-pull-4.ant-col-rtl{left:16.66666667%;right:auto}.ant-col-xxl-offset-4.ant-col-rtl{margin-left:0;margin-right:16.66666667%}.ant-col-xxl-push-5.ant-col-rtl{left:auto;right:20.83333333%}.ant-col-xxl-pull-5.ant-col-rtl{left:20.83333333%;right:auto}.ant-col-xxl-offset-5.ant-col-rtl{margin-left:0;margin-right:20.83333333%}.ant-col-xxl-push-6.ant-col-rtl{left:auto;right:25%}.ant-col-xxl-pull-6.ant-col-rtl{left:25%;right:auto}.ant-col-xxl-offset-6.ant-col-rtl{margin-left:0;margin-right:25%}.ant-col-xxl-push-7.ant-col-rtl{left:auto;right:29.16666667%}.ant-col-xxl-pull-7.ant-col-rtl{left:29.16666667%;right:auto}.ant-col-xxl-offset-7.ant-col-rtl{margin-left:0;margin-right:29.16666667%}.ant-col-xxl-push-8.ant-col-rtl{left:auto;right:33.33333333%}.ant-col-xxl-pull-8.ant-col-rtl{left:33.33333333%;right:auto}.ant-col-xxl-offset-8.ant-col-rtl{margin-left:0;margin-right:33.33333333%}.ant-col-xxl-push-9.ant-col-rtl{left:auto;right:37.5%}.ant-col-xxl-pull-9.ant-col-rtl{left:37.5%;right:auto}.ant-col-xxl-offset-9.ant-col-rtl{margin-left:0;margin-right:37.5%}.ant-col-xxl-push-10.ant-col-rtl{left:auto;right:41.66666667%}.ant-col-xxl-pull-10.ant-col-rtl{left:41.66666667%;right:auto}.ant-col-xxl-offset-10.ant-col-rtl{margin-left:0;margin-right:41.66666667%}.ant-col-xxl-push-11.ant-col-rtl{left:auto;right:45.83333333%}.ant-col-xxl-pull-11.ant-col-rtl{left:45.83333333%;right:auto}.ant-col-xxl-offset-11.ant-col-rtl{margin-left:0;margin-right:45.83333333%}.ant-col-xxl-push-12.ant-col-rtl{left:auto;right:50%}.ant-col-xxl-pull-12.ant-col-rtl{left:50%;right:auto}.ant-col-xxl-offset-12.ant-col-rtl{margin-left:0;margin-right:50%}.ant-col-xxl-push-13.ant-col-rtl{left:auto;right:54.16666667%}.ant-col-xxl-pull-13.ant-col-rtl{left:54.16666667%;right:auto}.ant-col-xxl-offset-13.ant-col-rtl{margin-left:0;margin-right:54.16666667%}.ant-col-xxl-push-14.ant-col-rtl{left:auto;right:58.33333333%}.ant-col-xxl-pull-14.ant-col-rtl{left:58.33333333%;right:auto}.ant-col-xxl-offset-14.ant-col-rtl{margin-left:0;margin-right:58.33333333%}.ant-col-xxl-push-15.ant-col-rtl{left:auto;right:62.5%}.ant-col-xxl-pull-15.ant-col-rtl{left:62.5%;right:auto}.ant-col-xxl-offset-15.ant-col-rtl{margin-left:0;margin-right:62.5%}.ant-col-xxl-push-16.ant-col-rtl{left:auto;right:66.66666667%}.ant-col-xxl-pull-16.ant-col-rtl{left:66.66666667%;right:auto}.ant-col-xxl-offset-16.ant-col-rtl{margin-left:0;margin-right:66.66666667%}.ant-col-xxl-push-17.ant-col-rtl{left:auto;right:70.83333333%}.ant-col-xxl-pull-17.ant-col-rtl{left:70.83333333%;right:auto}.ant-col-xxl-offset-17.ant-col-rtl{margin-left:0;margin-right:70.83333333%}.ant-col-xxl-push-18.ant-col-rtl{left:auto;right:75%}.ant-col-xxl-pull-18.ant-col-rtl{left:75%;right:auto}.ant-col-xxl-offset-18.ant-col-rtl{margin-left:0;margin-right:75%}.ant-col-xxl-push-19.ant-col-rtl{left:auto;right:79.16666667%}.ant-col-xxl-pull-19.ant-col-rtl{left:79.16666667%;right:auto}.ant-col-xxl-offset-19.ant-col-rtl{margin-left:0;margin-right:79.16666667%}.ant-col-xxl-push-20.ant-col-rtl{left:auto;right:83.33333333%}.ant-col-xxl-pull-20.ant-col-rtl{left:83.33333333%;right:auto}.ant-col-xxl-offset-20.ant-col-rtl{margin-left:0;margin-right:83.33333333%}.ant-col-xxl-push-21.ant-col-rtl{left:auto;right:87.5%}.ant-col-xxl-pull-21.ant-col-rtl{left:87.5%;right:auto}.ant-col-xxl-offset-21.ant-col-rtl{margin-left:0;margin-right:87.5%}.ant-col-xxl-push-22.ant-col-rtl{left:auto;right:91.66666667%}.ant-col-xxl-pull-22.ant-col-rtl{left:91.66666667%;right:auto}.ant-col-xxl-offset-22.ant-col-rtl{margin-left:0;margin-right:91.66666667%}.ant-col-xxl-push-23.ant-col-rtl{left:auto;right:95.83333333%}.ant-col-xxl-pull-23.ant-col-rtl{left:95.83333333%;right:auto}.ant-col-xxl-offset-23.ant-col-rtl{margin-left:0;margin-right:95.83333333%}.ant-col-xxl-push-24.ant-col-rtl{left:auto;right:100%}.ant-col-xxl-pull-24.ant-col-rtl{left:100%;right:auto}.ant-col-xxl-offset-24.ant-col-rtl{margin-left:0;margin-right:100%}}@media (min-width:2000px){.ant-col-xxxl-24{display:block;flex:0 0 100%;max-width:100%}.ant-col-xxxl-push-24{left:100%}.ant-col-xxxl-pull-24{right:100%}.ant-col-xxxl-offset-24{margin-left:100%}.ant-col-xxxl-order-24{order:24}.ant-col-xxxl-23{display:block;flex:0 0 95.83333333%;max-width:95.83333333%}.ant-col-xxxl-push-23{left:95.83333333%}.ant-col-xxxl-pull-23{right:95.83333333%}.ant-col-xxxl-offset-23{margin-left:95.83333333%}.ant-col-xxxl-order-23{order:23}.ant-col-xxxl-22{display:block;flex:0 0 91.66666667%;max-width:91.66666667%}.ant-col-xxxl-push-22{left:91.66666667%}.ant-col-xxxl-pull-22{right:91.66666667%}.ant-col-xxxl-offset-22{margin-left:91.66666667%}.ant-col-xxxl-order-22{order:22}.ant-col-xxxl-21{display:block;flex:0 0 87.5%;max-width:87.5%}.ant-col-xxxl-push-21{left:87.5%}.ant-col-xxxl-pull-21{right:87.5%}.ant-col-xxxl-offset-21{margin-left:87.5%}.ant-col-xxxl-order-21{order:21}.ant-col-xxxl-20{display:block;flex:0 0 83.33333333%;max-width:83.33333333%}.ant-col-xxxl-push-20{left:83.33333333%}.ant-col-xxxl-pull-20{right:83.33333333%}.ant-col-xxxl-offset-20{margin-left:83.33333333%}.ant-col-xxxl-order-20{order:20}.ant-col-xxxl-19{display:block;flex:0 0 79.16666667%;max-width:79.16666667%}.ant-col-xxxl-push-19{left:79.16666667%}.ant-col-xxxl-pull-19{right:79.16666667%}.ant-col-xxxl-offset-19{margin-left:79.16666667%}.ant-col-xxxl-order-19{order:19}.ant-col-xxxl-18{display:block;flex:0 0 75%;max-width:75%}.ant-col-xxxl-push-18{left:75%}.ant-col-xxxl-pull-18{right:75%}.ant-col-xxxl-offset-18{margin-left:75%}.ant-col-xxxl-order-18{order:18}.ant-col-xxxl-17{display:block;flex:0 0 70.83333333%;max-width:70.83333333%}.ant-col-xxxl-push-17{left:70.83333333%}.ant-col-xxxl-pull-17{right:70.83333333%}.ant-col-xxxl-offset-17{margin-left:70.83333333%}.ant-col-xxxl-order-17{order:17}.ant-col-xxxl-16{display:block;flex:0 0 66.66666667%;max-width:66.66666667%}.ant-col-xxxl-push-16{left:66.66666667%}.ant-col-xxxl-pull-16{right:66.66666667%}.ant-col-xxxl-offset-16{margin-left:66.66666667%}.ant-col-xxxl-order-16{order:16}.ant-col-xxxl-15{display:block;flex:0 0 62.5%;max-width:62.5%}.ant-col-xxxl-push-15{left:62.5%}.ant-col-xxxl-pull-15{right:62.5%}.ant-col-xxxl-offset-15{margin-left:62.5%}.ant-col-xxxl-order-15{order:15}.ant-col-xxxl-14{display:block;flex:0 0 58.33333333%;max-width:58.33333333%}.ant-col-xxxl-push-14{left:58.33333333%}.ant-col-xxxl-pull-14{right:58.33333333%}.ant-col-xxxl-offset-14{margin-left:58.33333333%}.ant-col-xxxl-order-14{order:14}.ant-col-xxxl-13{display:block;flex:0 0 54.16666667%;max-width:54.16666667%}.ant-col-xxxl-push-13{left:54.16666667%}.ant-col-xxxl-pull-13{right:54.16666667%}.ant-col-xxxl-offset-13{margin-left:54.16666667%}.ant-col-xxxl-order-13{order:13}.ant-col-xxxl-12{display:block;flex:0 0 50%;max-width:50%}.ant-col-xxxl-push-12{left:50%}.ant-col-xxxl-pull-12{right:50%}.ant-col-xxxl-offset-12{margin-left:50%}.ant-col-xxxl-order-12{order:12}.ant-col-xxxl-11{display:block;flex:0 0 45.83333333%;max-width:45.83333333%}.ant-col-xxxl-push-11{left:45.83333333%}.ant-col-xxxl-pull-11{right:45.83333333%}.ant-col-xxxl-offset-11{margin-left:45.83333333%}.ant-col-xxxl-order-11{order:11}.ant-col-xxxl-10{display:block;flex:0 0 41.66666667%;max-width:41.66666667%}.ant-col-xxxl-push-10{left:41.66666667%}.ant-col-xxxl-pull-10{right:41.66666667%}.ant-col-xxxl-offset-10{margin-left:41.66666667%}.ant-col-xxxl-order-10{order:10}.ant-col-xxxl-9{display:block;flex:0 0 37.5%;max-width:37.5%}.ant-col-xxxl-push-9{left:37.5%}.ant-col-xxxl-pull-9{right:37.5%}.ant-col-xxxl-offset-9{margin-left:37.5%}.ant-col-xxxl-order-9{order:9}.ant-col-xxxl-8{display:block;flex:0 0 33.33333333%;max-width:33.33333333%}.ant-col-xxxl-push-8{left:33.33333333%}.ant-col-xxxl-pull-8{right:33.33333333%}.ant-col-xxxl-offset-8{margin-left:33.33333333%}.ant-col-xxxl-order-8{order:8}.ant-col-xxxl-7{display:block;flex:0 0 29.16666667%;max-width:29.16666667%}.ant-col-xxxl-push-7{left:29.16666667%}.ant-col-xxxl-pull-7{right:29.16666667%}.ant-col-xxxl-offset-7{margin-left:29.16666667%}.ant-col-xxxl-order-7{order:7}.ant-col-xxxl-6{display:block;flex:0 0 25%;max-width:25%}.ant-col-xxxl-push-6{left:25%}.ant-col-xxxl-pull-6{right:25%}.ant-col-xxxl-offset-6{margin-left:25%}.ant-col-xxxl-order-6{order:6}.ant-col-xxxl-5{display:block;flex:0 0 20.83333333%;max-width:20.83333333%}.ant-col-xxxl-push-5{left:20.83333333%}.ant-col-xxxl-pull-5{right:20.83333333%}.ant-col-xxxl-offset-5{margin-left:20.83333333%}.ant-col-xxxl-order-5{order:5}.ant-col-xxxl-4{display:block;flex:0 0 16.66666667%;max-width:16.66666667%}.ant-col-xxxl-push-4{left:16.66666667%}.ant-col-xxxl-pull-4{right:16.66666667%}.ant-col-xxxl-offset-4{margin-left:16.66666667%}.ant-col-xxxl-order-4{order:4}.ant-col-xxxl-3{display:block;flex:0 0 12.5%;max-width:12.5%}.ant-col-xxxl-push-3{left:12.5%}.ant-col-xxxl-pull-3{right:12.5%}.ant-col-xxxl-offset-3{margin-left:12.5%}.ant-col-xxxl-order-3{order:3}.ant-col-xxxl-2{display:block;flex:0 0 8.33333333%;max-width:8.33333333%}.ant-col-xxxl-push-2{left:8.33333333%}.ant-col-xxxl-pull-2{right:8.33333333%}.ant-col-xxxl-offset-2{margin-left:8.33333333%}.ant-col-xxxl-order-2{order:2}.ant-col-xxxl-1{display:block;flex:0 0 4.16666667%;max-width:4.16666667%}.ant-col-xxxl-push-1{left:4.16666667%}.ant-col-xxxl-pull-1{right:4.16666667%}.ant-col-xxxl-offset-1{margin-left:4.16666667%}.ant-col-xxxl-order-1{order:1}.ant-col-xxxl-0{display:none}.ant-col-push-0{left:auto}.ant-col-pull-0{right:auto}.ant-col-xxxl-push-0{left:auto}.ant-col-xxxl-pull-0{right:auto}.ant-col-xxxl-offset-0{margin-left:0}.ant-col-xxxl-order-0{order:0}.ant-col-push-0.ant-col-rtl{right:auto}.ant-col-pull-0.ant-col-rtl{left:auto}.ant-col-xxxl-push-0.ant-col-rtl{right:auto}.ant-col-xxxl-pull-0.ant-col-rtl{left:auto}.ant-col-xxxl-offset-0.ant-col-rtl{margin-right:0}.ant-col-xxxl-push-1.ant-col-rtl{left:auto;right:4.16666667%}.ant-col-xxxl-pull-1.ant-col-rtl{left:4.16666667%;right:auto}.ant-col-xxxl-offset-1.ant-col-rtl{margin-left:0;margin-right:4.16666667%}.ant-col-xxxl-push-2.ant-col-rtl{left:auto;right:8.33333333%}.ant-col-xxxl-pull-2.ant-col-rtl{left:8.33333333%;right:auto}.ant-col-xxxl-offset-2.ant-col-rtl{margin-left:0;margin-right:8.33333333%}.ant-col-xxxl-push-3.ant-col-rtl{left:auto;right:12.5%}.ant-col-xxxl-pull-3.ant-col-rtl{left:12.5%;right:auto}.ant-col-xxxl-offset-3.ant-col-rtl{margin-left:0;margin-right:12.5%}.ant-col-xxxl-push-4.ant-col-rtl{left:auto;right:16.66666667%}.ant-col-xxxl-pull-4.ant-col-rtl{left:16.66666667%;right:auto}.ant-col-xxxl-offset-4.ant-col-rtl{margin-left:0;margin-right:16.66666667%}.ant-col-xxxl-push-5.ant-col-rtl{left:auto;right:20.83333333%}.ant-col-xxxl-pull-5.ant-col-rtl{left:20.83333333%;right:auto}.ant-col-xxxl-offset-5.ant-col-rtl{margin-left:0;margin-right:20.83333333%}.ant-col-xxxl-push-6.ant-col-rtl{left:auto;right:25%}.ant-col-xxxl-pull-6.ant-col-rtl{left:25%;right:auto}.ant-col-xxxl-offset-6.ant-col-rtl{margin-left:0;margin-right:25%}.ant-col-xxxl-push-7.ant-col-rtl{left:auto;right:29.16666667%}.ant-col-xxxl-pull-7.ant-col-rtl{left:29.16666667%;right:auto}.ant-col-xxxl-offset-7.ant-col-rtl{margin-left:0;margin-right:29.16666667%}.ant-col-xxxl-push-8.ant-col-rtl{left:auto;right:33.33333333%}.ant-col-xxxl-pull-8.ant-col-rtl{left:33.33333333%;right:auto}.ant-col-xxxl-offset-8.ant-col-rtl{margin-left:0;margin-right:33.33333333%}.ant-col-xxxl-push-9.ant-col-rtl{left:auto;right:37.5%}.ant-col-xxxl-pull-9.ant-col-rtl{left:37.5%;right:auto}.ant-col-xxxl-offset-9.ant-col-rtl{margin-left:0;margin-right:37.5%}.ant-col-xxxl-push-10.ant-col-rtl{left:auto;right:41.66666667%}.ant-col-xxxl-pull-10.ant-col-rtl{left:41.66666667%;right:auto}.ant-col-xxxl-offset-10.ant-col-rtl{margin-left:0;margin-right:41.66666667%}.ant-col-xxxl-push-11.ant-col-rtl{left:auto;right:45.83333333%}.ant-col-xxxl-pull-11.ant-col-rtl{left:45.83333333%;right:auto}.ant-col-xxxl-offset-11.ant-col-rtl{margin-left:0;margin-right:45.83333333%}.ant-col-xxxl-push-12.ant-col-rtl{left:auto;right:50%}.ant-col-xxxl-pull-12.ant-col-rtl{left:50%;right:auto}.ant-col-xxxl-offset-12.ant-col-rtl{margin-left:0;margin-right:50%}.ant-col-xxxl-push-13.ant-col-rtl{left:auto;right:54.16666667%}.ant-col-xxxl-pull-13.ant-col-rtl{left:54.16666667%;right:auto}.ant-col-xxxl-offset-13.ant-col-rtl{margin-left:0;margin-right:54.16666667%}.ant-col-xxxl-push-14.ant-col-rtl{left:auto;right:58.33333333%}.ant-col-xxxl-pull-14.ant-col-rtl{left:58.33333333%;right:auto}.ant-col-xxxl-offset-14.ant-col-rtl{margin-left:0;margin-right:58.33333333%}.ant-col-xxxl-push-15.ant-col-rtl{left:auto;right:62.5%}.ant-col-xxxl-pull-15.ant-col-rtl{left:62.5%;right:auto}.ant-col-xxxl-offset-15.ant-col-rtl{margin-left:0;margin-right:62.5%}.ant-col-xxxl-push-16.ant-col-rtl{left:auto;right:66.66666667%}.ant-col-xxxl-pull-16.ant-col-rtl{left:66.66666667%;right:auto}.ant-col-xxxl-offset-16.ant-col-rtl{margin-left:0;margin-right:66.66666667%}.ant-col-xxxl-push-17.ant-col-rtl{left:auto;right:70.83333333%}.ant-col-xxxl-pull-17.ant-col-rtl{left:70.83333333%;right:auto}.ant-col-xxxl-offset-17.ant-col-rtl{margin-left:0;margin-right:70.83333333%}.ant-col-xxxl-push-18.ant-col-rtl{left:auto;right:75%}.ant-col-xxxl-pull-18.ant-col-rtl{left:75%;right:auto}.ant-col-xxxl-offset-18.ant-col-rtl{margin-left:0;margin-right:75%}.ant-col-xxxl-push-19.ant-col-rtl{left:auto;right:79.16666667%}.ant-col-xxxl-pull-19.ant-col-rtl{left:79.16666667%;right:auto}.ant-col-xxxl-offset-19.ant-col-rtl{margin-left:0;margin-right:79.16666667%}.ant-col-xxxl-push-20.ant-col-rtl{left:auto;right:83.33333333%}.ant-col-xxxl-pull-20.ant-col-rtl{left:83.33333333%;right:auto}.ant-col-xxxl-offset-20.ant-col-rtl{margin-left:0;margin-right:83.33333333%}.ant-col-xxxl-push-21.ant-col-rtl{left:auto;right:87.5%}.ant-col-xxxl-pull-21.ant-col-rtl{left:87.5%;right:auto}.ant-col-xxxl-offset-21.ant-col-rtl{margin-left:0;margin-right:87.5%}.ant-col-xxxl-push-22.ant-col-rtl{left:auto;right:91.66666667%}.ant-col-xxxl-pull-22.ant-col-rtl{left:91.66666667%;right:auto}.ant-col-xxxl-offset-22.ant-col-rtl{margin-left:0;margin-right:91.66666667%}.ant-col-xxxl-push-23.ant-col-rtl{left:auto;right:95.83333333%}.ant-col-xxxl-pull-23.ant-col-rtl{left:95.83333333%;right:auto}.ant-col-xxxl-offset-23.ant-col-rtl{margin-left:0;margin-right:95.83333333%}.ant-col-xxxl-push-24.ant-col-rtl{left:auto;right:100%}.ant-col-xxxl-pull-24.ant-col-rtl{left:100%;right:auto}.ant-col-xxxl-offset-24.ant-col-rtl{margin-left:0;margin-right:100%}}.ant-row-rtl{direction:rtl}.ant-carousel{font-feature-settings:"tnum";box-sizing:border-box;color:hsla(0,0%,100%,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0}.ant-carousel .slick-slider{-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;box-sizing:border-box;display:block;position:relative;touch-action:pan-y}.ant-carousel .slick-list{display:block;margin:0;overflow:hidden;padding:0;position:relative}.ant-carousel .slick-list:focus{outline:none}.ant-carousel .slick-list.dragging{cursor:pointer}.ant-carousel .slick-list .slick-slide{pointer-events:none}.ant-carousel .slick-list .slick-slide input.ant-checkbox-input,.ant-carousel .slick-list .slick-slide input.ant-radio-input{visibility:hidden}.ant-carousel .slick-list .slick-slide.slick-active{pointer-events:auto}.ant-carousel .slick-list .slick-slide.slick-active input.ant-checkbox-input,.ant-carousel .slick-list .slick-slide.slick-active input.ant-radio-input{visibility:visible}.ant-carousel .slick-list .slick-slide>div>div{vertical-align:bottom}.ant-carousel .slick-slider .slick-list,.ant-carousel .slick-slider .slick-track{touch-action:pan-y;transform:translateZ(0)}.ant-carousel .slick-track{display:block;left:0;position:relative;top:0}.ant-carousel .slick-track:after,.ant-carousel .slick-track:before{content:"";display:table}.ant-carousel .slick-track:after{clear:both}.slick-loading .ant-carousel .slick-track{visibility:hidden}.ant-carousel .slick-slide{display:none;float:left;height:100%;min-height:1px}.ant-carousel .slick-slide img{display:block}.ant-carousel .slick-slide.slick-loading img{display:none}.ant-carousel .slick-slide.dragging img{pointer-events:none}.ant-carousel .slick-initialized .slick-slide{display:block}.ant-carousel .slick-loading .slick-slide{visibility:hidden}.ant-carousel .slick-vertical .slick-slide{display:block;height:auto}.ant-carousel .slick-arrow.slick-hidden{display:none}.ant-carousel .slick-next,.ant-carousel .slick-prev{border:0;cursor:pointer;display:block;font-size:0;height:20px;line-height:0;margin-top:-10px;padding:0;position:absolute;top:50%;width:20px}.ant-carousel .slick-next,.ant-carousel .slick-next:focus,.ant-carousel .slick-next:hover,.ant-carousel .slick-prev,.ant-carousel .slick-prev:focus,.ant-carousel .slick-prev:hover{background:transparent;color:transparent;outline:none}.ant-carousel .slick-next:focus:before,.ant-carousel .slick-next:hover:before,.ant-carousel .slick-prev:focus:before,.ant-carousel .slick-prev:hover:before{opacity:1}.ant-carousel .slick-next.slick-disabled:before,.ant-carousel .slick-prev.slick-disabled:before{opacity:.25}.ant-carousel .slick-prev{left:-25px}.ant-carousel .slick-prev:before{content:"\u2190"}.ant-carousel .slick-next{right:-25px}.ant-carousel .slick-next:before{content:"\u2192"}.ant-carousel .slick-dots{bottom:0;display:flex!important;justify-content:center;left:0;list-style:none;margin-left:15%;margin-right:15%;padding-left:0;position:absolute;right:0;z-index:15}.ant-carousel .slick-dots-bottom{bottom:12px}.ant-carousel .slick-dots-top{bottom:auto;top:12px}.ant-carousel .slick-dots li{box-sizing:content-box;display:inline-block;flex:0 1 auto;height:3px;margin:0 3px;padding:0;position:relative;text-align:center;text-indent:-999px;transition:all .5s;vertical-align:top;width:16px}.ant-carousel .slick-dots li button{background:#141414;border:0;border-radius:1px;color:transparent;cursor:pointer;display:block;font-size:0;height:3px;opacity:.3;outline:none;padding:0;transition:all .5s;width:100%}.ant-carousel .slick-dots li button:focus,.ant-carousel .slick-dots li button:hover{opacity:.75}.ant-carousel .slick-dots li.slick-active{width:24px}.ant-carousel .slick-dots li.slick-active button{background:#141414;opacity:1}.ant-carousel .slick-dots li.slick-active:focus,.ant-carousel .slick-dots li.slick-active:hover{opacity:1}.ant-carousel-vertical .slick-dots{bottom:auto;flex-direction:column;height:auto;margin:0;top:50%;transform:translateY(-50%);width:3px}.ant-carousel-vertical .slick-dots-left{left:12px;right:auto}.ant-carousel-vertical .slick-dots-right{left:auto;right:12px}.ant-carousel-vertical .slick-dots li{height:16px;margin:4px 2px;vertical-align:baseline;width:3px}.ant-carousel-vertical .slick-dots li button{height:16px;width:3px}.ant-carousel-vertical .slick-dots li.slick-active,.ant-carousel-vertical .slick-dots li.slick-active button{height:24px;width:3px}.ant-carousel-rtl{direction:rtl}.ant-carousel-rtl .ant-carousel .slick-track{left:auto;right:0}.ant-carousel-rtl .ant-carousel .slick-prev{left:auto;right:-25px}.ant-carousel-rtl .ant-carousel .slick-prev:before{content:"\u2192"}.ant-carousel-rtl .ant-carousel .slick-next{left:-25px;right:auto}.ant-carousel-rtl .ant-carousel .slick-next:before{content:"\u2190"}.ant-carousel-rtl.ant-carousel .slick-dots{flex-direction:row-reverse}.ant-carousel-rtl.ant-carousel-vertical .slick-dots{flex-direction:column}.ant-cascader-checkbox{font-feature-settings:"tnum";box-sizing:border-box;color:hsla(0,0%,100%,.85);cursor:pointer;font-size:14px;font-variant:tabular-nums;line-height:1.5715;line-height:1;list-style:none;margin:0;outline:none;padding:0;position:relative;top:.2em;white-space:nowrap}.ant-cascader-checkbox-input:focus+.ant-cascader-checkbox-inner,.ant-cascader-checkbox-wrapper:hover .ant-cascader-checkbox-inner,.ant-cascader-checkbox:hover .ant-cascader-checkbox-inner{border-color:#177ddc}.ant-cascader-checkbox-checked:after{-webkit-animation:antCheckboxEffect .36s ease-in-out;animation:antCheckboxEffect .36s ease-in-out;-webkit-animation-fill-mode:backwards;animation-fill-mode:backwards;border:1px solid #177ddc;border-radius:2px;content:"";height:100%;left:0;position:absolute;top:0;visibility:hidden;width:100%}.ant-cascader-checkbox-wrapper:hover .ant-cascader-checkbox:after,.ant-cascader-checkbox:hover:after{visibility:visible}.ant-cascader-checkbox-inner{background-color:transparent;border:1px solid #434343;border-collapse:separate;border-radius:2px;direction:ltr;display:block;height:16px;left:0;position:relative;top:0;transition:all .3s;width:16px}.ant-cascader-checkbox-inner:after{border:2px solid #fff;border-left:0;border-top:0;content:" ";display:table;height:9.14285714px;left:21.5%;opacity:0;position:absolute;top:50%;transform:rotate(45deg) scale(0) translate(-50%,-50%);transition:all .1s cubic-bezier(.71,-.46,.88,.6),opacity .1s;width:5.71428571px}.ant-cascader-checkbox-input{bottom:0;cursor:pointer;height:100%;left:0;opacity:0;position:absolute;right:0;top:0;width:100%;z-index:1}.ant-cascader-checkbox-checked .ant-cascader-checkbox-inner:after{border:2px solid #fff;border-left:0;border-top:0;content:" ";display:table;opacity:1;position:absolute;transform:rotate(45deg) scale(1) translate(-50%,-50%);transition:all .2s cubic-bezier(.12,.4,.29,1.46) .1s}.ant-cascader-checkbox-checked .ant-cascader-checkbox-inner{background-color:#177ddc;border-color:#177ddc}.ant-cascader-checkbox-disabled{cursor:not-allowed}.ant-cascader-checkbox-disabled.ant-cascader-checkbox-checked .ant-cascader-checkbox-inner:after{-webkit-animation-name:none;animation-name:none;border-color:hsla(0,0%,100%,.3)}.ant-cascader-checkbox-disabled .ant-cascader-checkbox-input{cursor:not-allowed;pointer-events:none}.ant-cascader-checkbox-disabled .ant-cascader-checkbox-inner{background-color:hsla(0,0%,100%,.08);border-color:#434343!important}.ant-cascader-checkbox-disabled .ant-cascader-checkbox-inner:after{-webkit-animation-name:none;animation-name:none;border-collapse:separate;border-color:hsla(0,0%,100%,.08)}.ant-cascader-checkbox-disabled+span{color:hsla(0,0%,100%,.3);cursor:not-allowed}.ant-cascader-checkbox-disabled:hover:after,.ant-cascader-checkbox-wrapper:hover .ant-cascader-checkbox-disabled:after{visibility:hidden}.ant-cascader-checkbox-wrapper{font-feature-settings:"tnum";align-items:baseline;box-sizing:border-box;color:hsla(0,0%,100%,.85);cursor:pointer;display:inline-flex;font-size:14px;font-variant:tabular-nums;line-height:1.5715;line-height:unset;list-style:none;margin:0;padding:0}.ant-cascader-checkbox-wrapper:after{content:"\\a0";display:inline-block;overflow:hidden;width:0}.ant-cascader-checkbox-wrapper.ant-cascader-checkbox-wrapper-disabled{cursor:not-allowed}.ant-cascader-checkbox-wrapper+.ant-cascader-checkbox-wrapper{margin-left:8px}.ant-cascader-checkbox+span{padding-left:8px;padding-right:8px}.ant-cascader-checkbox-group{font-feature-settings:"tnum";box-sizing:border-box;color:hsla(0,0%,100%,.85);display:inline-block;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0}.ant-cascader-checkbox-group-item{margin-right:8px}.ant-cascader-checkbox-group-item:last-child{margin-right:0}.ant-cascader-checkbox-group-item+.ant-cascader-checkbox-group-item{margin-left:0}.ant-cascader-checkbox-indeterminate .ant-cascader-checkbox-inner{background-color:transparent;border-color:#434343}.ant-cascader-checkbox-indeterminate .ant-cascader-checkbox-inner:after{background-color:#177ddc;border:0;content:" ";height:8px;left:50%;opacity:1;top:50%;transform:translate(-50%,-50%) scale(1);width:8px}.ant-cascader-checkbox-indeterminate.ant-cascader-checkbox-disabled .ant-cascader-checkbox-inner:after{background-color:hsla(0,0%,100%,.3);border-color:hsla(0,0%,100%,.3)}.ant-cascader{width:184px}.ant-cascader-checkbox{margin-right:8px;top:0}.ant-cascader-menus{align-items:flex-start;display:flex;flex-wrap:nowrap}.ant-cascader-menus.ant-cascader-menu-empty .ant-cascader-menu{height:auto;width:100%}.ant-cascader-menu{-ms-overflow-style:-ms-autohiding-scrollbar;border-right:1px solid #303030;height:180px;list-style:none;margin:-4px 0;min-width:111px;overflow:auto;padding:4px 0;vertical-align:top}.ant-cascader-menu-item{align-items:center;cursor:pointer;display:flex;flex-wrap:nowrap;line-height:22px;overflow:hidden;padding:5px 12px;text-overflow:ellipsis;transition:all .3s;white-space:nowrap}.ant-cascader-menu-item:hover{background:hsla(0,0%,100%,.08)}.ant-cascader-menu-item-disabled{color:hsla(0,0%,100%,.3);cursor:not-allowed}.ant-cascader-menu-item-disabled:hover{background:transparent}.ant-cascader-menu-empty .ant-cascader-menu-item{color:hsla(0,0%,100%,.3);cursor:default;pointer-events:none}.ant-cascader-menu-item-active:not(.ant-cascader-menu-item-disabled),.ant-cascader-menu-item-active:not(.ant-cascader-menu-item-disabled):hover{background-color:#111b26;font-weight:600}.ant-cascader-menu-item-content{flex:auto}.ant-cascader-menu-item-expand .ant-cascader-menu-item-expand-icon,.ant-cascader-menu-item-loading-icon{color:hsla(0,0%,100%,.45);font-size:10px;margin-left:4px}.ant-cascader-menu-item-disabled.ant-cascader-menu-item-expand .ant-cascader-menu-item-expand-icon,.ant-cascader-menu-item-disabled.ant-cascader-menu-item-loading-icon{color:hsla(0,0%,100%,.3)}.ant-cascader-menu-item-keyword{color:#a61d24}.ant-cascader-rtl .ant-cascader-menu-item-expand-icon,.ant-cascader-rtl .ant-cascader-menu-item-loading-icon{margin-left:0;margin-right:4px}.ant-cascader-rtl .ant-cascader-checkbox{margin-left:8px;margin-right:0;top:0}.ant-checkbox{font-feature-settings:"tnum";box-sizing:border-box;color:hsla(0,0%,100%,.85);cursor:pointer;font-size:14px;font-variant:tabular-nums;line-height:1.5715;line-height:1;list-style:none;margin:0;outline:none;padding:0;position:relative;top:.2em;white-space:nowrap}.ant-checkbox-input:focus+.ant-checkbox-inner,.ant-checkbox-wrapper:hover .ant-checkbox-inner,.ant-checkbox:hover .ant-checkbox-inner{border-color:#177ddc}.ant-checkbox-checked:after{-webkit-animation:antCheckboxEffect .36s ease-in-out;animation:antCheckboxEffect .36s ease-in-out;-webkit-animation-fill-mode:backwards;animation-fill-mode:backwards;border:1px solid #177ddc;border-radius:2px;content:"";height:100%;left:0;position:absolute;top:0;visibility:hidden;width:100%}.ant-checkbox-wrapper:hover .ant-checkbox:after,.ant-checkbox:hover:after{visibility:visible}.ant-checkbox-inner{background-color:transparent;border:1px solid #434343;border-collapse:separate;border-radius:2px;direction:ltr;display:block;height:16px;left:0;position:relative;top:0;transition:all .3s;width:16px}.ant-checkbox-inner:after{border:2px solid #fff;border-left:0;border-top:0;content:" ";display:table;height:9.14285714px;left:21.5%;opacity:0;position:absolute;top:50%;transform:rotate(45deg) scale(0) translate(-50%,-50%);transition:all .1s cubic-bezier(.71,-.46,.88,.6),opacity .1s;width:5.71428571px}.ant-checkbox-input{bottom:0;cursor:pointer;height:100%;left:0;opacity:0;position:absolute;right:0;top:0;width:100%;z-index:1}.ant-checkbox-checked .ant-checkbox-inner:after{border:2px solid #fff;border-left:0;border-top:0;content:" ";display:table;opacity:1;position:absolute;transform:rotate(45deg) scale(1) translate(-50%,-50%);transition:all .2s cubic-bezier(.12,.4,.29,1.46) .1s}.ant-checkbox-checked .ant-checkbox-inner{background-color:#177ddc;border-color:#177ddc}.ant-checkbox-disabled{cursor:not-allowed}.ant-checkbox-disabled.ant-checkbox-checked .ant-checkbox-inner:after{-webkit-animation-name:none;animation-name:none;border-color:hsla(0,0%,100%,.3)}.ant-checkbox-disabled .ant-checkbox-input{cursor:not-allowed;pointer-events:none}.ant-checkbox-disabled .ant-checkbox-inner{background-color:hsla(0,0%,100%,.08);border-color:#434343!important}.ant-checkbox-disabled .ant-checkbox-inner:after{-webkit-animation-name:none;animation-name:none;border-collapse:separate;border-color:hsla(0,0%,100%,.08)}.ant-checkbox-disabled+span{color:hsla(0,0%,100%,.3);cursor:not-allowed}.ant-checkbox-disabled:hover:after,.ant-checkbox-wrapper:hover .ant-checkbox-disabled:after{visibility:hidden}.ant-checkbox-wrapper{font-feature-settings:"tnum";align-items:baseline;box-sizing:border-box;color:hsla(0,0%,100%,.85);cursor:pointer;display:inline-flex;font-size:14px;font-variant:tabular-nums;line-height:1.5715;line-height:unset;list-style:none;margin:0;padding:0}.ant-checkbox-wrapper:after{content:"\\a0";display:inline-block;overflow:hidden;width:0}.ant-checkbox-wrapper.ant-checkbox-wrapper-disabled{cursor:not-allowed}.ant-checkbox-wrapper+.ant-checkbox-wrapper{margin-left:8px}.ant-checkbox+span{padding-left:8px;padding-right:8px}.ant-checkbox-group{font-feature-settings:"tnum";box-sizing:border-box;color:hsla(0,0%,100%,.85);display:inline-block;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0}.ant-checkbox-group-item{margin-right:8px}.ant-checkbox-group-item:last-child{margin-right:0}.ant-checkbox-group-item+.ant-checkbox-group-item{margin-left:0}.ant-checkbox-indeterminate .ant-checkbox-inner{background-color:transparent;border-color:#434343}.ant-checkbox-indeterminate .ant-checkbox-inner:after{background-color:#177ddc;border:0;content:" ";height:8px;left:50%;opacity:1;top:50%;transform:translate(-50%,-50%) scale(1);width:8px}.ant-checkbox-indeterminate.ant-checkbox-disabled .ant-checkbox-inner:after{background-color:hsla(0,0%,100%,.3);border-color:hsla(0,0%,100%,.3)}.ant-checkbox-rtl{direction:rtl}.ant-checkbox-group-rtl .ant-checkbox-group-item{margin-left:8px;margin-right:0}.ant-checkbox-group-rtl .ant-checkbox-group-item:last-child{margin-left:0!important}.ant-checkbox-group-rtl .ant-checkbox-group-item+.ant-checkbox-group-item{margin-left:8px}.ant-collapse{font-feature-settings:"tnum";background-color:hsla(0,0%,100%,.04);border:1px solid #434343;border-bottom:0;border-radius:2px;box-sizing:border-box;color:hsla(0,0%,100%,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0}.ant-collapse>.ant-collapse-item{border-bottom:1px solid #434343}.ant-collapse>.ant-collapse-item:last-child,.ant-collapse>.ant-collapse-item:last-child>.ant-collapse-header{border-radius:0 0 2px 2px}.ant-collapse>.ant-collapse-item>.ant-collapse-header{align-items:flex-start;color:hsla(0,0%,100%,.85);cursor:pointer;display:flex;flex-wrap:nowrap;line-height:1.5715;padding:12px 16px;position:relative;transition:all .3s,visibility 0s}.ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-arrow{display:inline-block;font-size:12px;margin-right:12px;vertical-align:-1px}.ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-arrow svg{transition:transform .24s}.ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-extra{margin-left:auto}.ant-collapse>.ant-collapse-item>.ant-collapse-header:focus{outline:none}.ant-collapse>.ant-collapse-item .ant-collapse-header-collapsible-only{cursor:default}.ant-collapse>.ant-collapse-item .ant-collapse-header-collapsible-only .ant-collapse-header-text{cursor:pointer}.ant-collapse>.ant-collapse-item.ant-collapse-no-arrow>.ant-collapse-header{padding-left:12px}.ant-collapse-icon-position-right>.ant-collapse-item>.ant-collapse-header{padding:12px 40px 12px 16px;position:relative}.ant-collapse-icon-position-right>.ant-collapse-item>.ant-collapse-header .ant-collapse-arrow{left:auto;margin:0;position:absolute;right:16px;top:50%;transform:translateY(-50%)}.ant-collapse-content{background-color:#141414;border-top:1px solid #434343;color:hsla(0,0%,100%,.85)}.ant-collapse-content>.ant-collapse-content-box{padding:16px}.ant-collapse-content-hidden{display:none}.ant-collapse-item:last-child>.ant-collapse-content{border-radius:0 0 2px 2px}.ant-collapse-borderless{background-color:hsla(0,0%,100%,.04);border:0}.ant-collapse-borderless>.ant-collapse-item{border-bottom:1px solid #434343}.ant-collapse-borderless>.ant-collapse-item:last-child,.ant-collapse-borderless>.ant-collapse-item:last-child .ant-collapse-header{border-radius:0}.ant-collapse-borderless>.ant-collapse-item>.ant-collapse-content{background-color:transparent;border-top:0}.ant-collapse-borderless>.ant-collapse-item>.ant-collapse-content>.ant-collapse-content-box{padding-top:4px}.ant-collapse-ghost{background-color:transparent;border:0}.ant-collapse-ghost>.ant-collapse-item{border-bottom:0}.ant-collapse-ghost>.ant-collapse-item>.ant-collapse-content{background-color:transparent;border-top:0}.ant-collapse-ghost>.ant-collapse-item>.ant-collapse-content>.ant-collapse-content-box{padding-bottom:12px;padding-top:12px}.ant-collapse .ant-collapse-item-disabled>.ant-collapse-header,.ant-collapse .ant-collapse-item-disabled>.ant-collapse-header>.arrow{color:hsla(0,0%,100%,.3);cursor:not-allowed}.ant-collapse-rtl{direction:rtl}.ant-collapse-rtl .ant-collapse>.ant-collapse-item>.ant-collapse-header{padding:12px 40px 12px 16px}.ant-collapse-rtl.ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-arrow{margin-left:12px;margin-right:0}.ant-collapse-rtl.ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-arrow svg{transform:rotate(180deg)}.ant-collapse-rtl.ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-extra{margin-left:0;margin-right:auto}.ant-collapse-rtl.ant-collapse>.ant-collapse-item.ant-collapse-no-arrow>.ant-collapse-header{padding-left:0;padding-right:12px}.ant-comment{background-color:transparent;position:relative}.ant-comment-inner{display:flex;padding:16px 0}.ant-comment-avatar{cursor:pointer;flex-shrink:0;margin-right:12px;position:relative}.ant-comment-avatar img{border-radius:50%;height:32px;width:32px}.ant-comment-content{word-wrap:break-word;flex:1 1 auto;font-size:14px;min-width:1px;position:relative}.ant-comment-content-author{display:flex;flex-wrap:wrap;font-size:14px;justify-content:flex-start;margin-bottom:4px}.ant-comment-content-author>a,.ant-comment-content-author>span{font-size:12px;line-height:18px;padding-right:8px}.ant-comment-content-author-name{color:hsla(0,0%,100%,.45);font-size:14px;transition:color .3s}.ant-comment-content-author-name>*,.ant-comment-content-author-name>:hover{color:hsla(0,0%,100%,.45)}.ant-comment-content-author-time{color:hsla(0,0%,100%,.3);cursor:auto;white-space:nowrap}.ant-comment-content-detail p{margin-bottom:inherit;white-space:pre-wrap}.ant-comment-actions{margin-bottom:inherit;margin-top:12px;padding-left:0}.ant-comment-actions>li{color:hsla(0,0%,100%,.45);display:inline-block}.ant-comment-actions>li>span{color:hsla(0,0%,100%,.45);cursor:pointer;font-size:12px;margin-right:10px;transition:color .3s;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ant-comment-actions>li>span:hover{color:hsla(0,0%,100%,.65)}.ant-comment-nested{margin-left:44px}.ant-comment-rtl{direction:rtl}.ant-comment-rtl .ant-comment-avatar{margin-left:12px;margin-right:0}.ant-comment-rtl .ant-comment-content-author>a,.ant-comment-rtl .ant-comment-content-author>span{padding-left:8px;padding-right:0}.ant-comment-rtl .ant-comment-actions{padding-right:0}.ant-comment-rtl .ant-comment-actions>li>span{margin-left:10px;margin-right:0}.ant-comment-rtl .ant-comment-nested{margin-left:0;margin-right:44px}.ant-descriptions-header{align-items:center;display:flex;margin-bottom:20px}.ant-descriptions-title{color:hsla(0,0%,100%,.85);flex:auto;font-size:16px;font-weight:700;line-height:1.5715;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ant-descriptions-extra{color:hsla(0,0%,100%,.85);font-size:14px;margin-left:auto}.ant-descriptions-view{border-radius:2px;width:100%}.ant-descriptions-view table{table-layout:fixed;width:100%}.ant-descriptions-row>td,.ant-descriptions-row>th{padding-bottom:16px}.ant-descriptions-row:last-child{border-bottom:none}.ant-descriptions-item-label{color:hsla(0,0%,100%,.85);font-size:14px;font-weight:400;line-height:1.5715;text-align:start}.ant-descriptions-item-label:after{content:":";margin:0 8px 0 2px;position:relative;top:-.5px}.ant-descriptions-item-label.ant-descriptions-item-no-colon:after{content:" "}.ant-descriptions-item-no-label:after{content:"";margin:0}.ant-descriptions-item-content{color:hsla(0,0%,100%,.85);display:table-cell;flex:1;font-size:14px;line-height:1.5715;overflow-wrap:break-word;word-break:break-word}.ant-descriptions-item{padding-bottom:0;vertical-align:top}.ant-descriptions-item-container{display:flex}.ant-descriptions-item-container .ant-descriptions-item-content,.ant-descriptions-item-container .ant-descriptions-item-label{align-items:baseline;display:inline-flex}.ant-descriptions-middle .ant-descriptions-row>td,.ant-descriptions-middle .ant-descriptions-row>th{padding-bottom:12px}.ant-descriptions-small .ant-descriptions-row>td,.ant-descriptions-small .ant-descriptions-row>th{padding-bottom:8px}.ant-descriptions-bordered .ant-descriptions-view{border:1px solid #303030}.ant-descriptions-bordered .ant-descriptions-view>table{border-collapse:collapse;table-layout:auto}.ant-descriptions-bordered .ant-descriptions-item-content,.ant-descriptions-bordered .ant-descriptions-item-label{border-right:1px solid #303030;padding:16px 24px}.ant-descriptions-bordered .ant-descriptions-item-content:last-child,.ant-descriptions-bordered .ant-descriptions-item-label:last-child{border-right:none}.ant-descriptions-bordered .ant-descriptions-item-label{background-color:hsla(0,0%,100%,.04)}.ant-descriptions-bordered .ant-descriptions-item-label:after{display:none}.ant-descriptions-bordered .ant-descriptions-row{border-bottom:1px solid #303030}.ant-descriptions-bordered .ant-descriptions-row:last-child{border-bottom:none}.ant-descriptions-bordered.ant-descriptions-middle .ant-descriptions-item-content,.ant-descriptions-bordered.ant-descriptions-middle .ant-descriptions-item-label{padding:12px 24px}.ant-descriptions-bordered.ant-descriptions-small .ant-descriptions-item-content,.ant-descriptions-bordered.ant-descriptions-small .ant-descriptions-item-label{padding:8px 16px}.ant-descriptions-rtl{direction:rtl}.ant-descriptions-rtl .ant-descriptions-item-label:after{margin:0 2px 0 8px}.ant-descriptions-rtl.ant-descriptions-bordered .ant-descriptions-item-content,.ant-descriptions-rtl.ant-descriptions-bordered .ant-descriptions-item-label{border-left:1px solid #303030;border-right:none}.ant-descriptions-rtl.ant-descriptions-bordered .ant-descriptions-item-content:last-child,.ant-descriptions-rtl.ant-descriptions-bordered .ant-descriptions-item-label:last-child{border-left:none}.ant-divider{font-feature-settings:"tnum";border-top:1px solid hsla(0,0%,100%,.12);box-sizing:border-box;color:hsla(0,0%,100%,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0}.ant-divider-vertical{border-left:1px solid hsla(0,0%,100%,.12);border-top:0;display:inline-block;height:.9em;margin:0 8px;position:relative;top:-.06em;vertical-align:middle}.ant-divider-horizontal{clear:both;display:flex;margin:24px 0;min-width:100%;width:100%}.ant-divider-horizontal.ant-divider-with-text{border-top:0;border-top-color:hsla(0,0%,100%,.12);color:hsla(0,0%,100%,.85);display:flex;font-size:16px;font-weight:500;margin:16px 0;text-align:center;white-space:nowrap}.ant-divider-horizontal.ant-divider-with-text:after,.ant-divider-horizontal.ant-divider-with-text:before{border-bottom:0;border-top:1px solid transparent;border-top-color:inherit;content:"";position:relative;top:50%;transform:translateY(50%);width:50%}.ant-divider-horizontal.ant-divider-with-text-left:before{top:50%;width:5%}.ant-divider-horizontal.ant-divider-with-text-left:after,.ant-divider-horizontal.ant-divider-with-text-right:before{top:50%;width:95%}.ant-divider-horizontal.ant-divider-with-text-right:after{top:50%;width:5%}.ant-divider-inner-text{display:inline-block;padding:0 1em}.ant-divider-dashed{background:none;border:dashed hsla(0,0%,100%,.12);border-width:1px 0 0}.ant-divider-horizontal.ant-divider-with-text.ant-divider-dashed:after,.ant-divider-horizontal.ant-divider-with-text.ant-divider-dashed:before{border-style:dashed none none}.ant-divider-vertical.ant-divider-dashed{border-width:0 0 0 1px}.ant-divider-plain.ant-divider-with-text{color:hsla(0,0%,100%,.85);font-size:14px;font-weight:400}.ant-divider-horizontal.ant-divider-with-text-left.ant-divider-no-default-orientation-margin-left:before{width:0}.ant-divider-horizontal.ant-divider-with-text-left.ant-divider-no-default-orientation-margin-left:after{width:100%}.ant-divider-horizontal.ant-divider-with-text-left.ant-divider-no-default-orientation-margin-left .ant-divider-inner-text{padding-left:0}.ant-divider-horizontal.ant-divider-with-text-right.ant-divider-no-default-orientation-margin-right:before{width:100%}.ant-divider-horizontal.ant-divider-with-text-right.ant-divider-no-default-orientation-margin-right:after{width:0}.ant-divider-horizontal.ant-divider-with-text-right.ant-divider-no-default-orientation-margin-right .ant-divider-inner-text{padding-right:0}.ant-divider-rtl{direction:rtl}.ant-divider-rtl.ant-divider-horizontal.ant-divider-with-text-left:before{width:95%}.ant-divider-rtl.ant-divider-horizontal.ant-divider-with-text-left:after,.ant-divider-rtl.ant-divider-horizontal.ant-divider-with-text-right:before{width:5%}.ant-divider-rtl.ant-divider-horizontal.ant-divider-with-text-right:after{width:95%}.ant-drawer{height:100%;position:fixed;transition:width 0s ease .3s,height 0s ease .3s;width:0;z-index:1000}.ant-drawer-content-wrapper{height:100%;position:absolute;transition:transform .3s cubic-bezier(.23,1,.32,1),box-shadow .3s cubic-bezier(.23,1,.32,1);width:100%}.ant-drawer .ant-drawer-content{height:100%;width:100%}.ant-drawer-left,.ant-drawer-right{height:100%;top:0;width:0}.ant-drawer-left .ant-drawer-content-wrapper,.ant-drawer-right .ant-drawer-content-wrapper{height:100%}.ant-drawer-left.ant-drawer-open,.ant-drawer-right.ant-drawer-open{transition:transform .3s cubic-bezier(.23,1,.32,1);width:100%}.ant-drawer-left,.ant-drawer-left .ant-drawer-content-wrapper{left:0}.ant-drawer-left.ant-drawer-open .ant-drawer-content-wrapper{box-shadow:6px 0 16px -8px rgba(0,0,0,.32),9px 0 28px 0 rgba(0,0,0,.2),12px 0 48px 16px rgba(0,0,0,.12)}.ant-drawer-right,.ant-drawer-right .ant-drawer-content-wrapper{right:0}.ant-drawer-right.ant-drawer-open .ant-drawer-content-wrapper{box-shadow:-6px 0 16px -8px rgba(0,0,0,.08),-9px 0 28px 0 rgba(0,0,0,.05),-12px 0 48px 16px rgba(0,0,0,.03)}.ant-drawer-right.ant-drawer-open.no-mask{right:1px;transform:translateX(1px)}.ant-drawer-bottom,.ant-drawer-top{height:0;left:0;width:100%}.ant-drawer-bottom .ant-drawer-content-wrapper,.ant-drawer-top .ant-drawer-content-wrapper{width:100%}.ant-drawer-bottom.ant-drawer-open,.ant-drawer-top.ant-drawer-open{height:100%;transition:transform .3s cubic-bezier(.23,1,.32,1)}.ant-drawer-top{top:0}.ant-drawer-top.ant-drawer-open .ant-drawer-content-wrapper{box-shadow:0 6px 16px -8px rgba(0,0,0,.32),0 9px 28px 0 rgba(0,0,0,.2),0 12px 48px 16px rgba(0,0,0,.12)}.ant-drawer-bottom,.ant-drawer-bottom .ant-drawer-content-wrapper{bottom:0}.ant-drawer-bottom.ant-drawer-open .ant-drawer-content-wrapper{box-shadow:0 -6px 16px -8px rgba(0,0,0,.32),0 -9px 28px 0 rgba(0,0,0,.2),0 -12px 48px 16px rgba(0,0,0,.12)}.ant-drawer-bottom.ant-drawer-open.no-mask{bottom:1px;transform:translateY(1px)}.ant-drawer.ant-drawer-open .ant-drawer-mask{-webkit-animation:antdDrawerFadeIn .3s cubic-bezier(.23,1,.32,1);animation:antdDrawerFadeIn .3s cubic-bezier(.23,1,.32,1);height:100%;opacity:1;pointer-events:auto;transition:none}.ant-drawer-title{color:hsla(0,0%,100%,.85);flex:1;font-size:16px;font-weight:500;line-height:22px;margin:0}.ant-drawer-content{background-clip:padding-box;background-color:#1f1f1f;border:0;overflow:auto;position:relative;z-index:1}.ant-drawer-close{text-rendering:auto;background:transparent;border:0;color:hsla(0,0%,100%,.45);cursor:pointer;display:inline-block;font-size:16px;font-style:normal;font-weight:700;line-height:1;margin-right:12px;outline:0;text-align:center;text-decoration:none;text-transform:none;transition:color .3s}.ant-drawer-close:focus,.ant-drawer-close:hover{color:hsla(0,0%,100%,.75);text-decoration:none}.ant-drawer-header{background:#1f1f1f;border-bottom:1px solid #303030;border-radius:2px 2px 0 0;color:hsla(0,0%,100%,.85);padding:16px 24px;position:relative}.ant-drawer-header,.ant-drawer-header-title{align-items:center;display:flex;justify-content:space-between}.ant-drawer-header-title{flex:1}.ant-drawer-header-close-only{border:none;padding-bottom:0}.ant-drawer-wrapper-body{display:flex;flex-flow:column nowrap;height:100%;width:100%}.ant-drawer-body{word-wrap:break-word;flex-grow:1;font-size:14px;line-height:1.5715;overflow:auto;padding:24px}.ant-drawer-footer{border-top:1px solid #303030;flex-shrink:0;padding:10px 16px}.ant-drawer-mask{background-color:rgba(0,0,0,.45);height:0;left:0;opacity:0;pointer-events:none;position:absolute;top:0;transition:opacity .3s linear,height 0s ease .3s;width:100%}.ant-drawer .ant-picker-clear{background:#1f1f1f}@-webkit-keyframes antdDrawerFadeIn{0%{opacity:0}to{opacity:1}}@keyframes antdDrawerFadeIn{0%{opacity:0}to{opacity:1}}.ant-drawer-rtl{direction:rtl}.ant-drawer-rtl .ant-drawer-close{margin-left:12px;margin-right:0}.ant-drawer .ant-anchor-wrapper,.ant-drawer .ant-card,.ant-drawer .ant-collapse-content,.ant-drawer .ant-picker-clear,.ant-drawer .ant-slider-handle,.ant-drawer .ant-timeline-item-head{background-color:#1f1f1f}.ant-drawer .ant-transfer-list-header{background:#1f1f1f;border-bottom:1px solid #3a3a3a}.ant-drawer .ant-transfer-list-content-item:not(.ant-transfer-list-content-item-disabled):hover{background-color:hsla(0,0%,100%,.08)}.ant-drawer tr.ant-table-expanded-row:hover>td,.ant-drawer tr.ant-table-expanded-row>td{background:#272727}.ant-drawer .ant-table.ant-table-small thead>tr>th{background-color:#1f1f1f;border-bottom:1px solid #3a3a3a}.ant-drawer .ant-table{background-color:#1f1f1f}.ant-drawer .ant-table .ant-table-row-expand-icon{border:1px solid #3a3a3a}.ant-drawer .ant-table tfoot>tr>td,.ant-drawer .ant-table tfoot>tr>th{border-bottom:1px solid #3a3a3a}.ant-drawer .ant-table thead>tr>th{background-color:#272727;border-bottom:1px solid #3a3a3a}.ant-drawer .ant-table tbody>tr>td{border-bottom:1px solid #3a3a3a}.ant-drawer .ant-table tbody>tr>td.ant-table-cell-fix-left,.ant-drawer .ant-table tbody>tr>td.ant-table-cell-fix-right{background-color:#1f1f1f}.ant-drawer .ant-table tbody>tr.ant-table-row:hover>td{background:#303030}.ant-drawer .ant-table.ant-table-bordered .ant-table-title{border:1px solid #3a3a3a}.ant-drawer .ant-table.ant-table-bordered .ant-table-cell-fix-right-first:after,.ant-drawer .ant-table.ant-table-bordered tbody>tr>td,.ant-drawer .ant-table.ant-table-bordered tfoot>tr>td,.ant-drawer .ant-table.ant-table-bordered tfoot>tr>th,.ant-drawer .ant-table.ant-table-bordered thead>tr>th{border-right:1px solid #3a3a3a}.ant-drawer .ant-table.ant-table-bordered table thead>tr:not(:last-child)>th{border-bottom:1px solid #303030}.ant-drawer .ant-table.ant-table-bordered .ant-table-container{border:1px solid #3a3a3a}.ant-drawer .ant-table.ant-table-bordered .ant-table-expanded-row-fixed:after{border-right:1px solid #3a3a3a}.ant-drawer .ant-table.ant-table-bordered .ant-table-footer{border:1px solid #3a3a3a}.ant-drawer .ant-table .ant-table-filter-trigger-container-open{background-color:#525252}.ant-drawer .ant-picker-calendar-full,.ant-drawer .ant-picker-calendar-full .ant-picker-panel{background-color:#1f1f1f}.ant-drawer .ant-picker-calendar-full .ant-picker-panel .ant-picker-calendar-date{border-top:2px solid #3a3a3a}.ant-drawer .ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab-active{background-color:#1f1f1f;border-bottom:1px solid #1f1f1f}.ant-drawer .ant-badge-count{box-shadow:0 0 0 1px #1f1f1f}.ant-drawer .ant-tree-show-line .ant-tree-switcher{background:#1f1f1f}.ant-form-item .ant-upload{background:transparent}.ant-form-item .ant-upload.ant-upload-drag{background:hsla(0,0%,100%,.04)}.ant-form-item input[type=checkbox],.ant-form-item input[type=radio]{height:14px;width:14px}.ant-form-item .ant-checkbox-inline,.ant-form-item .ant-radio-inline{cursor:pointer;display:inline-block;font-weight:400;margin-left:8px;vertical-align:middle}.ant-form-item .ant-checkbox-inline:first-child,.ant-form-item .ant-radio-inline:first-child{margin-left:0}.ant-form-item .ant-checkbox-vertical,.ant-form-item .ant-radio-vertical{display:block}.ant-form-item .ant-checkbox-vertical+.ant-checkbox-vertical,.ant-form-item .ant-radio-vertical+.ant-radio-vertical{margin-left:0}.ant-form-item .ant-input-number+.ant-form-text{margin-left:8px}.ant-form-item .ant-input-number-handler-wrap{z-index:2}.ant-form-item .ant-cascader-picker,.ant-form-item .ant-select{width:100%}.ant-form-item .ant-input-group .ant-cascader-picker,.ant-form-item .ant-input-group .ant-select,.ant-form-item .ant-input-number-group .ant-cascader-picker,.ant-form-item .ant-input-number-group .ant-select,.ant-form-item .ant-picker-calendar-month-select,.ant-form-item .ant-picker-calendar-year-select{width:auto}.ant-form-inline{display:flex;flex-wrap:wrap}.ant-form-inline .ant-form-item{flex:none;flex-wrap:nowrap;margin-bottom:0;margin-right:16px}.ant-form-inline .ant-form-item-with-help{margin-bottom:24px}.ant-form-inline .ant-form-item>.ant-form-item-control,.ant-form-inline .ant-form-item>.ant-form-item-label{display:inline-block;vertical-align:top}.ant-form-inline .ant-form-item>.ant-form-item-label{flex:none}.ant-form-inline .ant-form-item .ant-form-item-has-feedback,.ant-form-inline .ant-form-item .ant-form-text{display:inline-block}.ant-form-horizontal .ant-form-item-label{flex-grow:0}.ant-form-horizontal .ant-form-item-control{flex:1 1 0;min-width:0}.ant-form-horizontal .ant-form-item-label.ant-col-24+.ant-form-item-control{min-width:unset}.ant-form-vertical .ant-form-item{flex-direction:column}.ant-form-vertical .ant-form-item-label>label{height:auto}.ant-col-24.ant-form-item-label,.ant-col-xl-24.ant-form-item-label,.ant-form-vertical .ant-form-item-label{line-height:1.5715;padding:0 0 8px;text-align:left;white-space:normal}.ant-col-24.ant-form-item-label>label,.ant-col-xl-24.ant-form-item-label>label,.ant-form-vertical .ant-form-item-label>label{margin:0}.ant-col-24.ant-form-item-label>label:after,.ant-col-xl-24.ant-form-item-label>label:after,.ant-form-vertical .ant-form-item-label>label:after{display:none}.ant-form-rtl.ant-col-24.ant-form-item-label,.ant-form-rtl.ant-col-xl-24.ant-form-item-label,.ant-form-rtl.ant-form-vertical .ant-form-item-label{text-align:right}@media (max-width:575px){.ant-form-item .ant-form-item-label{line-height:1.5715;padding:0 0 8px;text-align:left;white-space:normal}.ant-form-item .ant-form-item-label>label{margin:0}.ant-form-item .ant-form-item-label>label:after{display:none}.ant-form-rtl.ant-form-item .ant-form-item-label{text-align:right}.ant-form .ant-form-item{flex-wrap:wrap}.ant-form .ant-form-item .ant-form-item-control,.ant-form .ant-form-item .ant-form-item-label{flex:0 0 100%;max-width:100%}.ant-col-xs-24.ant-form-item-label{line-height:1.5715;padding:0 0 8px;text-align:left;white-space:normal}.ant-col-xs-24.ant-form-item-label>label{margin:0}.ant-col-xs-24.ant-form-item-label>label:after{display:none}.ant-form-rtl.ant-col-xs-24.ant-form-item-label{text-align:right}}@media (max-width:767px){.ant-col-sm-24.ant-form-item-label{line-height:1.5715;padding:0 0 8px;text-align:left;white-space:normal}.ant-col-sm-24.ant-form-item-label>label{margin:0}.ant-col-sm-24.ant-form-item-label>label:after{display:none}.ant-form-rtl.ant-col-sm-24.ant-form-item-label{text-align:right}}@media (max-width:991px){.ant-col-md-24.ant-form-item-label{line-height:1.5715;padding:0 0 8px;text-align:left;white-space:normal}.ant-col-md-24.ant-form-item-label>label{margin:0}.ant-col-md-24.ant-form-item-label>label:after{display:none}.ant-form-rtl.ant-col-md-24.ant-form-item-label{text-align:right}}@media (max-width:1199px){.ant-col-lg-24.ant-form-item-label{line-height:1.5715;padding:0 0 8px;text-align:left;white-space:normal}.ant-col-lg-24.ant-form-item-label>label{margin:0}.ant-col-lg-24.ant-form-item-label>label:after{display:none}.ant-form-rtl.ant-col-lg-24.ant-form-item-label{text-align:right}}@media (max-width:1599px){.ant-col-xl-24.ant-form-item-label{line-height:1.5715;padding:0 0 8px;text-align:left;white-space:normal}.ant-col-xl-24.ant-form-item-label>label{margin:0}.ant-col-xl-24.ant-form-item-label>label:after{display:none}.ant-form-rtl.ant-col-xl-24.ant-form-item-label{text-align:right}}.ant-form-item-explain-error{color:#a61d24}.ant-form-item-explain-warning{color:#d89614}.ant-form-item-has-feedback .ant-input{padding-right:24px}.ant-form-item-has-feedback .ant-input-affix-wrapper .ant-input-suffix{padding-right:18px}.ant-form-item-has-feedback .ant-input-search:not(.ant-input-search-enter-button) .ant-input-suffix{right:28px}.ant-form-item-has-feedback .ant-switch{margin:2px 0 4px}.ant-form-item-has-feedback :not(.ant-input-group-addon)>.ant-select .ant-select-arrow,.ant-form-item-has-feedback :not(.ant-input-group-addon)>.ant-select .ant-select-clear,.ant-form-item-has-feedback :not(.ant-input-number-group-addon)>.ant-select .ant-select-arrow,.ant-form-item-has-feedback :not(.ant-input-number-group-addon)>.ant-select .ant-select-clear,.ant-form-item-has-feedback>.ant-select .ant-select-arrow,.ant-form-item-has-feedback>.ant-select .ant-select-clear{right:32px}.ant-form-item-has-feedback :not(.ant-input-group-addon)>.ant-select .ant-select-selection-selected-value,.ant-form-item-has-feedback :not(.ant-input-number-group-addon)>.ant-select .ant-select-selection-selected-value,.ant-form-item-has-feedback>.ant-select .ant-select-selection-selected-value{padding-right:42px}.ant-form-item-has-feedback .ant-cascader-picker-arrow{margin-right:19px}.ant-form-item-has-feedback .ant-cascader-picker-clear{right:32px}.ant-form-item-has-feedback .ant-picker,.ant-form-item-has-feedback .ant-picker-large{padding-right:29.2px}.ant-form-item-has-feedback .ant-picker-small{padding-right:25.2px}.ant-form-item-has-feedback.ant-form-item-has-error .ant-form-item-children-icon,.ant-form-item-has-feedback.ant-form-item-has-success .ant-form-item-children-icon,.ant-form-item-has-feedback.ant-form-item-has-warning .ant-form-item-children-icon,.ant-form-item-has-feedback.ant-form-item-is-validating .ant-form-item-children-icon{-webkit-animation:zoomIn .3s cubic-bezier(.12,.4,.29,1.46);animation:zoomIn .3s cubic-bezier(.12,.4,.29,1.46);font-size:14px;height:20px;line-height:20px;margin-top:-10px;pointer-events:none;position:absolute;right:0;text-align:center;top:50%;visibility:visible;width:32px;z-index:1}.ant-form-item-has-success.ant-form-item-has-feedback .ant-form-item-children-icon{-webkit-animation-name:diffZoomIn1!important;animation-name:diffZoomIn1!important;color:#49aa19}.ant-form-item-has-warning .ant-form-item-split{color:#d89614}.ant-form-item-has-warning :not(.ant-input-affix-wrapper-disabled):not(.ant-input-affix-wrapper-borderless).ant-input-affix-wrapper,.ant-form-item-has-warning :not(.ant-input-affix-wrapper-disabled):not(.ant-input-affix-wrapper-borderless).ant-input-affix-wrapper:hover,.ant-form-item-has-warning :not(.ant-input-disabled):not(.ant-input-borderless).ant-input,.ant-form-item-has-warning :not(.ant-input-disabled):not(.ant-input-borderless).ant-input:hover,.ant-form-item-has-warning :not(.ant-input-number-affix-wrapper-disabled):not(.ant-input-number-affix-wrapper-borderless).ant-input-number-affix-wrapper,.ant-form-item-has-warning :not(.ant-input-number-affix-wrapper-disabled):not(.ant-input-number-affix-wrapper-borderless).ant-input-number-affix-wrapper:hover{background-color:transparent;border-color:#d89614}.ant-form-item-has-warning .ant-calendar-picker-open .ant-calendar-picker-input,.ant-form-item-has-warning :not(.ant-input-affix-wrapper-disabled):not(.ant-input-affix-wrapper-borderless).ant-input-affix-wrapper-focused,.ant-form-item-has-warning :not(.ant-input-affix-wrapper-disabled):not(.ant-input-affix-wrapper-borderless).ant-input-affix-wrapper:focus,.ant-form-item-has-warning :not(.ant-input-disabled):not(.ant-input-borderless).ant-input-focused,.ant-form-item-has-warning :not(.ant-input-disabled):not(.ant-input-borderless).ant-input:focus,.ant-form-item-has-warning :not(.ant-input-number-affix-wrapper-disabled):not(.ant-input-number-affix-wrapper-borderless).ant-input-number-affix-wrapper-focused,.ant-form-item-has-warning :not(.ant-input-number-affix-wrapper-disabled):not(.ant-input-number-affix-wrapper-borderless).ant-input-number-affix-wrapper:focus{border-color:#d89614;border-right-width:1px!important;box-shadow:0 0 0 2px rgba(216,150,20,.2);outline:0}.ant-form-item-has-warning .ant-input-number-prefix,.ant-form-item-has-warning .ant-input-prefix{color:#d89614}.ant-form-item-has-warning .ant-input-group-addon,.ant-form-item-has-warning .ant-input-number-group-addon{border-color:#d89614;color:#d89614}.ant-form-item-has-warning .has-feedback{color:#d89614}.ant-form-item-has-warning.ant-form-item-has-feedback .ant-form-item-children-icon{-webkit-animation-name:diffZoomIn3!important;animation-name:diffZoomIn3!important;color:#d89614}.ant-form-item-has-warning .ant-select:not(.ant-select-disabled):not(.ant-select-customize-input) .ant-select-selector{background-color:transparent;border-color:#d89614!important}.ant-form-item-has-warning .ant-select:not(.ant-select-disabled):not(.ant-select-customize-input).ant-select-focused .ant-select-selector,.ant-form-item-has-warning .ant-select:not(.ant-select-disabled):not(.ant-select-customize-input).ant-select-open .ant-select-selector{border-color:#d89614;border-right-width:1px!important;box-shadow:0 0 0 2px rgba(216,150,20,.2);outline:0}.ant-form-item-has-warning .ant-input-number,.ant-form-item-has-warning .ant-picker{background-color:transparent;border-color:#d89614}.ant-form-item-has-warning .ant-input-number-focused,.ant-form-item-has-warning .ant-input-number:focus,.ant-form-item-has-warning .ant-picker-focused,.ant-form-item-has-warning .ant-picker:focus{border-color:#d89614;border-right-width:1px!important;box-shadow:0 0 0 2px rgba(216,150,20,.2);outline:0}.ant-form-item-has-warning .ant-input-number:not([disabled]):hover,.ant-form-item-has-warning .ant-picker:not([disabled]):hover{background-color:transparent;border-color:#d89614}.ant-form-item-has-warning .ant-cascader-picker:focus .ant-cascader-input{border-color:#d89614;border-right-width:1px!important;box-shadow:0 0 0 2px rgba(216,150,20,.2);outline:0}.ant-form-item-has-error .ant-form-item-split{color:#a61d24}.ant-form-item-has-error :not(.ant-input-affix-wrapper-disabled):not(.ant-input-affix-wrapper-borderless).ant-input-affix-wrapper,.ant-form-item-has-error :not(.ant-input-affix-wrapper-disabled):not(.ant-input-affix-wrapper-borderless).ant-input-affix-wrapper:hover,.ant-form-item-has-error :not(.ant-input-disabled):not(.ant-input-borderless).ant-input,.ant-form-item-has-error :not(.ant-input-disabled):not(.ant-input-borderless).ant-input:hover,.ant-form-item-has-error :not(.ant-input-number-affix-wrapper-disabled):not(.ant-input-number-affix-wrapper-borderless).ant-input-number-affix-wrapper,.ant-form-item-has-error :not(.ant-input-number-affix-wrapper-disabled):not(.ant-input-number-affix-wrapper-borderless).ant-input-number-affix-wrapper:hover{background-color:transparent;border-color:#a61d24}.ant-form-item-has-error .ant-calendar-picker-open .ant-calendar-picker-input,.ant-form-item-has-error :not(.ant-input-affix-wrapper-disabled):not(.ant-input-affix-wrapper-borderless).ant-input-affix-wrapper-focused,.ant-form-item-has-error :not(.ant-input-affix-wrapper-disabled):not(.ant-input-affix-wrapper-borderless).ant-input-affix-wrapper:focus,.ant-form-item-has-error :not(.ant-input-disabled):not(.ant-input-borderless).ant-input-focused,.ant-form-item-has-error :not(.ant-input-disabled):not(.ant-input-borderless).ant-input:focus,.ant-form-item-has-error :not(.ant-input-number-affix-wrapper-disabled):not(.ant-input-number-affix-wrapper-borderless).ant-input-number-affix-wrapper-focused,.ant-form-item-has-error :not(.ant-input-number-affix-wrapper-disabled):not(.ant-input-number-affix-wrapper-borderless).ant-input-number-affix-wrapper:focus{border-color:#a61d24;border-right-width:1px!important;box-shadow:0 0 0 2px rgba(166,29,36,.2);outline:0}.ant-form-item-has-error .ant-input-number-prefix,.ant-form-item-has-error .ant-input-prefix{color:#a61d24}.ant-form-item-has-error .ant-input-group-addon,.ant-form-item-has-error .ant-input-number-group-addon{border-color:#a61d24;color:#a61d24}.ant-form-item-has-error .has-feedback{color:#a61d24}.ant-form-item-has-error.ant-form-item-has-feedback .ant-form-item-children-icon{-webkit-animation-name:diffZoomIn2!important;animation-name:diffZoomIn2!important;color:#a61d24}.ant-form-item-has-error .ant-select:not(.ant-select-disabled):not(.ant-select-customize-input) .ant-select-selector{background-color:transparent;border-color:#a61d24!important}.ant-form-item-has-error .ant-select:not(.ant-select-disabled):not(.ant-select-customize-input).ant-select-focused .ant-select-selector,.ant-form-item-has-error .ant-select:not(.ant-select-disabled):not(.ant-select-customize-input).ant-select-open .ant-select-selector{border-color:#a61d24;border-right-width:1px!important;box-shadow:0 0 0 2px rgba(166,29,36,.2);outline:0}.ant-form-item-has-error .ant-input-group-addon .ant-select.ant-select-single:not(.ant-select-customize-input) .ant-select-selector,.ant-form-item-has-error .ant-input-number-group-addon .ant-select.ant-select-single:not(.ant-select-customize-input) .ant-select-selector{background-color:inherit;border:0;box-shadow:none}.ant-form-item-has-error .ant-select.ant-select-auto-complete .ant-input:focus{border-color:#a61d24}.ant-form-item-has-error .ant-input-number,.ant-form-item-has-error .ant-picker{background-color:transparent;border-color:#a61d24}.ant-form-item-has-error .ant-input-number-focused,.ant-form-item-has-error .ant-input-number:focus,.ant-form-item-has-error .ant-picker-focused,.ant-form-item-has-error .ant-picker:focus{border-color:#a61d24;border-right-width:1px!important;box-shadow:0 0 0 2px rgba(166,29,36,.2);outline:0}.ant-form-item-has-error .ant-input-number:not([disabled]):hover,.ant-form-item-has-error .ant-mention-wrapper .ant-mention-editor,.ant-form-item-has-error .ant-mention-wrapper .ant-mention-editor:not([disabled]):hover,.ant-form-item-has-error .ant-picker:not([disabled]):hover{background-color:transparent;border-color:#a61d24}.ant-form-item-has-error .ant-mention-wrapper .ant-mention-editor:not([disabled]):focus,.ant-form-item-has-error .ant-mention-wrapper.ant-mention-active:not([disabled]) .ant-mention-editor{border-color:#a61d24;border-right-width:1px!important;box-shadow:0 0 0 2px rgba(166,29,36,.2);outline:0}.ant-form-item-has-error .ant-cascader-picker:hover .ant-cascader-picker-label:hover+.ant-cascader-input.ant-input{border-color:#a61d24}.ant-form-item-has-error .ant-cascader-picker:focus .ant-cascader-input{background-color:transparent;border-color:#a61d24;border-right-width:1px!important;box-shadow:0 0 0 2px rgba(166,29,36,.2);outline:0}.ant-form-item-has-error .ant-transfer-list{border-color:#a61d24}.ant-form-item-has-error .ant-transfer-list-search:not([disabled]){border-color:#434343}.ant-form-item-has-error .ant-transfer-list-search:not([disabled]):hover{border-color:#165996;border-right-width:1px!important}.ant-form-item-has-error .ant-transfer-list-search:not([disabled]):focus{border-color:#177ddc;border-right-width:1px!important;box-shadow:0 0 0 2px rgba(23,125,220,.2);outline:0}.ant-form-item-has-error .ant-radio-button-wrapper{border-color:#a61d24!important}.ant-form-item-has-error .ant-radio-button-wrapper:not(:first-child):before{background-color:#a61d24}.ant-form-item-has-error .ant-mentions{border-color:#a61d24!important}.ant-form-item-has-error .ant-mentions-focused,.ant-form-item-has-error .ant-mentions:focus{border-color:#a61d24;border-right-width:1px!important;box-shadow:0 0 0 2px rgba(166,29,36,.2);outline:0}.ant-form-item-is-validating.ant-form-item-has-feedback .ant-form-item-children-icon{color:#177ddc;display:inline-block}.ant-form{font-feature-settings:"tnum";box-sizing:border-box;color:hsla(0,0%,100%,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0}.ant-form legend{border:0;border-bottom:1px solid #434343;color:hsla(0,0%,100%,.45);display:block;font-size:16px;line-height:inherit;margin-bottom:20px;padding:0;width:100%}.ant-form label{font-size:14px}.ant-form input[type=search]{box-sizing:border-box}.ant-form input[type=checkbox],.ant-form input[type=radio]{line-height:normal}.ant-form input[type=file]{display:block}.ant-form input[type=range]{display:block;width:100%}.ant-form select[multiple],.ant-form select[size]{height:auto}.ant-form input[type=checkbox]:focus,.ant-form input[type=file]:focus,.ant-form input[type=radio]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.ant-form output{color:hsla(0,0%,100%,.85);display:block;font-size:14px;line-height:1.5715;padding-top:15px}.ant-form .ant-form-text{display:inline-block;padding-right:8px}.ant-form-small .ant-form-item-label>label{height:24px}.ant-form-small .ant-form-item-control-input{min-height:24px}.ant-form-large .ant-form-item-label>label{height:40px}.ant-form-large .ant-form-item-control-input{min-height:40px}.ant-form-item{font-feature-settings:"tnum";box-sizing:border-box;color:hsla(0,0%,100%,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0 0 24px;padding:0;vertical-align:top}.ant-form-item-with-help{margin-bottom:0;transition:none}.ant-form-item-hidden,.ant-form-item-hidden.ant-row{display:none}.ant-form-item-label{display:inline-block;flex-grow:0;overflow:hidden;text-align:right;vertical-align:middle;white-space:nowrap}.ant-form-item-label-left{text-align:left}.ant-form-item-label-wrap{line-height:1.3215em;overflow:unset;white-space:unset}.ant-form-item-label>label{align-items:center;color:hsla(0,0%,100%,.85);display:inline-flex;font-size:14px;height:32px;max-width:100%;position:relative}.ant-form-item-label>label>.anticon{font-size:14px;vertical-align:top}.ant-form-item-label>label.ant-form-item-required:not(.ant-form-item-required-mark-optional):before{color:#a61d24;content:"*";display:inline-block;font-family:SimSun,sans-serif;font-size:14px;line-height:1;margin-right:4px}.ant-form-hide-required-mark .ant-form-item-label>label.ant-form-item-required:not(.ant-form-item-required-mark-optional):before{display:none}.ant-form-item-label>label .ant-form-item-optional{color:hsla(0,0%,100%,.45);display:inline-block;margin-left:4px}.ant-form-hide-required-mark .ant-form-item-label>label .ant-form-item-optional{display:none}.ant-form-item-label>label .ant-form-item-tooltip{-webkit-margin-start:4px;color:hsla(0,0%,100%,.45);cursor:help;margin-inline-start:4px;writing-mode:horizontal-tb}.ant-form-item-label>label:after{content:":";margin:0 8px 0 2px;position:relative;top:-.5px}.ant-form-item-label>label.ant-form-item-no-colon:after{content:" "}.ant-form-item-control{display:flex;flex-direction:column;flex-grow:1}.ant-form-item-control:first-child:not([class^=ant-col-]):not([class*=" ant-col-"]){width:100%}.ant-form-item-control-input{align-items:center;display:flex;min-height:32px;position:relative}.ant-form-item-control-input-content{flex:auto;max-width:100%}.ant-form-item-explain,.ant-form-item-extra{clear:both;color:hsla(0,0%,100%,.45);font-size:14px;line-height:1.5715;transition:color .3s cubic-bezier(.215,.61,.355,1)}.ant-form-item-explain-connected{height:0;min-height:0;opacity:0}.ant-form-item-extra{min-height:24px}.ant-form-item .ant-input-textarea-show-count:after{margin-bottom:-22px}.ant-form-item-with-help .ant-form-item-explain{height:auto;min-height:24px;opacity:1}.ant-show-help{transition:height .3s linear,min-height .3s linear,margin-bottom .3s cubic-bezier(.645,.045,.355,1),opacity .3s cubic-bezier(.645,.045,.355,1)}.ant-show-help-leave{min-height:24px}.ant-show-help-leave-active{min-height:0}.ant-show-help-item{overflow:hidden;transition:height .3s cubic-bezier(.645,.045,.355,1),opacity .3s cubic-bezier(.645,.045,.355,1),transform .3s cubic-bezier(.645,.045,.355,1)!important}.ant-show-help-item-appear,.ant-show-help-item-enter{opacity:0;transform:translateY(-5px)}.ant-show-help-item-appear-active,.ant-show-help-item-enter-active{opacity:1;transform:translateY(0)}.ant-show-help-item-leave-active{transform:translateY(-5px)}@-webkit-keyframes diffZoomIn1{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}@keyframes diffZoomIn1{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}@-webkit-keyframes diffZoomIn2{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}@keyframes diffZoomIn2{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}@-webkit-keyframes diffZoomIn3{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}@keyframes diffZoomIn3{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}.ant-form-rtl{direction:rtl}.ant-form-rtl .ant-form-item-label{text-align:left}.ant-form-rtl .ant-form-item-label>label.ant-form-item-required:before{margin-left:4px;margin-right:0}.ant-form-rtl .ant-form-item-label>label:after{margin:0 2px 0 8px}.ant-form-rtl .ant-form-item-label>label .ant-form-item-optional{margin-left:0;margin-right:4px}.ant-col-rtl .ant-form-item-control:first-child{width:100%}.ant-form-rtl .ant-form-item-has-feedback .ant-input{padding-left:24px;padding-right:11px}.ant-form-rtl .ant-form-item-has-feedback .ant-input-affix-wrapper .ant-input-suffix{padding-left:18px;padding-right:11px}.ant-form-rtl .ant-form-item-has-feedback .ant-input-affix-wrapper .ant-input,.ant-form-rtl .ant-form-item-has-feedback .ant-input-number-affix-wrapper .ant-input-number{padding:0}.ant-form-rtl .ant-form-item-has-feedback .ant-input-search:not(.ant-input-search-enter-button) .ant-input-suffix{left:28px;right:auto}.ant-form-rtl .ant-form-item-has-feedback .ant-input-number{padding-left:18px}.ant-form-rtl .ant-form-item-has-feedback :not(.ant-input-group-addon)>.ant-select .ant-select-arrow,.ant-form-rtl .ant-form-item-has-feedback :not(.ant-input-group-addon)>.ant-select .ant-select-clear,.ant-form-rtl .ant-form-item-has-feedback :not(.ant-input-number-group-addon)>.ant-select .ant-select-arrow,.ant-form-rtl .ant-form-item-has-feedback :not(.ant-input-number-group-addon)>.ant-select .ant-select-clear,.ant-form-rtl .ant-form-item-has-feedback>.ant-select .ant-select-arrow,.ant-form-rtl .ant-form-item-has-feedback>.ant-select .ant-select-clear{left:32px;right:auto}.ant-form-rtl .ant-form-item-has-feedback :not(.ant-input-group-addon)>.ant-select .ant-select-selection-selected-value,.ant-form-rtl .ant-form-item-has-feedback :not(.ant-input-number-group-addon)>.ant-select .ant-select-selection-selected-value,.ant-form-rtl .ant-form-item-has-feedback>.ant-select .ant-select-selection-selected-value{padding-left:42px;padding-right:0}.ant-form-rtl .ant-form-item-has-feedback .ant-cascader-picker-arrow{margin-left:19px;margin-right:0}.ant-form-rtl .ant-form-item-has-feedback .ant-cascader-picker-clear{left:32px;right:auto}.ant-form-rtl .ant-form-item-has-feedback .ant-picker,.ant-form-rtl .ant-form-item-has-feedback .ant-picker-large{padding-left:29.2px;padding-right:11px}.ant-form-rtl .ant-form-item-has-feedback .ant-picker-small{padding-left:25.2px;padding-right:7px}.ant-form-rtl .ant-form-item-has-feedback.ant-form-item-has-error .ant-form-item-children-icon,.ant-form-rtl .ant-form-item-has-feedback.ant-form-item-has-success .ant-form-item-children-icon,.ant-form-rtl .ant-form-item-has-feedback.ant-form-item-has-warning .ant-form-item-children-icon,.ant-form-rtl .ant-form-item-has-feedback.ant-form-item-is-validating .ant-form-item-children-icon{left:0;right:auto}.ant-form-rtl.ant-form-inline .ant-form-item{margin-left:16px;margin-right:0}.ant-image{display:inline-block;position:relative}.ant-image-img{height:auto;vertical-align:middle;width:100%}.ant-image-img-placeholder{background-color:#f5f5f5;background-image:url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE0LjUgMi41aC0xM0EuNS41IDAgMCAwIDEgM3YxMGEuNS41IDAgMCAwIC41LjVoMTNhLjUuNSAwIDAgMCAuNS0uNVYzYS41LjUgMCAwIDAtLjUtLjV6TTUuMjgxIDQuNzVhMSAxIDAgMCAxIDAgMiAxIDEgMCAwIDEgMC0yem04LjAzIDYuODNhLjEyNy4xMjcgMCAwIDEtLjA4MS4wM0gyLjc2OWEuMTI1LjEyNSAwIDAgMS0uMDk2LS4yMDdsMi42NjEtMy4xNTZhLjEyNi4xMjYgMCAwIDEgLjE3Ny0uMDE2bC4wMTYuMDE2TDcuMDggMTAuMDlsMi40Ny0yLjkzYS4xMjYuMTI2IDAgMCAxIC4xNzctLjAxNmwuMDE1LjAxNiAzLjU4OCA0LjI0NGEuMTI3LjEyNyAwIDAgMS0uMDIuMTc1eiIgZmlsbD0iIzhDOEM4QyIvPjwvc3ZnPg==");background-position:50%;background-repeat:no-repeat;background-size:30%}.ant-image-mask{align-items:center;background:rgba(0,0,0,.5);bottom:0;color:#fff;cursor:pointer;display:flex;justify-content:center;left:0;opacity:0;position:absolute;right:0;top:0;transition:opacity .3s}.ant-image-mask-info{overflow:hidden;padding:0 4px;text-overflow:ellipsis;white-space:nowrap}.ant-image-mask-info .anticon{-webkit-margin-end:4px;margin-inline-end:4px}.ant-image-mask:hover{opacity:1}.ant-image-placeholder{bottom:0;left:0;position:absolute;right:0;top:0}.ant-image-preview{height:100%;pointer-events:none;text-align:center}.ant-image-preview.ant-zoom-enter,.ant-image-preview.antzoom-appear{-webkit-animation-duration:.3s;animation-duration:.3s;opacity:0;transform:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ant-image-preview-mask{background-color:rgba(0,0,0,.45);bottom:0;height:100%;left:0;position:fixed;right:0;top:0;z-index:1000}.ant-image-preview-mask-hidden{display:none}.ant-image-preview-wrap{-webkit-overflow-scrolling:touch;bottom:0;left:0;outline:0;overflow:auto;position:fixed;right:0;top:0}.ant-image-preview-body{bottom:0;left:0;overflow:hidden;position:absolute;right:0;top:0}.ant-image-preview-img{cursor:-webkit-grab;cursor:grab;max-height:100%;max-width:100%;pointer-events:auto;transform:scaleX(1);-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle}.ant-image-preview-img,.ant-image-preview-img-wrapper{transition:transform .3s cubic-bezier(.215,.61,.355,1) 0s}.ant-image-preview-img-wrapper{bottom:0;left:0;position:absolute;right:0;top:0}.ant-image-preview-img-wrapper:before{content:"";display:inline-block;height:50%;margin-right:-1px;width:1px}.ant-image-preview-moving .ant-image-preview-img{cursor:-webkit-grabbing;cursor:grabbing}.ant-image-preview-moving .ant-image-preview-img-wrapper{transition-duration:0s}.ant-image-preview-wrap{z-index:1080}.ant-image-preview-operations{font-feature-settings:"tnum";align-items:center;background:rgba(0,0,0,.1);box-sizing:border-box;color:hsla(0,0%,100%,.85);display:flex;flex-direction:row-reverse;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0;pointer-events:auto;position:absolute;right:0;top:0;width:100%;z-index:1}.ant-image-preview-operations-operation{cursor:pointer;margin-left:12px;padding:12px}.ant-image-preview-operations-operation-disabled{color:hsla(0,0%,100%,.25);pointer-events:none}.ant-image-preview-operations-operation:last-of-type{margin-left:0}.ant-image-preview-operations-icon{font-size:18px}.ant-image-preview-switch-left,.ant-image-preview-switch-right{align-items:center;background:rgba(0,0,0,.1);border-radius:50%;color:hsla(0,0%,100%,.85);cursor:pointer;display:flex;height:44px;justify-content:center;margin-top:-22px;pointer-events:auto;position:absolute;right:10px;top:50%;width:44px;z-index:1}.ant-image-preview-switch-left-disabled,.ant-image-preview-switch-right-disabled{color:hsla(0,0%,100%,.25);cursor:not-allowed}.ant-image-preview-switch-left-disabled>.anticon,.ant-image-preview-switch-right-disabled>.anticon{cursor:not-allowed}.ant-image-preview-switch-left>.anticon,.ant-image-preview-switch-right>.anticon{font-size:18px}.ant-image-preview-switch-left{left:10px}.ant-image-preview-switch-right{right:10px}.ant-input-number-affix-wrapper{-webkit-padding-start:11px;background-color:transparent;background-image:none;border:1px solid #434343;border-radius:2px;color:hsla(0,0%,100%,.85);display:inline-block;display:inline-flex;font-size:14px;line-height:1.5715;min-width:0;padding:0;padding-inline-start:11px;position:relative;position:static;transition:all .3s;width:100%;width:90px}.ant-input-number-affix-wrapper::-moz-placeholder{opacity:1}.ant-input-number-affix-wrapper::placeholder{color:hsla(0,0%,100%,.3);-webkit-user-select:none;-moz-user-select:none;user-select:none}.ant-input-number-affix-wrapper:-moz-placeholder-shown{text-overflow:ellipsis}.ant-input-number-affix-wrapper:placeholder-shown{text-overflow:ellipsis}.ant-input-number-affix-wrapper:hover{border-color:#165996;border-right-width:1px!important}.ant-input-number-affix-wrapper-focused,.ant-input-number-affix-wrapper:focus{border-color:#177ddc;border-right-width:1px!important;box-shadow:0 0 0 2px rgba(23,125,220,.2);outline:0}.ant-input-number-affix-wrapper-disabled{background-color:hsla(0,0%,100%,.08);border-color:#434343;box-shadow:none;color:hsla(0,0%,100%,.3);cursor:not-allowed;opacity:1}.ant-input-number-affix-wrapper-disabled:hover{border-color:#434343;border-right-width:1px!important}.ant-input-number-affix-wrapper[disabled]{background-color:hsla(0,0%,100%,.08);border-color:#434343;box-shadow:none;color:hsla(0,0%,100%,.3);cursor:not-allowed;opacity:1}.ant-input-number-affix-wrapper[disabled]:hover{border-color:#434343;border-right-width:1px!important}.ant-input-number-affix-wrapper-borderless,.ant-input-number-affix-wrapper-borderless-disabled,.ant-input-number-affix-wrapper-borderless-focused,.ant-input-number-affix-wrapper-borderless:focus,.ant-input-number-affix-wrapper-borderless:hover,.ant-input-number-affix-wrapper-borderless[disabled]{background-color:transparent;border:none;box-shadow:none}textarea.ant-input-number-affix-wrapper{height:auto;line-height:1.5715;max-width:100%;min-height:32px;transition:all .3s,height 0s;vertical-align:bottom}.ant-input-number-affix-wrapper-lg{font-size:16px;padding:6.5px 11px}.ant-input-number-affix-wrapper-sm{padding:0 7px}.ant-input-number-affix-wrapper:not(.ant-input-number-affix-wrapper-disabled):hover{border-color:#165996;border-right-width:1px!important;z-index:1}.ant-input-number-affix-wrapper-focused,.ant-input-number-affix-wrapper:focus{z-index:1}.ant-input-number-affix-wrapper-disabled .ant-input-number[disabled]{background:transparent}.ant-input-number-affix-wrapper>div.ant-input-number{border:none;outline:none;width:100%}.ant-input-number-affix-wrapper>div.ant-input-number.ant-input-number-focused{box-shadow:none!important}.ant-input-number-affix-wrapper input.ant-input-number-input{padding:0}.ant-input-number-affix-wrapper:before{content:"\\a0";visibility:hidden;width:0}.ant-input-number-prefix{-webkit-margin-end:4px;align-items:center;display:flex;flex:none;margin-inline-end:4px}.ant-input-number-group-wrapper .ant-input-number-affix-wrapper{width:100%}.ant-input-number{font-feature-settings:"tnum";background-color:transparent;background-image:none;border:1px solid #434343;border-radius:2px;box-sizing:border-box;color:hsla(0,0%,100%,.85);display:inline-block;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;min-width:0;padding:0;position:relative;transition:all .3s;width:100%;width:90px}.ant-input-number::-moz-placeholder{opacity:1}.ant-input-number::placeholder{color:hsla(0,0%,100%,.3);-webkit-user-select:none;-moz-user-select:none;user-select:none}.ant-input-number:-moz-placeholder-shown{text-overflow:ellipsis}.ant-input-number:placeholder-shown{text-overflow:ellipsis}.ant-input-number-focused,.ant-input-number:focus{border-color:#177ddc;border-right-width:1px!important;box-shadow:0 0 0 2px rgba(23,125,220,.2);outline:0}.ant-input-number[disabled]{background-color:hsla(0,0%,100%,.08);border-color:#434343;box-shadow:none;color:hsla(0,0%,100%,.3);cursor:not-allowed;opacity:1}.ant-input-number[disabled]:hover{border-color:#434343;border-right-width:1px!important}.ant-input-number-borderless,.ant-input-number-borderless-disabled,.ant-input-number-borderless-focused,.ant-input-number-borderless:focus,.ant-input-number-borderless:hover,.ant-input-number-borderless[disabled]{background-color:transparent;border:none;box-shadow:none}textarea.ant-input-number{height:auto;line-height:1.5715;max-width:100%;min-height:32px;transition:all .3s,height 0s;vertical-align:bottom}.ant-input-number-lg{padding:6.5px 11px}.ant-input-number-sm{padding:0 7px}.ant-input-number-group{font-feature-settings:"tnum";border-collapse:separate;border-spacing:0;box-sizing:border-box;color:hsla(0,0%,100%,.85);display:table;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0;position:relative;width:100%}.ant-input-number-group[class*=col-]{float:none;padding-left:0;padding-right:0}.ant-input-number-group>[class*=col-]{padding-right:8px}.ant-input-number-group>[class*=col-]:last-child{padding-right:0}.ant-input-number-group-addon,.ant-input-number-group-wrap,.ant-input-number-group>.ant-input-number{display:table-cell}.ant-input-number-group-addon:not(:first-child):not(:last-child),.ant-input-number-group-wrap:not(:first-child):not(:last-child),.ant-input-number-group>.ant-input-number:not(:first-child):not(:last-child){border-radius:0}.ant-input-number-group-addon,.ant-input-number-group-wrap{vertical-align:middle;white-space:nowrap;width:1px}.ant-input-number-group-wrap>*{display:block!important}.ant-input-number-group .ant-input-number{float:left;margin-bottom:0;text-align:inherit;width:100%}.ant-input-number-group .ant-input-number:focus,.ant-input-number-group .ant-input-number:hover{border-right-width:1px;z-index:1}.ant-input-search-with-button .ant-input-number-group .ant-input-number:hover{z-index:0}.ant-input-number-group-addon{background-color:hsla(0,0%,100%,.04);border:1px solid #434343;border-radius:2px;color:hsla(0,0%,100%,.85);font-size:14px;font-weight:400;padding:0 11px;position:relative;text-align:center;transition:all .3s}.ant-input-number-group-addon .ant-select{margin:-5px -11px}.ant-input-number-group-addon .ant-select.ant-select-single:not(.ant-select-customize-input) .ant-select-selector{background-color:inherit;border:1px solid transparent;box-shadow:none}.ant-input-number-group-addon .ant-select-focused .ant-select-selector,.ant-input-number-group-addon .ant-select-open .ant-select-selector{color:#177ddc}.ant-input-number-group-addon .ant-cascader-picker{background-color:transparent;margin:-9px -12px}.ant-input-number-group-addon .ant-cascader-picker .ant-cascader-input{border:0;box-shadow:none;text-align:left}.ant-input-number-group-addon:first-child,.ant-input-number-group-addon:first-child .ant-select .ant-select-selector,.ant-input-number-group>.ant-input-number:first-child,.ant-input-number-group>.ant-input-number:first-child .ant-select .ant-select-selector{border-bottom-right-radius:0;border-top-right-radius:0}.ant-input-number-group>.ant-input-number-affix-wrapper:not(:first-child) .ant-input-number{border-bottom-left-radius:0;border-top-left-radius:0}.ant-input-number-group>.ant-input-number-affix-wrapper:not(:last-child) .ant-input-number{border-bottom-right-radius:0;border-top-right-radius:0}.ant-input-number-group-addon:first-child{border-right:0}.ant-input-number-group-addon:last-child{border-left:0}.ant-input-number-group-addon:last-child,.ant-input-number-group-addon:last-child .ant-select .ant-select-selector,.ant-input-number-group>.ant-input-number:last-child,.ant-input-number-group>.ant-input-number:last-child .ant-select .ant-select-selector{border-bottom-left-radius:0;border-top-left-radius:0}.ant-input-number-group-lg .ant-input-number,.ant-input-number-group-lg>.ant-input-number-group-addon{font-size:16px;padding:6.5px 11px}.ant-input-number-group-sm .ant-input-number,.ant-input-number-group-sm>.ant-input-number-group-addon{padding:0 7px}.ant-input-number-group-lg .ant-select-single .ant-select-selector{height:40px}.ant-input-number-group-sm .ant-select-single .ant-select-selector{height:24px}.ant-input-number-group .ant-input-number-affix-wrapper:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.ant-input-search .ant-input-number-group .ant-input-number-affix-wrapper:not(:last-child){border-bottom-left-radius:2px;border-top-left-radius:2px}.ant-input-number-group .ant-input-number-affix-wrapper:not(:first-child),.ant-input-search .ant-input-number-group .ant-input-number-affix-wrapper:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.ant-input-number-group.ant-input-number-group-compact{display:block}.ant-input-number-group.ant-input-number-group-compact:before{content:"";display:table}.ant-input-number-group.ant-input-number-group-compact:after{clear:both;content:"";display:table}.ant-input-number-group.ant-input-number-group-compact-addon:not(:first-child):not(:last-child),.ant-input-number-group.ant-input-number-group-compact-wrap:not(:first-child):not(:last-child),.ant-input-number-group.ant-input-number-group-compact>.ant-input-number:not(:first-child):not(:last-child){border-right-width:1px}.ant-input-number-group.ant-input-number-group-compact-addon:not(:first-child):not(:last-child):focus,.ant-input-number-group.ant-input-number-group-compact-addon:not(:first-child):not(:last-child):hover,.ant-input-number-group.ant-input-number-group-compact-wrap:not(:first-child):not(:last-child):focus,.ant-input-number-group.ant-input-number-group-compact-wrap:not(:first-child):not(:last-child):hover,.ant-input-number-group.ant-input-number-group-compact>.ant-input-number:not(:first-child):not(:last-child):focus,.ant-input-number-group.ant-input-number-group-compact>.ant-input-number:not(:first-child):not(:last-child):hover{z-index:1}.ant-input-number-group.ant-input-number-group-compact>*{border-radius:0;display:inline-block;float:none;vertical-align:top}.ant-input-number-group.ant-input-number-group-compact>.ant-input-number-affix-wrapper,.ant-input-number-group.ant-input-number-group-compact>.ant-picker-range{display:inline-flex}.ant-input-number-group.ant-input-number-group-compact>:not(:last-child){border-right-width:1px;margin-right:-1px}.ant-input-number-group.ant-input-number-group-compact .ant-input-number{float:none}.ant-input-number-group.ant-input-number-group-compact>.ant-cascader-picker .ant-input,.ant-input-number-group.ant-input-number-group-compact>.ant-input-group-wrapper .ant-input,.ant-input-number-group.ant-input-number-group-compact>.ant-select-auto-complete .ant-input,.ant-input-number-group.ant-input-number-group-compact>.ant-select>.ant-select-selector{border-radius:0;border-right-width:1px}.ant-input-number-group.ant-input-number-group-compact>.ant-cascader-picker .ant-input:focus,.ant-input-number-group.ant-input-number-group-compact>.ant-cascader-picker .ant-input:hover,.ant-input-number-group.ant-input-number-group-compact>.ant-input-group-wrapper .ant-input:focus,.ant-input-number-group.ant-input-number-group-compact>.ant-input-group-wrapper .ant-input:hover,.ant-input-number-group.ant-input-number-group-compact>.ant-select-auto-complete .ant-input:focus,.ant-input-number-group.ant-input-number-group-compact>.ant-select-auto-complete .ant-input:hover,.ant-input-number-group.ant-input-number-group-compact>.ant-select-focused,.ant-input-number-group.ant-input-number-group-compact>.ant-select>.ant-select-arrow,.ant-input-number-group.ant-input-number-group-compact>.ant-select>.ant-select-selector:focus,.ant-input-number-group.ant-input-number-group-compact>.ant-select>.ant-select-selector:hover{z-index:1}.ant-input-number-group.ant-input-number-group-compact>.ant-cascader-picker:first-child .ant-input,.ant-input-number-group.ant-input-number-group-compact>.ant-select-auto-complete:first-child .ant-input,.ant-input-number-group.ant-input-number-group-compact>.ant-select:first-child>.ant-select-selector,.ant-input-number-group.ant-input-number-group-compact>:first-child{border-bottom-left-radius:2px;border-top-left-radius:2px}.ant-input-number-group.ant-input-number-group-compact>.ant-cascader-picker-focused:last-child .ant-input,.ant-input-number-group.ant-input-number-group-compact>.ant-cascader-picker:last-child .ant-input,.ant-input-number-group.ant-input-number-group-compact>.ant-select:last-child>.ant-select-selector,.ant-input-number-group.ant-input-number-group-compact>:last-child{border-bottom-right-radius:2px;border-right-width:1px;border-top-right-radius:2px}.ant-input-number-group.ant-input-number-group-compact>.ant-select-auto-complete .ant-input{vertical-align:top}.ant-input-number-group.ant-input-number-group-compact .ant-input-group-wrapper+.ant-input-group-wrapper{margin-left:-1px}.ant-input-number-group.ant-input-number-group-compact .ant-input-group-wrapper+.ant-input-group-wrapper .ant-input-affix-wrapper,.ant-input-number-group.ant-input-number-group-compact .ant-input-group-wrapper:not(:last-child).ant-input-search>.ant-input-group>.ant-input-group-addon>.ant-input-search-button{border-radius:0}.ant-input-number-group.ant-input-number-group-compact .ant-input-group-wrapper:not(:last-child).ant-input-search>.ant-input-group>.ant-input{border-radius:2px 0 0 2px}.ant-input-number-group-wrapper{display:inline-block;text-align:start;vertical-align:top}.ant-input-number-handler{border-left:1px solid #434343;color:hsla(0,0%,100%,.45);display:block;font-weight:700;height:50%;line-height:0;overflow:hidden;position:relative;text-align:center;transition:all .1s linear;width:100%}.ant-input-number-handler:active{background:hsla(0,0%,100%,.08)}.ant-input-number-handler:hover .ant-input-number-handler-down-inner,.ant-input-number-handler:hover .ant-input-number-handler-up-inner{color:#165996}.ant-input-number-handler-down-inner,.ant-input-number-handler-up-inner{text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:inherit;color:hsla(0,0%,100%,.45);display:inline-block;font-style:normal;height:12px;line-height:0;line-height:12px;position:absolute;right:4px;text-align:center;text-transform:none;transition:all .1s linear;-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:-.125em;width:12px}.ant-input-number-handler-down-inner>*,.ant-input-number-handler-up-inner>*{line-height:1}.ant-input-number-handler-down-inner svg,.ant-input-number-handler-up-inner svg{display:inline-block}.ant-input-number-handler-down-inner:before,.ant-input-number-handler-up-inner:before{display:none}.ant-input-number-handler-down-inner .ant-input-number-handler-down-inner-icon,.ant-input-number-handler-down-inner .ant-input-number-handler-up-inner-icon,.ant-input-number-handler-up-inner .ant-input-number-handler-down-inner-icon,.ant-input-number-handler-up-inner .ant-input-number-handler-up-inner-icon{display:block}.ant-input-number:hover{border-color:#165996;border-right-width:1px!important}.ant-input-number:hover+.ant-form-item-children-icon{opacity:0;transition:opacity .24s linear .24s}.ant-input-number-focused{border-color:#177ddc;border-right-width:1px!important;box-shadow:0 0 0 2px rgba(23,125,220,.2);outline:0}.ant-input-number-disabled{background-color:hsla(0,0%,100%,.08);border-color:#434343;box-shadow:none;color:hsla(0,0%,100%,.3);cursor:not-allowed;opacity:1}.ant-input-number-disabled:hover{border-color:#434343;border-right-width:1px!important}.ant-input-number-disabled .ant-input-number-input{cursor:not-allowed}.ant-input-number-disabled .ant-input-number-handler-wrap,.ant-input-number-readonly .ant-input-number-handler-wrap{display:none}.ant-input-number-input{-webkit-appearance:textfield!important;-moz-appearance:textfield!important;appearance:textfield!important;background-color:transparent;border:0;border-radius:2px;height:30px;outline:0;padding:0 11px;text-align:left;transition:all .3s linear;width:100%}.ant-input-number-input::-moz-placeholder{opacity:1}.ant-input-number-input::placeholder{color:hsla(0,0%,100%,.3);-webkit-user-select:none;-moz-user-select:none;user-select:none}.ant-input-number-input:-moz-placeholder-shown{text-overflow:ellipsis}.ant-input-number-input:placeholder-shown{text-overflow:ellipsis}.ant-input-number-input[type=number]::-webkit-inner-spin-button,.ant-input-number-input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;appearance:none;margin:0}.ant-input-number-lg{font-size:16px;padding:0}.ant-input-number-lg input{height:38px}.ant-input-number-sm{padding:0}.ant-input-number-sm input{height:22px;padding:0 7px}.ant-input-number-handler-wrap{background:#141414;border-radius:0 2px 2px 0;height:100%;opacity:0;position:absolute;right:0;top:0;transition:opacity .24s linear .1s;width:22px}.ant-input-number-handler-wrap .ant-input-number-handler .ant-input-number-handler-down-inner,.ant-input-number-handler-wrap .ant-input-number-handler .ant-input-number-handler-up-inner{align-items:center;display:flex;font-size:7px;justify-content:center;margin-right:0;min-width:auto}.ant-input-number-borderless .ant-input-number-handler-wrap{border-left-width:0}.ant-input-number-handler-wrap:hover .ant-input-number-handler{height:40%}.ant-input-number-focused .ant-input-number-handler-wrap,.ant-input-number:hover .ant-input-number-handler-wrap{opacity:1}.ant-input-number-handler-up{border-top-right-radius:2px;cursor:pointer}.ant-input-number-handler-up-inner{margin-top:-5px;text-align:center;top:50%}.ant-input-number-handler-up:hover{height:60%!important}.ant-input-number-handler-down{border-bottom-right-radius:2px;border-top:1px solid #434343;cursor:pointer;top:0}.ant-input-number-handler-down-inner{text-align:center;top:50%;transform:translateY(-50%)}.ant-input-number-handler-down:hover{height:60%!important}.ant-input-number-borderless .ant-input-number-handler-down{border-top-width:0}.ant-input-number-handler-down-disabled,.ant-input-number-handler-up-disabled{cursor:not-allowed}.ant-input-number-handler-down-disabled:hover .ant-input-number-handler-down-inner,.ant-input-number-handler-up-disabled:hover .ant-input-number-handler-up-inner{color:hsla(0,0%,100%,.3)}.ant-input-number-borderless{box-shadow:none}.ant-input-number-out-of-range input{color:#a61d24}.ant-input-number-rtl{direction:rtl}.ant-input-number-rtl .ant-input-number-handler{border-left:0;border-right:1px solid #434343}.ant-input-number-rtl .ant-input-number-handler-wrap{left:0;right:auto}.ant-input-number-rtl.ant-input-number-borderless .ant-input-number-handler-wrap{border-right-width:0}.ant-input-number-rtl .ant-input-number-handler-up{border-top-right-radius:0}.ant-input-number-rtl .ant-input-number-handler-down{border-bottom-right-radius:0}.ant-input-number-rtl .ant-input-number-input{direction:ltr;text-align:right}.ant-input-affix-wrapper{background-color:transparent;background-image:none;border:1px solid #434343;border-radius:2px;color:hsla(0,0%,100%,.85);display:inline-block;display:inline-flex;font-size:14px;line-height:1.5715;min-width:0;padding:4px 11px;position:relative;transition:all .3s;width:100%}.ant-input-affix-wrapper::-moz-placeholder{opacity:1}.ant-input-affix-wrapper::placeholder{color:hsla(0,0%,100%,.3);-webkit-user-select:none;-moz-user-select:none;user-select:none}.ant-input-affix-wrapper:-moz-placeholder-shown{text-overflow:ellipsis}.ant-input-affix-wrapper:placeholder-shown{text-overflow:ellipsis}.ant-input-affix-wrapper:hover{border-color:#165996;border-right-width:1px!important}.ant-input-rtl .ant-input-affix-wrapper:hover{border-left-width:1px!important;border-right-width:0}.ant-input-affix-wrapper-focused,.ant-input-affix-wrapper:focus{border-color:#177ddc;border-right-width:1px!important;box-shadow:0 0 0 2px rgba(23,125,220,.2);outline:0}.ant-input-rtl .ant-input-affix-wrapper-focused,.ant-input-rtl .ant-input-affix-wrapper:focus{border-left-width:1px!important;border-right-width:0}.ant-input-affix-wrapper-disabled{background-color:hsla(0,0%,100%,.08);border-color:#434343;box-shadow:none;color:hsla(0,0%,100%,.3);cursor:not-allowed;opacity:1}.ant-input-affix-wrapper-disabled:hover{border-color:#434343;border-right-width:1px!important}.ant-input-affix-wrapper[disabled]{background-color:hsla(0,0%,100%,.08);border-color:#434343;box-shadow:none;color:hsla(0,0%,100%,.3);cursor:not-allowed;opacity:1}.ant-input-affix-wrapper[disabled]:hover{border-color:#434343;border-right-width:1px!important}.ant-input-affix-wrapper-borderless,.ant-input-affix-wrapper-borderless-disabled,.ant-input-affix-wrapper-borderless-focused,.ant-input-affix-wrapper-borderless:focus,.ant-input-affix-wrapper-borderless:hover,.ant-input-affix-wrapper-borderless[disabled]{background-color:transparent;border:none;box-shadow:none}textarea.ant-input-affix-wrapper{height:auto;line-height:1.5715;max-width:100%;min-height:32px;transition:all .3s,height 0s;vertical-align:bottom}.ant-input-affix-wrapper-lg{font-size:16px;padding:6.5px 11px}.ant-input-affix-wrapper-sm{padding:0 7px}.ant-input-affix-wrapper-rtl{direction:rtl}.ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled):hover{border-color:#165996;border-right-width:1px!important;z-index:1}.ant-input-rtl .ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled):hover{border-left-width:1px!important;border-right-width:0}.ant-input-search-with-button .ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled):hover{z-index:0}.ant-input-affix-wrapper-focused,.ant-input-affix-wrapper:focus{z-index:1}.ant-input-affix-wrapper-disabled .ant-input[disabled]{background:transparent}.ant-input-affix-wrapper>input.ant-input{border:none;outline:none;padding:0}.ant-input-affix-wrapper>input.ant-input:focus{box-shadow:none!important}.ant-input-affix-wrapper:before{content:"\\a0";visibility:hidden;width:0}.ant-input-prefix,.ant-input-suffix{align-items:center;display:flex;flex:none}.ant-input-show-count-suffix{color:hsla(0,0%,100%,.45)}.ant-input-show-count-has-suffix{margin-right:2px}.ant-input-prefix{margin-right:4px}.ant-input-suffix{margin-left:4px}.anticon.ant-input-clear-icon{color:hsla(0,0%,100%,.3);cursor:pointer;font-size:12px;margin:0;transition:color .3s;vertical-align:-1px}.anticon.ant-input-clear-icon:hover{color:hsla(0,0%,100%,.45)}.anticon.ant-input-clear-icon:active{color:hsla(0,0%,100%,.85)}.anticon.ant-input-clear-icon-hidden{visibility:hidden}.anticon.ant-input-clear-icon-has-suffix{margin:0 4px}.ant-input-affix-wrapper-textarea-with-clear-btn{border:0!important;padding:0!important}.ant-input-affix-wrapper-textarea-with-clear-btn .ant-input-clear-icon{position:absolute;right:8px;top:8px;z-index:1}.ant-input{font-feature-settings:"tnum";background-color:transparent;background-image:none;border:1px solid #434343;border-radius:2px;box-sizing:border-box;color:hsla(0,0%,100%,.85);display:inline-block;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;min-width:0;padding:4px 11px;position:relative;transition:all .3s;width:100%}.ant-input::-moz-placeholder{opacity:1}.ant-input::placeholder{color:hsla(0,0%,100%,.3);-webkit-user-select:none;-moz-user-select:none;user-select:none}.ant-input:-moz-placeholder-shown{text-overflow:ellipsis}.ant-input:placeholder-shown{text-overflow:ellipsis}.ant-input:hover{border-color:#165996;border-right-width:1px!important}.ant-input-rtl .ant-input:hover{border-left-width:1px!important;border-right-width:0}.ant-input-focused,.ant-input:focus{border-color:#177ddc;border-right-width:1px!important;box-shadow:0 0 0 2px rgba(23,125,220,.2);outline:0}.ant-input-rtl .ant-input-focused,.ant-input-rtl .ant-input:focus{border-left-width:1px!important;border-right-width:0}.ant-input-disabled{background-color:hsla(0,0%,100%,.08);border-color:#434343;box-shadow:none;color:hsla(0,0%,100%,.3);cursor:not-allowed;opacity:1}.ant-input-disabled:hover{border-color:#434343;border-right-width:1px!important}.ant-input[disabled]{background-color:hsla(0,0%,100%,.08);border-color:#434343;box-shadow:none;color:hsla(0,0%,100%,.3);cursor:not-allowed;opacity:1}.ant-input[disabled]:hover{border-color:#434343;border-right-width:1px!important}.ant-input-borderless,.ant-input-borderless-disabled,.ant-input-borderless-focused,.ant-input-borderless:focus,.ant-input-borderless:hover,.ant-input-borderless[disabled]{background-color:transparent;border:none;box-shadow:none}textarea.ant-input{height:auto;line-height:1.5715;max-width:100%;min-height:32px;transition:all .3s,height 0s;vertical-align:bottom}.ant-input-lg{font-size:16px;padding:6.5px 11px}.ant-input-sm{padding:0 7px}.ant-input-rtl{direction:rtl}.ant-input-group{font-feature-settings:"tnum";border-collapse:separate;border-spacing:0;box-sizing:border-box;color:hsla(0,0%,100%,.85);display:table;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0;position:relative;width:100%}.ant-input-group[class*=col-]{float:none;padding-left:0;padding-right:0}.ant-input-group>[class*=col-]{padding-right:8px}.ant-input-group>[class*=col-]:last-child{padding-right:0}.ant-input-group-addon,.ant-input-group-wrap,.ant-input-group>.ant-input{display:table-cell}.ant-input-group-addon:not(:first-child):not(:last-child),.ant-input-group-wrap:not(:first-child):not(:last-child),.ant-input-group>.ant-input:not(:first-child):not(:last-child){border-radius:0}.ant-input-group-addon,.ant-input-group-wrap{vertical-align:middle;white-space:nowrap;width:1px}.ant-input-group-wrap>*{display:block!important}.ant-input-group .ant-input{float:left;margin-bottom:0;text-align:inherit;width:100%}.ant-input-group .ant-input:focus,.ant-input-group .ant-input:hover{border-right-width:1px;z-index:1}.ant-input-search-with-button .ant-input-group .ant-input:hover{z-index:0}.ant-input-group-addon{background-color:hsla(0,0%,100%,.04);border:1px solid #434343;border-radius:2px;color:hsla(0,0%,100%,.85);font-size:14px;font-weight:400;padding:0 11px;position:relative;text-align:center;transition:all .3s}.ant-input-group-addon .ant-select{margin:-5px -11px}.ant-input-group-addon .ant-select.ant-select-single:not(.ant-select-customize-input) .ant-select-selector{background-color:inherit;border:1px solid transparent;box-shadow:none}.ant-input-group-addon .ant-select-focused .ant-select-selector,.ant-input-group-addon .ant-select-open .ant-select-selector{color:#177ddc}.ant-input-group-addon .ant-cascader-picker{background-color:transparent;margin:-9px -12px}.ant-input-group-addon .ant-cascader-picker .ant-cascader-input{border:0;box-shadow:none;text-align:left}.ant-input-group-addon:first-child,.ant-input-group-addon:first-child .ant-select .ant-select-selector,.ant-input-group>.ant-input:first-child,.ant-input-group>.ant-input:first-child .ant-select .ant-select-selector{border-bottom-right-radius:0;border-top-right-radius:0}.ant-input-group>.ant-input-affix-wrapper:not(:first-child) .ant-input{border-bottom-left-radius:0;border-top-left-radius:0}.ant-input-group>.ant-input-affix-wrapper:not(:last-child) .ant-input{border-bottom-right-radius:0;border-top-right-radius:0}.ant-input-group-addon:first-child{border-right:0}.ant-input-group-addon:last-child{border-left:0}.ant-input-group-addon:last-child,.ant-input-group-addon:last-child .ant-select .ant-select-selector,.ant-input-group>.ant-input:last-child,.ant-input-group>.ant-input:last-child .ant-select .ant-select-selector{border-bottom-left-radius:0;border-top-left-radius:0}.ant-input-group-lg .ant-input,.ant-input-group-lg>.ant-input-group-addon{font-size:16px;padding:6.5px 11px}.ant-input-group-sm .ant-input,.ant-input-group-sm>.ant-input-group-addon{padding:0 7px}.ant-input-group-lg .ant-select-single .ant-select-selector{height:40px}.ant-input-group-sm .ant-select-single .ant-select-selector{height:24px}.ant-input-group .ant-input-affix-wrapper:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.ant-input-search .ant-input-group .ant-input-affix-wrapper:not(:last-child){border-bottom-left-radius:2px;border-top-left-radius:2px}.ant-input-group .ant-input-affix-wrapper:not(:first-child),.ant-input-search .ant-input-group .ant-input-affix-wrapper:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.ant-input-group.ant-input-group-compact{display:block}.ant-input-group.ant-input-group-compact:before{content:"";display:table}.ant-input-group.ant-input-group-compact:after{clear:both;content:"";display:table}.ant-input-group.ant-input-group-compact-addon:not(:first-child):not(:last-child),.ant-input-group.ant-input-group-compact-wrap:not(:first-child):not(:last-child),.ant-input-group.ant-input-group-compact>.ant-input:not(:first-child):not(:last-child){border-right-width:1px}.ant-input-group.ant-input-group-compact-addon:not(:first-child):not(:last-child):focus,.ant-input-group.ant-input-group-compact-addon:not(:first-child):not(:last-child):hover,.ant-input-group.ant-input-group-compact-wrap:not(:first-child):not(:last-child):focus,.ant-input-group.ant-input-group-compact-wrap:not(:first-child):not(:last-child):hover,.ant-input-group.ant-input-group-compact>.ant-input:not(:first-child):not(:last-child):focus,.ant-input-group.ant-input-group-compact>.ant-input:not(:first-child):not(:last-child):hover{z-index:1}.ant-input-group.ant-input-group-compact>*{border-radius:0;display:inline-block;float:none;vertical-align:top}.ant-input-group.ant-input-group-compact>.ant-input-affix-wrapper,.ant-input-group.ant-input-group-compact>.ant-picker-range{display:inline-flex}.ant-input-group.ant-input-group-compact>:not(:last-child){border-right-width:1px;margin-right:-1px}.ant-input-group.ant-input-group-compact .ant-input{float:none}.ant-input-group.ant-input-group-compact>.ant-cascader-picker .ant-input,.ant-input-group.ant-input-group-compact>.ant-input-group-wrapper .ant-input,.ant-input-group.ant-input-group-compact>.ant-select-auto-complete .ant-input,.ant-input-group.ant-input-group-compact>.ant-select>.ant-select-selector{border-radius:0;border-right-width:1px}.ant-input-group.ant-input-group-compact>.ant-cascader-picker .ant-input:focus,.ant-input-group.ant-input-group-compact>.ant-cascader-picker .ant-input:hover,.ant-input-group.ant-input-group-compact>.ant-input-group-wrapper .ant-input:focus,.ant-input-group.ant-input-group-compact>.ant-input-group-wrapper .ant-input:hover,.ant-input-group.ant-input-group-compact>.ant-select-auto-complete .ant-input:focus,.ant-input-group.ant-input-group-compact>.ant-select-auto-complete .ant-input:hover,.ant-input-group.ant-input-group-compact>.ant-select-focused,.ant-input-group.ant-input-group-compact>.ant-select>.ant-select-arrow,.ant-input-group.ant-input-group-compact>.ant-select>.ant-select-selector:focus,.ant-input-group.ant-input-group-compact>.ant-select>.ant-select-selector:hover{z-index:1}.ant-input-group.ant-input-group-compact>.ant-cascader-picker:first-child .ant-input,.ant-input-group.ant-input-group-compact>.ant-select-auto-complete:first-child .ant-input,.ant-input-group.ant-input-group-compact>.ant-select:first-child>.ant-select-selector,.ant-input-group.ant-input-group-compact>:first-child{border-bottom-left-radius:2px;border-top-left-radius:2px}.ant-input-group.ant-input-group-compact>.ant-cascader-picker-focused:last-child .ant-input,.ant-input-group.ant-input-group-compact>.ant-cascader-picker:last-child .ant-input,.ant-input-group.ant-input-group-compact>.ant-select:last-child>.ant-select-selector,.ant-input-group.ant-input-group-compact>:last-child{border-bottom-right-radius:2px;border-right-width:1px;border-top-right-radius:2px}.ant-input-group.ant-input-group-compact>.ant-select-auto-complete .ant-input{vertical-align:top}.ant-input-group.ant-input-group-compact .ant-input-group-wrapper+.ant-input-group-wrapper{margin-left:-1px}.ant-input-group.ant-input-group-compact .ant-input-group-wrapper+.ant-input-group-wrapper .ant-input-affix-wrapper,.ant-input-group.ant-input-group-compact .ant-input-group-wrapper:not(:last-child).ant-input-search>.ant-input-group>.ant-input-group-addon>.ant-input-search-button{border-radius:0}.ant-input-group.ant-input-group-compact .ant-input-group-wrapper:not(:last-child).ant-input-search>.ant-input-group>.ant-input{border-radius:2px 0 0 2px}.ant-input-group-rtl .ant-input-group-addon:first-child,.ant-input-group>.ant-input-rtl:first-child{border-radius:0 2px 2px 0}.ant-input-group-rtl .ant-input-group-addon:first-child{border-left:0;border-right:1px solid #434343}.ant-input-group-rtl .ant-input-group-addon:last-child{border-left:1px solid #434343;border-right:0}.ant-input-group-rtl.ant-input-group .ant-input-affix-wrapper:not(:first-child),.ant-input-group-rtl.ant-input-group-addon:last-child,.ant-input-group-rtl.ant-input-group>.ant-input:last-child{border-radius:2px 0 0 2px}.ant-input-group-rtl.ant-input-group .ant-input-affix-wrapper:not(:last-child){border-radius:0 2px 2px 0}.ant-input-group-rtl.ant-input-group.ant-input-group-compact>:not(:last-child){border-left-width:1px;margin-left:-1px;margin-right:0}.ant-input-group-rtl.ant-input-group.ant-input-group-compact>.ant-cascader-picker:first-child .ant-input,.ant-input-group-rtl.ant-input-group.ant-input-group-compact>.ant-select-auto-complete:first-child .ant-input,.ant-input-group-rtl.ant-input-group.ant-input-group-compact>.ant-select:first-child>.ant-select-selector,.ant-input-group-rtl.ant-input-group.ant-input-group-compact>:first-child{border-radius:0 2px 2px 0}.ant-input-group-rtl.ant-input-group.ant-input-group-compact>.ant-cascader-picker-focused:last-child .ant-input,.ant-input-group-rtl.ant-input-group.ant-input-group-compact>.ant-cascader-picker:last-child .ant-input,.ant-input-group-rtl.ant-input-group.ant-input-group-compact>.ant-select-auto-complete:last-child .ant-input,.ant-input-group-rtl.ant-input-group.ant-input-group-compact>.ant-select:last-child>.ant-select-selector,.ant-input-group-rtl.ant-input-group.ant-input-group-compact>:last-child{border-left-width:1px;border-radius:2px 0 0 2px}.ant-input-group.ant-input-group-compact .ant-input-group-wrapper-rtl+.ant-input-group-wrapper-rtl{margin-left:0;margin-right:-1px}.ant-input-group.ant-input-group-compact .ant-input-group-wrapper-rtl:not(:last-child).ant-input-search>.ant-input-group>.ant-input{border-radius:0 2px 2px 0}.ant-input-group-wrapper{display:inline-block;text-align:start;vertical-align:top;width:100%}.ant-input-password-icon{color:hsla(0,0%,100%,.45);cursor:pointer;transition:all .3s}.ant-input-password-icon:hover{color:hsla(0,0%,100%,.85)}.ant-input[type=color]{height:32px}.ant-input[type=color].ant-input-lg{height:40px}.ant-input[type=color].ant-input-sm{height:24px;padding-bottom:3px;padding-top:3px}.ant-input-textarea-show-count>.ant-input{height:100%}.ant-input-textarea-show-count:after{color:hsla(0,0%,100%,.45);content:attr(data-count);float:right;pointer-events:none;white-space:nowrap}.ant-input-search .ant-input:focus,.ant-input-search .ant-input:hover{border-color:#165996}.ant-input-search .ant-input:focus+.ant-input-group-addon .ant-input-search-button:not(.ant-btn-primary),.ant-input-search .ant-input:hover+.ant-input-group-addon .ant-input-search-button:not(.ant-btn-primary){border-left-color:#165996}.ant-input-search .ant-input-affix-wrapper{border-radius:0}.ant-input-search .ant-input-lg{line-height:1.5713}.ant-input-search>.ant-input-group>.ant-input-group-addon:last-child{border:0;left:-1px;padding:0}.ant-input-search>.ant-input-group>.ant-input-group-addon:last-child .ant-input-search-button{border-radius:0 2px 2px 0;padding-bottom:0;padding-top:0}.ant-input-search>.ant-input-group>.ant-input-group-addon:last-child .ant-input-search-button:not(.ant-btn-primary){color:hsla(0,0%,100%,.45)}.ant-input-search>.ant-input-group>.ant-input-group-addon:last-child .ant-input-search-button:not(.ant-btn-primary).ant-btn-loading:before{bottom:0;left:0;right:0;top:0}.ant-input-search-button{height:32px}.ant-input-search-button:focus,.ant-input-search-button:hover{z-index:1}.ant-input-search-large .ant-input-search-button{height:40px}.ant-input-search-small .ant-input-search-button{height:24px}.ant-input-group-rtl,.ant-input-group-wrapper-rtl{direction:rtl}.ant-input-affix-wrapper.ant-input-affix-wrapper-rtl>input.ant-input{border:none;outline:none}.ant-input-affix-wrapper-rtl .ant-input-prefix{margin:0 0 0 4px}.ant-input-affix-wrapper-rtl .ant-input-suffix{margin:0 4px 0 0}.ant-input-textarea-rtl{direction:rtl}.ant-input-textarea-rtl.ant-input-textarea-show-count:after{text-align:left}.ant-input-affix-wrapper-rtl .ant-input-clear-icon-has-suffix{margin-left:4px;margin-right:0}.ant-input-affix-wrapper-rtl .ant-input-clear-icon{left:8px;right:auto}.ant-input-search-rtl{direction:rtl}.ant-input-search-rtl .ant-input:focus+.ant-input-group-addon .ant-input-search-button:not(.ant-btn-primary),.ant-input-search-rtl .ant-input:hover+.ant-input-group-addon .ant-input-search-button:not(.ant-btn-primary){border-left-color:#434343;border-right-color:#165996}.ant-input-search-rtl>.ant-input-group>.ant-input-affix-wrapper-focused,.ant-input-search-rtl>.ant-input-group>.ant-input-affix-wrapper:hover{border-right-color:#165996}.ant-input-search-rtl>.ant-input-group>.ant-input-group-addon{left:auto;right:-1px}.ant-input-search-rtl>.ant-input-group>.ant-input-group-addon .ant-input-search-button{border-radius:2px 0 0 2px}@media (-ms-high-contrast:none),screen and (-ms-high-contrast:active){.ant-input{height:32px}.ant-input-lg{height:40px}.ant-input-sm{height:24px}.ant-input-affix-wrapper>input.ant-input{height:auto}}.ant-layout{background:#000;display:flex;flex:auto;flex-direction:column;min-height:0}.ant-layout,.ant-layout *{box-sizing:border-box}.ant-layout.ant-layout-has-sider{flex-direction:row}.ant-layout.ant-layout-has-sider>.ant-layout,.ant-layout.ant-layout-has-sider>.ant-layout-content{width:0}.ant-layout-footer,.ant-layout-header{flex:0 0 auto}.ant-layout-header{background:#1f1f1f;color:hsla(0,0%,100%,.85);height:64px;line-height:64px;padding:0 50px}.ant-layout-footer{background:#000;color:hsla(0,0%,100%,.85);font-size:14px;padding:24px 50px}.ant-layout-content{flex:auto;min-height:0}.ant-layout-sider{background:#1f1f1f;min-width:0;position:relative;transition:all .2s}.ant-layout-sider-children{height:100%;margin-top:-.1px;padding-top:.1px}.ant-layout-sider-children .ant-menu.ant-menu-inline-collapsed{width:auto}.ant-layout-sider-has-trigger{padding-bottom:48px}.ant-layout-sider-right{order:1}.ant-layout-sider-trigger{background:#262626;bottom:0;color:#fff;cursor:pointer;height:48px;line-height:48px;position:fixed;text-align:center;transition:all .2s;z-index:1}.ant-layout-sider-zero-width>*{overflow:hidden}.ant-layout-sider-zero-width-trigger{background:#1f1f1f;border-radius:0 2px 2px 0;color:#fff;cursor:pointer;font-size:18px;height:42px;line-height:42px;position:absolute;right:-36px;text-align:center;top:64px;transition:background .3s ease;width:36px;z-index:1}.ant-layout-sider-zero-width-trigger:after{background:transparent;bottom:0;content:"";left:0;position:absolute;right:0;top:0;transition:all .3s}.ant-layout-sider-zero-width-trigger:hover:after{background:hsla(0,0%,100%,.1)}.ant-layout-sider-zero-width-trigger-right{border-radius:2px 0 0 2px;left:-36px}.ant-layout-sider-light{background:#fff}.ant-layout-sider-light .ant-layout-sider-trigger,.ant-layout-sider-light .ant-layout-sider-zero-width-trigger{background:#fff;color:hsla(0,0%,100%,.85)}.ant-layout-rtl{direction:rtl}.ant-list .ant-card{background:transparent}.ant-list{font-feature-settings:"tnum";box-sizing:border-box;color:hsla(0,0%,100%,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0;position:relative}.ant-list *{outline:none}.ant-list-pagination{margin-top:24px;text-align:right}.ant-list-pagination .ant-pagination-options{text-align:left}.ant-list-more{margin-top:12px;text-align:center}.ant-list-more button{padding-left:32px;padding-right:32px}.ant-list-spin{min-height:40px;text-align:center}.ant-list-empty-text{color:hsla(0,0%,100%,.3);font-size:14px;padding:16px;text-align:center}.ant-list-items{list-style:none;margin:0;padding:0}.ant-list-item{align-items:center;color:hsla(0,0%,100%,.85);display:flex;justify-content:space-between;padding:12px 0}.ant-list-item-meta{align-items:flex-start;display:flex;flex:1;max-width:100%}.ant-list-item-meta-avatar{margin-right:16px}.ant-list-item-meta-content{color:hsla(0,0%,100%,.85);flex:1 0;width:0}.ant-list-item-meta-title{color:hsla(0,0%,100%,.85);font-size:14px;line-height:1.5715;margin-bottom:4px}.ant-list-item-meta-title>a{color:hsla(0,0%,100%,.85);transition:all .3s}.ant-list-item-meta-title>a:hover{color:#177ddc}.ant-list-item-meta-description{color:hsla(0,0%,100%,.45);font-size:14px;line-height:1.5715}.ant-list-item-action{flex:0 0 auto;font-size:0;list-style:none;margin-left:48px;padding:0}.ant-list-item-action>li{color:hsla(0,0%,100%,.45);display:inline-block;font-size:14px;line-height:1.5715;padding:0 8px;position:relative;text-align:center}.ant-list-item-action>li:first-child{padding-left:0}.ant-list-item-action-split{background-color:#303030;height:14px;margin-top:-7px;position:absolute;right:0;top:50%;width:1px}.ant-list-footer,.ant-list-header{background:transparent}.ant-list-footer,.ant-list-header{padding-bottom:12px;padding-top:12px}.ant-list-empty{color:hsla(0,0%,100%,.45);font-size:12px;padding:16px 0;text-align:center}.ant-list-split .ant-list-item{border-bottom:1px solid #303030}.ant-list-split .ant-list-item:last-child{border-bottom:none}.ant-list-split .ant-list-header{border-bottom:1px solid #303030}.ant-list-split.ant-list-empty .ant-list-footer{border-top:1px solid #303030}.ant-list-loading .ant-list-spin-nested-loading{min-height:32px}.ant-list-split.ant-list-something-after-last-item .ant-spin-container>.ant-list-items>.ant-list-item:last-child{border-bottom:1px solid #303030}.ant-list-lg .ant-list-item{padding:16px 24px}.ant-list-sm .ant-list-item{padding:8px 16px}.ant-list-vertical .ant-list-item{align-items:normal}.ant-list-vertical .ant-list-item-main{display:block;flex:1}.ant-list-vertical .ant-list-item-extra{margin-left:40px}.ant-list-vertical .ant-list-item-meta{margin-bottom:16px}.ant-list-vertical .ant-list-item-meta-title{color:hsla(0,0%,100%,.85);font-size:16px;line-height:24px;margin-bottom:12px}.ant-list-vertical .ant-list-item-action{margin-left:auto;margin-top:16px}.ant-list-vertical .ant-list-item-action>li{padding:0 16px}.ant-list-vertical .ant-list-item-action>li:first-child{padding-left:0}.ant-list-grid .ant-col>.ant-list-item{border-bottom:none;display:block;margin-bottom:16px;max-width:100%;padding-bottom:0;padding-top:0}.ant-list-item-no-flex{display:block}.ant-list:not(.ant-list-vertical) .ant-list-item-no-flex .ant-list-item-action{float:right}.ant-list-bordered{border:1px solid #434343;border-radius:2px}.ant-list-bordered .ant-list-footer,.ant-list-bordered .ant-list-header,.ant-list-bordered .ant-list-item{padding-left:24px;padding-right:24px}.ant-list-bordered .ant-list-pagination{margin:16px 24px}.ant-list-bordered.ant-list-sm .ant-list-footer,.ant-list-bordered.ant-list-sm .ant-list-header,.ant-list-bordered.ant-list-sm .ant-list-item{padding:8px 16px}.ant-list-bordered.ant-list-lg .ant-list-footer,.ant-list-bordered.ant-list-lg .ant-list-header,.ant-list-bordered.ant-list-lg .ant-list-item{padding:16px 24px}@media screen and (max-width:768px){.ant-list-item-action,.ant-list-vertical .ant-list-item-extra{margin-left:24px}}@media screen and (max-width:576px){.ant-list-item{flex-wrap:wrap}.ant-list-item-action{margin-left:12px}.ant-list-vertical .ant-list-item{flex-wrap:wrap-reverse}.ant-list-vertical .ant-list-item-main{min-width:220px}.ant-list-vertical .ant-list-item-extra{margin:auto auto 16px}}.ant-list-rtl{direction:rtl;text-align:right}.ant-list-rtl .ReactVirtualized__List .ant-list-item{direction:rtl}.ant-list-rtl .ant-list-pagination{text-align:left}.ant-list-rtl .ant-list-item-meta-avatar{margin-left:16px;margin-right:0}.ant-list-rtl .ant-list-item-action{margin-left:0;margin-right:48px}.ant-list.ant-list-rtl .ant-list-item-action>li:first-child{padding-left:16px;padding-right:0}.ant-list-rtl .ant-list-item-action-split{left:0;right:auto}.ant-list-rtl.ant-list-vertical .ant-list-item-extra{margin-left:0;margin-right:40px}.ant-list-rtl.ant-list-vertical .ant-list-item-action{margin-right:auto}.ant-list-rtl .ant-list-vertical .ant-list-item-action>li:first-child{padding-left:16px;padding-right:0}.ant-list-rtl .ant-list:not(.ant-list-vertical) .ant-list-item-no-flex .ant-list-item-action{float:left}@media screen and (max-width:768px){.ant-list-rtl .ant-list-item-action,.ant-list-rtl .ant-list-vertical .ant-list-item-extra{margin-left:0;margin-right:24px}}@media screen and (max-width:576px){.ant-list-rtl .ant-list-item-action{margin-left:0;margin-right:22px}.ant-list-rtl.ant-list-vertical .ant-list-item-extra{margin:auto auto 16px}}.ant-spin{font-feature-settings:"tnum";box-sizing:border-box;color:hsla(0,0%,100%,.85);color:#177ddc;display:none;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;opacity:0;padding:0;position:absolute;text-align:center;transition:transform .3s cubic-bezier(.78,.14,.15,.86);vertical-align:middle}.ant-spin-spinning{display:inline-block;opacity:1;position:static}.ant-spin-nested-loading{position:relative}.ant-spin-nested-loading>div>.ant-spin{display:block;height:100%;left:0;max-height:400px;position:absolute;top:0;width:100%;z-index:4}.ant-spin-nested-loading>div>.ant-spin .ant-spin-dot{left:50%;margin:-10px;position:absolute;top:50%}.ant-spin-nested-loading>div>.ant-spin .ant-spin-text{padding-top:5px;position:absolute;text-shadow:0 1px 2px #141414;top:50%;width:100%}.ant-spin-nested-loading>div>.ant-spin.ant-spin-show-text .ant-spin-dot{margin-top:-20px}.ant-spin-nested-loading>div>.ant-spin-sm .ant-spin-dot{margin:-7px}.ant-spin-nested-loading>div>.ant-spin-sm .ant-spin-text{padding-top:2px}.ant-spin-nested-loading>div>.ant-spin-sm.ant-spin-show-text .ant-spin-dot{margin-top:-17px}.ant-spin-nested-loading>div>.ant-spin-lg .ant-spin-dot{margin:-16px}.ant-spin-nested-loading>div>.ant-spin-lg .ant-spin-text{padding-top:11px}.ant-spin-nested-loading>div>.ant-spin-lg.ant-spin-show-text .ant-spin-dot{margin-top:-26px}.ant-spin-container{position:relative;transition:opacity .3s}.ant-spin-container:after{background:#141414;bottom:0;content:"";display:none\\9;height:100%;left:0;opacity:0;pointer-events:none;position:absolute;right:0;top:0;transition:all .3s;width:100%;z-index:10}.ant-spin-blur{clear:both;opacity:.5;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ant-spin-blur:after{opacity:.4;pointer-events:auto}.ant-spin-tip{color:hsla(0,0%,100%,.45)}.ant-spin-dot{display:inline-block;font-size:20px;height:1em;position:relative;width:1em}.ant-spin-dot-item{-webkit-animation:antSpinMove 1s linear infinite alternate;animation:antSpinMove 1s linear infinite alternate;background-color:#177ddc;border-radius:100%;display:block;height:9px;opacity:.3;position:absolute;transform:scale(.75);transform-origin:50% 50%;width:9px}.ant-spin-dot-item:first-child{left:0;top:0}.ant-spin-dot-item:nth-child(2){-webkit-animation-delay:.4s;animation-delay:.4s;right:0;top:0}.ant-spin-dot-item:nth-child(3){-webkit-animation-delay:.8s;animation-delay:.8s;bottom:0;right:0}.ant-spin-dot-item:nth-child(4){-webkit-animation-delay:1.2s;animation-delay:1.2s;bottom:0;left:0}.ant-spin-dot-spin{-webkit-animation:antRotate 1.2s linear infinite;animation:antRotate 1.2s linear infinite;transform:rotate(45deg)}.ant-spin-sm .ant-spin-dot{font-size:14px}.ant-spin-sm .ant-spin-dot i{height:6px;width:6px}.ant-spin-lg .ant-spin-dot{font-size:32px}.ant-spin-lg .ant-spin-dot i{height:14px;width:14px}.ant-spin.ant-spin-show-text .ant-spin-text{display:block}@media (-ms-high-contrast:active),(-ms-high-contrast:none){.ant-spin-blur{background:#141414;opacity:.5}}@-webkit-keyframes antSpinMove{to{opacity:1}}@keyframes antSpinMove{to{opacity:1}}@-webkit-keyframes antRotate{to{transform:rotate(405deg)}}@keyframes antRotate{to{transform:rotate(405deg)}}.ant-spin-rtl{direction:rtl}.ant-spin-rtl .ant-spin-dot-spin{-webkit-animation-name:antRotateRtl;animation-name:antRotateRtl;transform:rotate(-45deg)}@-webkit-keyframes antRotateRtl{to{transform:rotate(-405deg)}}@keyframes antRotateRtl{to{transform:rotate(-405deg)}}.ant-pagination{font-feature-settings:"tnum";box-sizing:border-box;color:hsla(0,0%,100%,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715}.ant-pagination,.ant-pagination ol,.ant-pagination ul{list-style:none;margin:0;padding:0}.ant-pagination:after{clear:both;content:" ";display:block;height:0;overflow:hidden;visibility:hidden}.ant-pagination-item,.ant-pagination-total-text{display:inline-block;height:32px;line-height:30px;margin-right:8px;vertical-align:middle}.ant-pagination-item{background-color:transparent;border:1px solid #434343;border-radius:2px;cursor:pointer;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;list-style:none;min-width:32px;outline:0;text-align:center;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ant-pagination-item a{color:hsla(0,0%,100%,.85);display:block;padding:0 6px;transition:none}.ant-pagination-item a:hover{text-decoration:none}.ant-pagination-item:hover{border-color:#177ddc;transition:all .3s}.ant-pagination-item:hover a{color:#177ddc}.ant-pagination-item:focus-visible{border-color:#177ddc;transition:all .3s}.ant-pagination-item:focus-visible a{color:#177ddc}.ant-pagination-item-active{background:transparent;border-color:#177ddc;font-weight:500}.ant-pagination-item-active a{color:#177ddc}.ant-pagination-item-active:hover{border-color:#165996}.ant-pagination-item-active:focus-visible{border-color:#165996}.ant-pagination-item-active:hover a{color:#165996}.ant-pagination-item-active:focus-visible a{color:#165996}.ant-pagination-jump-next,.ant-pagination-jump-prev{outline:0}.ant-pagination-jump-next .ant-pagination-item-container,.ant-pagination-jump-prev .ant-pagination-item-container{position:relative}.ant-pagination-jump-next .ant-pagination-item-container .ant-pagination-item-link-icon,.ant-pagination-jump-prev .ant-pagination-item-container .ant-pagination-item-link-icon{color:#177ddc;font-size:12px;letter-spacing:-1px;opacity:0;transition:all .2s}.ant-pagination-jump-next .ant-pagination-item-container .ant-pagination-item-link-icon-svg,.ant-pagination-jump-prev .ant-pagination-item-container .ant-pagination-item-link-icon-svg{bottom:0;left:0;margin:auto;right:0;top:0}.ant-pagination-jump-next .ant-pagination-item-container .ant-pagination-item-ellipsis,.ant-pagination-jump-prev .ant-pagination-item-container .ant-pagination-item-ellipsis{bottom:0;color:hsla(0,0%,100%,.3);display:block;font-family:Arial,Helvetica,sans-serif;left:0;letter-spacing:2px;margin:auto;opacity:1;position:absolute;right:0;text-align:center;text-indent:.13em;top:0;transition:all .2s}.ant-pagination-jump-next:hover .ant-pagination-item-link-icon,.ant-pagination-jump-prev:hover .ant-pagination-item-link-icon{opacity:1}.ant-pagination-jump-next:hover .ant-pagination-item-ellipsis,.ant-pagination-jump-prev:hover .ant-pagination-item-ellipsis{opacity:0}.ant-pagination-jump-next:focus-visible .ant-pagination-item-link-icon,.ant-pagination-jump-prev:focus-visible .ant-pagination-item-link-icon{opacity:1}.ant-pagination-jump-next:focus-visible .ant-pagination-item-ellipsis,.ant-pagination-jump-prev:focus-visible .ant-pagination-item-ellipsis{opacity:0}.ant-pagination-jump-next,.ant-pagination-jump-prev,.ant-pagination-prev{margin-right:8px}.ant-pagination-jump-next,.ant-pagination-jump-prev,.ant-pagination-next,.ant-pagination-prev{border-radius:2px;color:hsla(0,0%,100%,.85);cursor:pointer;display:inline-block;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;height:32px;line-height:32px;list-style:none;min-width:32px;text-align:center;transition:all .3s;vertical-align:middle}.ant-pagination-next,.ant-pagination-prev{font-family:Arial,Helvetica,sans-serif;outline:0}.ant-pagination-next button,.ant-pagination-prev button{color:hsla(0,0%,100%,.85);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ant-pagination-next:hover button,.ant-pagination-prev:hover button{border-color:#165996}.ant-pagination-next .ant-pagination-item-link,.ant-pagination-prev .ant-pagination-item-link{background-color:transparent;border:1px solid #434343;border-radius:2px;display:block;font-size:12px;height:100%;outline:none;padding:0;text-align:center;transition:all .3s;width:100%}.ant-pagination-next:focus-visible .ant-pagination-item-link,.ant-pagination-prev:focus-visible .ant-pagination-item-link{border-color:#177ddc;color:#177ddc}.ant-pagination-next:hover .ant-pagination-item-link,.ant-pagination-prev:hover .ant-pagination-item-link{border-color:#177ddc;color:#177ddc}.ant-pagination-disabled,.ant-pagination-disabled:hover{cursor:not-allowed}.ant-pagination-disabled .ant-pagination-item-link,.ant-pagination-disabled:hover .ant-pagination-item-link{border-color:#434343;color:hsla(0,0%,100%,.3);cursor:not-allowed}.ant-pagination-disabled:focus-visible{cursor:not-allowed}.ant-pagination-disabled:focus-visible .ant-pagination-item-link{border-color:#434343;color:hsla(0,0%,100%,.3);cursor:not-allowed}.ant-pagination-slash{margin:0 10px 0 5px}.ant-pagination-options{display:inline-block;margin-left:16px;vertical-align:middle}@media (-ms-high-contrast:none){.ant-pagination-options,.ant-pagination-options ::-ms-backdrop{vertical-align:top}}.ant-pagination-options-size-changer.ant-select{display:inline-block;width:auto}.ant-pagination-options-quick-jumper{display:inline-block;height:32px;line-height:32px;margin-left:8px;vertical-align:top}.ant-pagination-options-quick-jumper input{background-color:transparent;background-image:none;border:1px solid #434343;border-radius:2px;color:hsla(0,0%,100%,.85);display:inline-block;font-size:14px;height:32px;line-height:1.5715;margin:0 8px;min-width:0;padding:4px 11px;position:relative;transition:all .3s;width:100%;width:50px}.ant-pagination-options-quick-jumper input::-moz-placeholder{opacity:1}.ant-pagination-options-quick-jumper input::placeholder{color:hsla(0,0%,100%,.3);-webkit-user-select:none;-moz-user-select:none;user-select:none}.ant-pagination-options-quick-jumper input:-moz-placeholder-shown{text-overflow:ellipsis}.ant-pagination-options-quick-jumper input:placeholder-shown{text-overflow:ellipsis}.ant-pagination-options-quick-jumper input:hover{border-color:#165996;border-right-width:1px!important}.ant-pagination-options-quick-jumper input-focused,.ant-pagination-options-quick-jumper input:focus{border-color:#177ddc;border-right-width:1px!important;box-shadow:0 0 0 2px rgba(23,125,220,.2);outline:0}.ant-pagination-options-quick-jumper input-disabled{background-color:hsla(0,0%,100%,.08);border-color:#434343;box-shadow:none;color:hsla(0,0%,100%,.3);cursor:not-allowed;opacity:1}.ant-pagination-options-quick-jumper input-disabled:hover{border-color:#434343;border-right-width:1px!important}.ant-pagination-options-quick-jumper input[disabled]{background-color:hsla(0,0%,100%,.08);border-color:#434343;box-shadow:none;color:hsla(0,0%,100%,.3);cursor:not-allowed;opacity:1}.ant-pagination-options-quick-jumper input[disabled]:hover{border-color:#434343;border-right-width:1px!important}.ant-pagination-options-quick-jumper input-borderless,.ant-pagination-options-quick-jumper input-borderless-disabled,.ant-pagination-options-quick-jumper input-borderless-focused,.ant-pagination-options-quick-jumper input-borderless:focus,.ant-pagination-options-quick-jumper input-borderless:hover,.ant-pagination-options-quick-jumper input-borderless[disabled]{background-color:transparent;border:none;box-shadow:none}textarea.ant-pagination-options-quick-jumper input{height:auto;line-height:1.5715;max-width:100%;min-height:32px;transition:all .3s,height 0s;vertical-align:bottom}.ant-pagination-options-quick-jumper input-lg{font-size:16px;padding:6.5px 11px}.ant-pagination-options-quick-jumper input-sm{padding:0 7px}.ant-pagination-simple .ant-pagination-next,.ant-pagination-simple .ant-pagination-prev{height:24px;line-height:24px;vertical-align:top}.ant-pagination-simple .ant-pagination-next .ant-pagination-item-link,.ant-pagination-simple .ant-pagination-prev .ant-pagination-item-link{background-color:transparent;border:0;height:24px}.ant-pagination-simple .ant-pagination-next .ant-pagination-item-link:after,.ant-pagination-simple .ant-pagination-prev .ant-pagination-item-link:after{height:24px;line-height:24px}.ant-pagination-simple .ant-pagination-simple-pager{display:inline-block;height:24px;margin-right:8px}.ant-pagination-simple .ant-pagination-simple-pager input{background-color:transparent;border:1px solid #434343;border-radius:2px;box-sizing:border-box;height:100%;margin-right:8px;outline:none;padding:0 6px;text-align:center;transition:border-color .3s}.ant-pagination-simple .ant-pagination-simple-pager input:hover{border-color:#177ddc}.ant-pagination-simple .ant-pagination-simple-pager input:focus{border-color:#3c9be8;box-shadow:0 0 0 2px rgba(23,125,220,.2)}.ant-pagination-simple .ant-pagination-simple-pager input[disabled]{background:hsla(0,0%,100%,.08);border-color:#434343;color:hsla(0,0%,100%,.3);cursor:not-allowed}.ant-pagination.mini .ant-pagination-simple-pager,.ant-pagination.mini .ant-pagination-total-text{height:24px;line-height:24px}.ant-pagination.mini .ant-pagination-item{height:24px;line-height:22px;margin:0;min-width:24px}.ant-pagination.mini .ant-pagination-item:not(.ant-pagination-item-active){background:transparent;border-color:transparent}.ant-pagination.mini .ant-pagination-next,.ant-pagination.mini .ant-pagination-prev{height:24px;line-height:24px;margin:0;min-width:24px}.ant-pagination.mini .ant-pagination-next .ant-pagination-item-link,.ant-pagination.mini .ant-pagination-prev .ant-pagination-item-link{background:transparent;border-color:transparent}.ant-pagination.mini .ant-pagination-next .ant-pagination-item-link:after,.ant-pagination.mini .ant-pagination-prev .ant-pagination-item-link:after{height:24px;line-height:24px}.ant-pagination.mini .ant-pagination-jump-next,.ant-pagination.mini .ant-pagination-jump-prev{height:24px;line-height:24px;margin-right:0}.ant-pagination.mini .ant-pagination-options{margin-left:2px}.ant-pagination.mini .ant-pagination-options-size-changer{top:0}.ant-pagination.mini .ant-pagination-options-quick-jumper{height:24px;line-height:24px}.ant-pagination.mini .ant-pagination-options-quick-jumper input{height:24px;padding:0 7px;width:44px}.ant-pagination.ant-pagination-disabled{cursor:not-allowed}.ant-pagination.ant-pagination-disabled .ant-pagination-item{background:hsla(0,0%,100%,.08);border-color:#434343;cursor:not-allowed}.ant-pagination.ant-pagination-disabled .ant-pagination-item a{background:transparent;border:none;color:hsla(0,0%,100%,.3);cursor:not-allowed}.ant-pagination.ant-pagination-disabled .ant-pagination-item-active{background:hsla(0,0%,100%,.25)}.ant-pagination.ant-pagination-disabled .ant-pagination-item-active a{color:#000}.ant-pagination.ant-pagination-disabled .ant-pagination-item-link{background:hsla(0,0%,100%,.08);border-color:#434343;color:hsla(0,0%,100%,.3);cursor:not-allowed}.ant-pagination-simple.ant-pagination.ant-pagination-disabled .ant-pagination-item-link{background:transparent}.ant-pagination.ant-pagination-disabled .ant-pagination-item-link-icon{opacity:0}.ant-pagination.ant-pagination-disabled .ant-pagination-item-ellipsis{opacity:1}.ant-pagination.ant-pagination-disabled .ant-pagination-simple-pager{color:hsla(0,0%,100%,.3)}@media only screen and (max-width:992px){.ant-pagination-item-after-jump-prev,.ant-pagination-item-before-jump-next{display:none}}@media only screen and (max-width:576px){.ant-pagination-options{display:none}}.ant-pagination-rtl .ant-pagination-item,.ant-pagination-rtl .ant-pagination-jump-next,.ant-pagination-rtl .ant-pagination-jump-prev,.ant-pagination-rtl .ant-pagination-prev,.ant-pagination-rtl .ant-pagination-total-text{margin-left:8px;margin-right:0}.ant-pagination-rtl .ant-pagination-slash{margin:0 5px 0 10px}.ant-pagination-rtl .ant-pagination-options{margin-left:0;margin-right:16px}.ant-pagination-rtl .ant-pagination-options .ant-pagination-options-size-changer.ant-select{margin-left:8px;margin-right:0}.ant-pagination-rtl .ant-pagination-options .ant-pagination-options-quick-jumper{margin-left:0}.ant-pagination-rtl.ant-pagination-simple .ant-pagination-simple-pager,.ant-pagination-rtl.ant-pagination-simple .ant-pagination-simple-pager input{margin-left:8px;margin-right:0}.ant-pagination-rtl.ant-pagination.mini .ant-pagination-options{margin-left:0;margin-right:2px}.ant-mentions{font-feature-settings:"tnum";background-color:transparent;background-image:none;border:1px solid #434343;border-radius:2px;box-sizing:border-box;color:hsla(0,0%,100%,.85);display:inline-block;font-size:14px;font-variant:tabular-nums;height:auto;line-height:1.5715;list-style:none;margin:0;min-width:0;overflow:hidden;padding:0;position:relative;transition:all .3s;vertical-align:bottom;white-space:pre-wrap;width:100%}.ant-mentions::-moz-placeholder{opacity:1}.ant-mentions::placeholder{color:hsla(0,0%,100%,.3);-webkit-user-select:none;-moz-user-select:none;user-select:none}.ant-mentions:-moz-placeholder-shown{text-overflow:ellipsis}.ant-mentions:placeholder-shown{text-overflow:ellipsis}.ant-mentions:hover{border-color:#165996;border-right-width:1px!important}.ant-mentions-focused,.ant-mentions:focus{border-color:#177ddc;border-right-width:1px!important;box-shadow:0 0 0 2px rgba(23,125,220,.2);outline:0}.ant-mentions-disabled{background-color:hsla(0,0%,100%,.08);border-color:#434343;box-shadow:none;color:hsla(0,0%,100%,.3);cursor:not-allowed;opacity:1}.ant-mentions-disabled:hover{border-color:#434343;border-right-width:1px!important}.ant-mentions[disabled]{background-color:hsla(0,0%,100%,.08);border-color:#434343;box-shadow:none;color:hsla(0,0%,100%,.3);cursor:not-allowed;opacity:1}.ant-mentions[disabled]:hover{border-color:#434343;border-right-width:1px!important}.ant-mentions-borderless,.ant-mentions-borderless-disabled,.ant-mentions-borderless-focused,.ant-mentions-borderless:focus,.ant-mentions-borderless:hover,.ant-mentions-borderless[disabled]{background-color:transparent;border:none;box-shadow:none}textarea.ant-mentions{height:auto;line-height:1.5715;max-width:100%;min-height:32px;transition:all .3s,height 0s;vertical-align:bottom}.ant-mentions-lg{font-size:16px;padding:6.5px 11px}.ant-mentions-sm{padding:0 7px}.ant-mentions-disabled>textarea{background-color:hsla(0,0%,100%,.08);border-color:#434343;box-shadow:none;color:hsla(0,0%,100%,.3);cursor:not-allowed;opacity:1}.ant-mentions-disabled>textarea:hover{border-color:#434343;border-right-width:1px!important}.ant-mentions-focused{border-color:#177ddc;border-right-width:1px!important;box-shadow:0 0 0 2px rgba(23,125,220,.2);outline:0}.ant-mentions-measure,.ant-mentions>textarea{word-wrap:break-word;direction:inherit;font-family:inherit;font-size:inherit;font-size-adjust:inherit;font-stretch:inherit;font-style:inherit;font-variant:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;min-height:30px;overflow:inherit;overflow-x:hidden;overflow-y:auto;padding:4px 11px;-moz-tab-size:inherit;-o-tab-size:inherit;tab-size:inherit;text-align:inherit;vertical-align:top;white-space:inherit;word-break:inherit}.ant-mentions>textarea{background-color:transparent;border:none;outline:none;resize:none;width:100%}.ant-mentions>textarea::-moz-placeholder{opacity:1}.ant-mentions>textarea::placeholder{color:hsla(0,0%,100%,.3);-webkit-user-select:none;-moz-user-select:none;user-select:none}.ant-mentions>textarea:-moz-placeholder-shown{text-overflow:ellipsis}.ant-mentions>textarea:placeholder-shown{text-overflow:ellipsis}.ant-mentions-measure{bottom:0;color:transparent;left:0;pointer-events:none;position:absolute;right:0;top:0;z-index:-1}.ant-mentions-measure>span{display:inline-block;min-height:1em}.ant-mentions-dropdown{font-feature-settings:"tnum";background-color:#1f1f1f;border-radius:2px;box-shadow:0 3px 6px -4px rgba(0,0,0,.48),0 6px 16px 0 rgba(0,0,0,.32),0 9px 28px 8px rgba(0,0,0,.2);box-sizing:border-box;color:hsla(0,0%,100%,.85);font-size:14px;font-variant:tabular-nums;font-variant:normal;left:-9999px;line-height:1.5715;list-style:none;margin:0;outline:none;padding:0;position:absolute;top:-9999px;z-index:1050}.ant-mentions-dropdown-hidden{display:none}.ant-mentions-dropdown-menu{list-style:none;margin-bottom:0;max-height:250px;outline:none;overflow:auto;padding-left:0}.ant-mentions-dropdown-menu-item{color:hsla(0,0%,100%,.85);cursor:pointer;display:block;font-weight:400;line-height:1.5715;min-width:100px;overflow:hidden;padding:5px 12px;position:relative;text-overflow:ellipsis;transition:background .3s ease;white-space:nowrap}.ant-mentions-dropdown-menu-item:hover{background-color:hsla(0,0%,100%,.08)}.ant-mentions-dropdown-menu-item:first-child{border-radius:2px 2px 0 0}.ant-mentions-dropdown-menu-item:last-child{border-radius:0 0 2px 2px}.ant-mentions-dropdown-menu-item-disabled{color:hsla(0,0%,100%,.3);cursor:not-allowed}.ant-mentions-dropdown-menu-item-disabled:hover{background-color:#1f1f1f;color:hsla(0,0%,100%,.3);cursor:not-allowed}.ant-mentions-dropdown-menu-item-selected{background-color:hsla(0,0%,100%,.04);color:hsla(0,0%,100%,.85);font-weight:600}.ant-mentions-dropdown-menu-item-active{background-color:hsla(0,0%,100%,.08)}.ant-mentions-rtl{direction:rtl}.ant-message{font-feature-settings:"tnum";box-sizing:border-box;color:hsla(0,0%,100%,.85);font-size:14px;font-variant:tabular-nums;left:0;line-height:1.5715;list-style:none;margin:0;padding:0;pointer-events:none;position:fixed;top:8px;width:100%;z-index:1010}.ant-message-notice{padding:8px;text-align:center}.ant-message-notice-content{background:#1f1f1f;border-radius:2px;box-shadow:0 3px 6px -4px rgba(0,0,0,.48),0 6px 16px 0 rgba(0,0,0,.32),0 9px 28px 8px rgba(0,0,0,.2);display:inline-block;padding:10px 16px;pointer-events:all}.ant-message-success .anticon{color:#49aa19}.ant-message-error .anticon{color:#a61d24}.ant-message-warning .anticon{color:#d89614}.ant-message-info .anticon,.ant-message-loading .anticon{color:#177ddc}.ant-message .anticon{font-size:16px;margin-right:8px;position:relative;top:1px}.ant-message-notice.ant-move-up-leave.ant-move-up-leave-active{-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-name:MessageMoveOut;animation-name:MessageMoveOut}@-webkit-keyframes MessageMoveOut{0%{max-height:150px;opacity:1;padding:8px}to{max-height:0;opacity:0;padding:0}}@keyframes MessageMoveOut{0%{max-height:150px;opacity:1;padding:8px}to{max-height:0;opacity:0;padding:0}}.ant-message-rtl,.ant-message-rtl span{direction:rtl}.ant-message-rtl .anticon{margin-left:8px;margin-right:0}.ant-modal{font-feature-settings:"tnum";box-sizing:border-box;color:hsla(0,0%,100%,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0 auto;max-width:calc(100vw - 32px);padding:0 0 24px;pointer-events:none;position:relative;top:100px;width:auto}.ant-modal.ant-zoom-enter,.ant-modal.antzoom-appear{-webkit-animation-duration:.3s;animation-duration:.3s;opacity:0;transform:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ant-modal-mask{background-color:rgba(0,0,0,.45);bottom:0;height:100%;left:0;position:fixed;right:0;top:0;z-index:1000}.ant-modal-mask-hidden{display:none}.ant-modal-wrap{-webkit-overflow-scrolling:touch;bottom:0;left:0;outline:0;overflow:auto;position:fixed;right:0;top:0;z-index:1000}.ant-modal-title{word-wrap:break-word;color:hsla(0,0%,100%,.85);font-size:16px;font-weight:500;line-height:22px;margin:0}.ant-modal-content{background-clip:padding-box;background-color:#1f1f1f;border:0;border-radius:2px;box-shadow:0 3px 6px -4px rgba(0,0,0,.48),0 6px 16px 0 rgba(0,0,0,.32),0 9px 28px 8px rgba(0,0,0,.2);pointer-events:auto;position:relative}.ant-modal-close{background:transparent;border:0;color:hsla(0,0%,100%,.45);cursor:pointer;font-weight:700;line-height:1;outline:0;padding:0;position:absolute;right:0;text-decoration:none;top:0;transition:color .3s;z-index:10}.ant-modal-close-x{text-rendering:auto;display:block;font-size:16px;font-style:normal;height:56px;line-height:56px;text-align:center;text-transform:none;width:56px}.ant-modal-close:focus,.ant-modal-close:hover{color:hsla(0,0%,100%,.75);text-decoration:none}.ant-modal-header{background:#1f1f1f;border-bottom:1px solid #303030;border-radius:2px 2px 0 0;color:hsla(0,0%,100%,.85);padding:16px 24px}.ant-modal-body{word-wrap:break-word;font-size:14px;line-height:1.5715;padding:24px}.ant-modal-footer{background:transparent;border-radius:0 0 2px 2px;border-top:1px solid #303030;padding:10px 16px;text-align:right}.ant-modal-footer .ant-btn+.ant-btn:not(.ant-dropdown-trigger){margin-bottom:0;margin-left:8px}.ant-modal-open{overflow:hidden}.ant-modal-centered{text-align:center}.ant-modal-centered:before{content:"";display:inline-block;height:100%;vertical-align:middle;width:0}.ant-modal-centered .ant-modal{display:inline-block;padding-bottom:0;text-align:left;top:0;vertical-align:middle}@media (max-width:767px){.ant-modal{margin:8px auto;max-width:calc(100vw - 16px)}.ant-modal-centered .ant-modal{flex:1}}.ant-modal-confirm .ant-modal-header{display:none}.ant-modal-confirm .ant-modal-body{padding:32px 32px 24px}.ant-modal-confirm-body-wrapper:before{content:"";display:table}.ant-modal-confirm-body-wrapper:after{clear:both;content:"";display:table}.ant-modal-confirm-body .ant-modal-confirm-title{color:hsla(0,0%,100%,.85);display:block;font-size:16px;font-weight:500;line-height:1.4;overflow:hidden}.ant-modal-confirm-body .ant-modal-confirm-content{color:hsla(0,0%,100%,.85);font-size:14px;margin-top:8px}.ant-modal-confirm-body>.anticon{float:left;font-size:22px;margin-right:16px}.ant-modal-confirm-body>.anticon+.ant-modal-confirm-title+.ant-modal-confirm-content{margin-left:38px}.ant-modal-confirm .ant-modal-confirm-btns{float:right;margin-top:24px}.ant-modal-confirm .ant-modal-confirm-btns .ant-btn+.ant-btn{margin-bottom:0;margin-left:8px}.ant-modal-confirm-error .ant-modal-confirm-body>.anticon{color:#a61d24}.ant-modal-confirm-confirm .ant-modal-confirm-body>.anticon,.ant-modal-confirm-warning .ant-modal-confirm-body>.anticon{color:#d89614}.ant-modal-confirm-info .ant-modal-confirm-body>.anticon{color:#177ddc}.ant-modal-confirm-success .ant-modal-confirm-body>.anticon{color:#49aa19}.ant-modal-wrap-rtl{direction:rtl}.ant-modal-wrap-rtl .ant-modal-close{left:0;right:auto}.ant-modal-wrap-rtl .ant-modal-footer{text-align:left}.ant-modal-wrap-rtl .ant-modal-footer .ant-btn+.ant-btn{margin-left:0;margin-right:8px}.ant-modal-wrap-rtl .ant-modal-confirm-body{direction:rtl}.ant-modal-wrap-rtl .ant-modal-confirm-body>.anticon{float:right;margin-left:16px;margin-right:0}.ant-modal-wrap-rtl .ant-modal-confirm-body>.anticon+.ant-modal-confirm-title+.ant-modal-confirm-content{margin-left:0;margin-right:38px}.ant-modal-wrap-rtl .ant-modal-confirm-btns{float:left}.ant-modal-wrap-rtl .ant-modal-confirm-btns .ant-btn+.ant-btn{margin-left:0;margin-right:8px}.ant-modal-wrap-rtl.ant-modal-centered .ant-modal{text-align:right}.ant-modal .ant-anchor-wrapper,.ant-modal .ant-card,.ant-modal .ant-collapse-content,.ant-modal .ant-picker-clear,.ant-modal .ant-slider-handle,.ant-modal .ant-timeline-item-head{background-color:#1f1f1f}.ant-modal .ant-transfer-list-header{background:#1f1f1f;border-bottom:1px solid #3a3a3a}.ant-modal .ant-transfer-list-content-item:not(.ant-transfer-list-content-item-disabled):hover{background-color:hsla(0,0%,100%,.08)}.ant-modal tr.ant-table-expanded-row:hover>td,.ant-modal tr.ant-table-expanded-row>td{background:#272727}.ant-modal .ant-table.ant-table-small thead>tr>th{background-color:#1f1f1f;border-bottom:1px solid #3a3a3a}.ant-modal .ant-table{background-color:#1f1f1f}.ant-modal .ant-table .ant-table-row-expand-icon{border:1px solid #3a3a3a}.ant-modal .ant-table tfoot>tr>td,.ant-modal .ant-table tfoot>tr>th{border-bottom:1px solid #3a3a3a}.ant-modal .ant-table thead>tr>th{background-color:#272727;border-bottom:1px solid #3a3a3a}.ant-modal .ant-table tbody>tr>td{border-bottom:1px solid #3a3a3a}.ant-modal .ant-table tbody>tr>td.ant-table-cell-fix-left,.ant-modal .ant-table tbody>tr>td.ant-table-cell-fix-right{background-color:#1f1f1f}.ant-modal .ant-table tbody>tr.ant-table-row:hover>td{background:#303030}.ant-modal .ant-table.ant-table-bordered .ant-table-title{border:1px solid #3a3a3a}.ant-modal .ant-table.ant-table-bordered .ant-table-cell-fix-right-first:after,.ant-modal .ant-table.ant-table-bordered tbody>tr>td,.ant-modal .ant-table.ant-table-bordered tfoot>tr>td,.ant-modal .ant-table.ant-table-bordered tfoot>tr>th,.ant-modal .ant-table.ant-table-bordered thead>tr>th{border-right:1px solid #3a3a3a}.ant-modal .ant-table.ant-table-bordered table thead>tr:not(:last-child)>th{border-bottom:1px solid #303030}.ant-modal .ant-table.ant-table-bordered .ant-table-container{border:1px solid #3a3a3a}.ant-modal .ant-table.ant-table-bordered .ant-table-expanded-row-fixed:after{border-right:1px solid #3a3a3a}.ant-modal .ant-table.ant-table-bordered .ant-table-footer{border:1px solid #3a3a3a}.ant-modal .ant-table .ant-table-filter-trigger-container-open{background-color:#525252}.ant-modal .ant-picker-calendar-full,.ant-modal .ant-picker-calendar-full .ant-picker-panel{background-color:#1f1f1f}.ant-modal .ant-picker-calendar-full .ant-picker-panel .ant-picker-calendar-date{border-top:2px solid #3a3a3a}.ant-modal .ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab-active{background-color:#1f1f1f;border-bottom:1px solid #1f1f1f}.ant-modal .ant-badge-count{box-shadow:0 0 0 1px #1f1f1f}.ant-modal .ant-tree-show-line .ant-tree-switcher{background:#1f1f1f}.ant-notification .ant-anchor-wrapper,.ant-notification .ant-card,.ant-notification .ant-collapse-content,.ant-notification .ant-picker-clear,.ant-notification .ant-slider-handle,.ant-notification .ant-timeline-item-head{background-color:#1f1f1f}.ant-notification .ant-transfer-list-header{background:#1f1f1f;border-bottom:1px solid #3a3a3a}.ant-notification .ant-transfer-list-content-item:not(.ant-transfer-list-content-item-disabled):hover{background-color:hsla(0,0%,100%,.08)}.ant-notification tr.ant-table-expanded-row:hover>td,.ant-notification tr.ant-table-expanded-row>td{background:#272727}.ant-notification .ant-table.ant-table-small thead>tr>th{background-color:#1f1f1f;border-bottom:1px solid #3a3a3a}.ant-notification .ant-table{background-color:#1f1f1f}.ant-notification .ant-table .ant-table-row-expand-icon{border:1px solid #3a3a3a}.ant-notification .ant-table tfoot>tr>td,.ant-notification .ant-table tfoot>tr>th{border-bottom:1px solid #3a3a3a}.ant-notification .ant-table thead>tr>th{background-color:#272727;border-bottom:1px solid #3a3a3a}.ant-notification .ant-table tbody>tr>td{border-bottom:1px solid #3a3a3a}.ant-notification .ant-table tbody>tr>td.ant-table-cell-fix-left,.ant-notification .ant-table tbody>tr>td.ant-table-cell-fix-right{background-color:#1f1f1f}.ant-notification .ant-table tbody>tr.ant-table-row:hover>td{background:#303030}.ant-notification .ant-table.ant-table-bordered .ant-table-title{border:1px solid #3a3a3a}.ant-notification .ant-table.ant-table-bordered .ant-table-cell-fix-right-first:after,.ant-notification .ant-table.ant-table-bordered tbody>tr>td,.ant-notification .ant-table.ant-table-bordered tfoot>tr>td,.ant-notification .ant-table.ant-table-bordered tfoot>tr>th,.ant-notification .ant-table.ant-table-bordered thead>tr>th{border-right:1px solid #3a3a3a}.ant-notification .ant-table.ant-table-bordered table thead>tr:not(:last-child)>th{border-bottom:1px solid #303030}.ant-notification .ant-table.ant-table-bordered .ant-table-container{border:1px solid #3a3a3a}.ant-notification .ant-table.ant-table-bordered .ant-table-expanded-row-fixed:after{border-right:1px solid #3a3a3a}.ant-notification .ant-table.ant-table-bordered .ant-table-footer{border:1px solid #3a3a3a}.ant-notification .ant-table .ant-table-filter-trigger-container-open{background-color:#525252}.ant-notification .ant-picker-calendar-full,.ant-notification .ant-picker-calendar-full .ant-picker-panel{background-color:#1f1f1f}.ant-notification .ant-picker-calendar-full .ant-picker-panel .ant-picker-calendar-date{border-top:2px solid #3a3a3a}.ant-notification .ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab-active{background-color:#1f1f1f;border-bottom:1px solid #1f1f1f}.ant-notification .ant-badge-count{box-shadow:0 0 0 1px #1f1f1f}.ant-notification .ant-tree-show-line .ant-tree-switcher{background:#1f1f1f}.ant-notification{font-feature-settings:"tnum";box-sizing:border-box;color:hsla(0,0%,100%,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0 24px 0 0;padding:0;position:fixed;z-index:1010}.ant-notification-bottomLeft,.ant-notification-topLeft{margin-left:24px;margin-right:0}.ant-notification-bottomLeft .ant-notification-fade-appear.ant-notification-fade-appear-active,.ant-notification-bottomLeft .ant-notification-fade-enter.ant-notification-fade-enter-active,.ant-notification-topLeft .ant-notification-fade-appear.ant-notification-fade-appear-active,.ant-notification-topLeft .ant-notification-fade-enter.ant-notification-fade-enter-active{-webkit-animation-name:NotificationLeftFadeIn;animation-name:NotificationLeftFadeIn}.ant-notification-close-icon{cursor:pointer;font-size:14px}.ant-notification-hook-holder{position:relative}.ant-notification-notice{word-wrap:break-word;background:#1f1f1f;border-radius:2px;box-shadow:0 3px 6px -4px rgba(0,0,0,.48),0 6px 16px 0 rgba(0,0,0,.32),0 9px 28px 8px rgba(0,0,0,.2);line-height:1.5715;margin-bottom:16px;margin-left:auto;max-width:calc(100vw - 48px);overflow:hidden;padding:16px 24px;position:relative;width:384px}.ant-notification-bottomLeft .ant-notification-notice,.ant-notification-topLeft .ant-notification-notice{margin-left:0;margin-right:auto}.ant-notification-notice-message{color:hsla(0,0%,100%,.85);font-size:16px;line-height:24px;margin-bottom:8px}.ant-notification-notice-message-single-line-auto-margin{background-color:transparent;display:block;max-width:4px;pointer-events:none;width:calc(264px - 100%)}.ant-notification-notice-message-single-line-auto-margin:before{content:"";display:block}.ant-notification-notice-description{font-size:14px}.ant-notification-notice-closable .ant-notification-notice-message{padding-right:24px}.ant-notification-notice-with-icon .ant-notification-notice-message{font-size:16px;margin-bottom:4px;margin-left:48px}.ant-notification-notice-with-icon .ant-notification-notice-description{font-size:14px;margin-left:48px}.ant-notification-notice-icon{font-size:24px;line-height:24px;margin-left:4px;position:absolute}.anticon.ant-notification-notice-icon-success{color:#49aa19}.anticon.ant-notification-notice-icon-info{color:#177ddc}.anticon.ant-notification-notice-icon-warning{color:#d89614}.anticon.ant-notification-notice-icon-error{color:#a61d24}.ant-notification-notice-close{color:hsla(0,0%,100%,.45);outline:none;position:absolute;right:22px;top:16px}.ant-notification-notice-close:hover{color:hsla(0,0%,100%,.85)}.ant-notification-notice-btn{float:right;margin-top:16px}.ant-notification .notification-fade-effect{-webkit-animation-duration:.24s;animation-duration:.24s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-timing-function:cubic-bezier(.645,.045,.355,1);animation-timing-function:cubic-bezier(.645,.045,.355,1)}.ant-notification-fade-appear,.ant-notification-fade-enter{-webkit-animation-play-state:paused;animation-play-state:paused;opacity:0}.ant-notification-fade-appear,.ant-notification-fade-enter,.ant-notification-fade-leave{-webkit-animation-duration:.24s;animation-duration:.24s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-timing-function:cubic-bezier(.645,.045,.355,1);animation-timing-function:cubic-bezier(.645,.045,.355,1)}.ant-notification-fade-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-play-state:paused;animation-play-state:paused}.ant-notification-fade-appear.ant-notification-fade-appear-active,.ant-notification-fade-enter.ant-notification-fade-enter-active{-webkit-animation-name:NotificationFadeIn;animation-name:NotificationFadeIn;-webkit-animation-play-state:running;animation-play-state:running}.ant-notification-fade-leave.ant-notification-fade-leave-active{-webkit-animation-name:NotificationFadeOut;animation-name:NotificationFadeOut;-webkit-animation-play-state:running;animation-play-state:running}@-webkit-keyframes NotificationFadeIn{0%{left:384px;opacity:0}to{left:0;opacity:1}}@keyframes NotificationFadeIn{0%{left:384px;opacity:0}to{left:0;opacity:1}}@-webkit-keyframes NotificationLeftFadeIn{0%{opacity:0;right:384px}to{opacity:1;right:0}}@keyframes NotificationLeftFadeIn{0%{opacity:0;right:384px}to{opacity:1;right:0}}@-webkit-keyframes NotificationFadeOut{0%{margin-bottom:16px;max-height:150px;opacity:1}to{margin-bottom:0;max-height:0;opacity:0;padding-bottom:0;padding-top:0}}@keyframes NotificationFadeOut{0%{margin-bottom:16px;max-height:150px;opacity:1}to{margin-bottom:0;max-height:0;opacity:0;padding-bottom:0;padding-top:0}}.ant-notification-rtl{direction:rtl}.ant-notification-rtl .ant-notification-notice-closable .ant-notification-notice-message{padding-left:24px;padding-right:0}.ant-notification-rtl .ant-notification-notice-with-icon .ant-notification-notice-description,.ant-notification-rtl .ant-notification-notice-with-icon .ant-notification-notice-message{margin-left:0;margin-right:48px}.ant-notification-rtl .ant-notification-notice-icon{margin-left:0;margin-right:4px}.ant-notification-rtl .ant-notification-notice-close{left:22px;right:auto}.ant-notification-rtl .ant-notification-notice-btn{float:left}.ant-page-header{font-feature-settings:"tnum";background-color:#141414;box-sizing:border-box;color:hsla(0,0%,100%,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:16px 24px;position:relative}.ant-page-header-ghost{background-color:transparent}.ant-page-header.has-breadcrumb{padding-top:12px}.ant-page-header.has-footer{padding-bottom:0}.ant-page-header-back{font-size:16px;line-height:1;margin-right:16px}.ant-page-header-back-button{color:#177ddc;color:inherit;cursor:pointer;outline:none;text-decoration:none;transition:color .3s}.ant-page-header-back-button:focus,.ant-page-header-back-button:hover{color:#165996}.ant-page-header-back-button:active{color:#388ed3}.ant-page-header .ant-divider-vertical{height:14px;margin:0 12px;vertical-align:middle}.ant-breadcrumb+.ant-page-header-heading{margin-top:8px}.ant-page-header-heading{display:flex;justify-content:space-between}.ant-page-header-heading-left{align-items:center;display:flex;margin:4px 0;overflow:hidden}.ant-page-header-heading-title{color:hsla(0,0%,100%,.85);font-size:20px;font-weight:600;line-height:32px;margin-bottom:0;margin-right:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ant-page-header-heading .ant-avatar{margin-right:12px}.ant-page-header-heading-sub-title{color:hsla(0,0%,100%,.45);font-size:14px;line-height:1.5715;margin-right:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ant-page-header-heading-extra{margin:4px 0;white-space:nowrap}.ant-page-header-heading-extra>*{margin-left:12px;white-space:unset}.ant-page-header-heading-extra>:first-child{margin-left:0}.ant-page-header-content{padding-top:12px}.ant-page-header-footer{margin-top:16px}.ant-page-header-footer .ant-tabs>.ant-tabs-nav{margin:0}.ant-page-header-footer .ant-tabs>.ant-tabs-nav:before{border:none}.ant-page-header-footer .ant-tabs .ant-tabs-tab{font-size:16px;padding-bottom:8px;padding-top:8px}.ant-page-header-compact .ant-page-header-heading{flex-wrap:wrap}.ant-page-header-rtl{direction:rtl}.ant-page-header-rtl .ant-page-header-back{float:right;margin-left:16px;margin-right:0}.ant-page-header-rtl .ant-page-header-heading .ant-avatar,.ant-page-header-rtl .ant-page-header-heading-title{margin-left:12px;margin-right:0}.ant-page-header-rtl .ant-page-header-heading-sub-title{float:right;margin-left:12px;margin-right:0}.ant-page-header-rtl .ant-page-header-heading-tags{float:right}.ant-page-header-rtl .ant-page-header-heading-extra{float:left}.ant-page-header-rtl .ant-page-header-heading-extra>*{margin-left:0;margin-right:12px}.ant-page-header-rtl .ant-page-header-heading-extra>:first-child{margin-right:0}.ant-page-header-rtl .ant-page-header-footer .ant-tabs-bar .ant-tabs-nav{float:right}.ant-popover{font-feature-settings:"tnum";box-sizing:border-box;color:hsla(0,0%,100%,.85);cursor:auto;font-size:14px;font-variant:tabular-nums;font-weight:400;left:0;line-height:1.5715;list-style:none;margin:0;padding:0;position:absolute;text-align:left;top:0;-webkit-user-select:text;-moz-user-select:text;user-select:text;white-space:normal;z-index:1030}.ant-popover:after{background:hsla(0,0%,100%,.01);content:"";position:absolute}.ant-popover-hidden{display:none}.ant-popover-placement-top,.ant-popover-placement-topLeft,.ant-popover-placement-topRight{padding-bottom:10px}.ant-popover-placement-right,.ant-popover-placement-rightBottom,.ant-popover-placement-rightTop{padding-left:10px}.ant-popover-placement-bottom,.ant-popover-placement-bottomLeft,.ant-popover-placement-bottomRight{padding-top:10px}.ant-popover-placement-left,.ant-popover-placement-leftBottom,.ant-popover-placement-leftTop{padding-right:10px}.ant-popover-inner{background-clip:padding-box;background-color:#1f1f1f;border-radius:2px;box-shadow:0 3px 6px -4px rgba(0,0,0,.48),0 6px 16px 0 rgba(0,0,0,.32),0 9px 28px 8px rgba(0,0,0,.2);box-shadow:0 0 8px rgba(0,0,0,.45)\\9}@media (-ms-high-contrast:none),screen and (-ms-high-contrast:active){.ant-popover-inner{box-shadow:0 3px 6px -4px rgba(0,0,0,.48),0 6px 16px 0 rgba(0,0,0,.32),0 9px 28px 8px rgba(0,0,0,.2)}}.ant-popover-title{border-bottom:1px solid #303030;color:hsla(0,0%,100%,.85);font-weight:500;margin:0;min-height:32px;min-width:177px;padding:5px 16px 4px}.ant-popover-inner-content{color:hsla(0,0%,100%,.85);padding:12px 16px}.ant-popover-message{color:hsla(0,0%,100%,.85);font-size:14px;padding:4px 0 12px;position:relative}.ant-popover-message>.anticon{color:#d89614;font-size:14px;position:absolute;top:8.0005px}.ant-popover-message-title{padding-left:22px}.ant-popover-buttons{margin-bottom:4px;text-align:right}.ant-popover-buttons button{margin-left:8px}.ant-popover-arrow{background:transparent;display:block;height:8.48528137px;overflow:hidden;pointer-events:none;position:absolute;width:8.48528137px}.ant-popover-arrow-content{background-color:#1f1f1f;bottom:0;content:"";display:block;height:6px;left:0;margin:auto;pointer-events:auto;position:absolute;right:0;top:0;width:6px}.ant-popover-placement-top .ant-popover-arrow,.ant-popover-placement-topLeft .ant-popover-arrow,.ant-popover-placement-topRight .ant-popover-arrow{bottom:1.51471863px}.ant-popover-placement-top .ant-popover-arrow-content,.ant-popover-placement-topLeft .ant-popover-arrow-content,.ant-popover-placement-topRight .ant-popover-arrow-content{box-shadow:3px 3px 7px rgba(0,0,0,.07);transform:translateY(-4.24264069px) rotate(45deg)}.ant-popover-placement-top .ant-popover-arrow{left:50%;transform:translateX(-50%)}.ant-popover-placement-topLeft .ant-popover-arrow{left:16px}.ant-popover-placement-topRight .ant-popover-arrow{right:16px}.ant-popover-placement-right .ant-popover-arrow,.ant-popover-placement-rightBottom .ant-popover-arrow,.ant-popover-placement-rightTop .ant-popover-arrow{left:1.51471863px}.ant-popover-placement-right .ant-popover-arrow-content,.ant-popover-placement-rightBottom .ant-popover-arrow-content,.ant-popover-placement-rightTop .ant-popover-arrow-content{box-shadow:-3px 3px 7px rgba(0,0,0,.07);transform:translateX(4.24264069px) rotate(45deg)}.ant-popover-placement-right .ant-popover-arrow{top:50%;transform:translateY(-50%)}.ant-popover-placement-rightTop .ant-popover-arrow{top:12px}.ant-popover-placement-rightBottom .ant-popover-arrow{bottom:12px}.ant-popover-placement-bottom .ant-popover-arrow,.ant-popover-placement-bottomLeft .ant-popover-arrow,.ant-popover-placement-bottomRight .ant-popover-arrow{top:1.51471863px}.ant-popover-placement-bottom .ant-popover-arrow-content,.ant-popover-placement-bottomLeft .ant-popover-arrow-content,.ant-popover-placement-bottomRight .ant-popover-arrow-content{box-shadow:-2px -2px 5px rgba(0,0,0,.06);transform:translateY(4.24264069px) rotate(45deg)}.ant-popover-placement-bottom .ant-popover-arrow{left:50%;transform:translateX(-50%)}.ant-popover-placement-bottomLeft .ant-popover-arrow{left:16px}.ant-popover-placement-bottomRight .ant-popover-arrow{right:16px}.ant-popover-placement-left .ant-popover-arrow,.ant-popover-placement-leftBottom .ant-popover-arrow,.ant-popover-placement-leftTop .ant-popover-arrow{right:1.51471863px}.ant-popover-placement-left .ant-popover-arrow-content,.ant-popover-placement-leftBottom .ant-popover-arrow-content,.ant-popover-placement-leftTop .ant-popover-arrow-content{box-shadow:3px -3px 7px rgba(0,0,0,.07);transform:translateX(-4.24264069px) rotate(45deg)}.ant-popover-placement-left .ant-popover-arrow{top:50%;transform:translateY(-50%)}.ant-popover-placement-leftTop .ant-popover-arrow{top:12px}.ant-popover-placement-leftBottom .ant-popover-arrow{bottom:12px}.ant-popover-magenta .ant-popover-arrow-content,.ant-popover-magenta .ant-popover-inner,.ant-popover-pink .ant-popover-arrow-content,.ant-popover-pink .ant-popover-inner{background-color:#cb2b83}.ant-popover-red .ant-popover-arrow-content,.ant-popover-red .ant-popover-inner{background-color:#d32029}.ant-popover-volcano .ant-popover-arrow-content,.ant-popover-volcano .ant-popover-inner{background-color:#d84a1b}.ant-popover-orange .ant-popover-arrow-content,.ant-popover-orange .ant-popover-inner{background-color:#d87a16}.ant-popover-yellow .ant-popover-arrow-content,.ant-popover-yellow .ant-popover-inner{background-color:#d8bd14}.ant-popover-gold .ant-popover-arrow-content,.ant-popover-gold .ant-popover-inner{background-color:#d89614}.ant-popover-cyan .ant-popover-arrow-content,.ant-popover-cyan .ant-popover-inner{background-color:#13a8a8}.ant-popover-lime .ant-popover-arrow-content,.ant-popover-lime .ant-popover-inner{background-color:#8bbb11}.ant-popover-green .ant-popover-arrow-content,.ant-popover-green .ant-popover-inner{background-color:#49aa19}.ant-popover-blue .ant-popover-arrow-content,.ant-popover-blue .ant-popover-inner{background-color:#177ddc}.ant-popover-geekblue .ant-popover-arrow-content,.ant-popover-geekblue .ant-popover-inner{background-color:#2b4acb}.ant-popover-purple .ant-popover-arrow-content,.ant-popover-purple .ant-popover-inner{background-color:#642ab5}.ant-popover-rtl{direction:rtl;text-align:right}.ant-popover-rtl .ant-popover-message-title{padding-left:16px;padding-right:22px}.ant-popover-rtl .ant-popover-buttons{text-align:left}.ant-popover-rtl .ant-popover-buttons button{margin-left:0;margin-right:8px}.ant-popconfirm{z-index:1060}.ant-progress{font-feature-settings:"tnum";box-sizing:border-box;color:hsla(0,0%,100%,.85);display:inline-block;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0}.ant-progress-line{font-size:14px;position:relative;width:100%}.ant-progress-steps{display:inline-block}.ant-progress-steps-outer{align-items:center;display:flex;flex-direction:row}.ant-progress-steps-item{background:hsla(0,0%,100%,.08);flex-shrink:0;margin-right:2px;min-width:2px;transition:all .3s}.ant-progress-steps-item-active{background:#177ddc}.ant-progress-small.ant-progress-line,.ant-progress-small.ant-progress-line .ant-progress-text .anticon{font-size:12px}.ant-progress-outer{display:inline-block;margin-right:0;padding-right:0;width:100%}.ant-progress-show-info .ant-progress-outer{margin-right:calc(-2em - 8px);padding-right:calc(2em + 8px)}.ant-progress-inner{background-color:hsla(0,0%,100%,.08);border-radius:100px;display:inline-block;overflow:hidden;position:relative;vertical-align:middle;width:100%}.ant-progress-circle-trail{stroke:hsla(0,0%,100%,.08)}.ant-progress-circle-path{-webkit-animation:ant-progress-appear .3s;animation:ant-progress-appear .3s}.ant-progress-inner:not(.ant-progress-circle-gradient) .ant-progress-circle-path{stroke:#177ddc}.ant-progress-bg,.ant-progress-success-bg{background-color:#177ddc;border-radius:100px;position:relative;transition:all .4s cubic-bezier(.08,.82,.17,1) 0s}.ant-progress-success-bg{background-color:#49aa19;left:0;position:absolute;top:0}.ant-progress-text{color:hsla(0,0%,100%,.85);display:inline-block;font-size:1em;line-height:1;margin-left:8px;text-align:left;vertical-align:middle;white-space:nowrap;width:2em;word-break:normal}.ant-progress-text .anticon{font-size:14px}.ant-progress-status-active .ant-progress-bg:before{-webkit-animation:ant-progress-active 2.4s cubic-bezier(.23,1,.32,1) infinite;animation:ant-progress-active 2.4s cubic-bezier(.23,1,.32,1) infinite;background:#141414;border-radius:10px;bottom:0;content:"";left:0;opacity:0;position:absolute;right:0;top:0}.ant-progress-status-exception .ant-progress-bg{background-color:#a61d24}.ant-progress-status-exception .ant-progress-text{color:#a61d24}.ant-progress-status-exception .ant-progress-inner:not(.ant-progress-circle-gradient) .ant-progress-circle-path{stroke:#a61d24}.ant-progress-status-success .ant-progress-bg{background-color:#49aa19}.ant-progress-status-success .ant-progress-text{color:#49aa19}.ant-progress-status-success .ant-progress-inner:not(.ant-progress-circle-gradient) .ant-progress-circle-path{stroke:#49aa19}.ant-progress-circle .ant-progress-inner{background-color:transparent;line-height:1;position:relative}.ant-progress-circle .ant-progress-text{color:hsla(0,0%,100%,.85);font-size:1em;left:50%;line-height:1;margin:0;padding:0;position:absolute;text-align:center;top:50%;transform:translate(-50%,-50%);white-space:normal;width:100%}.ant-progress-circle .ant-progress-text .anticon{font-size:1.16666667em}.ant-progress-circle.ant-progress-status-exception .ant-progress-text{color:#a61d24}.ant-progress-circle.ant-progress-status-success .ant-progress-text{color:#49aa19}@-webkit-keyframes ant-progress-active{0%{opacity:.1;transform:translateX(-100%) scaleX(0)}20%{opacity:.5;transform:translateX(-100%) scaleX(0)}to{opacity:0;transform:translateX(0) scaleX(1)}}@keyframes ant-progress-active{0%{opacity:.1;transform:translateX(-100%) scaleX(0)}20%{opacity:.5;transform:translateX(-100%) scaleX(0)}to{opacity:0;transform:translateX(0) scaleX(1)}}.ant-progress-rtl{direction:rtl}.ant-progress-rtl.ant-progress-show-info .ant-progress-outer{margin-left:calc(-2em - 8px);margin-right:0;padding-left:calc(2em + 8px);padding-right:0}.ant-progress-rtl .ant-progress-success-bg{left:auto;right:0}.ant-progress-rtl.ant-progress-line .ant-progress-text,.ant-progress-rtl.ant-progress-steps .ant-progress-text{margin-left:0;margin-right:8px;text-align:right}.ant-rate{font-feature-settings:"tnum";box-sizing:border-box;color:hsla(0,0%,100%,.85);color:#d8bd14;display:inline-block;font-size:14px;font-size:20px;font-variant:tabular-nums;line-height:1.5715;line-height:unset;list-style:none;margin:0;outline:none;padding:0}.ant-rate-disabled .ant-rate-star{cursor:default}.ant-rate-disabled .ant-rate-star:hover{transform:scale(1)}.ant-rate-star{color:inherit;cursor:pointer;display:inline-block;position:relative}.ant-rate-star:not(:last-child){margin-right:8px}.ant-rate-star>div{transition:all .3s,outline 0s}.ant-rate-star>div:hover{transform:scale(1.1)}.ant-rate-star>div:focus{outline:0}.ant-rate-star>div:focus-visible{outline:1px dashed #d8bd14;transform:scale(1.1)}.ant-rate-star-first,.ant-rate-star-second{color:hsla(0,0%,100%,.12);transition:all .3s;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ant-rate-star-first .anticon,.ant-rate-star-second .anticon{vertical-align:middle}.ant-rate-star-first{height:100%;left:0;opacity:0;overflow:hidden;position:absolute;top:0;width:50%}.ant-rate-star-half .ant-rate-star-first,.ant-rate-star-half .ant-rate-star-second{opacity:1}.ant-rate-star-full .ant-rate-star-second,.ant-rate-star-half .ant-rate-star-first{color:inherit}.ant-rate-text{display:inline-block;font-size:14px;margin:0 8px}.ant-rate-rtl{direction:rtl}.ant-rate-rtl .ant-rate-star:not(:last-child){margin-left:8px;margin-right:0}.ant-rate-rtl .ant-rate-star-first{left:auto;right:0}.ant-result{padding:48px 32px}.ant-result-success .ant-result-icon>.anticon{color:#49aa19}.ant-result-error .ant-result-icon>.anticon{color:#a61d24}.ant-result-info .ant-result-icon>.anticon{color:#177ddc}.ant-result-warning .ant-result-icon>.anticon{color:#d89614}.ant-result-image{height:295px;margin:auto;width:250px}.ant-result-icon{margin-bottom:24px;text-align:center}.ant-result-icon>.anticon{font-size:72px}.ant-result-title{color:hsla(0,0%,100%,.85);font-size:24px;line-height:1.8;text-align:center}.ant-result-subtitle{color:hsla(0,0%,100%,.45);font-size:14px;line-height:1.6;text-align:center}.ant-result-extra{margin:24px 0 0;text-align:center}.ant-result-extra>*{margin-right:8px}.ant-result-extra>:last-child{margin-right:0}.ant-result-content{background-color:hsla(0,0%,100%,.04);margin-top:24px;padding:24px 40px}.ant-result-rtl{direction:rtl}.ant-result-rtl .ant-result-extra>*{margin-left:8px;margin-right:0}.ant-result-rtl .ant-result-extra>:last-child{margin-left:0}.ant-skeleton{display:table;width:100%}.ant-skeleton-header{display:table-cell;padding-right:16px;vertical-align:top}.ant-skeleton-header .ant-skeleton-avatar{background:hsla(0,0%,75%,.2);display:inline-block;height:32px;line-height:32px;vertical-align:top;width:32px}.ant-skeleton-header .ant-skeleton-avatar.ant-skeleton-avatar-circle{border-radius:50%}.ant-skeleton-header .ant-skeleton-avatar-lg{height:40px;line-height:40px;width:40px}.ant-skeleton-header .ant-skeleton-avatar-lg.ant-skeleton-avatar-circle{border-radius:50%}.ant-skeleton-header .ant-skeleton-avatar-sm{height:24px;line-height:24px;width:24px}.ant-skeleton-header .ant-skeleton-avatar-sm.ant-skeleton-avatar-circle{border-radius:50%}.ant-skeleton-content{display:table-cell;vertical-align:top;width:100%}.ant-skeleton-content .ant-skeleton-title{background:hsla(0,0%,75%,.2);border-radius:4px;height:16px;margin-top:16px;width:100%}.ant-skeleton-content .ant-skeleton-title+.ant-skeleton-paragraph{margin-top:24px}.ant-skeleton-content .ant-skeleton-paragraph{padding:0}.ant-skeleton-content .ant-skeleton-paragraph>li{background:hsla(0,0%,75%,.2);border-radius:4px;height:16px;list-style:none;width:100%}.ant-skeleton-content .ant-skeleton-paragraph>li:last-child:not(:first-child):not(:nth-child(2)){width:61%}.ant-skeleton-content .ant-skeleton-paragraph>li+li{margin-top:16px}.ant-skeleton-with-avatar .ant-skeleton-content .ant-skeleton-title{margin-top:12px}.ant-skeleton-with-avatar .ant-skeleton-content .ant-skeleton-title+.ant-skeleton-paragraph{margin-top:28px}.ant-skeleton-round .ant-skeleton-content .ant-skeleton-paragraph>li,.ant-skeleton-round .ant-skeleton-content .ant-skeleton-title{border-radius:100px}.ant-skeleton.ant-skeleton-active .ant-skeleton-avatar,.ant-skeleton.ant-skeleton-active .ant-skeleton-button,.ant-skeleton.ant-skeleton-active .ant-skeleton-content .ant-skeleton-paragraph>li,.ant-skeleton.ant-skeleton-active .ant-skeleton-content .ant-skeleton-title,.ant-skeleton.ant-skeleton-active .ant-skeleton-image,.ant-skeleton.ant-skeleton-active .ant-skeleton-input{-webkit-animation:ant-skeleton-loading 1.4s ease infinite;animation:ant-skeleton-loading 1.4s ease infinite;background:linear-gradient(90deg,hsla(0,0%,75%,.2) 25%,hsla(0,0%,100%,.16) 37%,hsla(0,0%,75%,.2) 63%);background-size:400% 100%}.ant-skeleton.ant-skeleton-block,.ant-skeleton.ant-skeleton-block .ant-skeleton-button{width:100%}.ant-skeleton-element{display:inline-block;width:auto}.ant-skeleton-element .ant-skeleton-button{background:hsla(0,0%,75%,.2);border-radius:2px;display:inline-block;height:32px;line-height:32px;min-width:64px;vertical-align:top;width:64px}.ant-skeleton-element .ant-skeleton-button.ant-skeleton-button-circle{border-radius:50%;min-width:32px;width:32px}.ant-skeleton-element .ant-skeleton-button.ant-skeleton-button-round{border-radius:32px}.ant-skeleton-element .ant-skeleton-button-lg{height:40px;line-height:40px;min-width:80px;width:80px}.ant-skeleton-element .ant-skeleton-button-lg.ant-skeleton-button-circle{border-radius:50%;min-width:40px;width:40px}.ant-skeleton-element .ant-skeleton-button-lg.ant-skeleton-button-round{border-radius:40px}.ant-skeleton-element .ant-skeleton-button-sm{height:24px;line-height:24px;min-width:48px;width:48px}.ant-skeleton-element .ant-skeleton-button-sm.ant-skeleton-button-circle{border-radius:50%;min-width:24px;width:24px}.ant-skeleton-element .ant-skeleton-button-sm.ant-skeleton-button-round{border-radius:24px}.ant-skeleton-element .ant-skeleton-avatar{background:hsla(0,0%,75%,.2);display:inline-block;height:32px;line-height:32px;vertical-align:top;width:32px}.ant-skeleton-element .ant-skeleton-avatar.ant-skeleton-avatar-circle{border-radius:50%}.ant-skeleton-element .ant-skeleton-avatar-lg{height:40px;line-height:40px;width:40px}.ant-skeleton-element .ant-skeleton-avatar-lg.ant-skeleton-avatar-circle{border-radius:50%}.ant-skeleton-element .ant-skeleton-avatar-sm{height:24px;line-height:24px;width:24px}.ant-skeleton-element .ant-skeleton-avatar-sm.ant-skeleton-avatar-circle{border-radius:50%}.ant-skeleton-element .ant-skeleton-input{background:hsla(0,0%,75%,.2);display:inline-block;height:32px;line-height:32px;vertical-align:top;width:100%}.ant-skeleton-element .ant-skeleton-input-lg{height:40px;line-height:40px;width:100%}.ant-skeleton-element .ant-skeleton-input-sm{height:24px;line-height:24px;width:100%}.ant-skeleton-element .ant-skeleton-image{align-items:center;background:hsla(0,0%,75%,.2);display:flex;height:96px;justify-content:center;line-height:96px;vertical-align:top;width:96px}.ant-skeleton-element .ant-skeleton-image.ant-skeleton-image-circle{border-radius:50%}.ant-skeleton-element .ant-skeleton-image-path{fill:#bfbfbf}.ant-skeleton-element .ant-skeleton-image-svg{height:48px;line-height:48px;max-height:192px;max-width:192px;width:48px}.ant-skeleton-element .ant-skeleton-image-svg.ant-skeleton-image-circle{border-radius:50%}@-webkit-keyframes ant-skeleton-loading{0%{background-position:100% 50%}to{background-position:0 50%}}@keyframes ant-skeleton-loading{0%{background-position:100% 50%}to{background-position:0 50%}}.ant-skeleton-rtl{direction:rtl}.ant-skeleton-rtl .ant-skeleton-header{padding-left:16px;padding-right:0}.ant-skeleton-rtl.ant-skeleton.ant-skeleton-active .ant-skeleton-avatar,.ant-skeleton-rtl.ant-skeleton.ant-skeleton-active .ant-skeleton-content .ant-skeleton-paragraph>li,.ant-skeleton-rtl.ant-skeleton.ant-skeleton-active .ant-skeleton-content .ant-skeleton-title{-webkit-animation-name:ant-skeleton-loading-rtl;animation-name:ant-skeleton-loading-rtl}@-webkit-keyframes ant-skeleton-loading-rtl{0%{background-position:0 50%}to{background-position:100% 50%}}@keyframes ant-skeleton-loading-rtl{0%{background-position:0 50%}to{background-position:100% 50%}}.ant-slider{font-feature-settings:"tnum";box-sizing:border-box;color:hsla(0,0%,100%,.85);cursor:pointer;font-size:14px;font-variant:tabular-nums;height:12px;line-height:1.5715;list-style:none;margin:10px 6px;padding:4px 0;position:relative;touch-action:none}.ant-slider-vertical{height:100%;margin:6px 10px;padding:0 4px;width:12px}.ant-slider-vertical .ant-slider-rail{height:100%;width:4px}.ant-slider-vertical .ant-slider-track{width:4px}.ant-slider-vertical .ant-slider-handle{margin-left:-5px;margin-top:-6px}.ant-slider-vertical .ant-slider-mark{height:100%;left:12px;top:0;width:18px}.ant-slider-vertical .ant-slider-mark-text{left:4px;white-space:nowrap}.ant-slider-vertical .ant-slider-step{height:100%;width:4px}.ant-slider-vertical .ant-slider-dot{left:2px;margin-bottom:-4px;top:auto}.ant-slider-tooltip .ant-tooltip-inner{min-width:unset}.ant-slider-rtl.ant-slider-vertical .ant-slider-handle{margin-left:0;margin-right:-5px}.ant-slider-rtl.ant-slider-vertical .ant-slider-mark{left:auto;right:12px}.ant-slider-rtl.ant-slider-vertical .ant-slider-mark-text{left:auto;right:4px}.ant-slider-rtl.ant-slider-vertical .ant-slider-dot{left:auto;right:2px}.ant-slider-with-marks{margin-bottom:28px}.ant-slider-rail{background-color:#262626;width:100%}.ant-slider-rail,.ant-slider-track{border-radius:2px;height:4px;position:absolute;transition:background-color .3s}.ant-slider-track{background-color:#153450}.ant-slider-handle{background-color:#141414;border:2px solid #153450;border-radius:50%;box-shadow:0;cursor:pointer;height:14px;margin-top:-5px;position:absolute;transition:border-color .3s,box-shadow .6s,transform .3s cubic-bezier(.18,.89,.32,1.28);width:14px}.ant-slider-handle-dragging.ant-slider-handle-dragging.ant-slider-handle-dragging,.ant-slider-handle:focus{border-color:#4697e3;box-shadow:0 0 0 5px rgba(23,125,220,.12)}.ant-slider-handle:focus{outline:none}.ant-slider-handle.ant-tooltip-open{border-color:#177ddc}.ant-slider:hover .ant-slider-rail{background-color:#434343}.ant-slider:hover .ant-slider-track{background-color:#16436e}.ant-slider:hover .ant-slider-handle:not(.ant-tooltip-open){border-color:#16436e}.ant-slider-mark{font-size:14px;left:0;position:absolute;top:14px;width:100%}.ant-slider-mark-text{color:hsla(0,0%,100%,.45);cursor:pointer;display:inline-block;position:absolute;text-align:center;-webkit-user-select:none;-moz-user-select:none;user-select:none;word-break:keep-all}.ant-slider-mark-text-active{color:hsla(0,0%,100%,.85)}.ant-slider-step{background:transparent;height:4px;position:absolute;width:100%}.ant-slider-dot{background-color:#141414;border:2px solid #303030;border-radius:50%;cursor:pointer;height:8px;position:absolute;top:-2px;width:8px}.ant-slider-dot,.ant-slider-dot:first-child,.ant-slider-dot:last-child{margin-left:-4px}.ant-slider-dot-active{border-color:#16436e}.ant-slider-disabled{cursor:not-allowed}.ant-slider-disabled .ant-slider-rail{background-color:#262626!important}.ant-slider-disabled .ant-slider-track{background-color:hsla(0,0%,100%,.3)!important}.ant-slider-disabled .ant-slider-dot,.ant-slider-disabled .ant-slider-handle{background-color:#141414;border-color:hsla(0,0%,100%,.3)!important;box-shadow:none;cursor:not-allowed}.ant-slider-disabled .ant-slider-dot,.ant-slider-disabled .ant-slider-mark-text{cursor:not-allowed!important}.ant-slider-rtl{direction:rtl}.ant-slider-rtl .ant-slider-mark{left:auto;right:0}.ant-slider-rtl .ant-slider-dot,.ant-slider-rtl .ant-slider-dot:first-child,.ant-slider-rtl .ant-slider-dot:last-child{margin-left:0;margin-right:-4px}.ant-space{display:inline-flex}.ant-space-vertical{flex-direction:column}.ant-space-align-center{align-items:center}.ant-space-align-start{align-items:flex-start}.ant-space-align-end{align-items:flex-end}.ant-space-align-baseline{align-items:baseline}.ant-space-item:empty{display:none}.ant-space-rtl{direction:rtl}.ant-statistic{font-feature-settings:"tnum";box-sizing:border-box;color:hsla(0,0%,100%,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0}.ant-statistic-title{color:hsla(0,0%,100%,.45);font-size:14px;margin-bottom:4px}.ant-statistic-content{color:hsla(0,0%,100%,.85);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:24px}.ant-statistic-content-value{direction:ltr;display:inline-block}.ant-statistic-content-prefix,.ant-statistic-content-suffix{display:inline-block}.ant-statistic-content-prefix{margin-right:4px}.ant-statistic-content-suffix{margin-left:4px}.ant-statistic-rtl{direction:rtl}.ant-statistic-rtl .ant-statistic-content-prefix{margin-left:4px;margin-right:0}.ant-statistic-rtl .ant-statistic-content-suffix{margin-left:0;margin-right:4px}.ant-steps{font-feature-settings:"tnum";box-sizing:border-box;color:hsla(0,0%,100%,.85);display:flex;font-size:14px;font-size:0;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0;text-align:initial;width:100%}.ant-steps-item{display:inline-block;flex:1;overflow:hidden;position:relative;vertical-align:top}.ant-steps-item-container{outline:none}.ant-steps-item:last-child{flex:none}.ant-steps-item:last-child>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title:after,.ant-steps-item:last-child>.ant-steps-item-container>.ant-steps-item-tail{display:none}.ant-steps-item-content,.ant-steps-item-icon{display:inline-block;vertical-align:top}.ant-steps-item-icon{border:1px solid hsla(0,0%,100%,.3);border-radius:32px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:16px;height:32px;line-height:32px;margin:0 8px 0 0;text-align:center;transition:background-color .3s,border-color .3s;width:32px}.ant-steps-item-icon .ant-steps-icon{color:#177ddc;line-height:1;position:relative;top:-.5px}.ant-steps-item-tail{left:0;padding:0 10px;position:absolute;top:12px;width:100%}.ant-steps-item-tail:after{background:#303030;border-radius:1px;content:"";display:inline-block;height:1px;transition:background .3s;width:100%}.ant-steps-item-title{color:hsla(0,0%,100%,.85);display:inline-block;font-size:16px;line-height:32px;padding-right:16px;position:relative}.ant-steps-item-title:after{background:#303030;content:"";display:block;height:1px;left:100%;position:absolute;top:16px;width:9999px}.ant-steps-item-subtitle{display:inline;font-weight:400;margin-left:8px}.ant-steps-item-description,.ant-steps-item-subtitle{color:hsla(0,0%,100%,.45);font-size:14px}.ant-steps-item-wait .ant-steps-item-icon{background-color:transparent;border-color:hsla(0,0%,100%,.3)}.ant-steps-item-wait .ant-steps-item-icon>.ant-steps-icon{color:hsla(0,0%,100%,.3)}.ant-steps-item-wait .ant-steps-item-icon>.ant-steps-icon .ant-steps-icon-dot{background:hsla(0,0%,100%,.3)}.ant-steps-item-wait>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title{color:hsla(0,0%,100%,.45)}.ant-steps-item-wait>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title:after{background-color:#303030}.ant-steps-item-wait>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-description{color:hsla(0,0%,100%,.45)}.ant-steps-item-wait>.ant-steps-item-container>.ant-steps-item-tail:after{background-color:#303030}.ant-steps-item-process .ant-steps-item-icon{background-color:transparent;border-color:#177ddc}.ant-steps-item-process .ant-steps-item-icon>.ant-steps-icon{color:#177ddc}.ant-steps-item-process .ant-steps-item-icon>.ant-steps-icon .ant-steps-icon-dot{background:#177ddc}.ant-steps-item-process>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title{color:hsla(0,0%,100%,.85)}.ant-steps-item-process>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title:after{background-color:#303030}.ant-steps-item-process>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-description{color:hsla(0,0%,100%,.85)}.ant-steps-item-process>.ant-steps-item-container>.ant-steps-item-tail:after{background-color:#303030}.ant-steps-item-process>.ant-steps-item-container>.ant-steps-item-icon{background:#177ddc}.ant-steps-item-process>.ant-steps-item-container>.ant-steps-item-icon .ant-steps-icon{color:#fff}.ant-steps-item-process>.ant-steps-item-container>.ant-steps-item-title{font-weight:500}.ant-steps-item-finish .ant-steps-item-icon{background-color:transparent;border-color:#177ddc}.ant-steps-item-finish .ant-steps-item-icon>.ant-steps-icon{color:#177ddc}.ant-steps-item-finish .ant-steps-item-icon>.ant-steps-icon .ant-steps-icon-dot{background:#177ddc}.ant-steps-item-finish>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title{color:hsla(0,0%,100%,.85)}.ant-steps-item-finish>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title:after{background-color:#177ddc}.ant-steps-item-finish>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-description{color:hsla(0,0%,100%,.45)}.ant-steps-item-finish>.ant-steps-item-container>.ant-steps-item-tail:after{background-color:#177ddc}.ant-steps-item-error .ant-steps-item-icon{background-color:transparent;border-color:#a61d24}.ant-steps-item-error .ant-steps-item-icon>.ant-steps-icon{color:#a61d24}.ant-steps-item-error .ant-steps-item-icon>.ant-steps-icon .ant-steps-icon-dot{background:#a61d24}.ant-steps-item-error>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title{color:#a61d24}.ant-steps-item-error>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title:after{background-color:#303030}.ant-steps-item-error>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-description{color:#a61d24}.ant-steps-item-error>.ant-steps-item-container>.ant-steps-item-tail:after{background-color:#303030}.ant-steps-item.ant-steps-next-error .ant-steps-item-title:after{background:#a61d24}.ant-steps-item-disabled{cursor:not-allowed}.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role=button]{cursor:pointer}.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role=button] .ant-steps-item-description,.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role=button] .ant-steps-item-icon .ant-steps-icon,.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role=button] .ant-steps-item-subtitle,.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role=button] .ant-steps-item-title{transition:color .3s}.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role=button]:hover .ant-steps-item-description,.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role=button]:hover .ant-steps-item-subtitle,.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role=button]:hover .ant-steps-item-title{color:#177ddc}.ant-steps .ant-steps-item:not(.ant-steps-item-active):not(.ant-steps-item-process)>.ant-steps-item-container[role=button]:hover .ant-steps-item-icon{border-color:#177ddc}.ant-steps .ant-steps-item:not(.ant-steps-item-active):not(.ant-steps-item-process)>.ant-steps-item-container[role=button]:hover .ant-steps-item-icon .ant-steps-icon{color:#177ddc}.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item{padding-left:16px;white-space:nowrap}.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item:first-child{padding-left:0}.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item:last-child .ant-steps-item-title{padding-right:0}.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item-tail{display:none}.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item-description{max-width:140px;white-space:normal}.ant-steps-item-custom>.ant-steps-item-container>.ant-steps-item-icon{background:none;border:0;height:auto}.ant-steps-item-custom>.ant-steps-item-container>.ant-steps-item-icon>.ant-steps-icon{font-size:24px;height:32px;left:.5px;line-height:32px;top:0;width:32px}.ant-steps-item-custom.ant-steps-item-process .ant-steps-item-icon>.ant-steps-icon{color:#177ddc}.ant-steps:not(.ant-steps-vertical) .ant-steps-item-custom .ant-steps-item-icon{background:none;width:auto}.ant-steps-small.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item{padding-left:12px}.ant-steps-small.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item:first-child{padding-left:0}.ant-steps-small .ant-steps-item-icon{border-radius:24px;font-size:12px;height:24px;line-height:24px;margin:0 8px 0 0;text-align:center;width:24px}.ant-steps-small .ant-steps-item-title{font-size:14px;line-height:24px;padding-right:12px}.ant-steps-small .ant-steps-item-title:after{top:12px}.ant-steps-small .ant-steps-item-description{color:hsla(0,0%,100%,.45);font-size:14px}.ant-steps-small .ant-steps-item-tail{top:8px}.ant-steps-small .ant-steps-item-custom .ant-steps-item-icon{background:none;border:0;border-radius:0;height:inherit;line-height:inherit;width:inherit}.ant-steps-small .ant-steps-item-custom .ant-steps-item-icon>.ant-steps-icon{font-size:24px;line-height:24px;transform:none}.ant-steps-vertical{display:flex;flex-direction:column}.ant-steps-vertical>.ant-steps-item{display:block;flex:1 0 auto;overflow:visible;padding-left:0}.ant-steps-vertical>.ant-steps-item .ant-steps-item-icon{float:left;margin-right:16px}.ant-steps-vertical>.ant-steps-item .ant-steps-item-content{display:block;min-height:48px;overflow:hidden}.ant-steps-vertical>.ant-steps-item .ant-steps-item-title{line-height:32px}.ant-steps-vertical>.ant-steps-item .ant-steps-item-description{padding-bottom:12px}.ant-steps-vertical>.ant-steps-item>.ant-steps-item-container>.ant-steps-item-tail{height:100%;left:16px;padding:38px 0 6px;position:absolute;top:0;width:1px}.ant-steps-vertical>.ant-steps-item>.ant-steps-item-container>.ant-steps-item-tail:after{height:100%;width:1px}.ant-steps-vertical>.ant-steps-item:not(:last-child)>.ant-steps-item-container>.ant-steps-item-tail{display:block}.ant-steps-vertical>.ant-steps-item>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title:after{display:none}.ant-steps-vertical.ant-steps-small .ant-steps-item-container .ant-steps-item-tail{left:12px;padding:30px 0 6px;position:absolute;top:0}.ant-steps-vertical.ant-steps-small .ant-steps-item-container .ant-steps-item-title{line-height:24px}.ant-steps-label-vertical .ant-steps-item{overflow:visible}.ant-steps-label-vertical .ant-steps-item-tail{margin-left:58px;padding:3.5px 24px}.ant-steps-label-vertical .ant-steps-item-content{display:block;margin-top:8px;text-align:center;width:116px}.ant-steps-label-vertical .ant-steps-item-icon{display:inline-block;margin-left:42px}.ant-steps-label-vertical .ant-steps-item-title{padding-left:0;padding-right:0}.ant-steps-label-vertical .ant-steps-item-title:after{display:none}.ant-steps-label-vertical .ant-steps-item-subtitle{display:block;line-height:1.5715;margin-bottom:4px;margin-left:0}.ant-steps-label-vertical.ant-steps-small:not(.ant-steps-dot) .ant-steps-item-icon{margin-left:46px}.ant-steps-dot .ant-steps-item-title,.ant-steps-dot.ant-steps-small .ant-steps-item-title{line-height:1.5715}.ant-steps-dot .ant-steps-item-tail,.ant-steps-dot.ant-steps-small .ant-steps-item-tail{margin:0 0 0 70px;padding:0;top:2px;width:100%}.ant-steps-dot .ant-steps-item-tail:after,.ant-steps-dot.ant-steps-small .ant-steps-item-tail:after{height:3px;margin-left:12px;width:calc(100% - 20px)}.ant-steps-dot .ant-steps-item:first-child .ant-steps-icon-dot,.ant-steps-dot.ant-steps-small .ant-steps-item:first-child .ant-steps-icon-dot{left:2px}.ant-steps-dot .ant-steps-item-icon,.ant-steps-dot.ant-steps-small .ant-steps-item-icon{background:transparent;border:0;height:8px;line-height:8px;margin-left:67px;padding-right:0;width:8px}.ant-steps-dot .ant-steps-item-icon .ant-steps-icon-dot,.ant-steps-dot.ant-steps-small .ant-steps-item-icon .ant-steps-icon-dot{border-radius:100px;float:left;height:100%;position:relative;transition:all .3s;width:100%}.ant-steps-dot .ant-steps-item-icon .ant-steps-icon-dot:after,.ant-steps-dot.ant-steps-small .ant-steps-item-icon .ant-steps-icon-dot:after{background:rgba(0,0,0,.001);content:"";height:32px;left:-26px;position:absolute;top:-12px;width:60px}.ant-steps-dot .ant-steps-item-content,.ant-steps-dot.ant-steps-small .ant-steps-item-content{width:140px}.ant-steps-dot .ant-steps-item-process .ant-steps-item-icon,.ant-steps-dot.ant-steps-small .ant-steps-item-process .ant-steps-item-icon{background:none;height:10px;line-height:10px;position:relative;top:-1px;width:10px}.ant-steps-dot .ant-steps-item-process .ant-steps-icon:first-child .ant-steps-icon-dot,.ant-steps-dot.ant-steps-small .ant-steps-item-process .ant-steps-icon:first-child .ant-steps-icon-dot{left:0}.ant-steps-vertical.ant-steps-dot .ant-steps-item-icon{background:none;margin-left:0;margin-top:13px}.ant-steps-vertical.ant-steps-dot .ant-steps-item>.ant-steps-item-container>.ant-steps-item-tail{left:-9px;margin:0;padding:22px 0 4px;top:6.5px}.ant-steps-vertical.ant-steps-dot .ant-steps-item:first-child .ant-steps-icon-dot{left:0}.ant-steps-vertical.ant-steps-dot .ant-steps-item-content{width:inherit}.ant-steps-vertical.ant-steps-dot .ant-steps-item-process .ant-steps-item-container .ant-steps-item-icon .ant-steps-icon-dot{left:-1px;top:-1px}.ant-steps-navigation{padding-top:12px}.ant-steps-navigation.ant-steps-small .ant-steps-item-container{margin-left:-12px}.ant-steps-navigation .ant-steps-item{overflow:visible;text-align:center}.ant-steps-navigation .ant-steps-item-container{display:inline-block;height:100%;margin-left:-16px;padding-bottom:12px;text-align:left;transition:opacity .3s}.ant-steps-navigation .ant-steps-item-container .ant-steps-item-content{max-width:auto}.ant-steps-navigation .ant-steps-item-container .ant-steps-item-title{max-width:100%;overflow:hidden;padding-right:0;text-overflow:ellipsis;white-space:nowrap}.ant-steps-navigation .ant-steps-item-container .ant-steps-item-title:after{display:none}.ant-steps-navigation .ant-steps-item:not(.ant-steps-item-active) .ant-steps-item-container[role=button]{cursor:pointer}.ant-steps-navigation .ant-steps-item:not(.ant-steps-item-active) .ant-steps-item-container[role=button]:hover{opacity:.85}.ant-steps-navigation .ant-steps-item:last-child{flex:1}.ant-steps-navigation .ant-steps-item:last-child:after{display:none}.ant-steps-navigation .ant-steps-item:after{border:1px solid hsla(0,0%,100%,.2);border-bottom:none;border-left:none;content:"";display:inline-block;height:12px;left:100%;margin-left:-2px;margin-top:-14px;position:absolute;top:50%;transform:rotate(45deg);width:12px}.ant-steps-navigation .ant-steps-item:before{background-color:#177ddc;bottom:0;content:"";display:inline-block;height:2px;left:50%;position:absolute;transition:width .3s,left .3s;transition-timing-function:ease-out;width:0}.ant-steps-navigation .ant-steps-item.ant-steps-item-active:before{left:0;width:100%}.ant-steps-navigation.ant-steps-vertical>.ant-steps-item{margin-right:0!important}.ant-steps-navigation.ant-steps-vertical>.ant-steps-item:before{display:none}.ant-steps-navigation.ant-steps-vertical>.ant-steps-item.ant-steps-item-active:before{display:block;height:calc(100% - 24px);left:unset;right:0;top:0;width:3px}.ant-steps-navigation.ant-steps-vertical>.ant-steps-item:after{display:block;height:8px;left:50%;margin-bottom:8px;position:relative;text-align:center;top:-2px;transform:rotate(135deg);width:8px}.ant-steps-navigation.ant-steps-horizontal>.ant-steps-item>.ant-steps-item-container>.ant-steps-item-tail,.ant-steps-navigation.ant-steps-vertical>.ant-steps-item>.ant-steps-item-container>.ant-steps-item-tail{visibility:hidden}.ant-steps-rtl{direction:rtl}.ant-steps.ant-steps-rtl .ant-steps-item-icon{margin-left:8px;margin-right:0}.ant-steps-rtl .ant-steps-item-tail{left:auto;right:0}.ant-steps-rtl .ant-steps-item-title{padding-left:16px;padding-right:0}.ant-steps-rtl .ant-steps-item-title:after{left:auto;right:100%}.ant-steps-rtl.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item{padding-left:0;padding-right:16px}.ant-steps-rtl.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item:first-child{padding-right:0}.ant-steps-rtl.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item:last-child .ant-steps-item-title{padding-left:0}.ant-steps-rtl .ant-steps-item-custom .ant-steps-item-icon>.ant-steps-icon{left:auto;right:.5px}.ant-steps-rtl.ant-steps-navigation.ant-steps-small .ant-steps-item-container{margin-left:0;margin-right:-12px}.ant-steps-rtl.ant-steps-navigation .ant-steps-item-container{margin-left:0;margin-right:-16px;text-align:right}.ant-steps-rtl.ant-steps-navigation .ant-steps-item-container .ant-steps-item-title{padding-left:0}.ant-steps-rtl.ant-steps-navigation .ant-steps-item:after{left:auto;margin-left:0;margin-right:-2px;right:100%;transform:rotate(225deg)}.ant-steps-rtl.ant-steps-small.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item{padding-left:0;padding-right:12px}.ant-steps-rtl.ant-steps-small.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item:first-child{padding-right:0}.ant-steps-rtl.ant-steps-small .ant-steps-item-title{padding-left:12px;padding-right:0}.ant-steps-rtl.ant-steps-vertical>.ant-steps-item .ant-steps-item-icon{float:right;margin-left:16px;margin-right:0}.ant-steps-rtl.ant-steps-vertical>.ant-steps-item>.ant-steps-item-container>.ant-steps-item-tail{left:auto;right:16px}.ant-steps-rtl.ant-steps-vertical.ant-steps-small .ant-steps-item-container .ant-steps-item-tail{left:auto;right:12px}.ant-steps-rtl.ant-steps-label-vertical .ant-steps-item-title{padding-left:0}.ant-steps-rtl.ant-steps-dot .ant-steps-item-tail,.ant-steps-rtl.ant-steps-dot.ant-steps-small .ant-steps-item-tail{margin:0 70px 0 0}.ant-steps-rtl.ant-steps-dot .ant-steps-item-tail:after,.ant-steps-rtl.ant-steps-dot.ant-steps-small .ant-steps-item-tail:after{margin-left:0;margin-right:12px}.ant-steps-rtl.ant-steps-dot .ant-steps-item:first-child .ant-steps-icon-dot,.ant-steps-rtl.ant-steps-dot.ant-steps-small .ant-steps-item:first-child .ant-steps-icon-dot{left:auto;right:2px}.ant-steps-rtl.ant-steps-dot .ant-steps-item-icon,.ant-steps-rtl.ant-steps-dot.ant-steps-small .ant-steps-item-icon{margin-left:0;margin-right:67px}.ant-steps-rtl.ant-steps-dot .ant-steps-item-icon .ant-steps-icon-dot,.ant-steps-rtl.ant-steps-dot.ant-steps-small .ant-steps-item-icon .ant-steps-icon-dot{float:right}.ant-steps-rtl.ant-steps-dot .ant-steps-item-icon .ant-steps-icon-dot:after,.ant-steps-rtl.ant-steps-dot.ant-steps-small .ant-steps-item-icon .ant-steps-icon-dot:after{left:auto;right:-26px}.ant-steps-rtl.ant-steps-vertical.ant-steps-dot .ant-steps-item-icon{margin-left:16px;margin-right:0}.ant-steps-rtl.ant-steps-vertical.ant-steps-dot .ant-steps-item>.ant-steps-item-container>.ant-steps-item-tail{left:auto;right:-9px}.ant-steps-rtl.ant-steps-vertical.ant-steps-dot .ant-steps-item:first-child .ant-steps-icon-dot{left:auto;right:0}.ant-steps-rtl.ant-steps-vertical.ant-steps-dot .ant-steps-item-process .ant-steps-icon-dot{left:auto;right:-2px}.ant-steps-rtl.ant-steps-with-progress.ant-steps-horizontal.ant-steps-label-horizontal .ant-steps-item:first-child.ant-steps-item-active{padding-right:4px}.ant-steps-with-progress .ant-steps-item{padding-top:4px}.ant-steps-with-progress .ant-steps-item .ant-steps-item-tail{top:4px!important}.ant-steps-with-progress.ant-steps-horizontal .ant-steps-item:first-child{padding-bottom:4px;padding-left:4px}.ant-steps-with-progress .ant-steps-item-icon{position:relative}.ant-steps-with-progress .ant-steps-item-icon .ant-progress{bottom:-5px;left:-5px;position:absolute;right:-5px;top:-5px}.ant-switch{font-feature-settings:"tnum";background-color:hsla(0,0%,100%,.3);border:0;border-radius:100px;box-sizing:border-box;color:hsla(0,0%,100%,.85);cursor:pointer;display:inline-block;font-size:14px;font-variant:tabular-nums;height:22px;line-height:1.5715;line-height:22px;list-style:none;margin:0;min-width:44px;padding:0;position:relative;transition:all .2s;-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle}.ant-switch:focus{box-shadow:0 0 0 2px hsla(0,0%,100%,.1);outline:0}.ant-switch-checked:focus{box-shadow:0 0 0 2px #111b26}.ant-switch:focus:hover{box-shadow:none}.ant-switch-checked{background-color:#177ddc}.ant-switch-disabled,.ant-switch-loading{cursor:not-allowed;opacity:.4}.ant-switch-disabled *,.ant-switch-loading *{box-shadow:none;cursor:not-allowed}.ant-switch-inner{color:#fff;display:block;font-size:12px;margin:0 7px 0 25px;transition:margin .2s}.ant-switch-checked .ant-switch-inner{margin:0 25px 0 7px}.ant-switch-handle{height:18px;left:2px;top:2px;width:18px}.ant-switch-handle,.ant-switch-handle:before{position:absolute;transition:all .2s ease-in-out}.ant-switch-handle:before{background-color:#fff;border-radius:9px;bottom:0;box-shadow:0 2px 4px 0 rgba(0,35,11,.2);content:"";left:0;right:0;top:0}.ant-switch-checked .ant-switch-handle{left:calc(100% - 20px)}.ant-switch:not(.ant-switch-disabled):active .ant-switch-handle:before{left:0;right:-30%}.ant-switch:not(.ant-switch-disabled):active.ant-switch-checked .ant-switch-handle:before{left:-30%;right:0}.ant-switch-loading-icon.anticon{color:rgba(0,0,0,.65);position:relative;top:2px;vertical-align:top}.ant-switch-checked .ant-switch-loading-icon{color:#177ddc}.ant-switch-small{height:16px;line-height:16px;min-width:28px}.ant-switch-small .ant-switch-inner{font-size:12px;margin:0 5px 0 18px}.ant-switch-small .ant-switch-handle{height:12px;width:12px}.ant-switch-small .ant-switch-loading-icon{font-size:9px;top:1.5px}.ant-switch-small.ant-switch-checked .ant-switch-inner{margin:0 18px 0 5px}.ant-switch-small.ant-switch-checked .ant-switch-handle{left:calc(100% - 14px)}.ant-switch-rtl{direction:rtl}.ant-switch-rtl .ant-switch-inner{margin:0 25px 0 7px}.ant-switch-rtl .ant-switch-handle{left:auto;right:2px}.ant-switch-rtl:not(.ant-switch-rtl-disabled):active .ant-switch-handle:before{left:-30%;right:0}.ant-switch-rtl:not(.ant-switch-rtl-disabled):active.ant-switch-checked .ant-switch-handle:before{left:0;right:-30%}.ant-switch-rtl.ant-switch-checked .ant-switch-inner{margin:0 7px 0 25px}.ant-switch-rtl.ant-switch-checked .ant-switch-handle{right:calc(100% - 20px)}.ant-switch-rtl.ant-switch-small.ant-switch-checked .ant-switch-handle{right:calc(100% - 14px)}.ant-table.ant-table-middle{font-size:14px}.ant-table.ant-table-middle .ant-table-footer,.ant-table.ant-table-middle .ant-table-tbody>tr>td,.ant-table.ant-table-middle .ant-table-thead>tr>th,.ant-table.ant-table-middle .ant-table-title,.ant-table.ant-table-middle tfoot>tr>td,.ant-table.ant-table-middle tfoot>tr>th{padding:12px 8px}.ant-table.ant-table-middle .ant-table-filter-trigger{margin-right:-4px}.ant-table.ant-table-middle .ant-table-expanded-row-fixed{margin:-12px -8px}.ant-table.ant-table-middle .ant-table-tbody .ant-table-wrapper:only-child .ant-table{margin:-12px -8px -12px 25px}.ant-table.ant-table-small{font-size:14px}.ant-table.ant-table-small .ant-table-footer,.ant-table.ant-table-small .ant-table-tbody>tr>td,.ant-table.ant-table-small .ant-table-thead>tr>th,.ant-table.ant-table-small .ant-table-title,.ant-table.ant-table-small tfoot>tr>td,.ant-table.ant-table-small tfoot>tr>th{padding:8px}.ant-table.ant-table-small .ant-table-filter-trigger{margin-right:-4px}.ant-table.ant-table-small .ant-table-expanded-row-fixed{margin:-8px}.ant-table.ant-table-small .ant-table-tbody .ant-table-wrapper:only-child .ant-table{margin:-8px -8px -8px 25px}.ant-table-small .ant-table-thead>tr>th{background-color:#1d1d1d}.ant-table-small .ant-table-selection-column{min-width:46px;width:46px}.ant-table.ant-table-bordered>.ant-table-title{border:1px solid #303030;border-bottom:0}.ant-table.ant-table-bordered>.ant-table-container{border-left:1px solid #303030}.ant-table.ant-table-bordered>.ant-table-container>.ant-table-body>table>tbody>tr>td,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-body>table>tfoot>tr>td,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-body>table>tfoot>tr>th,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-body>table>thead>tr>th,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-content>table>tbody>tr>td,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-content>table>tfoot>tr>td,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-content>table>tfoot>tr>th,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-content>table>thead>tr>th,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-header>table>tbody>tr>td,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-header>table>tfoot>tr>td,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-header>table>tfoot>tr>th,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-header>table>thead>tr>th,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-summary>table>tbody>tr>td,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-summary>table>tfoot>tr>td,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-summary>table>tfoot>tr>th,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-summary>table>thead>tr>th{border-right:1px solid #303030}.ant-table.ant-table-bordered>.ant-table-container>.ant-table-body>table>thead>tr:not(:last-child)>th,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-content>table>thead>tr:not(:last-child)>th,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-header>table>thead>tr:not(:last-child)>th,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-summary>table>thead>tr:not(:last-child)>th{border-bottom:1px solid #303030}.ant-table.ant-table-bordered>.ant-table-container>.ant-table-body>table>thead>tr>th:before,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-content>table>thead>tr>th:before,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-header>table>thead>tr>th:before,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-summary>table>thead>tr>th:before{background-color:transparent!important}.ant-table.ant-table-bordered>.ant-table-container>.ant-table-body>table>tbody>tr>.ant-table-cell-fix-right-first:after,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-body>table>tfoot>tr>.ant-table-cell-fix-right-first:after,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-body>table>thead>tr>.ant-table-cell-fix-right-first:after,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-content>table>tbody>tr>.ant-table-cell-fix-right-first:after,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-content>table>tfoot>tr>.ant-table-cell-fix-right-first:after,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-content>table>thead>tr>.ant-table-cell-fix-right-first:after,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-header>table>tbody>tr>.ant-table-cell-fix-right-first:after,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-header>table>tfoot>tr>.ant-table-cell-fix-right-first:after,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-header>table>thead>tr>.ant-table-cell-fix-right-first:after,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-summary>table>tbody>tr>.ant-table-cell-fix-right-first:after,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-summary>table>tfoot>tr>.ant-table-cell-fix-right-first:after,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-summary>table>thead>tr>.ant-table-cell-fix-right-first:after{border-right:1px solid #303030}.ant-table.ant-table-bordered>.ant-table-container>.ant-table-body>table>tbody>tr>td>.ant-table-expanded-row-fixed,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-content>table>tbody>tr>td>.ant-table-expanded-row-fixed,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-header>table>tbody>tr>td>.ant-table-expanded-row-fixed,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-summary>table>tbody>tr>td>.ant-table-expanded-row-fixed{margin:-16px -17px}.ant-table.ant-table-bordered>.ant-table-container>.ant-table-body>table>tbody>tr>td>.ant-table-expanded-row-fixed:after,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-content>table>tbody>tr>td>.ant-table-expanded-row-fixed:after,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-header>table>tbody>tr>td>.ant-table-expanded-row-fixed:after,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-summary>table>tbody>tr>td>.ant-table-expanded-row-fixed:after{border-right:1px solid #303030;bottom:0;content:"";position:absolute;right:1px;top:0}.ant-table.ant-table-bordered>.ant-table-container>.ant-table-content>table,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-header>table{border-top:1px solid #303030}.ant-table.ant-table-bordered.ant-table-scroll-horizontal>.ant-table-container>.ant-table-body>table>tbody>tr.ant-table-expanded-row>td,.ant-table.ant-table-bordered.ant-table-scroll-horizontal>.ant-table-container>.ant-table-body>table>tbody>tr.ant-table-placeholder>td{border-right:0}.ant-table.ant-table-bordered.ant-table-middle>.ant-table-container>.ant-table-body>table>tbody>tr>td>.ant-table-expanded-row-fixed,.ant-table.ant-table-bordered.ant-table-middle>.ant-table-container>.ant-table-content>table>tbody>tr>td>.ant-table-expanded-row-fixed{margin:-12px -9px}.ant-table.ant-table-bordered.ant-table-small>.ant-table-container>.ant-table-body>table>tbody>tr>td>.ant-table-expanded-row-fixed,.ant-table.ant-table-bordered.ant-table-small>.ant-table-container>.ant-table-content>table>tbody>tr>td>.ant-table-expanded-row-fixed{margin:-8px -9px}.ant-table.ant-table-bordered>.ant-table-footer{border:1px solid #303030;border-top:0}.ant-table-cell .ant-table-container:first-child{border-top:0}.ant-table-cell-scrollbar{box-shadow:0 1px 0 1px #1d1d1d}.ant-table-resize-handle{bottom:0;cursor:col-resize;height:100%!important;left:auto!important;position:absolute;right:-8px;top:0;touch-action:none;-webkit-user-select:auto;-moz-user-select:auto;user-select:auto;width:16px;z-index:1}.ant-table-resize-handle-line{background-color:#177ddc;display:block;height:100%!important;margin-left:7px;opacity:0;width:1px}.ant-table-resize-handle.dragging .ant-table-resize-handle-line,.ant-table-resize-handle:hover .ant-table-resize-handle-line{opacity:1}.ant-table-resize-handle.dragging:before{bottom:0;content:" ";opacity:0;position:absolute;top:0;transform:translateX(-50%);width:100%;width:200vw}.ant-table-wrapper{clear:both;max-width:100%}.ant-table-wrapper:before{content:"";display:table}.ant-table-wrapper:after{clear:both;content:"";display:table}.ant-table{font-feature-settings:"tnum";background:#141414;border-radius:2px;box-sizing:border-box;color:hsla(0,0%,100%,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0;position:relative}.ant-table table{border-collapse:separate;border-radius:2px 2px 0 0;border-spacing:0;text-align:left;width:100%}.ant-table tfoot>tr>td,.ant-table tfoot>tr>th,.ant-table-tbody>tr>td,.ant-table-thead>tr>th{overflow-wrap:break-word;padding:16px;position:relative}.ant-table-cell-ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-break:keep-all}.ant-table-cell-ellipsis.ant-table-cell-fix-left-last,.ant-table-cell-ellipsis.ant-table-cell-fix-right-first{overflow:visible}.ant-table-cell-ellipsis.ant-table-cell-fix-left-last .ant-table-cell-content,.ant-table-cell-ellipsis.ant-table-cell-fix-right-first .ant-table-cell-content{display:block;overflow:hidden;text-overflow:ellipsis}.ant-table-cell-ellipsis .ant-table-column-title{overflow:hidden;text-overflow:ellipsis;word-break:keep-all}.ant-table-title{padding:16px}.ant-table-footer{background:hsla(0,0%,100%,.04);color:hsla(0,0%,100%,.85);padding:16px}.ant-table-thead>tr>th{background:#1d1d1d;border-bottom:1px solid #303030;color:hsla(0,0%,100%,.85);font-weight:500;position:relative;text-align:left;transition:background .3s ease}.ant-table-thead>tr>th[colspan]:not([colspan="1"]){text-align:center}.ant-table-thead>tr>th:not(:last-child):not(.ant-table-selection-column):not(.ant-table-row-expand-icon-cell):not([colspan]):before{background-color:hsla(0,0%,100%,.08);content:"";height:1.6em;position:absolute;right:0;top:50%;transform:translateY(-50%);transition:background-color .3s;width:1px}.ant-table-thead>tr:not(:last-child)>th[colspan]{border-bottom:0}.ant-table-tbody>tr>td{border-bottom:1px solid #303030;transition:background .3s}.ant-table-tbody>tr>td>.ant-table-expanded-row-fixed>.ant-table-wrapper:only-child .ant-table,.ant-table-tbody>tr>td>.ant-table-wrapper:only-child .ant-table{margin:-16px -16px -16px 33px}.ant-table-tbody>tr>td>.ant-table-expanded-row-fixed>.ant-table-wrapper:only-child .ant-table-tbody>tr:last-child>td,.ant-table-tbody>tr>td>.ant-table-wrapper:only-child .ant-table-tbody>tr:last-child>td{border-bottom:0}.ant-table-tbody>tr>td>.ant-table-expanded-row-fixed>.ant-table-wrapper:only-child .ant-table-tbody>tr:last-child>td:first-child,.ant-table-tbody>tr>td>.ant-table-expanded-row-fixed>.ant-table-wrapper:only-child .ant-table-tbody>tr:last-child>td:last-child,.ant-table-tbody>tr>td>.ant-table-wrapper:only-child .ant-table-tbody>tr:last-child>td:first-child,.ant-table-tbody>tr>td>.ant-table-wrapper:only-child .ant-table-tbody>tr:last-child>td:last-child{border-radius:0}.ant-table-tbody>tr.ant-table-row:hover>td,.ant-table-tbody>tr>td.ant-table-cell-row-hover{background:#262626}.ant-table-tbody>tr.ant-table-row-selected>td{background:#111b26;border-color:rgba(0,0,0,.03)}.ant-table-tbody>tr.ant-table-row-selected:hover>td{background:#0e161f}.ant-table-summary{background:#141414;position:relative;z-index:2}div.ant-table-summary{box-shadow:0 -1px 0 #303030}.ant-table-summary>tr>td,.ant-table-summary>tr>th{border-bottom:1px solid #303030}.ant-table-pagination.ant-pagination{margin:16px 0}.ant-table-pagination{display:flex;flex-wrap:wrap;row-gap:8px}.ant-table-pagination>*{flex:none}.ant-table-pagination-left{justify-content:flex-start}.ant-table-pagination-center{justify-content:center}.ant-table-pagination-right{justify-content:flex-end}.ant-table-thead th.ant-table-column-has-sorters{cursor:pointer;transition:all .3s}.ant-table-thead th.ant-table-column-has-sorters:hover{background:#303030}.ant-table-thead th.ant-table-column-has-sorters:hover:before{background-color:transparent!important}.ant-table-thead th.ant-table-column-has-sorters.ant-table-cell-fix-left:hover,.ant-table-thead th.ant-table-column-has-sorters.ant-table-cell-fix-right:hover{background:#222}.ant-table-thead th.ant-table-column-sort{background:#262626}.ant-table-thead th.ant-table-column-sort:before{background-color:transparent!important}td.ant-table-column-sort{background:hsla(0,0%,100%,.01)}.ant-table-column-title{flex:1;position:relative;z-index:1}.ant-table-column-sorters{align-items:center;display:flex;flex:auto;justify-content:space-between}.ant-table-column-sorters:after{bottom:0;content:"";height:100%;left:0;position:absolute;right:0;top:0;width:100%}.ant-table-column-sorter{color:#bfbfbf;font-size:0;margin-left:4px;transition:color .3s}.ant-table-column-sorter-inner{align-items:center;display:inline-flex;flex-direction:column}.ant-table-column-sorter-down,.ant-table-column-sorter-up{font-size:11px}.ant-table-column-sorter-down.active,.ant-table-column-sorter-up.active{color:#177ddc}.ant-table-column-sorter-up+.ant-table-column-sorter-down{margin-top:-.3em}.ant-table-column-sorters:hover .ant-table-column-sorter{color:#a6a6a6}.ant-table-filter-column{display:flex;justify-content:space-between}.ant-table-filter-trigger{align-items:center;border-radius:2px;color:#bfbfbf;cursor:pointer;display:flex;font-size:12px;margin:-4px -8px -4px 4px;padding:0 4px;position:relative;transition:all .3s}.ant-table-filter-trigger:hover{background:#434343;color:hsla(0,0%,100%,.45)}.ant-table-filter-trigger.active{color:#177ddc}.ant-table-filter-dropdown{font-feature-settings:"tnum";background-color:#1f1f1f;border-radius:2px;box-shadow:0 3px 6px -4px rgba(0,0,0,.48),0 6px 16px 0 rgba(0,0,0,.32),0 9px 28px 8px rgba(0,0,0,.2);box-sizing:border-box;color:hsla(0,0%,100%,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;min-width:120px;padding:0}.ant-table-filter-dropdown .ant-dropdown-menu{border:0;box-shadow:none;max-height:264px;overflow-x:hidden}.ant-table-filter-dropdown .ant-dropdown-menu:empty:after{color:hsla(0,0%,100%,.3);content:"Not Found";display:block;font-size:12px;padding:8px 0;text-align:center}.ant-table-filter-dropdown-tree{padding:8px 8px 0}.ant-table-filter-dropdown-tree .ant-tree-treenode .ant-tree-node-content-wrapper:hover{background-color:hsla(0,0%,100%,.08)}.ant-table-filter-dropdown-tree .ant-tree-treenode-checkbox-checked .ant-tree-node-content-wrapper,.ant-table-filter-dropdown-tree .ant-tree-treenode-checkbox-checked .ant-tree-node-content-wrapper:hover{background-color:#11263c}.ant-table-filter-dropdown-search{border-bottom:1px solid #303030;padding:8px}.ant-table-filter-dropdown-search-input input{min-width:140px}.ant-table-filter-dropdown-search-input .anticon{color:hsla(0,0%,100%,.3)}.ant-table-filter-dropdown-checkall{margin-bottom:4px;margin-left:4px;width:100%}.ant-table-filter-dropdown-submenu>ul{max-height:calc(100vh - 130px);overflow-x:hidden;overflow-y:auto}.ant-table-filter-dropdown .ant-checkbox-wrapper+span,.ant-table-filter-dropdown-submenu .ant-checkbox-wrapper+span{padding-left:8px}.ant-table-filter-dropdown-btns{background-color:#1f1f1f;border-top:1px solid #303030;display:flex;justify-content:space-between;overflow:hidden;padding:7px 8px}.ant-table-selection-col{width:32px}.ant-table-bordered .ant-table-selection-col{width:50px}table tr td.ant-table-selection-column,table tr th.ant-table-selection-column{padding-left:8px;padding-right:8px;text-align:center}table tr td.ant-table-selection-column .ant-radio-wrapper,table tr th.ant-table-selection-column .ant-radio-wrapper{margin-right:0}table tr th.ant-table-selection-column.ant-table-cell-fix-left{z-index:3}table tr th.ant-table-selection-column:after{background-color:transparent!important}.ant-table-selection{display:inline-flex;flex-direction:column;position:relative}.ant-table-selection-extra{-webkit-margin-start:100%;-webkit-padding-start:4px;cursor:pointer;margin-inline-start:100%;padding-inline-start:4px;position:absolute;top:0;transition:all .3s;z-index:1}.ant-table-selection-extra .anticon{color:#bfbfbf;font-size:10px}.ant-table-selection-extra .anticon:hover{color:#a6a6a6}.ant-table-expand-icon-col{width:48px}.ant-table-row-expand-icon-cell{text-align:center}.ant-table-row-indent{float:left;height:1px}.ant-table-row-expand-icon{background:transparent;border:1px solid #303030;border-radius:2px;box-sizing:border-box;color:#177ddc;color:inherit;cursor:pointer;display:inline-flex;float:left;height:17px;line-height:17px;outline:none;padding:0;position:relative;text-decoration:none;transform:scale(.94117647);transition:color .3s;transition:all .3s;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:17px}.ant-table-row-expand-icon:focus,.ant-table-row-expand-icon:hover{color:#165996}.ant-table-row-expand-icon:active{color:#388ed3}.ant-table-row-expand-icon:active,.ant-table-row-expand-icon:focus,.ant-table-row-expand-icon:hover{border-color:currentcolor}.ant-table-row-expand-icon:after,.ant-table-row-expand-icon:before{background:currentcolor;content:"";position:absolute;transition:transform .3s ease-out}.ant-table-row-expand-icon:before{height:1px;left:3px;right:3px;top:7px}.ant-table-row-expand-icon:after{bottom:3px;left:7px;top:3px;transform:rotate(90deg);width:1px}.ant-table-row-expand-icon-collapsed:before{transform:rotate(-180deg)}.ant-table-row-expand-icon-collapsed:after{transform:rotate(0deg)}.ant-table-row-expand-icon-spaced{background:transparent;border:0;visibility:hidden}.ant-table-row-expand-icon-spaced:after,.ant-table-row-expand-icon-spaced:before{content:none;display:none}.ant-table-row-indent+.ant-table-row-expand-icon{margin-right:8px;margin-top:2.5005px}tr.ant-table-expanded-row:hover>td,tr.ant-table-expanded-row>td{background:#1d1d1d}tr.ant-table-expanded-row .ant-descriptions-view{display:flex}tr.ant-table-expanded-row .ant-descriptions-view table{flex:auto;width:auto}.ant-table .ant-table-expanded-row-fixed{margin:-16px;padding:16px;position:relative}.ant-table-tbody>tr.ant-table-placeholder{text-align:center}.ant-table-empty .ant-table-tbody>tr.ant-table-placeholder{color:hsla(0,0%,100%,.3)}.ant-table-tbody>tr.ant-table-placeholder:hover>td{background:#141414}.ant-table-cell-fix-left,.ant-table-cell-fix-right{background:#141414;position:-webkit-sticky!important;position:sticky!important;z-index:2}.ant-table-cell-fix-left-first:after,.ant-table-cell-fix-left-last:after{bottom:-1px;content:"";pointer-events:none;position:absolute;right:0;top:0;transform:translateX(100%);transition:box-shadow .3s;width:30px}.ant-table-cell-fix-right-first:after,.ant-table-cell-fix-right-last:after{bottom:-1px;content:"";left:0;pointer-events:none;position:absolute;top:0;transform:translateX(-100%);transition:box-shadow .3s;width:30px}.ant-table .ant-table-container:after,.ant-table .ant-table-container:before{bottom:0;content:"";pointer-events:none;position:absolute;top:0;transition:box-shadow .3s;width:30px;z-index:1}.ant-table .ant-table-container:before{left:0}.ant-table .ant-table-container:after{right:0}.ant-table-ping-left:not(.ant-table-has-fix-left) .ant-table-container{position:relative}.ant-table-ping-left .ant-table-cell-fix-left-first:after,.ant-table-ping-left .ant-table-cell-fix-left-last:after,.ant-table-ping-left:not(.ant-table-has-fix-left) .ant-table-container:before{box-shadow:inset 10px 0 8px -8px rgba(0,0,0,.45)}.ant-table-ping-left .ant-table-cell-fix-left-last:before{background-color:transparent!important}.ant-table-ping-right:not(.ant-table-has-fix-right) .ant-table-container{position:relative}.ant-table-ping-right .ant-table-cell-fix-right-first:after,.ant-table-ping-right .ant-table-cell-fix-right-last:after,.ant-table-ping-right:not(.ant-table-has-fix-right) .ant-table-container:after{box-shadow:inset -10px 0 8px -8px rgba(0,0,0,.45)}.ant-table-sticky-holder{background:#141414;position:-webkit-sticky;position:sticky;z-index:3}.ant-table-sticky-scroll{align-items:center;background:#fcfcfc;border-top:1px solid #303030;bottom:0;display:flex;opacity:.6;position:-webkit-sticky;position:sticky;z-index:3}.ant-table-sticky-scroll:hover{transform-origin:center bottom}.ant-table-sticky-scroll-bar{background-color:rgba(0,0,0,.35);border-radius:4px;height:8px}.ant-table-sticky-scroll-bar-active,.ant-table-sticky-scroll-bar:hover{background-color:rgba(0,0,0,.8)}@media (-ms-high-contrast:none){.ant-table-ping-left .ant-table-cell-fix-left-last:after,.ant-table-ping-right .ant-table-cell-fix-right-first:after{box-shadow:none!important}}.ant-table-title{border-radius:2px 2px 0 0}.ant-table-title+.ant-table-container{border-top-left-radius:0;border-top-right-radius:0}.ant-table-title+.ant-table-container table>thead>tr:first-child th:first-child,.ant-table-title+.ant-table-container table>thead>tr:first-child th:last-child{border-radius:0}.ant-table-container{border-top-right-radius:2px}.ant-table-container,.ant-table-container table>thead>tr:first-child th:first-child{border-top-left-radius:2px}.ant-table-container table>thead>tr:first-child th:last-child{border-top-right-radius:2px}.ant-table-footer{border-radius:0 0 2px 2px}.ant-table-rtl,.ant-table-wrapper-rtl{direction:rtl}.ant-table-wrapper-rtl .ant-table table{text-align:right}.ant-table-wrapper-rtl .ant-table-thead>tr>th[colspan]:not([colspan="1"]){text-align:center}.ant-table-wrapper-rtl .ant-table-thead>tr>th:not(:last-child):not(.ant-table-selection-column):not(.ant-table-row-expand-icon-cell):not([colspan]):before{left:0;right:auto}.ant-table-wrapper-rtl .ant-table-thead>tr>th{text-align:right}.ant-table-tbody>tr .ant-table-wrapper:only-child .ant-table.ant-table-rtl{margin:-16px 33px -16px -16px}.ant-table-wrapper.ant-table-wrapper-rtl .ant-table-pagination-left{justify-content:flex-end}.ant-table-wrapper.ant-table-wrapper-rtl .ant-table-pagination-right{justify-content:flex-start}.ant-table-wrapper-rtl .ant-table-column-sorter{margin-left:0;margin-right:4px}.ant-table-wrapper-rtl .ant-table-filter-column-title{padding:16px 16px 16px 2.3em}.ant-table-rtl .ant-table-thead tr th.ant-table-column-has-sorters .ant-table-filter-column-title{padding:0 0 0 2.3em}.ant-table-wrapper-rtl .ant-table-filter-trigger{margin:-4px 4px -4px -8px}.ant-dropdown-menu-submenu-rtl.ant-table-filter-dropdown .ant-checkbox-wrapper+span,.ant-dropdown-menu-submenu-rtl.ant-table-filter-dropdown-submenu .ant-checkbox-wrapper+span,.ant-dropdown-rtl .ant-table-filter-dropdown .ant-checkbox-wrapper+span,.ant-dropdown-rtl .ant-table-filter-dropdown-submenu .ant-checkbox-wrapper+span{padding-left:0;padding-right:8px}.ant-table-wrapper-rtl .ant-table-selection{text-align:center}.ant-table-wrapper-rtl .ant-table-row-expand-icon,.ant-table-wrapper-rtl .ant-table-row-indent{float:right}.ant-table-wrapper-rtl .ant-table-row-indent+.ant-table-row-expand-icon{margin-left:8px;margin-right:0}.ant-table-wrapper-rtl .ant-table-row-expand-icon:after{transform:rotate(-90deg)}.ant-table-wrapper-rtl .ant-table-row-expand-icon-collapsed:before{transform:rotate(180deg)}.ant-table-wrapper-rtl .ant-table-row-expand-icon-collapsed:after{transform:rotate(0deg)}.ant-tree.ant-tree-directory .ant-tree-treenode{position:relative}.ant-tree.ant-tree-directory .ant-tree-treenode:before{bottom:4px;content:"";left:0;pointer-events:none;position:absolute;right:0;top:0;transition:background-color .3s}.ant-tree.ant-tree-directory .ant-tree-treenode:hover:before{background:hsla(0,0%,100%,.08)}.ant-tree.ant-tree-directory .ant-tree-treenode>*{z-index:1}.ant-tree.ant-tree-directory .ant-tree-treenode .ant-tree-switcher{transition:color .3s}.ant-tree.ant-tree-directory .ant-tree-treenode .ant-tree-node-content-wrapper{border-radius:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ant-tree.ant-tree-directory .ant-tree-treenode .ant-tree-node-content-wrapper:hover{background:transparent}.ant-tree.ant-tree-directory .ant-tree-treenode .ant-tree-node-content-wrapper.ant-tree-node-selected{background:transparent;color:#fff}.ant-tree.ant-tree-directory .ant-tree-treenode-selected:before,.ant-tree.ant-tree-directory .ant-tree-treenode-selected:hover:before{background:#177ddc}.ant-tree.ant-tree-directory .ant-tree-treenode-selected .ant-tree-switcher{color:#fff}.ant-tree.ant-tree-directory .ant-tree-treenode-selected .ant-tree-node-content-wrapper{background:transparent;color:#fff}.ant-tree-checkbox{font-feature-settings:"tnum";box-sizing:border-box;color:hsla(0,0%,100%,.85);cursor:pointer;font-size:14px;font-variant:tabular-nums;line-height:1.5715;line-height:1;list-style:none;margin:0;outline:none;padding:0;position:relative;top:.2em;white-space:nowrap}.ant-tree-checkbox-input:focus+.ant-tree-checkbox-inner,.ant-tree-checkbox-wrapper:hover .ant-tree-checkbox-inner,.ant-tree-checkbox:hover .ant-tree-checkbox-inner{border-color:#177ddc}.ant-tree-checkbox-checked:after{-webkit-animation:antCheckboxEffect .36s ease-in-out;animation:antCheckboxEffect .36s ease-in-out;-webkit-animation-fill-mode:backwards;animation-fill-mode:backwards;border:1px solid #177ddc;border-radius:2px;content:"";height:100%;left:0;position:absolute;top:0;visibility:hidden;width:100%}.ant-tree-checkbox-wrapper:hover .ant-tree-checkbox:after,.ant-tree-checkbox:hover:after{visibility:visible}.ant-tree-checkbox-inner{background-color:transparent;border:1px solid #434343;border-collapse:separate;border-radius:2px;direction:ltr;display:block;height:16px;left:0;position:relative;top:0;transition:all .3s;width:16px}.ant-tree-checkbox-inner:after{border:2px solid #fff;border-left:0;border-top:0;content:" ";display:table;height:9.14285714px;left:21.5%;opacity:0;position:absolute;top:50%;transform:rotate(45deg) scale(0) translate(-50%,-50%);transition:all .1s cubic-bezier(.71,-.46,.88,.6),opacity .1s;width:5.71428571px}.ant-tree-checkbox-input{bottom:0;cursor:pointer;height:100%;left:0;opacity:0;position:absolute;right:0;top:0;width:100%;z-index:1}.ant-tree-checkbox-checked .ant-tree-checkbox-inner:after{border:2px solid #fff;border-left:0;border-top:0;content:" ";display:table;opacity:1;position:absolute;transform:rotate(45deg) scale(1) translate(-50%,-50%);transition:all .2s cubic-bezier(.12,.4,.29,1.46) .1s}.ant-tree-checkbox-checked .ant-tree-checkbox-inner{background-color:#177ddc;border-color:#177ddc}.ant-tree-checkbox-disabled{cursor:not-allowed}.ant-tree-checkbox-disabled.ant-tree-checkbox-checked .ant-tree-checkbox-inner:after{-webkit-animation-name:none;animation-name:none;border-color:hsla(0,0%,100%,.3)}.ant-tree-checkbox-disabled .ant-tree-checkbox-input{cursor:not-allowed;pointer-events:none}.ant-tree-checkbox-disabled .ant-tree-checkbox-inner{background-color:hsla(0,0%,100%,.08);border-color:#434343!important}.ant-tree-checkbox-disabled .ant-tree-checkbox-inner:after{-webkit-animation-name:none;animation-name:none;border-collapse:separate;border-color:hsla(0,0%,100%,.08)}.ant-tree-checkbox-disabled+span{color:hsla(0,0%,100%,.3);cursor:not-allowed}.ant-tree-checkbox-disabled:hover:after,.ant-tree-checkbox-wrapper:hover .ant-tree-checkbox-disabled:after{visibility:hidden}.ant-tree-checkbox-wrapper{font-feature-settings:"tnum";align-items:baseline;box-sizing:border-box;color:hsla(0,0%,100%,.85);cursor:pointer;display:inline-flex;font-size:14px;font-variant:tabular-nums;line-height:1.5715;line-height:unset;list-style:none;margin:0;padding:0}.ant-tree-checkbox-wrapper:after{content:"\\a0";display:inline-block;overflow:hidden;width:0}.ant-tree-checkbox-wrapper.ant-tree-checkbox-wrapper-disabled{cursor:not-allowed}.ant-tree-checkbox-wrapper+.ant-tree-checkbox-wrapper{margin-left:8px}.ant-tree-checkbox+span{padding-left:8px;padding-right:8px}.ant-tree-checkbox-group{font-feature-settings:"tnum";box-sizing:border-box;color:hsla(0,0%,100%,.85);display:inline-block;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0}.ant-tree-checkbox-group-item{margin-right:8px}.ant-tree-checkbox-group-item:last-child{margin-right:0}.ant-tree-checkbox-group-item+.ant-tree-checkbox-group-item{margin-left:0}.ant-tree-checkbox-indeterminate .ant-tree-checkbox-inner{background-color:transparent;border-color:#434343}.ant-tree-checkbox-indeterminate .ant-tree-checkbox-inner:after{background-color:#177ddc;border:0;content:" ";height:8px;left:50%;opacity:1;top:50%;transform:translate(-50%,-50%) scale(1);width:8px}.ant-tree-checkbox-indeterminate.ant-tree-checkbox-disabled .ant-tree-checkbox-inner:after{background-color:hsla(0,0%,100%,.3);border-color:hsla(0,0%,100%,.3)}.ant-tree{font-feature-settings:"tnum";background:transparent;border-radius:2px;box-sizing:border-box;color:hsla(0,0%,100%,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0;transition:background-color .3s}.ant-tree-focused:not(:hover):not(.ant-tree-active-focused){background:#111b26}.ant-tree-list-holder-inner{align-items:flex-start}.ant-tree.ant-tree-block-node .ant-tree-list-holder-inner{align-items:stretch}.ant-tree.ant-tree-block-node .ant-tree-list-holder-inner .ant-tree-node-content-wrapper{flex:auto}.ant-tree.ant-tree-block-node .ant-tree-list-holder-inner .ant-tree-treenode.dragging{position:relative}.ant-tree.ant-tree-block-node .ant-tree-list-holder-inner .ant-tree-treenode.dragging:after{-webkit-animation:ant-tree-node-fx-do-not-use .3s;animation:ant-tree-node-fx-do-not-use .3s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-play-state:running;animation-play-state:running;border:1px solid #177ddc;bottom:4px;content:"";left:0;opacity:0;pointer-events:none;position:absolute;right:0;top:0}.ant-tree .ant-tree-treenode{align-items:flex-start;display:flex;outline:none;padding:0 0 4px}.ant-tree .ant-tree-treenode-disabled .ant-tree-node-content-wrapper{color:hsla(0,0%,100%,.3);cursor:not-allowed}.ant-tree .ant-tree-treenode-disabled .ant-tree-node-content-wrapper:hover{background:transparent}.ant-tree .ant-tree-treenode-active .ant-tree-node-content-wrapper{background:hsla(0,0%,100%,.08)}.ant-tree .ant-tree-treenode:not(.ant-tree .ant-tree-treenode-disabled).filter-node .ant-tree-title{color:inherit;font-weight:500}.ant-tree-indent{align-self:stretch;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.ant-tree-indent-unit{display:inline-block;width:24px}.ant-tree-draggable-icon{line-height:24px;opacity:.2;text-align:center;transition:opacity .3s;width:24px}.ant-tree-treenode:hover .ant-tree-draggable-icon{opacity:.45}.ant-tree-switcher{align-self:stretch;cursor:pointer;flex:none;line-height:24px;margin:0;position:relative;text-align:center;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:24px}.ant-tree-switcher .ant-select-tree-switcher-icon,.ant-tree-switcher .ant-tree-switcher-icon{display:inline-block;font-size:10px;vertical-align:baseline}.ant-tree-switcher .ant-select-tree-switcher-icon svg,.ant-tree-switcher .ant-tree-switcher-icon svg{transition:transform .3s}.ant-tree-switcher-noop{cursor:default}.ant-tree-switcher_close .ant-tree-switcher-icon svg{transform:rotate(-90deg)}.ant-tree-switcher-loading-icon{color:#177ddc}.ant-tree-switcher-leaf-line{display:inline-block;height:100%;position:relative;width:100%;z-index:1}.ant-tree-switcher-leaf-line:before{border-right:1px solid #d9d9d9;bottom:-4px;content:" ";margin-left:-1px;position:absolute;right:12px;top:0}.ant-tree-switcher-leaf-line:after{border-bottom:1px solid #d9d9d9;content:" ";height:14px;position:absolute;width:10px}.ant-tree-checkbox{margin:4px 8px 0 0;top:auto}.ant-tree .ant-tree-node-content-wrapper{background:transparent;border-radius:2px;color:inherit;cursor:pointer;line-height:24px;margin:0;min-height:24px;padding:0 4px;position:relative;transition:all .3s,border 0s,line-height 0s,box-shadow 0s;z-index:auto}.ant-tree .ant-tree-node-content-wrapper:hover{background-color:hsla(0,0%,100%,.08)}.ant-tree .ant-tree-node-content-wrapper.ant-tree-node-selected{background-color:#11263c}.ant-tree .ant-tree-node-content-wrapper .ant-tree-iconEle{display:inline-block;height:24px;line-height:24px;text-align:center;vertical-align:top;width:24px}.ant-tree .ant-tree-node-content-wrapper .ant-tree-iconEle:empty{display:none}.ant-tree-unselectable .ant-tree-node-content-wrapper:hover{background-color:transparent}.ant-tree-node-content-wrapper{line-height:24px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ant-tree-node-content-wrapper .ant-tree-drop-indicator{background-color:#177ddc;border-radius:1px;height:2px;pointer-events:none;position:absolute;z-index:1}.ant-tree-node-content-wrapper .ant-tree-drop-indicator:after{background-color:transparent;border:2px solid #177ddc;border-radius:50%;content:"";height:8px;left:-6px;position:absolute;top:-3px;width:8px}.ant-tree .ant-tree-treenode.drop-container>[draggable]{box-shadow:0 0 0 2px #177ddc}.ant-tree-show-line .ant-tree-indent-unit{height:100%;position:relative}.ant-tree-show-line .ant-tree-indent-unit:before{border-right:1px solid #434343;bottom:-4px;content:"";position:absolute;right:12px;top:0}.ant-tree-show-line .ant-tree-indent-unit-end:before{display:none}.ant-tree-show-line .ant-tree-switcher{background:#141414}.ant-tree-show-line .ant-tree-switcher-line-icon{vertical-align:-.15em}.ant-tree .ant-tree-treenode-leaf-last .ant-tree-switcher-leaf-line:before{bottom:auto!important;height:14px!important;top:auto!important}.ant-tree-rtl{direction:rtl}.ant-tree-rtl .ant-tree-node-content-wrapper[draggable=true] .ant-tree-drop-indicator:after{left:unset;right:-6px}.ant-tree .ant-tree-treenode-rtl{direction:rtl}.ant-tree-rtl .ant-tree-switcher_close .ant-tree-switcher-icon svg{transform:rotate(90deg)}.ant-tree-rtl.ant-tree-show-line .ant-tree-indent-unit:before{border-left:1px solid #434343;border-right:none;left:-13px;right:auto}.ant-tree-rtl.ant-tree-checkbox,.ant-tree-select-dropdown-rtl .ant-select-tree-checkbox{margin:4px 0 0 8px}.ant-timeline{font-feature-settings:"tnum";box-sizing:border-box;color:hsla(0,0%,100%,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0}.ant-timeline-item{font-size:14px;list-style:none;margin:0;padding-bottom:20px;position:relative}.ant-timeline-item-tail{border-left:2px solid #303030;height:calc(100% - 10px);left:4px;position:absolute;top:10px}.ant-timeline-item-pending .ant-timeline-item-head{background-color:transparent;font-size:12px}.ant-timeline-item-pending .ant-timeline-item-tail{display:none}.ant-timeline-item-head{background-color:#141414;border:2px solid transparent;border-radius:100px;height:10px;position:absolute;width:10px}.ant-timeline-item-head-blue{border-color:#177ddc;color:#177ddc}.ant-timeline-item-head-red{border-color:#a61d24;color:#a61d24}.ant-timeline-item-head-green{border-color:#49aa19;color:#49aa19}.ant-timeline-item-head-gray{border-color:hsla(0,0%,100%,.3);color:hsla(0,0%,100%,.3)}.ant-timeline-item-head-custom{border:0;border-radius:0;height:auto;left:5px;line-height:1;margin-top:0;padding:3px 1px;position:absolute;text-align:center;top:5.5px;transform:translate(-50%,-50%);width:auto}.ant-timeline-item-content{margin:0 0 0 26px;position:relative;top:-7.001px;word-break:break-word}.ant-timeline-item-last>.ant-timeline-item-tail{display:none}.ant-timeline-item-last>.ant-timeline-item-content{min-height:48px}.ant-timeline.ant-timeline-alternate .ant-timeline-item-head,.ant-timeline.ant-timeline-alternate .ant-timeline-item-head-custom,.ant-timeline.ant-timeline-alternate .ant-timeline-item-tail,.ant-timeline.ant-timeline-label .ant-timeline-item-head,.ant-timeline.ant-timeline-label .ant-timeline-item-head-custom,.ant-timeline.ant-timeline-label .ant-timeline-item-tail,.ant-timeline.ant-timeline-right .ant-timeline-item-head,.ant-timeline.ant-timeline-right .ant-timeline-item-head-custom,.ant-timeline.ant-timeline-right .ant-timeline-item-tail{left:50%}.ant-timeline.ant-timeline-alternate .ant-timeline-item-head,.ant-timeline.ant-timeline-label .ant-timeline-item-head,.ant-timeline.ant-timeline-right .ant-timeline-item-head{margin-left:-4px}.ant-timeline.ant-timeline-alternate .ant-timeline-item-head-custom,.ant-timeline.ant-timeline-label .ant-timeline-item-head-custom,.ant-timeline.ant-timeline-right .ant-timeline-item-head-custom{margin-left:1px}.ant-timeline.ant-timeline-alternate .ant-timeline-item-left .ant-timeline-item-content,.ant-timeline.ant-timeline-label .ant-timeline-item-left .ant-timeline-item-content,.ant-timeline.ant-timeline-right .ant-timeline-item-left .ant-timeline-item-content{left:calc(50% - 4px);text-align:left;width:calc(50% - 14px)}.ant-timeline.ant-timeline-alternate .ant-timeline-item-right .ant-timeline-item-content,.ant-timeline.ant-timeline-label .ant-timeline-item-right .ant-timeline-item-content,.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-content{margin:0;text-align:right;width:calc(50% - 12px)}.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-head,.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-head-custom,.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-tail{left:calc(100% - 6px)}.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-content{width:calc(100% - 18px)}.ant-timeline.ant-timeline-pending .ant-timeline-item-last .ant-timeline-item-tail{border-left:2px dotted #303030;display:block;height:calc(100% - 14px)}.ant-timeline.ant-timeline-reverse .ant-timeline-item-last .ant-timeline-item-tail{display:none}.ant-timeline.ant-timeline-reverse .ant-timeline-item-pending .ant-timeline-item-tail{border-left:2px dotted #303030;display:block;height:calc(100% - 15px);top:15px}.ant-timeline.ant-timeline-reverse .ant-timeline-item-pending .ant-timeline-item-content{min-height:48px}.ant-timeline.ant-timeline-label .ant-timeline-item-label{position:absolute;text-align:right;top:-7.001px;width:calc(50% - 12px)}.ant-timeline.ant-timeline-label .ant-timeline-item-right .ant-timeline-item-label{left:calc(50% + 14px);text-align:left;width:calc(50% - 14px)}.ant-timeline-rtl{direction:rtl}.ant-timeline-rtl .ant-timeline-item-tail{border-left:none;border-right:2px solid #303030;left:auto;right:4px}.ant-timeline-rtl .ant-timeline-item-head-custom{left:auto;right:5px;transform:translate(50%,-50%)}.ant-timeline-rtl .ant-timeline-item-content{margin:0 18px 0 0}.ant-timeline-rtl.ant-timeline.ant-timeline-alternate .ant-timeline-item-head,.ant-timeline-rtl.ant-timeline.ant-timeline-alternate .ant-timeline-item-head-custom,.ant-timeline-rtl.ant-timeline.ant-timeline-alternate .ant-timeline-item-tail,.ant-timeline-rtl.ant-timeline.ant-timeline-label .ant-timeline-item-head,.ant-timeline-rtl.ant-timeline.ant-timeline-label .ant-timeline-item-head-custom,.ant-timeline-rtl.ant-timeline.ant-timeline-label .ant-timeline-item-tail,.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-head,.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-head-custom,.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-tail{left:auto;right:50%}.ant-timeline-rtl.ant-timeline.ant-timeline-alternate .ant-timeline-item-head,.ant-timeline-rtl.ant-timeline.ant-timeline-label .ant-timeline-item-head,.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-head{margin-left:0;margin-right:-4px}.ant-timeline-rtl.ant-timeline.ant-timeline-alternate .ant-timeline-item-head-custom,.ant-timeline-rtl.ant-timeline.ant-timeline-label .ant-timeline-item-head-custom,.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-head-custom{margin-left:0;margin-right:1px}.ant-timeline-rtl.ant-timeline.ant-timeline-alternate .ant-timeline-item-left .ant-timeline-item-content,.ant-timeline-rtl.ant-timeline.ant-timeline-label .ant-timeline-item-left .ant-timeline-item-content,.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-left .ant-timeline-item-content{left:auto;right:calc(50% - 4px);text-align:right}.ant-timeline-rtl.ant-timeline.ant-timeline-alternate .ant-timeline-item-right .ant-timeline-item-content,.ant-timeline-rtl.ant-timeline.ant-timeline-label .ant-timeline-item-right .ant-timeline-item-content,.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-content{text-align:left}.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-head,.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-head-custom,.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-tail{left:auto;right:0}.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-content{margin-right:18px;text-align:right;width:100%}.ant-timeline-rtl.ant-timeline.ant-timeline-pending .ant-timeline-item-last .ant-timeline-item-tail,.ant-timeline-rtl.ant-timeline.ant-timeline-reverse .ant-timeline-item-pending .ant-timeline-item-tail{border-left:none;border-right:2px dotted #303030}.ant-timeline-rtl.ant-timeline.ant-timeline-label .ant-timeline-item-label{text-align:left}.ant-timeline-rtl.ant-timeline.ant-timeline-label .ant-timeline-item-right .ant-timeline-item-label{right:calc(50% + 14px);text-align:right}.ant-transfer-customize-list .ant-transfer-list{flex:1 1 50%;height:auto;min-height:200px;width:auto}.ant-transfer-customize-list .ant-table-wrapper .ant-table-small{border:0;border-radius:0}.ant-transfer-customize-list .ant-table-wrapper .ant-table-small .ant-table-selection-column{min-width:40px;width:40px}.ant-transfer-customize-list .ant-table-wrapper .ant-table-small>.ant-table-content>.ant-table-body>table>.ant-table-thead>tr>th{background:#1d1d1d}.ant-transfer-customize-list .ant-table-wrapper .ant-table-small>.ant-table-content .ant-table-row:last-child td{border-bottom:1px solid #303030}.ant-transfer-customize-list .ant-table-wrapper .ant-table-small .ant-table-body{margin:0}.ant-transfer-customize-list .ant-table-wrapper .ant-table-pagination.ant-pagination{margin:16px 0 4px}.ant-transfer-customize-list .ant-input[disabled]{background-color:transparent}.ant-transfer{font-feature-settings:"tnum";align-items:stretch;box-sizing:border-box;color:hsla(0,0%,100%,.85);display:flex;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0;position:relative}.ant-transfer-disabled .ant-transfer-list{background:hsla(0,0%,100%,.08)}.ant-transfer-list{border:1px solid #434343;border-radius:2px;display:flex;flex-direction:column;height:200px;width:180px}.ant-transfer-list-with-pagination{height:auto;width:250px}.ant-transfer-list-search .anticon-search{color:hsla(0,0%,100%,.3)}.ant-transfer-list-header{align-items:center;background:#141414;border-bottom:1px solid #303030;border-radius:2px 2px 0 0;color:hsla(0,0%,100%,.85);display:flex;flex:none;height:40px;padding:8px 12px 9px}.ant-transfer-list-header>:not(:last-child){margin-right:4px}.ant-transfer-list-header>*{flex:none}.ant-transfer-list-header-title{flex:auto;overflow:hidden;text-align:right;text-overflow:ellipsis;white-space:nowrap}.ant-transfer-list-header-dropdown{cursor:pointer;font-size:10px;transform:translateY(10%)}.ant-transfer-list-header-dropdown[disabled]{cursor:not-allowed}.ant-transfer-list-body{display:flex;flex:auto;flex-direction:column;font-size:14px;overflow:hidden}.ant-transfer-list-body-search-wrapper{flex:none;padding:12px;position:relative}.ant-transfer-list-content{flex:auto;list-style:none;margin:0;overflow:auto;padding:0}.ant-transfer-list-content-item{align-items:center;display:flex;line-height:20px;min-height:32px;padding:6px 12px;transition:all .3s}.ant-transfer-list-content-item>:not(:last-child){margin-right:8px}.ant-transfer-list-content-item>*{flex:none}.ant-transfer-list-content-item-text{flex:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ant-transfer-list-content-item-remove{color:#177ddc;color:#434343;cursor:pointer;outline:none;position:relative;text-decoration:none;transition:color .3s}.ant-transfer-list-content-item-remove:focus,.ant-transfer-list-content-item-remove:hover{color:#165996}.ant-transfer-list-content-item-remove:active{color:#388ed3}.ant-transfer-list-content-item-remove:after{bottom:-6px;content:"";left:-50%;position:absolute;right:-50%;top:-6px}.ant-transfer-list-content-item-remove:hover{color:#165996}.ant-transfer-list-content-item:not(.ant-transfer-list-content-item-disabled):hover{background-color:#262626;cursor:pointer}.ant-transfer-list-content-item:not(.ant-transfer-list-content-item-disabled).ant-transfer-list-content-item-checked:hover{background-color:#0e161f}.ant-transfer-list-content-show-remove .ant-transfer-list-content-item:not(.ant-transfer-list-content-item-disabled):hover{background:transparent;cursor:default}.ant-transfer-list-content-item-checked{background-color:#111b26}.ant-transfer-list-content-item-disabled{color:hsla(0,0%,100%,.3);cursor:not-allowed}.ant-transfer-list-pagination{border-top:1px solid #303030;padding:8px 0;text-align:right}.ant-transfer-list-body-not-found{color:hsla(0,0%,100%,.3);flex:none;margin:auto 0;text-align:center;width:100%}.ant-transfer-list-footer{border-top:1px solid #303030}.ant-transfer-operation{align-self:center;display:flex;flex:none;flex-direction:column;margin:0 8px;vertical-align:middle}.ant-transfer-operation .ant-btn{display:block}.ant-transfer-operation .ant-btn:first-child{margin-bottom:4px}.ant-transfer-operation .ant-btn .anticon{font-size:12px}.ant-transfer .ant-empty-image{max-height:-2px}.ant-transfer-rtl{direction:rtl}.ant-transfer-rtl .ant-transfer-list-search{padding-left:24px;padding-right:8px}.ant-transfer-rtl .ant-transfer-list-search-action{left:12px;right:auto}.ant-transfer-rtl .ant-transfer-list-header>:not(:last-child){margin-left:4px;margin-right:0}.ant-transfer-rtl .ant-transfer-list-header{left:auto;right:0}.ant-transfer-rtl .ant-transfer-list-header-title{text-align:left}.ant-transfer-rtl .ant-transfer-list-content-item>:not(:last-child){margin-left:8px;margin-right:0}.ant-transfer-rtl .ant-transfer-list-pagination{text-align:left}.ant-transfer-rtl .ant-transfer-list-footer{left:auto;right:0}@-webkit-keyframes ant-tree-node-fx-do-not-use{0%{opacity:0}to{opacity:1}}@keyframes ant-tree-node-fx-do-not-use{0%{opacity:0}to{opacity:1}}@-webkit-keyframes antCheckboxEffect{0%{opacity:.5;transform:scale(1)}to{opacity:0;transform:scale(1.6)}}@keyframes antCheckboxEffect{0%{opacity:.5;transform:scale(1)}to{opacity:0;transform:scale(1.6)}}.ant-select-tree-checkbox{font-feature-settings:"tnum";box-sizing:border-box;color:hsla(0,0%,100%,.85);cursor:pointer;font-size:14px;font-variant:tabular-nums;line-height:1.5715;line-height:1;list-style:none;margin:0;outline:none;padding:0;position:relative;top:.2em;white-space:nowrap}.ant-select-tree-checkbox-input:focus+.ant-select-tree-checkbox-inner,.ant-select-tree-checkbox-wrapper:hover .ant-select-tree-checkbox-inner,.ant-select-tree-checkbox:hover .ant-select-tree-checkbox-inner{border-color:#177ddc}.ant-select-tree-checkbox-checked:after{-webkit-animation:antCheckboxEffect .36s ease-in-out;animation:antCheckboxEffect .36s ease-in-out;-webkit-animation-fill-mode:backwards;animation-fill-mode:backwards;border:1px solid #177ddc;border-radius:2px;content:"";height:100%;left:0;position:absolute;top:0;visibility:hidden;width:100%}.ant-select-tree-checkbox-wrapper:hover .ant-select-tree-checkbox:after,.ant-select-tree-checkbox:hover:after{visibility:visible}.ant-select-tree-checkbox-inner{background-color:transparent;border:1px solid #434343;border-collapse:separate;border-radius:2px;direction:ltr;display:block;height:16px;left:0;position:relative;top:0;transition:all .3s;width:16px}.ant-select-tree-checkbox-inner:after{border:2px solid #fff;border-left:0;border-top:0;content:" ";display:table;height:9.14285714px;left:21.5%;opacity:0;position:absolute;top:50%;transform:rotate(45deg) scale(0) translate(-50%,-50%);transition:all .1s cubic-bezier(.71,-.46,.88,.6),opacity .1s;width:5.71428571px}.ant-select-tree-checkbox-input{bottom:0;cursor:pointer;height:100%;left:0;opacity:0;position:absolute;right:0;top:0;width:100%;z-index:1}.ant-select-tree-checkbox-checked .ant-select-tree-checkbox-inner:after{border:2px solid #fff;border-left:0;border-top:0;content:" ";display:table;opacity:1;position:absolute;transform:rotate(45deg) scale(1) translate(-50%,-50%);transition:all .2s cubic-bezier(.12,.4,.29,1.46) .1s}.ant-select-tree-checkbox-checked .ant-select-tree-checkbox-inner{background-color:#177ddc;border-color:#177ddc}.ant-select-tree-checkbox-disabled{cursor:not-allowed}.ant-select-tree-checkbox-disabled.ant-select-tree-checkbox-checked .ant-select-tree-checkbox-inner:after{-webkit-animation-name:none;animation-name:none;border-color:hsla(0,0%,100%,.3)}.ant-select-tree-checkbox-disabled .ant-select-tree-checkbox-input{cursor:not-allowed;pointer-events:none}.ant-select-tree-checkbox-disabled .ant-select-tree-checkbox-inner{background-color:hsla(0,0%,100%,.08);border-color:#434343!important}.ant-select-tree-checkbox-disabled .ant-select-tree-checkbox-inner:after{-webkit-animation-name:none;animation-name:none;border-collapse:separate;border-color:hsla(0,0%,100%,.08)}.ant-select-tree-checkbox-disabled+span{color:hsla(0,0%,100%,.3);cursor:not-allowed}.ant-select-tree-checkbox-disabled:hover:after,.ant-select-tree-checkbox-wrapper:hover .ant-select-tree-checkbox-disabled:after{visibility:hidden}.ant-select-tree-checkbox-wrapper{font-feature-settings:"tnum";align-items:baseline;box-sizing:border-box;color:hsla(0,0%,100%,.85);cursor:pointer;display:inline-flex;font-size:14px;font-variant:tabular-nums;line-height:1.5715;line-height:unset;list-style:none;margin:0;padding:0}.ant-select-tree-checkbox-wrapper:after{content:"\\a0";display:inline-block;overflow:hidden;width:0}.ant-select-tree-checkbox-wrapper.ant-select-tree-checkbox-wrapper-disabled{cursor:not-allowed}.ant-select-tree-checkbox-wrapper+.ant-select-tree-checkbox-wrapper{margin-left:8px}.ant-select-tree-checkbox+span{padding-left:8px;padding-right:8px}.ant-select-tree-checkbox-group{font-feature-settings:"tnum";box-sizing:border-box;color:hsla(0,0%,100%,.85);display:inline-block;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0}.ant-select-tree-checkbox-group-item{margin-right:8px}.ant-select-tree-checkbox-group-item:last-child{margin-right:0}.ant-select-tree-checkbox-group-item+.ant-select-tree-checkbox-group-item{margin-left:0}.ant-select-tree-checkbox-indeterminate .ant-select-tree-checkbox-inner{background-color:transparent;border-color:#434343}.ant-select-tree-checkbox-indeterminate .ant-select-tree-checkbox-inner:after{background-color:#177ddc;border:0;content:" ";height:8px;left:50%;opacity:1;top:50%;transform:translate(-50%,-50%) scale(1);width:8px}.ant-select-tree-checkbox-indeterminate.ant-select-tree-checkbox-disabled .ant-select-tree-checkbox-inner:after{background-color:hsla(0,0%,100%,.3);border-color:hsla(0,0%,100%,.3)}.ant-tree-select-dropdown{padding:8px 4px}.ant-tree-select-dropdown-rtl{direction:rtl}.ant-tree-select-dropdown .ant-select-tree{border-radius:0}.ant-tree-select-dropdown .ant-select-tree-list-holder-inner{align-items:stretch}.ant-tree-select-dropdown .ant-select-tree-list-holder-inner .ant-select-tree-treenode .ant-select-tree-node-content-wrapper{flex:auto}.ant-select-tree{font-feature-settings:"tnum";background:transparent;border-radius:2px;box-sizing:border-box;color:hsla(0,0%,100%,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0;transition:background-color .3s}.ant-select-tree-focused:not(:hover):not(.ant-select-tree-active-focused){background:#111b26}.ant-select-tree-list-holder-inner{align-items:flex-start}.ant-select-tree.ant-select-tree-block-node .ant-select-tree-list-holder-inner{align-items:stretch}.ant-select-tree.ant-select-tree-block-node .ant-select-tree-list-holder-inner .ant-select-tree-node-content-wrapper{flex:auto}.ant-select-tree.ant-select-tree-block-node .ant-select-tree-list-holder-inner .ant-select-tree-treenode.dragging{position:relative}.ant-select-tree.ant-select-tree-block-node .ant-select-tree-list-holder-inner .ant-select-tree-treenode.dragging:after{-webkit-animation:ant-tree-node-fx-do-not-use .3s;animation:ant-tree-node-fx-do-not-use .3s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-play-state:running;animation-play-state:running;border:1px solid #177ddc;bottom:4px;content:"";left:0;opacity:0;pointer-events:none;position:absolute;right:0;top:0}.ant-select-tree .ant-select-tree-treenode{align-items:flex-start;display:flex;outline:none;padding:0 0 4px}.ant-select-tree .ant-select-tree-treenode-disabled .ant-select-tree-node-content-wrapper{color:hsla(0,0%,100%,.3);cursor:not-allowed}.ant-select-tree .ant-select-tree-treenode-disabled .ant-select-tree-node-content-wrapper:hover{background:transparent}.ant-select-tree .ant-select-tree-treenode-active .ant-select-tree-node-content-wrapper{background:hsla(0,0%,100%,.08)}.ant-select-tree .ant-select-tree-treenode:not(.ant-select-tree .ant-select-tree-treenode-disabled).filter-node .ant-select-tree-title{color:inherit;font-weight:500}.ant-select-tree-indent{align-self:stretch;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.ant-select-tree-indent-unit{display:inline-block;width:24px}.ant-select-tree-draggable-icon{line-height:24px;opacity:.2;text-align:center;transition:opacity .3s;width:24px}.ant-select-tree-treenode:hover .ant-select-tree-draggable-icon{opacity:.45}.ant-select-tree-switcher{align-self:stretch;cursor:pointer;flex:none;line-height:24px;margin:0;position:relative;text-align:center;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:24px}.ant-select-tree-switcher .ant-select-tree-switcher-icon,.ant-select-tree-switcher .ant-tree-switcher-icon{display:inline-block;font-size:10px;vertical-align:baseline}.ant-select-tree-switcher .ant-select-tree-switcher-icon svg,.ant-select-tree-switcher .ant-tree-switcher-icon svg{transition:transform .3s}.ant-select-tree-switcher-noop{cursor:default}.ant-select-tree-switcher_close .ant-select-tree-switcher-icon svg{transform:rotate(-90deg)}.ant-select-tree-switcher-loading-icon{color:#177ddc}.ant-select-tree-switcher-leaf-line{display:inline-block;height:100%;position:relative;width:100%;z-index:1}.ant-select-tree-switcher-leaf-line:before{border-right:1px solid #d9d9d9;bottom:-4px;content:" ";margin-left:-1px;position:absolute;right:12px;top:0}.ant-select-tree-switcher-leaf-line:after{border-bottom:1px solid #d9d9d9;content:" ";height:14px;position:absolute;width:10px}.ant-select-tree-checkbox{margin:4px 8px 0 0;top:auto}.ant-select-tree .ant-select-tree-node-content-wrapper{background:transparent;border-radius:2px;color:inherit;cursor:pointer;line-height:24px;margin:0;min-height:24px;padding:0 4px;position:relative;transition:all .3s,border 0s,line-height 0s,box-shadow 0s;z-index:auto}.ant-select-tree .ant-select-tree-node-content-wrapper:hover{background-color:hsla(0,0%,100%,.08)}.ant-select-tree .ant-select-tree-node-content-wrapper.ant-select-tree-node-selected{background-color:#11263c}.ant-select-tree .ant-select-tree-node-content-wrapper .ant-select-tree-iconEle{display:inline-block;height:24px;line-height:24px;text-align:center;vertical-align:top;width:24px}.ant-select-tree .ant-select-tree-node-content-wrapper .ant-select-tree-iconEle:empty{display:none}.ant-select-tree-unselectable .ant-select-tree-node-content-wrapper:hover{background-color:transparent}.ant-select-tree-node-content-wrapper{line-height:24px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ant-select-tree-node-content-wrapper .ant-tree-drop-indicator{background-color:#177ddc;border-radius:1px;height:2px;pointer-events:none;position:absolute;z-index:1}.ant-select-tree-node-content-wrapper .ant-tree-drop-indicator:after{background-color:transparent;border:2px solid #177ddc;border-radius:50%;content:"";height:8px;left:-6px;position:absolute;top:-3px;width:8px}.ant-select-tree .ant-select-tree-treenode.drop-container>[draggable]{box-shadow:0 0 0 2px #177ddc}.ant-select-tree-show-line .ant-select-tree-indent-unit{height:100%;position:relative}.ant-select-tree-show-line .ant-select-tree-indent-unit:before{border-right:1px solid #434343;bottom:-4px;content:"";position:absolute;right:12px;top:0}.ant-select-tree-show-line .ant-select-tree-indent-unit-end:before{display:none}.ant-select-tree-show-line .ant-select-tree-switcher{background:#141414}.ant-select-tree-show-line .ant-select-tree-switcher-line-icon{vertical-align:-.15em}.ant-select-tree .ant-select-tree-treenode-leaf-last .ant-select-tree-switcher-leaf-line:before{bottom:auto!important;height:14px!important;top:auto!important}.ant-tree-select-dropdown-rtl .ant-select-tree .ant-select-tree-switcher_close .ant-select-tree-switcher-icon svg{transform:rotate(90deg)}.ant-tree-select-dropdown-rtl .ant-select-tree .ant-select-tree-switcher-loading-icon{transform:scaleY(-1)}.ant-typography{color:hsla(0,0%,100%,.85);overflow-wrap:break-word}.ant-typography.ant-typography-secondary{color:hsla(0,0%,100%,.45)}.ant-typography.ant-typography-success{color:#49aa19}.ant-typography.ant-typography-warning{color:#d89614}.ant-typography.ant-typography-danger{color:#a61d24}a.ant-typography.ant-typography-danger:active,a.ant-typography.ant-typography-danger:focus,a.ant-typography.ant-typography-danger:hover{color:#b33b3d}.ant-typography.ant-typography-disabled{color:hsla(0,0%,100%,.3);cursor:not-allowed;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ant-typography p,div.ant-typography{margin-bottom:1em}.ant-typography h1,h1.ant-typography{color:hsla(0,0%,100%,.85);font-size:38px;font-weight:600;line-height:1.23;margin-bottom:.5em}.ant-typography h2,h2.ant-typography{font-size:30px}.ant-typography h2,.ant-typography h3,h2.ant-typography,h3.ant-typography{color:hsla(0,0%,100%,.85);font-weight:600;line-height:1.35;margin-bottom:.5em}.ant-typography h3,h3.ant-typography{font-size:24px}.ant-typography h4,h4.ant-typography{color:hsla(0,0%,100%,.85);font-size:20px;font-weight:600;line-height:1.4;margin-bottom:.5em}.ant-typography h5,h5.ant-typography{color:hsla(0,0%,100%,.85);font-size:16px;font-weight:600;line-height:1.5;margin-bottom:.5em}.ant-typography div+h1,.ant-typography div+h2,.ant-typography div+h3,.ant-typography div+h4,.ant-typography div+h5,.ant-typography h1+h1,.ant-typography h1+h2,.ant-typography h1+h3,.ant-typography h1+h4,.ant-typography h1+h5,.ant-typography h2+h1,.ant-typography h2+h2,.ant-typography h2+h3,.ant-typography h2+h4,.ant-typography h2+h5,.ant-typography h3+h1,.ant-typography h3+h2,.ant-typography h3+h3,.ant-typography h3+h4,.ant-typography h3+h5,.ant-typography h4+h1,.ant-typography h4+h2,.ant-typography h4+h3,.ant-typography h4+h4,.ant-typography h4+h5,.ant-typography h5+h1,.ant-typography h5+h2,.ant-typography h5+h3,.ant-typography h5+h4,.ant-typography h5+h5,.ant-typography li+h1,.ant-typography li+h2,.ant-typography li+h3,.ant-typography li+h4,.ant-typography li+h5,.ant-typography p+h1,.ant-typography p+h2,.ant-typography p+h3,.ant-typography p+h4,.ant-typography p+h5,.ant-typography ul+h1,.ant-typography ul+h2,.ant-typography ul+h3,.ant-typography ul+h4,.ant-typography ul+h5,.ant-typography+h1.ant-typography,.ant-typography+h2.ant-typography,.ant-typography+h3.ant-typography,.ant-typography+h4.ant-typography,.ant-typography+h5.ant-typography{margin-top:1.2em}a.ant-typography-ellipsis,span.ant-typography-ellipsis{display:inline-block;max-width:100%}.ant-typography a,a.ant-typography{color:#177ddc;cursor:pointer;outline:none;text-decoration:none;transition:color .3s}.ant-typography a:focus,.ant-typography a:hover,a.ant-typography:focus,a.ant-typography:hover{color:#165996}.ant-typography a:active,a.ant-typography:active{color:#388ed3}.ant-typography a:active,.ant-typography a:hover,a.ant-typography:active,a.ant-typography:hover{text-decoration:none}.ant-typography a.ant-typography-disabled,.ant-typography a[disabled],a.ant-typography.ant-typography-disabled,a.ant-typography[disabled]{color:hsla(0,0%,100%,.3);cursor:not-allowed}.ant-typography a.ant-typography-disabled:active,.ant-typography a.ant-typography-disabled:hover,.ant-typography a[disabled]:active,.ant-typography a[disabled]:hover,a.ant-typography.ant-typography-disabled:active,a.ant-typography.ant-typography-disabled:hover,a.ant-typography[disabled]:active,a.ant-typography[disabled]:hover{color:hsla(0,0%,100%,.3)}.ant-typography a.ant-typography-disabled:active,.ant-typography a[disabled]:active,a.ant-typography.ant-typography-disabled:active,a.ant-typography[disabled]:active{pointer-events:none}.ant-typography code{background:hsla(0,0%,59%,.1);border:1px solid hsla(0,0%,39%,.2);border-radius:3px;font-size:85%;margin:0 .2em;padding:.2em .4em .1em}.ant-typography kbd{background:hsla(0,0%,59%,.06);border:solid hsla(0,0%,39%,.2);border-radius:3px;border-width:1px 1px 2px;font-size:90%;margin:0 .2em;padding:.15em .4em .1em}.ant-typography mark{background-color:#594214;padding:0}.ant-typography ins,.ant-typography u{-webkit-text-decoration-skip:ink;text-decoration:underline;text-decoration-skip-ink:auto}.ant-typography del,.ant-typography s{text-decoration:line-through}.ant-typography strong{font-weight:600}.ant-typography-copy,.ant-typography-edit,.ant-typography-expand{color:#177ddc;cursor:pointer;margin-left:4px;outline:none;text-decoration:none;transition:color .3s}.ant-typography-copy:focus,.ant-typography-copy:hover,.ant-typography-edit:focus,.ant-typography-edit:hover,.ant-typography-expand:focus,.ant-typography-expand:hover{color:#165996}.ant-typography-copy:active,.ant-typography-edit:active,.ant-typography-expand:active{color:#388ed3}.ant-typography-copy-success,.ant-typography-copy-success:focus,.ant-typography-copy-success:hover{color:#49aa19}.ant-typography-edit-content{position:relative}div.ant-typography-edit-content{left:-12px;margin-bottom:calc(1em - 5px);margin-top:-5px}.ant-typography-edit-content-confirm{bottom:8px;color:hsla(0,0%,100%,.45);pointer-events:none;position:absolute;right:10px}.ant-typography-edit-content textarea{-moz-transition:none}.ant-typography ol,.ant-typography ul{margin:0 0 1em;padding:0}.ant-typography ol li,.ant-typography ul li{margin:0 0 0 20px;padding:0 0 0 4px}.ant-typography ul{list-style-type:circle}.ant-typography ul ul{list-style-type:disc}.ant-typography ol{list-style-type:decimal}.ant-typography blockquote,.ant-typography pre{margin:1em 0}.ant-typography pre{word-wrap:break-word;background:hsla(0,0%,59%,.1);border:1px solid hsla(0,0%,39%,.2);border-radius:3px;padding:.4em .6em;white-space:pre-wrap}.ant-typography pre code{background:transparent;border:0;display:inline;font-family:inherit;font-size:inherit;margin:0;padding:0}.ant-typography blockquote{border-left:4px solid hsla(0,0%,39%,.2);opacity:.85;padding:0 0 0 .6em}.ant-typography-single-line{white-space:nowrap}.ant-typography-ellipsis-single-line{overflow:hidden;text-overflow:ellipsis}a.ant-typography-ellipsis-single-line,span.ant-typography-ellipsis-single-line{vertical-align:bottom}.ant-typography-ellipsis-multiple-line{-webkit-line-clamp:3; + /*! autoprefixer: ignore next */-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.ant-typography-rtl{direction:rtl}.ant-typography-rtl .ant-typography-copy,.ant-typography-rtl .ant-typography-edit,.ant-typography-rtl .ant-typography-expand{margin-left:0;margin-right:4px}.ant-typography-rtl .ant-typography-expand{float:left}div.ant-typography-edit-content.ant-typography-rtl{left:auto;right:-12px}.ant-typography-rtl .ant-typography-edit-content-confirm{left:10px;right:auto}.ant-typography-rtl.ant-typography ol li,.ant-typography-rtl.ant-typography ul li{margin:0 20px 0 0;padding:0 4px 0 0}.ant-upload{font-feature-settings:"tnum";box-sizing:border-box;color:hsla(0,0%,100%,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;outline:0;padding:0}.ant-upload p{margin:0}.ant-upload-btn{display:block;outline:none;width:100%}.ant-upload input[type=file]{cursor:pointer}.ant-upload.ant-upload-select{display:inline-block}.ant-upload.ant-upload-disabled{cursor:not-allowed}.ant-upload.ant-upload-select-picture-card{background-color:hsla(0,0%,100%,.04);border:1px dashed #434343;border-radius:2px;cursor:pointer;height:104px;margin-bottom:8px;margin-right:8px;text-align:center;transition:border-color .3s;vertical-align:top;width:104px}.ant-upload.ant-upload-select-picture-card>.ant-upload{align-items:center;display:flex;height:100%;justify-content:center;text-align:center}.ant-upload.ant-upload-select-picture-card:hover{border-color:#177ddc}.ant-upload-disabled.ant-upload.ant-upload-select-picture-card:hover{border-color:#434343}.ant-upload.ant-upload-drag{background:hsla(0,0%,100%,.04);border:1px dashed #434343;border-radius:2px;cursor:pointer;height:100%;position:relative;text-align:center;transition:border-color .3s;width:100%}.ant-upload.ant-upload-drag .ant-upload{padding:16px 0}.ant-upload.ant-upload-drag.ant-upload-drag-hover:not(.ant-upload-disabled){border-color:#388ed3}.ant-upload.ant-upload-drag.ant-upload-disabled{cursor:not-allowed}.ant-upload.ant-upload-drag .ant-upload-btn{display:table;height:100%}.ant-upload.ant-upload-drag .ant-upload-drag-container{display:table-cell;vertical-align:middle}.ant-upload.ant-upload-drag:not(.ant-upload-disabled):hover{border-color:#165996}.ant-upload.ant-upload-drag p.ant-upload-drag-icon{margin-bottom:20px}.ant-upload.ant-upload-drag p.ant-upload-drag-icon .anticon{color:#165996;font-size:48px}.ant-upload.ant-upload-drag p.ant-upload-text{color:hsla(0,0%,100%,.85);font-size:16px;margin:0 0 4px}.ant-upload.ant-upload-drag p.ant-upload-hint{color:hsla(0,0%,100%,.45);font-size:14px}.ant-upload.ant-upload-drag .anticon-plus{color:hsla(0,0%,100%,.3);font-size:30px;transition:all .3s}.ant-upload.ant-upload-drag .anticon-plus:hover,.ant-upload.ant-upload-drag:hover .anticon-plus{color:hsla(0,0%,100%,.45)}.ant-upload-picture-card-wrapper{display:inline-block;width:100%}.ant-upload-picture-card-wrapper:before{content:"";display:table}.ant-upload-picture-card-wrapper:after{clear:both;content:"";display:table}.ant-upload-list{font-feature-settings:"tnum";box-sizing:border-box;color:hsla(0,0%,100%,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0}.ant-upload-list:after,.ant-upload-list:before{content:"";display:table}.ant-upload-list:after{clear:both}.ant-upload-list-item{font-size:14px;height:22.001px;margin-top:8px;position:relative}.ant-upload-list-item-name{display:inline-block;line-height:1.5715;overflow:hidden;padding-left:22px;text-overflow:ellipsis;white-space:nowrap;width:100%}.ant-upload-list-item-card-actions{position:absolute;right:0}.ant-upload-list-item-card-actions-btn{opacity:0}.ant-upload-list-item-card-actions-btn.ant-btn-sm{height:20px;line-height:1}.ant-upload-list-item-card-actions.picture{line-height:0;top:22px}.ant-upload-list-item-card-actions-btn:focus,.ant-upload-list-item-card-actions.picture .ant-upload-list-item-card-actions-btn{opacity:1}.ant-upload-list-item-card-actions .anticon{color:hsla(0,0%,100%,.45)}.ant-upload-list-item-info{height:100%;padding:0 4px;transition:background-color .3s}.ant-upload-list-item-info>span{display:block;height:100%;width:100%}.ant-upload-list-item-info .ant-upload-text-icon .anticon,.ant-upload-list-item-info .anticon-loading .anticon{color:hsla(0,0%,100%,.45);font-size:14px;position:absolute;top:5px}.ant-upload-list-item .anticon-close{color:hsla(0,0%,100%,.45);cursor:pointer;font-size:10px;line-height:0;opacity:0;position:absolute;right:4px;top:6px;transition:all .3s}.ant-upload-list-item .anticon-close:hover{color:hsla(0,0%,100%,.85)}.ant-upload-list-item:hover .ant-upload-list-item-info{background-color:hsla(0,0%,100%,.08)}.ant-upload-list-item:hover .ant-upload-list-item-card-actions-btn,.ant-upload-list-item:hover .anticon-close{opacity:1}.ant-upload-list-item-error,.ant-upload-list-item-error .ant-upload-list-item-card-actions .anticon,.ant-upload-list-item-error .ant-upload-list-item-name,.ant-upload-list-item-error .ant-upload-text-icon>.anticon{color:#a61d24}.ant-upload-list-item-error .ant-upload-list-item-card-actions-btn{opacity:1}.ant-upload-list-item-progress{bottom:-12px;font-size:14px;line-height:0;padding-left:26px;position:absolute;width:100%}.ant-upload-list-picture .ant-upload-list-item,.ant-upload-list-picture-card .ant-upload-list-item{border:1px solid #434343;border-radius:2px;height:66px;padding:8px;position:relative}.ant-upload-list-picture .ant-upload-list-item:hover,.ant-upload-list-picture-card .ant-upload-list-item:hover{background:transparent}.ant-upload-list-picture .ant-upload-list-item-error,.ant-upload-list-picture-card .ant-upload-list-item-error{border-color:#a61d24}.ant-upload-list-picture .ant-upload-list-item:hover .ant-upload-list-item-info,.ant-upload-list-picture-card .ant-upload-list-item:hover .ant-upload-list-item-info{background:transparent}.ant-upload-list-picture .ant-upload-list-item-uploading,.ant-upload-list-picture-card .ant-upload-list-item-uploading{border-style:dashed}.ant-upload-list-picture .ant-upload-list-item-thumbnail,.ant-upload-list-picture-card .ant-upload-list-item-thumbnail{height:48px;line-height:60px;opacity:.8;text-align:center;width:48px}.ant-upload-list-picture .ant-upload-list-item-thumbnail .anticon,.ant-upload-list-picture-card .ant-upload-list-item-thumbnail .anticon{font-size:26px}.ant-upload-list-picture .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill="#e6f7ff"],.ant-upload-list-picture-card .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill="#e6f7ff"]{fill:#2a1215}.ant-upload-list-picture .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill="#1890ff"],.ant-upload-list-picture-card .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill="#1890ff"]{fill:#a61d24}.ant-upload-list-picture .ant-upload-list-item-icon,.ant-upload-list-picture-card .ant-upload-list-item-icon{font-size:26px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.ant-upload-list-picture .ant-upload-list-item-icon .anticon,.ant-upload-list-picture-card .ant-upload-list-item-icon .anticon{font-size:26px}.ant-upload-list-picture .ant-upload-list-item-image,.ant-upload-list-picture-card .ant-upload-list-item-image{max-width:100%}.ant-upload-list-picture .ant-upload-list-item-thumbnail img,.ant-upload-list-picture-card .ant-upload-list-item-thumbnail img{display:block;height:48px;overflow:hidden;width:48px}.ant-upload-list-picture .ant-upload-list-item-name,.ant-upload-list-picture-card .ant-upload-list-item-name{box-sizing:border-box;display:inline-block;line-height:44px;margin:0 0 0 8px;max-width:100%;overflow:hidden;padding-left:48px;padding-right:8px;text-overflow:ellipsis;transition:all .3s;white-space:nowrap}.ant-upload-list-picture .ant-upload-list-item-uploading .ant-upload-list-item-name,.ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-name{margin-bottom:12px}.ant-upload-list-picture .ant-upload-list-item-progress,.ant-upload-list-picture-card .ant-upload-list-item-progress{bottom:14px;margin-top:0;padding-left:56px;width:calc(100% - 24px)}.ant-upload-list-picture .anticon-close,.ant-upload-list-picture-card .anticon-close{line-height:1;opacity:1;position:absolute;right:8px;top:8px}.ant-upload-list-picture-card-container{display:inline-block;height:104px;margin:0 8px 8px 0;vertical-align:top;width:104px}.ant-upload-list-picture-card.ant-upload-list:after{display:none}.ant-upload-list-picture-card .ant-upload-list-item{height:100%;margin:0}.ant-upload-list-picture-card .ant-upload-list-item-info{height:100%;overflow:hidden;position:relative}.ant-upload-list-picture-card .ant-upload-list-item-info:before{background-color:rgba(0,0,0,.5);content:" ";height:100%;opacity:0;position:absolute;transition:all .3s;width:100%;z-index:1}.ant-upload-list-picture-card .ant-upload-list-item:hover .ant-upload-list-item-info:before{opacity:1}.ant-upload-list-picture-card .ant-upload-list-item-actions{left:50%;opacity:0;position:absolute;top:50%;transform:translate(-50%,-50%);transition:all .3s;white-space:nowrap;z-index:10}.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-delete,.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-download,.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-eye{color:hsla(0,0%,100%,.85);cursor:pointer;font-size:16px;margin:0 4px;transition:all .3s;width:16px;z-index:10}.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-delete:hover,.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-download:hover,.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-eye:hover{color:#fff}.ant-upload-list-picture-card .ant-upload-list-item-actions:hover,.ant-upload-list-picture-card .ant-upload-list-item-info:hover+.ant-upload-list-item-actions{opacity:1}.ant-upload-list-picture-card .ant-upload-list-item-thumbnail,.ant-upload-list-picture-card .ant-upload-list-item-thumbnail img{display:block;height:100%;-o-object-fit:contain;object-fit:contain;position:static;width:100%}.ant-upload-list-picture-card .ant-upload-list-item-name{display:none;line-height:1.5715;margin:8px 0 0;padding:0;text-align:center}.ant-upload-list-picture-card .ant-upload-list-item-file+.ant-upload-list-item-name{bottom:10px;display:block;position:absolute}.ant-upload-list-picture-card .ant-upload-list-item-uploading.ant-upload-list-item{background-color:hsla(0,0%,100%,.04)}.ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-info{height:auto}.ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-info .anticon-delete,.ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-info .anticon-eye,.ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-info:before{display:none}.ant-upload-list-picture-card .ant-upload-list-item-progress{bottom:32px;padding-left:0;width:calc(100% - 14px)}.ant-upload-list-picture-container,.ant-upload-list-text-container{transition:opacity .3s,height .3s}.ant-upload-list-picture-container:before,.ant-upload-list-text-container:before{content:"";display:table;height:0;width:0}.ant-upload-list-picture-container .ant-upload-span,.ant-upload-list-text-container .ant-upload-span{display:block;flex:auto}.ant-upload-list-picture .ant-upload-span,.ant-upload-list-text .ant-upload-span{align-items:center;display:flex}.ant-upload-list-picture .ant-upload-span>*,.ant-upload-list-text .ant-upload-span>*{flex:none}.ant-upload-list-picture .ant-upload-list-item-name,.ant-upload-list-text .ant-upload-list-item-name{flex:auto;margin:0;padding:0 8px}.ant-upload-list-picture .ant-upload-list-item-card-actions,.ant-upload-list-text .ant-upload-list-item-card-actions,.ant-upload-list-text .ant-upload-text-icon .anticon{position:static}.ant-upload-list .ant-upload-animate-inline-appear,.ant-upload-list .ant-upload-animate-inline-enter,.ant-upload-list .ant-upload-animate-inline-leave{-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-fill-mode:cubic-bezier(.78,.14,.15,.86);animation-fill-mode:cubic-bezier(.78,.14,.15,.86)}.ant-upload-list .ant-upload-animate-inline-appear,.ant-upload-list .ant-upload-animate-inline-enter{-webkit-animation-name:uploadAnimateInlineIn;animation-name:uploadAnimateInlineIn}.ant-upload-list .ant-upload-animate-inline-leave{-webkit-animation-name:uploadAnimateInlineOut;animation-name:uploadAnimateInlineOut}@-webkit-keyframes uploadAnimateInlineIn{0%{height:0;margin:0;opacity:0;padding:0;width:0}}@keyframes uploadAnimateInlineIn{0%{height:0;margin:0;opacity:0;padding:0;width:0}}@-webkit-keyframes uploadAnimateInlineOut{to{height:0;margin:0;opacity:0;padding:0;width:0}}@keyframes uploadAnimateInlineOut{to{height:0;margin:0;opacity:0;padding:0;width:0}}.ant-upload-rtl{direction:rtl}.ant-upload-rtl.ant-upload.ant-upload-select-picture-card{margin-left:8px;margin-right:auto}.ant-upload-list-rtl{direction:rtl}.ant-upload-list-rtl .ant-upload-list-item-list-type-text:hover .ant-upload-list-item-name-icon-count-1{padding-left:14px;padding-right:22px}.ant-upload-list-rtl .ant-upload-list-item-list-type-text:hover .ant-upload-list-item-name-icon-count-2{padding-left:28px;padding-right:22px}.ant-upload-list-rtl .ant-upload-list-item-name{padding-left:0;padding-right:22px}.ant-upload-list-rtl .ant-upload-list-item-name-icon-count-1{padding-left:14px}.ant-upload-list-rtl .ant-upload-list-item-card-actions{left:0;right:auto}.ant-upload-list-rtl .ant-upload-list-item-card-actions .anticon{padding-left:5px;padding-right:0}.ant-upload-list-rtl .ant-upload-list-item-info{padding:0 4px 0 12px}.ant-upload-list-rtl .ant-upload-list-item .anticon-close{left:4px;right:auto}.ant-upload-list-rtl .ant-upload-list-item-error .ant-upload-list-item-card-actions .anticon{padding-left:5px;padding-right:0}.ant-upload-list-rtl .ant-upload-list-item-progress{padding-left:0;padding-right:26px}.ant-upload-list-picture .ant-upload-list-item-info,.ant-upload-list-picture-card .ant-upload-list-item-info{padding:0}.ant-upload-list-rtl.ant-upload-list-picture .ant-upload-list-item-thumbnail,.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-thumbnail{left:auto;right:8px}.ant-upload-list-rtl.ant-upload-list-picture .ant-upload-list-item-icon,.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-icon{left:auto;right:50%;transform:translate(50%,-50%)}.ant-upload-list-rtl.ant-upload-list-picture .ant-upload-list-item-name,.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-name{margin:0 8px 0 0;padding-left:8px;padding-right:48px}.ant-upload-list-rtl.ant-upload-list-picture .ant-upload-list-item-name-icon-count-1,.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-name-icon-count-1{padding-left:18px;padding-right:48px}.ant-upload-list-rtl.ant-upload-list-picture .ant-upload-list-item-name-icon-count-2,.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-name-icon-count-2{padding-left:36px;padding-right:48px}.ant-upload-list-rtl.ant-upload-list-picture .ant-upload-list-item-progress,.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-progress{padding-left:0;padding-right:0}.ant-upload-list-rtl.ant-upload-list-picture .anticon-close,.ant-upload-list-rtl.ant-upload-list-picture-card .anticon-close{left:8px;right:auto}.ant-upload-list-rtl .ant-upload-list-picture-card-container{margin:0 0 8px 8px}.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-actions{left:auto;right:50%;transform:translate(50%,-50%)}.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-file+.ant-upload-list-item-name{margin:8px 0 0;padding:0} +`;const xn=Symbol("state");function et(){return Zt(xn)}const j=en({lang:{default:"zh-CN",list:[]},theme_color:"#1890ff",layout:"headerSider",theme:"light",menu_theme:"dark",navigationMode:"sideTopMenuLayout",header_background:"#1b253d",sidebar:{color:"#1890ff",background:"#121929",width:200,collapsed:!1,visible:!0,menu_num:1},tabs:!0,tabTags:[],topMenuSelectKey:null,loading:!1,component:null,loginRoute:"/common/login",commonRoutePrefix:"common/",adminRoutePrefix:"",locale:{},menus:[],systemInfo:null,theme_css:{light:"",dark:""},errorData:"",isMobile:!1}),B={getSystemConfig(){return new Promise((t,n)=>{rt({url:"/ex-admin/system/config"}).then(a=>{Object.assign(j,a.data),B.changeTheme(j.theme),B.changeSiderMenuColor(j.sidebar.background),B.changeTopMenuColor(j.header_background),B.setSiderMenuNum(j.sidebar.menu_num),B.setCommonRoutePrefix(j.commonRoutePrefix),B.setAdminRoutePrefix(j.adminRoutePrefix),nt.addRoute({path:j.loginRoute,component:Et}),t(a)}).catch(a=>{n(a)})})},login(t){return new Promise((n,a)=>{rt({url:"/ex-admin/login/check",method:"post",data:{data:t}}).then(o=>{j.tabTags.forEach(e=>{delete z._context.components[e.url]}),j.tabTags=[],j.systemInfo=null,yt.set(o.data.token),n(o)}).catch(o=>{a(o)})})},systemInfo(){return new Promise((t,n)=>{rt({url:"/ex-admin/system/info"}).then(a=>{j.systemInfo=a.data,j.menus=a.data.menu,t(a)}).catch(a=>{n(a)})})},logout(t="/"){rt({url:"/ex-admin/login/logout"}).then(()=>{yt.clear(),nt.push(`${j.loginRoute}?redirect=${t}`)})},setCommonRoutePrefix(t){nt.removeRoute("common"),j.commonRoutePrefix=t,nt.addRoute("common",{path:"/"+t+":pathMatch(.*)",component:Et})},setAdminRoutePrefix(t){nt.removeRoute("admin"),j.adminRoutePrefix=t,nt.addRoute("admin",{path:"/"+t+":pathMatch(.*)",component:bn})},watchRouteMenu(t){let n;if(t==="/"?(n=Mt(j.menus),n&<(n.url)):n=ut(j.menus,"url",t.substr(1)),n)if(j.navigationMode=="topMenuLayout")this.selectTopMenu(n.id);else{let a=Ja(j.menus,n.pid);a?this.selectTopMenu(a.id):this.selectTopMenu(n.id)}},setMenu(t){j.menus=t},switchTabs(t){j.tabs=t},changeTheme(t){j.theme=t,document.getElementsByTagName("HTML")[0].className=t+"-theme";let n;t=="light"?n=re:n=ie,wt(n,"theme")},changeSiderMenuColor(t){const n=`:root {--sider-menu-color:${t};}`;wt(n,"sider-menu")},openErrorPage(t){j.errorData=t},changeTopMenuColor(t){const n=`:root {--header-menu-color:${t};}`;wt(n,"top-menu")},setSiderMenuNum(t){const a=`:root {--sider-menu-width:${Math.trunc(100/t)}%;}`;wt(a,"sider-num")},setSiderMenuSelectedColor(t){const n=te(t),a=`:root {--sider-menu-selected-color1:${t};--sider-menu-selected-color2:rgba(${n.r},${n.g},${n.b},.7);}`;wt(a,"sider-menu-selected")},collapsed(t){j.sidebar.collapsed=t,j.isMobile&&this.sidebarVisible(!t)},sidebarVisible(t){j.isMobile&&j.sidebar.collapsed?j.sidebar.visible=!1:j.sidebar.visible=t},device(t){j.isMobile=t},selectTopMenu(t){j.topMenuSelectKey=t},loadComponent(t,n=!1){return new Promise((a,o)=>{j.component=null;const e=Ot(j.tabTags,"url",t);n&&j.tabTags.splice(e,1),e===-1||n?(delete z._context.components[t],n&&(j.loading=!0),rt({url:t}).then(r=>{const i=ut(j.menus,"url",t.substr(1));i&&j.tabs?j.tabTags.push({name:i.name,url:t,component:r}):j.component=r,a(r)}).catch(r=>{a(r)}).finally(()=>{j.loading=!1})):a()})}};const le={name:"errorPage"},se=Object.assign(le,{setup(t){const n=et(),a=at(!1),o=at();return ot(()=>n.errorData,e=>{const r=o.value.contentDocument||o.value.contentWindow.document;r.open(),r.write(e),r.close(),a.value=!0}),(e,r)=>{const i=v("a-modal");return h(),L(i,{visible:a.value,"onUpdate:visible":r[0]||(r[0]=d=>a.value=d),forceRender:"",footer:null,"wrap-class-name":"error-full-modal",width:"100%"},{default:u(()=>[$("iframe",{ref_key:"iframe",ref:o,width:"100%",height:"100%",frameborder:"0",scrolling:"auto"},null,512)]),_:1},8,["visible"])}}}),Kt=function(){const t=document.body.getBoundingClientRect().width-1<992;B.device(t)};function pe(){Kt(),Vn("resize",Kt)}const ce={setup(t){const n=et();return pe(),(a,o)=>{const e=v("router-view"),r=v("a-config-provider");return h(),D(H,null,[m(r,{locale:l(n).locale},{default:u(()=>[m(e)]),_:1},8,["locale"]),m(se)],64)}}},de=Nn(ce);window.Vue=On;window.Vueuse=Hn;var z=de;const me="modulepreload",Jt={},ue="/exadmin/",V=function(n,a){return!a||a.length===0?n():Promise.all(a.map(o=>{if(o=`${ue}${o}`,o in Jt)return;Jt[o]=!0;const e=o.endsWith(".css"),r=e?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${o}"]${r}`))return;const i=document.createElement("link");if(i.rel=e?"stylesheet":me,e||(i.as="script",i.crossOrigin=""),i.href=o,document.head.appendChild(i),e)return new Promise((d,x)=>{i.addEventListener("load",d),i.addEventListener("error",x)})})).then(()=>n())};const be={class:"hasMany"},ge={key:1},fe={key:1},he={key:0,style:{"margin-top":"5px"}},xe={key:2},we={name:"ExFormMany"},ke=Object.assign(we,{props:{value:{type:Array,default:[]},limit:{type:Number,default:0},defaultRow:Number,disabled:Boolean,drag:Boolean,itemData:Object,table:Boolean,field:String,sortField:String,title:String,columns:Array,recursion:{type:Array,default:[]},enterAdd:Boolean},emits:["update:value"],setup(t,{expose:n,emit:a}){const o=t,e=at(-1),r=at();if(o.defaultRow&&o.value.length===0)for(let O=0;O(O.ex_admin_id=T+1,O));let d=null;o.drag&&Tn(()=>{let O;o.table?O=r.value.table.$el.querySelectorAll(".ant-table-content > table > tbody")[0]:O=r.value,d=Jn.create(O,{animation:1e3,handle:".sortHandel",onEnd:T=>{var s=T.newIndex-1,k=T.oldIndex-1;const b=i.value.splice(k,1)[0];i.value.splice(s,0,b)}})}),At(O=>{d&&d.destroy()});function x(O,T){!o.disabled&&o.enterAdd&&T&&O===i.value.length-1&&w()}function w(){const O=tt({},o.itemData);O.ex_admin_id=i.value.length+1,o.sortField&&(O[o.sortField]=i.value.length),i.value.push(O)}function p(O){i.value.splice(O,1),Z()}function y(){i.value.splice(0)}function X(O,T){return{onMouseenter:s=>{e.value=T},onMouseleave:s=>{e.value=-1}}}function _(O,T){Vt(O,T),Z()}function Y(O,T){Ht(O,T),Z()}function Z(){o.sortField&&i.value.forEach((O,T)=>{O[o.sortField]=T})}return n({add:w,clear:y}),(O,T)=>{const s=v("a-divider"),k=v("render"),b=v("caret-up-filled"),I=v("caret-down-filled"),c=v("close-circle-filled"),f=v("a-space"),g=v("drag-outlined"),E=v("a-tooltip"),A=v("a-table"),M=v("a-button"),P=v("a-form-item");return h(),D("div",be,[t.title?(h(),L(s,{key:0,orientation:"left"},{default:u(()=>[F(C(t.title),1)]),_:1})):N("",!0),t.table?(h(),D("div",ge,[m(A,{"row-key":"ex_admin_id",ref_key:"dragRef",ref:r,scroll:{x:"max-content"},"data-source":l(i),bordered:"",columns:t.columns,size:"small",class:"table",pagination:!1,"custom-row":X},{headerCell:u(({column:R})=>[m(k,{data:R.header},null,8,["data"])]),bodyCell:u(({column:R,record:U,text:W,index:Q})=>[R.type=="action"?(h(),L(f,{key:0},{default:u(()=>[t.disabled?N("",!0):(h(),D(H,{key:0},[e.value==Q&&l(i).length>1&&Q>0?(h(),L(b,{key:0,onClick:mt=>l(Vt)(l(i),Q)},{default:u(()=>[F(C(l(S)("FormMany.up")),1)]),_:2},1032,["onClick"])):N("",!0),e.value==Q&&l(i).length>1&&Ql(Ht)(l(i),Q)},{default:u(()=>[F(C(l(S)("FormMany.down")),1)]),_:2},1032,["onClick"])):N("",!0),e.value==Q&&l(i).length>0?(h(),L(c,{key:2,style:{color:"red"},type:"dashed",onClick:mt=>p(Q)},{default:u(()=>[F(C(l(S)("FormMany.remove")),1)]),_:2},1032,["onClick"])):N("",!0)],64))]),_:2},1024)):R.type=="sortDrag"?(h(),D("div",fe,[m(E,{placement:"right",title:l(S)("Grid.sortDrag")},{default:u(()=>[m(g,{class:"sortHandel","data-field":R.dataIndex,style:{"font-weight":"bold",cursor:"grab"}},null,8,["data-field"])]),_:2},1032,["title"])])):(h(),L(k,{key:2,scopeProp:{$index:Q,field:t.field,row:U,recursion:t.recursion},data:R.component,onKeyup:on(()=>x(Q,R.enterAdd),["enter"])},null,8,["scopeProp","data","onKeyup"]))]),_:1},8,["data-source","columns"]),t.disabled?N("",!0):(h(),D("div",he,[t.limit==0||t.limit>l(i).length?(h(),L(M,{key:0,size:"small",type:"dashed",onClick:w},{default:u(()=>[F(C(l(S)("FormMany.add")),1)]),_:1})):N("",!0),t.limit==0||t.limit>l(i).length?(h(),L(M,{key:1,size:"small",type:"danger",onClick:y},{default:u(()=>[F(C(l(S)("FormMany.clear")),1)]),_:1})):N("",!0)]))])):(h(),D("div",xe,[$("div",{ref_key:"dragRef",ref:r},[(h(!0),D(H,null,it(l(i),(R,U)=>(h(),D("div",{key:R.ex_admin_id},[Un(O.$slots,"default",{$index:U,field:t.field,row:R,recursion:t.recursion},void 0,!0),t.disabled?N("",!0):(h(),L(P,{key:0,label:" ",colon:!1},{default:u(()=>[l(i).length-1==U&&(t.limit==0||t.limit>l(i).length)?(h(),L(M,{key:0,size:"small",type:"dashed",onClick:w},{default:u(()=>[F(C(l(S)("FormMany.add")),1)]),_:1})):N("",!0),ct(m(M,{size:"small",type:"dashed",onClick:W=>p(U)},{default:u(()=>[F(C(l(S)("FormMany.remove")),1)]),_:2},1032,["onClick"]),[[gt,l(i).length>0]]),ct(m(M,{size:"small",onClick:W=>_(l(i),U)},{default:u(()=>[F(C(l(S)("FormMany.up")),1)]),_:2},1032,["onClick"]),[[gt,l(i).length>1&&U>0]]),ct(m(M,{size:"small",onClick:W=>Y(l(i),U)},{default:u(()=>[F(C(l(S)("FormMany.down")),1)]),_:2},1032,["onClick"]),[[gt,l(i).length>1&&Ul(i).length)?(h(),L(M,{key:1,size:"small",type:"dashed",onClick:y},{default:u(()=>[F(C(l(S)("FormMany.clear")),1)]),_:1})):N("",!0)]),_:2},1024)),m(s)]))),128))],512),l(i).length==0&&!t.disabled?(h(),L(P,{key:0,label:" ",colon:!1},{default:u(()=>[m(M,{size:"small",type:"dashed",onClick:w},{default:u(()=>[F(C(l(S)("FormMany.add")),1)]),_:1})]),_:1})):N("",!0)]))])}}});var ve=st(ke,[["__scopeId","data-v-5617eef3"]]);z.component("render",vt);const ye=q(()=>V(()=>import("./grid.c3e66c00.js"),["assets/grid.c3e66c00.js","assets/grid.72bf2236.css","assets/@fortawesome.fe0e4c2f.css","assets/vue.db505ee4.js","assets/@babel.6cd0804c.js","assets/regenerator-runtime.8e24db72.js","assets/@vue.cb43a243.js","assets/lodash.c9cf1bdb.js","assets/@vueuse.952f4739.js","assets/vue-demi.5fb18120.js","assets/sortablejs.412b554c.js","assets/use-http.ec808253.js","assets/ant-design-vue.6b10f349.js","assets/@ant-design.bcfb08ae.js","assets/@ctrl.fa7cbd46.js","assets/resize-observer-polyfill.8deb1e21.js","assets/vue-types.6e6d84ba.js","assets/dom-align.f1b5d360.js","assets/lodash-es.0ea26897.js","assets/dayjs.38e390ea.js","assets/async-validator.5d25c98b.js","assets/scroll-into-view-if-needed.5191fdbf.js","assets/compute-scroll-into-view.6058b3be.js","assets/js-md5.5179c6be.js","assets/vue-router.a08742b9.js","assets/js-cookie.31874410.js","assets/spark-md5.2cc5764b.js","assets/axios.e3200588.js","assets/clipboard.099d05c9.js","assets/markdown-it.80c3a67b.js","assets/entities.0d2c0164.js","assets/uc.micro.981ceb7b.js","assets/mdurl.ef76b4dc.js","assets/linkify-it.92c30060.js","assets/markdown-it-emoji.e3e91710.js","assets/escape-html.e5dfadb9.js","assets/prismjs.c97a8414.js","assets/diacritics.6be19c75.js","assets/markdown-it-container.512a5043.js","assets/markdown-it-anchor.c88e5394.js","assets/markdown-it-attrs.3af5ab50.js","assets/markdown-it-table-of-contents.8a4ce16f.js","assets/@kangc.86f7507c.js","assets/@kangc.1dc16e06.css"])),ze=q(()=>V(()=>import("./sidebar.da9c6767.js"),["assets/sidebar.da9c6767.js","assets/sidebar.8f138590.css","assets/@fortawesome.fe0e4c2f.css","assets/vue.db505ee4.js","assets/@babel.6cd0804c.js","assets/regenerator-runtime.8e24db72.js","assets/@vue.cb43a243.js","assets/use-http.ec808253.js","assets/js-md5.5179c6be.js","assets/vue-router.a08742b9.js","assets/js-cookie.31874410.js","assets/ant-design-vue.6b10f349.js","assets/@ant-design.bcfb08ae.js","assets/@ctrl.fa7cbd46.js","assets/resize-observer-polyfill.8deb1e21.js","assets/vue-types.6e6d84ba.js","assets/dom-align.f1b5d360.js","assets/lodash-es.0ea26897.js","assets/dayjs.38e390ea.js","assets/async-validator.5d25c98b.js","assets/scroll-into-view-if-needed.5191fdbf.js","assets/compute-scroll-into-view.6058b3be.js","assets/lodash.c9cf1bdb.js","assets/spark-md5.2cc5764b.js","assets/@vueuse.952f4739.js","assets/vue-demi.5fb18120.js","assets/axios.e3200588.js","assets/sortablejs.412b554c.js","assets/clipboard.099d05c9.js","assets/markdown-it.80c3a67b.js","assets/entities.0d2c0164.js","assets/uc.micro.981ceb7b.js","assets/mdurl.ef76b4dc.js","assets/linkify-it.92c30060.js","assets/markdown-it-emoji.e3e91710.js","assets/escape-html.e5dfadb9.js","assets/prismjs.c97a8414.js","assets/diacritics.6be19c75.js","assets/markdown-it-container.512a5043.js","assets/markdown-it-anchor.c88e5394.js","assets/markdown-it-attrs.3af5ab50.js","assets/markdown-it-table-of-contents.8a4ce16f.js","assets/@kangc.86f7507c.js","assets/@kangc.1dc16e06.css"])),_e=q(()=>V(()=>import("./form.ed3f1d04.js"),["assets/form.ed3f1d04.js","assets/form.2a54c7c4.css","assets/@fortawesome.fe0e4c2f.css","assets/vue.db505ee4.js","assets/@babel.6cd0804c.js","assets/regenerator-runtime.8e24db72.js","assets/@vue.cb43a243.js","assets/lodash.c9cf1bdb.js","assets/use-http.ec808253.js","assets/context.6c9ae94a.js","assets/@vueuse.952f4739.js","assets/vue-demi.5fb18120.js","assets/js-md5.5179c6be.js","assets/vue-router.a08742b9.js","assets/js-cookie.31874410.js","assets/ant-design-vue.6b10f349.js","assets/@ant-design.bcfb08ae.js","assets/@ctrl.fa7cbd46.js","assets/resize-observer-polyfill.8deb1e21.js","assets/vue-types.6e6d84ba.js","assets/dom-align.f1b5d360.js","assets/lodash-es.0ea26897.js","assets/dayjs.38e390ea.js","assets/async-validator.5d25c98b.js","assets/scroll-into-view-if-needed.5191fdbf.js","assets/compute-scroll-into-view.6058b3be.js","assets/spark-md5.2cc5764b.js","assets/axios.e3200588.js","assets/sortablejs.412b554c.js","assets/clipboard.099d05c9.js","assets/markdown-it.80c3a67b.js","assets/entities.0d2c0164.js","assets/uc.micro.981ceb7b.js","assets/mdurl.ef76b4dc.js","assets/linkify-it.92c30060.js","assets/markdown-it-emoji.e3e91710.js","assets/escape-html.e5dfadb9.js","assets/prismjs.c97a8414.js","assets/diacritics.6be19c75.js","assets/markdown-it-container.512a5043.js","assets/markdown-it-anchor.c88e5394.js","assets/markdown-it-attrs.3af5ab50.js","assets/markdown-it-table-of-contents.8a4ce16f.js","assets/@kangc.86f7507c.js","assets/@kangc.1dc16e06.css"])),Ie=q(()=>V(()=>import("./upload.e8f0332b.js"),["assets/upload.e8f0332b.js","assets/upload.6e19536d.css","assets/@fortawesome.fe0e4c2f.css","assets/vue.db505ee4.js","assets/@babel.6cd0804c.js","assets/regenerator-runtime.8e24db72.js","assets/@vue.cb43a243.js","assets/@vueuse.952f4739.js","assets/vue-demi.5fb18120.js","assets/sortablejs.412b554c.js","assets/uploader.b72f178f.js","assets/simple-uploader.js.04c42387.js","assets/ali-oss.ce3a624c.js","assets/qiniu-js.8b174ca3.js","assets/spark-md5.2cc5764b.js","assets/querystring.62f12500.js","assets/ant-design-vue.6b10f349.js","assets/@ant-design.bcfb08ae.js","assets/@ctrl.fa7cbd46.js","assets/resize-observer-polyfill.8deb1e21.js","assets/vue-types.6e6d84ba.js","assets/dom-align.f1b5d360.js","assets/lodash-es.0ea26897.js","assets/dayjs.38e390ea.js","assets/async-validator.5d25c98b.js","assets/scroll-into-view-if-needed.5191fdbf.js","assets/compute-scroll-into-view.6058b3be.js","assets/js-md5.5179c6be.js","assets/vue-router.a08742b9.js","assets/js-cookie.31874410.js","assets/lodash.c9cf1bdb.js","assets/axios.e3200588.js","assets/clipboard.099d05c9.js","assets/markdown-it.80c3a67b.js","assets/entities.0d2c0164.js","assets/uc.micro.981ceb7b.js","assets/mdurl.ef76b4dc.js","assets/linkify-it.92c30060.js","assets/markdown-it-emoji.e3e91710.js","assets/escape-html.e5dfadb9.js","assets/prismjs.c97a8414.js","assets/diacritics.6be19c75.js","assets/markdown-it-container.512a5043.js","assets/markdown-it-anchor.c88e5394.js","assets/markdown-it-attrs.3af5ab50.js","assets/markdown-it-table-of-contents.8a4ce16f.js","assets/@kangc.86f7507c.js","assets/@kangc.1dc16e06.css"])),Se=q(()=>V(()=>import("./tinymce.734381d8.js"),["assets/tinymce.734381d8.js","assets/tinymce.850c126b.css","assets/@fortawesome.fe0e4c2f.css","assets/tinymce.140b5d43.js","assets/@babel.6cd0804c.js","assets/regenerator-runtime.8e24db72.js","assets/@tinymce.24a850ec.js","assets/vue.db505ee4.js","assets/@vue.cb43a243.js","assets/uploader.b72f178f.js","assets/simple-uploader.js.04c42387.js","assets/ali-oss.ce3a624c.js","assets/qiniu-js.8b174ca3.js","assets/spark-md5.2cc5764b.js","assets/querystring.62f12500.js","assets/ant-design-vue.6b10f349.js","assets/@ant-design.bcfb08ae.js","assets/@ctrl.fa7cbd46.js","assets/resize-observer-polyfill.8deb1e21.js","assets/vue-types.6e6d84ba.js","assets/dom-align.f1b5d360.js","assets/lodash-es.0ea26897.js","assets/dayjs.38e390ea.js","assets/async-validator.5d25c98b.js","assets/scroll-into-view-if-needed.5191fdbf.js","assets/compute-scroll-into-view.6058b3be.js","assets/@vueuse.952f4739.js","assets/vue-demi.5fb18120.js","assets/js-md5.5179c6be.js","assets/vue-router.a08742b9.js","assets/js-cookie.31874410.js","assets/lodash.c9cf1bdb.js","assets/axios.e3200588.js","assets/sortablejs.412b554c.js","assets/clipboard.099d05c9.js","assets/markdown-it.80c3a67b.js","assets/entities.0d2c0164.js","assets/uc.micro.981ceb7b.js","assets/mdurl.ef76b4dc.js","assets/linkify-it.92c30060.js","assets/markdown-it-emoji.e3e91710.js","assets/escape-html.e5dfadb9.js","assets/prismjs.c97a8414.js","assets/diacritics.6be19c75.js","assets/markdown-it-container.512a5043.js","assets/markdown-it-anchor.c88e5394.js","assets/markdown-it-attrs.3af5ab50.js","assets/markdown-it-table-of-contents.8a4ce16f.js","assets/@kangc.86f7507c.js","assets/@kangc.1dc16e06.css"])),Oe=q(()=>V(()=>import("./icon.f0cf1419.js"),["assets/icon.f0cf1419.js","assets/vue.db505ee4.js","assets/@babel.6cd0804c.js","assets/regenerator-runtime.8e24db72.js","assets/@vue.cb43a243.js"])),Me=q(()=>V(()=>import("./selectIcon.7cb44740.js"),["assets/selectIcon.7cb44740.js","assets/selectIcon.fecf68db.css","assets/@fortawesome.fe0e4c2f.css","assets/vue.db505ee4.js","assets/@babel.6cd0804c.js","assets/regenerator-runtime.8e24db72.js","assets/@vue.cb43a243.js","assets/@ant-design.bcfb08ae.js","assets/@ctrl.fa7cbd46.js","assets/js-md5.5179c6be.js","assets/vue-router.a08742b9.js","assets/js-cookie.31874410.js","assets/ant-design-vue.6b10f349.js","assets/resize-observer-polyfill.8deb1e21.js","assets/vue-types.6e6d84ba.js","assets/dom-align.f1b5d360.js","assets/lodash-es.0ea26897.js","assets/dayjs.38e390ea.js","assets/async-validator.5d25c98b.js","assets/scroll-into-view-if-needed.5191fdbf.js","assets/compute-scroll-into-view.6058b3be.js","assets/lodash.c9cf1bdb.js","assets/spark-md5.2cc5764b.js","assets/@vueuse.952f4739.js","assets/vue-demi.5fb18120.js","assets/axios.e3200588.js","assets/sortablejs.412b554c.js","assets/clipboard.099d05c9.js","assets/markdown-it.80c3a67b.js","assets/entities.0d2c0164.js","assets/uc.micro.981ceb7b.js","assets/mdurl.ef76b4dc.js","assets/linkify-it.92c30060.js","assets/markdown-it-emoji.e3e91710.js","assets/escape-html.e5dfadb9.js","assets/prismjs.c97a8414.js","assets/diacritics.6be19c75.js","assets/markdown-it-container.512a5043.js","assets/markdown-it-anchor.c88e5394.js","assets/markdown-it-attrs.3af5ab50.js","assets/markdown-it-table-of-contents.8a4ce16f.js","assets/@kangc.86f7507c.js","assets/@kangc.1dc16e06.css"])),je=q(()=>V(()=>import("./video.3a3126dc.js"),["assets/video.3a3126dc.js","assets/@fortawesome.fe0e4c2f.css","assets/vue.db505ee4.js","assets/@babel.6cd0804c.js","assets/regenerator-runtime.8e24db72.js","assets/@vue.cb43a243.js","assets/xgplayer.51331964.js","assets/js-md5.5179c6be.js","assets/vue-router.a08742b9.js","assets/js-cookie.31874410.js","assets/ant-design-vue.6b10f349.js","assets/@ant-design.bcfb08ae.js","assets/@ctrl.fa7cbd46.js","assets/resize-observer-polyfill.8deb1e21.js","assets/vue-types.6e6d84ba.js","assets/dom-align.f1b5d360.js","assets/lodash-es.0ea26897.js","assets/dayjs.38e390ea.js","assets/async-validator.5d25c98b.js","assets/scroll-into-view-if-needed.5191fdbf.js","assets/compute-scroll-into-view.6058b3be.js","assets/lodash.c9cf1bdb.js","assets/spark-md5.2cc5764b.js","assets/@vueuse.952f4739.js","assets/vue-demi.5fb18120.js","assets/axios.e3200588.js","assets/sortablejs.412b554c.js","assets/clipboard.099d05c9.js","assets/markdown-it.80c3a67b.js","assets/entities.0d2c0164.js","assets/uc.micro.981ceb7b.js","assets/mdurl.ef76b4dc.js","assets/linkify-it.92c30060.js","assets/markdown-it-emoji.e3e91710.js","assets/escape-html.e5dfadb9.js","assets/prismjs.c97a8414.js","assets/diacritics.6be19c75.js","assets/markdown-it-container.512a5043.js","assets/markdown-it-anchor.c88e5394.js","assets/markdown-it-attrs.3af5ab50.js","assets/markdown-it-table-of-contents.8a4ce16f.js","assets/@kangc.86f7507c.js","assets/@kangc.1dc16e06.css"])),Re=q(()=>V(()=>import("./downloadFile.1bd3bd71.js"),["assets/downloadFile.1bd3bd71.js","assets/@fortawesome.fe0e4c2f.css","assets/vue.db505ee4.js","assets/@babel.6cd0804c.js","assets/regenerator-runtime.8e24db72.js","assets/@vue.cb43a243.js","assets/js-md5.5179c6be.js","assets/vue-router.a08742b9.js","assets/js-cookie.31874410.js","assets/ant-design-vue.6b10f349.js","assets/@ant-design.bcfb08ae.js","assets/@ctrl.fa7cbd46.js","assets/resize-observer-polyfill.8deb1e21.js","assets/vue-types.6e6d84ba.js","assets/dom-align.f1b5d360.js","assets/lodash-es.0ea26897.js","assets/dayjs.38e390ea.js","assets/async-validator.5d25c98b.js","assets/scroll-into-view-if-needed.5191fdbf.js","assets/compute-scroll-into-view.6058b3be.js","assets/lodash.c9cf1bdb.js","assets/spark-md5.2cc5764b.js","assets/@vueuse.952f4739.js","assets/vue-demi.5fb18120.js","assets/axios.e3200588.js","assets/sortablejs.412b554c.js","assets/clipboard.099d05c9.js","assets/markdown-it.80c3a67b.js","assets/entities.0d2c0164.js","assets/uc.micro.981ceb7b.js","assets/mdurl.ef76b4dc.js","assets/linkify-it.92c30060.js","assets/markdown-it-emoji.e3e91710.js","assets/escape-html.e5dfadb9.js","assets/prismjs.c97a8414.js","assets/diacritics.6be19c75.js","assets/markdown-it-container.512a5043.js","assets/markdown-it-anchor.c88e5394.js","assets/markdown-it-attrs.3af5ab50.js","assets/markdown-it-table-of-contents.8a4ce16f.js","assets/@kangc.86f7507c.js","assets/@kangc.1dc16e06.css"])),Le=q(()=>V(()=>import("./selectTable.0026a80b.js"),["assets/selectTable.0026a80b.js","assets/selectTable.3743dfd0.css","assets/@fortawesome.fe0e4c2f.css","assets/context.6c9ae94a.js","assets/vue.db505ee4.js","assets/@babel.6cd0804c.js","assets/regenerator-runtime.8e24db72.js","assets/@vue.cb43a243.js","assets/use-http.ec808253.js","assets/js-md5.5179c6be.js","assets/vue-router.a08742b9.js","assets/js-cookie.31874410.js","assets/ant-design-vue.6b10f349.js","assets/@ant-design.bcfb08ae.js","assets/@ctrl.fa7cbd46.js","assets/resize-observer-polyfill.8deb1e21.js","assets/vue-types.6e6d84ba.js","assets/dom-align.f1b5d360.js","assets/lodash-es.0ea26897.js","assets/dayjs.38e390ea.js","assets/async-validator.5d25c98b.js","assets/scroll-into-view-if-needed.5191fdbf.js","assets/compute-scroll-into-view.6058b3be.js","assets/lodash.c9cf1bdb.js","assets/spark-md5.2cc5764b.js","assets/@vueuse.952f4739.js","assets/vue-demi.5fb18120.js","assets/axios.e3200588.js","assets/sortablejs.412b554c.js","assets/clipboard.099d05c9.js","assets/markdown-it.80c3a67b.js","assets/entities.0d2c0164.js","assets/uc.micro.981ceb7b.js","assets/mdurl.ef76b4dc.js","assets/linkify-it.92c30060.js","assets/markdown-it-emoji.e3e91710.js","assets/escape-html.e5dfadb9.js","assets/prismjs.c97a8414.js","assets/diacritics.6be19c75.js","assets/markdown-it-container.512a5043.js","assets/markdown-it-anchor.c88e5394.js","assets/markdown-it-attrs.3af5ab50.js","assets/markdown-it-table-of-contents.8a4ce16f.js","assets/@kangc.86f7507c.js","assets/@kangc.1dc16e06.css"])),Ee=q(()=>V(()=>import("./colorPicker.f408c0ec.js"),["assets/colorPicker.f408c0ec.js","assets/colorPicker.eaaf7f9c.css","assets/@fortawesome.fe0e4c2f.css","assets/vue.db505ee4.js","assets/@babel.6cd0804c.js","assets/regenerator-runtime.8e24db72.js","assets/@vue.cb43a243.js","assets/a-color-picker.7e391635.js","assets/js-md5.5179c6be.js","assets/vue-router.a08742b9.js","assets/js-cookie.31874410.js","assets/ant-design-vue.6b10f349.js","assets/@ant-design.bcfb08ae.js","assets/@ctrl.fa7cbd46.js","assets/resize-observer-polyfill.8deb1e21.js","assets/vue-types.6e6d84ba.js","assets/dom-align.f1b5d360.js","assets/lodash-es.0ea26897.js","assets/dayjs.38e390ea.js","assets/async-validator.5d25c98b.js","assets/scroll-into-view-if-needed.5191fdbf.js","assets/compute-scroll-into-view.6058b3be.js","assets/lodash.c9cf1bdb.js","assets/spark-md5.2cc5764b.js","assets/@vueuse.952f4739.js","assets/vue-demi.5fb18120.js","assets/axios.e3200588.js","assets/sortablejs.412b554c.js","assets/clipboard.099d05c9.js","assets/markdown-it.80c3a67b.js","assets/entities.0d2c0164.js","assets/uc.micro.981ceb7b.js","assets/mdurl.ef76b4dc.js","assets/linkify-it.92c30060.js","assets/markdown-it-emoji.e3e91710.js","assets/escape-html.e5dfadb9.js","assets/prismjs.c97a8414.js","assets/diacritics.6be19c75.js","assets/markdown-it-container.512a5043.js","assets/markdown-it-anchor.c88e5394.js","assets/markdown-it-attrs.3af5ab50.js","assets/markdown-it-table-of-contents.8a4ce16f.js","assets/@kangc.86f7507c.js","assets/@kangc.1dc16e06.css"])),Ce=q(()=>V(()=>import("./switch.4512364b.js"),["assets/switch.4512364b.js","assets/@fortawesome.fe0e4c2f.css","assets/use-http.ec808253.js","assets/vue.db505ee4.js","assets/@babel.6cd0804c.js","assets/regenerator-runtime.8e24db72.js","assets/@vue.cb43a243.js","assets/@vueuse.952f4739.js","assets/vue-demi.5fb18120.js","assets/js-md5.5179c6be.js","assets/vue-router.a08742b9.js","assets/js-cookie.31874410.js","assets/ant-design-vue.6b10f349.js","assets/@ant-design.bcfb08ae.js","assets/@ctrl.fa7cbd46.js","assets/resize-observer-polyfill.8deb1e21.js","assets/vue-types.6e6d84ba.js","assets/dom-align.f1b5d360.js","assets/lodash-es.0ea26897.js","assets/dayjs.38e390ea.js","assets/async-validator.5d25c98b.js","assets/scroll-into-view-if-needed.5191fdbf.js","assets/compute-scroll-into-view.6058b3be.js","assets/lodash.c9cf1bdb.js","assets/spark-md5.2cc5764b.js","assets/axios.e3200588.js","assets/sortablejs.412b554c.js","assets/clipboard.099d05c9.js","assets/markdown-it.80c3a67b.js","assets/entities.0d2c0164.js","assets/uc.micro.981ceb7b.js","assets/mdurl.ef76b4dc.js","assets/linkify-it.92c30060.js","assets/markdown-it-emoji.e3e91710.js","assets/escape-html.e5dfadb9.js","assets/prismjs.c97a8414.js","assets/diacritics.6be19c75.js","assets/markdown-it-container.512a5043.js","assets/markdown-it-anchor.c88e5394.js","assets/markdown-it-attrs.3af5ab50.js","assets/markdown-it-table-of-contents.8a4ce16f.js","assets/@kangc.86f7507c.js","assets/@kangc.1dc16e06.css"])),De=q(()=>V(()=>import("./asyncRender.909685d0.js"),["assets/asyncRender.909685d0.js","assets/@fortawesome.fe0e4c2f.css","assets/vue.db505ee4.js","assets/@babel.6cd0804c.js","assets/regenerator-runtime.8e24db72.js","assets/@vue.cb43a243.js","assets/js-md5.5179c6be.js","assets/vue-router.a08742b9.js","assets/js-cookie.31874410.js","assets/ant-design-vue.6b10f349.js","assets/@ant-design.bcfb08ae.js","assets/@ctrl.fa7cbd46.js","assets/resize-observer-polyfill.8deb1e21.js","assets/vue-types.6e6d84ba.js","assets/dom-align.f1b5d360.js","assets/lodash-es.0ea26897.js","assets/dayjs.38e390ea.js","assets/async-validator.5d25c98b.js","assets/scroll-into-view-if-needed.5191fdbf.js","assets/compute-scroll-into-view.6058b3be.js","assets/lodash.c9cf1bdb.js","assets/spark-md5.2cc5764b.js","assets/@vueuse.952f4739.js","assets/vue-demi.5fb18120.js","assets/axios.e3200588.js","assets/sortablejs.412b554c.js","assets/clipboard.099d05c9.js","assets/markdown-it.80c3a67b.js","assets/entities.0d2c0164.js","assets/uc.micro.981ceb7b.js","assets/mdurl.ef76b4dc.js","assets/linkify-it.92c30060.js","assets/markdown-it-emoji.e3e91710.js","assets/escape-html.e5dfadb9.js","assets/prismjs.c97a8414.js","assets/diacritics.6be19c75.js","assets/markdown-it-container.512a5043.js","assets/markdown-it-anchor.c88e5394.js","assets/markdown-it-attrs.3af5ab50.js","assets/markdown-it-table-of-contents.8a4ce16f.js","assets/@kangc.86f7507c.js","assets/@kangc.1dc16e06.css"])),Ze=q(()=>V(()=>import("./numberRange.355eb997.js"),["assets/numberRange.355eb997.js","assets/vue.db505ee4.js","assets/@babel.6cd0804c.js","assets/regenerator-runtime.8e24db72.js","assets/@vue.cb43a243.js"])),Ae=q(()=>V(()=>import("./echart.cf7709a7.js"),["assets/echart.cf7709a7.js","assets/@fortawesome.fe0e4c2f.css","assets/vue.db505ee4.js","assets/@babel.6cd0804c.js","assets/regenerator-runtime.8e24db72.js","assets/@vue.cb43a243.js","assets/echarts.c3fe9bb7.js","assets/tslib.60310f1a.js","assets/zrender.59ea4400.js","assets/js-md5.5179c6be.js","assets/vue-router.a08742b9.js","assets/js-cookie.31874410.js","assets/ant-design-vue.6b10f349.js","assets/@ant-design.bcfb08ae.js","assets/@ctrl.fa7cbd46.js","assets/resize-observer-polyfill.8deb1e21.js","assets/vue-types.6e6d84ba.js","assets/dom-align.f1b5d360.js","assets/lodash-es.0ea26897.js","assets/dayjs.38e390ea.js","assets/async-validator.5d25c98b.js","assets/scroll-into-view-if-needed.5191fdbf.js","assets/compute-scroll-into-view.6058b3be.js","assets/lodash.c9cf1bdb.js","assets/spark-md5.2cc5764b.js","assets/@vueuse.952f4739.js","assets/vue-demi.5fb18120.js","assets/axios.e3200588.js","assets/sortablejs.412b554c.js","assets/clipboard.099d05c9.js","assets/markdown-it.80c3a67b.js","assets/entities.0d2c0164.js","assets/uc.micro.981ceb7b.js","assets/mdurl.ef76b4dc.js","assets/linkify-it.92c30060.js","assets/markdown-it-emoji.e3e91710.js","assets/escape-html.e5dfadb9.js","assets/prismjs.c97a8414.js","assets/diacritics.6be19c75.js","assets/markdown-it-container.512a5043.js","assets/markdown-it-anchor.c88e5394.js","assets/markdown-it-attrs.3af5ab50.js","assets/markdown-it-table-of-contents.8a4ce16f.js","assets/@kangc.86f7507c.js","assets/@kangc.1dc16e06.css"])),Ne=q(()=>V(()=>import("./tree.8d2d66f3.js"),["assets/tree.8d2d66f3.js","assets/lodash.c9cf1bdb.js","assets/@babel.6cd0804c.js","assets/regenerator-runtime.8e24db72.js","assets/vue.db505ee4.js","assets/@vue.cb43a243.js","assets/ant-design-vue.6b10f349.js","assets/@ant-design.bcfb08ae.js","assets/@ctrl.fa7cbd46.js","assets/resize-observer-polyfill.8deb1e21.js","assets/vue-types.6e6d84ba.js","assets/dom-align.f1b5d360.js","assets/lodash-es.0ea26897.js","assets/dayjs.38e390ea.js","assets/async-validator.5d25c98b.js","assets/scroll-into-view-if-needed.5191fdbf.js","assets/compute-scroll-into-view.6058b3be.js"])),Te=q(()=>V(()=>import("./dynamicTag.86eeadc8.js"),["assets/dynamicTag.86eeadc8.js","assets/@fortawesome.fe0e4c2f.css","assets/vue.db505ee4.js","assets/@babel.6cd0804c.js","assets/regenerator-runtime.8e24db72.js","assets/@vue.cb43a243.js","assets/lodash.c9cf1bdb.js","assets/@vueuse.952f4739.js","assets/vue-demi.5fb18120.js","assets/js-md5.5179c6be.js","assets/vue-router.a08742b9.js","assets/js-cookie.31874410.js","assets/ant-design-vue.6b10f349.js","assets/@ant-design.bcfb08ae.js","assets/@ctrl.fa7cbd46.js","assets/resize-observer-polyfill.8deb1e21.js","assets/vue-types.6e6d84ba.js","assets/dom-align.f1b5d360.js","assets/lodash-es.0ea26897.js","assets/dayjs.38e390ea.js","assets/async-validator.5d25c98b.js","assets/scroll-into-view-if-needed.5191fdbf.js","assets/compute-scroll-into-view.6058b3be.js","assets/spark-md5.2cc5764b.js","assets/axios.e3200588.js","assets/sortablejs.412b554c.js","assets/clipboard.099d05c9.js","assets/markdown-it.80c3a67b.js","assets/entities.0d2c0164.js","assets/uc.micro.981ceb7b.js","assets/mdurl.ef76b4dc.js","assets/linkify-it.92c30060.js","assets/markdown-it-emoji.e3e91710.js","assets/escape-html.e5dfadb9.js","assets/prismjs.c97a8414.js","assets/diacritics.6be19c75.js","assets/markdown-it-container.512a5043.js","assets/markdown-it-anchor.c88e5394.js","assets/markdown-it-attrs.3af5ab50.js","assets/markdown-it-table-of-contents.8a4ce16f.js","assets/@kangc.86f7507c.js","assets/@kangc.1dc16e06.css"])),Ue=q(()=>V(()=>import("./checkboxTag.0fd114f7.js"),["assets/checkboxTag.0fd114f7.js","assets/@fortawesome.fe0e4c2f.css","assets/vue.db505ee4.js","assets/@babel.6cd0804c.js","assets/regenerator-runtime.8e24db72.js","assets/@vue.cb43a243.js","assets/js-md5.5179c6be.js","assets/lodash.c9cf1bdb.js","assets/@vueuse.952f4739.js","assets/vue-demi.5fb18120.js","assets/spark-md5.2cc5764b.js","assets/vue-router.a08742b9.js","assets/js-cookie.31874410.js","assets/ant-design-vue.6b10f349.js","assets/@ant-design.bcfb08ae.js","assets/@ctrl.fa7cbd46.js","assets/resize-observer-polyfill.8deb1e21.js","assets/vue-types.6e6d84ba.js","assets/dom-align.f1b5d360.js","assets/lodash-es.0ea26897.js","assets/dayjs.38e390ea.js","assets/async-validator.5d25c98b.js","assets/scroll-into-view-if-needed.5191fdbf.js","assets/compute-scroll-into-view.6058b3be.js","assets/axios.e3200588.js","assets/sortablejs.412b554c.js","assets/clipboard.099d05c9.js","assets/markdown-it.80c3a67b.js","assets/entities.0d2c0164.js","assets/uc.micro.981ceb7b.js","assets/mdurl.ef76b4dc.js","assets/linkify-it.92c30060.js","assets/markdown-it-emoji.e3e91710.js","assets/escape-html.e5dfadb9.js","assets/prismjs.c97a8414.js","assets/diacritics.6be19c75.js","assets/markdown-it-container.512a5043.js","assets/markdown-it-anchor.c88e5394.js","assets/markdown-it-attrs.3af5ab50.js","assets/markdown-it-table-of-contents.8a4ce16f.js","assets/@kangc.86f7507c.js","assets/@kangc.1dc16e06.css"])),Be=q(()=>V(()=>import("./select.4753e345.js"),["assets/select.4753e345.js","assets/@fortawesome.fe0e4c2f.css","assets/vue.db505ee4.js","assets/@babel.6cd0804c.js","assets/regenerator-runtime.8e24db72.js","assets/@vue.cb43a243.js","assets/@vueuse.952f4739.js","assets/vue-demi.5fb18120.js","assets/remoteOptions.c846a4ad.js","assets/lodash.c9cf1bdb.js","assets/context.6c9ae94a.js","assets/ant-design-vue.6b10f349.js","assets/@ant-design.bcfb08ae.js","assets/@ctrl.fa7cbd46.js","assets/resize-observer-polyfill.8deb1e21.js","assets/vue-types.6e6d84ba.js","assets/dom-align.f1b5d360.js","assets/lodash-es.0ea26897.js","assets/dayjs.38e390ea.js","assets/async-validator.5d25c98b.js","assets/scroll-into-view-if-needed.5191fdbf.js","assets/compute-scroll-into-view.6058b3be.js","assets/js-md5.5179c6be.js","assets/vue-router.a08742b9.js","assets/js-cookie.31874410.js","assets/spark-md5.2cc5764b.js","assets/axios.e3200588.js","assets/sortablejs.412b554c.js","assets/clipboard.099d05c9.js","assets/markdown-it.80c3a67b.js","assets/entities.0d2c0164.js","assets/uc.micro.981ceb7b.js","assets/mdurl.ef76b4dc.js","assets/linkify-it.92c30060.js","assets/markdown-it-emoji.e3e91710.js","assets/escape-html.e5dfadb9.js","assets/prismjs.c97a8414.js","assets/diacritics.6be19c75.js","assets/markdown-it-container.512a5043.js","assets/markdown-it-anchor.c88e5394.js","assets/markdown-it-attrs.3af5ab50.js","assets/markdown-it-table-of-contents.8a4ce16f.js","assets/@kangc.86f7507c.js","assets/@kangc.1dc16e06.css"])),Fe=q(()=>V(()=>import("./index.e3eff962.js"),["assets/index.e3eff962.js","assets/index.081aed29.css","assets/@fortawesome.fe0e4c2f.css","assets/lodash.c9cf1bdb.js","assets/@babel.6cd0804c.js","assets/regenerator-runtime.8e24db72.js","assets/vue.db505ee4.js","assets/@vue.cb43a243.js","assets/vuedraggable.e7e6f001.js","assets/ant-design-vue.6b10f349.js","assets/@ant-design.bcfb08ae.js","assets/@ctrl.fa7cbd46.js","assets/resize-observer-polyfill.8deb1e21.js","assets/vue-types.6e6d84ba.js","assets/dom-align.f1b5d360.js","assets/lodash-es.0ea26897.js","assets/dayjs.38e390ea.js","assets/async-validator.5d25c98b.js","assets/scroll-into-view-if-needed.5191fdbf.js","assets/compute-scroll-into-view.6058b3be.js","assets/js-md5.5179c6be.js","assets/vue-router.a08742b9.js","assets/js-cookie.31874410.js","assets/spark-md5.2cc5764b.js","assets/@vueuse.952f4739.js","assets/vue-demi.5fb18120.js","assets/axios.e3200588.js","assets/sortablejs.412b554c.js","assets/clipboard.099d05c9.js","assets/markdown-it.80c3a67b.js","assets/entities.0d2c0164.js","assets/uc.micro.981ceb7b.js","assets/mdurl.ef76b4dc.js","assets/linkify-it.92c30060.js","assets/markdown-it-emoji.e3e91710.js","assets/escape-html.e5dfadb9.js","assets/prismjs.c97a8414.js","assets/diacritics.6be19c75.js","assets/markdown-it-container.512a5043.js","assets/markdown-it-anchor.c88e5394.js","assets/markdown-it-attrs.3af5ab50.js","assets/markdown-it-table-of-contents.8a4ce16f.js","assets/@kangc.86f7507c.js","assets/@kangc.1dc16e06.css"])),$e=q(()=>V(()=>import("./descriptions.63e5ab75.js"),["assets/descriptions.63e5ab75.js","assets/vue.db505ee4.js","assets/@babel.6cd0804c.js","assets/regenerator-runtime.8e24db72.js","assets/@vue.cb43a243.js","assets/@vueuse.952f4739.js","assets/vue-demi.5fb18120.js"])),Ye=q(()=>V(()=>import("./cascader.45565a25.js"),["assets/cascader.45565a25.js","assets/@fortawesome.fe0e4c2f.css","assets/vue.db505ee4.js","assets/@babel.6cd0804c.js","assets/regenerator-runtime.8e24db72.js","assets/@vue.cb43a243.js","assets/@vueuse.952f4739.js","assets/vue-demi.5fb18120.js","assets/lodash.c9cf1bdb.js","assets/remoteOptions.c846a4ad.js","assets/context.6c9ae94a.js","assets/ant-design-vue.6b10f349.js","assets/@ant-design.bcfb08ae.js","assets/@ctrl.fa7cbd46.js","assets/resize-observer-polyfill.8deb1e21.js","assets/vue-types.6e6d84ba.js","assets/dom-align.f1b5d360.js","assets/lodash-es.0ea26897.js","assets/dayjs.38e390ea.js","assets/async-validator.5d25c98b.js","assets/scroll-into-view-if-needed.5191fdbf.js","assets/compute-scroll-into-view.6058b3be.js","assets/js-md5.5179c6be.js","assets/vue-router.a08742b9.js","assets/js-cookie.31874410.js","assets/spark-md5.2cc5764b.js","assets/axios.e3200588.js","assets/sortablejs.412b554c.js","assets/clipboard.099d05c9.js","assets/markdown-it.80c3a67b.js","assets/entities.0d2c0164.js","assets/uc.micro.981ceb7b.js","assets/mdurl.ef76b4dc.js","assets/linkify-it.92c30060.js","assets/markdown-it-emoji.e3e91710.js","assets/escape-html.e5dfadb9.js","assets/prismjs.c97a8414.js","assets/diacritics.6be19c75.js","assets/markdown-it-container.512a5043.js","assets/markdown-it-anchor.c88e5394.js","assets/markdown-it-attrs.3af5ab50.js","assets/markdown-it-table-of-contents.8a4ce16f.js","assets/@kangc.86f7507c.js","assets/@kangc.1dc16e06.css"])),Xe=q(()=>V(()=>import("./autoComplete.eb6d69d8.js"),["assets/autoComplete.eb6d69d8.js","assets/@fortawesome.fe0e4c2f.css","assets/vue.db505ee4.js","assets/@babel.6cd0804c.js","assets/regenerator-runtime.8e24db72.js","assets/@vue.cb43a243.js","assets/@vueuse.952f4739.js","assets/vue-demi.5fb18120.js","assets/lodash.c9cf1bdb.js","assets/js-md5.5179c6be.js","assets/spark-md5.2cc5764b.js","assets/remoteOptions.c846a4ad.js","assets/context.6c9ae94a.js","assets/ant-design-vue.6b10f349.js","assets/@ant-design.bcfb08ae.js","assets/@ctrl.fa7cbd46.js","assets/resize-observer-polyfill.8deb1e21.js","assets/vue-types.6e6d84ba.js","assets/dom-align.f1b5d360.js","assets/lodash-es.0ea26897.js","assets/dayjs.38e390ea.js","assets/async-validator.5d25c98b.js","assets/scroll-into-view-if-needed.5191fdbf.js","assets/compute-scroll-into-view.6058b3be.js","assets/vue-router.a08742b9.js","assets/js-cookie.31874410.js","assets/axios.e3200588.js","assets/sortablejs.412b554c.js","assets/clipboard.099d05c9.js","assets/markdown-it.80c3a67b.js","assets/entities.0d2c0164.js","assets/uc.micro.981ceb7b.js","assets/mdurl.ef76b4dc.js","assets/linkify-it.92c30060.js","assets/markdown-it-emoji.e3e91710.js","assets/escape-html.e5dfadb9.js","assets/prismjs.c97a8414.js","assets/diacritics.6be19c75.js","assets/markdown-it-container.512a5043.js","assets/markdown-it-anchor.c88e5394.js","assets/markdown-it-attrs.3af5ab50.js","assets/markdown-it-table-of-contents.8a4ce16f.js","assets/@kangc.86f7507c.js","assets/@kangc.1dc16e06.css"])),Pe=q(()=>V(()=>import("./draggableRender.ea43ba32.js"),["assets/draggableRender.ea43ba32.js","assets/@fortawesome.fe0e4c2f.css","assets/vue.db505ee4.js","assets/@babel.6cd0804c.js","assets/regenerator-runtime.8e24db72.js","assets/@vue.cb43a243.js","assets/vuedraggable.e7e6f001.js","assets/lodash.c9cf1bdb.js","assets/js-md5.5179c6be.js","assets/vue-router.a08742b9.js","assets/js-cookie.31874410.js","assets/ant-design-vue.6b10f349.js","assets/@ant-design.bcfb08ae.js","assets/@ctrl.fa7cbd46.js","assets/resize-observer-polyfill.8deb1e21.js","assets/vue-types.6e6d84ba.js","assets/dom-align.f1b5d360.js","assets/lodash-es.0ea26897.js","assets/dayjs.38e390ea.js","assets/async-validator.5d25c98b.js","assets/scroll-into-view-if-needed.5191fdbf.js","assets/compute-scroll-into-view.6058b3be.js","assets/spark-md5.2cc5764b.js","assets/@vueuse.952f4739.js","assets/vue-demi.5fb18120.js","assets/axios.e3200588.js","assets/sortablejs.412b554c.js","assets/clipboard.099d05c9.js","assets/markdown-it.80c3a67b.js","assets/entities.0d2c0164.js","assets/uc.micro.981ceb7b.js","assets/mdurl.ef76b4dc.js","assets/linkify-it.92c30060.js","assets/markdown-it-emoji.e3e91710.js","assets/escape-html.e5dfadb9.js","assets/prismjs.c97a8414.js","assets/diacritics.6be19c75.js","assets/markdown-it-container.512a5043.js","assets/markdown-it-anchor.c88e5394.js","assets/markdown-it-attrs.3af5ab50.js","assets/markdown-it-table-of-contents.8a4ce16f.js","assets/@kangc.86f7507c.js","assets/@kangc.1dc16e06.css"]));z.component("DraggableRender",Pe);z.component("ExDescriptions",$e);z.component("ExAutoComplete",Xe);z.component("ExCascader",Ye);z.component("ExCurd",Fe);z.component("ExSelect",Be);z.component("ExDynamicTag",Te);z.component("ExCheckboxTag",Ue);z.component("ExTree",Ne);z.component("ExEchart",Ae);z.component("ExNumberRange",Ze);z.component("ExAsyncRender",De);z.component("ExSwitch",Ce);z.component("ExColorPicker",Ee);z.component("ExSelectTable",Le);z.component("ExDownloadFile",Re);z.component("ExVideo",je);z.component("ExIcon",Oe);z.component("ExSelectIcon",Me);z.component("ExGrid",ye);z.component("ExSidebar",ze);z.component("ExForm",_e);z.component("ExFormMany",ve);z.component("ExUploader",Ie);z.component("ExTinymceEditor",Se);const qe=t=>t.replace(/:(.+?):/g,(n,a)=>ea[a]||n),Ve=t=>t.replace(/"/g,'"').replace(/'/g,"'").replace(/:/g,":").replace(/</g,"<").replace(/>/g,">"),He=t=>t.replace(/(\[(.[^\]]+)\]\((.[^)]+)\))/g,"$2").replace(/(`|\*{1,3}|_)(.*?[^\\])\1/g,"$2").replace(/(\\)(\*|_|`|\!|<|\$)/g,"$2"),We=t=>t.replace(/\{#([a-z0-9\-_]+?)\}\s*$/,""),Ge=t=>t.trim(),Ke=t=>String(t).replace(/(^|[^><`\\])<.*>([^><`]|$)/g,"$1$2"),wn=(...t)=>t.length===0?n=>n:t.length===1?t[0]:t.reduce((n,a)=>o=>a(n(o))),kn=wn(Ve,qe,We,He,Ge),Je=wn(Ke,kn);function Lt(t,n){return n==="text"&&(t=ra(t)),`

    ${t}
    `}const vn=(t,n)=>{if(!n)return Lt(t,"text");n=n.toLowerCase();const a=n;if((n==="vue"||n==="html")&&(n="markup"),n==="md"&&(n="markdown"),n==="ts"&&(n="typescript"),n==="py"&&(n="python"),_t.languages[n]){const o=_t.highlight(t,_t.languages[n],n);return Lt(o,a)}return Lt(t,"text")},Qe=/[\u0000-\u001f]/g,to=/[\s~`!@#$%^&*()\-_+=[\]{}|\\;:"'<>,.?/]+/g,Ct=t=>ia(t).replace(Qe,"").replace(to,"-").replace(/\-{2,}/g,"-").replace(/^\-+|\-+$/g,"").replace(/^(\d)/,"_$1").toLowerCase(),no=/^
    /,ao=t=>{const n=t.renderer.rules.fence;t.renderer.rules.fence=(...a)=>{const[o,e,r]=a,i=o[e],d=i.attrs&&i.attrs[0];if(!d)return n(...a);const x=d[0];if(!x||!/[\d,-]+/.test(x))return n(...a);const w=x.split(",").map(Y=>Y.split("-").map(Z=>parseInt(Z,10))),p=r.highlight?r.highlight(i.content,i.info,""):i.content;return`
    ${p.replace(no,"").split(` +`).map((Y,Z)=>{const O=Z+1;return w.some(([s,k])=>s&&k?O>=s&&O<=k:O===s)?'
     
    ':"
    "}).join("")}
    `+p}},eo=t=>{const n=t.renderer.rules.fence;t.renderer.rules.fence=(...a)=>{const o=n(...a),r=o.slice(o.indexOf(""),o.indexOf("")).split(` +`),d=`
    ${[...Array(r.length-1)].map((w,p)=>`${p+1}
    `).join("")}
    `;return o.replace(/<\/div>$/,`${d}

    !35N-h%Knumftu3XRO(&xri;Pd8h@6 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 z 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

    )Nw7{35%!lU+i^LjAA9v%|f;bIi5rexbOxcjx(I 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 z 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 literal 0 HcmV?d00001 diff --git a/public/exadmin/assets/fa-regular-400.4e96a7e0.ttf b/public/exadmin/assets/fa-regular-400.4e96a7e0.ttf new file mode 100644 index 0000000000000000000000000000000000000000..23e3febe0d8195ea33e82f21880ef5ac5e5f4717 GIT binary patch literal 60520 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 literal 0 HcmV?d00001 diff --git a/public/exadmin/assets/fa-regular-400.6a274e76.woff2 b/public/exadmin/assets/fa-regular-400.6a274e76.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..80e3b1247cec5162882db0342ad99f5da8acca30 GIT binary patch literal 23940 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 z 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

    `).replace(/"(language-\w+)"/,'"$1 line-numbers-mode"')}},bt=[[/^<(script|pre|style)(?=(\s|>|$))/i,/<\/(script|pre|style)>/i,!0],[/^/,!0],[/^<\?/,/\?>/,!0],[/^/,!0],[/^/,!0],[/^<[A-Z]/,/>/,!0],[/^<\w+\-/,/>/,!0],[new RegExp("^|$))","i"),/^$/,!0],[new RegExp(na.source+"\\s*$"),/^$/,!1]],oo=t=>{t.block.ruler.at("html_block",ro)},ro=(t,n,a,o)=>{let e,r,i,d=t.bMarks[n]+t.tShift[n],x=t.eMarks[n];if(t.sCount[n]-t.blkIndent>=4||!t.md.options.html||t.src.charCodeAt(d)!==60)return!1;for(i=t.src.slice(d,x),e=0;e{t.use(...kt("tip","TIP")).use(...kt("info","INFO")).use(...kt("warning","WARNING")).use(...kt("danger","WARNING")).use(...kt("details","Details")).use(pn,"v-pre",{render:(n,a)=>n[a].nesting===1?`
    +`:`
    +`})};function kt(t,n){return[pn,t,{render(a,o){const e=a[o],r=e.info.trim().slice(t.length).trim();return e.nesting===1?t==="details"?`
    ${r?`${r}`:""} +`:`

    ${r||n}

    +`:t==="details"?`
    +`:` +`}}]}function lo(t){const n=/^([ \t]*)(.*)\n/gm;let a,o=null;for(;(a=n.exec(t))!==null;){const[e,r]=a.slice(1);if(!r)continue;const i=e.length;if(i>0)o=o!==null?Math.min(o,i):i;else break}return o&&(t=t.replace(new RegExp(`^[ ]{${o}}(.*)`,"gm"),"$1")),t}function Qt(t,n,a,o=!1){const[e,r,i]=n.exec(t.trim())||[];return e&&r&&i===a&&r.match(o?/^[Ee]nd ?[rR]egion$/:/^[rR]egion$/)}function so(t,n){const a=[/^\/\/ ?#?((?:end)?region) ([\w*-]+)$/,/^\/\* ?#((?:end)?region) ([\w*-]+) ?\*\/$/,/^#pragma ((?:end)?region) ([\w*-]+)$/,/^$/,/^#((?:End )Region) ([\w*-]+)$/,/^::#((?:end)region) ([\w*-]+)$/,/^# ?((?:end)?region) ([\w*-]+)$/];let o=null,e=-1;for(const[r,i]of t.entries())if(o===null){for(const d of a)if(Qt(i,d,n)){e=r+1,o=d;break}}else if(Qt(i,o,n,!0))return{start:e,end:r,regexp:o};return null}const po=(t,n)=>{const a=(e,r,i,d)=>{const x="<".charCodeAt(0),w=e.bMarks[r]+e.tShift[r],p=e.eMarks[r];if(e.sCount[r]-e.blkIndent>=4)return!1;for(let b=0;b<3;++b)if(e.src.charCodeAt(w+b)!==x||w+b>=p)return!1;if(d)return!0;const y=w+3,X=e.skipSpacesBack(p,w),_=/^(.+(?:\.([a-z]+)))(?:(#[\w-]+))?(?: ?({\d+(?:[,-]\d+)*}))?$/,Y=e.src.slice(y,X).trim().replace(/^@/,n).trim(),[Z="",O="",T="",s=""]=(_.exec(Y)||[]).slice(1);e.line=r+1;const k=e.push("fence","code",0);return k.info=O+s,k.src=zt.resolve(Z)+T,k.markup="```",k.map=[r,r+1],!0},o=t.renderer.rules.fence;t.renderer.rules.fence=(...e)=>{const[r,i,,{loader:d}]=e,x=r[i],w=x.src,[p,y]=w?w.split("#"):[""];if(p){d&&d.addDependency(p);const X=zt.lstatSync(p).isFile();if(zt.existsSync(p)&&X){let _=zt.readFileSync(p,"utf8");if(y){const Y=_.split(/\r?\n/),Z=so(Y,y);Z&&(_=lo(Y.slice(Z.start,Z.end).filter(O=>!Z.regexp.test(O.trim())).join(` +`)))}x.content=_}else x.content=X?`Code snippet path not found: ${p}`:"Invalid code snippet option",x.info=""}return o(...e)},t.block.ruler.before("fence","snippet",a)},co=t=>{const n=/^<(script|style)(?=(\s|>|$))/i;t.renderer.rules.html_block=(a,o)=>{const e=a[o].content,r=t.__data,i=r.hoistedTags||(r.hoistedTags=[]);return n.test(e.trim())?(i.push(e),""):e}},mo=t=>{const n=t.renderer.rules.fence;t.renderer.rules.fence=(...a)=>{const[o,e]=a,r=o[e],i=n(...a);return`
    ${i}
    `}},uo=/(^|.*\/)index.md(#?.*)$/i,bo=(t,n,a)=>{t.renderer.rules.link_open=(r,i,d,x,w)=>{const p=r[i],y=p.attrIndex("href");if(y>=0){const X=p.attrs[y],_=X[1];!_.startsWith("#")&&!_.startsWith("mailto:")&&!/\.(?!html|md)\w+($|\?)/i.test(_)&&o(X),X[1]=X[1].replace(/\bimport\.meta/g,"import%2Emeta").replace(/\bprocess\.env/g,"process%2Eenv")}return w.renderToken(r,i,d)};function o(r){let i=r[1];const d=i.match(uo);if(d){const[,x,w]=d;i=x+w}else{let x=i.replace(/[?#].*$/,"");x.endsWith(".md")&&(x=x.replace(/\.md$/,".html")),!x.endsWith(".html")&&!x.endsWith("/")&&(x+=".html")}!i.startsWith("/")&&!/^\.\//.test(i),e(i.replace(/\.html$/,"")),i.startsWith("/")&&(i=`${a}${i}`.replace(/\/+/g,"/")),r[1]=decodeURI(i)}function e(r){const i=t.__data;(i.links||(i.links=[])).push(r)}},go=(t,n=["h2","h3"])=>{t.renderer.rules.heading_open=(a,o,e,r,i)=>{const d=a[o];if(n.includes(d.tag)){const x=a[o+1].content,w=d.attrs.find(([_])=>_==="id"),p=w&&w[1],y=t.__data;(y.headers||(y.headers=[])).push({level:parseInt(d.tag.slice(1),10),title:Je(x),slug:p||Ct(x)})}return i.renderToken(a,o,e)}},fo=t=>{t.renderer.rules.image=(n,a,o,e,r)=>{const i=n[a],d=i.attrGet("src");return d&&!/^\.?\//.test(d)&&i.attrSet("src",d),r.renderToken(n,a,o)}},ho=(t,n={},a)=>{const o=aa(tt({html:!0,linkify:!0,highlight:vn},n));o.use(oo).use(ao).use(mo).use(po,t).use(co).use(io).use(go).use(fo).use(bo,tt({target:"_blank",rel:"noopener noreferrer"},n.externalLinks),a).use(la,n.attrs).use($t,tt({slugify:Ct,permalink:$t.permalink.ariaHidden({})},n.anchor)).use(sa,tt({slugify:Ct,includeLevel:[2,3],format:kn},n.toc)).use(oa),n.config&&n.config(o),n.lineNumbers&&o.use(eo);const e=o.render;return o.render=(...r)=>(o.__data={},e.call(o,...r)),o},xo=F("\u524D\u5F80\u67E5\u770B"),wo=[xo],ko=["innerHTML"],vo={name:"ExProgress"},yo=Object.assign(vo,{props:{refresh:Boolean,class:String,grid:Object},setup(t){const n=t,a=xt(),o=at(0),e=at(""),r=a.fullPath;let i;At(()=>{clearInterval(i)}),d();function d(){rt("ex-admin/system/queueInit?key="+n.class).then(()=>{i=setInterval(()=>{x()},500)})}function x(){rt("ex-admin/system/queueProgress?key="+n.class).then(p=>{isNaN(p.data)?(e.value=p.data,clearInterval(i)):(o.value=p.data,o.value==100&&(clearInterval(i),n.refresh&&a.fullPath===r&&w()))})}function w(){n.grid?n.grid.refresh():B.loadComponent(r,!0)}return(p,y)=>{const X=v("a-progress"),_=v("a-alert"),Y=rn("redirect");return h(),D(H,null,[e.value?N("",!0):(h(),L(X,{key:0,percent:o.value,size:"small"},null,8,["percent"])),o.value==100?ct((h(),D("a",{key:1,onClick:w},wo)),[[Y,l(r)]]):N("",!0),e.value?(h(),L(_,{key:2,message:"\u5931\u8D25",type:"error","show-icon":""},{description:u(()=>[$("div",{innerHTML:e.value},null,8,ko)]),_:1})):N("",!0)],64)}}});z.directive("redirect",{created(t,n){t.onclick=function(){lt(n.value)}}});z.directive("copy",{created(t,n){n.clipboard=new Qn(t,{text:function(){return n.value}}),n.clipboard.on("success",a=>{pt.success(S("Copy.success"))}),n.clipboard.on("error",a=>{pt.error(S("Copy.error"))})},beforeUnmount(t,n){n.clipboard&&n.clipboard.destroy()}});z.directive("ajax",{created(t,n){let a=t.onclick;t.onclick=function(o){o.stopPropagation(),a&&a(o);let e=[];if(n.arg.gridBatch&&(e=n.instance.grid.exposed.selectIds.value),n.arg.confirm){if(n.arg.gridBatch&&e.length==0)return pt.warn(S("Grid.selectedAction"));n.arg.confirm.content&&n.arg.confirm.content.name&&(n.arg.confirm.content=G(vt,{data:n.arg.confirm.content})),ln.confirm(Object.assign({onOk(){return new Promise((r,i)=>{ht(n.value,n.arg.gridBatch,e,n.instance).then(d=>{n.arg.confirm.gridRefresh&&n.instance.grid.exposed.refresh(),n.instance.$emit("success"),r()}).catch(()=>{i()})})}},n.arg.confirm))}else ht(n.value,n.arg.gridBatch,e,n.instance).then(r=>{n.arg.gridRefresh&&n.instance.grid.exposed.refresh()})}}});z.directive("queueProgress",{created(t,n){let a=t.onclick;t.onclick=function(o){o.stopPropagation(),a&&a(o),sn.open({appContext:z._context,message:n.value,duration:null,description:G(yo,{class:n.arg.class,refresh:n.arg.refresh,grid:n.instance.grid?n.instance.grid.exposed:null})})}}});z.directive("prism",{created(t,n){const a=vn(n.value,n.arg.lang);t.innerHTML="
    "+a+"
    "}});z.directive("markdown",{created(t,n){const a=ho("/",n.arg||{},"/");t.innerHTML=a.render(n.value)}});z.directive("focus",{created(t,n){setTimeout(()=>{t.querySelector("input").focus()})}});z.directive("select",{created(t,n){setTimeout(()=>{t.querySelector("input").select()})}});z.directive("rowSign",{created(t,n){let a=document.createElement("span");a.innerText="row",a.className="curd-sign-position",t.append(a)}});z.directive("RowColSign",{created(t,n){let a=document.createElement("span");a.innerText=n.value,a.className=n.arg,t.append(a)}});Kn.locale("zh-cn");cn.use(pa,{Prism:_t});z.use(cn);z.config.globalProperties.$script=Qa;z.config.globalProperties.$request=rt;z.config.globalProperties.$action=B;z.use($n);window.$app=z;for(const t in Ft)z.component(t,Ft[t]);z.provide(xn,j);B.getSystemConfig().then(()=>{z.use(nt),z.mount("#app")});export{Vt as A,vt as B,st as _,xr as a,wr as b,ut as c,br as d,gr as e,fr as f,Ga as g,ne as h,qt as i,lt as j,Ht as k,dr as l,cr as m,yt as n,Ka as o,hr as p,Gt as q,Wt as r,rt as s,S as t,et as u,ur as v,ht as w,K as x,mr as y,Wa as z}; diff --git a/public/exadmin/assets/index.e3eff962.js b/public/exadmin/assets/index.e3eff962.js new file mode 100644 index 0000000..ceb744b --- /dev/null +++ b/public/exadmin/assets/index.e3eff962.js @@ -0,0 +1 @@ +var Oe=Object.defineProperty;var he=Object.getOwnPropertySymbols;var Ve=Object.prototype.hasOwnProperty,Le=Object.prototype.propertyIsEnumerable;var ge=(l,p,A)=>p in l?Oe(l,p,{enumerable:!0,configurable:!0,writable:!0,value:A}):l[p]=A,_e=(l,p)=>{for(var A in p||(p={}))Ve.call(p,A)&&ge(l,A,p[A]);if(he)for(var A of he(p))Le.call(p,A)&&ge(l,A,p[A]);return l};import{_ as $e,b as Se,s as F,x as q,y as re,h as ve}from"./index.b35f53c6.js";import{l as W}from"./lodash.c9cf1bdb.js";import"./vue.db505ee4.js";import{d as ze}from"./vuedraggable.e7e6f001.js";import{d as Ne,q as Be,r as Fe,a as Pe,p as Ue,n as qe,t as We,aW as _,aR as v,ar as w,bd as i,c as d,as as D,au as u,at as O,aV as X,R as V,af as le,S as R,ai as k,H as Y,ah as je,U as Ge,aT as He,aS as Ke}from"./@vue.cb43a243.js";import{m as Je,M as Me}from"./ant-design-vue.6b10f349.js";import"./js-md5.5179c6be.js";import"./@babel.6cd0804c.js";import"./regenerator-runtime.8e24db72.js";import"./vue-router.a08742b9.js";import"./js-cookie.31874410.js";import"./spark-md5.2cc5764b.js";import"./@vueuse.952f4739.js";import"./vue-demi.5fb18120.js";import"./axios.e3200588.js";import"./@ant-design.bcfb08ae.js";import"./@ctrl.fa7cbd46.js";/* empty css */import"./dayjs.38e390ea.js";import"./sortablejs.412b554c.js";import"./clipboard.099d05c9.js";import"./markdown-it.80c3a67b.js";import"./entities.0d2c0164.js";import"./uc.micro.981ceb7b.js";import"./mdurl.ef76b4dc.js";import"./linkify-it.92c30060.js";import"./markdown-it-emoji.e3e91710.js";import"./escape-html.e5dfadb9.js";import"./prismjs.c97a8414.js";import"./diacritics.6be19c75.js";import"./markdown-it-container.512a5043.js";import"./markdown-it-anchor.c88e5394.js";import"./markdown-it-attrs.3af5ab50.js";import"./markdown-it-table-of-contents.8a4ce16f.js";import"./@kangc.86f7507c.js";import"./resize-observer-polyfill.8deb1e21.js";import"./vue-types.6e6d84ba.js";import"./dom-align.f1b5d360.js";import"./lodash-es.0ea26897.js";import"./async-validator.5d25c98b.js";import"./scroll-into-view-if-needed.5191fdbf.js";import"./compute-scroll-into-view.6058b3be.js";const Qe=Ne({name:"ExCurd",components:{draggable:ze},setup(l,p){const A=Se(),e=Be({tables:[],searchTable:"",controller:[],controllerIndex:-1,method:[],methodIndex:-1,drawingMain:{component:null,ref:null},componentList:[],controllerForm:null,controllerEditForm:null,methodForm:null,methodEditForm:null,settingForm:null,settingFormList:[],settingFormVisible:!0,tableVisible:!1,tableModalRender:null,tableTreeNode:null,tableModalTitle:null,index:-1,database:null,isSave:!0,methodTypes:[{value:"grid",label:"\u6570\u636E\u8868\u683C(grid)"},{value:"form",label:"\u8868\u5355(form)"},{value:"detail",label:"\u8BE6\u60C5(detail)"}]}),ce=Fe(),ue=Fe();Z(),addEventListener("keydown",L),addEventListener("keyup",G),Pe(()=>{removeEventListener("keydown",L),removeEventListener("keyup",G)});const j=Ue(()=>e.tables.filter(t=>t.name.indexOf(e.searchTable)>-1||t.comment.indexOf(e.searchTable)>-1));let C=0,E=0;function L(t){t.keyCode==17&&(C=1),t.keyCode==83&&(E=1),C==1&&E==1&&te()}function G(t){t.keyCode==17&&(C=0),t.keyCode==83&&(E=0)}function z(){H()}function Z(){Q(),S(),F("ex-admin/plugin-curd-controller-Index/getFormComponent").then(t=>{e.componentList=t.data,e.componentList.forEach(n=>{n.options.forEach(o=>{F("ex-admin/plugin-curd-controller-Index/getComponent?type="+o.name).then(a=>{o.component=a.data})})})})}function N(t){["ExForm","ARow","ACol","ExFormMany","ATabPane"].indexOf(t.name)>-1&&!t.content.default&&(t.content.default=[]);for(let n in t.content){let o=t.content,a=[];o[n].forEach(s=>{a.push(s),N(s)}),["ExForm","ARow","ACol","ExFormMany","ATabPane"].indexOf(t.name)>-1&&(n=="default"?t.content[n]=I(t.name,a,t):t.content[n]=a)}}function ee(t){return y(t,!0)}function y(t,n=!1){let o;return n?o=t.draggedContext.element.component.name:o=t.draggedContext.element.name,!(o=="ACol"&&t.relatedContext.component.$attrs.group.name!="ARow"||o!="ACol"&&t.relatedContext.component.$attrs.group.name=="ARow")}function I(t,n,o={}){let a="ex-drag-container";return t=="ARow"?a+=" curd-children-row":t=="ACol"&&(a+=" curd-row-draggable"),[{name:"DraggableRender",attribute:{group:{name:t,put:!0,pull:!0},animation:1e3,chosenClass:"ex-drag-choose",list:n,tag:t=="ARow"?"render":"div",componentData:{data:o},class:a,style:{width:"100%",minHeight:"32px"},move:s=>y(s)},event:{End:s=>{fe()},Sort:s=>{e.drawingMain.ref.forceUpdate()},Choose:s=>{document.querySelectorAll("[data-choose]").forEach(g=>{g.removeAttribute("data-choose")}),s.item.setAttribute("data-choose",!0);let r=s.item.__draggable_context.element;r.name==="AFormItem"?e.settingForm=r.content.default[0].attribute.drawingForm:r.name=="DraggableRender"?e.settingForm=r.attribute.componentData.data.attribute.drawingForm:e.settingForm=r.attribute.drawingForm}}}]}const H=W.exports.debounce(J,150);function $(t,n,o,a,s,r,g){t.forEach(m=>{if(m.name=="AFormItem"){if(m.attribute&&m.attribute.name.indexOf("default")>-1){let x=n[m.content.default[0].bindAttribute.value.replace(a+".","")];x===void 0&&(x=n[o[r]]),n[o[r]]=x,o.default=n[o[r]],m.content.default[0].bindAttribute.value=g,m.content.default[0].modelBind.value=g}else if(s.name==="ARangePicker"&&m.attribute.title==="\u9ED8\u8BA4\u503C"){n[o[r]]=n[m.content.default[0].bindAttribute.value.replace(a+".","")],o.default=n[o[r]],m.content.default[0].bindAttribute.value=g,m.content.default[0].modelBind.value=g;const x=s.attribute.startField;s.attribute.startField=a+"."+x.substr(x.indexOf(".")+1);const h=s.attribute.endField;s.attribute.endField=a+"."+h.substr(h.indexOf(".")+1)}}else m.content&&m.content.default&&$(m.content.default,n,o,a,s,r,g)})}function K(t,n=null){t.forEach(o=>{if(typeof o=="object"){if(o.name=="AFormItem"){const a=e.drawingMain.component,s=a.bindAttribute.model,r=a.bind[s];let g=o,m=g.content.default[0],x=m.attribute.drawingForm,h=x.bind[x.bindAttribute.model];for(let b in h)if(b=="title"&&m.name!="ExFormMany")g.attribute.label=h[b];else if(!(["name","default"].indexOf(b)>-1))if(b=="required")g.attribute.required=h[b];else if(b=="field"&&m.name!="ACascader"){let M=s+"."+h[b];n=="ExFormMany"&&(M=h[b]),m.bindAttribute[h.modelValue]=M,m.modelBind[h.modelValue]=M,g.attribute.name=[h[b]],m.name=="ExFormMany"&&r[h[b]]===void 0&&(r[h[b]]=h.default),$(x.content.default,r,h,s,m,b,M)}else if(["character","addonBefore","addonAfter","prefix","suffix"].indexOf(b)>-1&&h[b]){let M=Ge(h[b]);Array.isArray(M)?m.content[b]=M:m.content[b]=[M]}else if(b==="config"){for(let M in h[b])M=="options"&&h[b].options_type==3&&(m.attribute.options=[],Object.assign(m.attribute.options,h[b][M]));if(m.name=="ExSelectTable"){let M="ex-admin/"+h[b].grid_class.replaceAll("\\","-")+"/"+h[b].grid_method,be={};h[b].params.forEach(pe=>{be[pe.var]=pe.value}),q(m.attribute,"gridUrl",M),q(m.attribute,"params",be)}}else q(m.attribute,b,h[b])}else if(o.name=="DraggableRender")o.attribute.key=re(20),K(o.attribute.list,o.attribute.group.name);else if(o.name=="ARow"||o.name=="ACol"){let a=o.attribute.drawingForm,s=a.bind[a.bindAttribute.model];delete o.attribute.md,delete o.attribute.sm,delete o.attribute.xs;for(let r in s)q(o.attribute,r,s[r])}else if(o.name=="ATabs"){let a=o.attribute.drawingForm,s=a.bind[a.bindAttribute.model],r=[],g;s.pane.forEach((x,h)=>{let b=W.exports.cloneDeep(o.content.default[h]);if(b)g=b;else{let M=[];b=W.exports.cloneDeep(g),b.attribute.key=h+1,b.content={default:I("ATabPane",M)}}b.attribute.tab=x.title,r.push(b);for(let M in s)q(o.attribute,M,s[M])}),o.content.default=r;let m=a.bindAttribute.model+"."+s.modelValue;o.bindAttribute.activeKey=m,o.modelBind.activeKey=m}else if(o.name=="ADivider"){let a=o.attribute.drawingForm,s=a.bind[a.bindAttribute.model];for(let r in s)r=="title"?o.content={default:[s[r]]}:q(o.attribute,r,s[r])}o.content&&o.content.default&&K(o.content.default)}})}function J(){const t=e.drawingMain.component;let n=t.attribute.drawingForm,o=n.bind[n.bindAttribute.model];if(t.name=="ExForm")Object.assign(t.attribute,o),t.content.default||(t.content.default=[]),K(t.content.default);else if(t.name=="ExGrid"){const a=[];for(let s in o)s=="columns"?(o[s].forEach(r=>{a.push({dataIndex:r.field,title:r.label,type:r.form_type||"",header:{name:"html",attribute:{class:"ex_admin_table_th_name","data-tag":"span"},content:{default:[r.label]}}})}),o.switch.indexOf("hideAction")==-1&&a.push({dataIndex:"ExAdminAction",title:"",header:{name:"html",attribute:{class:"ex_admin_table_th_name","data-tag":"span"},content:{default:[""]}}}),t.attribute.columns=a):s=="switch"?o.swtichOptions.forEach(r=>{t.attribute[r]=o[s].indexOf(r)>-1}):t.attribute[s]=o[s]}else if(t.name=="ADescriptions")for(let a in o)if(a=="items"){const s=[];o[a].forEach(r=>{var g;s.push({name:"ADescriptionsItem",attribute:{title:r.label,span:r.span},content:{default:[(g=t.attribute.data[r.field])!=null?g:"--"],label:[r.label]}})}),t.content.default=s}else t.attribute[a]=o[a];e.drawingMain.ref.forceUpdate(),e.isSave=!1}function B(t,n){t.forEach(o=>{let a;if(typeof o=="object"){if(o.name=="AFormItem"){const s=e.drawingMain.component;let r=o.content.default[0].attribute.drawingForm;e.settingFormList.push(r);let g=r.bindAttribute.model;ve(r.bind[g],r.attribute.exceptField||[]);const m=s.bindAttribute.model,x=s.bind[m];r.bind[g].default=x[r.bind[g].field],n.push(r.bind[g]),a=r.bind[g]}else if(o.name=="DraggableRender")B(o.attribute.list,n);else if(["ARow","ACol","ExFormMany","ATabs","ATabPane","ADivider"].indexOf(o.name)>-1){let s=o.attribute.drawingForm,r=s.bindAttribute.model;ve(s.bind[r],s.attribute.exceptField||[]),n.push(s.bind[r]),a=s.bind[r]}o.content&&o.content.default&&a&&(a.content=[],B(o.content.default,a.content))}})}function te(){e.settingFormList=[],H(),setTimeout(()=>{let t={};const n=e.drawingMain.component;let o=n.attribute.drawingForm.bindAttribute.model;if(t.config=n.attribute.drawingForm.bind[o],n.name=="ExForm"){t.type="form",t.component=[],B(n.content.default,t.component);let a=0;qe(()=>{e.settingFormList.forEach(s=>{A[s.bindAttribute.ref].form.validate().then(()=>{a++,a==e.settingFormList.length&&P(t)}).catch(r=>{r.errorFields.length===0&&(a++,a==e.settingFormList.length&&P(t)),r.errorFields.forEach(g=>{let m=`\u3010${r.values.title}\u3011`||"\u3010\u3011";Je.error(m+g.errors[0]),e.settingFormList=[]})})})})}else n.name=="ExGrid"?(t.type="grid",P(t)):n.name=="ADescriptions"&&(t.type="detail",P(t))},500)}function P(t){F({url:"ex-admin/plugin-curd-controller-Index/save",method:"post",data:{id:e.method[e.methodIndex].id,controller:e.controller[e.controllerIndex].name,class:e.controller[e.controllerIndex].class,function:e.method[e.methodIndex].name,setting:t}}).then(n=>{e.settingFormList=[],me(e.methodIndex,!1),e.isSave=!0})}function ae(t){e.drawingMain.ref=t}function Q(){F("ex-admin/plugin-curd-controller-Index/getController?curd_ref="+p.attrs.curd_ref).then(t=>{e.controller=t.data.list,e.controllerForm=t.data.controllerForm})}function S(){F("ex-admin/plugin-curd-controller-Database/getTable").then(t=>{e.tables=t.data.map(n=>(n.tableName=n.name,n.dataRef=n,n.name=n.id,n.children=[],n.class="table-tree-node",n))})}function ne(t){if(e.tableVisible=!1,!t){S();return}return new Promise(n=>{F("ex-admin/plugin-curd-controller-Database/getTableColumn?table="+t.dataRef.id).then(o=>{t.dataRef.children=o.data.map(a=>(a.id=t.id+a.field,a.name=a.field,a.table=t.id,a.parent=t,a.isLeaf=!0,a)),e.tables=[...e.tables],n()})})}function U(t){Me.confirm({title:"\u5220\u9664\u8868",content:"\u786E\u8BA4\u5220\u9664\u8868\uFF0C\u4E0D\u53EF\u6062\u590D\uFF1F",onOk(){F.delete("/ex-admin/plugin-curd-controller-Database/grid",{data:{ex_admin_action:"delete",ex_admin_sidebar:!0,ids:[t]}}).then(n=>{S()})}})}function oe(t,n,o){Me.confirm({title:"\u5220\u9664\u8868\u5B57\u6BB5",content:"\u786E\u8BA4\u5220\u9664\u8868\u5B57\u6BB5\uFF0C\u4E0D\u53EF\u6062\u590D\uFF1F",onOk(){F.delete("/ex-admin/plugin-curd-controller-Database/grid",{data:{ex_admin_action:"delete",ex_admin_trashed:"false",table:t,ids:[n]}}).then(a=>{ne(o)})}})}function de(t,n,o){e.tableTreeNode=o,e.tableModalTitle="\u7F16\u8F91\u5B57\u6BB5",e.tableModalRender=null,F.put("/ex-admin/plugin-curd-controller-Database/form",{table:t,field:n}).then(a=>{e.tableVisible=!0,e.tableModalRender=a,e.tableModalRender.footer=a.content.footer[0],delete e.tableModalRender.content.footer})}function ie(){e.tableTreeNode=null,e.tableModalTitle="\u6DFB\u52A0\u8868",e.tableModalRender=null,F.post("/ex-admin/plugin-curd-controller-Database/tableForm").then(t=>{e.tableVisible=!0,e.tableModalRender=t,e.tableModalRender.footer=t.content.footer[0],delete e.tableModalRender.content.footer})}function c(){e.tableTreeNode=null,e.tableModalTitle="\u8868\u9884\u8BBE\u5B57\u6BB5",e.tableModalRender=null,F.post("/ex-admin/plugin-curd-controller-Database/presetFields").then(t=>{e.tableVisible=!0,e.tableModalRender=t,e.tableModalRender.footer=t.content.footer[0],delete e.tableModalRender.content.footer})}function f(t){e.tableTreeNode=null,e.tableModalTitle="\u7F16\u8F91\u8868",e.tableModalRender=null,F.post("/ex-admin/plugin-curd-controller-Database/tableForm",{id:t}).then(n=>{e.tableVisible=!0,e.tableModalRender=n,e.tableModalRender.footer=n.content.footer[0],delete e.tableModalRender.content.footer})}function T(t){e.tableModalTitle="\u5173\u8054\u8868(\u6A21\u578B)",e.tableModalRender=null,F.post("/ex-admin/plugin-curd-controller-Database/modelRelationForm",{table:t}).then(n=>{e.tableVisible=!0,e.tableModalRender=n,e.tableModalRender.footer=n.content.footer[0],delete e.tableModalRender.content.footer})}function ye(t){e.tableModalTitle="\u6DFB\u52A0\u8868\u5B57\u6BB5",e.tableModalRender=null,F.post("/ex-admin/plugin-curd-controller-Database/form",{table:t}).then(n=>{e.tableVisible=!0,e.tableModalRender=n,e.tableModalRender.footer=n.content.footer[0],delete e.tableModalRender.content.footer})}function Ce(){e.methodIndex=-1,F({url:"ex-admin/plugin-curd-controller-Index/getMethod",method:"post",data:{curd_ref:p.attrs.curd_ref,class:e.controller[e.controllerIndex].class,controller:e.controller[e.controllerIndex].name,table:e.controller[e.controllerIndex].table,id:e.controller[e.controllerIndex].id}}).then(t=>{e.methodForm=t.data.methodForm,e.method=t.data.list})}function xe(){F({url:"ex-admin/plugin-curd-controller-Index/deleteMethod",method:"post",data:{class:e.controller[e.controllerIndex].class,controller:e.controller[e.controllerIndex].name,method:e.method[e.methodIndex].name,id:e.method[e.methodIndex].id}}).then(t=>{e.methodIndex=-1,e.method.splice(e.methodIndex,1)})}function ke(){const t=e.controller[e.controllerIndex];F({url:"ex-admin/plugin-curd-controller-Index/deleteController",method:"post",data:{id:t.id,path:t.path}}).then(n=>{e.controllerIndex=-1,Q(),e.method=[]})}function me(t,n=!0){e.methodIndex=t,e.settingForm=null,F({url:"ex-admin/plugin-curd-controller-Index/render",method:"post",data:{class:e.controller[e.controllerIndex].class,function:e.method[e.methodIndex].name,var:[]}}).then(o=>{e.isSave=!0,N(o.data),e.drawingMain.component=o.data})}function Re(t,n){n.mouseenter=!0,e.tableTreeNode=n,e.tables=[...e.tables]}function Ae(t,n){n.mouseenter=!1,e.tables=[...e.tables]}function we(t){t.newIndex!==t.oldIndex&&F.post("ex-admin/plugin-curd-controller-Database/sortField",{table:t.item.__draggable_context.element.table,field:t.item.__draggable_context.element.field,sort:t.newIndex})}function Ie(t){if(!t.component)return!1;let n=W.exports.cloneDeep(t.component);if(n.name=="AFormItem"){let a=n.content.default[0].attribute.drawingForm,s=a.bind[a.bindAttribute.model];if(a.attribute.key=re(20),s.field||(s.field=re(20)),n.attribute.validateFormField=e.drawingMain.component.bindAttribute.validateField,n.content.default[0].name=="ExFormMany"){let r=[];n.content.default[0].content={default:I(n.content.default[0].name,r,n.content.default[0])}}}let o=[];if(n.name=="ARow"){let a=[];n.content.default[0].content={default:I("ACol",a)},o=n.content.default,n.content={default:I(n.name,o,n)}}else if(n.name=="ACol")n.content={default:I(n.name,o,n)};else if(n.name=="ATabs"){let a=n.content.default[0];a.content={default:I("ATabPane",o,a)},n.content={default:[a]}}return n}function fe(t){J()}function Ee(t){return!(t.relatedContext.element&&!t.relatedContext.element.table&&!t.draggedContext.element.component)}function Te(t){if(t){const n=e.controller[e.controllerIndex];e.controllerEditForm=W.exports.cloneDeep(e.controllerForm);let o=e.controllerEditForm.content.content[0].attribute.params;o.id=n.id,o.class=n.class,o.path=n.path,o.title=n.title,o.name=n.name,o.table=n.table}}function De(t){if(t){const n=e.method[e.methodIndex];e.methodEditForm=W.exports.cloneDeep(e.methodForm);let o=e.methodEditForm.content.content[0].attribute.params;o.id=n.id,o.type=n.type,o.name=n.name,o.oldTitle=n.title}}return _e({onFieldMove:Ee,onMove:y,onCloneMove:ee,onEnd:fe,onClone:Ie,relationTable:T,onFieldSort:we,addTable:ie,presetFields:c,editTableField:de,editTable:f,deleteTable:U,addTableField:ye,tableMouseLeave:Ae,tableMouseenter:Re,onLoadTable:ne,deleteTableField:oe,getController:Q,watchModel:z,dragSave:te,getRender:me,getMethod:Ce,deleteMethod:xe,deleteController:ke,getTable:S,controllerFormVisible:Te,methodFormVisible:De,dragRef:ce,drawingRef:ue,setRef:ae,tableMenus:j},We(e))}}),se=l=>(He("data-v-18921aa6"),l=l(),Ke(),l),Xe=R(" \u6DFB\u52A0 "),Ye=R(" \u7F16\u8F91 "),Ze=R(" \u5220\u9664 "),et={class:"flex-column"},tt={class:"title"},nt=se(()=>u("span",null,"\u63A7\u5236\u5668",-1)),ot={class:"flex-1-auto"},lt=["onContextmenu","onClick"],at={class:"name"},dt={class:"desc"},it=R(" \u6DFB\u52A0 "),rt=R(" \u7F16\u8F91 "),st=R(" \u5220\u9664 "),ct={class:"flex-column"},ut={class:"title"},mt=se(()=>u("span",null,"\u65B9\u6CD5",-1)),ft={class:"flex-1-auto"},bt=["onContextmenu","onClick"],pt={class:"name"},ht={class:"desc"},gt={class:"flex-column"},_t={style:{margin:"0 10px 10px 10px"}},vt=R("\u6DFB\u52A0\u8868"),Ft=R("\u8868\u9884\u8BBE\u5B57\u6BB5"),Mt=["onMouseenter","onMouseleave"],yt={class:"table-tree-title"},Ct=["title"],xt={key:0,class:"table-tree-action-table"},kt=["title"],Rt=["onMouseenter","onMouseleave"],At={class:"table-tree-title"},wt=["title"],It={key:0,class:"table-tree-action"},Et=["title"],Tt={class:"components"},Dt={style:{display:"flex","align-items":"center",margin:"5px"}},Ot=se(()=>u("i",{class:"fas fa-layer-group"},null,-1)),Vt={style:{"margin-left":"5px"}},Lt={class:"components-draggable"},$t={class:"components-item"},St={class:"components-body"},zt={class:"header"},Nt=R("(ctrl+s)"),Bt={class:"drawing scrollbar",ref:"drawingRef"},Pt={style:{display:"none"}};function Ut(l,p,A,e,ce,ue){const j=_("PlusOutlined"),C=_("render"),E=_("a-menu-item"),L=_("EditOutlined"),G=_("question-circle-outlined"),z=_("DeleteOutlined"),Z=_("a-popconfirm"),N=_("a-menu"),ee=_("ReloadOutlined"),y=_("a-button"),I=_("a-tooltip"),H=_("a-dropdown"),$=_("a-layout-sider"),K=_("a-modal"),J=_("reload-outlined"),B=_("a-space"),te=_("a-input"),P=_("FolderOutlined"),ae=_("NodeIndexOutlined"),Q=_("FileOutlined"),S=_("draggable"),ne=_("a-sub-menu"),U=_("a-tab-pane"),oe=_("a-tabs"),de=_("a-layout-content"),ie=_("a-layout");return v(),w(ie,{class:"layout"},{default:i(()=>[d($,{width:130,class:"controller scrollbar"},{default:i(()=>[d(H,{trigger:["contextmenu"],onVisibleChange:l.controllerFormVisible},{overlay:i(()=>[d(N,null,{default:i(()=>[d(E,null,{default:i(()=>[d(C,{data:l.controllerEditForm},{default:i(()=>[d(j),Xe]),_:1},8,["data"])]),_:1}),l.controllerIndex>-1?(v(),w(E,{key:0},{default:i(()=>[d(C,{data:l.controllerEditForm},{default:i(()=>[d(L),Ye]),_:1},8,["data"])]),_:1})):D("",!0),l.controllerIndex>-1?(v(),w(Z,{key:1,title:"\u786E\u8BA4\u5220\u9664\uFF1F",onConfirm:p[0]||(p[0]=c=>l.deleteController())},{icon:i(()=>[d(G,{style:{color:"red"}})]),default:i(()=>[d(E,null,{icon:i(()=>[d(z)]),default:i(()=>[Ze]),_:1})]),_:1})):D("",!0)]),_:1})]),default:i(()=>[u("div",et,[u("div",tt,[nt,u("div",null,[d(C,{data:l.controllerForm},null,8,["data"]),d(y,{size:"small",shape:"circle",onClick:l.getController},{icon:i(()=>[d(ee)]),_:1},8,["onClick"])])]),u("ul",ot,[(v(!0),O(Y,null,X(l.controller,(c,f)=>(v(),O("li",{key:f,onContextmenu:V(T=>l.controllerIndex=f,["prevent"]),onClick:T=>{l.controllerIndex=f,l.getMethod()},class:le(l.controllerIndex==f?"active":"")},[d(I,{placement:"bottom",mouseEnterDelay:1},{title:i(()=>[R(k(c.title),1)]),default:i(()=>[u("div",at,k(c.title),1)]),_:2},1024),d(I,{placement:"bottom",mouseEnterDelay:1},{title:i(()=>[R(k(c.path),1)]),default:i(()=>[u("div",dt,k(c.name),1)]),_:2},1024)],42,lt))),128))])])]),_:1},8,["onVisibleChange"])]),_:1}),d($,{width:130,class:"controller scrollbar"},{default:i(()=>[d(H,{trigger:["contextmenu"],onVisibleChange:l.methodFormVisible},{overlay:i(()=>[d(N,null,{default:i(()=>[l.controllerIndex>-1?(v(),w(E,{key:0},{default:i(()=>[d(C,{data:l.methodForm},{default:i(()=>[d(j),it]),_:1},8,["data"])]),_:1})):D("",!0),l.methodIndex>-1?(v(),w(E,{key:1},{default:i(()=>[d(C,{data:l.methodEditForm},{default:i(()=>[d(L),rt]),_:1},8,["data"])]),_:1})):D("",!0),l.methodIndex>-1?(v(),w(Z,{key:2,title:"\u786E\u8BA4\u5220\u9664\uFF1F",onConfirm:p[1]||(p[1]=c=>l.deleteMethod())},{icon:i(()=>[d(G,{style:{color:"red"}})]),default:i(()=>[d(E,null,{icon:i(()=>[d(z)]),default:i(()=>[st]),_:1})]),_:1})):D("",!0)]),_:1})]),default:i(()=>[u("div",ct,[u("div",ut,[mt,u("div",null,[d(C,{disabled:l.controllerIndex==-1,data:l.methodForm},null,8,["disabled","data"]),d(y,{size:"small",shape:"circle",onClick:p[2]||(p[2]=c=>l.getMethod())},{icon:i(()=>[d(ee)]),_:1})])]),u("ul",ft,[(v(!0),O(Y,null,X(l.method,(c,f)=>(v(),O("li",{key:f,onContextmenu:V(T=>l.methodIndex=f,["prevent"]),onClick:T=>l.getRender(f),class:le(l.methodIndex==f?"active":"")},[d(I,{placement:"bottom",mouseEnterDelay:1},{title:i(()=>[R(k(c.title),1)]),default:i(()=>[u("div",pt,k(c.title),1)]),_:2},1024),d(I,{placement:"bottom",mouseEnterDelay:1},{title:i(()=>[R(k(c.name),1)]),default:i(()=>[u("div",ht,k(c.name),1)]),_:2},1024)],42,bt))),128))])])]),_:1},8,["onVisibleChange"])]),_:1}),d($,{width:300,class:"scrollbar",ref:"dragRef"},{default:i(()=>[d(oe,{type:"card",class:"curd-tabs"},{default:i(()=>[d(U,{key:"1",tab:"\u6570\u636E\u5E93",style:{height:"100%"}},{default:i(()=>[d(K,{visible:l.tableVisible,"onUpdate:visible":p[4]||(p[4]=c=>l.tableVisible=c),title:l.tableModalTitle,width:"1000px"},{footer:i(()=>[l.tableModalRender?(v(),w(C,{key:0,data:l.tableModalRender.footer},null,8,["data"])):D("",!0)]),default:i(()=>[d(C,{data:l.tableModalRender,onSuccess:p[3]||(p[3]=c=>l.onLoadTable(l.tableTreeNode))},null,8,["data"])]),_:1},8,["visible","title"]),u("div",gt,[u("div",_t,[d(B,{style:{"margin-bottom":"10px"}},{default:i(()=>[d(y,{onClick:l.addTable},{default:i(()=>[vt]),_:1},8,["onClick"]),d(y,{onClick:l.presetFields},{default:i(()=>[Ft]),_:1},8,["onClick"]),d(y,{shape:"circle",size:"small",onClick:l.getTable},{icon:i(()=>[d(J)]),_:1},8,["onClick"])]),_:1}),d(te,{value:l.searchTable,"onUpdate:value":p[5]||(p[5]=c=>l.searchTable=c),size:"small",placeholder:"\u641C\u7D22\u8868","allow-clear":""},null,8,["value"])]),d(N,{mode:"inline",class:"curd-table-tree",selectable:!1},{default:i(()=>[(v(!0),O(Y,null,X(l.tableMenus,c=>(v(),w(ne,{key:c.id,onTitleClick:f=>l.onLoadTable(c)},{title:i(()=>[u("div",{onMouseenter:f=>l.tableMouseenter(f,c),onMouseleave:f=>l.tableMouseLeave(f,c)},[u("div",yt,[d(P),u("div",{class:"field-title",title:c.name},k(c.name),9,Ct),c.mouseenter?(v(),O("div",xt,[d(y,{shape:"circle",size:"small",onClick:V(f=>l.onLoadTable(c),["stop"])},{icon:i(()=>[d(J)]),_:2},1032,["onClick"]),d(y,{shape:"circle",size:"small",onClick:V(f=>l.addTableField(c.id),["stop"])},{icon:i(()=>[d(j)]),_:2},1032,["onClick"]),d(y,{shape:"circle",size:"small",onClick:V(f=>l.editTable(c.id),["stop"])},{icon:i(()=>[d(L)]),_:2},1032,["onClick"]),d(y,{shape:"circle",size:"small",onClick:V(f=>l.relationTable(c.id),["stop"])},{icon:i(()=>[d(ae)]),_:2},1032,["onClick"]),d(y,{shape:"circle",size:"small",onClick:V(f=>l.deleteTable(c.id),["stop"])},{icon:i(()=>[d(z)]),_:2},1032,["onClick"])])):D("",!0)]),u("div",{class:"field-title-desc",title:c.comment},k(c.comment),9,kt)],40,Mt)]),default:i(()=>[d(S,{style:{width:"100%"},list:c.children,onSort:l.onFieldSort,clone:l.onClone,move:l.onFieldMove,onEnd:l.onEnd,group:{pull:"clone",put:!1},"item-key":"id"},{item:i(({element:f})=>[u("div",{onMouseenter:T=>l.tableMouseenter(T,f),onMouseleave:T=>l.tableMouseLeave(T,f)},[(v(),w(E,{key:f.id},{default:i(()=>[u("div",At,[d(Q),u("div",{class:"field-title",title:f.name},k(f.name),9,wt),f.mouseenter?(v(),O("div",It,[d(y,{shape:"circle",size:"small",onClick:V(T=>l.editTableField(c.id,f.field,c),["stop"])},{icon:i(()=>[d(L)]),_:2},1032,["onClick"]),d(y,{shape:"circle",size:"small",onClick:V(T=>l.deleteTableField(c.id,f.field,c),["stop"])},{icon:i(()=>[d(z)]),_:2},1032,["onClick"])])):D("",!0)]),u("div",{class:"field-title-desc",title:f.comment},k(f.comment),9,Et)]),_:2},1024))],40,Rt)]),_:2},1032,["list","onSort","clone","move","onEnd"])]),_:2},1032,["onTitleClick"]))),128))]),_:1})])]),_:1}),d(U,{key:"2",tab:"\u8868\u5355\u8BBE\u8BA1",forceRender:""},{default:i(()=>[(v(!0),O(Y,null,X(l.componentList,c=>(v(),O("div",Tt,[u("div",Dt,[Ot,u("div",Vt,k(c.label),1)]),u("div",Lt,[d(S,{list:c.options,sort:!1,clone:l.onClone,onEnd:l.onEnd,move:l.onCloneMove,"chosen-class":"chosen-class",group:{name:"components",pull:"clone",put:!1}},{item:i(({element:f})=>[u("div",$t,[u("div",St,[u("i",{class:le(f.icon)},null,2),R(" "+k(f.label),1)])])]),_:2},1032,["list","clone","onEnd","move"])])]))),256))]),_:1})]),_:1})]),_:1},512),d(de,{class:"main"},{default:i(()=>[u("div",zt,[d(B,null,{default:i(()=>[d(y,{onClick:l.dragSave},{default:i(()=>[u("span",{style:je(l.isSave?"":"color: red;")},"\u4FDD\u5B58",4),Nt]),_:1},8,["onClick"])]),_:1})]),u("div",Bt,[d(C,{ref:c=>l.setRef(c),data:l.drawingMain.component},null,8,["data"])],512)]),_:1}),u("div",{class:"collapse",onClick:p[6]||(p[6]=c=>l.settingFormVisible=!l.settingFormVisible)},[u("i",{class:le(l.settingFormVisible?"fas fa-angle-double-right":"fas fa-angle-double-left")},null,2)]),l.settingFormVisible?(v(),w($,{key:0,width:360,class:"settingForm scrollbar"},{default:i(()=>[d(oe,{type:"card",class:"curd-tabs"},{default:i(()=>[l.settingForm?(v(),w(U,{key:"1",tab:"\u7EC4\u4EF6\u5C5E\u6027"},{default:i(()=>[d(C,{data:l.settingForm,onWatchModel:l.watchModel},null,8,["data","onWatchModel"])]),_:1})):D("",!0),d(U,{key:"2",tab:"\u5C5E\u6027",forceRender:""},{default:i(()=>[l.drawingMain.component?(v(),w(C,{key:0,data:l.drawingMain.component.attribute.drawingForm,onWatchModel:l.watchModel},null,8,["data","onWatchModel"])):D("",!0)]),_:1})]),_:1})]),_:1})):D("",!0),u("div",Pt,[(v(!0),O(Y,null,X(l.settingFormList,c=>(v(),w(C,{data:c,onWatchModel:l.watchModel},null,8,["data","onWatchModel"]))),256))])]),_:1})}var On=$e(Qe,[["render",Ut],["__scopeId","data-v-18921aa6"]]);export{On as default}; diff --git a/public/exadmin/assets/js-cookie.31874410.js b/public/exadmin/assets/js-cookie.31874410.js new file mode 100644 index 0000000..10c4507 --- /dev/null +++ b/public/exadmin/assets/js-cookie.31874410.js @@ -0,0 +1 @@ +/*! js-cookie v3.0.1 | MIT */function d(r){for(var t=1;t>2]|=t[s]<>6,a[o++]=128|r&63):r<55296||r>=57344?(a[o++]=224|r>>12,a[o++]=128|r>>6&63,a[o++]=128|r&63):(r=65536+((r&1023)<<10|t.charCodeAt(++s)&1023),a[o++]=240|r>>18,a[o++]=128|r>>12&63,a[o++]=128|r>>6&63,a[o++]=128|r&63);else for(o=this.start;s>2]|=r<>2]|=(192|r>>6)<>2]|=(128|r&63)<=57344?(h[o>>2]|=(224|r>>12)<>2]|=(128|r>>6&63)<>2]|=(128|r&63)<>2]|=(240|r>>18)<>2]|=(128|r>>12&63)<>2]|=(128|r>>6&63)<>2]|=(128|r&63)<=64?(this.start=o-64,this.hash(),this.hashed=!0):this.start=o}return this.bytes>4294967295&&(this.hBytes+=this.bytes/4294967296<<0,this.bytes=this.bytes%4294967296),this}},Md5.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var t=this.blocks,e=this.lastByteIndex;t[e>>2]|=EXTRA[e&3],e>=56&&(this.hashed||this.hash(),t[0]=t[16],t[16]=t[1]=t[2]=t[3]=t[4]=t[5]=t[6]=t[7]=t[8]=t[9]=t[10]=t[11]=t[12]=t[13]=t[14]=t[15]=0),t[14]=this.bytes<<3,t[15]=this.hBytes<<3|this.bytes>>>29,this.hash()}},Md5.prototype.hash=function(){var t,e,i,r,s,o,f=this.blocks;this.first?(t=f[0]-680876937,t=(t<<7|t>>>25)-271733879<<0,r=(-1732584194^t&2004318071)+f[1]-117830708,r=(r<<12|r>>>20)+t<<0,i=(-271733879^r&(t^-271733879))+f[2]-1126478375,i=(i<<17|i>>>15)+r<<0,e=(t^i&(r^t))+f[3]-1316259209,e=(e<<22|e>>>10)+i<<0):(t=this.h0,e=this.h1,i=this.h2,r=this.h3,t+=(r^e&(i^r))+f[0]-680876936,t=(t<<7|t>>>25)+e<<0,r+=(i^t&(e^i))+f[1]-389564586,r=(r<<12|r>>>20)+t<<0,i+=(e^r&(t^e))+f[2]+606105819,i=(i<<17|i>>>15)+r<<0,e+=(t^i&(r^t))+f[3]-1044525330,e=(e<<22|e>>>10)+i<<0),t+=(r^e&(i^r))+f[4]-176418897,t=(t<<7|t>>>25)+e<<0,r+=(i^t&(e^i))+f[5]+1200080426,r=(r<<12|r>>>20)+t<<0,i+=(e^r&(t^e))+f[6]-1473231341,i=(i<<17|i>>>15)+r<<0,e+=(t^i&(r^t))+f[7]-45705983,e=(e<<22|e>>>10)+i<<0,t+=(r^e&(i^r))+f[8]+1770035416,t=(t<<7|t>>>25)+e<<0,r+=(i^t&(e^i))+f[9]-1958414417,r=(r<<12|r>>>20)+t<<0,i+=(e^r&(t^e))+f[10]-42063,i=(i<<17|i>>>15)+r<<0,e+=(t^i&(r^t))+f[11]-1990404162,e=(e<<22|e>>>10)+i<<0,t+=(r^e&(i^r))+f[12]+1804603682,t=(t<<7|t>>>25)+e<<0,r+=(i^t&(e^i))+f[13]-40341101,r=(r<<12|r>>>20)+t<<0,i+=(e^r&(t^e))+f[14]-1502002290,i=(i<<17|i>>>15)+r<<0,e+=(t^i&(r^t))+f[15]+1236535329,e=(e<<22|e>>>10)+i<<0,t+=(i^r&(e^i))+f[1]-165796510,t=(t<<5|t>>>27)+e<<0,r+=(e^i&(t^e))+f[6]-1069501632,r=(r<<9|r>>>23)+t<<0,i+=(t^e&(r^t))+f[11]+643717713,i=(i<<14|i>>>18)+r<<0,e+=(r^t&(i^r))+f[0]-373897302,e=(e<<20|e>>>12)+i<<0,t+=(i^r&(e^i))+f[5]-701558691,t=(t<<5|t>>>27)+e<<0,r+=(e^i&(t^e))+f[10]+38016083,r=(r<<9|r>>>23)+t<<0,i+=(t^e&(r^t))+f[15]-660478335,i=(i<<14|i>>>18)+r<<0,e+=(r^t&(i^r))+f[4]-405537848,e=(e<<20|e>>>12)+i<<0,t+=(i^r&(e^i))+f[9]+568446438,t=(t<<5|t>>>27)+e<<0,r+=(e^i&(t^e))+f[14]-1019803690,r=(r<<9|r>>>23)+t<<0,i+=(t^e&(r^t))+f[3]-187363961,i=(i<<14|i>>>18)+r<<0,e+=(r^t&(i^r))+f[8]+1163531501,e=(e<<20|e>>>12)+i<<0,t+=(i^r&(e^i))+f[13]-1444681467,t=(t<<5|t>>>27)+e<<0,r+=(e^i&(t^e))+f[2]-51403784,r=(r<<9|r>>>23)+t<<0,i+=(t^e&(r^t))+f[7]+1735328473,i=(i<<14|i>>>18)+r<<0,e+=(r^t&(i^r))+f[12]-1926607734,e=(e<<20|e>>>12)+i<<0,s=e^i,t+=(s^r)+f[5]-378558,t=(t<<4|t>>>28)+e<<0,r+=(s^t)+f[8]-2022574463,r=(r<<11|r>>>21)+t<<0,o=r^t,i+=(o^e)+f[11]+1839030562,i=(i<<16|i>>>16)+r<<0,e+=(o^i)+f[14]-35309556,e=(e<<23|e>>>9)+i<<0,s=e^i,t+=(s^r)+f[1]-1530992060,t=(t<<4|t>>>28)+e<<0,r+=(s^t)+f[4]+1272893353,r=(r<<11|r>>>21)+t<<0,o=r^t,i+=(o^e)+f[7]-155497632,i=(i<<16|i>>>16)+r<<0,e+=(o^i)+f[10]-1094730640,e=(e<<23|e>>>9)+i<<0,s=e^i,t+=(s^r)+f[13]+681279174,t=(t<<4|t>>>28)+e<<0,r+=(s^t)+f[0]-358537222,r=(r<<11|r>>>21)+t<<0,o=r^t,i+=(o^e)+f[3]-722521979,i=(i<<16|i>>>16)+r<<0,e+=(o^i)+f[6]+76029189,e=(e<<23|e>>>9)+i<<0,s=e^i,t+=(s^r)+f[9]-640364487,t=(t<<4|t>>>28)+e<<0,r+=(s^t)+f[12]-421815835,r=(r<<11|r>>>21)+t<<0,o=r^t,i+=(o^e)+f[15]+530742520,i=(i<<16|i>>>16)+r<<0,e+=(o^i)+f[2]-995338651,e=(e<<23|e>>>9)+i<<0,t+=(i^(e|~r))+f[0]-198630844,t=(t<<6|t>>>26)+e<<0,r+=(e^(t|~i))+f[7]+1126891415,r=(r<<10|r>>>22)+t<<0,i+=(t^(r|~e))+f[14]-1416354905,i=(i<<15|i>>>17)+r<<0,e+=(r^(i|~t))+f[5]-57434055,e=(e<<21|e>>>11)+i<<0,t+=(i^(e|~r))+f[12]+1700485571,t=(t<<6|t>>>26)+e<<0,r+=(e^(t|~i))+f[3]-1894986606,r=(r<<10|r>>>22)+t<<0,i+=(t^(r|~e))+f[10]-1051523,i=(i<<15|i>>>17)+r<<0,e+=(r^(i|~t))+f[1]-2054922799,e=(e<<21|e>>>11)+i<<0,t+=(i^(e|~r))+f[8]+1873313359,t=(t<<6|t>>>26)+e<<0,r+=(e^(t|~i))+f[15]-30611744,r=(r<<10|r>>>22)+t<<0,i+=(t^(r|~e))+f[6]-1560198380,i=(i<<15|i>>>17)+r<<0,e+=(r^(i|~t))+f[13]+1309151649,e=(e<<21|e>>>11)+i<<0,t+=(i^(e|~r))+f[4]-145523070,t=(t<<6|t>>>26)+e<<0,r+=(e^(t|~i))+f[11]-1120210379,r=(r<<10|r>>>22)+t<<0,i+=(t^(r|~e))+f[2]+718787259,i=(i<<15|i>>>17)+r<<0,e+=(r^(i|~t))+f[9]-343485551,e=(e<<21|e>>>11)+i<<0,this.first?(this.h0=t+1732584193<<0,this.h1=e-271733879<<0,this.h2=i-1732584194<<0,this.h3=r+271733878<<0,this.first=!1):(this.h0=this.h0+t<<0,this.h1=this.h1+e<<0,this.h2=this.h2+i<<0,this.h3=this.h3+r<<0)},Md5.prototype.hex=function(){this.finalize();var t=this.h0,e=this.h1,i=this.h2,r=this.h3;return HEX_CHARS[t>>4&15]+HEX_CHARS[t&15]+HEX_CHARS[t>>12&15]+HEX_CHARS[t>>8&15]+HEX_CHARS[t>>20&15]+HEX_CHARS[t>>16&15]+HEX_CHARS[t>>28&15]+HEX_CHARS[t>>24&15]+HEX_CHARS[e>>4&15]+HEX_CHARS[e&15]+HEX_CHARS[e>>12&15]+HEX_CHARS[e>>8&15]+HEX_CHARS[e>>20&15]+HEX_CHARS[e>>16&15]+HEX_CHARS[e>>28&15]+HEX_CHARS[e>>24&15]+HEX_CHARS[i>>4&15]+HEX_CHARS[i&15]+HEX_CHARS[i>>12&15]+HEX_CHARS[i>>8&15]+HEX_CHARS[i>>20&15]+HEX_CHARS[i>>16&15]+HEX_CHARS[i>>28&15]+HEX_CHARS[i>>24&15]+HEX_CHARS[r>>4&15]+HEX_CHARS[r&15]+HEX_CHARS[r>>12&15]+HEX_CHARS[r>>8&15]+HEX_CHARS[r>>20&15]+HEX_CHARS[r>>16&15]+HEX_CHARS[r>>28&15]+HEX_CHARS[r>>24&15]},Md5.prototype.toString=Md5.prototype.hex,Md5.prototype.digest=function(){this.finalize();var t=this.h0,e=this.h1,i=this.h2,r=this.h3;return[t&255,t>>8&255,t>>16&255,t>>24&255,e&255,e>>8&255,e>>16&255,e>>24&255,i&255,i>>8&255,i>>16&255,i>>24&255,r&255,r>>8&255,r>>16&255,r>>24&255]},Md5.prototype.array=Md5.prototype.digest,Md5.prototype.arrayBuffer=function(){this.finalize();var t=new ArrayBuffer(16),e=new Uint32Array(t);return e[0]=this.h0,e[1]=this.h1,e[2]=this.h2,e[3]=this.h3,t},Md5.prototype.buffer=Md5.prototype.arrayBuffer,Md5.prototype.base64=function(){for(var t,e,i,r="",s=this.array(),o=0;o<15;)t=s[o++],e=s[o++],i=s[o++],r+=BASE64_ENCODE_CHAR[t>>>2]+BASE64_ENCODE_CHAR[(t<<4|e>>>4)&63]+BASE64_ENCODE_CHAR[(e<<2|i>>>6)&63]+BASE64_ENCODE_CHAR[i&63];return t=s[o],r+=BASE64_ENCODE_CHAR[t>>>2]+BASE64_ENCODE_CHAR[t<<4&63]+"==",r};var exports=createMethod();COMMON_JS?module.exports=exports:root.md5=exports})()})(md5$1);var md5=md5$1.exports;export{md5 as m}; diff --git a/public/exadmin/assets/linkify-it.92c30060.js b/public/exadmin/assets/linkify-it.92c30060.js new file mode 100644 index 0000000..d8d9459 --- /dev/null +++ b/public/exadmin/assets/linkify-it.92c30060.js @@ -0,0 +1 @@ +import{r as y,a as g,b as v,c as C}from"./uc.micro.981ceb7b.js";var k=function(_){var t={};_=_||{},t.src_Any=y.source,t.src_Cc=g.source,t.src_Z=v.source,t.src_P=C.source,t.src_ZPCc=[t.src_Z,t.src_P,t.src_Cc].join("|"),t.src_ZCc=[t.src_Z,t.src_Cc].join("|");var r="[><\uFF5C]";return t.src_pseudo_letter="(?:(?!"+r+"|"+t.src_ZPCc+")"+t.src_Any+")",t.src_ip4="(?:(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)",t.src_auth="(?:(?:(?!"+t.src_ZCc+"|[@/\\[\\]()]).)+@)?",t.src_port="(?::(?:6(?:[0-4]\\d{3}|5(?:[0-4]\\d{2}|5(?:[0-2]\\d|3[0-5])))|[1-5]?\\d{1,4}))?",t.src_host_terminator="(?=$|"+r+"|"+t.src_ZPCc+")(?!"+(_["---"]?"-(?!--)|":"-|")+"_|:\\d|\\.-|\\.(?!$|"+t.src_ZPCc+"))",t.src_path="(?:[/?#](?:(?!"+t.src_ZCc+"|"+r+`|[()[\\]{}.,"'?!\\-;]).|\\[(?:(?!`+t.src_ZCc+"|\\]).)*\\]|\\((?:(?!"+t.src_ZCc+"|[)]).)*\\)|\\{(?:(?!"+t.src_ZCc+'|[}]).)*\\}|\\"(?:(?!'+t.src_ZCc+`|["]).)+\\"|\\'(?:(?!`+t.src_ZCc+"|[']).)+\\'|\\'(?="+t.src_pseudo_letter+"|[-])|\\.{2,}[a-zA-Z0-9%/&]|\\.(?!"+t.src_ZCc+"|[.]|$)|"+(_["---"]?"\\-(?!--(?:[^-]|$))(?:-*)|":"\\-+|")+",(?!"+t.src_ZCc+"|$)|;(?!"+t.src_ZCc+"|$)|\\!+(?!"+t.src_ZCc+"|[!]|$)|\\?(?!"+t.src_ZCc+"|[?]|$))+|\\/)?",t.src_email_name='[\\-;:&=\\+\\$,\\.a-zA-Z0-9_][\\-;:&=\\+\\$,\\"\\.a-zA-Z0-9_]*',t.src_xn="xn--[a-z0-9\\-]{1,59}",t.src_domain_root="(?:"+t.src_xn+"|"+t.src_pseudo_letter+"{1,63})",t.src_domain="(?:"+t.src_xn+"|(?:"+t.src_pseudo_letter+")|(?:"+t.src_pseudo_letter+"(?:-|"+t.src_pseudo_letter+"){0,61}"+t.src_pseudo_letter+"))",t.src_host="(?:(?:(?:(?:"+t.src_domain+")\\.)*"+t.src_domain+"))",t.tpl_host_fuzzy="(?:"+t.src_ip4+"|(?:(?:(?:"+t.src_domain+")\\.)+(?:%TLDS%)))",t.tpl_host_no_ip_fuzzy="(?:(?:(?:"+t.src_domain+")\\.)+(?:%TLDS%))",t.src_host_strict=t.src_host+t.src_host_terminator,t.tpl_host_fuzzy_strict=t.tpl_host_fuzzy+t.src_host_terminator,t.src_host_port_strict=t.src_host+t.src_port+t.src_host_terminator,t.tpl_host_port_fuzzy_strict=t.tpl_host_fuzzy+t.src_port+t.src_host_terminator,t.tpl_host_port_no_ip_fuzzy_strict=t.tpl_host_no_ip_fuzzy+t.src_port+t.src_host_terminator,t.tpl_host_fuzzy_test="localhost|www\\.|\\.\\d{1,3}\\.|(?:\\.(?:%TLDS%)(?:"+t.src_ZPCc+"|>|$))",t.tpl_email_fuzzy="(^|"+r+'|"|\\(|'+t.src_ZCc+")("+t.src_email_name+"@"+t.tpl_host_fuzzy_strict+")",t.tpl_link_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`|\uFF5C]|"+t.src_ZPCc+"))((?![$+<=>^`|\uFF5C])"+t.tpl_host_port_fuzzy_strict+t.src_path+")",t.tpl_link_no_ip_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`|\uFF5C]|"+t.src_ZPCc+"))((?![$+<=>^`|\uFF5C])"+t.tpl_host_port_no_ip_fuzzy_strict+t.src_path+")",t};function p(_){var t=Array.prototype.slice.call(arguments,1);return t.forEach(function(r){!r||Object.keys(r).forEach(function(e){_[e]=r[e]})}),_}function l(_){return Object.prototype.toString.call(_)}function w(_){return l(_)==="[object String]"}function Z(_){return l(_)==="[object Object]"}function E(_){return l(_)==="[object RegExp]"}function f(_){return l(_)==="[object Function]"}function j(_){return _.replace(/[.?*+^$[\]\\(){}|-]/g,"\\$&")}var x={fuzzyLink:!0,fuzzyEmail:!0,fuzzyIP:!1};function $(_){return Object.keys(_||{}).reduce(function(t,r){return t||x.hasOwnProperty(r)},!1)}var b={"http:":{validate:function(_,t,r){var e=_.slice(t);return r.re.http||(r.re.http=new RegExp("^\\/\\/"+r.re.src_auth+r.re.src_host_port_strict+r.re.src_path,"i")),r.re.http.test(e)?e.match(r.re.http)[0].length:0}},"https:":"http:","ftp:":"http:","//":{validate:function(_,t,r){var e=_.slice(t);return r.re.no_http||(r.re.no_http=new RegExp("^"+r.re.src_auth+"(?:localhost|(?:(?:"+r.re.src_domain+")\\.)+"+r.re.src_domain_root+")"+r.re.src_port+r.re.src_host_terminator+r.re.src_path,"i")),r.re.no_http.test(e)?t>=3&&_[t-3]===":"||t>=3&&_[t-3]==="/"?0:e.match(r.re.no_http)[0].length:0}},"mailto:":{validate:function(_,t,r){var e=_.slice(t);return r.re.mailto||(r.re.mailto=new RegExp("^"+r.re.src_email_name+"@"+r.re.src_host_strict,"i")),r.re.mailto.test(e)?e.match(r.re.mailto)[0].length:0}}},S="a[cdefgilmnoqrstuwxz]|b[abdefghijmnorstvwyz]|c[acdfghiklmnoruvwxyz]|d[ejkmoz]|e[cegrstu]|f[ijkmor]|g[abdefghilmnpqrstuwy]|h[kmnrtu]|i[delmnoqrst]|j[emop]|k[eghimnprwyz]|l[abcikrstuvy]|m[acdeghklmnopqrstuvwxyz]|n[acefgilopruz]|om|p[aefghklmnrstwy]|qa|r[eosuw]|s[abcdeghijklmnortuvxyz]|t[cdfghjklmnortvwz]|u[agksyz]|v[aceginu]|w[fs]|y[et]|z[amw]",A="biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|\u0440\u0444".split("|");function P(_){_.__index__=-1,_.__text_cache__=""}function R(_){return function(t,r){var e=t.slice(r);return _.test(e)?e.match(_)[0].length:0}}function z(){return function(_,t){t.normalize(_)}}function u(_){var t=_.re=k(_.__opts__),r=_.__tlds__.slice();_.onCompile(),_.__tlds_replaced__||r.push(S),r.push(t.src_xn),t.src_tlds=r.join("|");function e(i){return i.replace("%TLDS%",t.src_tlds)}t.email_fuzzy=RegExp(e(t.tpl_email_fuzzy),"i"),t.link_fuzzy=RegExp(e(t.tpl_link_fuzzy),"i"),t.link_no_ip_fuzzy=RegExp(e(t.tpl_link_no_ip_fuzzy),"i"),t.host_fuzzy_test=RegExp(e(t.tpl_host_fuzzy_test),"i");var c=[];_.__compiled__={};function a(i,s){throw new Error('(LinkifyIt) Invalid schema "'+i+'": '+s)}Object.keys(_.__schemas__).forEach(function(i){var s=_.__schemas__[i];if(s!==null){var h={validate:null,link:null};if(_.__compiled__[i]=h,Z(s)){E(s.validate)?h.validate=R(s.validate):f(s.validate)?h.validate=s.validate:a(i,s),f(s.normalize)?h.normalize=s.normalize:s.normalize?a(i,s):h.normalize=z();return}if(w(s)){c.push(i);return}a(i,s)}}),c.forEach(function(i){!_.__compiled__[_.__schemas__[i]]||(_.__compiled__[i].validate=_.__compiled__[_.__schemas__[i]].validate,_.__compiled__[i].normalize=_.__compiled__[_.__schemas__[i]].normalize)}),_.__compiled__[""]={validate:null,normalize:z()};var o=Object.keys(_.__compiled__).filter(function(i){return i.length>0&&_.__compiled__[i]}).map(j).join("|");_.re.schema_test=RegExp("(^|(?!_)(?:[><\uFF5C]|"+t.src_ZPCc+"))("+o+")","i"),_.re.schema_search=RegExp("(^|(?!_)(?:[><\uFF5C]|"+t.src_ZPCc+"))("+o+")","ig"),_.re.schema_at_start=RegExp("^"+_.re.schema_search.source,"i"),_.re.pretest=RegExp("("+_.re.schema_test.source+")|("+_.re.host_fuzzy_test.source+")|@","i"),P(_)}function O(_,t){var r=_.__index__,e=_.__last_index__,c=_.__text_cache__.slice(r,e);this.schema=_.__schema__.toLowerCase(),this.index=r+t,this.lastIndex=e+t,this.raw=c,this.text=c,this.url=c}function d(_,t){var r=new O(_,t);return _.__compiled__[r.schema].normalize(r,_),r}function n(_,t){if(!(this instanceof n))return new n(_,t);t||$(_)&&(t=_,_={}),this.__opts__=p({},x,t),this.__index__=-1,this.__last_index__=-1,this.__schema__="",this.__text_cache__="",this.__schemas__=p({},b,_),this.__compiled__={},this.__tlds__=A,this.__tlds_replaced__=!1,this.re={},u(this)}n.prototype.add=function(t,r){return this.__schemas__[t]=r,u(this),this};n.prototype.set=function(t){return this.__opts__=p(this.__opts__,t),this};n.prototype.test=function(t){if(this.__text_cache__=t,this.__index__=-1,!t.length)return!1;var r,e,c,a,o,i,s,h,m;if(this.re.schema_test.test(t)){for(s=this.re.schema_search,s.lastIndex=0;(r=s.exec(t))!==null;)if(a=this.testSchemaAt(t,r[2],s.lastIndex),a){this.__schema__=r[2],this.__index__=r.index+r[1].length,this.__last_index__=r.index+r[0].length+a;break}}return this.__opts__.fuzzyLink&&this.__compiled__["http:"]&&(h=t.search(this.re.host_fuzzy_test),h>=0&&(this.__index__<0||h=0&&(c=t.match(this.re.email_fuzzy))!==null&&(o=c.index+c[1].length,i=c.index+c[0].length,(this.__index__<0||othis.__last_index__)&&(this.__schema__="mailto:",this.__index__=o,this.__last_index__=i))),this.__index__>=0};n.prototype.pretest=function(t){return this.re.pretest.test(t)};n.prototype.testSchemaAt=function(t,r,e){return this.__compiled__[r.toLowerCase()]?this.__compiled__[r.toLowerCase()].validate(t,e,this):0};n.prototype.match=function(t){var r=0,e=[];this.__index__>=0&&this.__text_cache__===t&&(e.push(d(this,r)),r=this.__last_index__);for(var c=r?t.slice(r):t;this.test(c);)e.push(d(this,r)),c=c.slice(this.__last_index__),r+=this.__last_index__;return e.length?e:null};n.prototype.matchAtStart=function(t){if(this.__text_cache__=t,this.__index__=-1,!t.length)return null;var r=this.re.schema_at_start.exec(t);if(!r)return null;var e=this.testSchemaAt(t,r[2],r[0].length);return e?(this.__schema__=r[2],this.__index__=r.index+r[1].length,this.__last_index__=r.index+r[0].length+e,d(this,0)):null};n.prototype.tlds=function(t,r){return t=Array.isArray(t)?t:[t],r?(this.__tlds__=this.__tlds__.concat(t).sort().filter(function(e,c,a){return e!==a[c-1]}).reverse(),u(this),this):(this.__tlds__=t.slice(),this.__tlds_replaced__=!0,u(this),this)};n.prototype.normalize=function(t){t.schema||(t.url="http://"+t.url),t.schema==="mailto:"&&!/^mailto:/i.test(t.url)&&(t.url="mailto:"+t.url)};n.prototype.onCompile=function(){};var I=n;export{I as l}; diff --git a/public/exadmin/assets/lodash-es.0ea26897.js b/public/exadmin/assets/lodash-es.0ea26897.js new file mode 100644 index 0000000..0b7b4e6 --- /dev/null +++ b/public/exadmin/assets/lodash-es.0ea26897.js @@ -0,0 +1 @@ +var be=typeof global=="object"&&global&&global.Object===Object&&global,Sn=be,$e=typeof self=="object"&&self&&self.Object===Object&&self,ye=Sn||$e||Function("return this")(),w=ye,_e=w.Symbol,T=_e,Pn=Object.prototype,Te=Pn.hasOwnProperty,Ae=Pn.toString,K=T?T.toStringTag:void 0;function Oe(r){var n=Te.call(r,K),e=r[K];try{r[K]=void 0;var t=!0}catch{}var i=Ae.call(r);return t&&(n?r[K]=e:delete r[K]),i}var me=Object.prototype,we=me.toString;function Se(r){return we.call(r)}var Pe="[object Null]",xe="[object Undefined]",qr=T?T.toStringTag:void 0;function M(r){return r==null?r===void 0?xe:Pe:qr&&qr in Object(r)?Oe(r):Se(r)}function xn(r,n){return function(e){return r(n(e))}}var Ee=xn(Object.getPrototypeOf,Object),wr=Ee;function O(r){return r!=null&&typeof r=="object"}var Ie="[object Object]",Ce=Function.prototype,Me=Object.prototype,En=Ce.toString,Re=Me.hasOwnProperty,je=En.call(Object);function Le(r){if(!O(r)||M(r)!=Ie)return!1;var n=wr(r);if(n===null)return!0;var e=Re.call(n,"constructor")&&n.constructor;return typeof e=="function"&&e instanceof e&&En.call(e)==je}function Fe(){this.__data__=[],this.size=0}function Sr(r,n){return r===n||r!==r&&n!==n}function ar(r,n){for(var e=r.length;e--;)if(Sr(r[e][0],n))return e;return-1}var Ne=Array.prototype,De=Ne.splice;function Ue(r){var n=this.__data__,e=ar(n,r);if(e<0)return!1;var t=n.length-1;return e==t?n.pop():De.call(n,e,1),--this.size,!0}function Ge(r){var n=this.__data__,e=ar(n,r);return e<0?void 0:n[e][1]}function Be(r){return ar(this.__data__,r)>-1}function He(r,n){var e=this.__data__,t=ar(e,r);return t<0?(++this.size,e.push([r,n])):e[t][1]=n,this}function x(r){var n=-1,e=r==null?0:r.length;for(this.clear();++nu))return!1;var s=a.get(r),c=a.get(n);if(s&&c)return s==n&&c==r;var l=-1,g=!0,h=e&Ft?new U:void 0;for(a.set(r,n),a.set(n,r);++l-1&&r%1==0&&r-1&&r%1==0&&r<=hi}var vi="[object Arguments]",bi="[object Array]",$i="[object Boolean]",yi="[object Date]",_i="[object Error]",Ti="[object Function]",Ai="[object Map]",Oi="[object Number]",mi="[object Object]",wi="[object RegExp]",Si="[object Set]",Pi="[object String]",xi="[object WeakMap]",Ei="[object ArrayBuffer]",Ii="[object DataView]",Ci="[object Float32Array]",Mi="[object Float64Array]",Ri="[object Int8Array]",ji="[object Int16Array]",Li="[object Int32Array]",Fi="[object Uint8Array]",Ni="[object Uint8ClampedArray]",Di="[object Uint16Array]",Ui="[object Uint32Array]",p={};p[Ci]=p[Mi]=p[Ri]=p[ji]=p[Li]=p[Fi]=p[Ni]=p[Di]=p[Ui]=!0;p[vi]=p[bi]=p[Ei]=p[$i]=p[Ii]=p[yi]=p[_i]=p[Ti]=p[Ai]=p[Oi]=p[mi]=p[wi]=p[Si]=p[Pi]=p[xi]=!1;function Gi(r){return O(r)&&Mr(r.length)&&!!p[M(r)]}function ur(r){return function(n){return r(n)}}var Fn=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Y=Fn&&typeof module=="object"&&module&&!module.nodeType&&module,Bi=Y&&Y.exports===Fn,pr=Bi&&Sn.process,Hi=function(){try{var r=Y&&Y.require&&Y.require("util").types;return r||pr&&pr.binding&&pr.binding("util")}catch{}}(),G=Hi,rn=G&&G.isTypedArray,zi=rn?ur(rn):Gi,Nn=zi,Wi=Object.prototype,Ki=Wi.hasOwnProperty;function Dn(r,n){var e=A(r),t=!e&&Ir(r),i=!e&&!t&&tr(r),a=!e&&!t&&!i&&Nn(r),o=e||t||i||a,u=o?ii(r.length,String):[],f=u.length;for(var s in r)(n||Ki.call(r,s))&&!(o&&(s=="length"||i&&(s=="offset"||s=="parent")||a&&(s=="buffer"||s=="byteLength"||s=="byteOffset")||Cr(s,f)))&&u.push(s);return u}var Yi=Object.prototype;function Rr(r){var n=r&&r.constructor,e=typeof n=="function"&&n.prototype||Yi;return r===e}var qi=xn(Object.keys,Object),Ji=qi,Xi=Object.prototype,Zi=Xi.hasOwnProperty;function Qi(r){if(!Rr(r))return Ji(r);var n=[];for(var e in Object(r))Zi.call(r,e)&&e!="constructor"&&n.push(e);return n}function Q(r){return r!=null&&Mr(r.length)&&!In(r)}function B(r){return Q(r)?Dn(r):Qi(r)}function vr(r){return Mn(r,B,Er)}var Vi=1,ki=Object.prototype,ra=ki.hasOwnProperty;function na(r,n,e,t,i,a){var o=e&Vi,u=vr(r),f=u.length,s=vr(n),c=s.length;if(f!=c&&!o)return!1;for(var l=f;l--;){var g=u[l];if(!(o?g in n:ra.call(n,g)))return!1}var h=a.get(r),v=a.get(n);if(h&&v)return h==n&&v==r;var y=!0;a.set(r,n),a.set(n,r);for(var b=o;++l-1}function Bn(r,n,e){for(var t=-1,i=r==null?0:r.length;++t=Aa){var s=n?null:Ta(r);if(s)return Pr(s);o=!1,i=nr,f=new U}else f=n?[]:u;r:for(;++tma)return e;do n%2&&(e+=r),n=wa(n/2),n&&(r+=r);while(n);return e}function sr(r,n){for(var e=-1,t=r==null?0:r.length,i=Array(t);++ei?0:i+n),e=e>i?i:e,e<0&&(e+=i),i=n>e?0:e-n>>>0,n>>>=0;for(var a=Array(i);++t=t?r:Hn(r,n,e)}var Ea="\\ud800-\\udfff",Ia="\\u0300-\\u036f",Ca="\\ufe20-\\ufe2f",Ma="\\u20d0-\\u20ff",Ra=Ia+Ca+Ma,ja="\\ufe0e\\ufe0f",La="\\u200d",Fa=RegExp("["+La+Ea+Ra+ja+"]");function Lr(r){return Fa.test(r)}function zn(r){return function(n){return n==null?void 0:n[r]}}var Na=zn("length"),Da=Na,Wn="\\ud800-\\udfff",Ua="\\u0300-\\u036f",Ga="\\ufe20-\\ufe2f",Ba="\\u20d0-\\u20ff",Ha=Ua+Ga+Ba,za="\\ufe0e\\ufe0f",Wa="["+Wn+"]",_r="["+Ha+"]",Tr="\\ud83c[\\udffb-\\udfff]",Ka="(?:"+_r+"|"+Tr+")",Kn="[^"+Wn+"]",Yn="(?:\\ud83c[\\udde6-\\uddff]){2}",qn="[\\ud800-\\udbff][\\udc00-\\udfff]",Ya="\\u200d",Jn=Ka+"?",Xn="["+za+"]?",qa="(?:"+Ya+"(?:"+[Kn,Yn,qn].join("|")+")"+Xn+Jn+")*",Ja=Xn+Jn+qa,Xa="(?:"+[Kn+_r+"?",_r,Yn,qn,Wa].join("|")+")",dn=RegExp(Tr+"(?="+Tr+")|"+Xa+Ja,"g");function Za(r){for(var n=dn.lastIndex=0;dn.test(r);)++n;return n}function Fr(r){return Lr(r)?Za(r):Da(r)}function Qa(r){return r.split("")}var Zn="\\ud800-\\udfff",Va="\\u0300-\\u036f",ka="\\ufe20-\\ufe2f",ro="\\u20d0-\\u20ff",no=Va+ka+ro,eo="\\ufe0e\\ufe0f",to="["+Zn+"]",Ar="["+no+"]",Or="\\ud83c[\\udffb-\\udfff]",io="(?:"+Ar+"|"+Or+")",Qn="[^"+Zn+"]",Vn="(?:\\ud83c[\\udde6-\\uddff]){2}",kn="[\\ud800-\\udbff][\\udc00-\\udfff]",ao="\\u200d",re=io+"?",ne="["+eo+"]?",oo="(?:"+ao+"(?:"+[Qn,Vn,kn].join("|")+")"+ne+re+")*",uo=ne+re+oo,fo="(?:"+[Qn+Ar+"?",Ar,Vn,kn,to].join("|")+")",so=RegExp(Or+"(?="+Or+")|"+fo+uo,"g");function co(r){return r.match(so)||[]}function lo(r){return Lr(r)?co(r):Qa(r)}var go=Math.ceil;function ee(r,n){n=n===void 0?" ":jr(n);var e=n.length;if(e<2)return e?cn(n,r):n;var t=cn(n,go(r/Fr(n)));return Lr(n)?xa(lo(t),0,r).join(""):t.slice(0,r)}var po=/\s/;function ho(r){for(var n=r.length;n--&&po.test(r.charAt(n)););return n}var vo=/^\s+/;function bo(r){return r&&r.slice(0,ho(r)+1).replace(vo,"")}var pn=0/0,$o=/^[-+]0x[0-9a-f]+$/i,yo=/^0b[01]+$/i,_o=/^0o[0-7]+$/i,To=parseInt;function mr(r){if(typeof r=="number")return r;if(cr(r))return pn;if(m(r)){var n=typeof r.valueOf=="function"?r.valueOf():r;r=m(n)?n+"":n}if(typeof r!="string")return r===0?r:+r;r=bo(r);var e=yo.test(r);return e||_o.test(r)?To(r.slice(2),e?2:8):$o.test(r)?pn:+r}var hn=1/0,Ao=17976931348623157e292;function Oo(r){if(!r)return r===0?r:0;if(r=mr(r),r===hn||r===-hn){var n=r<0?-1:1;return n*Ao}return r===r?r:0}function Nr(r){var n=Oo(r),e=n%1;return n===n?e?n-e:n:0}function Dr(r){return r==null?"":jr(r)}function Ts(r,n,e){r=Dr(r),n=Nr(n);var t=n?Fr(r):0;return n&&t0&&e(u)?n>1?ae(u,n-1,e,t,i):xr(i,u):t||(i[i.length]=u)}return i}function zo(r){var n=r==null?0:r.length;return n?ae(r,1):[]}function Wo(r,n,e){switch(e.length){case 0:return r.call(n);case 1:return r.call(n,e[0]);case 2:return r.call(n,e[0],e[1]);case 3:return r.call(n,e[0],e[1],e[2])}return r.apply(n,e)}var bn=Math.max;function oe(r,n,e){return n=bn(n===void 0?r.length-1:n,0),function(){for(var t=arguments,i=-1,a=bn(t.length-n,0),o=Array(a);++i0){if(++n>=Jo)return arguments[0]}else n=0;return r.apply(void 0,arguments)}}var Vo=Qo(qo),ue=Vo;function fe(r){return ue(oe(r,void 0,zo),r+"")}var ko=fe(function(r,n){return r==null?{}:Bo(r,n)}),As=ko,ru=function(){return w.Date.now()},hr=ru,nu="Expected a function",eu=Math.max,tu=Math.min;function Os(r,n,e){var t,i,a,o,u,f,s=0,c=!1,l=!1,g=!0;if(typeof r!="function")throw new TypeError(nu);n=mr(n)||0,m(e)&&(c=!!e.leading,l="maxWait"in e,a=l?eu(mr(e.maxWait)||0,n):a,g="trailing"in e?!!e.trailing:g);function h(_){var C=t,W=i;return t=i=void 0,s=_,o=r.apply(W,C),o}function v(_){return s=_,u=setTimeout($,n),c?h(_):o}function y(_){var C=_-f,W=_-s,Yr=n-C;return l?tu(Yr,a-W):Yr}function b(_){var C=_-f,W=_-s;return f===void 0||C>=n||C<0||l&&W>=a}function $(){var _=hr();if(b(_))return S(_);u=setTimeout($,y(_))}function S(_){return u=void 0,g&&t?h(_):(t=i=void 0,o)}function k(){u!==void 0&&clearTimeout(u),s=0,t=f=i=u=void 0}function N(){return u===void 0?o:S(hr())}function I(){var _=hr(),C=b(_);if(t=arguments,i=this,f=_,C){if(u===void 0)return v(f);if(l)return clearTimeout(u),u=setTimeout($,n),h(f)}return u===void 0&&(u=setTimeout($,n)),o}return I.cancel=k,I.flush=N,I}function iu(r,n){for(var e=-1,t=r==null?0:r.length;++e-1?i[a?n[o]:o]:void 0}}var Wf=Math.max;function Kf(r,n,e){var t=r==null?0:r.length;if(!t)return-1;var i=e==null?0:Nr(e);return i<0&&(i=Wf(t+i,0)),Un(r,Kr(n),i)}var Yf=zf(Kf),ws=Yf,qf=Math.min;function Jf(r,n,e){for(var t=e?Bn:Gn,i=r[0].length,a=r.length,o=a,u=Array(a),f=1/0,s=[];o--;){var c=r[o];o&&n&&(c=sr(c,ur(n))),f=qf(c.length,f),u[o]=!e&&(n||i>=120&&c.length>=120)?new U(o&&c):void 0}c=r[0];var l=-1,g=u[0];r:for(;++l1),a}),V(r,le(r),e),t&&(e=q(e,ts|is|as,es));for(var i=n.length;i--;)ns(e,n[i]);return e}),Ps=os,us="[object Number]";function xs(r){return typeof r=="number"||O(r)&&M(r)==us}function Es(r,n,e){r=Dr(r),n=Nr(n);var t=n?Fr(r):0;return n&&t + * 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 + */(function(Je,Qe){(function(){var o,rl="4.17.21",Ve=200,il="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",sn="Expected a function",ul="Invalid `variable` option passed into `_.template`",ke="__lodash_hash_undefined__",fl=500,ne="__lodash_placeholder__",qn=1,Ri=2,at=4,ct=1,te=2,an=1,jn=2,Ii=4,Tn=8,ht=16,Ln=32,gt=64,Wn=128,Ot=256,je=512,ll=30,ol="...",sl=800,al=16,Si=1,cl=2,hl=3,nt=1/0,Kn=9007199254740991,gl=17976931348623157e292,ee=0/0,yn=4294967295,_l=yn-1,pl=yn>>>1,vl=[["ary",Wn],["bind",an],["bindKey",jn],["curry",Tn],["curryRight",ht],["flip",je],["partial",Ln],["partialRight",gt],["rearg",Ot]],_t="[object Arguments]",re="[object Array]",dl="[object AsyncFunction]",Wt="[object Boolean]",Pt="[object Date]",wl="[object DOMException]",ie="[object Error]",ue="[object Function]",Ei="[object GeneratorFunction]",xn="[object Map]",Bt="[object Number]",xl="[object Null]",Pn="[object Object]",Ti="[object Promise]",Al="[object Proxy]",bt="[object RegExp]",An="[object Set]",Ft="[object String]",fe="[object Symbol]",Rl="[object Undefined]",Mt="[object WeakMap]",Il="[object WeakSet]",Ut="[object ArrayBuffer]",pt="[object DataView]",nr="[object Float32Array]",tr="[object Float64Array]",er="[object Int8Array]",rr="[object Int16Array]",ir="[object Int32Array]",ur="[object Uint8Array]",fr="[object Uint8ClampedArray]",lr="[object Uint16Array]",or="[object Uint32Array]",Sl=/\b__p \+= '';/g,El=/\b(__p \+=) '' \+/g,Tl=/(__e\(.*?\)|\b__t\)) \+\n'';/g,Li=/&(?:amp|lt|gt|quot|#39);/g,yi=/[&<>"']/g,Ll=RegExp(Li.source),yl=RegExp(yi.source),Cl=/<%-([\s\S]+?)%>/g,ml=/<%([\s\S]+?)%>/g,Ci=/<%=([\s\S]+?)%>/g,Ol=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Wl=/^\w*$/,Pl=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,sr=/[\\^$.*+?()[\]{}|]/g,Bl=RegExp(sr.source),ar=/^\s+/,bl=/\s/,Fl=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,Ml=/\{\n\/\* \[wrapped with (.+)\] \*/,Ul=/,? & /,Dl=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,Nl=/[()=,{}\[\]\/\s]/,Gl=/\\(\\)?/g,Hl=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,mi=/\w*$/,ql=/^[-+]0x[0-9a-f]+$/i,Kl=/^0b[01]+$/i,$l=/^\[object .+?Constructor\]$/,zl=/^0o[0-7]+$/i,Zl=/^(?:0|[1-9]\d*)$/,Yl=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,le=/($^)/,Xl=/['\n\r\u2028\u2029\\]/g,oe="\\ud800-\\udfff",Jl="\\u0300-\\u036f",Ql="\\ufe20-\\ufe2f",Vl="\\u20d0-\\u20ff",Oi=Jl+Ql+Vl,Wi="\\u2700-\\u27bf",Pi="a-z\\xdf-\\xf6\\xf8-\\xff",kl="\\xac\\xb1\\xd7\\xf7",jl="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",no="\\u2000-\\u206f",to=" \\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",Bi="A-Z\\xc0-\\xd6\\xd8-\\xde",bi="\\ufe0e\\ufe0f",Fi=kl+jl+no+to,cr="['\u2019]",eo="["+oe+"]",Mi="["+Fi+"]",se="["+Oi+"]",Ui="\\d+",ro="["+Wi+"]",Di="["+Pi+"]",Ni="[^"+oe+Fi+Ui+Wi+Pi+Bi+"]",hr="\\ud83c[\\udffb-\\udfff]",io="(?:"+se+"|"+hr+")",Gi="[^"+oe+"]",gr="(?:\\ud83c[\\udde6-\\uddff]){2}",_r="[\\ud800-\\udbff][\\udc00-\\udfff]",vt="["+Bi+"]",Hi="\\u200d",qi="(?:"+Di+"|"+Ni+")",uo="(?:"+vt+"|"+Ni+")",Ki="(?:"+cr+"(?:d|ll|m|re|s|t|ve))?",$i="(?:"+cr+"(?:D|LL|M|RE|S|T|VE))?",zi=io+"?",Zi="["+bi+"]?",fo="(?:"+Hi+"(?:"+[Gi,gr,_r].join("|")+")"+Zi+zi+")*",lo="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",oo="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",Yi=Zi+zi+fo,so="(?:"+[ro,gr,_r].join("|")+")"+Yi,ao="(?:"+[Gi+se+"?",se,gr,_r,eo].join("|")+")",co=RegExp(cr,"g"),ho=RegExp(se,"g"),pr=RegExp(hr+"(?="+hr+")|"+ao+Yi,"g"),go=RegExp([vt+"?"+Di+"+"+Ki+"(?="+[Mi,vt,"$"].join("|")+")",uo+"+"+$i+"(?="+[Mi,vt+qi,"$"].join("|")+")",vt+"?"+qi+"+"+Ki,vt+"+"+$i,oo,lo,Ui,so].join("|"),"g"),_o=RegExp("["+Hi+oe+Oi+bi+"]"),po=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,vo=["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"],wo=-1,M={};M[nr]=M[tr]=M[er]=M[rr]=M[ir]=M[ur]=M[fr]=M[lr]=M[or]=!0,M[_t]=M[re]=M[Ut]=M[Wt]=M[pt]=M[Pt]=M[ie]=M[ue]=M[xn]=M[Bt]=M[Pn]=M[bt]=M[An]=M[Ft]=M[Mt]=!1;var F={};F[_t]=F[re]=F[Ut]=F[pt]=F[Wt]=F[Pt]=F[nr]=F[tr]=F[er]=F[rr]=F[ir]=F[xn]=F[Bt]=F[Pn]=F[bt]=F[An]=F[Ft]=F[fe]=F[ur]=F[fr]=F[lr]=F[or]=!0,F[ie]=F[ue]=F[Mt]=!1;var xo={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"s"},Ao={"&":"&","<":"<",">":">",'"':""","'":"'"},Ro={"&":"&","<":"<",">":">",""":'"',"'":"'"},Io={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},So=parseFloat,Eo=parseInt,Xi=typeof jt=="object"&&jt&&jt.Object===Object&&jt,To=typeof self=="object"&&self&&self.Object===Object&&self,z=Xi||To||Function("return this")(),vr=Qe&&!Qe.nodeType&&Qe,tt=vr&&!0&&Je&&!Je.nodeType&&Je,Ji=tt&&tt.exports===vr,dr=Ji&&Xi.process,cn=function(){try{var a=tt&&tt.require&&tt.require("util").types;return a||dr&&dr.binding&&dr.binding("util")}catch{}}(),Qi=cn&&cn.isArrayBuffer,Vi=cn&&cn.isDate,ki=cn&&cn.isMap,ji=cn&&cn.isRegExp,nu=cn&&cn.isSet,tu=cn&&cn.isTypedArray;function en(a,g,h){switch(h.length){case 0:return a.call(g);case 1:return a.call(g,h[0]);case 2:return a.call(g,h[0],h[1]);case 3:return a.call(g,h[0],h[1],h[2])}return a.apply(g,h)}function Lo(a,g,h,w){for(var S=-1,W=a==null?0:a.length;++S-1}function wr(a,g,h){for(var w=-1,S=a==null?0:a.length;++w-1;);return h}function su(a,g){for(var h=a.length;h--&&dt(g,a[h],0)>-1;);return h}function Fo(a,g){for(var h=a.length,w=0;h--;)a[h]===g&&++w;return w}var Mo=Ir(xo),Uo=Ir(Ao);function Do(a){return"\\"+Io[a]}function No(a,g){return a==null?o:a[g]}function wt(a){return _o.test(a)}function Go(a){return po.test(a)}function Ho(a){for(var g,h=[];!(g=a.next()).done;)h.push(g.value);return h}function Lr(a){var g=-1,h=Array(a.size);return a.forEach(function(w,S){h[++g]=[S,w]}),h}function au(a,g){return function(h){return a(g(h))}}function Zn(a,g){for(var h=-1,w=a.length,S=0,W=[];++h-1}function Cs(n,t){var e=this.__data__,r=ye(e,n);return r<0?(++this.size,e.push([n,t])):e[r][1]=t,this}Bn.prototype.clear=Es,Bn.prototype.delete=Ts,Bn.prototype.get=Ls,Bn.prototype.has=ys,Bn.prototype.set=Cs;function bn(n){var t=-1,e=n==null?0:n.length;for(this.clear();++t=t?n:t)),n}function pn(n,t,e,r,i,f){var l,s=t&qn,c=t&Ri,_=t&at;if(e&&(l=i?e(n,r,i,f):e(n)),l!==o)return l;if(!D(n))return n;var p=E(n);if(p){if(l=Pa(n),!s)return k(n,l)}else{var v=X(n),d=v==ue||v==Ei;if(kn(n))return Zu(n,s);if(v==Pn||v==_t||d&&!i){if(l=c||d?{}:hf(n),!s)return c?Ra(n,$s(l,n)):Aa(n,Iu(l,n))}else{if(!F[v])return i?n:{};l=Ba(n,v,s)}}f||(f=new In);var x=f.get(n);if(x)return x;f.set(n,l),Hf(n)?n.forEach(function(I){l.add(pn(I,t,e,I,n,f))}):Nf(n)&&n.forEach(function(I,C){l.set(C,pn(I,t,e,C,n,f))});var R=_?c?kr:Vr:c?nn:$,L=p?o:R(n);return hn(L||n,function(I,C){L&&(C=I,I=n[C]),$t(l,C,pn(I,t,e,C,n,f))}),l}function zs(n){var t=$(n);return function(e){return Su(e,n,t)}}function Su(n,t,e){var r=e.length;if(n==null)return!r;for(n=b(n);r--;){var i=e[r],f=t[i],l=n[i];if(l===o&&!(i in n)||!f(l))return!1}return!0}function Eu(n,t,e){if(typeof n!="function")throw new gn(sn);return Vt(function(){n.apply(o,e)},t)}function zt(n,t,e,r){var i=-1,f=ae,l=!0,s=n.length,c=[],_=t.length;if(!s)return c;e&&(t=U(t,rn(e))),r?(f=wr,l=!1):t.length>=Ve&&(f=Dt,l=!1,t=new it(t));n:for(;++ii?0:i+e),r=r===o||r>i?i:T(r),r<0&&(r+=i),r=e>r?0:Kf(r);e0&&e(s)?t>1?Z(s,t-1,e,r,i):zn(i,s):r||(i[i.length]=s)}return i}var Br=ku(),yu=ku(!0);function Cn(n,t){return n&&Br(n,t,$)}function br(n,t){return n&&yu(n,t,$)}function me(n,t){return $n(t,function(e){return Nn(n[e])})}function ft(n,t){t=Qn(t,n);for(var e=0,r=t.length;n!=null&&et}function Xs(n,t){return n!=null&&B.call(n,t)}function Js(n,t){return n!=null&&t in b(n)}function Qs(n,t,e){return n>=Y(t,e)&&n=120&&p.length>=120)?new it(l&&p):o}p=n[0];var v=-1,d=s[0];n:for(;++v-1;)s!==n&&Ae.call(s,c,1),Ae.call(n,c,1);return n}function Du(n,t){for(var e=n?t.length:0,r=e-1;e--;){var i=t[e];if(e==r||i!==f){var f=i;Dn(i)?Ae.call(n,i,1):$r(n,i)}}return n}function Hr(n,t){return n+Se(wu()*(t-n+1))}function sa(n,t,e,r){for(var i=-1,f=K(Ie((t-n)/(e||1)),0),l=h(f);f--;)l[r?f:++i]=n,n+=e;return l}function qr(n,t){var e="";if(!n||t<1||t>Kn)return e;do t%2&&(e+=n),t=Se(t/2),t&&(n+=n);while(t);return e}function y(n,t){return ui(pf(n,t,tn),n+"")}function aa(n){return Ru(mt(n))}function ca(n,t){var e=mt(n);return Ge(e,ut(t,0,e.length))}function Xt(n,t,e,r){if(!D(n))return n;t=Qn(t,n);for(var i=-1,f=t.length,l=f-1,s=n;s!=null&&++ii?0:i+t),e=e>i?i:e,e<0&&(e+=i),i=t>e?0:e-t>>>0,t>>>=0;for(var f=h(i);++r>>1,l=n[f];l!==null&&!fn(l)&&(e?l<=t:l=Ve){var _=t?null:Ta(n);if(_)return he(_);l=!1,i=Dt,c=new it}else c=t?[]:s;n:for(;++r=r?n:vn(n,t,e)}var zu=es||function(n){return z.clearTimeout(n)};function Zu(n,t){if(t)return n.slice();var e=n.length,r=gu?gu(e):new n.constructor(e);return n.copy(r),r}function Xr(n){var t=new n.constructor(n.byteLength);return new we(t).set(new we(n)),t}function va(n,t){var e=t?Xr(n.buffer):n.buffer;return new n.constructor(e,n.byteOffset,n.byteLength)}function da(n){var t=new n.constructor(n.source,mi.exec(n));return t.lastIndex=n.lastIndex,t}function wa(n){return Kt?b(Kt.call(n)):{}}function Yu(n,t){var e=t?Xr(n.buffer):n.buffer;return new n.constructor(e,n.byteOffset,n.length)}function Xu(n,t){if(n!==t){var e=n!==o,r=n===null,i=n===n,f=fn(n),l=t!==o,s=t===null,c=t===t,_=fn(t);if(!s&&!_&&!f&&n>t||f&&l&&c&&!s&&!_||r&&l&&c||!e&&c||!i)return 1;if(!r&&!f&&!_&&n=s)return c;var _=e[r];return c*(_=="desc"?-1:1)}}return n.index-t.index}function Ju(n,t,e,r){for(var i=-1,f=n.length,l=e.length,s=-1,c=t.length,_=K(f-l,0),p=h(c+_),v=!r;++s1?e[i-1]:o,l=i>2?e[2]:o;for(f=n.length>3&&typeof f=="function"?(i--,f):o,l&&Q(e[0],e[1],l)&&(f=i<3?o:f,i=1),t=b(t);++r-1?i[f?t[l]:l]:o}}function tf(n){return Un(function(t){var e=t.length,r=e,i=_n.prototype.thru;for(n&&t.reverse();r--;){var f=t[r];if(typeof f!="function")throw new gn(sn);if(i&&!l&&De(f)=="wrapper")var l=new _n([],!0)}for(r=l?r:e;++r1&&O.reverse(),p&&cs))return!1;var _=f.get(n),p=f.get(t);if(_&&p)return _==t&&p==n;var v=-1,d=!0,x=e&te?new it:o;for(f.set(n,t),f.set(t,n);++v1?"& ":"")+t[r],t=t.join(e>2?", ":" "),n.replace(Fl,`{ +/* [wrapped with `+t+`] */ +`)}function Fa(n){return E(n)||st(n)||!!(vu&&n&&n[vu])}function Dn(n,t){var e=typeof n;return t=t==null?Kn:t,!!t&&(e=="number"||e!="symbol"&&Zl.test(n))&&n>-1&&n%1==0&&n0){if(++t>=sl)return arguments[0]}else t=0;return n.apply(o,arguments)}}function Ge(n,t){var e=-1,r=n.length,i=r-1;for(t=t===o?r:t;++e1?n[t-1]:o;return e=typeof e=="function"?(n.pop(),e):o,yf(n,e)});function Cf(n){var t=u(n);return t.__chain__=!0,t}function Zc(n,t){return t(n),n}function He(n,t){return t(n)}var Yc=Un(function(n){var t=n.length,e=t?n[0]:0,r=this.__wrapped__,i=function(f){return Pr(f,n)};return t>1||this.__actions__.length||!(r instanceof m)||!Dn(e)?this.thru(i):(r=r.slice(e,+e+(t?1:0)),r.__actions__.push({func:He,args:[i],thisArg:o}),new _n(r,this.__chain__).thru(function(f){return t&&!f.length&&f.push(o),f}))});function Xc(){return Cf(this)}function Jc(){return new _n(this.value(),this.__chain__)}function Qc(){this.__values__===o&&(this.__values__=qf(this.value()));var n=this.__index__>=this.__values__.length,t=n?o:this.__values__[this.__index__++];return{done:n,value:t}}function Vc(){return this}function kc(n){for(var t,e=this;e instanceof Le;){var r=Rf(e);r.__index__=0,r.__values__=o,t?i.__wrapped__=r:t=r;var i=r;e=e.__wrapped__}return i.__wrapped__=n,t}function jc(){var n=this.__wrapped__;if(n instanceof m){var t=n;return this.__actions__.length&&(t=new m(this)),t=t.reverse(),t.__actions__.push({func:He,args:[fi],thisArg:o}),new _n(t,this.__chain__)}return this.thru(fi)}function nh(){return Ku(this.__wrapped__,this.__actions__)}var th=Be(function(n,t,e){B.call(n,e)?++n[e]:Fn(n,e,1)});function eh(n,t,e){var r=E(n)?eu:Zs;return e&&Q(n,t,e)&&(t=o),r(n,A(t,3))}function rh(n,t){var e=E(n)?$n:Lu;return e(n,A(t,3))}var ih=nf(If),uh=nf(Sf);function fh(n,t){return Z(qe(n,t),1)}function lh(n,t){return Z(qe(n,t),nt)}function oh(n,t,e){return e=e===o?1:T(e),Z(qe(n,t),e)}function mf(n,t){var e=E(n)?hn:Xn;return e(n,A(t,3))}function Of(n,t){var e=E(n)?yo:Tu;return e(n,A(t,3))}var sh=Be(function(n,t,e){B.call(n,e)?n[e].push(t):Fn(n,e,[t])});function ah(n,t,e,r){n=j(n)?n:mt(n),e=e&&!r?T(e):0;var i=n.length;return e<0&&(e=K(i+e,0)),Ye(n)?e<=i&&n.indexOf(t,e)>-1:!!i&&dt(n,t,e)>-1}var ch=y(function(n,t,e){var r=-1,i=typeof t=="function",f=j(n)?h(n.length):[];return Xn(n,function(l){f[++r]=i?en(t,l,e):Zt(l,t,e)}),f}),hh=Be(function(n,t,e){Fn(n,e,t)});function qe(n,t){var e=E(n)?U:Pu;return e(n,A(t,3))}function gh(n,t,e,r){return n==null?[]:(E(t)||(t=t==null?[]:[t]),e=r?o:e,E(e)||(e=e==null?[]:[e]),Mu(n,t,e))}var _h=Be(function(n,t,e){n[e?0:1].push(t)},function(){return[[],[]]});function ph(n,t,e){var r=E(n)?xr:fu,i=arguments.length<3;return r(n,A(t,4),e,i,Xn)}function vh(n,t,e){var r=E(n)?Co:fu,i=arguments.length<3;return r(n,A(t,4),e,i,Tu)}function dh(n,t){var e=E(n)?$n:Lu;return e(n,ze(A(t,3)))}function wh(n){var t=E(n)?Ru:aa;return t(n)}function xh(n,t,e){(e?Q(n,t,e):t===o)?t=1:t=T(t);var r=E(n)?Hs:ca;return r(n,t)}function Ah(n){var t=E(n)?qs:ga;return t(n)}function Rh(n){if(n==null)return 0;if(j(n))return Ye(n)?xt(n):n.length;var t=X(n);return t==xn||t==An?n.size:Dr(n).length}function Ih(n,t,e){var r=E(n)?Ar:_a;return e&&Q(n,t,e)&&(t=o),r(n,A(t,3))}var Sh=y(function(n,t){if(n==null)return[];var e=t.length;return e>1&&Q(n,t[0],t[1])?t=[]:e>2&&Q(t[0],t[1],t[2])&&(t=[t[0]]),Mu(n,Z(t,1),[])}),Ke=rs||function(){return z.Date.now()};function Eh(n,t){if(typeof t!="function")throw new gn(sn);return n=T(n),function(){if(--n<1)return t.apply(this,arguments)}}function Wf(n,t,e){return t=e?o:t,t=n&&t==null?n.length:t,Mn(n,Wn,o,o,o,o,t)}function Pf(n,t){var e;if(typeof t!="function")throw new gn(sn);return n=T(n),function(){return--n>0&&(e=t.apply(this,arguments)),n<=1&&(t=o),e}}var oi=y(function(n,t,e){var r=an;if(e.length){var i=Zn(e,yt(oi));r|=Ln}return Mn(n,r,t,e,i)}),Bf=y(function(n,t,e){var r=an|jn;if(e.length){var i=Zn(e,yt(Bf));r|=Ln}return Mn(t,r,n,e,i)});function bf(n,t,e){t=e?o:t;var r=Mn(n,Tn,o,o,o,o,o,t);return r.placeholder=bf.placeholder,r}function Ff(n,t,e){t=e?o:t;var r=Mn(n,ht,o,o,o,o,o,t);return r.placeholder=Ff.placeholder,r}function Mf(n,t,e){var r,i,f,l,s,c,_=0,p=!1,v=!1,d=!0;if(typeof n!="function")throw new gn(sn);t=wn(t)||0,D(e)&&(p=!!e.leading,v="maxWait"in e,f=v?K(wn(e.maxWait)||0,t):f,d="trailing"in e?!!e.trailing:d);function x(H){var En=r,Hn=i;return r=i=o,_=H,l=n.apply(Hn,En),l}function R(H){return _=H,s=Vt(C,t),p?x(H):l}function L(H){var En=H-c,Hn=H-_,tl=t-En;return v?Y(tl,f-Hn):tl}function I(H){var En=H-c,Hn=H-_;return c===o||En>=t||En<0||v&&Hn>=f}function C(){var H=Ke();if(I(H))return O(H);s=Vt(C,L(H))}function O(H){return s=o,d&&r?x(H):(r=i=o,l)}function ln(){s!==o&&zu(s),_=0,r=c=i=s=o}function V(){return s===o?l:O(Ke())}function on(){var H=Ke(),En=I(H);if(r=arguments,i=this,c=H,En){if(s===o)return R(c);if(v)return zu(s),s=Vt(C,t),x(c)}return s===o&&(s=Vt(C,t)),l}return on.cancel=ln,on.flush=V,on}var Th=y(function(n,t){return Eu(n,1,t)}),Lh=y(function(n,t,e){return Eu(n,wn(t)||0,e)});function yh(n){return Mn(n,je)}function $e(n,t){if(typeof n!="function"||t!=null&&typeof t!="function")throw new gn(sn);var e=function(){var r=arguments,i=t?t.apply(this,r):r[0],f=e.cache;if(f.has(i))return f.get(i);var l=n.apply(this,r);return e.cache=f.set(i,l)||f,l};return e.cache=new($e.Cache||bn),e}$e.Cache=bn;function ze(n){if(typeof n!="function")throw new gn(sn);return function(){var t=arguments;switch(t.length){case 0:return!n.call(this);case 1:return!n.call(this,t[0]);case 2:return!n.call(this,t[0],t[1]);case 3:return!n.call(this,t[0],t[1],t[2])}return!n.apply(this,t)}}function Ch(n){return Pf(2,n)}var mh=pa(function(n,t){t=t.length==1&&E(t[0])?U(t[0],rn(A())):U(Z(t,1),rn(A()));var e=t.length;return y(function(r){for(var i=-1,f=Y(r.length,e);++i=t}),st=mu(function(){return arguments}())?mu:function(n){return N(n)&&B.call(n,"callee")&&!pu.call(n,"callee")},E=h.isArray,$h=Qi?rn(Qi):ks;function j(n){return n!=null&&Ze(n.length)&&!Nn(n)}function G(n){return N(n)&&j(n)}function zh(n){return n===!0||n===!1||N(n)&&J(n)==Wt}var kn=us||Ai,Zh=Vi?rn(Vi):js;function Yh(n){return N(n)&&n.nodeType===1&&!kt(n)}function Xh(n){if(n==null)return!0;if(j(n)&&(E(n)||typeof n=="string"||typeof n.splice=="function"||kn(n)||Ct(n)||st(n)))return!n.length;var t=X(n);if(t==xn||t==An)return!n.size;if(Qt(n))return!Dr(n).length;for(var e in n)if(B.call(n,e))return!1;return!0}function Jh(n,t){return Yt(n,t)}function Qh(n,t,e){e=typeof e=="function"?e:o;var r=e?e(n,t):o;return r===o?Yt(n,t,o,e):!!r}function ai(n){if(!N(n))return!1;var t=J(n);return t==ie||t==wl||typeof n.message=="string"&&typeof n.name=="string"&&!kt(n)}function Vh(n){return typeof n=="number"&&du(n)}function Nn(n){if(!D(n))return!1;var t=J(n);return t==ue||t==Ei||t==dl||t==Al}function Df(n){return typeof n=="number"&&n==T(n)}function Ze(n){return typeof n=="number"&&n>-1&&n%1==0&&n<=Kn}function D(n){var t=typeof n;return n!=null&&(t=="object"||t=="function")}function N(n){return n!=null&&typeof n=="object"}var Nf=ki?rn(ki):ta;function kh(n,t){return n===t||Ur(n,t,ni(t))}function jh(n,t,e){return e=typeof e=="function"?e:o,Ur(n,t,ni(t),e)}function ng(n){return Gf(n)&&n!=+n}function tg(n){if(Da(n))throw new S(il);return Ou(n)}function eg(n){return n===null}function rg(n){return n==null}function Gf(n){return typeof n=="number"||N(n)&&J(n)==Bt}function kt(n){if(!N(n)||J(n)!=Pn)return!1;var t=xe(n);if(t===null)return!0;var e=B.call(t,"constructor")&&t.constructor;return typeof e=="function"&&e instanceof e&&pe.call(e)==jo}var ci=ji?rn(ji):ea;function ig(n){return Df(n)&&n>=-Kn&&n<=Kn}var Hf=nu?rn(nu):ra;function Ye(n){return typeof n=="string"||!E(n)&&N(n)&&J(n)==Ft}function fn(n){return typeof n=="symbol"||N(n)&&J(n)==fe}var Ct=tu?rn(tu):ia;function ug(n){return n===o}function fg(n){return N(n)&&X(n)==Mt}function lg(n){return N(n)&&J(n)==Il}var og=Ue(Nr),sg=Ue(function(n,t){return n<=t});function qf(n){if(!n)return[];if(j(n))return Ye(n)?Rn(n):k(n);if(Nt&&n[Nt])return Ho(n[Nt]());var t=X(n),e=t==xn?Lr:t==An?he:mt;return e(n)}function Gn(n){if(!n)return n===0?n:0;if(n=wn(n),n===nt||n===-nt){var t=n<0?-1:1;return t*gl}return n===n?n:0}function T(n){var t=Gn(n),e=t%1;return t===t?e?t-e:t:0}function Kf(n){return n?ut(T(n),0,yn):0}function wn(n){if(typeof n=="number")return n;if(fn(n))return ee;if(D(n)){var t=typeof n.valueOf=="function"?n.valueOf():n;n=D(t)?t+"":t}if(typeof n!="string")return n===0?n:+n;n=lu(n);var e=Kl.test(n);return e||zl.test(n)?Eo(n.slice(2),e?2:8):ql.test(n)?ee:+n}function $f(n){return mn(n,nn(n))}function ag(n){return n?ut(T(n),-Kn,Kn):n===0?n:0}function P(n){return n==null?"":un(n)}var cg=Tt(function(n,t){if(Qt(t)||j(t)){mn(t,$(t),n);return}for(var e in t)B.call(t,e)&&$t(n,e,t[e])}),zf=Tt(function(n,t){mn(t,nn(t),n)}),Xe=Tt(function(n,t,e,r){mn(t,nn(t),n,r)}),hg=Tt(function(n,t,e,r){mn(t,$(t),n,r)}),gg=Un(Pr);function _g(n,t){var e=Et(n);return t==null?e:Iu(e,t)}var pg=y(function(n,t){n=b(n);var e=-1,r=t.length,i=r>2?t[2]:o;for(i&&Q(t[0],t[1],i)&&(r=1);++e1),f}),mn(n,kr(n),e),r&&(e=pn(e,qn|Ri|at,La));for(var i=t.length;i--;)$r(e,t[i]);return e});function Bg(n,t){return Yf(n,ze(A(t)))}var bg=Un(function(n,t){return n==null?{}:la(n,t)});function Yf(n,t){if(n==null)return{};var e=U(kr(n),function(r){return[r]});return t=A(t),Uu(n,e,function(r,i){return t(r,i[0])})}function Fg(n,t,e){t=Qn(t,n);var r=-1,i=t.length;for(i||(i=1,n=o);++rt){var r=n;n=t,t=r}if(e||n%1||t%1){var i=wu();return Y(n+i*(t-n+So("1e-"+((i+"").length-1))),t)}return Hr(n,t)}var Zg=Lt(function(n,t,e){return t=t.toLowerCase(),n+(e?Qf(t):t)});function Qf(n){return _i(P(n).toLowerCase())}function Vf(n){return n=P(n),n&&n.replace(Yl,Mo).replace(ho,"")}function Yg(n,t,e){n=P(n),t=un(t);var r=n.length;e=e===o?r:ut(T(e),0,r);var i=e;return e-=t.length,e>=0&&n.slice(e,i)==t}function Xg(n){return n=P(n),n&&yl.test(n)?n.replace(yi,Uo):n}function Jg(n){return n=P(n),n&&Bl.test(n)?n.replace(sr,"\\$&"):n}var Qg=Lt(function(n,t,e){return n+(e?"-":"")+t.toLowerCase()}),Vg=Lt(function(n,t,e){return n+(e?" ":"")+t.toLowerCase()}),kg=ju("toLowerCase");function jg(n,t,e){n=P(n),t=T(t);var r=t?xt(n):0;if(!t||r>=t)return n;var i=(t-r)/2;return Me(Se(i),e)+n+Me(Ie(i),e)}function n_(n,t,e){n=P(n),t=T(t);var r=t?xt(n):0;return t&&r>>0,e?(n=P(n),n&&(typeof t=="string"||t!=null&&!ci(t))&&(t=un(t),!t&&wt(n))?Vn(Rn(n),0,e):n.split(t,e)):[]}var l_=Lt(function(n,t,e){return n+(e?" ":"")+_i(t)});function o_(n,t,e){return n=P(n),e=e==null?0:ut(T(e),0,n.length),t=un(t),n.slice(e,e+t.length)==t}function s_(n,t,e){var r=u.templateSettings;e&&Q(n,t,e)&&(t=o),n=P(n),t=Xe({},t,r,lf);var i=Xe({},t.imports,r.imports,lf),f=$(i),l=Tr(i,f),s,c,_=0,p=t.interpolate||le,v="__p += '",d=yr((t.escape||le).source+"|"+p.source+"|"+(p===Ci?Hl:le).source+"|"+(t.evaluate||le).source+"|$","g"),x="//# sourceURL="+(B.call(t,"sourceURL")?(t.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++wo+"]")+` +`;n.replace(d,function(I,C,O,ln,V,on){return O||(O=ln),v+=n.slice(_,on).replace(Xl,Do),C&&(s=!0,v+=`' + +__e(`+C+`) + +'`),V&&(c=!0,v+=`'; +`+V+`; +__p += '`),O&&(v+=`' + +((__t = (`+O+`)) == null ? '' : __t) + +'`),_=on+I.length,I}),v+=`'; +`;var R=B.call(t,"variable")&&t.variable;if(!R)v=`with (obj) { +`+v+` +} +`;else if(Nl.test(R))throw new S(ul);v=(c?v.replace(Sl,""):v).replace(El,"$1").replace(Tl,"$1;"),v="function("+(R||"obj")+`) { +`+(R?"":`obj || (obj = {}); +`)+"var __t, __p = ''"+(s?", __e = _.escape":"")+(c?`, __j = Array.prototype.join; +function print() { __p += __j.call(arguments, '') } +`:`; +`)+v+`return __p +}`;var L=jf(function(){return W(f,x+"return "+v).apply(o,l)});if(L.source=v,ai(L))throw L;return L}function a_(n){return P(n).toLowerCase()}function c_(n){return P(n).toUpperCase()}function h_(n,t,e){if(n=P(n),n&&(e||t===o))return lu(n);if(!n||!(t=un(t)))return n;var r=Rn(n),i=Rn(t),f=ou(r,i),l=su(r,i)+1;return Vn(r,f,l).join("")}function g_(n,t,e){if(n=P(n),n&&(e||t===o))return n.slice(0,cu(n)+1);if(!n||!(t=un(t)))return n;var r=Rn(n),i=su(r,Rn(t))+1;return Vn(r,0,i).join("")}function __(n,t,e){if(n=P(n),n&&(e||t===o))return n.replace(ar,"");if(!n||!(t=un(t)))return n;var r=Rn(n),i=ou(r,Rn(t));return Vn(r,i).join("")}function p_(n,t){var e=ll,r=ol;if(D(t)){var i="separator"in t?t.separator:i;e="length"in t?T(t.length):e,r="omission"in t?un(t.omission):r}n=P(n);var f=n.length;if(wt(n)){var l=Rn(n);f=l.length}if(e>=f)return n;var s=e-xt(r);if(s<1)return r;var c=l?Vn(l,0,s).join(""):n.slice(0,s);if(i===o)return c+r;if(l&&(s+=c.length-s),ci(i)){if(n.slice(s).search(i)){var _,p=c;for(i.global||(i=yr(i.source,P(mi.exec(i))+"g")),i.lastIndex=0;_=i.exec(p);)var v=_.index;c=c.slice(0,v===o?s:v)}}else if(n.indexOf(un(i),s)!=s){var d=c.lastIndexOf(i);d>-1&&(c=c.slice(0,d))}return c+r}function v_(n){return n=P(n),n&&Ll.test(n)?n.replace(Li,zo):n}var d_=Lt(function(n,t,e){return n+(e?" ":"")+t.toUpperCase()}),_i=ju("toUpperCase");function kf(n,t,e){return n=P(n),t=e?o:t,t===o?Go(n)?Xo(n):Wo(n):n.match(t)||[]}var jf=y(function(n,t){try{return en(n,o,t)}catch(e){return ai(e)?e:new S(e)}}),w_=Un(function(n,t){return hn(t,function(e){e=On(e),Fn(n,e,oi(n[e],n))}),n});function x_(n){var t=n==null?0:n.length,e=A();return n=t?U(n,function(r){if(typeof r[1]!="function")throw new gn(sn);return[e(r[0]),r[1]]}):[],y(function(r){for(var i=-1;++iKn)return[];var e=yn,r=Y(n,yn);t=A(t),n-=yn;for(var i=Er(r,t);++e0||t<0)?new m(e):(n<0?e=e.takeRight(-n):n&&(e=e.drop(n)),t!==o&&(t=T(t),e=t<0?e.dropRight(-t):e.take(t-n)),e)},m.prototype.takeRightWhile=function(n){return this.reverse().takeWhile(n).reverse()},m.prototype.toArray=function(){return this.take(yn)},Cn(m.prototype,function(n,t){var e=/^(?:filter|find|map|reject)|While$/.test(t),r=/^(?:head|last)$/.test(t),i=u[r?"take"+(t=="last"?"Right":""):t],f=r||/^find/.test(t);!i||(u.prototype[t]=function(){var l=this.__wrapped__,s=r?[1]:arguments,c=l instanceof m,_=s[0],p=c||E(l),v=function(C){var O=i.apply(u,zn([C],s));return r&&d?O[0]:O};p&&e&&typeof _=="function"&&_.length!=1&&(c=p=!1);var d=this.__chain__,x=!!this.__actions__.length,R=f&&!d,L=c&&!x;if(!f&&p){l=L?l:new m(this);var I=n.apply(l,s);return I.__actions__.push({func:He,args:[v],thisArg:o}),new _n(I,d)}return R&&L?n.apply(this,s):(I=this.thru(v),R?r?I.value()[0]:I.value():I)})}),hn(["pop","push","shift","sort","splice","unshift"],function(n){var t=ge[n],e=/^(?:push|sort|unshift)$/.test(n)?"tap":"thru",r=/^(?:pop|shift)$/.test(n);u.prototype[n]=function(){var i=arguments;if(r&&!this.__chain__){var f=this.value();return t.apply(E(f)?f:[],i)}return this[e](function(l){return t.apply(E(l)?l:[],i)})}}),Cn(m.prototype,function(n,t){var e=u[t];if(e){var r=e.name+"";B.call(St,r)||(St[r]=[]),St[r].push({name:t,func:e})}}),St[be(o,jn).name]=[{name:"wrapper",func:o}],m.prototype.clone=vs,m.prototype.reverse=ds,m.prototype.value=ws,u.prototype.at=Yc,u.prototype.chain=Xc,u.prototype.commit=Jc,u.prototype.next=Qc,u.prototype.plant=kc,u.prototype.reverse=jc,u.prototype.toJSON=u.prototype.valueOf=u.prototype.value=nh,u.prototype.first=u.prototype.head,Nt&&(u.prototype[Nt]=Vc),u},At=Jo();tt?((tt.exports=At)._=At,vr._=At):z._=At}).call(jt)})(el,el.exports);export{el as l}; diff --git a/public/exadmin/assets/markdown-it-anchor.c88e5394.js b/public/exadmin/assets/markdown-it-anchor.c88e5394.js new file mode 100644 index 0000000..2d1b91b --- /dev/null +++ b/public/exadmin/assets/markdown-it-anchor.c88e5394.js @@ -0,0 +1,3 @@ +var w=!1,u={false:"push",true:"unshift",after:"push",before:"unshift"},m={isPermalinkSymbol:!0};function g(t,e,s,n){var a;if(!w){var r="Using deprecated markdown-it-anchor permalink option, see https://github.com/valeriangalliat/markdown-it-anchor#todo-anchor-or-file";typeof process=="object"&&process&&process.emitWarning?process.emitWarning(r):console.warn(r),w=!0}var o=[Object.assign(new s.Token("link_open","a",1),{attrs:[].concat(e.permalinkClass?[["class",e.permalinkClass]]:[],[["href",e.permalinkHref(t,s)]],Object.entries(e.permalinkAttrs(t,s)))}),Object.assign(new s.Token("html_block","",0),{content:e.permalinkSymbol,meta:m}),new s.Token("link_close","a",-1)];e.permalinkSpace&&s.tokens[n+1].children[u[e.permalinkBefore]](Object.assign(new s.Token("text","",0),{content:" "})),(a=s.tokens[n+1].children)[u[e.permalinkBefore]].apply(a,o)}function T(t){return"#"+t}function j(t){return{}}var x={class:"header-anchor",symbol:"#",renderHref:T,renderAttrs:j};function k(t){function e(s){return s=Object.assign({},e.defaults,s),function(n,a,r,o){return t(n,s,a,r,o)}}return e.defaults=Object.assign({},x),e.renderPermalinkImpl=t,e}var h=k(function(t,e,s,n,a){var r,o=[Object.assign(new n.Token("link_open","a",1),{attrs:[].concat(e.class?[["class",e.class]]:[],[["href",e.renderHref(t,n)]],e.ariaHidden?[["aria-hidden","true"]]:[],Object.entries(e.renderAttrs(t,n)))}),Object.assign(new n.Token("html_inline","",0),{content:e.symbol,meta:m}),new n.Token("link_close","a",-1)];if(e.space){var l=typeof e.space=="string"?e.space:" ";n.tokens[a+1].children[u[e.placement]](Object.assign(new n.Token(typeof e.space=="string"?"html_inline":"text","",0),{content:l}))}(r=n.tokens[a+1].children)[u[e.placement]].apply(r,o)});Object.assign(h.defaults,{space:!0,placement:"after",ariaHidden:!1});var d=k(h.renderPermalinkImpl);d.defaults=Object.assign({},h.defaults,{ariaHidden:!0});var _=k(function(t,e,s,n,a){var r=[Object.assign(new n.Token("link_open","a",1),{attrs:[].concat(e.class?[["class",e.class]]:[],[["href",e.renderHref(t,n)]],Object.entries(e.renderAttrs(t,n)))})].concat(e.safariReaderFix?[new n.Token("span_open","span",1)]:[],n.tokens[a+1].children,e.safariReaderFix?[new n.Token("span_close","span",-1)]:[],[new n.Token("link_close","a",-1)]);n.tokens[a+1]=Object.assign(new n.Token("inline","",0),{children:r})});Object.assign(_.defaults,{safariReaderFix:!1});var v=k(function(t,e,s,n,a){var r;if(!["visually-hidden","aria-label","aria-describedby","aria-labelledby"].includes(e.style))throw new Error("`permalink.linkAfterHeader` called with unknown style option `"+e.style+"`");if(!["aria-describedby","aria-labelledby"].includes(e.style)&&!e.assistiveText)throw new Error("`permalink.linkAfterHeader` called without the `assistiveText` option in `"+e.style+"` style");if(e.style==="visually-hidden"&&!e.visuallyHiddenClass)throw new Error("`permalink.linkAfterHeader` called without the `visuallyHiddenClass` option in `visually-hidden` style");var o=n.tokens[a+1].children.filter(function(p){return p.type==="text"||p.type==="code_inline"}).reduce(function(p,y){return p+y.content},""),l=[],i=[];if(e.class&&i.push(["class",e.class]),i.push(["href",e.renderHref(t,n)]),i.push.apply(i,Object.entries(e.renderAttrs(t,n))),e.style==="visually-hidden"){if(l.push(Object.assign(new n.Token("span_open","span",1),{attrs:[["class",e.visuallyHiddenClass]]}),Object.assign(new n.Token("text","",0),{content:e.assistiveText(o)}),new n.Token("span_close","span",-1)),e.space){var b=typeof e.space=="string"?e.space:" ";l[u[e.placement]](Object.assign(new n.Token(typeof e.space=="string"?"html_inline":"text","",0),{content:b}))}l[u[e.placement]](Object.assign(new n.Token("span_open","span",1),{attrs:[["aria-hidden","true"]]}),Object.assign(new n.Token("html_inline","",0),{content:e.symbol,meta:m}),new n.Token("span_close","span",-1))}else l.push(Object.assign(new n.Token("html_inline","",0),{content:e.symbol,meta:m}));e.style==="aria-label"?i.push(["aria-label",e.assistiveText(o)]):["aria-describedby","aria-labelledby"].includes(e.style)&&i.push([e.style,t]);var c=[Object.assign(new n.Token("link_open","a",1),{attrs:i})].concat(l,[new n.Token("link_close","a",-1)]);(r=n.tokens).splice.apply(r,[a+3,0].concat(c)),e.wrapper&&(n.tokens.splice(a,0,Object.assign(new n.Token("html_block","",0),{content:e.wrapper[0]+` +`})),n.tokens.splice(a+3+c.length+1,0,Object.assign(new n.Token("html_block","",0),{content:e.wrapper[1]+` +`})))});function O(t,e,s,n){var a=t,r=n;if(s&&Object.prototype.hasOwnProperty.call(e,a))throw new Error("User defined `id` attribute `"+t+"` is not unique. Please fix it in your Markdown to continue.");for(;Object.prototype.hasOwnProperty.call(e,a);)a=t+"-"+r,r+=1;return e[a]=!0,a}function f(t,e){e=Object.assign({},f.defaults,e),t.core.ruler.push("anchor",function(s){for(var n,a={},r=s.tokens,o=Array.isArray(e.level)?(n=e.level,function(p){return n.includes(p)}):function(p){return function(y){return y>=p}}(e.level),l=0;l"'=]/,s=" ",l="=",i=".",a="#",c=[];let o="",h="",u=!0,y=!1;for(let d=r+e.leftDelimiter.length;d=n+1:h.length>=n}let l,i,a,c;const o=n-r.rightDelimiter.length;switch(t){case"start":a=e.slice(0,r.leftDelimiter.length),l=a===r.leftDelimiter?0:-1,i=l===-1?-1:e.indexOf(r.rightDelimiter,o),c=e.charAt(i+r.rightDelimiter.length),c&&r.rightDelimiter.indexOf(c)!==-1&&(i=-1);break;case"end":l=e.lastIndexOf(r.leftDelimiter),i=l===-1?-1:e.indexOf(r.rightDelimiter,l+o),i=i===e.length-r.rightDelimiter.length?i:-1;break;case"only":a=e.slice(0,r.leftDelimiter.length),l=a===r.leftDelimiter?0:-1,a=e.slice(e.length-r.rightDelimiter.length),i=a===r.rightDelimiter?e.length-r.rightDelimiter.length:-1;break;default:throw new Error(`Unexpected case ${t}, expected 'start', 'end' or 'only'`)}return l!==-1&&i!==-1&&s(e.substring(l,i+r.rightDelimiter.length))}};m.removeDelimiter=function(t,r){const e=D(r.leftDelimiter),n=D(r.rightDelimiter),s=new RegExp("[ \\n]?"+e+"[^"+e+n+"]+"+n+"$"),l=t.search(s);return l!==-1?t.slice(0,l):t};function D(t){return t.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&")}m.escapeRegExp=D;m.getMatchingOpeningToken=function(t,r){if(t[r].type==="softbreak")return!1;if(t[r].nesting===0)return t[r];const e=t[r].level,n=t[r].type.replace("_close","_open");for(;r>=0;--r)if(t[r].type===n&&t[r].level===e)return t[r];return!1};const O=/[&<>"]/,E=/[&<>"]/g,k={"&":"&","<":"<",">":">",'"':"""};function w(t){return k[t]}m.escapeHtml=function(t){return O.test(t)?t.replace(E,w):t};const f=m;var T=t=>{const r=new RegExp("^ {0,3}[-*_]{3,} ?"+f.escapeRegExp(t.leftDelimiter)+"[^"+f.escapeRegExp(t.rightDelimiter)+"]");return[{name:"fenced code blocks",tests:[{shift:0,block:!0,info:f.hasDelimiters("end",t)}],transform:(e,n)=>{const s=e[n],l=s.info.lastIndexOf(t.leftDelimiter),i=f.getAttrs(s.info,l,t);f.addAttrs(i,s),s.info=f.removeDelimiter(s.info,t)}},{name:"inline nesting 0",tests:[{shift:0,type:"inline",children:[{shift:-1,type:e=>e==="image"||e==="code_inline"},{shift:0,type:"text",content:f.hasDelimiters("start",t)}]}],transform:(e,n,s)=>{const l=e[n].children[s],i=l.content.indexOf(t.rightDelimiter),a=e[n].children[s-1],c=f.getAttrs(l.content,0,t);f.addAttrs(c,a),l.content.length===i+t.rightDelimiter.length?e[n].children.splice(s,1):l.content=l.content.slice(i+t.rightDelimiter.length)}},{name:"tables",tests:[{shift:0,type:"table_close"},{shift:1,type:"paragraph_open"},{shift:2,type:"inline",content:f.hasDelimiters("only",t)}],transform:(e,n)=>{const s=e[n+2],l=f.getMatchingOpeningToken(e,n),i=f.getAttrs(s.content,0,t);f.addAttrs(i,l),e.splice(n+1,3)}},{name:"inline attributes",tests:[{shift:0,type:"inline",children:[{shift:-1,nesting:-1},{shift:0,type:"text",content:f.hasDelimiters("start",t)}]}],transform:(e,n,s)=>{const l=e[n].children[s],i=l.content,a=f.getAttrs(i,0,t),c=f.getMatchingOpeningToken(e[n].children,s-1);f.addAttrs(a,c),l.content=i.slice(i.indexOf(t.rightDelimiter)+t.rightDelimiter.length)}},{name:"list softbreak",tests:[{shift:-2,type:"list_item_open"},{shift:0,type:"inline",children:[{position:-2,type:"softbreak"},{position:-1,type:"text",content:f.hasDelimiters("only",t)}]}],transform:(e,n,s)=>{const i=e[n].children[s].content,a=f.getAttrs(i,0,t);let c=n-2;for(;e[c-1]&&e[c-1].type!=="ordered_list_open"&&e[c-1].type!=="bullet_list_open";)c--;f.addAttrs(a,e[c-1]),e[n].children=e[n].children.slice(0,-2)}},{name:"list double softbreak",tests:[{shift:0,type:e=>e==="bullet_list_close"||e==="ordered_list_close"},{shift:1,type:"paragraph_open"},{shift:2,type:"inline",content:f.hasDelimiters("only",t),children:e=>e.length===1},{shift:3,type:"paragraph_close"}],transform:(e,n)=>{const l=e[n+2].content,i=f.getAttrs(l,0,t),a=f.getMatchingOpeningToken(e,n);f.addAttrs(i,a),e.splice(n+1,3)}},{name:"list item end",tests:[{shift:-2,type:"list_item_open"},{shift:0,type:"inline",children:[{position:-1,type:"text",content:f.hasDelimiters("end",t)}]}],transform:(e,n,s)=>{const l=e[n].children[s],i=l.content,a=f.getAttrs(i,i.lastIndexOf(t.leftDelimiter),t);f.addAttrs(a,e[n-2]);const c=i.slice(0,i.lastIndexOf(t.leftDelimiter));l.content=_(c)!==" "?c:c.slice(0,-1)}},{name:` +{.a} softbreak then curly in start`,tests:[{shift:0,type:"inline",children:[{position:-2,type:"softbreak"},{position:-1,type:"text",content:f.hasDelimiters("only",t)}]}],transform:(e,n,s)=>{const l=e[n].children[s],i=f.getAttrs(l.content,0,t);let a=n+1;for(;e[a+1]&&e[a+1].nesting===-1;)a++;const c=f.getMatchingOpeningToken(e,a);f.addAttrs(i,c),e[n].children=e[n].children.slice(0,-2)}},{name:"horizontal rule",tests:[{shift:0,type:"paragraph_open"},{shift:1,type:"inline",children:e=>e.length===1,content:e=>e.match(r)!==null},{shift:2,type:"paragraph_close"}],transform:(e,n)=>{const s=e[n];s.type="hr",s.tag="hr",s.nesting=0;const l=e[n+1].content,i=l.lastIndexOf(t.leftDelimiter),a=f.getAttrs(l,i,t);f.addAttrs(a,s),s.markup=l,e.splice(n+1,2)}},{name:"end of block",tests:[{shift:0,type:"inline",children:[{position:-1,content:f.hasDelimiters("end",t),type:e=>e!=="code_inline"&&e!=="math_inline"}]}],transform:(e,n,s)=>{const l=e[n].children[s],i=l.content,a=f.getAttrs(i,i.lastIndexOf(t.leftDelimiter),t);let c=n+1;for(;e[c+1]&&e[c+1].nesting===-1;)c++;const o=f.getMatchingOpeningToken(e,c);f.addAttrs(a,o);const h=i.slice(0,i.lastIndexOf(t.leftDelimiter));l.content=_(h)!==" "?h:h.slice(0,-1)}}]};function _(t){return t.slice(-1)[0]}const v=T,C={leftDelimiter:"{",rightDelimiter:"}",allowedAttributes:[]};var S=function(r,e){let n=Object.assign({},C);n=Object.assign(n,e);const s=v(n);function l(i){const a=i.tokens;for(let c=0;c{const g=b(a,c,d);return g.j!==null&&(u=g.j),g.match})&&(h.transform(a,c,u),(h.name==="inline attributes"||h.name==="inline nesting 0")&&o--)}}r.core.ruler.before("linkify","curly_attributes",l)};function b(t,r,e){const n={match:!1,j:null},s=e.shift!==void 0?r+e.shift:e.position;if(e.shift!==void 0&&s<0)return n;const l=R(t,s);if(l===void 0)return n;for(const i of Object.keys(e))if(!(i==="shift"||i==="position")){if(l[i]===void 0)return n;if(i==="children"&&j(e.children)){if(l.children.length===0)return n;let a;const c=e.children,o=l.children;if(c.every(h=>h.position!==void 0)){if(a=c.every(h=>b(o,h.position,h).match),a){const h=I(c).position;n.j=h>=0?h:o.length+h}}else for(let h=0;hb(o,h,u).match),a){n.j=h;break}if(a===!1)return n;continue}switch(typeof e[i]){case"boolean":case"number":case"string":if(l[i]!==e[i])return n;break;case"function":if(!e[i](l[i]))return n;break;case"object":if(M(e[i])){if(e[i].every(c=>c(l[i]))===!1)return n;break}default:throw new Error(`Unknown type of pattern test (key: ${i}). Test should be of type boolean, number, string, function or array of functions.`)}}return n.match=!0,n}function j(t){return Array.isArray(t)&&t.length&&t.every(r=>typeof r=="object")}function M(t){return Array.isArray(t)&&t.length&&t.every(r=>typeof r=="function")}function R(t,r){return r>=0?t[r]:t[t.length+r]}function I(t){return t.slice(-1)[0]||{}}export{S as m}; diff --git a/public/exadmin/assets/markdown-it-container.512a5043.js b/public/exadmin/assets/markdown-it-container.512a5043.js new file mode 100644 index 0000000..5c9b60d --- /dev/null +++ b/public/exadmin/assets/markdown-it-container.512a5043.js @@ -0,0 +1 @@ +var q=function(p,l,a){function T(r){return r.trim().split(" ",2)[0]===l}function y(r,c,_,d,e){return r[c].nesting===1&&r[c].attrJoin("class",l),e.renderToken(r,c,_,d,e)}a=a||{};var A=3,k=a.marker||":",M=k.charCodeAt(0),u=k.length,I=a.validate||T,v=a.render||y;function S(r,c,_,d){var e,i,b,h,m,o,C,x,g=!1,n=r.bMarks[c]+r.tShift[c],f=r.eMarks[c];if(M!==r.src.charCodeAt(n))return!1;for(e=n+1;e<=f&&k[(e-n)%u]===r.src[e];e++);if(b=Math.floor((e-n)/u),b=_||(n=r.bMarks[i]+r.tShift[i],f=r.eMarks[i],n=4)){for(e=n+1;e<=f&&k[(e-n)%u]===r.src[e];e++);if(!(Math.floor((e-n)/u):(",">:-("],blush:[':")',':-")'],broken_heart:["0&&!s.test(h[e-1])||e+t.lengthm&&(o=new l("text","",0),o.content=g.slice(m,e),r.push(o)),o=new l("emoji","",0),o.markup=b,o.content=a[b],r.push(o),m=e+t.length}),m=0;l--)t=r[l],(t.type==="link_open"||t.type==="link_close")&&t.info==="auto"&&(h-=t.nesting),t.type==="text"&&h===0&&i.test(t.content)&&(e[o].children=r=w(r,l,c(t.content,t.level,f.Token)))}};function pO(u){return u.replace(/[.?*+^$[\]\\(){}|-]/g,"\\$&")}var bO=function(n){var a=n.defs,_;n.enabled.length&&(a=Object.keys(a).reduce(function(s,c){return n.enabled.indexOf(c)>=0&&(s[c]=a[c]),s},{})),_=Object.keys(n.shortcuts).reduce(function(s,c){return a[c]?Array.isArray(n.shortcuts[c])?(n.shortcuts[c].forEach(function(g){s[g]=c}),s):(s[n.shortcuts[c]]=c,s):s},{});var i=Object.keys(a),d;i.length===0?d="^$":d=i.map(function(s){return":"+s+":"}).concat(Object.keys(_)).sort().reverse().map(function(s){return pO(s)}).join("|");var w=RegExp(d),p=RegExp(d,"g");return{defs:a,shortcuts:_,scanRE:w,replaceRE:p}},wO=dO,fO=hO,kO=bO,yO=function(n,a){var _={defs:{},shortcuts:{},enabled:[]},i=kO(n.utils.assign({},_,a||{}));n.renderer.rules.emoji=wO,n.core.ruler.after("linkify","emoji",fO(n,i.defs,i.shortcuts,i.scanRE,i.replaceRE))},vO=gO,xO=uO,zO=yO,jO=function(n,a){var _={defs:vO,shortcuts:xO,enabled:[]},i=n.utils.assign({},_,a||{});zO(n,i)};export{jO as m,gO as r}; diff --git a/public/exadmin/assets/markdown-it-table-of-contents.8a4ce16f.js b/public/exadmin/assets/markdown-it-table-of-contents.8a4ce16f.js new file mode 100644 index 0000000..0e0727d --- /dev/null +++ b/public/exadmin/assets/markdown-it-table-of-contents.8a4ce16f.js @@ -0,0 +1,2 @@ +const d=function(t){return encodeURIComponent(String(t).trim().toLowerCase().replace(/\s+/g,"-"))},h={includeLevel:[1,2],containerClass:"table-of-contents",slugify:d,markerPattern:/^\[\[toc\]\]/im,listType:"ul",format:function(t,o){return o.renderInline(t)},forceFullToc:!1,containerHeaderHtml:void 0,containerFooterHtml:void 0,transformLink:void 0};function g(t,o,n){const r=[];let e=null;return o.forEach(c=>{if(c.type==="heading_open"){const l=x(c),s=parseInt(c.tag.toLowerCase().replace("h",""),10);t.indexOf(s)>=0&&(e={level:s,text:null,anchor:l||null})}else if(e&&c.type==="inline"){const l=c.children.filter(s=>s.type==="text"||s.type==="code_inline").reduce((s,i)=>s+i.content,"");e.text=l,e.anchor||(e.anchor=n.slugify(l,c.content))}else c.type==="heading_close"&&(e&&r.push(e),e=null)}),r}function x(t){if(t&&t.attrs&&t.attrs.length>0){const o=t.attrs.find(n=>Array.isArray(n)&&n.length>=2?n[0]==="id":!1);if(o&&Array.isArray(o)&&o.length>=2){const[n,r]=o;return r}}return null}function y(t){return Math.min(...t.map(o=>o.level))}function a(t,o,n,r){const e={level:t,text:o,anchor:n,children:[],parent:r};return r.children.push(e),e}function m(t){const o={level:y(t)-1,anchor:null,text:null,children:[],parent:null};let n=o,r=n;return t.forEach(e=>{if(e.level>r.level)Array.from({length:e.level-r.level}).forEach(c=>{n=r,r=a(e.level,null,null,n)}),r.text=e.text,r.anchor=e.anchor;else if(e.level===r.level)r=a(e.level,e.text,e.anchor,n);else if(e.level"+t.children.map(r=>{let e="
    "}).join("")+""}var H=function(t,o){const n=Object.assign({},h,o),r=n.markerPattern;let e;function c(l,s){let i,u;if(l.src.charCodeAt(l.pos)!==91||s||(u=r.exec(l.src.substr(l.pos)),u=u?u.filter(function(v){return v}):[],u.length<1))return!1;i=l.push("toc_open","toc",1),i.markup="[[toc]]",i=l.push("toc_body","",0),i=l.push("toc_close","toc",-1);var f=l.src.indexOf(` +`,l.pos);return f!==-1?l.pos=f:l.pos=l.pos+l.posMax+1,!0}t.renderer.rules.toc_open=function(l,s){var i='
    ';return n.containerHeaderHtml&&(i+=n.containerHeaderHtml),i},t.renderer.rules.toc_close=function(l,s){var i="";return n.containerFooterHtml&&(i=n.containerFooterHtml),i+"
    "},t.renderer.rules.toc_body=function(l,s){if(n.forceFullToc)throw"forceFullToc was removed in version 0.5.0. For more information, see https://github.com/Oktavilla/markdown-it-table-of-contents/pull/41";{const i=g(n.includeLevel,e.tokens,n),u=m(i);return p(u,n,t)}},t.core.ruler.push("grab_state",function(l){e=l}),t.inline.ruler.after("emphasis","toc",c)};export{H as m}; diff --git a/public/exadmin/assets/markdown-it.80c3a67b.js b/public/exadmin/assets/markdown-it.80c3a67b.js new file mode 100644 index 0000000..84dcdb0 --- /dev/null +++ b/public/exadmin/assets/markdown-it.80c3a67b.js @@ -0,0 +1,15 @@ +import{r as Ue}from"./entities.0d2c0164.js";import{u as We,c as Qe}from"./uc.micro.981ceb7b.js";import{m as De}from"./mdurl.ef76b4dc.js";import{l as Ve}from"./linkify-it.92c30060.js";import{n as Je}from"./@babel.6cd0804c.js";var E={},Fe=Ue;(function(n){function e(d){return Object.prototype.toString.call(d)}function r(d){return e(d)==="[object String]"}var i=Object.prototype.hasOwnProperty;function l(d,w){return i.call(d,w)}function o(d){var w=Array.prototype.slice.call(arguments,1);return w.forEach(function(y){if(!!y){if(typeof y!="object")throw new TypeError(y+"must be object");Object.keys(y).forEach(function(O){d[O]=y[O]})}}),d}function t(d,w,y){return[].concat(d.slice(0,w),y,d.slice(w+1))}function c(d){return!(d>=55296&&d<=57343||d>=64976&&d<=65007||(d&65535)===65535||(d&65535)===65534||d>=0&&d<=8||d===11||d>=14&&d<=31||d>=127&&d<=159||d>1114111)}function f(d){if(d>65535){d-=65536;var w=55296+(d>>10),y=56320+(d&1023);return String.fromCharCode(w,y)}return String.fromCharCode(d)}var u=/\\([!"#$%&'()*+,\-.\/:;<=>?@[\\\]^_`{|}~])/g,s=/&([a-z#][a-z0-9]{1,31});/gi,p=new RegExp(u.source+"|"+s.source,"gi"),h=/^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))/i,a=Fe;function x(d,w){var y=0;return l(a,w)?a[w]:w.charCodeAt(0)===35&&h.test(w)&&(y=w[1].toLowerCase()==="x"?parseInt(w.slice(2),16):parseInt(w.slice(1),10),c(y))?f(y):d}function g(d){return d.indexOf("\\")<0?d:d.replace(u,"$1")}function b(d){return d.indexOf("\\")<0&&d.indexOf("&")<0?d:d.replace(p,function(w,y,O){return y||x(w,O)})}var _=/[&<>"]/,k=/[&<>"]/g,v={"&":"&","<":"<",">":">",'"':"""};function C(d){return v[d]}function S(d){return _.test(d)?d.replace(k,C):d}var m=/[.?*+^$[\]\\(){}|-]/g;function M(d){return d.replace(m,"\\$&")}function I(d){switch(d){case 9:case 32:return!0}return!1}function B(d){if(d>=8192&&d<=8202)return!0;switch(d){case 9:case 10:case 11:case 12:case 13:case 32:case 160:case 5760:case 8239:case 8287:case 12288:return!0}return!1}var A=Qe;function T(d){return A.test(d)}function H(d){switch(d){case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 47:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 91:case 92:case 93:case 94:case 95:case 96:case 123:case 124:case 125:case 126:return!0;default:return!1}}function q(d){return d=d.trim().replace(/\s+/g," "),"\u1E9E".toLowerCase()==="\u1E7E"&&(d=d.replace(/ẞ/g,"\xDF")),d.toLowerCase().toUpperCase()}n.lib={},n.lib.mdurl=De,n.lib.ucmicro=We,n.assign=o,n.isString=r,n.has=l,n.unescapeMd=g,n.unescapeAll=b,n.isValidEntityCode=c,n.fromCodePoint=f,n.escapeHtml=S,n.arrayReplaceAt=t,n.isSpace=I,n.isWhiteSpace=B,n.isMdAsciiPunct=H,n.isPunctChar=T,n.escapeRE=M,n.normalizeReference=q})(E);var J={},Ye=function(e,r,i){var l,o,t,c,f=-1,u=e.posMax,s=e.pos;for(e.pos=r+1,l=1;e.pos32))return f;if(l===41){if(o===0)break;o--}r++}return c===r||o!==0||(f.str=ke(e.slice(c,r)),f.lines=t,f.pos=r,f.ok=!0),f},Xe=E.unescapeAll,er=function(e,r,i){var l,o,t=0,c=r,f={ok:!1,pos:0,lines:0,str:""};if(r>=i||(o=e.charCodeAt(r),o!==34&&o!==39&&o!==40))return f;for(r++,o===40&&(o=41);r"+F(n[e].content)+""};$.code_block=function(n,e,r,i,l){var o=n[e];return""+F(n[e].content)+` +`};$.fence=function(n,e,r,i,l){var o=n[e],t=o.info?nr(o.info).trim():"",c="",f="",u,s,p,h,a;return t&&(p=t.split(/(\s+)/g),c=p[0],f=p.slice(2).join("")),r.highlight?u=r.highlight(o.content,c,f)||F(o.content):u=F(o.content),u.indexOf(""+u+` +`):"
    "+u+`
    +`};$.image=function(n,e,r,i,l){var o=n[e];return o.attrs[o.attrIndex("alt")][1]=l.renderInlineAsText(o.children,r,i),l.renderToken(n,e,r)};$.hardbreak=function(n,e,r){return r.xhtmlOut?`
    +`:`
    +`};$.softbreak=function(n,e,r){return r.breaks?r.xhtmlOut?`
    +`:`
    +`:` +`};$.text=function(n,e){return F(n[e].content)};$.html_block=function(n,e){return n[e].content};$.html_inline=function(n,e){return n[e].content};function N(){this.rules=rr({},$)}N.prototype.renderAttrs=function(e){var r,i,l;if(!e.attrs)return"";for(l="",r=0,i=e.attrs.length;r +`:">",o)};N.prototype.renderInline=function(n,e,r){for(var i,l="",o=this.rules,t=0,c=n.length;t\s]/i.test(n)}function ar(n){return/^<\/a\s*>/i.test(n)}var hr=function(e){var r,i,l,o,t,c,f,u,s,p,h,a,x,g,b,_,k=e.tokens,v;if(!!e.md.options.linkify){for(i=0,l=k.length;i=0;r--){if(c=o[r],c.type==="link_close"){for(r--;o[r].level!==c.level&&o[r].type!=="link_open";)r--;continue}if(c.type==="html_inline"&&(sr(c.content)&&x>0&&x--,ar(c.content)&&x++),!(x>0)&&c.type==="text"&&e.md.linkify.test(c.content)){for(s=c.content,v=e.md.linkify.match(s),f=[],a=c.level,h=0,v.length>0&&v[0].index===0&&r>0&&o[r-1].type==="text_special"&&(v=v.slice(1)),u=0;uh&&(t=new e.Token("text","",0),t.content=s.slice(h,p),t.level=a,f.push(t)),t=new e.Token("link_open","a",1),t.attrs=[["href",b]],t.level=a++,t.markup="linkify",t.info="auto",f.push(t),t=new e.Token("text","",0),t.content=_,t.level=a,f.push(t),t=new e.Token("link_close","a",-1),t.level=--a,t.markup="linkify",t.info="auto",f.push(t),h=v[u].lastIndex);h=0;e--)r=n[e],r.type==="text"&&!i&&(r.content=r.content.replace(dr,mr)),r.type==="link_open"&&r.info==="auto"&&i--,r.type==="link_close"&&r.info==="auto"&&i++}function gr(n){var e,r,i=0;for(e=n.length-1;e>=0;e--)r=n[e],r.type==="text"&&!i&&Be.test(r.content)&&(r.content=r.content.replace(/\+-/g,"\xB1").replace(/\.{2,}/g,"\u2026").replace(/([?!])…/g,"$1..").replace(/([?!]){4,}/g,"$1$1$1").replace(/,{2,}/g,",").replace(/(^|[^-])---(?=[^-]|$)/mg,"$1\u2014").replace(/(^|\s)--(?=\s|$)/mg,"$1\u2013").replace(/(^|[^-\s])--(?=[^-\s]|$)/mg,"$1\u2013")),r.type==="link_open"&&r.info==="auto"&&i--,r.type==="link_close"&&r.info==="auto"&&i++}var _r=function(e){var r;if(!!e.md.options.typographer)for(r=e.tokens.length-1;r>=0;r--)e.tokens[r].type==="inline"&&(pr.test(e.tokens[r].content)&&xr(e.tokens[r].children),Be.test(e.tokens[r].content)&&gr(e.tokens[r].children))},me=E.isWhiteSpace,xe=E.isPunctChar,ge=E.isMdAsciiPunct,vr=/['"]/,_e=/['"]/g,ve="\u2019";function W(n,e,r){return n.slice(0,e)+r+n.slice(e+1)}function br(n,e){var r,i,l,o,t,c,f,u,s,p,h,a,x,g,b,_,k,v,C,S,m;for(C=[],r=0;r=0&&!(C[k].level<=f);k--);if(C.length=k+1,i.type!=="text")continue;l=i.content,t=0,c=l.length;e:for(;t=0)s=l.charCodeAt(o.index-1);else for(k=r-1;k>=0&&!(n[k].type==="softbreak"||n[k].type==="hardbreak");k--)if(!!n[k].content){s=n[k].content.charCodeAt(n[k].content.length-1);break}if(p=32,t=48&&s<=57&&(_=b=!1),b&&_&&(b=h,_=a),!b&&!_){v&&(i.content=W(i.content,o.index,ve));continue}if(_){for(k=C.length-1;k>=0&&(u=C[k],!(C[k].level=0;r--)e.tokens[r].type!=="inline"||!vr.test(e.tokens[r].content)||br(e.tokens[r].children,e)},Ar=function(e){var r,i,l,o,t,c,f=e.tokens;for(r=0,i=f.length;r=0&&(i=this.attrs[r][1]),i};L.prototype.attrJoin=function(e,r){var i=this.attrIndex(e);i<0?this.attrPush([e,r]):this.attrs[i][1]=this.attrs[i][1]+" "+r};var se=L,yr=se;function qe(n,e,r){this.src=n,this.env=r,this.tokens=[],this.inlineMode=!1,this.md=e}qe.prototype.Token=yr;var Er=qe,Sr=ue,ne=[["normalize",tr],["block",fr],["inline",cr],["linkify",hr],["replacements",_r],["smartquotes",Cr],["text_join",Ar]];function ae(){this.ruler=new Sr;for(var n=0;ni||(s=r+1,e.sCount[s]=4||(c=e.bMarks[s]+e.tShift[s],c>=e.eMarks[s])||(S=e.src.charCodeAt(c++),S!==124&&S!==45&&S!==58)||c>=e.eMarks[s]||(m=e.src.charCodeAt(c++),m!==124&&m!==45&&m!==58&&!ie(m))||S===45&&ie(m))return!1;for(;c=4||(p=be(t),p.length&&p[0]===""&&p.shift(),p.length&&p[p.length-1]===""&&p.pop(),h=p.length,h===0||h!==x.length))return!1;if(l)return!0;for(k=e.parentType,e.parentType="table",C=e.md.block.ruler.getRules("blockquote"),a=e.push("table_open","table",1),a.map=b=[r,0],a=e.push("thead_open","thead",1),a.map=[r,r+1],a=e.push("tr_open","tr",1),a.map=[r,r+1],f=0;f=4)break;for(p=be(t),p.length&&p[0]===""&&p.shift(),p.length&&p[p.length-1]===""&&p.pop(),s===r+2&&(a=e.push("tbody_open","tbody",1),a.map=_=[r+2,0]),a=e.push("tr_open","tr",1),a.map=[s,s+1],f=0;f=4){l++,o=l;continue}break}return e.line=o,t=e.push("code_block","code",0),t.content=e.getLines(r,o,4+e.blkIndent,!1)+` +`,t.map=[r,e.line],!0},Ir=function(e,r,i,l){var o,t,c,f,u,s,p,h=!1,a=e.bMarks[r]+e.tShift[r],x=e.eMarks[r];if(e.sCount[r]-e.blkIndent>=4||a+3>x||(o=e.src.charCodeAt(a),o!==126&&o!==96)||(u=a,a=e.skipChars(a,o),t=a-u,t<3)||(p=e.src.slice(u,a),c=e.src.slice(a,x),o===96&&c.indexOf(String.fromCharCode(o))>=0))return!1;if(l)return!0;for(f=r;f++,!(f>=i||(a=u=e.bMarks[f]+e.tShift[f],x=e.eMarks[f],a=4)&&(a=e.skipChars(a,o),!(a-u=4||e.src.charCodeAt(A++)!==62)return!1;if(l)return!0;for(f=a=e.sCount[r]+1,e.src.charCodeAt(A)===32?(A++,f++,a++,o=!1,C=!0):e.src.charCodeAt(A)===9?(C=!0,(e.bsCount[r]+a)%4===3?(A++,f++,a++,o=!1):o=!0):C=!1,x=[e.bMarks[r]],e.bMarks[r]=A;A=T,k=[e.sCount[r]],e.sCount[r]=a-f,v=[e.tShift[r]],e.tShift[r]=A-e.bMarks[r],m=e.md.block.ruler.getRules("blockquote"),_=e.parentType,e.parentType="blockquote",h=r+1;h=T));h++){if(e.src.charCodeAt(A++)===62&&!I){for(f=a=e.sCount[h]+1,e.src.charCodeAt(A)===32?(A++,f++,a++,o=!1,C=!0):e.src.charCodeAt(A)===9?(C=!0,(e.bsCount[h]+a)%4===3?(A++,f++,a++,o=!1):o=!0):C=!1,x.push(e.bMarks[h]),e.bMarks[h]=A;A=T,g.push(e.bsCount[h]),e.bsCount[h]=e.sCount[h]+1+(C?1:0),k.push(e.sCount[h]),e.sCount[h]=a-f,v.push(e.tShift[h]),e.tShift[h]=A-e.bMarks[h];continue}if(s)break;for(S=!1,c=0,u=m.length;c",M.map=p=[r,0],e.md.block.tokenize(e,r,h),M=e.push("blockquote_close","blockquote",-1),M.markup=">",e.lineMax=B,e.parentType=_,p[1]=e.line,c=0;c=4||(o=e.src.charCodeAt(u++),o!==42&&o!==45&&o!==95))return!1;for(t=1;u=o||(r=n.src.charCodeAt(l++),r<48||r>57))return-1;for(;;){if(l>=o)return-1;if(r=n.src.charCodeAt(l++),r>=48&&r<=57){if(l-i>=10)return-1;continue}if(r===41||r===46)break;return-1}return l=4||e.listIndent>=0&&e.sCount[r]-e.listIndent>=4&&e.sCount[r]=e.blkIndent&&(O=!0),(T=ye(e,r))>=0){if(p=!0,q=e.bMarks[r]+e.tShift[r],_=Number(e.src.slice(q,T-1)),O&&_!==1)return!1}else if((T=Ae(e,r))>=0)p=!1;else return!1;if(O&&e.skipSpaces(T)>=e.eMarks[r])return!1;if(b=e.src.charCodeAt(T-1),l)return!0;for(g=e.tokens.length,p?(y=e.push("ordered_list_open","ol",1),_!==1&&(y.attrs=[["start",_]])):y=e.push("bullet_list_open","ul",1),y.map=x=[r,0],y.markup=String.fromCharCode(b),v=r,H=!1,w=e.md.block.ruler.getRules("list"),m=e.parentType,e.parentType="list";v=k?u=1:u=C-s,u>4&&(u=1),f=s+u,y=e.push("list_item_open","li",1),y.markup=String.fromCharCode(b),y.map=h=[r,0],p&&(y.info=e.src.slice(q,T-1)),B=e.tight,I=e.tShift[r],M=e.sCount[r],S=e.listIndent,e.listIndent=e.blkIndent,e.blkIndent=f,e.tight=!0,e.tShift[r]=t-e.bMarks[r],e.sCount[r]=C,t>=k&&e.isEmpty(r+1)?e.line=Math.min(e.line+2,i):e.md.block.tokenize(e,r,i,!0),(!e.tight||H)&&(de=!1),H=e.line-r>1&&e.isEmpty(e.line-1),e.blkIndent=e.listIndent,e.listIndent=S,e.tShift[r]=I,e.sCount[r]=M,e.tight=B,y=e.push("list_item_close","li",-1),y.markup=String.fromCharCode(b),v=r=e.line,h[1]=v,t=e.bMarks[r],v>=i||e.sCount[v]=4)break;for(d=!1,c=0,a=w.length;c=4||e.src.charCodeAt(m)!==91)return!1;for(;++m3)&&!(e.sCount[I]<0)){for(k=!1,s=0,p=v.length;s`\\x00-\\x20]+",Nr="'[^']*'",Lr='"[^"]*"',Hr="(?:"+jr+"|"+Nr+"|"+Lr+")",Zr="(?:\\s+"+qr+"(?:\\s*=\\s*"+Hr+")?)",Ne="<[A-Za-z][A-Za-z0-9\\-]*"+Zr+"*\\s*\\/?>",Le="<\\/[A-Za-z][A-Za-z0-9\\-]*\\s*>",Gr="|",Ur="<[?][\\s\\S]*?[?]>",Wr="]*>",Qr="",Vr=new RegExp("^(?:"+Ne+"|"+Le+"|"+Gr+"|"+Ur+"|"+Wr+"|"+Qr+")"),Jr=new RegExp("^(?:"+Ne+"|"+Le+")");Y.HTML_TAG_RE=Vr;var fi=Y.HTML_OPEN_CLOSE_TAG_RE=Jr,Yr=Br,Kr=Y.HTML_OPEN_CLOSE_TAG_RE,j=[[/^<(script|pre|style|textarea)(?=(\s|>|$))/i,/<\/(script|pre|style|textarea)>/i,!0],[/^/,!0],[/^<\?/,/\?>/,!0],[/^/,!0],[/^/,!0],[new RegExp("^|$))","i"),/^$/,!0],[new RegExp(Kr.source+"\\s*$"),/^$/,!1]],Xr=function(e,r,i,l){var o,t,c,f,u=e.bMarks[r]+e.tShift[r],s=e.eMarks[r];if(e.sCount[r]-e.blkIndent>=4||!e.md.options.html||e.src.charCodeAt(u)!==60)return!1;for(f=e.src.slice(u,s),o=0;o=4||(o=e.src.charCodeAt(u),o!==35||u>=s))return!1;for(t=1,o=e.src.charCodeAt(++u);o===35&&u6||uu&&Ee(e.src.charCodeAt(c-1))&&(s=c),e.line=r+1,f=e.push("heading_open","h"+String(t),1),f.markup="########".slice(0,t),f.map=[r,e.line],f=e.push("inline","",0),f.content=e.src.slice(u,s).trim(),f.map=[r,e.line],f.children=[],f=e.push("heading_close","h"+String(t),-1),f.markup="########".slice(0,t)),!0)},rn=function(e,r,i){var l,o,t,c,f,u,s,p,h,a=r+1,x,g=e.md.block.ruler.getRules("paragraph");if(e.sCount[r]-e.blkIndent>=4)return!1;for(x=e.parentType,e.parentType="paragraph";a3)){if(e.sCount[a]>=e.blkIndent&&(u=e.bMarks[a]+e.tShift[a],s=e.eMarks[a],u=s)))){p=h===61?1:2;break}if(!(e.sCount[a]<0)){for(o=!1,t=0,c=g.length;t3)&&!(e.sCount[u]<0)){for(l=!1,o=0,t=s.length;o0&&this.level++,this.tokens.push(i),i};z.prototype.isEmpty=function(e){return this.bMarks[e]+this.tShift[e]>=this.eMarks[e]};z.prototype.skipEmptyLines=function(e){for(var r=this.lineMax;er;)if(!K(this.src.charCodeAt(--e)))return e+1;return e};z.prototype.skipChars=function(e,r){for(var i=this.src.length;ei;)if(r!==this.src.charCodeAt(--e))return e+1;return e};z.prototype.getLines=function(e,r,i,l){var o,t,c,f,u,s,p,h=e;if(e>=r)return"";for(s=new Array(r-e),o=0;hi?s[o]=new Array(t-i+1).join(" ")+this.src.slice(f,u):s[o]=this.src.slice(f,u)}return s.join("")};z.prototype.Token=He;var on=z,ln=ue,V=[["table",Tr,["paragraph","reference"]],["code",wr],["fence",Ir,["paragraph","reference","blockquote","list"]],["blockquote",Rr,["paragraph","reference","blockquote","list"]],["hr",$r,["paragraph","reference","blockquote","list"]],["list",Or,["paragraph","reference","blockquote"]],["reference",Fr],["html_block",Xr,["paragraph","reference","blockquote"]],["heading",en,["paragraph","reference","blockquote"]],["lheading",rn],["paragraph",nn]];function X(){this.ruler=new ln;for(var n=0;n=r||n.sCount[c]=u){n.line=r;break}for(l=0;l0||(i=e.pos,l=e.posMax,i+3>l)||e.src.charCodeAt(i)!==58||e.src.charCodeAt(i+1)!==47||e.src.charCodeAt(i+2)!==47||(o=e.pending.match(un),!o)||(t=o[1],c=e.md.linkify.matchAtStart(e.src.slice(i-t.length)),!c)||(f=c.url,f=f.replace(/\*+$/,""),u=e.md.normalizeLink(f),!e.md.validateLink(u))?!1:(r||(e.pending=e.pending.slice(0,-t.length),s=e.push("link_open","a",1),s.attrs=[["href",u]],s.markup="linkify",s.info="auto",s=e.push("text","",0),s.content=e.md.normalizeLinkText(f),s=e.push("link_close","a",-1),s.markup="linkify",s.info="auto"),e.pos+=f.length-t.length,!0)},an=E.isSpace,hn=function(e,r){var i,l,o,t=e.pos;if(e.src.charCodeAt(t)!==10)return!1;if(i=e.pending.length-1,l=e.posMax,!r)if(i>=0&&e.pending.charCodeAt(i)===32)if(i>=1&&e.pending.charCodeAt(i-1)===32){for(o=i-1;o>=1&&e.pending.charCodeAt(o-1)===32;)o--;e.pending=e.pending.slice(0,o),e.push("hardbreak","br",0)}else e.pending=e.pending.slice(0,-1),e.push("softbreak","br",0);else e.push("softbreak","br",0);for(t++;t?@[]^_`{|}~-".split("").forEach(function(n){he[n.charCodeAt(0)]=1});var dn=function(e,r){var i,l,o,t,c,f=e.pos,u=e.posMax;if(e.src.charCodeAt(f)!==92||(f++,f>=u))return!1;if(i=e.src.charCodeAt(f),i===10){for(r||e.push("hardbreak","br",0),f++;f=55296&&i<=56319&&f+1=56320&&l<=57343&&(t+=e.src[f+1],f++)),o="\\"+t,r||(c=e.push("text_special","",0),i<256&&he[i]!==0?c.content=t:c.content=o,c.markup=o,c.info="escape"),e.pos=f+1,!0},kn=function(e,r){var i,l,o,t,c,f,u,s,p=e.pos,h=e.src.charCodeAt(p);if(h!==96)return!1;for(i=p,p++,l=e.posMax;p=0;r--)i=e[r],!(i.marker!==95&&i.marker!==42)&&i.end!==-1&&(l=e[i.end],c=r>0&&e[r-1].end===i.end+1&&e[r-1].marker===i.marker&&e[r-1].token===i.token-1&&e[i.end+1].token===l.token+1,t=String.fromCharCode(i.marker),o=n.tokens[i.token],o.type=c?"strong_open":"em_open",o.tag=c?"strong":"em",o.nesting=1,o.markup=c?t+t:t,o.content="",o=n.tokens[l.token],o.type=c?"strong_close":"em_close",o.tag=c?"strong":"em",o.nesting=-1,o.markup=c?t+t:t,o.content="",c&&(n.tokens[e[r-1].token].content="",n.tokens[e[i.end+1].token].content="",r--))}re.postProcess=function(e){var r,i=e.tokens_meta,l=e.tokens_meta.length;for(Te(e,e.delimiters),r=0;r=g)return!1;if(b=f,u=e.md.helpers.parseLinkDestination(e.src,f,e.posMax),u.ok){for(h=e.md.normalizeLink(u.str),e.md.validateLink(h)?f=u.pos:h="",b=f;f=g||e.src.charCodeAt(f)!==41)&&(_=!0),f++}if(_){if(typeof e.env.references=="undefined")return!1;if(f=0?o=e.src.slice(b,f++):f=t+1):f=t+1,o||(o=e.src.slice(c,t)),s=e.env.references[mn(o)],!s)return e.pos=x,!1;h=s.href,a=s.title}return r||(e.pos=c,e.posMax=t,p=e.push("link_open","a",1),p.attrs=i=[["href",h]],a&&i.push(["title",a]),e.linkLevel++,e.md.inline.tokenize(e),e.linkLevel--,p=e.push("link_close","a",-1)),e.pos=f,e.posMax=g,!0},gn=E.normalizeReference,te=E.isSpace,_n=function(e,r){var i,l,o,t,c,f,u,s,p,h,a,x,g,b="",_=e.pos,k=e.posMax;if(e.src.charCodeAt(e.pos)!==33||e.src.charCodeAt(e.pos+1)!==91||(f=e.pos+2,c=e.md.helpers.parseLinkLabel(e,e.pos+1,!1),c<0))return!1;if(u=c+1,u=k)return!1;for(g=u,p=e.md.helpers.parseLinkDestination(e.src,u,e.posMax),p.ok&&(b=e.md.normalizeLink(p.str),e.md.validateLink(b)?u=p.pos:b=""),g=u;u=k||e.src.charCodeAt(u)!==41)return e.pos=_,!1;u++}else{if(typeof e.env.references=="undefined")return!1;if(u=0?t=e.src.slice(g,u++):u=c+1):u=c+1,t||(t=e.src.slice(f,c)),s=e.env.references[gn(t)],!s)return e.pos=_,!1;b=s.href,h=s.title}return r||(o=e.src.slice(f,c),e.md.inline.parse(o,e.md,e.env,x=[]),a=e.push("image","img",0),a.attrs=i=[["src",b],["alt",""]],a.children=x,a.content=o,h&&i.push(["title",h])),e.pos=u,e.posMax=k,!0},vn=/^([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])?)*)$/,bn=/^([a-zA-Z][a-zA-Z0-9+.\-]{1,31}):([^<>\x00-\x20]*)$/,Cn=function(e,r){var i,l,o,t,c,f,u=e.pos;if(e.src.charCodeAt(u)!==60)return!1;for(c=e.pos,f=e.posMax;;){if(++u>=f||(t=e.src.charCodeAt(u),t===60))return!1;if(t===62)break}return i=e.src.slice(c+1,u),bn.test(i)?(l=e.md.normalizeLink(i),e.md.validateLink(l)?(r||(o=e.push("link_open","a",1),o.attrs=[["href",l]],o.markup="autolink",o.info="auto",o=e.push("text","",0),o.content=e.md.normalizeLinkText(i),o=e.push("link_close","a",-1),o.markup="autolink",o.info="auto"),e.pos+=i.length+2,!0):!1):vn.test(i)?(l=e.md.normalizeLink("mailto:"+i),e.md.validateLink(l)?(r||(o=e.push("link_open","a",1),o.attrs=[["href",l]],o.markup="autolink",o.info="auto",o=e.push("text","",0),o.content=e.md.normalizeLinkText(i),o=e.push("link_close","a",-1),o.markup="autolink",o.info="auto"),e.pos+=i.length+2,!0):!1):!1},An=Y.HTML_TAG_RE;function yn(n){return/^\s]/i.test(n)}function En(n){return/^<\/a\s*>/i.test(n)}function Sn(n){var e=n|32;return e>=97&&e<=122}var Mn=function(e,r){var i,l,o,t,c=e.pos;return!e.md.options.html||(o=e.posMax,e.src.charCodeAt(c)!==60||c+2>=o)||(i=e.src.charCodeAt(c+1),i!==33&&i!==63&&i!==47&&!Sn(i))||(l=e.src.slice(c).match(An),!l)?!1:(r||(t=e.push("html_inline","",0),t.content=e.src.slice(c,c+l[0].length),yn(t.content)&&e.linkLevel++,En(t.content)&&e.linkLevel--),e.pos+=l[0].length,!0)},we=Fe,Tn=E.has,wn=E.isValidEntityCode,Ie=E.fromCodePoint,In=/^&#((?:x[a-f0-9]{1,6}|[0-9]{1,7}));/i,Rn=/^&([a-z][a-z0-9]{1,31});/i,Pn=function(e,r){var i,l,o,t,c=e.pos,f=e.posMax;if(e.src.charCodeAt(c)!==38||c+1>=f)return!1;if(i=e.src.charCodeAt(c+1),i===35){if(o=e.src.slice(c).match(In),o)return r||(l=o[1][0].toLowerCase()==="x"?parseInt(o[1].slice(1),16):parseInt(o[1],10),t=e.push("text_special","",0),t.content=wn(l)?Ie(l):Ie(65533),t.markup=o[0],t.info="entity"),e.pos+=o[0].length,!0}else if(o=e.src.slice(c).match(Rn),o&&Tn(we,o[1]))return r||(t=e.push("text_special","",0),t.content=we[o[1]],t.markup=o[0],t.info="entity"),e.pos+=o[0].length,!0;return!1};function Re(n,e){var r,i,l,o,t,c,f,u,s={},p=e.length;if(!!p){var h=0,a=-2,x=[];for(r=0;rt;i-=x[i]+1)if(o=e[i],o.marker===l.marker&&o.open&&o.end<0&&(f=!1,(o.close||l.open)&&(o.length+l.length)%3===0&&(o.length%3!==0||l.length%3!==0)&&(f=!0),!f)){u=i>0&&!e[i-1].open?x[i-1]+1:0,x[r]=r-i+u,x[i]=u,l.open=!1,o.end=r,o.close=!1,c=-1,a=-2;break}c!==-1&&(s[l.marker][(l.open?3:0)+(l.length||0)%3]=c)}}}var $n=function(e){var r,i=e.tokens_meta,l=e.tokens_meta.length;for(Re(e,e.delimiters),r=0;r0&&l++,o[r].type==="text"&&r+10&&(this.level++,this._prev_delimiters.push(this.delimiters),this.delimiters=[],l={delimiters:this.delimiters}),this.pendingLevel=this.level,this.tokens.push(i),this.tokens_meta.push(l),i};G.prototype.scanDelims=function(n,e){var r=n,i,l,o,t,c,f,u,s,p,h=!0,a=!0,x=this.posMax,g=this.src.charCodeAt(n);for(i=n>0?this.src.charCodeAt(n-1):32;r=o)break;continue}n.pending+=n.src[n.pos++]}n.pending&&n.pushPending()};U.prototype.parse=function(n,e,r,i){var l,o,t,c=new this.State(n,e,r,i);for(this.tokenize(c),o=this.ruler2.getRules(""),t=o.length,l=0;l=0))try{e.hostname=Ze.toASCII(e.hostname)}catch{}return D.encode(D.format(e))}function ei(n){var e=D.parse(n,!0);if(e.hostname&&(!e.protocol||Ge.indexOf(e.protocol)>=0))try{e.hostname=Ze.toUnicode(e.hostname)}catch{}return D.decode(D.format(e),D.decode.defaultChars+"%")}function R(n,e){if(!(this instanceof R))return new R(n,e);e||Z.isString(n)||(e=n||{},n="default"),this.inline=new Wn,this.block=new Un,this.core=new Gn,this.renderer=new Zn,this.linkify=new Qn,this.validateLink=Kn,this.normalizeLink=Xn,this.normalizeLinkText=ei,this.utils=Z,this.helpers=Z.assign({},Hn),this.options={},this.configure(n),e&&this.set(e)}R.prototype.set=function(n){return Z.assign(this.options,n),this};R.prototype.configure=function(n){var e=this,r;if(Z.isString(n)&&(r=n,n=Vn[r],!n))throw new Error('Wrong `markdown-it` preset "'+r+'", check name');if(!n)throw new Error("Wrong `markdown-it` preset, can't be empty");return n.options&&e.set(n.options),n.components&&Object.keys(n.components).forEach(function(i){n.components[i].rules&&e[i].ruler.enableOnly(n.components[i].rules),n.components[i].rules2&&e[i].ruler2.enableOnly(n.components[i].rules2)}),this};R.prototype.enable=function(n,e){var r=[];Array.isArray(n)||(n=[n]),["core","block","inline"].forEach(function(l){r=r.concat(this[l].ruler.enable(n,!0))},this),r=r.concat(this.inline.ruler2.enable(n,!0));var i=n.filter(function(l){return r.indexOf(l)<0});if(i.length&&!e)throw new Error("MarkdownIt. Failed to enable unknown rule(s): "+i);return this};R.prototype.disable=function(n,e){var r=[];Array.isArray(n)||(n=[n]),["core","block","inline"].forEach(function(l){r=r.concat(this[l].ruler.disable(n,!0))},this),r=r.concat(this.inline.ruler2.disable(n,!0));var i=n.filter(function(l){return r.indexOf(l)<0});if(i.length&&!e)throw new Error("MarkdownIt. Failed to disable unknown rule(s): "+i);return this};R.prototype.use=function(n){var e=[this].concat(Array.prototype.slice.call(arguments,1));return n.apply(n,e),this};R.prototype.parse=function(n,e){if(typeof n!="string")throw new Error("Input data should be a String");var r=new this.core.State(n,this,e);return this.core.process(r),r.tokens};R.prototype.render=function(n,e){return e=e||{},this.renderer.render(this.parse(n,e),this.options,e)};R.prototype.parseInline=function(n,e){var r=new this.core.State(n,this,e);return r.inlineMode=!0,this.core.process(r),r.tokens};R.prototype.renderInline=function(n,e){return e=e||{},this.renderer.render(this.parseInline(n,e),this.options,e)};var ri=R,ci=ri;export{fi as H,Fn as f,Br as h,ci as m}; diff --git a/public/exadmin/assets/mdurl.ef76b4dc.js b/public/exadmin/assets/mdurl.ef76b4dc.js new file mode 100644 index 0000000..0cee97a --- /dev/null +++ b/public/exadmin/assets/mdurl.ef76b4dc.js @@ -0,0 +1,2 @@ +var v={},P={};function R(a){var t,r,i=P[a];if(i)return i;for(i=P[a]=[],t=0;t<128;t++)r=String.fromCharCode(t),/^[0-9a-z]$/i.test(r)?i.push(r):i.push("%"+("0"+t.toString(16).toUpperCase()).slice(-2));for(t=0;t=55296&&s<=57343){if(s>=55296&&s<=56319&&i+1=56320&&o<=57343)){h+=encodeURIComponent(a[i]+a[i+1]),i++;continue}h+="%EF%BF%BD";continue}h+=encodeURIComponent(a[i])}return h}F.defaultChars=";/?:@&=+$,-_.!~*'()#";F.componentChars="-_.!~*'()";var Z=F,_={};function j(a){var t,r,i=_[a];if(i)return i;for(i=_[a]=[],t=0;t<128;t++)r=String.fromCharCode(t),i.push(r);for(t=0;t=55296&&n<=57343?u+="\uFFFD\uFFFD\uFFFD":u+=String.fromCharCode(n),f+=6;continue}if((o&248)===240&&f+91114111?u+="\uFFFD\uFFFD\uFFFD\uFFFD":(n-=65536,u+=String.fromCharCode(55296+(n>>10),56320+(n&1023))),f+=9;continue}u+="\uFFFD"}return u})}d.defaultChars=";/?:@&=+$,#";d.componentChars="";var M=d,G=function(t){var r="";return r+=t.protocol||"",r+=t.slashes?"//":"",r+=t.auth?t.auth+"@":"",t.hostname&&t.hostname.indexOf(":")!==-1?r+="["+t.hostname+"]":r+=t.hostname||"",r+=t.port?":"+t.port:"",r+=t.pathname||"",r+=t.search||"",r+=t.hash||"",r};function p(){this.protocol=null,this.slashes=null,this.auth=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.pathname=null}var J=/^([a-z0-9.+-]+:)/i,K=/:[0-9]*$/,N=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,Q=["<",">",'"',"`"," ","\r",` +`," "],T=["{","}","|","\\","^","`"].concat(Q),V=["'"].concat(T),y=["%","/","?",";","#"].concat(V),U=["/","?","#"],W=255,z=/^[+a-z0-9A-Z_-]{0,63}$/,X=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,S={javascript:!0,"javascript:":!0},B={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0};function Y(a,t){if(a&&a instanceof p)return a;var r=new p;return r.parse(a,t),r}p.prototype.parse=function(a,t){var r,i,f,s,o,e=a;if(e=e.trim(),!t&&a.split("#").length===1){var h=N.exec(e);if(h)return this.pathname=h[1],h[2]&&(this.search=h[2]),this}var c=J.exec(e);if(c&&(c=c[0],f=c.toLowerCase(),this.protocol=c,e=e.substr(c.length)),(t||c||e.match(/^\/\/[^@\/]+@[^@\/]+/))&&(o=e.substr(0,2)==="//",o&&!(c&&S[c])&&(e=e.substr(2),this.slashes=!0)),!S[c]&&(o||c&&!B[c])){var n=-1;for(r=0;r127?g+="x":g+=l[C];if(!g.match(z)){var O=m.slice(0,r),b=m.slice(r+1),D=l.match(X);D&&(O.push(D[1]),b.unshift(D[2])),b.length&&(e=b.join(".")+e),this.hostname=O.join(".");break}}}}this.hostname.length>W&&(this.hostname=""),A&&(this.hostname=this.hostname.substr(1,this.hostname.length-2))}var I=e.indexOf("#");I!==-1&&(this.hash=e.substr(I),e=e.slice(0,I));var $=e.indexOf("?");return $!==-1&&(this.search=e.substr($),e=e.slice(0,$)),e&&(this.pathname=e),B[f]&&this.hostname&&!this.pathname&&(this.pathname=""),this};p.prototype.parseHost=function(a){var t=K.exec(a);t&&(t=t[0],t!==":"&&(this.port=t.substr(1)),a=a.substr(0,a.length-t.length)),a&&(this.hostname=a)};var H=Y;v.encode=Z;v.decode=M;v.format=G;v.parse=H;export{v as m}; diff --git a/public/exadmin/assets/numberRange.355eb997.js b/public/exadmin/assets/numberRange.355eb997.js new file mode 100644 index 0000000..0a6bc2b --- /dev/null +++ b/public/exadmin/assets/numberRange.355eb997.js @@ -0,0 +1 @@ +import"./vue.db505ee4.js";import{r as m,V as w,w as D,p as d,aW as g,aR as H,ar as M,bd as O,c as _,aM as V,u as x,S as T,ai as k}from"./@vue.cb43a243.js";import"./@babel.6cd0804c.js";import"./regenerator-runtime.8e24db72.js";const A={name:"ExNumberRange"},$=Object.assign(A,{props:{value:Array,separator:{type:String,default:"-"}},emits:["update:value"],setup(i,{emit:f}){const s=i,e=m(null),a=m(null),t=w();p(),D(()=>s.value,(l,u)=>{JSON.stringify(l)!=JSON.stringify(u)&&p()});function p(){s.value.length>0?(e.value=s.value[0],a.value=s.value[1]):(e.value=null,a.value=null),n()}function n(){e.value===null&&a.value===null?f("update:value",[]):f("update:value",[e.value,a.value])}let r=!1;function b(){r=!1}function S(l){e.value===null&&(a.value=null),setTimeout(()=>{e.value!==null&&!a.value&&(a.value=o()),e.value!==null&&e.value===a.value&&(a.value=o()),n()},500)}function y(){r=!0,e.value===null&&a.value!==null&&(e.value=N()),setTimeout(()=>{a.value===null&&r&&(e.value=null),n()},300)}function o(){const l=t.step||1;return e.value+l}function N(){const l=t.step||1;return a.value-l}const B=d(()=>o()),C=d(()=>{if(t.max){const l=t.step||1;return t.max-l}return null});return(l,u)=>{const c=g("a-input-number"),h=g("a-form-item-rest");return H(),M(h,null,{default:O(()=>[_(c,V(l.$attrs,{max:x(C),value:e.value,"onUpdate:value":u[0]||(u[0]=v=>e.value=v),onChange:n,onFocus:b,onBlur:S}),null,16,["max","value"]),T(" "+k(i.separator)+" ",1),_(c,V(l.$attrs,{min:x(B),value:a.value,"onUpdate:value":u[1]||(u[1]=v=>a.value=v),onChange:n,onBlur:y}),null,16,["min","value"])]),_:1})}}});export{$ as default}; diff --git a/public/exadmin/assets/prismjs.c97a8414.js b/public/exadmin/assets/prismjs.c97a8414.js new file mode 100644 index 0000000..36d852a --- /dev/null +++ b/public/exadmin/assets/prismjs.c97a8414.js @@ -0,0 +1,9 @@ +import{c as W}from"./@babel.6cd0804c.js";var Y={exports:{}};(function(d){var w=typeof window!="undefined"?window:typeof WorkerGlobalScope!="undefined"&&self instanceof WorkerGlobalScope?self:{};/** + * Prism: Lightweight, robust, elegant syntax highlighting + * + * @license MIT + * @author Lea Verou + * @namespace + * @public + */var a=function(o){var c=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,h=0,m={},i={manual:o.Prism&&o.Prism.manual,disableWorkerMessageHandler:o.Prism&&o.Prism.disableWorkerMessageHandler,util:{encode:function e(t){return t instanceof p?new p(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&").replace(/"+s.content+""};function y(e,t,n,r){e.lastIndex=t;var s=e.exec(n);if(s&&r&&s[1]){var l=s[1].length;s.index+=l,s[0]=s[0].slice(l)}return s}function j(e,t,n,r,s,l){for(var g in n)if(!(!n.hasOwnProperty(g)||!n[g])){var u=n[g];u=Array.isArray(u)?u:[u];for(var b=0;b=l.reach);_+=x.value.length,x=x.next){var C=x.value;if(t.length>e.length)return;if(!(C instanceof p)){var I=1,A;if(G){if(A=y(H,_,e,B),!A||A.index>=e.length)break;var q=A.index,N=A.index+A[0].length,E=_;for(E+=x.value.length;q>=E;)x=x.next,E+=x.value.length;if(E-=x.value.length,_=E,x.value instanceof p)continue;for(var D=x;D!==t.tail&&(El.reach&&(l.reach=Z);var L=x.prev;R&&(L=$(t,L,R),_+=R.length),T(t,L,I);var K=new p(g,z?i.tokenize(O,z):O,X,O);if(x=$(t,L,K),U&&$(t,x,U),I>1){var M={cause:g+","+b,reach:Z};j(e,t,n,x.prev,_,M),l&&M.reach>l.reach&&(l.reach=M.reach)}}}}}}function S(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function $(e,t,n){var r=t.next,s={value:n,prev:t,next:r};return t.next=s,r.prev=s,e.length++,s}function T(e,t,n){for(var r=t.next,s=0;s/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern://i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},a.languages.markup.tag.inside["attr-value"].inside.entity=a.languages.markup.entity,a.languages.markup.doctype.inside["internal-subset"].inside=a.languages.markup,a.hooks.add("wrap",function(o){o.type==="entity"&&(o.attributes.title=o.content.replace(/&/,"&"))}),Object.defineProperty(a.languages.markup.tag,"addInlined",{value:function(c,h){var m={};m["language-"+h]={pattern:/(^$)/i,lookbehind:!0,inside:a.languages[h]},m.cdata=/^$/i;var i={"included-cdata":{pattern://i,inside:m}};i["language-"+h]={pattern:/[\s\S]+/,inside:a.languages[h]};var p={};p[c]={pattern:RegExp(/(<__[^>]*>)(?:))*\]\]>|(?!)/.source.replace(/__/g,function(){return c}),"i"),lookbehind:!0,greedy:!0,inside:i},a.languages.insertBefore("markup","cdata",p)}}),Object.defineProperty(a.languages.markup.tag,"addAttribute",{value:function(o,c){a.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+o+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[c,"language-"+c],inside:a.languages[c]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),a.languages.html=a.languages.markup,a.languages.mathml=a.languages.markup,a.languages.svg=a.languages.markup,a.languages.xml=a.languages.extend("markup",{}),a.languages.ssml=a.languages.xml,a.languages.atom=a.languages.xml,a.languages.rss=a.languages.xml,function(o){var c=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;o.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-](?:[^;{\s]|\s+(?![\s{]))*(?:;|(?=\s*\{))/,inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+c.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+c.source+"$"),alias:"url"}}},selector:{pattern:RegExp(`(^|[{}\\s])[^{}\\s](?:[^{};"'\\s]|\\s+(?![\\s{])|`+c.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:c,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},o.languages.css.atrule.inside.rest=o.languages.css;var h=o.languages.markup;h&&(h.tag.addInlined("style","css"),h.tag.addAttribute("style","css"))}(a),a.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},a.languages.javascript=a.languages.extend("clike",{"class-name":[a.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+(/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source)+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),a.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,a.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp(/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)/.source+/\//.source+"(?:"+/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}/.source+"|"+/(?:\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.)*\])*\])*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source+")"+/(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/.source),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:a.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:a.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:a.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:a.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:a.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),a.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:a.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),a.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),a.languages.markup&&(a.languages.markup.tag.addInlined("script","javascript"),a.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),a.languages.js=a.languages.javascript,function(){if(typeof a=="undefined"||typeof document=="undefined")return;Element.prototype.matches||(Element.prototype.matches=Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector);var o="Loading\u2026",c=function(v,f){return"\u2716 Error "+v+" while fetching file: "+f},h="\u2716 Error: File does not exist or is empty",m={js:"javascript",py:"python",rb:"ruby",ps1:"powershell",psm1:"powershell",sh:"bash",bat:"batch",h:"c",tex:"latex"},i="data-src-status",p="loading",y="loaded",j="failed",S="pre[data-src]:not(["+i+'="'+y+'"]):not(['+i+'="'+p+'"])';function $(v,f,F){var e=new XMLHttpRequest;e.open("GET",v,!0),e.onreadystatechange=function(){e.readyState==4&&(e.status<400&&e.responseText?f(e.responseText):e.status>=400?F(c(e.status,e.statusText)):F(h))},e.send(null)}function T(v){var f=/^\s*(\d+)\s*(?:(,)\s*(?:(\d+)\s*)?)?$/.exec(v||"");if(f){var F=Number(f[1]),e=f[2],t=f[3];return e?t?[F,Number(t)]:[F,void 0]:[F,F]}}a.hooks.add("before-highlightall",function(v){v.selector+=", "+S}),a.hooks.add("before-sanity-check",function(v){var f=v.element;if(f.matches(S)){v.code="",f.setAttribute(i,p);var F=f.appendChild(document.createElement("CODE"));F.textContent=o;var e=f.getAttribute("data-src"),t=v.language;if(t==="none"){var n=(/\.(\w+)$/.exec(e)||[,"none"])[1];t=m[n]||n}a.util.setLanguage(F,t),a.util.setLanguage(f,t);var r=a.plugins.autoloader;r&&r.loadLanguages(t),$(e,function(s){f.setAttribute(i,y);var l=T(f.getAttribute("data-range"));if(l){var g=s.split(/\r\n?|\n/g),u=l[0],b=l[1]==null?g.length:l[1];u<0&&(u+=g.length),u=Math.max(0,Math.min(u-1,g.length)),b<0&&(b+=g.length),b=Math.max(0,Math.min(b,g.length)),s=g.slice(u,b).join(` +`),f.hasAttribute("data-start")||f.setAttribute("data-start",String(u+1))}F.textContent=s,a.highlightElement(F)},function(s){f.setAttribute(i,j),F.textContent=s})}}),a.plugins.fileHighlight={highlight:function(f){for(var F=(f||document).querySelectorAll(S),e=0,t;t=F[e++];)a.highlightElement(t)}};var P=!1;a.fileHighlight=function(){P||(console.warn("Prism.fileHighlight is deprecated. Use `Prism.plugins.fileHighlight.highlight` instead."),P=!0),a.plugins.fileHighlight.highlight.apply(this,arguments)}}()})(Y);var V=Y.exports;(function(d){var w=/\/\*[\s\S]*?\*\/|\/\/.*|#(?!\[).*/,a=[{pattern:/\b(?:false|true)\b/i,alias:"boolean"},{pattern:/(::\s*)\b[a-z_]\w*\b(?!\s*\()/i,greedy:!0,lookbehind:!0},{pattern:/(\b(?:case|const)\s+)\b[a-z_]\w*(?=\s*[;=])/i,greedy:!0,lookbehind:!0},/\b(?:null)\b/i,/\b[A-Z_][A-Z0-9_]*\b(?!\s*\()/],o=/\b0b[01]+(?:_[01]+)*\b|\b0o[0-7]+(?:_[0-7]+)*\b|\b0x[\da-f]+(?:_[\da-f]+)*\b|(?:\b\d+(?:_\d+)*\.?(?:\d+(?:_\d+)*)?|\B\.\d+)(?:e[+-]?\d+)?/i,c=/|\?\?=?|\.{3}|\??->|[!=]=?=?|::|\*\*=?|--|\+\+|&&|\|\||<<|>>|[?~]|[/^|%*&<>.+-]=?/,h=/[{}\[\](),:;]/;d.languages.php={delimiter:{pattern:/\?>$|^<\?(?:php(?=\s)|=)?/i,alias:"important"},comment:w,variable:/\$+(?:\w+\b|(?=\{))/,package:{pattern:/(namespace\s+|use\s+(?:function\s+)?)(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,lookbehind:!0,inside:{punctuation:/\\/}},"class-name-definition":{pattern:/(\b(?:class|enum|interface|trait)\s+)\b[a-z_]\w*(?!\\)\b/i,lookbehind:!0,alias:"class-name"},"function-definition":{pattern:/(\bfunction\s+)[a-z_]\w*(?=\s*\()/i,lookbehind:!0,alias:"function"},keyword:[{pattern:/(\(\s*)\b(?:array|bool|boolean|float|int|integer|object|string)\b(?=\s*\))/i,alias:"type-casting",greedy:!0,lookbehind:!0},{pattern:/([(,?]\s*)\b(?:array(?!\s*\()|bool|callable|(?:false|null)(?=\s*\|)|float|int|iterable|mixed|object|self|static|string)\b(?=\s*\$)/i,alias:"type-hint",greedy:!0,lookbehind:!0},{pattern:/(\)\s*:\s*(?:\?\s*)?)\b(?:array(?!\s*\()|bool|callable|(?:false|null)(?=\s*\|)|float|int|iterable|mixed|never|object|self|static|string|void)\b/i,alias:"return-type",greedy:!0,lookbehind:!0},{pattern:/\b(?:array(?!\s*\()|bool|float|int|iterable|mixed|object|string|void)\b/i,alias:"type-declaration",greedy:!0},{pattern:/(\|\s*)(?:false|null)\b|\b(?:false|null)(?=\s*\|)/i,alias:"type-declaration",greedy:!0,lookbehind:!0},{pattern:/\b(?:parent|self|static)(?=\s*::)/i,alias:"static-context",greedy:!0},{pattern:/(\byield\s+)from\b/i,lookbehind:!0},/\bclass\b/i,{pattern:/((?:^|[^\s>:]|(?:^|[^-])>|(?:^|[^:]):)\s*)\b(?:abstract|and|array|as|break|callable|case|catch|clone|const|continue|declare|default|die|do|echo|else|elseif|empty|enddeclare|endfor|endforeach|endif|endswitch|endwhile|enum|eval|exit|extends|final|finally|fn|for|foreach|function|global|goto|if|implements|include|include_once|instanceof|insteadof|interface|isset|list|match|namespace|never|new|or|parent|print|private|protected|public|readonly|require|require_once|return|self|static|switch|throw|trait|try|unset|use|var|while|xor|yield|__halt_compiler)\b/i,lookbehind:!0}],"argument-name":{pattern:/([(,]\s*)\b[a-z_]\w*(?=\s*:(?!:))/i,lookbehind:!0},"class-name":[{pattern:/(\b(?:extends|implements|instanceof|new(?!\s+self|\s+static))\s+|\bcatch\s*\()\b[a-z_]\w*(?!\\)\b/i,greedy:!0,lookbehind:!0},{pattern:/(\|\s*)\b[a-z_]\w*(?!\\)\b/i,greedy:!0,lookbehind:!0},{pattern:/\b[a-z_]\w*(?!\\)\b(?=\s*\|)/i,greedy:!0},{pattern:/(\|\s*)(?:\\?\b[a-z_]\w*)+\b/i,alias:"class-name-fully-qualified",greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}},{pattern:/(?:\\?\b[a-z_]\w*)+\b(?=\s*\|)/i,alias:"class-name-fully-qualified",greedy:!0,inside:{punctuation:/\\/}},{pattern:/(\b(?:extends|implements|instanceof|new(?!\s+self\b|\s+static\b))\s+|\bcatch\s*\()(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,alias:"class-name-fully-qualified",greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}},{pattern:/\b[a-z_]\w*(?=\s*\$)/i,alias:"type-declaration",greedy:!0},{pattern:/(?:\\?\b[a-z_]\w*)+(?=\s*\$)/i,alias:["class-name-fully-qualified","type-declaration"],greedy:!0,inside:{punctuation:/\\/}},{pattern:/\b[a-z_]\w*(?=\s*::)/i,alias:"static-context",greedy:!0},{pattern:/(?:\\?\b[a-z_]\w*)+(?=\s*::)/i,alias:["class-name-fully-qualified","static-context"],greedy:!0,inside:{punctuation:/\\/}},{pattern:/([(,?]\s*)[a-z_]\w*(?=\s*\$)/i,alias:"type-hint",greedy:!0,lookbehind:!0},{pattern:/([(,?]\s*)(?:\\?\b[a-z_]\w*)+(?=\s*\$)/i,alias:["class-name-fully-qualified","type-hint"],greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}},{pattern:/(\)\s*:\s*(?:\?\s*)?)\b[a-z_]\w*(?!\\)\b/i,alias:"return-type",greedy:!0,lookbehind:!0},{pattern:/(\)\s*:\s*(?:\?\s*)?)(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,alias:["class-name-fully-qualified","return-type"],greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}}],constant:a,function:{pattern:/(^|[^\\\w])\\?[a-z_](?:[\w\\]*\w)?(?=\s*\()/i,lookbehind:!0,inside:{punctuation:/\\/}},property:{pattern:/(->\s*)\w+/,lookbehind:!0},number:o,operator:c,punctuation:h};var m={pattern:/\{\$(?:\{(?:\{[^{}]+\}|[^{}]+)\}|[^{}])+\}|(^|[^\\{])\$+(?:\w+(?:\[[^\r\n\[\]]+\]|->\w+)?)/,lookbehind:!0,inside:d.languages.php},i=[{pattern:/<<<'([^']+)'[\r\n](?:.*[\r\n])*?\1;/,alias:"nowdoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<<'[^']+'|[a-z_]\w*;$/i,alias:"symbol",inside:{punctuation:/^<<<'?|[';]$/}}}},{pattern:/<<<(?:"([^"]+)"[\r\n](?:.*[\r\n])*?\1;|([a-z_]\w*)[\r\n](?:.*[\r\n])*?\2;)/i,alias:"heredoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<<(?:"[^"]+"|[a-z_]\w*)|[a-z_]\w*;$/i,alias:"symbol",inside:{punctuation:/^<<<"?|[";]$/}},interpolation:m}},{pattern:/`(?:\\[\s\S]|[^\\`])*`/,alias:"backtick-quoted-string",greedy:!0},{pattern:/'(?:\\[\s\S]|[^\\'])*'/,alias:"single-quoted-string",greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,alias:"double-quoted-string",greedy:!0,inside:{interpolation:m}}];d.languages.insertBefore("php","variable",{string:i,attribute:{pattern:/#\[(?:[^"'\/#]|\/(?![*/])|\/\/.*$|#(?!\[).*$|\/\*(?:[^*]|\*(?!\/))*\*\/|"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*')+\](?=\s*[a-z$#])/im,greedy:!0,inside:{"attribute-content":{pattern:/^(#\[)[\s\S]+(?=\]$)/,lookbehind:!0,inside:{comment:w,string:i,"attribute-class-name":[{pattern:/([^:]|^)\b[a-z_]\w*(?!\\)\b/i,alias:"class-name",greedy:!0,lookbehind:!0},{pattern:/([^:]|^)(?:\\?\b[a-z_]\w*)+/i,alias:["class-name","class-name-fully-qualified"],greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}}],constant:a,number:o,operator:c,punctuation:h}},delimiter:{pattern:/^#\[|\]$/,alias:"punctuation"}}}}),d.hooks.add("before-tokenize",function(p){if(!!/<\?/.test(p.code)){var y=/<\?(?:[^"'/#]|\/(?![*/])|("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|(?:\/\/|#(?!\[))(?:[^?\n\r]|\?(?!>))*(?=$|\?>|[\r\n])|#\[|\/\*(?:[^*]|\*(?!\/))*(?:\*\/|$))*?(?:\?>|$)/g;d.languages["markup-templating"].buildPlaceholders(p,"php",y)}}),d.hooks.add("after-tokenize",function(p){d.languages["markup-templating"].tokenizePlaceholders(p,"php")})})(Prism);(function(d){function w(a,o){return"___"+a.toUpperCase()+o+"___"}Object.defineProperties(d.languages["markup-templating"]={},{buildPlaceholders:{value:function(a,o,c,h){if(a.language===o){var m=a.tokenStack=[];a.code=a.code.replace(c,function(i){if(typeof h=="function"&&!h(i))return i;for(var p=m.length,y;a.code.indexOf(y=w(o,p))!==-1;)++p;return m[p]=i,y}),a.grammar=d.languages.markup}}},tokenizePlaceholders:{value:function(a,o){if(a.language!==o||!a.tokenStack)return;a.grammar=d.languages[o];var c=0,h=Object.keys(a.tokenStack);function m(i){for(var p=0;p=h.length);p++){var y=i[p];if(typeof y=="string"||y.content&&typeof y.content=="string"){var j=h[c],S=a.tokenStack[j],$=typeof y=="string"?y:y.content,T=w(o,j),P=$.indexOf(T);if(P>-1){++c;var v=$.substring(0,P),f=new d.Token(o,d.tokenize(S,a.grammar),"language-"+o,S),F=$.substring(P+T.length),e=[];v&&e.push.apply(e,m([v])),e.push(f),F&&e.push.apply(e,m([F])),typeof y=="string"?i.splice.apply(i,[p,1].concat(e)):y.content=e}}else y.content&&m(y.content)}return i}m(a.tokens)}}})})(Prism);Prism.languages.javascript=Prism.languages.extend("clike",{"class-name":[Prism.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+(/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source)+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/});Prism.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/;Prism.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp(/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)/.source+/\//.source+"(?:"+/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}/.source+"|"+/(?:\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.)*\])*\])*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source+")"+/(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/.source),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:Prism.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:Prism.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/});Prism.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:Prism.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}});Prism.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}});Prism.languages.markup&&(Prism.languages.markup.tag.addInlined("script","javascript"),Prism.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript"));Prism.languages.js=Prism.languages.javascript;(function(d){var w=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;d.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-](?:[^;{\s]|\s+(?![\s{]))*(?:;|(?=\s*\{))/,inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+w.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+w.source+"$"),alias:"url"}}},selector:{pattern:RegExp(`(^|[{}\\s])[^{}\\s](?:[^{};"'\\s]|\\s+(?![\\s{])|`+w.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:w,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},d.languages.css.atrule.inside.rest=d.languages.css;var a=d.languages.markup;a&&(a.tag.addInlined("style","css"),a.tag.addAttribute("style","css"))})(Prism);Prism.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}};Prism.languages.webmanifest=Prism.languages.json;Prism.languages.markup={comment:{pattern://,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern://i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]};Prism.languages.markup.tag.inside["attr-value"].inside.entity=Prism.languages.markup.entity;Prism.languages.markup.doctype.inside["internal-subset"].inside=Prism.languages.markup;Prism.hooks.add("wrap",function(d){d.type==="entity"&&(d.attributes.title=d.content.replace(/&/,"&"))});Object.defineProperty(Prism.languages.markup.tag,"addInlined",{value:function(w,a){var o={};o["language-"+a]={pattern:/(^$)/i,lookbehind:!0,inside:Prism.languages[a]},o.cdata=/^$/i;var c={"included-cdata":{pattern://i,inside:o}};c["language-"+a]={pattern:/[\s\S]+/,inside:Prism.languages[a]};var h={};h[w]={pattern:RegExp(/(<__[^>]*>)(?:))*\]\]>|(?!)/.source.replace(/__/g,function(){return w}),"i"),lookbehind:!0,greedy:!0,inside:c},Prism.languages.insertBefore("markup","cdata",h)}});Object.defineProperty(Prism.languages.markup.tag,"addAttribute",{value:function(d,w){Prism.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+d+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[w,"language-"+w],inside:Prism.languages[w]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}});Prism.languages.html=Prism.languages.markup;Prism.languages.mathml=Prism.languages.markup;Prism.languages.svg=Prism.languages.markup;Prism.languages.xml=Prism.languages.extend("markup",{});Prism.languages.ssml=Prism.languages.xml;Prism.languages.atom=Prism.languages.xml;Prism.languages.rss=Prism.languages.xml;export{V as P}; diff --git a/public/exadmin/assets/qiniu-js.8b174ca3.js b/public/exadmin/assets/qiniu-js.8b174ca3.js new file mode 100644 index 0000000..3b040ab --- /dev/null +++ b/public/exadmin/assets/qiniu-js.8b174ca3.js @@ -0,0 +1 @@ +import{S as Y}from"./spark-md5.2cc5764b.js";import{s as Q}from"./querystring.62f12500.js";var G=globalThis&&globalThis.__extends||function(){var o=function(r,t){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var e in i)i.hasOwnProperty(e)&&(n[e]=i[e])},o(r,t)};return function(r,t){o(r,t);function n(){this.constructor=r}r.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}}(),f;(function(o){o.InvalidFile="InvalidFile",o.InvalidToken="InvalidToken",o.InvalidMetadata="InvalidMetadata",o.InvalidChunkSize="InvalidChunkSize",o.InvalidCustomVars="InvalidCustomVars",o.NotAvailableUploadHost="NotAvailableUploadHost",o.ReadCacheFailed="ReadCacheFailed",o.InvalidCacheData="InvalidCacheData",o.WriteCacheFailed="WriteCacheFailed",o.RemoveCacheFailed="RemoveCacheFailed",o.GetCanvasContextFailed="GetCanvasContextFailed",o.UnsupportedFileType="UnsupportedFileType",o.FileReaderReadFailed="FileReaderReadFailed",o.NotAvailableXMLHttpRequest="NotAvailableXMLHttpRequest",o.InvalidProgressEventTarget="InvalidProgressEventTarget",o.RequestError="RequestError"})(f||(f={}));var d=function(){function o(r,t){this.name=r,this.message=t,this.stack=new Error().stack}return o}(),x=function(o){G(r,o);function r(t,n,i,e){var s=o.call(this,f.RequestError,i)||this;return s.code=t,s.reqId=n,s.isRequestError=!0,s.data=e,s}return r}(d),tt=function(o){G(r,o);function r(t,n){return n===void 0&&(n=""),o.call(this,0,n,t)||this}return r}(x),et=function(){function o(r,t){this.runTask=r,this.limit=t,this.queue=[],this.processing=[]}return o.prototype.enqueue=function(r){var t=this;return new Promise(function(n,i){t.queue.push({task:r,resolve:n,reject:i}),t.check()})},o.prototype.run=function(r){var t=this;this.queue=this.queue.filter(function(n){return n!==r}),this.processing.push(r),this.runTask(r.task).then(function(){t.processing=t.processing.filter(function(n){return n!==r}),r.resolve(),t.check()},function(n){return r.reject(n)})},o.prototype.check=function(){var r=this,t=this.processing.length,n=this.limit-t;this.queue.slice(0,n).forEach(function(i){r.run(i)})},o}(),rt=globalThis&&globalThis.__extends||function(){var o=function(r,t){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var e in i)i.hasOwnProperty(e)&&(n[e]=i[e])},o(r,t)};return function(r,t){o(r,t);function n(){this.constructor=r}r.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}}(),_=globalThis&&globalThis.__assign||function(){return _=Object.assign||function(o){for(var r,t=1,n=arguments.length;t127&&u<2048)c=String.fromCharCode(u>>6|192,u&63|128);else if((u&63488^55296)>0)c=String.fromCharCode(u>>12|224,u>>6&63|128,u&63|128);else{if((u&64512^55296)>0)throw new RangeError("Unmatched trail surrogate at "+s);var a=r.charCodeAt(++s);if((a&64512^56320)>0)throw new RangeError("Unmatched lead surrogate at "+(s-1));u=((u&1023)<<10)+(a&1023)+65536,c=String.fromCharCode(u>>18|240,u>>12&63|128,u>>6&63|128,u&63|128)}c!==null&&(i>n&&(t+=r.slice(n,i)),t+=c,n=i=s+1)}return i>n&&(t+=r.slice(n,e)),t}function st(o){var r=[],t=0,n=0,i=0;for(o+="";t>10&1023)),r.push(String.fromCharCode(56320|n&1023))):r.push(String.fromCharCode(n)),t+=i}return r.join("")}function ut(o){var r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",t,n,i,e,s,u,c,a,l=0,h=0,p="",g=[];if(!o)return o;o=at(o+"");do t=o.charCodeAt(l++),n=o.charCodeAt(l++),i=o.charCodeAt(l++),a=t<<16|n<<8|i,e=a>>18&63,s=a>>12&63,u=a>>6&63,c=a&63,g[h++]=r.charAt(e)+r.charAt(s)+r.charAt(u)+r.charAt(c);while(l>16&255,n=a>>8&255,i=a&255,u===64?g[h++]=String.fromCharCode(t):c===64?g[h++]=String.fromCharCode(t,n):g[h++]=String.fromCharCode(t,n,i);while(l0&&e[e.length-1])&&(a[0]===6||a[0]===2)){t=0;continue}if(a[0]===3&&(!e||a[1]>e[0]&&a[1]o.size)t=o.size;else for(;o.size>t*1e4;)t*=2;for(var n=[],i=Math.ceil(o.size/t),e=0;e3?r[1]:r[0];if(!t)throw new d(f.InvalidToken,"missing assess key field.");var n=null;try{n=JSON.parse(ct(r[r.length-1]))}catch{throw new d(f.InvalidToken,"token parse failed.")}if(n==null)throw new d(f.InvalidToken,"putPolicy is null.");if(n.scope==null)throw new d(f.InvalidToken,"scope field is null.");var i=n.scope.split(":")[0];if(!i)throw new d(f.InvalidToken,"resolve bucketName failed.");return{assessKey:t,bucketName:i,scope:n.scope}}var v,b={z0:"z0",z1:"z1",z2:"z2",na0:"na0",as0:"as0",cnEast2:"cn-east-2"},St=(v={},v[b.z0]={srcUphost:["up.qiniup.com"],cdnUphost:["upload.qiniup.com"]},v[b.z1]={srcUphost:["up-z1.qiniup.com"],cdnUphost:["upload-z1.qiniup.com"]},v[b.z2]={srcUphost:["up-z2.qiniup.com"],cdnUphost:["upload-z2.qiniup.com"]},v[b.na0]={srcUphost:["up-na0.qiniup.com"],cdnUphost:["upload-na0.qiniup.com"]},v[b.as0]={srcUphost:["up-as0.qiniup.com"],cdnUphost:["upload-as0.qiniup.com"]},v[b.cnEast2]={srcUphost:["up-cn-east-2.qiniup.com"],cdnUphost:["upload-cn-east-2.qiniup.com"]},v),y=globalThis&&globalThis.__assign||function(){return y=Object.assign||function(o){for(var r,t=1,n=arguments.length;t0&&e[e.length-1])&&(a[0]===6||a[0]===2)){t=0;continue}if(a[0]===3&&(!e||a[1]>e[0]&&a[1]0&&e[e.length-1])&&(a[0]===6||a[0]===2)){t=0;continue}if(a[0]===3&&(!e||a[1]>e[0]&&a[1]0)&&!(i=n.next()).done;)e.push(i.value)}catch(u){s={error:u}}finally{try{i&&!i.done&&(t=n.return)&&t.call(n)}finally{if(s)throw s.error}}return e},Rt=globalThis&&globalThis.__spread||function(){for(var o=[],r=0;r1e4*qt)return this.handleError(new d(f.InvalidFile,"file size exceed maximum value 10000G")),[2];if(this.putExtra.customVars&&!gt(this.putExtra.customVars))return this.handleError(new d(f.InvalidCustomVars,"customVars key should start width x:")),[2];if(this.putExtra.metadata&&!pt(this.putExtra.metadata))return this.handleError(new d(f.InvalidMetadata,"metadata key should start with x-qn-meta-")),[2];u.label=1;case 1:return u.trys.push([1,4,,5]),this.uploadAt=new Date().getTime(),[4,this.checkAndUpdateUploadHost()];case 2:return u.sent(),[4,this.run()];case 3:return r=u.sent(),this.onComplete(r.data),this.checkAndUnfreezeHost(),this.sendLog(r.reqId,200),[2];case 4:return t=u.sent(),this.logger.error(t),this.clear(),t instanceof x&&(n=this.aborted?"":t.reqId,i=this.aborted?-2:t.code,this.sendLog(n,i),this.checkAndFreezeHost(t),e=++this.retryCount<=this.config.retryCount,s=!this.aborted&&Ht.includes(t.code),s&&e)?(this.logger.warn("error auto retry: "+this.retryCount+"/"+this.config.retryCount+"."),this.putFile(),[2]):(this.onError(t),[3,5]);case 5:return[2]}})})},o.prototype.clear=function(){this.logger.info("start cleaning all xhr."),this.xhrList.forEach(function(r){r.onreadystatechange=null,r.abort()}),this.logger.info("cleanup completed."),this.xhrList=[]},o.prototype.stop=function(){this.logger.info("stop."),this.clear(),this.aborted=!0},o.prototype.addXhr=function(r){this.xhrList.push(r)},o.prototype.sendLog=function(r,t){var n,i;this.logger.report({code:t,reqId:r,remoteIp:"",upType:"jssdk-h5",size:this.file.size,time:Math.floor(this.uploadAt/1e3),port:Tt((n=this.uploadHost)===null||n===void 0?void 0:n.getUrl()),host:Ct((i=this.uploadHost)===null||i===void 0?void 0:i.getUrl()),bytesSent:this.progress?this.progress.total.loaded:0,duration:Math.floor((new Date().getTime()-this.uploadAt)/1e3)})},o.prototype.getProgressInfoItem=function(r,t,n){return O({size:t,loaded:r,percent:r/t*100},n==null?{}:{fromCache:n})},o}(),Dt=globalThis&&globalThis.__extends||function(){var o=function(r,t){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var e in i)i.hasOwnProperty(e)&&(n[e]=i[e])},o(r,t)};return function(r,t){o(r,t);function n(){this.constructor=r}r.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}}(),k=globalThis&&globalThis.__assign||function(){return k=Object.assign||function(o){for(var r,t=1,n=arguments.length;t0&&e[e.length-1])&&(a[0]===6||a[0]===2)){t=0;continue}if(a[0]===3&&(!e||a[1]>e[0]&&a[1]1024)throw new d(f.InvalidChunkSize,"chunkSize maximum value is 1024");return[4,this.initBeforeUploadChunks()];case 1:c.sent(),t=new et(function(a){return u.uploadChunk(a)},this.config.concurrentRequestLimit),n=null,i=this.getLocalKey(),e=this.chunks.map(function(a,l){return t.enqueue({chunk:a,index:l})}),c.label=2;case 2:return c.trys.push([2,5,,6]),[4,Promise.all(e)];case 3:return c.sent(),[4,this.mkFileReq()];case 4:return n=c.sent(),[3,6];case 5:throw s=c.sent(),s instanceof x&&(s.code===612||s.code===400)&&A(i,this.logger),s;case 6:return A(i,this.logger),[2,n]}})})},r.prototype.uploadChunk=function(t){return C(this,void 0,void 0,function(){var n,i,e,s,u,c,a,l,h,p=this;return S(this,function(g){switch(g.label){case 0:return n=t.index,i=t.chunk,e=this.cachedUploadedList[n],this.logger.info("upload part "+n+", cache:",e),s=this.config.checkByMD5,u=function(){p.usedCacheList[n]=!0,p.updateChunkProgress(i.size,n),p.uploadedList[n]=e,p.updateLocalCache()},e&&!s?(u(),[2]):[4,kt(i)];case 1:return c=g.sent(),this.logger.info("computed part md5.",c),e&&c===e.md5?(u(),[2]):(this.usedCacheList[n]=!1,a=function(P){p.updateChunkProgress(P.loaded,n)},l={body:i,md5:this.config.checkByServer?c:void 0,onProgress:a,onCreate:function(P){return p.addXhr(P)}},this.logger.info("part "+n+" start uploading."),[4,Pt(this.token,this.key,t.index+1,this.getUploadInfo(),l)]);case 2:return h=g.sent(),this.logger.info("part "+n+" upload completed."),a({loaded:i.size,total:i.size}),this.uploadedList[n]={etag:h.data.etag,md5:h.data.md5,size:i.size},this.updateLocalCache(),[2]}})})},r.prototype.mkFileReq=function(){return C(this,void 0,void 0,function(){var t,n,i=this;return S(this,function(e){switch(e.label){case 0:return t=k(k(k({parts:this.uploadedList.map(function(s,u){return{etag:s.etag,partNumber:u+1}}),fname:this.putExtra.fname},this.putExtra.mimeType&&{mimeType:this.putExtra.mimeType}),this.putExtra.customVars&&{customVars:this.putExtra.customVars}),this.putExtra.metadata&&{metadata:this.putExtra.metadata}),this.logger.info("parts upload completed, make file.",t),[4,Et(this.token,this.key,this.getUploadInfo(),{onCreate:function(s){return i.addXhr(s)},body:JSON.stringify(t)})];case 1:return n=e.sent(),this.logger.info("finish Resume Progress."),this.updateMkFileProgress(1),[2,n]}})})},r.prototype.initBeforeUploadChunks=function(){return C(this,void 0,void 0,function(){var t,n,i;return S(this,function(e){switch(e.label){case 0:return this.uploadedList=[],this.usedCacheList=[],t=mt(this.getLocalKey(),this.logger),t?[3,2]:(this.logger.info("init upload parts from api."),[4,Ft(this.token,this.bucketName,this.key,this.uploadHost.getUrl())]);case 1:return n=e.sent(),this.logger.info("initd upload parts of id: "+n.data.uploadId+"."),this.uploadId=n.data.uploadId,this.cachedUploadedList=[],[3,3];case 2:i=["resume upload parts from local cache,","total "+t.data.length+" part,","id is "+t.id+"."],this.logger.info(i.join(" ")),this.cachedUploadedList=t.data,this.uploadId=t.id,e.label=3;case 3:return this.chunks=dt(this.file,this.config.chunkSize),this.loaded={mkFileProgress:0,chunks:this.chunks.map(function(s){return 0})},this.notifyResumeProgress(),[2]}})})},r.prototype.getUploadInfo=function(){return{id:this.uploadId,url:this.uploadHost.getUrl()}},r.prototype.getLocalKey=function(){return bt(this.file.name,this.key,this.file.size)},r.prototype.updateLocalCache=function(){yt(this.getLocalKey(),{id:this.uploadId,data:this.uploadedList},this.logger)},r.prototype.updateChunkProgress=function(t,n){this.loaded.chunks[n]=t,this.notifyResumeProgress()},r.prototype.updateMkFileProgress=function(t){this.loaded.mkFileProgress=t,this.notifyResumeProgress()},r.prototype.notifyResumeProgress=function(){var t=this;this.progress={total:this.getProgressInfoItem(vt(this.loaded.chunks)+this.loaded.mkFileProgress,this.file.size+1),chunks:this.chunks.map(function(n,i){var e=t.usedCacheList[i];return t.getProgressInfoItem(t.loaded.chunks[i],n.size,e)}),uploadInfo:{id:this.uploadId,url:this.uploadHost.getUrl()}},this.onData(this.progress)},r}(K),D=globalThis&&globalThis.__awaiter||function(o,r,t,n){function i(e){return e instanceof t?e:new t(function(s){s(e)})}return new(t||(t=Promise))(function(e,s){function u(l){try{a(n.next(l))}catch(h){s(h)}}function c(l){try{a(n.throw(l))}catch(h){s(h)}}function a(l){l.done?e(l.value):i(l.value).then(u,c)}a((n=n.apply(o,r||[])).next())})},j=globalThis&&globalThis.__generator||function(o,r){var t={label:0,sent:function(){if(e[0]&1)throw e[1];return e[1]},trys:[],ops:[]},n,i,e,s;return s={next:u(0),throw:u(1),return:u(2)},typeof Symbol=="function"&&(s[Symbol.iterator]=function(){return this}),s;function u(a){return function(l){return c([a,l])}}function c(a){if(n)throw new TypeError("Generator is already executing.");for(;t;)try{if(n=1,i&&(e=a[0]&2?i.return:a[0]?i.throw||((e=i.return)&&e.call(i),0):i.next)&&!(e=e.call(i,a[1])).done)return e;switch(i=0,e&&(a=[a[0]&2,e.value]),a[0]){case 0:case 1:e=a;break;case 4:return t.label++,{value:a[1],done:!1};case 5:t.label++,i=a[1],a=[0];continue;case 7:a=t.ops.pop(),t.trys.pop();continue;default:if(e=t.trys,!(e=e.length>0&&e[e.length-1])&&(a[0]===6||a[0]===2)){t=0;continue}if(a[0]===3&&(!e||a[1]>e[0]&&a[1]>>1^3988292384:n>>>=1;r[t]=n}return r},o.prototype.append=function(r){for(var t=this.crc,n=0;n>>8^this.table[(t^r[n])&255];this.crc=t},o.prototype.compute=function(){return(this.crc^-1)>>>0},o.prototype.readAsUint8Array=function(r){return D(this,void 0,void 0,function(){var t;return j(this,function(n){switch(n.label){case 0:return typeof r.arrayBuffer!="function"?[3,2]:(t=Uint8Array.bind,[4,r.arrayBuffer()]);case 1:return[2,new(t.apply(Uint8Array,[void 0,n.sent()]))];case 2:return[2,new Promise(function(i,e){var s=new FileReader;s.onload=function(){if(s.result==null){e();return}if(typeof s.result=="string"){e();return}i(new Uint8Array(s.result))},s.readAsArrayBuffer(r)})]}})})},o.prototype.file=function(r){return D(this,void 0,void 0,function(){var t,n,i,e,s,u;return j(this,function(c){switch(c.label){case 0:return r.size<=m?(t=this.append,[4,this.readAsUint8Array(r)]):[3,2];case 1:return t.apply(this,[c.sent()]),[2,this.compute()];case 2:n=Math.ceil(r.size/m),i=0,c.label=3;case 3:return i0&&e[e.length-1])&&(a[0]===6||a[0]===2)){t=0;continue}if(a[0]===3&&(!e||a[1]>e[0]&&a[1]0&&Z(o,r,t-1)};var i=[r.code||"",r.reqId||"",r.host||"",r.remoteIp||"",r.port||"",r.duration||"",r.time||"",r.bytesSent||"",r.upType||"",r.size||""].join(",");n.send(i)}var Nt=globalThis&&globalThis.__read||function(o,r){var t=typeof Symbol=="function"&&o[Symbol.iterator];if(!t)return o;var n=t.call(o),i,e=[],s;try{for(;(r===void 0||r-- >0)&&!(i=n.next()).done;)e.push(i.value)}catch(u){s={error:u}}finally{try{i&&!i.done&&(t=n.return)&&t.call(n)}finally{if(s)throw s.error}}return e},E=globalThis&&globalThis.__spread||function(){for(var o=[],r=0;r0&&e[e.length-1])&&(a[0]===6||a[0]===2)){t=0;continue}if(a[0]===3&&(!e||a[1]>e[0]&&a[1]0)&&!(i=n.next()).done;)e.push(i.value)}catch(u){s={error:u}}finally{try{i&&!i.done&&(t=n.return)&&t.call(n)}finally{if(s)throw s.error}}return e},Wt=globalThis&&globalThis.__spread||function(){for(var o=[],r=0;r=r},o.prototype.freeze=function(r){r===void 0&&(r=20);var t=new Date().getTime()+r*1e3;I.set(this.host,t)},o.prototype.unfreeze=function(){I.delete(this.host)},o.prototype.getUrl=function(){return this.protocol+"://"+this.host},o.prototype.getUnfreezeTime=function(){return I.get(this.host)},o}(),Zt=function(){function o(r){r===void 0&&(r=[]),this.initHosts=r,this.cachedHostsMap=new Map}return o.prototype.register=function(r,t,n,i){this.cachedHostsMap.set(r+"@"+t,n.map(function(e){return new Kt(e,i)}))},o.prototype.refresh=function(r,t,n){var i,e,s,u;return $(this,void 0,void 0,function(){var c,a,l;return B(this,function(h){switch(h.label){case 0:return c=this.cachedHostsMap.get(r+"@"+t)||[],c.length>0?[2]:this.initHosts.length>0?(this.register(r,t,this.initHosts,n),[2]):[4,Ot(r,t,n)];case 1:return a=h.sent(),(a==null?void 0:a.data)!=null&&(l=Wt(((e=(i=a.data.up)===null||i===void 0?void 0:i.acc)===null||e===void 0?void 0:e.main)||[],((u=(s=a.data.up)===null||s===void 0?void 0:s.acc)===null||u===void 0?void 0:u.backup)||[]),this.register(r,t,l,n)),[2]}})})},o.prototype.getUp=function(r,t,n){return $(this,void 0,void 0,function(){var i,e,s;return B(this,function(u){switch(u.label){case 0:return[4,this.refresh(r,t,n)];case 1:return u.sent(),i=this.cachedHostsMap.get(r+"@"+t)||[],i.length===0?[2,null]:(e=i.filter(function(c){return!c.isFrozen()}),e.length>0?[2,e[0]]:(s=i.slice().sort(function(c,a){return(c.getUnfreezeTime()||0)-(a.getUnfreezeTime()||0)}),[2,s[0]]))}})})},o}();function Yt(o,r,t,n){return o.config&&o.config.forceDirect?(n.info("ues forceDirect mode."),new M(o,r,t,n)):o.file.size>4*m?(n.info("file size over 4M, use Resume."),new Mt(o,r,t,n)):(n.info("file size less or equal than 4M, use Direct."),new M(o,r,t,n))}function ie(o,r,t,n,i){var e=new Xt(t,i==null?void 0:i.disableStatisticsReport,i==null?void 0:i.debugLogLevel,o.name),s={file:o,key:r,token:t,putExtra:n,config:ee(i,e)},u=new Zt(s.config.uphost);return new ot(function(c){var a=Yt(s,{onData:function(l){return c.next(l)},onError:function(l){return c.error(l)},onComplete:function(l){return c.complete(l)}},u,e);return a.putFile(),a.stop.bind(a)})}var w=globalThis&&globalThis.__assign||function(){return w=Object.assign||function(o){for(var r,t=1,n=arguments.length;t0)&&!(i=n.next()).done;)e.push(i.value)}catch(u){s={error:u}}finally{try{i&&!i.done&&(t=n.return)&&t.call(n)}finally{if(s)throw s.error}}return e},U=globalThis&&globalThis.__spread||function(){for(var o=[],r=0;r=0;--o){var n=this.tryEntries[o],i=n.completion;if(n.tryLoc==="root")return e("end");if(n.tryLoc<=this.prev){var a=p.call(n,"catchLoc"),u=p.call(n,"finallyLoc");if(a&&u){if(this.prev=0;--e){var o=this.tryEntries[e];if(o.tryLoc<=this.prev&&p.call(o,"finallyLoc")&&this.prev=0;--t){var e=this.tryEntries[t];if(e.finallyLoc===r)return this.complete(e.completion,e.afterLoc),I(e),l}},catch:function(r){for(var t=this.tryEntries.length-1;t>=0;--t){var e=this.tryEntries[t];if(e.tryLoc===r){var o=e.completion;if(o.type==="throw"){var n=o.arg;I(e)}return n}}throw new Error("illegal catch attempt")},delegateYield:function(r,t,e){return this.delegate={iterator:A(r),resultName:t,nextLoc:e},this.method==="next"&&(this.arg=v),l}},s}(z.exports);try{regeneratorRuntime=G}catch{typeof globalThis=="object"?globalThis.regeneratorRuntime=G:Function("r","regeneratorRuntime = r")(G)}})(Q);export{Q as r}; diff --git a/public/exadmin/assets/remoteOptions.c846a4ad.js b/public/exadmin/assets/remoteOptions.c846a4ad.js new file mode 100644 index 0000000..84cc07d --- /dev/null +++ b/public/exadmin/assets/remoteOptions.c846a4ad.js @@ -0,0 +1 @@ +import{w as c}from"./index.b35f53c6.js";import{l as f}from"./lodash.c9cf1bdb.js";import{a as d}from"./context.6c9ae94a.js";function x(e,a){const s=f.exports.debounce(r,300);let o=d();function r(u){return new Promise((m,i)=>{if(e.remote){let t=e.remote;t.data.search=u,o&&(t.data.data=o.submitData()),c(t).then(n=>{a.value=n.data,m(n.data)}).catch(()=>{i()})}else m(a.value)})}return{remoteOptionsDebounce:s,remoteOptions:r}}export{x as u}; diff --git a/public/exadmin/assets/resize-observer-polyfill.8deb1e21.js b/public/exadmin/assets/resize-observer-polyfill.8deb1e21.js new file mode 100644 index 0000000..48ed81c --- /dev/null +++ b/public/exadmin/assets/resize-observer-polyfill.8deb1e21.js @@ -0,0 +1 @@ +var _=function(){if(typeof Map!="undefined")return Map;function e(t,n){var r=-1;return t.some(function(i,o){return i[0]===n?(r=o,!0):!1}),r}return function(){function t(){this.__entries__=[]}return Object.defineProperty(t.prototype,"size",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),t.prototype.get=function(n){var r=e(this.__entries__,n),i=this.__entries__[r];return i&&i[1]},t.prototype.set=function(n,r){var i=e(this.__entries__,n);~i?this.__entries__[i][1]=r:this.__entries__.push([n,r])},t.prototype.delete=function(n){var r=this.__entries__,i=e(r,n);~i&&r.splice(i,1)},t.prototype.has=function(n){return!!~e(this.__entries__,n)},t.prototype.clear=function(){this.__entries__.splice(0)},t.prototype.forEach=function(n,r){r===void 0&&(r=null);for(var i=0,o=this.__entries__;i0},e.prototype.connect_=function(){!v||this.connected_||(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),A?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},e.prototype.disconnect_=function(){!v||!this.connected_||(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},e.prototype.onTransitionEnd_=function(t){var n=t.propertyName,r=n===void 0?"":n,i=x.some(function(o){return!!~r.indexOf(o)});i&&this.refresh()},e.getInstance=function(){return this.instance_||(this.instance_=new e),this.instance_},e.instance_=null,e}(),m=function(e,t){for(var n=0,r=Object.keys(t);n0},e}(),g=typeof WeakMap!="undefined"?new WeakMap:new _,w=function(){function e(t){if(!(this instanceof e))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var n=z.getInstance(),r=new F(t,n,this);g.set(this,r)}return e}();["observe","unobserve","disconnect"].forEach(function(e){w.prototype[e]=function(){var t;return(t=g.get(this))[e].apply(t,arguments)}});var H=function(){return typeof f.ResizeObserver!="undefined"?f.ResizeObserver:w}();export{H as i}; diff --git a/public/exadmin/assets/scroll-into-view-if-needed.5191fdbf.js b/public/exadmin/assets/scroll-into-view-if-needed.5191fdbf.js new file mode 100644 index 0000000..9cc5565 --- /dev/null +++ b/public/exadmin/assets/scroll-into-view-if-needed.5191fdbf.js @@ -0,0 +1 @@ +import{c as i}from"./compute-scroll-into-view.6058b3be.js";function u(e){return e===Object(e)&&Object.keys(e).length!==0}function f(e,t){t===void 0&&(t="auto");var r="scrollBehavior"in document.body.style;e.forEach(function(n){var c=n.el,l=n.top,o=n.left;c.scroll&&r?c.scroll({top:l,left:o,behavior:t}):(c.scrollTop=l,c.scrollLeft=o)})}function a(e){return e===!1?{block:"end",inline:"nearest"}:u(e)?e:{block:"start",inline:"nearest"}}function m(e,t){var r=e.isConnected||e.ownerDocument.documentElement.contains(e);if(u(t)&&typeof t.behavior=="function")return t.behavior(r?i(e,t):[]);if(!!r){var n=a(t);return f(i(e,n),n.behavior)}}export{m as s}; diff --git a/public/exadmin/assets/select.4753e345.js b/public/exadmin/assets/select.4753e345.js new file mode 100644 index 0000000..a5ab20c --- /dev/null +++ b/public/exadmin/assets/select.4753e345.js @@ -0,0 +1 @@ +import"./vue.db505ee4.js";import{w as u,x as l}from"./index.b35f53c6.js";import{c as h}from"./@vueuse.952f4739.js";import{u as O}from"./remoteOptions.c846a4ad.js";import{a as b}from"./context.6c9ae94a.js";import{S as g}from"./ant-design-vue.6b10f349.js";import{d as j,h as S}from"./@vue.cb43a243.js";import"./@babel.6cd0804c.js";import"./regenerator-runtime.8e24db72.js";import"./js-md5.5179c6be.js";import"./vue-router.a08742b9.js";import"./js-cookie.31874410.js";import"./lodash.c9cf1bdb.js";import"./spark-md5.2cc5764b.js";import"./axios.e3200588.js";import"./@ant-design.bcfb08ae.js";import"./@ctrl.fa7cbd46.js";/* empty css */import"./dayjs.38e390ea.js";import"./sortablejs.412b554c.js";import"./clipboard.099d05c9.js";import"./markdown-it.80c3a67b.js";import"./entities.0d2c0164.js";import"./uc.micro.981ceb7b.js";import"./mdurl.ef76b4dc.js";import"./linkify-it.92c30060.js";import"./markdown-it-emoji.e3e91710.js";import"./escape-html.e5dfadb9.js";import"./prismjs.c97a8414.js";import"./diacritics.6be19c75.js";import"./markdown-it-container.512a5043.js";import"./markdown-it-anchor.c88e5394.js";import"./markdown-it-attrs.3af5ab50.js";import"./markdown-it-table-of-contents.8a4ce16f.js";import"./@kangc.86f7507c.js";import"./resize-observer-polyfill.8deb1e21.js";import"./vue-types.6e6d84ba.js";import"./dom-align.f1b5d360.js";import"./lodash-es.0ea26897.js";import"./async-validator.5d25c98b.js";import"./scroll-into-view-if-needed.5191fdbf.js";import"./compute-scroll-into-view.6058b3be.js";import"./vue-demi.5fb18120.js";var ct=j({name:"ExSelect",props:{changeLoadOptions:{type:Array,default:[]},remote:Object,options:Array},emits:["update:options"],setup(t,o){const i=b(),e=h(t,"options",o.emit),{remoteOptionsDebounce:n,remoteOptions:m}=O(t,e);s(),m(o.attrs.value);function s(){t.changeLoadOptions.forEach(r=>{c(r.params,r.updateObject,o.attrs.value)})}function c(r,d,f){r.data.value=f,i&&(r.data.data=i.submitData()),u(r).then(p=>{if(p.data)for(let a in p.data)l(d,a,p.data[a])})}return{remoteOptionsDebounce:n,remoteOptions:m,options:e}},render(t){let o=Object.assign({onDropdownVisibleChange:i=>{i&&this.remoteOptions("")}},t.$attrs);return o.showSearch&&(o.onSearch=i=>{this.remoteOptionsDebounce(i)}),!t.$attrs.options&&t.options&&(o.options=t.options),S(g,o,t.$slots)}});export{ct as default}; diff --git a/public/exadmin/assets/selectIcon.7cb44740.js b/public/exadmin/assets/selectIcon.7cb44740.js new file mode 100644 index 0000000..3083212 --- /dev/null +++ b/public/exadmin/assets/selectIcon.7cb44740.js @@ -0,0 +1 @@ +import"./vue.db505ee4.js";import{a0 as S}from"./@ant-design.bcfb08ae.js";import{_ as D}from"./index.b35f53c6.js";import{r as s,w as L,o as U,a as A,aW as d,aR as r,at as i,c as u,bd as f,au as l,ar as _,H as m,R as j,N as F,Q as H,aV as z,af as M,aX as R,S as $}from"./@vue.cb43a243.js";import"./@babel.6cd0804c.js";import"./regenerator-runtime.8e24db72.js";import"./@ctrl.fa7cbd46.js";import"./js-md5.5179c6be.js";import"./vue-router.a08742b9.js";import"./js-cookie.31874410.js";import"./ant-design-vue.6b10f349.js";import"./resize-observer-polyfill.8deb1e21.js";import"./vue-types.6e6d84ba.js";import"./dom-align.f1b5d360.js";import"./lodash-es.0ea26897.js";import"./dayjs.38e390ea.js";import"./async-validator.5d25c98b.js";import"./scroll-into-view-if-needed.5191fdbf.js";import"./compute-scroll-into-view.6058b3be.js";import"./lodash.c9cf1bdb.js";import"./spark-md5.2cc5764b.js";import"./@vueuse.952f4739.js";import"./vue-demi.5fb18120.js";import"./axios.e3200588.js";/* empty css */import"./sortablejs.412b554c.js";import"./clipboard.099d05c9.js";import"./markdown-it.80c3a67b.js";import"./entities.0d2c0164.js";import"./uc.micro.981ceb7b.js";import"./mdurl.ef76b4dc.js";import"./linkify-it.92c30060.js";import"./markdown-it-emoji.e3e91710.js";import"./escape-html.e5dfadb9.js";import"./prismjs.c97a8414.js";import"./diacritics.6be19c75.js";import"./markdown-it-container.512a5043.js";import"./markdown-it-anchor.c88e5394.js";import"./markdown-it-attrs.3af5ab50.js";import"./markdown-it-table-of-contents.8a4ce16f.js";import"./@kangc.86f7507c.js";var Q=["500px","accessible-icon","accusoft","adn","adversal","affiliatetheme","airbnb","algolia","alipay","amazon","amazon-pay","amilia","android","angellist","angrycreative","angular","app-store","app-store-ios","apper","apple","apple-pay","artstation","asymmetrik","atlassian","audible","autoprefixer","avianex","aviato","aws","bandcamp","battle-net","behance","behance-square","bimobject","bitbucket","bitcoin","bity","black-tie","blackberry","blogger","blogger-b","bluetooth","bluetooth-b","bootstrap","btc","buffer","buromobelexperte","buy-n-large","buysellads","canadian-maple-leaf","cc-amazon-pay","cc-amex","cc-apple-pay","cc-diners-club","cc-discover","cc-jcb","cc-mastercard","cc-paypal","cc-stripe","cc-visa","centercode","centos","chrome","chromecast","cloudflare","cloudscale","cloudsmith","cloudversify","codepen","codiepie","confluence","connectdevelop","contao","cotton-bureau","cpanel","creative-commons","creative-commons-by","creative-commons-nc","creative-commons-nc-eu","creative-commons-nc-jp","creative-commons-nd","creative-commons-pd","creative-commons-pd-alt","creative-commons-remix","creative-commons-sa","creative-commons-sampling","creative-commons-sampling-plus","creative-commons-share","creative-commons-zero","critical-role","css3","css3-alt","cuttlefish","d-and-d","d-and-d-beyond","dailymotion","dashcube","deezer","delicious","deploydog","deskpro","dev","deviantart","dhl","diaspora","digg","digital-ocean","discord","discourse","dochub","docker","draft2digital","dribbble","dribbble-square","dropbox","drupal","dyalog","earlybirds","ebay","edge","edge-legacy","elementor","ello","ember","empire","envira","erlang","ethereum","etsy","evernote","expeditedssl","facebook","facebook-f","facebook-messenger","facebook-square","fantasy-flight-games","fedex","fedora","figma","firefox","firefox-browser","first-order","first-order-alt","firstdraft","flickr","flipboard","fly","font-awesome","font-awesome-alt","font-awesome-flag","fonticons","fonticons-fi","fort-awesome","fort-awesome-alt","forumbee","foursquare","free-code-camp","freebsd","fulcrum","galactic-republic","galactic-senate","get-pocket","gg","gg-circle","git","git-alt","git-square","github","github-alt","github-square","gitkraken","gitlab","gitter","glide","glide-g","gofore","goodreads","goodreads-g","google","google-drive","google-pay","google-play","google-plus","google-plus-g","google-plus-square","google-wallet","gratipay","grav","gripfire","grunt","guilded","gulp","hacker-news","hacker-news-square","hackerrank","hips","hire-a-helper","hive","hooli","hornbill","hotjar","houzz","html5","hubspot","ideal","imdb","innosoft","instagram","instagram-square","instalod","intercom","internet-explorer","invision","ioxhost","itch-io","itunes","itunes-note","java","jedi-order","jenkins","jira","joget","joomla","js","js-square","jsfiddle","kaggle","keybase","keycdn","kickstarter","kickstarter-k","korvue","laravel","lastfm","lastfm-square","leanpub","less","line","linkedin","linkedin-in","linode","linux","lyft","magento","mailchimp","mandalorian","markdown","mastodon","maxcdn","mdb","medapps","medium","medium-m","medrt","meetup","megaport","mendeley","microblog","microsoft","mix","mixcloud","mixer","mizuni","modx","monero","napster","neos","nimblr","node","node-js","npm","ns8","nutritionix","octopus-deploy","odnoklassniki","odnoklassniki-square","old-republic","opencart","openid","opera","optin-monster","orcid","osi","page4","pagelines","palfed","patreon","paypal","perbyte","periscope","phabricator","phoenix-framework","phoenix-squadron","php","pied-piper","pied-piper-alt","pied-piper-hat","pied-piper-pp","pied-piper-square","pinterest","pinterest-p","pinterest-square","playstation","product-hunt","pushed","python","qq","quinscape","quora","r-project","raspberry-pi","ravelry","react","reacteurope","readme","rebel","red-river","reddit","reddit-alien","reddit-square","redhat","renren","replyd","researchgate","resolving","rev","rocketchat","rockrms","rust","safari","salesforce","sass","schlix","scribd","searchengin","sellcast","sellsy","servicestack","shirtsinbulk","shopify","shopware","simplybuilt","sistrix","sith","sketch","skyatlas","skype","slack","slack-hash","slideshare","snapchat","snapchat-ghost","snapchat-square","soundcloud","sourcetree","speakap","speaker-deck","spotify","squarespace","stack-exchange","stack-overflow","stackpath","staylinked","steam","steam-square","steam-symbol","sticker-mule","strava","stripe","stripe-s","studiovinari","stumbleupon","stumbleupon-circle","superpowers","supple","suse","swift","symfony","teamspeak","telegram","telegram-plane","tencent-weibo","the-red-yeti","themeco","themeisle","think-peaks","tiktok","trade-federation","trello","tumblr","tumblr-square","twitch","twitter","twitter-square","typo3","uber","ubuntu","uikit","umbraco","uncharted","uniregistry","unity","unsplash","untappd","ups","usb","usps","ussunnah","vaadin","viacoin","viadeo","viadeo-square","viber","vimeo","vimeo-square","vimeo-v","vine","vk","vnv","vuejs","watchman-monitoring","waze","weebly","weibo","weixin","whatsapp","whatsapp-square","whmcs","wikipedia-w","windows","wix","wizards-of-the-coast","wodu","wolf-pack-battalion","wordpress","wordpress-simple","wpbeginner","wpexplorer","wpforms","wpressr","xbox","xing","xing-square","y-combinator","yahoo","yammer","yandex","yandex-international","yarn","yelp","yoast","youtube","youtube-square","zhihu"],W=["address-book","address-card","angry","arrow-alt-circle-down","arrow-alt-circle-left","arrow-alt-circle-right","arrow-alt-circle-up","bell","bell-slash","bookmark","building","calendar","calendar-alt","calendar-check","calendar-minus","calendar-plus","calendar-times","caret-square-down","caret-square-left","caret-square-right","caret-square-up","chart-bar","check-circle","check-square","circle","clipboard","clock","clone","closed-captioning","comment","comment-alt","comment-dots","comments","compass","copy","copyright","credit-card","dizzy","dot-circle","edit","envelope","envelope-open","eye","eye-slash","file","file-alt","file-archive","file-audio","file-code","file-excel","file-image","file-pdf","file-powerpoint","file-video","file-word","flag","flushed","folder","folder-open","frown","frown-open","futbol","gem","grimace","grin","grin-alt","grin-beam","grin-beam-sweat","grin-hearts","grin-squint","grin-squint-tears","grin-stars","grin-tears","grin-tongue","grin-tongue-squint","grin-tongue-wink","grin-wink","hand-lizard","hand-paper","hand-peace","hand-point-down","hand-point-left","hand-point-right","hand-point-up","hand-pointer","hand-rock","hand-scissors","hand-spock","handshake","hdd","heart","hospital","hourglass","id-badge","id-card","image","images","keyboard","kiss","kiss-beam","kiss-wink-heart","laugh","laugh-beam","laugh-squint","laugh-wink","lemon","life-ring","lightbulb","list-alt","map","meh","meh-blank","meh-rolling-eyes","minus-square","money-bill-alt","moon","newspaper","object-group","object-ungroup","paper-plane","pause-circle","play-circle","plus-square","question-circle","registered","sad-cry","sad-tear","save","share-square","smile","smile-beam","smile-wink","snowflake","square","star","star-half","sticky-note","stop-circle","sun","surprise","thumbs-down","thumbs-up","times-circle","tired","trash-alt","user","user-circle","window-close","window-maximize","window-minimize","window-restore"],X=["ad","address-book","address-card","adjust","air-freshener","align-center","align-justify","align-left","align-right","allergies","ambulance","american-sign-language-interpreting","anchor","angle-double-down","angle-double-left","angle-double-right","angle-double-up","angle-down","angle-left","angle-right","angle-up","angry","ankh","apple-alt","archive","archway","arrow-alt-circle-down","arrow-alt-circle-left","arrow-alt-circle-right","arrow-alt-circle-up","arrow-circle-down","arrow-circle-left","arrow-circle-right","arrow-circle-up","arrow-down","arrow-left","arrow-right","arrow-up","arrows-alt","arrows-alt-h","arrows-alt-v","assistive-listening-systems","asterisk","at","atlas","atom","audio-description","award","baby","baby-carriage","backspace","backward","bacon","bacteria","bacterium","bahai","balance-scale","balance-scale-left","balance-scale-right","ban","band-aid","barcode","bars","baseball-ball","basketball-ball","bath","battery-empty","battery-full","battery-half","battery-quarter","battery-three-quarters","bed","beer","bell","bell-slash","bezier-curve","bible","bicycle","biking","binoculars","biohazard","birthday-cake","blender","blender-phone","blind","blog","bold","bolt","bomb","bone","bong","book","book-dead","book-medical","book-open","book-reader","bookmark","border-all","border-none","border-style","bowling-ball","box","box-open","box-tissue","boxes","braille","brain","bread-slice","briefcase","briefcase-medical","broadcast-tower","broom","brush","bug","building","bullhorn","bullseye","burn","bus","bus-alt","business-time","calculator","calendar","calendar-alt","calendar-check","calendar-day","calendar-minus","calendar-plus","calendar-times","calendar-week","camera","camera-retro","campground","candy-cane","cannabis","capsules","car","car-alt","car-battery","car-crash","car-side","caravan","caret-down","caret-left","caret-right","caret-square-down","caret-square-left","caret-square-right","caret-square-up","caret-up","carrot","cart-arrow-down","cart-plus","cash-register","cat","certificate","chair","chalkboard","chalkboard-teacher","charging-station","chart-area","chart-bar","chart-line","chart-pie","check","check-circle","check-double","check-square","cheese","chess","chess-bishop","chess-board","chess-king","chess-knight","chess-pawn","chess-queen","chess-rook","chevron-circle-down","chevron-circle-left","chevron-circle-right","chevron-circle-up","chevron-down","chevron-left","chevron-right","chevron-up","child","church","circle","circle-notch","city","clinic-medical","clipboard","clipboard-check","clipboard-list","clock","clone","closed-captioning","cloud","cloud-download-alt","cloud-meatball","cloud-moon","cloud-moon-rain","cloud-rain","cloud-showers-heavy","cloud-sun","cloud-sun-rain","cloud-upload-alt","cocktail","code","code-branch","coffee","cog","cogs","coins","columns","comment","comment-alt","comment-dollar","comment-dots","comment-medical","comment-slash","comments","comments-dollar","compact-disc","compass","compress","compress-alt","compress-arrows-alt","concierge-bell","cookie","cookie-bite","copy","copyright","couch","credit-card","crop","crop-alt","cross","crosshairs","crow","crown","crutch","cube","cubes","cut","database","deaf","democrat","desktop","dharmachakra","diagnoses","dice","dice-d20","dice-d6","dice-five","dice-four","dice-one","dice-six","dice-three","dice-two","digital-tachograph","directions","disease","divide","dizzy","dna","dog","dollar-sign","dolly","dolly-flatbed","donate","door-closed","door-open","dot-circle","dove","download","drafting-compass","dragon","draw-polygon","drum","drum-steelpan","drumstick-bite","dumbbell","dumpster","dumpster-fire","dungeon","edit","egg","eject","ellipsis-h","ellipsis-v","envelope","envelope-open","envelope-open-text","envelope-square","equals","eraser","ethernet","euro-sign","exchange-alt","exclamation","exclamation-circle","exclamation-triangle","expand","expand-alt","expand-arrows-alt","external-link-alt","external-link-square-alt","eye","eye-dropper","eye-slash","fan","fast-backward","fast-forward","faucet","fax","feather","feather-alt","female","fighter-jet","file","file-alt","file-archive","file-audio","file-code","file-contract","file-csv","file-download","file-excel","file-export","file-image","file-import","file-invoice","file-invoice-dollar","file-medical","file-medical-alt","file-pdf","file-powerpoint","file-prescription","file-signature","file-upload","file-video","file-word","fill","fill-drip","film","filter","fingerprint","fire","fire-alt","fire-extinguisher","first-aid","fish","fist-raised","flag","flag-checkered","flag-usa","flask","flushed","folder","folder-minus","folder-open","folder-plus","font","football-ball","forward","frog","frown","frown-open","funnel-dollar","futbol","gamepad","gas-pump","gavel","gem","genderless","ghost","gift","gifts","glass-cheers","glass-martini","glass-martini-alt","glass-whiskey","glasses","globe","globe-africa","globe-americas","globe-asia","globe-europe","golf-ball","gopuram","graduation-cap","greater-than","greater-than-equal","grimace","grin","grin-alt","grin-beam","grin-beam-sweat","grin-hearts","grin-squint","grin-squint-tears","grin-stars","grin-tears","grin-tongue","grin-tongue-squint","grin-tongue-wink","grin-wink","grip-horizontal","grip-lines","grip-lines-vertical","grip-vertical","guitar","h-square","hamburger","hammer","hamsa","hand-holding","hand-holding-heart","hand-holding-medical","hand-holding-usd","hand-holding-water","hand-lizard","hand-middle-finger","hand-paper","hand-peace","hand-point-down","hand-point-left","hand-point-right","hand-point-up","hand-pointer","hand-rock","hand-scissors","hand-sparkles","hand-spock","hands","hands-helping","hands-wash","handshake","handshake-alt-slash","handshake-slash","hanukiah","hard-hat","hashtag","hat-cowboy","hat-cowboy-side","hat-wizard","hdd","head-side-cough","head-side-cough-slash","head-side-mask","head-side-virus","heading","headphones","headphones-alt","headset","heart","heart-broken","heartbeat","helicopter","highlighter","hiking","hippo","history","hockey-puck","holly-berry","home","horse","horse-head","hospital","hospital-alt","hospital-symbol","hospital-user","hot-tub","hotdog","hotel","hourglass","hourglass-end","hourglass-half","hourglass-start","house-damage","house-user","hryvnia","i-cursor","ice-cream","icicles","icons","id-badge","id-card","id-card-alt","igloo","image","images","inbox","indent","industry","infinity","info","info-circle","italic","jedi","joint","journal-whills","kaaba","key","keyboard","khanda","kiss","kiss-beam","kiss-wink-heart","kiwi-bird","landmark","language","laptop","laptop-code","laptop-house","laptop-medical","laugh","laugh-beam","laugh-squint","laugh-wink","layer-group","leaf","lemon","less-than","less-than-equal","level-down-alt","level-up-alt","life-ring","lightbulb","link","lira-sign","list","list-alt","list-ol","list-ul","location-arrow","lock","lock-open","long-arrow-alt-down","long-arrow-alt-left","long-arrow-alt-right","long-arrow-alt-up","low-vision","luggage-cart","lungs","lungs-virus","magic","magnet","mail-bulk","male","map","map-marked","map-marked-alt","map-marker","map-marker-alt","map-pin","map-signs","marker","mars","mars-double","mars-stroke","mars-stroke-h","mars-stroke-v","mask","medal","medkit","meh","meh-blank","meh-rolling-eyes","memory","menorah","mercury","meteor","microchip","microphone","microphone-alt","microphone-alt-slash","microphone-slash","microscope","minus","minus-circle","minus-square","mitten","mobile","mobile-alt","money-bill","money-bill-alt","money-bill-wave","money-bill-wave-alt","money-check","money-check-alt","monument","moon","mortar-pestle","mosque","motorcycle","mountain","mouse","mouse-pointer","mug-hot","music","network-wired","neuter","newspaper","not-equal","notes-medical","object-group","object-ungroup","oil-can","om","otter","outdent","pager","paint-brush","paint-roller","palette","pallet","paper-plane","paperclip","parachute-box","paragraph","parking","passport","pastafarianism","paste","pause","pause-circle","paw","peace","pen","pen-alt","pen-fancy","pen-nib","pen-square","pencil-alt","pencil-ruler","people-arrows","people-carry","pepper-hot","percent","percentage","person-booth","phone","phone-alt","phone-slash","phone-square","phone-square-alt","phone-volume","photo-video","piggy-bank","pills","pizza-slice","place-of-worship","plane","plane-arrival","plane-departure","plane-slash","play","play-circle","plug","plus","plus-circle","plus-square","podcast","poll","poll-h","poo","poo-storm","poop","portrait","pound-sign","power-off","pray","praying-hands","prescription","prescription-bottle","prescription-bottle-alt","print","procedures","project-diagram","pump-medical","pump-soap","puzzle-piece","qrcode","question","question-circle","quidditch","quote-left","quote-right","quran","radiation","radiation-alt","rainbow","random","receipt","record-vinyl","recycle","redo","redo-alt","registered","remove-format","reply","reply-all","republican","restroom","retweet","ribbon","ring","road","robot","rocket","route","rss","rss-square","ruble-sign","ruler","ruler-combined","ruler-horizontal","ruler-vertical","running","rupee-sign","sad-cry","sad-tear","satellite","satellite-dish","save","school","screwdriver","scroll","sd-card","search","search-dollar","search-location","search-minus","search-plus","seedling","server","shapes","share","share-alt","share-alt-square","share-square","shekel-sign","shield-alt","shield-virus","ship","shipping-fast","shoe-prints","shopping-bag","shopping-basket","shopping-cart","shower","shuttle-van","sign","sign-in-alt","sign-language","sign-out-alt","signal","signature","sim-card","sink","sitemap","skating","skiing","skiing-nordic","skull","skull-crossbones","slash","sleigh","sliders-h","smile","smile-beam","smile-wink","smog","smoking","smoking-ban","sms","snowboarding","snowflake","snowman","snowplow","soap","socks","solar-panel","sort","sort-alpha-down","sort-alpha-down-alt","sort-alpha-up","sort-alpha-up-alt","sort-amount-down","sort-amount-down-alt","sort-amount-up","sort-amount-up-alt","sort-down","sort-numeric-down","sort-numeric-down-alt","sort-numeric-up","sort-numeric-up-alt","sort-up","spa","space-shuttle","spell-check","spider","spinner","splotch","spray-can","square","square-full","square-root-alt","stamp","star","star-and-crescent","star-half","star-half-alt","star-of-david","star-of-life","step-backward","step-forward","stethoscope","sticky-note","stop","stop-circle","stopwatch","stopwatch-20","store","store-alt","store-alt-slash","store-slash","stream","street-view","strikethrough","stroopwafel","subscript","subway","suitcase","suitcase-rolling","sun","superscript","surprise","swatchbook","swimmer","swimming-pool","synagogue","sync","sync-alt","syringe","table","table-tennis","tablet","tablet-alt","tablets","tachometer-alt","tag","tags","tape","tasks","taxi","teeth","teeth-open","temperature-high","temperature-low","tenge","terminal","text-height","text-width","th","th-large","th-list","theater-masks","thermometer","thermometer-empty","thermometer-full","thermometer-half","thermometer-quarter","thermometer-three-quarters","thumbs-down","thumbs-up","thumbtack","ticket-alt","times","times-circle","tint","tint-slash","tired","toggle-off","toggle-on","toilet","toilet-paper","toilet-paper-slash","toolbox","tools","tooth","torah","torii-gate","tractor","trademark","traffic-light","trailer","train","tram","transgender","transgender-alt","trash","trash-alt","trash-restore","trash-restore-alt","tree","trophy","truck","truck-loading","truck-monster","truck-moving","truck-pickup","tshirt","tty","tv","umbrella","umbrella-beach","underline","undo","undo-alt","universal-access","university","unlink","unlock","unlock-alt","upload","user","user-alt","user-alt-slash","user-astronaut","user-check","user-circle","user-clock","user-cog","user-edit","user-friends","user-graduate","user-injured","user-lock","user-md","user-minus","user-ninja","user-nurse","user-plus","user-secret","user-shield","user-slash","user-tag","user-tie","user-times","users","users-cog","users-slash","utensil-spoon","utensils","vector-square","venus","venus-double","venus-mars","vest","vest-patches","vial","vials","video","video-slash","vihara","virus","virus-slash","viruses","voicemail","volleyball-ball","volume-down","volume-mute","volume-off","volume-up","vote-yea","vr-cardboard","walking","wallet","warehouse","water","wave-square","weight","weight-hanging","wheelchair","wifi","wind","window-close","window-maximize","window-minimize","window-restore","wine-bottle","wine-glass","wine-glass-alt","won-sign","wrench","x-ray","yen-sign","yin-yang"];const G=["onClick"],J=$("\u8BF7\u9009\u62E9"),K={class:"search"},P={class:"iconCollection"},Y=["onClick"],Z=["onClick"],ee={name:"ExSelectIcon"},ae=Object.assign(ee,{props:{value:String},emits:["update:value"],setup(C,{emit:I}){const E=C,h=[];for(const e in S)["createFromIconfontCN","default","getTwoToneColor","setTwoToneColor"].indexOf(e)>-1||h.push(e);let o=X.map(e=>"fas fa-"+e);o=o.concat(W.map(e=>"far fa-"+e)),o=o.concat(Q.map(e=>"fab fa-"+e));const g=s([]),b=s([]);let k=!1;const w=s(),n=s(),c=s(!1),t=s(E.value);L(t,e=>{I("update:value",e)});function v(e){if(w.value.contains(e.target))return!1;c.value=!1}U(()=>{document.addEventListener("click",v)}),A(()=>{document.removeEventListener("click",v)});function y(e){t.value=e,c.value=!1}function q(){k||(b.value=h,g.value=o,k=!0),c.value=!0}function B(){b.value=h.filter(e=>e.indexOf(n.value)>=0),g.value=o.filter(e=>e.indexOf(n.value)>=0)}return(e,p)=>{const N=d("ExIcon"),x=d("a-input"),T=d("search-outlined"),V=d("a-form-item-rest");return r(),i(m,null,[u(x,{value:t.value,"onUpdate:value":p[0]||(p[0]=a=>t.value=a),allowClear:"",onClick:j(q,["stop"])},{addonAfter:f(()=>[l("span",{onClick:j(q,["stop"]),style:{cursor:"pointer"}},[t.value?(r(),_(N,{key:0,icon:t.value},null,8,["icon"])):(r(),i(m,{key:1},[J],64))],8,G)]),_:1},8,["value","onClick"]),F(l("div",{class:"icons",ref_key:"el",ref:w},[l("div",K,[u(V,null,{default:f(()=>[u(x,{value:n.value,"onUpdate:value":p[1]||(p[1]=a=>n.value=a),placeholder:"\u8F93\u5165\u5173\u952E\u8BCD\u8FDB\u884C\u641C\u7D22",onChange:B},{suffix:f(()=>[u(T)]),_:1},8,["value"])]),_:1})]),l("ul",P,[(r(!0),i(m,null,z(g.value,a=>(r(),i("li",{onClick:O=>y(a),key:a},[l("i",{class:M(a)},null,2)],8,Y))),128)),(r(!0),i(m,null,z(b.value,a=>(r(),i("li",{onClick:O=>y(a),key:a},[(r(),_(R(a)))],8,Z))),128))])],512),[[H,c.value]])],64)}}});var Re=D(ae,[["__scopeId","data-v-7f3b26e3"]]);export{Re as default}; diff --git a/public/exadmin/assets/selectIcon.fecf68db.css b/public/exadmin/assets/selectIcon.fecf68db.css new file mode 100644 index 0000000..0245685 --- /dev/null +++ b/public/exadmin/assets/selectIcon.fecf68db.css @@ -0,0 +1 @@ +.icons[data-v-7f3b26e3]{position:fixed;z-index:1000;background-color:#fff;background-clip:padding-box;border-radius:2px;box-shadow:0 3px 6px -4px #0000001f,0 6px 16px #00000014,0 9px 28px 8px #0000000d}.icons .search[data-v-7f3b26e3]{padding:10px 10px 0}.iconCollection[data-v-7f3b26e3]{padding:0;list-style:none;display:flex;flex-wrap:wrap;width:910px;height:400px;overflow-y:auto;margin:10px}.iconCollection li[data-v-7f3b26e3]{cursor:pointer;width:40px;height:40px;border:1px solid #ededed;line-height:40px;text-align:center}.iconCollection li[data-v-7f3b26e3]:hover{background:#1890ff;color:#fff}.iconCollection span[data-v-7f3b26e3],.iconCollection i[data-v-7f3b26e3]{font-size:20px}.dark-theme .icons[data-v-7f3b26e3]{background:#1f1f1f}.dark-theme .iconCollection li[data-v-7f3b26e3]{border:1px dashed #434343} diff --git a/public/exadmin/assets/selectTable.0026a80b.js b/public/exadmin/assets/selectTable.0026a80b.js new file mode 100644 index 0000000..cb7b302 --- /dev/null +++ b/public/exadmin/assets/selectTable.0026a80b.js @@ -0,0 +1 @@ +import{a as N}from"./context.6c9ae94a.js";import{_ as A,t as z}from"./index.b35f53c6.js";import"./vue.db505ee4.js";import{u as w}from"./use-http.ec808253.js";import{d as E,r as m,w as j,aW as u,aR as c,at as g,au as U,c as o,bd as i,S as y,ai as p,ar as H,as as B,aM as R,af as D,H as F}from"./@vue.cb43a243.js";import"./js-md5.5179c6be.js";import"./@babel.6cd0804c.js";import"./regenerator-runtime.8e24db72.js";import"./vue-router.a08742b9.js";import"./js-cookie.31874410.js";import"./ant-design-vue.6b10f349.js";import"./@ant-design.bcfb08ae.js";import"./@ctrl.fa7cbd46.js";import"./resize-observer-polyfill.8deb1e21.js";import"./vue-types.6e6d84ba.js";import"./dom-align.f1b5d360.js";import"./lodash-es.0ea26897.js";import"./dayjs.38e390ea.js";import"./async-validator.5d25c98b.js";import"./scroll-into-view-if-needed.5191fdbf.js";import"./compute-scroll-into-view.6058b3be.js";import"./lodash.c9cf1bdb.js";import"./spark-md5.2cc5764b.js";import"./@vueuse.952f4739.js";import"./vue-demi.5fb18120.js";import"./axios.e3200588.js";/* empty css */import"./sortablejs.412b554c.js";import"./clipboard.099d05c9.js";import"./markdown-it.80c3a67b.js";import"./entities.0d2c0164.js";import"./uc.micro.981ceb7b.js";import"./mdurl.ef76b4dc.js";import"./linkify-it.92c30060.js";import"./markdown-it-emoji.e3e91710.js";import"./escape-html.e5dfadb9.js";import"./prismjs.c97a8414.js";import"./diacritics.6be19c75.js";import"./markdown-it-container.512a5043.js";import"./markdown-it-anchor.c88e5394.js";import"./markdown-it-attrs.3af5ab50.js";import"./markdown-it-table-of-contents.8a4ce16f.js";import"./@kangc.86f7507c.js";const I=E({name:"ExSelectTable",props:{value:[String,Array,Number],params:Object,gridUrl:String,submitUrl:String,remoteParams:{type:Object,default:{}},submitParams:{type:Object,default:{}},custom:Boolean,multiple:Boolean},inheritAttrs:!1,emits:["update:value"],setup(e,a){const _=N(),h=m(!0),s=m(e.value),f=m(!1),v=m([]),r=m(null),t=m(e.value||[]),d=m("");Array.isArray(t.value)||(t.value=[t.value]);const{loading:k,http:C}=w(),S={x:"max-content",y:window.innerHeight/2};e.submitUrl&&O(),j(()=>e.value,l=>{s.value=l}),j(s,l=>{e.multiple?t.value=l:l?t.value=[l]:t.value=[],a.emit("update:value",l)});function n(){e.gridUrl&&(d.value=null,f.value=!0,C({url:e.gridUrl,method:"POST",data:e.params}).then(l=>{Object.assign(l.attribute.params,e.params),d.value=l}))}function O(){const{http:l}=w();let V=Object.assign(e.submitParams,{ex_eadmin_select_id:t.value});_&&(V.data=_.submitData()),l({url:e.submitUrl,method:"POST",data:V}).then($=>{e.custom?r.value=$.data:v.value=$.data,f.value=!1;const T=[];if(t.value.forEach(b=>{T.push(b)}),e.multiple)s.value=T;else{let b=T.pop();typeof b!="undefined"&&(s.value=b)}}).finally(()=>{h.value=!1})}function P(){e.multiple?s.value=[]:s.value=null}return{clear:P,trans:z,selectLoading:h,loading:k,submit:O,open:n,content:d,options:v,selectValue:s,selection:t,visible:f,height:S,customRender:r}}}),L={key:0},M={class:"action"},W={key:1},q={key:0};function G(e,a,_,h,s,f){const v=u("plus-outlined"),r=u("a-button"),t=u("delete-outlined"),d=u("render"),k=u("a-select"),C=u("a-form-item-rest"),S=u("a-modal");return c(),g(F,null,[e.custom?(c(),g("div",L,[U("div",M,[o(r,{size:"small",onClick:e.open,disabled:e.$attrs.disabled},{icon:i(()=>[o(v)]),default:i(()=>[y(" "+p(e.trans("SelectTable.select")),1)]),_:1},8,["onClick","disabled"]),e.selectValue?(c(),H(r,{key:0,size:"small",onClick:e.clear,disabled:e.$attrs.disabled},{icon:i(()=>[o(t)]),default:i(()=>[y(" "+p(e.trans("SelectTable.clear")),1)]),_:1},8,["onClick","disabled"])):B("",!0)]),o(d,{data:e.customRender},null,8,["data"])])):(c(),g("div",W,[o(k,R(e.$attrs,{value:e.selectValue,"onUpdate:value":a[0]||(a[0]=n=>e.selectValue=n),options:e.options,"allow-clear":"",open:!1,onClick:e.open}),null,16,["value","options","onClick"])])),o(S,{visible:e.visible,"onUpdate:visible":a[3]||(a[3]=n=>e.visible=n),width:"80%",destroyOnClose:""},{footer:i(()=>[U("div",{class:D(e.multiple&&e.selection.length>0?"footer":"")},[e.multiple&&e.selection.length>0?(c(),g("div",q,p(e.trans("SelectTable.selected"))+": "+p(e.selection.length),1)):B("",!0),U("div",null,[o(r,{type:"primary",onClick:e.submit},{default:i(()=>[y(p(e.trans("SelectTable.confirm")),1)]),_:1},8,["onClick"]),o(r,{onClick:a[2]||(a[2]=n=>e.visible=!1)},{default:i(()=>[y(p(e.trans("SelectTable.cancel")),1)]),_:1})])],2)]),default:i(()=>[o(C,null,{default:i(()=>[o(d,{data:e.content,selection:e.selection,"onUpdate:selection":a[1]||(a[1]=n=>e.selection=n),scroll:e.height,"selection-type":e.multiple?"checkbox":"radio"},null,8,["data","selection","scroll","selection-type"])]),_:1})]),_:1},8,["visible"])],64)}var Ee=A(I,[["render",G],["__scopeId","data-v-29cc7068"]]);export{Ee as default}; diff --git a/public/exadmin/assets/selectTable.3743dfd0.css b/public/exadmin/assets/selectTable.3743dfd0.css new file mode 100644 index 0000000..7f9959d --- /dev/null +++ b/public/exadmin/assets/selectTable.3743dfd0.css @@ -0,0 +1 @@ +.flex[data-v-29cc7068]{display:flex;align-items:center;justify-content:space-between}.action[data-v-29cc7068]{display:flex;align-items:center;margin:5px 0}.footer[data-v-29cc7068]{display:flex;align-items:center;justify-content:space-between} diff --git a/public/exadmin/assets/sidebar.8f138590.css b/public/exadmin/assets/sidebar.8f138590.css new file mode 100644 index 0000000..8235ea7 --- /dev/null +++ b/public/exadmin/assets/sidebar.8f138590.css @@ -0,0 +1 @@ +.flex[data-v-5bf1faca]{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap}.action[data-v-5bf1faca]{margin-left:10px} diff --git a/public/exadmin/assets/sidebar.da9c6767.js b/public/exadmin/assets/sidebar.da9c6767.js new file mode 100644 index 0000000..2a71796 --- /dev/null +++ b/public/exadmin/assets/sidebar.da9c6767.js @@ -0,0 +1 @@ +import"./vue.db505ee4.js";import{u as R}from"./use-http.ec808253.js";import{_ as W,f as q,t as G}from"./index.b35f53c6.js";import{r as v,w as J,aW as p,aR as l,ar as m,bd as y,as as c,c as b,au as K,u as f,at as k,S as V,ai as F}from"./@vue.cb43a243.js";import"./@babel.6cd0804c.js";import"./regenerator-runtime.8e24db72.js";import"./js-md5.5179c6be.js";import"./vue-router.a08742b9.js";import"./js-cookie.31874410.js";import"./ant-design-vue.6b10f349.js";import"./@ant-design.bcfb08ae.js";import"./@ctrl.fa7cbd46.js";import"./resize-observer-polyfill.8deb1e21.js";import"./vue-types.6e6d84ba.js";import"./dom-align.f1b5d360.js";import"./lodash-es.0ea26897.js";import"./dayjs.38e390ea.js";import"./async-validator.5d25c98b.js";import"./scroll-into-view-if-needed.5191fdbf.js";import"./compute-scroll-into-view.6058b3be.js";import"./lodash.c9cf1bdb.js";import"./spark-md5.2cc5764b.js";import"./@vueuse.952f4739.js";import"./vue-demi.5fb18120.js";import"./axios.e3200588.js";/* empty css */import"./sortablejs.412b554c.js";import"./clipboard.099d05c9.js";import"./markdown-it.80c3a67b.js";import"./entities.0d2c0164.js";import"./uc.micro.981ceb7b.js";import"./mdurl.ef76b4dc.js";import"./linkify-it.92c30060.js";import"./markdown-it-emoji.e3e91710.js";import"./escape-html.e5dfadb9.js";import"./prismjs.c97a8414.js";import"./diacritics.6be19c75.js";import"./markdown-it-container.512a5043.js";import"./markdown-it-anchor.c88e5394.js";import"./markdown-it-attrs.3af5ab50.js";import"./markdown-it-table-of-contents.8a4ce16f.js";import"./@kangc.86f7507c.js";const Q={class:"scrollbar"},X={key:0,class:"flex"},Y={style:{color:"#f50"}},Z={key:0,class:"action"},$={key:1,class:"flex"},ee={key:0,class:"action"},te={name:"ExSidebar",inheritAttrs:!1},ae=Object.assign(te,{props:{hideAll:Boolean,hideAdd:Boolean,hideEdit:Boolean,hideDel:Boolean,hideFilter:Boolean,hideTools:Boolean,isTree:Boolean,tools:[Object,Boolean],value:[String,Number],sourceList:{type:Array,default:[]},default:{type:[String,Number],default:void 0},field:{type:String,default:"group_id"},selectedField:String,fieldNames:Object,url:String,params:{type:Object,default:{}}},emits:["update:value"],setup(d,{emit:x}){const o=d,{loading:oe,http:j}=R();let S,h=o.fieldNames.children,r=o.fieldNames.key,i=o.fieldNames.title;o.default!==void 0&&x("update:value",o.default);const N=v([o.default]),s=v(""),g=v(-1),B=v(o.sourceList.map(t=>t[r])),O=v(!0),D=v(T(o.sourceList)),E=(t,e)=>{for(let n=0;nA[r]===t)?S=u[r]:E(t,u[h])&&(S=E(t,u[h])))}return S},C=t=>{B.value=t,O.value=!1};J(s,t=>{B.value=o.sourceList.map(e=>e[i].indexOf(t)>-1?E(e[r],D.value):null).filter((e,n,u)=>e&&u.indexOf(e)===n),s.value=t,O.value=!0});const L=(t,e)=>{if(e.selected){const n=t[0];o.selectedField?x("update:value",e.node[o.selectedField]):x("update:value",n)}else x("update:value",null)};function T(t){if(o.isTree&&(t=q(t,r,o.fieldNames.pid,h)),t.length==0&&(N.value=[""],x("update:value","")),!o.hideAll){const e={};e[r]="",e[i]=G("Sidebar.all"),e.ex_admin_render={name:"html",attribute:{"data-tag":"span"},content:{default:[e[i]]}},t.unshift(e)}return t}function _(){j({url:o.url,method:"post",data:o.params}).then(t=>{D.value=T(t)})}function M(t){let e=t.node[r];e&&(g.value=e)}function w(){g.value=-1}return(t,e)=>{const n=p("render"),u=p("reload-outlined"),A=p("a-button"),z=p("a-space"),I=p("search-outlined"),P=p("a-input"),U=p("a-tree"),H=p("a-card");return l(),m(H,{style:{height:"100%"},bodyStyle:{padding:"10px",height:"100%",display:"flex",flexDirection:"column"}},{default:y(()=>[d.hideTools?c("",!0):(l(),m(z,{key:0,style:{"margin-bottom":"10px"},size:10},{default:y(()=>[d.hideAdd?c("",!0):(l(),m(n,{key:0,data:d.tools.add,onSuccess:_},null,8,["data"])),b(A,{shape:"circle",size:"small",onClick:_},{icon:y(()=>[b(u)]),_:1})]),_:1})),d.hideFilter?c("",!0):(l(),m(P,{key:1,value:s.value,"onUpdate:value":e[0]||(e[0]=a=>s.value=a),style:{"margin-bottom":"8px"}},{prefix:y(()=>[b(I,{style:{color:"#c0c4cc"}})]),_:1},8,["value"])),K("div",Q,[b(U,{"expanded-keys":B.value,"tree-data":D.value,"auto-expand-parent":O.value,fieldNames:d.fieldNames,onExpand:C,onSelect:L,onMouseenter:M,onMouseleave:w,"block-node":"",selectedKeys:N.value,"onUpdate:selectedKeys":e[1]||(e[1]=a=>N.value=a)},{title:y(a=>[s.value&&a[f(i)]&&a[f(i)].indexOf(s.value)>-1?(l(),k("span",X,[K("span",null,[V(F(a[f(i)].substr(0,a[f(i)].indexOf(s.value)))+" ",1),K("span",Y,F(s.value),1),V(" "+F(a[f(i)].substr(a[f(i)].indexOf(s.value)+s.value.length)),1)]),g.value==a[f(r)]&&(a.ex_admin_edit||a.ex_admin_delete)?(l(),k("span",Z,[d.hideEdit?c("",!0):(l(),m(n,{key:0,data:a.ex_admin_edit,onSuccess:_},null,8,["data"])),d.hideDel?c("",!0):(l(),m(n,{key:1,data:a.ex_admin_delete,onSuccess:_},null,8,["data"]))])):c("",!0)])):(l(),k("span",$,[b(n,{data:a.ex_admin_render},null,8,["data"]),g.value==a[f(r)]&&(a.ex_admin_edit||a.ex_admin_delete)?(l(),k("span",ee,[d.hideEdit?c("",!0):(l(),m(n,{key:0,data:a.ex_admin_edit,onSuccess:_},null,8,["data"])),d.hideDel?c("",!0):(l(),m(n,{key:1,data:a.ex_admin_delete,onSuccess:_},null,8,["data"]))])):c("",!0)]))]),_:1},8,["expanded-keys","tree-data","auto-expand-parent","fieldNames","selectedKeys"])])]),_:1})}}});var qe=W(ae,[["__scopeId","data-v-5bf1faca"]]);export{qe as default}; diff --git a/public/exadmin/assets/simple-uploader.js.04c42387.js b/public/exadmin/assets/simple-uploader.js.04c42387.js new file mode 100644 index 0000000..67bc047 --- /dev/null +++ b/public/exadmin/assets/simple-uploader.js.04c42387.js @@ -0,0 +1,7 @@ +import{a as x}from"./@babel.6cd0804c.js";var P={exports:{}};/*! + * Uploader - Uploader library implements html5 file upload and provides multiple simultaneous, stable, fault tolerant and resumable uploads + * @version v0.6.0 + * @author dolymood + * @link https://github.com/simple-uploader/Uploader + * @license MIT + */(function(D,w){(function(_){D.exports=_()})(function(){return function _(y,R,n){function g(e,t){if(!R[e]){if(!y[e]){var h=typeof x=="function"&&x;if(!t&&h)return h(e,!0);if(l)return l(e,!0);throw new Error("Cannot find module '"+e+"'")}var r=R[e]={exports:{}};y[e][0].call(r.exports,function(i){var o=y[e][1][i];return g(o||i)},r,r.exports,_,y,R,n)}return R[e].exports}for(var l=typeof x=="function"&&x,u=0;u-1?e=l.SUCCESS:this.uploader.opts.permanentErrors.indexOf(this.xhr.status)>-1||!u&&this.retries>=this.uploader.opts.maxChunkRetries?e=l.ERROR:(this.abort(),e=l.PENDING);var t=this.processedState;return t&&t.err&&(e=l.ERROR),e}else return l.PENDING},message:function(){return this.xhr?this.xhr.responseText:""},progress:function(){if(this.pendingRetry)return 0;var u=this.status();return u===l.SUCCESS||u===l.ERROR?1:u===l.PENDING?0:this.total>0?this.loaded/this.total:0},sizeUploaded:function(){var u=this.endByte-this.startByte;return this.status()!==l.SUCCESS&&(u=this.progress()*u),u},prepareXhrRequest:function(u,e,t,h){var r=n.evalOpts(this.uploader.opts.query,this.file,this,e);r=n.extend(this.getParams(),r),r=this.uploader.opts.processParams(r,this.file,this,e);var i=n.evalOpts(this.uploader.opts.target,this.file,this,e),o=null;if(u==="GET"||t==="octet"){var d=[];n.each(r,function(s,a){d.push([encodeURIComponent(a),encodeURIComponent(s)].join("="))}),i=this.getTarget(i,d),o=h||null}else o=new FormData,n.each(r,function(s,a){o.append(a,s)}),typeof h!="undefined"&&o.append(this.uploader.opts.fileParameterName,h,this.file.name);return this.xhr.open(u,i,!0),this.xhr.withCredentials=this.uploader.opts.withCredentials,n.each(n.evalOpts(this.uploader.opts.headers,this.file,this,e),function(s,a){this.xhr.setRequestHeader(a,s)},this),o}}),y.exports=g},{"./utils":5}],2:[function(_,y,R){var n=_("./utils").each,g={_eventData:null,on:function(l,u){this._eventData||(this._eventData={}),this._eventData[l]||(this._eventData[l]=[]);var e=!1;n(this._eventData[l],function(t){if(t===u)return e=!0,!1}),e||this._eventData[l].push(u)},off:function(l,u){this._eventData||(this._eventData={}),!(!this._eventData[l]||!this._eventData[l].length)&&(u?n(this._eventData[l],function(e,t){if(e===u)return this._eventData[l].splice(t,1),!1},this):this._eventData[l]=[])},trigger:function(l){if(this._eventData||(this._eventData={}),!this._eventData[l])return!0;var u=this._eventData[l].slice.call(arguments,1),e=!1;return n(this._eventData[l],function(t){e=t.apply(this,u)===!1||e},this),!e}};y.exports=g},{"./utils":5}],3:[function(_,y,R){var n=_("./utils"),g=_("./event"),l=_("./file"),u=_("./chunk"),e="0.6.0",t=typeof window=="undefined",h=t?!1:window.navigator.msPointerEnabled,r=function(){if(t)return!1;var s="slice",a=n.isDefined(window.File)&&n.isDefined(window.Blob)&&n.isDefined(window.FileList),p=null;return a&&(p=window.Blob.prototype,n.each(["slice","webkitSlice","mozSlice"],function(c){if(p[c])return s=c,!1}),a=!!p[s]),a&&(o.sliceName=s),p=null,a}(),i=function(){if(t)return!1;var s=window.document.createElement("input");s.type="file";var a="webkitdirectory"in s||"directory"in s;return s=null,a}();function o(s){this.support=r,!!this.support&&(this.supportDirectory=i,n.defineNonEnumerable(this,"filePaths",{}),this.opts=n.extend({},o.defaults,s||{}),this.preventEvent=n.bind(this._preventEvent,this),l.call(this,this))}var d=function(s,a,p,c,v){v.readFinished(s.file[o.sliceName](p,c,a))};o.version=e,o.defaults={chunkSize:1024*1024,forceChunkSize:!1,simultaneousUploads:3,singleFile:!1,fileParameterName:"file",progressCallbacksInterval:500,speedSmoothingFactor:.1,query:{},headers:{},withCredentials:!1,preprocess:null,method:"multipart",testMethod:"GET",uploadMethod:"POST",prioritizeFirstAndLastChunk:!1,allowDuplicateUploads:!1,target:"/",testChunks:!0,generateUniqueIdentifier:null,maxChunkRetries:0,chunkRetryInterval:null,permanentErrors:[404,415,500,501],successStatuses:[200,201,202],onDropStopPropagation:!1,initFileFn:null,readFileFn:d,checkChunkUploadedByResponse:null,initialPaused:!1,processResponse:function(s,a){a(null,s)},processParams:function(s){return s}},o.utils=n,o.event=g,o.File=l,o.Chunk=u,o.prototype=n.extend({},l.prototype),n.extend(o.prototype,g),n.extend(o.prototype,{constructor:o,_trigger:function(s){var a=n.toArray(arguments),p=!this.trigger.apply(this,arguments);return s!=="catchAll"&&(a.unshift("catchAll"),p=!this.trigger.apply(this,a)||p),!p},_triggerAsync:function(){var s=arguments;n.nextTick(function(){this._trigger.apply(this,s)},this)},addFiles:function(s,a){var p=[],c=this.fileList.length;n.each(s,function(f){if((!h||h&&f.size>0)&&!(f.size%4096===0&&(f.name==="."||f.fileName==="."))){var m=this.generateUniqueIdentifier(f);if(this.opts.allowDuplicateUploads||!this.getFromUniqueIdentifier(m)){var S=new l(this,f,this);S.uniqueIdentifier=m,this._trigger("fileAdded",S,a)?p.push(S):l.prototype.removeFile.call(this,S)}}},this);var v=this.fileList.slice(c);this._trigger("filesAdded",p,v,a)?(n.each(p,function(f){this.opts.singleFile&&this.files.length>0&&this.removeFile(this.files[0]),this.files.push(f)},this),this._trigger("filesSubmitted",p,v,a)):n.each(v,function(f){l.prototype.removeFile.call(this,f)},this)},addFile:function(s,a){this.addFiles([s],a)},cancel:function(){for(var s=this.fileList.length-1;s>=0;s--)this.fileList[s].cancel()},removeFile:function(s){l.prototype.removeFile.call(this,s),this._trigger("fileRemoved",s)},generateUniqueIdentifier:function(s){var a=this.opts.generateUniqueIdentifier;if(n.isFunction(a))return a(s);var p=s.relativePath||s.webkitRelativePath||s.fileName||s.name;return s.size+"-"+p.replace(/[^0-9a-zA-Z_-]/img,"")},getFromUniqueIdentifier:function(s){var a=!1;return n.each(this.files,function(p){if(p.uniqueIdentifier===s)return a=p,!1}),a},uploadNextChunk:function(s){var a=!1,p=u.STATUS.PENDING,c=this.uploader.opts.checkChunkUploadedByResponse;if(this.opts.prioritizeFirstAndLastChunk&&(n.each(this.files,function(f){if(!f.paused&&!(c&&!f._firstResponse&&f.isUploading())){if(f.chunks.length&&f.chunks[0].status()===p)return f.chunks[0].send(),a=!0,!1;if(f.chunks.length>1&&f.chunks[f.chunks.length-1].status()===p)return f.chunks[f.chunks.length-1].send(),a=!0,!1}}),a))return a;if(n.each(this.files,function(f){if(!f.paused){if(c&&!f._firstResponse&&f.isUploading())return;n.each(f.chunks,function(m){if(m.status()===p)return m.send(),a=!0,!1})}if(a)return!1}),a)return!0;var v=!1;return n.each(this.files,function(f){if(!f.isComplete())return v=!0,!1}),!v&&!s&&this.files.length&&this._triggerAsync("complete"),v},upload:function(s){var a=this._shouldUploadNext();if(a!==!1){!s&&this._trigger("uploadStart");for(var p=!1,c=1;c<=this.opts.simultaneousUploads-a&&(p=this.uploadNextChunk(!s)||p,!(!p&&s));c++);!p&&!s&&this._triggerAsync("complete")}},_shouldUploadNext:function(){var s=0,a=!0,p=this.opts.simultaneousUploads,c=u.STATUS.UPLOADING;return n.each(this.files,function(v){return n.each(v.chunks,function(f){if(f.status()===c&&(s++,s>=p))return a=!1,!1}),a}),a&&s},assignBrowse:function(s,a,p,c){typeof s.length=="undefined"&&(s=[s]),n.each(s,function(v){var f;v.tagName==="INPUT"&&v.type==="file"?f=v:(f=document.createElement("input"),f.setAttribute("type","file"),n.extend(f.style,{visibility:"hidden",position:"absolute",width:"1px",height:"1px"}),v.appendChild(f),v.addEventListener("click",function(S){v.tagName.toLowerCase()!=="label"&&f.click()},!1)),!this.opts.singleFile&&!p&&f.setAttribute("multiple","multiple"),a&&f.setAttribute("webkitdirectory","webkitdirectory"),c&&n.each(c,function(S,F){f.setAttribute(F,S)});var m=this;f.addEventListener("change",function(S){m._trigger(S.type,S),S.target.value&&(m.addFiles(S.target.files,S),S.target.value="")},!1)},this)},onDrop:function(s){this._trigger(s.type,s),this.opts.onDropStopPropagation&&s.stopPropagation(),s.preventDefault(),this._parseDataTransfer(s.dataTransfer,s)},_parseDataTransfer:function(s,a){s.items&&s.items[0]&&s.items[0].webkitGetAsEntry?this.webkitReadDataTransfer(s,a):this.addFiles(s.files,a)},webkitReadDataTransfer:function(s,a){var p=this,c=s.items.length,v=[];n.each(s.items,function(b){var k=b.webkitGetAsEntry();if(!k){F();return}k.isFile?m(b.getAsFile(),k.fullPath):f(k.createReader())});function f(b){b.readEntries(function(k){k.length?(c+=k.length,n.each(k,function(E){if(E.isFile){var C=E.fullPath;E.file(function(U){m(U,C)},S)}else E.isDirectory&&f(E.createReader())}),f(b)):F()},S)}function m(b,k){b.relativePath=k.substring(1),v.push(b),F()}function S(b){throw b}function F(){--c===0&&p.addFiles(v,a)}},_assignHelper:function(s,a,p){typeof s.length=="undefined"&&(s=[s]);var c=p?"removeEventListener":"addEventListener";n.each(s,function(v){n.each(a,function(f,m){v[c](m,f,!1)},this)},this)},_preventEvent:function(s){n.preventEvent(s),this._trigger(s.type,s)},assignDrop:function(s){this._onDrop=n.bind(this.onDrop,this),this._assignHelper(s,{dragover:this.preventEvent,dragenter:this.preventEvent,dragleave:this.preventEvent,drop:this._onDrop})},unAssignDrop:function(s){this._assignHelper(s,{dragover:this.preventEvent,dragenter:this.preventEvent,dragleave:this.preventEvent,drop:this._onDrop},!0),this._onDrop=null}}),y.exports=o},{"./chunk":1,"./event":2,"./file":4,"./utils":5}],4:[function(_,y,R){var n=_("./utils"),g=_("./chunk");function l(e,t,h){n.defineNonEnumerable(this,"uploader",e),this.isRoot=this.isFolder=e===this,n.defineNonEnumerable(this,"parent",h||null),n.defineNonEnumerable(this,"files",[]),n.defineNonEnumerable(this,"fileList",[]),n.defineNonEnumerable(this,"chunks",[]),n.defineNonEnumerable(this,"_errorFiles",[]),n.defineNonEnumerable(this,"file",null),this.id=n.uid(),this.isRoot||!t?this.file=null:n.isString(t)?(this.isFolder=!0,this.file=null,this.path=t,this.parent.path&&(t=t.substr(this.parent.path.length)),this.name=t.charAt(t.length-1)==="/"?t.substr(0,t.length-1):t):(this.file=t,this.fileType=this.file.type,this.name=t.fileName||t.name,this.size=t.size,this.relativePath=t.relativePath||t.webkitRelativePath||this.name,this._parseFile()),this.paused=e.opts.initialPaused,this.error=!1,this.allError=!1,this.aborted=!1,this.completed=!1,this.averageSpeed=0,this.currentSpeed=0,this._lastProgressCallback=Date.now(),this._prevUploadedSize=0,this._prevProgress=0,this.bootstrap()}n.extend(l.prototype,{_parseFile:function(){var e=u(this.relativePath);if(e.length){var t=this.uploader.filePaths;n.each(e,function(h,r){var i=t[h];i||(i=new l(this.uploader,h,this.parent),t[h]=i,this._updateParentFileList(i)),this.parent=i,i.files.push(this),e[r+1]||i.fileList.push(this)},this)}else this._updateParentFileList()},_updateParentFileList:function(e){e||(e=this);var t=this.parent;t&&t.fileList.push(e)},_eachAccess:function(e,t){if(this.isFolder){n.each(this.files,function(h,r){return e.call(this,h,r)},this);return}t.call(this,this)},bootstrap:function(){if(!this.isFolder){var e=this.uploader.opts;n.isFunction(e.initFileFn)&&e.initFileFn.call(this,this),this.abort(!0),this._resetError(),this._prevProgress=0;for(var t=e.forceChunkSize?Math.ceil:Math.floor,h=Math.max(t(this.size/e.chunkSize),1),r=0;r=this.uploader.opts.progressCallbacksInterval},_chunkEvent:function(e,t,h){var r=this.uploader,i=g.STATUS,o=this,d=this.getRoot(),s=function(){o._measureSpeed(),r._trigger("fileProgress",d,o,e),o._lastProgressCallback=Date.now()};switch(t){case i.PROGRESS:this._checkProgress()&&s();break;case i.ERROR:this._error(),this.abort(!0),r._trigger("fileError",d,this,h,e);break;case i.SUCCESS:if(this._updateUploadedChunks(h,e),this.error)return;clearTimeout(this._progeressId),this._progeressId=0;var a=Date.now()-this._lastProgressCallback;a0?e/t:this.isComplete()?1:0)},function(){if(this.error){h=1;return}if(this.chunks.length===1){this._prevProgress=Math.max(this._prevProgress,this.chunks[0].progress()),h=this._prevProgress;return}var r=0;n.each(this.chunks,function(o){r+=o.progress()*(o.endByte-o.startByte)});var i=r/this.size;this._prevProgress=Math.max(this._prevProgress,i>.9999?1:i),h=this._prevProgress}),h},getSize:function(){var e=0;return this._eachAccess(function(t){e+=t.size},function(){e+=this.size}),e},getFormatSize:function(){var e=this.getSize();return n.formatSize(e)},getRoot:function(){if(this.isRoot)return this;for(var e=this.parent;e;){if(e.parent===this.uploader)return e;e=e.parent}return this},sizeUploaded:function(){var e=0;return this._eachAccess(function(t){e+=t.sizeUploaded()},function(){n.each(this.chunks,function(t){e+=t.sizeUploaded()})}),e},timeRemaining:function(){var e=0,t=0,h=0;return this._eachAccess(function(i,o){!i.paused&&!i.error&&(t+=i.size-i.sizeUploaded(),h+=i.averageSpeed),o===this.files.length-1&&(e=r(t,h))},function(){if(this.paused||this.error){e=0;return}var i=this.size-this.sizeUploaded();e=r(i,this.averageSpeed)}),e;function r(i,o){return i&&!o?Number.POSITIVE_INFINITY:!i&&!o?0:Math.floor(i/o)}},removeFile:function(e){if(e.isFolder)for(;e.files.length;){var t=e.files[e.files.length-1];this._removeFile(t)}this._removeFile(e)},_delFilePath:function(e){e.path&&this.filePaths&&delete this.filePaths[e.path],n.each(e.fileList,function(t){this._delFilePath(t)},this)},_removeFile:function(e){if(!e.isFolder){n.each(this.files,function(r,i){if(r===e)return this.files.splice(i,1),!1},this),e.abort();for(var t=e.parent,h;t&&t!==this;)h=t.parent,t._removeFile(e),t=h}e.parent===this&&n.each(this.fileList,function(r,i){if(r===e)return this.fileList.splice(i,1),!1},this),!this.isRoot&&this.isFolder&&!this.files.length&&(this.parent._removeFile(this),this.uploader._delFilePath(this)),e.parent=null},getType:function(){return this.isFolder?"folder":this.file.type&&this.file.type.split("/")[1]},getExtension:function(){return this.isFolder?"":this.name.substr((~-this.name.lastIndexOf(".")>>>0)+2).toLowerCase()}}),y.exports=l;function u(e){var t=[],h=e.split("/"),r=h.length,i=1;if(h.splice(r-1,1),r--,h.length)for(;i<=r;)t.push(h.slice(0,i++).join("/")+"/");return t}},{"./chunk":1,"./utils":5}],5:[function(_,y,R){var n=Object.prototype,g=Array.prototype,l=n.toString,u=function(i){return l.call(i)==="[object Function]"},e=Array.isArray||function(i){return l.call(i)==="[object Array]"},t=function(i){return l.call(i)==="[object Object]"&&Object.getPrototypeOf(i)===n},h=0,r={uid:function(){return++h},noop:function(){},bind:function(i,o){return function(){return i.apply(o,arguments)}},preventEvent:function(i){i.preventDefault()},stop:function(i){i.preventDefault(),i.stopPropagation()},nextTick:function(i,o){setTimeout(r.bind(i,o),0)},toArray:function(i,o,d){return o===void 0&&(o=0),d===void 0&&(d=i.length),g.slice.call(i,o,d)},isPlainObject:t,isFunction:u,isArray:e,isObject:function(i){return Object(i)===i},isString:function(i){return typeof i=="string"},isUndefined:function(i){return typeof i=="undefined"},isDefined:function(i){return typeof i!="undefined"},each:function(i,o,d){if(r.isDefined(i.length))for(var s=0,a=i.length;s + * @author owenm + * @license MIT + */function lt(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(n);e&&(o=o.filter(function(i){return Object.getOwnPropertyDescriptor(n,i).enumerable})),t.push.apply(t,o)}return t}function z(n){for(var e=1;e=0)&&(t[i]=n[i]);return t}function Mt(n,e){if(n==null)return{};var t=xt(n,e),o,i;if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);for(i=0;i=0)&&(!Object.prototype.propertyIsEnumerable.call(n,o)||(t[o]=n[o]))}return t}var Ft="1.15.0";function q(n){if(typeof window!="undefined"&&window.navigator)return!!navigator.userAgent.match(n)}var V=q(/(?:Trident.*rv[ :]?11\.|msie|iemobile|Windows Phone)/i),Ce=q(/Edge/i),st=q(/firefox/i),ye=q(/safari/i)&&!q(/chrome/i)&&!q(/android/i),mt=q(/iP(ad|od|hone)/i),vt=q(/chrome/i)&&q(/android/i),bt={capture:!1,passive:!1};function E(n,e,t){n.addEventListener(e,t,!V&&bt)}function b(n,e,t){n.removeEventListener(e,t,!V&&bt)}function Re(n,e){if(!!e){if(e[0]===">"&&(e=e.substring(1)),n)try{if(n.matches)return n.matches(e);if(n.msMatchesSelector)return n.msMatchesSelector(e);if(n.webkitMatchesSelector)return n.webkitMatchesSelector(e)}catch{return!1}return!1}}function Xt(n){return n.host&&n!==document&&n.host.nodeType?n.host:n.parentNode}function G(n,e,t,o){if(n){t=t||document;do{if(e!=null&&(e[0]===">"?n.parentNode===t&&Re(n,e):Re(n,e))||o&&n===t)return n;if(n===t)break}while(n=Xt(n))}return null}var ut=/\s+/g;function F(n,e,t){if(n&&e)if(n.classList)n.classList[t?"add":"remove"](e);else{var o=(" "+n.className+" ").replace(ut," ").replace(" "+e+" "," ");n.className=(o+(t?" "+e:"")).replace(ut," ")}}function h(n,e,t){var o=n&&n.style;if(o){if(t===void 0)return document.defaultView&&document.defaultView.getComputedStyle?t=document.defaultView.getComputedStyle(n,""):n.currentStyle&&(t=n.currentStyle),e===void 0?t:t[e];!(e in o)&&e.indexOf("webkit")===-1&&(e="-webkit-"+e),o[e]=t+(typeof t=="string"?"":"px")}}function ce(n,e){var t="";if(typeof n=="string")t=n;else do{var o=h(n,"transform");o&&o!=="none"&&(t=o+" "+t)}while(!e&&(n=n.parentNode));var i=window.DOMMatrix||window.WebKitCSSMatrix||window.CSSMatrix||window.MSCSSMatrix;return i&&new i(t)}function Et(n,e,t){if(n){var o=n.getElementsByTagName(e),i=0,r=o.length;if(t)for(;i=r:a=i<=r,!a)return o;if(o===L())break;o=ee(o,!1)}return!1}function de(n,e,t,o){for(var i=0,r=0,a=n.children;r2&&arguments[2]!==void 0?arguments[2]:{},i=o.evt,r=Mt(o,Lt);Oe.pluginEvent.bind(p)(e,t,z({dragEl:f,parentEl:S,ghostEl:g,rootEl:_,nextEl:ae,lastDownEl:Fe,cloneEl:D,cloneHidden:J,dragStarted:be,putSortable:O,activeSortable:p.active,originalEvent:i,oldIndex:fe,oldDraggableIndex:De,newIndex:X,newDraggableIndex:Q,hideGhostForTarget:Ct,unhideGhostForTarget:Ot,cloneNowHidden:function(){J=!0},cloneNowShown:function(){J=!1},dispatchSortableEvent:function(l){P({sortable:t,name:l,originalEvent:i})}},r))};function P(n){Gt(z({putSortable:O,cloneEl:D,targetEl:f,rootEl:_,oldIndex:fe,oldDraggableIndex:De,newIndex:X,newDraggableIndex:Q},n))}var f,S,g,_,ae,Fe,D,J,fe,X,De,Q,Ae,O,ue=!1,Be=!1,He=[],ie,H,Ue,qe,dt,ht,be,se,Se,Te=!1,Pe=!1,Xe,I,$e=[],Je=!1,We=[],Le=typeof document!="undefined",Ne=mt,pt=Ce||V?"cssFloat":"float",zt=Le&&!vt&&!mt&&"draggable"in document.createElement("div"),Dt=function(){if(!!Le){if(V)return!1;var n=document.createElement("x");return n.style.cssText="pointer-events:auto",n.style.pointerEvents==="auto"}}(),St=function(e,t){var o=h(e),i=parseInt(o.width)-parseInt(o.paddingLeft)-parseInt(o.paddingRight)-parseInt(o.borderLeftWidth)-parseInt(o.borderRightWidth),r=de(e,0,t),a=de(e,1,t),l=r&&h(r),s=a&&h(a),u=l&&parseInt(l.marginLeft)+parseInt(l.marginRight)+C(r).width,d=s&&parseInt(s.marginLeft)+parseInt(s.marginRight)+C(a).width;if(o.display==="flex")return o.flexDirection==="column"||o.flexDirection==="column-reverse"?"vertical":"horizontal";if(o.display==="grid")return o.gridTemplateColumns.split(" ").length<=1?"vertical":"horizontal";if(r&&l.float&&l.float!=="none"){var c=l.float==="left"?"left":"right";return a&&(s.clear==="both"||s.clear===c)?"vertical":"horizontal"}return r&&(l.display==="block"||l.display==="flex"||l.display==="table"||l.display==="grid"||u>=i&&o[pt]==="none"||a&&o[pt]==="none"&&u+d>i)?"vertical":"horizontal"},jt=function(e,t,o){var i=o?e.left:e.top,r=o?e.right:e.bottom,a=o?e.width:e.height,l=o?t.left:t.top,s=o?t.right:t.bottom,u=o?t.width:t.height;return i===l||r===s||i+a/2===l+u/2},Ut=function(e,t){var o;return He.some(function(i){var r=i[Y].options.emptyInsertThreshold;if(!(!r||ot(i))){var a=C(i),l=e>=a.left-r&&e<=a.right+r,s=t>=a.top-r&&t<=a.bottom+r;if(l&&s)return o=i}}),o},Tt=function(e){function t(r,a){return function(l,s,u,d){var c=l.options.group.name&&s.options.group.name&&l.options.group.name===s.options.group.name;if(r==null&&(a||c))return!0;if(r==null||r===!1)return!1;if(a&&r==="clone")return r;if(typeof r=="function")return t(r(l,s,u,d),a)(l,s,u,d);var m=(a?l:s).options.group.name;return r===!0||typeof r=="string"&&r===m||r.join&&r.indexOf(m)>-1}}var o={},i=e.group;(!i||Me(i)!="object")&&(i={name:i}),o.name=i.name,o.checkPull=t(i.pull,!0),o.checkPut=t(i.put),o.revertClone=i.revertClone,e.group=o},Ct=function(){!Dt&&g&&h(g,"display","none")},Ot=function(){!Dt&&g&&h(g,"display","")};Le&&!vt&&document.addEventListener("click",function(n){if(Be)return n.preventDefault(),n.stopPropagation&&n.stopPropagation(),n.stopImmediatePropagation&&n.stopImmediatePropagation(),Be=!1,!1},!0);var re=function(e){if(f){e=e.touches?e.touches[0]:e;var t=Ut(e.clientX,e.clientY);if(t){var o={};for(var i in e)e.hasOwnProperty(i)&&(o[i]=e[i]);o.target=o.rootEl=t,o.preventDefault=void 0,o.stopPropagation=void 0,t[Y]._onDragOver(o)}}},qt=function(e){f&&f.parentNode[Y]._isOutsideThisEl(e.target)};function p(n,e){if(!(n&&n.nodeType&&n.nodeType===1))throw"Sortable: `el` must be an HTMLElement, not ".concat({}.toString.call(n));this.el=n,this.options=e=$({},e),n[Y]=this;var t={group:null,sort:!0,disabled:!1,store:null,handle:null,draggable:/^[uo]l$/i.test(n.nodeName)?">li":">*",swapThreshold:1,invertSwap:!1,invertedSwapThreshold:null,removeCloneOnHide:!0,direction:function(){return St(n,this.options)},ghostClass:"sortable-ghost",chosenClass:"sortable-chosen",dragClass:"sortable-drag",ignore:"a, img",filter:null,preventOnFilter:!0,animation:0,easing:null,setData:function(a,l){a.setData("Text",l.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:"data-id",delay:0,delayOnTouchOnly:!1,touchStartThreshold:(Number.parseInt?Number:window).parseInt(window.devicePixelRatio,10)||1,forceFallback:!1,fallbackClass:"sortable-fallback",fallbackOnBody:!1,fallbackTolerance:0,fallbackOffset:{x:0,y:0},supportPointer:p.supportPointer!==!1&&"PointerEvent"in window&&!ye,emptyInsertThreshold:5};Oe.initializePlugins(this,n,t);for(var o in t)!(o in e)&&(e[o]=t[o]);Tt(e);for(var i in this)i.charAt(0)==="_"&&typeof this[i]=="function"&&(this[i]=this[i].bind(this));this.nativeDraggable=e.forceFallback?!1:zt,this.nativeDraggable&&(this.options.touchStartThreshold=1),e.supportPointer?E(n,"pointerdown",this._onTapStart):(E(n,"mousedown",this._onTapStart),E(n,"touchstart",this._onTapStart)),this.nativeDraggable&&(E(n,"dragover",this),E(n,"dragenter",this)),He.push(this.el),e.store&&e.store.get&&this.sort(e.store.get(this)||[]),$(this,Bt())}p.prototype={constructor:p,_isOutsideThisEl:function(e){!this.el.contains(e)&&e!==this.el&&(se=null)},_getDirection:function(e,t){return typeof this.options.direction=="function"?this.options.direction.call(this,e,t,f):this.options.direction},_onTapStart:function(e){if(!!e.cancelable){var t=this,o=this.el,i=this.options,r=i.preventOnFilter,a=e.type,l=e.touches&&e.touches[0]||e.pointerType&&e.pointerType==="touch"&&e,s=(l||e).target,u=e.target.shadowRoot&&(e.path&&e.path[0]||e.composedPath&&e.composedPath()[0])||s,d=i.filter;if(tn(o),!f&&!(/mousedown|pointerdown/.test(a)&&e.button!==0||i.disabled)&&!u.isContentEditable&&!(!this.nativeDraggable&&ye&&s&&s.tagName.toUpperCase()==="SELECT")&&(s=G(s,i.draggable,o,!1),!(s&&s.animated)&&Fe!==s)){if(fe=k(s),De=k(s,i.draggable),typeof d=="function"){if(d.call(this,e,s,this)){P({sortable:t,rootEl:u,name:"filter",targetEl:s,toEl:o,fromEl:o}),N("filter",t,{evt:e}),r&&e.cancelable&&e.preventDefault();return}}else if(d&&(d=d.split(",").some(function(c){if(c=G(u,c.trim(),o,!1),c)return P({sortable:t,rootEl:c,name:"filter",targetEl:s,fromEl:o,toEl:o}),N("filter",t,{evt:e}),!0}),d)){r&&e.cancelable&&e.preventDefault();return}i.handle&&!G(u,i.handle,o,!1)||this._prepareDragStart(e,l,s)}}},_prepareDragStart:function(e,t,o){var i=this,r=i.el,a=i.options,l=r.ownerDocument,s;if(o&&!f&&o.parentNode===r){var u=C(o);if(_=r,f=o,S=f.parentNode,ae=f.nextSibling,Fe=o,Ae=a.group,p.dragged=f,ie={target:f,clientX:(t||e).clientX,clientY:(t||e).clientY},dt=ie.clientX-u.left,ht=ie.clientY-u.top,this._lastX=(t||e).clientX,this._lastY=(t||e).clientY,f.style["will-change"]="all",s=function(){if(N("delayEnded",i,{evt:e}),p.eventCanceled){i._onDrop();return}i._disableDelayedDragEvents(),!st&&i.nativeDraggable&&(f.draggable=!0),i._triggerDragStart(e,t),P({sortable:i,name:"choose",originalEvent:e}),F(f,a.chosenClass,!0)},a.ignore.split(",").forEach(function(d){Et(f,d.trim(),Ve)}),E(l,"dragover",re),E(l,"mousemove",re),E(l,"touchmove",re),E(l,"mouseup",i._onDrop),E(l,"touchend",i._onDrop),E(l,"touchcancel",i._onDrop),st&&this.nativeDraggable&&(this.options.touchStartThreshold=4,f.draggable=!0),N("delayStart",this,{evt:e}),a.delay&&(!a.delayOnTouchOnly||t)&&(!this.nativeDraggable||!(Ce||V))){if(p.eventCanceled){this._onDrop();return}E(l,"mouseup",i._disableDelayedDrag),E(l,"touchend",i._disableDelayedDrag),E(l,"touchcancel",i._disableDelayedDrag),E(l,"mousemove",i._delayedDragTouchMoveHandler),E(l,"touchmove",i._delayedDragTouchMoveHandler),a.supportPointer&&E(l,"pointermove",i._delayedDragTouchMoveHandler),i._dragStartTimer=setTimeout(s,a.delay)}else s()}},_delayedDragTouchMoveHandler:function(e){var t=e.touches?e.touches[0]:e;Math.max(Math.abs(t.clientX-this._lastX),Math.abs(t.clientY-this._lastY))>=Math.floor(this.options.touchStartThreshold/(this.nativeDraggable&&window.devicePixelRatio||1))&&this._disableDelayedDrag()},_disableDelayedDrag:function(){f&&Ve(f),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var e=this.el.ownerDocument;b(e,"mouseup",this._disableDelayedDrag),b(e,"touchend",this._disableDelayedDrag),b(e,"touchcancel",this._disableDelayedDrag),b(e,"mousemove",this._delayedDragTouchMoveHandler),b(e,"touchmove",this._delayedDragTouchMoveHandler),b(e,"pointermove",this._delayedDragTouchMoveHandler)},_triggerDragStart:function(e,t){t=t||e.pointerType=="touch"&&e,!this.nativeDraggable||t?this.options.supportPointer?E(document,"pointermove",this._onTouchMove):t?E(document,"touchmove",this._onTouchMove):E(document,"mousemove",this._onTouchMove):(E(f,"dragend",this),E(_,"dragstart",this._onDragStart));try{document.selection?Ye(function(){document.selection.empty()}):window.getSelection().removeAllRanges()}catch{}},_dragStarted:function(e,t){if(ue=!1,_&&f){N("dragStarted",this,{evt:t}),this.nativeDraggable&&E(document,"dragover",qt);var o=this.options;!e&&F(f,o.dragClass,!1),F(f,o.ghostClass,!0),p.active=this,e&&this._appendGhost(),P({sortable:this,name:"start",originalEvent:t})}else this._nulling()},_emulateDragOver:function(){if(H){this._lastX=H.clientX,this._lastY=H.clientY,Ct();for(var e=document.elementFromPoint(H.clientX,H.clientY),t=e;e&&e.shadowRoot&&(e=e.shadowRoot.elementFromPoint(H.clientX,H.clientY),e!==t);)t=e;if(f.parentNode[Y]._isOutsideThisEl(e),t)do{if(t[Y]){var o=void 0;if(o=t[Y]._onDragOver({clientX:H.clientX,clientY:H.clientY,target:e,rootEl:t}),o&&!this.options.dragoverBubble)break}e=t}while(t=t.parentNode);Ot()}},_onTouchMove:function(e){if(ie){var t=this.options,o=t.fallbackTolerance,i=t.fallbackOffset,r=e.touches?e.touches[0]:e,a=g&&ce(g,!0),l=g&&a&&a.a,s=g&&a&&a.d,u=Ne&&I&&ct(I),d=(r.clientX-ie.clientX+i.x)/(l||1)+(u?u[0]-$e[0]:0)/(l||1),c=(r.clientY-ie.clientY+i.y)/(s||1)+(u?u[1]-$e[1]:0)/(s||1);if(!p.active&&!ue){if(o&&Math.max(Math.abs(r.clientX-this._lastX),Math.abs(r.clientY-this._lastY))=0&&(P({rootEl:S,name:"add",toEl:S,fromEl:_,originalEvent:e}),P({sortable:this,name:"remove",toEl:S,originalEvent:e}),P({rootEl:S,name:"sort",toEl:S,fromEl:_,originalEvent:e}),P({sortable:this,name:"sort",toEl:S,originalEvent:e})),O&&O.save()):X!==fe&&X>=0&&(P({sortable:this,name:"update",toEl:S,originalEvent:e}),P({sortable:this,name:"sort",toEl:S,originalEvent:e})),p.active&&((X==null||X===-1)&&(X=fe,Q=De),P({sortable:this,name:"end",toEl:S,originalEvent:e}),this.save()))),this._nulling()},_nulling:function(){N("nulling",this),_=f=S=g=ae=D=Fe=J=ie=H=be=X=Q=fe=De=se=Se=O=Ae=p.dragged=p.ghost=p.clone=p.active=null,We.forEach(function(e){e.checked=!0}),We.length=Ue=qe=0},handleEvent:function(e){switch(e.type){case"drop":case"dragend":this._onDrop(e);break;case"dragenter":case"dragover":f&&(this._onDragOver(e),$t(e));break;case"selectstart":e.preventDefault();break}},toArray:function(){for(var e=[],t,o=this.el.children,i=0,r=o.length,a=this.options;io.right+i||n.clientX<=o.right&&n.clientY>o.bottom&&n.clientX>=o.left:n.clientX>o.right&&n.clientY>o.top||n.clientX<=o.right&&n.clientY>o.bottom+i}function Qt(n,e,t,o,i,r,a,l){var s=o?n.clientY:n.clientX,u=o?t.height:t.width,d=o?t.top:t.left,c=o?t.bottom:t.right,m=!1;if(!a){if(l&&Xed+u*r/2:sc-Xe)return-Se}else if(s>d+u*(1-i)/2&&sc-u*r/2)?s>d+u/2?1:-1:0}function Jt(n){return k(f)>>25)+t|0,e+=(r&t|~r&n)+f[1]-389564586|0,e=(e<<12|e>>>20)+r|0,n+=(e&r|~e&t)+f[2]+606105819|0,n=(n<<17|n>>>15)+e|0,t+=(n&e|~n&r)+f[3]-1044525330|0,t=(t<<22|t>>>10)+n|0,r+=(t&n|~t&e)+f[4]-176418897|0,r=(r<<7|r>>>25)+t|0,e+=(r&t|~r&n)+f[5]+1200080426|0,e=(e<<12|e>>>20)+r|0,n+=(e&r|~e&t)+f[6]-1473231341|0,n=(n<<17|n>>>15)+e|0,t+=(n&e|~n&r)+f[7]-45705983|0,t=(t<<22|t>>>10)+n|0,r+=(t&n|~t&e)+f[8]+1770035416|0,r=(r<<7|r>>>25)+t|0,e+=(r&t|~r&n)+f[9]-1958414417|0,e=(e<<12|e>>>20)+r|0,n+=(e&r|~e&t)+f[10]-42063|0,n=(n<<17|n>>>15)+e|0,t+=(n&e|~n&r)+f[11]-1990404162|0,t=(t<<22|t>>>10)+n|0,r+=(t&n|~t&e)+f[12]+1804603682|0,r=(r<<7|r>>>25)+t|0,e+=(r&t|~r&n)+f[13]-40341101|0,e=(e<<12|e>>>20)+r|0,n+=(e&r|~e&t)+f[14]-1502002290|0,n=(n<<17|n>>>15)+e|0,t+=(n&e|~n&r)+f[15]+1236535329|0,t=(t<<22|t>>>10)+n|0,r+=(t&e|n&~e)+f[1]-165796510|0,r=(r<<5|r>>>27)+t|0,e+=(r&n|t&~n)+f[6]-1069501632|0,e=(e<<9|e>>>23)+r|0,n+=(e&t|r&~t)+f[11]+643717713|0,n=(n<<14|n>>>18)+e|0,t+=(n&r|e&~r)+f[0]-373897302|0,t=(t<<20|t>>>12)+n|0,r+=(t&e|n&~e)+f[5]-701558691|0,r=(r<<5|r>>>27)+t|0,e+=(r&n|t&~n)+f[10]+38016083|0,e=(e<<9|e>>>23)+r|0,n+=(e&t|r&~t)+f[15]-660478335|0,n=(n<<14|n>>>18)+e|0,t+=(n&r|e&~r)+f[4]-405537848|0,t=(t<<20|t>>>12)+n|0,r+=(t&e|n&~e)+f[9]+568446438|0,r=(r<<5|r>>>27)+t|0,e+=(r&n|t&~n)+f[14]-1019803690|0,e=(e<<9|e>>>23)+r|0,n+=(e&t|r&~t)+f[3]-187363961|0,n=(n<<14|n>>>18)+e|0,t+=(n&r|e&~r)+f[8]+1163531501|0,t=(t<<20|t>>>12)+n|0,r+=(t&e|n&~e)+f[13]-1444681467|0,r=(r<<5|r>>>27)+t|0,e+=(r&n|t&~n)+f[2]-51403784|0,e=(e<<9|e>>>23)+r|0,n+=(e&t|r&~t)+f[7]+1735328473|0,n=(n<<14|n>>>18)+e|0,t+=(n&r|e&~r)+f[12]-1926607734|0,t=(t<<20|t>>>12)+n|0,r+=(t^n^e)+f[5]-378558|0,r=(r<<4|r>>>28)+t|0,e+=(r^t^n)+f[8]-2022574463|0,e=(e<<11|e>>>21)+r|0,n+=(e^r^t)+f[11]+1839030562|0,n=(n<<16|n>>>16)+e|0,t+=(n^e^r)+f[14]-35309556|0,t=(t<<23|t>>>9)+n|0,r+=(t^n^e)+f[1]-1530992060|0,r=(r<<4|r>>>28)+t|0,e+=(r^t^n)+f[4]+1272893353|0,e=(e<<11|e>>>21)+r|0,n+=(e^r^t)+f[7]-155497632|0,n=(n<<16|n>>>16)+e|0,t+=(n^e^r)+f[10]-1094730640|0,t=(t<<23|t>>>9)+n|0,r+=(t^n^e)+f[13]+681279174|0,r=(r<<4|r>>>28)+t|0,e+=(r^t^n)+f[0]-358537222|0,e=(e<<11|e>>>21)+r|0,n+=(e^r^t)+f[3]-722521979|0,n=(n<<16|n>>>16)+e|0,t+=(n^e^r)+f[6]+76029189|0,t=(t<<23|t>>>9)+n|0,r+=(t^n^e)+f[9]-640364487|0,r=(r<<4|r>>>28)+t|0,e+=(r^t^n)+f[12]-421815835|0,e=(e<<11|e>>>21)+r|0,n+=(e^r^t)+f[15]+530742520|0,n=(n<<16|n>>>16)+e|0,t+=(n^e^r)+f[2]-995338651|0,t=(t<<23|t>>>9)+n|0,r+=(n^(t|~e))+f[0]-198630844|0,r=(r<<6|r>>>26)+t|0,e+=(t^(r|~n))+f[7]+1126891415|0,e=(e<<10|e>>>22)+r|0,n+=(r^(e|~t))+f[14]-1416354905|0,n=(n<<15|n>>>17)+e|0,t+=(e^(n|~r))+f[5]-57434055|0,t=(t<<21|t>>>11)+n|0,r+=(n^(t|~e))+f[12]+1700485571|0,r=(r<<6|r>>>26)+t|0,e+=(t^(r|~n))+f[3]-1894986606|0,e=(e<<10|e>>>22)+r|0,n+=(r^(e|~t))+f[10]-1051523|0,n=(n<<15|n>>>17)+e|0,t+=(e^(n|~r))+f[1]-2054922799|0,t=(t<<21|t>>>11)+n|0,r+=(n^(t|~e))+f[8]+1873313359|0,r=(r<<6|r>>>26)+t|0,e+=(t^(r|~n))+f[15]-30611744|0,e=(e<<10|e>>>22)+r|0,n+=(r^(e|~t))+f[6]-1560198380|0,n=(n<<15|n>>>17)+e|0,t+=(e^(n|~r))+f[13]+1309151649|0,t=(t<<21|t>>>11)+n|0,r+=(n^(t|~e))+f[4]-145523070|0,r=(r<<6|r>>>26)+t|0,e+=(t^(r|~n))+f[11]-1120210379|0,e=(e<<10|e>>>22)+r|0,n+=(r^(e|~t))+f[2]+718787259|0,n=(n<<15|n>>>17)+e|0,t+=(e^(n|~r))+f[9]-343485551|0,t=(t<<21|t>>>11)+n|0,i[0]=r+i[0]|0,i[1]=t+i[1]|0,i[2]=n+i[2]|0,i[3]=e+i[3]|0}function l(i){var f=[],r;for(r=0;r<64;r+=4)f[r>>2]=i.charCodeAt(r)+(i.charCodeAt(r+1)<<8)+(i.charCodeAt(r+2)<<16)+(i.charCodeAt(r+3)<<24);return f}function b(i){var f=[],r;for(r=0;r<64;r+=4)f[r>>2]=i[r]+(i[r+1]<<8)+(i[r+2]<<16)+(i[r+3]<<24);return f}function _(i){var f=i.length,r=[1732584193,-271733879,-1732584194,271733878],t,n,e,u,a,s;for(t=64;t<=f;t+=64)o(r,l(i.substring(t-64,t)));for(i=i.substring(t-64),n=i.length,e=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],t=0;t>2]|=i.charCodeAt(t)<<(t%4<<3);if(e[t>>2]|=128<<(t%4<<3),t>55)for(o(r,e),t=0;t<16;t+=1)e[t]=0;return u=f*8,u=u.toString(16).match(/(.*?)(.{0,8})$/),a=parseInt(u[2],16),s=parseInt(u[1],16)||0,e[14]=a,e[15]=s,o(r,e),r}function v(i){var f=i.length,r=[1732584193,-271733879,-1732584194,271733878],t,n,e,u,a,s;for(t=64;t<=f;t+=64)o(r,b(i.subarray(t-64,t)));for(i=t-64>2]|=i[t]<<(t%4<<3);if(e[t>>2]|=128<<(t%4<<3),t>55)for(o(r,e),t=0;t<16;t+=1)e[t]=0;return u=f*8,u=u.toString(16).match(/(.*?)(.{0,8})$/),a=parseInt(u[2],16),s=parseInt(u[1],16)||0,e[14]=a,e[15]=s,o(r,e),r}function S(i){var f="",r;for(r=0;r<4;r+=1)f+=g[i>>r*8+4&15]+g[i>>r*8&15];return f}function p(i){var f;for(f=0;fe?new ArrayBuffer(0):(u=e-n,a=new ArrayBuffer(u),s=new Uint8Array(a),d=new Uint8Array(this,n,u),s.set(d),a)}}();function A(i){return/[\u0080-\uFFFF]/.test(i)&&(i=unescape(encodeURIComponent(i))),i}function w(i,f){var r=i.length,t=new ArrayBuffer(r),n=new Uint8Array(t),e;for(e=0;e>2]|=f.charCodeAt(t)<<(t%4<<3);return this._finish(n,r),e=p(this._hash),i&&(e=y(e)),this.reset(),e},h.prototype.reset=function(){return this._buff="",this._length=0,this._hash=[1732584193,-271733879,-1732584194,271733878],this},h.prototype.getState=function(){return{buff:this._buff,length:this._length,hash:this._hash.slice()}},h.prototype.setState=function(i){return this._buff=i.buff,this._length=i.length,this._hash=i.hash,this},h.prototype.destroy=function(){delete this._hash,delete this._buff,delete this._length},h.prototype._finish=function(i,f){var r=f,t,n,e;if(i[r>>2]|=128<<(r%4<<3),r>55)for(o(this._hash,i),r=0;r<16;r+=1)i[r]=0;t=this._length*8,t=t.toString(16).match(/(.*?)(.{0,8})$/),n=parseInt(t[2],16),e=parseInt(t[1],16)||0,i[14]=n,i[15]=e,o(this._hash,i)},h.hash=function(i,f){return h.hashBinary(A(i),f)},h.hashBinary=function(i,f){var r=_(i),t=p(r);return f?y(t):t},h.ArrayBuffer=function(){this.reset()},h.ArrayBuffer.prototype.append=function(i){var f=C(this._buff.buffer,i,!0),r=f.length,t;for(this._length+=i.byteLength,t=64;t<=r;t+=64)o(this._hash,b(f.subarray(t-64,t)));return this._buff=t-64>2]|=f[n]<<(n%4<<3);return this._finish(t,r),e=p(this._hash),i&&(e=y(e)),this.reset(),e},h.ArrayBuffer.prototype.reset=function(){return this._buff=new Uint8Array(0),this._length=0,this._hash=[1732584193,-271733879,-1732584194,271733878],this},h.ArrayBuffer.prototype.getState=function(){var i=h.prototype.getState.call(this);return i.buff=U(i.buff),i},h.ArrayBuffer.prototype.setState=function(i){return i.buff=w(i.buff,!0),h.prototype.setState.call(this,i)},h.ArrayBuffer.prototype.destroy=h.prototype.destroy,h.ArrayBuffer.prototype._finish=h.prototype._finish,h.ArrayBuffer.hash=function(i,f){var r=v(new Uint8Array(i)),t=p(r);return f?y(t):t},h})})(B);var F=B.exports;export{F as S}; diff --git a/public/exadmin/assets/switch.4512364b.js b/public/exadmin/assets/switch.4512364b.js new file mode 100644 index 0000000..e4b0e7b --- /dev/null +++ b/public/exadmin/assets/switch.4512364b.js @@ -0,0 +1 @@ +import{u as s}from"./use-http.ec808253.js";import"./vue.db505ee4.js";import{c}from"./@vueuse.952f4739.js";import{_ as h}from"./index.b35f53c6.js";import{d as f,aW as k,aR as g,ar as v}from"./@vue.cb43a243.js";import"./@babel.6cd0804c.js";import"./regenerator-runtime.8e24db72.js";import"./vue-demi.5fb18120.js";import"./js-md5.5179c6be.js";import"./vue-router.a08742b9.js";import"./js-cookie.31874410.js";import"./ant-design-vue.6b10f349.js";import"./@ant-design.bcfb08ae.js";import"./@ctrl.fa7cbd46.js";import"./resize-observer-polyfill.8deb1e21.js";import"./vue-types.6e6d84ba.js";import"./dom-align.f1b5d360.js";import"./lodash-es.0ea26897.js";import"./dayjs.38e390ea.js";import"./async-validator.5d25c98b.js";import"./scroll-into-view-if-needed.5191fdbf.js";import"./compute-scroll-into-view.6058b3be.js";import"./lodash.c9cf1bdb.js";import"./spark-md5.2cc5764b.js";import"./axios.e3200588.js";/* empty css */import"./sortablejs.412b554c.js";import"./clipboard.099d05c9.js";import"./markdown-it.80c3a67b.js";import"./entities.0d2c0164.js";import"./uc.micro.981ceb7b.js";import"./mdurl.ef76b4dc.js";import"./linkify-it.92c30060.js";import"./markdown-it-emoji.e3e91710.js";import"./escape-html.e5dfadb9.js";import"./prismjs.c97a8414.js";import"./diacritics.6be19c75.js";import"./markdown-it-container.512a5043.js";import"./markdown-it-anchor.c88e5394.js";import"./markdown-it-attrs.3af5ab50.js";import"./markdown-it-table-of-contents.8a4ce16f.js";import"./@kangc.86f7507c.js";const C=f({name:"ExSwitch",props:{checked:[Number,String,Boolean],url:String,params:{type:Object,default:{}},field:String},emits:["update:checked"],setup(t,e){const{loading:l,http:u}=s(),o=c(t,"checked",e.emit),r=e.attrs.checkedValue===void 0?!0:e.attrs.checkedValue,a=e.attrs.unCheckedValue===void 0?!1:e.attrs.unCheckedValue;o.value===!1?o.value=a:o.value===!0&&(o.value=r);function n(i){let m;i==r?m=a:m=r;let p=t.params;p.data||(p.data={}),p.data[t.field]=i,t.url?u({url:t.url,method:"put",data:p}).then(d=>{e.emit("update:checked",i)}).catch(d=>{o.value=m,e.emit("update:checked",m)}):e.emit("update:checked",i)}return{handleChange:n,loading:l,value:o}}});function V(t,e,l,u,o,r){const a=k("a-switch");return g(),v(a,{checked:t.value,"onUpdate:checked":e[0]||(e[0]=n=>t.value=n),loading:t.loading,onChange:t.handleChange},null,8,["checked","loading","onChange"])}var le=h(C,[["render",V]]);export{le as default}; diff --git a/public/exadmin/assets/tinymce.140b5d43.js b/public/exadmin/assets/tinymce.140b5d43.js new file mode 100644 index 0000000..0ac311e --- /dev/null +++ b/public/exadmin/assets/tinymce.140b5d43.js @@ -0,0 +1,65 @@ +import{c as hB}from"./@babel.6cd0804c.js";var K6={exports:{}};(function(Le){(function(){var qn=function(e){if(e===null)return"null";if(e===void 0)return"undefined";var n=typeof e;return n==="object"&&(Array.prototype.isPrototypeOf(e)||e.constructor&&e.constructor.name==="Array")?"array":n==="object"&&(String.prototype.isPrototypeOf(e)||e.constructor&&e.constructor.name==="String")?"string":n},tn=function(e){return["undefined","boolean","number","string","function","xml","null"].indexOf(e)!==-1},bt=function(e,n){var a=Array.prototype.slice.call(e);return a.sort(n)},ve=function(e,n){return rt(function(a,i){return e.eq(n(a),n(i))})},rt=function(e){return{eq:e}},gn=rt(function(e,n){return e===n}),vn=gn,Ct=function(e){return rt(function(n,a){if(n.length!==a.length)return!1;for(var i=n.length,s=0;s-1},ee=function(e,n){for(var a=0,i=e.length;a=0;a--){var i=e[a];n(i,a)}},pn=function(e,n){for(var a=[],i=[],s=0,f=e.length;s=0&&n=n.length&&e.substr(a,a+n.length)===n},De=function(e,n){return tt(e,n)?W(e,n.length):e},Pe=function(e,n){return e.indexOf(n)!==-1},tt=function(e,n){return le(e,n,0)},$=function(e){return function(n){return n.replace(e,"")}},Z=$(/^\s+|\s+$/g),ye=$(/^\s+/g),ue=$(/\s+$/g),Ge=/.*?version\/\ ?([0-9]+)\.([0-9]+).*/,Je=function(e){return function(n){return Pe(n,e)}},yn=[{name:"Edge",versionRegexes:[/.*?edge\/ ?([0-9]+)\.([0-9]+)$/],search:function(e){return Pe(e,"edge/")&&Pe(e,"chrome")&&Pe(e,"safari")&&Pe(e,"applewebkit")}},{name:"Chrome",versionRegexes:[/.*?chrome\/([0-9]+)\.([0-9]+).*/,Ge],search:function(e){return Pe(e,"chrome")&&!Pe(e,"chromeframe")}},{name:"IE",versionRegexes:[/.*?msie\ ?([0-9]+)\.([0-9]+).*/,/.*?rv:([0-9]+)\.([0-9]+).*/],search:function(e){return Pe(e,"msie")||Pe(e,"trident")}},{name:"Opera",versionRegexes:[Ge,/.*?opera\/([0-9]+)\.([0-9]+).*/],search:Je("opera")},{name:"Firefox",versionRegexes:[/.*?firefox\/\ ?([0-9]+)\.([0-9]+).*/],search:Je("firefox")},{name:"Safari",versionRegexes:[Ge,/.*?cpu os ([0-9]+)_([0-9]+).*/],search:function(e){return(Pe(e,"safari")||Pe(e,"mobile/"))&&Pe(e,"applewebkit")}}],Jn=[{name:"Windows",search:Je("win"),versionRegexes:[/.*?windows\ nt\ ?([0-9]+)\.([0-9]+).*/]},{name:"iOS",search:function(e){return Pe(e,"iphone")||Pe(e,"ipad")},versionRegexes:[/.*?version\/\ ?([0-9]+)\.([0-9]+).*/,/.*cpu os ([0-9]+)_([0-9]+).*/,/.*cpu iphone os ([0-9]+)_([0-9]+).*/]},{name:"Android",search:Je("android"),versionRegexes:[/.*?android\ ?([0-9]+)\.([0-9]+).*/]},{name:"OSX",search:Je("mac os x"),versionRegexes:[/.*?mac\ os\ x\ ?([0-9]+)_([0-9]+).*/]},{name:"Linux",search:Je("linux"),versionRegexes:[]},{name:"Solaris",search:Je("sunos"),versionRegexes:[]},{name:"FreeBSD",search:Je("freebsd"),versionRegexes:[]},{name:"ChromeOS",search:Je("cros"),versionRegexes:[/.*?chrome\/([0-9]+)\.([0-9]+).*/]}],$t={browsers:We(yn),oses:We(Jn)},Zn="Edge",K="Chrome",xe="IE",Oe="Opera",at="Firefox",kn="Safari",Dn=function(){return re({current:void 0,version:Vo.unknown()})},re=function(e){var n=e.current,a=e.version,i=function(s){return function(){return n===s}};return{current:n,version:a,isEdge:i(Zn),isChrome:i(K),isIE:i(xe),isOpera:i(Oe),isFirefox:i(at),isSafari:i(kn)}},_e={unknown:Dn,nu:re,edge:We(Zn),chrome:We(K),ie:We(xe),opera:We(Oe),firefox:We(at),safari:We(kn)},ct="Windows",Qt="iOS",Sn="Android",Ut="Linux",vr="OSX",gr="Solaris",Fr="FreeBSD",wa="ChromeOS",j=function(){return Fe({current:void 0,version:Vo.unknown()})},Fe=function(e){var n=e.current,a=e.version,i=function(s){return function(){return n===s}};return{current:n,version:a,isWindows:i(ct),isiOS:i(Qt),isAndroid:i(Sn),isOSX:i(vr),isLinux:i(Ut),isSolaris:i(gr),isFreeBSD:i(Fr),isChromeOS:i(wa)}},Ie={unknown:j,nu:Fe,windows:We(ct),ios:We(Qt),android:We(Sn),linux:We(Ut),osx:We(vr),solaris:We(gr),freebsd:We(Fr),chromeos:We(wa)},Be=function(e,n){var a=$t.browsers(),i=$t.oses(),s=I.detectBrowser(a,e).fold(_e.unknown,_e.nu),f=I.detectOs(i,e).fold(Ie.unknown,Ie.nu),g=yo(f,s,e,n);return{browser:s,os:f,deviceType:g}},qt={detect:Be},mr=function(e){return window.matchMedia(e).matches},sa=Po(function(){return qt.detect(navigator.userAgent,mr)}),la=function(){return sa()},Qr=navigator.userAgent,uo=la(),oa=uo.browser,ra=uo.os,bi=uo.deviceType,Yl=/WebKit/.test(Qr)&&!oa.isEdge(),Jl="FormData"in window&&"FileReader"in window&&"URL"in window&&!!URL.createObjectURL,bd=Qr.indexOf("Windows Phone")!==-1,Ln={opera:oa.isOpera(),webkit:Yl,ie:oa.isIE()||oa.isEdge()?oa.version.major:!1,gecko:oa.isFirefox(),mac:ra.isOSX()||ra.isiOS(),iOS:bi.isiPad()||bi.isiPhone(),android:ra.isAndroid(),contentEditable:!0,transparentSrc:"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",caretAfter:!0,range:window.getSelection&&"Range"in window,documentMode:oa.isIE()?document.documentMode||7:10,fileApi:Jl,ceFalse:!0,cacheSuffix:null,container:null,experimentalShadowDom:!1,canHaveCSP:!oa.isIE(),desktop:bi.isDesktop(),windowsPhone:bd,browser:{current:oa.current,version:oa.version,isChrome:oa.isChrome,isEdge:oa.isEdge,isFirefox:oa.isFirefox,isIE:oa.isIE,isOpera:oa.isOpera,isSafari:oa.isSafari},os:{current:ra.current,version:ra.version,isAndroid:ra.isAndroid,isChromeOS:ra.isChromeOS,isFreeBSD:ra.isFreeBSD,isiOS:ra.isiOS,isLinux:ra.isLinux,isOSX:ra.isOSX,isSolaris:ra.isSolaris,isWindows:ra.isWindows},deviceType:{isDesktop:bi.isDesktop,isiPad:bi.isiPad,isiPhone:bi.isiPhone,isPhone:bi.isPhone,isTablet:bi.isTablet,isTouch:bi.isTouch,isWebView:bi.isWebView}},Kf=/^\s*|\s*$/g,Oi=function(e){return e==null?"":(""+e).replace(Kf,"")},Zl=function(e,n){return n?n==="array"&&Ta(e)?!0:typeof e===n:e!==void 0},Ls=function(e,n,a){var i;for(e=e||[],n=n||",",typeof e=="string"&&(e=e.split(n)),a=a||{},i=e.length;i--;)a[e[i]]={};return a},Ba=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},ju=function(e,n,a){var i=this,s,f,g,b=0;e=/^((static) )?([\w.]+)(:([\w.]+))?/.exec(e);var y=e[3].match(/(^|\.)(\w+)$/i)[2],E=i.createNS(e[3].replace(/\.\w+$/,""),a);if(!E[y]){if(e[2]==="static"){E[y]=n,this.onCreate&&this.onCreate(e[2],e[3],E[y]);return}n[y]||(n[y]=te,b=1),E[y]=n[y],i.extend(E[y].prototype,n),e[5]&&(s=i.resolve(e[5]).prototype,f=e[5].match(/\.(\w+)$/i)[1],g=E[y],b?E[y]=function(){return s[f].apply(this,arguments)}:E[y]=function(){return this.parent=s[f],g.apply(this,arguments)},E[y].prototype[y]=E[y],i.each(s,function(P,R){E[y].prototype[R]=s[R]}),i.each(n,function(P,R){s[R]?E[y].prototype[R]=function(){return this.parent=s[R],P.apply(this,arguments)}:R!==y&&(E[y].prototype[R]=P)})),i.each(n.static,function(P,R){E[y][R]=P})}},Uo=function(e){for(var n=[],a=1;a1)throw console.error("HTML does not have a single root node",e),new Error("HTML must have a single root node");return B(i.childNodes[0])},bo=function(e,n){var a=n||document,i=a.createElement(e);return B(i)},fc=function(e,n){var a=n||document,i=a.createTextNode(e);return B(i)},B=function(e){if(e==null)throw new Error("Node cannot be null or undefined");return{dom:e}},oe=function(e,n,a){return z.from(e.dom.elementFromPoint(n,a)).map(B)},L={fromHtml:Xf,fromTag:bo,fromText:fc,fromDom:B,fromPoint:oe},st=function(e,n){var a=[],i=function(f){return a.push(f),n(f)},s=n(e);do s=s.bind(i);while(s.isSome());return a},Ee=function(e,n,a){return(e.compareDocumentPosition(n)&a)!==0},sr=function(e,n){return Ee(e,n,Node.DOCUMENT_POSITION_CONTAINED_BY)},Da=8,nr=9,ai=11,vu=1,Eo=3,_i=function(e,n){var a=e.dom;if(a.nodeType!==vu)return!1;var i=a;if(i.matches!==void 0)return i.matches(n);if(i.msMatchesSelector!==void 0)return i.msMatchesSelector(n);if(i.webkitMatchesSelector!==void 0)return i.webkitMatchesSelector(n);if(i.mozMatchesSelector!==void 0)return i.mozMatchesSelector(n);throw new Error("Browser lacks native selectors")},ms=function(e){return e.nodeType!==vu&&e.nodeType!==nr&&e.nodeType!==ai||e.childElementCount===0},Yf=function(e,n){var a=n===void 0?document:n.dom;return ms(a)?[]:ke(a.querySelectorAll(e),L.fromDom)},du=function(e,n){var a=n===void 0?document:n.dom;return ms(a)?z.none():z.from(a.querySelector(e)).map(L.fromDom)},xr=function(e,n){return e.dom===n.dom},oi=function(e,n){var a=e.dom,i=n.dom;return a===i?!1:a.contains(i)},Nc=function(e,n){return sr(e.dom,n.dom)},ia=function(e,n){return la().browser.isIE()?Nc(e,n):oi(e,n)};typeof window!="undefined"||Function("return this;")();var Na=function(e){var n=e.dom.nodeName;return n.toLowerCase()},Im=function(e){return e.dom.nodeType},Xo=function(e){return function(n){return Im(n)===e}},yd=function(e){return Im(e)===Da||Na(e)==="#comment"},$e=Xo(vu),Ao=Xo(Eo),vc=Xo(nr),dl=Xo(ai),Eu=function(e){return L.fromDom(e.dom.ownerDocument)},fa=function(e){return vc(e)?e:Eu(e)},no=function(e){return L.fromDom(fa(e).dom.documentElement)},Mo=function(e){return L.fromDom(fa(e).dom.defaultView)},ii=function(e){return z.from(e.dom.parentNode).map(L.fromDom)},qu=function(e,n){for(var a=kt(n)?n:hn,i=e.dom,s=[];i.parentNode!==null&&i.parentNode!==void 0;){var f=i.parentNode,g=L.fromDom(f);if(s.push(g),a(g)===!0)break;i=f}return s},Co=function(e){var n=function(a){return St(a,function(i){return!xr(e,i)})};return ii(e).map(Yo).map(n).getOr([])},Zt=function(e){return z.from(e.dom.previousSibling).map(L.fromDom)},gs=function(e){return z.from(e.dom.nextSibling).map(L.fromDom)},hs=function(e){return Kt(st(e,Zt))},ml=function(e){return st(e,gs)},Yo=function(e){return ke(e.dom.childNodes,L.fromDom)},Oo=function(e,n){var a=e.dom.childNodes;return z.from(a[n]).map(L.fromDom)},_n=function(e){return Oo(e,0)},ps=function(e){return Oo(e,e.dom.childNodes.length-1)},zm=function(e){return e.dom.childNodes.length},Hs=function(e){var n=e.dom.head;if(n==null)throw new Error("Head is not available yet");return L.fromDom(n)},Gu=function(e){return dl(e)&&ut(e.dom.host)},Lm=kt(Element.prototype.attachShadow)&&kt(Node.prototype.getRootNode),bs=We(Lm),Au=Lm?function(e){return L.fromDom(e.dom.getRootNode())}:fa,wd=function(e){return Gu(e)?e:Hs(fa(e))},Hm=function(e){var n=Au(e);return Gu(n)?z.some(n):z.none()},Cd=function(e){return L.fromDom(e.dom.host)},Ql=function(e){if(bs()&&ut(e.target)){var n=L.fromDom(e.target);if($e(n)&&Vm(n)&&e.composed&&e.composedPath){var a=e.composedPath();if(a)return lt(a)}}return z.from(e.target)},Vm=function(e){return ut(e.dom.shadowRoot)},Ya=function(e,n){var a=ii(e);a.each(function(i){i.dom.insertBefore(n.dom,e.dom)})},Vs=function(e,n){var a=gs(e);a.fold(function(){var i=ii(e);i.each(function(s){Jo(s,n)})},function(i){Ya(i,n)})},Oh=function(e,n){var a=_n(e);a.fold(function(){Jo(e,n)},function(i){e.dom.insertBefore(n.dom,i.dom)})},Jo=function(e,n){e.dom.appendChild(n.dom)},dc=function(e,n){Ya(e,n),Jo(n,e)},ys=function(e,n){he(n,function(a){Ya(e,a)})},io=function(e,n){he(n,function(a){Jo(e,a)})},ef=function(e){e.dom.textContent="",he(Yo(e),function(n){Zo(n)})},Zo=function(e){var n=e.dom;n.parentNode!==null&&n.parentNode.removeChild(n)},xd=function(e){var n=Yo(e);n.length>0&&ys(e,n),Zo(e)},gl=function(e){var n=Ao(e)?e.dom.parentNode:e.dom;if(n==null||n.ownerDocument===null)return!1;var a=n.ownerDocument;return Hm(L.fromDom(n)).fold(function(){return a.body.contains(n)},q(gl,Cd))},Jf=function(e,n){var a=function(i,s){return Jf(e+i,n+s)};return{left:e,top:n,translate:a}},hl=Jf,Sd=function(e){var n=e.getBoundingClientRect();return hl(n.left,n.top)},Mc=function(e,n){return e!==void 0?e:n!==void 0?n:0},Zf=function(e){var n=e.dom.ownerDocument,a=n.body,i=n.defaultView,s=n.documentElement;if(a===e.dom)return hl(a.offsetLeft,a.offsetTop);var f=Mc(i==null?void 0:i.pageYOffset,s.scrollTop),g=Mc(i==null?void 0:i.pageXOffset,s.scrollLeft),b=Mc(s.clientTop,a.clientTop),y=Mc(s.clientLeft,a.clientLeft);return Qf(e).translate(g-y,f-b)},Qf=function(e){var n=e.dom,a=n.ownerDocument,i=a.body;return i===n?hl(i.offsetLeft,i.offsetTop):gl(e)?Sd(n):hl(0,0)},ev=function(e){var n=e!==void 0?e.dom:document,a=n.body.scrollLeft||n.documentElement.scrollLeft,i=n.body.scrollTop||n.documentElement.scrollTop;return hl(a,i)},Ou=function(e,n,a){var i=a!==void 0?a.dom:document,s=i.defaultView;s&&s.scrollTo(e,n)},Wi=function(e,n){var a=la().browser.isSafari();a&&kt(e.dom.scrollIntoViewIfNeeded)?e.dom.scrollIntoViewIfNeeded(!1):e.dom.scrollIntoView(n)},Du=function(e){var n=e===void 0?window:e;return z.from(n.visualViewport)},Bi=function(e,n,a,i){return{x:e,y:n,width:a,height:i,right:e+a,bottom:n+i}},tf=function(e){var n=e===void 0?window:e,a=n.document,i=ev(L.fromDom(a));return Du(n).fold(function(){var s=n.document.documentElement,f=s.clientWidth,g=s.clientHeight;return Bi(i.left,i.top,f,g)},function(s){return Bi(Math.max(s.pageLeft,i.left),Math.max(s.pageTop,i.top),s.width,s.height)})},Fc=function(e){return function(n){return!!n&&n.nodeType===e}},ws=function(e){return!!e&&!Object.getPrototypeOf(e)},Hr=Fc(1),Ku=function(e){var n=e.map(function(a){return a.toLowerCase()});return function(a){if(a&&a.nodeName){var i=a.nodeName.toLowerCase();return Ue(n,i)}return!1}},pl=function(e,n){var a=n.toLowerCase().split(" ");return function(i){var s,f;if(Hr(i))for(s=0;s0})},rf=function(e){var n={},a=e.dom;if(ji(a))for(var i=0;i1)for(var nn=1;nn=0&&(Q._idleTimeoutId=setTimeout(function(){Q._onTimeout&&Q._onTimeout()},G))},g.setImmediate=typeof b=="function"?b:function(Q){var G=X++,me=arguments.length<2?!1:R.call(arguments,1);return N[G]=!0,E(function(){N[G]&&(me?Q.apply(null,me):Q.call(null),g.clearImmediate(G))}),G},g.clearImmediate=typeof y=="function"?y:function(Q){delete N[Q]}}).call(this,s("timers").setImmediate,s("timers").clearImmediate)},{"process/browser.js":1,timers:3}],4:[function(s,f,g){var b=s("promise-polyfill"),y=function(){return typeof window!="undefined"?window:Function("return this;")()}();f.exports={boltExport:y.Promise||b}},{"promise-polyfill":2}]},{},[4])(4)})})(void 0,wl,Cl,void 0);var Wm=Cl.exports.boltExport,Od=function(e){var n=z.none(),a=[],i=function(E){return Od(function(P){s(function(R){P(E(R))})})},s=function(E){g()?y(E):a.push(E)},f=function(E){g()||(n=z.some(E),b(a),a=[])},g=function(){return n.isSome()},b=function(E){he(E,y)},y=function(E){n.each(function(P){setTimeout(function(){E(P)},0)})};return e(f),{get:s,map:i,isReady:g}},Qx=function(e){return Od(function(n){n(e)})},Dd={nu:Od,pure:Qx},jm=function(e){setTimeout(function(){throw e},0)},$c=function(e){var n=function(y){e().then(y,jm)},a=function(y){return $c(function(){return e().then(y)})},i=function(y){return $c(function(){return e().then(function(E){return y(E).toPromise()})})},s=function(y){return $c(function(){return e().then(function(){return y.toPromise()})})},f=function(){return Dd.nu(n)},g=function(){var y=null;return $c(function(){return y===null&&(y=e()),y})},b=e;return{map:a,bind:i,anonBind:s,toLazy:f,toCached:g,toPromise:b,get:n}},H1=function(e){return $c(function(){return new Wm(e)})},eS=function(e){return $c(function(){return Wm.resolve(e)})},xo={nu:H1,pure:eS},Jy=function(e,n){return n(function(a){var i=[],s=0,f=function(g){return function(b){i[g]=b,s++,s>=e.length&&a(i)}};e.length===0?a([]):he(e,function(g,b){g.get(f(b))})})},Ic=function(e){return Jy(e,xo.nu)},af=function(e){var n=function(N){return e===N},a=function(N){return af(e)},i=function(N){return af(e)},s=function(N){return af(N(e))},f=function(N){return af(e)},g=function(N){N(e)},b=function(N){return N(e)},y=function(N,X){return X(e)},E=function(N){return N(e)},P=function(N){return N(e)},R=function(){return z.some(e)};return{is:n,isValue:an,isError:hn,getOr:We(e),getOrThunk:We(e),getOrDie:We(e),or:a,orThunk:i,fold:y,map:s,mapError:f,each:g,bind:b,exists:E,forall:P,toOptional:R}},xl=function(e){var n=function(E){return E()},a=function(){return S(String(e))()},i=function(E){return E},s=function(E){return E()},f=function(E){return xl(e)},g=function(E){return xl(E(e))},b=function(E){return xl(e)},y=function(E,P){return E(e)};return{is:hn,isValue:hn,isError:an,getOr:dn,getOrThunk:n,getOrDie:a,or:i,orThunk:s,fold:y,map:f,mapError:g,each:te,bind:b,exists:hn,forall:an,toOptional:z.none}},zc=function(e,n){return e.fold(function(){return xl(n)},af)},ru={value:af,error:xl,fromOption:zc},qm=function(e){if(!mt(e))throw new Error("cases must be an array");if(e.length===0)throw new Error("there must be at least one case");var n=[],a={};return he(e,function(i,s){var f=Pr(i);if(f.length!==1)throw new Error("one and only one name per case");var g=f[0],b=i[g];if(a[g]!==void 0)throw new Error("duplicate key detected:"+g);if(g==="cata")throw new Error("cannot have a case named cata (sorry)");if(!mt(b))throw new Error("case arguments must be an array");n.push(g),a[g]=function(){for(var y=[],E=0;E0?fe(Te.fail.map(Zy)):me(Te.pass.map(Zy))})},J=function(G){var me=dt._addCacheSuffix(G);Nr(i,me).each(function(fe){var be=--fe.count;be===0&&(delete i[me],E(fe.id))})},Q=function(G){he(G,function(me){J(me)})};return{load:R,loadAll:X,unload:J,unloadAll:Q,_setReferrerPolicy:b}},av=function(){var e=new WeakMap,n=function(a,i){var s=Au(a),f=s.dom;return z.from(e.get(f)).getOrThunk(function(){var g=Sr(f,i);return e.set(f,g),g})};return{forElement:n}},Xm=av(),jo=function(){function e(n,a){this.node=n,this.rootNode=a,this.current=this.current.bind(this),this.next=this.next.bind(this),this.prev=this.prev.bind(this),this.prev2=this.prev2.bind(this)}return e.prototype.current=function(){return this.node},e.prototype.next=function(n){return this.node=this.findSibling(this.node,"firstChild","nextSibling",n),this.node},e.prototype.prev=function(n){return this.node=this.findSibling(this.node,"lastChild","previousSibling",n),this.node},e.prototype.prev2=function(n){return this.node=this.findPreviousNode(this.node,"lastChild","previousSibling",n),this.node},e.prototype.findSibling=function(n,a,i,s){var f,g;if(n){if(!s&&n[a])return n[a];if(n!==this.rootNode){if(f=n[i],f)return f;for(g=n.parentNode;g&&g!==this.rootNode;g=g.parentNode)if(f=g[i],f)return f}}},e.prototype.findPreviousNode=function(n,a,i,s){var f,g,b;if(n){if(f=n[i],this.rootNode&&f===this.rootNode)return;if(f){if(!s){for(b=f[a];b;b=b[a])if(!b[a])return b}return f}if(g=n.parentNode,g&&g!==this.rootNode)return g}},e}(),V1=["article","aside","details","div","dt","figcaption","footer","form","fieldset","header","hgroup","html","main","nav","section","summary","body","p","dl","multicol","dd","figure","address","center","blockquote","h1","h2","h3","h4","h5","h6","listing","xmp","pre","plaintext","menu","dir","ul","ol","li","hr","table","tbody","thead","tfoot","th","tr","td","caption"],ma=["td","th"],Nh=["thead","tbody","tfoot"],U1=["h1","h2","h3","h4","h5","h6","p","div","address","pre","form","blockquote","center","dir","fieldset","header","footer","article","section","hgroup","aside","nav","figure"],W1=["h1","h2","h3","h4","h5","h6"],_t=["li","dd","dt"],j1=["ul","ol","dl"],tw=["pre","script","textarea","style"],gc=function(e){var n;return function(a){return n=n||Nn(e,an),n.hasOwnProperty(Na(a))}},nw=gc(W1),Gi=gc(V1),Mh=function(e){return Na(e)==="table"},Lc=function(e){return $e(e)&&!Gi(e)},Yu=function(e){return $e(e)&&Na(e)==="br"},ov=gc(U1),so=gc(j1),au=gc(_t),nS=gc(Nh),Ss=gc(ma),Ju=gc(tw),rw=function(e,n,a){return uf(e,n,a).isSome()},iv="\uFEFF",ui="\xA0",uv=function(e){return e===iv},q1=function(e){return e.replace(/\uFEFF/g,"")},Pi=iv,Ts=uv,ks=q1,G1=Hr,hc=M,wi=function(e){return hc(e)&&(e=e.parentNode),G1(e)&&e.hasAttribute("data-mce-caret")},Bd=function(e){return hc(e)&&Ts(e.data)},gu=function(e){return wi(e)||Bd(e)},Ym=function(e){return e.firstChild!==e.lastChild||!Dt(e.firstChild)},pc=function(e,n){var a,i=e.ownerDocument,s=i.createTextNode(Pi),f=e.parentNode;if(n){if(a=e.previousSibling,hc(a)){if(gu(a))return a;if(qo(a))return a.splitText(a.data.length-1)}f.insertBefore(s,e)}else{if(a=e.nextSibling,hc(a)){if(gu(a))return a;if(Fh(a))return a.splitText(1),a}e.nextSibling?f.insertBefore(s,e.nextSibling):f.appendChild(s)}return s},Jm=function(e){var n=e.container();return M(n)?n.data.charAt(e.offset())===Pi||e.isAtStart()&&Bd(n.previousSibling):!1},K1=function(e){var n=e.container();return M(n)?n.data.charAt(e.offset()-1)===Pi||e.isAtEnd()&&Bd(n.nextSibling):!1},X1=function(){var e=document.createElement("br");return e.setAttribute("data-mce-bogus","1"),e},Y1=function(e,n,a){var i=n.ownerDocument,s=i.createElement(e);s.setAttribute("data-mce-caret",a?"before":"after"),s.setAttribute("data-mce-bogus","all"),s.appendChild(X1());var f=n.parentNode;return a?f.insertBefore(s,n):n.nextSibling?f.insertBefore(s,n.nextSibling):f.appendChild(s),s},Fh=function(e){return hc(e)&&e.data[0]===Pi},qo=function(e){return hc(e)&&e.data[e.data.length-1]===Pi},$h=function(e){var n=e.getElementsByTagName("br"),a=n[n.length-1];bl(a)&&a.parentNode.removeChild(a)},J1=function(e){return e&&e.hasAttribute("data-mce-caret")?($h(e),e.removeAttribute("data-mce-caret"),e.removeAttribute("data-mce-bogus"),e.removeAttribute("style"),e.removeAttribute("_moz_abspos"),e):null},aw=function(e){return wi(e.startContainer)},Ih=Rr,zh=_r,Z1=Dt,Lh=M,ow=Ku(["script","style","textarea"]),Q1=Ku(["img","input","textarea","hr","iframe","video","audio","object","embed"]),_u=Ku(["table"]),rS=gu,Hc=function(e){return rS(e)?!1:Lh(e)?!ow(e.parentNode):Q1(e)||Z1(e)||_u(e)||Zm(e)},iw=function(e){return Hr(e)&&e.getAttribute("unselectable")==="true"},Zm=function(e){return iw(e)===!1&&zh(e)},sf=function(e,n){for(e=e.parentNode;e&&e!==n;e=e.parentNode){if(Zm(e))return!1;if(Ih(e))return!0}return!0},sv=function(e){return Zm(e)?Rn(or(e.getElementsByTagName("*")),function(n,a){return n||Ih(a)},!1)!==!0:!1},uw=function(e){return Q1(e)||sv(e)},Rd=function(e,n){return Hc(e)&&sf(e,n)},Qm=/^[ \t\r\n]*$/,cv=function(e){return Qm.test(e)},sw=function(e,n){var a=L.fromDom(n),i=L.fromDom(e);return rw(i,"pre,code",Xe(xr,a))},ga=function(e,n){return M(e)&&cv(e.data)&&sw(e,n)===!1},cw=function(e){return Hr(e)&&e.nodeName==="A"&&!e.hasAttribute("href")&&(e.hasAttribute("name")||e.hasAttribute("id"))},Ci=function(e,n){return Hc(e)&&ga(e,n)===!1||cw(e)||lv(e)},lv=Td("data-mce-bookmark"),lw=Td("data-mce-bogus"),Bu=I1("data-mce-bogus","all"),aS=function(e,n){var a,i=0;if(Ci(e,e))return!1;if(a=e.firstChild,!a)return!0;var s=new jo(a,e);do{if(n){if(Bu(a)){a=s.next(!0);continue}if(lw(a)){a=s.next();continue}}if(Dt(a)){i++,a=s.next();continue}if(Ci(a,e))return!1;a=s.next()}while(a);return i<=1},Zu=function(e,n){return n===void 0&&(n=!0),aS(e.dom,n)},oS=function(e){return e.nodeName.toLowerCase()==="span"},El=function(e,n){return ut(e)&&(Ci(e,n)||Lc(L.fromDom(e)))},iS=function(e,n){var a=new jo(e,n).prev(!1),i=new jo(e,n).next(!1),s=yr(a)||El(a,n),f=yr(i)||El(i,n);return s&&f},eb=function(e){return oS(e)&&e.getAttribute("data-mce-type")==="bookmark"},fw=function(e,n){return M(e)&&e.data.length>0&&iS(e,n)},vw=function(e){return Hr(e)?e.childNodes.length>0:!1},Qn=function(e){return He(e)||ge(e)},tb=function(e,n,a){var i=a||n;if(Hr(n)&&eb(n))return n;for(var s=n.childNodes,f=s.length-1;f>=0;f--)tb(e,s[f],i);if(Hr(n)){var g=n.childNodes;g.length===1&&eb(g[0])&&n.parentNode.insertBefore(g[0],n)}return!Qn(n)&&!Ci(n,i)&&!vw(n)&&!fw(n,i)&&e.remove(n),n},dw=dt.makeMap,Hh=/[&<>\"\u0060\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,fv=/[<>&\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,nb=/[<>&\"\']/g,Vh=/&#([a-z0-9]+);?|&([a-z0-9]+);/gi,eg={128:"\u20AC",130:"\u201A",131:"\u0192",132:"\u201E",133:"\u2026",134:"\u2020",135:"\u2021",136:"\u02C6",137:"\u2030",138:"\u0160",139:"\u2039",140:"\u0152",142:"\u017D",145:"\u2018",146:"\u2019",147:"\u201C",148:"\u201D",149:"\u2022",150:"\u2013",151:"\u2014",152:"\u02DC",153:"\u2122",154:"\u0161",155:"\u203A",156:"\u0153",158:"\u017E",159:"\u0178"},bc={'"':""","'":"'","<":"<",">":">","&":"&","`":"`"},rb={"<":"<",">":">","&":"&",""":'"',"'":"'"},tg=function(e){var n=L.fromTag("div").dom;return n.innerHTML=e,n.textContent||n.innerText||e},mw=function(e,n){var a,i,s,f={};if(e){for(e=e.split(","),n=n||10,a=0;a1?"&#"+((a.charCodeAt(0)-55296)*1024+(a.charCodeAt(1)-56320)+65536)+";":bc[a]||"&#"+a.charCodeAt(0)+";"})},Pd=function(e,n,a){return a=a||ab,e.replace(n?Hh:fv,function(i){return bc[i]||a[i]||i})},gw=function(e,n){var a=mw(n)||ab,i=function(g,b){return g.replace(b?Hh:fv,function(y){return bc[y]!==void 0?bc[y]:a[y]!==void 0?a[y]:y.length>1?"&#"+((y.charCodeAt(0)-55296)*1024+(y.charCodeAt(1)-56320)+65536)+";":"&#"+y.charCodeAt(0)+";"})},s=function(g,b){return Pd(g,b,a)},f=dw(e.replace(/\+/g,","));return f.named&&f.numeric?i:f.named?n?s:Pd:f.numeric?ob:hu},uS=function(e){return e.replace(Vh,function(n,a){return a?(a.charAt(0).toLowerCase()==="x"?a=parseInt(a.substr(1),16):a=parseInt(a,10),a>65535?(a-=65536,String.fromCharCode(55296+(a>>10),56320+(a&1023))):eg[a]||String.fromCharCode(a)):rb[n]||ab[n]||tg(n)})},Ru={encodeRaw:hu,encodeAllRaw:Uh,encodeNumeric:ob,encodeNamed:Pd,getEncodeFunc:gw,decode:uS},Ki={},Es={},Nd=dt.makeMap,ou=dt.each,ib=dt.extend,ub=dt.explode,Ws=dt.inArray,xi=function(e,n){return e=dt.trim(e),e?e.split(n||" "):[]},cf=function(e){var n={},a,i,s,f,g,b,y=function(P,R,N){var X,J,Q,G=function(fe,be){var Te={},Ve,Tt;for(Ve=0,Tt=fe.length;Ve
  • ",c=r.anchor;o&&o.transformLink&&(c=o.transformLink(c));let l=r.text?o.format(r.text,n,c):null;return e+=c?`${l}`:l||"",e+(r.children.length>0?p(r,o,n):"")+"