cwj_monitoring 0.0.24 → 0.0.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -5
- package/dist/index.cjs +50 -56
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.js +50 -56
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +1 -1
- package/dist/index.umd.js +50 -56
- package/dist/index.umd.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../node_modules/.pnpm/nanoid@5.1.6/node_modules/nanoid/url-alphabet/index.js","../node_modules/.pnpm/nanoid@5.1.6/node_modules/nanoid/index.browser.js","../src/utils/date.ts","../node_modules/.pnpm/bowser@2.13.1/node_modules/bowser/es5.js","../src/utils/browser.ts","../src/utils/common.ts","../src/constant.ts","../src/core/deviceInfo.ts","../src/core/eventTrack.ts","../src/core/reporter.ts","../src/types/event.ts","../src/core/index.ts","../src/plugin/error.ts","../src/plugin/pv.ts","../src/plugin/behavior.ts","../src/plugin/performance.ts","../src/plugin/xhr.ts","../src/plugin/fetch.ts"],"sourcesContent":["export const urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'\n","/* @ts-self-types=\"./index.d.ts\" */\nimport { urlAlphabet as scopedUrlAlphabet } from './url-alphabet/index.js'\nexport { urlAlphabet } from './url-alphabet/index.js'\nexport let random = bytes => crypto.getRandomValues(new Uint8Array(bytes))\nexport let customRandom = (alphabet, defaultSize, getRandom) => {\n let mask = (2 << Math.log2(alphabet.length - 1)) - 1\n let step = -~((1.6 * mask * defaultSize) / alphabet.length)\n return (size = defaultSize) => {\n let id = ''\n while (true) {\n let bytes = getRandom(step)\n let j = step | 0\n while (j--) {\n id += alphabet[bytes[j] & mask] || ''\n if (id.length >= size) return id\n }\n }\n }\n}\nexport let customAlphabet = (alphabet, size = 21) =>\n customRandom(alphabet, size | 0, random)\nexport let nanoid = (size = 21) => {\n let id = ''\n let bytes = crypto.getRandomValues(new Uint8Array((size |= 0)))\n while (size--) {\n id += scopedUrlAlphabet[bytes[size] & 63]\n }\n return id\n}\n","/* 将时间戳转为年月日 */\r\nexport const getDate = (time: number = Date.now()) => {\r\n const date = new Date(time);\r\n const year = date.getFullYear();\r\n const month = date.getMonth() + 1; //获取系统月份,由于月份是从0开始计算,所以要加1\r\n const day = date.getDate();\r\n const hour = date.getHours();\r\n const minute = date.getMinutes();\r\n const second = date.getSeconds();\r\n\r\n const formatter = (date: number) => {\r\n let res = '';\r\n if (date < 10) {\r\n res = '0' + date;\r\n } else {\r\n res = date.toString();\r\n }\r\n return res;\r\n };\r\n\r\n return (\r\n year +\r\n '-' +\r\n formatter(month) +\r\n '-' +\r\n formatter(day) +\r\n ' ' +\r\n formatter(hour) +\r\n ':' +\r\n formatter(minute) +\r\n ':' +\r\n formatter(second)\r\n );\r\n};\r\n\r\n/* 将两个时间戳转为秒 */\r\nexport const getSeconds = (timestamp1: number, timestamp2: number) => {\r\n if (timestamp1 < timestamp2) {\r\n [timestamp1, timestamp2] = [timestamp2, timestamp1];\r\n }\r\n\r\n return Math.floor((timestamp1 - timestamp2) / 1000);\r\n};\r\n","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.bowser=t():e.bowser=t()}(this,(function(){return function(e){var t={};function r(i){if(t[i])return t[i].exports;var n=t[i]={i:i,l:!1,exports:{}};return e[i].call(n.exports,n,n.exports,r),n.l=!0,n.exports}return r.m=e,r.c=t,r.d=function(e,t,i){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},r.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&\"object\"==typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(r.r(i),Object.defineProperty(i,\"default\",{enumerable:!0,value:e}),2&t&&\"string\"!=typeof e)for(var n in e)r.d(i,n,function(t){return e[t]}.bind(null,n));return i},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,\"a\",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p=\"\",r(r.s=90)}({17:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var i=r(18),n=function(){function e(){}return e.getFirstMatch=function(e,t){var r=t.match(e);return r&&r.length>0&&r[1]||\"\"},e.getSecondMatch=function(e,t){var r=t.match(e);return r&&r.length>1&&r[2]||\"\"},e.matchAndReturnConst=function(e,t,r){if(e.test(t))return r},e.getWindowsVersionName=function(e){switch(e){case\"NT\":return\"NT\";case\"XP\":return\"XP\";case\"NT 5.0\":return\"2000\";case\"NT 5.1\":return\"XP\";case\"NT 5.2\":return\"2003\";case\"NT 6.0\":return\"Vista\";case\"NT 6.1\":return\"7\";case\"NT 6.2\":return\"8\";case\"NT 6.3\":return\"8.1\";case\"NT 10.0\":return\"10\";default:return}},e.getMacOSVersionName=function(e){var t=e.split(\".\").splice(0,2).map((function(e){return parseInt(e,10)||0}));t.push(0);var r=t[0],i=t[1];if(10===r)switch(i){case 5:return\"Leopard\";case 6:return\"Snow Leopard\";case 7:return\"Lion\";case 8:return\"Mountain Lion\";case 9:return\"Mavericks\";case 10:return\"Yosemite\";case 11:return\"El Capitan\";case 12:return\"Sierra\";case 13:return\"High Sierra\";case 14:return\"Mojave\";case 15:return\"Catalina\";default:return}switch(r){case 11:return\"Big Sur\";case 12:return\"Monterey\";case 13:return\"Ventura\";case 14:return\"Sonoma\";case 15:return\"Sequoia\";default:return}},e.getAndroidVersionName=function(e){var t=e.split(\".\").splice(0,2).map((function(e){return parseInt(e,10)||0}));if(t.push(0),!(1===t[0]&&t[1]<5))return 1===t[0]&&t[1]<6?\"Cupcake\":1===t[0]&&t[1]>=6?\"Donut\":2===t[0]&&t[1]<2?\"Eclair\":2===t[0]&&2===t[1]?\"Froyo\":2===t[0]&&t[1]>2?\"Gingerbread\":3===t[0]?\"Honeycomb\":4===t[0]&&t[1]<1?\"Ice Cream Sandwich\":4===t[0]&&t[1]<4?\"Jelly Bean\":4===t[0]&&t[1]>=4?\"KitKat\":5===t[0]?\"Lollipop\":6===t[0]?\"Marshmallow\":7===t[0]?\"Nougat\":8===t[0]?\"Oreo\":9===t[0]?\"Pie\":void 0},e.getVersionPrecision=function(e){return e.split(\".\").length},e.compareVersions=function(t,r,i){void 0===i&&(i=!1);var n=e.getVersionPrecision(t),a=e.getVersionPrecision(r),o=Math.max(n,a),s=0,u=e.map([t,r],(function(t){var r=o-e.getVersionPrecision(t),i=t+new Array(r+1).join(\".0\");return e.map(i.split(\".\"),(function(e){return new Array(20-e.length).join(\"0\")+e})).reverse()}));for(i&&(s=o-Math.min(n,a)),o-=1;o>=s;){if(u[0][o]>u[1][o])return 1;if(u[0][o]===u[1][o]){if(o===s)return 0;o-=1}else if(u[0][o]<u[1][o])return-1}},e.map=function(e,t){var r,i=[];if(Array.prototype.map)return Array.prototype.map.call(e,t);for(r=0;r<e.length;r+=1)i.push(t(e[r]));return i},e.find=function(e,t){var r,i;if(Array.prototype.find)return Array.prototype.find.call(e,t);for(r=0,i=e.length;r<i;r+=1){var n=e[r];if(t(n,r))return n}},e.assign=function(e){for(var t,r,i=e,n=arguments.length,a=new Array(n>1?n-1:0),o=1;o<n;o++)a[o-1]=arguments[o];if(Object.assign)return Object.assign.apply(Object,[e].concat(a));var s=function(){var e=a[t];\"object\"==typeof e&&null!==e&&Object.keys(e).forEach((function(t){i[t]=e[t]}))};for(t=0,r=a.length;t<r;t+=1)s();return e},e.getBrowserAlias=function(e){return i.BROWSER_ALIASES_MAP[e]},e.getBrowserTypeByAlias=function(e){return i.BROWSER_MAP[e]||\"\"},e}();t.default=n,e.exports=t.default},18:function(e,t,r){\"use strict\";t.__esModule=!0,t.ENGINE_MAP=t.OS_MAP=t.PLATFORMS_MAP=t.BROWSER_MAP=t.BROWSER_ALIASES_MAP=void 0;t.BROWSER_ALIASES_MAP={AmazonBot:\"amazonbot\",\"Amazon Silk\":\"amazon_silk\",\"Android Browser\":\"android\",BaiduSpider:\"baiduspider\",Bada:\"bada\",BingCrawler:\"bingcrawler\",BlackBerry:\"blackberry\",\"ChatGPT-User\":\"chatgpt_user\",Chrome:\"chrome\",ClaudeBot:\"claudebot\",Chromium:\"chromium\",Diffbot:\"diffbot\",DuckDuckBot:\"duckduckbot\",Electron:\"electron\",Epiphany:\"epiphany\",FacebookExternalHit:\"facebookexternalhit\",Firefox:\"firefox\",Focus:\"focus\",Generic:\"generic\",\"Google Search\":\"google_search\",Googlebot:\"googlebot\",GPTBot:\"gptbot\",\"Internet Explorer\":\"ie\",InternetArchiveCrawler:\"internetarchivecrawler\",\"K-Meleon\":\"k_meleon\",LibreWolf:\"librewolf\",Maxthon:\"maxthon\",\"Meta-ExternalAds\":\"meta_externalads\",\"Meta-ExternalAgent\":\"meta_externalagent\",\"Meta-ExternalFetcher\":\"meta_externalfetcher\",\"Meta-WebIndexer\":\"meta_webindexer\",\"Microsoft Edge\":\"edge\",\"MZ Browser\":\"mz\",\"NAVER Whale Browser\":\"naver\",\"OAI-SearchBot\":\"oai_searchbot\",Omgilibot:\"omgilibot\",Opera:\"opera\",\"Opera Coast\":\"opera_coast\",\"Pale Moon\":\"pale_moon\",PerplexityBot:\"perplexitybot\",\"Perplexity-User\":\"perplexity_user\",PhantomJS:\"phantomjs\",PingdomBot:\"pingdombot\",Puffin:\"puffin\",QQ:\"qq\",QQLite:\"qqlite\",QupZilla:\"qupzilla\",Roku:\"roku\",Safari:\"safari\",Sailfish:\"sailfish\",\"Samsung Internet for Android\":\"samsung_internet\",SeaMonkey:\"seamonkey\",Sleipnir:\"sleipnir\",\"Sogou Browser\":\"sogou\",Swing:\"swing\",Tizen:\"tizen\",\"UC Browser\":\"uc\",Vivaldi:\"vivaldi\",\"WebOS Browser\":\"webos\",WeChat:\"wechat\",YahooSlurp:\"yahooslurp\",\"Yandex Browser\":\"yandex\",YandexBot:\"yandexbot\",YouBot:\"youbot\"};t.BROWSER_MAP={amazonbot:\"AmazonBot\",amazon_silk:\"Amazon Silk\",android:\"Android Browser\",baiduspider:\"BaiduSpider\",bada:\"Bada\",bingcrawler:\"BingCrawler\",blackberry:\"BlackBerry\",chatgpt_user:\"ChatGPT-User\",chrome:\"Chrome\",claudebot:\"ClaudeBot\",chromium:\"Chromium\",diffbot:\"Diffbot\",duckduckbot:\"DuckDuckBot\",edge:\"Microsoft Edge\",electron:\"Electron\",epiphany:\"Epiphany\",facebookexternalhit:\"FacebookExternalHit\",firefox:\"Firefox\",focus:\"Focus\",generic:\"Generic\",google_search:\"Google Search\",googlebot:\"Googlebot\",gptbot:\"GPTBot\",ie:\"Internet Explorer\",internetarchivecrawler:\"InternetArchiveCrawler\",k_meleon:\"K-Meleon\",librewolf:\"LibreWolf\",maxthon:\"Maxthon\",meta_externalads:\"Meta-ExternalAds\",meta_externalagent:\"Meta-ExternalAgent\",meta_externalfetcher:\"Meta-ExternalFetcher\",meta_webindexer:\"Meta-WebIndexer\",mz:\"MZ Browser\",naver:\"NAVER Whale Browser\",oai_searchbot:\"OAI-SearchBot\",omgilibot:\"Omgilibot\",opera:\"Opera\",opera_coast:\"Opera Coast\",pale_moon:\"Pale Moon\",perplexitybot:\"PerplexityBot\",perplexity_user:\"Perplexity-User\",phantomjs:\"PhantomJS\",pingdombot:\"PingdomBot\",puffin:\"Puffin\",qq:\"QQ Browser\",qqlite:\"QQ Browser Lite\",qupzilla:\"QupZilla\",roku:\"Roku\",safari:\"Safari\",sailfish:\"Sailfish\",samsung_internet:\"Samsung Internet for Android\",seamonkey:\"SeaMonkey\",sleipnir:\"Sleipnir\",sogou:\"Sogou Browser\",swing:\"Swing\",tizen:\"Tizen\",uc:\"UC Browser\",vivaldi:\"Vivaldi\",webos:\"WebOS Browser\",wechat:\"WeChat\",yahooslurp:\"YahooSlurp\",yandex:\"Yandex Browser\",yandexbot:\"YandexBot\",youbot:\"YouBot\"};t.PLATFORMS_MAP={bot:\"bot\",desktop:\"desktop\",mobile:\"mobile\",tablet:\"tablet\",tv:\"tv\"};t.OS_MAP={Android:\"Android\",Bada:\"Bada\",BlackBerry:\"BlackBerry\",ChromeOS:\"Chrome OS\",HarmonyOS:\"HarmonyOS\",iOS:\"iOS\",Linux:\"Linux\",MacOS:\"macOS\",PlayStation4:\"PlayStation 4\",Roku:\"Roku\",Tizen:\"Tizen\",WebOS:\"WebOS\",Windows:\"Windows\",WindowsPhone:\"Windows Phone\"};t.ENGINE_MAP={Blink:\"Blink\",EdgeHTML:\"EdgeHTML\",Gecko:\"Gecko\",Presto:\"Presto\",Trident:\"Trident\",WebKit:\"WebKit\"}},90:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var i,n=(i=r(91))&&i.__esModule?i:{default:i},a=r(18);function o(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||!1,i.configurable=!0,\"value\"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}var s=function(){function e(){}var t,r,i;return e.getParser=function(e,t){if(void 0===t&&(t=!1),\"string\"!=typeof e)throw new Error(\"UserAgent should be a string\");return new n.default(e,t)},e.parse=function(e){return new n.default(e).getResult()},t=e,i=[{key:\"BROWSER_MAP\",get:function(){return a.BROWSER_MAP}},{key:\"ENGINE_MAP\",get:function(){return a.ENGINE_MAP}},{key:\"OS_MAP\",get:function(){return a.OS_MAP}},{key:\"PLATFORMS_MAP\",get:function(){return a.PLATFORMS_MAP}}],(r=null)&&o(t.prototype,r),i&&o(t,i),e}();t.default=s,e.exports=t.default},91:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var i=u(r(92)),n=u(r(93)),a=u(r(94)),o=u(r(95)),s=u(r(17));function u(e){return e&&e.__esModule?e:{default:e}}var d=function(){function e(e,t){if(void 0===t&&(t=!1),null==e||\"\"===e)throw new Error(\"UserAgent parameter can't be empty\");this._ua=e,this.parsedResult={},!0!==t&&this.parse()}var t=e.prototype;return t.getUA=function(){return this._ua},t.test=function(e){return e.test(this._ua)},t.parseBrowser=function(){var e=this;this.parsedResult.browser={};var t=s.default.find(i.default,(function(t){if(\"function\"==typeof t.test)return t.test(e);if(Array.isArray(t.test))return t.test.some((function(t){return e.test(t)}));throw new Error(\"Browser's test function is not valid\")}));return t&&(this.parsedResult.browser=t.describe(this.getUA())),this.parsedResult.browser},t.getBrowser=function(){return this.parsedResult.browser?this.parsedResult.browser:this.parseBrowser()},t.getBrowserName=function(e){return e?String(this.getBrowser().name).toLowerCase()||\"\":this.getBrowser().name||\"\"},t.getBrowserVersion=function(){return this.getBrowser().version},t.getOS=function(){return this.parsedResult.os?this.parsedResult.os:this.parseOS()},t.parseOS=function(){var e=this;this.parsedResult.os={};var t=s.default.find(n.default,(function(t){if(\"function\"==typeof t.test)return t.test(e);if(Array.isArray(t.test))return t.test.some((function(t){return e.test(t)}));throw new Error(\"Browser's test function is not valid\")}));return t&&(this.parsedResult.os=t.describe(this.getUA())),this.parsedResult.os},t.getOSName=function(e){var t=this.getOS().name;return e?String(t).toLowerCase()||\"\":t||\"\"},t.getOSVersion=function(){return this.getOS().version},t.getPlatform=function(){return this.parsedResult.platform?this.parsedResult.platform:this.parsePlatform()},t.getPlatformType=function(e){void 0===e&&(e=!1);var t=this.getPlatform().type;return e?String(t).toLowerCase()||\"\":t||\"\"},t.parsePlatform=function(){var e=this;this.parsedResult.platform={};var t=s.default.find(a.default,(function(t){if(\"function\"==typeof t.test)return t.test(e);if(Array.isArray(t.test))return t.test.some((function(t){return e.test(t)}));throw new Error(\"Browser's test function is not valid\")}));return t&&(this.parsedResult.platform=t.describe(this.getUA())),this.parsedResult.platform},t.getEngine=function(){return this.parsedResult.engine?this.parsedResult.engine:this.parseEngine()},t.getEngineName=function(e){return e?String(this.getEngine().name).toLowerCase()||\"\":this.getEngine().name||\"\"},t.parseEngine=function(){var e=this;this.parsedResult.engine={};var t=s.default.find(o.default,(function(t){if(\"function\"==typeof t.test)return t.test(e);if(Array.isArray(t.test))return t.test.some((function(t){return e.test(t)}));throw new Error(\"Browser's test function is not valid\")}));return t&&(this.parsedResult.engine=t.describe(this.getUA())),this.parsedResult.engine},t.parse=function(){return this.parseBrowser(),this.parseOS(),this.parsePlatform(),this.parseEngine(),this},t.getResult=function(){return s.default.assign({},this.parsedResult)},t.satisfies=function(e){var t=this,r={},i=0,n={},a=0;if(Object.keys(e).forEach((function(t){var o=e[t];\"string\"==typeof o?(n[t]=o,a+=1):\"object\"==typeof o&&(r[t]=o,i+=1)})),i>0){var o=Object.keys(r),u=s.default.find(o,(function(e){return t.isOS(e)}));if(u){var d=this.satisfies(r[u]);if(void 0!==d)return d}var c=s.default.find(o,(function(e){return t.isPlatform(e)}));if(c){var f=this.satisfies(r[c]);if(void 0!==f)return f}}if(a>0){var l=Object.keys(n),b=s.default.find(l,(function(e){return t.isBrowser(e,!0)}));if(void 0!==b)return this.compareVersion(n[b])}},t.isBrowser=function(e,t){void 0===t&&(t=!1);var r=this.getBrowserName().toLowerCase(),i=e.toLowerCase(),n=s.default.getBrowserTypeByAlias(i);return t&&n&&(i=n.toLowerCase()),i===r},t.compareVersion=function(e){var t=[0],r=e,i=!1,n=this.getBrowserVersion();if(\"string\"==typeof n)return\">\"===e[0]||\"<\"===e[0]?(r=e.substr(1),\"=\"===e[1]?(i=!0,r=e.substr(2)):t=[],\">\"===e[0]?t.push(1):t.push(-1)):\"=\"===e[0]?r=e.substr(1):\"~\"===e[0]&&(i=!0,r=e.substr(1)),t.indexOf(s.default.compareVersions(n,r,i))>-1},t.isOS=function(e){return this.getOSName(!0)===String(e).toLowerCase()},t.isPlatform=function(e){return this.getPlatformType(!0)===String(e).toLowerCase()},t.isEngine=function(e){return this.getEngineName(!0)===String(e).toLowerCase()},t.is=function(e,t){return void 0===t&&(t=!1),this.isBrowser(e,t)||this.isOS(e)||this.isPlatform(e)},t.some=function(e){var t=this;return void 0===e&&(e=[]),e.some((function(e){return t.is(e)}))},e}();t.default=d,e.exports=t.default},92:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var i,n=(i=r(17))&&i.__esModule?i:{default:i};var a=/version\\/(\\d+(\\.?_?\\d+)+)/i,o=[{test:[/gptbot/i],describe:function(e){var t={name:\"GPTBot\"},r=n.default.getFirstMatch(/gptbot\\/(\\d+(\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/chatgpt-user/i],describe:function(e){var t={name:\"ChatGPT-User\"},r=n.default.getFirstMatch(/chatgpt-user\\/(\\d+(\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/oai-searchbot/i],describe:function(e){var t={name:\"OAI-SearchBot\"},r=n.default.getFirstMatch(/oai-searchbot\\/(\\d+(\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/claudebot/i,/claude-web/i,/claude-user/i,/claude-searchbot/i],describe:function(e){var t={name:\"ClaudeBot\"},r=n.default.getFirstMatch(/(?:claudebot|claude-web|claude-user|claude-searchbot)\\/(\\d+(\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/omgilibot/i,/webzio-extended/i],describe:function(e){var t={name:\"Omgilibot\"},r=n.default.getFirstMatch(/(?:omgilibot|webzio-extended)\\/(\\d+(\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/diffbot/i],describe:function(e){var t={name:\"Diffbot\"},r=n.default.getFirstMatch(/diffbot\\/(\\d+(\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/perplexitybot/i],describe:function(e){var t={name:\"PerplexityBot\"},r=n.default.getFirstMatch(/perplexitybot\\/(\\d+(\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/perplexity-user/i],describe:function(e){var t={name:\"Perplexity-User\"},r=n.default.getFirstMatch(/perplexity-user\\/(\\d+(\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/youbot/i],describe:function(e){var t={name:\"YouBot\"},r=n.default.getFirstMatch(/youbot\\/(\\d+(\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/meta-webindexer/i],describe:function(e){var t={name:\"Meta-WebIndexer\"},r=n.default.getFirstMatch(/meta-webindexer\\/(\\d+(\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/meta-externalads/i],describe:function(e){var t={name:\"Meta-ExternalAds\"},r=n.default.getFirstMatch(/meta-externalads\\/(\\d+(\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/meta-externalagent/i],describe:function(e){var t={name:\"Meta-ExternalAgent\"},r=n.default.getFirstMatch(/meta-externalagent\\/(\\d+(\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/meta-externalfetcher/i],describe:function(e){var t={name:\"Meta-ExternalFetcher\"},r=n.default.getFirstMatch(/meta-externalfetcher\\/(\\d+(\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/googlebot/i],describe:function(e){var t={name:\"Googlebot\"},r=n.default.getFirstMatch(/googlebot\\/(\\d+(\\.\\d+))/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/amazonbot/i],describe:function(e){var t={name:\"AmazonBot\"},r=n.default.getFirstMatch(/amazonbot\\/(\\d+(\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/bingbot/i],describe:function(e){var t={name:\"BingCrawler\"},r=n.default.getFirstMatch(/bingbot\\/(\\d+(\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/baiduspider/i],describe:function(e){var t={name:\"BaiduSpider\"},r=n.default.getFirstMatch(/baiduspider\\/(\\d+(\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/duckduckbot/i],describe:function(e){var t={name:\"DuckDuckBot\"},r=n.default.getFirstMatch(/duckduckbot\\/(\\d+(\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/ia_archiver/i],describe:function(e){var t={name:\"InternetArchiveCrawler\"},r=n.default.getFirstMatch(/ia_archiver\\/(\\d+(\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/facebookexternalhit/i,/facebookcatalog/i],describe:function(){return{name:\"FacebookExternalHit\"}}},{test:[/yahoo!?[\\s/]*slurp/i],describe:function(){return{name:\"YahooSlurp\"}}},{test:[/yandexbot/i,/yandexmobilebot/i],describe:function(){return{name:\"YandexBot\"}}},{test:[/pingdom/i],describe:function(){return{name:\"PingdomBot\"}}},{test:[/opera/i],describe:function(e){var t={name:\"Opera\"},r=n.default.getFirstMatch(a,e)||n.default.getFirstMatch(/(?:opera)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/opr\\/|opios/i],describe:function(e){var t={name:\"Opera\"},r=n.default.getFirstMatch(/(?:opr|opios)[\\s/](\\S+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/SamsungBrowser/i],describe:function(e){var t={name:\"Samsung Internet for Android\"},r=n.default.getFirstMatch(a,e)||n.default.getFirstMatch(/(?:SamsungBrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/Whale/i],describe:function(e){var t={name:\"NAVER Whale Browser\"},r=n.default.getFirstMatch(a,e)||n.default.getFirstMatch(/(?:whale)[\\s/](\\d+(?:\\.\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/PaleMoon/i],describe:function(e){var t={name:\"Pale Moon\"},r=n.default.getFirstMatch(a,e)||n.default.getFirstMatch(/(?:PaleMoon)[\\s/](\\d+(?:\\.\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/MZBrowser/i],describe:function(e){var t={name:\"MZ Browser\"},r=n.default.getFirstMatch(/(?:MZBrowser)[\\s/](\\d+(?:\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/focus/i],describe:function(e){var t={name:\"Focus\"},r=n.default.getFirstMatch(/(?:focus)[\\s/](\\d+(?:\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/swing/i],describe:function(e){var t={name:\"Swing\"},r=n.default.getFirstMatch(/(?:swing)[\\s/](\\d+(?:\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/coast/i],describe:function(e){var t={name:\"Opera Coast\"},r=n.default.getFirstMatch(a,e)||n.default.getFirstMatch(/(?:coast)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/opt\\/\\d+(?:.?_?\\d+)+/i],describe:function(e){var t={name:\"Opera Touch\"},r=n.default.getFirstMatch(/(?:opt)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/yabrowser/i],describe:function(e){var t={name:\"Yandex Browser\"},r=n.default.getFirstMatch(/(?:yabrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/ucbrowser/i],describe:function(e){var t={name:\"UC Browser\"},r=n.default.getFirstMatch(a,e)||n.default.getFirstMatch(/(?:ucbrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/Maxthon|mxios/i],describe:function(e){var t={name:\"Maxthon\"},r=n.default.getFirstMatch(a,e)||n.default.getFirstMatch(/(?:Maxthon|mxios)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/epiphany/i],describe:function(e){var t={name:\"Epiphany\"},r=n.default.getFirstMatch(a,e)||n.default.getFirstMatch(/(?:epiphany)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/puffin/i],describe:function(e){var t={name:\"Puffin\"},r=n.default.getFirstMatch(a,e)||n.default.getFirstMatch(/(?:puffin)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/sleipnir/i],describe:function(e){var t={name:\"Sleipnir\"},r=n.default.getFirstMatch(a,e)||n.default.getFirstMatch(/(?:sleipnir)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/k-meleon/i],describe:function(e){var t={name:\"K-Meleon\"},r=n.default.getFirstMatch(a,e)||n.default.getFirstMatch(/(?:k-meleon)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/micromessenger/i],describe:function(e){var t={name:\"WeChat\"},r=n.default.getFirstMatch(/(?:micromessenger)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/qqbrowser/i],describe:function(e){var t={name:/qqbrowserlite/i.test(e)?\"QQ Browser Lite\":\"QQ Browser\"},r=n.default.getFirstMatch(/(?:qqbrowserlite|qqbrowser)[/](\\d+(\\.?_?\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/msie|trident/i],describe:function(e){var t={name:\"Internet Explorer\"},r=n.default.getFirstMatch(/(?:msie |rv:)(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/\\sedg\\//i],describe:function(e){var t={name:\"Microsoft Edge\"},r=n.default.getFirstMatch(/\\sedg\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/edg([ea]|ios)/i],describe:function(e){var t={name:\"Microsoft Edge\"},r=n.default.getSecondMatch(/edg([ea]|ios)\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/vivaldi/i],describe:function(e){var t={name:\"Vivaldi\"},r=n.default.getFirstMatch(/vivaldi\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/seamonkey/i],describe:function(e){var t={name:\"SeaMonkey\"},r=n.default.getFirstMatch(/seamonkey\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/sailfish/i],describe:function(e){var t={name:\"Sailfish\"},r=n.default.getFirstMatch(/sailfish\\s?browser\\/(\\d+(\\.\\d+)?)/i,e);return r&&(t.version=r),t}},{test:[/silk/i],describe:function(e){var t={name:\"Amazon Silk\"},r=n.default.getFirstMatch(/silk\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/phantom/i],describe:function(e){var t={name:\"PhantomJS\"},r=n.default.getFirstMatch(/phantomjs\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/slimerjs/i],describe:function(e){var t={name:\"SlimerJS\"},r=n.default.getFirstMatch(/slimerjs\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/blackberry|\\bbb\\d+/i,/rim\\stablet/i],describe:function(e){var t={name:\"BlackBerry\"},r=n.default.getFirstMatch(a,e)||n.default.getFirstMatch(/blackberry[\\d]+\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/(web|hpw)[o0]s/i],describe:function(e){var t={name:\"WebOS Browser\"},r=n.default.getFirstMatch(a,e)||n.default.getFirstMatch(/w(?:eb)?[o0]sbrowser\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/bada/i],describe:function(e){var t={name:\"Bada\"},r=n.default.getFirstMatch(/dolfin\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/tizen/i],describe:function(e){var t={name:\"Tizen\"},r=n.default.getFirstMatch(/(?:tizen\\s?)?browser\\/(\\d+(\\.?_?\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/qupzilla/i],describe:function(e){var t={name:\"QupZilla\"},r=n.default.getFirstMatch(/(?:qupzilla)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/librewolf/i],describe:function(e){var t={name:\"LibreWolf\"},r=n.default.getFirstMatch(/(?:librewolf)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/firefox|iceweasel|fxios/i],describe:function(e){var t={name:\"Firefox\"},r=n.default.getFirstMatch(/(?:firefox|iceweasel|fxios)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/electron/i],describe:function(e){var t={name:\"Electron\"},r=n.default.getFirstMatch(/(?:electron)\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/sogoumobilebrowser/i,/metasr/i,/se 2\\.[x]/i],describe:function(e){var t={name:\"Sogou Browser\"},r=n.default.getFirstMatch(/(?:sogoumobilebrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i,e),i=n.default.getFirstMatch(/(?:chrome|crios|crmo)\\/(\\d+(\\.?_?\\d+)+)/i,e),a=n.default.getFirstMatch(/se ([\\d.]+)x/i,e),o=r||i||a;return o&&(t.version=o),t}},{test:[/MiuiBrowser/i],describe:function(e){var t={name:\"Miui\"},r=n.default.getFirstMatch(/(?:MiuiBrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/chromium/i],describe:function(e){var t={name:\"Chromium\"},r=n.default.getFirstMatch(/(?:chromium)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/chrome|crios|crmo/i],describe:function(e){var t={name:\"Chrome\"},r=n.default.getFirstMatch(/(?:chrome|crios|crmo)\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/GSA/i],describe:function(e){var t={name:\"Google Search\"},r=n.default.getFirstMatch(/(?:GSA)\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:function(e){var t=!e.test(/like android/i),r=e.test(/android/i);return t&&r},describe:function(e){var t={name:\"Android Browser\"},r=n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/playstation 4/i],describe:function(e){var t={name:\"PlayStation 4\"},r=n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/safari|applewebkit/i],describe:function(e){var t={name:\"Safari\"},r=n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/.*/i],describe:function(e){var t=-1!==e.search(\"\\\\(\")?/^(.*)\\/(.*)[ \\t]\\((.*)/:/^(.*)\\/(.*) /;return{name:n.default.getFirstMatch(t,e),version:n.default.getSecondMatch(t,e)}}}];t.default=o,e.exports=t.default},93:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var i,n=(i=r(17))&&i.__esModule?i:{default:i},a=r(18);var o=[{test:[/Roku\\/DVP/],describe:function(e){var t=n.default.getFirstMatch(/Roku\\/DVP-(\\d+\\.\\d+)/i,e);return{name:a.OS_MAP.Roku,version:t}}},{test:[/windows phone/i],describe:function(e){var t=n.default.getFirstMatch(/windows phone (?:os)?\\s?(\\d+(\\.\\d+)*)/i,e);return{name:a.OS_MAP.WindowsPhone,version:t}}},{test:[/windows /i],describe:function(e){var t=n.default.getFirstMatch(/Windows ((NT|XP)( \\d\\d?.\\d)?)/i,e),r=n.default.getWindowsVersionName(t);return{name:a.OS_MAP.Windows,version:t,versionName:r}}},{test:[/Macintosh(.*?) FxiOS(.*?)\\//],describe:function(e){var t={name:a.OS_MAP.iOS},r=n.default.getSecondMatch(/(Version\\/)(\\d[\\d.]+)/,e);return r&&(t.version=r),t}},{test:[/macintosh/i],describe:function(e){var t=n.default.getFirstMatch(/mac os x (\\d+(\\.?_?\\d+)+)/i,e).replace(/[_\\s]/g,\".\"),r=n.default.getMacOSVersionName(t),i={name:a.OS_MAP.MacOS,version:t};return r&&(i.versionName=r),i}},{test:[/(ipod|iphone|ipad)/i],describe:function(e){var t=n.default.getFirstMatch(/os (\\d+([_\\s]\\d+)*) like mac os x/i,e).replace(/[_\\s]/g,\".\");return{name:a.OS_MAP.iOS,version:t}}},{test:[/OpenHarmony/i],describe:function(e){var t=n.default.getFirstMatch(/OpenHarmony\\s+(\\d+(\\.\\d+)*)/i,e);return{name:a.OS_MAP.HarmonyOS,version:t}}},{test:function(e){var t=!e.test(/like android/i),r=e.test(/android/i);return t&&r},describe:function(e){var t=n.default.getFirstMatch(/android[\\s/-](\\d+(\\.\\d+)*)/i,e),r=n.default.getAndroidVersionName(t),i={name:a.OS_MAP.Android,version:t};return r&&(i.versionName=r),i}},{test:[/(web|hpw)[o0]s/i],describe:function(e){var t=n.default.getFirstMatch(/(?:web|hpw)[o0]s\\/(\\d+(\\.\\d+)*)/i,e),r={name:a.OS_MAP.WebOS};return t&&t.length&&(r.version=t),r}},{test:[/blackberry|\\bbb\\d+/i,/rim\\stablet/i],describe:function(e){var t=n.default.getFirstMatch(/rim\\stablet\\sos\\s(\\d+(\\.\\d+)*)/i,e)||n.default.getFirstMatch(/blackberry\\d+\\/(\\d+([_\\s]\\d+)*)/i,e)||n.default.getFirstMatch(/\\bbb(\\d+)/i,e);return{name:a.OS_MAP.BlackBerry,version:t}}},{test:[/bada/i],describe:function(e){var t=n.default.getFirstMatch(/bada\\/(\\d+(\\.\\d+)*)/i,e);return{name:a.OS_MAP.Bada,version:t}}},{test:[/tizen/i],describe:function(e){var t=n.default.getFirstMatch(/tizen[/\\s](\\d+(\\.\\d+)*)/i,e);return{name:a.OS_MAP.Tizen,version:t}}},{test:[/linux/i],describe:function(){return{name:a.OS_MAP.Linux}}},{test:[/CrOS/],describe:function(){return{name:a.OS_MAP.ChromeOS}}},{test:[/PlayStation 4/],describe:function(e){var t=n.default.getFirstMatch(/PlayStation 4[/\\s](\\d+(\\.\\d+)*)/i,e);return{name:a.OS_MAP.PlayStation4,version:t}}}];t.default=o,e.exports=t.default},94:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var i,n=(i=r(17))&&i.__esModule?i:{default:i},a=r(18);var o=[{test:[/googlebot/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"Google\"}}},{test:[/amazonbot/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"Amazon\"}}},{test:[/gptbot/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"OpenAI\"}}},{test:[/chatgpt-user/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"OpenAI\"}}},{test:[/oai-searchbot/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"OpenAI\"}}},{test:[/baiduspider/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"Baidu\"}}},{test:[/bingbot/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"Bing\"}}},{test:[/duckduckbot/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"DuckDuckGo\"}}},{test:[/claudebot/i,/claude-web/i,/claude-user/i,/claude-searchbot/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"Anthropic\"}}},{test:[/omgilibot/i,/webzio-extended/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"Webz.io\"}}},{test:[/diffbot/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"Diffbot\"}}},{test:[/perplexitybot/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"Perplexity AI\"}}},{test:[/perplexity-user/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"Perplexity AI\"}}},{test:[/youbot/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"You.com\"}}},{test:[/ia_archiver/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"Internet Archive\"}}},{test:[/meta-webindexer/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"Meta\"}}},{test:[/meta-externalads/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"Meta\"}}},{test:[/meta-externalagent/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"Meta\"}}},{test:[/meta-externalfetcher/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"Meta\"}}},{test:[/facebookexternalhit/i,/facebookcatalog/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"Meta\"}}},{test:[/yahoo/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"Yahoo\"}}},{test:[/yandexbot/i,/yandexmobilebot/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"Yandex\"}}},{test:[/pingdom/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"Pingdom\"}}},{test:[/huawei/i],describe:function(e){var t=n.default.getFirstMatch(/(can-l01)/i,e)&&\"Nova\",r={type:a.PLATFORMS_MAP.mobile,vendor:\"Huawei\"};return t&&(r.model=t),r}},{test:[/nexus\\s*(?:7|8|9|10).*/i],describe:function(){return{type:a.PLATFORMS_MAP.tablet,vendor:\"Nexus\"}}},{test:[/ipad/i],describe:function(){return{type:a.PLATFORMS_MAP.tablet,vendor:\"Apple\",model:\"iPad\"}}},{test:[/Macintosh(.*?) FxiOS(.*?)\\//],describe:function(){return{type:a.PLATFORMS_MAP.tablet,vendor:\"Apple\",model:\"iPad\"}}},{test:[/kftt build/i],describe:function(){return{type:a.PLATFORMS_MAP.tablet,vendor:\"Amazon\",model:\"Kindle Fire HD 7\"}}},{test:[/silk/i],describe:function(){return{type:a.PLATFORMS_MAP.tablet,vendor:\"Amazon\"}}},{test:[/tablet(?! pc)/i],describe:function(){return{type:a.PLATFORMS_MAP.tablet}}},{test:function(e){var t=e.test(/ipod|iphone/i),r=e.test(/like (ipod|iphone)/i);return t&&!r},describe:function(e){var t=n.default.getFirstMatch(/(ipod|iphone)/i,e);return{type:a.PLATFORMS_MAP.mobile,vendor:\"Apple\",model:t}}},{test:[/nexus\\s*[0-6].*/i,/galaxy nexus/i],describe:function(){return{type:a.PLATFORMS_MAP.mobile,vendor:\"Nexus\"}}},{test:[/Nokia/i],describe:function(e){var t=n.default.getFirstMatch(/Nokia\\s+([0-9]+(\\.[0-9]+)?)/i,e),r={type:a.PLATFORMS_MAP.mobile,vendor:\"Nokia\"};return t&&(r.model=t),r}},{test:[/[^-]mobi/i],describe:function(){return{type:a.PLATFORMS_MAP.mobile}}},{test:function(e){return\"blackberry\"===e.getBrowserName(!0)},describe:function(){return{type:a.PLATFORMS_MAP.mobile,vendor:\"BlackBerry\"}}},{test:function(e){return\"bada\"===e.getBrowserName(!0)},describe:function(){return{type:a.PLATFORMS_MAP.mobile}}},{test:function(e){return\"windows phone\"===e.getBrowserName()},describe:function(){return{type:a.PLATFORMS_MAP.mobile,vendor:\"Microsoft\"}}},{test:function(e){var t=Number(String(e.getOSVersion()).split(\".\")[0]);return\"android\"===e.getOSName(!0)&&t>=3},describe:function(){return{type:a.PLATFORMS_MAP.tablet}}},{test:function(e){return\"android\"===e.getOSName(!0)},describe:function(){return{type:a.PLATFORMS_MAP.mobile}}},{test:function(e){return\"macos\"===e.getOSName(!0)},describe:function(){return{type:a.PLATFORMS_MAP.desktop,vendor:\"Apple\"}}},{test:function(e){return\"windows\"===e.getOSName(!0)},describe:function(){return{type:a.PLATFORMS_MAP.desktop}}},{test:function(e){return\"linux\"===e.getOSName(!0)},describe:function(){return{type:a.PLATFORMS_MAP.desktop}}},{test:function(e){return\"playstation 4\"===e.getOSName(!0)},describe:function(){return{type:a.PLATFORMS_MAP.tv}}},{test:function(e){return\"roku\"===e.getOSName(!0)},describe:function(){return{type:a.PLATFORMS_MAP.tv}}}];t.default=o,e.exports=t.default},95:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var i,n=(i=r(17))&&i.__esModule?i:{default:i},a=r(18);var o=[{test:function(e){return\"microsoft edge\"===e.getBrowserName(!0)},describe:function(e){if(/\\sedg\\//i.test(e))return{name:a.ENGINE_MAP.Blink};var t=n.default.getFirstMatch(/edge\\/(\\d+(\\.?_?\\d+)+)/i,e);return{name:a.ENGINE_MAP.EdgeHTML,version:t}}},{test:[/trident/i],describe:function(e){var t={name:a.ENGINE_MAP.Trident},r=n.default.getFirstMatch(/trident\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:function(e){return e.test(/presto/i)},describe:function(e){var t={name:a.ENGINE_MAP.Presto},r=n.default.getFirstMatch(/presto\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:function(e){var t=e.test(/gecko/i),r=e.test(/like gecko/i);return t&&!r},describe:function(e){var t={name:a.ENGINE_MAP.Gecko},r=n.default.getFirstMatch(/gecko\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/(apple)?webkit\\/537\\.36/i],describe:function(){return{name:a.ENGINE_MAP.Blink}}},{test:[/(apple)?webkit/i],describe:function(e){var t={name:a.ENGINE_MAP.WebKit},r=n.default.getFirstMatch(/webkit\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}}];t.default=o,e.exports=t.default}})}));","import Bowser from 'bowser';\r\n\r\n/**\r\n * 获取浏览器名称和版本等设备信息\r\n */\r\nexport function getBrowserNameVersion() {\r\n const { browser, os, platform } = Bowser.parse(window.navigator.userAgent);\r\n return {\r\n browser,\r\n os,\r\n platform,\r\n ratio: getRatio(),\r\n wh: getWH(),\r\n };\r\n}\r\n\r\n/**\r\n * 获取屏幕缩放比例\r\n */\r\nfunction getRatio() {\r\n let ratio = 0;\r\n const screen: any = window.screen;\r\n const ua = navigator.userAgent.toLowerCase();\r\n if (window.devicePixelRatio !== undefined) {\r\n ratio = window.devicePixelRatio;\r\n } else if (~ua.indexOf('msie')) {\r\n if (screen.deviceXDPI && screen.logicalXDPI) {\r\n ratio = screen.deviceXDPI / screen.logicalXDPI;\r\n }\r\n } else if (window.outerWidth !== undefined && window.innerWidth !== undefined) {\r\n ratio = window.outerWidth / window.innerWidth;\r\n }\r\n\r\n if (ratio) {\r\n ratio = Math.round(ratio * 100);\r\n }\r\n return ratio;\r\n}\r\n\r\n/**\r\n * 获取浏览器屏幕宽高\r\n */\r\nfunction getWH() {\r\n return {\r\n width: window.screen.width,\r\n height: window.screen.height,\r\n };\r\n}\r\n\r\n/**\r\n * 异步执行 / 空闲时刻 / 每帧回调\r\n */\r\nexport const nextTime =\r\n window.requestIdleCallback || window.requestAnimationFrame || ((callback) => window.setTimeout(callback, 1000 / 60));\r\n\r\n/**\r\n * 页面卸载前的回调\r\n */\r\nexport const beforeUnload = (callback: () => void) => {\r\n window.addEventListener('beforeunload', () => {\r\n callback();\r\n });\r\n};\r\n","/**\r\n * 节流函数\r\n * @param fn 执行函数\r\n * @param delay 延迟时间(ms)\r\n */\r\nexport function throttle<T extends (...args: any[]) => any>(fn: T, delay: number): (...args: Parameters<T>) => void {\r\n let lastTime = 0;\r\n return function (this: any, ...args: Parameters<T>) {\r\n const now = Date.now();\r\n if (now - lastTime >= delay) {\r\n fn.apply(this, args);\r\n lastTime = now;\r\n }\r\n };\r\n}\r\n","/**\r\n * 事件发送前的最大缓存数\r\n */\r\nexport const MAX_CACHE_LEN = 5;\r\n\r\n/**\r\n * 发送缓存事件前的最大等待时间(毫秒)\r\n */\r\nexport const MAX_WAITING_TIME = 30000;\r\n\r\n/**\r\n * 存储的用户UUID\r\n */\r\nexport const UUID = 'track_uuid';\r\n\r\n/**\r\n * 默认长任务阈值 (ms)\r\n */\r\nexport const DEFAULT_LONG_TASK_THRESHOLD = 100;\r\n\r\n/**\r\n * 默认资源加载阈值 (ms)\r\n */\r\nexport const DEFAULT_RESOURCE_THRESHOLD = 1000;\r\n\r\n/**\r\n * 默认 INP 阈值 (ms)\r\n */\r\nexport const DEFAULT_INP_THRESHOLD = 200;\r\n","import { nanoid } from 'nanoid';\r\nimport { getBrowserNameVersion } from '../utils';\r\nimport type { Device } from '../types/index';\r\nimport { UUID } from '../constant';\r\n\r\n//基本信息\r\nexport default class DeviceInfo {\r\n device: Device;\r\n uuid: string = '';\r\n\r\n constructor(uuidKey: string = UUID) {\r\n //设备信息\r\n this.device = getBrowserNameVersion();\r\n this.getUUid(uuidKey);\r\n }\r\n\r\n private getUUid(key: string) {\r\n try {\r\n const uuid = localStorage.getItem(key);\r\n if (uuid) {\r\n this.uuid = uuid;\r\n } else {\r\n this.uuid = nanoid();\r\n localStorage.setItem(key, this.uuid);\r\n }\r\n } catch (e) {\r\n // 降级处理:如果 localStorage 不可用(如隐身模式),仅在内存中生成 UUID\r\n this.uuid = nanoid();\r\n console.warn('[CWJ Monitor] localStorage access failed, UUID will not be persisted:', e);\r\n }\r\n }\r\n}\r\n","import DeviceInfo from './deviceInfo';\r\nimport { getDate } from '../utils';\r\nimport type { Options, MonitoringPayload } from '../types/index';\r\nimport { EMIT_TYPE } from '../types/event';\r\nimport Reporter from './reporter';\r\n\r\n/**\r\n * EventTrack 类处理事件收集和转换\r\n * 职责:\r\n * 1. 管理设备信息 (DeviceInfo)\r\n * 2. 格式化原始数据为 MonitoringPayload\r\n * 3. 将格式化后的数据交给 Reporter 发送\r\n */\r\nexport default class EventTrack {\r\n private deviceInfo: DeviceInfo;\r\n private reporter: Reporter;\r\n private data?: Record<string, any>;\r\n\r\n constructor(options: Options, reporter: Reporter) {\r\n this.deviceInfo = new DeviceInfo(options.uuidKey);\r\n this.reporter = reporter;\r\n this.data = options.data;\r\n }\r\n\r\n /**\r\n * 格式化事件数据用于传输\r\n */\r\n private formatter(type: EMIT_TYPE | string, data: any): MonitoringPayload {\r\n const timestamp = Date.now();\r\n return {\r\n device: this.deviceInfo.device,\r\n uuid: this.deviceInfo.uuid,\r\n type,\r\n data,\r\n date: getDate(timestamp),\r\n userData: this.data,\r\n };\r\n }\r\n\r\n /**\r\n * 公共方法:发送事件\r\n * 将事件格式化后交给 reporter 处理\r\n */\r\n public emit(type: EMIT_TYPE | string, data?: any): void {\r\n const payload = this.formatter(type, data);\r\n this.reporter.send(payload);\r\n }\r\n\r\n /**\r\n * 获取上报器实例 (供 Core 使用)\r\n */\r\n public getReporter(): Reporter {\r\n return this.reporter;\r\n }\r\n}\r\n","import { MAX_CACHE_LEN, MAX_WAITING_TIME } from '../constant';\r\nimport { nextTime, beforeUnload } from '../utils';\r\nimport type { MonitoringPayload, TransportConfig } from '../types/index';\r\n\r\n/**\r\n * Reporter 类负责数据的批量上报、重试和调度\r\n */\r\nexport default class Reporter {\r\n private url: string;\r\n private transportConfig: Required<TransportConfig>;\r\n private events: MonitoringPayload[] = [];\r\n private isSending = false;\r\n private timer: ReturnType<typeof setTimeout> | null = null;\r\n\r\n constructor(url: string, config?: TransportConfig) {\r\n this.url = url;\r\n this.transportConfig = {\r\n maxBatchSize: config?.maxBatchSize ?? MAX_CACHE_LEN,\r\n maxWaitTime: config?.maxWaitTime ?? MAX_WAITING_TIME,\r\n };\r\n\r\n // 页面卸载前刷新事件\r\n beforeUnload(() => this.flush());\r\n }\r\n\r\n /**\r\n * 将事件加入队列\r\n */\r\n public send(payload: MonitoringPayload) {\r\n this.events.push(payload);\r\n\r\n // 达到最大批处理大小时立即发送,否则通过定时器发送\r\n if (this.events.length >= this.transportConfig.maxBatchSize) {\r\n this.clearTimer();\r\n this.triggerSend();\r\n } else if (!this.timer) {\r\n this.timer = setTimeout(() => {\r\n this.timer = null;\r\n this.triggerSend();\r\n }, this.transportConfig.maxWaitTime);\r\n }\r\n }\r\n\r\n /**\r\n * 立即刷新所有待发送事件\r\n */\r\n public flush(): Promise<void> {\r\n return this.triggerSend(true);\r\n }\r\n\r\n private clearTimer() {\r\n if (this.timer) {\r\n clearTimeout(this.timer);\r\n this.timer = null;\r\n }\r\n }\r\n\r\n /**\r\n * 触发发送逻辑\r\n */\r\n private async triggerSend(isFlush = false): Promise<void> {\r\n if (this.isSending || !this.events.length) return;\r\n\r\n this.isSending = true;\r\n\r\n try {\r\n const maxLen = isFlush ? this.events.length : this.transportConfig.maxBatchSize;\r\n const sendEvents = this.events.slice(0, maxLen);\r\n this.events = this.events.slice(maxLen);\r\n\r\n await this.safeSend(sendEvents);\r\n\r\n // 如果还有剩余事件,调度下次发送\r\n if (this.events.length) {\r\n nextTime(() => this.triggerSend());\r\n }\r\n } catch (error) {\r\n // 失败处理逻辑,目前简单忽略\r\n } finally {\r\n this.isSending = false;\r\n }\r\n }\r\n\r\n /**\r\n * 使用 navigator.sendBeacon 或 XMLHttpRequest 安全发送事件\r\n */\r\n private safeSend(events: MonitoringPayload[]): Promise<void> {\r\n return new Promise((resolve, reject) => {\r\n if (!events.length) {\r\n resolve();\r\n return;\r\n }\r\n\r\n const data = JSON.stringify(events);\r\n\r\n // 优先尝试 sendBeacon(更适合页面卸载)\r\n if (typeof navigator.sendBeacon === 'function') {\r\n const blob = new Blob([data], { type: 'application/json' });\r\n const success = navigator.sendBeacon(this.url, blob);\r\n\r\n if (success) {\r\n resolve();\r\n } else {\r\n this.sendViaXHR(data, resolve, reject);\r\n }\r\n } else {\r\n // 降级到 XMLHttpRequest\r\n this.sendViaXHR(data, resolve, reject);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * 通过 XMLHttpRequest 发送\r\n */\r\n private sendViaXHR(data: string, resolve: () => void, reject: (error: Error) => void): void {\r\n const xhr = new XMLHttpRequest();\r\n\r\n xhr.open('POST', this.url, true);\r\n xhr.setRequestHeader('Content-Type', 'application/json');\r\n\r\n xhr.onload = () => {\r\n if (xhr.status >= 200 && xhr.status < 300) {\r\n resolve();\r\n } else {\r\n reject(new Error(`HTTP ${xhr.status}: ${xhr.statusText}`));\r\n }\r\n };\r\n\r\n xhr.onerror = () => reject(new Error('Network error'));\r\n xhr.ontimeout = () => reject(new Error('Request timeout'));\r\n\r\n xhr.timeout = 10000;\r\n xhr.send(data);\r\n }\r\n}\r\n","/**\r\n * 插件类型标识符\r\n * 用于插件注册和配置\r\n */\r\nexport enum TYPES {\r\n ERROR = 'error',\r\n CLICK = 'click',\r\n PERFORMANCE = 'performance',\r\n ROUTER = 'router',\r\n XHR = 'xhr',\r\n FETCH = 'fetch',\r\n}\r\n\r\n/**\r\n * 事件发送类型标识符\r\n * 用于向追踪系统发送事件时使用\r\n */\r\nexport enum EMIT_TYPE {\r\n // 错误事件\r\n ERROR = 'error',\r\n\r\n // 行为事件\r\n BEHAVIOR_CLICK = 'click',\r\n ROUTE_CHANGE = 'route_change',\r\n\r\n // 性能事件 - Core Web Vitals\r\n PERFORMANCE_FP = 'performance_fp',\r\n PERFORMANCE_FCP = 'performance_fcp',\r\n PERFORMANCE_LCP = 'performance_lcp',\r\n PERFORMANCE_INP = 'performance_inp',\r\n PERFORMANCE_LONGTASK = 'performance_longtask',\r\n PERFORMANCE_RESOURCE = 'performance_resource',\r\n\r\n // XHR 事件\r\n XHR = 'xhr',\r\n FETCH = 'fetch',\r\n\r\n // 自定义事件\r\n CUSTOM = 'custom',\r\n}\r\n","import EventTrack from './eventTrack';\r\nimport Reporter from './reporter';\r\nimport type { Options } from '../types/index';\r\nimport type { IPlugin } from '../plugin/definePlugin';\r\nimport { EMIT_TYPE } from '../types/event';\r\n\r\nexport default class Core extends EventTrack {\r\n private pluginMap: Map<string, IPlugin> = new Map();\r\n private options: Options;\r\n\r\n constructor(options: Options) {\r\n const reporter = new Reporter(options.url, options.transport);\r\n super(options, reporter);\r\n this.options = options;\r\n }\r\n\r\n use(plugin: IPlugin): Core {\r\n if (!this.pluginMap.has(plugin.name)) {\r\n this.pluginMap.set(plugin.name, plugin);\r\n }\r\n return this; // 方便链式调用\r\n }\r\n\r\n /**\r\n * 自定义事件上报\r\n * @param data 上报的数据\r\n * @param type 事件类型,默认为 'custom'\r\n */\r\n log(data: any, type: string = EMIT_TYPE.CUSTOM): void {\r\n this.emit(type, data);\r\n }\r\n\r\n // 启动插件\r\n run() {\r\n const context = {\r\n emit: this.emit.bind(this),\r\n url: this.options.url,\r\n };\r\n\r\n this.pluginMap.forEach((plugin) => {\r\n plugin.install(context);\r\n });\r\n\r\n // 挂载全局变量\r\n this.mount();\r\n }\r\n\r\n // 停止并卸载所有插件\r\n stop() {\r\n this.pluginMap.forEach((plugin) => {\r\n plugin.uninstall?.();\r\n });\r\n this.pluginMap.clear();\r\n\r\n // 卸载全局变量\r\n this.unmount();\r\n }\r\n\r\n private mount() {\r\n const { globalKey = '$track' } = this.options;\r\n if (typeof window !== 'undefined') {\r\n (window as any)[globalKey] = this;\r\n }\r\n }\r\n\r\n private unmount() {\r\n const { globalKey = '$track' } = this.options;\r\n if (typeof window !== 'undefined' && (window as any)[globalKey] === this) {\r\n delete (window as any)[globalKey];\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * 创建监控实例的工厂函数\r\n * @param options 配置项\r\n */\r\nexport function createMonitor(options: Options): Core {\r\n return new Core(options);\r\n}\r\n","import { IPlugin, PluginContext } from './definePlugin';\r\nimport { EMIT_TYPE, TYPES } from '../types/event';\r\n\r\nexport interface ErrorOptions {\r\n /** 过滤函数,返回 false 则不记录该错误 */\r\n filter?: (error: any) => boolean;\r\n}\r\n\r\n/**\r\n * 错误监控插件\r\n * 监控并捕获 JavaScript 错误、资源加载错误、Promise 拒绝以及 console.error 调用\r\n */\r\nexport const ErrorPlugin = (options: ErrorOptions = {}): IPlugin => {\r\n let originalConsoleError: (...data: any[]) => void;\r\n let context: PluginContext;\r\n\r\n /**\r\n * 重写 console.error 以捕获错误日志\r\n */\r\n const overrideConsoleError = () => {\r\n originalConsoleError = console.error;\r\n\r\n console.error = (...args: any[]) => {\r\n // 调用原始的 console.error\r\n originalConsoleError?.apply(console, args);\r\n\r\n // 捕获错误信息\r\n const errorData = {\r\n type: 'console',\r\n message: args.map((arg) => String(arg)).join(' '),\r\n stack: new Error().stack,\r\n };\r\n\r\n // 如果配置了过滤函数且返回 false,则不记录\r\n if (options.filter && !options.filter(errorData)) {\r\n return;\r\n }\r\n\r\n context?.emit(EMIT_TYPE.ERROR, errorData);\r\n };\r\n };\r\n\r\n /**\r\n * 恢复 console.error\r\n */\r\n const restoreConsoleError = () => {\r\n if (originalConsoleError) {\r\n console.error = originalConsoleError;\r\n }\r\n };\r\n\r\n /**\r\n * 清理并限制堆栈追踪深度\r\n */\r\n const cleanStack = (stack?: string): string | undefined => {\r\n if (!stack) return undefined;\r\n const lines = stack.split('\\n').slice(0, 11);\r\n return lines.join('\\n');\r\n };\r\n\r\n /**\r\n * 用于生成指纹的简单哈希函数\r\n */\r\n const simpleHash = (str: string): string => {\r\n let hash = 0;\r\n for (let i = 0; i < str.length; i++) {\r\n const char = str.charCodeAt(i);\r\n hash = (hash << 5) - hash + char;\r\n hash = hash & hash; // 转换为 32 位整数\r\n }\r\n return Math.abs(hash).toString(36);\r\n };\r\n\r\n /**\r\n * 生成错误指纹以对相似错误进行分组\r\n */\r\n const generateFingerprint = (...parts: (string | undefined)[]): string => {\r\n const combined = parts.filter(Boolean).join('|');\r\n return simpleHash(combined);\r\n };\r\n\r\n /**\r\n * 检查错误是否为资源加载错误\r\n */\r\n const isResourceError = (target: any): boolean => {\r\n const resourceTags = ['LINK', 'SCRIPT', 'IMG', 'AUDIO', 'VIDEO', 'IFRAME'];\r\n return target && resourceTags.includes(target.tagName);\r\n };\r\n\r\n /**\r\n * 从 Promise 拒绝中提取错误详情\r\n */\r\n const getPromiseErrorDetails = (e: PromiseRejectionEvent) => {\r\n if (e.reason instanceof Error) {\r\n return {\r\n errorType: 'promise',\r\n message: e.reason.message,\r\n stack: cleanStack(e.reason.stack),\r\n name: e.reason.name,\r\n fingerprint: generateFingerprint(e.reason.message, e.reason.stack),\r\n };\r\n }\r\n return {\r\n errorType: 'promise',\r\n message: String(e.reason),\r\n };\r\n };\r\n\r\n /**\r\n * 从 ErrorEvent 中提取错误详情\r\n */\r\n const getErrorDetails = (e: ErrorEvent) => {\r\n const { error, target, filename, message } = e;\r\n if (error instanceof Error) {\r\n return {\r\n errorType: 'js',\r\n name: error.name,\r\n message: error.message,\r\n stack: cleanStack(error.stack),\r\n filename,\r\n colno: e.colno,\r\n lineno: e.lineno,\r\n fingerprint: generateFingerprint(error.message, error.stack),\r\n };\r\n }\r\n if (isResourceError(target)) {\r\n const element = target as HTMLImageElement | HTMLScriptElement | HTMLLinkElement;\r\n const url = 'src' in element ? element.src : element.href;\r\n return {\r\n errorType: 'resource',\r\n message: `Resource load failed: ${url}`,\r\n url,\r\n tagName: element.tagName,\r\n fingerprint: generateFingerprint(`resource:${url}`),\r\n };\r\n }\r\n return {\r\n errorType: 'unknown',\r\n message,\r\n filename,\r\n };\r\n };\r\n\r\n const errorHandler = (e: ErrorEvent) => {\r\n const errorData = { type: 'sync', ...getErrorDetails(e) };\r\n if (options.filter && !options.filter(errorData)) return;\r\n context?.emit(EMIT_TYPE.ERROR, errorData);\r\n };\r\n\r\n const rejectionHandler = (e: PromiseRejectionEvent) => {\r\n const errorData = { type: 'async', ...getPromiseErrorDetails(e) };\r\n if (options.filter && !options.filter(errorData)) return;\r\n context?.emit(EMIT_TYPE.ERROR, errorData);\r\n };\r\n\r\n return {\r\n name: TYPES.ERROR,\r\n install: (ctx: PluginContext) => {\r\n context = ctx;\r\n overrideConsoleError();\r\n window.addEventListener('error', errorHandler, true);\r\n window.addEventListener('unhandledrejection', rejectionHandler, true);\r\n },\r\n uninstall: () => {\r\n restoreConsoleError();\r\n window.removeEventListener('error', errorHandler, true);\r\n window.removeEventListener('unhandledrejection', rejectionHandler, true);\r\n },\r\n };\r\n};\r\n","import { IPlugin, PluginContext } from './definePlugin';\r\nimport { EMIT_TYPE, TYPES } from '../types/event';\r\nimport { getSeconds } from '../utils';\r\n\r\nexport interface PVOptions {\r\n /** 过滤函数,返回 false 则不记录该路由变化 */\r\n filter?: (to: string, from: string) => boolean;\r\n}\r\n\r\nexport const PVPlugin = (options: PVOptions = {}): IPlugin => {\r\n let lastRouteTime: number = Date.now();\r\n let context: PluginContext;\r\n\r\n let originPushState: typeof window.history.pushState;\r\n let originReplaceState: typeof window.history.replaceState;\r\n\r\n const emitRouteChange = (type: string) => {\r\n const now = Date.now();\r\n const to = window.location.href;\r\n const from = document.referrer;\r\n\r\n // 如果配置了过滤函数且返回 false,则不记录\r\n if (options.filter && !options.filter(to, from)) {\r\n return;\r\n }\r\n\r\n context?.emit(EMIT_TYPE.ROUTE_CHANGE, {\r\n from,\r\n to,\r\n type,\r\n duration: getSeconds(now, lastRouteTime),\r\n });\r\n\r\n lastRouteTime = now;\r\n };\r\n\r\n const handleHashChange = () => emitRouteChange('hashchange');\r\n const handlePopState = () => emitRouteChange('popstate');\r\n\r\n const setupHistoryListener = () => {\r\n originPushState = window.history.pushState;\r\n originReplaceState = window.history.replaceState;\r\n\r\n window.history.pushState = (...args) => {\r\n originPushState.apply(window.history, args);\r\n emitRouteChange('pushState');\r\n };\r\n\r\n window.history.replaceState = (...args) => {\r\n originReplaceState.apply(window.history, args);\r\n emitRouteChange('replaceState');\r\n };\r\n };\r\n\r\n const restoreHistoryListener = () => {\r\n if (originPushState) window.history.pushState = originPushState;\r\n if (originReplaceState) window.history.replaceState = originReplaceState;\r\n };\r\n\r\n return {\r\n name: TYPES.ROUTER,\r\n install: (ctx: PluginContext) => {\r\n context = ctx;\r\n lastRouteTime = Date.now();\r\n window.addEventListener('hashchange', handleHashChange);\r\n window.addEventListener('popstate', handlePopState);\r\n setupHistoryListener();\r\n },\r\n uninstall: () => {\r\n window.removeEventListener('hashchange', handleHashChange);\r\n window.removeEventListener('popstate', handlePopState);\r\n restoreHistoryListener();\r\n },\r\n };\r\n};\r\n","import { IPlugin, PluginContext } from './definePlugin';\r\nimport { EMIT_TYPE, TYPES } from '../types/event';\r\nimport { throttle } from '../utils';\r\n\r\nexport interface BehaviorOptions {\r\n /** 过滤函数,返回 false 则不记录该点击事件 */\r\n filter?: (element: HTMLElement) => boolean;\r\n /** 节流延迟时间(ms),默认 500ms */\r\n throttleDelay?: number;\r\n}\r\n\r\nexport const BehaviorPlugin = (options: BehaviorOptions = {}): IPlugin => {\r\n const { throttleDelay = 500 } = options;\r\n let context: PluginContext;\r\n\r\n // 获取元素的 XPath\r\n const getElementXPath = (element: HTMLElement): string => {\r\n if (!element || element.nodeType !== 1) return '';\r\n if (element.id) return `//*[@id=\"${element.id}\"]`;\r\n\r\n const sameTagSiblings = Array.from(element.parentNode?.children || []).filter(\r\n (el) => el.tagName === element.tagName,\r\n );\r\n\r\n const idx = sameTagSiblings.indexOf(element) + 1;\r\n return `${getElementXPath(element.parentNode as HTMLElement)}/${element.tagName.toLowerCase()}[${idx}]`;\r\n };\r\n\r\n const handleClick = throttle((e: Event) => {\r\n const target = e.target as HTMLElement;\r\n if (!target) return;\r\n\r\n // 如果配置了过滤函数且返回 false,则不记录\r\n if (options.filter && !options.filter(target)) {\r\n return;\r\n }\r\n\r\n // 收集点击元素信息\r\n const clickData = {\r\n tagName: target.tagName,\r\n id: target.id,\r\n className: target.className,\r\n text: target.textContent?.trim(),\r\n xPath: getElementXPath(target),\r\n };\r\n\r\n context?.emit(EMIT_TYPE.BEHAVIOR_CLICK, clickData);\r\n }, throttleDelay);\r\n\r\n return {\r\n name: TYPES.CLICK,\r\n install: (ctx: PluginContext) => {\r\n context = ctx;\r\n document.addEventListener(EMIT_TYPE.BEHAVIOR_CLICK, handleClick, true);\r\n },\r\n uninstall: () => {\r\n document.removeEventListener(EMIT_TYPE.BEHAVIOR_CLICK, handleClick, true);\r\n },\r\n };\r\n};\r\n","import { IPlugin, PluginContext } from './definePlugin';\r\nimport { EMIT_TYPE, TYPES } from '../types/event';\r\n\r\nimport { DEFAULT_INP_THRESHOLD, DEFAULT_LONG_TASK_THRESHOLD, DEFAULT_RESOURCE_THRESHOLD } from '../constant';\r\n\r\nexport interface PerformanceOptions {\r\n /** 过滤函数,返回 false 则不记录该性能指标 */\r\n filter?: (type: EMIT_TYPE, value: any) => boolean;\r\n /** 长任务阈值 (ms),超过此值则上报,默认 100 */\r\n longTaskThreshold?: number;\r\n /** 资源加载阈值 (ms),超过此值则上报,默认 1000 */\r\n resourceThreshold?: number;\r\n /** INP 阈值 (ms),超过此值则上报,默认 200 */\r\n inpThreshold?: number;\r\n}\r\n\r\nexport const PerformancePlugin = (options: PerformanceOptions = {}): IPlugin => {\r\n let context: PluginContext;\r\n let paintObserver: PerformanceObserver | null = null;\r\n let lcpObserver: PerformanceObserver | null = null;\r\n let inpObserver: PerformanceObserver | null = null;\r\n let longTaskObserver: PerformanceObserver | null = null;\r\n let resourceObserver: PerformanceObserver | null = null;\r\n // 存储交互事件的 Map: interactionId -> { entry, timeoutId }\r\n const interactionMap = new Map<number, { entry: any; timeoutId: any }>();\r\n\r\n const monitorPaintMetrics = () => {\r\n const entryHandler = (list: { getEntries: () => any }) => {\r\n for (const entry of list.getEntries()) {\r\n if (entry.name === 'first-paint') {\r\n if (options.filter && !options.filter(EMIT_TYPE.PERFORMANCE_FP, entry.startTime)) {\r\n continue;\r\n }\r\n context?.emit(EMIT_TYPE.PERFORMANCE_FP, entry.startTime);\r\n } else if (entry.name === 'first-contentful-paint') {\r\n if (options.filter && !options.filter(EMIT_TYPE.PERFORMANCE_FCP, entry.startTime)) {\r\n continue;\r\n }\r\n context?.emit(EMIT_TYPE.PERFORMANCE_FCP, entry.startTime);\r\n }\r\n }\r\n paintObserver?.disconnect();\r\n };\r\n\r\n try {\r\n paintObserver = new PerformanceObserver(entryHandler);\r\n paintObserver.observe({ type: 'paint', buffered: true });\r\n } catch (e) {\r\n console.warn('[CWJ Monitor] Paint observation not supported:', e);\r\n }\r\n };\r\n\r\n const monitorLCP = () => {\r\n const entryHandler = (list: { getEntries: () => any }) => {\r\n if (lcpObserver) {\r\n lcpObserver.disconnect();\r\n }\r\n\r\n for (const entry of list.getEntries()) {\r\n if (options.filter && !options.filter(EMIT_TYPE.PERFORMANCE_LCP, entry.startTime)) {\r\n continue;\r\n }\r\n context?.emit(EMIT_TYPE.PERFORMANCE_LCP, entry.startTime);\r\n }\r\n };\r\n\r\n try {\r\n lcpObserver = new PerformanceObserver(entryHandler);\r\n lcpObserver.observe({ type: 'largest-contentful-paint', buffered: true });\r\n } catch (e) {\r\n console.warn('[CWJ Monitor] LCP observation not supported:', e);\r\n }\r\n };\r\n\r\n const monitorINP = () => {\r\n const entryHandler = (list: { getEntries: () => any }) => {\r\n for (const entry of list.getEntries()) {\r\n // 仅处理有 interactionId 的交互事件\r\n if (!entry.interactionId) continue;\r\n\r\n // 获取该 interactionId 已有的记录\r\n const existing = interactionMap.get(entry.interactionId);\r\n if (existing) {\r\n clearTimeout(existing.timeoutId);\r\n }\r\n\r\n // 取耗时最长的事件作为该次交互的代表\r\n const maxEntry = existing && existing.entry.duration > entry.duration ? existing.entry : entry;\r\n\r\n // 防抖:200ms 内无新事件则上报\r\n const timeoutId = setTimeout(() => {\r\n interactionMap.delete(maxEntry.interactionId);\r\n\r\n if (options.filter && !options.filter(EMIT_TYPE.PERFORMANCE_INP, maxEntry)) {\r\n return;\r\n }\r\n\r\n // 只上报耗时超过阈值的事件\r\n const threshold = options.inpThreshold ?? DEFAULT_INP_THRESHOLD;\r\n if (maxEntry.duration > threshold) {\r\n context?.emit(EMIT_TYPE.PERFORMANCE_INP, {\r\n value: maxEntry.duration,\r\n startTime: maxEntry.startTime,\r\n name: maxEntry.name,\r\n interactionId: maxEntry.interactionId,\r\n });\r\n }\r\n }, 200);\r\n\r\n interactionMap.set(entry.interactionId, { entry: maxEntry, timeoutId });\r\n }\r\n };\r\n\r\n // 观察 'event' 类型,durationThreshold 默认为 40ms\r\n try {\r\n inpObserver = new PerformanceObserver(entryHandler);\r\n inpObserver.observe({ type: 'event', buffered: true });\r\n } catch (e) {\r\n console.warn('[CWJ Monitor] INP observation not supported:', e);\r\n }\r\n };\r\n\r\n const monitorLongTask = () => {\r\n const entryHandler = (list: { getEntries: () => any }) => {\r\n for (const entry of list.getEntries()) {\r\n if (options.filter && !options.filter(EMIT_TYPE.PERFORMANCE_LONGTASK, entry)) {\r\n continue;\r\n }\r\n // 长任务默认时间为50ms,这里提高阀值,减少日志噪音\r\n const threshold = options.longTaskThreshold ?? DEFAULT_LONG_TASK_THRESHOLD;\r\n if (entry.duration > threshold) {\r\n context?.emit(EMIT_TYPE.PERFORMANCE_LONGTASK, {\r\n startTime: entry.startTime,\r\n duration: entry.duration,\r\n name: entry.name,\r\n attribution: entry.attribution,\r\n });\r\n }\r\n }\r\n };\r\n\r\n try {\r\n longTaskObserver = new PerformanceObserver(entryHandler);\r\n longTaskObserver.observe({ type: 'longtask', buffered: true });\r\n } catch (e) {\r\n console.warn('[CWJ Monitor] Long Task observation not supported:', e);\r\n }\r\n };\r\n\r\n const monitorResource = () => {\r\n const entryHandler = (list: { getEntries: () => any }) => {\r\n for (const entry of list.getEntries()) {\r\n // 只监听 fetch 与 xmlhttprequest\r\n if (entry.initiatorType !== 'fetch' && entry.initiatorType !== 'xmlhttprequest') {\r\n continue;\r\n }\r\n\r\n if (options.filter && !options.filter(EMIT_TYPE.PERFORMANCE_RESOURCE, entry)) {\r\n continue;\r\n }\r\n\r\n // 资源加载时间超过阈值,上报\r\n const threshold = options.resourceThreshold ?? DEFAULT_RESOURCE_THRESHOLD;\r\n if (entry.duration > threshold) {\r\n context?.emit(EMIT_TYPE.PERFORMANCE_RESOURCE, {\r\n name: entry.name, // 资源 URL\r\n initiatorType: entry.initiatorType,\r\n duration: entry.duration,\r\n startTime: entry.startTime,\r\n transferSize: entry.transferSize,\r\n encodedBodySize: entry.encodedBodySize,\r\n decodedBodySize: entry.decodedBodySize,\r\n });\r\n }\r\n }\r\n };\r\n\r\n try {\r\n resourceObserver = new PerformanceObserver(entryHandler);\r\n resourceObserver.observe({ type: 'resource', buffered: true });\r\n } catch (e) {\r\n console.warn('[CWJ Monitor] Resource observation not supported:', e);\r\n }\r\n };\r\n\r\n return {\r\n name: TYPES.PERFORMANCE,\r\n install: (ctx: PluginContext) => {\r\n context = ctx;\r\n monitorPaintMetrics();\r\n monitorLCP();\r\n monitorINP();\r\n monitorLongTask();\r\n monitorResource();\r\n },\r\n uninstall: () => {\r\n paintObserver?.disconnect();\r\n lcpObserver?.disconnect();\r\n inpObserver?.disconnect();\r\n longTaskObserver?.disconnect();\r\n resourceObserver?.disconnect();\r\n // 清理所有待处理的 INP 定时器\r\n interactionMap.forEach((value) => clearTimeout(value.timeoutId));\r\n interactionMap.clear();\r\n },\r\n };\r\n};\r\n","import { IPlugin, PluginContext } from './definePlugin';\r\nimport { TYPES, EMIT_TYPE } from '../types/event';\r\n\r\n// 扩展 XMLHttpRequest 接口以包含自定义属性\r\ninterface CustomXMLHttpRequest extends XMLHttpRequest {\r\n _xhr_info?: {\r\n method: string;\r\n url: string;\r\n startTime: number;\r\n };\r\n}\r\n\r\ntype OpenArgs = Parameters<typeof window.XMLHttpRequest.prototype.open>;\r\ntype SendArgs = Parameters<typeof window.XMLHttpRequest.prototype.send>;\r\n\r\nexport interface XHROptions {\r\n /** 过滤函数,返回 false 则不记录该请求 */\r\n filter?: (method: string, url: string) => boolean;\r\n}\r\n\r\n/**\r\n * XHR 监控插件\r\n * 监控 XMLHttpRequest 请求,记录失败的请求(状态码非 2xx)\r\n */\r\nexport const XHRPlugin = (options: XHROptions = {}): IPlugin => {\r\n let context: PluginContext;\r\n let originOpen: typeof XMLHttpRequest.prototype.open;\r\n let originSend: typeof XMLHttpRequest.prototype.send;\r\n\r\n const setupXHRListeners = () => {\r\n const originXhr = window.XMLHttpRequest;\r\n if (!originXhr) return;\r\n\r\n originOpen = originXhr.prototype.open;\r\n originSend = originXhr.prototype.send;\r\n\r\n // 重写 open 方法\r\n originXhr.prototype.open = function <T extends OpenArgs>(this: CustomXMLHttpRequest, ...args: T) {\r\n this._xhr_info = {\r\n method: args[0].toUpperCase(),\r\n url: String(args[1]),\r\n startTime: 0,\r\n };\r\n return originOpen.apply(this, args);\r\n };\r\n\r\n // 重写 send 方法\r\n originXhr.prototype.send = function <T extends SendArgs>(this: CustomXMLHttpRequest, ...args: T) {\r\n if (this._xhr_info) {\r\n this._xhr_info.startTime = Date.now();\r\n }\r\n\r\n const onLoadend = () => {\r\n if (this._xhr_info) {\r\n // 防止死循环:忽略发送到监控后台的请求\r\n const trackerUrl = context?.url;\r\n const { url, method, startTime } = this._xhr_info;\r\n\r\n if (trackerUrl && url.includes(trackerUrl)) {\r\n return;\r\n }\r\n\r\n // 如果配置了过滤函数且返回 false,则不记录\r\n if (options.filter && !options.filter(method, url)) {\r\n return;\r\n }\r\n\r\n const duration = Date.now() - startTime;\r\n const status = this.status;\r\n\r\n // 监听HTTP层面 状态码不是200~299的错误\r\n if (!(status >= 200 && status < 300)) {\r\n const data = {\r\n method,\r\n url,\r\n status,\r\n duration,\r\n // 限制响应体大小,避免数据过大\r\n response: this.response ? String(this.response).slice(0, 200) : '',\r\n };\r\n\r\n context?.emit(EMIT_TYPE.XHR, data);\r\n }\r\n }\r\n };\r\n\r\n this.addEventListener('loadend', onLoadend);\r\n return originSend.apply(this, args);\r\n };\r\n };\r\n\r\n const restoreXHR = () => {\r\n const originXhr = window.XMLHttpRequest;\r\n if (!originXhr) return;\r\n if (originOpen) originXhr.prototype.open = originOpen;\r\n if (originSend) originXhr.prototype.send = originSend;\r\n };\r\n\r\n return {\r\n name: TYPES.XHR,\r\n install: (ctx: PluginContext) => {\r\n context = ctx;\r\n setupXHRListeners();\r\n },\r\n uninstall: () => {\r\n restoreXHR();\r\n },\r\n };\r\n};\r\n","import { IPlugin, PluginContext } from './definePlugin';\r\nimport { TYPES, EMIT_TYPE } from '../types/event';\r\n\r\nexport interface FetchOptions {\r\n /** 过滤函数,返回 false 则不记录该请求 */\r\n filter?: (method: string, url: string) => boolean;\r\n}\r\n\r\n/**\r\n * Fetch 监控插件\r\n * 监控 fetch 请求,记录失败的请求(状态码非 2xx 或网络错误)\r\n */\r\nexport const FetchPlugin = (options: FetchOptions = {}): IPlugin => {\r\n let context: PluginContext;\r\n let originFetch: typeof window.fetch;\r\n\r\n const setupFetchListeners = () => {\r\n originFetch = window.fetch;\r\n if (!originFetch) return;\r\n\r\n window.fetch = function (input: RequestInfo | URL, init?: RequestInit) {\r\n const startTime = Date.now();\r\n const method = (init?.method || 'GET').toUpperCase();\r\n const url = input instanceof Request ? input.url : String(input);\r\n\r\n return originFetch.apply(this, [input, init]).then(\r\n (response) => {\r\n const trackerUrl = context?.url;\r\n if (trackerUrl && url.includes(trackerUrl)) {\r\n return response;\r\n }\r\n\r\n // 如果配置了过滤函数且返回 false,则不记录\r\n if (options.filter && !options.filter(method, url)) {\r\n return response;\r\n }\r\n\r\n if (!response.ok) {\r\n const duration = Date.now() - startTime;\r\n const data = {\r\n method,\r\n url,\r\n status: response.status,\r\n duration,\r\n success: false,\r\n };\r\n context?.emit(EMIT_TYPE.FETCH, data);\r\n }\r\n return response;\r\n },\r\n (error) => {\r\n const trackerUrl = context?.url;\r\n if (trackerUrl && url.includes(trackerUrl)) {\r\n throw error;\r\n }\r\n\r\n // 如果配置了过滤函数且返回 false,则不记录\r\n if (options.filter && !options.filter(method, url)) {\r\n throw error;\r\n }\r\n\r\n const duration = Date.now() - startTime;\r\n const data = {\r\n method,\r\n url,\r\n status: 0,\r\n duration,\r\n success: false,\r\n message: error.message,\r\n };\r\n context?.emit(EMIT_TYPE.FETCH, data);\r\n throw error;\r\n },\r\n );\r\n };\r\n };\r\n\r\n const restoreFetch = () => {\r\n if (originFetch) window.fetch = originFetch;\r\n };\r\n\r\n return {\r\n name: TYPES.FETCH,\r\n install: (ctx: PluginContext) => {\r\n context = ctx;\r\n setupFetchListeners();\r\n },\r\n uninstall: () => {\r\n restoreFetch();\r\n },\r\n };\r\n};\r\n"],"names":["scopedUrlAlphabet","date","this","__publicField","TYPES","EMIT_TYPE"],"mappings":"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","x_google_ignoreList":[0,1,3]}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../node_modules/.pnpm/nanoid@5.1.6/node_modules/nanoid/url-alphabet/index.js","../node_modules/.pnpm/nanoid@5.1.6/node_modules/nanoid/index.browser.js","../src/utils/date.ts","../node_modules/.pnpm/bowser@2.13.1/node_modules/bowser/es5.js","../src/utils/browser.ts","../src/utils/common.ts","../src/constant.ts","../src/core/deviceInfo.ts","../src/core/eventTrack.ts","../src/core/reporter.ts","../src/types/event.ts","../src/core/index.ts","../src/plugin/error.ts","../src/plugin/pv.ts","../src/plugin/behavior.ts","../src/plugin/performance.ts","../src/plugin/xhr.ts","../src/plugin/fetch.ts"],"sourcesContent":["export const urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'\n","/* @ts-self-types=\"./index.d.ts\" */\nimport { urlAlphabet as scopedUrlAlphabet } from './url-alphabet/index.js'\nexport { urlAlphabet } from './url-alphabet/index.js'\nexport let random = bytes => crypto.getRandomValues(new Uint8Array(bytes))\nexport let customRandom = (alphabet, defaultSize, getRandom) => {\n let mask = (2 << Math.log2(alphabet.length - 1)) - 1\n let step = -~((1.6 * mask * defaultSize) / alphabet.length)\n return (size = defaultSize) => {\n let id = ''\n while (true) {\n let bytes = getRandom(step)\n let j = step | 0\n while (j--) {\n id += alphabet[bytes[j] & mask] || ''\n if (id.length >= size) return id\n }\n }\n }\n}\nexport let customAlphabet = (alphabet, size = 21) =>\n customRandom(alphabet, size | 0, random)\nexport let nanoid = (size = 21) => {\n let id = ''\n let bytes = crypto.getRandomValues(new Uint8Array((size |= 0)))\n while (size--) {\n id += scopedUrlAlphabet[bytes[size] & 63]\n }\n return id\n}\n","/* 将时间戳转为年月日 */\r\nexport const getDate = (time: number = Date.now()) => {\r\n const date = new Date(time);\r\n const year = date.getFullYear();\r\n const month = date.getMonth() + 1; //获取系统月份,由于月份是从0开始计算,所以要加1\r\n const day = date.getDate();\r\n const hour = date.getHours();\r\n const minute = date.getMinutes();\r\n const second = date.getSeconds();\r\n\r\n const formatter = (date: number) => {\r\n let res = '';\r\n if (date < 10) {\r\n res = '0' + date;\r\n } else {\r\n res = date.toString();\r\n }\r\n return res;\r\n };\r\n\r\n return (\r\n year +\r\n '-' +\r\n formatter(month) +\r\n '-' +\r\n formatter(day) +\r\n ' ' +\r\n formatter(hour) +\r\n ':' +\r\n formatter(minute) +\r\n ':' +\r\n formatter(second)\r\n );\r\n};\r\n\r\n/* 将两个时间戳转为秒 */\r\nexport const getSeconds = (timestamp1: number, timestamp2: number) => {\r\n if (timestamp1 < timestamp2) {\r\n [timestamp1, timestamp2] = [timestamp2, timestamp1];\r\n }\r\n\r\n return Math.floor((timestamp1 - timestamp2) / 1000);\r\n};\r\n","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.bowser=t():e.bowser=t()}(this,(function(){return function(e){var t={};function r(i){if(t[i])return t[i].exports;var n=t[i]={i:i,l:!1,exports:{}};return e[i].call(n.exports,n,n.exports,r),n.l=!0,n.exports}return r.m=e,r.c=t,r.d=function(e,t,i){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},r.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&\"object\"==typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(r.r(i),Object.defineProperty(i,\"default\",{enumerable:!0,value:e}),2&t&&\"string\"!=typeof e)for(var n in e)r.d(i,n,function(t){return e[t]}.bind(null,n));return i},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,\"a\",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p=\"\",r(r.s=90)}({17:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var i=r(18),n=function(){function e(){}return e.getFirstMatch=function(e,t){var r=t.match(e);return r&&r.length>0&&r[1]||\"\"},e.getSecondMatch=function(e,t){var r=t.match(e);return r&&r.length>1&&r[2]||\"\"},e.matchAndReturnConst=function(e,t,r){if(e.test(t))return r},e.getWindowsVersionName=function(e){switch(e){case\"NT\":return\"NT\";case\"XP\":return\"XP\";case\"NT 5.0\":return\"2000\";case\"NT 5.1\":return\"XP\";case\"NT 5.2\":return\"2003\";case\"NT 6.0\":return\"Vista\";case\"NT 6.1\":return\"7\";case\"NT 6.2\":return\"8\";case\"NT 6.3\":return\"8.1\";case\"NT 10.0\":return\"10\";default:return}},e.getMacOSVersionName=function(e){var t=e.split(\".\").splice(0,2).map((function(e){return parseInt(e,10)||0}));t.push(0);var r=t[0],i=t[1];if(10===r)switch(i){case 5:return\"Leopard\";case 6:return\"Snow Leopard\";case 7:return\"Lion\";case 8:return\"Mountain Lion\";case 9:return\"Mavericks\";case 10:return\"Yosemite\";case 11:return\"El Capitan\";case 12:return\"Sierra\";case 13:return\"High Sierra\";case 14:return\"Mojave\";case 15:return\"Catalina\";default:return}switch(r){case 11:return\"Big Sur\";case 12:return\"Monterey\";case 13:return\"Ventura\";case 14:return\"Sonoma\";case 15:return\"Sequoia\";default:return}},e.getAndroidVersionName=function(e){var t=e.split(\".\").splice(0,2).map((function(e){return parseInt(e,10)||0}));if(t.push(0),!(1===t[0]&&t[1]<5))return 1===t[0]&&t[1]<6?\"Cupcake\":1===t[0]&&t[1]>=6?\"Donut\":2===t[0]&&t[1]<2?\"Eclair\":2===t[0]&&2===t[1]?\"Froyo\":2===t[0]&&t[1]>2?\"Gingerbread\":3===t[0]?\"Honeycomb\":4===t[0]&&t[1]<1?\"Ice Cream Sandwich\":4===t[0]&&t[1]<4?\"Jelly Bean\":4===t[0]&&t[1]>=4?\"KitKat\":5===t[0]?\"Lollipop\":6===t[0]?\"Marshmallow\":7===t[0]?\"Nougat\":8===t[0]?\"Oreo\":9===t[0]?\"Pie\":void 0},e.getVersionPrecision=function(e){return e.split(\".\").length},e.compareVersions=function(t,r,i){void 0===i&&(i=!1);var n=e.getVersionPrecision(t),a=e.getVersionPrecision(r),o=Math.max(n,a),s=0,u=e.map([t,r],(function(t){var r=o-e.getVersionPrecision(t),i=t+new Array(r+1).join(\".0\");return e.map(i.split(\".\"),(function(e){return new Array(20-e.length).join(\"0\")+e})).reverse()}));for(i&&(s=o-Math.min(n,a)),o-=1;o>=s;){if(u[0][o]>u[1][o])return 1;if(u[0][o]===u[1][o]){if(o===s)return 0;o-=1}else if(u[0][o]<u[1][o])return-1}},e.map=function(e,t){var r,i=[];if(Array.prototype.map)return Array.prototype.map.call(e,t);for(r=0;r<e.length;r+=1)i.push(t(e[r]));return i},e.find=function(e,t){var r,i;if(Array.prototype.find)return Array.prototype.find.call(e,t);for(r=0,i=e.length;r<i;r+=1){var n=e[r];if(t(n,r))return n}},e.assign=function(e){for(var t,r,i=e,n=arguments.length,a=new Array(n>1?n-1:0),o=1;o<n;o++)a[o-1]=arguments[o];if(Object.assign)return Object.assign.apply(Object,[e].concat(a));var s=function(){var e=a[t];\"object\"==typeof e&&null!==e&&Object.keys(e).forEach((function(t){i[t]=e[t]}))};for(t=0,r=a.length;t<r;t+=1)s();return e},e.getBrowserAlias=function(e){return i.BROWSER_ALIASES_MAP[e]},e.getBrowserTypeByAlias=function(e){return i.BROWSER_MAP[e]||\"\"},e}();t.default=n,e.exports=t.default},18:function(e,t,r){\"use strict\";t.__esModule=!0,t.ENGINE_MAP=t.OS_MAP=t.PLATFORMS_MAP=t.BROWSER_MAP=t.BROWSER_ALIASES_MAP=void 0;t.BROWSER_ALIASES_MAP={AmazonBot:\"amazonbot\",\"Amazon Silk\":\"amazon_silk\",\"Android Browser\":\"android\",BaiduSpider:\"baiduspider\",Bada:\"bada\",BingCrawler:\"bingcrawler\",BlackBerry:\"blackberry\",\"ChatGPT-User\":\"chatgpt_user\",Chrome:\"chrome\",ClaudeBot:\"claudebot\",Chromium:\"chromium\",Diffbot:\"diffbot\",DuckDuckBot:\"duckduckbot\",Electron:\"electron\",Epiphany:\"epiphany\",FacebookExternalHit:\"facebookexternalhit\",Firefox:\"firefox\",Focus:\"focus\",Generic:\"generic\",\"Google Search\":\"google_search\",Googlebot:\"googlebot\",GPTBot:\"gptbot\",\"Internet Explorer\":\"ie\",InternetArchiveCrawler:\"internetarchivecrawler\",\"K-Meleon\":\"k_meleon\",LibreWolf:\"librewolf\",Maxthon:\"maxthon\",\"Meta-ExternalAds\":\"meta_externalads\",\"Meta-ExternalAgent\":\"meta_externalagent\",\"Meta-ExternalFetcher\":\"meta_externalfetcher\",\"Meta-WebIndexer\":\"meta_webindexer\",\"Microsoft Edge\":\"edge\",\"MZ Browser\":\"mz\",\"NAVER Whale Browser\":\"naver\",\"OAI-SearchBot\":\"oai_searchbot\",Omgilibot:\"omgilibot\",Opera:\"opera\",\"Opera Coast\":\"opera_coast\",\"Pale Moon\":\"pale_moon\",PerplexityBot:\"perplexitybot\",\"Perplexity-User\":\"perplexity_user\",PhantomJS:\"phantomjs\",PingdomBot:\"pingdombot\",Puffin:\"puffin\",QQ:\"qq\",QQLite:\"qqlite\",QupZilla:\"qupzilla\",Roku:\"roku\",Safari:\"safari\",Sailfish:\"sailfish\",\"Samsung Internet for Android\":\"samsung_internet\",SeaMonkey:\"seamonkey\",Sleipnir:\"sleipnir\",\"Sogou Browser\":\"sogou\",Swing:\"swing\",Tizen:\"tizen\",\"UC Browser\":\"uc\",Vivaldi:\"vivaldi\",\"WebOS Browser\":\"webos\",WeChat:\"wechat\",YahooSlurp:\"yahooslurp\",\"Yandex Browser\":\"yandex\",YandexBot:\"yandexbot\",YouBot:\"youbot\"};t.BROWSER_MAP={amazonbot:\"AmazonBot\",amazon_silk:\"Amazon Silk\",android:\"Android Browser\",baiduspider:\"BaiduSpider\",bada:\"Bada\",bingcrawler:\"BingCrawler\",blackberry:\"BlackBerry\",chatgpt_user:\"ChatGPT-User\",chrome:\"Chrome\",claudebot:\"ClaudeBot\",chromium:\"Chromium\",diffbot:\"Diffbot\",duckduckbot:\"DuckDuckBot\",edge:\"Microsoft Edge\",electron:\"Electron\",epiphany:\"Epiphany\",facebookexternalhit:\"FacebookExternalHit\",firefox:\"Firefox\",focus:\"Focus\",generic:\"Generic\",google_search:\"Google Search\",googlebot:\"Googlebot\",gptbot:\"GPTBot\",ie:\"Internet Explorer\",internetarchivecrawler:\"InternetArchiveCrawler\",k_meleon:\"K-Meleon\",librewolf:\"LibreWolf\",maxthon:\"Maxthon\",meta_externalads:\"Meta-ExternalAds\",meta_externalagent:\"Meta-ExternalAgent\",meta_externalfetcher:\"Meta-ExternalFetcher\",meta_webindexer:\"Meta-WebIndexer\",mz:\"MZ Browser\",naver:\"NAVER Whale Browser\",oai_searchbot:\"OAI-SearchBot\",omgilibot:\"Omgilibot\",opera:\"Opera\",opera_coast:\"Opera Coast\",pale_moon:\"Pale Moon\",perplexitybot:\"PerplexityBot\",perplexity_user:\"Perplexity-User\",phantomjs:\"PhantomJS\",pingdombot:\"PingdomBot\",puffin:\"Puffin\",qq:\"QQ Browser\",qqlite:\"QQ Browser Lite\",qupzilla:\"QupZilla\",roku:\"Roku\",safari:\"Safari\",sailfish:\"Sailfish\",samsung_internet:\"Samsung Internet for Android\",seamonkey:\"SeaMonkey\",sleipnir:\"Sleipnir\",sogou:\"Sogou Browser\",swing:\"Swing\",tizen:\"Tizen\",uc:\"UC Browser\",vivaldi:\"Vivaldi\",webos:\"WebOS Browser\",wechat:\"WeChat\",yahooslurp:\"YahooSlurp\",yandex:\"Yandex Browser\",yandexbot:\"YandexBot\",youbot:\"YouBot\"};t.PLATFORMS_MAP={bot:\"bot\",desktop:\"desktop\",mobile:\"mobile\",tablet:\"tablet\",tv:\"tv\"};t.OS_MAP={Android:\"Android\",Bada:\"Bada\",BlackBerry:\"BlackBerry\",ChromeOS:\"Chrome OS\",HarmonyOS:\"HarmonyOS\",iOS:\"iOS\",Linux:\"Linux\",MacOS:\"macOS\",PlayStation4:\"PlayStation 4\",Roku:\"Roku\",Tizen:\"Tizen\",WebOS:\"WebOS\",Windows:\"Windows\",WindowsPhone:\"Windows Phone\"};t.ENGINE_MAP={Blink:\"Blink\",EdgeHTML:\"EdgeHTML\",Gecko:\"Gecko\",Presto:\"Presto\",Trident:\"Trident\",WebKit:\"WebKit\"}},90:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var i,n=(i=r(91))&&i.__esModule?i:{default:i},a=r(18);function o(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||!1,i.configurable=!0,\"value\"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}var s=function(){function e(){}var t,r,i;return e.getParser=function(e,t){if(void 0===t&&(t=!1),\"string\"!=typeof e)throw new Error(\"UserAgent should be a string\");return new n.default(e,t)},e.parse=function(e){return new n.default(e).getResult()},t=e,i=[{key:\"BROWSER_MAP\",get:function(){return a.BROWSER_MAP}},{key:\"ENGINE_MAP\",get:function(){return a.ENGINE_MAP}},{key:\"OS_MAP\",get:function(){return a.OS_MAP}},{key:\"PLATFORMS_MAP\",get:function(){return a.PLATFORMS_MAP}}],(r=null)&&o(t.prototype,r),i&&o(t,i),e}();t.default=s,e.exports=t.default},91:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var i=u(r(92)),n=u(r(93)),a=u(r(94)),o=u(r(95)),s=u(r(17));function u(e){return e&&e.__esModule?e:{default:e}}var d=function(){function e(e,t){if(void 0===t&&(t=!1),null==e||\"\"===e)throw new Error(\"UserAgent parameter can't be empty\");this._ua=e,this.parsedResult={},!0!==t&&this.parse()}var t=e.prototype;return t.getUA=function(){return this._ua},t.test=function(e){return e.test(this._ua)},t.parseBrowser=function(){var e=this;this.parsedResult.browser={};var t=s.default.find(i.default,(function(t){if(\"function\"==typeof t.test)return t.test(e);if(Array.isArray(t.test))return t.test.some((function(t){return e.test(t)}));throw new Error(\"Browser's test function is not valid\")}));return t&&(this.parsedResult.browser=t.describe(this.getUA())),this.parsedResult.browser},t.getBrowser=function(){return this.parsedResult.browser?this.parsedResult.browser:this.parseBrowser()},t.getBrowserName=function(e){return e?String(this.getBrowser().name).toLowerCase()||\"\":this.getBrowser().name||\"\"},t.getBrowserVersion=function(){return this.getBrowser().version},t.getOS=function(){return this.parsedResult.os?this.parsedResult.os:this.parseOS()},t.parseOS=function(){var e=this;this.parsedResult.os={};var t=s.default.find(n.default,(function(t){if(\"function\"==typeof t.test)return t.test(e);if(Array.isArray(t.test))return t.test.some((function(t){return e.test(t)}));throw new Error(\"Browser's test function is not valid\")}));return t&&(this.parsedResult.os=t.describe(this.getUA())),this.parsedResult.os},t.getOSName=function(e){var t=this.getOS().name;return e?String(t).toLowerCase()||\"\":t||\"\"},t.getOSVersion=function(){return this.getOS().version},t.getPlatform=function(){return this.parsedResult.platform?this.parsedResult.platform:this.parsePlatform()},t.getPlatformType=function(e){void 0===e&&(e=!1);var t=this.getPlatform().type;return e?String(t).toLowerCase()||\"\":t||\"\"},t.parsePlatform=function(){var e=this;this.parsedResult.platform={};var t=s.default.find(a.default,(function(t){if(\"function\"==typeof t.test)return t.test(e);if(Array.isArray(t.test))return t.test.some((function(t){return e.test(t)}));throw new Error(\"Browser's test function is not valid\")}));return t&&(this.parsedResult.platform=t.describe(this.getUA())),this.parsedResult.platform},t.getEngine=function(){return this.parsedResult.engine?this.parsedResult.engine:this.parseEngine()},t.getEngineName=function(e){return e?String(this.getEngine().name).toLowerCase()||\"\":this.getEngine().name||\"\"},t.parseEngine=function(){var e=this;this.parsedResult.engine={};var t=s.default.find(o.default,(function(t){if(\"function\"==typeof t.test)return t.test(e);if(Array.isArray(t.test))return t.test.some((function(t){return e.test(t)}));throw new Error(\"Browser's test function is not valid\")}));return t&&(this.parsedResult.engine=t.describe(this.getUA())),this.parsedResult.engine},t.parse=function(){return this.parseBrowser(),this.parseOS(),this.parsePlatform(),this.parseEngine(),this},t.getResult=function(){return s.default.assign({},this.parsedResult)},t.satisfies=function(e){var t=this,r={},i=0,n={},a=0;if(Object.keys(e).forEach((function(t){var o=e[t];\"string\"==typeof o?(n[t]=o,a+=1):\"object\"==typeof o&&(r[t]=o,i+=1)})),i>0){var o=Object.keys(r),u=s.default.find(o,(function(e){return t.isOS(e)}));if(u){var d=this.satisfies(r[u]);if(void 0!==d)return d}var c=s.default.find(o,(function(e){return t.isPlatform(e)}));if(c){var f=this.satisfies(r[c]);if(void 0!==f)return f}}if(a>0){var l=Object.keys(n),b=s.default.find(l,(function(e){return t.isBrowser(e,!0)}));if(void 0!==b)return this.compareVersion(n[b])}},t.isBrowser=function(e,t){void 0===t&&(t=!1);var r=this.getBrowserName().toLowerCase(),i=e.toLowerCase(),n=s.default.getBrowserTypeByAlias(i);return t&&n&&(i=n.toLowerCase()),i===r},t.compareVersion=function(e){var t=[0],r=e,i=!1,n=this.getBrowserVersion();if(\"string\"==typeof n)return\">\"===e[0]||\"<\"===e[0]?(r=e.substr(1),\"=\"===e[1]?(i=!0,r=e.substr(2)):t=[],\">\"===e[0]?t.push(1):t.push(-1)):\"=\"===e[0]?r=e.substr(1):\"~\"===e[0]&&(i=!0,r=e.substr(1)),t.indexOf(s.default.compareVersions(n,r,i))>-1},t.isOS=function(e){return this.getOSName(!0)===String(e).toLowerCase()},t.isPlatform=function(e){return this.getPlatformType(!0)===String(e).toLowerCase()},t.isEngine=function(e){return this.getEngineName(!0)===String(e).toLowerCase()},t.is=function(e,t){return void 0===t&&(t=!1),this.isBrowser(e,t)||this.isOS(e)||this.isPlatform(e)},t.some=function(e){var t=this;return void 0===e&&(e=[]),e.some((function(e){return t.is(e)}))},e}();t.default=d,e.exports=t.default},92:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var i,n=(i=r(17))&&i.__esModule?i:{default:i};var a=/version\\/(\\d+(\\.?_?\\d+)+)/i,o=[{test:[/gptbot/i],describe:function(e){var t={name:\"GPTBot\"},r=n.default.getFirstMatch(/gptbot\\/(\\d+(\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/chatgpt-user/i],describe:function(e){var t={name:\"ChatGPT-User\"},r=n.default.getFirstMatch(/chatgpt-user\\/(\\d+(\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/oai-searchbot/i],describe:function(e){var t={name:\"OAI-SearchBot\"},r=n.default.getFirstMatch(/oai-searchbot\\/(\\d+(\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/claudebot/i,/claude-web/i,/claude-user/i,/claude-searchbot/i],describe:function(e){var t={name:\"ClaudeBot\"},r=n.default.getFirstMatch(/(?:claudebot|claude-web|claude-user|claude-searchbot)\\/(\\d+(\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/omgilibot/i,/webzio-extended/i],describe:function(e){var t={name:\"Omgilibot\"},r=n.default.getFirstMatch(/(?:omgilibot|webzio-extended)\\/(\\d+(\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/diffbot/i],describe:function(e){var t={name:\"Diffbot\"},r=n.default.getFirstMatch(/diffbot\\/(\\d+(\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/perplexitybot/i],describe:function(e){var t={name:\"PerplexityBot\"},r=n.default.getFirstMatch(/perplexitybot\\/(\\d+(\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/perplexity-user/i],describe:function(e){var t={name:\"Perplexity-User\"},r=n.default.getFirstMatch(/perplexity-user\\/(\\d+(\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/youbot/i],describe:function(e){var t={name:\"YouBot\"},r=n.default.getFirstMatch(/youbot\\/(\\d+(\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/meta-webindexer/i],describe:function(e){var t={name:\"Meta-WebIndexer\"},r=n.default.getFirstMatch(/meta-webindexer\\/(\\d+(\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/meta-externalads/i],describe:function(e){var t={name:\"Meta-ExternalAds\"},r=n.default.getFirstMatch(/meta-externalads\\/(\\d+(\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/meta-externalagent/i],describe:function(e){var t={name:\"Meta-ExternalAgent\"},r=n.default.getFirstMatch(/meta-externalagent\\/(\\d+(\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/meta-externalfetcher/i],describe:function(e){var t={name:\"Meta-ExternalFetcher\"},r=n.default.getFirstMatch(/meta-externalfetcher\\/(\\d+(\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/googlebot/i],describe:function(e){var t={name:\"Googlebot\"},r=n.default.getFirstMatch(/googlebot\\/(\\d+(\\.\\d+))/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/amazonbot/i],describe:function(e){var t={name:\"AmazonBot\"},r=n.default.getFirstMatch(/amazonbot\\/(\\d+(\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/bingbot/i],describe:function(e){var t={name:\"BingCrawler\"},r=n.default.getFirstMatch(/bingbot\\/(\\d+(\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/baiduspider/i],describe:function(e){var t={name:\"BaiduSpider\"},r=n.default.getFirstMatch(/baiduspider\\/(\\d+(\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/duckduckbot/i],describe:function(e){var t={name:\"DuckDuckBot\"},r=n.default.getFirstMatch(/duckduckbot\\/(\\d+(\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/ia_archiver/i],describe:function(e){var t={name:\"InternetArchiveCrawler\"},r=n.default.getFirstMatch(/ia_archiver\\/(\\d+(\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/facebookexternalhit/i,/facebookcatalog/i],describe:function(){return{name:\"FacebookExternalHit\"}}},{test:[/yahoo!?[\\s/]*slurp/i],describe:function(){return{name:\"YahooSlurp\"}}},{test:[/yandexbot/i,/yandexmobilebot/i],describe:function(){return{name:\"YandexBot\"}}},{test:[/pingdom/i],describe:function(){return{name:\"PingdomBot\"}}},{test:[/opera/i],describe:function(e){var t={name:\"Opera\"},r=n.default.getFirstMatch(a,e)||n.default.getFirstMatch(/(?:opera)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/opr\\/|opios/i],describe:function(e){var t={name:\"Opera\"},r=n.default.getFirstMatch(/(?:opr|opios)[\\s/](\\S+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/SamsungBrowser/i],describe:function(e){var t={name:\"Samsung Internet for Android\"},r=n.default.getFirstMatch(a,e)||n.default.getFirstMatch(/(?:SamsungBrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/Whale/i],describe:function(e){var t={name:\"NAVER Whale Browser\"},r=n.default.getFirstMatch(a,e)||n.default.getFirstMatch(/(?:whale)[\\s/](\\d+(?:\\.\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/PaleMoon/i],describe:function(e){var t={name:\"Pale Moon\"},r=n.default.getFirstMatch(a,e)||n.default.getFirstMatch(/(?:PaleMoon)[\\s/](\\d+(?:\\.\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/MZBrowser/i],describe:function(e){var t={name:\"MZ Browser\"},r=n.default.getFirstMatch(/(?:MZBrowser)[\\s/](\\d+(?:\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/focus/i],describe:function(e){var t={name:\"Focus\"},r=n.default.getFirstMatch(/(?:focus)[\\s/](\\d+(?:\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/swing/i],describe:function(e){var t={name:\"Swing\"},r=n.default.getFirstMatch(/(?:swing)[\\s/](\\d+(?:\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/coast/i],describe:function(e){var t={name:\"Opera Coast\"},r=n.default.getFirstMatch(a,e)||n.default.getFirstMatch(/(?:coast)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/opt\\/\\d+(?:.?_?\\d+)+/i],describe:function(e){var t={name:\"Opera Touch\"},r=n.default.getFirstMatch(/(?:opt)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/yabrowser/i],describe:function(e){var t={name:\"Yandex Browser\"},r=n.default.getFirstMatch(/(?:yabrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/ucbrowser/i],describe:function(e){var t={name:\"UC Browser\"},r=n.default.getFirstMatch(a,e)||n.default.getFirstMatch(/(?:ucbrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/Maxthon|mxios/i],describe:function(e){var t={name:\"Maxthon\"},r=n.default.getFirstMatch(a,e)||n.default.getFirstMatch(/(?:Maxthon|mxios)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/epiphany/i],describe:function(e){var t={name:\"Epiphany\"},r=n.default.getFirstMatch(a,e)||n.default.getFirstMatch(/(?:epiphany)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/puffin/i],describe:function(e){var t={name:\"Puffin\"},r=n.default.getFirstMatch(a,e)||n.default.getFirstMatch(/(?:puffin)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/sleipnir/i],describe:function(e){var t={name:\"Sleipnir\"},r=n.default.getFirstMatch(a,e)||n.default.getFirstMatch(/(?:sleipnir)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/k-meleon/i],describe:function(e){var t={name:\"K-Meleon\"},r=n.default.getFirstMatch(a,e)||n.default.getFirstMatch(/(?:k-meleon)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/micromessenger/i],describe:function(e){var t={name:\"WeChat\"},r=n.default.getFirstMatch(/(?:micromessenger)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/qqbrowser/i],describe:function(e){var t={name:/qqbrowserlite/i.test(e)?\"QQ Browser Lite\":\"QQ Browser\"},r=n.default.getFirstMatch(/(?:qqbrowserlite|qqbrowser)[/](\\d+(\\.?_?\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/msie|trident/i],describe:function(e){var t={name:\"Internet Explorer\"},r=n.default.getFirstMatch(/(?:msie |rv:)(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/\\sedg\\//i],describe:function(e){var t={name:\"Microsoft Edge\"},r=n.default.getFirstMatch(/\\sedg\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/edg([ea]|ios)/i],describe:function(e){var t={name:\"Microsoft Edge\"},r=n.default.getSecondMatch(/edg([ea]|ios)\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/vivaldi/i],describe:function(e){var t={name:\"Vivaldi\"},r=n.default.getFirstMatch(/vivaldi\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/seamonkey/i],describe:function(e){var t={name:\"SeaMonkey\"},r=n.default.getFirstMatch(/seamonkey\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/sailfish/i],describe:function(e){var t={name:\"Sailfish\"},r=n.default.getFirstMatch(/sailfish\\s?browser\\/(\\d+(\\.\\d+)?)/i,e);return r&&(t.version=r),t}},{test:[/silk/i],describe:function(e){var t={name:\"Amazon Silk\"},r=n.default.getFirstMatch(/silk\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/phantom/i],describe:function(e){var t={name:\"PhantomJS\"},r=n.default.getFirstMatch(/phantomjs\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/slimerjs/i],describe:function(e){var t={name:\"SlimerJS\"},r=n.default.getFirstMatch(/slimerjs\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/blackberry|\\bbb\\d+/i,/rim\\stablet/i],describe:function(e){var t={name:\"BlackBerry\"},r=n.default.getFirstMatch(a,e)||n.default.getFirstMatch(/blackberry[\\d]+\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/(web|hpw)[o0]s/i],describe:function(e){var t={name:\"WebOS Browser\"},r=n.default.getFirstMatch(a,e)||n.default.getFirstMatch(/w(?:eb)?[o0]sbrowser\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/bada/i],describe:function(e){var t={name:\"Bada\"},r=n.default.getFirstMatch(/dolfin\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/tizen/i],describe:function(e){var t={name:\"Tizen\"},r=n.default.getFirstMatch(/(?:tizen\\s?)?browser\\/(\\d+(\\.?_?\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/qupzilla/i],describe:function(e){var t={name:\"QupZilla\"},r=n.default.getFirstMatch(/(?:qupzilla)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/librewolf/i],describe:function(e){var t={name:\"LibreWolf\"},r=n.default.getFirstMatch(/(?:librewolf)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/firefox|iceweasel|fxios/i],describe:function(e){var t={name:\"Firefox\"},r=n.default.getFirstMatch(/(?:firefox|iceweasel|fxios)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/electron/i],describe:function(e){var t={name:\"Electron\"},r=n.default.getFirstMatch(/(?:electron)\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/sogoumobilebrowser/i,/metasr/i,/se 2\\.[x]/i],describe:function(e){var t={name:\"Sogou Browser\"},r=n.default.getFirstMatch(/(?:sogoumobilebrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i,e),i=n.default.getFirstMatch(/(?:chrome|crios|crmo)\\/(\\d+(\\.?_?\\d+)+)/i,e),a=n.default.getFirstMatch(/se ([\\d.]+)x/i,e),o=r||i||a;return o&&(t.version=o),t}},{test:[/MiuiBrowser/i],describe:function(e){var t={name:\"Miui\"},r=n.default.getFirstMatch(/(?:MiuiBrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/chromium/i],describe:function(e){var t={name:\"Chromium\"},r=n.default.getFirstMatch(/(?:chromium)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/chrome|crios|crmo/i],describe:function(e){var t={name:\"Chrome\"},r=n.default.getFirstMatch(/(?:chrome|crios|crmo)\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/GSA/i],describe:function(e){var t={name:\"Google Search\"},r=n.default.getFirstMatch(/(?:GSA)\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:function(e){var t=!e.test(/like android/i),r=e.test(/android/i);return t&&r},describe:function(e){var t={name:\"Android Browser\"},r=n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/playstation 4/i],describe:function(e){var t={name:\"PlayStation 4\"},r=n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/safari|applewebkit/i],describe:function(e){var t={name:\"Safari\"},r=n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/.*/i],describe:function(e){var t=-1!==e.search(\"\\\\(\")?/^(.*)\\/(.*)[ \\t]\\((.*)/:/^(.*)\\/(.*) /;return{name:n.default.getFirstMatch(t,e),version:n.default.getSecondMatch(t,e)}}}];t.default=o,e.exports=t.default},93:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var i,n=(i=r(17))&&i.__esModule?i:{default:i},a=r(18);var o=[{test:[/Roku\\/DVP/],describe:function(e){var t=n.default.getFirstMatch(/Roku\\/DVP-(\\d+\\.\\d+)/i,e);return{name:a.OS_MAP.Roku,version:t}}},{test:[/windows phone/i],describe:function(e){var t=n.default.getFirstMatch(/windows phone (?:os)?\\s?(\\d+(\\.\\d+)*)/i,e);return{name:a.OS_MAP.WindowsPhone,version:t}}},{test:[/windows /i],describe:function(e){var t=n.default.getFirstMatch(/Windows ((NT|XP)( \\d\\d?.\\d)?)/i,e),r=n.default.getWindowsVersionName(t);return{name:a.OS_MAP.Windows,version:t,versionName:r}}},{test:[/Macintosh(.*?) FxiOS(.*?)\\//],describe:function(e){var t={name:a.OS_MAP.iOS},r=n.default.getSecondMatch(/(Version\\/)(\\d[\\d.]+)/,e);return r&&(t.version=r),t}},{test:[/macintosh/i],describe:function(e){var t=n.default.getFirstMatch(/mac os x (\\d+(\\.?_?\\d+)+)/i,e).replace(/[_\\s]/g,\".\"),r=n.default.getMacOSVersionName(t),i={name:a.OS_MAP.MacOS,version:t};return r&&(i.versionName=r),i}},{test:[/(ipod|iphone|ipad)/i],describe:function(e){var t=n.default.getFirstMatch(/os (\\d+([_\\s]\\d+)*) like mac os x/i,e).replace(/[_\\s]/g,\".\");return{name:a.OS_MAP.iOS,version:t}}},{test:[/OpenHarmony/i],describe:function(e){var t=n.default.getFirstMatch(/OpenHarmony\\s+(\\d+(\\.\\d+)*)/i,e);return{name:a.OS_MAP.HarmonyOS,version:t}}},{test:function(e){var t=!e.test(/like android/i),r=e.test(/android/i);return t&&r},describe:function(e){var t=n.default.getFirstMatch(/android[\\s/-](\\d+(\\.\\d+)*)/i,e),r=n.default.getAndroidVersionName(t),i={name:a.OS_MAP.Android,version:t};return r&&(i.versionName=r),i}},{test:[/(web|hpw)[o0]s/i],describe:function(e){var t=n.default.getFirstMatch(/(?:web|hpw)[o0]s\\/(\\d+(\\.\\d+)*)/i,e),r={name:a.OS_MAP.WebOS};return t&&t.length&&(r.version=t),r}},{test:[/blackberry|\\bbb\\d+/i,/rim\\stablet/i],describe:function(e){var t=n.default.getFirstMatch(/rim\\stablet\\sos\\s(\\d+(\\.\\d+)*)/i,e)||n.default.getFirstMatch(/blackberry\\d+\\/(\\d+([_\\s]\\d+)*)/i,e)||n.default.getFirstMatch(/\\bbb(\\d+)/i,e);return{name:a.OS_MAP.BlackBerry,version:t}}},{test:[/bada/i],describe:function(e){var t=n.default.getFirstMatch(/bada\\/(\\d+(\\.\\d+)*)/i,e);return{name:a.OS_MAP.Bada,version:t}}},{test:[/tizen/i],describe:function(e){var t=n.default.getFirstMatch(/tizen[/\\s](\\d+(\\.\\d+)*)/i,e);return{name:a.OS_MAP.Tizen,version:t}}},{test:[/linux/i],describe:function(){return{name:a.OS_MAP.Linux}}},{test:[/CrOS/],describe:function(){return{name:a.OS_MAP.ChromeOS}}},{test:[/PlayStation 4/],describe:function(e){var t=n.default.getFirstMatch(/PlayStation 4[/\\s](\\d+(\\.\\d+)*)/i,e);return{name:a.OS_MAP.PlayStation4,version:t}}}];t.default=o,e.exports=t.default},94:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var i,n=(i=r(17))&&i.__esModule?i:{default:i},a=r(18);var o=[{test:[/googlebot/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"Google\"}}},{test:[/amazonbot/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"Amazon\"}}},{test:[/gptbot/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"OpenAI\"}}},{test:[/chatgpt-user/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"OpenAI\"}}},{test:[/oai-searchbot/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"OpenAI\"}}},{test:[/baiduspider/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"Baidu\"}}},{test:[/bingbot/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"Bing\"}}},{test:[/duckduckbot/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"DuckDuckGo\"}}},{test:[/claudebot/i,/claude-web/i,/claude-user/i,/claude-searchbot/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"Anthropic\"}}},{test:[/omgilibot/i,/webzio-extended/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"Webz.io\"}}},{test:[/diffbot/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"Diffbot\"}}},{test:[/perplexitybot/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"Perplexity AI\"}}},{test:[/perplexity-user/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"Perplexity AI\"}}},{test:[/youbot/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"You.com\"}}},{test:[/ia_archiver/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"Internet Archive\"}}},{test:[/meta-webindexer/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"Meta\"}}},{test:[/meta-externalads/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"Meta\"}}},{test:[/meta-externalagent/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"Meta\"}}},{test:[/meta-externalfetcher/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"Meta\"}}},{test:[/facebookexternalhit/i,/facebookcatalog/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"Meta\"}}},{test:[/yahoo/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"Yahoo\"}}},{test:[/yandexbot/i,/yandexmobilebot/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"Yandex\"}}},{test:[/pingdom/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"Pingdom\"}}},{test:[/huawei/i],describe:function(e){var t=n.default.getFirstMatch(/(can-l01)/i,e)&&\"Nova\",r={type:a.PLATFORMS_MAP.mobile,vendor:\"Huawei\"};return t&&(r.model=t),r}},{test:[/nexus\\s*(?:7|8|9|10).*/i],describe:function(){return{type:a.PLATFORMS_MAP.tablet,vendor:\"Nexus\"}}},{test:[/ipad/i],describe:function(){return{type:a.PLATFORMS_MAP.tablet,vendor:\"Apple\",model:\"iPad\"}}},{test:[/Macintosh(.*?) FxiOS(.*?)\\//],describe:function(){return{type:a.PLATFORMS_MAP.tablet,vendor:\"Apple\",model:\"iPad\"}}},{test:[/kftt build/i],describe:function(){return{type:a.PLATFORMS_MAP.tablet,vendor:\"Amazon\",model:\"Kindle Fire HD 7\"}}},{test:[/silk/i],describe:function(){return{type:a.PLATFORMS_MAP.tablet,vendor:\"Amazon\"}}},{test:[/tablet(?! pc)/i],describe:function(){return{type:a.PLATFORMS_MAP.tablet}}},{test:function(e){var t=e.test(/ipod|iphone/i),r=e.test(/like (ipod|iphone)/i);return t&&!r},describe:function(e){var t=n.default.getFirstMatch(/(ipod|iphone)/i,e);return{type:a.PLATFORMS_MAP.mobile,vendor:\"Apple\",model:t}}},{test:[/nexus\\s*[0-6].*/i,/galaxy nexus/i],describe:function(){return{type:a.PLATFORMS_MAP.mobile,vendor:\"Nexus\"}}},{test:[/Nokia/i],describe:function(e){var t=n.default.getFirstMatch(/Nokia\\s+([0-9]+(\\.[0-9]+)?)/i,e),r={type:a.PLATFORMS_MAP.mobile,vendor:\"Nokia\"};return t&&(r.model=t),r}},{test:[/[^-]mobi/i],describe:function(){return{type:a.PLATFORMS_MAP.mobile}}},{test:function(e){return\"blackberry\"===e.getBrowserName(!0)},describe:function(){return{type:a.PLATFORMS_MAP.mobile,vendor:\"BlackBerry\"}}},{test:function(e){return\"bada\"===e.getBrowserName(!0)},describe:function(){return{type:a.PLATFORMS_MAP.mobile}}},{test:function(e){return\"windows phone\"===e.getBrowserName()},describe:function(){return{type:a.PLATFORMS_MAP.mobile,vendor:\"Microsoft\"}}},{test:function(e){var t=Number(String(e.getOSVersion()).split(\".\")[0]);return\"android\"===e.getOSName(!0)&&t>=3},describe:function(){return{type:a.PLATFORMS_MAP.tablet}}},{test:function(e){return\"android\"===e.getOSName(!0)},describe:function(){return{type:a.PLATFORMS_MAP.mobile}}},{test:function(e){return\"macos\"===e.getOSName(!0)},describe:function(){return{type:a.PLATFORMS_MAP.desktop,vendor:\"Apple\"}}},{test:function(e){return\"windows\"===e.getOSName(!0)},describe:function(){return{type:a.PLATFORMS_MAP.desktop}}},{test:function(e){return\"linux\"===e.getOSName(!0)},describe:function(){return{type:a.PLATFORMS_MAP.desktop}}},{test:function(e){return\"playstation 4\"===e.getOSName(!0)},describe:function(){return{type:a.PLATFORMS_MAP.tv}}},{test:function(e){return\"roku\"===e.getOSName(!0)},describe:function(){return{type:a.PLATFORMS_MAP.tv}}}];t.default=o,e.exports=t.default},95:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var i,n=(i=r(17))&&i.__esModule?i:{default:i},a=r(18);var o=[{test:function(e){return\"microsoft edge\"===e.getBrowserName(!0)},describe:function(e){if(/\\sedg\\//i.test(e))return{name:a.ENGINE_MAP.Blink};var t=n.default.getFirstMatch(/edge\\/(\\d+(\\.?_?\\d+)+)/i,e);return{name:a.ENGINE_MAP.EdgeHTML,version:t}}},{test:[/trident/i],describe:function(e){var t={name:a.ENGINE_MAP.Trident},r=n.default.getFirstMatch(/trident\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:function(e){return e.test(/presto/i)},describe:function(e){var t={name:a.ENGINE_MAP.Presto},r=n.default.getFirstMatch(/presto\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:function(e){var t=e.test(/gecko/i),r=e.test(/like gecko/i);return t&&!r},describe:function(e){var t={name:a.ENGINE_MAP.Gecko},r=n.default.getFirstMatch(/gecko\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/(apple)?webkit\\/537\\.36/i],describe:function(){return{name:a.ENGINE_MAP.Blink}}},{test:[/(apple)?webkit/i],describe:function(e){var t={name:a.ENGINE_MAP.WebKit},r=n.default.getFirstMatch(/webkit\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}}];t.default=o,e.exports=t.default}})}));","import Bowser from 'bowser';\r\n\r\n/**\r\n * 获取浏览器名称和版本等设备信息\r\n */\r\nexport function getBrowserNameVersion() {\r\n const { browser, os, platform } = Bowser.parse(window.navigator.userAgent);\r\n return {\r\n browser,\r\n os,\r\n platform,\r\n ratio: getRatio(),\r\n wh: getWH(),\r\n };\r\n}\r\n\r\n/**\r\n * 获取屏幕缩放比例\r\n */\r\nfunction getRatio() {\r\n let ratio = 0;\r\n const screen: any = window.screen;\r\n const ua = navigator.userAgent.toLowerCase();\r\n if (window.devicePixelRatio !== undefined) {\r\n ratio = window.devicePixelRatio;\r\n } else if (~ua.indexOf('msie')) {\r\n if (screen.deviceXDPI && screen.logicalXDPI) {\r\n ratio = screen.deviceXDPI / screen.logicalXDPI;\r\n }\r\n } else if (window.outerWidth !== undefined && window.innerWidth !== undefined) {\r\n ratio = window.outerWidth / window.innerWidth;\r\n }\r\n\r\n if (ratio) {\r\n ratio = Math.round(ratio * 100);\r\n }\r\n return ratio;\r\n}\r\n\r\n/**\r\n * 获取浏览器屏幕宽高\r\n */\r\nfunction getWH() {\r\n return {\r\n width: window.screen.width,\r\n height: window.screen.height,\r\n };\r\n}\r\n\r\n/**\r\n * 异步执行 / 空闲时刻 / 每帧回调\r\n */\r\nexport const nextTime =\r\n window.requestIdleCallback || window.requestAnimationFrame || ((callback) => window.setTimeout(callback, 1000 / 60));\r\n\r\n/**\r\n * 页面卸载前的回调\r\n */\r\nexport const beforeUnload = (callback: () => void) => {\r\n window.addEventListener('beforeunload', () => {\r\n callback();\r\n });\r\n};\r\n","/**\r\n * 节流函数\r\n * @param fn 执行函数\r\n * @param delay 延迟时间(ms)\r\n */\r\nexport function throttle<T extends (...args: any[]) => any>(fn: T, delay: number): (...args: Parameters<T>) => void {\r\n let lastTime = 0;\r\n return function (this: any, ...args: Parameters<T>) {\r\n const now = Date.now();\r\n if (now - lastTime >= delay) {\r\n fn.apply(this, args);\r\n lastTime = now;\r\n }\r\n };\r\n}\r\n\r\nexport const isIgnoredScriptSource = (sourceURL?: string) => {\r\n if (!sourceURL || typeof sourceURL !== 'string') return false;\r\n if (/node_modules/.test(sourceURL)) return true;\r\n return false;\r\n};\r\n","/**\r\n * 事件发送前的最大缓存数\r\n */\r\nexport const MAX_CACHE_LEN = 5;\r\n\r\n/**\r\n * 发送缓存事件前的最大等待时间(毫秒)\r\n */\r\nexport const MAX_WAITING_TIME = 30000;\r\n\r\n/**\r\n * 存储的用户UUID\r\n */\r\nexport const UUID = 'track_uuid';\r\n\r\n/**\r\n * 默认资源加载阈值 (ms)\r\n */\r\nexport const DEFAULT_RESOURCE_THRESHOLD = 1000;\r\n\r\n/**\r\n * 默认 LoAF 阈值 (ms)\r\n */\r\nexport const DEFAULT_LOAF_THRESHOLD = 50;\r\n","import { nanoid } from 'nanoid';\r\nimport { getBrowserNameVersion } from '../utils';\r\nimport type { Device } from '../types/index';\r\nimport { UUID } from '../constant';\r\n\r\n//基本信息\r\nexport default class DeviceInfo {\r\n device: Device;\r\n uuid: string = '';\r\n\r\n constructor(uuidKey: string = UUID) {\r\n //设备信息\r\n this.device = getBrowserNameVersion();\r\n this.getUUid(uuidKey);\r\n }\r\n\r\n private getUUid(key: string) {\r\n try {\r\n const uuid = localStorage.getItem(key);\r\n if (uuid) {\r\n this.uuid = uuid;\r\n } else {\r\n this.uuid = nanoid();\r\n localStorage.setItem(key, this.uuid);\r\n }\r\n } catch (e) {\r\n // 降级处理:如果 localStorage 不可用(如隐身模式),仅在内存中生成 UUID\r\n this.uuid = nanoid();\r\n console.warn('[CWJ Monitor] localStorage access failed, UUID will not be persisted:', e);\r\n }\r\n }\r\n}\r\n","import DeviceInfo from './deviceInfo';\r\nimport { getDate } from '../utils';\r\nimport type { Options, MonitoringPayload } from '../types/index';\r\nimport { EMIT_TYPE } from '../types/event';\r\nimport Reporter from './reporter';\r\n\r\n/**\r\n * EventTrack 类处理事件收集和转换\r\n * 职责:\r\n * 1. 管理设备信息 (DeviceInfo)\r\n * 2. 格式化原始数据为 MonitoringPayload\r\n * 3. 将格式化后的数据交给 Reporter 发送\r\n */\r\nexport default class EventTrack {\r\n private deviceInfo: DeviceInfo;\r\n private reporter: Reporter;\r\n private data?: Record<string, any>;\r\n\r\n constructor(options: Options, reporter: Reporter) {\r\n this.deviceInfo = new DeviceInfo(options.uuidKey);\r\n this.reporter = reporter;\r\n this.data = options.data;\r\n }\r\n\r\n /**\r\n * 格式化事件数据用于传输\r\n */\r\n private formatter(type: EMIT_TYPE | string, data: any): MonitoringPayload {\r\n const timestamp = Date.now();\r\n return {\r\n device: this.deviceInfo.device,\r\n uuid: this.deviceInfo.uuid,\r\n type,\r\n data,\r\n date: getDate(timestamp),\r\n userData: this.data,\r\n };\r\n }\r\n\r\n /**\r\n * 公共方法:发送事件\r\n * 将事件格式化后交给 reporter 处理\r\n */\r\n public emit(type: EMIT_TYPE | string, data?: any): void {\r\n const payload = this.formatter(type, data);\r\n this.reporter.send(payload);\r\n }\r\n\r\n /**\r\n * 获取上报器实例 (供 Core 使用)\r\n */\r\n public getReporter(): Reporter {\r\n return this.reporter;\r\n }\r\n}\r\n","import { MAX_CACHE_LEN, MAX_WAITING_TIME } from '../constant';\r\nimport { nextTime, beforeUnload } from '../utils';\r\nimport type { MonitoringPayload, TransportConfig } from '../types/index';\r\n\r\n/**\r\n * Reporter 类负责数据的批量上报、重试和调度\r\n */\r\nexport default class Reporter {\r\n private url: string;\r\n private transportConfig: Required<TransportConfig>;\r\n private events: MonitoringPayload[] = [];\r\n private isSending = false;\r\n private timer: ReturnType<typeof setTimeout> | null = null;\r\n\r\n constructor(url: string, config?: TransportConfig) {\r\n this.url = url;\r\n this.transportConfig = {\r\n maxBatchSize: config?.maxBatchSize ?? MAX_CACHE_LEN,\r\n maxWaitTime: config?.maxWaitTime ?? MAX_WAITING_TIME,\r\n };\r\n\r\n // 页面卸载前刷新事件\r\n beforeUnload(() => this.flush());\r\n }\r\n\r\n /**\r\n * 将事件加入队列\r\n */\r\n public send(payload: MonitoringPayload) {\r\n this.events.push(payload);\r\n\r\n // 达到最大批处理大小时立即发送,否则通过定时器发送\r\n if (this.events.length >= this.transportConfig.maxBatchSize) {\r\n this.clearTimer();\r\n this.triggerSend();\r\n } else if (!this.timer) {\r\n this.timer = setTimeout(() => {\r\n this.timer = null;\r\n this.triggerSend();\r\n }, this.transportConfig.maxWaitTime);\r\n }\r\n }\r\n\r\n /**\r\n * 立即刷新所有待发送事件\r\n */\r\n public flush(): Promise<void> {\r\n return this.triggerSend(true);\r\n }\r\n\r\n private clearTimer() {\r\n if (this.timer) {\r\n clearTimeout(this.timer);\r\n this.timer = null;\r\n }\r\n }\r\n\r\n /**\r\n * 触发发送逻辑\r\n */\r\n private async triggerSend(isFlush = false): Promise<void> {\r\n if (this.isSending || !this.events.length) return;\r\n\r\n this.isSending = true;\r\n\r\n try {\r\n const maxLen = isFlush ? this.events.length : this.transportConfig.maxBatchSize;\r\n const sendEvents = this.events.slice(0, maxLen);\r\n this.events = this.events.slice(maxLen);\r\n\r\n await this.safeSend(sendEvents);\r\n\r\n // 如果还有剩余事件,调度下次发送\r\n if (this.events.length) {\r\n nextTime(() => this.triggerSend());\r\n }\r\n } catch (error) {\r\n // 失败处理逻辑,目前简单忽略\r\n } finally {\r\n this.isSending = false;\r\n }\r\n }\r\n\r\n /**\r\n * 使用 navigator.sendBeacon 或 XMLHttpRequest 安全发送事件\r\n */\r\n private safeSend(events: MonitoringPayload[]): Promise<void> {\r\n return new Promise((resolve, reject) => {\r\n if (!events.length) {\r\n resolve();\r\n return;\r\n }\r\n\r\n const data = JSON.stringify(events);\r\n\r\n // 优先尝试 sendBeacon(更适合页面卸载)\r\n if (typeof navigator.sendBeacon === 'function') {\r\n const blob = new Blob([data], { type: 'application/json' });\r\n const success = navigator.sendBeacon(this.url, blob);\r\n\r\n if (success) {\r\n resolve();\r\n } else {\r\n this.sendViaXHR(data, resolve, reject);\r\n }\r\n } else {\r\n // 降级到 XMLHttpRequest\r\n this.sendViaXHR(data, resolve, reject);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * 通过 XMLHttpRequest 发送\r\n */\r\n private sendViaXHR(data: string, resolve: () => void, reject: (error: Error) => void): void {\r\n const xhr = new XMLHttpRequest();\r\n\r\n xhr.open('POST', this.url, true);\r\n xhr.setRequestHeader('Content-Type', 'application/json');\r\n\r\n xhr.onload = () => {\r\n if (xhr.status >= 200 && xhr.status < 300) {\r\n resolve();\r\n } else {\r\n reject(new Error(`HTTP ${xhr.status}: ${xhr.statusText}`));\r\n }\r\n };\r\n\r\n xhr.onerror = () => reject(new Error('Network error'));\r\n xhr.ontimeout = () => reject(new Error('Request timeout'));\r\n\r\n xhr.timeout = 10000;\r\n xhr.send(data);\r\n }\r\n}\r\n","/**\r\n * 插件类型标识符\r\n * 用于插件注册和配置\r\n */\r\nexport enum TYPES {\r\n ERROR = 'error',\r\n CLICK = 'click',\r\n PERFORMANCE = 'performance',\r\n ROUTER = 'router',\r\n XHR = 'xhr',\r\n FETCH = 'fetch',\r\n}\r\n\r\n/**\r\n * 事件发送类型标识符\r\n * 用于向追踪系统发送事件时使用\r\n */\r\nexport enum EMIT_TYPE {\r\n // 错误事件\r\n ERROR = 'error',\r\n\r\n // 行为事件\r\n BEHAVIOR_CLICK = 'click',\r\n ROUTE_CHANGE = 'route_change',\r\n\r\n // 性能事件 - Core Web Vitals\r\n PERFORMANCE_FP = 'performance_fp',\r\n PERFORMANCE_FCP = 'performance_fcp',\r\n PERFORMANCE_LCP = 'performance_lcp',\r\n PERFORMANCE_INP = 'performance_inp',\r\n PERFORMANCE_LONGTASK = 'performance_longtask',\r\n PERFORMANCE_RESOURCE = 'performance_resource',\r\n PERFORMANCE_LOAF = 'performance_loaf',\r\n\r\n // XHR 事件\r\n XHR = 'xhr',\r\n FETCH = 'fetch',\r\n\r\n // 自定义事件\r\n CUSTOM = 'custom',\r\n}\r\n","import EventTrack from './eventTrack';\r\nimport Reporter from './reporter';\r\nimport type { Options } from '../types/index';\r\nimport type { IPlugin } from '../plugin/definePlugin';\r\nimport { EMIT_TYPE } from '../types/event';\r\n\r\nexport default class Core extends EventTrack {\r\n private pluginMap: Map<string, IPlugin> = new Map();\r\n private options: Options;\r\n\r\n constructor(options: Options) {\r\n const reporter = new Reporter(options.url, options.transport);\r\n super(options, reporter);\r\n this.options = options;\r\n }\r\n\r\n use(plugin: IPlugin): Core {\r\n if (!this.pluginMap.has(plugin.name)) {\r\n this.pluginMap.set(plugin.name, plugin);\r\n }\r\n return this; // 方便链式调用\r\n }\r\n\r\n /**\r\n * 自定义事件上报\r\n * @param data 上报的数据\r\n * @param type 事件类型,默认为 'custom'\r\n */\r\n log(data: any, type: string = EMIT_TYPE.CUSTOM): void {\r\n this.emit(type, data);\r\n }\r\n\r\n // 启动插件\r\n run() {\r\n const context = {\r\n emit: this.emit.bind(this),\r\n url: this.options.url,\r\n };\r\n\r\n this.pluginMap.forEach((plugin) => {\r\n plugin.install(context);\r\n });\r\n\r\n // 挂载全局变量\r\n this.mount();\r\n }\r\n\r\n // 停止并卸载所有插件\r\n stop() {\r\n this.pluginMap.forEach((plugin) => {\r\n plugin.uninstall?.();\r\n });\r\n this.pluginMap.clear();\r\n\r\n // 卸载全局变量\r\n this.unmount();\r\n }\r\n\r\n private mount() {\r\n const { globalKey = '$track' } = this.options;\r\n if (typeof window !== 'undefined') {\r\n (window as any)[globalKey] = this;\r\n }\r\n }\r\n\r\n private unmount() {\r\n const { globalKey = '$track' } = this.options;\r\n if (typeof window !== 'undefined' && (window as any)[globalKey] === this) {\r\n delete (window as any)[globalKey];\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * 创建监控实例的工厂函数\r\n * @param options 配置项\r\n */\r\nexport function createMonitor(options: Options): Core {\r\n return new Core(options);\r\n}\r\n","import { IPlugin, PluginContext } from './definePlugin';\r\nimport { EMIT_TYPE, TYPES } from '../types/event';\r\n\r\nexport interface ErrorOptions {\r\n /** 过滤函数,返回 false 则不记录该错误 */\r\n filter?: (error: any) => boolean;\r\n}\r\n\r\n/**\r\n * 错误监控插件\r\n * 监控并捕获 JavaScript 错误、资源加载错误、Promise 拒绝以及 console.error 调用\r\n */\r\nexport const ErrorPlugin = (options: ErrorOptions = {}): IPlugin => {\r\n let originalConsoleError: (...data: any[]) => void;\r\n let context: PluginContext;\r\n\r\n /**\r\n * 重写 console.error 以捕获错误日志\r\n */\r\n const overrideConsoleError = () => {\r\n originalConsoleError = console.error;\r\n\r\n console.error = (...args: any[]) => {\r\n // 调用原始的 console.error\r\n originalConsoleError?.apply(console, args);\r\n\r\n // 捕获错误信息\r\n const errorData = {\r\n type: 'console',\r\n message: args.map((arg) => String(arg)).join(' '),\r\n stack: new Error().stack,\r\n };\r\n\r\n // 如果配置了过滤函数且返回 false,则不记录\r\n if (options.filter && !options.filter(errorData)) {\r\n return;\r\n }\r\n\r\n context?.emit(EMIT_TYPE.ERROR, errorData);\r\n };\r\n };\r\n\r\n /**\r\n * 恢复 console.error\r\n */\r\n const restoreConsoleError = () => {\r\n if (originalConsoleError) {\r\n console.error = originalConsoleError;\r\n }\r\n };\r\n\r\n /**\r\n * 清理并限制堆栈追踪深度\r\n */\r\n const cleanStack = (stack?: string): string | undefined => {\r\n if (!stack) return undefined;\r\n const lines = stack.split('\\n').slice(0, 11);\r\n return lines.join('\\n');\r\n };\r\n\r\n /**\r\n * 用于生成指纹的简单哈希函数\r\n */\r\n const simpleHash = (str: string): string => {\r\n let hash = 0;\r\n for (let i = 0; i < str.length; i++) {\r\n const char = str.charCodeAt(i);\r\n hash = (hash << 5) - hash + char;\r\n hash = hash & hash; // 转换为 32 位整数\r\n }\r\n return Math.abs(hash).toString(36);\r\n };\r\n\r\n /**\r\n * 生成错误指纹以对相似错误进行分组\r\n */\r\n const generateFingerprint = (...parts: (string | undefined)[]): string => {\r\n const combined = parts.filter(Boolean).join('|');\r\n return simpleHash(combined);\r\n };\r\n\r\n /**\r\n * 检查错误是否为资源加载错误\r\n */\r\n const isResourceError = (target: any): boolean => {\r\n const resourceTags = ['LINK', 'SCRIPT', 'IMG', 'AUDIO', 'VIDEO', 'IFRAME'];\r\n return target && resourceTags.includes(target.tagName);\r\n };\r\n\r\n /**\r\n * 从 Promise 拒绝中提取错误详情\r\n */\r\n const getPromiseErrorDetails = (e: PromiseRejectionEvent) => {\r\n if (e.reason instanceof Error) {\r\n return {\r\n errorType: 'promise',\r\n message: e.reason.message,\r\n stack: cleanStack(e.reason.stack),\r\n name: e.reason.name,\r\n fingerprint: generateFingerprint(e.reason.message, e.reason.stack),\r\n };\r\n }\r\n return {\r\n errorType: 'promise',\r\n message: String(e.reason),\r\n };\r\n };\r\n\r\n /**\r\n * 从 ErrorEvent 中提取错误详情\r\n */\r\n const getErrorDetails = (e: ErrorEvent) => {\r\n const { error, target, filename, message } = e;\r\n if (error instanceof Error) {\r\n return {\r\n errorType: 'js',\r\n name: error.name,\r\n message: error.message,\r\n stack: cleanStack(error.stack),\r\n filename,\r\n colno: e.colno,\r\n lineno: e.lineno,\r\n fingerprint: generateFingerprint(error.message, error.stack),\r\n };\r\n }\r\n if (isResourceError(target)) {\r\n const element = target as HTMLImageElement | HTMLScriptElement | HTMLLinkElement;\r\n const url = 'src' in element ? element.src : element.href;\r\n return {\r\n errorType: 'resource',\r\n message: `Resource load failed: ${url}`,\r\n url,\r\n tagName: element.tagName,\r\n fingerprint: generateFingerprint(`resource:${url}`),\r\n };\r\n }\r\n return {\r\n errorType: 'unknown',\r\n message,\r\n filename,\r\n };\r\n };\r\n\r\n const errorHandler = (e: ErrorEvent) => {\r\n const errorData = { type: 'sync', ...getErrorDetails(e) };\r\n if (options.filter && !options.filter(errorData)) return;\r\n context?.emit(EMIT_TYPE.ERROR, errorData);\r\n };\r\n\r\n const rejectionHandler = (e: PromiseRejectionEvent) => {\r\n const errorData = { type: 'async', ...getPromiseErrorDetails(e) };\r\n if (options.filter && !options.filter(errorData)) return;\r\n context?.emit(EMIT_TYPE.ERROR, errorData);\r\n };\r\n\r\n return {\r\n name: TYPES.ERROR,\r\n install: (ctx: PluginContext) => {\r\n context = ctx;\r\n overrideConsoleError();\r\n window.addEventListener('error', errorHandler, true);\r\n window.addEventListener('unhandledrejection', rejectionHandler, true);\r\n },\r\n uninstall: () => {\r\n restoreConsoleError();\r\n window.removeEventListener('error', errorHandler, true);\r\n window.removeEventListener('unhandledrejection', rejectionHandler, true);\r\n },\r\n };\r\n};\r\n","import { IPlugin, PluginContext } from './definePlugin';\r\nimport { EMIT_TYPE, TYPES } from '../types/event';\r\nimport { getSeconds } from '../utils';\r\n\r\nexport interface PVOptions {\r\n /** 过滤函数,返回 false 则不记录该路由变化 */\r\n filter?: (to: string, from: string) => boolean;\r\n}\r\n\r\nexport const PVPlugin = (options: PVOptions = {}): IPlugin => {\r\n let lastRouteTime: number = Date.now();\r\n let context: PluginContext;\r\n\r\n let originPushState: typeof window.history.pushState;\r\n let originReplaceState: typeof window.history.replaceState;\r\n\r\n const emitRouteChange = (type: string) => {\r\n const now = Date.now();\r\n const to = window.location.href;\r\n const from = document.referrer;\r\n\r\n // 如果配置了过滤函数且返回 false,则不记录\r\n if (options.filter && !options.filter(to, from)) {\r\n return;\r\n }\r\n\r\n context?.emit(EMIT_TYPE.ROUTE_CHANGE, {\r\n from,\r\n to,\r\n type,\r\n duration: getSeconds(now, lastRouteTime),\r\n });\r\n\r\n lastRouteTime = now;\r\n };\r\n\r\n const handleHashChange = () => emitRouteChange('hashchange');\r\n const handlePopState = () => emitRouteChange('popstate');\r\n\r\n const setupHistoryListener = () => {\r\n originPushState = window.history.pushState;\r\n originReplaceState = window.history.replaceState;\r\n\r\n window.history.pushState = (...args) => {\r\n originPushState.apply(window.history, args);\r\n emitRouteChange('pushState');\r\n };\r\n\r\n window.history.replaceState = (...args) => {\r\n originReplaceState.apply(window.history, args);\r\n emitRouteChange('replaceState');\r\n };\r\n };\r\n\r\n const restoreHistoryListener = () => {\r\n if (originPushState) window.history.pushState = originPushState;\r\n if (originReplaceState) window.history.replaceState = originReplaceState;\r\n };\r\n\r\n return {\r\n name: TYPES.ROUTER,\r\n install: (ctx: PluginContext) => {\r\n context = ctx;\r\n lastRouteTime = Date.now();\r\n window.addEventListener('hashchange', handleHashChange);\r\n window.addEventListener('popstate', handlePopState);\r\n setupHistoryListener();\r\n },\r\n uninstall: () => {\r\n window.removeEventListener('hashchange', handleHashChange);\r\n window.removeEventListener('popstate', handlePopState);\r\n restoreHistoryListener();\r\n },\r\n };\r\n};\r\n","import { IPlugin, PluginContext } from './definePlugin';\r\nimport { EMIT_TYPE, TYPES } from '../types/event';\r\nimport { throttle } from '../utils';\r\n\r\nexport interface BehaviorOptions {\r\n /** 过滤函数,返回 false 则不记录该点击事件 */\r\n filter?: (element: HTMLElement) => boolean;\r\n /** 节流延迟时间(ms),默认 500ms */\r\n throttleDelay?: number;\r\n}\r\n\r\nexport const BehaviorPlugin = (options: BehaviorOptions = {}): IPlugin => {\r\n const { throttleDelay = 500 } = options;\r\n let context: PluginContext;\r\n\r\n // 获取元素的 XPath\r\n const getElementXPath = (element: HTMLElement): string => {\r\n if (!element || element.nodeType !== 1) return '';\r\n if (element.id) return `//*[@id=\"${element.id}\"]`;\r\n\r\n const sameTagSiblings = Array.from(element.parentNode?.children || []).filter(\r\n (el) => el.tagName === element.tagName,\r\n );\r\n\r\n const idx = sameTagSiblings.indexOf(element) + 1;\r\n return `${getElementXPath(element.parentNode as HTMLElement)}/${element.tagName.toLowerCase()}[${idx}]`;\r\n };\r\n\r\n const handleClick = throttle((e: Event) => {\r\n const target = e.target as HTMLElement;\r\n if (!target) return;\r\n\r\n // 如果配置了过滤函数且返回 false,则不记录\r\n if (options.filter && !options.filter(target)) {\r\n return;\r\n }\r\n\r\n // 收集点击元素信息\r\n const clickData = {\r\n tagName: target.tagName,\r\n id: target.id,\r\n className: target.className,\r\n text: target.textContent?.trim(),\r\n xPath: getElementXPath(target),\r\n };\r\n\r\n context?.emit(EMIT_TYPE.BEHAVIOR_CLICK, clickData);\r\n }, throttleDelay);\r\n\r\n return {\r\n name: TYPES.CLICK,\r\n install: (ctx: PluginContext) => {\r\n context = ctx;\r\n document.addEventListener(EMIT_TYPE.BEHAVIOR_CLICK, handleClick, true);\r\n },\r\n uninstall: () => {\r\n document.removeEventListener(EMIT_TYPE.BEHAVIOR_CLICK, handleClick, true);\r\n },\r\n };\r\n};\r\n","import { IPlugin, PluginContext } from './definePlugin';\r\nimport { EMIT_TYPE, TYPES } from '../types/event';\r\nimport { isIgnoredScriptSource } from '../utils/common';\r\n\r\nimport { DEFAULT_LOAF_THRESHOLD, DEFAULT_RESOURCE_THRESHOLD } from '../constant';\r\n\r\nexport interface PerformanceOptions {\r\n /** 过滤函数,返回 false 则不记录该性能指标 */\r\n filter?: (type: EMIT_TYPE, value: any) => boolean;\r\n /** 长任务阈值 (ms),超过此值则上报,默认 100 */\r\n longTaskThreshold?: number;\r\n /** 资源加载阈值 (ms),超过此值则上报,默认 1000 */\r\n resourceThreshold?: number;\r\n /** INP 阈值 (ms),超过此值则上报,默认 200 */\r\n inpThreshold?: number;\r\n /** LoAF 阈值 (ms),超过此值则上报,默认 100 */\r\n loafThreshold?: number;\r\n}\r\n\r\nexport const PerformancePlugin = (options: PerformanceOptions = {}): IPlugin => {\r\n let context: PluginContext;\r\n let paintObserver: PerformanceObserver | null = null;\r\n let lcpObserver: PerformanceObserver | null = null;\r\n let resourceObserver: PerformanceObserver | null = null;\r\n let loafObserver: PerformanceObserver | null = null;\r\n\r\n const monitorPaintMetrics = () => {\r\n const entryHandler = (list: { getEntries: () => any }) => {\r\n for (const entry of list.getEntries()) {\r\n if (entry.name === 'first-paint') {\r\n if (options.filter && !options.filter(EMIT_TYPE.PERFORMANCE_FP, entry.startTime)) {\r\n continue;\r\n }\r\n context?.emit(EMIT_TYPE.PERFORMANCE_FP, entry.startTime);\r\n } else if (entry.name === 'first-contentful-paint') {\r\n if (options.filter && !options.filter(EMIT_TYPE.PERFORMANCE_FCP, entry.startTime)) {\r\n continue;\r\n }\r\n context?.emit(EMIT_TYPE.PERFORMANCE_FCP, entry.startTime);\r\n }\r\n }\r\n paintObserver?.disconnect();\r\n };\r\n\r\n try {\r\n paintObserver = new PerformanceObserver(entryHandler);\r\n paintObserver.observe({ type: 'paint', buffered: true });\r\n } catch (e) {\r\n console.warn('[CWJ Monitor] Paint observation not supported:', e);\r\n }\r\n };\r\n\r\n const monitorLCP = () => {\r\n const entryHandler = (list: { getEntries: () => any }) => {\r\n if (lcpObserver) {\r\n lcpObserver.disconnect();\r\n }\r\n\r\n for (const entry of list.getEntries()) {\r\n if (options.filter && !options.filter(EMIT_TYPE.PERFORMANCE_LCP, entry.startTime)) {\r\n continue;\r\n }\r\n context?.emit(EMIT_TYPE.PERFORMANCE_LCP, entry.startTime);\r\n }\r\n };\r\n\r\n try {\r\n lcpObserver = new PerformanceObserver(entryHandler);\r\n lcpObserver.observe({ type: 'largest-contentful-paint', buffered: true });\r\n } catch (e) {\r\n console.warn('[CWJ Monitor] LCP observation not supported:', e);\r\n }\r\n };\r\n\r\n const monitorLoAF = () => {\r\n const entryHandler = (list: { getEntries: () => any }) => {\r\n for (const entry of list.getEntries()) {\r\n if (options.filter && !options.filter(EMIT_TYPE.PERFORMANCE_LOAF, entry)) {\r\n continue;\r\n }\r\n\r\n const threshold = options.loafThreshold ?? DEFAULT_LOAF_THRESHOLD;\r\n if (entry.duration > threshold) {\r\n const scripts = Array.isArray(entry.scripts) ? entry.scripts : [];\r\n let isUserTriggered = false;\r\n let allIgnored = true; // 是否所有脚本都属于忽略的来源\r\n\r\n for (let i = 0; i < scripts.length; i++) {\r\n const s = scripts[i];\r\n if (!s) continue;\r\n\r\n if (!isUserTriggered && s.invokerType === 'user-callback') isUserTriggered = true;\r\n\r\n if (allIgnored && !isIgnoredScriptSource(s.sourceURL)) {\r\n allIgnored = false;\r\n }\r\n\r\n // 若已发现用户触发且存在非忽略来源,可提前退出\r\n if (isUserTriggered && !allIgnored) break;\r\n }\r\n\r\n if (isUserTriggered && !allIgnored) {\r\n context?.emit(EMIT_TYPE.PERFORMANCE_LOAF, {\r\n duration: entry.duration,\r\n startTime: entry.startTime,\r\n renderStart: entry.renderStart,\r\n styleAndLayoutStart: entry.styleAndLayoutStart,\r\n hadRecentInput: entry.hadRecentInput,\r\n scripts: entry.scripts.map((s: any) => ({\r\n duration: s.duration,\r\n invoker: s.invoker,\r\n invokerType: s.invokerType,\r\n sourceURL: s.sourceURL,\r\n functionName: s.functionName,\r\n sourceFunctionName: s.sourceFunctionName,\r\n sourceCharPosition: s.sourceCharPosition,\r\n startTime: s.startTime,\r\n })),\r\n });\r\n }\r\n }\r\n }\r\n };\r\n\r\n try {\r\n loafObserver = new PerformanceObserver(entryHandler);\r\n loafObserver.observe({ type: 'long-animation-frame', buffered: true });\r\n } catch (e) {\r\n console.warn('[CWJ Monitor] LoAF observation not supported:', e);\r\n }\r\n };\r\n\r\n const monitorResource = () => {\r\n const entryHandler = (list: { getEntries: () => any }) => {\r\n for (const entry of list.getEntries()) {\r\n // 只监听 fetch 与 xmlhttprequest\r\n if (entry.initiatorType !== 'fetch' && entry.initiatorType !== 'xmlhttprequest') {\r\n continue;\r\n }\r\n\r\n if (options.filter && !options.filter(EMIT_TYPE.PERFORMANCE_RESOURCE, entry)) {\r\n continue;\r\n }\r\n\r\n // 资源加载时间超过阈值,上报\r\n const threshold = options.resourceThreshold ?? DEFAULT_RESOURCE_THRESHOLD;\r\n if (entry.duration > threshold) {\r\n context?.emit(EMIT_TYPE.PERFORMANCE_RESOURCE, {\r\n name: entry.name, // 资源 URL\r\n initiatorType: entry.initiatorType,\r\n duration: entry.duration,\r\n startTime: entry.startTime,\r\n transferSize: entry.transferSize,\r\n encodedBodySize: entry.encodedBodySize,\r\n decodedBodySize: entry.decodedBodySize,\r\n });\r\n }\r\n }\r\n };\r\n\r\n try {\r\n resourceObserver = new PerformanceObserver(entryHandler);\r\n resourceObserver.observe({ type: 'resource', buffered: true });\r\n } catch (e) {\r\n console.warn('[CWJ Monitor] Resource observation not supported:', e);\r\n }\r\n };\r\n\r\n return {\r\n name: TYPES.PERFORMANCE,\r\n install: (ctx: PluginContext) => {\r\n context = ctx;\r\n monitorPaintMetrics();\r\n monitorLCP();\r\n monitorResource();\r\n monitorLoAF();\r\n },\r\n uninstall: () => {\r\n paintObserver?.disconnect();\r\n lcpObserver?.disconnect();\r\n resourceObserver?.disconnect();\r\n loafObserver?.disconnect();\r\n },\r\n };\r\n};\r\n","import { IPlugin, PluginContext } from './definePlugin';\r\nimport { TYPES, EMIT_TYPE } from '../types/event';\r\n\r\n// 扩展 XMLHttpRequest 接口以包含自定义属性\r\ninterface CustomXMLHttpRequest extends XMLHttpRequest {\r\n _xhr_info?: {\r\n method: string;\r\n url: string;\r\n startTime: number;\r\n };\r\n}\r\n\r\ntype OpenArgs = Parameters<typeof window.XMLHttpRequest.prototype.open>;\r\ntype SendArgs = Parameters<typeof window.XMLHttpRequest.prototype.send>;\r\n\r\nexport interface XHROptions {\r\n /** 过滤函数,返回 false 则不记录该请求 */\r\n filter?: (method: string, url: string) => boolean;\r\n}\r\n\r\n/**\r\n * XHR 监控插件\r\n * 监控 XMLHttpRequest 请求,记录失败的请求(状态码非 2xx)\r\n */\r\nexport const XHRPlugin = (options: XHROptions = {}): IPlugin => {\r\n let context: PluginContext;\r\n let originOpen: typeof XMLHttpRequest.prototype.open;\r\n let originSend: typeof XMLHttpRequest.prototype.send;\r\n\r\n const setupXHRListeners = () => {\r\n const originXhr = window.XMLHttpRequest;\r\n if (!originXhr) return;\r\n\r\n originOpen = originXhr.prototype.open;\r\n originSend = originXhr.prototype.send;\r\n\r\n // 重写 open 方法\r\n originXhr.prototype.open = function <T extends OpenArgs>(this: CustomXMLHttpRequest, ...args: T) {\r\n this._xhr_info = {\r\n method: args[0].toUpperCase(),\r\n url: String(args[1]),\r\n startTime: 0,\r\n };\r\n return originOpen.apply(this, args);\r\n };\r\n\r\n // 重写 send 方法\r\n originXhr.prototype.send = function <T extends SendArgs>(this: CustomXMLHttpRequest, ...args: T) {\r\n if (this._xhr_info) {\r\n this._xhr_info.startTime = Date.now();\r\n }\r\n\r\n const onLoadend = () => {\r\n if (this._xhr_info) {\r\n // 防止死循环:忽略发送到监控后台的请求\r\n const trackerUrl = context?.url;\r\n const { url, method, startTime } = this._xhr_info;\r\n\r\n if (trackerUrl && url.includes(trackerUrl)) {\r\n return;\r\n }\r\n\r\n // 如果配置了过滤函数且返回 false,则不记录\r\n if (options.filter && !options.filter(method, url)) {\r\n return;\r\n }\r\n\r\n const duration = Date.now() - startTime;\r\n const status = this.status;\r\n\r\n // 监听HTTP层面 状态码不是200~299的错误\r\n if (!(status >= 200 && status < 300)) {\r\n const data = {\r\n method,\r\n url,\r\n status,\r\n duration,\r\n // 限制响应体大小,避免数据过大\r\n response: this.response ? String(this.response).slice(0, 200) : '',\r\n };\r\n\r\n context?.emit(EMIT_TYPE.XHR, data);\r\n }\r\n }\r\n };\r\n\r\n this.addEventListener('loadend', onLoadend);\r\n return originSend.apply(this, args);\r\n };\r\n };\r\n\r\n const restoreXHR = () => {\r\n const originXhr = window.XMLHttpRequest;\r\n if (!originXhr) return;\r\n if (originOpen) originXhr.prototype.open = originOpen;\r\n if (originSend) originXhr.prototype.send = originSend;\r\n };\r\n\r\n return {\r\n name: TYPES.XHR,\r\n install: (ctx: PluginContext) => {\r\n context = ctx;\r\n setupXHRListeners();\r\n },\r\n uninstall: () => {\r\n restoreXHR();\r\n },\r\n };\r\n};\r\n","import { IPlugin, PluginContext } from './definePlugin';\r\nimport { TYPES, EMIT_TYPE } from '../types/event';\r\n\r\nexport interface FetchOptions {\r\n /** 过滤函数,返回 false 则不记录该请求 */\r\n filter?: (method: string, url: string) => boolean;\r\n}\r\n\r\n/**\r\n * Fetch 监控插件\r\n * 监控 fetch 请求,记录失败的请求(状态码非 2xx 或网络错误)\r\n */\r\nexport const FetchPlugin = (options: FetchOptions = {}): IPlugin => {\r\n let context: PluginContext;\r\n let originFetch: typeof window.fetch;\r\n\r\n const setupFetchListeners = () => {\r\n originFetch = window.fetch;\r\n if (!originFetch) return;\r\n\r\n window.fetch = function (input: RequestInfo | URL, init?: RequestInit) {\r\n const startTime = Date.now();\r\n const method = (init?.method || 'GET').toUpperCase();\r\n const url = input instanceof Request ? input.url : String(input);\r\n\r\n return originFetch.apply(this, [input, init]).then(\r\n (response) => {\r\n const trackerUrl = context?.url;\r\n if (trackerUrl && url.includes(trackerUrl)) {\r\n return response;\r\n }\r\n\r\n // 如果配置了过滤函数且返回 false,则不记录\r\n if (options.filter && !options.filter(method, url)) {\r\n return response;\r\n }\r\n\r\n if (!response.ok) {\r\n const duration = Date.now() - startTime;\r\n const data = {\r\n method,\r\n url,\r\n status: response.status,\r\n duration,\r\n success: false,\r\n };\r\n context?.emit(EMIT_TYPE.FETCH, data);\r\n }\r\n return response;\r\n },\r\n (error) => {\r\n const trackerUrl = context?.url;\r\n if (trackerUrl && url.includes(trackerUrl)) {\r\n throw error;\r\n }\r\n\r\n // 如果配置了过滤函数且返回 false,则不记录\r\n if (options.filter && !options.filter(method, url)) {\r\n throw error;\r\n }\r\n\r\n const duration = Date.now() - startTime;\r\n const data = {\r\n method,\r\n url,\r\n status: 0,\r\n duration,\r\n success: false,\r\n message: error.message,\r\n };\r\n context?.emit(EMIT_TYPE.FETCH, data);\r\n throw error;\r\n },\r\n );\r\n };\r\n };\r\n\r\n const restoreFetch = () => {\r\n if (originFetch) window.fetch = originFetch;\r\n };\r\n\r\n return {\r\n name: TYPES.FETCH,\r\n install: (ctx: PluginContext) => {\r\n context = ctx;\r\n setupFetchListeners();\r\n },\r\n uninstall: () => {\r\n restoreFetch();\r\n },\r\n };\r\n};\r\n"],"names":["scopedUrlAlphabet","date","this","__publicField","TYPES","EMIT_TYPE"],"mappings":"AAAO,MAAM,WAAW;AACxB,EAAE;;ACDF;AAqBO,IAAI,MAAM,GAAG,CAAC,IAAI,GAAG,EAAE,KAAK;AACnC,EAAE,IAAI,EAAE,GAAG,GAAE;AACb,EAAE,IAAI,KAAK,GAAG,MAAM,CAAC,eAAe,CAAC,IAAI,UAAU,EAAE,IAAI,IAAI,CAAC,EAAE,EAAC;AACjE,EAAE,OAAO,IAAI,EAAE,EAAE;AACjB,IAAI,EAAE,IAAIA,WAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,EAAC;AAC7C,GAAG;AACH,EAAE,OAAO,EAAE;AACX;;AC3BO,MAAM,OAAU,GAAA,CAAC,IAAe,GAAA,IAAA,CAAK,KAAU,KAAA;AACpD,EAAM,MAAA,IAAA,GAAO,IAAI,IAAA,CAAK,IAAI,CAAA,CAAA;AAC1B,EAAM,MAAA,IAAA,GAAO,KAAK,WAAY,EAAA,CAAA;AAC9B,EAAM,MAAA,KAAA,GAAQ,IAAK,CAAA,QAAA,EAAa,GAAA,CAAA,CAAA;AAChC,EAAM,MAAA,GAAA,GAAM,KAAK,OAAQ,EAAA,CAAA;AACzB,EAAM,MAAA,IAAA,GAAO,KAAK,QAAS,EAAA,CAAA;AAC3B,EAAM,MAAA,MAAA,GAAS,KAAK,UAAW,EAAA,CAAA;AAC/B,EAAM,MAAA,MAAA,GAAS,KAAK,UAAW,EAAA,CAAA;AAE/B,EAAM,MAAA,SAAA,GAAY,CAACC,KAAiB,KAAA;AAClC,IAAA,IAAI,GAAM,GAAA,EAAA,CAAA;AACV,IAAA,IAAIA,QAAO,EAAI,EAAA;AACb,MAAA,GAAA,GAAM,GAAMA,GAAAA,KAAAA,CAAAA;AAAA,KACP,MAAA;AACL,MAAA,GAAA,GAAMA,MAAK,QAAS,EAAA,CAAA;AAAA,KACtB;AACA,IAAO,OAAA,GAAA,CAAA;AAAA,GACT,CAAA;AAEA,EAAA,OACE,OACA,GACA,GAAA,SAAA,CAAU,KAAK,CACf,GAAA,GAAA,GACA,UAAU,GAAG,CAAA,GACb,MACA,SAAU,CAAA,IAAI,IACd,GACA,GAAA,SAAA,CAAU,MAAM,CAChB,GAAA,GAAA,GACA,UAAU,MAAM,CAAA,CAAA;AAEpB,CAAA,CAAA;AAGa,MAAA,UAAA,GAAa,CAAC,UAAA,EAAoB,UAAuB,KAAA;AACpE,EAAA,IAAI,aAAa,UAAY,EAAA;AAC3B,IAAA,CAAC,UAAY,EAAA,UAAU,CAAI,GAAA,CAAC,YAAY,UAAU,CAAA,CAAA;AAAA,GACpD;AAEA,EAAA,OAAO,IAAK,CAAA,KAAA,CAAA,CAAO,UAAa,GAAA,UAAA,IAAc,GAAI,CAAA,CAAA;AACpD,CAAA;;;;;;;;;;;AC1CA,CAAA,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAmD,MAAe,CAAA,OAAA,CAAA,CAAC,GAA8G,CAAC,CAACC,cAAI,EAAE,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,EAAE,OAAO,MAAM,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,IAAI,CAAC,OAAM,IAAI,CAAC,IAAI,IAAI,CAAC,OAAM,IAAI,CAAC,IAAI,QAAQ,CAAC,OAAM,MAAM,CAAC,IAAI,QAAQ,CAAC,OAAM,IAAI,CAAC,IAAI,QAAQ,CAAC,OAAM,MAAM,CAAC,IAAI,QAAQ,CAAC,OAAM,OAAO,CAAC,IAAI,QAAQ,CAAC,OAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,OAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,OAAM,KAAK,CAAC,IAAI,SAAS,CAAC,OAAM,IAAI,CAAC,QAAQ,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC,OAAM,SAAS,CAAC,KAAK,CAAC,CAAC,OAAM,cAAc,CAAC,KAAK,CAAC,CAAC,OAAM,MAAM,CAAC,KAAK,CAAC,CAAC,OAAM,eAAe,CAAC,KAAK,CAAC,CAAC,OAAM,WAAW,CAAC,KAAK,EAAE,CAAC,OAAM,UAAU,CAAC,KAAK,EAAE,CAAC,OAAM,YAAY,CAAC,KAAK,EAAE,CAAC,OAAM,QAAQ,CAAC,KAAK,EAAE,CAAC,OAAM,aAAa,CAAC,KAAK,EAAE,CAAC,OAAM,QAAQ,CAAC,KAAK,EAAE,CAAC,OAAM,UAAU,CAAC,QAAQ,MAAM,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,OAAM,SAAS,CAAC,KAAK,EAAE,CAAC,OAAM,UAAU,CAAC,KAAK,EAAE,CAAC,OAAM,SAAS,CAAC,KAAK,EAAE,CAAC,OAAM,QAAQ,CAAC,KAAK,EAAE,CAAC,OAAM,SAAS,CAAC,QAAQ,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,GAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAO,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,aAAa,CAAC,aAAa,CAAC,iBAAiB,CAAC,SAAS,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,UAAU,CAAC,YAAY,CAAC,cAAc,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,mBAAmB,CAAC,qBAAqB,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,eAAe,CAAC,eAAe,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,CAAC,sBAAsB,CAAC,wBAAwB,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,oBAAoB,CAAC,sBAAsB,CAAC,sBAAsB,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,eAAe,CAAC,eAAe,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,WAAW,CAAC,WAAW,CAAC,aAAa,CAAC,eAAe,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,SAAS,CAAC,WAAW,CAAC,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,8BAA8B,CAAC,kBAAkB,CAAC,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC,gBAAgB,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,WAAW,CAAC,aAAa,CAAC,OAAO,CAAC,iBAAiB,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,UAAU,CAAC,YAAY,CAAC,YAAY,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,mBAAmB,CAAC,qBAAqB,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,aAAa,CAAC,eAAe,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,mBAAmB,CAAC,sBAAsB,CAAC,wBAAwB,CAAC,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,oBAAoB,CAAC,sBAAsB,CAAC,eAAe,CAAC,iBAAiB,CAAC,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,qBAAqB,CAAC,aAAa,CAAC,eAAe,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC,SAAS,CAAC,WAAW,CAAC,aAAa,CAAC,eAAe,CAAC,eAAe,CAAC,iBAAiB,CAAC,SAAS,CAAC,WAAW,CAAC,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,iBAAiB,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,gBAAgB,CAAC,8BAA8B,CAAC,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAO,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,GAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,UAAU,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,UAAU,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,UAAU,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,UAAU,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,GAAG,QAAQ,EAAE,OAAO,CAAC,CAAC,OAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAO,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,wBAAwB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,8BAA8B,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,+BAA+B,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,aAAa,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,uEAAuE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,+CAA+C,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,yBAAyB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,+BAA+B,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,kBAAkB,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,iCAAiC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,wBAAwB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,kBAAkB,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,iCAAiC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,mBAAmB,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,kCAAkC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,qBAAqB,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,oCAAoC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,uBAAuB,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,sCAAsC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,0BAA0B,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,2BAA2B,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,yBAAyB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,6BAA6B,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,6BAA6B,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,6BAA6B,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,qBAAqB,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,iCAAiC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,0BAA0B,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,0CAA0C,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,gCAAgC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,mCAAmC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,oCAAoC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,gCAAgC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,gCAAgC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,iCAAiC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,uBAAuB,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,+BAA+B,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,qCAAqC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,qCAAqC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,yCAAyC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,oCAAoC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,kCAAkC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,oCAAoC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,oCAAoC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,0CAA0C,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,iDAAiD,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,gCAAgC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,kCAAkC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,8BAA8B,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,oCAAoC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,8BAA8B,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,6BAA6B,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,oCAAoC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,yCAAyC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,yCAAyC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,oCAAoC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,qCAAqC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,0BAA0B,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,mDAAmD,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,iCAAiC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,qBAAqB,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,8CAA8C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,0CAA0C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,uCAAuC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,oCAAoC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,oBAAoB,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,0CAA0C,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,qBAAqB,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,wBAAwB,CAAC,cAAc,CAAC,OAAM,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAO,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,OAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,wCAAwC,CAAC,CAAC,CAAC,CAAC,OAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,gCAAgC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,OAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,6BAA6B,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,qBAAqB,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,oCAAoC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,8BAA8B,CAAC,CAAC,CAAC,CAAC,OAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,6BAA6B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,kCAAkC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,iCAAiC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,kCAAkC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,OAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,OAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC,OAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,kCAAkC,CAAC,CAAC,CAAC,CAAC,OAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAO,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAM,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAM,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAM,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAM,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAM,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAM,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAM,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAM,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,aAAa,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAM,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAM,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAM,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAM,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,kBAAkB,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAM,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAM,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAM,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,kBAAkB,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAM,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,mBAAmB,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAM,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,qBAAqB,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAM,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,uBAAuB,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAM,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAM,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAM,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAM,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAM,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,yBAAyB,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAM,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAM,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,6BAA6B,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAM,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAM,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAM,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAM,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,OAAM,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAM,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,8BAA8B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAM,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,YAAY,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAM,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,MAAM,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAM,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,eAAe,GAAG,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAM,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAM,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAM,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,OAAO,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAM,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAM,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,OAAO,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAM,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,eAAe,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAM,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,MAAM,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAM,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAO,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,gBAAgB,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAM,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,OAAM,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,0BAA0B,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAM,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;;;;;;ACK95jC,SAAS,qBAAwB,GAAA;AACtC,EAAM,MAAA,EAAE,SAAS,EAAI,EAAA,QAAA,KAAa,MAAO,CAAA,KAAA,CAAM,MAAO,CAAA,SAAA,CAAU,SAAS,CAAA,CAAA;AACzE,EAAO,OAAA;AAAA,IACL,OAAA;AAAA,IACA,EAAA;AAAA,IACA,QAAA;AAAA,IACA,OAAO,QAAS,EAAA;AAAA,IAChB,IAAI,KAAM,EAAA;AAAA,GACZ,CAAA;AACF,CAAA;AAKA,SAAS,QAAW,GAAA;AAClB,EAAA,IAAI,KAAQ,GAAA,CAAA,CAAA;AACZ,EAAA,MAAM,SAAc,MAAO,CAAA,MAAA,CAAA;AAC3B,EAAM,MAAA,EAAA,GAAK,SAAU,CAAA,SAAA,CAAU,WAAY,EAAA,CAAA;AAC3C,EAAI,IAAA,MAAA,CAAO,qBAAqB,KAAW,CAAA,EAAA;AACzC,IAAA,KAAA,GAAQ,MAAO,CAAA,gBAAA,CAAA;AAAA,GACN,MAAA,IAAA,CAAC,EAAG,CAAA,OAAA,CAAQ,MAAM,CAAG,EAAA;AAC9B,IAAI,IAAA,MAAA,CAAO,UAAc,IAAA,MAAA,CAAO,WAAa,EAAA;AAC3C,MAAQ,KAAA,GAAA,MAAA,CAAO,aAAa,MAAO,CAAA,WAAA,CAAA;AAAA,KACrC;AAAA,aACS,MAAO,CAAA,UAAA,KAAe,KAAa,CAAA,IAAA,MAAA,CAAO,eAAe,KAAW,CAAA,EAAA;AAC7E,IAAQ,KAAA,GAAA,MAAA,CAAO,aAAa,MAAO,CAAA,UAAA,CAAA;AAAA,GACrC;AAEA,EAAA,IAAI,KAAO,EAAA;AACT,IAAQ,KAAA,GAAA,IAAA,CAAK,KAAM,CAAA,KAAA,GAAQ,GAAG,CAAA,CAAA;AAAA,GAChC;AACA,EAAO,OAAA,KAAA,CAAA;AACT,CAAA;AAKA,SAAS,KAAQ,GAAA;AACf,EAAO,OAAA;AAAA,IACL,KAAA,EAAO,OAAO,MAAO,CAAA,KAAA;AAAA,IACrB,MAAA,EAAQ,OAAO,MAAO,CAAA,MAAA;AAAA,GACxB,CAAA;AACF,CAAA;AAKa,MAAA,QAAA,GACX,MAAO,CAAA,mBAAA,IAAuB,MAAO,CAAA,qBAAA,KAA0B,CAAC,QAAA,KAAa,MAAO,CAAA,UAAA,CAAW,QAAU,EAAA,GAAA,GAAO,EAAE,CAAA,CAAA,CAAA;AAKvG,MAAA,YAAA,GAAe,CAAC,QAAyB,KAAA;AACpD,EAAO,MAAA,CAAA,gBAAA,CAAiB,gBAAgB,MAAM;AAC5C,IAAS,QAAA,EAAA,CAAA;AAAA,GACV,CAAA,CAAA;AACH,CAAA;;ACzDgB,SAAA,QAAA,CAA4C,IAAO,KAAiD,EAAA;AAClH,EAAA,IAAI,QAAW,GAAA,CAAA,CAAA;AACf,EAAA,OAAO,YAAwB,IAAqB,EAAA;AAClD,IAAM,MAAA,GAAA,GAAM,KAAK,GAAI,EAAA,CAAA;AACrB,IAAI,IAAA,GAAA,GAAM,YAAY,KAAO,EAAA;AAC3B,MAAG,EAAA,CAAA,KAAA,CAAM,MAAM,IAAI,CAAA,CAAA;AACnB,MAAW,QAAA,GAAA,GAAA,CAAA;AAAA,KACb;AAAA,GACF,CAAA;AACF,CAAA;AAEa,MAAA,qBAAA,GAAwB,CAAC,SAAuB,KAAA;AAC3D,EAAI,IAAA,CAAC,SAAa,IAAA,OAAO,SAAc,KAAA,QAAA;AAAU,IAAO,OAAA,KAAA,CAAA;AACxD,EAAI,IAAA,cAAA,CAAe,KAAK,SAAS,CAAA;AAAG,IAAO,OAAA,IAAA,CAAA;AAC3C,EAAO,OAAA,KAAA,CAAA;AACT,CAAA;;ACjBO,MAAM,aAAgB,GAAA,CAAA,CAAA;AAKtB,MAAM,gBAAmB,GAAA,GAAA,CAAA;AAKzB,MAAM,IAAO,GAAA,YAAA,CAAA;AAKb,MAAM,0BAA6B,GAAA,GAAA,CAAA;AAKnC,MAAM,sBAAyB,GAAA,EAAA;;;;;;;;ACjBtC,MAAqB,UAAW,CAAA;AAAA,EAI9B,WAAA,CAAY,UAAkB,IAAM,EAAA;AAHpC,IAAAC,eAAA,CAAA,IAAA,EAAA,QAAA,CAAA,CAAA;AACA,IAAeA,eAAA,CAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,CAAA;AAIb,IAAA,IAAA,CAAK,SAAS,qBAAsB,EAAA,CAAA;AACpC,IAAA,IAAA,CAAK,QAAQ,OAAO,CAAA,CAAA;AAAA,GACtB;AAAA,EAEQ,QAAQ,GAAa,EAAA;AAC3B,IAAI,IAAA;AACF,MAAM,MAAA,IAAA,GAAO,YAAa,CAAA,OAAA,CAAQ,GAAG,CAAA,CAAA;AACrC,MAAA,IAAI,IAAM,EAAA;AACR,QAAA,IAAA,CAAK,IAAO,GAAA,IAAA,CAAA;AAAA,OACP,MAAA;AACL,QAAA,IAAA,CAAK,OAAO,MAAO,EAAA,CAAA;AACnB,QAAa,YAAA,CAAA,OAAA,CAAQ,GAAK,EAAA,IAAA,CAAK,IAAI,CAAA,CAAA;AAAA,OACrC;AAAA,aACO,CAAG,EAAA;AAEV,MAAA,IAAA,CAAK,OAAO,MAAO,EAAA,CAAA;AACnB,MAAQ,OAAA,CAAA,IAAA,CAAK,yEAAyE,CAAC,CAAA,CAAA;AAAA,KACzF;AAAA,GACF;AACF;;;;;;;;AClBA,MAAqB,UAAW,CAAA;AAAA,EAK9B,WAAA,CAAY,SAAkB,QAAoB,EAAA;AAJlD,IAAQA,eAAA,CAAA,IAAA,EAAA,YAAA,CAAA,CAAA;AACR,IAAQA,eAAA,CAAA,IAAA,EAAA,UAAA,CAAA,CAAA;AACR,IAAQA,eAAA,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;AAGN,IAAA,IAAA,CAAK,UAAa,GAAA,IAAI,UAAW,CAAA,OAAA,CAAQ,OAAO,CAAA,CAAA;AAChD,IAAA,IAAA,CAAK,QAAW,GAAA,QAAA,CAAA;AAChB,IAAA,IAAA,CAAK,OAAO,OAAQ,CAAA,IAAA,CAAA;AAAA,GACtB;AAAA;AAAA;AAAA;AAAA,EAKQ,SAAA,CAAU,MAA0B,IAA8B,EAAA;AACxE,IAAM,MAAA,SAAA,GAAY,KAAK,GAAI,EAAA,CAAA;AAC3B,IAAO,OAAA;AAAA,MACL,MAAA,EAAQ,KAAK,UAAW,CAAA,MAAA;AAAA,MACxB,IAAA,EAAM,KAAK,UAAW,CAAA,IAAA;AAAA,MACtB,IAAA;AAAA,MACA,IAAA;AAAA,MACA,IAAA,EAAM,QAAQ,SAAS,CAAA;AAAA,MACvB,UAAU,IAAK,CAAA,IAAA;AAAA,KACjB,CAAA;AAAA,GACF;AAAA;AAAA;AAAA;AAAA;AAAA,EAMO,IAAA,CAAK,MAA0B,IAAkB,EAAA;AACtD,IAAA,MAAM,OAAU,GAAA,IAAA,CAAK,SAAU,CAAA,IAAA,EAAM,IAAI,CAAA,CAAA;AACzC,IAAK,IAAA,CAAA,QAAA,CAAS,KAAK,OAAO,CAAA,CAAA;AAAA,GAC5B;AAAA;AAAA;AAAA;AAAA,EAKO,WAAwB,GAAA;AAC7B,IAAA,OAAO,IAAK,CAAA,QAAA,CAAA;AAAA,GACd;AACF;;;;;;;;AC/CA,MAAqB,QAAS,CAAA;AAAA,EAO5B,WAAA,CAAY,KAAa,MAA0B,EAAA;AANnD,IAAQA,eAAA,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA;AACR,IAAQA,eAAA,CAAA,IAAA,EAAA,iBAAA,CAAA,CAAA;AACR,IAAAA,eAAA,CAAA,IAAA,EAAQ,UAA8B,EAAC,CAAA,CAAA;AACvC,IAAAA,eAAA,CAAA,IAAA,EAAQ,WAAY,EAAA,KAAA,CAAA,CAAA;AACpB,IAAAA,eAAA,CAAA,IAAA,EAAQ,OAA8C,EAAA,IAAA,CAAA,CAAA;AAGpD,IAAA,IAAA,CAAK,GAAM,GAAA,GAAA,CAAA;AACX,IAAA,IAAA,CAAK,eAAkB,GAAA;AAAA,MACrB,YAAA,EAAc,QAAQ,YAAgB,IAAA,aAAA;AAAA,MACtC,WAAA,EAAa,QAAQ,WAAe,IAAA,gBAAA;AAAA,KACtC,CAAA;AAGA,IAAa,YAAA,CAAA,MAAM,IAAK,CAAA,KAAA,EAAO,CAAA,CAAA;AAAA,GACjC;AAAA;AAAA;AAAA;AAAA,EAKO,KAAK,OAA4B,EAAA;AACtC,IAAK,IAAA,CAAA,MAAA,CAAO,KAAK,OAAO,CAAA,CAAA;AAGxB,IAAA,IAAI,IAAK,CAAA,MAAA,CAAO,MAAU,IAAA,IAAA,CAAK,gBAAgB,YAAc,EAAA;AAC3D,MAAA,IAAA,CAAK,UAAW,EAAA,CAAA;AAChB,MAAA,IAAA,CAAK,WAAY,EAAA,CAAA;AAAA,KACnB,MAAA,IAAW,CAAC,IAAA,CAAK,KAAO,EAAA;AACtB,MAAK,IAAA,CAAA,KAAA,GAAQ,WAAW,MAAM;AAC5B,QAAA,IAAA,CAAK,KAAQ,GAAA,IAAA,CAAA;AACb,QAAA,IAAA,CAAK,WAAY,EAAA,CAAA;AAAA,OACnB,EAAG,IAAK,CAAA,eAAA,CAAgB,WAAW,CAAA,CAAA;AAAA,KACrC;AAAA,GACF;AAAA;AAAA;AAAA;AAAA,EAKO,KAAuB,GAAA;AAC5B,IAAO,OAAA,IAAA,CAAK,YAAY,IAAI,CAAA,CAAA;AAAA,GAC9B;AAAA,EAEQ,UAAa,GAAA;AACnB,IAAA,IAAI,KAAK,KAAO,EAAA;AACd,MAAA,YAAA,CAAa,KAAK,KAAK,CAAA,CAAA;AACvB,MAAA,IAAA,CAAK,KAAQ,GAAA,IAAA,CAAA;AAAA,KACf;AAAA,GACF;AAAA;AAAA;AAAA;AAAA,EAKA,MAAc,WAAY,CAAA,OAAA,GAAU,KAAsB,EAAA;AACxD,IAAA,IAAI,IAAK,CAAA,SAAA,IAAa,CAAC,IAAA,CAAK,MAAO,CAAA,MAAA;AAAQ,MAAA,OAAA;AAE3C,IAAA,IAAA,CAAK,SAAY,GAAA,IAAA,CAAA;AAEjB,IAAI,IAAA;AACF,MAAA,MAAM,SAAS,OAAU,GAAA,IAAA,CAAK,MAAO,CAAA,MAAA,GAAS,KAAK,eAAgB,CAAA,YAAA,CAAA;AACnE,MAAA,MAAM,UAAa,GAAA,IAAA,CAAK,MAAO,CAAA,KAAA,CAAM,GAAG,MAAM,CAAA,CAAA;AAC9C,MAAA,IAAA,CAAK,MAAS,GAAA,IAAA,CAAK,MAAO,CAAA,KAAA,CAAM,MAAM,CAAA,CAAA;AAEtC,MAAM,MAAA,IAAA,CAAK,SAAS,UAAU,CAAA,CAAA;AAG9B,MAAI,IAAA,IAAA,CAAK,OAAO,MAAQ,EAAA;AACtB,QAAS,QAAA,CAAA,MAAM,IAAK,CAAA,WAAA,EAAa,CAAA,CAAA;AAAA,OACnC;AAAA,aACO,KAAO,EAAA;AAAA,KAEd,SAAA;AACA,MAAA,IAAA,CAAK,SAAY,GAAA,KAAA,CAAA;AAAA,KACnB;AAAA,GACF;AAAA;AAAA;AAAA;AAAA,EAKQ,SAAS,MAA4C,EAAA;AAC3D,IAAA,OAAO,IAAI,OAAA,CAAQ,CAAC,OAAA,EAAS,MAAW,KAAA;AACtC,MAAI,IAAA,CAAC,OAAO,MAAQ,EAAA;AAClB,QAAQ,OAAA,EAAA,CAAA;AACR,QAAA,OAAA;AAAA,OACF;AAEA,MAAM,MAAA,IAAA,GAAO,IAAK,CAAA,SAAA,CAAU,MAAM,CAAA,CAAA;AAGlC,MAAI,IAAA,OAAO,SAAU,CAAA,UAAA,KAAe,UAAY,EAAA;AAC9C,QAAM,MAAA,IAAA,GAAO,IAAI,IAAK,CAAA,CAAC,IAAI,CAAG,EAAA,EAAE,IAAM,EAAA,kBAAA,EAAoB,CAAA,CAAA;AAC1D,QAAA,MAAM,OAAU,GAAA,SAAA,CAAU,UAAW,CAAA,IAAA,CAAK,KAAK,IAAI,CAAA,CAAA;AAEnD,QAAA,IAAI,OAAS,EAAA;AACX,UAAQ,OAAA,EAAA,CAAA;AAAA,SACH,MAAA;AACL,UAAK,IAAA,CAAA,UAAA,CAAW,IAAM,EAAA,OAAA,EAAS,MAAM,CAAA,CAAA;AAAA,SACvC;AAAA,OACK,MAAA;AAEL,QAAK,IAAA,CAAA,UAAA,CAAW,IAAM,EAAA,OAAA,EAAS,MAAM,CAAA,CAAA;AAAA,OACvC;AAAA,KACD,CAAA,CAAA;AAAA,GACH;AAAA;AAAA;AAAA;AAAA,EAKQ,UAAA,CAAW,IAAc,EAAA,OAAA,EAAqB,MAAsC,EAAA;AAC1F,IAAM,MAAA,GAAA,GAAM,IAAI,cAAe,EAAA,CAAA;AAE/B,IAAA,GAAA,CAAI,IAAK,CAAA,MAAA,EAAQ,IAAK,CAAA,GAAA,EAAK,IAAI,CAAA,CAAA;AAC/B,IAAI,GAAA,CAAA,gBAAA,CAAiB,gBAAgB,kBAAkB,CAAA,CAAA;AAEvD,IAAA,GAAA,CAAI,SAAS,MAAM;AACjB,MAAA,IAAI,GAAI,CAAA,MAAA,IAAU,GAAO,IAAA,GAAA,CAAI,SAAS,GAAK,EAAA;AACzC,QAAQ,OAAA,EAAA,CAAA;AAAA,OACH,MAAA;AACL,QAAO,MAAA,CAAA,IAAI,MAAM,CAAQ,KAAA,EAAA,GAAA,CAAI,MAAM,CAAK,EAAA,EAAA,GAAA,CAAI,UAAU,CAAA,CAAE,CAAC,CAAA,CAAA;AAAA,OAC3D;AAAA,KACF,CAAA;AAEA,IAAA,GAAA,CAAI,UAAU,MAAM,MAAA,CAAO,IAAI,KAAA,CAAM,eAAe,CAAC,CAAA,CAAA;AACrD,IAAA,GAAA,CAAI,YAAY,MAAM,MAAA,CAAO,IAAI,KAAA,CAAM,iBAAiB,CAAC,CAAA,CAAA;AAEzD,IAAA,GAAA,CAAI,OAAU,GAAA,GAAA,CAAA;AACd,IAAA,GAAA,CAAI,KAAK,IAAI,CAAA,CAAA;AAAA,GACf;AACF;;ACnIY,IAAA,KAAA,qBAAAC,MAAL,KAAA;AACL,EAAAA,OAAA,OAAQ,CAAA,GAAA,OAAA,CAAA;AACR,EAAAA,OAAA,OAAQ,CAAA,GAAA,OAAA,CAAA;AACR,EAAAA,OAAA,aAAc,CAAA,GAAA,aAAA,CAAA;AACd,EAAAA,OAAA,QAAS,CAAA,GAAA,QAAA,CAAA;AACT,EAAAA,OAAA,KAAM,CAAA,GAAA,KAAA,CAAA;AACN,EAAAA,OAAA,OAAQ,CAAA,GAAA,OAAA,CAAA;AANE,EAAAA,OAAAA,MAAAA,CAAAA;AAAA,CAAA,EAAA,KAAA,IAAA,EAAA,CAAA,CAAA;AAaA,IAAA,SAAA,qBAAAC,UAAL,KAAA;AAEL,EAAAA,WAAA,OAAQ,CAAA,GAAA,OAAA,CAAA;AAGR,EAAAA,WAAA,gBAAiB,CAAA,GAAA,OAAA,CAAA;AACjB,EAAAA,WAAA,cAAe,CAAA,GAAA,cAAA,CAAA;AAGf,EAAAA,WAAA,gBAAiB,CAAA,GAAA,gBAAA,CAAA;AACjB,EAAAA,WAAA,iBAAkB,CAAA,GAAA,iBAAA,CAAA;AAClB,EAAAA,WAAA,iBAAkB,CAAA,GAAA,iBAAA,CAAA;AAClB,EAAAA,WAAA,iBAAkB,CAAA,GAAA,iBAAA,CAAA;AAClB,EAAAA,WAAA,sBAAuB,CAAA,GAAA,sBAAA,CAAA;AACvB,EAAAA,WAAA,sBAAuB,CAAA,GAAA,sBAAA,CAAA;AACvB,EAAAA,WAAA,kBAAmB,CAAA,GAAA,kBAAA,CAAA;AAGnB,EAAAA,WAAA,KAAM,CAAA,GAAA,KAAA,CAAA;AACN,EAAAA,WAAA,OAAQ,CAAA,GAAA,OAAA,CAAA;AAGR,EAAAA,WAAA,QAAS,CAAA,GAAA,QAAA,CAAA;AAtBC,EAAAA,OAAAA,UAAAA,CAAAA;AAAA,CAAA,EAAA,SAAA,IAAA,EAAA;;;;;;;;ACXZ,MAAqB,aAAa,UAAW,CAAA;AAAA,EAI3C,YAAY,OAAkB,EAAA;AAC5B,IAAA,MAAM,WAAW,IAAI,QAAA,CAAS,OAAQ,CAAA,GAAA,EAAK,QAAQ,SAAS,CAAA,CAAA;AAC5D,IAAA,KAAA,CAAM,SAAS,QAAQ,CAAA,CAAA;AALzB,IAAQ,aAAA,CAAA,IAAA,EAAA,WAAA,sBAAsC,GAAI,EAAA,CAAA,CAAA;AAClD,IAAQ,aAAA,CAAA,IAAA,EAAA,SAAA,CAAA,CAAA;AAKN,IAAA,IAAA,CAAK,OAAU,GAAA,OAAA,CAAA;AAAA,GACjB;AAAA,EAEA,IAAI,MAAuB,EAAA;AACzB,IAAA,IAAI,CAAC,IAAK,CAAA,SAAA,CAAU,GAAI,CAAA,MAAA,CAAO,IAAI,CAAG,EAAA;AACpC,MAAA,IAAA,CAAK,SAAU,CAAA,GAAA,CAAI,MAAO,CAAA,IAAA,EAAM,MAAM,CAAA,CAAA;AAAA,KACxC;AACA,IAAO,OAAA,IAAA,CAAA;AAAA,GACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,GAAI,CAAA,IAAA,EAAW,IAAe,GAAA,SAAA,CAAU,MAAc,EAAA;AACpD,IAAK,IAAA,CAAA,IAAA,CAAK,MAAM,IAAI,CAAA,CAAA;AAAA,GACtB;AAAA;AAAA,EAGA,GAAM,GAAA;AACJ,IAAA,MAAM,OAAU,GAAA;AAAA,MACd,IAAM,EAAA,IAAA,CAAK,IAAK,CAAA,IAAA,CAAK,IAAI,CAAA;AAAA,MACzB,GAAA,EAAK,KAAK,OAAQ,CAAA,GAAA;AAAA,KACpB,CAAA;AAEA,IAAK,IAAA,CAAA,SAAA,CAAU,OAAQ,CAAA,CAAC,MAAW,KAAA;AACjC,MAAA,MAAA,CAAO,QAAQ,OAAO,CAAA,CAAA;AAAA,KACvB,CAAA,CAAA;AAGD,IAAA,IAAA,CAAK,KAAM,EAAA,CAAA;AAAA,GACb;AAAA;AAAA,EAGA,IAAO,GAAA;AACL,IAAK,IAAA,CAAA,SAAA,CAAU,OAAQ,CAAA,CAAC,MAAW,KAAA;AACjC,MAAA,MAAA,CAAO,SAAY,IAAA,CAAA;AAAA,KACpB,CAAA,CAAA;AACD,IAAA,IAAA,CAAK,UAAU,KAAM,EAAA,CAAA;AAGrB,IAAA,IAAA,CAAK,OAAQ,EAAA,CAAA;AAAA,GACf;AAAA,EAEQ,KAAQ,GAAA;AACd,IAAA,MAAM,EAAE,SAAA,GAAY,QAAS,EAAA,GAAI,IAAK,CAAA,OAAA,CAAA;AACtC,IAAI,IAAA,OAAO,WAAW,WAAa,EAAA;AACjC,MAAC,MAAA,CAAe,SAAS,CAAI,GAAA,IAAA,CAAA;AAAA,KAC/B;AAAA,GACF;AAAA,EAEQ,OAAU,GAAA;AAChB,IAAA,MAAM,EAAE,SAAA,GAAY,QAAS,EAAA,GAAI,IAAK,CAAA,OAAA,CAAA;AACtC,IAAA,IAAI,OAAO,MAAW,KAAA,WAAA,IAAgB,MAAe,CAAA,SAAS,MAAM,IAAM,EAAA;AACxE,MAAA,OAAQ,OAAe,SAAS,CAAA,CAAA;AAAA,KAClC;AAAA,GACF;AACF,CAAA;AAMO,SAAS,cAAc,OAAwB,EAAA;AACpD,EAAO,OAAA,IAAI,KAAK,OAAO,CAAA,CAAA;AACzB;;ACnEO,MAAM,WAAc,GAAA,CAAC,OAAwB,GAAA,EAAgB,KAAA;AAClE,EAAI,IAAA,oBAAA,CAAA;AACJ,EAAI,IAAA,OAAA,CAAA;AAKJ,EAAA,MAAM,uBAAuB,MAAM;AACjC,IAAA,oBAAA,GAAuB,OAAQ,CAAA,KAAA,CAAA;AAE/B,IAAQ,OAAA,CAAA,KAAA,GAAQ,IAAI,IAAgB,KAAA;AAElC,MAAsB,oBAAA,EAAA,KAAA,CAAM,SAAS,IAAI,CAAA,CAAA;AAGzC,MAAA,MAAM,SAAY,GAAA;AAAA,QAChB,IAAM,EAAA,SAAA;AAAA,QACN,OAAA,EAAS,IAAK,CAAA,GAAA,CAAI,CAAC,GAAA,KAAQ,OAAO,GAAG,CAAC,CAAE,CAAA,IAAA,CAAK,GAAG,CAAA;AAAA,QAChD,KAAA,EAAO,IAAI,KAAA,EAAQ,CAAA,KAAA;AAAA,OACrB,CAAA;AAGA,MAAA,IAAI,QAAQ,MAAU,IAAA,CAAC,OAAQ,CAAA,MAAA,CAAO,SAAS,CAAG,EAAA;AAChD,QAAA,OAAA;AAAA,OACF;AAEA,MAAS,OAAA,EAAA,IAAA,CAAK,SAAU,CAAA,KAAA,EAAO,SAAS,CAAA,CAAA;AAAA,KAC1C,CAAA;AAAA,GACF,CAAA;AAKA,EAAA,MAAM,sBAAsB,MAAM;AAChC,IAAA,IAAI,oBAAsB,EAAA;AACxB,MAAA,OAAA,CAAQ,KAAQ,GAAA,oBAAA,CAAA;AAAA,KAClB;AAAA,GACF,CAAA;AAKA,EAAM,MAAA,UAAA,GAAa,CAAC,KAAuC,KAAA;AACzD,IAAA,IAAI,CAAC,KAAA;AAAO,MAAO,OAAA,KAAA,CAAA,CAAA;AACnB,IAAA,MAAM,QAAQ,KAAM,CAAA,KAAA,CAAM,IAAI,CAAE,CAAA,KAAA,CAAM,GAAG,EAAE,CAAA,CAAA;AAC3C,IAAO,OAAA,KAAA,CAAM,KAAK,IAAI,CAAA,CAAA;AAAA,GACxB,CAAA;AAKA,EAAM,MAAA,UAAA,GAAa,CAAC,GAAwB,KAAA;AAC1C,IAAA,IAAI,IAAO,GAAA,CAAA,CAAA;AACX,IAAA,KAAA,IAAS,CAAI,GAAA,CAAA,EAAG,CAAI,GAAA,GAAA,CAAI,QAAQ,CAAK,EAAA,EAAA;AACnC,MAAM,MAAA,IAAA,GAAO,GAAI,CAAA,UAAA,CAAW,CAAC,CAAA,CAAA;AAC7B,MAAQ,IAAA,GAAA,CAAA,IAAA,IAAQ,KAAK,IAAO,GAAA,IAAA,CAAA;AAC5B,MAAA,IAAA,GAAO,IAAO,GAAA,IAAA,CAAA;AAAA,KAChB;AACA,IAAA,OAAO,IAAK,CAAA,GAAA,CAAI,IAAI,CAAA,CAAE,SAAS,EAAE,CAAA,CAAA;AAAA,GACnC,CAAA;AAKA,EAAM,MAAA,mBAAA,GAAsB,IAAI,KAA0C,KAAA;AACxE,IAAA,MAAM,WAAW,KAAM,CAAA,MAAA,CAAO,OAAO,CAAA,CAAE,KAAK,GAAG,CAAA,CAAA;AAC/C,IAAA,OAAO,WAAW,QAAQ,CAAA,CAAA;AAAA,GAC5B,CAAA;AAKA,EAAM,MAAA,eAAA,GAAkB,CAAC,MAAyB,KAAA;AAChD,IAAA,MAAM,eAAe,CAAC,MAAA,EAAQ,UAAU,KAAO,EAAA,OAAA,EAAS,SAAS,QAAQ,CAAA,CAAA;AACzE,IAAA,OAAO,MAAU,IAAA,YAAA,CAAa,QAAS,CAAA,MAAA,CAAO,OAAO,CAAA,CAAA;AAAA,GACvD,CAAA;AAKA,EAAM,MAAA,sBAAA,GAAyB,CAAC,CAA6B,KAAA;AAC3D,IAAI,IAAA,CAAA,CAAE,kBAAkB,KAAO,EAAA;AAC7B,MAAO,OAAA;AAAA,QACL,SAAW,EAAA,SAAA;AAAA,QACX,OAAA,EAAS,EAAE,MAAO,CAAA,OAAA;AAAA,QAClB,KAAO,EAAA,UAAA,CAAW,CAAE,CAAA,MAAA,CAAO,KAAK,CAAA;AAAA,QAChC,IAAA,EAAM,EAAE,MAAO,CAAA,IAAA;AAAA,QACf,aAAa,mBAAoB,CAAA,CAAA,CAAE,OAAO,OAAS,EAAA,CAAA,CAAE,OAAO,KAAK,CAAA;AAAA,OACnE,CAAA;AAAA,KACF;AACA,IAAO,OAAA;AAAA,MACL,SAAW,EAAA,SAAA;AAAA,MACX,OAAA,EAAS,MAAO,CAAA,CAAA,CAAE,MAAM,CAAA;AAAA,KAC1B,CAAA;AAAA,GACF,CAAA;AAKA,EAAM,MAAA,eAAA,GAAkB,CAAC,CAAkB,KAAA;AACzC,IAAA,MAAM,EAAE,KAAA,EAAO,MAAQ,EAAA,QAAA,EAAU,SAAY,GAAA,CAAA,CAAA;AAC7C,IAAA,IAAI,iBAAiB,KAAO,EAAA;AAC1B,MAAO,OAAA;AAAA,QACL,SAAW,EAAA,IAAA;AAAA,QACX,MAAM,KAAM,CAAA,IAAA;AAAA,QACZ,SAAS,KAAM,CAAA,OAAA;AAAA,QACf,KAAA,EAAO,UAAW,CAAA,KAAA,CAAM,KAAK,CAAA;AAAA,QAC7B,QAAA;AAAA,QACA,OAAO,CAAE,CAAA,KAAA;AAAA,QACT,QAAQ,CAAE,CAAA,MAAA;AAAA,QACV,WAAa,EAAA,mBAAA,CAAoB,KAAM,CAAA,OAAA,EAAS,MAAM,KAAK,CAAA;AAAA,OAC7D,CAAA;AAAA,KACF;AACA,IAAI,IAAA,eAAA,CAAgB,MAAM,CAAG,EAAA;AAC3B,MAAA,MAAM,OAAU,GAAA,MAAA,CAAA;AAChB,MAAA,MAAM,GAAM,GAAA,KAAA,IAAS,OAAU,GAAA,OAAA,CAAQ,MAAM,OAAQ,CAAA,IAAA,CAAA;AACrD,MAAO,OAAA;AAAA,QACL,SAAW,EAAA,UAAA;AAAA,QACX,OAAA,EAAS,yBAAyB,GAAG,CAAA,CAAA;AAAA,QACrC,GAAA;AAAA,QACA,SAAS,OAAQ,CAAA,OAAA;AAAA,QACjB,WAAa,EAAA,mBAAA,CAAoB,CAAY,SAAA,EAAA,GAAG,CAAE,CAAA,CAAA;AAAA,OACpD,CAAA;AAAA,KACF;AACA,IAAO,OAAA;AAAA,MACL,SAAW,EAAA,SAAA;AAAA,MACX,OAAA;AAAA,MACA,QAAA;AAAA,KACF,CAAA;AAAA,GACF,CAAA;AAEA,EAAM,MAAA,YAAA,GAAe,CAAC,CAAkB,KAAA;AACtC,IAAA,MAAM,YAAY,EAAE,IAAA,EAAM,QAAQ,GAAG,eAAA,CAAgB,CAAC,CAAE,EAAA,CAAA;AACxD,IAAA,IAAI,OAAQ,CAAA,MAAA,IAAU,CAAC,OAAA,CAAQ,OAAO,SAAS,CAAA;AAAG,MAAA,OAAA;AAClD,IAAS,OAAA,EAAA,IAAA,CAAK,SAAU,CAAA,KAAA,EAAO,SAAS,CAAA,CAAA;AAAA,GAC1C,CAAA;AAEA,EAAM,MAAA,gBAAA,GAAmB,CAAC,CAA6B,KAAA;AACrD,IAAA,MAAM,YAAY,EAAE,IAAA,EAAM,SAAS,GAAG,sBAAA,CAAuB,CAAC,CAAE,EAAA,CAAA;AAChE,IAAA,IAAI,OAAQ,CAAA,MAAA,IAAU,CAAC,OAAA,CAAQ,OAAO,SAAS,CAAA;AAAG,MAAA,OAAA;AAClD,IAAS,OAAA,EAAA,IAAA,CAAK,SAAU,CAAA,KAAA,EAAO,SAAS,CAAA,CAAA;AAAA,GAC1C,CAAA;AAEA,EAAO,OAAA;AAAA,IACL,MAAM,KAAM,CAAA,KAAA;AAAA,IACZ,OAAA,EAAS,CAAC,GAAuB,KAAA;AAC/B,MAAU,OAAA,GAAA,GAAA,CAAA;AACV,MAAqB,oBAAA,EAAA,CAAA;AACrB,MAAO,MAAA,CAAA,gBAAA,CAAiB,OAAS,EAAA,YAAA,EAAc,IAAI,CAAA,CAAA;AACnD,MAAO,MAAA,CAAA,gBAAA,CAAiB,oBAAsB,EAAA,gBAAA,EAAkB,IAAI,CAAA,CAAA;AAAA,KACtE;AAAA,IACA,WAAW,MAAM;AACf,MAAoB,mBAAA,EAAA,CAAA;AACpB,MAAO,MAAA,CAAA,mBAAA,CAAoB,OAAS,EAAA,YAAA,EAAc,IAAI,CAAA,CAAA;AACtD,MAAO,MAAA,CAAA,mBAAA,CAAoB,oBAAsB,EAAA,gBAAA,EAAkB,IAAI,CAAA,CAAA;AAAA,KACzE;AAAA,GACF,CAAA;AACF;;AChKO,MAAM,QAAW,GAAA,CAAC,OAAqB,GAAA,EAAgB,KAAA;AAC5D,EAAI,IAAA,aAAA,GAAwB,KAAK,GAAI,EAAA,CAAA;AACrC,EAAI,IAAA,OAAA,CAAA;AAEJ,EAAI,IAAA,eAAA,CAAA;AACJ,EAAI,IAAA,kBAAA,CAAA;AAEJ,EAAM,MAAA,eAAA,GAAkB,CAAC,IAAiB,KAAA;AACxC,IAAM,MAAA,GAAA,GAAM,KAAK,GAAI,EAAA,CAAA;AACrB,IAAM,MAAA,EAAA,GAAK,OAAO,QAAS,CAAA,IAAA,CAAA;AAC3B,IAAA,MAAM,OAAO,QAAS,CAAA,QAAA,CAAA;AAGtB,IAAA,IAAI,QAAQ,MAAU,IAAA,CAAC,QAAQ,MAAO,CAAA,EAAA,EAAI,IAAI,CAAG,EAAA;AAC/C,MAAA,OAAA;AAAA,KACF;AAEA,IAAS,OAAA,EAAA,IAAA,CAAK,UAAU,YAAc,EAAA;AAAA,MACpC,IAAA;AAAA,MACA,EAAA;AAAA,MACA,IAAA;AAAA,MACA,QAAA,EAAU,UAAW,CAAA,GAAA,EAAK,aAAa,CAAA;AAAA,KACxC,CAAA,CAAA;AAED,IAAgB,aAAA,GAAA,GAAA,CAAA;AAAA,GAClB,CAAA;AAEA,EAAM,MAAA,gBAAA,GAAmB,MAAM,eAAA,CAAgB,YAAY,CAAA,CAAA;AAC3D,EAAM,MAAA,cAAA,GAAiB,MAAM,eAAA,CAAgB,UAAU,CAAA,CAAA;AAEvD,EAAA,MAAM,uBAAuB,MAAM;AACjC,IAAA,eAAA,GAAkB,OAAO,OAAQ,CAAA,SAAA,CAAA;AACjC,IAAA,kBAAA,GAAqB,OAAO,OAAQ,CAAA,YAAA,CAAA;AAEpC,IAAO,MAAA,CAAA,OAAA,CAAQ,SAAY,GAAA,CAAA,GAAI,IAAS,KAAA;AACtC,MAAgB,eAAA,CAAA,KAAA,CAAM,MAAO,CAAA,OAAA,EAAS,IAAI,CAAA,CAAA;AAC1C,MAAA,eAAA,CAAgB,WAAW,CAAA,CAAA;AAAA,KAC7B,CAAA;AAEA,IAAO,MAAA,CAAA,OAAA,CAAQ,YAAe,GAAA,CAAA,GAAI,IAAS,KAAA;AACzC,MAAmB,kBAAA,CAAA,KAAA,CAAM,MAAO,CAAA,OAAA,EAAS,IAAI,CAAA,CAAA;AAC7C,MAAA,eAAA,CAAgB,cAAc,CAAA,CAAA;AAAA,KAChC,CAAA;AAAA,GACF,CAAA;AAEA,EAAA,MAAM,yBAAyB,MAAM;AACnC,IAAI,IAAA,eAAA;AAAiB,MAAA,MAAA,CAAO,QAAQ,SAAY,GAAA,eAAA,CAAA;AAChD,IAAI,IAAA,kBAAA;AAAoB,MAAA,MAAA,CAAO,QAAQ,YAAe,GAAA,kBAAA,CAAA;AAAA,GACxD,CAAA;AAEA,EAAO,OAAA;AAAA,IACL,MAAM,KAAM,CAAA,MAAA;AAAA,IACZ,OAAA,EAAS,CAAC,GAAuB,KAAA;AAC/B,MAAU,OAAA,GAAA,GAAA,CAAA;AACV,MAAA,aAAA,GAAgB,KAAK,GAAI,EAAA,CAAA;AACzB,MAAO,MAAA,CAAA,gBAAA,CAAiB,cAAc,gBAAgB,CAAA,CAAA;AACtD,MAAO,MAAA,CAAA,gBAAA,CAAiB,YAAY,cAAc,CAAA,CAAA;AAClD,MAAqB,oBAAA,EAAA,CAAA;AAAA,KACvB;AAAA,IACA,WAAW,MAAM;AACf,MAAO,MAAA,CAAA,mBAAA,CAAoB,cAAc,gBAAgB,CAAA,CAAA;AACzD,MAAO,MAAA,CAAA,mBAAA,CAAoB,YAAY,cAAc,CAAA,CAAA;AACrD,MAAuB,sBAAA,EAAA,CAAA;AAAA,KACzB;AAAA,GACF,CAAA;AACF;;AC/DO,MAAM,cAAiB,GAAA,CAAC,OAA2B,GAAA,EAAgB,KAAA;AACxE,EAAM,MAAA,EAAE,aAAgB,GAAA,GAAA,EAAQ,GAAA,OAAA,CAAA;AAChC,EAAI,IAAA,OAAA,CAAA;AAGJ,EAAM,MAAA,eAAA,GAAkB,CAAC,OAAiC,KAAA;AACxD,IAAI,IAAA,CAAC,OAAW,IAAA,OAAA,CAAQ,QAAa,KAAA,CAAA;AAAG,MAAO,OAAA,EAAA,CAAA;AAC/C,IAAA,IAAI,OAAQ,CAAA,EAAA;AAAI,MAAO,OAAA,CAAA,SAAA,EAAY,QAAQ,EAAE,CAAA,EAAA,CAAA,CAAA;AAE7C,IAAM,MAAA,eAAA,GAAkB,MAAM,IAAK,CAAA,OAAA,CAAQ,YAAY,QAAY,IAAA,EAAE,CAAE,CAAA,MAAA;AAAA,MACrE,CAAC,EAAA,KAAO,EAAG,CAAA,OAAA,KAAY,OAAQ,CAAA,OAAA;AAAA,KACjC,CAAA;AAEA,IAAA,MAAM,GAAM,GAAA,eAAA,CAAgB,OAAQ,CAAA,OAAO,CAAI,GAAA,CAAA,CAAA;AAC/C,IAAO,OAAA,CAAA,EAAG,eAAgB,CAAA,OAAA,CAAQ,UAAyB,CAAC,CAAI,CAAA,EAAA,OAAA,CAAQ,OAAQ,CAAA,WAAA,EAAa,CAAA,CAAA,EAAI,GAAG,CAAA,CAAA,CAAA,CAAA;AAAA,GACtG,CAAA;AAEA,EAAM,MAAA,WAAA,GAAc,QAAS,CAAA,CAAC,CAAa,KAAA;AACzC,IAAA,MAAM,SAAS,CAAE,CAAA,MAAA,CAAA;AACjB,IAAA,IAAI,CAAC,MAAA;AAAQ,MAAA,OAAA;AAGb,IAAA,IAAI,QAAQ,MAAU,IAAA,CAAC,OAAQ,CAAA,MAAA,CAAO,MAAM,CAAG,EAAA;AAC7C,MAAA,OAAA;AAAA,KACF;AAGA,IAAA,MAAM,SAAY,GAAA;AAAA,MAChB,SAAS,MAAO,CAAA,OAAA;AAAA,MAChB,IAAI,MAAO,CAAA,EAAA;AAAA,MACX,WAAW,MAAO,CAAA,SAAA;AAAA,MAClB,IAAA,EAAM,MAAO,CAAA,WAAA,EAAa,IAAK,EAAA;AAAA,MAC/B,KAAA,EAAO,gBAAgB,MAAM,CAAA;AAAA,KAC/B,CAAA;AAEA,IAAS,OAAA,EAAA,IAAA,CAAK,SAAU,CAAA,cAAA,EAAgB,SAAS,CAAA,CAAA;AAAA,KAChD,aAAa,CAAA,CAAA;AAEhB,EAAO,OAAA;AAAA,IACL,MAAM,KAAM,CAAA,KAAA;AAAA,IACZ,OAAA,EAAS,CAAC,GAAuB,KAAA;AAC/B,MAAU,OAAA,GAAA,GAAA,CAAA;AACV,MAAA,QAAA,CAAS,gBAAiB,CAAA,SAAA,CAAU,cAAgB,EAAA,WAAA,EAAa,IAAI,CAAA,CAAA;AAAA,KACvE;AAAA,IACA,WAAW,MAAM;AACf,MAAA,QAAA,CAAS,mBAAoB,CAAA,SAAA,CAAU,cAAgB,EAAA,WAAA,EAAa,IAAI,CAAA,CAAA;AAAA,KAC1E;AAAA,GACF,CAAA;AACF;;ACxCO,MAAM,iBAAoB,GAAA,CAAC,OAA8B,GAAA,EAAgB,KAAA;AAC9E,EAAI,IAAA,OAAA,CAAA;AACJ,EAAA,IAAI,aAA4C,GAAA,IAAA,CAAA;AAChD,EAAA,IAAI,WAA0C,GAAA,IAAA,CAAA;AAC9C,EAAA,IAAI,gBAA+C,GAAA,IAAA,CAAA;AACnD,EAAA,IAAI,YAA2C,GAAA,IAAA,CAAA;AAE/C,EAAA,MAAM,sBAAsB,MAAM;AAChC,IAAM,MAAA,YAAA,GAAe,CAAC,IAAoC,KAAA;AACxD,MAAW,KAAA,MAAA,KAAA,IAAS,IAAK,CAAA,UAAA,EAAc,EAAA;AACrC,QAAI,IAAA,KAAA,CAAM,SAAS,aAAe,EAAA;AAChC,UAAI,IAAA,OAAA,CAAQ,UAAU,CAAC,OAAA,CAAQ,OAAO,SAAU,CAAA,cAAA,EAAgB,KAAM,CAAA,SAAS,CAAG,EAAA;AAChF,YAAA,SAAA;AAAA,WACF;AACA,UAAA,OAAA,EAAS,IAAK,CAAA,SAAA,CAAU,cAAgB,EAAA,KAAA,CAAM,SAAS,CAAA,CAAA;AAAA,SACzD,MAAA,IAAW,KAAM,CAAA,IAAA,KAAS,wBAA0B,EAAA;AAClD,UAAI,IAAA,OAAA,CAAQ,UAAU,CAAC,OAAA,CAAQ,OAAO,SAAU,CAAA,eAAA,EAAiB,KAAM,CAAA,SAAS,CAAG,EAAA;AACjF,YAAA,SAAA;AAAA,WACF;AACA,UAAA,OAAA,EAAS,IAAK,CAAA,SAAA,CAAU,eAAiB,EAAA,KAAA,CAAM,SAAS,CAAA,CAAA;AAAA,SAC1D;AAAA,OACF;AACA,MAAA,aAAA,EAAe,UAAW,EAAA,CAAA;AAAA,KAC5B,CAAA;AAEA,IAAI,IAAA;AACF,MAAgB,aAAA,GAAA,IAAI,oBAAoB,YAAY,CAAA,CAAA;AACpD,MAAA,aAAA,CAAc,QAAQ,EAAE,IAAA,EAAM,OAAS,EAAA,QAAA,EAAU,MAAM,CAAA,CAAA;AAAA,aAChD,CAAG,EAAA;AACV,MAAQ,OAAA,CAAA,IAAA,CAAK,kDAAkD,CAAC,CAAA,CAAA;AAAA,KAClE;AAAA,GACF,CAAA;AAEA,EAAA,MAAM,aAAa,MAAM;AACvB,IAAM,MAAA,YAAA,GAAe,CAAC,IAAoC,KAAA;AACxD,MAAA,IAAI,WAAa,EAAA;AACf,QAAA,WAAA,CAAY,UAAW,EAAA,CAAA;AAAA,OACzB;AAEA,MAAW,KAAA,MAAA,KAAA,IAAS,IAAK,CAAA,UAAA,EAAc,EAAA;AACrC,QAAI,IAAA,OAAA,CAAQ,UAAU,CAAC,OAAA,CAAQ,OAAO,SAAU,CAAA,eAAA,EAAiB,KAAM,CAAA,SAAS,CAAG,EAAA;AACjF,UAAA,SAAA;AAAA,SACF;AACA,QAAA,OAAA,EAAS,IAAK,CAAA,SAAA,CAAU,eAAiB,EAAA,KAAA,CAAM,SAAS,CAAA,CAAA;AAAA,OAC1D;AAAA,KACF,CAAA;AAEA,IAAI,IAAA;AACF,MAAc,WAAA,GAAA,IAAI,oBAAoB,YAAY,CAAA,CAAA;AAClD,MAAA,WAAA,CAAY,QAAQ,EAAE,IAAA,EAAM,0BAA4B,EAAA,QAAA,EAAU,MAAM,CAAA,CAAA;AAAA,aACjE,CAAG,EAAA;AACV,MAAQ,OAAA,CAAA,IAAA,CAAK,gDAAgD,CAAC,CAAA,CAAA;AAAA,KAChE;AAAA,GACF,CAAA;AAEA,EAAA,MAAM,cAAc,MAAM;AACxB,IAAM,MAAA,YAAA,GAAe,CAAC,IAAoC,KAAA;AACxD,MAAW,KAAA,MAAA,KAAA,IAAS,IAAK,CAAA,UAAA,EAAc,EAAA;AACrC,QAAI,IAAA,OAAA,CAAQ,UAAU,CAAC,OAAA,CAAQ,OAAO,SAAU,CAAA,gBAAA,EAAkB,KAAK,CAAG,EAAA;AACxE,UAAA,SAAA;AAAA,SACF;AAEA,QAAM,MAAA,SAAA,GAAY,QAAQ,aAAiB,IAAA,sBAAA,CAAA;AAC3C,QAAI,IAAA,KAAA,CAAM,WAAW,SAAW,EAAA;AAC9B,UAAM,MAAA,OAAA,GAAU,MAAM,OAAQ,CAAA,KAAA,CAAM,OAAO,CAAI,GAAA,KAAA,CAAM,UAAU,EAAC,CAAA;AAChE,UAAA,IAAI,eAAkB,GAAA,KAAA,CAAA;AACtB,UAAA,IAAI,UAAa,GAAA,IAAA,CAAA;AAEjB,UAAA,KAAA,IAAS,CAAI,GAAA,CAAA,EAAG,CAAI,GAAA,OAAA,CAAQ,QAAQ,CAAK,EAAA,EAAA;AACvC,YAAM,MAAA,CAAA,GAAI,QAAQ,CAAC,CAAA,CAAA;AACnB,YAAA,IAAI,CAAC,CAAA;AAAG,cAAA,SAAA;AAER,YAAI,IAAA,CAAC,eAAmB,IAAA,CAAA,CAAE,WAAgB,KAAA,eAAA;AAAiB,cAAkB,eAAA,GAAA,IAAA,CAAA;AAE7E,YAAA,IAAI,UAAc,IAAA,CAAC,qBAAsB,CAAA,CAAA,CAAE,SAAS,CAAG,EAAA;AACrD,cAAa,UAAA,GAAA,KAAA,CAAA;AAAA,aACf;AAGA,YAAA,IAAI,mBAAmB,CAAC,UAAA;AAAY,cAAA,MAAA;AAAA,WACtC;AAEA,UAAI,IAAA,eAAA,IAAmB,CAAC,UAAY,EAAA;AAClC,YAAS,OAAA,EAAA,IAAA,CAAK,UAAU,gBAAkB,EAAA;AAAA,cACxC,UAAU,KAAM,CAAA,QAAA;AAAA,cAChB,WAAW,KAAM,CAAA,SAAA;AAAA,cACjB,aAAa,KAAM,CAAA,WAAA;AAAA,cACnB,qBAAqB,KAAM,CAAA,mBAAA;AAAA,cAC3B,gBAAgB,KAAM,CAAA,cAAA;AAAA,cACtB,OAAS,EAAA,KAAA,CAAM,OAAQ,CAAA,GAAA,CAAI,CAAC,CAAY,MAAA;AAAA,gBACtC,UAAU,CAAE,CAAA,QAAA;AAAA,gBACZ,SAAS,CAAE,CAAA,OAAA;AAAA,gBACX,aAAa,CAAE,CAAA,WAAA;AAAA,gBACf,WAAW,CAAE,CAAA,SAAA;AAAA,gBACb,cAAc,CAAE,CAAA,YAAA;AAAA,gBAChB,oBAAoB,CAAE,CAAA,kBAAA;AAAA,gBACtB,oBAAoB,CAAE,CAAA,kBAAA;AAAA,gBACtB,WAAW,CAAE,CAAA,SAAA;AAAA,eACb,CAAA,CAAA;AAAA,aACH,CAAA,CAAA;AAAA,WACH;AAAA,SACF;AAAA,OACF;AAAA,KACF,CAAA;AAEA,IAAI,IAAA;AACF,MAAe,YAAA,GAAA,IAAI,oBAAoB,YAAY,CAAA,CAAA;AACnD,MAAA,YAAA,CAAa,QAAQ,EAAE,IAAA,EAAM,sBAAwB,EAAA,QAAA,EAAU,MAAM,CAAA,CAAA;AAAA,aAC9D,CAAG,EAAA;AACV,MAAQ,OAAA,CAAA,IAAA,CAAK,iDAAiD,CAAC,CAAA,CAAA;AAAA,KACjE;AAAA,GACF,CAAA;AAEA,EAAA,MAAM,kBAAkB,MAAM;AAC5B,IAAM,MAAA,YAAA,GAAe,CAAC,IAAoC,KAAA;AACxD,MAAW,KAAA,MAAA,KAAA,IAAS,IAAK,CAAA,UAAA,EAAc,EAAA;AAErC,QAAA,IAAI,KAAM,CAAA,aAAA,KAAkB,OAAW,IAAA,KAAA,CAAM,kBAAkB,gBAAkB,EAAA;AAC/E,UAAA,SAAA;AAAA,SACF;AAEA,QAAI,IAAA,OAAA,CAAQ,UAAU,CAAC,OAAA,CAAQ,OAAO,SAAU,CAAA,oBAAA,EAAsB,KAAK,CAAG,EAAA;AAC5E,UAAA,SAAA;AAAA,SACF;AAGA,QAAM,MAAA,SAAA,GAAY,QAAQ,iBAAqB,IAAA,0BAAA,CAAA;AAC/C,QAAI,IAAA,KAAA,CAAM,WAAW,SAAW,EAAA;AAC9B,UAAS,OAAA,EAAA,IAAA,CAAK,UAAU,oBAAsB,EAAA;AAAA,YAC5C,MAAM,KAAM,CAAA,IAAA;AAAA;AAAA,YACZ,eAAe,KAAM,CAAA,aAAA;AAAA,YACrB,UAAU,KAAM,CAAA,QAAA;AAAA,YAChB,WAAW,KAAM,CAAA,SAAA;AAAA,YACjB,cAAc,KAAM,CAAA,YAAA;AAAA,YACpB,iBAAiB,KAAM,CAAA,eAAA;AAAA,YACvB,iBAAiB,KAAM,CAAA,eAAA;AAAA,WACxB,CAAA,CAAA;AAAA,SACH;AAAA,OACF;AAAA,KACF,CAAA;AAEA,IAAI,IAAA;AACF,MAAmB,gBAAA,GAAA,IAAI,oBAAoB,YAAY,CAAA,CAAA;AACvD,MAAA,gBAAA,CAAiB,QAAQ,EAAE,IAAA,EAAM,UAAY,EAAA,QAAA,EAAU,MAAM,CAAA,CAAA;AAAA,aACtD,CAAG,EAAA;AACV,MAAQ,OAAA,CAAA,IAAA,CAAK,qDAAqD,CAAC,CAAA,CAAA;AAAA,KACrE;AAAA,GACF,CAAA;AAEA,EAAO,OAAA;AAAA,IACL,MAAM,KAAM,CAAA,WAAA;AAAA,IACZ,OAAA,EAAS,CAAC,GAAuB,KAAA;AAC/B,MAAU,OAAA,GAAA,GAAA,CAAA;AACV,MAAoB,mBAAA,EAAA,CAAA;AACpB,MAAW,UAAA,EAAA,CAAA;AACX,MAAgB,eAAA,EAAA,CAAA;AAChB,MAAY,WAAA,EAAA,CAAA;AAAA,KACd;AAAA,IACA,WAAW,MAAM;AACf,MAAA,aAAA,EAAe,UAAW,EAAA,CAAA;AAC1B,MAAA,WAAA,EAAa,UAAW,EAAA,CAAA;AACxB,MAAA,gBAAA,EAAkB,UAAW,EAAA,CAAA;AAC7B,MAAA,YAAA,EAAc,UAAW,EAAA,CAAA;AAAA,KAC3B;AAAA,GACF,CAAA;AACF;;AChKO,MAAM,SAAY,GAAA,CAAC,OAAsB,GAAA,EAAgB,KAAA;AAC9D,EAAI,IAAA,OAAA,CAAA;AACJ,EAAI,IAAA,UAAA,CAAA;AACJ,EAAI,IAAA,UAAA,CAAA;AAEJ,EAAA,MAAM,oBAAoB,MAAM;AAC9B,IAAA,MAAM,YAAY,MAAO,CAAA,cAAA,CAAA;AACzB,IAAA,IAAI,CAAC,SAAA;AAAW,MAAA,OAAA;AAEhB,IAAA,UAAA,GAAa,UAAU,SAAU,CAAA,IAAA,CAAA;AACjC,IAAA,UAAA,GAAa,UAAU,SAAU,CAAA,IAAA,CAAA;AAGjC,IAAU,SAAA,CAAA,SAAA,CAAU,IAAO,GAAA,SAAA,GAA6D,IAAS,EAAA;AAC/F,MAAA,IAAA,CAAK,SAAY,GAAA;AAAA,QACf,MAAQ,EAAA,IAAA,CAAK,CAAC,CAAA,CAAE,WAAY,EAAA;AAAA,QAC5B,GAAK,EAAA,MAAA,CAAO,IAAK,CAAA,CAAC,CAAC,CAAA;AAAA,QACnB,SAAW,EAAA,CAAA;AAAA,OACb,CAAA;AACA,MAAO,OAAA,UAAA,CAAW,KAAM,CAAA,IAAA,EAAM,IAAI,CAAA,CAAA;AAAA,KACpC,CAAA;AAGA,IAAU,SAAA,CAAA,SAAA,CAAU,IAAO,GAAA,SAAA,GAA6D,IAAS,EAAA;AAC/F,MAAA,IAAI,KAAK,SAAW,EAAA;AAClB,QAAK,IAAA,CAAA,SAAA,CAAU,SAAY,GAAA,IAAA,CAAK,GAAI,EAAA,CAAA;AAAA,OACtC;AAEA,MAAA,MAAM,YAAY,MAAM;AACtB,QAAA,IAAI,KAAK,SAAW,EAAA;AAElB,UAAA,MAAM,aAAa,OAAS,EAAA,GAAA,CAAA;AAC5B,UAAA,MAAM,EAAE,GAAA,EAAK,MAAQ,EAAA,SAAA,KAAc,IAAK,CAAA,SAAA,CAAA;AAExC,UAAA,IAAI,UAAc,IAAA,GAAA,CAAI,QAAS,CAAA,UAAU,CAAG,EAAA;AAC1C,YAAA,OAAA;AAAA,WACF;AAGA,UAAA,IAAI,QAAQ,MAAU,IAAA,CAAC,QAAQ,MAAO,CAAA,MAAA,EAAQ,GAAG,CAAG,EAAA;AAClD,YAAA,OAAA;AAAA,WACF;AAEA,UAAM,MAAA,QAAA,GAAW,IAAK,CAAA,GAAA,EAAQ,GAAA,SAAA,CAAA;AAC9B,UAAA,MAAM,SAAS,IAAK,CAAA,MAAA,CAAA;AAGpB,UAAA,IAAI,EAAE,MAAA,IAAU,GAAO,IAAA,MAAA,GAAS,GAAM,CAAA,EAAA;AACpC,YAAA,MAAM,IAAO,GAAA;AAAA,cACX,MAAA;AAAA,cACA,GAAA;AAAA,cACA,MAAA;AAAA,cACA,QAAA;AAAA;AAAA,cAEA,QAAA,EAAU,IAAK,CAAA,QAAA,GAAW,MAAO,CAAA,IAAA,CAAK,QAAQ,CAAE,CAAA,KAAA,CAAM,CAAG,EAAA,GAAG,CAAI,GAAA,EAAA;AAAA,aAClE,CAAA;AAEA,YAAS,OAAA,EAAA,IAAA,CAAK,SAAU,CAAA,GAAA,EAAK,IAAI,CAAA,CAAA;AAAA,WACnC;AAAA,SACF;AAAA,OACF,CAAA;AAEA,MAAK,IAAA,CAAA,gBAAA,CAAiB,WAAW,SAAS,CAAA,CAAA;AAC1C,MAAO,OAAA,UAAA,CAAW,KAAM,CAAA,IAAA,EAAM,IAAI,CAAA,CAAA;AAAA,KACpC,CAAA;AAAA,GACF,CAAA;AAEA,EAAA,MAAM,aAAa,MAAM;AACvB,IAAA,MAAM,YAAY,MAAO,CAAA,cAAA,CAAA;AACzB,IAAA,IAAI,CAAC,SAAA;AAAW,MAAA,OAAA;AAChB,IAAI,IAAA,UAAA;AAAY,MAAA,SAAA,CAAU,UAAU,IAAO,GAAA,UAAA,CAAA;AAC3C,IAAI,IAAA,UAAA;AAAY,MAAA,SAAA,CAAU,UAAU,IAAO,GAAA,UAAA,CAAA;AAAA,GAC7C,CAAA;AAEA,EAAO,OAAA;AAAA,IACL,MAAM,KAAM,CAAA,GAAA;AAAA,IACZ,OAAA,EAAS,CAAC,GAAuB,KAAA;AAC/B,MAAU,OAAA,GAAA,GAAA,CAAA;AACV,MAAkB,iBAAA,EAAA,CAAA;AAAA,KACpB;AAAA,IACA,WAAW,MAAM;AACf,MAAW,UAAA,EAAA,CAAA;AAAA,KACb;AAAA,GACF,CAAA;AACF;;AChGO,MAAM,WAAc,GAAA,CAAC,OAAwB,GAAA,EAAgB,KAAA;AAClE,EAAI,IAAA,OAAA,CAAA;AACJ,EAAI,IAAA,WAAA,CAAA;AAEJ,EAAA,MAAM,sBAAsB,MAAM;AAChC,IAAA,WAAA,GAAc,MAAO,CAAA,KAAA,CAAA;AACrB,IAAA,IAAI,CAAC,WAAA;AAAa,MAAA,OAAA;AAElB,IAAO,MAAA,CAAA,KAAA,GAAQ,SAAU,KAAA,EAA0B,IAAoB,EAAA;AACrE,MAAM,MAAA,SAAA,GAAY,KAAK,GAAI,EAAA,CAAA;AAC3B,MAAA,MAAM,MAAU,GAAA,CAAA,IAAA,EAAM,MAAU,IAAA,KAAA,EAAO,WAAY,EAAA,CAAA;AACnD,MAAA,MAAM,MAAM,KAAiB,YAAA,OAAA,GAAU,KAAM,CAAA,GAAA,GAAM,OAAO,KAAK,CAAA,CAAA;AAE/D,MAAA,OAAO,YAAY,KAAM,CAAA,IAAA,EAAM,CAAC,KAAO,EAAA,IAAI,CAAC,CAAE,CAAA,IAAA;AAAA,QAC5C,CAAC,QAAa,KAAA;AACZ,UAAA,MAAM,aAAa,OAAS,EAAA,GAAA,CAAA;AAC5B,UAAA,IAAI,UAAc,IAAA,GAAA,CAAI,QAAS,CAAA,UAAU,CAAG,EAAA;AAC1C,YAAO,OAAA,QAAA,CAAA;AAAA,WACT;AAGA,UAAA,IAAI,QAAQ,MAAU,IAAA,CAAC,QAAQ,MAAO,CAAA,MAAA,EAAQ,GAAG,CAAG,EAAA;AAClD,YAAO,OAAA,QAAA,CAAA;AAAA,WACT;AAEA,UAAI,IAAA,CAAC,SAAS,EAAI,EAAA;AAChB,YAAM,MAAA,QAAA,GAAW,IAAK,CAAA,GAAA,EAAQ,GAAA,SAAA,CAAA;AAC9B,YAAA,MAAM,IAAO,GAAA;AAAA,cACX,MAAA;AAAA,cACA,GAAA;AAAA,cACA,QAAQ,QAAS,CAAA,MAAA;AAAA,cACjB,QAAA;AAAA,cACA,OAAS,EAAA,KAAA;AAAA,aACX,CAAA;AACA,YAAS,OAAA,EAAA,IAAA,CAAK,SAAU,CAAA,KAAA,EAAO,IAAI,CAAA,CAAA;AAAA,WACrC;AACA,UAAO,OAAA,QAAA,CAAA;AAAA,SACT;AAAA,QACA,CAAC,KAAU,KAAA;AACT,UAAA,MAAM,aAAa,OAAS,EAAA,GAAA,CAAA;AAC5B,UAAA,IAAI,UAAc,IAAA,GAAA,CAAI,QAAS,CAAA,UAAU,CAAG,EAAA;AAC1C,YAAM,MAAA,KAAA,CAAA;AAAA,WACR;AAGA,UAAA,IAAI,QAAQ,MAAU,IAAA,CAAC,QAAQ,MAAO,CAAA,MAAA,EAAQ,GAAG,CAAG,EAAA;AAClD,YAAM,MAAA,KAAA,CAAA;AAAA,WACR;AAEA,UAAM,MAAA,QAAA,GAAW,IAAK,CAAA,GAAA,EAAQ,GAAA,SAAA,CAAA;AAC9B,UAAA,MAAM,IAAO,GAAA;AAAA,YACX,MAAA;AAAA,YACA,GAAA;AAAA,YACA,MAAQ,EAAA,CAAA;AAAA,YACR,QAAA;AAAA,YACA,OAAS,EAAA,KAAA;AAAA,YACT,SAAS,KAAM,CAAA,OAAA;AAAA,WACjB,CAAA;AACA,UAAS,OAAA,EAAA,IAAA,CAAK,SAAU,CAAA,KAAA,EAAO,IAAI,CAAA,CAAA;AACnC,UAAM,MAAA,KAAA,CAAA;AAAA,SACR;AAAA,OACF,CAAA;AAAA,KACF,CAAA;AAAA,GACF,CAAA;AAEA,EAAA,MAAM,eAAe,MAAM;AACzB,IAAI,IAAA,WAAA;AAAa,MAAA,MAAA,CAAO,KAAQ,GAAA,WAAA,CAAA;AAAA,GAClC,CAAA;AAEA,EAAO,OAAA;AAAA,IACL,MAAM,KAAM,CAAA,KAAA;AAAA,IACZ,OAAA,EAAS,CAAC,GAAuB,KAAA;AAC/B,MAAU,OAAA,GAAA,GAAA,CAAA;AACV,MAAoB,mBAAA,EAAA,CAAA;AAAA,KACtB;AAAA,IACA,WAAW,MAAM;AACf,MAAa,YAAA,EAAA,CAAA;AAAA,KACf;AAAA,GACF,CAAA;AACF;;;;","x_google_ignoreList":[0,1,3]}
|