lazy-bee 1.0.7 → 1.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/src/lazy-bee.js DELETED
@@ -1,3350 +0,0 @@
1
- (function(){"use strict";try{if(typeof document<"u"){var n=document.createElement("style");n.appendChild(document.createTextNode(':root,:host{--van-black: #000;--van-white: #fff;--van-gray-1: #f7f8fa;--van-gray-2: #f2f3f5;--van-gray-3: #ebedf0;--van-gray-4: #dcdee0;--van-gray-5: #c8c9cc;--van-gray-6: #969799;--van-gray-7: #646566;--van-gray-8: #323233;--van-red: #ee0a24;--van-blue: #1989fa;--van-orange: #ff976a;--van-orange-dark: #ed6a0c;--van-orange-light: #fffbe8;--van-green: #07c160;--van-gradient-red: linear-gradient(to right, #ff6034, #ee0a24);--van-gradient-orange: linear-gradient(to right, #ffd01e, #ff8917);--van-primary-color: var(--van-blue);--van-success-color: var(--van-green);--van-danger-color: var(--van-red);--van-warning-color: var(--van-orange);--van-text-color: var(--van-gray-8);--van-text-color-2: var(--van-gray-6);--van-text-color-3: var(--van-gray-5);--van-active-color: var(--van-gray-2);--van-active-opacity: .6;--van-disabled-opacity: .5;--van-background: var(--van-gray-1);--van-background-2: var(--van-white);--van-background-3: var(--van-white);--van-padding-base: 4px;--van-padding-xs: 8px;--van-padding-sm: 12px;--van-padding-md: 16px;--van-padding-lg: 24px;--van-padding-xl: 32px;--van-font-bold: 600;--van-font-size-xs: 10px;--van-font-size-sm: 12px;--van-font-size-md: 14px;--van-font-size-lg: 16px;--van-line-height-xs: 14px;--van-line-height-sm: 18px;--van-line-height-md: 20px;--van-line-height-lg: 22px;--van-base-font: -apple-system, BlinkMacSystemFont, "Helvetica Neue", Helvetica, Segoe UI, Arial, Roboto, "PingFang SC", "miui", "Hiragino Sans GB", "Microsoft Yahei", sans-serif;--van-price-font: avenir-heavy, "PingFang SC", helvetica neue, arial, sans-serif;--van-duration-base: .3s;--van-duration-fast: .2s;--van-ease-out: ease-out;--van-ease-in: ease-in;--van-border-color: var(--van-gray-3);--van-border-width: 1px;--van-radius-sm: 2px;--van-radius-md: 4px;--van-radius-lg: 8px;--van-radius-max: 999px}.van-theme-dark{--van-text-color: #f5f5f5;--van-text-color-2: #707070;--van-text-color-3: #4d4d4d;--van-border-color: #3a3a3c;--van-active-color: #3a3a3c;--van-background: #000;--van-background-2: #1c1c1e;--van-background-3: #37363b}html{-webkit-tap-highlight-color:transparent}body{margin:0;font-family:var(--van-base-font)}a{text-decoration:none}input,button,textarea{color:inherit;font:inherit}a:focus,input:focus,button:focus,textarea:focus,[class*=van-]:focus{outline:none}ol,ul{margin:0;padding:0;list-style:none}@keyframes van-slide-up-enter{0%{transform:translate3d(0,100%,0)}}@keyframes van-slide-up-leave{to{transform:translate3d(0,100%,0)}}@keyframes van-slide-down-enter{0%{transform:translate3d(0,-100%,0)}}@keyframes van-slide-down-leave{to{transform:translate3d(0,-100%,0)}}@keyframes van-slide-left-enter{0%{transform:translate3d(-100%,0,0)}}@keyframes van-slide-left-leave{to{transform:translate3d(-100%,0,0)}}@keyframes van-slide-right-enter{0%{transform:translate3d(100%,0,0)}}@keyframes van-slide-right-leave{to{transform:translate3d(100%,0,0)}}@keyframes van-fade-in{0%{opacity:0}to{opacity:1}}@keyframes van-fade-out{0%{opacity:1}to{opacity:0}}@keyframes van-rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.van-fade-enter-active{animation:var(--van-duration-base) van-fade-in both var(--van-ease-out)}.van-fade-leave-active{animation:var(--van-duration-base) van-fade-out both var(--van-ease-in)}.van-slide-up-enter-active{animation:van-slide-up-enter var(--van-duration-base) both var(--van-ease-out)}.van-slide-up-leave-active{animation:van-slide-up-leave var(--van-duration-base) both var(--van-ease-in)}.van-slide-down-enter-active{animation:van-slide-down-enter var(--van-duration-base) both var(--van-ease-out)}.van-slide-down-leave-active{animation:van-slide-down-leave var(--van-duration-base) both var(--van-ease-in)}.van-slide-left-enter-active{animation:van-slide-left-enter var(--van-duration-base) both var(--van-ease-out)}.van-slide-left-leave-active{animation:van-slide-left-leave var(--van-duration-base) both var(--van-ease-in)}.van-slide-right-enter-active{animation:van-slide-right-enter var(--van-duration-base) both var(--van-ease-out)}.van-slide-right-leave-active{animation:van-slide-right-leave var(--van-duration-base) both var(--van-ease-in)}.van-clearfix:after{display:table;clear:both;content:""}.van-ellipsis{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.van-multi-ellipsis--l2{display:-webkit-box;overflow:hidden;text-overflow:ellipsis;-webkit-line-clamp:2;line-break:anywhere;-webkit-box-orient:vertical}.van-multi-ellipsis--l3{display:-webkit-box;overflow:hidden;text-overflow:ellipsis;-webkit-line-clamp:3;line-break:anywhere;-webkit-box-orient:vertical}.van-safe-area-top{padding-top:constant(safe-area-inset-top);padding-top:env(safe-area-inset-top)}.van-safe-area-bottom{padding-bottom:constant(safe-area-inset-bottom);padding-bottom:env(safe-area-inset-bottom)}.van-haptics-feedback{cursor:pointer}.van-haptics-feedback:active{opacity:var(--van-active-opacity)}[class*=van-hairline]:after{position:absolute;box-sizing:border-box;content:" ";pointer-events:none;top:-50%;right:-50%;bottom:-50%;left:-50%;border:0 solid var(--van-border-color);transform:scale(.5)}.van-hairline,.van-hairline--top,.van-hairline--left,.van-hairline--right,.van-hairline--bottom,.van-hairline--surround,.van-hairline--top-bottom{position:relative}.van-hairline--top:after{border-top-width:var(--van-border-width)}.van-hairline--left:after{border-left-width:var(--van-border-width)}.van-hairline--right:after{border-right-width:var(--van-border-width)}.van-hairline--bottom:after{border-bottom-width:var(--van-border-width)}.van-hairline--top-bottom:after,.van-hairline-unset--top-bottom:after{border-width:var(--van-border-width) 0}.van-hairline--surround:after{border-width:var(--van-border-width)}:root,:host{--van-badge-size: 16px;--van-badge-color: var(--van-white);--van-badge-padding: 0 3px;--van-badge-font-size: var(--van-font-size-sm);--van-badge-font-weight: var(--van-font-bold);--van-badge-border-width: var(--van-border-width);--van-badge-background: var(--van-danger-color);--van-badge-dot-color: var(--van-danger-color);--van-badge-dot-size: 8px;--van-badge-font: -apple-system-font, helvetica neue, arial, sans-serif}.van-badge{display:inline-block;box-sizing:border-box;min-width:var(--van-badge-size);padding:var(--van-badge-padding);color:var(--van-badge-color);font-weight:var(--van-badge-font-weight);font-size:var(--van-badge-font-size);font-family:var(--van-badge-font);line-height:1.2;text-align:center;background:var(--van-badge-background);border:var(--van-badge-border-width) solid var(--van-background-2);border-radius:var(--van-radius-max)}.van-badge--fixed{position:absolute;transform-origin:100%}.van-badge--top-left{top:0;left:0;transform:translate(-50%,-50%)}.van-badge--top-right{top:0;right:0;transform:translate(50%,-50%)}.van-badge--bottom-left{bottom:0;left:0;transform:translate(-50%,50%)}.van-badge--bottom-right{bottom:0;right:0;transform:translate(50%,50%)}.van-badge--dot{width:var(--van-badge-dot-size);min-width:0;height:var(--van-badge-dot-size);background:var(--van-badge-dot-color);border-radius:100%;border:none;padding:0}.van-badge__wrapper{position:relative;display:inline-block}.van-icon{position:relative;display:inline-block;font:14px/1 vant-icon;font:normal normal normal 14px/1 var(--van-icon-font-family, "vant-icon");font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased}.van-icon:before{display:inline-block}.van-icon-arrow-double-left:before{content:""}.van-icon-arrow-double-right:before{content:""}.van-icon-contact:before{content:""}.van-icon-notes:before{content:""}.van-icon-records:before{content:""}.van-icon-cash-back-record:before{content:""}.van-icon-newspaper:before{content:""}.van-icon-discount:before{content:""}.van-icon-completed:before{content:""}.van-icon-user:before{content:""}.van-icon-description:before{content:""}.van-icon-list-switch:before{content:""}.van-icon-list-switching:before{content:""}.van-icon-link-o:before{content:""}.van-icon-miniprogram-o:before{content:""}.van-icon-qq:before{content:""}.van-icon-wechat-moments:before{content:""}.van-icon-weibo:before{content:""}.van-icon-cash-o:before{content:""}.van-icon-guide-o:before{content:""}.van-icon-invitation:before{content:""}.van-icon-shield-o:before{content:""}.van-icon-exchange:before{content:""}.van-icon-eye:before{content:""}.van-icon-enlarge:before{content:""}.van-icon-expand-o:before{content:""}.van-icon-eye-o:before{content:""}.van-icon-expand:before{content:""}.van-icon-filter-o:before{content:""}.van-icon-fire:before{content:""}.van-icon-fail:before{content:""}.van-icon-failure:before{content:""}.van-icon-fire-o:before{content:""}.van-icon-flag-o:before{content:""}.van-icon-font:before{content:""}.van-icon-font-o:before{content:""}.van-icon-gem-o:before{content:""}.van-icon-flower-o:before{content:""}.van-icon-gem:before{content:""}.van-icon-gift-card:before{content:""}.van-icon-friends:before{content:""}.van-icon-friends-o:before{content:""}.van-icon-gold-coin:before{content:""}.van-icon-gold-coin-o:before{content:""}.van-icon-good-job-o:before{content:""}.van-icon-gift:before{content:""}.van-icon-gift-o:before{content:""}.van-icon-gift-card-o:before{content:""}.van-icon-good-job:before{content:""}.van-icon-home-o:before{content:""}.van-icon-goods-collect:before{content:""}.van-icon-graphic:before{content:""}.van-icon-goods-collect-o:before{content:""}.van-icon-hot-o:before{content:""}.van-icon-info:before{content:""}.van-icon-hotel-o:before{content:""}.van-icon-info-o:before{content:""}.van-icon-hot-sale-o:before{content:""}.van-icon-hot:before{content:""}.van-icon-like:before{content:""}.van-icon-idcard:before{content:""}.van-icon-like-o:before{content:""}.van-icon-hot-sale:before{content:""}.van-icon-location-o:before{content:""}.van-icon-location:before{content:""}.van-icon-label:before{content:""}.van-icon-lock:before{content:""}.van-icon-label-o:before{content:""}.van-icon-map-marked:before{content:""}.van-icon-logistics:before{content:""}.van-icon-manager:before{content:""}.van-icon-more:before{content:""}.van-icon-live:before{content:""}.van-icon-manager-o:before{content:""}.van-icon-medal:before{content:""}.van-icon-more-o:before{content:""}.van-icon-music-o:before{content:""}.van-icon-music:before{content:""}.van-icon-new-arrival-o:before{content:""}.van-icon-medal-o:before{content:""}.van-icon-new-o:before{content:""}.van-icon-free-postage:before{content:""}.van-icon-newspaper-o:before{content:""}.van-icon-new-arrival:before{content:""}.van-icon-minus:before{content:""}.van-icon-orders-o:before{content:""}.van-icon-new:before{content:""}.van-icon-paid:before{content:""}.van-icon-notes-o:before{content:""}.van-icon-other-pay:before{content:""}.van-icon-pause-circle:before{content:""}.van-icon-pause:before{content:""}.van-icon-pause-circle-o:before{content:""}.van-icon-peer-pay:before{content:""}.van-icon-pending-payment:before{content:""}.van-icon-passed:before{content:""}.van-icon-plus:before{content:""}.van-icon-phone-circle-o:before{content:""}.van-icon-phone-o:before{content:""}.van-icon-printer:before{content:""}.van-icon-photo-fail:before{content:""}.van-icon-phone:before{content:""}.van-icon-photo-o:before{content:""}.van-icon-play-circle:before{content:""}.van-icon-play:before{content:""}.van-icon-phone-circle:before{content:""}.van-icon-point-gift-o:before{content:""}.van-icon-point-gift:before{content:""}.van-icon-play-circle-o:before{content:""}.van-icon-shrink:before{content:""}.van-icon-photo:before{content:""}.van-icon-qr:before{content:""}.van-icon-qr-invalid:before{content:""}.van-icon-question-o:before{content:""}.van-icon-revoke:before{content:""}.van-icon-replay:before{content:""}.van-icon-service:before{content:""}.van-icon-question:before{content:""}.van-icon-search:before{content:""}.van-icon-refund-o:before{content:""}.van-icon-service-o:before{content:""}.van-icon-scan:before{content:""}.van-icon-share:before{content:""}.van-icon-send-gift-o:before{content:""}.van-icon-share-o:before{content:""}.van-icon-setting:before{content:""}.van-icon-points:before{content:""}.van-icon-photograph:before{content:""}.van-icon-shop:before{content:""}.van-icon-shop-o:before{content:""}.van-icon-shop-collect-o:before{content:""}.van-icon-shop-collect:before{content:""}.van-icon-smile:before{content:""}.van-icon-shopping-cart-o:before{content:""}.van-icon-sign:before{content:""}.van-icon-sort:before{content:""}.van-icon-star-o:before{content:""}.van-icon-smile-comment-o:before{content:""}.van-icon-stop:before{content:""}.van-icon-stop-circle-o:before{content:""}.van-icon-smile-o:before{content:""}.van-icon-star:before{content:""}.van-icon-success:before{content:""}.van-icon-stop-circle:before{content:""}.van-icon-records-o:before{content:""}.van-icon-shopping-cart:before{content:""}.van-icon-tosend:before{content:""}.van-icon-todo-list:before{content:""}.van-icon-thumb-circle-o:before{content:""}.van-icon-thumb-circle:before{content:""}.van-icon-umbrella-circle:before{content:""}.van-icon-underway:before{content:""}.van-icon-upgrade:before{content:""}.van-icon-todo-list-o:before{content:""}.van-icon-tv-o:before{content:""}.van-icon-underway-o:before{content:""}.van-icon-user-o:before{content:""}.van-icon-vip-card-o:before{content:""}.van-icon-vip-card:before{content:""}.van-icon-send-gift:before{content:""}.van-icon-wap-home:before{content:""}.van-icon-wap-nav:before{content:""}.van-icon-volume-o:before{content:""}.van-icon-video:before{content:""}.van-icon-wap-home-o:before{content:""}.van-icon-volume:before{content:""}.van-icon-warning:before{content:""}.van-icon-weapp-nav:before{content:""}.van-icon-wechat-pay:before{content:""}.van-icon-warning-o:before{content:""}.van-icon-wechat:before{content:""}.van-icon-setting-o:before{content:""}.van-icon-youzan-shield:before{content:""}.van-icon-warn-o:before{content:""}.van-icon-smile-comment:before{content:""}.van-icon-user-circle-o:before{content:""}.van-icon-video-o:before{content:""}.van-icon-add-square:before{content:""}.van-icon-add:before{content:""}.van-icon-arrow-down:before{content:""}.van-icon-arrow-up:before{content:""}.van-icon-arrow:before{content:""}.van-icon-after-sale:before{content:""}.van-icon-add-o:before{content:""}.van-icon-alipay:before{content:""}.van-icon-ascending:before{content:""}.van-icon-apps-o:before{content:""}.van-icon-aim:before{content:""}.van-icon-award:before{content:""}.van-icon-arrow-left:before{content:""}.van-icon-award-o:before{content:""}.van-icon-audio:before{content:""}.van-icon-bag-o:before{content:""}.van-icon-balance-list:before{content:""}.van-icon-back-top:before{content:""}.van-icon-bag:before{content:""}.van-icon-balance-pay:before{content:""}.van-icon-balance-o:before{content:""}.van-icon-bar-chart-o:before{content:""}.van-icon-bars:before{content:""}.van-icon-balance-list-o:before{content:""}.van-icon-birthday-cake-o:before{content:""}.van-icon-bookmark:before{content:""}.van-icon-bill:before{content:""}.van-icon-bell:before{content:""}.van-icon-browsing-history-o:before{content:""}.van-icon-browsing-history:before{content:""}.van-icon-bookmark-o:before{content:""}.van-icon-bulb-o:before{content:""}.van-icon-bullhorn-o:before{content:""}.van-icon-bill-o:before{content:""}.van-icon-calendar-o:before{content:""}.van-icon-brush-o:before{content:""}.van-icon-card:before{content:""}.van-icon-cart-o:before{content:""}.van-icon-cart-circle:before{content:""}.van-icon-cart-circle-o:before{content:""}.van-icon-cart:before{content:""}.van-icon-cash-on-deliver:before{content:""}.van-icon-cash-back-record-o:before{content:""}.van-icon-cashier-o:before{content:""}.van-icon-chart-trending-o:before{content:""}.van-icon-certificate:before{content:""}.van-icon-chat:before{content:""}.van-icon-clear:before{content:""}.van-icon-chat-o:before{content:""}.van-icon-checked:before{content:""}.van-icon-clock:before{content:""}.van-icon-clock-o:before{content:""}.van-icon-close:before{content:""}.van-icon-closed-eye:before{content:""}.van-icon-circle:before{content:""}.van-icon-cluster-o:before{content:""}.van-icon-column:before{content:""}.van-icon-comment-circle-o:before{content:""}.van-icon-cluster:before{content:""}.van-icon-comment:before{content:""}.van-icon-comment-o:before{content:""}.van-icon-comment-circle:before{content:""}.van-icon-completed-o:before{content:""}.van-icon-credit-pay:before{content:""}.van-icon-coupon:before{content:""}.van-icon-debit-pay:before{content:""}.van-icon-coupon-o:before{content:""}.van-icon-contact-o:before{content:""}.van-icon-descending:before{content:""}.van-icon-desktop-o:before{content:""}.van-icon-diamond-o:before{content:""}.van-icon-description-o:before{content:""}.van-icon-delete:before{content:""}.van-icon-diamond:before{content:""}.van-icon-delete-o:before{content:""}.van-icon-cross:before{content:""}.van-icon-edit:before{content:""}.van-icon-ellipsis:before{content:""}.van-icon-down:before{content:""}.van-icon-discount-o:before{content:""}.van-icon-ecard-pay:before{content:""}.van-icon-envelop-o:before{content:""}@font-face{font-weight:400;font-family:vant-icon;font-style:normal;font-display:auto;src:url(data:font/woff2;charset=utf-8;base64,d09GMgABAAAAAGNAAA0AAAAA6ngAAGLlAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP0ZGVE0cGh4GYACCWhEICoOqHILKFAuEDgABNgIkA4QUBCAFhQ4HllAbe7dFB2rYOIAxOG/nKOrEpKWbGbVlVHRZ9v816Tis0RbhPC4JZQk1ws72WlBGJJIsL3bc5Y/x5HdtBrzwoZQX/Ls/uAhsXMZIVk73Ds/ntvd3cezvhO1/2HExro3B2ID/4d7GxjXObZwqxy0gG8pQPDBFMAW980hTNIuhpqZleVwJlHSKR6WkDM3KECuz083Qu+8BCnabd+4tsemRGtBnHBAHxuTmuLWNUbd7fuSZA88fOBlzekCqfDPnV1BArpTKjp/r0AfE0+Lc97SXNa3ugaSqW2AfIo5Ghr2YAos8H+krfQ3L8DwA+F1V4Mecr9JV2ljSM/wUzQWAITlxoJSfEmfsi321rwHH2TjhEuUPgNJu+Hcty5uF3l0Cy0kEaR28qmxd8hKkAt5Trc38Jr9PItjeThzVmTUBj5z82tS8UPpag3jw7WchyoaNGucZYxmcV1Jb6vJBqnCMkPdKndPjulEbt2VSBNS4ZVtIZLN6T9OnLc4cOBve6vc6m1plHO0oxsXKP/eW/2ZnuXyddAuKQbgYR1EK4cAhrOf/N9XeX86QVOD/DqRT/CFXTqcPKVVuujv3vcG8eW/eYDAguOCA5CJIaxCg/iJIaxCgdgkCwgnk0qC01BF/yHEArvaQ3ASR0kYHOuVQ5djFTsfVlluULl2UrlNo3fUuSpcu3ZQuqpCWpVYrmWKnTAyidINbXlvu8bu//dIWc5DsbS7GIKHEPJFYjquWVH/3b/fH9Hv+26O9ju21WlGpogESSNAeY5MiykWEExSVOOK47UMhvaS1xPVqDWvyXAAAoBcwRQlvI/bwC/dtkISEsc4loVoTIbIVCZ0AIJHYfDMgr9cTJpanTeQN9AuIhrzvf00mgr8/5Nen14LLjxN/LCL2eHpgQbwHVi9DEjNBPAZfTAsKwnMSwP7qC7wBARAe6x9bHpf9WOTxAPA48XFR7j2u+DZ/LOBswPsBp1TOAERZQSgIVpzf/feAvzvI47F6AFF6BLhHCukZF45LVMtBJKlnIvAGFHtJAGRAaHoLQiKLSNqKGJ/iSh1q4tXURKt6IBdS5ApVMI26ClYVZuVQVnhVZgY4CYyzCpOoqw1rsgcEu7Q3GuxKXG3aJn0qjxMHVImq1jrHlwJ5PVtvHrX3Ko2IEfgjlbcFnyYathK4PgKjqatOPbBMVV8xGuwT1DE0AxC6x+5SJJyBz+Fn2AkJxZ4glrASujSdxsleq/PHWbE0RywisaeK8VEJZLLrdigkOat2y1CZLYwZ1YnRRpTdTk64eN4CfgfsjqnucvDALVR3A2vlb2hX0wNceye5Hmm5fEBzdP+Qyb085kH1PuANU75Jzsv7ZS/lLnC4ZoKnV+dJLf4NlekCzHB3ZLelfqmuL45JnZvrXJsJkHk15+TdfdqgwG+izf3JCXOj2RyinXv/VMefCSdPVMiY8jjXOo2MAP4mI/AtycatkqmIALn6l0Uq0lI87BIJ04zYwdq+uVjZCxY2jV+rwhDAwgMpoizZa05SYFIIR3JHR+IKxpnh40BpkzSirZGEOCAuOR/KRAje55CKZod135qzlfbXOMuOPHx1h7YxinH5Uij/5Dwy73HhX1B5ZKvVwRDanqFUFff3wOnQyxyWdERob6qK7Gi12nOhCPvVtZnIYtm2NwfM3k5EXA3H+6YC2B5AN2ejHZQofD50sdRcRWiq+zbZmwWxUU4+e26XKyCyQz1nkYmVlZIqmHnHyniMwALg7W0ge9iTxu3Hui5LzZirrSnxcNzQbrVOEohrbh4R6ilExdRG3ok7V4wlzRGOHiwv0cB50pZ+3m+urqJjt0nyn1mdwTS7GeBAZd7buqpOLOJOzjswwyHGHZYUl6VSbXyOF+71XRUd3IVOwPN4SxT9WirnGy624oNiyc5Or9oH0Xk7cnuxO8pCwYb5hEzNIdfsbrKorNqB2QzwQQmn/Qwb5NRYcbDz1o26MSF3dPfSrJMiL/dAGlRNHMtCEVt3nDSsVrHaufOEusODmTKY8DriHN07hL0EzqFkNyJpnLfFzsVNmR74ahkk6gGTe9J/GHlIpI2GNPlqZ3r+IevE+3Wt703n+Go4OwVuvCrAuzjuoMxtExVKOPdlyui9uI5AoqdxF83KGIUjIoIfDD06nOXu3SMUijv0qc4/wnkmI17W2EBApdJANX4zFNC4sVrhfKJCiHMfHYMLKqu4E37QzW/mhSNfGcYXYxwzR0nViMWyCzAiTOQcKTKZLcduJ+FwJUGuGFwrbmOUnyKEOuXZiVUugONRFLS+hbbikD6NOwjMNHWdlyhkKG64GPuGgnEYa5WqB2KiSgX1MmfwEBm02vhE1dZl9lyNSCFhrsrfe5XGiqVa1cMkU+UwTlQxTOPv1XioWX5gB/GSKMyxDWafvs/FDTk6t+XgVh5hDrEDKqVCJBGTkSYUgljvEqQ6bX8in0iutaWULcSirLCQch+B+4LqWLZVu96F3YTcUWEbTfUuWMYGlYLcl1zdCTpEBDfs014M6OiYmvsMCIXwx0V7JAxjfRyKkVFaGEVsCBnZ25CPrHY1H0ZHSGEcL6cw3ZXrV4fh+8ttExFKOPXlVTmZ2h8sy2L73Q/KF6h0AEjYCuELIVkkL9Te8+OtKEF97Uunyl4YSaJUkKmMocCOWwjY/HhRk2M1YpKE80TkVkpOzRPxXfcYpfowYEOo+JbRI/lBpFv1iKhXtfDc3p6PK2K0rKQKrqiZNpZgQt4pHxotxzgGi2ldPdBYX+3MY5kvdDts5F6XPARl0YNNJv/GGJwwcMCqrFLH4Hlo3S0sxzaAicMhZyfeEeBtitFEcscUDkUNDGtqmrzADU1kYnLOclO4yba+dwmSK4ix+qyrNPM4i4z0tinwCAEBby+PPZy2pdmiVmTTU1m5QdV+2iSEcV+/IBX2r2DuL70bzb87V+D5jl0Umt1rny6hpufLPsTPEId2fxKswvnv8E6ZhgNiOVn6k+0tbffCvHzl79fW1VuTnkhTCFspS+uZnEzLnFmqwL9L5Sbf3gU+GCOMx+CJ9dvlIg5qhJYgltBMHcEKQ4w9AaVHebnXT+0RfSf4PPoy/OoM4wYkiIrbKCNXEIxL+tQTblS7fmRe/YU/n1rXfl0mNuSennYFZFBXD5oDpfYN7L4vLvR+Bozp5fDL6PPgi1Xan1fW9Tt/vTQvXkZUCP7RupSEs5w2dNvUliTerBVUUrCDsklwAFASjm+7blXNTKldPwLkM82lNMQM/wz7zPq/rM4kotIv/rrZFXy8faP/saE+AtzdyiqQy9kx1tjznWamFvA2los64ONCg9erx80RGjYCGbtXyFkPgiDd4q1FlacgoO6+RUeq0gkpFfbePZwXQxywYtBsBtQ1oevUhlV7zrEfjrZ1zOFOM3Jr52OqVOdwkMLTmZ7pVvcLFSqvDqpc1jsevuMIs41Hvh8jEdIr5VCz+3chcDxe09IS0nwVYDY2RXOtnk+jSw77g7lrBevvyePfhIwOlkRq4YW9M5UfHGSWZnUapsXprah2Ah4zUBUo3Lj/atA+pp1wWnJvH6JUpYLz/X3ZuyLn+80YzbnZG3/LKazt3IV2fhn2a8pkxgG8IioDL1po8B0XdsiUsrG/0L4ThA+9MWbSMS+d2etmuer1MaWcTjfqNhhSD+ExEvtSBVUoyL1RTUc9/KS9/HR06btoPDwqJnCQCGZ1rCMOuDf0blRD7srP9tMJBGxeLFiZwhGGzvtbXFxVCJ725SqgK3vLu7a739PuJgS2BcjZJS5OFSioEzAvPJM/tL9gp8piaShTHVs15xBNvfp89jDgaRny92xKf2vlmcAOZDOQDMu31tdet7tWnw2dULFC1V4SLdnacGtQk4dwIppwVgKOpxj0asPoZ9yo9uby077lS0Ygm3Zgb6y7wbvXnouWRKodKpYTOpvrbw7oN441mbSu/5ayYmjNXjn+bfaibsPvbWzZkkO6g9xUZOfJVEGKS20pbtyxM8CnVZvRxvUpgAEI9Fn3Ld55Q47pDgIbgRd0zWKTPYw6vRQeo+ibZ8+jKA3hDI1f3wlTjZkUlbufOvwRnFxJi0dJ28Vd8BdwkESik4R+H5twr1NRMTkwunZCeXB2RcZvcyW1EzL7pzX0qJgCx6YVMBr68LiU6U6n4q/RuIPCB8/4AdGKWXTn/44H+8IBV9xDRjJfVOi8rFnd+P925llwS9uWPMDgSGiu4yIoCfgRhtASRPw1ioQFAwW6T2CSbOIBjbiv2n1cRSZxjcWpd1kyFo4vNJGTxiw/csJ5FvYN5+afU6z17j2/i1PPbVAwWidc8TmTixlzxpi5Oy+bNHof4lsmlAl18vJnpveUtAanFOhNzqQ03DMO/2iEqjWvgppPYvXH97bCOrMb99th2os6SXnLO96NncC2FHqpJdiNOgor3xR1GQP6mP2SHkKIph5NcS9/DGTWqmOAwh9fRIQh5/TDXqfseVDBWDQ4PLaITdXtH35rVMHaVwu/NcENIkjEzuwN2ndLrV8HdTcae0buLY+efoi1k+ZyHQMOjWOFe/3s4iS9VqGOEI4pFYApALYqwvXeo9LiKWI5HhHmFi1n3lap534+/k2F2Psr6pWrc0qRI4BEZH2ABOcb3hqQbOIBqjN7/Mr6s0IL/IS12cOqgeqr4TWJKvtBfK1u7nKL2pHB+pQ+5KZtGISD1PFNxjyqw+WH93CKwpYk9PU9FcrErSApKIgq7+Q0IdBAmxxiCqMUcwEHEUuzAGU/FNIuGbkpqCWg4ByAWpss999fG8z5IvwKxZ9VQhnlhzGoMEI8qKhPz1ObEmMMMMBXtfWXuShxre7Dy3X7dz2qTBHWFywLPojO6jBKCzWuRbenfZSgRgwflw5HbCOuCx9Re05YhmRdKkGNUAxkZT6zBF2myWSf77yw15mMtqIrLeZb0PRvKIqw2xGUW7uMMQDX6WH8621RNpZHqird7JJ91mlSQ8hJrTOMBK8JCP9SR/ffPcruAyvYooRhSUrCLos4Q7jISeC/L1PyiQcjLjlC5Wd47wBm52StDg9Eg1xHy9cM2yUZSBXipSGPeuLlMUaAE96phx+r3qXUYhV2KSu5+AFUevGMNM3Y0s+8nJsKxBdvKYoVWc7Wer0SBrY6r1VIc0WLoK5VkW5tDbizVeaHWtrlyyMHKLxSHSOc+nBnTjz0KJtWNwxOe/1eU7p1JeUCZjwW7rg4QIrBFQWQaPNdQqX08GRqWijgOaR0lUfmB6JwbH3fjvhiml11Ty1Xr6wx9YO++nDQKoHaWBDNRgy42MK4tv3Ph0zX9RXbHetwhoa9iD2PgmwcbMSGsXeErvNLAKACtGipFpaHVsyoDESzRhzIaR4BZKgDR5p6TehGgcGaxaEWuomsCqakdBfLejJ4BNwUqZBC/8mJJuHtd7AJ1XEL+1TRoEZuWwk00WQjhUpbvVa0nvEo80+pxDASFbCrIM7ouwdEAHfKPbgEzWmj9tyocroYW6BSJJviEBu+oPlzcys7A3j9tM5IhFuiEg3hWBYNurPnxtvNbhxu+e7SQBPosQvbtBcMlCBGNE3rPtikG/uo2oxZueowVQjWeWH15EiVm3sl+vl5RFQgONfWcSMOlBnzKXKu2MoXTUuV922QzKIl0ax5X3ltqhJfNQvIvwoGorKiFsXu8/DMZ7pZNjYrts4M8ShRUAfDtDraG/y0vz/jvpiQsZM1DtywV1x2Cofq98JgpY+mrVGEfTSm4cVcvyQVhtw4pApXvDeUFSw6dNGgDTw1ioWGf/xJFBo7el4iCBo/EBEWevRgppx/4IIpLuDk9aZoEiseOjuutwUBMmchPE2Oa1Br53tR1mpRwM1YpaGwchsnNNoX5eVfwFBE4IZ877vUcNsykCZmbfe7FSWN8IFq3ZL+SI6pQ8VG+naSvfXqeO6ZYf9e/MKQrzlfnc4nNQlxaSE8zCQB/10NKYoRZaI0RdHG/no3YD/X5Hhgt2H6/i+K7JllF2r3fMn3qr/8ytxDUejMLr/Yd0zTkWF73VQ7ND/5t/U1rgeIGJMx50YP7o27zym2BtbhUwIYTYkJCX2L5kAS3m6jXC3L4iL5DEkiUjvuKU+q7UXYl0SYYHRIErPa8E0AVrS9GHx1TADOPuC3+heQ5wKWL/S6y0/ng2ZbkigaLy/N6jDp3avdWTYTLJ3euv38bkds05t9+3Wl5bPhirkd5ZcOGKwZkw0tDbG5ta0YLc1SK4xvxmYLtRa+IUrzIxbFGKXw6lXtPd1M3m+NEODjkFIBv8+GcmWFw4zu6IGtDmbGCxdIFCJV2FZmdozcAXZFKT0YKpZKQWr0rfWl0zNTq1DHjStpUwr9Y0s7opcOIuUVSyeIubKKqBE0fNSiQfHTAcp07vfCjY/B4ODHH0aFSOS9Pvn44EefECzd0uMXCwpK2D5tfdw2o5vPilPTmu3n+cPo9hSgFDNl/UTPef1uiyE2lpl5ZSdJZmO07saDZQlwB3g2kK+4bnNnHnp9AeOYYKNG6IqUptBn9WVPOkiU//fQPnf0G5VHjQnYduZmuH1zzriJu7JWp8mxm4KJvmL2rvZ1EUF/0D64ZWZk5RlnU6Cr78OEdW0rq8+6m0MRGlebzjeMsVSdc2yJGXAip7UXlyD3SUZmmBIKZ6UhEeFLOZ4ScYpi5oRIfG7ROdFcYBvz7NwMW/CACmnJ8MLhRJa+pq5l2pF51rWi4SrtlggNkcQMsemlRvtlgvSMqUM5Sp+4qpQ7ddg63uRwB+ZWXAro24JdAjap6YHXlc+6U7Fokd9MlVezEOM7EXRQKNO/E+KD0DZ7Od3snxDmV/QXMG/DAovxfiIRITkTYzBEB4XYS2Al24go0Q71V+3qqZltVzXnR2XWojTCygjsVuW2a+f/PnFCEloBwRn+Y8z/6OMvnpCR0eqCmuPUjLx2Kn5nnUR5OPZE32cnP83hs5nVH3MMiPvsc8pNO4BMF0IQXIGCWPnK/3vgGY114TxjzmIkY4idbGPt4LvD0WXmj884QLtSoF7SjBsNNgSnMQPslbUo6V8PeeViX4poMW6IAdFGTmEJNcLzOsLOsx9cLu8wZVl6liE8cdlbtUaUaI0GRBLaKcJf1iUzNHaaKrbsSVziLfaodIk34nFJRpgycTwCjnUZu3xvlJpEwDX+bwX3Aii0E4WoGSukTjnGXVxK6w5sRnck9mRmxBuh6Dc2nrhQlsEa62jLlZzvqd0Kzs2RNvx/6ga/MGDApGco41YM8QLdZy0BD+a1wrrEHdgkH2o6uQ0PQWwmHaHkKC3Ege7q1bODT5dENDYBBpxtCz7+6HPt9sQ/lE584qGpmbWfcrW+pnKlRoKCq7TaiSeXD5eFSKiLm2U09ruFjsHBJf1Bit2sbrLLeBli/PRW3+LtYyZ0jktEsN/yxIgOp/3D2m4Rd2R/EqyZy7Fs2o5/m87BLcpHT7TBMZHFE+BbdhcbXRJ2BYD9MoPQWaoc4rxOQChxJo1t4BKfjTGM8MFEmaY3KjYRB7ZdWikTV/oUt74AKNrSvLn7eW70G8cAnISYVAC+gK4abPStRgQoEgBHYnPolBwiRAujX/qNh6JVmtTaHkYXEKATmBFnroXQnnmSRDG6K+7sAUhEuOElr4dekBfHt6DpJJosO79tmYXCMGwsh7YE1Le2LgekWXM6r8nUIVvs0xQFURSUZwqmCsx0DgMjAyHj1ndNIHdhci9tGWgk7W16E56rg3NPscCJjMtbAxRbrXYiiJAXCiarouxGq3e0ijF/esUKmfcD/AYxEC7lLLNL6N005ZSfvNREpcCJzkdOFatMf7rRnpiSLRgyDuiyG52tN7vW5fYsIrHIF5o7VjbVchMJWGDuOnNo5klbfYO/WLGzy9bN9T1N01Z75M3UtYbLFfOOxycU9Q9e3tvJOG7j28cYImdEelZ4qDawW0PxcXY+ER1NNxJFwdf7JHoMOUI3ODHGx+70zOJXZF1XktcDXI7GzUzizy7jhK14IQzEVg57zOPOwUHrWOk1LQcF6cQCvIBiYKi4qmByqcihCJU73lZj6ifygmBuC2wBxyB5S8qqRHEJjhUuYdR7oiQBpKFWkKcu2hAqy6nA0XKm1gcXNR9+XErFelk7en+pKLXowwmtobl/9trN9a2OzQJf5rttWfWNzo6bXRKH9CuopBWK9tU+MTkffHGKuzDasVkUfm3RCrV1xu6wco9D7KmJ5/6MFdlLM82tmI+dZlhsFzr2fA6cjXUd6PxmVI8eQy/YOaXduQnGRcYdXAT4JHgM8LC4MnAHef+W8j8oImHAHjr0/7lNH87nTRgfPSnfniRyUwv/NYjO97Gl/7tvEW19cCG4OJzEn40vh5dGc28JyiRsUVwZrseSUgwdDgA64zjC0+/IETD5bIMgPKQAxiQ63mJQ5SobrLWBNJkk+tJcSr6crEDEq+FyyhzTkEkIn+Xwr+8FbThXRksOmiEjsIM5vJXTO+2109o+Z0rLL8YXq2KTsGbetn5UDKETwMK3BDktSyskAufu0kkHErprx4h/GfKK4JonEWisQOOGpeeOFDAgwdok+JQAsY+hcZUszyIj0WVLroNq2br6BexLTnCEo3ryd5JyGeqnqETTkNFD4DDdC8xoLEWh0PIqJEmSwAcdwNInxEs/S5NklJehqasPryC+eF3+3K8UECx2dMJDAwC0gXx5bfS25BaTKidgGB+3W1ISRx5iXZqnch7nKVV+Bdrluq7qYGjrz4/6be562uw8dkW415iY+HxPjFS+QSW6ZWdnmgzGgQVCrXsNHsw6nJ/1gNhiytxBtW75ccb1VcJiQ/ucB/6GG0BSLhLd26eWdjPjdY2WgrVMS7wEXs0n+vsFbtk9j8Wfe1xsEgDDaV0FAszZFsDQAwyjWfhtsl8hqI+gwe2YDMbifpvLhsZYJOdDvUxvwtnBlMxGjy66MlQViPOSC+hmFUC1db/CzfzyZeWtQ5hv1JmLZ4S4Cs6qEsbJuyUpH6h1whZs2RX2l5YbxIg/IaxjJG3HPC2/Vmt0Qk347qUJLHIB707wCtpKqUhxeQK38LL6ZlvOrNe5ak6iECtcm1o2FURLJKOQ1VQY1eJrta86ixjC/N6+WvZAfSOWNUEmqgdE3atvSJMG9XoLsxhtu8RcKh5y/36qW3FT2oWz8dDu/LnFaqMpt1gVzdpoAqn+Y5ijo7EDvwc3odUJ+LV96qk2qCld4hUDAgVZU98LozOatOpOniMv8k0hLCtguJEPqTNV0ijTSeqnyhYlVing2A9rA2LwTEoQ9oXO08S3bhHA/XwOyJRKn6LOiNkGgsGiPyivtpOvKomkKQ0uOlXprY2yJ4JJ0wdlc3/d3O2aGtRjuqL+q1Rte7qsI2ikExd0uqKFbmRP6Ecgm8nyOLk/+ZlZ655Sf1v1skJ7ZjJ6udqpmQSRqoZ2hurrDnJ3cYbkCR1klWvGYd47jPCUVY8DtYRvw74ggIxqQpHS1KsyuDJHKyc3a6TTB54WGXiuoFEzd+LWrCBqZzj4DCXI3R0UjqQRPaBj7A8m5+ZInB6FJd1MnPBfnRT1Eq1sT+Rd8bgptZqjFi+C2xZ/IZvIWYgJwRe2QCHYdJwveiDwiaDPi12b7q8XWPriw0NyFl4YDNrA+baj3qQ1aT5x2Jec0vdRQ0Pa8j2lHJNbtj7dXjqmaHLzOJ5mucPlg8DaJudyicBFHskzd/ODA4VMk+DKM8bXNYfbQEFYKuuDQuyUUB2FrX3OuMZP1kx+9Fz3UFViJ2u6AFWIwVxFnLmnfdd9IgsVztf4KttS7aNr6z4lHpX1ptuhsc7exbEQ8DWPGUmIGQTntNFuRPdeV6roYlowsWJui+QBNWU/zudEgYQgkvZLIw0Mi5DmC9ngGcWxjmMPUcggJ4WmZ0ZREqJCQzr+MTcbalaX4mqafKqegxq2JrhW2Dtc2SNrjxp7nJ683gAlma+GkJsmU0nAfmqGXMODYa2xaJ1PXxgUjnoXrz9qCBoLBPnScIlsdm8x/NIR/SPs660vBektKHCsZi9eROj7yDusw3bwTyjgTUkSNyZnzx87n6EOCemQeKygt4GOffPsFYv3OMqFRbmSc+QrwmuffvXTY2gnI0zuiH67HalK5ALdZ16AHHxatYa1KKn3wftKpe1GhxVnkcnNL3TcbabC+tIgvbf8Rnby9Nn1mLRfT5jhuiWFpE2jzMomh7kEg9CphlTa+vGOMi7LD6Y1Cs1qVUiQLOs1Z3I/pZHop8dNuQ1FykthtjL5cVaTw5fnwloSL3PvNRXtrSGvoTANoAOyedPPjeIdXW6XmsKhKsOYxnQpqZ/hBWy6fDpv5mSapFmi1AjZLt9fSp+3NwHYXI/7CC8XBz5idux2eeUl0ifzHzH88VjkC7vmJ6zmHOqlDn5pEO3MYi0G4Adc9NxWzx3kLP4wD0mIg0OFIFGwzXI/nU1HNB6JBPEj2GQ53hGioicAXCm0/2rc75C5e3EcrRxuglT9mV3kFjupNwe5DYzL8cD/umNOLs8VMrtBKgCV611j5koR2yv4QRaOXgf4bnNJqlqV1kOnhfHEjE+RM4SfmAryOBRrsFPgoXZuDU5u10oV90a1OWLOI9ZCLdsRN7oBvFJTVEVt4sG7aWDO3vFi4By4CSSIGD9kv8sFC3u65CUI2vwgZfE9yIgOKw3qSbDAG0lsU1Nak/0qOtMSNyKVdbwCw4KWzJdING4VFDi1SRReAFE4ZERlo7IPP43pVWsKYW81YT6MlOrtYgxy3HG9Yt3yrQqhF99gq5Pzz61Y2nHJJ3Zq9hWC7tbom9mkLE5RpmcosearYTw+p3kD2w8bUsO5xXQBDDlFUYTb69RKtfb5jSsLjK0SOehPXf0lkJjYvX701z4UGBzYt1/ywHI6FJ279qs3tZhz6/TAOdEM7N/j74Vd5IHNtbRv3+o/0Fz27pk9u4IKZArkOXwuJAl9ZP1zlGDfMuiPqx67IcFEOBPUJ8nIqHd2n/jm23EqIB7yVuoofKc4rQcyNMugZe1gF3r5qmpHdO7cPgubEhSaczo9xRYdSzXB+g2bZfPx08U+xl2c0HjiAAyH//GDUBgAW0d9zzxdWlmAlctMhqd44Pnz/a0H28E72jQNEKW14IxkT5ZprFa3xlStl7cltMLFH8PnEnNlFoAvFTey9Z8b8otPyMnk/N3S/4ATxdZNS6mNposW2XwdVunoPLGQpZdlaDoLItv3J/Clt1d8R42CzoQr+tov7sB1mn1H9ks+J6SwPrPNTb2nPwMoSEVq1+/4rlxls4GqV2dL8JLLf86KROKD3bxlQyQfqL3Y2sRT/IhMWInfl3jZ1+YUath8VVFkGcoqjIVxobf0mqAwOM9wzGH/800Rk7srNTFYnauMIQzVMHcJ64+1mOiCAt7AnCuFzC74rBBCAWnf74yMnKiG+4ZE+ARnS7cHckKDcIIrMz9Rm7W0NoB1ka3YxPyai3TZ/Cwt3OV6Ph3ykeglFnSMciD2YJTekQJKpx4jb7KIwKEewih5hf4xs0bVIo/aS2Yql17C5eyJHl2/X+PppsQ8m5VfkF+9j+WeOYaGY9ltZfaw2shCxBmIca2GXl1Nj3DeicY0uWtCBOYc+yOsN0PxsTxxutJ8WfV2JJ7PI1OCBY5oFMXo8tYFra/ocMkBlc7NtxVrRyad7OUyT2I7RGgojeHtKzTGRoqvIEq5A4Vgtv3BpsD2EtpgcjFUVWiUeVzbolpolzQeDZLVyQuxphVDc9CbU8TCUlxBfu/dFmIBaydLZJl5DNsJZp4RmBe4RR4X8I+ScHSBXWX5GinwbEe0ax4UmtYXAUhLQqwjmM0Y9l3zn8IT6F9Wx7XjN+tQadAO6fbjtHmxagilhxAtWr6A5tV1chqC03gykxjT48PwsUK29o/DWCXbFzDLEIHrR/bW5GqOVqiNdLOlYRE+k5h3c/vwQO96qHIgt854Se5htoDBwbbkBaBlsJ6vK1BMnrRZAqmQiHlCXgK2N0DoCCJ7VyQ1gBjCeOTzcCyQ9/aHXRXS7fINInEYVK8JYoo7V/yHOdSqfNbBZrlyioCabnqbzxwd2837JYvlZFtXqsDKghJDTpkNbNxAU26drPs/1WIDnSd7Nzok75RxUdMZiWkV7kbgLwzF54RdAex9mHy6swPa2A1mIVLyp2wY9hRH53D8ruGNtw/tzKWccCiyyZWxxYW7Jg7KXHERhldfRPcTZhyNiJxzoi01RApuh2w+YWqzjEpdHfqI4TlGKDjZHGFqF2btd0uFw1vm/Tktf9rcZd8EOLtl13lbMDEpDKaUxsDB9TEywuB58QIM8pX6DwfrIV5DjaCA4jJv6UnjBWfXls/zUOEvo/D2TWXp7lt0+mS5XBLe3RXAZYokNBOjWVb30xehf+WSXtxJmybtT/d8Ou0fjy9esmNBZuWPS1mUkOgWfwxlbCK7fi+fDOet/nmlHCmVvU4Vz0vz5KrWFV4tcyTYrkt/ztVOLT2PYwy7bpq918Lp4EpPxxznmVEd3gCvDaFaAqPmCqSkUNF6IW2PNBlFUxVJCdWYEK+QprWff1mzdo3LcFA9Hz+313Ts7k0Fv54VtpeqyD7Cu8qC+8iPkwOEa+7Cfg2H4Zz8fhgVK7rWI94+WkbSMfNHEc+3Pt1oyd3be7wYGU8SIXrNz7YnyF6ryO902KmV8zs5I3sxvXjqEs/QLspQBbJXcHRBOuH6x0M5sSl5YNIAsOQBbHNGtgbE6X7vuJzCtNiQ/exV9ZwZlDj5EO/60bdO+9KhFKZ+zhz0mMD60LjLRzswIRnL6i/NSbFPxxT8D2QGNUP73FGJR0mL93djpw8/p1aPyV8qxcT+ylAva+DrYJ2AkXTQtupZgOvv8KS/Xqm3Umi4pKHJ/i6PVGlYgJ8HPuoMFeDun9+6om9I6PHL9GrZ8uNx29Uca4u3obR6Ft/lS74gijV/cs3kfHvNXXDInxMZJ0ckwXckroXMuGQcwcPgn1fBKTY82dyDGNiPv+t0RWm5SMSvp583pO2NPGIK5uaHsrx4LzgA/H0Nv164B+xn3ILaqsmosvGCY+8sEzCXKSjja025saLcagdnZUjY4vOHKEjlLfQE4g00qpstnrmmO3YwIzsBYzxlNjLjK+fTBfdCTt0xFW1VpedWdERL7mxQ3pDVBoW/p0qw3U509y09d61yY5k5DfrTstXNrnLQzYbLd8yMsoVQKw6C4e2xR0gtqdeb7SNXavdSCUYWDUy7UlU6t3rWCQ1XEaZlYIs20B7AcZd79MtuZpjNxVfawjLCtZ62+JWe7qgK2TxSzqSMxZFeD7iwrx6Csh/LT6kjynYoYCWVxbYKl+7petCEFDWbLKKv0vg8PQ3O78nna0dHmfpSIjgnaVCxLJkej4M8qjVWLA2/CKcj4d6R5LFD8aZ0hHY5GBkMDI3W8PZYVSdP9Ou/OrSwcl/wX/SGZUcBepQu8jbtApiBemCBbUMPyoBd7kEYIADerqLaW3PcI1SAMqgjVz9nAFCtibGyrTdsLNuDHzQFBRwi0ffLME4hWR92dvTIESuX35pEphOjWgX29CNvv8u9z/XlkDIbDsRkBazG8W3nmtMKHO62YSdPveHnCnb57fKpbhuyRJRE1rVUxJRqtaUxFXc1TJCg3LSl1hZhUba9xUzbUVea0safKkrrEqxlqoLkIWMOzKGMOdzoHDpXLWDJZ7qUWUUNAJgOwJ69az2QXlMN1JcVuAvvd4dxPIgj5zAGRhwjA9gIFcBuGFBH4DmfmqNaBwcEWzSHekLsDu8MO6jtfVuoBbGrpMRql9nnRy2wT90+X+M+sNpcIMwNMuYTcnII+cYgfpNCrwAhQgUbGMAw1MRvZhVNvCBT94fGFMTrb+5CfE4WJxfJys5CzEU35GcK5LTI933j5bkh8d1B4PsmF/9SfycKUDdJjHw6dfZfiv1F5qNpabEC6z//aHyjrTJq9E8XpFRJSXz0Fo1iPQxglx1gfRiAV5Oc1NiQuHwGF+zeT1hL7evxStrhD4sfU5nXHRi/zqQ+bsoP04Dde9s2rmu0Af71o3NXr3jQMhS87YIZKAPmnw/z2mHQSgF42O5G4ar8wbklvH6r9VxQv2wibu0dOyHrDzpntTqtL30UIkU2cF45PyhLgpiDneDhGzIWy6pRbSUlwPd9OkCYKN2HhQAUOg50AQCGMWAH3gHfndnoAi4AEA6visc5YZIhj4wM24H9EumnMhHIob4+wL13nMpAGdRxNzKHzlUzDwcbdmVcFozWjIwkLUzEHdWM7zfTy5uS6hMS6pOa/tIwQYKy/V/77uDvzaf6LNYJWb/sRtxKHJNrtTrTAVzeBSD+wYr4hVvMfuw7TkWXn0g/RJuC2M3TsVUZ+f8WqhaUgzyl6zX/7QWgPCJPVXh4PqdE7DSygBq3YEFshXZhK7jUFrtAW7EQtLZd+hZtBm0w02OZP7BKfALuGsS9j020H1JQBgqSOe/ngfBN/Sm9KTum/EBoeAcoFgPRZcC9dwyeg8HRHf10cpZRPwVjVA/yLC5Y4E7hHi477e9ya1+IhePLVtTvdOnBQOn+g7+/ES/eZUA/CstA5+/DLosvz8/1iWWTCq+Kr8YeFOMzd4v5v+TSfvmxNfvLAz55QabadbhRF5Qq06Y1RH9pI0sDD0qFSriwuSO69/wPHjVKx1T52gjPF5u31XzfZwTqqyE6/Y14+/X3bXAfNHiKAjhske1nVzPshGxXsdwtdVoNQtQ3mJyUHgxPDx9KHwpMDzwYqilSq4vq1BY+UmdRszoEeP5eYgAAD/ZRiSDTguoJIK/AaLdE4U8yEBNNXruwN/AB2IN64IEqSkF0vlqdH11AqbqFAAU00IEu7JwwILsiBwVRtT9wLT4CA5iS1qIqKZH9HSrB5ZQj+cGnS+/Ny1XlKCNyIvI+YuAgQdn+4326wi1KdqtEUnKS21cClTPA6rRYb5QfFst1tHk/8EyadcEvFsh1e+Rp8tQ/MtuzsD8CvGCJ6ha8yGM52EgPYY7I/TgiVzMA2gxAOWFGt4Eu2JWwO353wq5x2cFAY8CQcSjAGHhwe7U9UvUcWutYi1VYsRELFm5MVPdaLLz8h0vigyjAvqolZSMt/Jfa8+1GAYLPe2JwnhijlPYKl2Jq7fPXsFBwU4SrlOZDVg7gtlRVMywMeQXDNFfOtDHl8yt/h+hmBHAbVeaICPM8BAzO219I/SgK0CULEpIbExMbk6PDivMWlrrcVD8r2yqNNuzcdC2uAJ8J1oRPOD+czEV9brBu+KAK72rSW8FHTqDrWueqDa/XWJ3d3QJLkLBOc2Gdm2wGVp/oDwhwogzE+fPPXrCLMmAvyZzgoM5erD90uYzAz9PAUmOYEvG6VczB+gnm9im+dWLETRAlo/v+HCYfRDj3OTCpH3x6wn4bWG/uq2PVFRTmlUZZ77mAq35fV+32i602a7/s4k/UvoaGPgQg/fe5xWhEwVdwhJASZTBCgTbj3u9HAFBXRnSnCeU0ufF/yU4vQgZ908zNSxL6hJPbnKLcwaKOT0pgeFrs6+RGCkoOeRl+/ihSjyADNGusXpuWK772eo32Ty4H5XL/1HYsu2YWx6TF6OlW7oCv7qhLv9hAMywu2nM+2Dn/iXPvO1Efc9Z3+iV8n6NDLFwQrqkbzvcaajgyh3quKgCuUZfd1Y4tHSnZUoPxHXw75kCYKB9lIo6Byn9T+5hjLIFCyNiGO2ZTJQgERmsQZqRSQGxttfsTaNB9L56bnDtZfKHz+tnTatRlUQDh9UsCup6+kJgA1DlKAcw19oltjenyCCVr+GkonuQf614Ag93N9T30ve8/5eu3u97/V/96iLWL72b7zvq38A1Cg1jAcZZz3zdA/thjy9Grn2ZZCzX/oCA5Kaj5eTxwGfku/jDmWvDohPUfF447xrBxBHISQxDdkgv90w57YAcJFG8cVo6k8lMj8/h5gngQIg68XwoszyMjzLkRFRqciJyzR0Xu5NV1i+btbnuGN/x4CED9f5k8+l/of2Y74czDS/48FABwFkDAmYSjfZ9zFMa7LFAEKiPs/zmsG9UAoFE7jrCQGToZbl808rGFm74s9AMWmoxlZMksHlhtKLRRBueFZobllPBtQRG212vUxi9poQf9P0NsFCHsAR7aau+77bFgf+mjPfLJA96bJ2Nef5R5HLSB45mPXo+Z3Ox9YFK+51HpflBSm6NfgqCLs/Wf6fhiFFlSjtdgXwj4dXTiz3m38/AFgYFBJJ+oJzmbw7t57K+CJ+aR48VhwcpewWAGXJC8r4iqSK9SQRsGCl9wxN0bFGm0rCteZ3GbBfUOrL04djE6qTJi/tL5Ea5guofKgPGJi+dPhzNxO+pLr5Ras22lJ0rrtnV2Ic5+JzqHdDn7ENNSmAGDOakvgBlNz7bXlV7OtCVA6clSW/vCPqTPeTE0h0ofBKivPkr/6DfbbyaNffoZCt6+Y9hJNwohNgRC3ekzLfvG6RaBHyFOOhy7b2xcJdpv3FmbT47z/1sT+evIJoC66fgMPozZU+lj2d0YNj1hR5ldk+kPgaLohkR9t/oPcUqBa6/dZR+ww5tlC9gHuHub2TnVkdFWdAsUWw9d8PVlRHXLRIHRpctyll0NSA2I7BGwowKiOFjAxoA4TuSrUj/qwl2eYZx/tTPICyRG/voC1NdMOD7o909MM82atfoejbgqyYuvddo+r//c5tTyvZJWEWn3VmdZm2kx//gN4njcNPb5zdor3J0/4qvUSXyq0RJx6hMxd9EZkcVI5SepV+E/7uReqb3pxBwYwOaoc/AIFSAR52FPxOAYgByFTWPYILbRB7CE48y/94v2/yT66S3RW3+P0eWBn27DT1dDwxf70nxf+P4XkGgNv3mQshJb5d3OXV/FNja/FL0Q+4pjbvr+T83XI8vHu07kYLwDC+wPYQCT/GJcoT/7ujAXn3npS8mXl+xMQYPwR3jgNUCYFSAsRBDoYSfddQQKPJf5LoSFvPOhox2/SwqHZvh3f0Fu2XscFRVu5U6kddcyXqXLflw1uAsvHq8dTwktbD3BrGWeaA1GnzzNgw/N+4+faGycX9JaOQksAOzVKmzs8WIP6zGppXAwD/YJg1GqNUIrtW7evsNaZlwG60Rp3Qvyk6yvrcwK7JOAD+yYnSOiksvUiN0RSFj88GIG3fhGfX+zvm/Cn0iFFQIFVgsUpGuCM9F343r6wZMZqgfxUNtgD9z2r7TI+SG7jd0a2yZDCJv0xUxYbE9bz0DhKj0qF7O80NjZttm4zGdzhbgM/OmTwV3zVaN8nWDmSIzXm9sth9J38N8d0lK+WVcNsJNnwngtPfmqLeUFwa+li3PnYf8atDyJBL8HVT6DziFzl9sT13vJECLpdO204ZuilRbdA00u3fLA4DQwrPX1TrQfiIn05U0x9dqE0qSKuxocJChvwXLDKsmiLaptWC8e3Z0ib0toOTrebXFRof8Qg2TLPYEuG+UYc6NYfUjfho2r50TBC0jWB6No10Z8PK5z42HAvvaaF8kqavBlrRWqUqXGHJN7NiZXwBtK+7sPL7yK2qQiLOG8ou3/atQG3QM44+fjwuM/C/9EXXSsHNkv2k+ydR46ngVqoyS+RXLTy2Qn+aUGUBOVl0qiktj3BrHmK32EW0NTO0y6K9ovDLB+45pOzpItxBXRaiSxYBoGivpYoCfHjBsGEPeYoVyz3tx7Z8NGwKD6RnPHLlG6hlDyKO4qOoHjS75N8PnJfz4/fnrbra3RO8L75csX3YPfuvfzy9iWdiWrPWFxhWOdoqOqU14VviiVnUoAfX6zU359f1wTq5ZWyZdUqZb5OxmmBa/bKpYtzar5AHgozWXaEo2mRFs2qS3TlJRoyvaTH9belKLW7Oik3WEPT1S7vogk2Y+oQAECzU7ZguWTC1/oeYnm963jps9f9Jo+i7QZ22wgQAGNT6KoYGBhqdcoNjpBgAkRnzUmHEokOsm2wh54hkKAPZPx+7DkOcRT+cYGRQGNoaZXG+vOc+wYpklpRXQJLZyBrT3Tt5DBo0noRdvrPIINSuVDQxrACy9uTBtVjSOId+PaCNonggga28a7NcdRlYbaFuf2Afa9uurS3sS711w7PqR3WsYsfseAaxLiOw4MPMWFyxMAHySs3vufj8XHxgbffSCqa7AhrThVPn1ZP++Qx1jYd2YtxgiPlkg1c5FcCtTX6Lh1ag7F8eunMh/T/89kQVYAMWXemn/+qe+haBYtiiZBZNmbmi3RJfESqvSnC5KedB7uwjFqGoueKuFhzBXEMrGC/hwG2PQtWiz5i0L1ZRd/jI/9CA7SwsuROYA9Dy9pwNFOtN0S2J+aXRv1l1B67LgTdXb1oQxb4OxHhry7WAJcJQCyzEveh4E4+7rmAmyU/iYde0CfQGCcHkHcN2vj3oribj7pp8FVvTrDgvGr1El1bdjK5gj8oknsAb608EOfvsATbj8TyzYYVYakuKA4Q2JkukF6Jm4RVrVXWWxWIwpxkFjJjbaZ9yqqRqMoMS96Nv6tvpucxKBZEYhifqvXJwhQQH3dLZbXr6E6hhzGBmaDjkHHrtRXTGPY2LB9Bp+x2sdd48Q1VlT68FA7LrCpLjm+gEba5ZExxI+MCtwU0qDzQf9Jtfnyj9ETt9cHNPdPlGbCUjizNHwLmwPW7772hfKLQ2HmTRIsWfEwH8MnEh4hXWOdamniv/lA1Hb+B1phd6VAnHRfzL6RIA6VotoANhon4CAcj4tbcPCjfeeFwuCNQDaG1gyjntjcN9MTY3ql1qvZt6oMJlCXVXeGK3996ssREIC0EBOKw63YzNW9BHEoO0CLStE4Qbuw2Q25k0CrEGZS3wgkC++ByxVoturjuNL9klaSyDeC+oPOk0krSfcwMrik81McJimSh+wPFDcpXV1O1Flbe+AAQaig6rvy8vqc5iLETN2dpeb+jtPS9otOKhUksmh/2nOY5ldT40eDwdlJjvZhCesT+uuk2olaYX+tBbQ1fbHXsyfv3j0XNQEmgs6hAYw5gKIxuks80fll+SR7N3jgMz396+AWT1rVbq6/J+DJlEo19STA48/dXZXm2TL465krmFl6RRM/gfgRYQriFanuBsdzzVOHmVxOFmX3uwgla/9HJz4kVx7POMm2z9PMb5fZF0TNt/+zdat+OxKZdkG3xKdNLazLFZcDzzzqSbydytOeThsbHu6HXNA7wyHDfwX1ayzUI+gm0ktiIS4BPA4KXh77XoyPqS/jfOV2x8lV9mFL/Jf0YsperCqxCmgffMD56rGKbXatzNnbu1uwu6+PKUk6kxo5N4KxarvfHNrVu/Y29CEMtA94Jm25Qn3ACcprf9pENIbt8daXl8pEnvB43sD/0sutj20Mmsj252uUEyWcOqV12g7lR3hkLBPLSBVgL43dz9r3JrTMOYsC9CNW/92N9dHKlI3ZPgzPes41vXmJ6QLr7AGx7yUOXJOulTKQC395V+wjcRFJunuMD+AlJiO1jvf6d84mw3Vi6U9Do1ceHxD9mvdfGcIc0WENrq+/3h0oO+8N+RHaborNabhJmCXaCgCQ9sAsvtlG8INoY3DuZH5OYBrysXY/VqwJquls+sLw2cvMwM24o5efGb5o6qwJ0hRj+7UfpyE5gXkDmnJyK4Bm9F/LXXEtBdRXblUrVv/aamW81a/Vq4vVXAdbKrdaRvKctPdx+jXNq/bYMf3XR5C9XQMt6ab77farpX/4c+1xaMmu4TrA7zBVFb5AuucdXPxOwsprjxWR779x7nPi4/8l/vsineOeqNMRPQG1W8rnFRUJWm1yYU5my4G1/MrxDR8quIYUE61UoIvIjFoUnl5ofj11z/ru0k5nxWEw+orS5WXxcnpRA7z6KYmUfi/lRyiIBFEgEhCMhSzZ8+HCXW7MjRy2CB+Y7UdZaP+sx4k6WdTOs73q4jpi8T+h4sSz1ekLKna/f/iNxTcVoac2LUo4JF4ckmeE9kkeTofwralleCaW0RSZ1uRfyyrIMHwm521Y2LUM8j/5UlA0Ql94dNa+daxpTcqr+6vzW5eMpfQNBVBfBTUqU0k1tv83NqOf3fiQlspd2NbdSPHAtNV7NbaK0sqVWdKGViw9RnrsKz+h2USbf5O0gbzpuVCWlgs+e/VB+PXD3uM7T6QRs1AT9OrlpX0/pfzz4Qcfbc/i9Px2IZ2QuHznncTkH0FNpyUwNZuQzm6KqUj8y+fKBzl+OeyFmx/M4+wy5ph/+ufkbQ+IKaLP5uA8N/PjifvDFrLLATO4/wWQHSOwB/liy2XRYcy1hgcwIOEjjLzCoDz33xWAtobu/VNI7atgkXXE3WDvcz1KjwyufhXyk88YxtxYvrD86MoC34K35LkZuUfMox+D0Y34KP290fOm0Wsg9FJsaKoupGoog2jXh4bpEC8nA3A+rOv9M/zKmzn0Oj1Uf77pQMjEu113TmWU00AGhAO7rjQGK9b73XxUXfcN89mp9NZ5tzoe8PYtTW/eYLz2w5uHQko4Ib4n5VhZWWz1rh8LeAWJeQ+Ztc6lTacbWHFdmiXBBdaaJTUwQBmoB52rZMBzyBxKn4krzwTXRXfFybRGHxjA9A1Lm5y1zIeJebwCEPoLdw4m+wNprbVGnkwVGW4b6J1c92jTo4y6bYu2DXRurtyMYZmel6EH9No89JizBwJ1Hoh/qgFrRdbOW7e0r5SizR9iH7wlUs5qHz3amZUZdLj+sG17k5aBMZq0223LyZRvQvHX9zu/zoZNhNyr5xPEQ/NJliExgV9/L2QiDIRo6LHlWm15bEJyZQjIYHcsEOvF6bkQBDOoHVRApUA5EoM4rWN+BguEJi9IiI0pL9MeS6N//XpGdGhp3ryQzne86pp9P/chM+LaK3Mvgm2afHWEIjtbCXQ38TcW6GIbEyGCr9gOypGliZYWmn6BDjBQBvzlNsrw4DS5PM0sT00L5gVU5KlylMocVd483BysW/Bim28mZ0M9ObmHDj7vA33Yg/3xXTEyjRvb5p04gq8kvCxRFIWkyuWpuRpewdwPPRtjy2O0ZS3a8nJtS00BWFnzKAOPMUyZOs2z8mh6alQ4AE46tnTOzSsqKGBgQl01q+hiwE46OrkL89UtKuTuMjAtGXz9tDzf9cHzBRSng21EV6LdGYP1ocq9RD/Ceogd2hniHRmpbsOkRShAB1GADif3D/vyA7EonpQWBzVK435gCa1oCTNNVUS9hhSGtnYGfzRgH7SDqb3rL8ZdXJ+wxZyikR2Ljz8m05hTtpSgABlBAWo1Nro4OIK4nQdzvtTqAJfDBdy0g21LrjUZr108RyErOoe67Q7c4bK4rK6B3w+BuUfco64Npnn8i+sPrr/o4b2rC3s8gn+dGSPi1mcGZe189Eg7qxS9tQJbuVmkfKW9dWvn+ZVTw+IDzSMZHlULDWguMm1/42sH9rNd3L666P/D/zeJPu5De9bC5vbmc5uxzbynlqeBUfynv4b/ilNRgZur+mkPND23pAQ5iWr255ikP3WeBtG+0eCvd8UzYD6NLCdIWb8ePf9rmif02eGZw8/UA+D758GCAy9f34kCVCIi07kaJ8MkDyOGZwZFpTrTuXSOX5Iu7IIo+E+5LoRC6YMgCAw/Sy9qH3iMMhHcGxiGaRyfC9gLqQKYAQ+MZnr4Hx6wE0AaIOwI/BBOIhEIMovvYwoNOYvQKCJCG6dxvshzdruM1z58WS0uEEZOismsKu5CNgAAQJsVDMPavGjJWcGHEGBFp2zXQ8qBHNDhRxZPRiafPPgX97nRCCl/C/AieONQXOnjCanjo09rJDcel8wLoUAQiRDwm3ZAGbSz7rM4vGEilP7dFZmvYv5RuPjPRWmL/hRjUar8BrnZ+OLFhw/Tou9yAVZTMxc1x/hAG4CbYkQx1vUc+9WdmFfKeHV8xJEIvVqvPFgY2mJaGCog/a6eCz4f8EIww0de8F+04/1hqhXKFarnbkosNbgC4LhLu7xROmkGUQFwPR9zjVFJCclYJKKtnMKoAMapAIlbY1Q3dSGQ/ehyOwwc28I/Z/q64aTkcXdGXVaXBbMWoi8uoiRU2CPoM8LxJyYADAUdBZxTvFUKVo2AskCl70FGRwQZX/yHmmPY+OD4x94YXdkiXar9rSR5//t5RSyVhTlWv1ya+/Xf3tnQYyyZj/l2IpWSSm4XYr/ivW35c0k3t1pSjaQ6MoCPJIxd9wWle3L9ryE3//uE/kkzoX9taMG+BuqzrSG9T0P/Dks3xlWHkpMYx5QbS3zEFxrzZFJCS6o0ifWUcHvndfenP/IS1F4ymSysAIQEy4JDw6RhKplEvJrlDwvO9gztUCtlyhDQ8XVfKUFfHYnWx+mj7d7Hx8WvKRTYouI0QYLQc/nnkQC5UI7w/cWcVQvDNCuiV2jCQFfGnySCuC9oXU1Nr1TFWbt3s+AH2FppbY1snaiPWLyQ8eB53Dc2Ohzqkbd7aRngY3wwYPLNBud69VuBxFsC8qLS/lkR70PiN8RpNHENfKvji+4d3B3mmP/G29txe1dE7LiwN+TqExxYNL/O0tQY0Mxvys1tDGwIrGdJ6i1Ex5y7gcHLLs7O2b2btVbaq+Dq+bW1qNXd/8iBL0gxfjL2GMr2/vvrXOny+jELU1XEynt/f3LJb9ql0hYlnXtcilRLqrndkufLt3lfsSNd3EpJZXW5V5jEB2TYCOsnuymX/K58Qv/kv7f9KfsKQtfeR572hmz1YsnCZDKZlzqB9+On7us7bxOespKkqS0EqSyv8YLYp2Sj8hgjiRxaHWdMXxwSFKKUKdU7hnrOCmB/1mqxRKYKk4aFBsuCgZiYMS8vIkehzFbllP+n1ADwYE6p/bdclaPMzlHkRZRj5jR5alD2yuwZXhBf9ig7Z+UfaXLzaHAaytAyfFhw5MF4QwRFmkBoD8rS/xmfV773mKE41ZPW/Gs4tnez1fg/hmlkyysflY9ni2qLxx95tQUMhCf0EOgMqQ5H185Wj+IIE8UZBx6z+s/wzrD7bx9g4CHVpWcdSQxbNMlhOnDYDhpm2bgjzJ3lO4LlaViod1owUF/m/I39zRvgHTIj82+K084QVquZzM+3V9DKzreneatqqfDTFfxHo2/s3uW+OpD4LVuBApQ1sNPdvZFRdWrF+CkAwKnxFafSp/Fx3D2dXI1dxCxNSRuzjYx3dIyP2MbSUpbGqHhJ0kAcfgOhNfSwaaf88hoFx8xWspgbKodilA81Tzjf47yBkoWV+neHxYUKisFxw/LjMr+fMjU6irCCmVZBXZps4iiGQB1yW5R7M/lmbtJ3WYAVF+Bgy09o6iUSUdZFZ6phBtXx9AwdVAb2O6jZGP/BcgfcgJkzhVt27ICAk/2trRfLfrJ6+svOtUSV/OlFOcFiNyLrOso7uXPwR76X7euA64Prrusf2BK/lK396Vl+C5wd57q3UrOPMvDUYDZL196bi5rLz/dEGp7XANgs0qNmIkzUceOYzqfT0Wm8YzccQNNF43U6Xd2jDsmLyCH4uyHHXCb/+2H3/E2cibDPL364WFfrTfR96gNKlgeaBPDl+MtUgUlAvSygQMuyFTWM0dhSG2+sabdrIQU7Futqi/eu1OJswEbAvdecJn+xIFi3R2faTG6ewdxxI+MjSY1JiQ3LNbg9frH004JVMmGqKF4QXyGUsFurvGBfS6IgUaQTBlWt/Hhtvbj3TO6/x4vimkTi99W5h8kIpemNn0HZ27963rtHxEphifcI9ohZOv85/VB7/bTlQE2H8uvG4cGL1sCUnJR92bocHfxv19WuA8LV8au/b7AnpgjfFCZVdIPx+Yf53MIr7+EX4vDMtsrxyvn7Kcx0AX+PkJSqkhnlmUWBsmcrCsoMSveYWgbYldXHj7FK9kDjXrCkt+BHyA8p1Pm25v7y1GhG/s41pz/9dqo5Lz9vPVlIFy9CCfG2ALrelBvwLS6yifBvA3LbMVdfWITeHKKyqQwEn7BtQ7IRYWI1VCNKBUm10M00Wc1I7jdZmiBOkB01Ic0yuSvYzwEhDgHigJAFl0zWuYgch3ty9wx1lpqUJHpXOCIYFh0WfSQYEZ4VaZOos4k2QaOgyHfWV5U35sxS/XHvPV5qrz3e5y5/WXxO0MUPPGlMJe/y1vaYc3OTvHaRe85qvd+gxBkXGZLSc+Mob1BxQu3Tw6PbRx0jDp77xYYjc8IuqylAlYwOuz0Es0abhYpIgJrs2HfYNctiYWPlv8srZcI0XqIo0ewDk1evZD+//lgxEcZLFkrmVW5Nkz4YgIzju3QEqyhoOGhYJG7QRJ8/7li9XcZMYMre2ta7XcpMYQY1VjoLrxQdzPUeO7riu/qwaGOC8TtjilH77vXF12VF2hXacqWhuTxBtE+U3AHkpbuZdeI65uPvJFDfNKGiNELJB3wlhGIYLsA9bhVWjHx38F2WbyisYSwVNYYeTkxRD8v49Q1iwhFZHZRUK3CpGmhv9YMqm5QmRzNIO4hxyoA9fIw/Zh+W5yQu7av8Y4DbZcf5PjnGj2ORZnssOC+Stsr1he+7LhgFjP3LQ02teI62XEdoPR8+0kTs1L9rS74AnDc/yCRjMGn7y8dATL7CbncbSZtjCZq1YcMkNbwydMGqtiY3oWxpqlrKcY+E/UKjcS6wDHmPnGcnjYBccu7YGQYGnYTgttNFb8sFludBrCAMhemic6nsYh04FD5ey9gc7i5mzKryimPTijH+mPqyHXrIdNxf7+mqwufk5TlRZ15+X/a6Xq3nnbqsFZkY5hiOS4wsyDXhANZ0iPHsIf/XF6AmBHcaYIMO6+Q4N/YZYO2X2q919szor6KVT/VfUeO2bQN5qZlpE9uYZnN+aTV3XDwa5D+0xhO2fDiRrgeApH/90g80Xkoj5GI2pvBo///7rpYEgNYy0c0iQ+kV2cGaY8TfT7mhJEVK1Hcax+HrFogcMe2y4SGpJYU4nMylD3zuYRz+xU8wVLtG67N7sx4zhgv8LmbNee7dpXPdl7fJS1JDtoGISQBBYgvka16pMnv57mcBy90D7TnKO2afOQMbaOrOv/3racUdKMiqbl8UZVOb6qcyz++qup0zT22QGfH5rKuxelmqupSUSa6YlX7zlZjQutvju8gQ4Q0LvzXUN+j3zZ0cVKW3UVNSd99WQ3CEph/E5Ne6XC4cBWheRFOYNjk6PIxd0e6yo2DZQH6Zzndh7mtfMDgZ6juYmfHsIGyw8cYVSz/obzXI/Y9DxrlfFlIEHNifEu9QQb4Acx0lZBQ//01kmEN7D6KjdjThaYThkBMNGv8mCLSV/1oMa/c2dkPz/IQVVdOXJp7u18p92m/apPCi1COHU9suy2xJpmZTnl608x/urcDTZ9a+G4XG3xW5QswVruHemiO9XPAYVwQGb8jJni3bpq3x8uVnZG0qTWfve/SaL2179gaAPYcZKEDnUA/Vrtr7pmmIMcTnkoxMRiTDlAzy157ml9nt08vFYv82J+Zlcdi/EWLhtkeeYLG6QtZ9824dF8D5vl9VrwNqSe1A8s7qr3xXwAzukvRkWRfcxa6Tv57TR7nJMF5YEpKK21x121JDSuTbLru59Lv3PHPkRT9BuBHTb97to11TOyTw++Uww/P5wF0A9OkTH7LIALJcP+zQfBeVokiC3Kd+Jx7TBGdXpENkVveERQsASfvuv//TeI0pTBeU0sij/XDpdT1QbaPOkadcdXtRCHGAnQutpdDcAQi9bP14igwq77v6L0DHd7t+rfxjD7CCOMvXQ3hwB95u95sBnqG3Sq07/gqH/EiJbacvD9E0bhqCwv/aYS31CnPzdaB3jbQ7hN9+WsMKf7LWahrs6LeobsPQJpOWDKML+0/3wIh7EDAkd6329oDB/ML+8+f7J+7nz3UxizKZb6EAiUfm2vERpbfO8UAp29IP8j8HI03fvLuu+ivffBhw69ifkpAu1rGlZUI9rtVJCq++hk5RAXXEzhWrX7rUJXmNjs0beAbAarjxvfpHtb/Af6U1m6ybUAjZNOY53ju19xUbxoocYCXPx5F2AIDdeT6BejDZ6nazGxYVG30lY0yDSdpCurWO4v3K6npeeP/EHBnFVtu9rKVFKun7p6z/xHv9T5rrwjCEiT7pf+9E/9aIv+pFLr01OvAiMnf+Ibl42pibZ4Do0bxoOhRODlRI08UoeaT9l01slAxoGh4kVChM7fTTG1aosEydqdX//Pchu0OGQ/pB70QnyaSpT1sSffRoLNebRPH3k7pGnKiHmKFZuvRJZUFEnlJljso9qzIrs3MiclUVhHgqA/liS2pEgUGukwenhqbtCk7Nfc1sJvwBgm5qh+1jwvFhe6/uB2pDBmW9OlofYBRaGMUMa6wOMwwnFjMsdF1cOiaw7M4iEok5G3afzc47EVRXqM/X1bGb2J9lGgp1eax6v6agOmHRrxNDCTZyPHVKB9xnEYDOIADBUYAI+AIEoDgCkBkUINZReA5uLM6vyJnUjq86qaGmNsKgzpK+S7dE/RmByQ0RRpc481Pt9Pm0pncp2PvAuMSgX7JBjyzRb2CGqBiyhljc48kF3Tyv/gY5bjWFGcMwbnKFZaAmhsNc2PPqkGGNC6oDsm30PHzUvNwIc4QSTw2uxXxuIKw7haviiF/fjtkV+7sV3Ok/Jds7S9W1jiKeOf7toU8+jNbYOhqDVTWNx8ICVmHtWea0s7D89VI12pKYMqhZllH94RXKXGV2doRZVQbgUmCOyFIqsyoPlJFHfrxHyBzqsGZK4eVRfAZvd38Jfym4jeEQe8Bu9O5YgyYQHxwewlZ7Zc6G+56cMdyjYIvNEPOoGQmdfP8/AyD3GZt7IzvphnQiJ/Ucwnq3ONtX77NVfMTwaW+o+3CbOZzCyy37dGb+Oyk7Mi5mCvPFlTSgkT6qPZsaWrjiALOWeaA1tLAdBYgLYaLt9xpGrMNprjSrC3O549wEe3h7OAh2k3MM5wg3ckw3KOyRt7uCK0V/3un5VA2FzXKrVflJzVWGzsIjyFE2RbUuGf2jegenwVitj2+f3bEt/ydSIJqKeiU+fQKC9dkmxooMsg/9ZesDjmErx/Cg9SXdh7wiw8QA3+en5n8PRq3/rqYYT+Lj2bv4mqb7uONYtzOfLKPHHMd9OrBam3+hX02aSQNCah2/z/8y9rVtX3CDmMXur7A3C0KZN2u+02cq8WPLr0U/0d/65cfw8CQjPtax7XNEtoASGcr4pOaGLuOcsUSAsyabQMg2OmNjd3yJi5gbIPEyV+vXvZHRNZ3ckJTUsFwTgIw2oGm178jZo3Uf+f+okw7OGqcOG2HXqPHwVPUpkA3qfvTbX1ruyXxWXv5MztEG4AFaf7ln5Ef/DdgGT3vO2xMzg7a/jQa++WlgaJ8XFAV59eX3hUJq/9JCAz99MxB9OyJl0X/OUYH6Cl2UNCMiMasIwaUyAADYrBDq1tilrHcE7wAAOcAhQ6TyzRywmE0WTSaJJFdO8o753dFJN9yXhoWmG0LDgp5lZf2Q8UNZ1g9B/jH+GipAGNQ0Vh87ecdE+n3pBt0dP90MCmm1rEiWlzfkhUNxJY+fqh3f/WKP/uxFaUUIiYKy+UeTg7YeRkKdeZ0UQiSB0pnbGUKIOu/pDEUOK3CqB5mjquZbtbEfAhRc9hHM3PlzZ0zbyhpDNSh5/H5zQlZ9xkr9ycxKaG44ksDOMFcrWqsUmWZ2wpGNV/zPhZ4POx96LiS5E8B7DV3iK47ZgwLEh2sRp74NeNFq31fUoGzJC5JQxbHUUuSVNPGv/uOpj4u2t9pxxj/AJSVGGXZMck6JT9PTcXz9PXxp+jmYQoVaK5WPkp5Rg9Hvve7uWPWfP0WyerVnC2yZDbysdbs9J/jHeBx4wIO9NnsQ1nsKDdPTQEmVj1sKviIMX/w7tueeAgsxEfDq5wa8DWGe9sPFWcEUHvejr7oofQY7M37j89K6HTUxDlL61PuB3PQu7FyQ78OD3tVg3t6XuAu3a63EAbsDL3L7XD1OWCBVRG5ORHl2HK4HqOC69KYqUfANnUCdK8bV+4lRdiju5rmD8pwMlpP16YFBmidUzsBXbCbfXZbz1FJfD6vGqi6IiipQW0c1OEhQth+9961OXFwdXxkXVxlf/USDgwRl+yf3u2GiUbTRisCW0cDrLYEV1xfCUf5Ms4Owc+bTCc3OIwnsTHOVorVakcFddgPnfZsAT7yn/XBJZrAXj7O/71Ude69TvHtzqA8PtP+sYml9g39xZrFuyckltVF1N7uX5NeNOEmdf/75seScyXWSp5bUPA8YSK7Rkziz3F+4sxwf7hRXHFvnATd2UJanPxbR8/xrmtp3+85RjG7qzm0n6szPd1INfRcvtD3OMa+8RxC0eAMEpcbklkcf6xo/n/wYWzZK7iSzryzNiQ7Dt6WdxpFfyfVZvLzT2KMtzPcAGMCZCKgn+z8bMmGgd5xI4d8lyY+i5Jm8rnFbuD4EIiGZl03w9yYF+tCz5UQiwX9Ip4hiH/F7hx78tZF2asOh5UWScNPN1N9cfzw96D+00Q2iIVhm3TTly+87/J2MVE8kevuQ5MH+FBIpkJRF4NC4xHAfHkogayuzvSW72OQi6hRakQsaUmJ+/Z/giFy/pd40hUuKlh/acMpI+zqY/o7fEbYiSjfkTyAS5dl0n0CStz8hm5dMIBJ8uC3cayavTzuH/A8e/+nEFJVcxN4lyfau1JIJKM8nnMilcQhZpEASieIfLCf5eBOJ9aTvZIf7+L5Tm6wyGIoG/6/6j0aEvVLTW9r0aRSRwsVEAQpooJOCibPueHoKdQrBcQ7+xIxgPM/u/gtPl8t7mCKxQIVVt+QgOKnmWEsglzJsN5ta6nJSz2J2e2rBsBIdhHeRvhM4hEtj2VZmsjXktQ+cPz0DBp0HDN92OMF0CPdHMBdwTXhdXrC9Pkvu/rkDA5hSeLly+5IsUwr9RL1y2nuYEsg91lKT1HqrCiqUWCjDYMB4Qq1UBucDmzv1CXL6+696SJe8+1I/Rj/njT0K3SikSxW236MO/B76R6i/ZXWlO0uT5oeGfF0Yz3tN+RoPJDpqB2eM2MeS+Nj5Kut5WOi0bOLj/BFJoflJH+vKNJfHA2y6tvb0wzCbkbIjdX0Eh0PZ1B2UdaGCzeILNU9a5ItLy39e1Ufbg0CXC1jIiH0EairIrvbQnPaHlL766P/DwaG9ZzkTYROcb8f/JZeft4187v/X8EQ4XuSA8LM/7Ptsvo0fDZ7Fxti9zNPMXvbYtAv1YlKYXqjm6aykQFb0sQZXMutsEBiFmUMAkNuQn98Z3rAYHqzT+UxWWDH9zM+B6Bz3bWqkmh/Cnlp+mkEtx8nibhqCPOiCV9LDw3g7rh0HtuzDfkKKvtaRkdm5/fKCQgrMgK9Q5Fn128PzjjKvRZmIK3yAu34xgg7C9E385kpu1AFov9/9knWW9eVdd98dxt7TMvjvZY49bupDnAZDxntXNThympf4RMpeF/pOONFF7V1I/zmVfaUW54pkXBM8rx4eLZo+tATpd+VSVoOkXtIpccJnEkhWslcX0UoKJ9EL6t1FtgLPZOj+qgXYdUtC2xcfWMF+/qrPN2VXv/TE4tvvG+2XHUPX47PKwisUzYtrNAuiMSte0liqyAvLydayF3ntvL4sLyY7sLBjsFJ29/mQXjRzDlwkW0kJlCJ7d5F268syUbSaVS9pkDglneAMMK1MNtSnaObOBbOQvOLI1QOibM9URvOqjOYpz+xc7uvx8+p/gOg5019lLE6XbgE0ZM3DF37tcaIF3/8Rkpr95b5tGYmtDIMwXWgVWoYSJpL5BvaP7F1Bu9X4ri8vNgNPjvd4GZRd6IaKDWiXEn169MnFvK5/jf92vQDqHHzNYivMXqIX1z9ijVZi9EU/cr+ExAW7wyq2TS00aoqSVqt71Bbi19+FU4dywnbrKh1N9rlbjheXrgZtz0e+bV5tGXsa/PWfMIlMJgaXUb3FjNAsTmIY2Rsh6WJYuT4957wpJej/HVGrp7yTCle6vmPZwH97C1rfFq8vbDs8kfUB420UoPSWgrb3P8++o/uBpCGGkzQkMkzUE4VEDZFTEeSO4v3U9hrVHcGOMiqB/o0gUXWz1i0GVBAZYc4+BtRluapol8xuM6X4dcBz9qhf6zfYVUKVNvauY1PnRN9Lf+8z1ZOPqn6faa9LC1PXtc/8XvVosvqMt//LvhtOliprl+WUBneq46zTc/klKxBJbG6R0qYaR0BI3+YSRPH7d9+hxoCM3OW86SzP7UH/p5+Kzr+iA0Pf9noxOUP6/Zvoh0NRQw+jv/mdNDP5wuvt0MDov2zURyPDLtw1EVCvvRnlCsyAwr8zM8PIsWMO1zSOtyvgCibs97cNSPSpcTXGrdw3dZmZb1TGTeoF2znb9LxvKmP6M19/NL7J2WqMrYlNhkBcTQF5X5Tz17yINLlRUCQ3KrNVR5+H7CMXxGuoHhhs3QHPcT3wDrCd+ozroe7YBnu4c/C2bTAD1H0cvSP9/VMRWVkRyrL68qQb2WtLT4enk1Kwp/7Z136NI+3/WO7OUKxbn76Tr+uIX+BL++Tr/L7u+P1+lmEtFbGlGk1pbEVLs6Y8utgWkzZvJHSASn7aunxWyRW1fElKy05UU1rGK2PJ299uKoupCFMAIlY7NVGPHdaJa7pk/Od0mLaiNHadbkdNo8y4NH1p8zoQl19+WYj8CCLmd5wOb/E7UHqKYCQ8lMkeGgmEU6WbiS3hpzvmR3grvjb15Evkugpky6O+YjdhIb9IWPKVXvuJTvNAWMy3EFpehlY/8KrQySVglaSZ5gU06eAqI+6/PuEg5fQxGHpxgu9hfwktD77JilR8NSd5yhxzjI1XngYi/bq+3nVRVqBkaK82/uwXZQNKRuzlLv5OH/jr76avwoA1je/4mNel/d/Hwet41r7TeWuJdeDqoc7fsSsvXwBrPyme2sP+7wl4EUlCoyje7pi49Yspq39jrbfJBuVybcxvi7fEHZo9N2VSpYbZ/Ar9cshFlFS/goD/d3gV0CBN+QRpa+gKly1r+mIRX1z3QS7IyFgWtI3SrTEV1mTkd4dvofw/kVEW0W/UA+g+KZ2y0iTtufzGxt3zaQw/dcbVJ5uuxG3xu12Vdkx+a809ZXbMw3/Ey59/llp4r+J6Tgo3K7BcUKPeUklimCVVhB+PiidXf9tpZ57OB0ObAcPAgL85BSBI4idsz/Eiet/zn/KFJCI+vfAn3yn/+75zYvYa/vw9XwDht8wS8XxyYcTospAFjmUg/qSe+HJde8fn/gWc/HO5nDz2vTRdf887/Wh/StqrXKEtT+Tp4y8KWNTU1jy8iNcmKCgQVP+mp9SxZCpfomBPF0bcbg7JcywDCZf1xJed9o7P/Qr888/lcXLZT3W6/gAW2lUV7b0h6aSf/hNQ++DRRkZr0dk9FfppKUUjvlCTaiKPogau4ebO2ibQGLcT3H3r+AGoV9w/WJS/rOtU6aUtSMETf7Ogz2/zmOYvEhcwEl94U0ngf+LMB54eEiD2CNMb9BnI/7FpVUzYSnqm3TYpoQ2Pow4wAkqoCGDsI/AxG8XBGpWAVKAiAopBPDUCRQBAjo6BY+KQOMALvMZKjFS4Vfl4Fg4lon1bVUsMrrPVVDjkBabGxFC8z8VOApUYSFq78cwOAofGhC287dwPAh2kgWfM5le4RvAVZ1BRtB4ZIx2FnKmBFVJZH4HK+QMA9dSFNajUmPWklpWWrM40LJvirQbyvhYEiENhDWp47KEdRAMHpKE1yi5X5597K0sn27KN/qvUSQoA8LoXFEmtQlr4S9B/33lxEdAASHlEX2UAeAA4ssEU2vuBUGoQ8AH5RgBeoJnEUXsdSdA+bGRABaOkQPux+QIFlPGaCvygNwFR9kk++2AAKoMAGyQaAdBBGYnYdpAE7c1GBlxwnBRof2O+wAbmfqOCYGgx0AMHqANVYLF9WAvEoBosXfPtN4EasAi0gXoYbtwECO2RlBVJXrMAdIKq72BEUmhZVZdHxPYGoBDUgQawBLSAqvmiX4nzCaQ4oZgJG6irzI6f+HW8GKiBCkQBQPL8KKlVUalVk2jLYdH2mh1Sow0gGqRZzwKZDkmztRHGHDCh2VKbi36K9nCzmTNrROtUAJDgF3Z0NkQvXlyP/4wXPYQUvoHLw48B0Jj/TDuIB5F1u/qcharGSqtOZyzrpRFvdgEn6zJ8v8IQJeSfmAkQASJCJIgMUQ6C0nTDtGzH9bCw+fHHwYVABQjEwycgJCImISUTRC5YiFBhwikoRVCJFEUtmoZWjFhxMLh4CRIlSZYiFQAEgSFQGByBRKExWByeQCSRKVQanREAYrLYHC6PLxCKxBKpTK5QqtQarU5vMJrMFqvN7nC63B6vDwyBwuAIJAqNweLwBCKJTKHS6Awmi83h8vh5BgiEIrFEKpMrlKH7KkCt0er0BqPJbLHa7A6nyx2pC16fH4RgBMVwgqRohuV4fIFQJJZIZXKFUqXWaHV6g9FktlhtdofT5fZ4fX5AmFDGhVTaWEc6nywp93pjEF+esQ5zxc211BcU3l3bQP0GBbiXA9hus8PXPfpPvt/1UsJdwi78Tl+EZZdHSF5LWXfn9UtrpVXKz2s+r7YVnrwW8xpbb/wSFqSXK3Awx+QOKc7r3/lPJEr2Xmii9t5G2ae8M5IO04xIJQS/w45A+N84Fmmz9Li+XGsjTIsTub6fYtt9Yd4B26Qg/FWuYgAVVm1RGrZ2ghFOaM1HqG2ggDkAC3MgM7ZetybkcL+0Cv0LF9pmXtvKwDhNZU2FU60zdQ9z4TAbDQU4ge+Rw8WPrfMcmIbDVGsmnKbfXJLmYNMEB/eEiSOLwk23fQ05jLl4WY8Qray1Y/ntYG3ghSDGJtwJ78gyzMmCp2SCaIGUy4JVGKArttX27ahK8aupMlJooOHQIghimWEaG5WV/Co50Ja/kzCKBd2c1FxDSZBx6Bj1ELT4kDQUniGjmaczG2uPwk5g/khBQNZ+6cjQ92gO0xsqhbAEye+WcWLzFHc3KJPD1LXtYoG+KxgXLLjZTXwYOHp+h8XYhvQ4/cStuUeokLUtnMaiTazAWuS0DBUycA78yWCYoGR4ZZP2KIREy1oXHgicFMhx7Jgt3Hu9f73MZ5sLnTPXKknmT5aiwwTjEU7Vx6394kwYKFZZo99aJA6SnBTIQZcJgG2iOYEsA/LgjmzKES2ZorolhWDN4CQuJuRsFswnDcUAAZi2TRY7JPXJAYgZ+rwVJO3T4yAk0pyCAGwjaFvwZo0PWAJpnAVMR/IKkLFD3rrE4CXkkh7ZdmWq3JjRmQOLM4eFIcU3V4kDVT6REKckYXPGANSPBMWlNOQYjkIawhCXnuM5prZCQwfdXgqfZidhGfJpYOqTA/Y0500ZB4LQReO8YZ6mjq2e6QIdzdGLzR8ziEWSLVQd2NoiYGkRGaMXLCt0oq7fOWoCTc11KgkMttjj0jFJ6zIc7BafifCk0pZOhSbraAopcEpG4/kOwyNmF39Mt5ppTW7jRoB8WgPkOc51rC8oKZl62iKAamlu4DmuBkvCcCtjwcMLAlVzR32t10CwTyM6AbagGllb48gU5ACDzUmBCyJqxlxs8U4XAyTcTtjWMNGdH9GuwTBmjyI3YJFEgrovcQDR5kFZ0NMkmgTDZclc183uTcoBDNAaimIE2Cwu9OXklBGRkNvItMU7zXTlX5Zz/V8YIO2iK//xMnpu22WBNXRyG9vGQuJ0mGsc26/Aag5YQelZZs5Bi2ubsxHV/DzGXRt3P3KTOvQ4HG8aKpm9OyoHnIgzG/GkIEerHqEBaYCQ8UJPWbg8/vNFDyFvqkhIe6O6l0WordG9pHAAyyTWbhCGHCtBD7vDjzljqRT4+8E2POgLpACHDw+E5jqrtyanHw0AAA==) format("woff2"),url(//at.alicdn.com/t/c/font_2553510_ciljc7axaw7.woff?t=1705587463221) format("woff")}.van-icon__image{display:block;width:1em;height:1em;object-fit:contain}:root,:host{--van-loading-text-color: var(--van-text-color-2);--van-loading-text-font-size: var(--van-font-size-md);--van-loading-spinner-color: var(--van-gray-5);--van-loading-spinner-size: 30px;--van-loading-spinner-duration: .8s}.van-loading{position:relative;color:var(--van-loading-spinner-color);font-size:0;vertical-align:middle}.van-loading__spinner{position:relative;display:inline-block;width:var(--van-loading-spinner-size);max-width:100%;height:var(--van-loading-spinner-size);max-height:100%;vertical-align:middle;animation:van-rotate var(--van-loading-spinner-duration) linear infinite}.van-loading__spinner--spinner{animation-timing-function:steps(12)}.van-loading__spinner--circular{animation-duration:2s}.van-loading__line{position:absolute;top:0;left:0;width:100%;height:100%}.van-loading__line:before{display:block;width:2px;height:25%;margin:0 auto;background-color:currentColor;border-radius:40%;content:" "}.van-loading__circular{display:block;width:100%;height:100%}.van-loading__circular circle{animation:van-circular 1.5s ease-in-out infinite;stroke:currentColor;stroke-width:3;stroke-linecap:round}.van-loading__text{display:inline-block;margin-left:var(--van-padding-xs);color:var(--van-loading-text-color);font-size:var(--van-loading-text-font-size);vertical-align:middle}.van-loading--vertical{display:flex;flex-direction:column;align-items:center}.van-loading--vertical .van-loading__text{margin:var(--van-padding-xs) 0 0}@keyframes van-circular{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40}to{stroke-dasharray:90,150;stroke-dashoffset:-120}}.van-loading__line--1{transform:rotate(30deg);opacity:1}.van-loading__line--2{transform:rotate(60deg);opacity:.9375}.van-loading__line--3{transform:rotate(90deg);opacity:.875}.van-loading__line--4{transform:rotate(120deg);opacity:.8125}.van-loading__line--5{transform:rotate(150deg);opacity:.75}.van-loading__line--6{transform:rotate(180deg);opacity:.6875}.van-loading__line--7{transform:rotate(210deg);opacity:.625}.van-loading__line--8{transform:rotate(240deg);opacity:.5625}.van-loading__line--9{transform:rotate(270deg);opacity:.5}.van-loading__line--10{transform:rotate(300deg);opacity:.4375}.van-loading__line--11{transform:rotate(330deg);opacity:.375}.van-loading__line--12{transform:rotate(360deg);opacity:.3125}:root,:host{--van-overlay-z-index: 1;--van-overlay-background: rgba(0, 0, 0, .7)}.van-overlay{position:fixed;top:0;left:0;z-index:var(--van-overlay-z-index);width:100%;height:100%;background:var(--van-overlay-background)}:root,:host{--van-popup-background: var(--van-background-2);--van-popup-transition: transform var(--van-duration-base);--van-popup-round-radius: 16px;--van-popup-close-icon-size: 22px;--van-popup-close-icon-color: var(--van-gray-5);--van-popup-close-icon-margin: 16px;--van-popup-close-icon-z-index: 1}.van-overflow-hidden{overflow:hidden!important}.van-popup{position:fixed;max-height:100%;overflow-y:auto;box-sizing:border-box;background:var(--van-popup-background);transition:var(--van-popup-transition);-webkit-overflow-scrolling:touch}.van-popup--center{top:50%;left:0;right:0;width:-webkit-fit-content;width:fit-content;max-width:calc(100vw - var(--van-padding-md) * 2);margin:0 auto;transform:translateY(-50%)}.van-popup--center.van-popup--round{border-radius:var(--van-popup-round-radius)}.van-popup--top{top:0;left:0;width:100%}.van-popup--top.van-popup--round{border-radius:0 0 var(--van-popup-round-radius) var(--van-popup-round-radius)}.van-popup--right{top:50%;right:0;transform:translate3d(0,-50%,0)}.van-popup--right.van-popup--round{border-radius:var(--van-popup-round-radius) 0 0 var(--van-popup-round-radius)}.van-popup--bottom{bottom:0;left:0;width:100%}.van-popup--bottom.van-popup--round{border-radius:var(--van-popup-round-radius) var(--van-popup-round-radius) 0 0}.van-popup--left{top:50%;left:0;transform:translate3d(0,-50%,0)}.van-popup--left.van-popup--round{border-radius:0 var(--van-popup-round-radius) var(--van-popup-round-radius) 0}.van-popup-slide-top-enter-active,.van-popup-slide-left-enter-active,.van-popup-slide-right-enter-active,.van-popup-slide-bottom-enter-active{transition-timing-function:var(--van-ease-out)}.van-popup-slide-top-leave-active,.van-popup-slide-left-leave-active,.van-popup-slide-right-leave-active,.van-popup-slide-bottom-leave-active{transition-timing-function:var(--van-ease-in)}.van-popup-slide-top-enter-from,.van-popup-slide-top-leave-active{transform:translate3d(0,-100%,0)}.van-popup-slide-right-enter-from,.van-popup-slide-right-leave-active{transform:translate3d(100%,-50%,0)}.van-popup-slide-bottom-enter-from,.van-popup-slide-bottom-leave-active{transform:translate3d(0,100%,0)}.van-popup-slide-left-enter-from,.van-popup-slide-left-leave-active{transform:translate3d(-100%,-50%,0)}.van-popup__close-icon{position:absolute;z-index:var(--van-popup-close-icon-z-index);color:var(--van-popup-close-icon-color);font-size:var(--van-popup-close-icon-size)}.van-popup__close-icon--top-left{top:var(--van-popup-close-icon-margin);left:var(--van-popup-close-icon-margin)}.van-popup__close-icon--top-right{top:var(--van-popup-close-icon-margin);right:var(--van-popup-close-icon-margin)}.van-popup__close-icon--bottom-left{bottom:var(--van-popup-close-icon-margin);left:var(--van-popup-close-icon-margin)}.van-popup__close-icon--bottom-right{right:var(--van-popup-close-icon-margin);bottom:var(--van-popup-close-icon-margin)}:root,:host{--van-toast-max-width: 70%;--van-toast-font-size: var(--van-font-size-md);--van-toast-text-color: var(--van-white);--van-toast-loading-icon-color: var(--van-white);--van-toast-line-height: var(--van-line-height-md);--van-toast-radius: var(--van-radius-lg);--van-toast-background: rgba(0, 0, 0, .7);--van-toast-icon-size: 36px;--van-toast-text-min-width: 96px;--van-toast-text-padding: var(--van-padding-xs) var(--van-padding-sm);--van-toast-default-padding: var(--van-padding-md);--van-toast-default-width: 88px;--van-toast-default-min-height: 88px;--van-toast-position-top-distance: 20%;--van-toast-position-bottom-distance: 20%}.van-toast{display:flex;flex-direction:column;align-items:center;justify-content:center;box-sizing:content-box;transition:all var(--van-duration-fast);width:var(--van-toast-default-width);max-width:var(--van-toast-max-width);min-height:var(--van-toast-default-min-height);padding:var(--van-toast-default-padding);color:var(--van-toast-text-color);font-size:var(--van-toast-font-size);line-height:var(--van-toast-line-height);white-space:pre-wrap;word-break:break-all;text-align:center;background:var(--van-toast-background);border-radius:var(--van-toast-radius)}.van-toast--break-normal{word-break:normal;word-wrap:normal}.van-toast--break-word{word-break:normal;word-wrap:break-word}.van-toast--unclickable{overflow:hidden;cursor:not-allowed}.van-toast--unclickable *{pointer-events:none}.van-toast--text,.van-toast--html{width:-webkit-fit-content;width:fit-content;min-width:var(--van-toast-text-min-width);min-height:0;padding:var(--van-toast-text-padding)}.van-toast--text .van-toast__text,.van-toast--html .van-toast__text{margin-top:0}.van-toast--top{top:var(--van-toast-position-top-distance)}.van-toast--bottom{top:auto;bottom:var(--van-toast-position-bottom-distance)}.van-toast__icon{font-size:var(--van-toast-icon-size)}.van-toast__loading{padding:var(--van-padding-base);color:var(--van-toast-loading-icon-color)}.van-toast__text{margin-top:var(--van-padding-xs)}.login-modal[data-v-b29b5494]{width:85vw;box-sizing:border-box;padding:8vw 4vw 4vw;border-radius:4vw;background:#fff}.login-modal__logo[data-v-b29b5494]{display:block;width:40%;margin:0 auto 2.666667vw}.login-modal__colse[data-v-b29b5494]{color:#999;background:#f2f2f2;width:5.4vw;height:5.4vw;border-radius:50%;position:absolute;top:2vw;right:3vw;display:flex;justify-content:center;align-items:center;line-height:1em;font-size:3.733333vw}.login-modal[data-v-b29b5494] .login__mobile,.login-modal[data-v-b29b5494] .login__sms{position:relative;display:flex;padding:3.2vw 4.266667vw}.login-modal[data-v-b29b5494] .login__mobile:after,.login-modal[data-v-b29b5494] .login__sms:after{content:"";position:absolute;box-sizing:border-box;pointer-events:none;right:4.266667vw;bottom:0;left:4.266667vw;border-bottom:1px solid #ebedf0;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.login-modal[data-v-b29b5494] .login__mobile-value,.login-modal[data-v-b29b5494] .login__sms-value{display:block;box-sizing:border-box;width:100%;min-width:0;margin:0;padding:0;color:#323233;background-color:transparent;border:0;resize:none;-webkit-user-select:auto;user-select:auto;flex:1;font-size:3.733333vw}.login-modal[data-v-b29b5494] .login__mobile-value::-webkit-input-placeholder,.login-modal[data-v-b29b5494] .login__sms-value::-webkit-input-placeholder{color:#c8c9cc}.login-modal[data-v-b29b5494] .login__sms-btn,.login-modal[data-v-b29b5494] .login__sms-countdown{color:#0089fe;font-size:3.466667vw}.login-modal[data-v-b29b5494] .login__btn{height:10.666667vw;line-height:10.666667vw;text-align:center;border-radius:5.333334vw;background-image:-webkit-linear-gradient(left,#ffdb69 0%,#ffa641 100%);background-image:linear-gradient(90deg,#ffdb69,#ffa641);font-size:4.266667vw;color:#7f4300;border:0;width:90%;margin:6.666667vw auto 2.666667vw}.login-page[data-v-88cefd34]{background:#f5f7fa;width:100vw;height:100vh;box-sizing:border-box;padding-top:9%}.login-page__logo[data-v-88cefd34]{display:block;margin:0 auto;width:36%}.login-page__tips[data-v-88cefd34]{text-align:center;line-height:12vw;font-size:4.266667vw;color:#006eff;margin:0 0 2.666667vw}.login-page[data-v-88cefd34] .login__mobile,.login-page[data-v-88cefd34] .login__sms{display:flex;margin:0 12% 4.666667vw;height:12vw;border:1px solid #dbdbdb;border-radius:6vw;align-items:center;position:relative;overflow:hidden}.login-page[data-v-88cefd34] .login__mobile:before,.login-page[data-v-88cefd34] .login__sms:before{content:"";width:9.066667vw;height:9.066667vw;position:absolute;top:1.466667vw;left:2vw}.login-page[data-v-88cefd34] .login__mobile:before{background:url(data:image/webp;base64,UklGRpgBAABXRUJQVlA4WAoAAAAQAAAAGwAAIwAAQUxQSHsAAAABcFpr29o8KlFZoqqaGUbqAPVdI5sUPWkmyTLM+f7Kqogw2rZNTEe7I6A2sX0Be1IDGpZvnU+5zpZvNWDpmwYChukvwXnoiOgPB/w1Qmv/79RuILSLUwD+fSh0/+VJYbUtyhv5/jiznI2WXt925kbztq1p2dtW/AlKvwQAVlA4IKAAAAAwBgCdASocACQAPrlQnUunJSKhurZoAOAXCWwAvvmuuA/in5KuYBdgG8igQb+A0cSBhAEB78frPcggAP6cX/90X//Brgg35IokBnwOJ8hJxXH8h/7fRadNiCcEyPRZyvn8AAl/55GUKgkYb/k8if+iBKz7vGS+hlLOO1n2t/erH3W+HgSXN8z0hI93XqV03jiXDuvObRTWiz9BsHMlyAAAUFNBSU4AAAA4QklNA+0AAAAAABAASAAAAAEAAgBIAAAAAQACOEJJTQQoAAAAAAAMAAAAAj/wAAAAAAAAOEJJTQRDAAAAAAAOUGJlVwEQAAYAMgAAAAA=) no-repeat center center / auto 90%}.login-page[data-v-88cefd34] .login__sms:before{background:url(data:image/webp;base64,UklGRogCAABXRUJQVlA4WAoAAAAQAAAAGwAAIQAAQUxQSFEBAAABkKtt2yFJb41tZrbNNfM5g7Vt27btzLb3LGx7qwbPohRtHBETINeFD+8XyOeoBSaY86P8iJrwivY169t5OTbKS9nKj3CtXKq8AR9WlNrldm+dcvwJcKm7bHtfBh4fm9LaLbuDfx8vL5HL0hVP+LedX6fXDciR54JB6878gkfy/dH/QODOC+G+BR6GfL+MbbBefq2GnYanqFsHQiQtgMOB8lQEJwI1FU4Fy5uWwoERcCVErh7bGVsBbkfI5ZPO12aIjYwD8DBWLkOtV+fpYafAjaeT5bYn50Zw0MHzPoYlfrMy/cm0viVoOef8OckSKeYlw/0YwLNoSf2wunhr+kVf/TuPz9VeSt8yR7bGPj63uGv+wC7DToF7sYa5GWqyO1DOxlw4nWGXdY7OWYZc93/Bz801AYGNOy2e95PXuHU/wTTh5+pY+Zg+48HXrw9mpMklAFZQOCC6AAAA8AQAnQEqHAAiAD7RVKRMKCSjojVUCAEAGglsALsvNHgCnAPYA58j2IQYiDiOKwh4AP7paR/84l6BbA+xn/5BihpjWUOoH/3/6UrRltJf1Eme859cvnzVi5i/l+f/yV+Z/4/52EVP6bykZ4W4pBIzvjhSVD7BXiER6MEeJ9SnZTrK8+93XxykptRkQgM0Hqewuw+X43t6zhHvrWEgDxtlBBX9RBqH/8GUmRa//wZSZwPK9u+LegKlWAAAUFNBSU4AAAA4QklNA+0AAAAAABAASAAAAAEAAgBIAAAAAQACOEJJTQQoAAAAAAAMAAAAAj/wAAAAAAAAOEJJTQRDAAAAAAAOUGJlVwEQAAYAMgAAAAA=) no-repeat center center / auto 90%}.login-page[data-v-88cefd34] .login__mobile-value,.login-page[data-v-88cefd34] .login__sms-value{width:100%;height:100%;background:transparent;border:0;box-sizing:border-box;padding:0 4vw 0 12vw;resize:none;-webkit-user-select:auto;user-select:auto;flex:1}.login-page[data-v-88cefd34] .login__sms-btn,.login-page[data-v-88cefd34] .login__sms-countdown{width:40%;height:100%;text-align:center;line-height:12vw;color:#006eff;font-size:4vw}.login-page[data-v-88cefd34] .login__btn{display:block;margin:5.333333vw 12%;background:linear-gradient(180deg,#0973ff,#3d90ff);height:11.733333vw;line-height:11.733333vw;border-radius:5.866667vw;text-align:center;color:#fff;font-size:4vw}.pay-modal__title{position:relative}.pay-modal__title p{font-size:4.8vw;color:#333;line-height:6.666667vw;text-align:center;padding:5.333333vw 0 2.666667vw;font-weight:700;margin:0}.pay-modal__title span{position:absolute;top:1vw;right:2vw;color:#c8c9cc;width:7vw;height:7vw;display:flex;justify-content:center;align-items:center;font-size:6vw;font-weight:100}.pay-modal__info{display:flex;justify-content:space-between;align-items:center;margin:0 5.333333vw}.pay-modal__info span:first-child{font-size:3.733333vw;color:#666}.pay-modal__info span:last-child{font-size:3.733333vw;color:#333}.pay-modal__field{margin:3.2vw 5.333333vw;align-items:center;justify-content:space-between;height:12.8vw;padding:0 1em;border-radius:6.4vw;border:1px solid #ccc;box-sizing:border-box;overflow:hidden;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center}.pay-modal__field-input{display:block;box-sizing:border-box;height:100%;border:0;flex:1;font-size:4.266667vw;color:#333}.input-solt__input::-webkit-input-placeholder{color:#c8c9cc}.pay-modal__field-send,.pay-modal__field-countdown{width:6em;text-align:center;color:#ff5a18}.pay-modal__btns{margin:0 5.333333vw}.pay-modal__btn--confirm{height:13.066667vw;line-height:13.066667vw;text-align:center;background:-webkit-linear-gradient(right,#f40 0%,#ff7200 100%);background:linear-gradient(270deg,#f40,#ff7200);border-radius:6.533333vw;font-weight:700;font-size:4.8vw;color:#fff;margin:5.333333vw 0}.pay-modal__btn--cancel{margin:6.666667vw auto;width:5em;font-size:4.266667vw;color:#666;line-height:5.866667vw;text-align:center}')),document.head.appendChild(n)}}catch(o){console.error("vite-plugin-css-injected-by-js",o)}})();
2
- import { Get as ne } from "lazy-koala";
3
- import { onUnmounted as mt, onDeactivated as Se, isRef as Xt, watch as V, onMounted as me, nextTick as gt, onActivated as Qe, unref as be, ref as U, reactive as yt, getCurrentInstance as Re, defineComponent as re, computed as ge, createVNode as K, onBeforeUnmount as At, provide as xt, watchEffect as $t, inject as en, mergeProps as he, Transition as wt, Teleport as bt, withDirectives as pe, vShow as Bt, Fragment as Ct, createApp as tn, openBlock as W, createElementBlock as I, createElementVNode as F, vModelText as Ue, toDisplayString as de, createBlock as ie, withCtx as kt, createCommentVNode as St, h as Be, render as ce, renderList as nn } from "vue";
4
- var _ = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {};
5
- function ye(e) {
6
- return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, "default") ? e.default : e;
7
- }
8
- function rn(e) {
9
- if (e.__esModule) return e;
10
- var t = e.default;
11
- if (typeof t == "function") {
12
- var n = function r() {
13
- return this instanceof r ? Reflect.construct(t, arguments, this.constructor) : t.apply(this, arguments);
14
- };
15
- n.prototype = t.prototype;
16
- } else n = {};
17
- return Object.defineProperty(n, "__esModule", { value: !0 }), Object.keys(e).forEach(function(r) {
18
- var i = Object.getOwnPropertyDescriptor(e, r);
19
- Object.defineProperty(n, r, i.get ? i : {
20
- enumerable: !0,
21
- get: function() {
22
- return e[r];
23
- }
24
- });
25
- }), n;
26
- }
27
- var Et = { exports: {} };
28
- function on(e) {
29
- 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.');
30
- }
31
- var Pe = { exports: {} };
32
- const an = {}, sn = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
33
- __proto__: null,
34
- default: an
35
- }, Symbol.toStringTag, { value: "Module" })), cn = /* @__PURE__ */ rn(sn);
36
- var Ye;
37
- function G() {
38
- return Ye || (Ye = 1, function(e, t) {
39
- (function(n, r) {
40
- e.exports = r();
41
- })(_, function() {
42
- var n = n || function(r, i) {
43
- var s;
44
- if (typeof window < "u" && window.crypto && (s = window.crypto), typeof self < "u" && self.crypto && (s = self.crypto), typeof globalThis < "u" && globalThis.crypto && (s = globalThis.crypto), !s && typeof window < "u" && window.msCrypto && (s = window.msCrypto), !s && typeof _ < "u" && _.crypto && (s = _.crypto), !s && typeof on == "function")
45
- try {
46
- s = cn;
47
- } catch {
48
- }
49
- var h = function() {
50
- if (s) {
51
- if (typeof s.getRandomValues == "function")
52
- try {
53
- return s.getRandomValues(new Uint32Array(1))[0];
54
- } catch {
55
- }
56
- if (typeof s.randomBytes == "function")
57
- try {
58
- return s.randomBytes(4).readInt32LE();
59
- } catch {
60
- }
61
- }
62
- throw new Error("Native crypto module could not be used to get secure random number.");
63
- }, l = Object.create || /* @__PURE__ */ function() {
64
- function u() {
65
- }
66
- return function(a) {
67
- var v;
68
- return u.prototype = a, v = new u(), u.prototype = null, v;
69
- };
70
- }(), k = {}, o = k.lib = {}, x = o.Base = /* @__PURE__ */ function() {
71
- return {
72
- /**
73
- * Creates a new object that inherits from this object.
74
- *
75
- * @param {Object} overrides Properties to copy into the new object.
76
- *
77
- * @return {Object} The new object.
78
- *
79
- * @static
80
- *
81
- * @example
82
- *
83
- * var MyType = CryptoJS.lib.Base.extend({
84
- * field: 'value',
85
- *
86
- * method: function () {
87
- * }
88
- * });
89
- */
90
- extend: function(u) {
91
- var a = l(this);
92
- return u && a.mixIn(u), (!a.hasOwnProperty("init") || this.init === a.init) && (a.init = function() {
93
- a.$super.init.apply(this, arguments);
94
- }), a.init.prototype = a, a.$super = this, a;
95
- },
96
- /**
97
- * Extends this object and runs the init method.
98
- * Arguments to create() will be passed to init().
99
- *
100
- * @return {Object} The new object.
101
- *
102
- * @static
103
- *
104
- * @example
105
- *
106
- * var instance = MyType.create();
107
- */
108
- create: function() {
109
- var u = this.extend();
110
- return u.init.apply(u, arguments), u;
111
- },
112
- /**
113
- * Initializes a newly created object.
114
- * Override this method to add some logic when your objects are created.
115
- *
116
- * @example
117
- *
118
- * var MyType = CryptoJS.lib.Base.extend({
119
- * init: function () {
120
- * // ...
121
- * }
122
- * });
123
- */
124
- init: function() {
125
- },
126
- /**
127
- * Copies properties into this object.
128
- *
129
- * @param {Object} properties The properties to mix in.
130
- *
131
- * @example
132
- *
133
- * MyType.mixIn({
134
- * field: 'value'
135
- * });
136
- */
137
- mixIn: function(u) {
138
- for (var a in u)
139
- u.hasOwnProperty(a) && (this[a] = u[a]);
140
- u.hasOwnProperty("toString") && (this.toString = u.toString);
141
- },
142
- /**
143
- * Creates a copy of this object.
144
- *
145
- * @return {Object} The clone.
146
- *
147
- * @example
148
- *
149
- * var clone = instance.clone();
150
- */
151
- clone: function() {
152
- return this.init.prototype.extend(this);
153
- }
154
- };
155
- }(), d = o.WordArray = x.extend({
156
- /**
157
- * Initializes a newly created word array.
158
- *
159
- * @param {Array} words (Optional) An array of 32-bit words.
160
- * @param {number} sigBytes (Optional) The number of significant bytes in the words.
161
- *
162
- * @example
163
- *
164
- * var wordArray = CryptoJS.lib.WordArray.create();
165
- * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]);
166
- * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6);
167
- */
168
- init: function(u, a) {
169
- u = this.words = u || [], a != i ? this.sigBytes = a : this.sigBytes = u.length * 4;
170
- },
171
- /**
172
- * Converts this word array to a string.
173
- *
174
- * @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex
175
- *
176
- * @return {string} The stringified word array.
177
- *
178
- * @example
179
- *
180
- * var string = wordArray + '';
181
- * var string = wordArray.toString();
182
- * var string = wordArray.toString(CryptoJS.enc.Utf8);
183
- */
184
- toString: function(u) {
185
- return (u || p).stringify(this);
186
- },
187
- /**
188
- * Concatenates a word array to this word array.
189
- *
190
- * @param {WordArray} wordArray The word array to append.
191
- *
192
- * @return {WordArray} This word array.
193
- *
194
- * @example
195
- *
196
- * wordArray1.concat(wordArray2);
197
- */
198
- concat: function(u) {
199
- var a = this.words, v = u.words, S = this.sigBytes, w = u.sigBytes;
200
- if (this.clamp(), S % 4)
201
- for (var D = 0; D < w; D++) {
202
- var H = v[D >>> 2] >>> 24 - D % 4 * 8 & 255;
203
- a[S + D >>> 2] |= H << 24 - (S + D) % 4 * 8;
204
- }
205
- else
206
- for (var M = 0; M < w; M += 4)
207
- a[S + M >>> 2] = v[M >>> 2];
208
- return this.sigBytes += w, this;
209
- },
210
- /**
211
- * Removes insignificant bits.
212
- *
213
- * @example
214
- *
215
- * wordArray.clamp();
216
- */
217
- clamp: function() {
218
- var u = this.words, a = this.sigBytes;
219
- u[a >>> 2] &= 4294967295 << 32 - a % 4 * 8, u.length = r.ceil(a / 4);
220
- },
221
- /**
222
- * Creates a copy of this word array.
223
- *
224
- * @return {WordArray} The clone.
225
- *
226
- * @example
227
- *
228
- * var clone = wordArray.clone();
229
- */
230
- clone: function() {
231
- var u = x.clone.call(this);
232
- return u.words = this.words.slice(0), u;
233
- },
234
- /**
235
- * Creates a word array filled with random bytes.
236
- *
237
- * @param {number} nBytes The number of random bytes to generate.
238
- *
239
- * @return {WordArray} The random word array.
240
- *
241
- * @static
242
- *
243
- * @example
244
- *
245
- * var wordArray = CryptoJS.lib.WordArray.random(16);
246
- */
247
- random: function(u) {
248
- for (var a = [], v = 0; v < u; v += 4)
249
- a.push(h());
250
- return new d.init(a, u);
251
- }
252
- }), f = k.enc = {}, p = f.Hex = {
253
- /**
254
- * Converts a word array to a hex string.
255
- *
256
- * @param {WordArray} wordArray The word array.
257
- *
258
- * @return {string} The hex string.
259
- *
260
- * @static
261
- *
262
- * @example
263
- *
264
- * var hexString = CryptoJS.enc.Hex.stringify(wordArray);
265
- */
266
- stringify: function(u) {
267
- for (var a = u.words, v = u.sigBytes, S = [], w = 0; w < v; w++) {
268
- var D = a[w >>> 2] >>> 24 - w % 4 * 8 & 255;
269
- S.push((D >>> 4).toString(16)), S.push((D & 15).toString(16));
270
- }
271
- return S.join("");
272
- },
273
- /**
274
- * Converts a hex string to a word array.
275
- *
276
- * @param {string} hexStr The hex string.
277
- *
278
- * @return {WordArray} The word array.
279
- *
280
- * @static
281
- *
282
- * @example
283
- *
284
- * var wordArray = CryptoJS.enc.Hex.parse(hexString);
285
- */
286
- parse: function(u) {
287
- for (var a = u.length, v = [], S = 0; S < a; S += 2)
288
- v[S >>> 3] |= parseInt(u.substr(S, 2), 16) << 24 - S % 8 * 4;
289
- return new d.init(v, a / 2);
290
- }
291
- }, P = f.Latin1 = {
292
- /**
293
- * Converts a word array to a Latin1 string.
294
- *
295
- * @param {WordArray} wordArray The word array.
296
- *
297
- * @return {string} The Latin1 string.
298
- *
299
- * @static
300
- *
301
- * @example
302
- *
303
- * var latin1String = CryptoJS.enc.Latin1.stringify(wordArray);
304
- */
305
- stringify: function(u) {
306
- for (var a = u.words, v = u.sigBytes, S = [], w = 0; w < v; w++) {
307
- var D = a[w >>> 2] >>> 24 - w % 4 * 8 & 255;
308
- S.push(String.fromCharCode(D));
309
- }
310
- return S.join("");
311
- },
312
- /**
313
- * Converts a Latin1 string to a word array.
314
- *
315
- * @param {string} latin1Str The Latin1 string.
316
- *
317
- * @return {WordArray} The word array.
318
- *
319
- * @static
320
- *
321
- * @example
322
- *
323
- * var wordArray = CryptoJS.enc.Latin1.parse(latin1String);
324
- */
325
- parse: function(u) {
326
- for (var a = u.length, v = [], S = 0; S < a; S++)
327
- v[S >>> 2] |= (u.charCodeAt(S) & 255) << 24 - S % 4 * 8;
328
- return new d.init(v, a);
329
- }
330
- }, y = f.Utf8 = {
331
- /**
332
- * Converts a word array to a UTF-8 string.
333
- *
334
- * @param {WordArray} wordArray The word array.
335
- *
336
- * @return {string} The UTF-8 string.
337
- *
338
- * @static
339
- *
340
- * @example
341
- *
342
- * var utf8String = CryptoJS.enc.Utf8.stringify(wordArray);
343
- */
344
- stringify: function(u) {
345
- try {
346
- return decodeURIComponent(escape(P.stringify(u)));
347
- } catch {
348
- throw new Error("Malformed UTF-8 data");
349
- }
350
- },
351
- /**
352
- * Converts a UTF-8 string to a word array.
353
- *
354
- * @param {string} utf8Str The UTF-8 string.
355
- *
356
- * @return {WordArray} The word array.
357
- *
358
- * @static
359
- *
360
- * @example
361
- *
362
- * var wordArray = CryptoJS.enc.Utf8.parse(utf8String);
363
- */
364
- parse: function(u) {
365
- return P.parse(unescape(encodeURIComponent(u)));
366
- }
367
- }, E = o.BufferedBlockAlgorithm = x.extend({
368
- /**
369
- * Resets this block algorithm's data buffer to its initial state.
370
- *
371
- * @example
372
- *
373
- * bufferedBlockAlgorithm.reset();
374
- */
375
- reset: function() {
376
- this._data = new d.init(), this._nDataBytes = 0;
377
- },
378
- /**
379
- * Adds new data to this block algorithm's buffer.
380
- *
381
- * @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8.
382
- *
383
- * @example
384
- *
385
- * bufferedBlockAlgorithm._append('data');
386
- * bufferedBlockAlgorithm._append(wordArray);
387
- */
388
- _append: function(u) {
389
- typeof u == "string" && (u = y.parse(u)), this._data.concat(u), this._nDataBytes += u.sigBytes;
390
- },
391
- /**
392
- * Processes available data blocks.
393
- *
394
- * This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype.
395
- *
396
- * @param {boolean} doFlush Whether all blocks and partial blocks should be processed.
397
- *
398
- * @return {WordArray} The processed data.
399
- *
400
- * @example
401
- *
402
- * var processedData = bufferedBlockAlgorithm._process();
403
- * var processedData = bufferedBlockAlgorithm._process(!!'flush');
404
- */
405
- _process: function(u) {
406
- var a, v = this._data, S = v.words, w = v.sigBytes, D = this.blockSize, H = D * 4, M = w / H;
407
- u ? M = r.ceil(M) : M = r.max((M | 0) - this._minBufferSize, 0);
408
- var c = M * D, m = r.min(c * 4, w);
409
- if (c) {
410
- for (var O = 0; O < c; O += D)
411
- this._doProcessBlock(S, O);
412
- a = S.splice(0, c), v.sigBytes -= m;
413
- }
414
- return new d.init(a, m);
415
- },
416
- /**
417
- * Creates a copy of this object.
418
- *
419
- * @return {Object} The clone.
420
- *
421
- * @example
422
- *
423
- * var clone = bufferedBlockAlgorithm.clone();
424
- */
425
- clone: function() {
426
- var u = x.clone.call(this);
427
- return u._data = this._data.clone(), u;
428
- },
429
- _minBufferSize: 0
430
- });
431
- o.Hasher = E.extend({
432
- /**
433
- * Configuration options.
434
- */
435
- cfg: x.extend(),
436
- /**
437
- * Initializes a newly created hasher.
438
- *
439
- * @param {Object} cfg (Optional) The configuration options to use for this hash computation.
440
- *
441
- * @example
442
- *
443
- * var hasher = CryptoJS.algo.SHA256.create();
444
- */
445
- init: function(u) {
446
- this.cfg = this.cfg.extend(u), this.reset();
447
- },
448
- /**
449
- * Resets this hasher to its initial state.
450
- *
451
- * @example
452
- *
453
- * hasher.reset();
454
- */
455
- reset: function() {
456
- E.reset.call(this), this._doReset();
457
- },
458
- /**
459
- * Updates this hasher with a message.
460
- *
461
- * @param {WordArray|string} messageUpdate The message to append.
462
- *
463
- * @return {Hasher} This hasher.
464
- *
465
- * @example
466
- *
467
- * hasher.update('message');
468
- * hasher.update(wordArray);
469
- */
470
- update: function(u) {
471
- return this._append(u), this._process(), this;
472
- },
473
- /**
474
- * Finalizes the hash computation.
475
- * Note that the finalize operation is effectively a destructive, read-once operation.
476
- *
477
- * @param {WordArray|string} messageUpdate (Optional) A final message update.
478
- *
479
- * @return {WordArray} The hash.
480
- *
481
- * @example
482
- *
483
- * var hash = hasher.finalize();
484
- * var hash = hasher.finalize('message');
485
- * var hash = hasher.finalize(wordArray);
486
- */
487
- finalize: function(u) {
488
- u && this._append(u);
489
- var a = this._doFinalize();
490
- return a;
491
- },
492
- blockSize: 16,
493
- /**
494
- * Creates a shortcut function to a hasher's object interface.
495
- *
496
- * @param {Hasher} hasher The hasher to create a helper for.
497
- *
498
- * @return {Function} The shortcut function.
499
- *
500
- * @static
501
- *
502
- * @example
503
- *
504
- * var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256);
505
- */
506
- _createHelper: function(u) {
507
- return function(a, v) {
508
- return new u.init(v).finalize(a);
509
- };
510
- },
511
- /**
512
- * Creates a shortcut function to the HMAC's object interface.
513
- *
514
- * @param {Hasher} hasher The hasher to use in this HMAC helper.
515
- *
516
- * @return {Function} The shortcut function.
517
- *
518
- * @static
519
- *
520
- * @example
521
- *
522
- * var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256);
523
- */
524
- _createHmacHelper: function(u) {
525
- return function(a, v) {
526
- return new z.HMAC.init(u, v).finalize(a);
527
- };
528
- }
529
- });
530
- var z = k.algo = {};
531
- return k;
532
- }(Math);
533
- return n;
534
- });
535
- }(Pe)), Pe.exports;
536
- }
537
- var Oe = { exports: {} }, qe;
538
- function un() {
539
- return qe || (qe = 1, function(e, t) {
540
- (function(n, r) {
541
- e.exports = r(G());
542
- })(_, function(n) {
543
- return function() {
544
- var r = n, i = r.lib, s = i.WordArray, h = r.enc;
545
- h.Base64 = {
546
- /**
547
- * Converts a word array to a Base64 string.
548
- *
549
- * @param {WordArray} wordArray The word array.
550
- *
551
- * @return {string} The Base64 string.
552
- *
553
- * @static
554
- *
555
- * @example
556
- *
557
- * var base64String = CryptoJS.enc.Base64.stringify(wordArray);
558
- */
559
- stringify: function(k) {
560
- var o = k.words, x = k.sigBytes, d = this._map;
561
- k.clamp();
562
- for (var f = [], p = 0; p < x; p += 3)
563
- for (var P = o[p >>> 2] >>> 24 - p % 4 * 8 & 255, y = o[p + 1 >>> 2] >>> 24 - (p + 1) % 4 * 8 & 255, E = o[p + 2 >>> 2] >>> 24 - (p + 2) % 4 * 8 & 255, z = P << 16 | y << 8 | E, u = 0; u < 4 && p + u * 0.75 < x; u++)
564
- f.push(d.charAt(z >>> 6 * (3 - u) & 63));
565
- var a = d.charAt(64);
566
- if (a)
567
- for (; f.length % 4; )
568
- f.push(a);
569
- return f.join("");
570
- },
571
- /**
572
- * Converts a Base64 string to a word array.
573
- *
574
- * @param {string} base64Str The Base64 string.
575
- *
576
- * @return {WordArray} The word array.
577
- *
578
- * @static
579
- *
580
- * @example
581
- *
582
- * var wordArray = CryptoJS.enc.Base64.parse(base64String);
583
- */
584
- parse: function(k) {
585
- var o = k.length, x = this._map, d = this._reverseMap;
586
- if (!d) {
587
- d = this._reverseMap = [];
588
- for (var f = 0; f < x.length; f++)
589
- d[x.charCodeAt(f)] = f;
590
- }
591
- var p = x.charAt(64);
592
- if (p) {
593
- var P = k.indexOf(p);
594
- P !== -1 && (o = P);
595
- }
596
- return l(k, o, d);
597
- },
598
- _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="
599
- };
600
- function l(k, o, x) {
601
- for (var d = [], f = 0, p = 0; p < o; p++)
602
- if (p % 4) {
603
- var P = x[k.charCodeAt(p - 1)] << p % 4 * 2, y = x[k.charCodeAt(p)] >>> 6 - p % 4 * 2, E = P | y;
604
- d[f >>> 2] |= E << 24 - f % 4 * 8, f++;
605
- }
606
- return s.create(d, f);
607
- }
608
- }(), n.enc.Base64;
609
- });
610
- }(Oe)), Oe.exports;
611
- }
612
- var De = { exports: {} }, Xe;
613
- function ln() {
614
- return Xe || (Xe = 1, function(e, t) {
615
- (function(n, r) {
616
- e.exports = r(G());
617
- })(_, function(n) {
618
- return function(r) {
619
- var i = n, s = i.lib, h = s.WordArray, l = s.Hasher, k = i.algo, o = [];
620
- (function() {
621
- for (var y = 0; y < 64; y++)
622
- o[y] = r.abs(r.sin(y + 1)) * 4294967296 | 0;
623
- })();
624
- var x = k.MD5 = l.extend({
625
- _doReset: function() {
626
- this._hash = new h.init([
627
- 1732584193,
628
- 4023233417,
629
- 2562383102,
630
- 271733878
631
- ]);
632
- },
633
- _doProcessBlock: function(y, E) {
634
- for (var z = 0; z < 16; z++) {
635
- var u = E + z, a = y[u];
636
- y[u] = (a << 8 | a >>> 24) & 16711935 | (a << 24 | a >>> 8) & 4278255360;
637
- }
638
- var v = this._hash.words, S = y[E + 0], w = y[E + 1], D = y[E + 2], H = y[E + 3], M = y[E + 4], c = y[E + 5], m = y[E + 6], O = y[E + 7], A = y[E + 8], T = y[E + 9], L = y[E + 10], j = y[E + 11], J = y[E + 12], Y = y[E + 13], q = y[E + 14], X = y[E + 15], g = v[0], b = v[1], B = v[2], C = v[3];
639
- g = d(g, b, B, C, S, 7, o[0]), C = d(C, g, b, B, w, 12, o[1]), B = d(B, C, g, b, D, 17, o[2]), b = d(b, B, C, g, H, 22, o[3]), g = d(g, b, B, C, M, 7, o[4]), C = d(C, g, b, B, c, 12, o[5]), B = d(B, C, g, b, m, 17, o[6]), b = d(b, B, C, g, O, 22, o[7]), g = d(g, b, B, C, A, 7, o[8]), C = d(C, g, b, B, T, 12, o[9]), B = d(B, C, g, b, L, 17, o[10]), b = d(b, B, C, g, j, 22, o[11]), g = d(g, b, B, C, J, 7, o[12]), C = d(C, g, b, B, Y, 12, o[13]), B = d(B, C, g, b, q, 17, o[14]), b = d(b, B, C, g, X, 22, o[15]), g = f(g, b, B, C, w, 5, o[16]), C = f(C, g, b, B, m, 9, o[17]), B = f(B, C, g, b, j, 14, o[18]), b = f(b, B, C, g, S, 20, o[19]), g = f(g, b, B, C, c, 5, o[20]), C = f(C, g, b, B, L, 9, o[21]), B = f(B, C, g, b, X, 14, o[22]), b = f(b, B, C, g, M, 20, o[23]), g = f(g, b, B, C, T, 5, o[24]), C = f(C, g, b, B, q, 9, o[25]), B = f(B, C, g, b, H, 14, o[26]), b = f(b, B, C, g, A, 20, o[27]), g = f(g, b, B, C, Y, 5, o[28]), C = f(C, g, b, B, D, 9, o[29]), B = f(B, C, g, b, O, 14, o[30]), b = f(b, B, C, g, J, 20, o[31]), g = p(g, b, B, C, c, 4, o[32]), C = p(C, g, b, B, A, 11, o[33]), B = p(B, C, g, b, j, 16, o[34]), b = p(b, B, C, g, q, 23, o[35]), g = p(g, b, B, C, w, 4, o[36]), C = p(C, g, b, B, M, 11, o[37]), B = p(B, C, g, b, O, 16, o[38]), b = p(b, B, C, g, L, 23, o[39]), g = p(g, b, B, C, Y, 4, o[40]), C = p(C, g, b, B, S, 11, o[41]), B = p(B, C, g, b, H, 16, o[42]), b = p(b, B, C, g, m, 23, o[43]), g = p(g, b, B, C, T, 4, o[44]), C = p(C, g, b, B, J, 11, o[45]), B = p(B, C, g, b, X, 16, o[46]), b = p(b, B, C, g, D, 23, o[47]), g = P(g, b, B, C, S, 6, o[48]), C = P(C, g, b, B, O, 10, o[49]), B = P(B, C, g, b, q, 15, o[50]), b = P(b, B, C, g, c, 21, o[51]), g = P(g, b, B, C, J, 6, o[52]), C = P(C, g, b, B, H, 10, o[53]), B = P(B, C, g, b, L, 15, o[54]), b = P(b, B, C, g, w, 21, o[55]), g = P(g, b, B, C, A, 6, o[56]), C = P(C, g, b, B, X, 10, o[57]), B = P(B, C, g, b, m, 15, o[58]), b = P(b, B, C, g, Y, 21, o[59]), g = P(g, b, B, C, M, 6, o[60]), C = P(C, g, b, B, j, 10, o[61]), B = P(B, C, g, b, D, 15, o[62]), b = P(b, B, C, g, T, 21, o[63]), v[0] = v[0] + g | 0, v[1] = v[1] + b | 0, v[2] = v[2] + B | 0, v[3] = v[3] + C | 0;
640
- },
641
- _doFinalize: function() {
642
- var y = this._data, E = y.words, z = this._nDataBytes * 8, u = y.sigBytes * 8;
643
- E[u >>> 5] |= 128 << 24 - u % 32;
644
- var a = r.floor(z / 4294967296), v = z;
645
- E[(u + 64 >>> 9 << 4) + 15] = (a << 8 | a >>> 24) & 16711935 | (a << 24 | a >>> 8) & 4278255360, E[(u + 64 >>> 9 << 4) + 14] = (v << 8 | v >>> 24) & 16711935 | (v << 24 | v >>> 8) & 4278255360, y.sigBytes = (E.length + 1) * 4, this._process();
646
- for (var S = this._hash, w = S.words, D = 0; D < 4; D++) {
647
- var H = w[D];
648
- w[D] = (H << 8 | H >>> 24) & 16711935 | (H << 24 | H >>> 8) & 4278255360;
649
- }
650
- return S;
651
- },
652
- clone: function() {
653
- var y = l.clone.call(this);
654
- return y._hash = this._hash.clone(), y;
655
- }
656
- });
657
- function d(y, E, z, u, a, v, S) {
658
- var w = y + (E & z | ~E & u) + a + S;
659
- return (w << v | w >>> 32 - v) + E;
660
- }
661
- function f(y, E, z, u, a, v, S) {
662
- var w = y + (E & u | z & ~u) + a + S;
663
- return (w << v | w >>> 32 - v) + E;
664
- }
665
- function p(y, E, z, u, a, v, S) {
666
- var w = y + (E ^ z ^ u) + a + S;
667
- return (w << v | w >>> 32 - v) + E;
668
- }
669
- function P(y, E, z, u, a, v, S) {
670
- var w = y + (z ^ (E | ~u)) + a + S;
671
- return (w << v | w >>> 32 - v) + E;
672
- }
673
- i.MD5 = l._createHelper(x), i.HmacMD5 = l._createHmacHelper(x);
674
- }(Math), n.MD5;
675
- });
676
- }(De)), De.exports;
677
- }
678
- var Te = { exports: {} }, Le = { exports: {} }, $e;
679
- function fn() {
680
- return $e || ($e = 1, function(e, t) {
681
- (function(n, r) {
682
- e.exports = r(G());
683
- })(_, function(n) {
684
- return function() {
685
- var r = n, i = r.lib, s = i.WordArray, h = i.Hasher, l = r.algo, k = [], o = l.SHA1 = h.extend({
686
- _doReset: function() {
687
- this._hash = new s.init([
688
- 1732584193,
689
- 4023233417,
690
- 2562383102,
691
- 271733878,
692
- 3285377520
693
- ]);
694
- },
695
- _doProcessBlock: function(x, d) {
696
- for (var f = this._hash.words, p = f[0], P = f[1], y = f[2], E = f[3], z = f[4], u = 0; u < 80; u++) {
697
- if (u < 16)
698
- k[u] = x[d + u] | 0;
699
- else {
700
- var a = k[u - 3] ^ k[u - 8] ^ k[u - 14] ^ k[u - 16];
701
- k[u] = a << 1 | a >>> 31;
702
- }
703
- var v = (p << 5 | p >>> 27) + z + k[u];
704
- u < 20 ? v += (P & y | ~P & E) + 1518500249 : u < 40 ? v += (P ^ y ^ E) + 1859775393 : u < 60 ? v += (P & y | P & E | y & E) - 1894007588 : v += (P ^ y ^ E) - 899497514, z = E, E = y, y = P << 30 | P >>> 2, P = p, p = v;
705
- }
706
- f[0] = f[0] + p | 0, f[1] = f[1] + P | 0, f[2] = f[2] + y | 0, f[3] = f[3] + E | 0, f[4] = f[4] + z | 0;
707
- },
708
- _doFinalize: function() {
709
- var x = this._data, d = x.words, f = this._nDataBytes * 8, p = x.sigBytes * 8;
710
- return d[p >>> 5] |= 128 << 24 - p % 32, d[(p + 64 >>> 9 << 4) + 14] = Math.floor(f / 4294967296), d[(p + 64 >>> 9 << 4) + 15] = f, x.sigBytes = d.length * 4, this._process(), this._hash;
711
- },
712
- clone: function() {
713
- var x = h.clone.call(this);
714
- return x._hash = this._hash.clone(), x;
715
- }
716
- });
717
- r.SHA1 = h._createHelper(o), r.HmacSHA1 = h._createHmacHelper(o);
718
- }(), n.SHA1;
719
- });
720
- }(Le)), Le.exports;
721
- }
722
- var ze = { exports: {} }, et;
723
- function dn() {
724
- return et || (et = 1, function(e, t) {
725
- (function(n, r) {
726
- e.exports = r(G());
727
- })(_, function(n) {
728
- (function() {
729
- var r = n, i = r.lib, s = i.Base, h = r.enc, l = h.Utf8, k = r.algo;
730
- k.HMAC = s.extend({
731
- /**
732
- * Initializes a newly created HMAC.
733
- *
734
- * @param {Hasher} hasher The hash algorithm to use.
735
- * @param {WordArray|string} key The secret key.
736
- *
737
- * @example
738
- *
739
- * var hmacHasher = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256, key);
740
- */
741
- init: function(o, x) {
742
- o = this._hasher = new o.init(), typeof x == "string" && (x = l.parse(x));
743
- var d = o.blockSize, f = d * 4;
744
- x.sigBytes > f && (x = o.finalize(x)), x.clamp();
745
- for (var p = this._oKey = x.clone(), P = this._iKey = x.clone(), y = p.words, E = P.words, z = 0; z < d; z++)
746
- y[z] ^= 1549556828, E[z] ^= 909522486;
747
- p.sigBytes = P.sigBytes = f, this.reset();
748
- },
749
- /**
750
- * Resets this HMAC to its initial state.
751
- *
752
- * @example
753
- *
754
- * hmacHasher.reset();
755
- */
756
- reset: function() {
757
- var o = this._hasher;
758
- o.reset(), o.update(this._iKey);
759
- },
760
- /**
761
- * Updates this HMAC with a message.
762
- *
763
- * @param {WordArray|string} messageUpdate The message to append.
764
- *
765
- * @return {HMAC} This HMAC instance.
766
- *
767
- * @example
768
- *
769
- * hmacHasher.update('message');
770
- * hmacHasher.update(wordArray);
771
- */
772
- update: function(o) {
773
- return this._hasher.update(o), this;
774
- },
775
- /**
776
- * Finalizes the HMAC computation.
777
- * Note that the finalize operation is effectively a destructive, read-once operation.
778
- *
779
- * @param {WordArray|string} messageUpdate (Optional) A final message update.
780
- *
781
- * @return {WordArray} The HMAC.
782
- *
783
- * @example
784
- *
785
- * var hmac = hmacHasher.finalize();
786
- * var hmac = hmacHasher.finalize('message');
787
- * var hmac = hmacHasher.finalize(wordArray);
788
- */
789
- finalize: function(o) {
790
- var x = this._hasher, d = x.finalize(o);
791
- x.reset();
792
- var f = x.finalize(this._oKey.clone().concat(d));
793
- return f;
794
- }
795
- });
796
- })();
797
- });
798
- }(ze)), ze.exports;
799
- }
800
- var tt;
801
- function Pt() {
802
- return tt || (tt = 1, function(e, t) {
803
- (function(n, r, i) {
804
- e.exports = r(G(), fn(), dn());
805
- })(_, function(n) {
806
- return function() {
807
- var r = n, i = r.lib, s = i.Base, h = i.WordArray, l = r.algo, k = l.MD5, o = l.EvpKDF = s.extend({
808
- /**
809
- * Configuration options.
810
- *
811
- * @property {number} keySize The key size in words to generate. Default: 4 (128 bits)
812
- * @property {Hasher} hasher The hash algorithm to use. Default: MD5
813
- * @property {number} iterations The number of iterations to perform. Default: 1
814
- */
815
- cfg: s.extend({
816
- keySize: 128 / 32,
817
- hasher: k,
818
- iterations: 1
819
- }),
820
- /**
821
- * Initializes a newly created key derivation function.
822
- *
823
- * @param {Object} cfg (Optional) The configuration options to use for the derivation.
824
- *
825
- * @example
826
- *
827
- * var kdf = CryptoJS.algo.EvpKDF.create();
828
- * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8 });
829
- * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8, iterations: 1000 });
830
- */
831
- init: function(x) {
832
- this.cfg = this.cfg.extend(x);
833
- },
834
- /**
835
- * Derives a key from a password.
836
- *
837
- * @param {WordArray|string} password The password.
838
- * @param {WordArray|string} salt A salt.
839
- *
840
- * @return {WordArray} The derived key.
841
- *
842
- * @example
843
- *
844
- * var key = kdf.compute(password, salt);
845
- */
846
- compute: function(x, d) {
847
- for (var f, p = this.cfg, P = p.hasher.create(), y = h.create(), E = y.words, z = p.keySize, u = p.iterations; E.length < z; ) {
848
- f && P.update(f), f = P.update(x).finalize(d), P.reset();
849
- for (var a = 1; a < u; a++)
850
- f = P.finalize(f), P.reset();
851
- y.concat(f);
852
- }
853
- return y.sigBytes = z * 4, y;
854
- }
855
- });
856
- r.EvpKDF = function(x, d, f) {
857
- return o.create(f).compute(x, d);
858
- };
859
- }(), n.EvpKDF;
860
- });
861
- }(Te)), Te.exports;
862
- }
863
- var Me = { exports: {} }, nt;
864
- function Ze() {
865
- return nt || (nt = 1, function(e, t) {
866
- (function(n, r, i) {
867
- e.exports = r(G(), Pt());
868
- })(_, function(n) {
869
- n.lib.Cipher || function(r) {
870
- var i = n, s = i.lib, h = s.Base, l = s.WordArray, k = s.BufferedBlockAlgorithm, o = i.enc;
871
- o.Utf8;
872
- var x = o.Base64, d = i.algo, f = d.EvpKDF, p = s.Cipher = k.extend({
873
- /**
874
- * Configuration options.
875
- *
876
- * @property {WordArray} iv The IV to use for this operation.
877
- */
878
- cfg: h.extend(),
879
- /**
880
- * Creates this cipher in encryption mode.
881
- *
882
- * @param {WordArray} key The key.
883
- * @param {Object} cfg (Optional) The configuration options to use for this operation.
884
- *
885
- * @return {Cipher} A cipher instance.
886
- *
887
- * @static
888
- *
889
- * @example
890
- *
891
- * var cipher = CryptoJS.algo.AES.createEncryptor(keyWordArray, { iv: ivWordArray });
892
- */
893
- createEncryptor: function(c, m) {
894
- return this.create(this._ENC_XFORM_MODE, c, m);
895
- },
896
- /**
897
- * Creates this cipher in decryption mode.
898
- *
899
- * @param {WordArray} key The key.
900
- * @param {Object} cfg (Optional) The configuration options to use for this operation.
901
- *
902
- * @return {Cipher} A cipher instance.
903
- *
904
- * @static
905
- *
906
- * @example
907
- *
908
- * var cipher = CryptoJS.algo.AES.createDecryptor(keyWordArray, { iv: ivWordArray });
909
- */
910
- createDecryptor: function(c, m) {
911
- return this.create(this._DEC_XFORM_MODE, c, m);
912
- },
913
- /**
914
- * Initializes a newly created cipher.
915
- *
916
- * @param {number} xformMode Either the encryption or decryption transormation mode constant.
917
- * @param {WordArray} key The key.
918
- * @param {Object} cfg (Optional) The configuration options to use for this operation.
919
- *
920
- * @example
921
- *
922
- * var cipher = CryptoJS.algo.AES.create(CryptoJS.algo.AES._ENC_XFORM_MODE, keyWordArray, { iv: ivWordArray });
923
- */
924
- init: function(c, m, O) {
925
- this.cfg = this.cfg.extend(O), this._xformMode = c, this._key = m, this.reset();
926
- },
927
- /**
928
- * Resets this cipher to its initial state.
929
- *
930
- * @example
931
- *
932
- * cipher.reset();
933
- */
934
- reset: function() {
935
- k.reset.call(this), this._doReset();
936
- },
937
- /**
938
- * Adds data to be encrypted or decrypted.
939
- *
940
- * @param {WordArray|string} dataUpdate The data to encrypt or decrypt.
941
- *
942
- * @return {WordArray} The data after processing.
943
- *
944
- * @example
945
- *
946
- * var encrypted = cipher.process('data');
947
- * var encrypted = cipher.process(wordArray);
948
- */
949
- process: function(c) {
950
- return this._append(c), this._process();
951
- },
952
- /**
953
- * Finalizes the encryption or decryption process.
954
- * Note that the finalize operation is effectively a destructive, read-once operation.
955
- *
956
- * @param {WordArray|string} dataUpdate The final data to encrypt or decrypt.
957
- *
958
- * @return {WordArray} The data after final processing.
959
- *
960
- * @example
961
- *
962
- * var encrypted = cipher.finalize();
963
- * var encrypted = cipher.finalize('data');
964
- * var encrypted = cipher.finalize(wordArray);
965
- */
966
- finalize: function(c) {
967
- c && this._append(c);
968
- var m = this._doFinalize();
969
- return m;
970
- },
971
- keySize: 128 / 32,
972
- ivSize: 128 / 32,
973
- _ENC_XFORM_MODE: 1,
974
- _DEC_XFORM_MODE: 2,
975
- /**
976
- * Creates shortcut functions to a cipher's object interface.
977
- *
978
- * @param {Cipher} cipher The cipher to create a helper for.
979
- *
980
- * @return {Object} An object with encrypt and decrypt shortcut functions.
981
- *
982
- * @static
983
- *
984
- * @example
985
- *
986
- * var AES = CryptoJS.lib.Cipher._createHelper(CryptoJS.algo.AES);
987
- */
988
- _createHelper: /* @__PURE__ */ function() {
989
- function c(m) {
990
- return typeof m == "string" ? M : w;
991
- }
992
- return function(m) {
993
- return {
994
- encrypt: function(O, A, T) {
995
- return c(A).encrypt(m, O, A, T);
996
- },
997
- decrypt: function(O, A, T) {
998
- return c(A).decrypt(m, O, A, T);
999
- }
1000
- };
1001
- };
1002
- }()
1003
- });
1004
- s.StreamCipher = p.extend({
1005
- _doFinalize: function() {
1006
- var c = this._process(!0);
1007
- return c;
1008
- },
1009
- blockSize: 1
1010
- });
1011
- var P = i.mode = {}, y = s.BlockCipherMode = h.extend({
1012
- /**
1013
- * Creates this mode for encryption.
1014
- *
1015
- * @param {Cipher} cipher A block cipher instance.
1016
- * @param {Array} iv The IV words.
1017
- *
1018
- * @static
1019
- *
1020
- * @example
1021
- *
1022
- * var mode = CryptoJS.mode.CBC.createEncryptor(cipher, iv.words);
1023
- */
1024
- createEncryptor: function(c, m) {
1025
- return this.Encryptor.create(c, m);
1026
- },
1027
- /**
1028
- * Creates this mode for decryption.
1029
- *
1030
- * @param {Cipher} cipher A block cipher instance.
1031
- * @param {Array} iv The IV words.
1032
- *
1033
- * @static
1034
- *
1035
- * @example
1036
- *
1037
- * var mode = CryptoJS.mode.CBC.createDecryptor(cipher, iv.words);
1038
- */
1039
- createDecryptor: function(c, m) {
1040
- return this.Decryptor.create(c, m);
1041
- },
1042
- /**
1043
- * Initializes a newly created mode.
1044
- *
1045
- * @param {Cipher} cipher A block cipher instance.
1046
- * @param {Array} iv The IV words.
1047
- *
1048
- * @example
1049
- *
1050
- * var mode = CryptoJS.mode.CBC.Encryptor.create(cipher, iv.words);
1051
- */
1052
- init: function(c, m) {
1053
- this._cipher = c, this._iv = m;
1054
- }
1055
- }), E = P.CBC = function() {
1056
- var c = y.extend();
1057
- c.Encryptor = c.extend({
1058
- /**
1059
- * Processes the data block at offset.
1060
- *
1061
- * @param {Array} words The data words to operate on.
1062
- * @param {number} offset The offset where the block starts.
1063
- *
1064
- * @example
1065
- *
1066
- * mode.processBlock(data.words, offset);
1067
- */
1068
- processBlock: function(O, A) {
1069
- var T = this._cipher, L = T.blockSize;
1070
- m.call(this, O, A, L), T.encryptBlock(O, A), this._prevBlock = O.slice(A, A + L);
1071
- }
1072
- }), c.Decryptor = c.extend({
1073
- /**
1074
- * Processes the data block at offset.
1075
- *
1076
- * @param {Array} words The data words to operate on.
1077
- * @param {number} offset The offset where the block starts.
1078
- *
1079
- * @example
1080
- *
1081
- * mode.processBlock(data.words, offset);
1082
- */
1083
- processBlock: function(O, A) {
1084
- var T = this._cipher, L = T.blockSize, j = O.slice(A, A + L);
1085
- T.decryptBlock(O, A), m.call(this, O, A, L), this._prevBlock = j;
1086
- }
1087
- });
1088
- function m(O, A, T) {
1089
- var L, j = this._iv;
1090
- j ? (L = j, this._iv = r) : L = this._prevBlock;
1091
- for (var J = 0; J < T; J++)
1092
- O[A + J] ^= L[J];
1093
- }
1094
- return c;
1095
- }(), z = i.pad = {}, u = z.Pkcs7 = {
1096
- /**
1097
- * Pads data using the algorithm defined in PKCS #5/7.
1098
- *
1099
- * @param {WordArray} data The data to pad.
1100
- * @param {number} blockSize The multiple that the data should be padded to.
1101
- *
1102
- * @static
1103
- *
1104
- * @example
1105
- *
1106
- * CryptoJS.pad.Pkcs7.pad(wordArray, 4);
1107
- */
1108
- pad: function(c, m) {
1109
- for (var O = m * 4, A = O - c.sigBytes % O, T = A << 24 | A << 16 | A << 8 | A, L = [], j = 0; j < A; j += 4)
1110
- L.push(T);
1111
- var J = l.create(L, A);
1112
- c.concat(J);
1113
- },
1114
- /**
1115
- * Unpads data that had been padded using the algorithm defined in PKCS #5/7.
1116
- *
1117
- * @param {WordArray} data The data to unpad.
1118
- *
1119
- * @static
1120
- *
1121
- * @example
1122
- *
1123
- * CryptoJS.pad.Pkcs7.unpad(wordArray);
1124
- */
1125
- unpad: function(c) {
1126
- var m = c.words[c.sigBytes - 1 >>> 2] & 255;
1127
- c.sigBytes -= m;
1128
- }
1129
- };
1130
- s.BlockCipher = p.extend({
1131
- /**
1132
- * Configuration options.
1133
- *
1134
- * @property {Mode} mode The block mode to use. Default: CBC
1135
- * @property {Padding} padding The padding strategy to use. Default: Pkcs7
1136
- */
1137
- cfg: p.cfg.extend({
1138
- mode: E,
1139
- padding: u
1140
- }),
1141
- reset: function() {
1142
- var c;
1143
- p.reset.call(this);
1144
- var m = this.cfg, O = m.iv, A = m.mode;
1145
- this._xformMode == this._ENC_XFORM_MODE ? c = A.createEncryptor : (c = A.createDecryptor, this._minBufferSize = 1), this._mode && this._mode.__creator == c ? this._mode.init(this, O && O.words) : (this._mode = c.call(A, this, O && O.words), this._mode.__creator = c);
1146
- },
1147
- _doProcessBlock: function(c, m) {
1148
- this._mode.processBlock(c, m);
1149
- },
1150
- _doFinalize: function() {
1151
- var c, m = this.cfg.padding;
1152
- return this._xformMode == this._ENC_XFORM_MODE ? (m.pad(this._data, this.blockSize), c = this._process(!0)) : (c = this._process(!0), m.unpad(c)), c;
1153
- },
1154
- blockSize: 128 / 32
1155
- });
1156
- var a = s.CipherParams = h.extend({
1157
- /**
1158
- * Initializes a newly created cipher params object.
1159
- *
1160
- * @param {Object} cipherParams An object with any of the possible cipher parameters.
1161
- *
1162
- * @example
1163
- *
1164
- * var cipherParams = CryptoJS.lib.CipherParams.create({
1165
- * ciphertext: ciphertextWordArray,
1166
- * key: keyWordArray,
1167
- * iv: ivWordArray,
1168
- * salt: saltWordArray,
1169
- * algorithm: CryptoJS.algo.AES,
1170
- * mode: CryptoJS.mode.CBC,
1171
- * padding: CryptoJS.pad.PKCS7,
1172
- * blockSize: 4,
1173
- * formatter: CryptoJS.format.OpenSSL
1174
- * });
1175
- */
1176
- init: function(c) {
1177
- this.mixIn(c);
1178
- },
1179
- /**
1180
- * Converts this cipher params object to a string.
1181
- *
1182
- * @param {Format} formatter (Optional) The formatting strategy to use.
1183
- *
1184
- * @return {string} The stringified cipher params.
1185
- *
1186
- * @throws Error If neither the formatter nor the default formatter is set.
1187
- *
1188
- * @example
1189
- *
1190
- * var string = cipherParams + '';
1191
- * var string = cipherParams.toString();
1192
- * var string = cipherParams.toString(CryptoJS.format.OpenSSL);
1193
- */
1194
- toString: function(c) {
1195
- return (c || this.formatter).stringify(this);
1196
- }
1197
- }), v = i.format = {}, S = v.OpenSSL = {
1198
- /**
1199
- * Converts a cipher params object to an OpenSSL-compatible string.
1200
- *
1201
- * @param {CipherParams} cipherParams The cipher params object.
1202
- *
1203
- * @return {string} The OpenSSL-compatible string.
1204
- *
1205
- * @static
1206
- *
1207
- * @example
1208
- *
1209
- * var openSSLString = CryptoJS.format.OpenSSL.stringify(cipherParams);
1210
- */
1211
- stringify: function(c) {
1212
- var m, O = c.ciphertext, A = c.salt;
1213
- return A ? m = l.create([1398893684, 1701076831]).concat(A).concat(O) : m = O, m.toString(x);
1214
- },
1215
- /**
1216
- * Converts an OpenSSL-compatible string to a cipher params object.
1217
- *
1218
- * @param {string} openSSLStr The OpenSSL-compatible string.
1219
- *
1220
- * @return {CipherParams} The cipher params object.
1221
- *
1222
- * @static
1223
- *
1224
- * @example
1225
- *
1226
- * var cipherParams = CryptoJS.format.OpenSSL.parse(openSSLString);
1227
- */
1228
- parse: function(c) {
1229
- var m, O = x.parse(c), A = O.words;
1230
- return A[0] == 1398893684 && A[1] == 1701076831 && (m = l.create(A.slice(2, 4)), A.splice(0, 4), O.sigBytes -= 16), a.create({ ciphertext: O, salt: m });
1231
- }
1232
- }, w = s.SerializableCipher = h.extend({
1233
- /**
1234
- * Configuration options.
1235
- *
1236
- * @property {Formatter} format The formatting strategy to convert cipher param objects to and from a string. Default: OpenSSL
1237
- */
1238
- cfg: h.extend({
1239
- format: S
1240
- }),
1241
- /**
1242
- * Encrypts a message.
1243
- *
1244
- * @param {Cipher} cipher The cipher algorithm to use.
1245
- * @param {WordArray|string} message The message to encrypt.
1246
- * @param {WordArray} key The key.
1247
- * @param {Object} cfg (Optional) The configuration options to use for this operation.
1248
- *
1249
- * @return {CipherParams} A cipher params object.
1250
- *
1251
- * @static
1252
- *
1253
- * @example
1254
- *
1255
- * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key);
1256
- * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv });
1257
- * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv, format: CryptoJS.format.OpenSSL });
1258
- */
1259
- encrypt: function(c, m, O, A) {
1260
- A = this.cfg.extend(A);
1261
- var T = c.createEncryptor(O, A), L = T.finalize(m), j = T.cfg;
1262
- return a.create({
1263
- ciphertext: L,
1264
- key: O,
1265
- iv: j.iv,
1266
- algorithm: c,
1267
- mode: j.mode,
1268
- padding: j.padding,
1269
- blockSize: c.blockSize,
1270
- formatter: A.format
1271
- });
1272
- },
1273
- /**
1274
- * Decrypts serialized ciphertext.
1275
- *
1276
- * @param {Cipher} cipher The cipher algorithm to use.
1277
- * @param {CipherParams|string} ciphertext The ciphertext to decrypt.
1278
- * @param {WordArray} key The key.
1279
- * @param {Object} cfg (Optional) The configuration options to use for this operation.
1280
- *
1281
- * @return {WordArray} The plaintext.
1282
- *
1283
- * @static
1284
- *
1285
- * @example
1286
- *
1287
- * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, key, { iv: iv, format: CryptoJS.format.OpenSSL });
1288
- * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, key, { iv: iv, format: CryptoJS.format.OpenSSL });
1289
- */
1290
- decrypt: function(c, m, O, A) {
1291
- A = this.cfg.extend(A), m = this._parse(m, A.format);
1292
- var T = c.createDecryptor(O, A).finalize(m.ciphertext);
1293
- return T;
1294
- },
1295
- /**
1296
- * Converts serialized ciphertext to CipherParams,
1297
- * else assumed CipherParams already and returns ciphertext unchanged.
1298
- *
1299
- * @param {CipherParams|string} ciphertext The ciphertext.
1300
- * @param {Formatter} format The formatting strategy to use to parse serialized ciphertext.
1301
- *
1302
- * @return {CipherParams} The unserialized ciphertext.
1303
- *
1304
- * @static
1305
- *
1306
- * @example
1307
- *
1308
- * var ciphertextParams = CryptoJS.lib.SerializableCipher._parse(ciphertextStringOrParams, format);
1309
- */
1310
- _parse: function(c, m) {
1311
- return typeof c == "string" ? m.parse(c, this) : c;
1312
- }
1313
- }), D = i.kdf = {}, H = D.OpenSSL = {
1314
- /**
1315
- * Derives a key and IV from a password.
1316
- *
1317
- * @param {string} password The password to derive from.
1318
- * @param {number} keySize The size in words of the key to generate.
1319
- * @param {number} ivSize The size in words of the IV to generate.
1320
- * @param {WordArray|string} salt (Optional) A 64-bit salt to use. If omitted, a salt will be generated randomly.
1321
- *
1322
- * @return {CipherParams} A cipher params object with the key, IV, and salt.
1323
- *
1324
- * @static
1325
- *
1326
- * @example
1327
- *
1328
- * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32);
1329
- * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32, 'saltsalt');
1330
- */
1331
- execute: function(c, m, O, A, T) {
1332
- if (A || (A = l.random(64 / 8)), T)
1333
- var L = f.create({ keySize: m + O, hasher: T }).compute(c, A);
1334
- else
1335
- var L = f.create({ keySize: m + O }).compute(c, A);
1336
- var j = l.create(L.words.slice(m), O * 4);
1337
- return L.sigBytes = m * 4, a.create({ key: L, iv: j, salt: A });
1338
- }
1339
- }, M = s.PasswordBasedCipher = w.extend({
1340
- /**
1341
- * Configuration options.
1342
- *
1343
- * @property {KDF} kdf The key derivation function to use to generate a key and IV from a password. Default: OpenSSL
1344
- */
1345
- cfg: w.cfg.extend({
1346
- kdf: H
1347
- }),
1348
- /**
1349
- * Encrypts a message using a password.
1350
- *
1351
- * @param {Cipher} cipher The cipher algorithm to use.
1352
- * @param {WordArray|string} message The message to encrypt.
1353
- * @param {string} password The password.
1354
- * @param {Object} cfg (Optional) The configuration options to use for this operation.
1355
- *
1356
- * @return {CipherParams} A cipher params object.
1357
- *
1358
- * @static
1359
- *
1360
- * @example
1361
- *
1362
- * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password');
1363
- * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password', { format: CryptoJS.format.OpenSSL });
1364
- */
1365
- encrypt: function(c, m, O, A) {
1366
- A = this.cfg.extend(A);
1367
- var T = A.kdf.execute(O, c.keySize, c.ivSize, A.salt, A.hasher);
1368
- A.iv = T.iv;
1369
- var L = w.encrypt.call(this, c, m, T.key, A);
1370
- return L.mixIn(T), L;
1371
- },
1372
- /**
1373
- * Decrypts serialized ciphertext using a password.
1374
- *
1375
- * @param {Cipher} cipher The cipher algorithm to use.
1376
- * @param {CipherParams|string} ciphertext The ciphertext to decrypt.
1377
- * @param {string} password The password.
1378
- * @param {Object} cfg (Optional) The configuration options to use for this operation.
1379
- *
1380
- * @return {WordArray} The plaintext.
1381
- *
1382
- * @static
1383
- *
1384
- * @example
1385
- *
1386
- * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, 'password', { format: CryptoJS.format.OpenSSL });
1387
- * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, 'password', { format: CryptoJS.format.OpenSSL });
1388
- */
1389
- decrypt: function(c, m, O, A) {
1390
- A = this.cfg.extend(A), m = this._parse(m, A.format);
1391
- var T = A.kdf.execute(O, c.keySize, c.ivSize, m.salt, A.hasher);
1392
- A.iv = T.iv;
1393
- var L = w.decrypt.call(this, c, m, T.key, A);
1394
- return L;
1395
- }
1396
- });
1397
- }();
1398
- });
1399
- }(Me)), Me.exports;
1400
- }
1401
- (function(e, t) {
1402
- (function(n, r, i) {
1403
- e.exports = r(G(), un(), ln(), Pt(), Ze());
1404
- })(_, function(n) {
1405
- return function() {
1406
- var r = n, i = r.lib, s = i.BlockCipher, h = r.algo, l = [], k = [], o = [], x = [], d = [], f = [], p = [], P = [], y = [], E = [];
1407
- (function() {
1408
- for (var a = [], v = 0; v < 256; v++)
1409
- v < 128 ? a[v] = v << 1 : a[v] = v << 1 ^ 283;
1410
- for (var S = 0, w = 0, v = 0; v < 256; v++) {
1411
- var D = w ^ w << 1 ^ w << 2 ^ w << 3 ^ w << 4;
1412
- D = D >>> 8 ^ D & 255 ^ 99, l[S] = D, k[D] = S;
1413
- var H = a[S], M = a[H], c = a[M], m = a[D] * 257 ^ D * 16843008;
1414
- o[S] = m << 24 | m >>> 8, x[S] = m << 16 | m >>> 16, d[S] = m << 8 | m >>> 24, f[S] = m;
1415
- var m = c * 16843009 ^ M * 65537 ^ H * 257 ^ S * 16843008;
1416
- p[D] = m << 24 | m >>> 8, P[D] = m << 16 | m >>> 16, y[D] = m << 8 | m >>> 24, E[D] = m, S ? (S = H ^ a[a[a[c ^ H]]], w ^= a[a[w]]) : S = w = 1;
1417
- }
1418
- })();
1419
- var z = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54], u = h.AES = s.extend({
1420
- _doReset: function() {
1421
- var a;
1422
- if (!(this._nRounds && this._keyPriorReset === this._key)) {
1423
- for (var v = this._keyPriorReset = this._key, S = v.words, w = v.sigBytes / 4, D = this._nRounds = w + 6, H = (D + 1) * 4, M = this._keySchedule = [], c = 0; c < H; c++)
1424
- c < w ? M[c] = S[c] : (a = M[c - 1], c % w ? w > 6 && c % w == 4 && (a = l[a >>> 24] << 24 | l[a >>> 16 & 255] << 16 | l[a >>> 8 & 255] << 8 | l[a & 255]) : (a = a << 8 | a >>> 24, a = l[a >>> 24] << 24 | l[a >>> 16 & 255] << 16 | l[a >>> 8 & 255] << 8 | l[a & 255], a ^= z[c / w | 0] << 24), M[c] = M[c - w] ^ a);
1425
- for (var m = this._invKeySchedule = [], O = 0; O < H; O++) {
1426
- var c = H - O;
1427
- if (O % 4)
1428
- var a = M[c];
1429
- else
1430
- var a = M[c - 4];
1431
- O < 4 || c <= 4 ? m[O] = a : m[O] = p[l[a >>> 24]] ^ P[l[a >>> 16 & 255]] ^ y[l[a >>> 8 & 255]] ^ E[l[a & 255]];
1432
- }
1433
- }
1434
- },
1435
- encryptBlock: function(a, v) {
1436
- this._doCryptBlock(a, v, this._keySchedule, o, x, d, f, l);
1437
- },
1438
- decryptBlock: function(a, v) {
1439
- var S = a[v + 1];
1440
- a[v + 1] = a[v + 3], a[v + 3] = S, this._doCryptBlock(a, v, this._invKeySchedule, p, P, y, E, k);
1441
- var S = a[v + 1];
1442
- a[v + 1] = a[v + 3], a[v + 3] = S;
1443
- },
1444
- _doCryptBlock: function(a, v, S, w, D, H, M, c) {
1445
- for (var m = this._nRounds, O = a[v] ^ S[0], A = a[v + 1] ^ S[1], T = a[v + 2] ^ S[2], L = a[v + 3] ^ S[3], j = 4, J = 1; J < m; J++) {
1446
- var Y = w[O >>> 24] ^ D[A >>> 16 & 255] ^ H[T >>> 8 & 255] ^ M[L & 255] ^ S[j++], q = w[A >>> 24] ^ D[T >>> 16 & 255] ^ H[L >>> 8 & 255] ^ M[O & 255] ^ S[j++], X = w[T >>> 24] ^ D[L >>> 16 & 255] ^ H[O >>> 8 & 255] ^ M[A & 255] ^ S[j++], g = w[L >>> 24] ^ D[O >>> 16 & 255] ^ H[A >>> 8 & 255] ^ M[T & 255] ^ S[j++];
1447
- O = Y, A = q, T = X, L = g;
1448
- }
1449
- var Y = (c[O >>> 24] << 24 | c[A >>> 16 & 255] << 16 | c[T >>> 8 & 255] << 8 | c[L & 255]) ^ S[j++], q = (c[A >>> 24] << 24 | c[T >>> 16 & 255] << 16 | c[L >>> 8 & 255] << 8 | c[O & 255]) ^ S[j++], X = (c[T >>> 24] << 24 | c[L >>> 16 & 255] << 16 | c[O >>> 8 & 255] << 8 | c[A & 255]) ^ S[j++], g = (c[L >>> 24] << 24 | c[O >>> 16 & 255] << 16 | c[A >>> 8 & 255] << 8 | c[T & 255]) ^ S[j++];
1450
- a[v] = Y, a[v + 1] = q, a[v + 2] = X, a[v + 3] = g;
1451
- },
1452
- keySize: 256 / 32
1453
- });
1454
- r.AES = s._createHelper(u);
1455
- }(), n.AES;
1456
- });
1457
- })(Et);
1458
- var vn = Et.exports;
1459
- const hn = /* @__PURE__ */ ye(vn);
1460
- var Ot = { exports: {} };
1461
- (function(e, t) {
1462
- (function(n, r) {
1463
- e.exports = r(G());
1464
- })(_, function(n) {
1465
- return n.enc.Utf8;
1466
- });
1467
- })(Ot);
1468
- var pn = Ot.exports;
1469
- const mn = /* @__PURE__ */ ye(pn);
1470
- var Dt = { exports: {} };
1471
- (function(e, t) {
1472
- (function(n, r, i) {
1473
- e.exports = r(G(), Ze());
1474
- })(_, function(n) {
1475
- return n.mode.ECB = function() {
1476
- var r = n.lib.BlockCipherMode.extend();
1477
- return r.Encryptor = r.extend({
1478
- processBlock: function(i, s) {
1479
- this._cipher.encryptBlock(i, s);
1480
- }
1481
- }), r.Decryptor = r.extend({
1482
- processBlock: function(i, s) {
1483
- this._cipher.decryptBlock(i, s);
1484
- }
1485
- }), r;
1486
- }(), n.mode.ECB;
1487
- });
1488
- })(Dt);
1489
- var gn = Dt.exports;
1490
- const yn = /* @__PURE__ */ ye(gn);
1491
- var Tt = { exports: {} };
1492
- (function(e, t) {
1493
- (function(n, r, i) {
1494
- e.exports = r(G(), Ze());
1495
- })(_, function(n) {
1496
- return n.pad.Pkcs7;
1497
- });
1498
- })(Tt);
1499
- var An = Tt.exports;
1500
- const xn = /* @__PURE__ */ ye(An);
1501
- var Lt = { exports: {} };
1502
- (function(e, t) {
1503
- (function(n, r) {
1504
- e.exports = r(G());
1505
- })(_, function(n) {
1506
- return n.enc.Hex;
1507
- });
1508
- })(Lt);
1509
- var wn = Lt.exports;
1510
- const bn = /* @__PURE__ */ ye(wn);
1511
- function rt(e, t, n = "base64") {
1512
- const r = hn.encrypt(
1513
- e,
1514
- mn.parse(t),
1515
- {
1516
- mode: yn,
1517
- padding: xn
1518
- }
1519
- );
1520
- return n === "base64" ? r.toString() : n === "hex" ? r.ciphertext.toString(bn) : e;
1521
- }
1522
- const Bn = () => "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (e) => {
1523
- const t = Math.random() * 16 | 0;
1524
- return (e == "x" ? t : t & 3 | 8).toString(16);
1525
- }), Cn = navigator.userAgent.toLowerCase();
1526
- function zt() {
1527
- return Cn.includes("leadeon");
1528
- }
1529
- function Mt(e, t = "") {
1530
- const n = new URLSearchParams(e), r = Object.fromEntries(n.entries());
1531
- return t ? r[t] || "" : r;
1532
- }
1533
- function Fe(e = "") {
1534
- return Mt(window.location.search, e);
1535
- }
1536
- function We(e = "") {
1537
- const t = window.location.hash || "";
1538
- return Mt(t.split("?")[1] || "", e);
1539
- }
1540
- function kn(e = "") {
1541
- return e ? Fe(e) || We(e) : {
1542
- search: Fe(),
1543
- hash: We()
1544
- };
1545
- }
1546
- function Sn(e) {
1547
- return /^1\d{10}$/.test(e);
1548
- }
1549
- function Ht(e, t = 6) {
1550
- return new RegExp(`^\\d{${t}}$`).test(e);
1551
- }
1552
- const jt = ({ timer: e = 59, onTick: t = () => {
1553
- } }) => {
1554
- let n = e;
1555
- return new Promise((r, i) => {
1556
- const s = () => {
1557
- n < 1 ? r("倒计时结束") : t(n);
1558
- try {
1559
- setTimeout(() => {
1560
- n -= 1, s();
1561
- }, 1e3);
1562
- } catch (h) {
1563
- i(h);
1564
- }
1565
- };
1566
- s();
1567
- });
1568
- };
1569
- function En() {
1570
- }
1571
- const ee = Object.assign, Ne = typeof window < "u", Ee = (e) => e !== null && typeof e == "object", $ = (e) => e != null, _e = (e) => typeof e == "function", Pn = (e) => Ee(e) && _e(e.then) && _e(e.catch), Kt = (e) => typeof e == "number" || /^\d+(\.\d+)?$/.test(e), On = () => Ne ? /ios|iphone|ipad|ipod/.test(navigator.userAgent.toLowerCase()) : !1;
1572
- function ot(e, t) {
1573
- const n = t.split(".");
1574
- let r = e;
1575
- return n.forEach((i) => {
1576
- var s;
1577
- r = Ee(r) && (s = r[i]) != null ? s : "";
1578
- }), r;
1579
- }
1580
- function Dn(e, t, n) {
1581
- return t.reduce(
1582
- (r, i) => (r[i] = e[i], r),
1583
- {}
1584
- );
1585
- }
1586
- const Ce = null, R = [Number, String], te = {
1587
- type: Boolean,
1588
- default: !0
1589
- }, Tn = (e) => ({
1590
- type: Number,
1591
- default: e
1592
- }), Z = (e) => ({
1593
- type: String,
1594
- default: e
1595
- });
1596
- var Ge = typeof window < "u";
1597
- function Ut(e) {
1598
- let t;
1599
- me(() => {
1600
- e(), gt(() => {
1601
- t = !0;
1602
- });
1603
- }), Qe(() => {
1604
- t && e();
1605
- });
1606
- }
1607
- function Ft(e, t, n = {}) {
1608
- if (!Ge)
1609
- return;
1610
- const { target: r = window, passive: i = !1, capture: s = !1 } = n;
1611
- let h = !1, l;
1612
- const k = (d) => {
1613
- if (h)
1614
- return;
1615
- const f = be(d);
1616
- f && !l && (f.addEventListener(e, t, {
1617
- capture: s,
1618
- passive: i
1619
- }), l = !0);
1620
- }, o = (d) => {
1621
- if (h)
1622
- return;
1623
- const f = be(d);
1624
- f && l && (f.removeEventListener(e, t, s), l = !1);
1625
- };
1626
- mt(() => o(r)), Se(() => o(r)), Ut(() => k(r));
1627
- let x;
1628
- return Xt(r) && (x = V(r, (d, f) => {
1629
- o(f), k(d);
1630
- })), () => {
1631
- x == null || x(), o(r), h = !0;
1632
- };
1633
- }
1634
- var Ae, He;
1635
- function Ln() {
1636
- if (!Ae && (Ae = U(0), He = U(0), Ge)) {
1637
- const e = () => {
1638
- Ae.value = window.innerWidth, He.value = window.innerHeight;
1639
- };
1640
- e(), window.addEventListener("resize", e, { passive: !0 }), window.addEventListener("orientationchange", e, { passive: !0 });
1641
- }
1642
- return { width: Ae, height: He };
1643
- }
1644
- var zn = /scroll|auto|overlay/i, Mn = Ge ? window : void 0;
1645
- function Hn(e) {
1646
- return e.tagName !== "HTML" && e.tagName !== "BODY" && e.nodeType === 1;
1647
- }
1648
- function jn(e, t = Mn) {
1649
- let n = e;
1650
- for (; n && n !== t && Hn(n); ) {
1651
- const { overflowY: r } = window.getComputedStyle(n);
1652
- if (zn.test(r))
1653
- return n;
1654
- n = n.parentNode;
1655
- }
1656
- return t;
1657
- }
1658
- On();
1659
- const Kn = (e) => e.stopPropagation();
1660
- function Wt(e, t) {
1661
- (typeof e.cancelable != "boolean" || e.cancelable) && e.preventDefault(), Kn(e);
1662
- }
1663
- Ln();
1664
- function N(e) {
1665
- if ($(e))
1666
- return Kt(e) ? `${e}px` : String(e);
1667
- }
1668
- function Un(e) {
1669
- if ($(e)) {
1670
- if (Array.isArray(e))
1671
- return {
1672
- width: N(e[0]),
1673
- height: N(e[1])
1674
- };
1675
- const t = N(e);
1676
- return {
1677
- width: t,
1678
- height: t
1679
- };
1680
- }
1681
- }
1682
- function Fn(e) {
1683
- const t = {};
1684
- return e !== void 0 && (t.zIndex = +e), t;
1685
- }
1686
- const Wn = /-(\w)/g, _t = (e) => e.replace(Wn, (t, n) => n.toUpperCase()), _n = (e) => e.replace(/([A-Z])/g, "-$1").toLowerCase().replace(/^-/, ""), { hasOwnProperty: Jn } = Object.prototype;
1687
- function Qn(e, t, n) {
1688
- const r = t[n];
1689
- $(r) && (!Jn.call(e, n) || !Ee(r) ? e[n] = r : e[n] = Jt(Object(e[n]), r));
1690
- }
1691
- function Jt(e, t) {
1692
- return Object.keys(t).forEach((n) => {
1693
- Qn(e, t, n);
1694
- }), e;
1695
- }
1696
- var Rn = {
1697
- name: "姓名",
1698
- tel: "电话",
1699
- save: "保存",
1700
- clear: "清空",
1701
- cancel: "取消",
1702
- confirm: "确认",
1703
- delete: "删除",
1704
- loading: "加载中...",
1705
- noCoupon: "暂无优惠券",
1706
- nameEmpty: "请填写姓名",
1707
- addContact: "添加联系人",
1708
- telInvalid: "请填写正确的电话",
1709
- vanCalendar: {
1710
- end: "结束",
1711
- start: "开始",
1712
- title: "日期选择",
1713
- weekdays: ["日", "一", "二", "三", "四", "五", "六"],
1714
- monthTitle: (e, t) => `${e}年${t}月`,
1715
- rangePrompt: (e) => `最多选择 ${e} 天`
1716
- },
1717
- vanCascader: {
1718
- select: "请选择"
1719
- },
1720
- vanPagination: {
1721
- prev: "上一页",
1722
- next: "下一页"
1723
- },
1724
- vanPullRefresh: {
1725
- pulling: "下拉即可刷新...",
1726
- loosing: "释放即可刷新..."
1727
- },
1728
- vanSubmitBar: {
1729
- label: "合计:"
1730
- },
1731
- vanCoupon: {
1732
- unlimited: "无门槛",
1733
- discount: (e) => `${e}折`,
1734
- condition: (e) => `满${e}元可用`
1735
- },
1736
- vanCouponCell: {
1737
- title: "优惠券",
1738
- count: (e) => `${e}张可用`
1739
- },
1740
- vanCouponList: {
1741
- exchange: "兑换",
1742
- close: "不使用",
1743
- enable: "可用",
1744
- disabled: "不可用",
1745
- placeholder: "输入优惠码"
1746
- },
1747
- vanAddressEdit: {
1748
- area: "地区",
1749
- areaEmpty: "请选择地区",
1750
- addressEmpty: "请填写详细地址",
1751
- addressDetail: "详细地址",
1752
- defaultAddress: "设为默认收货地址"
1753
- },
1754
- vanAddressList: {
1755
- add: "新增地址"
1756
- }
1757
- };
1758
- const at = U("zh-CN"), st = yt({
1759
- "zh-CN": Rn
1760
- }), Zn = {
1761
- messages() {
1762
- return st[at.value];
1763
- },
1764
- use(e, t) {
1765
- at.value = e, this.add({ [e]: t });
1766
- },
1767
- add(e = {}) {
1768
- Jt(st, e);
1769
- }
1770
- };
1771
- var Nn = Zn;
1772
- function Gn(e) {
1773
- const t = _t(e) + ".";
1774
- return (n, ...r) => {
1775
- const i = Nn.messages(), s = ot(i, t + n) || ot(i, n);
1776
- return _e(s) ? s(...r) : s;
1777
- };
1778
- }
1779
- function Je(e, t) {
1780
- return t ? typeof t == "string" ? ` ${e}--${t}` : Array.isArray(t) ? t.reduce(
1781
- (n, r) => n + Je(e, r),
1782
- ""
1783
- ) : Object.keys(t).reduce(
1784
- (n, r) => n + (t[r] ? Je(e, r) : ""),
1785
- ""
1786
- ) : "";
1787
- }
1788
- function In(e) {
1789
- return (t, n) => (t && typeof t != "string" && (n = t, t = ""), t = t ? `${e}__${t}` : e, `${t}${Je(t, n)}`);
1790
- }
1791
- function oe(e) {
1792
- const t = `van-${e}`;
1793
- return [
1794
- t,
1795
- In(t),
1796
- Gn(t)
1797
- ];
1798
- }
1799
- const Vn = "van-haptics-feedback", it = 5;
1800
- function Yn(e, {
1801
- args: t = [],
1802
- done: n,
1803
- canceled: r,
1804
- error: i
1805
- }) {
1806
- if (e) {
1807
- const s = e.apply(null, t);
1808
- Pn(s) ? s.then((h) => {
1809
- h ? n() : r && r();
1810
- }).catch(i || En) : s ? n() : r && r();
1811
- } else
1812
- n();
1813
- }
1814
- function ue(e) {
1815
- return e.install = (t) => {
1816
- const { name: n } = e;
1817
- n && (t.component(n, e), t.component(_t(`-${n}`), e));
1818
- }, e;
1819
- }
1820
- const qn = Symbol();
1821
- function Qt(e) {
1822
- const t = Re();
1823
- t && ee(t.proxy, e);
1824
- }
1825
- const [Xn, ct] = oe("badge"), $n = {
1826
- dot: Boolean,
1827
- max: R,
1828
- tag: Z("div"),
1829
- color: String,
1830
- offset: Array,
1831
- content: R,
1832
- showZero: te,
1833
- position: Z("top-right")
1834
- };
1835
- var er = re({
1836
- name: Xn,
1837
- props: $n,
1838
- setup(e, {
1839
- slots: t
1840
- }) {
1841
- const n = () => {
1842
- if (t.content)
1843
- return !0;
1844
- const {
1845
- content: l,
1846
- showZero: k
1847
- } = e;
1848
- return $(l) && l !== "" && (k || l !== 0 && l !== "0");
1849
- }, r = () => {
1850
- const {
1851
- dot: l,
1852
- max: k,
1853
- content: o
1854
- } = e;
1855
- if (!l && n())
1856
- return t.content ? t.content() : $(k) && Kt(o) && +o > +k ? `${k}+` : o;
1857
- }, i = (l) => l.startsWith("-") ? l.replace("-", "") : `-${l}`, s = ge(() => {
1858
- const l = {
1859
- background: e.color
1860
- };
1861
- if (e.offset) {
1862
- const [k, o] = e.offset, {
1863
- position: x
1864
- } = e, [d, f] = x.split("-");
1865
- t.default ? (typeof o == "number" ? l[d] = N(d === "top" ? o : -o) : l[d] = d === "top" ? N(o) : i(o), typeof k == "number" ? l[f] = N(f === "left" ? k : -k) : l[f] = f === "left" ? N(k) : i(k)) : (l.marginTop = N(o), l.marginLeft = N(k));
1866
- }
1867
- return l;
1868
- }), h = () => {
1869
- if (n() || e.dot)
1870
- return K("div", {
1871
- class: ct([e.position, {
1872
- dot: e.dot,
1873
- fixed: !!t.default
1874
- }]),
1875
- style: s.value
1876
- }, [r()]);
1877
- };
1878
- return () => {
1879
- if (t.default) {
1880
- const {
1881
- tag: l
1882
- } = e;
1883
- return K(l, {
1884
- class: ct("wrapper")
1885
- }, {
1886
- default: () => [t.default(), h()]
1887
- });
1888
- }
1889
- return h();
1890
- };
1891
- }
1892
- });
1893
- const tr = ue(er);
1894
- let Rt = 2e3;
1895
- const nr = () => ++Rt, rr = (e) => {
1896
- Rt = e;
1897
- }, [Zt, or] = oe("config-provider"), Nt = Symbol(Zt), ar = {
1898
- tag: Z("div"),
1899
- theme: Z("light"),
1900
- zIndex: Number,
1901
- themeVars: Object,
1902
- themeVarsDark: Object,
1903
- themeVarsLight: Object,
1904
- themeVarsScope: Z("local"),
1905
- iconPrefix: String
1906
- };
1907
- function sr(e) {
1908
- return e.replace(/([a-zA-Z])(\d)/g, "$1-$2");
1909
- }
1910
- function ir(e) {
1911
- const t = {};
1912
- return Object.keys(e).forEach((n) => {
1913
- const r = sr(_n(n));
1914
- t[`--van-${r}`] = e[n];
1915
- }), t;
1916
- }
1917
- function xe(e = {}, t = {}) {
1918
- Object.keys(e).forEach((n) => {
1919
- e[n] !== t[n] && document.documentElement.style.setProperty(n, e[n]);
1920
- }), Object.keys(t).forEach((n) => {
1921
- e[n] || document.documentElement.style.removeProperty(n);
1922
- });
1923
- }
1924
- re({
1925
- name: Zt,
1926
- props: ar,
1927
- setup(e, {
1928
- slots: t
1929
- }) {
1930
- const n = ge(() => ir(ee({}, e.themeVars, e.theme === "dark" ? e.themeVarsDark : e.themeVarsLight)));
1931
- if (Ne) {
1932
- const r = () => {
1933
- document.documentElement.classList.add(`van-theme-${e.theme}`);
1934
- }, i = (s = e.theme) => {
1935
- document.documentElement.classList.remove(`van-theme-${s}`);
1936
- };
1937
- V(() => e.theme, (s, h) => {
1938
- h && i(h), r();
1939
- }, {
1940
- immediate: !0
1941
- }), Qe(r), Se(i), At(i), V(n, (s, h) => {
1942
- e.themeVarsScope === "global" && xe(s, h);
1943
- }), V(() => e.themeVarsScope, (s, h) => {
1944
- h === "global" && xe({}, n.value), s === "global" && xe(n.value, {});
1945
- }), e.themeVarsScope === "global" && xe(n.value, {});
1946
- }
1947
- return xt(Nt, e), $t(() => {
1948
- e.zIndex !== void 0 && rr(e.zIndex);
1949
- }), () => K(e.tag, {
1950
- class: or(),
1951
- style: e.themeVarsScope === "local" ? n.value : void 0
1952
- }, {
1953
- default: () => {
1954
- var r;
1955
- return [(r = t.default) == null ? void 0 : r.call(t)];
1956
- }
1957
- });
1958
- }
1959
- });
1960
- const [cr, ut] = oe("icon"), ur = (e) => e == null ? void 0 : e.includes("/"), lr = {
1961
- dot: Boolean,
1962
- tag: Z("i"),
1963
- name: String,
1964
- size: R,
1965
- badge: R,
1966
- color: String,
1967
- badgeProps: Object,
1968
- classPrefix: String
1969
- };
1970
- var fr = re({
1971
- name: cr,
1972
- props: lr,
1973
- setup(e, {
1974
- slots: t
1975
- }) {
1976
- const n = en(Nt, null), r = ge(() => e.classPrefix || (n == null ? void 0 : n.iconPrefix) || ut());
1977
- return () => {
1978
- const {
1979
- tag: i,
1980
- dot: s,
1981
- name: h,
1982
- size: l,
1983
- badge: k,
1984
- color: o
1985
- } = e, x = ur(h);
1986
- return K(tr, he({
1987
- dot: s,
1988
- tag: i,
1989
- class: [r.value, x ? "" : `${r.value}-${h}`],
1990
- style: {
1991
- color: o,
1992
- fontSize: N(l)
1993
- },
1994
- content: k
1995
- }, e.badgeProps), {
1996
- default: () => {
1997
- var d;
1998
- return [(d = t.default) == null ? void 0 : d.call(t), x && K("img", {
1999
- class: ut("image"),
2000
- src: h
2001
- }, null)];
2002
- }
2003
- });
2004
- };
2005
- }
2006
- });
2007
- const Gt = ue(fr), [dr, ve] = oe("loading"), vr = Array(12).fill(null).map((e, t) => K("i", {
2008
- class: ve("line", String(t + 1))
2009
- }, null)), hr = K("svg", {
2010
- class: ve("circular"),
2011
- viewBox: "25 25 50 50"
2012
- }, [K("circle", {
2013
- cx: "50",
2014
- cy: "50",
2015
- r: "20",
2016
- fill: "none"
2017
- }, null)]), pr = {
2018
- size: R,
2019
- type: Z("circular"),
2020
- color: String,
2021
- vertical: Boolean,
2022
- textSize: R,
2023
- textColor: String
2024
- };
2025
- var mr = re({
2026
- name: dr,
2027
- props: pr,
2028
- setup(e, {
2029
- slots: t
2030
- }) {
2031
- const n = ge(() => ee({
2032
- color: e.color
2033
- }, Un(e.size))), r = () => {
2034
- const s = e.type === "spinner" ? vr : hr;
2035
- return K("span", {
2036
- class: ve("spinner", e.type),
2037
- style: n.value
2038
- }, [t.icon ? t.icon() : s]);
2039
- }, i = () => {
2040
- var s;
2041
- if (t.default)
2042
- return K("span", {
2043
- class: ve("text"),
2044
- style: {
2045
- fontSize: N(e.textSize),
2046
- color: (s = e.textColor) != null ? s : e.color
2047
- }
2048
- }, [t.default()]);
2049
- };
2050
- return () => {
2051
- const {
2052
- type: s,
2053
- vertical: h
2054
- } = e;
2055
- return K("div", {
2056
- class: ve([s, {
2057
- vertical: h
2058
- }]),
2059
- "aria-live": "polite",
2060
- "aria-busy": !0
2061
- }, [r(), i()]);
2062
- };
2063
- }
2064
- });
2065
- const gr = ue(mr), yr = {
2066
- // whether to show popup
2067
- show: Boolean,
2068
- // z-index
2069
- zIndex: R,
2070
- // whether to show overlay
2071
- overlay: te,
2072
- // transition duration
2073
- duration: R,
2074
- // teleport
2075
- teleport: [String, Object],
2076
- // prevent body scroll
2077
- lockScroll: te,
2078
- // whether to lazy render
2079
- lazyRender: te,
2080
- // callback function before close
2081
- beforeClose: Function,
2082
- // overlay custom style
2083
- overlayStyle: Object,
2084
- // overlay custom class name
2085
- overlayClass: Ce,
2086
- // Initial rendering animation
2087
- transitionAppear: Boolean,
2088
- // whether to close popup when overlay is clicked
2089
- closeOnClickOverlay: te
2090
- };
2091
- function Ar(e, t) {
2092
- return e > t ? "horizontal" : t > e ? "vertical" : "";
2093
- }
2094
- function xr() {
2095
- const e = U(0), t = U(0), n = U(0), r = U(0), i = U(0), s = U(0), h = U(""), l = U(!0), k = () => h.value === "vertical", o = () => h.value === "horizontal", x = () => {
2096
- n.value = 0, r.value = 0, i.value = 0, s.value = 0, h.value = "", l.value = !0;
2097
- };
2098
- return {
2099
- move: (p) => {
2100
- const P = p.touches[0];
2101
- n.value = (P.clientX < 0 ? 0 : P.clientX) - e.value, r.value = P.clientY - t.value, i.value = Math.abs(n.value), s.value = Math.abs(r.value);
2102
- const y = 10;
2103
- (!h.value || i.value < y && s.value < y) && (h.value = Ar(i.value, s.value)), l.value && (i.value > it || s.value > it) && (l.value = !1);
2104
- },
2105
- start: (p) => {
2106
- x(), e.value = p.touches[0].clientX, t.value = p.touches[0].clientY;
2107
- },
2108
- reset: x,
2109
- startX: e,
2110
- startY: t,
2111
- deltaX: n,
2112
- deltaY: r,
2113
- offsetX: i,
2114
- offsetY: s,
2115
- direction: h,
2116
- isVertical: k,
2117
- isHorizontal: o,
2118
- isTap: l
2119
- };
2120
- }
2121
- let le = 0;
2122
- const lt = "van-overflow-hidden";
2123
- function wr(e, t) {
2124
- const n = xr(), r = "01", i = "10", s = (x) => {
2125
- n.move(x);
2126
- const d = n.deltaY.value > 0 ? i : r, f = jn(
2127
- x.target,
2128
- e.value
2129
- ), { scrollHeight: p, offsetHeight: P, scrollTop: y } = f;
2130
- let E = "11";
2131
- y === 0 ? E = P >= p ? "00" : "01" : y + P >= p && (E = "10"), E !== "11" && n.isVertical() && !(parseInt(E, 2) & parseInt(d, 2)) && Wt(x);
2132
- }, h = () => {
2133
- document.addEventListener("touchstart", n.start), document.addEventListener("touchmove", s, { passive: !1 }), le || document.body.classList.add(lt), le++;
2134
- }, l = () => {
2135
- le && (document.removeEventListener("touchstart", n.start), document.removeEventListener("touchmove", s), le--, le || document.body.classList.remove(lt));
2136
- }, k = () => t() && h(), o = () => t() && l();
2137
- Ut(k), Se(o), At(o), V(t, (x) => {
2138
- x ? h() : l();
2139
- });
2140
- }
2141
- function It(e) {
2142
- const t = U(!1);
2143
- return V(
2144
- e,
2145
- (n) => {
2146
- n && (t.value = n);
2147
- },
2148
- { immediate: !0 }
2149
- ), (n) => () => t.value ? n() : null;
2150
- }
2151
- const ft = () => {
2152
- var e;
2153
- const { scopeId: t } = ((e = Re()) == null ? void 0 : e.vnode) || {};
2154
- return t ? { [t]: "" } : null;
2155
- }, [br, Br] = oe("overlay"), Cr = {
2156
- show: Boolean,
2157
- zIndex: R,
2158
- duration: R,
2159
- className: Ce,
2160
- lockScroll: te,
2161
- lazyRender: te,
2162
- customStyle: Object,
2163
- teleport: [String, Object]
2164
- };
2165
- var kr = re({
2166
- name: br,
2167
- props: Cr,
2168
- setup(e, {
2169
- slots: t
2170
- }) {
2171
- const n = U(), r = It(() => e.show || !e.lazyRender), i = (h) => {
2172
- e.lockScroll && Wt(h);
2173
- }, s = r(() => {
2174
- var h;
2175
- const l = ee(Fn(e.zIndex), e.customStyle);
2176
- return $(e.duration) && (l.animationDuration = `${e.duration}s`), pe(K("div", {
2177
- ref: n,
2178
- style: l,
2179
- class: [Br(), e.className]
2180
- }, [(h = t.default) == null ? void 0 : h.call(t)]), [[Bt, e.show]]);
2181
- });
2182
- return Ft("touchmove", i, {
2183
- target: n
2184
- }), () => {
2185
- const h = K(wt, {
2186
- name: "van-fade",
2187
- appear: !0
2188
- }, {
2189
- default: s
2190
- });
2191
- return e.teleport ? K(bt, {
2192
- to: e.teleport
2193
- }, {
2194
- default: () => [h]
2195
- }) : h;
2196
- };
2197
- }
2198
- });
2199
- const Sr = ue(kr), Er = ee({}, yr, {
2200
- round: Boolean,
2201
- position: Z("center"),
2202
- closeIcon: Z("cross"),
2203
- closeable: Boolean,
2204
- transition: String,
2205
- iconPrefix: String,
2206
- closeOnPopstate: Boolean,
2207
- closeIconPosition: Z("top-right"),
2208
- destroyOnClose: Boolean,
2209
- safeAreaInsetTop: Boolean,
2210
- safeAreaInsetBottom: Boolean
2211
- }), [Pr, dt] = oe("popup");
2212
- var Or = re({
2213
- name: Pr,
2214
- inheritAttrs: !1,
2215
- props: Er,
2216
- emits: ["open", "close", "opened", "closed", "keydown", "update:show", "clickOverlay", "clickCloseIcon"],
2217
- setup(e, {
2218
- emit: t,
2219
- attrs: n,
2220
- slots: r
2221
- }) {
2222
- let i, s;
2223
- const h = U(), l = U(), k = It(() => e.show || !e.lazyRender), o = ge(() => {
2224
- const w = {
2225
- zIndex: h.value
2226
- };
2227
- if ($(e.duration)) {
2228
- const D = e.position === "center" ? "animationDuration" : "transitionDuration";
2229
- w[D] = `${e.duration}s`;
2230
- }
2231
- return w;
2232
- }), x = () => {
2233
- i || (i = !0, h.value = e.zIndex !== void 0 ? +e.zIndex : nr(), t("open"));
2234
- }, d = () => {
2235
- i && Yn(e.beforeClose, {
2236
- done() {
2237
- i = !1, t("close"), t("update:show", !1);
2238
- }
2239
- });
2240
- }, f = (w) => {
2241
- t("clickOverlay", w), e.closeOnClickOverlay && d();
2242
- }, p = () => {
2243
- if (e.overlay)
2244
- return K(Sr, he({
2245
- show: e.show,
2246
- class: e.overlayClass,
2247
- zIndex: h.value,
2248
- duration: e.duration,
2249
- customStyle: e.overlayStyle,
2250
- role: e.closeOnClickOverlay ? "button" : void 0,
2251
- tabindex: e.closeOnClickOverlay ? 0 : void 0
2252
- }, ft(), {
2253
- onClick: f
2254
- }), {
2255
- default: r["overlay-content"]
2256
- });
2257
- }, P = (w) => {
2258
- t("clickCloseIcon", w), d();
2259
- }, y = () => {
2260
- if (e.closeable)
2261
- return K(Gt, {
2262
- role: "button",
2263
- tabindex: 0,
2264
- name: e.closeIcon,
2265
- class: [dt("close-icon", e.closeIconPosition), Vn],
2266
- classPrefix: e.iconPrefix,
2267
- onClick: P
2268
- }, null);
2269
- };
2270
- let E;
2271
- const z = () => {
2272
- E && clearTimeout(E), E = setTimeout(() => {
2273
- t("opened");
2274
- });
2275
- }, u = () => t("closed"), a = (w) => t("keydown", w), v = k(() => {
2276
- var w;
2277
- const {
2278
- destroyOnClose: D,
2279
- round: H,
2280
- position: M,
2281
- safeAreaInsetTop: c,
2282
- safeAreaInsetBottom: m,
2283
- show: O
2284
- } = e;
2285
- if (!(!O && D))
2286
- return pe(K("div", he({
2287
- ref: l,
2288
- style: o.value,
2289
- role: "dialog",
2290
- tabindex: 0,
2291
- class: [dt({
2292
- round: H,
2293
- [M]: M
2294
- }), {
2295
- "van-safe-area-top": c,
2296
- "van-safe-area-bottom": m
2297
- }],
2298
- onKeydown: a
2299
- }, n, ft()), [(w = r.default) == null ? void 0 : w.call(r), y()]), [[Bt, O]]);
2300
- }), S = () => {
2301
- const {
2302
- position: w,
2303
- transition: D,
2304
- transitionAppear: H
2305
- } = e, M = w === "center" ? "van-fade" : `van-popup-slide-${w}`;
2306
- return K(wt, {
2307
- name: D || M,
2308
- appear: H,
2309
- onAfterEnter: z,
2310
- onAfterLeave: u
2311
- }, {
2312
- default: v
2313
- });
2314
- };
2315
- return V(() => e.show, (w) => {
2316
- w && !i && (x(), n.tabindex === 0 && gt(() => {
2317
- var D;
2318
- (D = l.value) == null || D.focus();
2319
- })), !w && i && (i = !1, t("close"));
2320
- }), Qt({
2321
- popupRef: l
2322
- }), wr(l, () => e.show && e.lockScroll), Ft("popstate", () => {
2323
- e.closeOnPopstate && (d(), s = !1);
2324
- }), me(() => {
2325
- e.show && x();
2326
- }), Qe(() => {
2327
- s && (t("update:show", !0), s = !1);
2328
- }), Se(() => {
2329
- e.show && e.teleport && (d(), s = !0);
2330
- }), xt(qn, () => e.show), () => e.teleport ? K(bt, {
2331
- to: e.teleport
2332
- }, {
2333
- default: () => [p(), S()]
2334
- }) : K(Ct, null, [p(), S()]);
2335
- }
2336
- });
2337
- const Ie = ue(Or);
2338
- let fe = 0;
2339
- function Dr(e) {
2340
- e ? (fe || document.body.classList.add("van-toast--unclickable"), fe++) : fe && (fe--, fe || document.body.classList.remove("van-toast--unclickable"));
2341
- }
2342
- const [Tr, ae] = oe("toast"), Lr = ["show", "overlay", "teleport", "transition", "overlayClass", "overlayStyle", "closeOnClickOverlay", "zIndex"], zr = {
2343
- icon: String,
2344
- show: Boolean,
2345
- type: Z("text"),
2346
- overlay: Boolean,
2347
- message: R,
2348
- iconSize: R,
2349
- duration: Tn(2e3),
2350
- position: Z("middle"),
2351
- teleport: [String, Object],
2352
- wordBreak: String,
2353
- className: Ce,
2354
- iconPrefix: String,
2355
- transition: Z("van-fade"),
2356
- loadingType: String,
2357
- forbidClick: Boolean,
2358
- overlayClass: Ce,
2359
- overlayStyle: Object,
2360
- closeOnClick: Boolean,
2361
- closeOnClickOverlay: Boolean,
2362
- zIndex: R
2363
- };
2364
- var Vt = re({
2365
- name: Tr,
2366
- props: zr,
2367
- emits: ["update:show"],
2368
- setup(e, {
2369
- emit: t,
2370
- slots: n
2371
- }) {
2372
- let r, i = !1;
2373
- const s = () => {
2374
- const d = e.show && e.forbidClick;
2375
- i !== d && (i = d, Dr(i));
2376
- }, h = (d) => t("update:show", d), l = () => {
2377
- e.closeOnClick && h(!1);
2378
- }, k = () => clearTimeout(r), o = () => {
2379
- const {
2380
- icon: d,
2381
- type: f,
2382
- iconSize: p,
2383
- iconPrefix: P,
2384
- loadingType: y
2385
- } = e;
2386
- if (d || f === "success" || f === "fail")
2387
- return K(Gt, {
2388
- name: d || f,
2389
- size: p,
2390
- class: ae("icon"),
2391
- classPrefix: P
2392
- }, null);
2393
- if (f === "loading")
2394
- return K(gr, {
2395
- class: ae("loading"),
2396
- size: p,
2397
- type: y
2398
- }, null);
2399
- }, x = () => {
2400
- const {
2401
- type: d,
2402
- message: f
2403
- } = e;
2404
- if (n.message)
2405
- return K("div", {
2406
- class: ae("text")
2407
- }, [n.message()]);
2408
- if ($(f) && f !== "")
2409
- return d === "html" ? K("div", {
2410
- key: 0,
2411
- class: ae("text"),
2412
- innerHTML: String(f)
2413
- }, null) : K("div", {
2414
- class: ae("text")
2415
- }, [f]);
2416
- };
2417
- return V(() => [e.show, e.forbidClick], s), V(() => [e.show, e.type, e.message, e.duration], () => {
2418
- k(), e.show && e.duration > 0 && (r = setTimeout(() => {
2419
- h(!1);
2420
- }, e.duration));
2421
- }), me(s), mt(s), () => K(Ie, he({
2422
- class: [ae([e.position, e.wordBreak === "normal" ? "break-normal" : e.wordBreak, {
2423
- [e.type]: !e.icon
2424
- }]), e.className],
2425
- lockScroll: !1,
2426
- onClick: l,
2427
- onClosed: k,
2428
- "onUpdate:show": h
2429
- }, Dn(e, Lr)), {
2430
- default: () => [o(), x()]
2431
- });
2432
- }
2433
- });
2434
- function Mr() {
2435
- const e = yt({
2436
- show: !1
2437
- }), t = (i) => {
2438
- e.show = i;
2439
- }, n = (i) => {
2440
- ee(e, i, { transitionAppear: !0 }), t(!0);
2441
- }, r = () => t(!1);
2442
- return Qt({ open: n, close: r, toggle: t }), {
2443
- open: n,
2444
- close: r,
2445
- state: e,
2446
- toggle: t
2447
- };
2448
- }
2449
- function Hr(e) {
2450
- const t = tn(e), n = document.createElement("div");
2451
- return document.body.appendChild(n), {
2452
- instance: t.mount(n),
2453
- unmount() {
2454
- t.unmount(), document.body.removeChild(n);
2455
- }
2456
- };
2457
- }
2458
- const jr = {
2459
- icon: "",
2460
- type: "text",
2461
- message: "",
2462
- className: "",
2463
- overlay: !1,
2464
- onClose: void 0,
2465
- onOpened: void 0,
2466
- duration: 2e3,
2467
- teleport: "body",
2468
- iconSize: void 0,
2469
- iconPrefix: void 0,
2470
- position: "middle",
2471
- transition: "van-fade",
2472
- forbidClick: !1,
2473
- loadingType: void 0,
2474
- overlayClass: "",
2475
- overlayStyle: void 0,
2476
- closeOnClick: !1,
2477
- closeOnClickOverlay: !1
2478
- };
2479
- let se = [], Ve = !1, vt = ee({}, jr);
2480
- const Kr = /* @__PURE__ */ new Map();
2481
- function Ur(e) {
2482
- return Ee(e) ? e : {
2483
- message: e
2484
- };
2485
- }
2486
- function Fr() {
2487
- const {
2488
- instance: e,
2489
- unmount: t
2490
- } = Hr({
2491
- setup() {
2492
- const n = U(""), {
2493
- open: r,
2494
- state: i,
2495
- close: s,
2496
- toggle: h
2497
- } = Mr(), l = () => {
2498
- Ve && (se = se.filter((o) => o !== e), t());
2499
- }, k = () => K(Vt, he(i, {
2500
- onClosed: l,
2501
- "onUpdate:show": h
2502
- }), null);
2503
- return V(n, (o) => {
2504
- i.message = o;
2505
- }), Re().render = k, {
2506
- open: r,
2507
- close: s,
2508
- message: n
2509
- };
2510
- }
2511
- });
2512
- return e;
2513
- }
2514
- function Wr() {
2515
- if (!se.length || Ve) {
2516
- const e = Fr();
2517
- se.push(e);
2518
- }
2519
- return se[se.length - 1];
2520
- }
2521
- function _r(e = {}) {
2522
- if (!Ne)
2523
- return {};
2524
- const t = Wr(), n = Ur(e);
2525
- return t.open(ee({}, vt, Kr.get(n.type || vt.type), n)), t;
2526
- }
2527
- const Jr = (e = !0) => {
2528
- Ve = e;
2529
- };
2530
- ue(Vt);
2531
- Jr();
2532
- const Q = (e) => {
2533
- _r(e);
2534
- };
2535
- function Yt() {
2536
- return new Promise((e, t) => {
2537
- if (window.leadeon)
2538
- e("leadeon.js加载成功");
2539
- else {
2540
- const n = document.createElement("script");
2541
- n.src = "https://res.app.coc.10086.cn/appother/js/public/leadeon.js", n.type = "text/javascript", n.crossOrigin = "anonymous", n.onload = function() {
2542
- e("leadeon.js加载成功");
2543
- }, n.onerror = function() {
2544
- t("leadeon.js加载失败");
2545
- }, document.getElementsByTagName("head")[0].appendChild(n);
2546
- }
2547
- });
2548
- }
2549
- function Qr() {
2550
- return new Promise((e, t) => {
2551
- if (window.showCommonShareBox)
2552
- e("share.js加载成功");
2553
- else {
2554
- const n = document.createElement("script");
2555
- n.src = "https://wap.cq.10086.cn/mapp/activities/act2023/share/js/share.js", n.type = "text/javascript", n.crossOrigin = "anonymous", n.onload = function() {
2556
- e("share.js加载成功");
2557
- }, n.onerror = function() {
2558
- t("share.js加载失败");
2559
- }, document.getElementsByTagName("head")[0].appendChild(n);
2560
- }
2561
- });
2562
- }
2563
- const we = {
2564
- urlToken: {
2565
- // 来自url中的token, 需要转化为mcToken, 重庆本地和集团名称一样, 默认按重庆本地
2566
- name: "token",
2567
- // 名称
2568
- position: "all",
2569
- // 位置 search | hash | all
2570
- type: "cq"
2571
- // cq | jt
2572
- },
2573
- myToken: {
2574
- // mytoken原商城token, 商城2.0以后需要转化为mctoken
2575
- name: "mytoken",
2576
- position: "all"
2577
- // 位置 search | hash | all
2578
- },
2579
- appToken: {
2580
- sourceId: ""
2581
- },
2582
- sessToken: {
2583
- // 本地存储token, 也是登录判断标识, 各项目可能不一致
2584
- name: "token",
2585
- // 名称
2586
- position: "session"
2587
- // 位置 session | local
2588
- },
2589
- mcToken: {
2590
- // 商城2.0以后的token, 等同sessToken, 可放url中
2591
- name: "mctoken",
2592
- position: "all"
2593
- // 位置 search | hash | all
2594
- },
2595
- host: ""
2596
- // 接口, 仅支持商城2.0及以上, 集团app内会自动转化
2597
- };
2598
- function Rr(e) {
2599
- return new Promise((t, n) => {
2600
- leadeon.checkSessionIsvalid({
2601
- debug: !1,
2602
- success: function(r) {
2603
- String(r.status) === "1" && leadeon.getYDRZToken({
2604
- debug: !1,
2605
- sourceId: e,
2606
- success: function(i) {
2607
- t(i.token);
2608
- },
2609
- error: function(i) {
2610
- n(i);
2611
- }
2612
- });
2613
- },
2614
- error: function(r) {
2615
- n(r);
2616
- }
2617
- });
2618
- });
2619
- }
2620
- function je(e, t) {
2621
- if (t === "search")
2622
- return Fe(e);
2623
- if (t === "hash")
2624
- return We(e);
2625
- if (t === "all")
2626
- return kn(e);
2627
- }
2628
- function lo(e = {}) {
2629
- return Object.keys(we).forEach((t) => {
2630
- we[t] instanceof Object ? e[t] = Object.assign(we[t], e[t]) : e[t] = e[t] || we[t];
2631
- }), new Promise((t, n) => {
2632
- if (!e.host) {
2633
- n("缺少host");
2634
- return;
2635
- }
2636
- const r = ((l) => {
2637
- if (l.position === "local")
2638
- return localStorage.getItem(l.name);
2639
- if (l.position === "session")
2640
- return sessionStorage.getItem(l.name);
2641
- })(e.sessToken);
2642
- if (r) {
2643
- t({
2644
- token: r,
2645
- from: "sessToken"
2646
- });
2647
- return;
2648
- }
2649
- const i = je(e.mcToken.name, e.mcToken.position);
2650
- if (i) {
2651
- t({
2652
- token: i,
2653
- from: "mcToken"
2654
- });
2655
- return;
2656
- }
2657
- const s = je(e.urlToken.name, e.urlToken.position);
2658
- if (s) {
2659
- ne(
2660
- `${e.host}/api/user/loginReturnJsonToken`,
2661
- {
2662
- from: e.urlToken.type === "jt" ? "JT" : "CQAPP",
2663
- data: e.urlToken.type === "jt" ? s : JSON.stringify({ ticket: s })
2664
- }
2665
- ).then((l) => {
2666
- t({
2667
- token: l.data,
2668
- from: "urlToken"
2669
- });
2670
- }).catch((l) => {
2671
- n(l);
2672
- });
2673
- return;
2674
- }
2675
- const h = je(e.myToken.name, e.myToken.position);
2676
- if (h) {
2677
- ne(
2678
- `${e.host}/api/user/entryFromThirdPartyJson`,
2679
- {
2680
- data: h
2681
- }
2682
- ).then((l) => {
2683
- t({
2684
- token: l.data,
2685
- from: "urlToken"
2686
- });
2687
- }).catch((l) => {
2688
- n(l);
2689
- });
2690
- return;
2691
- }
2692
- if (zt()) {
2693
- if (!e.appToken.sourceId) {
2694
- n("缺少sourceId");
2695
- return;
2696
- }
2697
- Yt().then(() => {
2698
- Rr(e.appToken.sourceId).then((l) => {
2699
- ne(
2700
- `${e.host}/api/user/loginReturnJsonToken`,
2701
- {
2702
- from: "JT",
2703
- data: l
2704
- }
2705
- ).then((k) => {
2706
- t({
2707
- token: k.data,
2708
- from: "appToken"
2709
- });
2710
- }).catch((k) => {
2711
- n(k);
2712
- });
2713
- }).catch((l) => n(l));
2714
- }).catch((l) => n(l));
2715
- return;
2716
- }
2717
- n("未登录");
2718
- });
2719
- }
2720
- function fo({ title: e, content: t, link: n, imgUrl: r }) {
2721
- zt() ? Yt().then(() => {
2722
- window.leadeon.shareMessage({
2723
- debug: !1,
2724
- shareChannelArray: ["0", "1", "2", "3", "4", "5", "6", "7"],
2725
- title: e,
2726
- content: t,
2727
- link: n,
2728
- imgUrl: r,
2729
- success: function() {
2730
- },
2731
- error: function(i) {
2732
- }
2733
- });
2734
- }) : Qr().then(() => {
2735
- window.showCommonShareBox(
2736
- [0, 1, 2, 3, 4, 5],
2737
- e,
2738
- t,
2739
- n,
2740
- r,
2741
- !0
2742
- );
2743
- });
2744
- }
2745
- const Zr = "data:image/webp;base64,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", Nr = { class: "login__content" }, Gr = { class: "login__mobile" }, Ir = { class: "login__sms" }, Vr = {
2746
- key: 0,
2747
- class: "login__sms-countdown"
2748
- }, ke = {
2749
- __name: "Login",
2750
- props: ["close", "auto", "host", "aesKey"],
2751
- emits: ["onSend", "onLogin", "onSuccess"],
2752
- setup(e, { emit: t }) {
2753
- const n = e, r = t, i = U(""), s = U(""), h = U(!1), l = U(59), k = () => {
2754
- h.value || (h.value = !0, jt({
2755
- timer: 59,
2756
- onTick(p) {
2757
- l.value = p;
2758
- }
2759
- }).then(() => {
2760
- l.value = 59;
2761
- }));
2762
- }, o = () => {
2763
- if (!i.value) {
2764
- Q("请输入手机号");
2765
- return;
2766
- }
2767
- if (!Sn(i.value)) {
2768
- Q("请输入正确的手机号");
2769
- return;
2770
- }
2771
- return !0;
2772
- }, x = () => {
2773
- if (!s.value) {
2774
- Q("请输入验证码");
2775
- return;
2776
- }
2777
- if (!Ht(s.value)) {
2778
- Q("请输入正确的验证码");
2779
- return;
2780
- }
2781
- return !0;
2782
- };
2783
- function d() {
2784
- if (!n.auto) {
2785
- r(
2786
- "onSend",
2787
- { mobile: i.value },
2788
- k
2789
- );
2790
- return;
2791
- }
2792
- h.value || o() && ne(
2793
- `${n.host}/api/user/sendSmsUseSingleSignOn`,
2794
- {
2795
- encryptMobile: rt(i.value, "yhcqbendiqruanyi", "hex")
2796
- },
2797
- {
2798
- failMsg: !0,
2799
- loading: !0,
2800
- errMsg: !0
2801
- }
2802
- ).then(() => {
2803
- k(), Q("发送成功");
2804
- });
2805
- }
2806
- function f() {
2807
- if (!n.auto) {
2808
- n.close ? r(
2809
- "onLogin",
2810
- { mobile: i.value, sms: s.value },
2811
- n.close
2812
- ) : r(
2813
- "onLogin",
2814
- { mobile: i.value, sms: s.value }
2815
- );
2816
- return;
2817
- }
2818
- o() && x() && ne(
2819
- `${n.host}/api/user/loginUseSingleSignOn`,
2820
- {
2821
- encryptMobile: rt(i.value, "yhcqbendiqruanyi", "hex"),
2822
- code: s.value
2823
- },
2824
- {
2825
- failMsg: !0,
2826
- loading: !0,
2827
- errMsg: !0
2828
- }
2829
- ).then((p) => {
2830
- const P = p.data || p.respMsg;
2831
- P ? n.close ? r(
2832
- "onSuccess",
2833
- { token: P, close: n.close }
2834
- ) : r(
2835
- "onSuccess",
2836
- { token: P }
2837
- ) : Q("缺少有效令牌");
2838
- });
2839
- }
2840
- return (p, P) => (W(), I("div", Nr, [
2841
- F("div", Gr, [
2842
- pe(F("input", {
2843
- class: "login__mobile-value",
2844
- placeholder: "请输入手机号",
2845
- maxlength: "11",
2846
- "onUpdate:modelValue": P[0] || (P[0] = (y) => i.value = y)
2847
- }, null, 512), [
2848
- [Ue, i.value]
2849
- ])
2850
- ]),
2851
- F("div", Ir, [
2852
- pe(F("input", {
2853
- class: "login__sms-value",
2854
- placeholder: "请输入验证码",
2855
- maxlength: "6",
2856
- "onUpdate:modelValue": P[1] || (P[1] = (y) => s.value = y)
2857
- }, null, 512), [
2858
- [Ue, s.value]
2859
- ]),
2860
- h.value ? (W(), I("span", Vr, "还有" + de(l.value) + "s", 1)) : (W(), I("span", {
2861
- key: 1,
2862
- class: "login__sms-btn",
2863
- onClick: d
2864
- }, "获取验证码"))
2865
- ]),
2866
- F("div", {
2867
- class: "login__btn",
2868
- onClick: f
2869
- }, "登录")
2870
- ]));
2871
- }
2872
- }, qt = (e, t) => {
2873
- const n = e.__vccOpts || e;
2874
- for (const [r, i] of t)
2875
- n[r] = i;
2876
- return n;
2877
- }, Yr = { class: "login-modal" }, qr = {
2878
- __name: "LoginModal",
2879
- props: [
2880
- "auto",
2881
- "host",
2882
- "aesKey",
2883
- "sendSMS",
2884
- "login",
2885
- "closeable",
2886
- "resolve",
2887
- "reject",
2888
- "clear"
2889
- ],
2890
- setup(e) {
2891
- const t = e, n = U(!0);
2892
- function r(s) {
2893
- t.resolve(s);
2894
- }
2895
- function i() {
2896
- n.value = !1, setTimeout(() => {
2897
- t.clear();
2898
- }, 500);
2899
- }
2900
- return me(() => {
2901
- if (t.auto) {
2902
- if (!t.host) {
2903
- t.reject("缺少host");
2904
- return;
2905
- }
2906
- t.aesKey || t.reject("缺少aesKey");
2907
- }
2908
- }), (s, h) => (W(), ie(be(Ie), {
2909
- show: n.value,
2910
- "onUpdate:show": h[0] || (h[0] = (l) => n.value = l),
2911
- round: "",
2912
- "close-on-click-overlay": !1,
2913
- position: "center"
2914
- }, {
2915
- default: kt(() => [
2916
- F("div", Yr, [
2917
- h[1] || (h[1] = F("img", {
2918
- class: "login-modal__logo",
2919
- src: Zr
2920
- }, null, -1)),
2921
- e.closeable ? (W(), I("span", {
2922
- key: 0,
2923
- class: "login-modal__colse",
2924
- onClick: i
2925
- }, "×")) : St("", !0),
2926
- e.auto ? (W(), ie(ke, {
2927
- key: 1,
2928
- auto: !0,
2929
- close: i,
2930
- host: e.host,
2931
- aesKey: e.aesKey,
2932
- onOnSuccess: r
2933
- }, null, 8, ["host", "aesKey"])) : (W(), ie(ke, {
2934
- key: 2,
2935
- close: i,
2936
- onOnSend: e.sendSMS,
2937
- onOnLogin: e.login
2938
- }, null, 8, ["onOnSend", "onOnLogin"]))
2939
- ])
2940
- ]),
2941
- _: 1
2942
- }, 8, ["show"]));
2943
- }
2944
- }, ht = /* @__PURE__ */ qt(qr, [["__scopeId", "data-v-b29b5494"]]), vo = ({
2945
- sendSMS: e = () => {
2946
- },
2947
- // 发送验证码
2948
- login: t = () => {
2949
- },
2950
- // 登录
2951
- closeable: n = !1,
2952
- // 关闭按钮
2953
- auto: r = !1,
2954
- // 自动登录
2955
- host: i = "",
2956
- // 接口地址
2957
- aesKey: s = ""
2958
- // 密钥
2959
- }) => {
2960
- const h = () => {
2961
- ce(null, document.body);
2962
- };
2963
- if (r)
2964
- return new Promise((l, k) => {
2965
- const o = Be(ht, {
2966
- host: i,
2967
- aesKey: s,
2968
- closeable: n,
2969
- auto: r,
2970
- resolve: l,
2971
- reject: k,
2972
- clear: h
2973
- });
2974
- ce(o, document.body);
2975
- });
2976
- {
2977
- const l = Be(ht, {
2978
- sendSMS: e,
2979
- login: t,
2980
- closeable: n,
2981
- auto: r,
2982
- clear: h
2983
- });
2984
- ce(l, document.body);
2985
- }
2986
- }, Xr = "data:image/webp;base64,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", $r = { class: "login-page" }, eo = {
2987
- __name: "LoginPage",
2988
- props: [
2989
- "auto",
2990
- "host",
2991
- "aesKey",
2992
- "sendSMS",
2993
- "login",
2994
- "success"
2995
- ],
2996
- setup(e) {
2997
- return (t, n) => (W(), I("div", $r, [
2998
- n[0] || (n[0] = F("img", {
2999
- class: "login-page__logo",
3000
- src: Xr
3001
- }, null, -1)),
3002
- n[1] || (n[1] = F("p", { class: "login-page__tips" }, "短信验证码登录", -1)),
3003
- e.auto ? (W(), ie(ke, {
3004
- key: 0,
3005
- auto: !0,
3006
- host: e.host,
3007
- aesKey: e.aesKey,
3008
- onOnSuccess: e.success
3009
- }, null, 8, ["host", "aesKey", "onOnSuccess"])) : (W(), ie(ke, {
3010
- key: 1,
3011
- onOnSend: e.sendSMS,
3012
- onOnLogin: e.login
3013
- }, null, 8, ["onOnSend", "onOnLogin"]))
3014
- ]));
3015
- }
3016
- }, to = /* @__PURE__ */ qt(eo, [["__scopeId", "data-v-88cefd34"]]), ho = {
3017
- install(e) {
3018
- e.component("LoginPage", to);
3019
- }
3020
- }, no = { class: "pay-modal__title" }, ro = { class: "pay-modal__field" }, oo = ["value"], ao = { class: "pay-modal__field" }, so = {
3021
- key: 0,
3022
- class: "pay-modal__field-countdown"
3023
- }, pt = {
3024
- __name: "PayModal",
3025
- props: [
3026
- "maskMobile",
3027
- "info",
3028
- "title",
3029
- "showConfirmButton",
3030
- "showCancelButton",
3031
- "confirmButtonText",
3032
- "cancelButtonText",
3033
- "closeable",
3034
- "auto",
3035
- "host",
3036
- "token",
3037
- "pid",
3038
- "goodsList",
3039
- "sendSMS",
3040
- "pay",
3041
- "resolve",
3042
- "reject",
3043
- "clear"
3044
- ],
3045
- setup(e) {
3046
- const t = e, n = U(!0), r = U(""), i = U(""), s = U(!1), h = U(59), l = () => {
3047
- n.value = !1, setTimeout(() => {
3048
- t.clear();
3049
- }, 500);
3050
- };
3051
- me(() => {
3052
- if (!t.auto) {
3053
- if (t.host) {
3054
- t.reject("缺少host");
3055
- return;
3056
- }
3057
- if (t.token) {
3058
- t.reject("缺少token");
3059
- return;
3060
- }
3061
- if (t.pid) {
3062
- t.reject("缺少pid");
3063
- return;
3064
- }
3065
- if (t.goodsList) {
3066
- t.reject("缺少goodsList");
3067
- return;
3068
- }
3069
- }
3070
- });
3071
- const k = () => {
3072
- s.value || (s.value = !0, jt({
3073
- timer: 59,
3074
- onTick(d) {
3075
- h.value = d;
3076
- }
3077
- }).then(() => {
3078
- h.value = 59;
3079
- }));
3080
- };
3081
- function o() {
3082
- if (console.log("0000"), !t.auto) {
3083
- t.sendSMS(k);
3084
- return;
3085
- }
3086
- s.value || (i.value = Bn(), ne(
3087
- `${t.host}/api/order/sendSmsCode?token=${t.token}`,
3088
- {
3089
- body: JSON.stringify({
3090
- pid: t.pid,
3091
- goodsList: t.goodsList,
3092
- requestNumber: i.value
3093
- })
3094
- },
3095
- {
3096
- loading: !0,
3097
- failMsg: !1,
3098
- errMsg: !0
3099
- }
3100
- ).then(
3101
- () => {
3102
- Q("发送成功,请注意查收"), k();
3103
- },
3104
- (d) => {
3105
- d.respMsg.includes("用户身份受限") ? Q("当前号码不符合活动参与资格,请使用符合资格的号码参与活动") : Q(d.respMsg);
3106
- }
3107
- ));
3108
- }
3109
- function x() {
3110
- if (!t.auto) {
3111
- t.pay({ sms: r.value }, l);
3112
- return;
3113
- }
3114
- if (!r.value) {
3115
- Q("请输入验证码");
3116
- return;
3117
- }
3118
- if (!Ht(r.value)) {
3119
- Q("请输入正确的验证码");
3120
- return;
3121
- }
3122
- ne(
3123
- `${t.host}/api/order/placeOrder?token=${t.token}`,
3124
- {
3125
- body: JSON.stringify({
3126
- pid: t.pid,
3127
- goodsList: t.goodsList,
3128
- smsCode: r.value,
3129
- requestNumber: i.value
3130
- })
3131
- },
3132
- {
3133
- loading: !0,
3134
- failMsg: !1,
3135
- errMsg: !0
3136
- }
3137
- ).then(
3138
- (d) => {
3139
- const f = d.data[0];
3140
- t.resolve({ orderId: f }), l();
3141
- },
3142
- (d) => {
3143
- d.respMsg.includes("验证码不存在") ? Q("验证码错误") : Q(d.respMsg);
3144
- }
3145
- );
3146
- }
3147
- return (d, f) => (W(), ie(be(Ie), {
3148
- show: n.value,
3149
- "onUpdate:show": f[1] || (f[1] = (p) => n.value = p),
3150
- round: "",
3151
- class: "pay-modal",
3152
- closeable: !1,
3153
- "close-on-click-overlay": !1,
3154
- position: "bottom"
3155
- }, {
3156
- default: kt(() => [
3157
- F("div", no, [
3158
- F("p", null, de(e.title), 1),
3159
- e.closeable ? (W(), I("span", {
3160
- key: 0,
3161
- onClick: l
3162
- }, "×")) : St("", !0)
3163
- ]),
3164
- (W(!0), I(Ct, null, nn(e.info, (p) => (W(), I("div", {
3165
- class: "pay-modal__info",
3166
- key: p.name + Math.round()
3167
- }, [
3168
- F("span", null, de(p.name), 1),
3169
- F("span", null, de(p.value), 1)
3170
- ]))), 128)),
3171
- F("div", ro, [
3172
- F("input", {
3173
- class: "pay-modal__field-input",
3174
- type: "text",
3175
- maxlength: "11",
3176
- value: e.maskMobile,
3177
- readonly: "",
3178
- placeholder: "请输入手机号"
3179
- }, null, 8, oo)
3180
- ]),
3181
- F("div", ao, [
3182
- pe(F("input", {
3183
- "onUpdate:modelValue": f[0] || (f[0] = (p) => r.value = p),
3184
- class: "pay-modal__field-input",
3185
- maxlength: "6",
3186
- type: "text",
3187
- placeholder: "请输入验证码"
3188
- }, null, 512), [
3189
- [Ue, r.value]
3190
- ]),
3191
- s.value ? (W(), I("span", so, "还有" + de(h.value) + "s", 1)) : (W(), I("span", {
3192
- key: 1,
3193
- class: "pay-modal__field-send",
3194
- onClick: o
3195
- }, "获取验证码"))
3196
- ]),
3197
- F("div", { class: "pay-modal__btns" }, [
3198
- F("div", {
3199
- class: "pay-modal__btn--confirm",
3200
- onClick: x
3201
- }, "确认下单"),
3202
- F("div", {
3203
- class: "pay-modal__btn--cancel",
3204
- onClick: l
3205
- }, "我在想想")
3206
- ])
3207
- ]),
3208
- _: 1
3209
- }, 8, ["show"]));
3210
- }
3211
- }, po = ({
3212
- // 必填
3213
- maskMobile: e = "",
3214
- info: t = [],
3215
- // 可选
3216
- title: n = "订购确认",
3217
- showConfirmButton: r = !0,
3218
- showCancelButton: i = !0,
3219
- confirmButtonText: s = "确认下单",
3220
- cancelButtonText: h = "我再想想",
3221
- closeable: l = !1,
3222
- auto: k = !1,
3223
- // 手动
3224
- sendSMS: o = () => {
3225
- },
3226
- pay: x = () => {
3227
- },
3228
- // 自动
3229
- host: d = "",
3230
- token: f = "",
3231
- pid: p = "",
3232
- goodsList: P = null
3233
- }) => {
3234
- const y = () => {
3235
- ce(null, document.body);
3236
- };
3237
- if (k)
3238
- return new Promise((E, z) => {
3239
- const u = Be(pt, {
3240
- maskMobile: e,
3241
- info: t,
3242
- title: n,
3243
- showConfirmButton: r,
3244
- showCancelButton: i,
3245
- confirmButtonText: s,
3246
- cancelButtonText: h,
3247
- closeable: l,
3248
- auto: k,
3249
- host: d,
3250
- token: f,
3251
- pid: p,
3252
- goodsList: P,
3253
- resolve: E,
3254
- reject: z,
3255
- clear: y
3256
- });
3257
- ce(u, document.body);
3258
- });
3259
- {
3260
- const E = Be(pt, {
3261
- maskMobile: e,
3262
- info: t,
3263
- title: n,
3264
- showConfirmButton: r,
3265
- showCancelButton: i,
3266
- confirmButtonText: s,
3267
- cancelButtonText: h,
3268
- closeable: l,
3269
- auto: k,
3270
- sendSMS: o,
3271
- pay: x,
3272
- clear: y
3273
- });
3274
- ce(E, document.body);
3275
- }
3276
- };
3277
- let Ke = null;
3278
- class io {
3279
- constructor(t = {}) {
3280
- if (Ke)
3281
- return Ke;
3282
- window.gdp = window.gdp || function() {
3283
- (window.gdp.q = window.gdp.q || []).push(arguments);
3284
- }, this.options = Object.assign({
3285
- scriptName: "https://res.coc.10086.cn/res/res1/chama-h5sdk/gdp-full-3.8.6.js",
3286
- generalProps: {}
3287
- }, t), this.init(), Ke = this;
3288
- }
3289
- init() {
3290
- if (!this.options.generalProps.WT_cid) throw new Error("缺少WT_cid");
3291
- if (!this.options.generalProps.WT_clientID) throw new Error("缺少WT_clientID");
3292
- if (!this.options.generalProps.WT_channelid) throw new Error("WT_channelid");
3293
- const t = document.createElement("script");
3294
- t.src = this.options.scriptName, t.type = "text/javascript", t.async = !0, t.onload = function() {
3295
- }, document.getElementsByTagName("head")[0].appendChild(t);
3296
- const n = sessionStorage.getItem("debug") === "true";
3297
- window._gr_ignore_local_rule = !!n, window.gdp("init", "9e4e5fa7244c6b6e", "b23efeab1461679b", {
3298
- host: "jiguang.coc.10086.cn",
3299
- autotrack: !!n,
3300
- // 关闭无埋点事件发送,生产环境设置为关闭。
3301
- compress: !n,
3302
- // 开启数据压缩模式,整体报文加密,生产环境设置为开启。
3303
- hashtag: !n,
3304
- // 开启页面URL混淆采集,生产环境设置为开启。
3305
- scheme: "https"
3306
- });
3307
- const r = Object.assign({
3308
- WT_cid: this.options.channelid,
3309
- WT_clientID: this.options.channelid,
3310
- WT_loginProvince: "230",
3311
- // 登录号码归属地省编码
3312
- WT_loginCity: "023",
3313
- // 登录号码归属地市编码
3314
- WT_prov: "230",
3315
- // 用户登陆省份和定位省份取最新值
3316
- WT_city: "023",
3317
- // 用户登陆地市和定位地市取最新值
3318
- XY_member: "游客",
3319
- // 超市会员等级
3320
- XY_login_status: "0",
3321
- // 登录状态
3322
- WT_mc_ev: "210315_QYCS_230",
3323
- // 营销活动码
3324
- XY_environment: "production",
3325
- // 环境
3326
- WT_channelid: this.options.channelid
3327
- // 事件编码
3328
- }, this.options.generalProps);
3329
- window.gdp("setGeneralProps", r);
3330
- }
3331
- }
3332
- const mo = {
3333
- init(e) {
3334
- new io(e);
3335
- }
3336
- }, go = {
3337
- install() {
3338
- localStorage.getItem("debug") !== "true" && (console.log = () => {
3339
- });
3340
- }
3341
- };
3342
- export {
3343
- go as Debug,
3344
- vo as LoginModal,
3345
- ho as LoginPage,
3346
- po as PayModal,
3347
- lo as converToken,
3348
- fo as share,
3349
- mo as trackEvent
3350
- };