pandaSBC

基于FSU/Enhancer 的永动机滚卡助手

// ==UserScript==
// @name         pandaSBC
// @namespace    http://tampermonkey.net/
// @version      2.1.5
// @description  基于FSU/Enhancer 的永动机滚卡助手
// @license      MIT
// @match        https://www.ea.com/ea-sports-fc/ultimate-team/web-app/*
// @match        https://www.easports.com/*/ea-sports-fc/ultimate-team/web-app/*
// @match        https://www.ea.com/*/ea-sports-fc/ultimate-team/web-app/*
// @match        https://signin.ea.com/*
// @grant        GM_getValue
// @grant        GM_setValue
// @grant        GM_addStyle
// @grant        GM_deleteValue
// @run-at       document-end
// ==/UserScript==


/*
 * 脚本使用免责声明(Script Usage Disclaimer)
 *
 * 本脚本仅供个人学习和研究使用,不得用于任何商业或非法用途。
 * 作者对因使用本脚本造成的任何直接或间接损失、损害或法律责任不承担任何责任。
 * 使用者须自行评估风险并对其行为负责。请务必遵守目标网站的用户协议和相关法律法规。
 *
 * This script is provided “as is,” without warranty of any kind, express or implied.
 * The author shall not be liable for any damages arising out of the use of this script.
 * Use at your own risk and in compliance with the target site’s terms of service and applicable laws.
 */

(function () {
  'use strict';
  const GUIDE_SHOWN_KEY = 'guide_shown_v1';
  const PandaSBC = (() => {
    const config = {
      version: '2.1.5',
      DEFAULT_TIMEOUT: 15000,
      LOGIN_BUTTON_CHECK_TIMEOUT: 60,
      UI: {
        SP_STABLE_FOR: 300,
        SP_FILL_SUCCESS_TIME: 1000,
      },
      RANGES: [
        { range: [82, 86], type: 'all' },
        { range: [87, 88], type: 'all' },
        { range: [89, 96], type: 'all' },
        { type: 'storage' },
      ],
      STORAGE_MAX: 100,
      MIN_RATING_KEY: 'minRating',
      DEFAULT_MIN_RATING: 98,
      HIGH_RATED_POPUP_THRESHOLD: 98,
      MAX_RATING_TOTW: 90,
      MAX_RATING_NORMAL: 98,
      targetKeywords: [
        '89 阵容变异',
        'TOTW 升级',
        '10 名 85+ 升级',
        '10 名 84+ 升级',
      ],
      blacklistKeywords: [
        '可交易',
        '青铜升级',
        '白银升级',
        '黄金升级',
        '混合联赛升级'
      ],
      PRO: {
        LOWBIN_RANGE: [75, 80],
        LOWBIN_SAFE_MIN: 20,
        TOTW_RANGE: [83, 84],
        TOTW_NEED: 11,
        TOTW_SAFE_MIN: 3,
        LOOP_FAIL_BACKOFF_MS: 3 * 60 * 1000,
        TRY_LOOP_FAILS_BEFORE_FALLBACK: 2,
        AUX_MAX_CONSEC: 2,
        LOGIN_EMAIL: '',
        LOGIN_PASSWORD: '',
      },
    };

    const CFG_KEYS = {
      SP_STABLE_FOR: 'cfg_SP_STABLE_FOR',
      SP_FILL_SUCCESS_TIME: 'cfg_SP_FILL_SUCCESS_TIME',
      HIGH_RATED_POPUP_THRESHOLD: 'cfg_HIGH_RATED_POPUP_THRESHOLD',
      MAX_RATING_TOTW: 'cfg_MAX_RATING_TOTW',
      MAX_RATING_NORMAL: 'cfg_MAX_RATING_NORMAL',
      TOTW_SAFE_MIN: 'cfg_TOTW_SAFE_MIN',
      AUTO_RESTART_ON_STOP: 'cfg_AUTO_RESTART_ON_STOP',
    };


    const DONATE = {
      ALIPAY_QR: 'data:image/png;base64,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KvZoxeN8U+7WrZsMGzZMGjduHFtvklvmfUWFBk8cCSWrb+P08dRTTxVYlEigz7KkOTAUze/Loi1pGW00HVtTVfw4WfJifX+L6ZunNVXFOleQ86kqxxxzjGmI04AnhBSUOL1Hv3lq483vIVVlxXCF07Z5TLfYtm05jZbE+cTNSJwZ/fvoo49cnqeFVo13W5PEV1fwTAMCScHTEztkSWgQpWrTxtETGPi+xi1QkoKnt8k4O/bvg9mHxH2oELMus2bNcqQHL774ojqnmjVrJjfffLOa55lUb1bw9ExThQbP4447zqlZm+MBPAN4qvOxGMATJwOVGflgUG5lVaiXydi7d283WbQIDnkovNZff31VljYWCjw32WQTx5xCVEK7s1hM+DqgSpswYUJsnd6RjRgxQgYPHmwajqTgCW3c6NGjM4+sN910U+nRo4ejm4sbb0CA3E0LbRy6I1KHmm/y5Ml59RElrIAl55tvvskr63VMO7E5aCGzLgAXYzhlyhS16gYNGjhCBSj6NL1R2aefflpBr5ivcm9z6CxOF/55zznLfPW7LnENJw1m5MiRMmnSJLV/0P4deeSRsu2225r4ewN4BvBUjapYwBPQ9JRxGsipnVouwOQFLHbbbTeZN2+eChi8984775Q//OEPJoq+QoEnEx3gTBMBarr5xz/+IYceeqiwjRVX0N29994r55xzjgm8k4InfMOvvvpqBbdtFgsE9HXppZcKN5o0adIkFgRwvK+99poccsghTg353u8detu2bQXS+b333lvVGwKwEaE/rVA/4w2IZl0AIOx51113VQGD/mNztEWLylh4/PWvf3V0fnHFU13+/ve/l9tvv92kt/nz57v2AopaoX///Oc/hfopmt+gf1Bv+jGNqz+AZwBPzf6K5sCQ2tCUAt9++6306dPHEXtbSjHcqmJpZ1oZy60qHkyQBYgsJSl47rvvvibmG8u7ozL+VhXAUytsZ9IOS4FQn21N+mkp1ivJLHWlleE7P9R4AL4GLEneAdBefPHFbudFK4AVLEfMK0sbmKfMV+atVujf3Xff7Ra7WZcAngE8VZsqhshTbWQVBAJ4rqy8AJ4r9BHAM93ECuC5st569erlSOd32GEHVaGBYSiPigLD0MqKueyyy+TKK680rThVq0spEMAzgGc+0wngmW5SBfAM4BlnOXzfdlfbjRgxopx0B0sJ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to3RW9i2TW9UATzT6876ZIg8Q+RptZWwbZuFpsK2rVmLATzNqvqVYADP9LqzPvlbAM/777/fnOdZyMiTi7aPOeYYdWjCaVtVRXkFflOnbZcsWVI+c+ZMk7ZIgG3QoEEF+UFc0i5J0muuuWZFgraWS7RgwQJHOabJ0VAGqGHDhrFH2f0x9/XXX1/ee+89lWGI93qGISsl3emnny7kpVHiGECo++mnn3a5fGyvxBXqgRUGdhOOtWvH9S0D50kSkOUmexLX89Xrk9t55p577nFECZZCvzxlnJYrRS4YjC++DXHypCzAwHP00UerLCuWdiLD++gn+Yew2RSikBrhGVzi6gc8Tz75ZJcSpLHI0G50zFzxNpevbvpH3jJ1a8WTYnjbyCcftRkWVscff3zeqv2YYmvPPfecIz6wFMaZOYVefJ54vucgSTjvvPMcM4xGN4m9wR72+9//PlbPvh7m3913321psknG6w7/iT46d+5seg4f4HPUsyJJoC20A5avJCQImt/idzCCFClr/0xKKKAQdkreJjn74ITmu2hKRZ7nxIkTy//2t7+ZmgfhAMbXtm1bJx83mDTitttuq2hMHAjw24cffihPPfVU7CTwdcCNetBBB7nB1wp5gtDdMRHjHA2/jRkzRgYNGiRTp07VqnW/IxeVjesjDCetW7c2gSF67tevnzPEOB2bGrlcyBsF3KjkmeUzkui/ozvabCmwpvznP/9xjl1LrIZjlHw7KOy0ApXgtGnTZPr06SbdafXxu8+n5KAAub2WCWOpNyoDaG244YbqYzjGTTbZRPr27WsCT3htAUUWKxqZAo537bXXNultxowZzql//vnnsW3274S/tGfPnnllvU6RZyGx1lprqbpAgHYw3p4KTvMb+CL6qRXsCO5SeEy1BSltZ+HPwi2LEs3fBZxHjx7tFrBaYfF12GGHSe/evZ1o3OIq6TfPPffcU3bffXetCYl/T9K/xJUX6IEpU6Y4v4//t/iCCvAcMWJEuZUNYqeddpKbbrrJESz7wczXn2gEY1lRE+UQYWj8idR11FFHya233uomZb7ileANV3M0Frncd0GQwH8WhbNKp80AhrboiL5Hm+hWe/LjceyxxwoAmo/fNso+csEFF8i1115resXDDz/sWIDYxdDAk1tVHnvssQry6Lg+4khhcSLB3aJnU2OXC2ntTFJXrizk33vttZf7Z20BFO2XZqdEcGw/EnVp+th7770rLmfQ6sVxQFH27LPPVqXbKz3LOwEAtkrhEbYUxpk5xWJJ6x/RKXaEPWn+CFCGPYzdBq3Q7r///e+O7zSL+RftB9E9i/9vv/1Wa4abH0S/AKgv+dqTFDzRMdGW5pvVRkYE6CeLAhaDlv4lqXtVyFr9QZXAkxVndDVVWcf875oczyIDAw83CGjgiTxbO0S1bMVkVaIrZWudOHWoxLRJTn2AJ20GPDVHpjkCa/uicr6NGnhGn8F5JAFPtttY2WslyZVkhQRPrZ1V+R3wBLyyHssk93kWA3gSWWNzVvBkYYBjB+y0eZXkSjIWdXxPtYAnY3bNNdcUhF0L8OS2HQu4ePBk50zzo2nAE1vKYnEQnSeAZ69evWTEiBFVmT5F/WyVwTPr3hF5Vid4pukP3zCt33IAz9tvv920VZmmLZZnmICFAk+cEpFnocATp1qTigfPaCSfRfsLAZ60i8iTyCzLyJN6iTzTgCeRp1Z+S+Cp6SIpeLLw95GnVneS3wHPjTfe2LQ4SFJvMckG8MxgNAJ4rlBiAM+VDSqA5zJ9BPBc2S7SRp6auwrgqWkou98DeGagywCeATzzmVEAzwCeldlGAM8MHG81VxHAM4MBCOBZXOAZ/X7D3/1Fwv7Uctbfd+JMiIMsu+22W8XhKe3QkMUc2XbnW9ydd96ppnXxvl122UUef/xxV3Vc3zlMNm7cOJfKQZpBmkLb/H+cW+BAGn8yBpysTvrNM2zbSsWBIb55aiVEnpqGsvs9gGcGugzgWVzg6bcJSTPo0qWLO4rPn927d3epB6Q0ZJn+o5lQ9JBHFsCtHaCJtif3AJx2SE07kFJZX/33XMAXoCSqmjRpkvve9d1338mrr74qo0aNEtIiOGluKf7AUADPAJ4We6kOmQCeGWg9gGdxgecaa6wh2223nRx33HGy66675r0APQsg08zHR2E+6svinVHw5O9aNGs9Qe6JAZKmLfj0p3y64C7Pt956y6UvRdMt4nQXwHOFdqKnbTV7C5GnpqHsfq8SeFryPK1N9RO8OlNVrHl2uX3ixBoX91qKNVXFUldSmWj/iu20rRbx+FQV7bQtZABsD5566qnSrl07lX0qN4qL5nh5oNPaljsOuXakRYqVvTOuTn6LA8QoQMf1z78jN6/N9zd6Qjj6vlx9RMGzMl1F26ABvW8T48y8Yty1Ej1t6xcplT1DOzgFnjRVJas8T98m2gFDVJpUFU0XATwr15A1d1PTb/T31OB54403OmaRpI4lrnHUBXhaSBKoJ+s8Tz/Jk/aJyDNJnidbVxZWpCQDaZX1fSQq43uclk+L0eE8+MZmKVGSBE2e/EO+xeH8NJ2zfUfeH8nzucVPjJYtWzoaOlJl2J6NgkO+tuQDNg9ASVNMqC83got7Rz4QtABwFNyj/YsDw1zg1aLSuLZX9n4rqGu2ESVJiLa5suc8eEJGoUX2gKcnSYhb1Ph6rr766grKxHxtjlICau/3fQE8k5Ik1IRvnuiU//ArllSVuIWeZiOW33PHQ1vIWur0MhXgOWPGjPJnnnnG9CzbLz///HMFh6nFYCwV0zG+k0DRZ+lk1uDpV9Ak9j755JMyduxYS7NdhNO+fXuTLN+C0J1n9slKd5aXRx3beuutJ61atVKJGmgfk4CJbil84xo8eLCJdgxA/OGHH5wuNPBkRf3pp59KZXzD/lAQzhOnS/RJ4d9JsmfbEA5k33+iH1In+O7p3+v//P7779240+coLZt1nLAhHONrr70mW2yxRUVbcvs3e/Zs1zbveKPcorSNhQB/QnMYbTe2gy6gEtt0000F6kQKOkSXgANjxf9+//33HR0ezGH52o9uohy56CTKfpU7D7/44gvXZvRTWRQ5fvx4mTBhgsAlDahRkNPGN9e2vvzyS0cR6NsWZ3v0lXFDn1qBnnPdddc1002iS5L948YffdC/oUOHygMPPJC3CVFdAi4vvPCCqc01advWgyd/QvMYx5fuF3mM8RNPPOH8vlawpSOPPFK23XZbTbTi95NOOqni7xZcsVZcAZ5lZWXlTCRLgVOTaOTrr79WV3qW+rwMHWMi5KOMy62rEODJOyAGhmiaCWwp0NdxQpH2a5R75EFSt4XT0vLuJDJR8OSkJt+f8nH9+klA/ThU/rMUHIm3Iw1wXn75Zce4xAGTOOfq20Ld3lFF28J7AExOcnIohf+NfuEwhUYS8msIqpnI/Ef7DjnkECf3ySefuHfvuOOOjqmKNgH+TFAcp9eP1hfaQz3UPWDAACECB7j8DgPcwNDe0RYKjgWHD0AC0nDrbrnllg4YAQE4m2kzzphFBjyocB0jz8KHfhBdb7311u7feC+8nAD/4Ycf7try2WefucM6l1xyiesrups4caLrH9uhHKQC5KmLvjMOUF2yIwAo8ywgzdjzbwD6//3f/7mogksLvK3zbwAmhT95B+DJwSza0bFjxwqKQoseqcf7AT/2cfOKhQh2RHu1Qv8gs0dHWlt4N+PPu7V5jU7g5KYd+erNddyMmcWZ1zTw9HNB29VCDpvE7tgNgC5UK9giO3fsnFkK+vVzMOut2wrwLLeM4vLW8vEfRwChdnWWrMHTDzqOjO8irLItBbYXthS1yUhdbEtzC4t2q4rlvVWRefDBBx1AxBHlV6V+y7OkQ+DE4GetSsGxcUAIIPA3TwwZMkRwqkSrRFL77befu8iAMSUdA0JzWHQwe0CWTxA8C6ARMb7++usOYAEBxjVubP3UwVkQ7WE/+++/vwM5Clv6pItweMnrG1AEXAEeFqI4BJ7xNucJ14cPH+5sBZCHK/TNN990bWS1Djixe8DijQUtdfHvW221lQNHolAcE5cREHlzmQOgxAqfucvnEQjm+Q0g9pHwwQcf7ECUeonm0cUJJ5zgIjBI/6nj0EMPdYDC3wFLHw0/8sgj7lYi+sL7qJt20ldNj2ltgHE+4ogj3KJFc2P0i90JvotnWdADn0Gyrpc21iTwTKNTxg+fyIJTK8wfFv4nnniiJlrxu8UvmyuLCKYGT1YK1sgsTcMszwTwtGipcpnVCTyJvDhcgrP30R8AhkMDfIisyLXE8RO9AWpEbGzNc1PFL7/84kCLm3Fw+AAJt8MAvCyM2rRpExt5+GiYOiASx9lxf6y/WYJPEUR566yzjgMV2ssOBMCHM8d5sIUHIFF+/PFHd5gEsMTRs0VK3ayguQmHbSgAkEi1R48eDpABSgCUbdMDDjjA/W8iPhYOgJtfILC1yOKB+pADPHkPnx34pMBvXPxAJMq3fPTK4R22iNEtwEi/ttlmG7f9SXSM3t5++22nr06dOrnomgURIM+iAVn6SrEeGEpi2QE8V2irWA4MJR2/AJ5JNJaBbADP9EpcncATZ803k3333dcpBBAAJIgkARu2HiGhx7nj+Ikyic7YZttss80cWI0cOdKBEUAKSLBFCQh26NDB5YjGbVsjT70AFoAMQLANTJ1vvPGG25ICvABkbJZIDHBnB8cTCbDlCqADhGzjsi0KMHFghXezBQuA8Q7AF2BiEQDo+W1aIkRWw0TZbGESOQNw8EUTffK/2bJla5fIk4UC3xX5N95BH8iF5WAKuuPd/pAWJ+tZhKBP5AB3ZAFo5Lh2jUUG+iKnk39Hr/SbLWfuKSUKLcRORwDPAJ5xnjBEnpVoJ4BnAE+/rQUI+G1SgIHIinxPIk8AhuiIb0yAFduPgKePPDmEA3jg8Fm54+D5EyDgWyq/RU+Wxp3gg46PgztEW9QLKGKnfLfkIJoHT3ZtfvrpJ9cevs9yWI/I05M3+GiQqPG+++5z/eBKL/rB90gWAsgA7ER7bFMDmESepOkA1Gz9Anr8b7aO0QMRazTy5NwC9flvi/SNZwBb7vf118ARufM+2kmb2dpFT/ydhQqLDiJfvqOzmOFgF+/if1M/ixTtUuu01hzAM4BnAM+EsyeAZ0KFRcRXp8iTrU9uA/GnO1955RUHJmzJAlI4faI8tiIBBSImwJNolb8DcoAGERnRE/UAKkSoHJSpDDzzrWbZfgW4eJYIzX+b5O9suxKxAS4ADhEZ/w54Anx77LFHBXhyQpZvr8gA8rSbE4Z8++Q0LxEmMkSWbI0SmbI97K/+4uATgE0/uU6Ow1S0GUAD3AFjIkxuA+JbrD+sx3dP6mOrmKiTrXDukiSqR49sffsDV4AhW+MsEPjeiM759sjWOHogouUbIP2g3+GbZ7r5Gr55rtBb+OaZzoZ+9VQAz/SKXN3Ak4jMbwmyHUvKDN/uOETDt0a+QbLd6S+P9t88icIAAJw72718ByRiZbsVkIgyFAE6RFg8W1meLgAEiABufNv0h5cYJX4D3Pz2MODJ+/gWyHYoAIo8/5vDPkSJRNIAPFvARNJEb0SvACnbp2zj0i8iZLaKOaxE+4hQ6RfvA3xZXNAen04BUAOSfDvlOioIM/iNKJLnfXoGVwOylU2/+TtRLpEngE/kCRiiO7538m6iXoCXqJ0+APAAad++fR2I079CbKGFyDNEniHyTIgFATwTKmw1jjyJsrxj5nsgYAJoEHHh6MnFBUxIQ+LULd9AiZgADf43YMhpSYCJb5JEnkR6fBf03wPfeecdFzFyuCGaA+rVSl2ACFEu7+MbH8WDDEBGZEt0xoEhgIWtYrZlIXfgJC0RH9vORJSc9CWi5DvnsGHDHMjRfr4jzp8/322H0l4AHiDmN9oKABOJA8hsZwN6nHYFxPiThQXto350A7BRAEUWF0SZADUngnmGE7voirrRLf2kTtJvOAjFqWlAnIgbsOUbM4eu0BVgyhYz4M135HBgKPmcDZHnbzzytObYRL8taWZmAc/co+uWlAO+3XDII2mqineUce0mVeWMM84wJX8n1ZmPcLRVGDqpaZFnnF0Akp5A3AMVfxIBsU1JBMrfASVAhcMtRHX8G9EoERHRC0ADuHFClQjMb/ES0QIs2IM/kAPAVlYAGkDSp9/4/FX+5D2AF9vHHBjyJAdshRLxcsAGwAUskWdbFpAEkHmGb7VEgQC9Z1Cin/SfdgGqgBp9IorkNwDU5ypSB7J+C5l3AJD9+vVzoMYz5GmymOA7Kn3AcVMHkaw/GOXzH6kXoEaPbE+zTQtY8u/sBBAds+1NJM67o5F41FapLxdU/bz1+oubt9UdefqonV0Ca6qKdW6jp5oGnv77OW3X8mORSUKZmHTb1ttWEn1ruON/959OSpLmeVpTVeIOV1TWyCSdtICnTyNgELW6/YQFPMljtYIn3408t23cdx3qJ8qw5HnmHlCJy1/z/bIsPLwM4EkEVIjTj1bjS5Ln6VlqKtMDIOc5UHPtjW1FP4H5O/bgv2FGJ7b/5uf/zduNl+VZwAk5ADafM/eOIwqaflEVbbtvlwctD9BRWc865B1AlKkn2nba6lmaoqQOlc29qH365/xBnqgOkPPvyNV5ZWPgAcTry9cNYOZjGIrS2lW28OR3r4M4Oy0G8PR5nmyZW4rmi6J11CTwjAKnFkx4O2KRBqUmuzHawt+DJ3nHluIXel42zo9a6vMyjB+7U469q1DgifFz2s87k7gGIgOasyrPnViVPWcFT57luxIrwzjl+d9Y7bMCtxIZwGrD9pVGQ0b95MkRaVjYN9heA8g1NiIGki08WGlyV/f59A1BAltyhdhGsxphEvAkGqS9bGvmjiGR2A033OBeG7WzfDZXWTTjJ33uosX3xYOpBxXLDkZUD5W1y4NiZbZe2ULI/1tloJjb17j2RR1JvvmQu7CIWyxE9V7ZoiHfs/SbxST2ndt+Dlwx3oy75oSLATzpC5E2JBEaAPiFxtNPP12xYxL3TE0DT/rCYoKzB3GUiVGgxd/GUfl5G8CWOJXOuQNLYVzY6dNsyFJXrgw54OwAFQw86WyUbk9zOlnfquKdAwct2PbSKAhp3w477CA333yzk7eUqAPS+hd1EpqDgzSdb2EWBh5OjfLNyZ84zddua1st/a6qTBLwZHFAdM8KNeluRm47cyP1XDDJF7FFV53aIjAX/Pw7vf4r21mIvrdcyoX/H5307tnlbEclkQZoq+lolLPSO6ivkgVH9J2VgXi071oEpc0Hvh2zbZdbD+PMjg7fSTXHVwzgWdmCrDIb8WPF9v7qSAzv7cmnhHHOIF9hzPmPTyCQgcRF7ZUtyiz+B/CM2qDmcy11Rv2Fs81CRZ5UntuBuAaS0M3JPktkZok8/bsYRAt4Ig94wqpiBc8kCk8imwQ8ObDByjfft7gk711VsmnAE9rE1acsR0eHksvgkL8thzQp4f8tFynj30uYqEjidCqm8PK/ROG05miILXfAM7cwziyWAFfN4VU3eKbRNuAZriRbpjkW/LfffrvLga6JJYBnZNQCeK4aEw7gGQVAD6TLILR8GUSKgJrLlreRQQFFayZY5lpWAM/8kZnXVU3atvVtZiveciVZAE/F14bIMx0Yhchzhd78tu3qFXmu6N8yuFwBpkuXg2epw8xyKSsvk6UcoCkpkVqlpcsD1VK/s7vSsz6KTWd1q/apAJ4BPEPkGTPnAnimc0gBPFdz8HTfHEsiW7X8T+6GLJP582fL+LG/yOifvpcJ48bK3PlzZe6CBVKvTn3ZoOsG0muT3tJijTZSUlq3AnZLhO876Kw0ncFVw1MBPAN4BvAM4Jm56wnguZqD59Jl27HuEEkt0mgWy9y50+XzT4fJh28NkJmTx8jcmVOlQ7u20qb92jJq9FiZNnWm1KrXWJq3aieHHH6cdN5gUykprSflZSVSWrI8eq1BW7oBPAN4BvAM4BnAM6EGfuvfPF3gyWnA0iWyZNEMGf7Ju/LME/fKpHE/SfcunWXL3pvKl58Ok+49ukp5rVry9vsfSI8NN5ZWa7WTgYOGyYRpi+SsC6+WDXr0kdq16riTRi6ODeCZ1xILdZ9nQtN3rE3hwNAyrQXwDOCZdP6o8iHyXL0jzzKXjbJEFs2fLq8PeFxe/e9DsnnP9tJ9vbXlw09GyvgJ02SbzftIq9bNZeCHg2T0uIlSWru+LJg3RxYuWiLjpy+RZmt0lTvvfVJat27vvoeWsm1bg84ShcgzRJ6/OfCEgcdfhh2XZ8Yxc592oh05px6f5xnNDa0MZajrqKOOkltvvdVRf8UV6iXPk9NfcXmenuSAq5yS5HmqKJhCgDZD6nDKKae4VaqWy2dJVcklAtCaFc2tKgSZAtd3QdYQpbLL16ZonmeuTBqCAK3vWf1eLhz9qVWRs+nqBdzKRZaWiJQvXijvvfGsPPPwDbLj1l2kd88usmTBQvl2/Hx56fX3ZOK4sdJlnQ7SplUT6bJeO2nVqrE0qNvA1TlrwVJ5+6MfpNV6v5OTTr9AapfWllKXxlIrq+YXtB7GjTxOkuNz7Zs8z2iqSpzvSJqqQhoaaRGaP/Kd92QWWSojaeR51113uVtwcm09t00Qu0AKgB/VCv3nqjouB/A5l/me8eOjvZ/nkcHPcguPlueJPOl1t912mzlVxTpuWv8r8yO5ediaPpzekuR5QmB9zjnnOPDUnLoHT99hLWna53lawJMJQHItWzFaJ2EuYjA1kgTqKYZUFQ+eVpIEC3jSN89mk2Sy8FyxgWdusr81ST3phKqq/IoMTudWGIHlh4RKpKysXL763yB54N9/k3XXaipN69eTpo0byqRJY2TapDGyRvPm0nHdjtJ2rbWkYcN6Ula2RBYvmi9LShZKrfq1pX6DljJuRi158sXP5NIrbpP2bdovA2YXfhZ/YcxYFFXGLMOpakgS+N2tN2K2opOCJwtjEvI1Jxxlfsra/pOCJ9fCcTeqL/naDscw4AlzkweyfJbgwROmHE3H/tCnZZ4hQ6qKBp7+nUSeBEEaL7AFuKti9Ul9Y8VYJAFPCLbhIYQA21IOPPDACpDVwJPrjVg1Wej5tttuOznuuOPc/YgaeEJsff7556/EdpTvGYjDmVxcZVWdhZssWEwwIbRiBU8ffcJGxPjlW/xEDZXbP5gIWRfupiQKsNAgQnZOHyE+zy3wqXJrh2WBlnUf7PVF6A9c+kmJjPn5J3n4/muldbN50qJhXXn3zUFSr0E96dxtbdmwaydpULeeTJo8RWbNmi1z5y2QxYuXypIlS6W8bInUrVNXmjVtLk3X7Cjvfvyz7Ln/CdJvx52XgWdJHXuzqlmSeQYdZm7hblP8BlGJttBLAp4Q7/NOfIfmi2gTRCnYnQa0SdWYBDyhnzzxxBPdBetaIejggoNRo0Zpou53btVBzxbwZJFD3XA8xxV8B+3gLljuyM1XvE6hYMSPs+On+XEWMdz44y++N3XSKASVIP3jAnrLeEPJyq5nosgTZ8eL2I7VVgP8zjVFufRb+frDDQzUrUW0PM9EsDCQIEtbUYqlMJh8i7HyxFrqTCODU+G2EIsukoAnbWHbnbsu4yJ8P2YwPl1yySVpuhD7DIsCCN0t28mw0LCogi8zt2DAkDRrDiDzDpgrJIuTiLN0GU1QucjMGdPk2UdvlbkzR0nLRovk5+//J61btpT1unSU1m1ayNzZ8+SnH3+WWbNnS506taVRo8ZSv25dqVubg0G1ZMGcRTJ92gyZOnehzFjcXLpttrccffyJ7qxQTdm2RX3+tpZcVQKajKvl4oIk4InzZW776+K0Ibz44ovltNNO08QS/54EPJmH+DlLm1lknnfeee5aOQsA+Jt2ND9OB9m9YzeA23MsBX9rYYpL0j/s4ZprrpHDDz/c0oREMmwxs41N0GIpcLB37tw5GXhaKo7KWAYxaZ1BfmUNWMGTp5go3A356KOPmiLxCy+8UK699tpqVTkg279/fxep5ha27VlwFaWduX3bMscZBOiBoUsXzZcBLz4jQwbeI53XaSvfjxghW/TuKRts0NHd+DJ37iKZNGWyA06cW4umTaRFVysglQAAIABJREFUs0ZSv7ZILVksS2SplC0tlSXzl8i02XPkmzFlMquss/zp3IukpFSkVs3Ytc3MnpKAZ9KX4qgvuuiipI+p8knAU60sIsDCn++Hxx9/fObzgVum2E7nsorqKkmvJEvSTnZUCSq4j9dSWEy4XYkk27aWigN4JtVS1eQDeBYzeDqOoGWRZ9lS+fSjN+W/z98nG6xTX8aMniztO/SQhYuXyC9jf5KZM2ZJ2ZJ6UrteXQFyS0vruGcaNSiVnt3XkRbN6sqCBdOkSd0G0qZ5S6nXqES+Gb1QPhtZIn+++HKpW6+21JK6VTOmGvZ0AM8VAxbAM73xBvBMr7sa/WQAzyIFT79b66yrXCaPHyVPPnajNGo4Q7p16C6ffTZKfvhlujRu3VY22by3dFqvs7Ru3UaaNWwqtWrXlaVLS2X2nNkydPBAee3VZ2TOrDHSao26smTmLKk1f76st14r6dD1dzL8+1py/mX9pVGz+lJLatdoW07a+ACeATyT2kxl8gE8s9BiDawjgGdxgqePOCEvKFs6X9554//kw3dfkG5d1pKhw6ZJ67XWk732P0C6dt9IatfhoE+5+24Jp637Frx8C7a8fIlMGDdanv+/Z+WXH4bJ1n3aSLPai+WjQYPls+8Wy1o99pQrrrpcmjVqJFJaM1JVsppmATwDeGZhSwE8s9BiDawjgGdxgueyeHMZ88+c2dPk6SfukwljRsii+dNkvS7by177HCIldetLaa060qBhQ6ldq1TKyzhRW+bSg0r5364SeGvLZO6c2fLqi0/K18NfkV236SZtmtWSj7+dLV+ObSrnX3S5NKzXSGpImmdmsyyAZwDPLIwpgGcWWqyBdQTwLF7wXGZO5TJv3ix5acD/ycC3XpNO67ST/X7/R5kydZb89PMv0qx5S9lyyy0ceH733UiZOGGCNGjYQNqu3VbW69zZnfx21Hvl5TJr+lS5/96rpWWd8bLd5mvL2Om15I1hi+Ws8/pL8yYtAnhmOH/DgaEVygwHhlY2rHBgKMOJVp1VBfAsfvBcWrZY/jd8uDz37LPSb/vtpXuPXvLtiO9l3rz50qJlS+nUsaNLpxr8wSCZNHmS1KtfTzqsu46Q80iqworrV0pk6OBX5O0X7pDf77aezJhbTwYMmi1nnv9Xad16TSnlyO1vqITIM0SeWZh7iDyz0GINrCOAZ7GD57JvmF9++T8ZMnio7LTTzrJOh3VcEvl3333vyB+aNWsuM2fMkKlTpsjECeNl9rzZ0r5DB+nZq6cjz/aktdyLPX3aWLn9+gtlh81bSEmdFjLgvely1sV/kdatW0lpODCU2QwOkWeIPPMZU4g8M5tm1VtRAM9iBc8VBH0kjL/11tuO+GLPPfeQxo0ay9w5cxxRRMuWraRevfoOIBctXCjTp06V+QvnyxqtWkrT5k2lVh1O0MKjyX9kryyQO2++Qto0Gy+t1+wkb344T8677DJp3LiBlJaE07ZZzcYAngE8A3hmNZuKtJ4AnsUKnuSqUEplzpy58vLLL0vz5k2l347bS62SWo6absniMscgBDiWlZXI1GnTpE5pibRo0VxKay87ervs1O2yK1NKYZSXJfLsk/+WsT89L+t37iVfft9CzrrwL1K7dmF4iIvU7F2zwrZt2LbNwj5Tb9uOGTOm/KSTTjK1gdtJ4Frs2LGjk9c4Il966SVHs2WhmTM1YLkQTBB33nlnpdyYvh7ftvbt2zvmDRhcVsdC9PLMM8+Y6LDo//Dhw/NSo0X1g/46derkmDSqs0A71rdvX8c1mmtvjOkuu+yi2mL1tN+Dp8jkyVPkjdfeELiC4eeEN+Grr7+WBo0byQ8//ihjx4yRssVLZe211pZGTRvLhr02dADqaBLdRHM8RVJSvkRKy0pk2KA35Ln//EPar7uu1GvQU447+Wwpqc2F2MVLMRSlgePvcKtCyVkVdijGf9ddd3V2qhXexQ0l+I44f+Tbw3a6o2DL6I5U3392IT744AN3Y5JW4Lbllpk47ldfB3Sb7733nnz11VeZz4c11lhDtt12W2nXrp3WZHcBx+mnny5jxoyJlUWv9O/UU0+VnXbaSa0X/UGL5/unPiAiAwYMqBCLG0coQNmKnTJlimm84Ud23MsjRowotzrIHXfcUW666SaBQF0jbWYwvYyV39aiEJT4yCOPOKOi03GFI/84LACjuvlqLX1LKoMuRo4cKZtvvrlpMvr6Lc7DwnmZtL1p5DkwwxVVjHduifZDs8c0787qmV9++UXefPMt6dt3c+nRo4eULS2XpUuWyviJE2Tc2HEybtx4adKosXTvtoE0btpYatUulcaNm0hJSbmU1PKHgADQpVJSVku+Gf6R3Hb7xQ4sj/rjX2SLbXaU8tJyt7VbzMU7MC5/4Eoy5m9V7AwHBtUkfK5aPbwLijkutogrUV/lryrMQqdpAgi+dwP4/laVOACAdxzQuv/++7NobkUdtJuFK36/X79+sXUjy+KAICvuSjIqQbdw9lquJKPf1AvXtuXKNd9InrFcGhG9jERbLPlxdP4G8OzWrZtJ4awQbrzxRunZs6e7/SSOvDnJVTamly/nZkX24YcfVsHTTwL6xlFrIpjVrTCQrJiIzLSVrDcKyyROIltoneJkuToJx0eJGrfvi3ecmuEXuq356ie6fP31N93qvUeP7o5XmG+eV115lXTu2ElatGgpI0aOlA7rris79dtBmjVrIs1aNF+2Vcs1YyXLolj+b3l5qUwY84uce84x0nm9znLhRddJ42YtRUrLkK6uLpreGwVPrhzjPld/OYCpghwh+H8Bz7333jt2Mc87PHjiO7Q5UJmNpWlfVZ/x4Ml9nr7ks3HAEyJ7D55aH61t430bbbSRu+cY8NR2G4k8NfD0vhluaq6WjLuSzPeDOUOUagVP3gEG8RxArbUbfWh+JFenicHTGnnmRgXWwdLkfOTJKotvHtoqEvAk8lxdwZMVXtLIU9OxB6msJqDlfflkci/Djk4Cv0DLBdWqvC+zZ5efF+KPsePGysCB78jGvXq5XRv0unTxEvns409Eykpk4cJF8vPo0dKyVSvZbNNN3QnbBo0aVkSdRKDs25a5P0tk3px5ct65p7j7Gzfs0UfKwcwSwLO4GYaiizLG1UeeaXWOnh577DHZZ599frWwyq2Ta7UskWe+BVraNlbluSh4ao6dm4qikWdWc5cxI1gCPLnvWAMhwJNIdcSIEXm77uugf1rkWRXw9DdHaYvqJFi1kmzSyBPwRJnVVZKAJ21kS3p1BU/6B3j26dNHjTyra7yq+l4Pnj7yrGp9q+r5cvexchkx/Jw5s+Xjj4ZK2eJF0nX99aVxk8ZSuxZAVyJjxoyXSZMmS/0GDR2/bbNmkB3UktqcsnWXWy+j7Vv28bPMnbjlSrJLL7tIrrrqamnRsrWUO+BErmaAJz3hejDts4s2Vjjfxx9/vCLyjJNPAp7ae1fV7/SPy7CjkWe+d/vI01+GnWUbAUNuNQI8tcJl2Frk6eugf7fffrscffTRsdW6xWbCyNPNljLYuQr3KSNV5BnAUzOhVfd7AM9Vp+skbypzO63lMnHiOHn1lQHyzf+Gy9wZ06Vuaam0bbu2I0Fo0bq1lJfWlrr16kvHjp2k7VptpX69hiK1uIOM7dpldSxdskTmzJol0yZNlCkTJ8jw/30pA155Ve576GFZo1Ur16xlTqJwjiJJ3/PJRh1ZAE9dowE8ly9AA3jqxmKRCJHnyloK4GmxmlUvQ+Q5evTPcsstN8qA55+TtVo2kw06dZKvPv9ciKbrN24s63brKktr15KS0trSrFFTad6kuUtjKa1VW2rXqy0NGjWQOvXqyaTx42X82LEyf8YMWbpogUyaPl1+GjNRzr/4YjngoIOWXV8GcBY3dq4UBQTw1G0ygGcAT91KEkgE8AzgmcBcVpEoe6rlyw6/LAsDZfbMWXLDDVfJtJnT5H+ffiYtSpfKFhv3kA+HfSYL58yXhnXry36HHSJtu60vi+bOl5IFi2XqnJky8OWB8t03P0tZeZls8bse0m3TbjJ36VL5dOgn0qFZY2ndpKlMnDFPRk6eJp16bCgnHHeybNRrMzZ0pRZ7ukVcQuSZbHACeAbwTGYxinQAzwCemRpUZpWVS1nZMvDCRu+/59/y7cjhsu3228ujDz0kCyeMli037iHjp8+Soe8NkR7rridNWreUY84/Q6RuHam7RGTwh4Pl+WdelR9HjJR1WrWUju3WlB6/6ymt1+sqzzz9jGzYfk1p27ylTJg+T76eNFm22nFnWTBnkfz53IukYZOmbqe3mEsAz2SjE8AzgGcyiwngmUhfYds2kboKKuzTLoYNGyb33HGL/OGQfWVxebnce/ddsmjyOPldrx5SXqeeDHzzA2lZt77Ub1BHNtppK9l2n91l5pSZ8uyjT8t7Az+V8vKZ0qq0trSq20war91C2m64kXz86WfSt8e60r7VGjJ19mIZPmasnHzWOfL+24Nkx133lB123kVKw4GhvOMbDgylN/1wYKhy3RX0wJCWShJtEiQGME5opZCRJye6OPIdTZqNaw/pL/Xq1dOa7H7nCDd1Z10gSYDxAgYVS0HHVsIITs5xis9SqBNdWE63kbyMLizH6SFJuOiii1yCdG7hXcuI04ujlJeVy7SpU+XWW2+RDms2k8033UjGT5okd91ztyyaNkG26rmB1K3fWD75YoRM+mWsdO3YTuYsmSfb7LKzTJ89T1544RWZNHaWtGhdT1o2bib15nPqdonMrV1LpF496d29rXRotYZMn1smH/84Sk4+61yZNnGK/DxmvBx9wsnSrt06xaGIPK0oROTJ6dLdd99dtTt80eWXXy5PP/10Ueso2jhIIG699VY56KCD1DYzT88991yXA28pSeZ2TQVPFkwWf2TRV+64uNzRQqWq4Bj79+9vbtemm24qe+21VyzxApUVAjy9Ex81apS89tpr7nooSwG0OL7tn0eh+cqnn34qr7zyijtybQENy/uRgVKK4+xMBq1gSPvtt59LNYozKp/EPGjQIHn77be1at3vTDCu0AKctf4B+M8995xbUGiyDRo0cDreYostfsUiA1hfeOGFFe0rxESJ7fwK7vdlt4YtXSpvvfGafDDoPdl5+62kWYPaMnHKVPnXHbfL4ukTZcsNu0nTxi3kfz+NkzLSSxbMlbIZc9wCZZ6Uyk8TJ0qj8oZSr2kd2XnvHaXL2mvLGy++JGOmzJOldevI5huvK+3XaC6zFogMGfGD7HnQwdKhTXv5bPiX0nvLrWXXXfdyCeGUVa4Lg5VkDZ6M/wEHHOBYxLT+8rvP+zM0tShEWJzDngRJgTamLEihQ8XPaAVdDBw40NH5afPPz+2amKpyxRVXaKpI9TtkFFAWFhQ8o8wO2iDBmXvHHXeoHLSFBE8M6qyzznKMRJYC882VV16pMlNQF8wYJDFbIznL+/2E0nQbnXgPPPCAHHHEEeoihWeuu+46ufjii01NIVeLCcYpSq28+OKLcuSRR6okF76eaHJ9tG4YSmbMmGHSv9amVL9HwbO8XGZMnyIP3n+PrNmqpXRbr6PUL1kqk6fNkNvuuVtmTBglW2ywvqzZYi357Mcx0qbTOtJj/c7y+pPPuQuwF9eqJQ0bNZF6S8pl/uKZcv7lB0vXTvXlvbdHy5uDxsq02XOla8fmsu5arWTW/BIZ+t2P0q5zF+nda1OR0lqySGrLEUccK+hEc7Sp+prBQ1mDZxL7xy5J9MdONaDNoKuZVZGbwK+RFFheTJ0Ay1VXXWURdwvjmgieps4lFEL/X3/9tUC+U1DwtJLC06ATTjihWsETg4J4OAl4XnrppS665tm4qDMKnkSIFrCzjGl0Iml1elnAE+DKR63ov9shf/3117stU0vBKUG1ZXHe//3vf10bPD2bVr8Gnrkgq9WX2e8rgWeZfPrpUHnj1QGyee+NpUWTZlJPlsrUmbPlkWeelm8/HyJ9N+gsHVq3l+E/jpZ2668v++27r3z16Rcy5LOPpW69utK5xVryydAPZNqU76X/5ZtIl64LZcKMbWTI181kyAcfS9O682Xt1i1k5vxS+fDb72TD3ptJiyYtZIMe3WXkT2Nk//0PdVHYbwU889lFZePrwRMquJoEnrmJ/vna7ue/ZRcMGfiiV2fwTGIbVn/g6yw4eCadwIAnN6Vot58UY+Rp6WuhIk/rwHu5Bx98MBY8kUPHGAqRZxrw1JwTkefhhx/uwPP/2bsOMCuKrHveJJgh54xEEVBBAcmyiFmimJdoAsSIWQxgAFzWsGbW3wSiIgZAUFmJBgREJaqAguQcJU56/3dqqJmeYV7X7Z5+zAxWfd98uPtuV1fdunVP3eq6p/JSdORpel9e3uH+bBYHX1pqMqZM/hA7t6xDk9MbISG+CELhMI4cTcb0GdPx5dQpaFK/DupWrY6Vm7ehRu266NqtC9LIQHToAOLS03Fg8zZMeHc8dm75HcMfORv16qVhf8oFWL2jBqZ+8TmKJu9DpbKlsT85hB9XrkHLDp2wa89enH/RhVi8eDlantMO53Y4LyPnM/MLQsE5ghuNyFM6trQVRk/9+vWTPlIg5PRclDZGKs/vvyczeEr15Ucu8zLsaH3zlACKs+H5CZ4aMBh5kgbO67atxHkXJvDU42LB0zS1SCMUo6jz/tq/GxPeewvFi8bgtHoZV1mRLi8tLRWLFy/Gu+PeRtXyFdCoTl2s3rgZderXzbgNJJY3TADx6enYsHoNxr/1JrZsXo8HhvZGnXplcSRUGxt2xOPLyZORkLwPFcqXxoHUEBavWoPuV/0T33w/H9dedy0WL16KmtXrokv3KxAfn6DuAs0oivhW8/uZOhTV3/MbPE0k5FHtfAGr3IKn/wGx4JlDd3rb1oJnlmIseJomWDrCx0K8jRvWYtLH43FK1QqoWa0K0lNTEacO78Rg7Yb1ePudt5GenIIzGzTC2vXr0KhxI3Tt1g2pYd76EAI5gjau+RPvvvkaNmzajAcfvge16hXH0dji2LwlATOmTENsyl5FHr9j/wFs2/2XOmH73sQJCoS3bduB1JQYXHnVdahQobK6osyCZ9b4SW7wMI32yfS7BU//o2nB04Kn0XoseJo3bTMkwli29EfM+N8UNK5fGxXKlkZMegpiYngBewx27d+PDz/6BHPnzEXRuCIoVTwRXbt0xoUXXYSU9FSEYngfSgib167FxLFjsWXDBtxz73k4vfFuJIdPxR+bTsekadOx/s9fER9fDOGYeJxStx56XnMNJn78EerWr4/y5Svit9/WoGfPa3Fqg0aKXD7jEjMbeXKELHhmt2ULnkb3F1HAgqcFT6P1WPB0VxHjTl5InZaegm/mzsBPP3yDs89shNIliiGcno74UKySOJqahi9nzMTYse8h+UgySibG4ZZBA9G+XTukhtMVvsWFQ9jwx1pMHjsW2zduwG13NECzZvtwNPUcrNreBB//71v8umIZ9u/ehyKJRXF5zyvRqn0bfL9gPvbt24+27f+Br7+ejw4dLkDbdh0Rl8BY1oKnHkELnhY8jQ5PKGDB04Kn0VQseBoiT9LxhYBDhw5iyuQJ2LV9HVqcfSaKxMQgHIrDn3+sRbGiSahUrRp+WLwYb709Dvv37EdcKBVDH3oQp9aro+7o5IUocYjBmt9+w6wPJ+DPtX/i+sFt0aJlaSSnnYYN+8vhy7mLsGLJChw9+BeOJB9Wp8Kr16yBX1euxNLlK9C5azfMn/8Tqlergy7drkCSIo/Q4Gkc6hMiYL95nhA1i15iI0+RmnIVsuBpwdNoPRY8TeBJcAph06b1mDhxHCqUKYrGDeohNhxGekwSxrz8MiqVL4/uV1yBHbv34P0JE7Fw/kLEIA3P/vtfKF++rAI4XtsZFwJWLluObydPxh9/rkGfQV3RrHkVpKaXx/7Uyvhxya+YOWMmDh48jOrVqqJP395ITCqKNRvW49t536Nzl25Ys2YT9u87gt59b0S5ChUseDqGz0aeNvI0OjyhQJ7AU8J4Icl9dLY1GqdtudJlMitPO7rR6OlcKr8kCeyH6cRtYTptq3PFopXn6TVVRTMe5bRtnaqi/3/TGAjnhlgslfeOpRzFooXzMWf2dDRv3gDly5ZGfGoMjoZj8OSTI1ClfGWVw8xbrL/4ajomfzYVackpGP30SJQpU1JFnTwLG4cwfl28GPMmT8GajavQf/BlaN0sFanhUtiX3gYbtqVg6rSpWL9+HS7r3BVnNWuJ+Fhg3bZtmDvnG1x03vk4kBbGoh+W4uabBqN67drqW2xsmNdkF4yrPvM78mSqiiTPMycxQSSDcOZER9v2pCkoEuN1kiRI8sPp76m7jh07ulbPusgaRlKFlStXuspSX6TWJP0gx8RNx/yNDEqk6KQfzc/imyShVq1auOCCC1C+fPnjqNJy69CoUaPEhADRAs+yZcvihhtucGXU0YZJogPSy0UiEMjZx7Zt26Jdu3aZwOk2gbyAJ29i79Gjh+KgDXpSHj58WBmiyVj5+4IFCzB79myRrZLyj7bBRYppoq9evRokSiBhRCRg1C8lPV+nTp3Qpk2b4+olfdmQIUMy2xe0rkwd567tgX178OknH+Lo4T04++z6iAvFIC41ATv27MHoZ55HzRqnoH+f3kgqGo9v5n2HL2fOwt4du/HIIw+gYsVjF1kj47Ttih9/xKLpX2LNhl9x46AOaNtsI1LSK2NXalf8vj0Nc7+ei707t+OCiy9D7dqNEReTik17duOb6bNxfovmSCxfDpO+nIt/9huAhk2bZqTLpBOcQwgXgOvK8hM8aZe0TwKByU5ov6Sa5Nw2kZ9wLjG17aOPPjKZi+ffad/du3cH/UGQC0QGC6Te/O6774xzle+lPP0G6Q1NuqN8UlKS0YeyTurW5I9YnwZ4+mbqJD8L+0+s8kzPRwIDNl6iQHaQitGrM1OHowWebCsdsKlQjg76ySefRMOGDU3i6neCm3MwgwBP1nHllVeqlV7QpOccC34r40Q38XyyHVxFSukEaRuaGN60muW7nfW6yfPiaBI1DBo0KFe749hm5FRm/J3Qkg6s27wF48a9iuann4LqFUohlBZCWjgBixYtwbfzF6JMuTK47NILUb5Mafy06Gd8MX0mtm/binvuuQPVqlXJaDcjz3AIyxb9gAUzvsCmDetww81dcXaLA0hJrYADqa2wfOMWzPpqJvbv3ImLunRDw8ZNUSSUhq27dmD6hx/i7EqlULt2PUxfugatul+Ljhd2RlxMLMKhgvPlMz/Bk++mfUoWxpQlfR0XZm42RQDg34QJEzBgwIDATY/E8C+99FImMXxQ9s35xoWrXryaGk5GHbKpzZs3z1WU7aNPnDlzJurXr2+qFgcPHsRDDz2k9GcqHDfuhJFaNL9Lps/xQpKQc/Xj5vR0RMHVhQRAowmepvfrtnJbgvyX3HaQFCcllsl5SyNP1nPttdfitddeU+AZ5IRhn8iwMn78+IjgqXWh32sCQomecpOhXUhuryF4kkrs9ttvP04XertdR7pB6Urap/S0VPz80wp8PekddGndCLEH/wKD+qOJZfD2tFmo1aAudu3bhSZnnoY6NU/B0p+W4fOpX2Hbji0YMOhGNGhQN+NVYSAeMViyYAHmz5qKbZt3ou+gO3DK6RWQgnjEhovhj3Xr8PmU6di4fjUuv+5aNGl6NpJiw9i6eQumjn0VZyQeRc0KVTF/Twwqd+iC3v0GIyE2Hukx6QiHYrI4E6Sdi4JcfoInu+PFpkeMGKEuHXCLPGl3jDzfe++9qDAXcf6PGTMG11xzjWh3SzpkTso/0+c1/r5s2TK16DbtQmnw5GcytwBE+2MyjN12223Gm2BYL8eBDHTkQM+vktMXeuK2jWajowGeXtvL2zsY8UnB00v9UvBknQRPTpoSJUp4eYVRloPfv39/vPvuu8bI01jZCRLQ4EnyioJWUpMP45svZmPH7MloVDQFh3ZuBC9w2xpbER/8vgFDHx+O+T/OQ2LRWLRocgYWfLcQX02fhS3bt+KGG/vizDMbZzjFY+D58/cLsHDm59i2eRMG33s7KtQriZRQGSC9GDas34iPJn6G3//4BVf364MWrVshMRzG7q3bMXfyGFxwSgKKHAph5qYw0s7qhDtufwiJMUWBuCwih/zWX36Dp5f+jxw5UkRNyV0ULkbdvtt5ea9T1stl2H7fIXmO29KcfzwTYirciVuyZAlOO+00k6i6GIKXZUiuUWPkmd/gmbNDFjwdGrHgabT3Ey5QkMFzf8phfDbuHST+OAfVkvciqWQyULoo5q6Pxe/h8hg+YgSmf/UFdmzdgA6tz8HSxT9jypRp2Lp9J266+XqcfnoDhHnaFnFq23bRt/OxaMZX2L39dzzyRFeUr7oFh1Ka4lD4LKxauwEffzIN6zasR++bb8DpTU5HQmoI+/fsxffTX8KFdeORsD2E7zYl4PcKp2H4E88gMS4e4bgYhMJMndGMQyd8CDNfaMHTm+4teGbpy4Kni+3YyDNLOTbyzNJFgQbPw0fxzr8fR81Ny1E5PgXVziqNxFNK4sUp69G0fS906doD38yZjflfz8bFF3TAunWr8eHHH2Hj+m245tqr0LpNc6Snk+AvFgmIw7xZc7D86zk4cGgjHh5+HsqW/hN/JbfB7pgWWLl6Lb74bDrWb9yIPgNuwmmNGiAhPRZ79+7Hgtkv4dxqKSi5rSh+2VEOc1KTMOrFMSieVBSpsbGITY9Rp33zu1jw9DYCFjwteIosxoKnBc/cDKUgg+fRvUfw0iN34fQD61GhfCLKnVMFaWVi8Oy4pbj1vufQoEEj/PrLCnw4/h1c1KkdDh/ah08mfYLly1eiR/cu6NChHcLhGIRCcYhLj8Gczz/HuiWLEF8sDVf2/QfKlQsjOVwLB2IqYfny3zDjy1nYtG07+g+4GY3q10U4NRabd2zDkq9fwcUNiqLEljis3VMRk3am4ZHF8dQRAAAgAElEQVTnX0HlCuWQFoJKV1E5MflcLHh6GwALnhY8RRZjwdOCZ2EDz3179uKFewehTXgnSlYrizIt6+No8TBeHbsIg+4YgUann4F16/7E66++gKan1UXyof34/vvv8PPyFejW5TL8o0N7xCYkAbFF1LfL/035FJtW/YaEpASUrFIOHS/shPp1TkVyahiLlizH17PmYN3mbTj/kotRpWQSdu9NwdqtGxGzdxEGXdQACZuTseWvypiyLRUDhj+NBnXqKKIEXo3GQ0P5XSx4ehsBC54WPEUWY8HTgmdhA89NO3bg/+6+Hh2LHEFizQoo27IW0koCr09YgXYdr0WXLt2wYd06PDfiCZQtGoeUQ/uxZdMGbNi6DaVKlkClKpWQWKoMipcui927d2PXtk0oHhuLmIR4bNy1HeXKl0eb5i3x+8rfsX7jJuzZsQ1HUlNRvnIllC+eiLRQcazZugOViu/DnVe0QcK2A9i+rwxm70xGz1vuRLOzmiOsDiRl0Ajmd7Hg6W0ELHha8BRZjAVPC56FDTxX/7ERHz1wEzqWjEWROpVRsUV1pJYIYfr3e7EvtTTuuecBbFi/DiMfHYqSCSGULBKL9LRkxKTykuwjSElNRXI4HSnhMPbt36cAtUq5kgjFhbB5z26sXrka57Zsi+RDB5GSloqYUAzS4+IREx+L+HAIh1KL4vulK1Gs6BFc0LwOSqXFYM++eCzashf977oXF5x/ERCKUQxDIfvNU+SHtJA9bZulLnvaNnfTUadtJceKPVmeR2GmUBA8X3nlFTDZ3lSYasEjzjzqHETRK+Jzzz3XU56n9N3s3xtvvKFyFUkOYMqPZV4X8zyZJG1iOPHSBspef/31NlVFqjSDHG85mfz4ELQsUwxJ9aqjWtOqSCsWi7k/7cbvG9Pw+JOjsHHTRowc/ig2rf0NxRPjER8fg1JFi6BUiRIqTaVoAhP3Q9izd5+6Fbts8SLqZOyeQ4ewcP4CdOrQEYlFiyAlnIrk5FQcOpqKvQf+wtat2/Dnxr2IK1kRsfHA5vWrmZWC2JhEJJYujzfefw9nncF85RiEY0IFKs+TeYZk/tq3b1+e8pidTFZB5yNHEzyl+ciMPOkHrr76auUH3J7LmXPuZrqa3YcypjxPygQNnnw/30uSBOZ5jhs3LmJzdb+IC0xVUVSXBaSENm3aFCZnYH6XU089VTH8SAyL9G7z5893pZnz05/KlSujVatW4CGVoMtXX32F119/XbF6uBX2v3379orHkXRUQRVthOSSZL6WhKAgqHfnpZ6CfGBo647t+M99t+HwujU4rW0zVKpZDsvXrMYPSzbh0kuuxoBbbsXePXsx8qlhmP/dTLRv2wLp4RTs2bsbu3fvxeG/DiE2nI7EuBDi4+KRVLI0iiUVVzm4fx08gFUrfkGThqcjlBCDA2kpSD56RO3AJhYviVPq1MeyX1ZjyAPD8Oe6Tbj73nuwdftWxIaAmHAIva/vjxeffQ5FiyQgLRRGLHi/Z/4WJ0kBmWIOHTqUpwZRTz/88AO2bduWp3pyezha4MmUC6bESdjDOP/pB+gPTCDH+UxygvXr16vumPwo/S15v1lMC/SgwVOTJDCQYD67JH+UbRw4cCAuvPDCwMfab4WhcEbx+3xgz5FEgIZCxo5IA6/b2adPH0UoHBSJgF7BamJ4MmoEXXTbNYOPqf6cTD8mecnvrLOwgKbuT0EGT0aCX0z9DHcNGIijMSlIT03BnkNHUbRICdx8c3+MGDEKu3fvwainhiN89C/0630VQqE0pKaFkZIWxuGDh7Htzz8xfeokrFu/HkVKlUXl6qegVKkSSIwNY9XPS1CiaCIqVKuKRi2aq2+d5cpVQHzxkkgJx+Ctd8bi9tuGoEzZyhj99L/x5rg3cUrtGkg/mIwDR5Px8YSP0Ozss5AenwGo+V1yMvw4I0c/bePOU+/evRVPctAlWuDJ3SQCvtfdPhOL1pEjR1QU9+abbxr5xFnX448/rij3JEAbNHjmZDgyAb2p70GPvbQ+BZ5S4WjJsQlO8DS9h+BJzscgwZPv9HqriqmdOX+XAqfXek9m+YIMnuH0VKxZtwEDbroZc+bOBtLCvMcEJUoWR5++12L0M89gx9adeOSBe1Czaln07H4pQmkpQDgWCMUiPTkVi76ei1lffI7YxCQ069gRLVq3RmLReMSmp2Di6/+HvZs2o2TZcmjf9RJUr3cqwrEJSEYMksMxGDd+PAYOHIzGjZti8aIlePjRh5CcloKqZStgypfT8e+nn8GNN96E9DjmkuZ/iUSPZ3KekVpO8GQEO3XqVCNgeO19NMFz0aJFYvB0Lrrd+sAobvDgwerzkKlQ38OHD8838DyO5s4ljcop69dOTPrw+3uBAE82nluaOvI0dSZo8OT7OEhz585VNFRcadlSMDRQoMEzHAb5OcltOnr0aGzfvl0Rjzdu3BiPDR2Kf1xyITasXYfHH7wPLVs3wTmtmiIhJQ1pqanYv3s3/vzlF8z7ajaOHE5GpTp10bFHd1SvXBXpoTSkxYbx55Kl+HzseBQvUhSJFcqgbsNGqFC9BkpWqoikpNKY8OkUXH3DDWjWvBVSjyQrQu5du3Zh69at+NfTo3H//Q/g7rvvzjhpW8DyPIOwrr8DeEr15AU8WaeOPCWAFHTkKe1TQZez4HlshCx4FkxTLcjgqbfAN23ahIkTJ6pFV8WKFdW9hx3b/gMxxRPx6/JleHroA7iy+8VILBaneGu3bVyH/eu34MiOvdifnIy4CmXQ7sILcEbDMxAXF4+jMelIjUtH2pHD+HryNKz7eTmKkO0gPoxQyaKISyyGShWr488tu9HnziE4u/W5Kh0lNT1FDSLb8frrb6iDJh3O7ZDxGST/d22N3+G8WqAFzyyNWfD0aj15l7fgacEz71YUxRoKOnjq78h79+7F/v371fV3PEkaFxvCEaRj3szpeHXow2jVsB527Nio0k3SwmEcOngYKWkhFC1TFi07/gONmzRBKCYGB44cQXx8HIolFkF6Wgr27NqFJT8swh+/rMTe7Ztw6MgBpKSkoVh8SYQSS6Hf/Q+gU5ce6rbrdKSpHRR+i92xY4e6c5CHTkwHQqI4fNmqlkQ5XtpiwdOCpxd7CVrWgqcFz6BtKtD6CjJ46o7m9l0qLZyMo6nJ+OC1l/HVG2+gRYM62LZ9C/bt/wtHQ2GUrV0L1RqehkaNm6Bq+ar46+AhfPPDAqxavw6xKelo3qAh2rZribT4EA6mHsW+A38hZd9fOLh3D/Zs3Y5pEycjlFAMAx95BJddfR3A07SZxxcy7jYtAMcZLHjmmA08MOTlm6d0MtnIU6qp4OQseFrwDM6aolBTYQBPdvs4oAqHkHzkCEY/eB9mTBiPkqWLomqD2ji72Tmod1oddXI2NTYOMbFFsGPHPsz4ahZq1DwF5116Kf5csxafvD8eZcqUwBXXXK6iWKSH1e0o6TEhpB04iFEPPobDKSkY/OhwXHbFNbxOW9HwFeRiI0+o3G0LngXZSuVts+BpwVNuLfkgWVjBMy0dSD98GM/dew++nfk5Kp5WHd369UK1KqcgxCuumY+ZHsL+g4cx89vvgdhEXH/9QFSuUk0dGNq0eT0effg+dGzbCmc1boiYtDSkE6RjYxE+ehSjHn4MR1LScOP9Q3FZz+sQ4glehBWIBw1SQQ170O2y27Z22zYo2/RTjwVPC55+7OaEPVNYwTMVqUjesxvD+/VF8qFdKNXgFFzUsyeKFSmGjOupQyq1ZfGSZVixai16XT8AjZo0U2QG4XA6EJOKaVM+wtwZX+K6qy5HKDYdsfy/ARzatxejHn4csUVK4KaHHsUFXXoiRCYhRcSXUaQpDidsIHNJ3M8r0BcE8GReOi/D7tevn0iVNvIUqalQCHkCT80MwZ5xFRnkSjLoVJWcdFUmait92vbOO++MSqqK8/1BfouSfttyki4E+X6/Vh4p5y9nfTx88+ijjypqwyDtzW+7Iz13XO5aWgjrN67G01f2QFK5BFQ8uwUuvvhypMYeQhhpCIXisW//UXz86VS0bd8JPa64CvFFimSklDB6DIexZdN6jBoxDBdfeC4qVymj6PdCCOHAjp14ftjTQEIJDPnXv9Hi3H+oO0Gd4Bl0/4Kozznm2peYaOfc3ssDWiRJ+Oyzz7ItGCI9I5krWmbEiBG4//77XQ9bsQ8ET6YqeQFPkiQ0bNgwCJVm1kGSBFKWMs/T1E/+PmzYMDzyyCPqebd5xRPly5cvVyl8JiYg1kMavSVLlrj2L5o4EqhSc1R23BxPSUkJb9myRfTOhIQElC5dGvHx8Uo+yFN80QBPbdwm+i49mKS3ev755/HHH3+I9OFFiDyOPJEZNMMPx6JSpUpGYNEThHmAbEt+lqSkJHUiVQKGpUqVAhc05OSVyOdXv46bWOkh/LToa7w64AaUq1EGp/7jfJxzTocM8AynISYUj3kLfsb6jdsx4JY7ULN2PUXizoBUcbiHgeQjB/DC8/9ChfLFceYZpyqCPUaf2/9cjzGjX0R6QgmMeutt1G58OkLZDgzllxbc3+sEz40bN6q5kJdFOO2Y+YrffvutscMcnz179oht/4EHHsCgQYOMfLKkCJw0aRKGDBlibAMFeBp72rRpqFevnkheKkTaz2eeeUYRRkgK20tANIEn9fbrr78qUoXvv//etWoNntOnT3ftnzOw4ZjklaZR0t8gZHS7SeNKv6u4bclMISlnnnmmcmI1atQoNODJHDwaCleIpkKlnHPOOVHjtiWLUkpKSqCnIKtXr64S9IsUKWKc6Ow/aQ1JBhE0iJt06/y9RYsWuOuuuzK5e91AkStZUpnVrVu3UIEno8dZn03AhGGPoHTN8mjTvSfq12+M1JijKrLc/9chTPhwMs6/qAsu6dID8UWTMokMGF1yoqalHMFHH7yL7dv+xLntW6qbUWLTwvhz8Qq8/8a7CCeWxnPj30OFWrVUqkqsI5mzIOwu5LQJJ3hqbtu8LIhoG7zMgXPABAJ00IzKZs2aZQQA6o5EF/Xr1zeaNWW5EPjxxx9F9ZJEg3nAEm5b48sdAqyXvku32bTTxsiX/LYsbkEQ+0cCf1KW7ty500idyrrYv5IlS0Zsvg5WeEL4v//9rzGi9aKHEyFLH1qtWjWoW1U0QbDpxZ06dcJzzz2H008/3Wisprpy/h505Mn6OUgrV64EQZ+gZSokbP7Pf/6j5IMuBE5yT3J7JcjCSbBw4ULjZNTOtH///vl+q0qXLl3UVlfQDiRIvXqtKydY8bvlx68/i9n/NwZFq1VE1979Ub5iZaTFpKmocsbMr7Ft1z7cctsQnFL3VEXXl8FkoC4QU68nV+6M/03DD/PnoPOlnVRIWiQ9jBkfTsa8bxYiqXJNvDDuXRQpW0Zt5xYW8GTfuKPAbde8FNoP7ahz587GhRUBgDsYb7/9dl5eWWCf5eKZlKU33HCD2Dfn9ZtzTmV4+c5OWbJzcat57NixBVavuTWMkTgX9L7A84wzzgi8s9EATzbyt99+KzDgSUPhaivIwkHk0XceRDAVGqwFT5OW/P1+HHiG0vHaI3dh1az/IbZKJVzV/2YUK1kCabHAho3bMPGjSbiub390OO8iFGHUmck+q8EzhHBaGubPm4Npkz9Ej24XIT4hFkd37sXY51/D9r0H0erSLrjzkWHqBG6I144Vksgzv8CT25TvvPOOvwEu4E85wTMv0fyJ7CYPfFnwDEDjFjz9KdGCpz+9Bf1UTvDkidqnB/XCzhU/I1y5KnrdOABJxRKRHArhk8nTUblKDdwwYBBiihRFTGzGHbYZeZr845naEMK8ZmrRAowfOwZX9rwMSYnx+HrqdPw8cx52p4bw2Euv4MzmLdW2Gy9NidahtKB05WxffkSeFjyDGslg6rHgGYweo0YMbyPPrAGykWdAxppLNTnBk1S0T/Xpgb/WrUZ61Wroc8NAFElMwOadu/DxlP/h7vsfQp16DZAeYrzIg0IZJ2xD6sxsFnj+uHAeJox/E1dcfgnSU45g4pi3sX/zblRo1BjDX34VRYoUz2hNDv7agvzN00aewduhjTyD12mkGu22bS6aifY3T7ttm6H0v8M3T4RSMezKK5C6ZyNCVcuie58bUSyxNOYv+RG7DoRxy+DbkVg0Y6tdpRYcI27nSduM/87Ytl208DtMmzwR3TtfiLW//or/TfgMO3btx8ART+LcSzujSGoI6TFAOEYR9GUWC57ZJzi/edrI88QBjORNNvKUaEkgY7dtBUrKRcRu2/rTW9BPHbdtGwrjweuuxcHdm5BQpRxatj8fCbFF8fNvy9H+HxeiY8dOiI8rknHyOibrypOc4Llg3teYOuUjdL7kAnz+6af4beESFCtRFv969x2UrlIdCWkhpDM11IKn65Ba8Aza4vNenwXPvOtQ1WDB058iLXj601vQT+UEz1SEcNWF52HlyhUoWrY0EhOKI+1ICkpXLY/Ro59F40aNEROKyyA2yPWuTUaeqZg7ZxbefnMMzjqzMf73+TSk/nUEbdt0wL1Pj0RC8VKKOEFFqjluHbORp408g7bxoOv724Hns88+C8lpW+cxaMnpr6DBU+cSrVq1ynjaVjNy6G1bSf9yMyS3fupUFZ62NTk2L2xAhRk8eUJYYhtBT9po1JdzTJNTU9Cq+dnYs28fQnGxCKWEkXLoMM4852y88vIrqF6jBmJi4ly4aENIT0vD/6Z/iZFPDkd6WjK2b9uCSmUrYPAtt+Py3n0QW7QoYjUjX477Ok02Fg0dmOp05nmSbIXOMy/tZKoKqfEkqSpMiwl627YgHdDy8s1T++a86F461m5y0QTPaI4Nv3kyvdNTqsp5550nzvN0DoyERSRa4Mk8zyZNmrjmeWpFEzzJMCQFz5x5UkGAp9dBL4jgaaIHo7Njfp4Gz5MBQHM6ogMH9qNZs2ZIKpaE2Pg4xKSH8deefehwXkcMf+IJVKhQwQieaalp+PSTT/DEE8MQGwukpqagSsVKeGL4k2jeui1C8XEqOSW3e66j6RhNjjPS73qcSdBBzmI6Txa/bfUCnjrPkzmFpvdJ56BzMSDViWlu5KxH2hav4KnfE2Sup9eAKdrgGa1FQjbwpAOWFA2eZN/w6vBM8tEAT/aJp22bNm3qCp5ayR06dFDg6ZckwQSePDBEGi234nXACxp4OqPmSP3kgSE6MbKQsL9B0jxK7DgaMjkd8rbtW9G8WTNUKl8BcfExSEU6du3ajeuu7oV7770HpUqXQkgRI0SEGmWzb775Fp5//jmULFkcyclHUaN6dTw7+lnUI/sNb1hRp3Sz6BWi0beg6swZeWqSBJNviPR+Lr7effdddO3a1dhEDZ7SPE+JHWvgzwsgGhvuEHADfa/gqevyq3uTD5PM6WiCJ9vnHJcg+ql98y+//JIRee7Zsyf8wQcfiMaQjBCkoiJLjmTF8sorr2SCrKnxQYMnO8QVLvlkP/74Y5CD0m1FzP44+ydRyKWXXqpOjuoSqY+smyD+3XffiWgCyRj0/vvvi9iICgp4tmrVCldffbWi3DM5k1NOOQVkq1L8kLl+75Nov2DJ5HRsa9b9ibatWqNW5SoIxYVxJCYN23ftw3233oObbr4BiUlFEQ67Xa4QUgut55//j1poMMo6dOggmjU7GyOffApVKlVTx2tTY8Jq6zbroFHB0ouzNU7wfOutt9RcyAtNJOf0+vXr1RzXzjK33nNsqEtys/IzjiTy7NatGy666CKjMlkXid7ZH1Nh/8kPTt5cUoGaCj/xcIeG/sBUvIInOXDJsRt0IWiScL5KlSrGqqMJntS1xh/TeBsbekxA76BeeeWViuPd060qM2fOVBRXZNmXFE38LJGNBnhK3qtlqGByvvK7yNKlS0WP0khImBw0AHDCDBgwQIG5qRQU8OzTpw9eeOEFFU0GrQ+TDgrC73qC6kXlkp8X44ILO6FmjRqIDcUgnRyhB/5S9nIFb1A5drlCzrbr5wmGXKQ+9dRIdWtIkaJFcfDgX+j4j3/gkUceRYUKFTMuYFGXsGQQrBf0EnQbC8KVZARwfnft27evSP1eriTj/L/55pvVQtpUvIAn6+JNRU888YSpWs+/c3HAW1Uku5nRBE823Av+eO5oBqmJ/Pp5C57ZVWzBM0sfFjyz7tIkSEyZNBkDBwxAjepVlZJS01KRmp6OUU8/jQsuuEhtVUcCExW5p6Ur8Lz77ntV5BGfEI8jRw7j3Pbt8dBDD6tvpur5mIwLsFmCBieJQ9GRo16Vuz0TdPsseGZp24Ln8ZZnwTOX2UhHTRLkEiVKSOa3SMZGniI1RRSy4Jn9IuoXnnseL7/0EsqVLaso95JTkpGYlIR//Xs0WrdpFxHsMj+HpIcVcfrAgbdg9erVCjxTUpJRrWpVDBo0WN2eUa5cORQvWQIxJCjKp8jTgqeNPJ1OwUaeEVykjTxt5BkJPS14ZoAnwWTt2rV46L771XfupMQkdRr2aPJhVKxSGSNGjsRZZzd3XamoQ1QIYevWrejbt7+6CorgmZ6ehuSjR1GtWnX1x1Pkl3XpjJo1q+cbeHqJeoMGeBt52sjTbSLZyNNGnq6O1n7zzFvEHNTTnKi8nPnrr7/GxIkTMX/e9yhRvDjieOMJgCPJR3BqgwZ4dNhjaNSoMa/0dC385snDMP36Xa9SOmKYq4J0RRafmpqmiBV4ofitt92Grl0759u2rRf9WfCESs/iLUiSb4L2m6cX67LbtqLTqHbbNstQLHjmbYIF9TSjxHHjxmHSpEnYtWsXEuITUCQhAbykmEjJgyVt2rXBkLuHoGZNXl5tKOlhbNmyBbfeeruKQBnhhY+BJ4E3PT2MpGLFcNeQO9GtW9d8izxN3XD+bsHTgqfTHuyBIZfZ4yVstqdtsxRpT9t6ccn5L6u/l/MEI6NFnqQlaBIseNKW/121WlX0698fl3W+FMWSSAif++lYvQ3KbdtDhw5j7Nhx+PLLL7Fx00Z1+rp4sSSUKVMWxYoVVyQM/a7vj2rVMtICgganoDUbdPvstq3dti1U27Z33XWXSlWRHNLlaltPGLeJw7oInoMHDxZHni+++KJKi4hU1EqdVzwdO0jh9n596IGpKkzF8ZKqMmzYMNE7nKkMbgnElCN4Dhw40Jiqwj4xWZd5Zm5Ud05dmC7DNuVoRtI3dwP+85//gPc0mhx5TtsJ2qkG7fRN9bE/27Ztw0cffYR58+apU7LMd+W2atWqVVGxYkVFvNGoUSPRpeXO9zHXb8OGDVizZo3aFmZ+IP/I0MPcTw3SkdoYOnZdC8kU8rNEY4yjCZ6jRo3Cvffe60rgQb/BP85Xm6qSYV08MLR48WI0bNgworlpf0t7juZl2NLgTctlpolFOHx3nN9iqooECKkJHhgieK5YsUIpxvScNAGa9bzxxhu45ZZb1PaWW72chL1794YJPFkPHYupjc5+zJkzR/XPC3gyb08X0wJB4rzYXpJWMM+TxmXSBbdtmcqQlJQkijz69eun8tLcSCM0+El0p/uUEzzd+upc1KjDMTwuWoiLU085/1tdVO1IJXH2XdJlZ316YeP811QHwVMtnshElE8nck2LKVMfIv0eTfAcOXIk7r//ftemUa8WPLNURPvirgvB0+2brp7zJLdgXj1JQKJRpOCZM9Bya4szuAilp6eHTZRxurJZs2bhvvvuU+Bpcqx8yaFDh9SjpknLukibNWTIEKNTZ33//Oc/FY2eW6qKUyGm/mlZMgBxwujFgWlAH3roITz88MOiyJNgRbo1iS4YwTAClpAknHrqqSDoM/I0ARZ/v+mmm1TStYlxibJcfKhvdoJyzTXXYPTo0Zlj4tZPPckkiw7BqwuEiLYhZ59ygqZkLuTsjLMO/qbBVwrCBE8SNPB7qX6/yQaDVmi03hdN8BwxYoRaSJvaTpakCRMm4IYbbhCp7WQ+MERdxcXFqZ0wE3jSfokP99xzj4gEgsqlrk2LfucgSMGTdfJPIs92Z36WIT0fIxFJIck6qe54kEFP5EjPUZFknDEZn35+z549mQcjTMjfokWLTCq4SLLa6bBeRnImsNeDye03brtJyiWXXILLLrssU9StrwTkb775RjT4zO+jjjmYpnYnJiaCdHfS6I2rPJ72M+0KsC9nn302WrZsKVGFoquqVKmSCGzZXlKf0QilICBqRD4K5QTPnEDpt5+5PSetS9ljOhR4Kv6+Y0U6J4NQZzTfFU3w7N69O84//3yjCjiPuPNDjl1JOZnBk/0neD744IPKF5h8M+2Yh+E0vaKb/ijLz2rklZUWCRiyLqaCMXAi9aypsB0M3hQ938qVK8P8bpbf5cYbb8Srr76qlB9kYa4dvzcx6jMVfSWZX2J4t/p5JRn39/kNy1SuvfZajBkzRkQCwf41b95cbfEGXRiF89uPpHDn4Pbbb1eJ/aZCPmB+J+I3u5OpmBY6+dFX9c2TFH68NzQfSzRANJrgGS1Vnezg6UVvnP8vv/wy+MnHBJyMDAcNGgT6UWmRgueyZcvULgM/S0oKb1VhZG3B06EtC57ZTceCp2QqFXCZCPd9RrvVOSNx6c6Il3ZZ8MzSVkGh5/MyfhY8vWjLRdZGnlnKsZFnQEZlq2HImVFOMG88wZO7LDNmzACvA+NWV9DFgqcFTzebspFnHmec3bb1r8CTNfLM7XCPfy1FftJ52Cca25ZBtTmI7WZuqx0+fFil7HAbjPOOV14xzYbb9OSiDrpY8LTgacETgI08beQZtHONVJ8GzzfffFMdlY9G+fDDD8EDZZI842i830udXKFv3rxZnTQnQ1Jeij7kxn8JqDwUxvSo1157LS/V5vqsBU8LnhY8LXhmswG7bRu4n81WoQZPHspibnE0Cu/g5ElsfTK2IEeeBLpNmzap9KhPPvkkEHXofDh+iyOBAHUddLHgacHTgqcFTwueQXtWQ30EDEZDPAEdxLZlztdNmTJFbVfmzNM8wd0Uv47bq2NH3QgAACAASURBVDxxyFS0IIpeLDDyJKuVjTwztGpP22ZZlz0wFMRMs+BpwTMgO5JWQ1CjQ49W5Enw7Ny5s9q2leZlStseDTnmuDHyDAo8dRtJ12bBM2vELHha8Ax8/tpvnlkqtdu2gZvXcRVa8MyuEgue0bc5G3lm17GNPAOyOQueFjwDMiVRNRY8LXiKDCVgIRt5nkSR5/bt28MkQZYUXrdEiiTeVxj0d6LWrVujZ8+eYpo5SXsps337dsW5auJE5PZa3bp1QVou3oQhKa1atQL/WEwHQubPn6+2xEztYF0keeetGRJie/bvueeeMzIX6fZdeOGF6sYDt/bq/KjzzjtPfbeTFC8MQ40bN0avXr3AwySmQhnaRtOmTY06NtXl/F0KnnrbtX79+ujQoYOI9YnvIdepU88m+5C2nbe2/PTTT4rn0zQH69Spg65dZXd9nuyRJ7ePSYJC2wuqUP+cK6QtnT59uqha2jO/LfOmHVNhniwvVv/555+VqNt4eyFJYD1sr26zm21SlvR19Pv8Lh5U4Ts5JvT5ZEgzFbaDVKtSJjXKP/PMM8pnmOaeb4ahtLS0sIRSjZ2jAkmGTnoi02CalJHzdyqSoBFkodIIVqb+aeWSGpBcsVI2FJIaUx+6RBokDiTJ6UmEzP821T958mQMHTo0Uz6STnT/SCAv4aplPaTDuuqqqyJy0OqTqKyb12pRH5LiBTy9jDUXEbyMgLfMsJgmgqSt2nYl3zz1+7iI4CJTurCi3thPk21I26vb/NRTT6mTq5JLA8gfTBpEiQM52cGTl0iQapKfRIKyIX0lGS9yIHWcpPDd+io5kzznInNnNbVoUODJdhOY+Wf6Hk9Z8smSr/bbb781NVn0uzN9iz7GOU8iVcBA4sknnwQvoJAU9ovXI0ps3zd4ermSjLeq6CvJciaaSzrkBgJBgzHrI0g572ozvV//blrRazlefvzYY49lOnXTCk5y8pIyvKWBYEEH6dYWZ/9M+tNte+uttxTbS6TbUvRk0u81Ab3WhRfwdI6D7kOksSF4Us/kzZW2RWKLXiJP1nf55ZerCL969eqS6rPdfhJUu9nmRx55RF24YLINjjcPLPHgkslBskMnO3jy7l/eNyu9d1MyyNQrF+e8pSjIep3v1vPW5JO8Rp5O9h3TYkKDy+zZs427HRK95XyfqW+sk4HNK6+8ovgAJMVZpwlA8wSeksZQRt/nycuw2SBTtCOtV2og0vool/OUo2mAtLyXd9CR8T5P7Zyk4Gm6DJuTUYOnpD1e2v7222+rLVM38PQKnGyjF/D0Mja8UJp6JpmBaZJLdOVcIEkiT21LPXr0UNfg1ahRQ/QaZwSv6xA96CKkwZMgIIk8NXhK3v93As+g7EhfY8XonkQQbsXLHM0NPPn/BRl5OuegyW8RXDj/ePVhUMX5Trd+6XbSX/HiEF6pKCle5t8JA08eZyd42gLl1AmeQU1GrVNORi/g6WUsTODppS6nrBfw9PIORp6M7oNmApJGnrqt/DZD8JRGnl766EWWNsd2WPAEvJAkMPJkxB50hEgA5ZWOQdfrxSYo6yXy9Fr30qVLAwdPr23wCp5e6rfg6UVbAcla8MxSpAXPgIzKUI0FzywFWfDM0oUFT//zz4Knf935ftKCpwVP38bj80ELnhY8czMdC54+JxSgLjLwdZ8nDwxJX8tvnnbbNktbFjwteErnTlByFjwteFrwDGo2ZdRjwTNYfYpqs+BpwVNkKAEKWfC04GnBM8AJZcEzWGVKa7PgacFTaitByVnwtOBpwTOo2WQjz2A16aE2C54WPD2YSyCiFjwteFrwDGQqZVZS6Ldt+cGbbBMePsEaNagZeEjpZMolYmU8Ds02SJPa+f2XH5pZTIm4xsYeE2A7yTBERg9JOgLlTQnzznfbVBVk5ieTMOLuu+8W2YZmGJKmqtDmSKHHwjFysynNbGXKF+bvZBhifqpkzC+++GJ88MEHmfbpZoPSPE+ddydlhiF7DBmtpBSgvMJM0zaa5hR1QBpETTMXaY5rVp9hw4bhiiuucJ2rug62gX+mNLRopqrw3WSqok50idRHtpU0pH369DHam9QXadslwxAvSifDUBD+2ZnX72RQcmsX58izzz4beEoQ+0N6xccffzyTQcnUx0WLFqFevXoIFZQDQ6QS4/VQUuAyGYB2WORjvO222zIdWW7P6cE844wzVBJurVq1TNWr36lE/rHNOilX9KCLENvCgTn33HOzTZrcHuE76fSGDBmSSbVler8Fzwww4x9tg6tOt6IBrXLlyooXVUpXyMn4ww8/GJ0N6yP/LFmfTGChJ/ratWtFHMnkTyVvqKle9l8Cns7E+oEDB+LSSy+NqDqtN4ILndPXX39tMk31O3VBCjbS6elFaaQHSVtH3tdt27YZZUmP+d1336m2mAr7SRDSQOsmH03w5AKF983SF5hAnD7o9NNPz8xDDtKPkt50xYoV2L17t0l14t/ZHy4w//vf/yryHVOhPP2zlKTEVJ/z93LlyqFNmzaKetOkZz7H8aB9FhjwJGiRd5UrjCCKXj1wsjRp0iSTH9INPEn8TfYWDpKk0EGSJEEX04pFUicHj86D/KXkwDQ5dvavRYsWRh5cXY8FzyymFj1eJoYV/btkYmk9EwSmTZtmZOHiGHMHg7ZkAgvdXg1MEnsyRbO6Dgl46vaxTs5VNz5X/V7ypzIHmGArKaRhJB1j6dKl1aLUNDaSMeR7CQDUM9timqd854gRIxSnsgmEogmetA3uMpCP12QbTh8kWSxJxoIyTho/6TMSOb1jxvHmmORnob9nVNupUydxM5SOC0rkSfAkd2FQ4Ekt6JX6mWee6QqeWmO8dYHgSXlJocPjVpBpMkrqcspwsnDSqNVNKBTxcb73t99+U+ApvW3AgmeGOp1jZtKxHgCv4Dl16lSjbXgBT7/tljher+DJuWoCT+qY0SFtzgt4klGK4GkCAekYsv/79u1TLDlSR81t5gceeMA4daMNnlxES8HTiz6MHTsmEI06tR2T5IK7gmPHjpU2JypyTvA0zfFs+igo4FkY7/N84okn1Co56BLNy7AteAY9WrnXx8jTC3jSlrxElEH3Qgqe+r0m8NQOkuDJb8tS8CTAOcEzqH4WVvDktqYGz6B0UVDqIXhyWzq/wZPb3aS89BJ5qgWpBc8sU/IaeVrwzNJdYaPni7YDseCZEd1b8PRvadyVsODpX3/SJy14RtAUtzWjtW1rwdOCZ6QJasHTgqfUeUeSs+CZVw3KnrfgacFTZCl221akpjwLWfC04JlXI7LgmVcNyp634GnBU2QpFjxFasqzkAVPC555NSILnnnVoOx5C54WPEWWYsFTpKY8C1nwtOCZVyOy4JlXDcqet+CZD+DJVBWeDAyy5MzzNB2d/vXXXwNPVZHmzjn7He0DQ8wHM+kiyHHQdfk9Aft3B09tQyQn4Glbt7QW57hxnDmneAk6iySNyGQXbAvzPL2mqpBVx1R3tFNVonFgKGdqnamP0nml54p0ztjTthE0ywHh7e3SQkYPJqqSIi+oweS7JQeG9PvatWuHUaNGKSYZSXn66aeVPIsp15M0ZU7qv0jybAup4Fgv2WdMSdqrVq1Cx44dxSQJr776qqJLo55zK852kfJLyqjjBTyZy5uUlJTJzOSma+b70aFef/31gdqFZHz1uHJMNIWeaTx0vVLwLFasmAKWhx9+2JiqwrHRtHimHEhp/7ScJFXFOS///e9/K2q8SEXbEU/bfvjhhxg6dKioSQMGDFBUcARP1uGmbybwHzp0KJM9LJLfYD101MzJ/vjjj43tYD1MQSPYmsa7sIInafG4sAnS12rQpE1L8vW9gid9Ef2otHDBZPLLrKvARZ4cFObvSKIYytSvX19FUCZWEanitJwX8KxUqRKaNWumErQlZfny5Vi6dKlogJgGwwUCjcpksJs3b1Z0WHQOpsGnAX7++eeu9IPOFXyrVq1Qu3btiG1g2/Qk6Ny5M66++mqJKlTyOUGOBmsqZ511lgIMCTBzgq9Zswbr1q0TLVJM7/bzO3VCmrvevXujbNmyoiqk4El7OO2009C0aVPjWLMdPXv2BKksubAxOXZRQ48JeQVPzlXOWVNhG6tVqyZekDZo0EA5M80r6zZXCABcDJKiTy90IrWHem7YsKFqi1vRtk9WMrbDNFcLK3h+8sknmDRpkuof/Uxei9YTx5vsTCY9831ewJP19u/fH/SjksJxpL/V7XLzowUOPNlBGpbTGUfqtBNgTcYqUZxTRgKeTnDxUr9ze8IEclylv/TSS5mk127vef/998EVOImvJfowvdvZP9OWivN30pPpyNqkFy/gych6/Pjx4ArV1L89e/Yo6roXXnjBGJmZ2uj3d+qEoMVEaikxvBQ89dhIF5lMj2JERN3lJ3ia7EiDGUGwX79+CuS8FlPkyYUaFzRTpkxRVbtFntwFI3tY3759ReBJQJEs5AsreHJr/Mknn/Q6JEZ5LlKWLFmiFiqm4gU8uVNGGyKZjrQ4x6/QgWe0eBGlyqOcFDy91OlHluBJPlB9Y4RbHe+9914mePp5V1DPcPssWuDJPpq4e9kPklETPOn48rNEEzy99EuDpyZO9/Ksm6wk8vTzLm6zMWIg3WTQhc6XhPoSJieCJxdgJvD02sbCCJ7sI7elaUtBF443wZO7KabiBzxJ4yotpoW5rqdARp4WPLOG2YJnli4YeVrwlLqA7HIWPLP0YcHTnw1Z8MyuNwueEezIRp7+J5iNPLN0ZyNPf3ZkI09/euNT0UxVsZFn1rhY8LTg6X+WRnjSgqcFz7walQVP/xq04JmlO/3N027b+rcnz0/ayNOzyjIfsOBpwdO/9WQ8acHTvwYteFrw9G89ATxpwdO/Ei14WvD0bz0WPPOqOwueFjzzakN5et6Cp3/1WfC04Onfeix45lV3FjxPMvC86667QHIASW6h9LStsy7T8WLK6hwzkyxV7wU8dU6q1OglCbi6Lmeep6ndOlXl4MGDrnr22l5pvyjHuqOZ55nfp2296s7rgSGeKJ42bZpSuWSuSMdGn7alYzXZkbROto+pKpzbEgYeSb26bdy2ZZ5nNFNVPvvsM2OTnHmebnrLOVYmWaaq0JaDToFhhzjGY8aMyXYZdlBjLj0w5MzTd7Nj3S7meZI4xi1VRdfD09IkVmGOuKmwXl7ALv3myXdoFjXT/MvTgSFT5bpjs2bNUhMsaPCUgqx2RJoVIxLFnHMgJODp1ZE665calwZPOhPThPzggw/EeZ7OuqTj6GaoTl0w8hw5cqTJrtXv48aNy8Yw5NaWgpKqIhl3LUPwfO655zyRJGjwDBJAnSQJQTlSti9o8NQLMOY1E1j8kCSYDI8kIr169YIGTzebK1WqlCK5YFtM80+/V0IEkZqaqsCTC4Sgi448yfLFNgc53l7BU9o3+rfFixeLwJPBwa233qqY6CIVPf80eBYokoTt27eH//Wvf4l0s379esyePRs7d+4UrailoEgjXbhwIUgZJaGKIlUaGVwk9G4S8CQTBdtQt25dxStbpUoVkT5mzpyJr776Sj1rAq4zzjgDF1xwgaLnc5OnsZDsnfUePXrUtR2UrVChAm677TZ1MCOoyaX7QvozOihJ+eWXX0B9sM0mUMpv8NR6IlVhjx49JN3DkSNHlC4k9skK6awJHBIHLGrAMSG2gW2R2JykXu2U+S9Zi8idG1TRdkSKxX379gVVbWY9bDMjSrbZ5Gs4P8477zw0atTIlTlI6/XLL7/EnDlzjPOabWDdHO+gS3x8vKJiJGUhS5CMUl7Ak7Sl9Lf16tVz7aIe771794Kcxm6AqPtDjmuJH6c8I1X6JEnhuJB/mcXkm31HnitXrgzrwZE2SsuZGmUyaGc9//d//4dbbrlFxNHK1Sap7iTE8xLwZDuobPImcnVKoJMURgEkm5YMkHbYJp1pZ6Z15ybPycSx48KDji+I4nzf6NGj8cADDwRRbbY6CgJ4Us+kQCTrk1vR4MftTO66MEKTFFLGkRtYj2NQCxs6PbItEURNtiRpp5apUaOGiqwvv/xyL48ZdUfg5DV40ltVvLyckdm7776rFrySaFIv6txASIPnQw89BAYVpq1K1kV/xJtjolV0G4KMPqXgyT6deeaZyjZ4AYVprjASJy8w/W6koseK4/fiiy8qDlo3Wfaf9RIfiBOS4lzAmxbzJww8JQ3XMlLwpPzrr78uAk/KUtkETwlFmRQ8WS/Bk46JxiIpBE8aYX4WfltYtGhRYODp7AtvjTkZwZN95IQaOHCgAk+T4+XvBM8777zTM3jqiRsUeD7yyCNqgSfdEZDaJjl7WS+3p4MqdHqMQAgs1HXQhc6XW6ZcpASlX7aR7X7wwQdB+zcVfjoiRSAXCEG2wfTevP7uFTzpFyWk7FwsmcBTt53jx/nnBp56PPhtmQswKXh60Y8FzwjasuDpxYyyy1rwzHCkFjz92ZAFT396OxFPWfDM0rIFTwuegc85C54WPPNiVBY886K96D5rwdOCp9HCbORpVFFEAQueFjz9W0+G7uy2bV40GL1nLXha8DRalwVPo4oseIZCEXVgt239248FT/+6i/aTFjwteBptzIKnUUUWPC14qvxVe2AoYyrYA0PZXQIPUNoDQ8e7yZDXVBUvrtietvWiLX+y9rStP73Z07bZ9WbBM0sfFjwteEq8StTAk86JuTm6mHKrpHmerE+SqqLztVauXImmTZuCR6jdijPPU5qq8vjjj3vO89QrW8ngSGSY9L1gwQKVqhLEUXmdU8Z/mefGI/teijNPNdJzzMsbP358ZnqNm23s3r0b1DNXvqbi7L8kB5JH3wtTqgr7xFSVF154QSWMm+xZbzlLdCEBz5z1mFJ82D7OO6aqRCPPk6lqtCOmqrBEao/2BVJfRDlpqgpJT6677jpjqopTd17mqfQ5r3187LHHwFQ7Uw4kdcHUE+Z5MlXFre0MliR5nnocOH7M8zRRG7Jv0U5VYf86depkTFtzzrmogqcGLD2J3Sb7G2+8oaianIAbSV4CnjrqJXieddZZIsaLc889F8888wx4dFlSRowYkc0AIzkpbaA0AImxSt6tZRo2bIh58+YpHswgirMPZOhgsriksF9OukQ3h03wJCWXBny3CekFPNlOArFmjIrUbv0+kiRw8ppAoKCkqlCndHpss4kkwavNeQFP7ahNoMzf6QM41mTBCrrQ5kkLKQVPKTuUXqTQF5j6SBaga665Bm+++abRjnT/2Q5Tvc7FgLZPN5IEDTC6XhNAc0FK6k3KuemFv9MfkjDFlOepv3G3aNEC9LumxR3HjwvB3r17u8qeCPCkryMDlUlvbKj2c1EDT76EgMgiAc+vv/5aTQSJgUvAU0/wrVu3KodjqpfypNiqU6eOmHCAdIUbNmwQ9XH16tX4/vvv1QpKMnGkjoZUgvz4T4qwIAvbSIqyjz76SFQtqbtId0dnYjJArmRJ8ExaNb4nqMiTDW3btq2iETPxHvO9HTp0UBPXtCtSkMBz0qRJirqRFH0m0CcbEmUlRQqe2nbnz5/vyiLjBIpt27ZhzZo1kmZ4kqHNcwHEnSI3YGGlpI3kDs3vv/8uese6deuwadMm17mqbZd2T+5q03jwxTx9TC5eCV0ho1rac+3atVWb3fpIv0L/smrVKnH/aB8S30wKPfpFEwWh9rk///yzss9IRdsQafmuvfZatGvXLl/Bk7ZP/mAGIibfxYaShYu6iCp4ikbRh5AEPDVoe6meXJZkkeGtAJLCLbThw4dLRNVCgqtvN6MSVXQChLQBeQF5jglXkRLKxJxdCDLy5O0dJOn2spgwOb2CAp5ebJpjR2J6cpJKihQ8dV2kSjPdlEK96VtVokEM78WOCFZ33HGH6AYP1jtq1Ch1q5C0SJwux+TQoUMgN7cbfZ1+pyaGZ2SrwTNSe7g4GDx4sIqAJfOWfov+S1KWLVum/CJ5zU2Fi2f6Tynlq1Rv0dy29bobSO5x9u+kBk/TQDt/p8HNnTtXTTCv4CkxAH7T5ba0iezdS5sLkqwTPCX6kLbd67atBk+SsgdR9Mq8oNDzeekTI5wgwdP5boKnBBAJnv379zcCrZd++ZH1Cp7c0owGNSVvEvEKnozOTEWDp97tM8lz2/bhhx8WRVr0h/SLDC5MheO9ZMkS11tVTHXk/D3a27Ze20Pw5EFNC57HNGfB06sJZZe34JldH5oYXq9qg1xQSEfKgmeWpix4ZrcaC57SWXS8nAXPHDqx4OnfmPikBU8LnrlZkI08s2vFRp7e/YyNPL3rLOIT0m+eXl5pwdOLto6XteBpwdOCp3kOWfA068hu23rXkfgJC55iVZ0wQQueFjwteJqnmwVPs44seHrXkfgJC55iVZ0wQQueFjwteJqnmwVPs44seHrXkfiJoMFTH+32etqW+ZXDhg0TnVizp23Fw5tN0J629ac3PmUPDGXprrAfGDLlYxbW07amfnEE/3bfPL3mznhxEQRPsqz4ySnM7T2aQIHgmZc8T7cTlX8n8KSOTadLpUwoXsGT6RNMjTClqjhz4Ux5nuwPU1XuuusuMLFcUpynbU3y0raY6nH+zjqnTp3qKVWFFGVXXHGF62t0W5lTGI1UFe1MJfbhRW/RAE8v79eyjDzJwCPN8xwzZowiEtAlkq3mJc/TZP9MVaFfDCpVJWceqsRXRDPP08u8ouwJy/OMBogGDZ6aGYPGQQfpNc9TT3gLnlkkCaYJqQHWtPKMBnjq8Tax0uhVrx/wnDx5sgIuU/9Yt/MCBZMjkU70aICn0+lFEzwliy+tBymARRs8TW3W7fRKkuAETzfbcIKn025zsxfWQ9Y17pxJ2p2f4Kn1diLA04RV+ncufE499dTo5XnyRaR1MjVIDy45bcmDmXNVknPwWR9XYuQiJLFwkOW7775TrBu//PKLqFomUZP7VRu1m3G//fbbuPvuu0UkCTQUTb9m0oeooceENOMLab+CLldddRWeeuop0ZiQOo+RoURvXsGT12qRcs/EMES9UoZ/EqAnGJJxZvPmzSLVffjhh7jkkkuMEQPbQbsnbVvQhdR8Jt5Q/c5q1aqBl5937949YjO0LfLfIUOGgLsppkL9kiGHlwxICm3TOSamseE8oe8wLTr279+vxo9E8pIiIUnQ+uDYmS6e0O8keLZv315Eo0fu55deesm4G8C6+X76o/fee0/SPdx///0qUJCU5cuXK3lSqJqKhCTBaUcEffo7U6EMo1/60aAL6Tnpj+iXTP6Wdvbjjz+ifv360QNPdpDkwFLwpLPh90OJIrldW6FCBVdOUj8KJkfmzTffjFq1aokeL1euHPgnKVz57tixQw2O2wBRX/xWRRDnRAu6kHasW7dugetu1qxZikVG0mYSMD/77LNqcWUqXsGzYsWKajvf5Ez1IowrcJMs20gido6fFOSqVq0qIuvnNh4dguTWGJOucv7O7UH2z63ovhO0OKekFwxs374de/fuNTaJwDZjxgwFApLCXSXSWErGkLrjgpS0cSanx+ie40cQlRQJeLIe+itu0RNcJIXtJCe2BGzp1GnPkiCBoMWbay644AJJM9Qi4v333xfJEuCou8OHDxvlJeCpK+H4kazh008/NdZLAXIkS8dPVOExIUaRQ4cORevWrdX/E8mW9Fw55ZRTMhZ4hfE+Ty+K8SLLWwPoxKRXknmp24ssV48kvKbDDrrQUffq1ctInO71ve+88w5uv/12kXHzVhX2UeKovYKntN2cCAMHDjReSSatz68cx5jRspRn1Mt7eNsIHTuLZIHgpW6JLJ0QFxu8koy6lhTSwBHwS5cubWwzr2X75z//qb7tmsBT8m6njBfwJBCZrtXy+n6v8oycuEAxEdTrerllyyvJgi5ewJPjR8pS3rqTn4W3xnAO8koyL8WCp0NbFjy9mE52WQue/nRnwTO73ix4+rMjC57+9ManLHj6113mkxY8/SvRgqc/3VnwtODpz3KyP2XB078WLXj6150FzwB0Z8HTnxIteFrw9Gc5FjyD0JuNPAPSoo08/SvSgqc/3VnwtODpz3IseAahNwueAWnRgqd/RVrw9Kc7C54WPP1ZjgXPIPRmwTMgLVrw9K9IC57+dGfB04KnP8ux4BmE3ix4BqRFC57+FWnB05/uLHha8PRnORY8g9CbBc+AtGjB078iLXj6050FTwue/izHgmcQejspwJPJ+6T8kjAMMfGatFySxGiydEiS8alEMkwMHz4cDRs2FI0Lj4ebCMhFFeUQmjhxIpjvRgaOoAvJvK+++moRSQJZUKhnSfnoo49Uor+E2OH8889X5AQShiGy2DCB+Y033pA0Q7VXwt5SkEgSXnnlFUVtKClke5HQWLIuLyQJZOBh3VIGpaJFi4ooEFnfu+++K6aCY5I/adhKlSplJEng/GCS/cyZM0W+QKJfLUOqO/L3mgr9FRlypFR39Flst76MwlS/9Hf6IVKWko5RQohBe5NSJkrbQLn4+Hh8//33ir7OVOgr7rnnHjHTkak+v78X6lQVGtSaNWsUZ6AbIOrfyLFI1hKJYydnJ42EvIWRiq6XFFTLli0TseSwrh49euDKK69U1UpIxiWDq+m7fvjhBxFnp6ROyug+nnPOOahdu3bECeakDyRNoJTCq2bNmoqZSfPmuk3gLVu2YNGiRap/pkLGktNOOw116tQxOgW2nXyrvB3HVHdBAU+2kzSW5A81kcjzdy5SPv/8c9HiUQqerHfXrl0YN24cFixYYBoS9TtvrrnooouMc4rgsnbtWvz000+iev/44w9144hkAcQ5TQrCypUrZ85B0UtchPQYrFixAqtXrzZSabKqGjVqoFmzZq6v1vOK/SIV3KZNm/La1GzPM0ho3ry5mieSoIL2xj4GWTin2A7ahYRSkLZBn0/7yM9S6MFTG62JCJpypHMiFRzpndwK62rQoAEWL17sGiHqVaDXW1X0fZ6S9O+ocAAAIABJREFUtkuNwwleQQEy3637aKpTv59yJAp/8MEHRU0nJympDTUnqds4EpSvu+46UZRapkwZRdfG8ZbYxi233KK4YhlFmWyjINDzORc2Jjvi74zuX3jhBaU7k5OUgidtg86c0ROvXjPpje/lzgF1HankbJskGmJdtCHyne7Zs8fYP+4okRqP/TTZtciIHYtMXvhA+zfpmJEWbZmLeZN9sg1eriSTtlnLOd9vajdBTsuYZKXt8PJ+LRvUu6VtzE2uUIOnV8fOFTLJo03gSUUxalmyZInrFpPf+zwJnpp4O8jJ64xApE7HzXicgEg50yTXBj169Gh1U4OkaPDkdpvpHeRbJSep3pZ2m0AET+qZ29imdvO9JMc+2cGTACPZHpeCJ/XPe0pN4OnUP3lUowme5DTm+9xsg9ENt4SjAZ5cNHLHyu39bB+jX4InbU5inwUFPLVuTTqWzH0neOv6TKBowdOgWec9hSbnntvqKbdnOCgET37rkIIn76PjCtG0Smbk6fUybN4EExRw6ijEaVhBgKeXCaCNXkeeXsCTEZG+oFwaeZomr448CZ6SwmiSUYBp24/vLSiRpx5306KDvzPy5Dfg/ABPp/75nZYLFbc55cd2deQpAU9GnrxgQIOnxD4kMpwDEvBkXfxMIQVP6oPgye1VyWXYkrYWNBnTfHa214tsNPtZqCNPL4rxA56myFM7L34ro5P2ehm2Hyfhpc/5JcttKz/gadKHn23bkx08pWMcDfDkuxl5cuFo2rbV7TSBp7Q/OeUInjy0x21bU4k2eNL+TYWRJ3dRTJGnrudkB0+Tvgri7xY8I4yKZNvWgmfuyrPgWfCmugXPrDGx4Fnw7LMwtsiCpwXPwO3WgmfgKs1zhRY8LXjm2YhsBdk0YMHTgmfgU8KCZ+AqzXOFFjwteObZiGwFFjylB4bsN09/s8WCpz+9RfMpC54WPKNpX3/Hum3kaSPPwO3egmfgKs1zhRY8LXjm2YhsBcFEnqtWrQqTGSbowlOxhw8fVtWaTl9K363TKJgYzZw003F9ypMkgWw2klQVMheRLorsG5LCk6jMQZT0j2waUuozybtPhAxPPjIVR1J44vCZZ54RpapMmzYNffv2FdEPMm/0/vvvV2kRpqPt/J0pTCTRKGypKhIdU4bj8eKLLyrdmfIKyfQyYcIEUdUkSSAxAHNw3Yqeg88++yyuv/56V1ndPibku80/ZyXMHyV1nE5Vcesj6R3ffPNNV6Yjp/9hWgnbYpqv7CNZgJ577jmjLlgf6S5Je+lW9Ds5buTQJnuRqbAdZKCSUJayLvaPp39N/TO9Ny+/s81S+ki2U7fZ9E6vujDV5/zdd+S5b9++sPR4upcGsbOk8DKxpnitk/WRwos0YiYwomzp0qXRrVs3V3o+nY+6detWLFy4UE1cSeGi4+yzz84UdTNapsEwoZsTwZRALHl3tGScfSDtWK1atUSvqlu3Llq2bJlJRuGmi/Xr14so9PhiOo9169aJ6Mz4znnz5uH33383OpyClucpUTLthjR3v/zyi5F+kLK0Y1KwmRYdfDe5UevVq4dy5cpJmqJ0vHnzZiNg0Jm3a9dOLZYkhe0lI5hmiHKzI84lUhvu3LnTWDWB9tprr0WbNm0UgEYqmlCEtHFsi2mu0neQ1pPtkBTq46yzzhLxOlMHTIGhT2JxawtBiLy25557rrHNknb6leGYkDhGYhu0OS6627Zta3wd9cz8fvrRoItv8AxnlKDbkwma0QBP3VjTytv5u5uslMwhp5J030x95O8kNicrEidENPQd1ABqR0sHc++992LkyJG+qjaNja5U6y7SSwgApGsjAYOk6PeadFxYwdNJYuGmD8pNnToV3bt3NzpeCnChxGiyZ8+ersCifyRp+muvvWYET3IT9+vXzyjrtAdpH7nzROfLnQwT0TrJO7iTQiYsE3hKbZPtJFiQqIF9lJRixYqBvNVMoTMV9m/AgAH44IMPjGNIICJlomk3wPTOvP7OgKZJkyauJBB6jjLViLsoHBNToZ65+0Tu6qBLnsAz6MawPr2C439TWUFsJehJxYli2n6hrJbTbYjUT79t9fIcB51bitItjWiMiaRO5zjdd999GDVqlOSx4xYEJvB0gpubM3OCpwkQneNskj0ZwNOkY4Ind11MuqDeqlevrrYpr7jiClfw1HWZwFO3jdu13IEyAW1O8HQu4iI1aP/+/ejVq5daJJj6yO1/MjNJwFMDscTHcGfEC3gyAuZnJMnNTQTPm2++WW29O31NbvogeHLLm7fSUNZtTokmtEch3T7qQwKelCd4ss2SXQnW+7cBT4+6P+nFNXiaCMsLkiL4rVEKntFqtwZPRg1BlsIInl77Tyanrl27ih4jeBJc3CJPZ0XktTV956M8I08v4Clq7DEhnrZn5CkBT0ae3L2QOGovbWBExDMY0noZeRI8pZEnwVNys5ETPIMIVLzowCnL4MAEnlqe4Mlo2RR56gjfgqffUSnkz1nw9DeAFjz96Y1PWfDM0p0FT/925OVJC55etGVlRRqw4ClS03FCFjz96c2CZ3a9WfD0b0denrTg6UVbVlakAQueIjVZ8PSnplyfspGnjTwDNCdRVRY8RWqyQl40YMHTi7ayZG3k6U9vNvK0kad/y/H/pAVP/7qzT0bQgAVPf6ZhwdOf3ix4WvD0bzn+n7Tg6V939kkLnoHagAVP/+q027Z229a/9fh70oKnP7397Z7SuU36aLjbEXEvkafOizUlfkdD4Tq/jv96yfNkW5y5dkEdly+s4Kl1YSLQ0HpzEgNE0p3T3iS5fBY8vYOnl9xtyuo8T82mZpqTflJVSJJgymP1kqri1Ta1jUry9YMGTz1/SL7A9KhokCScccYZKsf5vPPO88RHENqxY0eY+V22eNdAx44dwT8Wk2FJwZP1kPaP+XnMkcvPQoOV8mo2bdoUl112GYoWLRpoknY0wFODE6kVL7744qiomPmH5FU22QbzfkkpOHPmTGM72O5OnTqhVatWik7PtECx4OkdPDXb2FdffQVyXZsK5UmXOHnyZJOo+p2kESQykNAgcv6RPenXX3/1RJJgsgsC0owZM0RUd6yrYsWKam7Xrl3baHNBg6cmuuG/n3/+uaJuDLqwf5xXun8m/en3h1auXBnWkzzoRp3s9fGGi+HDh2cyGQURebIOEk2PGTMGJUqUMBpr0Dp2Rje8VeXBBx8UvYKJziQyYEoAS1AMJ9EEz5zRsqijQiESrF966aWKU1mvnnN7lCwyXPXqCwbcIgzaBqkKb7/9dpFtWPD0Dp7a/mn3o0ePdo34nLs00bQl/R430/MSeRKI6LeeeOIJY0TLd3IxzwBLBwpu7QgaPPXccZtDwikZUcxJzyoFTrUotuDpX/UPP/ywMkJTdMHfpZEnZUlgTfAkA4eXwfTfk6wnnVvFdB68OUZSCJ5kcNHgGVS7owGeerx0v0xbYpL+55QheHbu3Dnz/46kD4InHRMXYpJC8LzzzjvB7T/TAsWCpz/w5FMETy4eTUUCbM46vMo7bdXNTr2AJ+vkYo3gKWlPfoKnXpQE5U9yG0+/n5sseJpmh8vvOvKUDKwf8GTkmZ8lWvd5eulTtMDTSxv8yGrwzBmd5KzLK3jS4d1xxx0q8jQVC57ewVM7ayl4msbgRP3uFzwl7SN4cleJV6mZStCRp+l9+fm7Bc88aN+CZ5bynJGnZDEhVbsFz+yasuCZpY9ocdsyErHgmaVnC565eysLnlIvnoucBU8LnpHMx0aeGZopjMTwFjyzW7UFTwueeYDJ3B+14GnB04Kn+7Sy4Bm428m1Qrtte2L07HyLjTzzoHMLnhY8LXha8MyDCwnsUQuegalSXJEFT7Gqjhe04GnB04KnBc88uJDAHrXgGZgqxRVZ8BSryoKnm6rsgaHs2rHfPDP0UZC2bXlitF+/fsYZb795ZleR/eaZu8l4Bk/nScpo5McZLTtKArpfXvrkNfK87bbbcOTIEWMPpHmeXugBjS89JlBQSRKYQ2oaGy+2yRxJnRxtqleqO6dcNPI82T/mFetUFdOpZqaqdOvWTaS3atWqKbKGnj17inKLSZX26quvRlSNTtFhRETAeu211/yo0fUZL6dtS5UqpfJpucgz5cd6AU8/fiNwRQCKceqll15S7EUmu2D/hg0bpgg3THme/J30ddEgSWC61Ysvvoi+fftGVIlfkgQvFITS8TjO33ohSWDSPicZKdhMSpc2KL/lnMbPnLvNmzfj8OHDomZ5Ac9PP/0UI0eOBPOgTOWSSy4BCRgSExNdJzoHk2C8atUqo4M0vTO330kNNnHiRNGjbdu2Ra9evVSbgyyHDh3CpEmTQLo0lkhAp8dx48aN2LVrl5EZhnWVL18eVatWDbK5mXUxymnfvr3632xbECQJrIOgdd111yEpKcnYblKZSak3K1eujLvvvhvnn3++0fnyxRLwpFxcXJwC8KFDhxrb61WA1IYEZfbTtACi7yJXc5cuXYz98wKebHPZsmVRs2ZNYxu0/a5cuRJse5DFK3i+8sorirjFpDe2sX79+kp3LVq0MDZZkuep5wJ9BVOCnGQizhc4fTP/u3r16iJaQ9bBhfHSpUsz55+kn8bOHRM47bTTMugxvYBns2bNMHjwYNSqVcvI5SptSEGQ04rlJORKaM2aNaJmScGT9W/ZsgWrV692pWrTk4tci6eeeqqidnNbRdJANmzYgAEDBogiWlGnjjl7yrZr1045U0lZsmSJ4p6URNaS+rQMJxiTs1u2bOmqCz2GjJ6+/PJL10WK1imdOqM400rdS3u1bOPGjZVTDRo8OffoREzRE/tEp0egNfWPuqMzqFu3ruIxlRQTeDr7TWBmW4IubPPll1+uOITd+sj+cS6xDZUqVRLpQ5rnyXrJi0p5UxvYf84Pztf169cHqg4v4Em/sW7dOvWnxylSY6g7slnVq1cPpUuXNupOAp58F+1X2yjHxFSo57vuuisi0OZ8nn0k0XvQhW1+++231WLJE3jSSOicTj/9dKPSg250NOvTjnfOnDmK+kyvWEzvlIKnBkVdn8SZSWVJGs0V4cGDB03N9fQ72+jlVpWxY8cqztV9+/Z5eo9JuEyZMnjssccUyJkKx3HQoEHKuE0re/Zv4MCBePnll40OwfRet99NnJxeGYa8tIUrem4fm+zNS51aVgKefur18gyjyffee085VFMfvWz/eYk8GVlzgUKbk7SBOynNmzfHb7/95qWrRlkv4Kn9nam9zpea7FjLSsHT684lwZOfCW666SajLrS/NS0wRRXlEGK7eREAo09f4Mk98JOt0Djmzp2rnHQ0wDNa+uIk5GQMGjzZ3vvvvx+jRo0SNf2dd95R4Ll//36RvFTIC3iyTgLiW2+9ZdweP1HgaerniQBPtsGLozS1mb8XNvCU9EnLeAFPOnXeoCMBT9bPeZrf4OlFF15lpeDptV6v4BkNm9dtZsBiwdMxghY8jzdnC55ep7h3eQue3nWmn/ASeXp5iwVPL9rKLmvBM4Lu9LatjTwzFORl29a/Obo/aSPP7PqxkWeWPvS2bTRW4TbyzNCzjTwteIp8uwXP7Gqy4JmlD7ttK5pCxwnZyNOf3viUjTyzdOflm6d/jZuftJGnjTzNVmIjz2w6suApMhkLnv7UlOtTFjwteLqZU9Df+fW77DfPHFq33zyPN0P7zTNATx+hKht5+texBU8LnicleEqPNvufOrInpe04EeDp54i4qZfRSlXhey14mrQf+XdnUrbbCrgwgaezT8z3dmMY8q85+ZMFATy9pKqwZyfitC3fE62oy210aB8pKSlo0qRJ4Kk4f6vTtprKSA/kiR5MJsk6jcj0/miDp9SZyl1HBtsOwfOcc84pMKkqpEyTsHnoPC9TvldhTVXR9q/tLpL9OcHTpAtnHSYdU5YHhiZPnpxtHnixr5yyzj5Z8MzQjhQ89SKe48287GjmefJd0chxNAGnBs+mTZsG3r9ogqeeV6Y55dy2VcQcXhiGvBwYInhxFZIfA6k7qd9NA89v8ExNTUVaWpqxHV6dGydhmzZt8h083333XcUAIsnzpG1QF85xitTvwgqetH3Nnes2poxEyEn65JNPioaeetMLQ7fJTnu/9NJL8cknn4jqlQg5d3HI0/zf//5X8ljUZPI78qSO6dTJRU2qO1Oh/kiS0Lp1a5CiL8jCA0Oa+N7k64J8r7MuDZ7MYw26f9EETy409J9pgUDdkk0tquBJRfIFUjSP1oDWqVMHU6dORXx8vOsrohl5sm5yxJKImafRgtQJ69u0aVM2MApKl162bQmaO3bsyHTsbhN41qxZCmjpSEylsIInKdjYT1M0SZ7o7t27K8JyFje90W7IVcvDWdSdmx3RGZDakNy9QdqbHi+OddBsUiZbyPl7QQBPjhfp6yQUc2w/x4KUmhKOay/6YDtIrViyZMmojLeXtrB/JoYvL/VRNprgSZx66KGH1KLGtPDg+JGaj7cFRS3yNDkCr8rzK08mCK4U2FnTqiKaDENcmd56662BG5VfvUie8wKekvq0DG/7IKUZt7BMpbCCZ9euXdWizQRcBABSQj7xxBNG3mPqiulRBFCJ7ky6Ley/5zd4Fnb9Fab2RxM8STfLOcWdVS/FgucxbUUz8uQrLHhmmaUFzyxdWPD04q6yy1rw9K+7wvakBc98GDEbefpXuo08/evORp7+dSd90oKnVFOFX86CZz6MoQVP/0q34OlfdxY8/etO+qQFT6mmCr+cBc98GEMLnv6VbsHTv+4sePrXnfRJC55STRV+OQue+TCGFjz9K92Cp3/dWfD0rzvpkxY8pZoq/HIWPPNhDC14+le6BU//urPg6V930icteEo1VfjlLHjmwxgWNvB0sl2YcgSpTomMX7V7AU8n+4yJGIOnbXmBMNmITO0vW7YsHn30UTApn7KmPEheScaLiU15dNG+DJvgyX6a2EsIALxEXJMkmPLMHn74YZUMT3IFUxqMdNxNY+CsxwvLkfT9fuU0eF522WVGRh0vDF+UffDBB/H0008bm2YaX2MFhUDAq31I7FKqN/1uEt2QDvLGG28UaYxtIODq4tYmXrH53HPP4bzzzjP6l2xzIVoMQ9qxi3oaRaHCCJ7aYExGGG1H5gU8OYRSB0XKuN69e4vAk3meBM877rjDaNh8P++ZJInAkSNHXK3qRIDn559/biSvIACwb8OHD89cHEQCUPaPeZ4vvPCC0l3QReIkJTJBtytSfdQdma24UHHzN14WdtqOJeCpx0k6X0+UXoJ+j160aj1Gqp/EHNoHmNivWKdm4DL5Ob7Pa+SpF/ASkGae57PPPovzzz9fRJKQWbcFzwxTKCh5nhxssiGRecbkqPg76dqCjEKcE8MLeDLSO3z4cKYu3SKoGTNmqEiSLDl6EkWakARPgkv//v2NDpICQ4YMwXvvvWcko4g2eF5zzTX44osvVETk5nQIAIMGDcLQoUNd+6dt9KmnnlIr8CDHXI8BFxykFXQrelxpnybWrqCdeM76yOzz4osvZia3m6J2UtiRLMXE++ol8mRdjIrI5iQBgWjrJOj6tY+hbZBi1GQb1EGJEiVcQYg60xSTrNe0S8R3UsfPPPMM+vbtK+oi21GrVi3jmLB/DLC4KG3Xrp2obs5Z9sGSJBxTV0EBTzanVatWuP7669WEdCs0wK1bt6rILGg6LL7XC3h+8803KgoggJqcCGnEuFXCCUFZN6dHZ/77779j/fr1IsNesGAB/vjjj8zJGemhaIPn7NmzsXHjRiO3M3XAyXvmmWeKtqWXLl2KX375RTkyE1hIFKbHavfu3Rg/fjx++OEHyWPo16+fZ0YWUcUehKiDZcuWKVpIvbiI9DjnUq9evdC+fXuj3qTgqSMyckvffPPNxno9dK3AiFIXpNujbdDuTIUR4ogRIxQtpFthvQTOsWPH4ttvvzVVq3TbsmVL1KtXzyirBS688MLMAMRtN4dsXeTi3bVrl6hubudXrlzZgqfWVkECTxJNjxkzRq3gTIXE8CRiZiQSdPECnl4uw+7SpYuKDrmCMxU6dXIC8ztfkCXa4BlkW09EXQR60gR+/PHHote98sorKmLOz8Kta347l9AgkvOV292SyEUKnuw7wYJt4Hf2IBYz+anPSO/mgo27P3PmzDE2j5E96VC5IDQVjh8pSwmg0SiSixn4Xi7AyLU9c+ZMUTNOyGXYBcGYCts3T46eBc8sG7bgKZrPeRay4JmlQgue2c3Jgmd2fVjwzOFubOR5vP+1kWeeManQVGDB04KnjTxt5JnNBmzk6d9/W/D0r7vC9qQFTwueFjwteFrwDMhzW/AMSJGFoBoLnhY8LXha8LTgGZCztuAZkCILQTUWPC14WvC04GnBMyBnbcEzIEUWgmoseFrwtOBpwbPAgScPI73xxhvqWLYkH1OftmUqh+nEsk1V8Y9MpPJjyoWbjnUeqikf1X8rovOkzt802Y9+e2EFz+uuu06lqpjK3yFVRcrwlTMP22QjXk7bkjiD8m6pKvr9zK+MZqoKCWScLFCRbMSmqkTQTEE6MERWHRNtHLthU1WyBjNaqSp8A8GTbD0mUgenaZkcjZb1UqfJ8fv53dlOCfD7AU/qLz8Lc5sJnuQQNpW/E3iamMmoKydtncmmvYKnNM8zmuCpmZEkuli+fLliJiPzmaTYVJUcWop2qsqbb76pCMBN4MnBJrUbnbqERODvEHmSNJ00bBJAYmK0RI7DP2DAAFWvJPKkPBPiTY5Gm5WJykwySfMio/k3NRWdqd1ewfOll15S+svPQudL1qBp06YZm3GygyfHW2r7Xm3DK3j+/PPPaNCggeuYsA1c/JCYg8xkQRfau6b/NC0eCZ533303Zs2aJWqGBc8TDJ6rVq3C999/byQKZ7Pq1KmDtm3birhDT3bw5Db34sWLsWLFCpFhjxs3TtF9ScCLuxKtW7cW1UsWJ+4IkGtXUsiIRKcjBXJJnV5lmjRpohZszkgjUh1ewZN6k7DIeG2zF3mOMVlvSB9nKic7eJLGkiBEmkxJ6d69O8j0ZVpUsS4v4MnFWo8ePUB9mwoXo3Xr1gXpOqNR6AckkeeePXuwcOFCbN68WdQMC54nGDxFo+JD6GQHT68q4VbiW2+9JSKb9lJ3z5498fzzz6N69eqix6T3eYoq8ynUuXNnTJkyJSrg6bNJ+fbYyQ6eXGQOHjxYna2QFFJe8nq7oMFT8m4tw521l19+GX369PHymFhW0jdxZQ5BC54WPI12UxBO2xobmUPAgmeWQix4ZunCgmf2iWLB06tnyZK34GnB02g9FjyzVGQjT6O5FGgBC54WPIMyUAueFjyNtmTB04Kn0UgKiYAFTwueQZmqBU8LnkZbsuBpwdNoJIVEwIKnBc+gTNWCpwVPoy1Z8LTgaTSSQiJgwdOCZ1CmasHTgqfRlix4WvA0GkkhEbDgacEzKFO14GnB02hLFjwteBqNpJAIWPC04BmUqVrwtOBptCULnhY8jUZSSAQseFrwDMpULXha8DTakgVPC55GIykkAhY8LXgGZapRB0/SkpF+iSU/KMo0uwQ5FklUnJCQ4Kq7aHPbBjVwznrYZg7kOeeco3gi3YqmqZLQVel6ogme48ePV9y9Jt5Jqd60jd1yyy3/3961vPr0RfGt1A1JXrkJeQ4MyERMZCBRykBKkdcVJUUGbq5CBt5hYqAojwEGyCtlIMlA4Q9wMfAowsQzdSd+fXate7fvz/estfZ373vO937XLpGz9t5rf/Y6+7P3+Z71OUkVhgiv2DxP8r+/7wHIpC1btszdunXLu8CprUjk+WrFxHOMKYxTbu2ALf5A05UrI0aM8ApRa9eudaT3W1Snq6vLHT16lGvWS2hCtvHChQusLY1H0r+oscAol8IQ5hjyfDt37vRSiEVzHsaHxH+JwlAjMRbqOkv85uKNxpSdPBHQ4ULN3bwSsLU24cLM9d+s5Cn99BRhsXHjRq+Bic/1cCUXeWoWSM7H2uv4xFhHRwe7WZK2S7hx8VPbHuqRAHcjC4DUz3/1H5Im57+UPAkPyKrl+KoKNIHxIQB8TYfDDYsvNmFQUuLG9+3bN7djxw536dIlEaRHjhxxu3btYtvFfXT58mW3fv16UbvDhg1zz58/T64LnIs8aWPC4UvEA71haCpDNpQrGvIEztgYnz17lmu29zp9kozboEMYHpsDCMNzMYfGs5NnrRMS8MWoCAxp8aJ+uf6blTwJCu7LIDQfIJaqkCct7pKAFUy5X+jwNZoNGza4trY2SRXWJvSNi6GwMaqHxQc7YE1d1imhgcZ3KXnSIgmcc5EnpOMg1s3FBRZfEBdO2HQKrQcNyBNf8OBOiDRPhw4dctg8Fs0b5pbIEzEnKc1Gnpp1HLY9PT1uzpw5Wchz69at7ty5cxKY/byFB4SiecTJGp8ke/CgIh/D1ty4IjSURtr+m508w1PGv6CizUQVyDP0lVsgldPuzpw5Uyny5OZFOz6pvTb+JeQZ9o0TPhaz1AUnT5AnTp5coZOn5OsgdPK8ePEi16y/jpNnZ2cn+7m6gX7ypM2SdJOOr7ukPHlS/8BZS544BUsOT5X8GLYoSiti1IzkqYUOY6zCY1ut3xr71OSp6buZbatEngcOHPAnT67QyVPz2FZKnocPH3a7d+/mXPCnGzw6HqiPbVkAagxw8qwCecIt+umQG4ORJ4cQc93I8/8A5frNs8GpKqxu5BmHrpHn37gZecbFkZFnHdwWLVrkTp065WbNmhWHbIVrGXkaeVY4PLO7ZuRp5JkiyIw8jTxFcbR3716HR0xlvAwicrDGyB7bxqDWGnWMPI08U0S6kaeRpyiOjDz7YMJvSdu3b3ffv38XYZfLyB7bxiFr5GnkGRc5f9cy8jTyFMWRkaeRpyhQmsDIyNPIM0WYGnkKyJNLPE0xEf3VBr3W/+jRI59IjbwfSTHyNPKUxEnVbRBn5p8EAAAGZElEQVT/IE8kil+/fl3kbs5UlSq8bYtUFbwwxxV729ZOnlyM+Ovz5s3zqhvTp0/vVU8RVay4Eb3SDOWPY8eOuZcvX4o8NvLsg+nOnTs+N+7nz58sdj9+/HDv3r3zr/lzcoGQeBw3bpwbM2YM2y4MkIqzYMECL5uWotAmEdqo48ePT6ZcRL4h9j5//uw+ffrk/6uM388xRuRVIuXi2bNndWEL5df27NnjVq1aVdeW7in8jbSTDx8+iKYDPuDRO2IEpSgPGIIDEDNYuHAhm4/5+/dvLw7y+PFjkR/YREP4oEhKD74hhu/du+f27dvHijqg4yFDhrgrV664KVOmsH4Au/fv37uvX7+ysYH8SqgnQUKPK5hH5Exu3ryZFZfg2qq9Lj15woehQ4f6dKDly5ez3SBn8+DBg+7GjRusbXhvSe4nrPfHjx93T58+FbV98+ZNN3nyZDeou7v7D/RfJWXUqFGeOEmTVFKn6jYhuLjJX716JSIAjMvIs292P3786DcdCHIigXqB++TJEy/BhgWNI8/hw4d7PdIVK1YU3ui0yGIhg5axRH5QEps0BhDytm3b3NixYyXVxDbA4Nq1a175JrVghMQJGh9wXrx4sZs5c2ZdIiKhDbSLNWPChAl1uyBbxMP9+/f9W/qSghPwmzdveuOoCBNskOAvbayKbKE4tWTJEp8pUKRGRHJ006ZNc5MmTWLJkzY/kGyrF++hXyDjuXPnOhA/VxAbJ06ccA8fPuw1rTfGwYMHu6VLl3p1HypFxIGxTZ06lSVlzsdGyBMb4xkzZrj29va63YQbtu7ubvEmDA1K8jyBJzb8r1+/9hvIotigmJ4/f74nfhV51k5KGTe7djKl9uEkSesYefYhFcYC/l20Y799+7Zbs2aNaJOCDRtwxkmASPlf80OBDf1LEBG0PlMUiguQN4TFiwgjpj/cuCCW/fv3l0Ke5PPEiRPdyZMnHQTwJSRQNBfhwoWTyPnz51VqRLSAhWRdD1vEmcSOhOHXrVvHEiL6oicOUtlLTh5Qq/gEHxAbW7ZscVevXvXD5zYHp0+fdps2bWKfChJeEvUdbUxrTp65+UNCnrW4cvMd4hFFnlpAB6q9kWfczOIR7+rVq0XkOXLkSE8sRJ5FPeJmxOMoLNa4iVMW7VdVpH0TeeKxX5kFmwJsDjDOFIUWxhjyTNF/bRt47A7pP6kGreSdDhqj5NFgzJiIPPGYlys4WRN5chubcHPAtau9LiVPbbsx9lLyjGnbY6x5bBvbyUCtZ+QZN7O5yBPeQKy82cgTpIVYKrOkJk9aoPFbHOYjh4i8Bi/N9zw17ea0jSXPXGQuGauRpwQls7HfPCNjwMizDzgskEaekYGkqGbkqQCrAVMjzwbAa6WqdvKMm20jTyPPuMiJr2XkGY+dpqaRpwatFrY18oybfCNPI8+4yImvZeQZj52mppGnBq0WtjXyjJt8I08jz7jIia9l5BmPnaamkacGrRa2NfKMm3wjTyPPuMiJr2XkGY+dpqaRpwatFrZtJvKk1+qlH8PGG3udnZ1eNSh1IfL89esXm9tIqSoQnZfkYCFVJWWeJ409Z6oKvTDECUaknoewPbxti3zTlStXJukmTFXBfFThbVukquCj1WW+jaoBN/ZtW/RRxhgx53i7evbs2Q6CBmWX2nzW1P5YqkoDiBJ5UhNlBKzUfQ150jhykefdu3d9nick2DjCAHkiB5LIk0vgz5HniT5ziiSAPCnPM3fieL14IZGElOQJ3CBWoRVJkMa0xo7yPDmRBE2buW1jRBI6OjqSS+5Jx4nYxckTKkcvXryQVstih9iDulUOIYje9b6np+fP27dvswxgoDeKhR0KOBI1kjKxoAUZf3/58sWLExQt0jQejG/06NHJXUf/pOXKkQUUZIAxFGK4HTWND6TMtasZFNqCJCWk+SCDlrIgkRvapZAGK7NgXJC5wzhTFMIf48N8I+7KLIgjjA8yhFXe5IYYATvgRvFc5DeuYXzYJHAKX7nmgU560OPFCbTsAonFnAebQX9SrjJlo9XP/ZOCBZ2eqnxTSuXBasMh15g0/kg3J+EmoUgeUBMmoUpJ2Vho/NbYSucips0q3Bs55eg0mMTYauZGYxvjC1eH7lOJOhPXVqPX+2MdM/JsdJasviFgCBgChkDLIWDk2XJTbgM2BAwBQ8AQaBSB/wCfNm4MS5tmKgAAAABJRU5ErkJggg==',
      WECHAT_QR: 'data:image/png;base64,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',
    };
    const state = {
      page: unsafeWindow,
      running: false,
      runningTask: '',
      isStopping: false,
      abortCtrl: null,
      currentTaskDone: Promise.resolve(),
      FILTERED_SETS: [],
      selectedLoopSetId: null,
      selectedDoSbcSetId: null,
      minRating:
        Number(GM_getValue(config.MIN_RATING_KEY, config.DEFAULT_MIN_RATING)) ||
        config.DEFAULT_MIN_RATING,
      enableHandleDuplicate: !!GM_getValue('enableHandleDuplicate', false),
      _hiRatedPlayers: [],
      _loopFailStrike: 0,
      _lastLoopFailAt: 0,
      _xhrPromiseList: [],
      _xhrHooked: false,
      _tryLoopFailStrike2: 0,
      _tryLoopFbUsedForStrike: false,
      _auxActGuard: { lastAct: null, consec: 0 },
      btn: { loop: null, open: null, do: null, auto: null },
      autoRestartOnStop: !!GM_getValue(CFG_KEYS.AUTO_RESTART_ON_STOP, false),
    };

    const log = {
      d: (...a) => console.debug('[pandaSBC]', ...a),
      i: (...a) => console.info('[pandaSBC]', ...a),
      w: (...a) => console.warn('[pandaSBC]', ...a),
      e: (...a) => console.error('[pandaSBC]', ...a),
    };

    class AbortedError extends Error {
      constructor(msg = 'Aborted') {
        super(msg);
        this.name = 'AbortedError';
      }
    }
    class TimeoutError extends Error {
      constructor(msg = 'Timeout') {
        super(msg);
        this.name = 'TimeoutError';
      }
    }
    class ExpectError extends Error {
      constructor(msg = 'Unexpected') {
        super(msg);
        this.name = 'ExpectError';
      }
    }
    const isAbort = (e) => e && (e.name === 'AbortedError' || /Aborted/.test(String(e.message)));
    const isHighRatedError = (e) =>
      e && e.name === 'ExpectError' && /HighRatedInSquad/.test(String(e.message || ''));

    const util = {
      sleep: (ms) => {
        const s = state.abortCtrl?.signal;
        return new Promise((resolve, reject) => {
          if (s?.aborted) return reject(new AbortedError());
          const onAbort = () => { clearTimeout(t); reject(new AbortedError()); };
          const t = setTimeout(() => {
            s?.removeEventListener?.('abort', onAbort);
            resolve();
          }, ms);
          s?.addEventListener?.('abort', onAbort, { once: true });
        });
      },
      nextPaint: () =>
        new Promise((r) => requestAnimationFrame(() => requestAnimationFrame(r))),
      abortPoint() {
        const s = state.abortCtrl?.signal;
        if (s?.aborted) throw new AbortedError();
        if (state.isStopping || !state.running) throw new AbortedError();
        return s;
      },

      withAbort(fn) {
        return function (...args) {
          const s = state.abortCtrl?.signal;
          if (!s) return fn.apply(this, args);
          if (s.aborted) return Promise.reject(new AbortedError());
          const p = fn.apply(this, args);
          const ap = new Promise((_, rej) => {
            if (s.aborted) return rej(new AbortedError());
            s.addEventListener('abort', () => rej(new AbortedError()), { once: true });
          });
          return Promise.race([p, ap]);
        };
      },
      retry: async (fn, { tries = 2, delay = 400, factor = 1.6 } = {}) => {
        let err;
        for (let i = 0; i < tries; i++) {
          try {
            return await fn();
          } catch (e) {
            if (isAbort(e)) throw e;
            err = e;
            await util.sleep(Math.floor(delay));
            delay *= factor;
          }
        }
        throw err;
      },
      clamp(n, min, max) {
        return Math.max(min, Math.min(max, n));
      },
      once(fn) {
        let done = false;
        let val;
        return (...a) => {
          if (done) return val;
          val = fn(...a);
          done = true;
          return val;
        };
      },
    };

    const dom = {
      simulateClick(el) {
        if (!el) throw new ExpectError('simulateClick: no element');
        const r = el.getBoundingClientRect();
        ['mousedown', 'mouseup', 'click'].forEach((t) =>
          el.dispatchEvent(
            new MouseEvent(t, {
              bubbles: true,
              cancelable: true,
              clientX: r.left + r.width / 2,
              clientY: r.top + r.height / 2,
              button: 0,
            }),
          ),
        );
      },

      isVisible(el) {
        if (!el || !el.isConnected) return false;
        const r = el.getBoundingClientRect();
        if (r.width <= 0 || r.height <= 0) return false;
        const s = getComputedStyle(el);
        return s.visibility !== 'hidden' && s.display !== 'none';
      },

      isInteractable(el) {
        if (!dom.isVisible(el)) return false;
        let n = el;
        while (n && n !== document) {
          const s = getComputedStyle(n);
          if (s.visibility === 'hidden' || s.display === 'none' || s.pointerEvents === 'none') {
            return false;
          }
          n = n.parentElement || n.ownerDocument?.host;
        }
        const r = el.getBoundingClientRect();
        const pts = [
          [r.left + r.width / 2, r.top + r.height / 2],
          [r.left + r.width * 0.8, r.top + r.height / 2],
          [r.left + r.width * 0.2, r.top + r.height / 2],
          [r.left + r.width / 2, r.top + r.height * 0.3],
          [r.left + r.width / 2, r.top + r.height * 0.7],
        ];
        for (const [x, y] of pts) {
          const top = document.elementFromPoint(x, y);
          if (top === el || el.contains(top)) return true;
        }
        return false;
      },

      waitForElement: util.withAbort(
        async (fnOrSelector, timeout = config.DEFAULT_TIMEOUT, opts = {}) => {
          let {
            root = document,
            subtree = true,
            returnAll = false,
            strict = false,
            stableFor = 16,
            preferLast = false,
            signal = state.abortCtrl?.signal,
          } = opts;
          root = typeof root === 'string' ? document.querySelector(root) || document : root;

          const pass = strict ? dom.isInteractable : dom.isVisible;

          const getCandidates = () => {
            if (typeof fnOrSelector === 'string') {
              const list = root.querySelectorAll(fnOrSelector);
              const arr = list ? Array.from(list) : [];
              return preferLast ? arr.reverse() : arr;
            } else if (typeof fnOrSelector === 'function') {
              const res = fnOrSelector();
              if (!res) return [];
              if (res instanceof Element) return [res];
              if (NodeList.prototype.isPrototypeOf(res) || Array.isArray(res)) {
                const arr = Array.from(res);
                return preferLast ? arr.reverse() : arr;
              }
              return [];
            }
            return [];
          };

          const watchStability = (el, onStable, onAbort) => {
            let stableTimer = null;
            const clearStableTimer = () => {
              if (stableTimer) {
                clearTimeout(stableTimer);
                stableTimer = null;
              }
            };
            const startStableTimerIfPass = () => {
              clearStableTimer();
              if (!el || !el.isConnected) return;
              if (!pass(el)) return;
              if (stableFor <= 32) {
                requestAnimationFrame(() =>
                  requestAnimationFrame(() => {
                    if (el && el.isConnected && pass(el)) onStable(el);
                  }),
                );
                return;
              }
              stableTimer = setTimeout(() => onStable(el), stableFor);
            };

            const mos = [];
            let node = el;
            while (node && node !== document && node.nodeType === 1) {
              const mo = new MutationObserver(startStableTimerIfPass);
              mo.observe(node, {
                attributes: true,
                attributeFilter: ['class', 'style', 'hidden', 'aria-hidden'],
                childList: true,
                subtree: false,
              });
              mos.push(mo);
              node = node.parentElement || node.ownerDocument?.host;
            }

            const ro = new ResizeObserver(startStableTimerIfPass);
            try {
              ro.observe(el);
            } catch { }

            let io = null;
            try {
              io = new IntersectionObserver(startStableTimerIfPass, {
                threshold: [0, 0.01, 0.5, 1],
              });
              io.observe(el);
            } catch { }

            const onTransEnd = startStableTimerIfPass;
            el.addEventListener('transitionend', onTransEnd, { passive: true });
            el.addEventListener('animationend', onTransEnd, { passive: true });

            startStableTimerIfPass();

            const unwatch = () => {
              clearStableTimer();
              mos.forEach((m) => m.disconnect());
              try {
                ro.disconnect();
              } catch { }
              try {
                io && io.disconnect();
              } catch { }
              el.removeEventListener('transitionend', onTransEnd);
              el.removeEventListener('animationend', onTransEnd);
            };

            if (signal) {
              const abortFn = () => {
                unwatch();
                onAbort && onAbort();
              };
              if (signal.aborted) abortFn();
              else signal.addEventListener('abort', abortFn, { once: true });
            }
            return unwatch;
          };

          return await new Promise((resolve, reject) => {
            let settled = false;
            let timeoutId = null;
            let rootObserver = null;
            let unwatchEl = null;

            const resolveOnce = (val) => {
              if (settled) return;
              settled = true;
              try {
                rootObserver && rootObserver.disconnect();
              } catch { }
              try {
                unwatchEl && unwatchEl();
              } catch { }
              if (timeoutId) clearTimeout(timeoutId);
              resolve(val);
            };

            const tryPick = () => {
              if (settled) return;
              if (unwatchEl) {
                unwatchEl();
                unwatchEl = null;
              }
              const list = getCandidates();
              if (returnAll) {
                const okList = list.filter(pass);
                if (okList.length) return resolveOnce(okList);
              } else {
                const el = list.find(pass) || list[0];
                if (el) {
                  unwatchEl = watchStability(
                    el,
                    (stableEl) => resolveOnce(stableEl),
                    () => resolveOnce(false),
                  );
                }
              }
            };

            if (timeout > 0) timeoutId = setTimeout(() => resolveOnce(false), timeout);
            if (signal) {
              if (signal.aborted) return reject(new AbortedError());
              signal.addEventListener('abort', () => reject(new AbortedError()), { once: true });
            }

            tryPick();
            rootObserver = new MutationObserver(() => requestAnimationFrame(tryPick));
            rootObserver.observe(root, {
              childList: true,
              subtree,
              attributes: true,
              attributeFilter: ['class', 'style', 'hidden', 'aria-hidden'],
            });
          });
        },
      ),

      waitGone: util.withAbort(
        (selector, timeout = config.DEFAULT_TIMEOUT, { interval = 200 } = {}) =>
          new Promise((resolve, reject) => {
            const start = Date.now();
            let timer = null;
            const step = () => {
              if (state.abortCtrl?.signal?.aborted) {
                if (timer) clearTimeout(timer);
                return reject(new AbortedError());
              }
              if (!document.querySelector(selector)) {
                if (timer) clearTimeout(timer);
                return resolve(true);
              }
              if (Date.now() - start > timeout) {
                if (timer) clearTimeout(timer);
                return resolve(false);
              }
              timer = setTimeout(step, interval);
            };
            step();
          }),
      ),

      clickIfExists: util.withAbort(
        async (selectorOrFn, timeout = 2000, clickDelay = 200, opt = {}, ignoreError = false) => {
          const s = state.abortCtrl?.signal;
          if (s?.aborted) throw new AbortedError();
          const el = await dom.waitForElement(selectorOrFn, timeout, opt);
          if (!el) {
            if (s?.aborted) throw new AbortedError();
            if (ignoreError) return false;
            throw new TimeoutError(`clickIfExists: "${selectorOrFn}" not found in ${timeout}ms`);
          }
          try {
            if (clickDelay > 0) await util.nextPaint();
            dom.simulateClick(el);
            return el;
          } catch (e) {
            if (ignoreError) return false;
            throw e;
          }
        },
      ),
    };

    const ea = {
      get ctrl() {
        try {
          return getAppMain()
            .getRootViewController()
            .getPresentedViewController()
            .getCurrentViewController()
            .getCurrentController();
        } catch {
          return null;
        }
      },

      get squad() {
        const c = ea.ctrl;
        return c && c._squad ? c._squad : null;
      },

      get slots() {
        const sq = ea.squad;
        return sq ? sq.getPlayers?.() || sq._players || [] : [];
      },

      getFilledCount() {
        return ea.slots.filter((s) => s && s._item && Number(s._item.definitionId) > 0).length;
      },

      getUnassignedController() {
        const ctl = ea.ctrl;
        if (!ctl || !ctl.childViewControllers) return null;
        return Array.from(ctl.childViewControllers).find(
          (c) => c.className && c.className.includes('UTUnassigned') && c.className.includes('Controller'),
        );
      },

      waitController: util.withAbort(
        (name, timeout = config.DEFAULT_TIMEOUT, { pollInterval = 800 } = {}) =>
          new Promise((resolve, reject) => {
            const start = Date.now();
            let timer = null;
            const tick = () => {
              if (state.abortCtrl?.signal?.aborted) {
                clearTimeout(timer);
                return reject(new AbortedError());
              }
              try {
                const ctrl = ea.ctrl;
                if (ctrl?.constructor?.name === name) {
                  clearTimeout(timer);
                  return resolve(ctrl);
                }
              } catch { }
              if (Date.now() - start > timeout) {
                clearTimeout(timer);
                return reject(new TimeoutError(`等待 ${name} 超时`));
              }
              timer = setTimeout(tick, pollInterval);
            };
            tick();
          }),
      ),

      waitLoadingEndOnce: util.withAbort(
        () =>
          new Promise((res) => {
            const shield = typeof gClickShield === 'object' ? gClickShield : null;
            if (shield && !shield.isShowing()) return res();
            EAClickShieldView._onLoadingEndQueue = EAClickShieldView._onLoadingEndQueue || [];
            EAClickShieldView._onLoadingEndQueue.push(res);
          }),
      ),

      waitAllLoadingEnd: util.withAbort(async (stableDelay = 600, timeout = 10000) => {
        const shield = typeof gClickShield === 'object' ? gClickShield : null;
        const start = Date.now();
        while (true) {
          if (shield && shield.isShowing()) {
            await util.sleep(300);
          } else {
            let stable = true;
            const t0 = Date.now();
            while (Date.now() - t0 < stableDelay) {
              if (shield && shield.isShowing()) {
                stable = false;
                break;
              }
              await util.sleep(100);
            }
            if (stable) return true;
          }
          if (Date.now() - start > timeout) {
            log.w('[waitAllLoadingEnd] timeout');
            return false;
          }
        }
      }),

      hookXHR: util.once(() => {
        if (state._xhrHooked) return true;
        state._xhrHooked = true;
        state.page._xhrPromiseList = state._xhrPromiseList;

        const originOpen = XMLHttpRequest.prototype.open;
        XMLHttpRequest.prototype.open = function (m, url, ...args) {
          this._xhrFlag = { method: String(m || '').toUpperCase(), url: String(url || '') };
          return originOpen.apply(this, [m, url, ...args]);
        };

        const originSend = XMLHttpRequest.prototype.send;
        XMLHttpRequest.prototype.send = function (body) {
          this.addEventListener('load', function () {
            const list = state.page._xhrPromiseList || [];
            for (const item of list) {
              if (
                this._xhrFlag &&
                this._xhrFlag.url.includes(item.apiPath) &&
                (!item.method || this._xhrFlag.method === item.method.toUpperCase())
              ) {
                if (this.status === 401) {
                  item.status401Count = (item.status401Count || 0) + 1;
                  if (item.status401Count >= 2 && !item.resolved) {
                    item.resolved = true;
                    clearTimeout(item._timer);
                    item.resolve(null);
                  }
                  continue;
                }
                if (!item.resolved) {
                  item.resolved = true;
                  clearTimeout(item._timer);
                  try {
                    item.resolve(JSON.parse(this.responseText));
                  } catch {
                    item.resolve(null);
                  }
                }
              }
            }
            state.page._xhrPromiseList = (state.page._xhrPromiseList || []).filter((i) => !i.resolved);
          });
          return originSend.apply(this, arguments);
        };

        log.i('[hookXHR] Hooked');
        return true;
      }),

      waitRequest: util.withAbort((apiPath, method, timeout = 15000) => {
        return new Promise((resolve, reject) => {
          ea.hookXHR();
          const item = {
            apiPath,
            method,
            resolve: (v) => {
              cleanup();
              resolve(v);
            },
            status401Count: 0,
            resolved: false,
            _timer: null,
          };

          const cleanup = () => {
            if (item.resolved) return;
            item.resolved = true;
            if (item._timer) clearTimeout(item._timer);
            state.page._xhrPromiseList = (state.page._xhrPromiseList || []).filter((x) => x !== item);
          };

          item._timer = setTimeout(() => {
            if (!item.resolved) item.resolve(null);
          }, timeout);

          if (!Array.isArray(state.page._xhrPromiseList)) state.page._xhrPromiseList = [];
          state.page._xhrPromiseList.push(item);

          const s = state.abortCtrl?.signal;
          if (s) {
            if (s.aborted) {
              cleanup();
              return reject(new AbortedError());
            }
            s.addEventListener(
              'abort',
              () => {
                cleanup();
                reject(new AbortedError());
              },
              { once: true },
            );
          }
        });
      }),

      hookRepositories: util.once(() => {
        try {
          const domain = repositories?.Item;
          if (!state.page.repositories || !domain) return false;
          if (domain._statsHooked) return true;

          const safeUpdate = typeof ui.updateStatsUI === 'function' ? ui.updateStatsUI : () => { };
          const debouncedUpdate = ((fn) => {
            let t = null;
            return () => {
              clearTimeout(t);
              t = setTimeout(fn, 100);
            };
          })(safeUpdate);

          const hook = (obj, methods) => {
            methods.forEach((name) => {
              if (!obj || typeof obj[name] !== 'function' || obj[name]._pandaHooked) return;
              const orig = obj[name];
              obj[name] = function (...args) {
                const ret = orig.apply(this, args);
                try {
                  debouncedUpdate();
                } catch { }
                return ret;
              };
              obj[name]._pandaHooked = true;
            });
          };

          hook(domain, ['add', 'remove', 'update', 'reset', 'set']);
          hook(domain.storage || {}, ['set', 'remove', 'reset', 'add', 'update']);
          hook(domain.club || {}, ['add', 'remove', 'update', 'reset', 'set']);

          domain._statsHooked = true;
          safeUpdate();
          return true;
        } catch (e) {
          log.w('[hookRepositories] failed', e);
          return false;
        }
      }),

      hookEventsPopup: util.once(() => {
        const events = state.page.events;
        if (!events || typeof events.popup !== 'function') return false;
        if (events.popup._isPatched) return true;

        const interceptMap = { 珍贵球员: 44408, 快速任务: 2 };
        const _orig = events.popup;

        events.popup = function (
          title,
          message,
          callback,
          buttonOptions,
          inputPlaceholder,
          inputValue,
          inputEnabled,
          extraNode,
        ) {
          if (typeof title === 'string') {
            for (let key in interceptMap) {
              if (title.includes(key)) {
                const code = interceptMap[key];
                return callback(code);
              }
            }
          }
          return _orig.call(
            this,
            title,
            message,
            callback,
            buttonOptions,
            inputPlaceholder,
            inputValue,
            inputEnabled,
            extraNode,
          );
        };

        events.popup._isPatched = true;
        log.i('[hookEventsPopup] Hooked');
        return true;
      }),

      hookLoadingEnd: util.once(() => {
        if (EAClickShieldView._hookedForLoadingEnd) return true;

        const oldHideShield = EAClickShieldView.prototype.hideShield;
        EAClickShieldView.prototype.hideShield = function () {
          oldHideShield.apply(this, arguments);
          if (!this.isShowing()) {
            if (Array.isArray(EAClickShieldView._onLoadingEndQueue)) {
              for (const fn of EAClickShieldView._onLoadingEndQueue) {
                try {
                  fn();
                } catch { }
              }
              EAClickShieldView._onLoadingEndQueue = [];
            }
          }
        };
        EAClickShieldView._onLoadingEndQueue = [];
        EAClickShieldView._hookedForLoadingEnd = true;
        log.i('[hookLoadingEnd] Hooked');
        return true;
      }),

      ensureHooks() {
        ea.hookXHR();
        ea.hookEventsPopup();
        ea.hookLoadingEnd();
        ea.hookRepositories();
      },
    };

    const sbc = {
      _lastMainFailReason: null,
      getMainFailReason() {
        return sbc._lastMainFailReason || 'need_89';
      },
      sel: {
        rptBtn: () =>
          Array.from(document.querySelectorAll('button.btn-standard.mini.call-to-action')).find(
            (b) => b.textContent.trim() === '重复球员填充阵容',
          ),
        addBtn: '.ut-image-button-control.btnAction.add',
        searchBtn: '.ut-image-button-control.fsu-eligibilitysearch',
        canvas: '.ut-squad-pitch-view--canvas',
      },

      async addPlayer() {
        await dom.waitForElement(sbc.sel.rptBtn, 5000, {
          root: '.ut-navigation-container-view--content',
          strict: true,
        });
        if (!(await dom.waitForElement('.ut-image-button-control.filter-btn.custom-player-add', 5000))) return;

        const maxTries = 3;

        const waitCountStable = async ({
          baseCount,
          stableFor = 1000,
          timeout = 6000,
          poll = 150,
        }) => {
          const t0 = Date.now();
          let last = ea.getFilledCount();
          let lastAt = Date.now();
          while (Date.now() - t0 <= timeout) {
            util.abortPoint();
            await util.sleep(poll);
            const cur = ea.getFilledCount();
            if (cur !== last) {
              last = cur;
              lastAt = Date.now();
            }
            if (last >= baseCount + 1 && Date.now() - lastAt >= stableFor) return true;
          }
          return false;
        };

        for (let attempt = 1; attempt <= maxTries; attempt++) {
          util.abortPoint();
          const baseCount = ea.getFilledCount();

          const ok1 = await dom.clickIfExists(
            sbc.sel.searchBtn,
            5000,
            0,
            { strict: false, stableFor: config.UI.SP_STABLE_FOR },
            true,
          );
          if (!ok1) {
            await dom.clickIfExists(sbc.sel.canvas, 800, 0, { strict: false }, true);
            continue;
          }
          await ea.waitAllLoadingEnd();

          const ok2 = await dom.clickIfExists(
            sbc.sel.addBtn,
            10000,
            0,
            { strict: false, stableFor: config.UI.SP_STABLE_FOR },
            true,
          );
          if (!ok2) {
            await dom.clickIfExists(sbc.sel.canvas, 800, 0, { strict: false }, true);
            continue;
          }
          await ea.waitAllLoadingEnd();
          await dom.clickIfExists(sbc.sel.canvas, 200, 0, { strict: false }, true);

          const ok = await waitCountStable({
            baseCount,
            stableFor: config.UI.SP_FILL_SUCCESS_TIME,
            timeout: 6000,
          });
          if (ok) return;

          if (attempt < maxTries) {
            await dom.clickIfExists(sbc.sel.canvas, 800, 0, { strict: false }, true);
          } else {
            throw new ExpectError('色卡添加失败');
          }
        }
      },

      collectHiRated(items, threshold = config.HIGH_RATED_POPUP_THRESHOLD) {
        if (!Array.isArray(items) || !items.length) return;

        const hi = items.filter(p => p && p.type === 'player' && p.loans === -1 && p.rating >= threshold);
        state._hiRatedPlayers.push(...hi);

        state.page.info.lock ||= [];
        for (const p of hi) {
          if (!p.isDuplicate?.() && p.rating == 99 && !state.page.info.lock.includes(p.id)) {
            state.page.info.lock.push(p.id);
          }
        }
      },


      showHiRatedPopup(title = `本次高分球员(≥${config.HIGH_RATED_POPUP_THRESHOLD})`) {
        const list = state._hiRatedPlayers;
        if (!list.length) return;

        const popupController = new EADialogViewController({
          dialogOptions: [
            { labelEnum: enums.UIDialogOptions.OK }
          ],
          message: '',
          title,
          type: EADialogView.Type.MESSAGE,
        });
        popupController.init();
        popupController.onExit.observe(popupController, (e) => {
          e.unobserve(popupController);
          state._hiRatedPlayers = [];
          try {
            const cur = ea.ctrl;
            if (
              cur &&
              cur.constructor &&
              cur.constructor.name === 'UTStorePackViewController' &&
              cur.getStorePacks
            ) {
              cur.getStorePacks(true);
            }
          } catch { }
        });

        const rootEl = popupController.getView().getRootElement();
        const bodyEl = rootEl.querySelector('.ea-dialog-view--body') || rootEl;
        popupController.getView().getRootElement().style.width = '40rem';

        const box = document.createElement('div');
        box.style.cssText = 'padding:0 1rem 1.5rem 1rem;';

        const players = list
          .slice()
          .sort((a, b) => Number(b.rating || 0) - Number(a.rating || 0))
          .slice(0, 20);

        if (players.length) {
          const listBox = document.createElement('div');
          listBox.className = 'ut-store-reveal-modal-list-view';
          const ul = document.createElement('ul');
          ul.className = 'itemList';
          listBox.appendChild(ul);

          popupController.listRows = players.map((i) => {
            const row = new UTItemTableCellView();
            row.setData(
              i,
              void 0,
              typeof ListItemPriority !== 'undefined' ? ListItemPriority.DEFAULT : void 0,
            );
            row.render();
            ul.appendChild(row.getRootElement());
            return row;
          });

          box.appendChild(listBox);
        }

        const maxRating = players.reduce((m, p) => Math.max(m, Number(p.rating || 0)), 0);
        const summary = document.createElement('div');
        summary.textContent = `本次共 ${list.length} 名 ≥${config.HIGH_RATED_POPUP_THRESHOLD} 分,最高 ${maxRating}。`;
        summary.style.cssText = 'padding-top:.5rem;font-size:1rem;';
        box.appendChild(summary);

        bodyEl.prepend(box);
        try {
          const rootEl = popupController.getView().getRootElement();

          const footer = rootEl.querySelector('.ea-dialog-view--footer') || rootEl;
          const btnGroup =
            footer.querySelector('.ut-st-button-group') ||
            footer.appendChild(Object.assign(document.createElement('div'), { className: 'ut-st-button-group' }));

          if (!btnGroup.querySelector('button[data-donate-btn="1"]')) {
            const donateBtn = document.createElement('button');
            donateBtn.setAttribute('data-donate-btn', '1');
            donateBtn.innerHTML = `
      <span class="btn-text">打赏一下</span>
      <span class="btn-subtext"></span>
    `;


            donateBtn.addEventListener('click', (ev) => {
              ev.preventDefault();
              ev.stopPropagation();

              ui.showDonateModal();
            });

            btnGroup.appendChild(donateBtn);
          }
        } catch (e) {
          console.warn('[donate-btn] append failed:', e);
        }
        if (typeof gPopupClickShield !== 'undefined' && gPopupClickShield?.setActivePopup) {
          gPopupClickShield.setActivePopup(popupController);
        }
      },

      async moveItems(items, pile, controller, { timeout = 15000 } = {}) {
        return await util.withAbort(() =>
          new Promise((resolve, reject) => {
            if (!items || !items.length) return resolve({ success: true, skipped: true });

            let settled = false;
            const done = (err, val) => {
              if (settled) return;
              settled = true;
              clearTimeout(tid);
              err ? reject(err) : resolve(val);
            };

            try {
              services.Item.move(items, pile, true).observe(controller, (e, res) => {
                try { e.unobserve(controller); } catch { }
                if (!res || !res.success) return done(new ExpectError('移动失败'));
                done(null, res);
              });
            } catch (e) {
              return done(e);
            }

            const tid = setTimeout(() => {
              done(new TimeoutError('moveItems超时'));
            }, timeout);
          })
        )();
      },

      getUnassignedItemsSafe: async () => {
        let items = [];
        for (let i = 0; i < 3 && !items.length; i++) {
          util.abortPoint();
          items = repositories.Item.getUnassignedItems();
          await util.sleep(1500);
        }
        return items;
      },

      async handleUnassigned(minRating) {
        const controller = ea.getUnassignedController();
        let items = await sbc.getUnassignedItemsSafe();
        if (!items.length) return;

        sbc.collectHiRated(items, config.HIGH_RATED_POPUP_THRESHOLD);

        const tradablePlayers = items.filter(
          (p) => p.type === 'player' && p.loans === -1 && !p.untradeable,
        );
        const toStorage = items.filter(
          (p) =>
            p.type === 'player' &&
            p.loans === -1 &&
            p.untradeable &&
            p.isDuplicate() &&
            (
              p.rating >= minRating || (p.groups && p.groups.includes(23))
            )
        );
        const clubPlayers = items.filter(
          (p) => p.type === 'player' && p.loans === -1 && p.untradeable && !p.isDuplicate(),
        );

        if (tradablePlayers.length) await sbc.moveItems(tradablePlayers, ItemPile.TRANSFER, controller);
        if (clubPlayers.length) await sbc.moveItems(clubPlayers, ItemPile.CLUB, controller);

        const spaceLeft = config.STORAGE_MAX - repositories.Item.numItemsInCache(ItemPile.STORAGE);
        if (toStorage.length > spaceLeft) {
          alert('仓库已满');
          throw new ExpectError('仓库已满');
        }
        if (toStorage.length) await sbc.moveItems(toStorage, ItemPile.STORAGE, controller);

        await sbc.refreshUnassignedItems(controller);
        await ea.waitAllLoadingEnd();
        await util.sleep(800);

        items = repositories.Item.getUnassignedItems();
        if (!items.length) return true;

        const ellipsisBtn = await dom.waitForElement(() => {
          const root = document.querySelector('.sectioned-item-list:last-of-type');
          if (!root) return null;
          const container = root.querySelector('.ut-section-header-view') || root;
          return container.querySelector('.ut-image-button-control.ellipsis-btn') || null;
        }, 2000);

        if (ellipsisBtn) {
          dom.simulateClick(ellipsisBtn);
          await util.withAbort(async () => {
            const modal = await dom
              .waitForElement('.view-modal-container.form-modal .ut-bulk-action-popup-view', 8000)
              .catch(() => null);
            if (!modal) return;
            const btn = [...modal.querySelectorAll('button')].find((b) => b.textContent.includes('快速出售'));
            if (btn) dom.simulateClick(btn);
            await ea.waitLoadingEndOnce();
          })();
        }
        return true;
      },

      async handleUnassignedDuplicate(minRating) {
        const controller = ea.getUnassignedController();
        const items = await sbc.getUnassignedItemsSafe();
        if (!items.length) return;

        const toStorage = items.filter(
          (p) =>
            p.type === 'player' &&
            p.loans === -1 &&
            p.untradeable &&
            p.isDuplicate() &&
            (
              p.rating >= minRating || (p.groups && p.groups.includes(23))
            )
        );
        const spaceLeft = config.STORAGE_MAX - repositories.Item.numItemsInCache(ItemPile.STORAGE);
        if (toStorage.length > spaceLeft) {
          alert('仓库已满');
          throw new ExpectError('仓库已满');
        }
        await sbc.moveItems(toStorage, ItemPile.STORAGE, controller);
      },

      async refreshUnassignedItems(controller) {
        await util.withAbort(async () => {
          const req = ea.waitRequest('/purchased/items', 'GET', 10000);
          await services.Item.itemDao.itemRepo.unassigned.reset();
          await controller.getUnassignedItems();
          await req;
        })();
      },

      getStoreView() {
        try {
          const vc = ea.ctrl;
          if (vc?.constructor?.name !== 'UTStorePackViewController') return null;
          return vc.getView?.() || null;
        } catch {
          return null;
        }
      },

      getSelectedPackIdFromFilter(view) {
        try {
          const id = view?._fsufilterOption?.id;
          return typeof id === 'number' && id > 1 ? id : null;
        } catch {
          return null;
        }
      },

      getPacksNum() {
        const view = sbc.getStoreView();
        if (!view) return 0;
        const packsMap = view._fsuPacks || {};
        const packId = sbc.getSelectedPackIdFromFilter(view);
        if (!packId || !packsMap[packId]) return 0;
        return packsMap[packId].count || 0;
      },

      async setPackFilterId(filterId, timeout = 2000) {
        const c = ea.ctrl;
        const view = c?.getView?.();
        if (!view || !view._fsufilterOption) throw new ExpectError('FSU筛选不存在');

        const curId = view._fsufilterOption.id;
        if (Number(curId) === Number(filterId)) return { success: true, id: filterId, skipped: true };

        let finished = false;
        return await util.withAbort(
          () =>
            new Promise((resolve, reject) => {
              const onChange = () => {
                if (finished) return;
                finished = true;
                clearTimeout(timer);
                view._fsufilterOption.removeTarget(view._fsufilterOption, EventType.CHANGE);
                resolve({ success: true, id: filterId });
              };
              view._fsufilterOption.addTarget(view._fsufilterOption, onChange, EventType.CHANGE);
              const timer = setTimeout(() => {
                if (finished) return;
                finished = true;
                view._fsufilterOption.removeTarget(view._fsufilterOption, EventType.CHANGE);
                reject(new TimeoutError('设置筛选超时'));
              }, timeout);
              view._fsufilterOption.setIndexById(Number(filterId));
            }),
        )();
      },

      async goToSBCSet(opts = {}) {
        const set = sbc.resolveSBCSetStrict(opts);
        return await sbc.pushSBCSet(set, { timeout: 15000 });
      },

      resolveSBCSetStrict({ setId, categoryName, setName }) {
        const categoriesArr = Object.values(services.SBC.repository.categories._collection || {});
        const setsArr = Object.values(services.SBC.repository.sets._collection || {});
        if (setId != null) {
          const s = setsArr.find((x) => x.id === Number(setId));
          if (!s) throw new ExpectError(`找不到 setId=${setId} 的 SBC`);
          return s;
        }
        let pool = setsArr;
        if (categoryName) {
          const cat = categoriesArr.find((c) => c.name === categoryName);
          if (!cat) throw new ExpectError(`找不到分类: ${categoryName}`);
          const idSet = new Set(cat.setIds || []);
          pool = pool.filter((s) => idSet.has(s.id));
        }
        if (setName) {
          const found =
            pool.find((s) => s.name === setName) || pool.find((s) => (s.name || '').includes(setName));
          if (!found) throw new ExpectError(`找不到名为/包含 ${setName} 的 SBC`);
          return found;
        }
        if (!pool.length) throw new ExpectError('没有可用的SBC');
        return pool[0];
      },

      async pushSBCSet(
        sbcSet,
        { timeout = 15000 } = {}
      ) {
        const controller = ea.ctrl;
        const view = controller?.getView?.();
        if (!controller || !view) throw new ExpectError('[pushSBCSet] 无法获得当前 controller/view');

        const setInteract = (flag) => { try { view.setInteractionState && view.setInteractionState(flag); } catch { } };

        setInteract(false);

        const challengesResp = await new Promise((resolve, reject) => {
          let done = false;
          const t = setTimeout(() => { if (!done) reject(new TimeoutError('requestChallengesForSet超时')); }, timeout);
          services.SBC.requestChallengesForSet(sbcSet).observe(controller, (e, resp) => {
            done = true;
            try { e.unobserve(controller); } catch { }
            clearTimeout(t);
            if (!resp || !resp.success) return reject(new ExpectError('requestChallengesForSet失败'));
            if (!resp.data?.challenges?.length) return reject(new ExpectError('该SBC暂无挑战'));
            resolve(resp);
          });
        });

        const nav = controller.getNavigationController?.();
        if (!nav) { setInteract(true); throw new ExpectError('无导航控制器'); }

        const list = challengesResp.data.challenges || [];

        let target = list.find(c => {
          const remote = (c.status || '').toUpperCase();
          if (remote && remote !== 'COMPLETED') return true;

          try {
            const ch = sbcSet.getChallenge?.(c.id);
            if (ch) {
              const local = (ch.status || '').toUpperCase();
              if (local && local !== 'COMPLETED') return true;
              if (typeof ch.isCompleted === 'function') return !ch.isCompleted();
              if ('completed' in ch) return !ch.completed;
            }
          } catch { }
          return false;
        });

        if (!target) target = list[0];

        const openChallenge = async (c) => {
          await new Promise((resolve, reject) => {
            let done = false;
            const t = setTimeout(() => { if (!done) reject(new TimeoutError('loadChallenge超时')); }, timeout);
            services.SBC.loadChallenge(c).observe(controller, (ee, rr) => {
              done = true;
              try { ee.unobserve(controller); } catch { }
              clearTimeout(t);
              if (!rr || !rr.success) return reject(new ExpectError('loadChallenge失败'));
              resolve();
            });
          });

          try {
            const ch = sbcSet.getChallenge?.(c.id);
            if (ch && !ch.squad) ch.update?.(c);
          } catch { }

          const vc = new UTSBCSquadSplitViewController();
          vc.initWithSBCSet?.(sbcSet, c.id);
          nav.pushViewController?.(vc, true);
        };

        try {
          await openChallenge(target);
        } catch (e) {
          const vc = new UTSBCGroupChallengeSplitViewController();
          vc.initWithSBCSet?.(sbcSet);
          nav.pushViewController?.(vc, true);
          try { nav.setNavigationTitle?.(sbcSet.name); } catch { }
          setInteract(true);
          throw e;
        }

        setInteract(true);
        return true;
      },

      async ensureSBCHub() {
        const c = ea.ctrl;
        if (!c || c.className !== 'UTSBCHubViewController') {
          await dom.clickIfExists('.ut-tab-bar-item.icon-sbc', 10000, 0);
          await ea.waitAllLoadingEnd();
        }
      },

      async goToPacks(reentered = false) {
        const c = ea.ctrl;
        if (c?.className !== 'UTStorePackViewController') {
          await dom.clickIfExists('.ut-tab-bar-item.icon-store', 10000, 0);
          await ea.waitAllLoadingEnd();

          const clickedUnassigned = await dom.clickIfExists(
            () => {
              const tiles = document.querySelectorAll(
                '.tile, .ut-store-tile-view, .store-tile, .tile-container',
              );
              for (const t of tiles) {
                util.abortPoint();
                const h = t.querySelector('h1.tileHeader, .tileHeader');
                if (h && h.textContent.trim() === '未分配的物品') return t;
              }
              return null;
            },
            1500,
            0,
            { strict: false },
            true,
          );

          if (clickedUnassigned) {
            await ea.waitAllLoadingEnd();
            await sbc.handleUnassigned(state.minRating);
            await ea.waitAllLoadingEnd();
            if (!reentered) return sbc.goToPacks(true);
          }

          await dom.clickIfExists(
            () => document.querySelector('.packs-tile, .ut-store-pack-tile-view, .tile.packs'),
            10000,
            0,
            { strict: false },
          );
          await ea.waitAllLoadingEnd();
        }
        return true;
      },

      getPackIdFromSbc(sbcSet) {
        try {
          return Number(sbcSet?.awards?.[0]?.value) || null;
        } catch {
          return null;
        }
      },

      async setPackFilterForSetId(setId, { timeout = 2000, retry = 1 } = {}) {
        const set = sbc.getSbcById(setId);
        if (!set) return false;

        const packId = sbc.getPackIdFromSbc(set);
        if (!packId) return false;

        try {
          await ea.waitController('UTStorePackViewController', 6000);
        } catch {
          await sbc.goToPacks();
        }

        try {
          await sbc.setPackFilterId(packId, timeout);
          return true;
        } catch (e) {
          if (retry <= 0) return false;
          try {
            const ctrl = await ea.waitController('UTStorePackViewController', 6000);
            ctrl?.getStorePacks?.(true);
            await ea.waitAllLoadingEnd();
          } catch { }
          try {
            await sbc.setPackFilterId(packId, timeout);
            return true;
          } catch {
            return false;
          }
        }
      },

      getSbcById(id) {
        id = Number(id);
        return (
          Object.values(services.SBC.repository.sets._collection || {}).find((s) => s.id === id) ||
          null
        );
      },

      async fetchSbcList() {
        await sbc.ensureSBCHub();

        const categories = Object.values(services?.SBC?.repository?.categories?._collection || {});
        const setsDict = services?.SBC?.repository?.sets?._collection || {};

        const wanted = new Set(['升级', "我的最爱"]);
        const idSet = new Set();
        for (const cat of categories) {
          if (wanted.has(cat?.name)) for (const id of (cat?.setIds || [])) idSet.add(id);
        }
        console.log('[idSet]', idSet)
        const filtered = Array.from(idSet)
          .map(id => setsDict[id])
          .filter(Boolean)
          .filter(set =>
            set?.name &&
            !set.name.includes('可交易') &&
            set.repeatabilityMode !== "REFRESH"
          );

        state.FILTERED_SETS = filtered;
        return state.FILTERED_SETS;
      },
      async openPacksOnce(expectedCount = null, depth = 0) {
        const MAX_DEPTH = 1;

        const inferExpectedFromCurrentFilter = () => {
          try {
            const view = sbc.getStoreView();
            const packId = sbc.getSelectedPackIdFromFilter(view);
            if (!packId) return null;

            const sets = Object.values(services.SBC.repository.sets._collection || {});
            const found = sets.find(s => Number(s?.awards?.[0]?.value) === Number(packId));
            if (!found) return null;

            const name = String(found.name || '');
            if (/10\s*名\s*8(?:4|5)\+\s*升级/.test(name)) return 10;
            if (name.includes('TOTW 升级')) return 1;
            if (/阵容变异/.test(name) && /\b89\b/.test(name)) return 50;
          } catch { return null; }
        };

        if (expectedCount == null) {
          expectedCount = inferExpectedFromCurrentFilter();
        }

        await ea.waitController('UTStorePackViewController', 20000);
        await dom.clickIfExists(
          () => {
            const btns = document.querySelectorAll('button.currency.call-to-action');
            return Array.from(btns)
              .reverse()
              .find((b) => {
                const txt = b.querySelector('span.text')?.textContent.trim();
                return txt === '打开' && b.closest('.ut-store-pack-details-view')?.style.display !== 'none';
              });
          },
          20000,
          0,
        );

        await ea.waitController('UTUnassignedItemsSplitViewController', 20000);

        const waitUnassignedCount = async (timeout = 8000) => {
          const t0 = Date.now();
          let last = 0;
          while (Date.now() - t0 < timeout) {
            util.abortPoint();
            const items = await sbc.getUnassignedItemsSafe();
            const c = Array.isArray(items) ? items.length : 0;
            last = c;
            if (c > 0) return c;
            await util.sleep(250);
          }
          return last;
        };

        const count = await waitUnassignedCount(8000);

        if (Number.isFinite(expectedCount) && expectedCount > 0 && count !== expectedCount) {
          await sbc.handleUnassigned(state.minRating);
          await ea.waitAllLoadingEnd();

          if (depth < MAX_DEPTH) {
            await ea.waitController('UTStorePackViewController', 12000).catch(() => null);
            await ea.waitAllLoadingEnd();
            return await sbc.openPacksOnce(expectedCount, depth + 1);
          } else {
            throw new ExpectError(`[openPacksOnce] count mismatch: got ${count}, expect ${expectedCount}`);
          }
        }

        await sbc.handleUnassigned(state.minRating);
        await ea.waitController('UTStorePackViewController');
        await ea.waitAllLoadingEnd();
        return true;
      },
      async loopOnce(retry = 0) {
        if (state.abortCtrl?.signal?.aborted) throw new AbortedError();
        log.i('[loopOnce] start');
        try {
          await ea.waitController('UTStorePackViewController', 20000);
          const ok = await sbc.setPackFilterForLoop();
          if (!ok) return false;

          await dom.clickIfExists(
            () => {
              const btns = document.querySelectorAll('button.currency.call-to-action');
              return Array.from(btns)
                .reverse()
                .find((b) => {
                  const txt = b.querySelector('span.text')?.textContent.trim();
                  return txt === '打开' && b.closest('.ut-store-pack-details-view')?.style.display !== 'none';
                });
            },
            30000,
            0,
          );

          await ea.waitController('UTUnassignedItemsSplitViewController', 20000);
          const getCountOnce = async () => {
            const items = await sbc.getUnassignedItemsSafe();
            return Array.isArray(items) ? items.length : 0;
          };

          const waitUnassignedCount = async (timeout = 8000) => {
            const t0 = Date.now();
            let last = 0;
            while (Date.now() - t0 < timeout) {
              util.abortPoint();
              const c = await getCountOnce();
              last = c;
              if (c > 0) return c;
              await util.sleep(250);
            }
            return last;
          };

          const unassignedCount = await waitUnassignedCount(8000);

          if (unassignedCount !== 10) {
            try {
              await sbc.handleUnassigned(state.minRating);
              await ea.waitAllLoadingEnd();
            } catch (e) {
              if (!isAbort(e)) log.w('[loopOnce] handleUnassigned failed', e);
            }

            return (retry < 1) ? await sbc.loopOnce(retry + 1) : false;
          }

          if (state.enableHandleDuplicate) await sbc.handleUnassignedDuplicate(state.minRating);

          await sbc.goToSBCSet({ setId: Number(state.selectedLoopSetId) });

          const rptBtn = await dom.waitForElement(sbc.sel.rptBtn, 5000, { strict: true });
          ea.squad.removeAllItems()
          if (rptBtn) {
            dom.simulateClick(rptBtn);
            await ea.waitAllLoadingEnd();
          }

          await sbc.addPlayer();
          await dom.clickIfExists(
            () =>
              Array.from(document.querySelectorAll('button.btn-standard.mini.call-to-action')).find(
                (b) => b.textContent.includes('阵容补全'),
              ),
            5000,
            0,
            { strict: true },
          );
          await dom.clickIfExists(
            () =>
              Array.from(document.querySelectorAll('button')).find(
                (b) => b.textContent.trim() === '确定',
              ),
            5000,
            0,
          );

          await ea.waitAllLoadingEnd();

          let hasSwapPlayer = false;
          ea.waitRequest('/item?idList=', 'GET', 15000).then((data) => {
            if (data) hasSwapPlayer = true;
          }).catch(() => { });
          const req = ea.waitRequest('?skipUserSquadValidation=', 'PUT');

          const submit = await dom.clickIfExists(
            'button.ut-squad-tab-button-control.actionTab.right.call-to-action:not(.disabled)',
            5000,
            0,
            { strict: true },
            true,
          );
          if (!submit) {
            log.w('[loopOnce] 提交按钮未出现,本轮失败');
            return false;
          }

          const data = await req;
          if (!data?.grantedSetAwards?.length) return false;

          await ea.waitLoadingEndOnce();
          const ctrl = await ea
            .waitController('UTUnassignedItemsSplitViewController', 12000)
            .catch(() => null);
          if (ctrl) {
            if (hasSwapPlayer) await util.sleep(3000);
            await sbc.handleUnassigned(state.minRating);
          }
          await ea.waitController('UTStorePackViewController');
          await ea.waitAllLoadingEnd();
          log.i('[loopOnce] done');
          return true;
        } catch (e) {
          log.e(e);
          await tasks.stopAsync();
          return false;
        }
      },

      getSelectedLoopPackId() {
        const set = sbc.getSbcById(state.selectedLoopSetId);
        return sbc.getPackIdFromSbc(set);
      },

      async setPackFilterForLoop(retry = 0) {
        if (!state.selectedLoopSetId) return false;
        const packId = sbc.getSelectedLoopPackId();
        if (!packId) return false;

        try {
          await sbc.setPackFilterId(packId, 2000);
          return true;
        } catch (e) {
          log.w('[setPackFilterForLoop] failed', e);
          if (retry >= 1) return false;

          const oldDo = state.selectedDoSbcSetId;
          state.selectedDoSbcSetId = state.selectedLoopSetId;
          try {
            await sbc.doSBCOnce();
          } catch { }
          finally {
            state.selectedDoSbcSetId = oldDo;
          }
          return await sbc.setPackFilterForLoop(retry + 1);
        }
      },

      async doSBCOnce() {
        if (state.abortCtrl?.signal?.aborted) throw new AbortedError();
        await sbc.goToSBCSet({ setId: Number(state.selectedDoSbcSetId) });

        const sbcSet = services.SBC.repository.getSetById(state.selectedDoSbcSetId);
        const sbcTitle = sbcSet.name || '';
        const isTOTW = sbcTitle.includes('TOTW');

        await Promise.all([
          ea.waitController('UTSBCSquadSplitViewController', 20000),
          ea.waitLoadingEndOnce(),
        ]);
        ea.squad.removeAllItems()
        const doFill = async () => {
          if (!isTOTW) await sbc.addPlayer();
          await dom.clickIfExists(
            () =>
              Array.from(document.querySelectorAll('button.btn-standard.mini.call-to-action')).find(
                (b) => b.textContent.includes('阵容补全'),
              ),
            10000,
            0,
          );
          await dom.clickIfExists(
            () =>
              Array.from(document.querySelectorAll('button')).find(
                (b) => b.textContent.trim() === '确定',
              ),
            10000,
            0,
          );
        };

        const tryFastFill = async () => {
          const fastBtn = await util.withAbort(async () => {
            const start = Date.now();
            while (Date.now() - start < 2000) {
              util.abortPoint();
              const btn = Array.from(
                document.querySelectorAll('button.btn-standard.mini.call-to-action'),
              ).find((el) => el.innerText.trim().includes('一键填充'));
              if (btn) return btn;
              await util.sleep(200);
            }
            return null;
          })();
          if (fastBtn) {
            dom.simulateClick(fastBtn);
            return true;
          }
          return false;
        };

        const squadPromise = ea.waitRequest('/squad', 'GET');
        if (isTOTW) await doFill();
        else if (!(await tryFastFill())) await doFill();

        await ea.waitAllLoadingEnd();

        const squad = await squadPromise;
        const threshold = isTOTW ? config.MAX_RATING_TOTW : config.MAX_RATING_NORMAL;
        const hiList = ea.slots
          .map((p) => p?._item || p)
          .filter((it) => it && it.rating >= threshold && it.pile!=10);
        console.log(hiList,ea.slots)
        if (hiList.length > 0) {
          const maxRating = hiList.reduce((m, p) => Math.max(m, Number(p.rating || 0)), 0);
          alert(`检测到高分球员(≥${threshold}),已取消提交。\n数量:${hiList.length},最高:${maxRating}`);
          try { state.abortCtrl?.abort?.(); } catch { }
          setTimeout(() => tasks.stopAsync({ suppressAutoRestartOnce: true, timeout: 2000 }), 0);
          throw new AbortedError('HighRatedInSquad');
        }

        const req = ea.waitRequest('?skipUserSquadValidation=', 'PUT');
        await dom.clickIfExists(
          'button.ut-squad-tab-button-control.actionTab.right.call-to-action:not(.disabled)',
          5000,
          0,
        );
        const data = await req;
        if (!data?.grantedSetAwards?.length && !data?.grantedChallengeAwards?.length) return false;
        await ea.waitAllLoadingEnd();
        log.i('[doSBCOnce] done');
        return true;
      },

      async openPacksForSet(setId, n) {
        n = Number(n) || 0;
        if (n <= 0) return 0;

        const ok = await sbc.goPacksSelectFromSet(setId);
        if (!ok) return 0;

        let opened = 0;
        let spin = 0;

        while (opened < n && !state.abortCtrl?.signal?.aborted) {
          let count = Number(sbc.getPacksNum()) || 0;
          if (count <= 0) {
            try {
              const ctrl = await ea.waitController('UTStorePackViewController', 6000);
              ctrl?.getStorePacks?.(true);
              await ea.waitAllLoadingEnd();
            } catch { }
            count = Number(sbc.getPacksNum()) || 0;

            if (count <= 0) {
              if (++spin >= 2) break;
              await util.sleep(600);
              continue;
            }
          }

          const okOpen = await sbc.openPacksOnce().catch(() => false);
          if (okOpen) {
            opened++;
            try {
              await ea.waitController('UTStorePackViewController', 12000);
              await ea.waitAllLoadingEnd();
            } catch { }
          } else {
            spin++;
            if (spin > 2) break;
            try {
              const ctrl = await ea.waitController('UTStorePackViewController', 6000);
              ctrl?.getStorePacks?.(true);
              await ea.waitAllLoadingEnd();
            } catch { }
          }
        }
        return opened;
      },

      async openPacksAfterDo(setId = state.selectedDoSbcSetId, expected = null) {
        if (!setId) return false;
        if (state.abortCtrl?.signal?.aborted) throw new AbortedError();
        if (expected != null) {
          const opened = await sbc.openPacksForSet(setId, Number(expected) || 0);
          return opened >= (Number(expected) || 0);
        }

        const ok = await sbc.goPacksSelectFromSet(setId);
        if (!ok) return false;

        let count = Number(sbc.getPacksNum()) || 0;
        if (count <= 0) {
          util.abortPoint();
          try {
            const ctrl = await ea.waitController('UTStorePackViewController', 6000);
            ctrl?.getStorePacks?.(true);
            await ea.waitAllLoadingEnd();
            count = Number(sbc.getPacksNum()) || 0;
          } catch { }
        }
        if (count <= 0) return true;

        for (let i = 0; i < count; i++) {
          util.abortPoint();
          await sbc.openPacksOnce();
          try {
            await ea.waitController('UTStorePackViewController', 12000);
            await ea.waitAllLoadingEnd();
          } catch { }
        }
        return true;
      },

      async goPacksSelectFromSet(setId) {
        await sbc.goToPacks();
        const ok = await sbc.setPackFilterForSetId(setId, { timeout: 3000, retry: 1 });
        if (!ok) {
          log.w('[goPacksSelectFromSet] 选择筛选失败', setId);
          return false;
        }
        return true;
      },

      getInventorySummary() {
        try {
          const clubIter = repositories?.Item?.club?.items?.values?.();
          const clubItems = clubIter ? Array.from(clubIter) : [];
          const storageItems = repositories?.Item?.getStorageItems?.() || [];

          const valid = (p) =>
            p?.isPlayer?.() && p.loans === -1 && !p.isEnrolledInAcademy?.() && p.endTime === -1;

          const all = clubItems.concat(storageItems).filter(valid);
          const excludeSet = new Set(state?.page?.info?.lock || []);

          const inRange = (range) =>
            all.reduce((n, p) => {
              const r = p.rating | 0;
              const g = Array.isArray(p?.groups)
                ? p.groups
                : Array.isArray(p?._data?.groups)
                  ? p._data.groups
                  : [];
              if (
                (!range || (r >= range[0] && r <= range[1])) &&
                Array.isArray(g) &&
                !g.includes(23) &&
                !excludeSet.has(p.id)
              ) {
                n++;
              }
              return n;
            }, 0);

          let totw = 0;
          for (const p of all) {
            const g = Array.isArray(p?.groups)
              ? p.groups
              : Array.isArray(p?._data?.groups)
                ? p._data.groups
                : [];
            if (!excludeSet.has(p.id) && g.includes(23)) totw++;
          }

          return {
            totw,
            cntTotw: inRange(config.PRO.TOTW_RANGE),
            cntLow: inRange(config.PRO.LOWBIN_RANGE),
            total: all.length,
          };
        } catch {
          return { totw: 0, cntTotw: 0, cntLow: 0, total: 0 };
        }
      },

      decideAction() {
        const inv = sbc.getInventorySummary();
        if (inv.cntLow < config.PRO.LOWBIN_SAFE_MIN) return 'do_var89';
        if (inv.totw >= config.PRO.TOTW_SAFE_MIN) return 'try_loop';
        if (inv.cntTotw >= config.PRO.TOTW_NEED) return 'do_totw';
        return 'do_var89';
      },

      async ensureAutoTargets() {
        if (!Array.isArray(state.FILTERED_SETS) || !state.FILTERED_SETS.length) {
          try {
            await sbc.fetchSbcList();
          } catch (e) {
            log.w('[auto] fetchSbcList failed', e);
          }
        }

        const list = Array.isArray(state.FILTERED_SETS) ? state.FILTERED_SETS : [];
        const isLoop = (s) => /10\s*名\s*8(?:4|5)\+\s*升级/.test(s?.name || '');

        let loopId = null;
        if (state.selectedLoopSetId != null) {
          const sel = list.find((s) => String(s.id) === String(state.selectedLoopSetId));
          if (sel && isLoop(sel)) loopId = sel.id;
        }

        const totw = list.find((s) => (s?.name || '').includes('TOTW 升级')) || null;
        const var89 = list.find((s) => /阵容变异/.test(s?.name || '') && /\b89\b/.test(s.name)) || null;

        return { loopId, totwId: totw?.id || null, var89Id: var89?.id || null };
      },

      async tryLoopWithBackoff(targets) {
        const loopId = targets?.loopId ? String(targets.loopId) : '';
        if (!loopId) { sbc._lastMainFailReason = 'need_89'; return false; }

        state.selectedLoopSetId = loopId;
        try {
          await sbc.goToPacks();
          const ok = await sbc.loopOnce();
          sbc._lastMainFailReason = ok ? 'ok' : inferMainFailReason();
          return !!ok;
        } catch (e) {
          if (isAbort?.(e)) throw e;
          log.w('[tryLoopOnce] error:', e);
          sbc._lastMainFailReason = inferMainFailReason();
          return false;
        }

        function inferMainFailReason() {
          const inv = sbc.getInventorySummary?.() || {};
          return (inv.totw < (config.PRO?.TOTW_SAFE_MIN ?? 0)) ? 'need_totw' : 'need_89';
        }
      },

      async runSbcNTimesPreferOpen(setId, times = 3, { openAfter = true, totw = false } = {}) {
        util.abortPoint();
        if (!setId) return 0;

        state.selectedDoSbcSetId = String(setId);

        const targetTotal = Math.max(1, Number(times) || 3);

        let existingCount = 0;
        let packId = null;

        try {
          const set = sbc.getSbcById(state.selectedDoSbcSetId);
          packId = sbc.getPackIdFromSbc(set);
          if (!packId) {
            log.w('[runSbcNTimesPreferOpen] 获取 packId 失败,回退到纯做包流程');
            throw new Error('NO_PACK_ID');
          }

          const packs = services?.Store?.storeDao?.storeRepo?.myPacks?._collection || [];
          existingCount = packs.filter(p => String(p.id) === String(packId)).length;

          if (existingCount >= targetTotal) {
            await sbc.goToPacks();
            if (openAfter) await sbc.openPacksAfterDo(state.selectedDoSbcSetId, targetTotal);
            return true;
          }
        } catch (e) {
          if (!isAbort?.(e)) log.w('[runSbcNTimesPreferOpen] 预检查包数量失败或packId缺失,进入做包流程', e);
        }

        if (!totw) await sbc.ensureSBCHub();
        const needToMake = Math.max(0, targetTotal - existingCount);

        let made = 0;
        for (let i = 0; i < needToMake; i++) {
          util.abortPoint();
          try {
            const ok = await sbc.doSBCOnce();
            if (!ok) break;
            made++;
          } catch (e) {
            if (isAbort(e)) throw e;
            if (isHighRatedError?.(e)) throw e;
            break;
          }
          await util.sleep(300 + Math.random() * 400);
        }

        const totalAvailableThisRound = existingCount + made;

        if (openAfter && totalAvailableThisRound > 0) {
          const toOpen = Math.min(targetTotal, totalAvailableThisRound);
          try {
            await sbc.openPacksAfterDo(state.selectedDoSbcSetId, toOpen);
          } catch (e) {
            if (!isAbort?.(e)) log.w('[runSbcNTimesPreferOpen] 开包失败:', e);
          }
        }

        return made > 0 || existingCount >= targetTotal;
      },
      async runVar89NTimes(targets, times = 3, { openAfter = true } = {}) {
        util.abortPoint();
        if (!targets?.var89Id) return 0;
        return sbc.runSbcNTimesPreferOpen(targets.var89Id, times, { openAfter });
      },
      async runTotwNTimes(targets, times = 1, { openAfter = true, totw = true } = {}) {
        util.abortPoint();
        if (!targets?.totwId) return 0;
        return sbc.runSbcNTimesPreferOpen(targets.totwId, times, { openAfter, totw });
      },
      async autoRound() {
        if (state.abortCtrl?.signal?.aborted) throw new AbortedError();

        if (!Array.isArray(state.FILTERED_SETS) || !state.FILTERED_SETS.length) {
          try { await sbc.fetchSbcList(); } catch (e) { log.w('[auto] fetchSbcList failed', e); }
        }
        const targets = await sbc.ensureAutoTargets();
        util.abortPoint();
        state._auxActGuard ??= { lastAct: null, consec: 0 };
        const stepAuxGuard = (act) => {
          if (act === 'do_totw' || act === 'do_var89') {
            const g = state._auxActGuard;
            if (g.lastAct === act) g.consec += 1; else { g.lastAct = act; g.consec = 1; }
            return g.consec <= (config.PRO?.AUX_MAX_CONSEC ?? 2);
          } else {
            state._auxActGuard.lastAct = null;
            state._auxActGuard.consec = 0;
            return true;
          }
        };

        const getMainFailReason = async () => {
          try {
            if (typeof sbc.getMainFailReason === 'function') {
              const r = await sbc.getMainFailReason(targets);
              if (r === 'need_totw' || r === 'need_89') return r;
              if (r === 'ok') return 'ok';
            }
            if (typeof sbc.getLastLoopFailReason === 'function') {
              const r2 = await sbc.getLastLoopFailReason(targets);
              if (r2 === 'need_totw' || r2 === 'need_89') return r2;
              if (r2 === 'ok') return 'ok';
            }
          } catch (e) { log.w('[auto] reason-check error:', e); }
          const inv = sbc.getInventorySummary?.() || {};
          return (inv.totw < (config.PRO?.TOTW_SAFE_MIN ?? 0)) ? 'need_totw' : 'need_89';
        };

        const runVar89 = async () => {
          util.abortPoint();
          if (!targets?.var89Id) { log.i('[auto] 无 var89Id'); return false; }
          if (!stepAuxGuard('do_var89')) { log.w('[auto] do_var89 达到连续上限'); return false; }
          try {
            return !!(await sbc.runVar89NTimes(targets, 3, { openAfter: true }));
          } catch (e) {
            if (isAbort?.(e)) throw e;
            log.w('[auto] runVar89NTimes error:', e);
            return false;
          }
        };

        const runTotw = async () => {
          util.abortPoint();
          if (!targets?.totwId) { log.i('[auto] 无 totwId'); return false; }
          if (!stepAuxGuard('do_totw')) { log.w('[auto] do_totw 达到连续上限'); return false; }
          try {
            return !!(await sbc.runTotwNTimes(targets, 1, { openAfter: true, totw: true }));
          } catch (e) {
            if (isAbort?.(e)) throw e;
            log.w('[auto] runTotwNTimes error:', e);
            return false;
          }
        };

        const runMain = async () => {
          util.abortPoint();
          const loopId = targets?.loopId ? String(targets.loopId) : '';
          if (!loopId) { log.i('[auto] 无可用主线 loopId'); return false; }
          stepAuxGuard('try_loop');
          state.selectedLoopSetId = loopId;
          try {
            await sbc.goToPacks();
            return !!(await sbc.tryLoopWithBackoff(targets));
          } catch (e) {
            if (isAbort?.(e)) throw e;
            log.w('[auto] tryLoop error:', e);
            return false;
          }
        };

        const primary = sbc.decideAction() || 'do_var89';

        if (primary === 'try_loop') {
          util.abortPoint();
          const okMain = await runMain();
          if (okMain) return true;

          let reason = await getMainFailReason();
          if (reason === 'ok') reason = 'need_89';

          if (reason === 'need_totw') {
            const okTotw = await runTotw();
            util.abortPoint();
            if (okTotw) return true;
            const ok89 = await runVar89();
            util.abortPoint();
            if (ok89) return true;
            log.w('[auto] 本回合失败:主线→TOTW→89 全部失败');
            return false;
          } else {
            const ok89 = await runVar89();
            util.abortPoint();
            if (ok89) return true;
            log.w('[auto] 本回合失败:主线→89 全部失败');
            return false;
          }
        }

        if (primary === 'do_totw') {
          const okTotw = await runTotw();
          util.abortPoint();
          if (okTotw) return true;
          const ok89 = await runVar89();
          util.abortPoint();
          if (ok89) return true;
          log.w('[auto] 本回合失败:TOTW→89 全部失败');
          return false;
        }

        const ok89 = await runVar89();
        util.abortPoint();
        if (ok89) return true;
        log.w('[auto] 本回合失败:89 失败(无其他链路可尝试)');
        return false;
      },

      getSbcByNameCandidates(filteredSets = []) {
        const all = Array.isArray(filteredSets) ? filteredSets : [];
        const KW = config?.targetKeywords || [
          '89 阵容变异',
          'TOTW 升级',
          '10 名 85+ 升级',
          '10 名 84+ 升级',
        ];
        const LOOP_KEYS = ['10 名 85+ 升级', '10 名 84+ 升级'];
        const BLACKLIST = config?.blacklistKeywords || [
          '可交易',
          '青铜升级',
          '白银升级',
          '黄金升级',
          '混合联赛升级',
        ];

        const hitAny = (name, arr) => arr.some(k => name.includes(k));
        const kwIndex = (name) => {
          const i = KW.findIndex(k => name.includes(k));
          return i === -1 ? Number.POSITIVE_INFINITY : i;
        };

        const loopCandidates = [];
        const doCandidates = [];

        for (const s of all) {
          if (!s?.name) continue;
          if (hitAny(s.name, BLACKLIST)) continue;

          if (hitAny(s.name, LOOP_KEYS)) loopCandidates.push(s);
          else doCandidates.push(s);
        }

        loopCandidates.sort((a, b) => kwIndex(a.name) - kwIndex(b.name));
        doCandidates.sort((a, b) => kwIndex(a.name) - kwIndex(b.name));

        return { doCandidates, loopCandidates };
      }

    };

    const tasks = {
      startAsync({
        button,
        taskName,
        asyncLoop,
        startText,
        stopText,
        countLimit,
        randomPause,
        pauseEveryRange,
        bigPauseRange,
      }) {
        if (state._starting) return;
        state._starting = true;

        (async () => {
          try {
            if (state.running) {
              if (state.abortCtrl?.signal?.aborted) {
                try {
                  await (state.currentTaskDone || Promise.resolve());
                } catch { }
                state.running = false;
                state.runningTask = '';
                state.abortCtrl = null;
              } else {
                return;
              }
            }

            tasks.resetAutoGuards({ full: true });

            state.running = true;
            state.runningTask = taskName;
            if (['openPacks', 'loop', 'auto'].includes(taskName)) state._hiRatedPlayers = [];

            ui.updateButtonState();
            button.textContent = stopText;

            let _doneResolve;
            state.abortCtrl = new AbortController();
            state.currentTaskDone = new Promise((r) => (_doneResolve = r));
            log.i('start', taskName);

            try {
              let count = 0;
              let pauseEvery = pauseEveryRange
                ? pauseEveryRange[0] + Math.floor(Math.random() * (pauseEveryRange[1] - pauseEveryRange[0] + 1))
                : 0;
              let pauseTime = bigPauseRange
                ? bigPauseRange[0] + Math.floor(Math.random() * (bigPauseRange[1] - bigPauseRange[0] + 1))
                : 0;

              while (state.running && !state.abortCtrl.signal.aborted) {
                util.abortPoint();
                if (state.isStopping) throw new AbortedError();
                if (countLimit != null) {
                  const remainingRaw = typeof countLimit === 'function' ? await Promise.resolve(countLimit()) : countLimit;
                  const remaining = Number(remainingRaw);
                  if (!Number.isFinite(remaining) || remaining <= 0) break;
                }

                const canContinue = await asyncLoop();
                util.abortPoint();
                if (canContinue === false) break;

                count++;
                util.abortPoint();
                if (state.isStopping) throw new AbortedError();
                if (pauseEvery && count >= pauseEvery) {
                  for (let s = Math.floor(pauseTime / 1000); s > 0; s--) {
                    if (!state.running || state.abortCtrl.signal.aborted) break;
                    button.textContent = `等待${s}秒`;
                    await util.sleep(1000);
                  }
                  button.textContent = stopText;
                  pauseEvery = pauseEveryRange
                    ? pauseEveryRange[0] + Math.floor(Math.random() * (pauseEveryRange[1] - pauseEveryRange[0] + 1))
                    : pauseEvery;
                  pauseTime = bigPauseRange
                    ? bigPauseRange[0] + Math.floor(Math.random() * (bigPauseRange[1] - bigPauseRange[0] + 1))
                    : pauseTime;
                  count = 0;
                }

                if (randomPause) {
                  log.i(`等待 ${randomPause[0]} - ${randomPause[1]} 秒`);
                  await util.sleep(randomPause[0] + Math.random() * (randomPause[1] - randomPause[0]));
                }
              }
            } catch (e) {
              if (!isAbort(e)) log.e(`[${taskName}] 中断:`, e?.message);
            } finally {
              state.running = false;
              state.runningTask = '';
              button.textContent = startText;
              ui.updateButtonState();

              if (['openPacks', 'loop', 'auto'].includes(taskName)) {
                sbc.showHiRatedPopup(`本次高分球员(≥${config.HIGH_RATED_POPUP_THRESHOLD})`);
              }
              _doneResolve();
            }
          } finally {
            state._starting = false;
          }
        })();
      },

      resetAutoGuards({ full = true } = {}) {
        state._auxActGuard = { lastAct: null, consec: 0 };

        state._tryLoopFailStrike2 = 0;
        state._tryLoopFbUsedForStrike = false;

        if (full) {
          state._loopFailStrike = 0;
          state._lastLoopFailAt = 0;
        }
      },
      _stopPromise: null,
      async stopAsync({ timeout = 6000, suppressAutoRestartOnce = false, minHold = 300 } = {}) {
        if (tasks._stopPromise) return tasks._stopPromise;

        tasks._stopPromise = (async () => {
          const wasAuto = state.runningTask === 'auto';

          try {
            if (!state.isStopping) {
              state.isStopping = true;
              state.running = false;
              ui.updateButtonState();
            }
            try { state.abortCtrl?.abort(); } catch { }

            const hold = new Promise((r) => setTimeout(r, minHold));
            const done = state.currentTaskDone || Promise.resolve();

            const wait = Promise.race([
              done,
              new Promise((_, rej) => setTimeout(() => rej(new Error('stop timeout')), timeout)),
            ]);

            try { await Promise.all([wait, hold]); }
            catch (e) { log.w('[stopAsync] timeout/err, force cleanup'); }

            state.running = false;
            state.runningTask = '';
            state.abortCtrl = null;
            state._tryLoopFailStrike2 = 0;
            tasks.resetAutoGuards({ full: true });
          } finally {
            state.isStopping = false;
            ui.resetButtonText();
            ui.updateButtonState();
            if (wasAuto && state.autoRestartOnStop && !suppressAutoRestartOnce) {
              try { recover.triggerAndReload('pro_stopped'); } catch { }
            }
            tasks._stopPromise = null;
          }
        })();

        return tasks._stopPromise;
      },


      startLoop() {
        tasks.startAsync({
          button: state.btn.loop,
          taskName: 'loop',
          asyncLoop: sbc.loopOnce,
          startText: '永动机',
          stopText: '停止循环',
          randomPause: [500, 1000],
          pauseEveryRange: [35, 45],
          bigPauseRange: [20000, 30000],
        });
      },

      startOpen() {
        tasks.startAsync({
          button: state.btn.open,
          taskName: 'openPacks',
          asyncLoop: sbc.openPacksOnce,
          startText: '开包',
          stopText: '停止开包',
          countLimit: () => sbc.getPacksNum(),
          randomPause: [1000, 1500],
        });
      },

      startDoSBC() {
        tasks.startAsync({
          button: state.btn.do,
          taskName: 'doSBC',
          asyncLoop: sbc.doSBCOnce,
          startText: '猛猛干',
          stopText: '不干了',
          randomPause: [500, 1000],
          pauseEveryRange: [35, 45],
          bigPauseRange: [20000, 30000],
        });
      },

      startAuto() {
        tasks.startAsync({
          button: state.btn.auto,
          taskName: 'auto',
          asyncLoop: sbc.autoRound,
          startText: '永动机Pro',
          stopText: '停止Pro',
          randomPause: [500, 900],
        });
      },
    };

    const ui = {
      injectStyle: util.once(() => {
        GM_addStyle(`
.panda-modal-mask{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:100000;display:flex;align-items:center;justify-content:center}
.panda-modal{width:720px;max-width:calc(100vw - 40px);max-height:calc(100vh - 40px);background:#1f1f1f;border:1px solid #333;border-radius:12px;box-shadow:0 10px 30px rgba(0,0,0,.5);color:#eee;overflow:hidden;display:flex;flex-direction:column;font-family:inherit}
.panda-modal__hd{padding:12px 16px;background:#252525;border-bottom:1px solid #333;display:flex;align-items:center;justify-content:space-between}
.panda-modal__title{font-weight:700;font-size:15px}
.panda-modal__close{border:none;background:transparent;color:#bbb;cursor:pointer;font-size:18px;line-height:1}
.panda-modal__bd{padding:14px;display:grid;grid-template-columns:1fr 1fr;gap:12px;overflow:auto;flex:1;min-height:260px}
.panda-col{background:#171717;border:1px solid #333;border-radius:10px;padding:10px;display:flex;flex-direction:column}
.panda-col__title{font-size:13px;font-weight:700;color:#fff;margin-bottom:8px;display:flex;align-items:center;gap:8px}
.panda-col__tip{font-size:12px;color:#aaa}
.panda-col__list{display:flex;flex-direction:column;gap:6px;overflow:auto}
.panda-row{display:flex;gap:8px;align-items:center;color:#ddd;font-size:13px}
.panda-row input[type="radio"]{accent-color:#ffc800;cursor:pointer}
.panda-modal__ft{padding:10px 14px;border-top:1px solid #333;display:flex;gap:10px;justify-content:flex-end;background:#202020}
.panda-btn{min-width:80px;height:32px;border-radius:8px;border:1px solid #555;cursor:pointer;font-weight:600;background:#2b2b2b;color:#ddd}
.panda-btn--ok{background:#ffd76a;color:#222;border-color:#caa84b}
#sbc-panel{position:fixed;bottom:20px;right:20px;z-index:99999;display:flex;flex-direction:column;align-items:center;gap:12px;min-width:110px;padding:16px 8px 10px 8px;background:rgba(30,30,30,0.96);border-radius:16px;box-shadow:0 4px 24px #0005;font-family:inherit}
.sbc-input{width:70px;height:30px;font-size:18px;text-align:center;border-radius:8px;border:1px solid #ccc;margin-bottom:2px;background:#252525;color:#ffc800}
.sbc-btn{width:90px;height:38px;border:none;outline:none;cursor:pointer;border-radius:10px;box-shadow:0 2px 8px #0002;font-weight:bold;transition:all .15s;user-select:none}
.sbc-btn--open{background:#ffa600;color:#333}
.sbc-btn--open:hover{background:#ffd700}
.sbc-btn--loop{background:#ffe066;color:#333}
.sbc-btn--loop:hover{background:#fffeb2}
.sbc-btn--do{background:#ff6347;color:#fff}
.sbc-btn--do:hover{background:#fd8578}
.sbc-btn--assign{width:90px;height:38px;border-radius:8px;background:#5bc0de;color:#111;font-weight:bold}
.sbc-btn--assign:hover{background:#74d5f1}
.sbc-btn--settings{background-color:#4caf50 !important;color:#fff !important;border:1px solid #3e8e41 !important}
.sbc-btn--settings:hover{background-color:#45a049 !important}
.sbc-btn--donate{background:#ff9f0a !important;color:#111 !important;border:1px solid #d67f00 !important}
.sbc-btn--donate:hover{background:#ffb23c !important}
.sbc-chk{width:14px;height:14px;margin:2px 0 0 0;border-radius:3px;cursor:pointer;accent-color:#ffc800}
.sbc-chklabel{color:#fff;font-size:13px;display:flex;align-items:flex-start;gap:6px;cursor:pointer;max-width:80px;line-height:1.3}
#panda-dock{position:fixed;top:140px;right:0;z-index:99998;display:flex;align-items:stretch;transform:translateX(calc(100% - 28px));transition:transform .18s ease,opacity .12s ease}
#panda-dock.left{left:0;right:auto;transform:translateX(calc(-100% + 28px))}
#panda-dock.expanded.right,#panda-dock.expanded.left{transform:translateX(0)}
#panda-dock.dragging{transition:none;opacity:.96}
#panda-dock .dock-handle{width:38px;min-height:132px;background:#1e1e1e;border:1px solid #333;border-right:none;border-radius:12px 0 0 12px;box-shadow:0 4px 24px #0005;display:flex;align-items:center;justify-content:center;cursor:pointer;user-select:none;color:#ffc800;font-weight:700;writing-mode:vertical-rl;text-orientation:mixed;letter-spacing:2px}
#panda-dock.left .dock-handle{border-right:1px solid #333;border-left:none;border-radius:0 12px 12px 0}
#panda-dock .dock-panel{background:rgba(30,30,30,.96);border:1px solid #333;border-radius:12px;box-shadow:0 4px 24px #0005;padding:12px;display:flex;flex-direction:column;gap:10px;min-width:120px}
#panda-dock #sbc-panel{all:unset;display:flex;flex-direction:column;align-items:center;gap:12px;min-width:110px}
#panda-dock .dock-foot{display:flex;flex-direction:column;gap:8px;justify-content:center;align-items:center;font-size:12px;color:#bbb;margin-top:6px}
#panda-dock .dock-toggle{cursor:pointer;user-select:none;padding:4px 6px;border:1px solid #555;border-radius:8px;background:#2b2b2b}
.sbc-stats{display:flex;flex-direction:column;align-items:center;gap:6px}
.sbc-stat-card{width:90px;height:38px;background:#141414;border:1px solid #2a2a2a;border-radius:8px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:2px}
.sbc-stat-label{font-size:11px;color:#9aa;line-height:1}
.sbc-stat-value{font-weight:800;font-size:14px;color:#ffd76a;line-height:1}
.panda-donate-mask{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:100001;display:flex;align-items:center;justify-content:center}
.panda-donate{width:560px;max-width:calc(100vw - 40px);background:#1f1f1f;border:1px solid #333;border-radius:12px;box-shadow:0 10px 30px rgba(0,0,0,.5);color:#eee;overflow:hidden}
.panda-donate__hd{padding:12px 16px;background:#252525;border-bottom:1px solid #333;display:flex;align-items:center;justify-content:space-between}
.panda-donate__title{font-weight:700;font-size:15px}
.panda-donate__close{border:none;background:transparent;color:#bbb;cursor:pointer;font-size:18px;line-height:1}
.panda-donate__bd{padding:16px;display:grid;grid-template-columns:1fr 1fr;gap:14px}
.panda-donate__col{background:#171717;border:1px solid #333;border-radius:10px;padding:10px;display:flex;flex-direction:column;gap:8px;align-items:center;justify-content:center}
.panda-donate__col h4{margin:0;font-size:14px;color:#ffd76a}
.panda-donate__qr{width:220px;max-width:100%;height:auto;border-radius:8px;border:1px solid #2a2a2a;background:#111;object-fit:contain}
.panda-donate__ft{padding:10px 14px;border-top:1px solid #333;display:flex;gap:10px;justify-content:flex-end;background:#202020}
.dock-toggle.dock-guide{border-color:#3f58d1;background:#2b2b2b;color:#cfd7ff}
.dock-toggle.dock-guide:hover{filter:brightness(1.08)}
.SBCSquadPanel .ut-sbc-challenge-details-view{overflow-y:initial !important;margin-bottom:20px !important}
        `);
      }),

      updateStatsUI() {
        try {
          const clubItemsIter = repositories?.Item?.club?.items?.values?.();
          const clubItems = clubItemsIter ? Array.from(clubItemsIter) : [];
          const storageItems = repositories?.Item?.getStorageItems?.() || [];

          const isValid = (p) =>
            p?.isPlayer?.() && p.loans === -1 && !p.isEnrolledInAcademy?.() && p.endTime === -1;

          const club = clubItems.filter(isValid);
          const storage = storageItems.filter(isValid);
          const all = club.concat(storage);

          const excludeIds = state.page.info?.lock || [];
          const excludeSet = new Set(excludeIds);

          const countPlayersInRange = (players, range, excludeSet) => {
            const [min, max] = range;
            return players.reduce((n, p) => {
              if (
                (!range || (p.rating >= min && p.rating <= max)) &&
                Array.isArray(p.groups) &&
                !p.groups.includes(23) &&
                !excludeSet.has(p.id)
              ) {
                return n + 1;
              }
              return n;
            }, 0);
          };

          for (const cfg of config.RANGES) {
            let val = 0;
            let id;
            if (cfg.type === 'all') {
              val = countPlayersInRange(all, cfg.range, excludeSet);
              id = `stat-${cfg.range[0]}-${cfg.range[1]}`;
            } else {
              val = storage.length;
              id = 'stat-storage';
            }
            const node = document.getElementById(id);
            if (node) node.textContent = String(val);
          }
        } catch (err) {
          log.w('[updateStatsUI] fail', err);
        }
      },
      showDonateModal() {
        const alipay = DONATE.ALIPAY_QR;
        const wechat = DONATE.WECHAT_QR;
        if (!alipay && !wechat) {
          alert('尚未设置收款码');
          return;
        }

        const mask = document.createElement('div');
        mask.className = 'panda-donate-mask';

        const box = document.createElement('div');
        box.className = 'panda-donate';
        box.innerHTML = `
    <div class="panda-donate__hd">
      <div class="panda-donate__title">感谢支持 🧡</div>
      <button class="panda-donate__close">×</button>
    </div>
    <div class="panda-donate__bd">
      <div class="panda-donate__col">
        <h4>支付宝</h4>
        ${alipay ? `<img class="panda-donate__qr" src="${alipay}" alt="Alipay QR">` : '<div style="color:#888;font-size:12px">未配置</div>'}
      </div>
      <div class="panda-donate__col">
        <h4>微信</h4>
        ${wechat ? `<img class="panda-donate__qr" src="${wechat}" alt="WeChat QR">` : '<div style="color:#888;font-size:12px">未配置</div>'}
      </div>
    </div>
    <div class="panda-donate__ft">
      <button class="panda-btn panda-btn--ok">关闭</button>
    </div>
  `;

        const close = () => { try { document.body.removeChild(mask); } catch { } };

        box.querySelector('.panda-donate__close').onclick = close;
        box.querySelector('.panda-btn--ok').onclick = close;
        mask.addEventListener('click', (e) => { if (e.target === mask) close(); });

        mask.appendChild(box);
        document.body.appendChild(mask);
      },
      updateButtonState() {
        const set = (btn, text, disabled) => {
          if (!btn) return;
          if (text != null) btn.textContent = text;
          if (typeof disabled !== 'undefined') btn.disabled = !!disabled;
        };

        if (state.isStopping) {
          set(state.btn.loop, '停止中…', true);
          set(state.btn.open, '停止中…', true);
          set(state.btn.do, '停止中…', true);
          set(state.btn.auto, '停止中…', true);
          return;
        }

        if (!state.running) {
          set(state.btn.loop, '永动机', false);
          set(state.btn.open, '开包', false);
          set(state.btn.do, '猛猛干', false);
          set(state.btn.auto, '永动机Pro', false);
          return;
        }

        if (state.runningTask === 'loop') {
          set(state.btn.loop, '停止循环', false);
          set(state.btn.open, null, true);
          set(state.btn.do, null, true);
          set(state.btn.auto, null, true);
        } else if (state.runningTask === 'openPacks') {
          set(state.btn.open, '停止开包', false);
          set(state.btn.loop, null, true);
          set(state.btn.do, null, true);
          set(state.btn.auto, null, true);
        } else if (state.runningTask === 'doSBC') {
          set(state.btn.do, '不干了', false);
          set(state.btn.loop, null, true);
          set(state.btn.open, null, true);
          set(state.btn.auto, null, true);
        } else if (state.runningTask === 'auto') {
          set(state.btn.auto, '停止Pro', false);
          set(state.btn.loop, null, true);
          set(state.btn.open, null, true);
          set(state.btn.do, null, true);
        }
      },

      resetButtonText() {
        if (state.btn.loop) state.btn.loop.textContent = '永动机';
        if (state.btn.open) state.btn.open.textContent = '开包';
        if (state.btn.do) state.btn.do.textContent = '猛猛干';
        if (state.btn.auto) state.btn.auto.textContent = '永动机Pro';
      },

      async ensureConfigThenAssign(kind, { autostart = true } = {}) {
        if (!state.FILTERED_SETS.length) {
          alert('未获取配置,点TMD获取配置。网页需要设置成简体中文,是不是中国人?');
          return;
        }
        await sbc.fetchSbcList();
        const pick = await ui.SBCListPop(
          state.FILTERED_SETS,
          state.selectedDoSbcSetId,
          state.selectedLoopSetId,
          kind || null,
        );
        if (!pick) return;

        state.selectedDoSbcSetId = pick.doId;
        state.selectedLoopSetId = pick.loopId;

        if (!autostart) return { doId: state.selectedDoSbcSetId, loopId: state.selectedLoopSetId };

        if (kind === 'do' && pick.doId) {
          if (state.running && state.runningTask !== 'doSBC') await tasks.stopAsync({ suppressAutoRestartOnce: true });
          if (!state.running) {
            await sbc.ensureSBCHub();
            tasks.startDoSBC();
          }
        } else if (kind === 'loop' && pick.loopId) {
          if (state.running && state.runningTask !== 'loop') await tasks.stopAsync({ suppressAutoRestartOnce: true });
          if (!state.running) {
            await sbc.goToPacks();
            tasks.startLoop();
          }
        }

        return { doId: state.selectedDoSbcSetId, loopId: state.selectedLoopSetId };
      },

      SBCListPop(filteredSets, currentDoId, currentLoopId, preferColumn = null) {
        const el = (tag, className, props = {}) => {
          const node = document.createElement(tag);
          if (className) node.className = className;
          Object.assign(node, props);
          return node;
        };

        const buildRadioList = (items, name, currentId) => {
          const listBox = el('div', 'panda-col__list');
          items.forEach((s) => {
            const row = el('label', 'panda-row');
            const r = el('input');
            r.type = 'radio';
            r.name = name;
            r.value = String(s.id);
            r.checked = String(currentId || '') === String(s.id);
            const span = el('span');
            span.textContent = s.name;
            row.append(r, span);
            listBox.appendChild(row);
          });
          return listBox;
        };

        const buildColumn = ({
          title,
          tipHTML = '',
          name,
          items,
          currentId,
          highlight = false,
          clearText = '清除绑定',
        }) => {
          const col = el('div', 'panda-col' + (highlight ? ' panda-col--highlight' : ''));
          const titleEl = el('div', 'panda-col__title');
          titleEl.innerHTML = tipHTML ? `${title} ${tipHTML}` : title;

          const listBox = buildRadioList(items, name, currentId);
          const spacer = document.createElement('div');
          spacer.style.height = '8px';

          const clearBtn = el('button', 'panda-btn', { textContent: clearText });
          clearBtn.onclick = () => {
            [...listBox.querySelectorAll('input[type="radio"]')].forEach((x) => (x.checked = false));
          };

          col.append(titleEl, listBox, spacer, clearBtn);
          return col;
        };

        const { doCandidates, loopCandidates } = sbc.getSbcByNameCandidates(filteredSets);

        const mask = el('div', 'panda-modal-mask');
        const modal = el('div', 'panda-modal');
        mask.appendChild(modal);

        const hd = el('div', 'panda-modal__hd');
        const title = el('div', 'panda-modal__title', { textContent: '分配SBC' });
        const btnX = el('button', 'panda-modal__close');
        btnX.innerHTML = '×';
        hd.append(title, btnX);
        modal.appendChild(hd);

        const bd = el('div', 'panda-modal__bd');
        const colDo = buildColumn({
          title: '猛猛干(单选)',
          name: 'assign-do',
          items: doCandidates,
          currentId: currentDoId,
          highlight: preferColumn === 'do',
        });
        const colLoop = buildColumn({
          title: '永动机(仅 10x85 / 10x84)',
          tipHTML: '<span class="panda-col__tip"></span>',
          name: 'assign-loop',
          items: loopCandidates,
          currentId: currentLoopId,
          highlight: preferColumn === 'loop',
        });
        bd.append(colDo, colLoop);
        modal.appendChild(bd);

        const ft = el('div', 'panda-modal__ft');
        const btnCancel = el('button', 'panda-btn', { textContent: '取消' });
        const btnOK = el('button', 'panda-btn panda-btn--ok', { textContent: '确定' });
        ft.append(btnCancel, btnOK);
        modal.appendChild(ft);

        const autoStartName =
          preferColumn === 'do' ? 'assign-do' : preferColumn === 'loop' ? 'assign-loop' : null;
        if (autoStartName)
          bd.querySelectorAll(`input[name="${autoStartName}"]`).forEach((r) =>
            r.addEventListener('change', () => btnOK.click(), { once: true }),
          );

        return new Promise((resolve) => {
          const close = (res) => {
            try {
              document.body.removeChild(mask);
            } catch { }
            resolve(res);
          };

          const onKey = (e) => {
            if (e.key === 'Escape') {
              e.preventDefault();
              close(null);
            } else if (e.key === 'Enter') {
              e.preventDefault();
              btnOK.click();
            }
          };

          btnX.onclick = () => close(null);
          btnCancel.onclick = () => close(null);
          mask.addEventListener('click', (e) => {
            if (e.target === mask) close(null);
          });
          document.addEventListener('keydown', onKey);

          btnOK.onclick = () => {
            document.removeEventListener('keydown', onKey);
            const pick = (name) => {
              const r = modal.querySelector(`input[name="${name}"]:checked`);
              return r ? r.value : null;
            };
            close({ doId: pick('assign-do'), loopId: pick('assign-loop') });
          };

          document.body.appendChild(mask);
          setTimeout(() => btnOK.focus(), 0);
        });
      },

      openSbcSettings() {
        const cur = {
          SP_STABLE_FOR: Number(config.UI.SP_STABLE_FOR) || 300,
          SP_FILL_SUCCESS_TIME: Number(config.UI.SP_FILL_SUCCESS_TIME) || 1000,
          HIGH_RATED_POPUP_THRESHOLD: Number(config.HIGH_RATED_POPUP_THRESHOLD) || 98,
          MAX_RATING_TOTW: Number(config.MAX_RATING_TOTW) || 87,
          MAX_RATING_NORMAL: Number(config.MAX_RATING_NORMAL) || 98,
          TOTW_SAFE_MIN: Number(config.PRO.TOTW_SAFE_MIN) || 3,
        };

        const mask = document.createElement('div');
        mask.className = 'panda-modal-mask';

        const modal = document.createElement('div');
        modal.className = 'panda-modal';
        mask.appendChild(modal);

        const hd = document.createElement('div');
        hd.className = 'panda-modal__hd';
        hd.innerHTML = `
          <div class="panda-modal__title">参数设置</div>
          <button class="panda-modal__close">×</button>
        `;

        const bd = document.createElement('div');
        bd.className = 'panda-modal__bd';
        bd.style.gridTemplateColumns = '1fr';

        const row = (label, id, val, hint = '', min = 0, max = 99999) => `
          <div class="panda-col">
            <div class="panda-col__title">${label}</div>
            <div style="display:flex;gap:8px;align-items:center;">
              <input id="${id}" type="number" value="${val}" min="${min}" max="${max}"
                     style="width:140px;height:30px;border-radius:8px;border:1px solid #555;background:#252525;color:#ffd76a;text-align:center;">
              ${hint ? `<div class="panda-col__tip">${hint}</div>` : ''}
            </div>
          </div>
        `;

        bd.innerHTML = [
          row(
            '色卡按钮稳定检测 (ms)',
            'in-SP_STABLE_FOR',
            cur.SP_STABLE_FOR,
            '如果周黑添加失败可适当调大该数值',
            0,
            5000,
          ),
          row(
            '高分弹窗阈值',
            'in-HIGH_RATED_POPUP_THRESHOLD',
            cur.HIGH_RATED_POPUP_THRESHOLD,
            '≥高分球员展示阈值,自动滚卡/开包结束以后展示高分球员弹窗',
            85,
            99,
          ),
          row('周黑保护阈值', 'in-MAX_RATING_TOTW', cur.MAX_RATING_TOTW, '做周黑升级时检测到 ≥该分数则取消提交', 80, 99),
          row('普通SBC保护阈', 'in-MAX_RATING_NORMAL', cur.MAX_RATING_NORMAL, '普通SBC检测到 ≥该分数则取消提交', 80, 99),
          // row(
          //   '永动机Pro周黑/TOTS判定数量',
          //   'in-TOTW_SAFE_MIN',
          //   cur.TOTW_SAFE_MIN,
          //   '周黑/TOTS低于该数量自动做周黑',
          //   0,
          //   50,
          // ),
        ].join('');

        const ft = document.createElement('div');
        ft.className = 'panda-modal__ft';
        ft.innerHTML = `
          <button class="panda-btn" id="btn-cancel">取消</button>
          <button class="panda-btn panda-btn--ok" id="btn-save">保存</button>
        `;

        modal.append(hd, bd, ft);
        document.body.appendChild(mask);

        const close = () => {
          try {
            document.body.removeChild(mask);
          } catch { }
        };

        hd.querySelector('.panda-modal__close').onclick = close;
        ft.querySelector('#btn-cancel').onclick = close;

        ft.querySelector('#btn-save').onclick = () => {
          const valNum = (id, def, min, max) => {
            const el = document.getElementById(id);
            if (!el) return def;
            const raw = (el.value ?? '').toString().trim();
            const n = Number(raw);
            if (!Number.isFinite(n)) return def;
            return Math.max(min, Math.min(max, Math.floor(n)));
          };

          const next = {
            SP_STABLE_FOR: valNum('in-SP_STABLE_FOR', cur.SP_STABLE_FOR, 0, 5000),
            SP_FILL_SUCCESS_TIME: valNum('in-SP_FILL_SUCCESS_TIME', cur.SP_FILL_SUCCESS_TIME, 0, 10000),
            HIGH_RATED_POPUP_THRESHOLD: valNum('in-HIGH_RATED_POPUP_THRESHOLD', cur.HIGH_RATED_POPUP_THRESHOLD, 80, 99),
            MAX_RATING_TOTW: valNum('in-MAX_RATING_TOTW', cur.MAX_RATING_TOTW, 80, 99),
            MAX_RATING_NORMAL: valNum('in-MAX_RATING_NORMAL', cur.MAX_RATING_NORMAL, 80, 99),
            // TOTW_SAFE_MIN: valNum('in-TOTW_SAFE_MIN', cur.TOTW_SAFE_MIN, 0, 50),
          };

          config.UI.SP_STABLE_FOR = next.SP_STABLE_FOR;
          config.UI.SP_FILL_SUCCESS_TIME = next.SP_FILL_SUCCESS_TIME;
          config.HIGH_RATED_POPUP_THRESHOLD = next.HIGH_RATED_POPUP_THRESHOLD;
          config.MAX_RATING_TOTW = next.MAX_RATING_TOTW;
          config.MAX_RATING_NORMAL = next.MAX_RATING_NORMAL;
          // config.PRO.TOTW_SAFE_MIN = next.TOTW_SAFE_MIN;

          GM_setValue(CFG_KEYS.SP_STABLE_FOR, next.SP_STABLE_FOR);
          GM_setValue(CFG_KEYS.SP_FILL_SUCCESS_TIME, next.SP_FILL_SUCCESS_TIME);
          GM_setValue(CFG_KEYS.HIGH_RATED_POPUP_THRESHOLD, next.HIGH_RATED_POPUP_THRESHOLD);
          GM_setValue(CFG_KEYS.MAX_RATING_TOTW, next.MAX_RATING_TOTW);
          GM_setValue(CFG_KEYS.MAX_RATING_NORMAL, next.MAX_RATING_NORMAL);
          // GM_setValue(CFG_KEYS.TOTW_SAFE_MIN, next.TOTW_SAFE_MIN);

          try {
            const tip = document.createElement('div');
            tip.textContent = '已保存';
            tip.style.cssText =
              'position:fixed;bottom:22px;right:26px;background:#2b2b2b;color:#ffd76a;padding:8px 10px;border:1px solid #555;border-radius:8px;z-index:100000;';
            document.body.appendChild(tip);
            setTimeout(() => { try { document.body.removeChild(tip); } catch { } }, 1200);
          } catch { }

          close();
        };
      },

      initDock() {
        if (document.getElementById('panda-dock')) return;
        ui.injectStyle();

        const el = (tag, className, props = {}) => {
          const node = document.createElement(tag);
          if (className) node.className = className;
          Object.assign(node, props);
          return node;
        };

        const panel = el('div');
        panel.id = 'sbc-panel';

        const inputBox = el('input', 'sbc-input', {
          type: 'number',
          value: state.minRating,
          min: 80,
          max: 99,
          title: '最低评分阈值',
        });
        inputBox.onchange = () => {
          const v = Math.floor(Number(inputBox.value));
          if (Number.isFinite(v) && v >= 45 && v <= 99) {
            state.minRating = v;
            GM_setValue(config.MIN_RATING_KEY, v);
          } else {
            inputBox.value = state.minRating;
          }
        };

        const mkBtn = (text, cls, id) => el('button', `sbc-btn ${cls}`, { textContent: text, id });

        const statsBox = el('div', 'sbc-stats');
        const mkCard = (cfg) => {
          const card = document.createElement('div');
          card.className = 'sbc-stat-card';
          let label;
          let id;

          if (cfg.type === 'storage') {
            label = '仓库';
            id = 'stat-storage';
          } else {
            label = `${cfg.range[0]}–${cfg.range[1]}`;
            id = `stat-${cfg.range[0]}-${cfg.range[1]}`;
          }

          card.innerHTML = `
            <div class="sbc-stat-label">${label}</div>
            <div class="sbc-stat-value" id="${id}">0</div>
          `;
          return card;
        };
        for (const cfg of config.RANGES) statsBox.appendChild(mkCard(cfg));

        state.btn.do = mkBtn('猛猛干', 'sbc-btn--do', 'btn-do-sbc');
        state.btn.do.onclick = async () => {
          if (state.isStopping) return;
          if (state.running && state.runningTask === 'doSBC') return await tasks.stopAsync();
          if (state.running && state.runningTask !== 'doSBC') await tasks.stopAsync({ suppressAutoRestartOnce: true });;
          await ui.ensureConfigThenAssign('do');
        };

        state.btn.open = mkBtn('开包', 'sbc-btn--open', 'btn-open-packs');
        state.btn.open.onclick = async () => {
          if (state.isStopping) return;
          if (state.running && state.runningTask !== 'openPacks') await tasks.stopAsync({ suppressAutoRestartOnce: true });;
          if (!state.running) tasks.startOpen();
          else if (state.runningTask === 'openPacks') await tasks.stopAsync();
        };

        state.btn.loop = mkBtn('永动机', 'sbc-btn--loop', 'btn-loop');
        state.btn.loop.onclick = async () => {
          if (state.isStopping) return;
          if (!state.selectedLoopSetId) {
            await ui.ensureConfigThenAssign('loop');
            return;
          }
          if (state.running && state.runningTask !== 'loop') await tasks.stopAsync({ suppressAutoRestartOnce: true });;
          if (!state.running) {
            await sbc.goToPacks();
            tasks.startLoop();
          } else if (state.runningTask === 'loop') {
            await tasks.stopAsync();
          }
        };

        state.btn.auto = mkBtn('永动机Pro', 'sbc-btn--loop', 'btn-auto');
        state.btn.auto.onclick = async () => {
          if (state.isStopping) return;
          if (!state.selectedLoopSetId) {
            await ui.ensureConfigThenAssign('loop', { autostart: false });
            if (!state.selectedLoopSetId) return;
          }
          if (state.running && state.runningTask !== 'auto') await tasks.stopAsync({ suppressAutoRestartOnce: true });;
          if (!state.running) tasks.startAuto();
          else if (state.runningTask === 'auto') await tasks.stopAsync({ suppressAutoRestartOnce: true });;
        };

        const chkHandleDup = el('input', 'sbc-chk', {
          type: 'checkbox',
          checked: state.enableHandleDuplicate,
        });
        chkHandleDup.onchange = () => {
          state.enableHandleDuplicate = chkHandleDup.checked;
          GM_setValue('enableHandleDuplicate', state.enableHandleDuplicate);
        };
        const chkLabel = el('label', 'sbc-chklabel');
        chkLabel.append(chkHandleDup, document.createTextNode('提前分配重复球员'));
        const chkAutoRestart = el('input', 'sbc-chk', {
          type: 'checkbox',
          checked: state.autoRestartOnStop,
        });
        chkAutoRestart.onchange = () => {
          state.autoRestartOnStop = chkAutoRestart.checked;
          GM_setValue(CFG_KEYS.AUTO_RESTART_ON_STOP, state.autoRestartOnStop);
        };
        const chkARLabel = el('label', 'sbc-chklabel');
        chkARLabel.append(chkAutoRestart, document.createTextNode('Pro停止后\n自动重启'));
        const btnAssign = el('button', 'sbc-btn sbc-btn--assign', { textContent: '获取配置' });
        btnAssign.onclick = async () => {
          const txt0 = btnAssign.textContent;
          try {
            if (!state.FILTERED_SETS.length) {
              btnAssign.disabled = true;
              btnAssign.textContent = '获取中…';
              const sets = await sbc.fetchSbcList();
              const list = Array.isArray(sets) ? sets : state.FILTERED_SETS;
              btnAssign.textContent = Array.isArray(list) && list.length > 0 ? '分配SBC' : txt0;
              return;
            }
            await ui.ensureConfigThenAssign();
          } catch (e) {
            btnAssign.textContent = txt0;
            alert('获取配置失败,请稍后重试');
          } finally {
            btnAssign.disabled = false;
          }
        };

        const btnCfg = mkBtn('参数设置', 'sbc-btn--settings', 'btn-sbc-settings');
        btnCfg.onclick = () => ui.openSbcSettings();
        const btnDonate = mkBtn('打赏一下', 'sbc-btn--donate', 'btn-donate');
        btnDonate.onclick = () => ui.showDonateModal();
        panel.append(
          statsBox,
          inputBox,
          state.btn.do,
          state.btn.open,
          state.btn.loop,
          state.btn.auto,
          btnAssign,
          btnCfg,
          btnDonate,
          chkLabel,
          chkARLabel
        );

        let side = GM_getValue('pandaDockSide', 'right');
        let top = Number(GM_getValue('pandaDockTop', 140)) || 140;
        let autohide = !!GM_getValue('pandaDockAutohide', false);

        const dock = document.createElement('div');
        dock.id = 'panda-dock';
        dock.className = side;
        dock.style.top = `${top}px`;

        const handle = document.createElement('div');
        handle.className = 'dock-handle';
        handle.title = '点击展开/收起;拖动上下移动;双击切换左右';
        handle.textContent = `PANDA SBC v${config.version}`;

        const panelWrap = document.createElement('div');
        panelWrap.className = 'dock-panel';
        panelWrap.appendChild(panel);

        const foot = document.createElement('div');
        foot.className = 'dock-foot';

        const toggle = document.createElement('span');
        toggle.className = 'dock-toggle';

        const setAutoText = () => (toggle.textContent = autohide ? '自动隐藏:开' : '自动隐藏:关');
        setAutoText();

        toggle.onclick = () => {
          autohide = !autohide;
          GM_setValue('pandaDockAutohide', autohide);
          setAutoText();
          if (!autohide) expand();
          else collapse();
        };
        const guideBtn = document.createElement('span');
        guideBtn.className = 'dock-toggle dock-guide';
        guideBtn.textContent = '功能引导';
        guideBtn.onclick = () => {
          try { Guide.init({ force: true, showUI: true }); } catch (_) {
            alert('引导模块未就绪');
          }
        };
        foot.appendChild(toggle);
        foot.appendChild(guideBtn);
        panelWrap.appendChild(foot);

        if (side === 'right') {
          dock.append(panelWrap, handle);
        } else {
          dock.append(handle, panelWrap);
        }
        document.body.appendChild(dock);

        let expanded = !autohide;
        const expand = () => {
          dock.classList.add('expanded');
          expanded = true;
        };
        const collapse = () => {
          if (autohide) {
            dock.classList.remove('expanded');
            expanded = false;
          }
        };
        if (expanded) dock.classList.add('expanded');

        let hovering = false;
        let leaveTimer = null;
        let clickTimer = null;
        let ignoreLeaveUntil = 0;

        dock.addEventListener('pointerenter', () => {
          hovering = true;
          if (autohide) expand();
          if (leaveTimer) clearTimeout(leaveTimer);
        });

        dock.addEventListener('pointerleave', () => {
          hovering = false;
          if (!autohide) return;
          if (Date.now() < ignoreLeaveUntil) return;
          if (leaveTimer) clearTimeout(leaveTimer);
          leaveTimer = setTimeout(() => {
            if (!hovering) collapse();
          }, 220);
        });

        handle.addEventListener('click', (e) => {
          if (e.detail > 1) return;
          if (clickTimer) clearTimeout(clickTimer);
          clickTimer = setTimeout(() => {
            expanded ? collapse() : expand();
            clickTimer = null;
          }, 180);
        });

        handle.addEventListener('dblclick', () => {
          if (clickTimer) {
            clearTimeout(clickTimer);
            clickTimer = null;
          }
          side = side === 'right' ? 'left' : 'right';
          GM_setValue('pandaDockSide', side);
          dock.classList.remove('left', 'right');
          dock.classList.add(side);
          panelWrap.remove();
          handle.remove();
          if (side === 'right') {
            dock.append(panelWrap, handle);
          } else {
            dock.append(handle, panelWrap);
          }
          expand();
          ignoreLeaveUntil = Date.now() + 300;
          setTimeout(() => {
            if (autohide && !hovering) collapse();
          }, 350);
        });

        let dragging = false;
        let startY = 0;
        let startTop = 0;

        const onMove = (e) => {
          if (!dragging) return;
          const dy = e.clientY - startY;
          const newTop = util.clamp(startTop + dy, 20, window.innerHeight - 160);
          dock.style.top = `${newTop}px`;
        };

        const onUp = () => {
          if (!dragging) return;
          dragging = false;
          dock.classList.remove('dragging');
          document.removeEventListener('mousemove', onMove);
          document.removeEventListener('mouseup', onUp);
          GM_setValue('pandaDockTop', parseInt(dock.style.top, 10) || 140);
        };

        handle.addEventListener('mousedown', (e) => {
          if (e.button !== 0) return;
          dragging = true;
          dock.classList.add('dragging');
          startY = e.clientY;
          startTop = parseInt(dock.style.top || '140', 10) || 140;
          document.addEventListener('mousemove', onMove);
          document.addEventListener('mouseup', onUp);
        });

        document.addEventListener('mouseout', (e) => {
          if (autohide && e.relatedTarget == null) {
            hovering = false;
            collapse();
          }
        });

        document.addEventListener('pointermove', (e) => {
          if (!autohide || !expanded) return;
          const margin = 8;
          if (side === 'right' && e.clientX < window.innerWidth - 240 - margin && !hovering) collapse();
          if (side === 'left' && e.clientX > 240 + margin && !hovering) collapse();
        });

        window.addEventListener('blur', () => {
          if (autohide) collapse();
        });

        window.addEventListener('resize', () => {
          const curTop = parseInt(dock.style.top || '140', 10) || 140;
          const maxTop = Math.max(20, window.innerHeight - 160);
          if (curTop > maxTop) {
            dock.style.top = `${maxTop}px`;
            GM_setValue('pandaDockTop', maxTop);
          }
        });

        ui.updateButtonState();
      },

    };

    function init() {
      const ensure = () => {
        try {
          ea.ensureHooks();
        } catch (e) { }
      };
      ensure();

      state.page._eaHookTimer = setInterval(() => {
        ensure();
        if (
          ea.hookXHR() &&
          ea.hookEventsPopup() &&
          ea.hookLoadingEnd() &&
          ea.hookRepositories() &&
          state.page._eaHookTimer
        ) {
          clearInterval(state.page._eaHookTimer);
          state.page._eaHookTimer = null;
          log.i('[init] hooks ready, timer stopped');
        }
      }, 1500);

      ui.initDock();
    }
    function loadSbcSettingsFromStorage() {
      const num = (k, def) => {
        const v = Number(GM_getValue(k, def));
        return Number.isFinite(v) ? v : def;
      };
      config.UI.SP_STABLE_FOR = num(CFG_KEYS.SP_STABLE_FOR, config.UI.SP_STABLE_FOR);
      config.UI.SP_FILL_SUCCESS_TIME = num(
        CFG_KEYS.SP_FILL_SUCCESS_TIME,
        config.UI.SP_FILL_SUCCESS_TIME,
      );
      config.HIGH_RATED_POPUP_THRESHOLD = num(
        CFG_KEYS.HIGH_RATED_POPUP_THRESHOLD,
        config.HIGH_RATED_POPUP_THRESHOLD,
      );
      config.MAX_RATING_TOTW = num(CFG_KEYS.MAX_RATING_TOTW, config.MAX_RATING_TOTW);
      config.MAX_RATING_NORMAL = num(CFG_KEYS.MAX_RATING_NORMAL, config.MAX_RATING_NORMAL);
      // config.PRO.TOTW_SAFE_MIN = num(CFG_KEYS.TOTW_SAFE_MIN, config.PRO.TOTW_SAFE_MIN);
    }
    const SHIELD_SEL = '.ut-click-shield.showing, .ut-click-shield.showing.fsu-loading';
    function _waitForLoadingStart(timeout = 2000, opts = {}) {
      const { interval = 120, signal = (state?.abortCtrl?.signal) } = opts;
      return new Promise((resolve, reject) => {
        const t0 = Date.now();
        let timer = null;
        const onAbort = () => { clearTimeout(timer); reject(new Error('Aborted')); };
        if (signal) {
          if (signal.aborted) return onAbort();
          signal.addEventListener('abort', onAbort, { once: true });
        }
        const step = () => {
          if (signal?.aborted) return;
          if (document.querySelector(SHIELD_SEL)) {
            if (signal) signal.removeEventListener('abort', onAbort);
            return resolve(true);
          }
          if (Date.now() - t0 > timeout) {
            if (signal) signal.removeEventListener('abort', onAbort);
            return resolve(false);
          }
          timer = setTimeout(step, interval);
        };
        step();
      });
    }

    function _waitForLoadingEnd(timeout = 8000, opts = {}) {
      const { interval = 200, stableGoneMs = 600, signal = (state?.abortCtrl?.signal) } = opts;
      return new Promise((resolve, reject) => {
        const start = Date.now();
        let lastGoneAt = 0;
        let timer = null;
        const onAbort = () => { clearTimeout(timer); reject(new Error('Aborted')); };
        if (signal) {
          if (signal.aborted) return onAbort();
          signal.addEventListener('abort', onAbort, { once: true });
        }
        const step = () => {
          if (signal?.aborted) return;
          const present = !!document.querySelector(SHIELD_SEL);
          if (!present) {
            if (!lastGoneAt) lastGoneAt = Date.now();
            if (Date.now() - lastGoneAt >= stableGoneMs) {
              if (signal) signal.removeEventListener('abort', onAbort);
              return resolve(true);
            }
          } else {
            lastGoneAt = 0;
          }
          if (Date.now() - start > timeout) {
            if (signal) signal.removeEventListener('abort', onAbort);
            return resolve(false);
          }
          timer = setTimeout(step, interval);
        };
        step();
      });
    }

    async function _waitFSULoading(timeout = 8000, opts = {}) {
      const appeared = await _waitForLoadingStart(10000, opts);
      if (!appeared) return false;
      const vanished = await _waitForLoadingEnd(timeout, opts);
      return vanished;
    }
    const recover = (() => {
      const KEY = 'panda_recover_ticket_v3';
      const NAME_PREFIX = '__PANDA_RECOVER__::';
      const CFG = {
        MAX_ATTEMPTS: 2,
        STEP_RETRY_MAX: 2,
        WAIT_QUERY: 10000,
        WAIT_BTN_TRANSITION: 15000,
        POLL_INTERVAL: 150,
        CLICK_DEBOUNCE_MS: 1500,
        WAIT_HOME_MS: 180000,
        WAIT_LOADING_MS: 120000,
        AUTOFILL_TIMEOUT: 15000,
      };

      const GMX = {
        async set(key, val) {
          const s = typeof val === 'string' ? val : JSON.stringify(val);
          try { if (typeof GM?.setValue === 'function') return await GM.setValue(key, s); } catch { }
          try { if (typeof GM_setValue === 'function') { GM_setValue(key, s); return; } } catch { }
          try { localStorage.setItem(key, s); } catch { }
        },
        async get(key) {
          let s = null;
          try { if (typeof GM?.getValue === 'function') s = await GM.getValue(key, null); } catch { }
          if (s == null) { try { if (typeof GM_getValue === 'function') s = GM_getValue(key); } catch { } }
          if (s == null) { try { s = localStorage.getItem(key); } catch { } }
          return s;
        },
        async del(key) {
          try { if (typeof GM?.deleteValue === 'function') return await GM.deleteValue(key); } catch { }
          try { if (typeof GM_deleteValue === 'function') { GM_deleteValue(key); return; } } catch { }
          try { localStorage.removeItem(key); } catch { }
        },
      };

      const store = {
        async set(v) {
          const s = JSON.stringify(v);
          await GMX.set(KEY, s);
          try { window.name = NAME_PREFIX + s; } catch { }
        },
        async get() {
          let s = await GMX.get(KEY);
          if (!s && typeof window.name === 'string' && window.name.startsWith(NAME_PREFIX)) {
            s = window.name.slice(NAME_PREFIX.length);
          }
          try { return s ? JSON.parse(s) : null; } catch { return null; }
        },
        async del() {
          await GMX.del(KEY);
          try { if (typeof window.name === 'string' && window.name.startsWith(NAME_PREFIX)) window.name = ''; } catch { }
        },
        async patch(extra = {}) {
          const old = await store.get() || {};
          await store.set({ ...old, ...extra, lastAt: Date.now() });
        },
      };

      function hasTaskId(payload) {
        const id = String(
          state?.selectedLoopSetId ||
          payload?.selectedLoopSetId ||
          payload?.targetId ||
          ''
        ).trim();
        return !!id;
      }
      const isLoginPage = () =>
        /signin|login|auth|juno\/login/i.test(location.hostname + location.pathname + location.search + location.hash);

      function findFutLoginBtn(rootSel = '.ut-login-content') {
        const root = document.querySelector(rootSel);
        if (!root) return null;
        const exact = root.querySelector('button.btn-standard.call-to-action');
        if (exact && (exact.textContent || '').trim() === '登录(不可用)') return exact;

        const nodes = root.querySelectorAll('button,[role="button"],.btn,.call-to-action');
        return Array.from(nodes).find(n => (n.textContent || '').trim() === '登录(不可用)') || null;
      }

      const getLogInBtn = () => document.querySelector('#logInBtn');
      const getLogInBtnText = () => {
        const el = getLogInBtn();
        return el ? (el.textContent || el.value || '').trim() : '';
      };

      const waitUntil = util.withAbort((pred, timeout = CFG.WAIT_BTN_TRANSITION, interval = CFG.POLL_INTERVAL) => {
        return new Promise((resolve, reject) => {
          const signal = state?.abortCtrl?.signal;
          const start = Date.now();
          let timer = null;

          const step = () => {
            if (signal?.aborted) {
              if (timer) clearTimeout(timer);
              return reject(new AbortedError());
            }
            let ok = false;
            try { ok = !!pred(); } catch { ok = false; }
            if (ok) {
              if (timer) clearTimeout(timer);
              return resolve(true);
            }
            if (Date.now() - start >= timeout) {
              if (timer) clearTimeout(timer);
              return resolve(false);
            }
            timer = setTimeout(step, interval);
          };
          step();
        });
      });

      const waitBtnTransition = util.withAbort(async ({ expectTextChangeTo = null, timeout = CFG.WAIT_BTN_TRANSITION } = {}) => {
        const before = getLogInBtnText();

        const goneP = dom.waitGone('#logInBtn', timeout, { interval: CFG.POLL_INTERVAL })
          .then(() => true).catch(() => false);

        const textChangedP = waitUntil(() => {
          const now = getLogInBtnText();
          if (!now) return false;
          return expectTextChangeTo ? (now === expectTextChangeTo) : (now !== before);
        }, timeout, CFG.POLL_INTERVAL).then(() => true).catch(() => false);

        const leftPageP = waitUntil(() => !isLoginPage(), timeout, CFG.POLL_INTERVAL)
          .then(() => true).catch(() => false);

        return await Promise.race([goneP, textChangedP, leftPageP]);
      });

      function __jq() {
        return (typeof unsafeWindow !== 'undefined' && unsafeWindow.jQuery)
          || (typeof window !== 'undefined' && (window.jQuery || window.$))
          || null;
      }
      function __jqCommit($el, val) {
        if (!$el || !$el.length) return false;
        const el = $el.get(0);

        try {
          const desc = Object.getOwnPropertyDescriptor(HTMLInputElement.prototype, 'value');
          if (desc && desc.set) desc.set.call(el, val);
        } catch { }
        $el.val(val);

        try { el.dispatchEvent(new InputEvent('input', { bubbles: true })); }
        catch { el.dispatchEvent(new Event('input', { bubbles: true })); }

        try {
          el.dispatchEvent(new KeyboardEvent('keyup', {
            bubbles: true,
            cancelable: true,
            key: '',
            code: '',
            keyCode: 0,
            which: 0
          }));
        } catch { }

        el.dispatchEvent(new Event('change', { bubbles: true }));
        el.blur?.();
        return true;
      }
      async function __jqClick(selectorOrPick) {
        const $ = __jq(); if (!$) return false;
        let el = null;
        if (typeof selectorOrPick === 'string') el = document.querySelector(selectorOrPick);
        else if (typeof selectorOrPick === 'function') el = selectorOrPick();
        if (el) { try { $(el).trigger('click'); return true; } catch { } }

        let $btn = $('#logInBtn');
        if (!$btn.length) {
          $btn = $('button, a, .btn, [role="button"]').filter(function () {
            const t = ($(this).val() || $(this).text() || '').trim();
            return t === '下一步' || t === '登录(不可用)';
          });
          $btn = $btn.first();
        }
        if ($btn && $btn.length) { $btn.trigger('click'); return true; }
        return false;
      }
      function __ensureAutofillCSS() {
        if (document.getElementById('panda-autofill-style')) return;
        const style = document.createElement('style');
        style.id = 'panda-autofill-style';
        style.textContent = `
@keyframes pandaAutofillStart { from { opacity: 1; } to { opacity: 1; } }
input:-webkit-autofill { animation-name: pandaAutofillStart; }
`;
        document.head.appendChild(style);
      }
      const __waitAutofill = util.withAbort(async (elOrSelector, timeout = CFG.AUTOFILL_TIMEOUT) => {
        const el = typeof elOrSelector === 'string' ? document.querySelector(elOrSelector) : elOrSelector;
        if (!el) return '';
        if (!document.getElementById('panda-autofill-style')) {
          const style = document.createElement('style');
          style.id = 'panda-autofill-style';
          style.textContent = `
@keyframes pandaAutofillStart { from { opacity: 1; } to { opacity: 1; } }
input:-webkit-autofill { animation-name: pandaAutofillStart; }
`;
          document.head.appendChild(style);
        }

        const signal = state?.abortCtrl?.signal;
        const start = Date.now();
        let autoFilled = false;
        const onAnim = (e) => { if (e.animationName === 'pandaAutofillStart') autoFilled = true; };

        try {
          el.addEventListener('animationstart', onAnim, { passive: true });
          try { el.focus(); } catch { }
          while (Date.now() - start < timeout) {
            util.abortPoint();
            if ((el.value || '').trim()) break;
            if (autoFilled && el.value) break;
            await util.sleep(CFG.POLL_INTERVAL);
          }
          return (el.value || '').trim();
        } finally {
          try { el.removeEventListener('animationstart', onAnim); } catch { }
        }
      });


      function _isVisible(el) {
        if (!el) return false;
        const cs = getComputedStyle(el);
        if (cs.display === 'none' || cs.visibility === 'hidden' || el.hidden) return false;
        const r = el.getBoundingClientRect();
        return r.width > 0 && r.height > 0;
      }

      function detectPagePhase() {
        if (!isLoginPage()) {
          const futBtn = findFutLoginBtn();
          return { page: 'FUT', futLoginBtn: futBtn };
        }
        const btn = getLogInBtn();
        const btnTxt = btn ? (btn.textContent || btn.value || '').trim() : '';

        const emailEl = document.querySelector('#email');
        const passEl = document.querySelector('#password') || document.querySelector('input[type="password"]');
        const emailVis = _isVisible(emailEl);
        const passVis = _isVisible(passEl);

        if (passVis || btnTxt === '登录(不可用)') return { page: 'LOGIN_SUBMIT', btnTxt };
        if (emailVis || btnTxt === '下一步') return { page: 'LOGIN_NEXT', btnTxt };
        return { page: 'LOGIN_UNKNOWN', btnTxt };
      }



      async function buildTicketForStep2(email, password) {
        const old = await store.get() || {};
        await store.set({
          phase: 'STEP2_NEXT',
          attempts: (old.attempts || 0) + 1,
          step2Tries: 0,
          step3Tries: 0,
          lastClickAt_step2: 0,
          lastClickAt_step3: 0,
          email: (email || '').trim(),
          password: String(password || ''),
          at: Date.now(),
        });
        return true;
      }


      async function reconcileStateWithDOM() {
        const payload = await store.get();
        const phaseDOM = detectPagePhase();

        if (phaseDOM.page === 'FUT') {
          return { payload, phase: phaseDOM };
        }

        if (!payload) {
          const base = {
            attempts: 1,
            step2Tries: 0,
            step3Tries: 0,
            lastClickAt: 0,
            email: (config?.PRO?.LOGIN_EMAIL || '').trim(),
            password: String(config?.PRO?.LOGIN_PASSWORD ?? ''),
            selectedLoopSetId: String(state?.selectedLoopSetId || ''),
            at: Date.now()
          };
          const phase = (phaseDOM.page === 'LOGIN_SUBMIT') ? 'STEP3_LOGIN'
            : (phaseDOM.page === 'LOGIN_NEXT') ? 'STEP2_NEXT'
              : 'STEP2_NEXT';
          await store.set({ ...base, phase });
          return { payload: await store.get(), phase: phaseDOM };
        }

        if (phaseDOM.page === 'LOGIN_SUBMIT' && payload.phase !== 'STEP3_LOGIN') {
          await store.patch({ phase: 'STEP3_LOGIN' });
        } else if (phaseDOM.page === 'LOGIN_NEXT' && payload.phase !== 'STEP2_NEXT') {
          await store.patch({ phase: 'STEP2_NEXT' });
        }

        return { payload: await store.get(), phase: detectPagePhase() };
      }

      async function step1_FUT_GotoLogin() {
        const futLogin = findFutLoginBtn();
        if (!futLogin) return false;

        const email = (config?.PRO?.LOGIN_EMAIL || '').trim();
        const password = (config?.PRO?.LOGIN_PASSWORD || '');
        await buildTicketForStep2(email, password);

        log.i('[recover] Step1: FUT 发现“登录(不可用)”,已记录 phase=STEP2_NEXT,并跳转登录(不可用)页');
        await dom.clickIfExists(
          () => findFutLoginBtn(),
          5000, 60,
          { strict: false, stableFor: 64, preferLast: true, signal: state?.abortCtrl?.signal },
          true
        );
        return true;
      }

      const step2_Login_Next = util.withAbort(async () => {
        await dom.waitForElement(() => document.querySelector('#email') || getLogInBtn(), CFG.WAIT_QUERY, {
          strict: false, stableFor: 64, preferLast: true, signal: state?.abortCtrl?.signal
        });

        const payload = await store.get();
        const attempts = payload?.attempts || 1;
        if (attempts > CFG.MAX_ATTEMPTS) { await store.del(); return false; }

        const tries = payload?.step2Tries || 0;
        if (tries >= CFG.STEP_RETRY_MAX) { log.w('[recover] Step2: 重试超限'); await store.del(); return false; }
        await store.patch({ step2Tries: tries + 1 });

        {
          const now = Date.now();
          const last = payload?.lastClickAt_step2 || 0;
          const gap = now - last;
          if (gap < CFG.CLICK_DEBOUNCE_MS) {
            await util.sleep(CFG.CLICK_DEBOUNCE_MS - gap + 50);
          }
          await store.patch({ lastClickAt_step2: Date.now() });
        }

        const $ = __jq();
        const email = (payload?.email || (config?.PRO?.LOGIN_EMAIL || '')).trim();
        const $mail = $ ? $('#email') : null;
        const mailEl = document.querySelector('#email');

        if (!email || !mailEl) {
          log.w('[recover] Step2: 缺少邮箱或 #email,不执行“下一步”;清空进度');
          await store.del(); return false;
        }

        if ($) {
          __jqCommit($mail, email);
          $('#loginMethod').val('emailPassword');
          $('#online-input-error-email,#online-general-error,#offline-auth-error').removeClass('otkform-group-haserror');
          $('.otkinput-grouped').removeClass('otkinput-iserror');
        } else {
          try {
            const desc = Object.getOwnPropertyDescriptor(HTMLInputElement.prototype, 'value');
            desc && desc.set && desc.set.call(mailEl, email);
          } catch { }
          mailEl.value = email;
          mailEl.dispatchEvent(new Event('input', { bubbles: true }));
          mailEl.dispatchEvent(new Event('change', { bubbles: true }));
          mailEl.blur?.();
          const lm = document.querySelector('#loginMethod'); if (lm) lm.value = 'emailPassword';
        }

        await store.patch({ phase: 'STEP3_LOGIN' });

        await __jqClick('#logInBtn');
        await dom.clickIfExists(
          () => getLogInBtn(),
          5000, 60,
          { strict: false, stableFor: 64, preferLast: true, signal: state?.abortCtrl?.signal },
          true
        );

        const ok = await waitBtnTransition({ expectTextChangeTo: '登录(不可用)', timeout: CFG.WAIT_BTN_TRANSITION });
        const stillLogin = isLoginPage();
        const btnTxt = getLogInBtnText();

        if (!ok && stillLogin && btnTxt === '下一步') {
          log.w('[recover] Step2: 仍是“下一步”,判失败,清空进度');
          await store.del(); return false;
        }

        log.i('[recover] Step2: 下一步完成,进入 Step3 或已离开登录(不可用)页');
        return true;
      });


      const step3_Login_Submit = util.withAbort(async () => {
        await dom.waitForElement(() => document.querySelector('#password') || getLogInBtn(), CFG.WAIT_QUERY, {
          strict: false, stableFor: 64, preferLast: true, signal: state?.abortCtrl?.signal
        });

        {
          const payload = await store.get();
          const now = Date.now();
          const last = payload?.lastClickAt_step3 || 0;
          const gap = now - last;
          if (gap < CFG.CLICK_DEBOUNCE_MS) {
            const wait = CFG.CLICK_DEBOUNCE_MS - gap + 50;
            log.i(`debounce ${gap}ms < ${CFG.CLICK_DEBOUNCE_MS}ms → sleep ${wait}ms`);
            await util.sleep(wait);
          }
          await store.patch({ lastClickAt_step3: Date.now() });
        }

        const $ = __jq();
        const passEl = document.querySelector('#password') || document.querySelector('input[type="password"]');
        let payload = await store.get();
        let pwd = payload?.password ?? config?.PRO?.LOGIN_PASSWORD ?? '';
        const btnBefore = getLogInBtnText();

        log.i(`start. domPhase=%o  btnText="%s"`, detectPagePhase(), btnBefore);

        if (passEl && !String(pwd)) {
          const got = await __waitAutofill(passEl, CFG.AUTOFILL_TIMEOUT);
          if (got) pwd = got;
        }
        if (!passEl || !String(pwd)) {
          log.i('密码为空. clear ticket.');
          await store.del();
          return false;
        }

        if ($) {
          __jqCommit($(passEl), String(pwd));
        } else {
          try {
            const desc = Object.getOwnPropertyDescriptor(HTMLInputElement.prototype, 'value');
            desc && desc.set && desc.set.call(passEl, String(pwd));
          } catch { }
          passEl.value = String(pwd);
          try { passEl.dispatchEvent(new InputEvent('input', { bubbles: true })); }
          catch { passEl.dispatchEvent(new Event('input', { bubbles: true })); }
          passEl.dispatchEvent(new Event('change', { bubbles: true }));
          passEl.blur?.();
        }

        try {
          const ev = new KeyboardEvent('keydown', {
            bubbles: true, cancelable: true, key: 'Enter', code: 'Enter', keyCode: 13, which: 13
          });
          passEl.dispatchEvent(ev);
        } catch { }

        if ($) { try { $('#logInBtn').trigger('click'); } catch { } }

        await dom.clickIfExists(
          () => getLogInBtn(),
          5000, 60,
          { strict: false, stableFor: 64, preferLast: true, signal: state?.abortCtrl?.signal },
          true
        );

        const ok = await Promise.race([
          dom.waitGone('#logInBtn', CFG.WAIT_BTN_TRANSITION, { interval: CFG.POLL_INTERVAL }).then(() => true).catch(() => false),
          waitUntil(() => !isLoginPage(), CFG.WAIT_BTN_TRANSITION, CFG.POLL_INTERVAL).then(() => true).catch(() => false),
          waitUntil(() => getLogInBtnText() !== btnBefore, CFG.WAIT_BTN_TRANSITION, CFG.POLL_INTERVAL).then(() => true).catch(() => false),
        ]);

        if (isLoginPage()) {
          const errBox = document.querySelector('#online-general-error .otkc');
          const errCode = (document.querySelector('#errorCode') || {}).value || '';
          const errCodeDesc = (document.querySelector('#errorCodeWithDescription') || {}).value || '';
          const errTxt = errBox ? (errBox.textContent || '').trim() : '';
          return false;
        }

        await store.del();
        return true;
      });



      async function resumeProAfterReload() {
        try { await Guide.onceHomeReady(CFG.WAIT_HOME_MS); } catch { }
        await util.sleep(5000);
        await _waitFSULoading(12 * 60 * 1000);

        await dom.clickIfExists(
          () => document.querySelector('.sbc-btn--assign'),
          6000, 60,
          { strict: false, stableFor: 64, preferLast: true, signal: state?.abortCtrl?.signal },
          true
        );
        try { await ea.waitAllLoadingEnd?.(800, 60000); } catch { }

        try { await sbc.fetchSbcList?.(); } catch { }
        const payload = await store.get();
        const targets = await sbc.ensureAutoTargets?.() || {};
        state.selectedLoopSetId = String(payload?.selectedLoopSetId || targets?.loopId || '');

        await util.sleep(500);

        if (typeof tasks.startAuto === 'function') {
          state.isStopping = false;
          try {
            await tasks.startAuto.call(tasks);
            log.i('[recover] resume: 已触发 Pro 启动');
          } catch (e) {
            log.w('[recover] resume: 启动异常', e);
          } finally {
            await store.del();
          }
          return true;
        } else {
          log.w('[recover] resume: 未找到启动函数');
          await store.del();
          return false;
        }
      }

      async function triggerAndReload(reason = 'chain_exhausted') {
        if (state.__recovering) {
          return false;
        }
        const loopId = String(state?.selectedLoopSetId || '').trim();
        if (!loopId) {
          await store.del();
          return false;
        }
        state.__recovering = true;
        const old = await store.get();
        const attempts = (old?.attempts || 0) + 1;

        await store.set({
          phase: 'RESUME_PRO',
          attempts,
          reason,
          selectedLoopSetId: loopId,
          email: (config?.PRO?.LOGIN_EMAIL || '').trim(),
          password: String(config?.PRO?.LOGIN_PASSWORD ?? ''),
          lastOrigin: location.origin,
          seq: (old?.seq || 0) + 1,
          at: Date.now(),
        });

        log.w(`[recover] 第 ${attempts} 次尝试,刷新页面…`, { reason, loopId: state?.selectedLoopSetId });
        location.reload();
        return false;
      }

      const tryOnBoot = util.withAbort(async () => {
        state.__recovering = false;
        const { payload, phase } = await reconcileStateWithDOM();
        console.log(payload, phase)
        if (!hasTaskId(payload)) {
          log.i('[recover] 无凭证 -> 跳过恢复 & 清理凭证');
          try { store.del(); } catch { }
          return false;
        }
        if (phase.page === 'FUT') {
          if (payload?.phase === 'RESUME_PRO') {
            const appear = await dom.waitForElement(
              () => findFutLoginBtn(),
              20000,
              { strict: false, stableFor: 64, preferLast: true, signal: state?.abortCtrl?.signal }
            );
            if (!appear) return false;

            const vanished = await dom.waitGone('.ut-login-content .btn-standard.call-to-action', 30000, { interval: 200 });
            const stillThere = !!findFutLoginBtn();
            if (vanished && !stillThere) {
              log.i('[recover] FUT 登录(不可用)按钮在等待内消失,判定已登录(不可用)或不需登录(不可用)。');
              return await resumeProAfterReload();
            } else {
              return await step1_FUT_GotoLogin();
            }
          }
        }

        const fresh = await store.get();
        const attempts = fresh?.attempts || 1;
        if (attempts > CFG.MAX_ATTEMPTS) {
          log.w('[recover] 超过最大尝试次数,清理进度');
          await store.del();
          return false;
        }

        if (phase.page === 'LOGIN_NEXT') {
          return await step2_Login_Next();
        }
        if (phase.page === 'LOGIN_SUBMIT') {
          console.log('step3_Login_Submit')
          return await step3_Login_Submit();
        }

        log.i(`[recover] 登录(不可用)页但状态不明(${phase.page}),等待下次机会。`);
        return false;
      });
      return { tryOnBoot, triggerAndReload, _store: store };
    })();

    return { config, state, log, util, dom, ea, sbc, tasks, ui, init, loadSbcSettingsFromStorage, recover };
  })();


  const Guide = (() => {
    const KEY_SHOWN = 'panda_guide_shown_v1';
    const HOME_H1_TEXT = '主页';
    const WAIT_TIMEOUT_MS = 600000;
    const OBS_ROOT = document.body || document.documentElement;

    const hasShown = () => !!GM_getValue(KEY_SHOWN, false);
    const setShown = () => GM_setValue(KEY_SHOWN, true);

    function findHomeTitleNode() {
      const nodes = document.querySelectorAll('h1.title');
      for (const n of nodes) {
        const txt = (n.textContent || '').trim();
        if (txt === HOME_H1_TEXT) return n;
      }
      return null;
    }

    function detectDeps() {
      const fsuInstalled = !!document.querySelector('.fsu-loading-close');
      const enhancerInstalled = !!(
        document.querySelector('.icon-enhancer') || document.querySelector('[class*="icon-enhancer"]')
      );
      return { fsuInstalled, enhancerInstalled };
    }

    function showOverlay({ fsuInstalled, enhancerInstalled }) {
      if (document.querySelector('.panda-guide-mask')) return;
      const RESOURCES = [
        { label: '作者:伯纳乌书童甲', href: 'https://space.bilibili.com/23274961', note: 'B站链接' },
        { label: 'FC25 PandaSBC 1群', href: 'https://qm.qq.com/q/zSDFaDZ1UA', note: '点击入群求助' },
        { label: '安装教程', href: 'https://b23.tv/rg1dQVR', note: 'B站链接' },
        { label: '使用教程', href: 'https://b23.tv/qo1svsY', note: 'B站链接' },
      ];

      const mask = document.createElement('div');
      mask.style.cssText = `
        position:fixed;inset:0;z-index:999999;
        background:rgba(0,0,0,0.55);display:flex;align-items:center;justify-content:center;
        font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial;
      `;

      const box = document.createElement('div');
      box.style.cssText = `
        width:520px;max-width:calc(100vw - 40px);background:#1f1f1f;color:#eee;border:1px solid #333;
        border-radius:12px;box-shadow:0 10px 30px rgba(0,0,0,.5);padding:18px;
      `;

      const ok = (flag) => (flag ? '✅ 已检测到' : '⚠️ 未检测到');

      const linksHTML = RESOURCES.map(
        (r) => `
          <li style="
            margin:6px 0;
            display:flex;
            align-items:center;
            justify-content:space-between;
            gap:10px;
          ">
            <div style="display:flex;align-items:center;gap:8px;">
              ${r.note ? `<span style="font-size:12px;color:#bbb;">${r.note}</span>` : ''}
              <a href="${r.href}" target="_blank" rel="noopener noreferrer"
                 style="color:#4ec9ff;text-decoration:none;">${r.label}</a>
            </div>
            <button data-copy="${r.href}" style="
              min-width:64px;height:26px;border-radius:6px;border:1px solid #555;
              background:#2b2b2b;color:#ddd;cursor:pointer;font-size:12px;
            ">复制</button>
          </li>
        `,
      ).join('');

      const html = `
        <div style="font-size:16px;font-weight:700;margin-bottom:10px;">pandaSBC 新手引导(免费插件,谨防受骗)</div>
        <div style="font-size:14px;line-height:1.6;">
          <div>• FSU:${ok(fsuInstalled)}</div>
          <div>• Enhancer:${ok(enhancerInstalled)}</div>
        </div>

        <div style="font-size:13px;margin:12px 0 6px 0;font-weight:700;">资源与帮助</div>
        <ul style="list-style:none;padding:0;margin:0;">${linksHTML}</ul>

        <div style="font-size:12px;color:#bbb;margin-top:10px;">
          ${!fsuInstalled || !enhancerInstalled
          ? '提示:请先安装/启用以上依赖后再使用脚本。'
          : '环境检测通过,可开始使用。'
        }
        </div>

        <div style="display:flex;gap:8px;justify-content:flex-end;margin-top:14px;">
          <button id="panda-guide-close" style="
            min-width:88px;height:32px;border-radius:8px;border:1px solid #555;
            background:#2b2b2b;color:#ddd;cursor:pointer;
          ">我知道了</button>
        </div>
      `;

      box.innerHTML = html;
      mask.appendChild(box);
      document.body.appendChild(mask);

      box.addEventListener('click', async (e) => {
        const btn = e.target.closest('button[data-copy]');
        if (!btn) return;

        const text = btn.getAttribute('data-copy') || '';
        try {
          if (navigator.clipboard && navigator.clipboard.writeText) {
            await navigator.clipboard.writeText(text);
          } else {
            const ta = document.createElement('textarea');
            ta.value = text;
            ta.style.position = 'fixed';
            ta.style.opacity = '0';
            document.body.appendChild(ta);
            ta.select();
            document.execCommand('copy');
            document.body.removeChild(ta);
          }
          btn.textContent = '已复制';
          setTimeout(() => (btn.textContent = '复制'), 1200);
        } catch {
          alert('复制失败:' + text);
        }
      });

      const closeBtn = box.querySelector('#panda-guide-close');
      closeBtn.addEventListener('click', () => {
        try {
          document.body.removeChild(mask);
        } catch { }
      });
    }

    function onceHomeReady() {
      const SEL = '.ut-tab-bar-item.icon-home';

      return new Promise((resolve) => {
        const node = document.querySelector(SEL);
        if (node) return resolve(node);

        const mo = new MutationObserver(() => {
          const n = document.querySelector(SEL);
          if (n) {
            mo.disconnect();
            resolve(n);
          }
        });
        mo.observe(document.body || document.documentElement, { childList: true, subtree: true });

        setTimeout(() => {
          try { mo.disconnect(); } catch { }
          resolve(null);
        }, WAIT_TIMEOUT_MS);
      });
    }

    async function init({ force = false, showUI = true } = {}) {
      if (!force && hasShown()) {
        return;
      }

      const homeBtn = await onceHomeReady();
      if (!homeBtn) return;
      const status = detectDeps();
      setShown();

      if (showUI) {
        showOverlay(status);
      } else {
        console.info('[pandaSBC][Guide]', status);
      }
    }

    return { init, detectDeps, onceHomeReady };
  })();

  window.addEventListener('load', () => {
    try {
      PandaSBC.init();
      PandaSBC.loadSbcSettingsFromStorage()
      PandaSBC.recover.tryOnBoot();
      const hasShownGuide = GM_getValue(GUIDE_SHOWN_KEY, false);
      if (!hasShownGuide) {
        Guide.init({ force: true, showUI: true });
        GM_setValue(GUIDE_SHOWN_KEY, true);
      }
    } catch (e) {
      console.error(e);
    }
  });
})();
长期地址
遇到问题?请前往 GitHub 提 Issues。