koishi-plugin-warframe 1.5.1 → 1.5.3

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.
Files changed (4) hide show
  1. package/README.md +71 -34
  2. package/lib/index.d.ts +58 -54
  3. package/lib/index.js +1623 -1660
  4. package/package.json +3 -2
package/lib/index.js CHANGED
@@ -1204,10 +1204,14 @@ __export(index_exports, {
1204
1204
  name: () => name
1205
1205
  });
1206
1206
  module.exports = __toCommonJS(index_exports);
1207
- var import_koishi = require("koishi");
1207
+ var import_koishi2 = require("koishi");
1208
1208
 
1209
1209
  // src/services/wfm-service.ts
1210
- var import_warframe_public_export_plus4 = require("warframe-public-export-plus");
1210
+ var import_warframe_public_export_plus = require("warframe-public-export-plus");
1211
+
1212
+ // src/utils/logger.ts
1213
+ var import_koishi = require("koishi");
1214
+ var logger = new import_koishi.Logger("koishi-plugin-warframe");
1211
1215
 
1212
1216
  // src/utils/time.ts
1213
1217
  var toTimeStamp = /* @__PURE__ */ __name((timeStr) => {
@@ -1372,75 +1376,36 @@ function tokenSimilarity(a, b) {
1372
1376
  __name(tokenSimilarity, "tokenSimilarity");
1373
1377
 
1374
1378
  // src/utils/http.ts
1375
- var fetchAsyncText = /* @__PURE__ */ __name(async (url, method = "GET") => {
1376
- const response = await fetch(url, {
1377
- method,
1378
- headers: {
1379
- "Content-Type": "application/json",
1380
- Language: "zh-hans"
1381
- }
1382
- });
1383
- if (!response.ok) {
1384
- throw new Error("Network response was not ok.");
1385
- }
1386
- try {
1387
- return await response.text();
1388
- } catch (error) {
1389
- if (error instanceof Error) {
1390
- console.log(error.message);
1391
- console.log(error.stack);
1392
- } else {
1393
- console.log("未知错误", error);
1394
- }
1395
- return void 0;
1396
- }
1397
- }, "fetchAsyncText");
1398
- var fetchAsyncData = /* @__PURE__ */ __name(async (url, method = "GET") => {
1399
- const response = await fetch(url, {
1400
- method,
1401
- headers: {
1402
- "Content-Type": "application/json",
1403
- Language: "zh-hans"
1404
- }
1405
- });
1406
- if (!response.ok) {
1407
- throw new Error("Network response was not ok.");
1408
- }
1409
- try {
1410
- return await response.json();
1411
- } catch (error) {
1412
- if (error instanceof Error) {
1413
- console.log(error.message);
1414
- console.log(error.stack);
1415
- } else {
1416
- console.log("未知错误", error);
1417
- }
1418
- return void 0;
1419
- }
1420
- }, "fetchAsyncData");
1421
- var fetchAsyncImage = /* @__PURE__ */ __name(async (url, method = "GET") => {
1422
- const response = await fetch(url, {
1423
- method,
1424
- headers: {
1425
- "Content-Type": "image/png",
1426
- "response-type": "blob"
1427
- }
1428
- });
1429
- if (!response.ok) {
1430
- throw new Error("Network response was not ok.");
1431
- }
1379
+ var import_ofetch = require("ofetch");
1380
+ var defaultHeaders = {
1381
+ Accept: "text/html,application/json;q=0.9,image/*;q=0.8,*/*;q=0.8",
1382
+ "Accept-Language": "zh-CN,zh-Hans;q=0.9",
1383
+ "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
1384
+ Language: "zh-hans"
1385
+ };
1386
+ async function request(url, method, responseType) {
1432
1387
  try {
1433
- return await response.blob();
1434
- } catch (error) {
1435
- if (error instanceof Error) {
1436
- console.log(error.message);
1437
- console.log(error.stack);
1438
- } else {
1439
- console.log("未知错误", error);
1440
- }
1388
+ return await (0, import_ofetch.ofetch)(url, {
1389
+ method,
1390
+ headers: defaultHeaders,
1391
+ responseType,
1392
+ timeout: 1e4,
1393
+ retry: 3,
1394
+ retryDelay: 500,
1395
+ retryStatusCodes: [408, 429, 500, 502, 503, 504]
1396
+ });
1397
+ } catch (err) {
1398
+ const e = err;
1399
+ const status = e.statusCode ?? "Network";
1400
+ const detail = e.data && typeof e.data === "object" ? JSON.stringify(e.data) : e.data ?? e.message ?? "";
1401
+ logger.error(`[HTTP] ${method} ${url} -> ${status} ${detail}`.trimEnd());
1441
1402
  return void 0;
1442
1403
  }
1443
- }, "fetchAsyncImage");
1404
+ }
1405
+ __name(request, "request");
1406
+ var fetchAsyncText = /* @__PURE__ */ __name((url, method = "GET") => request(url, method, "text"), "fetchAsyncText");
1407
+ var fetchAsyncData = /* @__PURE__ */ __name((url, method = "GET") => request(url, method, "json"), "fetchAsyncData");
1408
+ var fetchAsyncImage = /* @__PURE__ */ __name((url, method = "GET") => request(url, method, "blob"), "fetchAsyncImage");
1444
1409
 
1445
1410
  // src/utils/collection.ts
1446
1411
  var listToDict = /* @__PURE__ */ __name((dict, predict) => {
@@ -1478,986 +1443,147 @@ var hexToRgb = /* @__PURE__ */ __name((hex) => {
1478
1443
  }, "hexToRgb");
1479
1444
  var rgbToHex = /* @__PURE__ */ __name((r, g, b) => `#${((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1)}`, "rgbToHex");
1480
1445
 
1481
- // src/utils/translation.ts
1482
- var import_warframe_public_export_plus2 = require("warframe-public-export-plus");
1483
-
1484
- // src/utils/wf-export-adapter.ts
1485
- var import_warframe_public_export_plus = require("warframe-public-export-plus");
1486
- var regionToShort = /* @__PURE__ */ __name((region, dict) => {
1487
- let faction;
1488
- if (region.faction) {
1489
- const name2 = import_warframe_public_export_plus.ExportFactions[region.faction].name;
1490
- if (name2) {
1491
- faction = dict[name2];
1492
- }
1493
- }
1494
- if (!faction) {
1495
- faction = region.faction;
1446
+ // src/infrastructure/wfm/wfm-api.ts
1447
+ var wfmApiV1Base = "https://api.warframe.market/v1/";
1448
+ var wfmApiV2Base = "https://api.warframe.market/v2/";
1449
+ var getWFMItemList = /* @__PURE__ */ __name(async () => {
1450
+ const response = await fetchAsyncData(
1451
+ `${wfmApiV2Base}items`
1452
+ );
1453
+ return response?.data;
1454
+ }, "getWFMItemList");
1455
+ var getWFMItemStatistics = /* @__PURE__ */ __name(async (itemId) => {
1456
+ const response = await fetchAsyncData(
1457
+ `${wfmApiV1Base}items/${itemId}/statistics`
1458
+ );
1459
+ return response?.payload;
1460
+ }, "getWFMItemStatistics");
1461
+ var getWFMOrderList = /* @__PURE__ */ __name(async (itemId) => {
1462
+ const response = await fetchAsyncData(
1463
+ `${wfmApiV2Base}orders/item/${itemId}`
1464
+ );
1465
+ return response?.data;
1466
+ }, "getWFMOrderList");
1467
+ var getWFMRivenItemList = /* @__PURE__ */ __name(async () => {
1468
+ const response = await fetchAsyncData(
1469
+ `${wfmApiV2Base}riven/weapons`
1470
+ );
1471
+ return response?.data;
1472
+ }, "getWFMRivenItemList");
1473
+ var getWFMRivenOrderList = /* @__PURE__ */ __name(async (itemId) => {
1474
+ const response = await fetchAsyncData(
1475
+ `${wfmApiV1Base}auctions/search?type=riven&sort_by=price_asc&weapon_url_name=${itemId}`
1476
+ );
1477
+ return response?.payload.auctions;
1478
+ }, "getWFMRivenOrderList");
1479
+ var getWFMRivenAttributeList = /* @__PURE__ */ __name(async () => {
1480
+ const response = await fetchAsyncData(
1481
+ `${wfmApiV2Base}riven/attributes`
1482
+ );
1483
+ return response?.data;
1484
+ }, "getWFMRivenAttributeList");
1485
+ var getWFMDucatnator = /* @__PURE__ */ __name(async () => {
1486
+ const response = await fetchAsyncData(`${wfmApiV1Base}tools/ducats`);
1487
+ if (!response || !response.payload) {
1488
+ return void 0;
1496
1489
  }
1490
+ const day = response.payload.previous_day.map((e) => {
1491
+ return e;
1492
+ });
1493
+ const hour = response.payload.previous_hour.map((e) => {
1494
+ return e;
1495
+ });
1497
1496
  return {
1498
- name: dict[region.name],
1499
- system: dict[region.systemName],
1500
- type: dict[region.missionName],
1501
- faction,
1502
- maxLevel: region.maxEnemyLevel,
1503
- minLevel: region.minEnemyLevel
1497
+ day,
1498
+ hour
1504
1499
  };
1505
- }, "regionToShort");
1506
- var relicEraToTransKey = /* @__PURE__ */ __name((era) => {
1507
- const prefix = "/Lotus/Language/Relics/Era_";
1508
- return prefix + era.toUpperCase();
1509
- }, "relicEraToTransKey");
1510
- var fixRelicRewardKey = /* @__PURE__ */ __name((item) => {
1511
- return item.replace("StoreItems/", "");
1512
- }, "fixRelicRewardKey");
1513
-
1514
- // src/utils/translation.ts
1515
- var relicToFullNameZH = /* @__PURE__ */ __name((tier, category) => {
1516
- return `${import_warframe_public_export_plus2.dict_zh[relicEraToTransKey(tier)] ?? toPascalCase(tier)} ${category} 遗物`;
1517
- }, "relicToFullNameZH");
1500
+ }, "getWFMDucatnator");
1518
1501
 
1519
- // src/utils/ocr.ts
1520
- var import_node_crypto = __toESM(require("node:crypto"));
1521
- var ocrCache = new CacheStorage(100);
1522
- var getImageBase64Hash = /* @__PURE__ */ __name((base64) => {
1523
- const pureBase64 = base64.replace(/^data:image\/\w+;base64,/, "");
1524
- return import_node_crypto.default.createHash("sha256").update(pureBase64, "base64").digest("hex");
1525
- }, "getImageBase64Hash");
1526
- var getTextFromTencentOCR = /* @__PURE__ */ __name(async (image, secret) => {
1527
- const tencentcloud = require("tencentcloud-sdk-nodejs-ocr");
1528
- const ocrClient = tencentcloud.ocr.v20181119.Client;
1529
- const clientConfig = {
1530
- credential: {
1531
- secretId: secret.id,
1532
- secretKey: secret.key
1533
- },
1534
- region: "",
1535
- profile: {
1536
- httpProfile: {
1537
- endpoint: "ocr.tencentcloudapi.com"
1502
+ // src/data/wfm/globalItem.ts
1503
+ var globalItemDataFactory = /* @__PURE__ */ __name(async (response) => {
1504
+ response ??= await getWFMItemList();
1505
+ if (!response) {
1506
+ return {
1507
+ globalItemList: [],
1508
+ globalItemDict: {},
1509
+ globalItemNameToSlugDict: {},
1510
+ globalItemGameRefDict: {}
1511
+ };
1512
+ }
1513
+ const data = response;
1514
+ const globalItemList = response;
1515
+ const globalItemDict = listToDict(
1516
+ data,
1517
+ (i) => [i.slug]
1518
+ );
1519
+ const globalItemNameToSlugDict = ((list) => {
1520
+ const result = {};
1521
+ for (const item of list) {
1522
+ if (item.i18n["zh-hans"]?.name) {
1523
+ result[normalizeName(item.i18n["zh-hans"].name)] = item.slug;
1524
+ }
1525
+ if (item.i18n["en"]?.name) {
1526
+ result[normalizeName(item.i18n["en"].name)] = item.slug;
1538
1527
  }
1539
1528
  }
1529
+ return result;
1530
+ })(globalItemList);
1531
+ const globalItemGameRefDict = listToDict(data, (i) => [i.gameRef]);
1532
+ return {
1533
+ globalItemList,
1534
+ globalItemDict,
1535
+ globalItemNameToSlugDict,
1536
+ globalItemGameRefDict
1540
1537
  };
1541
- const client = new ocrClient(clientConfig);
1542
- const { TextDetections } = await client.GeneralAccurateOCR({
1543
- ImageBase64: image
1544
- });
1545
- const result = TextDetections?.map((t) => t.DetectedText).filter(
1546
- Boolean
1547
- );
1548
- return result;
1549
- }, "getTextFromTencentOCR");
1550
- var extractTextFromImage = /* @__PURE__ */ __name(async (image, secret) => {
1551
- if (image instanceof Blob) {
1552
- const buffer = await image.arrayBuffer();
1553
- image = Buffer.from(buffer).toString("base64");
1538
+ }, "globalItemDataFactory");
1539
+ var globalItemData = createAsyncCache(globalItemDataFactory, -1);
1540
+
1541
+ // src/data/wfm/globalRivenItem.ts
1542
+ var globalRivenItemData = createAsyncCache(async () => {
1543
+ const rivenData = await getWFMRivenItemList();
1544
+ if (!rivenData) {
1545
+ throw new Error("Failed to fetch riven items from Warframe Market API.");
1554
1546
  }
1555
- const imageHash = getImageBase64Hash(image);
1556
- try {
1557
- return await ocrCache.get(
1558
- imageHash,
1559
- () => getTextFromTencentOCR(image, secret)
1547
+ const data = rivenData;
1548
+ const globalRivenItemList = data;
1549
+ const globalRivenItemDict = listToDict(data, (i) => [i.slug]);
1550
+ return {
1551
+ globalRivenItemList,
1552
+ globalRivenItemDict
1553
+ };
1554
+ }, -1);
1555
+
1556
+ // src/data/wfm/globalRivenAttribute.ts
1557
+ var globalRivenAttributeFactory = /* @__PURE__ */ __name(async (rivenAttributeData) => {
1558
+ rivenAttributeData ??= await getWFMRivenAttributeList();
1559
+ if (!rivenAttributeData) {
1560
+ throw new Error(
1561
+ "Failed to fetch riven attributes from Warframe Market API."
1560
1562
  );
1561
- } catch (err) {
1562
- console.error("Ocr request error!", err);
1563
- return void 0;
1564
1563
  }
1565
- }, "extractTextFromImage");
1566
-
1567
- // src/utils/output.tsx
1568
- var style = `
1569
- :root {
1570
- --color_success_text: #4d8200;
1571
- --color_success_border: #4d8200;
1572
- --color_rgb_success_text: 77 130 0;
1573
- --color_rgb_success_border: 77 130 0;
1574
- --color_auction_participant: #1c8a62;
1575
- --color_auction_sell: #909090;
1576
- --color_auction_own: mediumpurple;
1577
- --color_auction_archiving: gray;
1578
- --color_rgb_auction_archiving: 128 128 128;
1579
- --color_dark_background--light: #11262b;
1580
- --color_dark_border--ligth: #283235;
1581
- --color_dark_background: #171e21;
1582
- --color_dark_border: #283235;
1583
- --color_dark_background--darker: #071013;
1584
- --color_dark_border--darker: #171e21;
1585
- --color_rgb_dark_background--light: 17 38 43;
1586
- --color_rgb_dark_border--ligth: 40 50 53;
1587
- --color_rgb_dark_background: 23 30 33;
1588
- --color_rgb_dark_border: 40 50 53;
1589
- --color_rgb_dark_background--darker: 7 16 19;
1590
- --color_rgb_dark_border--darker: 23 30 33;
1591
- --color_place_order: #b53600;
1592
- --color_place_order--hover: #e64400;
1593
- --color_place_order--active: #ff8f00;
1594
- --color_place_order_text: #f5f5f5;
1595
- --color_create_auction: #8960db;
1596
- --color_create_auction_text: #f5f5f5;
1597
- --color_create_auction--hover: #b08cff;
1598
- --color_create_auction--active: #9d92ff;
1599
- --color_input_inner_shadow: 0 0 0;
1600
- --color_input_text--highlight: #19a187;
1601
- --color_attribute_text: white;
1602
- --color_attribute_background_first: #19a187;
1603
- --color_attribute_background_second: #358576;
1604
- --color_attribute_background_third: #516965;
1605
- --color_attribute_background_negative: #98392d;
1606
- --color_rgb_attribute_background_first: 25 161 135;
1607
- --color_rgb_attribute_background_second: 53 133 118;
1608
- --color_rgb_attribute_background_third: 81 105 101;
1609
- --color_rgb_attribute_background_negative: 152 57 45;
1610
- --color_link_dimmed: #408698;
1611
- --color_link_dimmed--hover: #a3dddb;
1612
- --color_link_dimmed--active: #acb8dd;
1613
- --color_rgb_link_dimmed: 64 134 152;
1614
- --color_rgb_link_dimmed--hover: 163 221 219;
1615
- --color_rgb_link_dimmed--active: 172 184 221;
1616
- --color_dark_md_code_background: black;
1617
- --color_dark_md_code_text: #39a57e;
1618
- --color_rgb_dark_md_code_background: 0 0 0;
1619
- --color_status-offline: darkred;
1620
- --color_highlight: #b53600;
1621
- --color_highlight_text: #f5f5f5;
1622
- --color_tooltip_background: #1b2432;
1623
- --color_tooltip_border: black;
1624
- --color_tooltip_text: #aab3b6;
1625
- --color_rgb_tooltip_background: 27 36 50;
1626
- --color_text_svg: red;
1627
- --color_dark_text: #aab3b6;
1628
- --color_dark_h1: #fcfdfd;
1629
- --color_dark_h2: #e1e4e5;
1630
- --color_dark_h3: #c5ccce;
1631
- --color_dark_disclaimer: #333d40;
1632
- }
1633
-
1634
- body {
1635
- font-family: Arial, sans-serif;
1636
- padding: 20px;
1637
- }
1564
+ const data = rivenAttributeData;
1565
+ const globalRivenAttributeList = data;
1566
+ const globalRivenAttributeDict = listToDict(data, (a) => [
1567
+ a.slug
1568
+ ]);
1569
+ return {
1570
+ globalRivenAttributeList,
1571
+ globalRivenAttributeDict
1572
+ };
1573
+ }, "globalRivenAttributeFactory");
1574
+ var globalRivenAttribute = createAsyncCache(
1575
+ globalRivenAttributeFactory,
1576
+ -1
1577
+ );
1638
1578
 
1639
- * {
1640
- margin: 0;
1641
- padding: 0;
1642
- }
1643
-
1644
- ul {
1645
- list-style: none;
1646
- }
1647
- `;
1648
- var svg = `<svg
1649
- style="display: none"
1650
- xmlns="http://www.w3.org/2000/svg"
1651
- xmlns:xlink="http://www.w3.org/1999/xlink"
1652
- xmlns:osb="http://www.openswatchbook.org/uri/2009/osb"
1653
- >
1654
- <defs>
1655
- <symbol viewBox="0 0 19.736 20.883" id="icon-amber">
1656
- <path
1657
- d="M15.163 9.37c-3.622-4.486-4.755-6.107-5.312-6.107-.557 0-1.656 1.621-5.278 6.107.116 2.831 1.424 2.328 5.295 7.062 3.871-4.734 5.179-4.231 5.295-7.062zm-8.26.491c1.296-1.39 2.254-4.473 2.965-4.448.711-.025 1.67 3.058 2.966 4.448-.493 1.425-1.72 2.611-2.966 4.06-1.246-1.449-2.473-2.635-2.965-4.06zm-1.787 7.416C3.03 17.449 0 12.89 0 11.335c0-2.573 4.116-6.501 4.499-7.782l.11-2.16C5.854.397 7.632.1 9.87 0c2.235.099 4.014.396 5.258 1.394l.11 2.159c.383 1.28 4.5 5.209 4.5 7.782 0 1.555-3.085 5.942-5.117 5.942-.86 1.214-3.277 3.606-4.752 3.606-1.474 0-3.892-2.392-4.752-3.606z"
1658
- />
1659
- </symbol>
1660
- <symbol viewBox="0 0 320 512" id="icon-angle-up">
1661
- <path
1662
- d="m177 159.7 136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 255.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 329.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1z"
1663
- />
1664
- </symbol>
1665
- <symbol viewBox="0 0 512 512" id="icon-archive">
1666
- <path
1667
- d="M32 448c0 17.7 14.3 32 32 32h384c17.7 0 32-14.3 32-32V160H32v288zm160-212c0-6.6 5.4-12 12-12h104c6.6 0 12 5.4 12 12v8c0 6.6-5.4 12-12 12H204c-6.6 0-12-5.4-12-12v-8zM480 32H32C14.3 32 0 46.3 0 64v48c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16V64c0-17.7-14.3-32-32-32z"
1668
- />
1669
- </symbol>
1670
- <symbol viewBox="-10 0 468 512" id="icon-arrow-link">
1671
- <path
1672
- fill="currentColor"
1673
- d="M280 80q-22-2-24-24 2-22 24-24h144q22 2 24 24v144q-2 22-24 24-22-2-24-24v-86L200 312q-16 15-33 0-14-16 0-33L366 80h-86zM0 120q1-24 16-40 16-15 40-16h112q22 2 24 24-2 22-24 24H56q-7 1-8 8v304q1 7 8 8h304q7-1 8-8V312q2-22 24-24 22 2 24 24v112q-1 24-16 40-16 15-40 16H56q-24-1-40-16-15-16-16-40V120z"
1674
- />
1675
- </symbol>
1676
- <symbol viewBox="0 0 512 512" id="icon-arrows-alt-h">
1677
- <path
1678
- d="M377.941 169.941V216H134.059v-46.059c0-21.382-25.851-32.09-40.971-16.971L7.029 239.029c-9.373 9.373-9.373 24.568 0 33.941l86.059 86.059c15.119 15.119 40.971 4.411 40.971-16.971V296h243.882v46.059c0 21.382 25.851 32.09 40.971 16.971l86.059-86.059c9.373-9.373 9.373-24.568 0-33.941l-86.059-86.059c-15.119-15.12-40.971-4.412-40.971 16.97z"
1679
- />
1680
- </symbol>
1681
- <symbol viewBox="0 0 1000 1000" id="icon-auction">
1682
- <path
1683
- d="m324.4 138.5 250 144.3c19.8 11.4 45 4.6 56.3-15.1 11.4-19.7 4.7-45-15.1-56.3l-250-144.3c-19.8-11.4-45-4.6-56.3 15.1s-4.6 44.8 15.1 56.3zm229.4 180-250-144.3-144.3 250 250 144.3 144.3-250zM97.6 531.3l250 144.3c19.7 11.4 45 4.6 56.3-15.1 11.3-19.7 4.6-45-15.1-56.3L138.8 460c-19.8-11.4-45-4.6-56.3 15.1-11.5 19.6-4.7 44.9 15.1 56.2zm861.5 116.4L502.3 407.8 461 479.3l436.2 275.6c29.6 17.1 67.4 7 84.5-22.6 17.1-29.7 6.9-67.5-22.6-84.6zM506.3 856c0-22.8-18.5-41.2-41.2-41.2H93.8c-22.8 0-41.2 18.4-41.2 41.2v41.2l-42.6-.9 1.4 42.1h536.1l1.9-39.5-40.6-1.7c.1 0-2.5-18.5-2.5-41.2z"
1684
- />
1685
- </symbol>
1686
- <symbol viewBox="0 0 400 423" id="icon-averagePrice">
1687
- <path
1688
- d="m162.531 374.211-.905-319.596 70.517-.147 1.118 319.744z"
1689
- fill="#ff5a69"
1690
- />
1691
- </symbol>
1692
- <symbol viewBox="0 0 384 512" id="icon-award">
1693
- <path
1694
- d="M97.12 362.63c-8.69-8.69-4.16-6.24-25.12-11.85-9.51-2.55-17.87-7.45-25.43-13.32L1.2 448.7c-4.39 10.77 3.81 22.47 15.43 22.03l52.69-2.01L105.56 507c8 8.44 22.04 5.81 26.43-4.96l52.05-127.62c-10.84 6.04-22.87 9.58-35.31 9.58-19.5 0-37.82-7.59-51.61-21.37zM382.8 448.7l-45.37-111.24c-7.56 5.88-15.92 10.77-25.43 13.32-21.07 5.64-16.45 3.18-25.12 11.85-13.79 13.78-32.12 21.37-51.62 21.37-12.44 0-24.47-3.55-35.31-9.58L252 502.04c4.39 10.77 18.44 13.4 26.43 4.96l36.25-38.28 52.69 2.01c11.62.44 19.82-11.27 15.43-22.03zM263 340c15.28-15.55 17.03-14.21 38.79-20.14 13.89-3.79 24.75-14.84 28.47-28.98 7.48-28.4 5.54-24.97 25.95-45.75 10.17-10.35 14.14-25.44 10.42-39.58-7.47-28.38-7.48-24.42 0-52.83 3.72-14.14-.25-29.23-10.42-39.58-20.41-20.78-18.47-17.36-25.95-45.75-3.72-14.14-14.58-25.19-28.47-28.98-27.88-7.61-24.52-5.62-44.95-26.41-10.17-10.35-25-14.4-38.89-10.61-27.87 7.6-23.98 7.61-51.9 0-13.89-3.79-28.72.25-38.89 10.61-20.41 20.78-17.05 18.8-44.94 26.41-13.89 3.79-24.75 14.84-28.47 28.98-7.47 28.39-5.54 24.97-25.95 45.75-10.17 10.35-14.15 25.44-10.42 39.58 7.47 28.36 7.48 24.4 0 52.82-3.72 14.14.25 29.23 10.42 39.59 20.41 20.78 18.47 17.35 25.95 45.75 3.72 14.14 14.58 25.19 28.47 28.98C104.6 325.96 106.27 325 121 340c13.23 13.47 33.84 15.88 49.74 5.82a39.676 39.676 0 0 1 42.53 0c15.89 10.06 36.5 7.65 49.73-5.82zM97.66 175.96c0-53.03 42.24-96.02 94.34-96.02s94.34 42.99 94.34 96.02-42.24 96.02-94.34 96.02-94.34-42.99-94.34-96.02z"
1695
- />
1696
- </symbol>
1697
- <symbol viewBox="0 0 640 512" id="icon-backspace">
1698
- <path
1699
- d="M576 64H205.26A63.97 63.97 0 0 0 160 82.75L9.37 233.37c-12.5 12.5-12.5 32.76 0 45.25L160 429.25c12 12 28.28 18.75 45.25 18.75H576c35.35 0 64-28.65 64-64V128c0-35.35-28.65-64-64-64zm-84.69 254.06c6.25 6.25 6.25 16.38 0 22.63l-22.62 22.62c-6.25 6.25-16.38 6.25-22.63 0L384 301.25l-62.06 62.06c-6.25 6.25-16.38 6.25-22.63 0l-22.62-22.62c-6.25-6.25-6.25-16.38 0-22.63L338.75 256l-62.06-62.06c-6.25-6.25-6.25-16.38 0-22.63l22.62-22.62c6.25-6.25 16.38-6.25 22.63 0L384 210.75l62.06-62.06c6.25-6.25 16.38-6.25 22.63 0l22.62 22.62c6.25 6.25 6.25 16.38 0 22.63L429.25 256l62.06 62.06z"
1700
- />
1701
- </symbol>
1702
- <symbol viewBox="0 0 512 512" id="icon-ban">
1703
- <path
1704
- d="M256 8C119.034 8 8 119.033 8 256s111.034 248 248 248 248-111.034 248-248S392.967 8 256 8zm130.108 117.892c65.448 65.448 70 165.481 20.677 235.637L150.47 105.216c70.204-49.356 170.226-44.735 235.638 20.676zM125.892 386.108c-65.448-65.448-70-165.481-20.677-235.637L361.53 406.784c-70.203 49.356-170.226 44.736-235.638-20.676z"
1705
- />
1706
- </symbol>
1707
- <symbol viewBox="0 0 448 512" id="icon-bars">
1708
- <path
1709
- d="M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z"
1710
- />
1711
- </symbol>
1712
- <symbol viewBox="0 0 544 1423" id="icon-candlePrice">
1713
- <g fill="green">
1714
- <path
1715
- d="m141.618 209.102 2.33 804.884 266.39.894-6.224-806.124c-58.188 2.227-202.884-.42-262.496.346z"
1716
- />
1717
- <path
1718
- d="m243.855 250.785-1.697-236.057 63.435-.335.369 236.664zm.917 985.162.013-230.11 64.04-1.797.382 232.173z"
1719
- />
1720
- </g>
1721
- </symbol>
1722
- <symbol viewBox="0 0 320 512" id="icon-caret-down">
1723
- <path
1724
- d="M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z"
1725
- />
1726
- </symbol>
1727
- <symbol viewBox="0 0 192 512" id="icon-caret-left">
1728
- <path
1729
- d="M192 127.338v257.324c0 17.818-21.543 26.741-34.142 14.142L29.196 270.142c-7.81-7.81-7.81-20.474 0-28.284l128.662-128.662c12.599-12.6 34.142-3.676 34.142 14.142z"
1730
- />
1731
- </symbol>
1732
- <symbol viewBox="0 0 512 512" id="icon-chart-area">
1733
- <path
1734
- d="M500 384c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v308h436zM372.7 159.5 288 216l-85.3-113.7c-5.1-6.8-15.5-6.3-19.9 1L96 248v104h384l-89.9-187.8c-3.2-6.5-11.4-8.7-17.4-4.7z"
1735
- />
1736
- </symbol>
1737
- <symbol viewBox="0 0 512 512" id="icon-check">
1738
- <path
1739
- d="m173.898 439.404-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z"
1740
- />
1741
- </symbol>
1742
- <symbol viewBox="0 0 512 512" id="icon-check-circle">
1743
- <path
1744
- d="M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm113-303c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-111 111-47-47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0L369 209z"
1745
- />
1746
- </symbol>
1747
- <symbol viewBox="0 0 448 512" id="icon-chevron-down">
1748
- <path
1749
- d="M207.029 381.476 12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z"
1750
- />
1751
- </symbol>
1752
- <symbol viewBox="0 0 320 512" id="icon-chevron-left">
1753
- <path
1754
- d="M34.52 239.03 228.87 44.69c9.37-9.37 24.57-9.37 33.94 0l22.67 22.67c9.36 9.36 9.37 24.52.04 33.9L131.49 256l154.02 154.75c9.34 9.38 9.32 24.54-.04 33.9l-22.67 22.67c-9.37 9.37-24.57 9.37-33.94 0L34.52 272.97c-9.37-9.37-9.37-24.57 0-33.94z"
1755
- />
1756
- </symbol>
1757
- <symbol viewBox="0 0 448 512" id="icon-chevron-up">
1758
- <path
1759
- d="m240.971 130.524 194.343 194.343c9.373 9.373 9.373 24.569 0 33.941l-22.667 22.667c-9.357 9.357-24.522 9.375-33.901.04L224 227.495 69.255 381.516c-9.379 9.335-24.544 9.317-33.901-.04l-22.667-22.667c-9.373-9.373-9.373-24.569 0-33.941L207.03 130.525c9.372-9.373 24.568-9.373 33.941-.001z"
1760
- />
1761
- </symbol>
1762
- <symbol viewBox="0 0 512 512" id="icon-circle">
1763
- <path
1764
- d="M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8z"
1765
- />
1766
- </symbol>
1767
- <symbol viewBox="0 0 512 512" id="icon-circle-check">
1768
- <path
1769
- d="M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm113-303L241 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L335 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z"
1770
- />
1771
- </symbol>
1772
- <symbol viewBox="0 0 512 512" id="icon-circle-notch">
1773
- <path
1774
- d="M288 39.056v16.659c0 10.804 7.281 20.159 17.686 23.066C383.204 100.434 440 171.518 440 256c0 101.689-82.295 184-184 184-101.689 0-184-82.295-184-184 0-84.47 56.786-155.564 134.312-177.219C216.719 75.874 224 66.517 224 55.712V39.064c0-15.709-14.834-27.153-30.046-23.234C86.603 43.482 7.394 141.206 8.003 257.332c.72 137.052 111.477 246.956 248.531 246.667C393.255 503.711 504 392.788 504 256c0-115.633-79.14-212.779-186.211-240.236C302.678 11.889 288 23.456 288 39.056z"
1775
- />
1776
- </symbol>
1777
- <symbol viewBox="0 0 640 512" id="icon-cogs">
1778
- <path
1779
- d="m512.1 191-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0L552 6.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zm-10.5-58.8c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.7-82.4 14.3-52.8 52.8zM386.3 286.1l33.7 16.8c10.1 5.8 14.5 18.1 10.5 29.1-8.9 24.2-26.4 46.4-42.6 65.8-7.4 8.9-20.2 11.1-30.3 5.3l-29.1-16.8c-16 13.7-34.6 24.6-54.9 31.7v33.6c0 11.6-8.3 21.6-19.7 23.6-24.6 4.2-50.4 4.4-75.9 0-11.5-2-20-11.9-20-23.6V418c-20.3-7.2-38.9-18-54.9-31.7L74 403c-10 5.8-22.9 3.6-30.3-5.3-16.2-19.4-33.3-41.6-42.2-65.7-4-10.9.4-23.2 10.5-29.1l33.3-16.8c-3.9-20.9-3.9-42.4 0-63.4L12 205.8c-10.1-5.8-14.6-18.1-10.5-29 8.9-24.2 26-46.4 42.2-65.8 7.4-8.9 20.2-11.1 30.3-5.3l29.1 16.8c16-13.7 34.6-24.6 54.9-31.7V57.1c0-11.5 8.2-21.5 19.6-23.5 24.6-4.2 50.5-4.4 76-.1 11.5 2 20 11.9 20 23.6v33.6c20.3 7.2 38.9 18 54.9 31.7l29.1-16.8c10-5.8 22.9-3.6 30.3 5.3 16.2 19.4 33.2 41.6 42.1 65.8 4 10.9.1 23.2-10 29.1l-33.7 16.8c3.9 21 3.9 42.5 0 63.5zm-117.6 21.1c59.2-77-28.7-164.9-105.7-105.7-59.2 77 28.7 164.9 105.7 105.7zm243.4 182.7-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0l8.2-14.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zM501.6 431c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.6-82.4 14.3-52.8 52.8z"
1780
- />
1781
- </symbol>
1782
- <symbol viewBox="0 0 576 512" id="icon-comments">
1783
- <path
1784
- d="M416 192c0-88.4-93.1-160-208-160S0 103.6 0 192c0 34.3 14.1 65.9 38 92-13.4 30.2-35.5 54.2-35.8 54.5-2.2 2.3-2.8 5.7-1.5 8.7S4.8 352 8 352c36.6 0 66.9-12.3 88.7-25 32.2 15.7 70.3 25 111.3 25 114.9 0 208-71.6 208-160zm122 220c23.9-26 38-57.7 38-92 0-66.9-53.5-124.2-129.3-148.1.9 6.6 1.3 13.3 1.3 20.1 0 105.9-107.7 192-240 192-10.8 0-21.3-.8-31.7-1.9C207.8 439.6 281.8 480 368 480c41 0 79.1-9.2 111.3-25 21.8 12.7 52.1 25 88.7 25 3.2 0 6.1-1.9 7.3-4.8 1.3-2.9.7-6.3-1.5-8.7-.3-.3-22.4-24.2-35.8-54.5z"
1785
- />
1786
- </symbol>
1787
- <symbol viewBox="0 0 640 512" id="icon-contract">
1788
- <path
1789
- d="m519.2 127.9-47.6-47.6A56.252 56.252 0 0 0 432 64H205.2c-14.8 0-29.1 5.9-39.6 16.3L118 127.9H0v255.7h64c17.6 0 31.8-14.2 31.9-31.7h9.1l84.6 76.4c30.9 25.1 73.8 25.7 105.6 3.8 12.5 10.8 26 15.9 41.1 15.9 18.2 0 35.3-7.4 48.8-24 22.1 8.7 48.2 2.6 64-16.8l26.2-32.3c5.6-6.9 9.1-14.8 10.9-23h57.9c.1 17.5 14.4 31.7 31.9 31.7h64V127.9H519.2zM48 351.6c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16c0 8.9-7.2 16-16 16zm390-6.9-26.1 32.2c-2.8 3.4-7.8 4-11.3 1.2l-23.9-19.4-30 36.5c-6 7.3-15 4.8-18 2.4l-36.8-31.5-15.6 19.2c-13.9 17.1-39.2 19.7-55.3 6.6l-97.3-88H96V175.8h41.9l61.7-61.6c2-.8 3.7-1.5 5.7-2.3H262l-38.7 35.5c-29.4 26.9-31.1 72.3-4.4 101.3 14.8 16.2 61.2 41.2 101.5 4.4l8.2-7.5 108.2 87.8c3.4 2.8 3.9 7.9 1.2 11.3zm106-40.8h-69.2c-2.3-2.8-4.9-5.4-7.7-7.7l-102.7-83.4 12.5-11.4c6.5-6 7-16.1 1-22.6L367 167.1c-6-6.5-16.1-6.9-22.6-1l-55.2 50.6c-9.5 8.7-25.7 9.4-34.6 0-9.3-9.9-8.5-25.1 1.2-33.9l65.6-60.1c7.4-6.8 17-10.5 27-10.5l83.7-.2c2.1 0 4.1.8 5.5 2.3l61.7 61.6H544v128zm48 47.7c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16c0 8.9-7.2 16-16 16z"
1790
- />
1791
- </symbol>
1792
- <symbol viewBox="0 0 24 24" id="icon-crossplay">
1793
- <path
1794
- d="M10.762 3.098c-1.124.118-2.38.62-3.623 1.449C5.972 5.32 4.9 6.28 3.01 8.255c-1.364 1.42-1.598 1.701-1.86 2.25-.277.58-.361 1.003-.37 1.762 0 .361.013.68.032.699.019.023.712-.638 1.533-1.458l1.5-1.5v1.828L2.32 13.359.797 14.883l.01 1.256.013 1.252 3.985-3.966c2.193-2.18 4.153-4.097 4.36-4.26.735-.577 1.424-.93 2.165-1.107.567-.136 1.383-.108 1.865.06 1.557.554 2.663 1.913 2.817 3.465.02.178.043.323.061.323.014 0 .32-.29.675-.647l.643-.642v-.262c0-.572-.3-1.35-.76-1.974-.75-1.017-2.151-1.86-3.6-2.175-.614-.131-1.617-.112-2.208.042-1.5.394-2.63 1.163-4.434 3.024l-.712.736-.005-.919V8.17l.375-.45C7.12 6.436 8.634 5.4 10.03 5.002c.746-.216 1.29-.282 2.147-.258a7.312 7.312 0 0 1 3.211.815c1.425.718 2.658 1.932 3.22 3.178.211.465.253.375.22-.496-.023-.816-.107-1.172-.412-1.805-.736-1.533-2.54-2.78-4.612-3.197a11.417 11.417 0 0 0-3.043-.14Z"
1795
- />
1796
- <path
1797
- d="M19.148 10.575c-2.189 2.18-4.153 4.097-4.359 4.26-.736.577-1.425.93-2.166 1.107-.567.136-1.382.108-1.865-.06-1.556-.554-2.663-1.913-2.817-3.465-.02-.178-.043-.323-.061-.323-.014 0-.32.29-.675.647l-.643.642v.262c0 .572.3 1.35.76 1.974.75 1.017 2.151 1.86 3.6 2.175.614.131 1.617.112 2.208-.042 1.5-.394 2.63-1.163 4.434-3.024l.713-.736.004.919v.919l-.375.45c-1.073 1.284-2.587 2.32-3.984 2.718-.745.216-1.29.282-2.147.258a7.31 7.31 0 0 1-3.21-.815c-1.426-.718-2.659-1.932-3.221-3.178-.211-.465-.253-.376-.22.496.023.816.107 1.172.412 1.805.614 1.275 1.992 2.386 3.652 2.94 1.673.557 3.839.594 5.371.093.563-.183 1.618-.713 2.246-1.134 1.18-.788 2.245-1.744 4.139-3.718 1.364-1.42 1.598-1.701 1.86-2.25.277-.58.362-1.003.371-1.762 0-.361-.014-.68-.033-.699-.019-.023-.712.638-1.533 1.458l-1.5 1.5v-1.828l1.524-1.523 1.523-1.524-.01-1.256-.013-1.252Z"
1798
- />
1799
- </symbol>
1800
- <symbol viewBox="0 0 24 24" id="icon-crossplay-warn">
1801
- <g clip-path="url(#icon-crossplay-warn_a)">
1802
- <path
1803
- d="M10.762 3.098c-1.124.118-2.38.62-3.623 1.449C5.972 5.32 4.9 6.28 3.01 8.255c-1.364 1.42-1.598 1.701-1.86 2.25-.277.58-.361 1.003-.37 1.762 0 .361.013.68.032.699.019.023.712-.638 1.533-1.458l1.5-1.5v1.828L2.32 13.359.797 14.883l.01 1.256.013 1.252 3.985-3.966c2.193-2.18 4.153-4.097 4.36-4.26.735-.577 1.424-.93 2.165-1.107.567-.136 1.383-.108 1.865.06 1.557.554 2.663 1.913 2.817 3.465.02.178.043.323.061.323.014 0 .32-.29.675-.647l.643-.642v-.262c0-.572-.3-1.35-.76-1.974-.75-1.017-2.151-1.86-3.6-2.175-.614-.131-1.617-.112-2.208.042-1.5.394-2.63 1.163-4.434 3.024l-.712.736-.005-.919V8.17l.375-.45C7.12 6.436 8.634 5.4 10.03 5.002c.746-.216 1.29-.282 2.147-.258a7.312 7.312 0 0 1 3.211.815c1.425.718 2.658 1.932 3.22 3.178.211.465.253.375.22-.496-.023-.816-.107-1.172-.412-1.805-.736-1.533-2.54-2.78-4.612-3.197a11.417 11.417 0 0 0-3.043-.14Z"
1804
- />
1805
- <path
1806
- d="M19.148 10.575c-2.189 2.18-4.153 4.097-4.359 4.26-.736.577-1.425.93-2.166 1.107-.567.136-1.382.108-1.865-.06-1.556-.554-2.663-1.913-2.817-3.465-.02-.178-.043-.323-.061-.323-.014 0-.32.29-.675.647l-.643.642v.262c0 .572.3 1.35.76 1.974.75 1.017 2.151 1.86 3.6 2.175.614.131 1.617.112 2.208-.042 1.5-.394 2.63-1.163 4.434-3.024l.713-.736.004.919v.919l-.375.45c-1.073 1.284-2.587 2.32-3.984 2.718-.745.216-1.29.282-2.147.258a7.31 7.31 0 0 1-3.21-.815c-1.426-.718-2.659-1.932-3.221-3.178-.211-.465-.253-.376-.22.496.023.816.107 1.172.412 1.805.614 1.275 1.992 2.386 3.652 2.94 1.673.557 3.839.594 5.371.093.563-.183 1.618-.713 2.246-1.134 1.18-.788 2.245-1.744 4.139-3.718 1.364-1.42 1.598-1.701 1.86-2.25.277-.58.362-1.003.371-1.762 0-.361-.014-.68-.033-.699-.019-.023-.712.638-1.533 1.458l-1.5 1.5v-1.828l1.524-1.523 1.523-1.524-.01-1.256-.013-1.252Z"
1807
- />
1808
- <path
1809
- d="M18.741 12.996a.868.868 0 0 0-.313-.323.836.836 0 0 0-.856 0 .868.868 0 0 0-.313.323l-5.185 9.075c-.345.605.07 1.374.742 1.374h10.368c.672 0 1.087-.77.741-1.374z"
1810
- fill="#fff"
1811
- />
1812
- <path
1813
- d="M18.741 12.996a.868.868 0 0 0-.313-.323.836.836 0 0 0-.856 0 .868.868 0 0 0-.313.323l-5.185 9.075c-.345.605.07 1.374.742 1.374h10.368c.672 0 1.087-.77.741-1.374zM18 15.667c.404 0 .721.36.68.774l-.264 2.728a.434.434 0 0 1-.134.28.411.411 0 0 1-.565 0 .434.434 0 0 1-.133-.28l-.265-2.728a.723.723 0 0 1 .174-.542.685.685 0 0 1 .507-.232zm0 4.667c.2 0 .393.082.535.228a.79.79 0 0 1 .221.55c0 .206-.08.404-.221.55a.746.746 0 0 1-.535.227.746.746 0 0 1-.535-.227.789.789 0 0 1-.22-.55.79.79 0 0 1 .22-.55.746.746 0 0 1 .535-.228z"
1814
- fill="#a52f31"
1815
- />
1816
- </g>
1817
- <defs />
1818
- </symbol>
1819
- <clipPath id="icon-crossplay-warn_a">
1820
- <path fill="#fff" d="M0 0h24v24H0z" />
1821
- </clipPath>
1822
- <symbol viewBox="0 0 512 512" id="icon-cubes">
1823
- <path
1824
- d="M488.6 250.2 392 214V105.5c0-15-9.3-28.4-23.4-33.7l-100-37.5c-8.1-3.1-17.1-3.1-25.3 0l-100 37.5c-14.1 5.3-23.4 18.7-23.4 33.7V214l-96.6 36.2C9.3 255.5 0 268.9 0 283.9V394c0 13.6 7.7 26.1 19.9 32.2l100 50c10.1 5.1 22.1 5.1 32.2 0l103.9-52 103.9 52c10.1 5.1 22.1 5.1 32.2 0l100-50c12.2-6.1 19.9-18.6 19.9-32.2V283.9c0-15-9.3-28.4-23.4-33.7zM358 214.8l-85 31.9v-68.2l85-37v73.3zM154 104.1l102-38.2 102 38.2v.6l-102 41.4-102-41.4v-.6zm84 291.1-85 42.5v-79.1l85-38.8v75.4zm0-112-102 41.4-102-41.4v-.6l102-38.2 102 38.2v.6zm240 112-85 42.5v-79.1l85-38.8v75.4zm0-112-102 41.4-102-41.4v-.6l102-38.2 102 38.2v.6z"
1825
- />
1826
- </symbol>
1827
- <symbol viewBox="0 0 14.021 15.329" id="icon-cyan">
1828
- <path
1829
- d="M14.021 7.959c-.972-1.693-3.793-4.185-3.204-6.465L6.972 0 3.124 1.493C3.714 3.773.972 6.266 0 7.959c1.194 4.657 4.173 6.192 6.973 7.37 2.8-1.178 5.855-2.713 7.048-7.37zM3.127 7.783s1.898-4.066 3.848-5.095c1.95 1.029 3.92 5.095 3.92 5.095-1.4 2.758-3.922 3.62-3.922 3.62s-2.448-.862-3.846-3.62zm6.397-.067A10.821 10.821 0 0 0 6.98 4.397c-1.086.968-1.853 2.053-2.483 3.32.686.98 1.492 1.724 2.48 2.282a7.647 7.647 0 0 0 2.547-2.283z"
1830
- />
1831
- </symbol>
1832
- <symbol viewBox="0 0 940 940" id="icon-cycle-icon">
1833
- <path
1834
- d="M469.594.813c-132.135.23-258.059 56.12-346.873 153.955-31.762-19.523-64.48-37.499-96.83-56.034l29.308 229.293 210.975-88.775-89.528-50.959A407.135 407.135 0 0 1 469.594 63.271 407.135 407.135 0 1 1 62.459 470.406l.02-.406H.014l-.014.406a469.593 469.593 0 1 0 939.188 0A469.593 469.593 0 0 0 469.594.812z"
1835
- />
1836
- </symbol>
1837
- <symbol viewBox="-10 0 522 512" id="icon-dice">
1838
- <path
1839
- d="M20 317q-4 0-4-4V151q0-4 4-5 1 0 2 1l77 45-76 122q-1 4-3 3zm211 88L23 383q-7-1-7-8 0-2 1-4l106-156 108 190zM31 420q0-3 4-4h1l203 22v66q0 7-7 8-2 0-3-1L34 424q-2-2-3-4zm325-213L256 383 156 207h200zm120 208q4 1 4 4 0 2-2 4l-195 87q-1 1-3 1-7 0-8-8v-66l204-22zm19-44q1 2 1 4 0 7-7 8l-208 22 108-190 106 156zm-4-224q4 0 4 4v162q0 4-4 4-2 0-3-2l-76-122 77-45 2-1z"
1840
- fill="currentColor"
1841
- />
1842
- <path
1843
- d="M196.54 20.512q-1-8-8-8-2 0-4 1l-151 98q-2 2-3 4 0 2 2 3l83 49 79-143q2-2 2-4zm58-19q-7 0-13 8l-95 167h218l-95-168q-5-7-15-7zm224 114q0-2-2-4l-151-98q-2-1-4-1-7 0-8 8 0 2 2 4l80 143 81-49q3-1 2-3z"
1844
- fill="currentColor"
1845
- fill-opacity=".75"
1846
- />
1847
- </symbol>
1848
- <symbol viewBox="0 0 71 71" id="icon-discord">
1849
- <path
1850
- d="M60.105 12.928a58.55 58.55 0 0 0-14.452-4.483.22.22 0 0 0-.233.11 40.784 40.784 0 0 0-1.8 3.697c-5.456-.817-10.886-.817-16.23 0-.485-1.164-1.201-2.587-1.828-3.697a.228.228 0 0 0-.233-.11 58.386 58.386 0 0 0-14.451 4.483.207.207 0 0 0-.095.082C1.578 26.76-.944 40.174.293 53.42a.244.244 0 0 0 .093.167c6.073 4.46 11.955 7.167 17.729 8.962a.23.23 0 0 0 .249-.082 42.08 42.08 0 0 0 3.627-5.9.225.225 0 0 0-.123-.312 38.772 38.772 0 0 1-5.539-2.64.228.228 0 0 1-.022-.378 31.17 31.17 0 0 0 1.1-.862.22.22 0 0 1 .23-.03c11.619 5.304 24.198 5.304 35.68 0a.219.219 0 0 1 .233.027c.356.293.728.586 1.103.865a.228.228 0 0 1-.02.378 36.384 36.384 0 0 1-5.54 2.637.227.227 0 0 0-.121.315 47.249 47.249 0 0 0 3.624 5.897.225.225 0 0 0 .249.084c5.801-1.794 11.684-4.502 17.757-8.96a.228.228 0 0 0 .092-.165c1.48-15.315-2.48-28.618-10.497-40.412a.18.18 0 0 0-.093-.084zm-36.38 32.427c-3.497 0-6.38-3.21-6.38-7.156 0-3.944 2.827-7.156 6.38-7.156 3.583 0 6.438 3.24 6.382 7.156 0 3.945-2.827 7.156-6.381 7.156zm23.593 0c-3.498 0-6.38-3.21-6.38-7.156 0-3.944 2.826-7.156 6.38-7.156 3.582 0 6.437 3.24 6.38 7.156 0 3.945-2.798 7.156-6.38 7.156z"
1851
- />
1852
- </symbol>
1853
- <symbol viewBox="0 0 503 523" id="icon-dochPrice">
1854
- <defs />
1855
- <path
1856
- d="m62.572 63.274 2.965-.822-.41 1.084z"
1857
- opacity=".85"
1858
- fill="#171e21"
1859
- fill-opacity=".01"
1860
- stroke="#171ed9"
1861
- stroke-width=".008"
1862
- transform="matrix(30.54912 0 0 33.4782 -1979.787 -2198.975)"
1863
- />
1864
- <path
1865
- d="m66.514 78.982-.005-11.15 13.099.005.01 11.14z"
1866
- opacity=".15"
1867
- fill="#265663"
1868
- stroke="url(#icon-dochPrice_b)"
1869
- stroke-width=".014"
1870
- stroke-opacity=".01"
1871
- transform="matrix(30.54912 0 0 33.4782 -1979.787 -2198.975)"
1872
- />
1873
- <path
1874
- d="M79.374 75.524c.01-.704.018-1.313.023-1.836.026-2.575-.002-3.08-.002-2.657 0 .554.006 2.608-.021 4.493zm-12.64.199c.01-.704.018-1.312.023-1.836.026-2.574-.002-3.079-.002-2.656 0 .553.006 2.608-.021 4.492zm-.063-7.661c.772.01 1.44.016 2.013.02 2.821.025 3.374 0 2.91-.001-.606 0-2.858.005-4.923-.02zm7.699-.064c.772.01 1.44.016 2.013.021 2.821.024 3.374-.002 2.91-.002-.606 0-2.858.005-4.922-.02zm.086 10.781c.772.01 1.439.016 2.012.02 2.822.025 3.375 0 2.911-.001-.606 0-2.858.005-4.923-.02zm-7.752.034c.772.01 1.44.016 2.013.021 2.821.024 3.374-.002 2.91-.002-.606 0-2.858.006-4.923-.02z"
1875
- opacity=".259"
1876
- fill="#4d4d4d"
1877
- fill-opacity=".988"
1878
- stroke="#171e21"
1879
- stroke-width=".345"
1880
- transform="matrix(30.54912 0 0 33.4782 -1979.787 -2198.975)"
1881
- />
1882
- </symbol>
1883
- <linearGradient osb:paint="solid" id="icon-dochPrice_a">
1884
- <stop offset="0" stop-color="#171e21" />
1885
- </linearGradient>
1886
- <linearGradient
1887
- gradientTransform="translate(1.708 2.148)"
1888
- y2="71.258"
1889
- x2="77.916"
1890
- y1="71.258"
1891
- x1="64.794"
1892
- gradientUnits="userSpaceOnUse"
1893
- id="icon-dochPrice_b"
1894
- xlink:href="#icon-dochPrice_a"
1895
- />
1896
- <symbol viewBox="0 0 512 512" id="icon-dot-circle">
1897
- <path
1898
- d="M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm80 248c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80z"
1899
- />
1900
- </symbol>
1901
- <symbol viewBox="0 0 18.231 22.384" id="icon-ducats">
1902
- <path
1903
- d="m7.986.006-.275.363H4.737l2.606 4.189-.008 13.603 1.762 3.268 1.762-3.268-.008-13.603L13.457.369h-2.973l-.276-.363H7.986zM4.805 1.522c-.887.528-1.917 1.425-2.571 2.225l2.232 1.138c.4-.42 1.149-.981 1.646-1.277L4.805 1.522zm8.584 0-1.307 2.086c.497.296 1.246.856 1.646 1.277l2.232-1.138c-.654-.8-1.684-1.697-2.57-2.225zM.542 3.497l2.5 4.46v9.41l2.353.378.017-11.763-4.87-2.485zm17.11 0-4.87 2.485.017 11.763 2.353-.379v-9.41l2.5-4.459zM1.057 5.52C.598 6.61.346 8.06.346 9.321c0 2.25.812 4.303 2.15 5.877l.02-7.08L1.057 5.52zm16.08 0-1.459 2.597.02 7.081a9.046 9.046 0 0 0 2.15-5.877c0-1.26-.252-2.712-.711-3.8zm-11.23 8.93v3.103c.274.167.575.323.909.454V14.45c-.312.01-.696-.008-.91 0zm5.472 0v3.557a5.94 5.94 0 0 0 .91-.454v-3.104c-.215-.008-.599.01-.91 0zM3.04 18.006 5.396 22.4v-4.026l-2.356-.368zm12.114 0-2.355.368V22.4l2.355-4.394z"
1904
- paint-order="markers stroke fill"
1905
- />
1906
- </symbol>
1907
- <symbol viewBox="0 0 576 512" id="icon-edit">
1908
- <path
1909
- d="m402.3 344.9 32-32c5-5 13.7-1.5 13.7 5.7V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h273.5c7.1 0 10.7 8.6 5.7 13.7l-32 32c-1.5 1.5-3.5 2.3-5.7 2.3H48v352h352V350.5c0-2.1.8-4.1 2.3-5.6zm156.6-201.8L296.3 405.7l-90.4 10c-26.2 2.9-48.5-19.2-45.6-45.6l10-90.4L432.9 17.1c22.9-22.9 59.9-22.9 82.7 0l43.2 43.2c22.9 22.9 22.9 60 .1 82.8zM460.1 174 402 115.9 216.2 301.8l-7.3 65.3 65.3-7.3L460.1 174zm64.8-79.7-43.2-43.2c-4.1-4.1-10.8-4.1-14.8 0L436 82l58.1 58.1 30.9-30.9c4-4.2 4-10.8-.1-14.9z"
1910
- />
1911
- </symbol>
1912
- <symbol viewBox="0 0 512 512" id="icon-ellipsis-h">
1913
- <path
1914
- d="M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z"
1915
- />
1916
- </symbol>
1917
- <symbol viewBox="0 0 256 251.342" id="icon-endo">
1918
- <path
1919
- style="
1920
- display: inline;
1921
- opacity: 1;
1922
- fill-opacity: 1;
1923
- stroke: none;
1924
- stroke-width: 0.785732;
1925
- stroke-dasharray: none;
1926
- stroke-opacity: 1;
1927
- "
1928
- d="M127.322 0C65.442.142 13.79 45.301 7.982 106.908l3.266-2.563 18.698-2.582c8.011-47.544 49.162-80.406 97.376-80.442h1.356c48.214.036 89.365 32.898 97.376 80.442l18.698 2.582 3.265 2.563C242.21 45.301 190.557.142 128.678 0Zm-.035 47.06c-32.405.03-60.827 21.633-69.53 52.847l.023-.003v3.347h14.186v-5.306l17.076-2.676c11.52-12.664 18.687-20.448 38.959-20.53 20.271.082 27.436 7.866 38.957 20.53l17.076 2.676v5.306h14.186v-3.347l.023.003c-8.703-31.214-37.125-52.817-69.53-52.846ZM128 84.513c-18.59.058-28.32 13.998-28.32 13.998l14.377.104-14.374 8.299H75.715l-37.213.01-24.361 3.365L0 121.395l26.828 11.82 70.13 3.585a35.294 35.294 0 0 0 12.581 13.113l6.143 69.327L128 251.342l12.317-32.102 6.143-69.327a35.295 35.295 0 0 0 12.581-13.113l70.13-3.585L256 121.395l-14.14-11.107-24.362-3.365-37.213-.01h-23.969l-14.373-8.299 14.376-.104s-9.729-13.94-28.318-13.998zm0 19.427c8.8.082 15.913 7.226 15.914 16.045 0 8.82-7.115 15.963-15.914 16.046-8.8-.083-15.915-7.227-15.915-16.046 0-8.819 7.115-15.963 15.915-16.045zM25.496 117.625h16.915c4.634.004 4.634 6.484 0 6.484H25.496c-4.634 0-4.634-6.484 0-6.484zm31.445 0h5.376c4.635.004 4.635 6.487 0 6.484h-5.376c-4.635-.004-4.635-6.488 0-6.484zm19.972 0h5.377c4.634.004 4.634 6.487 0 6.484h-5.377c-4.635-.004-4.635-6.488 0-6.484zm96.797 0h5.377c4.634-.004 4.634 6.48 0 6.484h-5.377c-4.635.004-4.635-6.48 0-6.484zm19.973 0h5.378c4.635-.004 4.635 6.48 0 6.484h-5.378c-4.635.004-4.635-6.48 0-6.484zm19.906 0h16.915c4.634 0 4.634 6.484 0 6.484h-16.915c-4.634 0-4.634-6.48 0-6.484zm-116.761.026h5.376c4.635.004 4.635 6.487 0 6.484h-5.376c-4.635-.004-4.635-6.488 0-6.484zm56.968 0h5.376c4.635-.004 4.635 6.48 0 6.484h-5.376c-4.635.004-4.635-6.48 0-6.484zM7.808 132.014c4.531 59.23 52.241 103.835 111.479 108.229l-9.88-20.952-9.918-21.851-7.229.14-6.56 6.127 17.64 25.85-21.698-22.127c-26.292-13.768-45.539-35.888-51.267-66.031l-1.433-.074zm240.384 0-21.134 9.311-1.433.074c-5.728 30.143-24.975 52.263-51.267 66.03l-21.698 22.128 17.64-25.85-6.56-6.126-7.23-.141-9.917 21.85-9.88 20.953c59.237-4.395 106.948-48.998 111.479-108.23zm-190.283 6.823c6.87 23.077 27.875 47.583 50.865 54.739l-2.3-25.03c-11.001-5.613-22.351-17.148-27.256-28.484Zm140.182 0-21.309 1.225c-4.905 11.336-16.255 22.871-27.257 28.485l-2.3 25.029c22.991-7.156 43.997-31.662 50.866-54.74zm-76.686 20.178H134.595s-.313 3.032-1.503 4.052c-1.189 1.02-5.091 1.022-5.091 1.022s-3.904-.002-5.093-1.022c-1.19-1.02-1.503-4.052-1.503-4.052zm-.037 19.701h13.264s.287 5.746-1.126 7.473c-1.413 1.726-5.505 1.992-5.505 1.992s-4.094-.266-5.507-1.992c-1.413-1.727-1.126-7.473-1.126-7.473zm.118 24.293H134.514s-.644 5.267-1.933 6.897c-1.267 1.602-4.467 2.517-4.58 2.55-.114-.033-3.315-.948-4.582-2.55-1.289-1.63-1.933-6.897-1.933-6.897z"
1929
- />
1930
- <path
1931
- style="display: inline; opacity: 0.75; stroke-width: 0.799524"
1932
- d="m99.685 98.435-23.498 3.417.049 5.238 23.452-.006 14.504-8.542zm56.63 0-14.507.107 14.504 8.542 23.454.006.047-5.238zm-76.94 43.87c3.308 10.97 13.424 22.62 24.495 26.022l-1.108-11.899c-5.298-2.668-10.763-8.153-13.125-13.542zm97.25 0-10.262.581c-2.362 5.39-7.827 10.874-13.125 13.542l-1.106 11.9c11.07-3.402 21.185-15.053 24.492-26.024zM85.7 203.706l-4.06 3.723 21.699 22.127zm84.598 0-17.639 25.85 21.698-22.127z"
1933
- />
1934
- </symbol>
1935
- <symbol viewBox="0 0 512 512" id="icon-envelope">
1936
- <path
1937
- d="M502.3 190.8c3.9-3.1 9.7-.2 9.7 4.7V400c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V195.6c0-5 5.7-7.8 9.7-4.7 22.4 17.4 52.1 39.5 154.1 113.6 21.1 15.4 56.7 47.8 92.2 47.6 35.7.3 72-32.8 92.3-47.6 102-74.1 131.6-96.3 154-113.7zM256 320c23.2.4 56.6-29.2 73.4-41.4 132.7-96.3 142.8-104.7 173.4-128.7 5.8-4.5 9.2-11.5 9.2-18.9v-19c0-26.5-21.5-48-48-48H48C21.5 64 0 85.5 0 112v19c0 7.4 3.4 14.3 9.2 18.9 30.6 23.9 40.7 32.4 173.4 128.7 16.8 12.2 50.2 41.8 73.4 41.4z"
1938
- />
1939
- </symbol>
1940
- <symbol viewBox="0 0 512 512" id="icon-exchange-alt">
1941
- <path
1942
- d="M0 168v-16c0-13.255 10.745-24 24-24h360V80c0-21.367 25.899-32.042 40.971-16.971l80 80c9.372 9.373 9.372 24.569 0 33.941l-80 80C409.956 271.982 384 261.456 384 240v-48H24c-13.255 0-24-10.745-24-24zm488 152H128v-48c0-21.314-25.862-32.08-40.971-16.971l-80 80c-9.372 9.373-9.372 24.569 0 33.941l80 80C102.057 463.997 128 453.437 128 432v-48h360c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24z"
1943
- />
1944
- </symbol>
1945
- <symbol viewBox="0 0 576 512" id="icon-eye">
1946
- <path
1947
- d="M569.354 231.631C512.97 135.949 407.81 72 288 72 168.14 72 63.004 135.994 6.646 231.631a47.999 47.999 0 0 0 0 48.739C63.031 376.051 168.19 440 288 440c119.86 0 224.996-63.994 281.354-159.631a47.997 47.997 0 0 0 0-48.738zM288 392c-102.556 0-192.091-54.701-240-136 44.157-74.933 123.677-127.27 216.162-135.007C273.958 131.078 280 144.83 280 160c0 30.928-25.072 56-56 56s-56-25.072-56-56l.001-.042C157.794 179.043 152 200.844 152 224c0 75.111 60.889 136 136 136s136-60.889 136-136c0-31.031-10.4-59.629-27.895-82.515C451.704 164.638 498.009 205.106 528 256c-47.908 81.299-137.444 136-240 136z"
1948
- />
1949
- </symbol>
1950
- <symbol viewBox="0 0 576 512" id="icon-eye-slash">
1951
- <path
1952
- d="M272.702 359.139c-80.483-9.011-136.212-86.886-116.93-167.042l116.93 167.042zM288 392c-102.556 0-192.092-54.701-240-136 21.755-36.917 52.1-68.342 88.344-91.658l-27.541-39.343C67.001 152.234 31.921 188.741 6.646 231.631a47.999 47.999 0 0 0 0 48.739C63.004 376.006 168.14 440 288 440a332.89 332.89 0 0 0 39.648-2.367l-32.021-45.744A284.16 284.16 0 0 1 288 392zm281.354-111.631c-33.232 56.394-83.421 101.742-143.554 129.492l48.116 68.74c3.801 5.429 2.48 12.912-2.949 16.712L450.23 509.83c-5.429 3.801-12.912 2.48-16.712-2.949L102.084 33.399c-3.801-5.429-2.48-12.912 2.949-16.712L125.77 2.17c5.429-3.801 12.912-2.48 16.712 2.949l55.526 79.325C226.612 76.343 256.808 72 288 72c119.86 0 224.996 63.994 281.354 159.631a48.002 48.002 0 0 1 0 48.738zM528 256c-44.157-74.933-123.677-127.27-216.162-135.007C302.042 131.078 296 144.83 296 160c0 30.928 25.072 56 56 56s56-25.072 56-56l-.001-.042c30.632 57.277 16.739 130.26-36.928 171.719l26.695 38.135C452.626 346.551 498.308 306.386 528 256z"
1953
- />
1954
- </symbol>
1955
- <symbol viewBox="0 0 512 512" id="icon-filter2">
1956
- <path
1957
- d="M24 64h336c10 0 19 6 22 15 4 9 2 19-5 26L256 226v198c0 10-6 19-15 22-9 4-19 2-26-5l-80-80c-4-4-7-10-7-17V226L7 105c-7-7-9-17-5-26s12-15 22-15Zm145 135c5 5 7 11 7 17v118l32 32V216c0-6 3-12 7-17l87-87H82ZM472 64h48c13 0 24 11 24 24s-11 24-24 24h-48c-13 0-24-11-24-24s11-24 24-24zM344 232h176c13 0 24 11 24 24s-11 24-24 24H344c-13 0-24-11-24-24s11-24 24-24zm0 168h176c13 0 24 11 24 24s-11 24-24 24H344c-13 0-24-11-24-24s11-24 24-24z"
1958
- />
1959
- </symbol>
1960
- <symbol viewBox="0 0 448 512" id="icon-fire-alt">
1961
- <path
1962
- fill="currentColor"
1963
- d="M323.56 51.2c-20.8 19.3-39.58 39.59-56.22 59.97C240.08 73.62 206.28 35.53 168 0 69.74 91.17 0 209.96 0 281.6 0 408.85 100.29 512 224 512s224-103.15 224-230.4c0-53.27-51.98-163.14-124.44-230.4zm-19.47 340.65C282.43 407.01 255.72 416 226.86 416 154.71 416 96 368.26 96 290.75c0-38.61 24.31-72.63 72.79-130.75 6.93 7.98 98.83 125.34 98.83 125.34l58.63-66.88c4.14 6.85 7.91 13.55 11.27 19.97 27.35 52.19 15.81 118.97-33.43 153.42z"
1964
- />
1965
- </symbol>
1966
- <symbol viewBox="0 0 496 512" id="icon-frown">
1967
- <path
1968
- d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-64c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm-80 128c-40.2 0-78 17.7-103.8 48.6-8.5 10.2-7.1 25.3 3.1 33.8 10.2 8.4 25.3 7.1 33.8-3.1 16.6-19.9 41-31.4 66.9-31.4s50.3 11.4 66.9 31.4c8.1 9.7 23.1 11.9 33.8 3.1 10.2-8.5 11.5-23.6 3.1-33.8C326 321.7 288.2 304 248 304z"
1969
- />
1970
- </symbol>
1971
- <symbol viewBox="0 0 1024 1024" id="icon-github">
1972
- <path
1973
- d="M512 13.028C229.345 13.028.407 241.966.407 524.62c0 226.38 146.443 417.588 349.802 485.374 25.58 4.476 35.172-10.871 35.172-24.3 0-12.151-.64-52.439-.64-95.285-128.538 23.661-161.791-31.335-172.023-60.112-5.755-14.708-30.696-60.112-52.438-72.263-17.906-9.592-43.486-33.253-.64-33.893 40.288-.64 69.065 37.09 78.658 52.439 46.043 77.378 119.585 55.635 149.001 42.206 4.477-33.254 17.906-55.636 32.614-68.426-113.83-12.79-232.775-56.914-232.775-252.599 0-55.635 19.825-101.679 52.439-137.49-5.116-12.79-23.022-65.229 5.116-135.573 0 0 42.845-13.429 140.688 52.439 40.927-11.511 84.413-17.267 127.898-17.267s86.97 5.756 127.898 17.267c97.842-66.507 140.688-52.439 140.688-52.439 28.138 70.344 10.232 122.783 5.116 135.573 32.614 35.811 52.439 81.215 52.439 137.49 0 196.324-119.585 239.81-233.415 252.6 18.545 15.987 34.533 46.682 34.533 94.644 0 68.426-.64 123.422-.64 140.688 0 13.43 9.593 29.417 35.172 24.301 202.08-67.786 348.523-259.634 348.523-485.374 0-282.655-228.938-511.593-511.593-511.593z"
1974
- />
1975
- </symbol>
1976
- <symbol viewBox="0 0 384 512" id="icon-hourglass-half">
1977
- <path
1978
- d="M360 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24zm-75.078 384H99.08c17.059-46.797 52.096-80 92.92-80 40.821 0 75.862 33.196 92.922 80zm.019-256H99.078C91.988 108.548 88 86.748 88 64h208c0 22.805-3.987 44.587-11.059 64z"
1979
- />
1980
- </symbol>
1981
- <symbol viewBox="0 0 640 512" id="icon-infinity">
1982
- <path
1983
- d="M471.1 96C405 96 353.3 137.3 320 174.6 286.7 137.3 235 96 168.9 96 75.8 96 0 167.8 0 256s75.8 160 168.9 160c66.1 0 117.8-41.3 151.1-78.6 33.3 37.3 85 78.6 151.1 78.6 93.1 0 168.9-71.8 168.9-160S564.2 96 471.1 96zM168.9 320c-40.2 0-72.9-28.7-72.9-64s32.7-64 72.9-64c38.2 0 73.4 36.1 94 64-20.4 27.6-55.9 64-94 64zm302.2 0c-38.2 0-73.4-36.1-94-64 20.4-27.6 55.9-64 94-64 40.2 0 72.9 28.7 72.9 64s-32.7 64-72.9 64z"
1984
- />
1985
- </symbol>
1986
- <symbol viewBox="0 0 512 512" id="icon-info">
1987
- <path
1988
- d="M256 40c118.621 0 216 96.075 216 216 0 119.291-96.61 216-216 216-119.244 0-216-96.562-216-216 0-119.203 96.602-216 216-216m0-32C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm-36 344h12V232h-12c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h48c6.627 0 12 5.373 12 12v140h12c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12h-72c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12zm36-240c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32z"
1989
- />
1990
- </symbol>
1991
- <symbol viewBox="0 0 512 512" id="icon-link">
1992
- <path
1993
- d="M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z"
1994
- />
1995
- </symbol>
1996
- <symbol viewBox="0 0 16.267 16.491" id="icon-madurai">
1997
- <path
1998
- d="M1.694 16.491c2.23-6.227 5.77-7.546 8.965-10.499.951-.88 3.086-2.097 4.85-2.429-.685-.632-1.147-.878-1.782-1.182-.778-.408-1.376-.255-2.676 1.188-1.155 1.317-5.634 4.724-6.369 4.886-.6-1.235.772-5.57.975-8.455 0 0-3.164 2.749-5.657 2.557 0 0 2.429.895 2.557 1.917z"
1999
- />
2000
- </symbol>
2001
- <symbol viewBox="0 0 400 423" id="icon-medianPrice">
2002
- <path
2003
- d="m162.531 374.211-.905-319.596 70.517-.147 1.118 319.744z"
2004
- fill="#5a95ff"
2005
- />
2006
- </symbol>
2007
- <symbol viewBox="0 0 496 512" id="icon-meh">
2008
- <path
2009
- d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-64c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm8 144H160c-13.2 0-24 10.8-24 24s10.8 24 24 24h176c13.2 0 24-10.8 24-24s-10.8-24-24-24z"
2010
- />
2011
- </symbol>
2012
- <symbol viewBox="0 0 18 18" id="icon-naramon">
2013
- <path
2014
- d="M2.096 13.26c-.135-1.702-.278-3.405-1.943-5.401l14.824-.226c1.105-.706.837-2.893.837-2.893.475 2.041.346 4.33 2.033 5.876l-14.576.045c-.726.484-1.175 2.599-1.175 2.599z"
2015
- />
2016
- </symbol>
2017
- <symbol viewBox="0 0 448 512" id="icon-paste">
2018
- <path
2019
- d="M128 184c0-30.879 25.122-56 56-56h136V56c0-13.255-10.745-24-24-24h-80.61C204.306 12.89 183.637 0 160 0s-44.306 12.89-55.39 32H24C10.745 32 0 42.745 0 56v336c0 13.255 10.745 24 24 24h104V184zm32-144c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24zm184 248h104v200c0 13.255-10.745 24-24 24H184c-13.255 0-24-10.745-24-24V184c0-13.255 10.745-24 24-24h136v104c0 13.2 10.8 24 24 24zm104-38.059V256h-96v-96h6.059a24 24 0 0 1 16.97 7.029l65.941 65.941a24.002 24.002 0 0 1 7.03 16.971z"
2020
- />
2021
- </symbol>
2022
- <symbol viewBox="0 0 1024 1024" id="icon-patreon">
2023
- <path
2024
- d="M137.741 725.75c1.5-266.734 1.784-274.433 11.392-308.99 23.796-85.581 79.183-167.291 142.612-210.392 72.468-49.243 140.233-70.911 221.774-70.911 165.476 0 306.731 100.693 358.349 255.448 72.925 218.636-64.099 445.36-295.631 489.159-32.01 6.055-121.217 3.042-150.485-5.083l-18.827-5.227v-81.415c0-44.779.498-81.414 1.108-81.413s12.072 4.209 25.472 9.35c55.969 21.472 122.821 18.874 174.984-6.801 41.045-20.203 65.707-42.046 90.702-80.335 29.938-45.86 36.874-71.683 34.883-129.857-1.52-44.41-2.761-49.999-17.913-80.657-34.942-70.7-97.786-118.015-171.229-128.915-87.002-12.913-172.325 28.33-219.124 105.918-33.246 55.119-31.703 39.4-33.12 337.377l-1.272 267.515 145.246-2.37c143.004-2.334 146.034-2.574 196.28-15.553 173.31-44.768 304.422-174.39 353.036-349.024 11.417-41.014 12.246-49.68 12.054-125.998-.177-70.118-1.597-86.964-9.834-116.642-26-93.682-65.87-161.534-135.816-231.14-36.62-36.442-53.216-49.156-93.275-71.46-90.78-50.542-143.996-64.706-243.648-64.849-62.259-.09-76.537 1.328-117.394 11.65-82.493 20.841-170.399 70.213-225.413 126.602-58.491 59.953-98.831 125.916-122.085 199.632-22.794 72.255-24.565 99.609-24.593 379.888l-.028 258.045h110.255l1.538-273.55z"
2025
- />
2026
- </symbol>
2027
- <symbol viewBox="0 0 24 24" id="icon-platform-mobile">
2028
- <path
2029
- d="M5.75 4.5A2.5 2.5 0 0 1 8.25 2h7.5a2.5 2.5 0 0 1 2.5 2.5v15a2.5 2.5 0 0 1-2.5 2.5h-7.5a2.5 2.5 0 0 1-2.5-2.5Zm7.5 13.75a1.25 1.25 0 1 0-2.5 0 1.25 1.25 0 0 0 2.5 0Z"
2030
- />
2031
- </symbol>
2032
- <symbol viewBox="0 0 24 24" id="icon-platform-pc">
2033
- <path
2034
- d="M2 12v8.66h4.312v-5.815l1.197.01 1.197.012 1.368-1.368 1.368-1.368v-6.06l-1.368-1.368L8.709 3.34H2Zm5.018-2.855v2.279l-.353-.011-.353-.011V6.87h.706zm6.407-4.435-1.35 1.361v11.895l1.35 1.35 1.345 1.345h4.498l1.368-1.364L22 17.932V13.19l-2.256.007-2.26.011-.012 1.978-.007 1.98h-.669V6.908h.669v3.272H22V8.097c0-1.513-.011-2.082-.041-2.082-.022 0-.643-.602-1.379-1.338L19.242 3.34l-2.234.008-2.238.003Z"
2035
- />
2036
- </symbol>
2037
- <symbol viewBox="0 0 24 24" id="icon-platform-ps">
2038
- <path
2039
- d="M9.218 3s.008 6.318.035 6.445l-.02 9.866L12.8 20.5l.007-13.452c0-1.207.432-1.302.824-1.146.376.15.609.557.607 1.176l.008 5.67c.28.195 1.213.433 1.624.42.146-.003 2.603.153 2.342-4.011-.127-2.027-.728-3.269-2.788-4.269-1.43-.694-4.873-1.64-6.206-1.888Zm-.699 9.877-5.743 2.131c-2.19.783-2.322 1.977-.578 2.723 3.168 1.274 6.324.545 6.324.545l-.005-1.895c.02-.017-1.747.773-2.67.847-1.284.102-1.554-.215-1.572-.372-.029-.253.406-.436.507-.472l3.745-1.373zm8.853.915c-1.577.022-2.724.399-3.88.729l.019 2.212 4.073-1.463c.53-.19 2.104-.276 2.232.209.078.295-.256.42-.524.518l-5.8 2.118.015 2.131 7.837-2.89c.48-.177 1.679-.726 1.656-1.55-.028-.986-2.27-1.68-3.892-1.901-.637-.087-1.21-.12-1.736-.113z"
2040
- />
2041
- </symbol>
2042
- <symbol viewBox="0 0 24 24" id="icon-platform-switch">
2043
- <path
2044
- d="M5.8 8.4v.001a1.703 1.703 0 0 0 1.697 1.696c.934 0 1.697-.764 1.697-1.697S8.43 6.704 7.497 6.704A1.7 1.7 0 0 0 5.8 8.4z"
2045
- />
2046
- <path
2047
- d="M11.54 3H7.61A4.61 4.61 0 0 0 3 7.61v8.766a4.61 4.61 0 0 0 4.61 4.611h3.93a.127.127 0 0 0 .128-.127V3.127c.014-.07-.043-.127-.128-.127Zm-1.315 16.544H7.61a3.088 3.088 0 0 1-2.235-.934 3.149 3.149 0 0 1-.933-2.234V7.61a3.09 3.09 0 0 1 .933-2.235 3.152 3.152 0 0 1 2.235-.933h2.615Zm9.425-15.18a4.609 4.609 0 0 0-3.26-1.35h-2.785a.111.111 0 0 0-.113.113v17.746c-.014.07.042.127.127.127h2.77A4.61 4.61 0 0 0 21 16.39V7.624a4.61 4.61 0 0 0-1.35-3.26zm-2.61 10.358a1.828 1.828 0 0 1-1.823-1.824c0-1.004.82-1.824 1.824-1.824s1.824.82 1.824 1.824-.82 1.824-1.824 1.824z"
2048
- />
2049
- </symbol>
2050
- <symbol viewBox="0 0 24 24" id="icon-platform-xbox">
2051
- <path
2052
- d="M11.007 21.959a9.984 9.984 0 0 1-4.44-1.574c-1.123-.732-1.377-1.033-1.377-1.634 0-1.206 1.328-3.32 3.599-5.729 1.289-1.368 3.085-2.971 3.28-2.928.377.085 3.397 3.028 4.528 4.414 1.787 2.191 2.609 3.986 2.191 4.786-.317.608-2.286 1.796-3.733 2.253-1.192.376-2.758.535-4.048.412zm-7.333-4.462c-.933-1.43-1.405-2.84-1.632-4.876-.075-.673-.049-1.057.17-2.438.273-1.72 1.253-3.71 2.432-4.935.501-.52.546-.534 1.158-.327.741.25 1.534.798 2.764 1.91l.718.648-.393.481c-1.82 2.233-3.74 5.4-4.463 7.358-.393 1.064-.55 2.133-.381 2.578.114.3.01.188-.374-.399zm16.377.243c.092-.45-.025-1.275-.298-2.109-.591-1.804-2.57-5.16-4.386-7.441l-.571-.719.618-.567c.808-.741 1.369-1.185 1.974-1.562.477-.298 1.16-.56 1.453-.56.18 0 .817.661 1.33 1.382.797 1.115 1.382 2.47 1.679 3.877.191.91.208 2.858.03 3.766a12.033 12.033 0 0 1-.75 2.367c-.226.49-.781 1.444-1.025 1.755-.126.16-.126.159-.056-.185zm-8.88-13.3c-.837-.425-2.13-.881-2.844-1.004a5.194 5.194 0 0 0-.949-.054c-.59.03-.563 0 .382-.447a9.722 9.722 0 0 1 2.332-.776c1-.21 2.882-.212 3.867-.005 1.063.224 2.316.69 3.022 1.125l.21.128-.481-.024c-.957-.048-2.351.338-3.848 1.066-.452.22-.844.395-.873.39a15.893 15.893 0 0 1-.818-.398Z"
2053
- />
2054
- </symbol>
2055
- <symbol viewBox="0 0 215.535 215.535" id="icon-platinum">
2056
- <path
2057
- d="M105.563 0c-32.088 0-56.76 18.984-56.76 18.984l8.052 7.096-15.052 16.395-15.916 13.998-6.903-7.67S0 74.875 0 109.973c0 32.087 18.984 56.761 18.984 56.761l7.096-8.054 16.395 15.052 13.998 15.916-7.67 6.905s26.072 18.982 61.17 18.982c32.087 0 56.761-18.982 56.761-18.982l-8.054-7.096 15.052-16.396 15.916-13.998 6.905 7.671s18.982-26.074 18.982-61.171c0-32.088-18.982-56.76-18.982-56.76l-7.096 8.052-16.394-15.052-14-15.916 7.671-6.903S140.66 0 105.562 0zm-.192 8.438c28.187.505 46.406 12.464 46.406 12.464l-5.369 5.178 20.326 22.05 22.532 20.999 5.56-5.56s10.93 14.189 12.272 41.802c-.506 28.187-12.463 46.404-12.463 46.404l-5.178-5.369-22.053 20.328-20.996 22.532 5.56 5.56s-14.189 10.93-41.802 12.272c-28.186-.506-46.406-12.463-46.406-12.463l5.369-5.178-20.326-22.053-22.532-20.998-5.56 5.563S9.78 137.777 8.437 110.164C8.943 81.978 20.902 63.76 20.902 63.76l5.178 5.369 22.05-20.326 21-22.533-5.56-5.562s14.187-10.929 41.8-12.27zM71.295 60.467v11.879h9.734v69.62h-9.734v13.231h72.592v-13.23h-9.239V72.346l9.239.144V60.467z"
2058
- fill-rule="evenodd"
2059
- />
2060
- </symbol>
2061
- <symbol viewBox="0 0 448 512" id="icon-plus-square">
2062
- <path
2063
- d="M352 240v32c0 6.6-5.4 12-12 12h-88v88c0 6.6-5.4 12-12 12h-32c-6.6 0-12-5.4-12-12v-88h-88c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h88v-88c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v88h88c6.6 0 12 5.4 12 12zm96-160v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"
2064
- />
2065
- </symbol>
2066
- <symbol
2067
- viewBox="0 0 978 388"
2068
- fill-rule="evenodd"
2069
- stroke-linejoin="round"
2070
- stroke-miterlimit="2"
2071
- id="icon-pwa_logo"
2072
- >
2073
- <path
2074
- d="m719.12 322.11 28.23-71.38h81.503l-38.688-108.283 48.38-122.33L977.1 388H874.92l-23.676-65.89H719.121zm-87.175 45.77L780.27-.002l-98.332.008L580.47 237.74 508.314.005h-75.581L355.264 237.74l-54.639-108.338-49.444 152.33 50.204 86.149h96.774l70.01-213.197 66.744 213.197h97.032zM93.344 241.602h60.57c18.348 0 34.684-2.045 49.013-6.142l15.662-48.254 43.78-134.881a107.213 107.213 0 0 0-11.423-14.996C228.468 12.446 195.578.013 152.284.013H.002v367.884h93.342V241.602zm80.172-156.96c8.782 8.838 13.17 20.668 13.17 35.476 0 14.933-3.863 26.77-11.58 35.522-8.469 9.723-24.052 14.588-46.757 14.588H93.344V71.394h35.264c21.161 0 36.133 4.411 44.908 13.249z"
2075
- fill-opacity=".91"
2076
- fill-rule="nonzero"
2077
- />
2078
- </symbol>
2079
- <symbol viewBox="0 0 1952 734.93" id="icon-pwa_logo_inverse">
2080
- <path
2081
- d="m1436.62 603.304 56.39-142.599h162.82l-77.27-216.315L1675.2 0 1952 734.934h-204.13l-47.3-131.629h-263.95z"
2082
- fill="#FFF"
2083
- />
2084
- <path
2085
- d="M1262.47 734.935 1558.79.002h-196.45l-202.7 474.931L1015.5.003H864.499l-154.768 474.93-109.146-216.416-98.773 304.302 100.284 172.116h193.331l139.857-425.91 133.346 425.91h193.84z"
2086
- fill="#a52f31"
2087
- />
2088
- <path
2089
- d="M186.476 482.643h121.003c36.654 0 69.293-4.091 97.917-12.273l31.293-96.408 87.459-269.446c-6.664-10.563-14.272-20.55-22.824-29.96C456.419 24.853 390.719 0 304.222 0H0v734.933h186.476v-252.29zm160.166-313.564c17.54 17.653 26.309 41.276 26.309 70.871 0 29.822-7.713 53.474-23.138 70.956-16.91 19.425-48.047 29.137-93.409 29.137h-69.928V142.598h70.442c42.277 0 72.185 8.827 89.724 26.481z"
2090
- fill="#FFF"
2091
- />
2092
- </symbol>
2093
- <symbol viewBox="0 0 51.936 53.127" id="icon-qq">
2094
- <path
2095
- d="M50.267 29.674c1.056 2.179 1.833 4.656 1.64 7.586-.077 1.202-.385 2.516-.974 3.326-.3.409-.736.791-1.199.798-.776.014-1.331-.911-1.729-1.508-.473-.708-.83-1.392-1.198-2.085-.478.492-.645 1.208-.887 1.818-.757 1.91-1.812 3.573-3.149 4.924 1.251.725 2.418 1.229 3.504 2.084.668.527 1.552 1.284 1.331 2.529-.147.831-.863 1.532-1.376 1.862-3.574 2.307-11.038 1.969-15.435.533-.854-.28-1.711-.729-2.484-.843-.293-.044-.798-.023-1.109-.045-.448-.03-.947-.116-1.153-.089-.264.036-.492.307-.798.488-1.938 1.145-3.832 1.795-6.743 1.996-3.233.226-6.495-.043-9.003-.843-1.331-.424-3.111-1.291-3.282-2.838-.084-.75.122-1.874.399-2.396.688-1.304 2.242-1.724 4.168-1.907-.071-.333-.533-.547-.843-.8-1.828-1.492-3.261-3.503-4.169-5.987-.145-.399-.201-.849-.443-1.242-.428.314-.477.891-.754 1.331-.559.888-1.453 1.824-2.352 2.262-.33.161-.821.355-1.197.266-.729-.171-.895-1.512-.977-2.438-.302-3.444.698-6.223 1.819-8.384 1.432-2.76 3.478-4.552 5.545-6.254-.577-1.593.107-3.379.842-4.348.028-.728.098-1.399.354-2.04.146-.354.467-.582.533-.887.07-.319-.029-.676 0-1.065.327-4.318 2.986-8.22 5.368-10.6 1.413-1.414 2.668-2.418 4.655-3.327 1.801-.823 4.089-1.3 6.566-1.553h3.236C36.907.748 41.949 4.27 44.321 10.6c.365.972.631 1.96.888 3.016.254 1.044.223 2.32.576 3.415.214.663.766 1.254 1.065 1.953.606 1.412.807 3.406 0 4.789 1.197 1.682 2.382 3.77 3.417 5.901zm-3.328 19.341c.376-2.04-2.059-1.636-3.637-1.73.191-.668 1.122-.592 1.818-.754a4.123 4.123 0 0 0-2.972-1.464c-3.032 2.644-6.568 4.785-11.577 5.456 1.441 1.203 4.591 1.694 7.674 1.817 3.032.121 6.287-.618 7.807-1.907.405-.343.793-.901.887-1.418zm-2.661-10.159c1.104-4.161-.569-7.771-2.262-10.246-5.013 3.403-13.106 6.049-20.804 4.035.045.823.128 1.729.134 2.706.005.971.195 2.061.044 2.883-.117.646-.679 1.299-1.197 1.509-.768.312-1.958.297-2.929.223-1.758-.137-3.261-.984-3.725-2.352-.176-.519-.14-1.181-.179-1.819-.119-2.033.078-3.921.356-5.722a20.458 20.458 0 0 0-2.706-1.597c-1.445 1.452-2.125 5.038-2.04 7.541.021.635.159 1.545.31 2.262.412 1.965 1.507 3.791 2.706 5.19 1.242 1.449 2.606 2.588 4.303 3.592 3.394 2.012 8.088 3.016 12.598 3.062 1.633.016 3.217-.311 4.701-.843 1.508-.542 2.95-1.376 4.259-2.219 1.289-.83 2.639-1.991 3.504-2.972 1.155-1.309 2.39-3.207 2.927-5.233zm-6.653-17.167c.361-.167 1.765-.771 1.73-1.242-.02-.237-.747-.669-1.109-.886-3.768-2.251-9.395-3.03-14.948-2.219-2.127.312-4.053.812-5.811 1.643-.556.262-2.138 1.056-2.085 1.64.021.228.378.505.577.622.864.507 2.262.805 3.238 1.02-.198-.543-.586-.892-.8-1.419 1.998 1.383 4.328 2.877 7.407 3.149 4.613.406 8.113-1.41 10.735-3.149-.25.629-1.129.919-1.287 1.464 1.02-.012 1.607-.278 2.353-.623zm-5.013-4.568c3.081-1.104 3.179-8.305.045-9.492-.281-.106-.839-.111-1.02-.088-1.013.122-1.712.842-2.13 1.553-1.396 2.374-.918 7.275 1.73 8.072.496.149 1.05.071 1.375-.045zm-9.889-.044c2.244.224 3.325-2.575 3.281-4.79-.046-2.284-1.131-4.685-2.972-4.701-1.132-.012-1.932.767-2.395 1.597-1.373 2.454-.784 7.608 2.086 7.894zm-5.858 35.528c3.022-.151 6.146-.59 7.275-2.262-4.633-.55-8.8-1.938-11.933-4.081-.395-.27-1.05-.858-1.374-.931-.07-.016-.221.042-.354.043-1.067.018-1.794.433-2.618.933-.552.336-1.23.853-.797 1.465.491-.026.791-.243 1.374-.179-.568.498-1.555.885-1.774 1.729-.188.73.512 1.346.932 1.642 2.09 1.479 5.7 1.823 9.269 1.641z"
2096
- />
2097
- <path
2098
- d="M41.528 36.549c.038.506-.653.628-.931.312-.854.229-1.98.008-1.775-1.108.18-.976 1.55-1.893 2.219-.977.289.396.189 1.1.397 1.642-.208-.146-.358-.351-.62-.444-.936.278.404 1.491.71.575zm-1.287-.709c.201-.062.223.172.356.044-.182-1.575-1.55.501-.533.576-.017-.283.007-.524.177-.62zm.134.178c-.228-.036-.168.216-.177.399.151-.042.091-.293.177-.399z"
2099
- />
2100
- <path
2101
- d="M40.642 36.417c-.188-.063.003-.296.177-.268-.018.131-.145.152-.177.268zm-1.952.132c.024.477-.659.647-.933.312-.787.158-1.766.092-1.817-.754-.065-1.048 1.341-2.195 2.128-1.465.295.274.419.786.354 1.42.058.105.113.212.179.311-.311 0-.355-.427-.665-.399-.595.051-.187.941.266.931.312-.008.241-.216.488-.356zm-1.287-.709c.173-.035.229.163.354.044-.071-.299-.175-.564-.443-.665-.373.127-.79 1.291-.089 1.198-.06-.217-.005-.482.178-.577zm0 .577c.016-.138.224-.384.045-.444-.082.137-.224.359-.045.444z"
2102
- />
2103
- <path
2104
- d="M37.937 36.106c.122.098-.141.181-.134.311-.217-.092.06-.238.134-.311zm-6.034-25.15c.593.289.962 1.389.62 2.262-.961.134-.553-1.236-1.108-1.331-.612-.102-.519 1.057-.888 1.376-.688-.091-.519-.928-.354-1.419.206-.616.952-1.269 1.73-.888zm-7.541-.488c1.771-.235 1.605 3.937.089 3.858-1.539-.077-1.62-3.654-.089-3.858z"
2105
- />
2106
- </symbol>
2107
- <symbol viewBox="0 0 512 512" id="icon-question-circle-solid">
2108
- <path
2109
- d="M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zM262.655 90c-54.497 0-89.255 22.957-116.549 63.758-3.536 5.286-2.353 12.415 2.715 16.258l34.699 26.31c5.205 3.947 12.621 3.008 16.665-2.122 17.864-22.658 30.113-35.797 57.303-35.797 20.429 0 45.698 13.148 45.698 32.958 0 14.976-12.363 22.667-32.534 33.976C247.128 238.528 216 254.941 216 296v4c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12v-1.333c0-28.462 83.186-29.647 83.186-106.667 0-58.002-60.165-102-116.531-102zM256 338c-25.365 0-46 20.635-46 46 0 25.364 20.635 46 46 46s46-20.636 46-46c0-25.365-20.635-46-46-46z"
2110
- />
2111
- </symbol>
2112
- <symbol viewBox="0 0 512 512" id="icon-search">
2113
- <path
2114
- d="M505 442.7 405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z"
2115
- />
2116
- </symbol>
2117
- <symbol viewBox="0 0 512 512" id="icon-search-plus">
2118
- <path
2119
- d="M304 192v32c0 6.6-5.4 12-12 12h-56v56c0 6.6-5.4 12-12 12h-32c-6.6 0-12-5.4-12-12v-56h-56c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h56v-56c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v56h56c6.6 0 12 5.4 12 12zm201 284.7L476.7 505c-9.4 9.4-24.6 9.4-33.9 0L343 405.3c-4.5-4.5-7-10.6-7-17V372c-35.3 27.6-79.7 44-128 44C93.1 416 0 322.9 0 208S93.1 0 208 0s208 93.1 208 208c0 48.3-16.4 92.7-44 128h16.3c6.4 0 12.5 2.5 17 7l99.7 99.7c9.3 9.4 9.3 24.6 0 34zM344 208c0-75.2-60.8-136-136-136S72 132.8 72 208s60.8 136 136 136 136-60.8 136-136z"
2120
- />
2121
- </symbol>
2122
- <symbol viewBox="0 0 576 512" id="icon-shopping-cart">
2123
- <path
2124
- d="m528.12 301.319 47.273-208C578.806 78.301 567.391 64 551.99 64H159.208l-9.166-44.81C147.758 8.021 137.93 0 126.529 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24h69.883l70.248 343.435C147.325 417.1 136 435.222 136 456c0 30.928 25.072 56 56 56s56-25.072 56-56c0-15.674-6.447-29.835-16.824-40h209.647C430.447 426.165 424 440.326 424 456c0 30.928 25.072 56 56 56s56-25.072 56-56c0-22.172-12.888-41.332-31.579-50.405l5.517-24.276c3.413-15.018-8.002-29.319-23.403-29.319H218.117l-6.545-32h293.145c11.206 0 20.92-7.754 23.403-18.681z"
2125
- />
2126
- </symbol>
2127
- <symbol viewBox="0 0 512 512" id="icon-sign-in-alt">
2128
- <path
2129
- d="M416 448h-84c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h84c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32h-84c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h84c53 0 96 43 96 96v192c0 53-43 96-96 96zm-47-201L201 79c-15-15-41-4.5-41 17v96H24c-13.3 0-24 10.7-24 24v96c0 13.3 10.7 24 24 24h136v96c0 21.5 26 32 41 17l168-168c9.3-9.4 9.3-24.6 0-34z"
2130
- />
2131
- </symbol>
2132
- <symbol viewBox="0 0 512 512" id="icon-sign-out-alt">
2133
- <path
2134
- d="M497 273 329 441c-15 15-41 4.5-41-17v-96H152c-13.3 0-24-10.7-24-24v-96c0-13.3 10.7-24 24-24h136V88c0-21.4 25.9-32 41-17l168 168c9.3 9.4 9.3 24.6 0 34zM192 436v-40c0-6.6-5.4-12-12-12H96c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32h84c6.6 0 12-5.4 12-12V76c0-6.6-5.4-12-12-12H96c-53 0-96 43-96 96v192c0 53 43 96 96 96h84c6.6 0 12-5.4 12-12z"
2135
- />
2136
- </symbol>
2137
- <symbol viewBox="0 0 400 423" id="icon-simpleAvgPrice">
2138
- <path
2139
- d="m162.531 374.211-.905-319.596 70.517-.147 1.118 319.744z"
2140
- fill="#464646"
2141
- />
2142
- </symbol>
2143
- <symbol viewBox="0 0 496 512" id="icon-smile">
2144
- <path
2145
- d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm4 72.6c-20.8 25-51.5 39.4-84 39.4s-63.2-14.3-84-39.4c-8.5-10.2-23.7-11.5-33.8-3.1-10.2 8.5-11.5 23.6-3.1 33.8 30 36 74.1 56.6 120.9 56.6s90.9-20.6 120.9-56.6c8.5-10.2 7.1-25.3-3.1-33.8-10.1-8.4-25.3-7.1-33.8 3.1z"
2146
- />
2147
- </symbol>
2148
- <symbol viewBox="0 0 32 32" id="icon-stack">
2149
- <path
2150
- d="M32 10 16 2 0 10l16 8 16-8zM16 4.655 26.689 10 16 15.345 5.311 10 16 4.655zm12.795 9.743L32 16l-16 8-16-8 3.205-1.602L16 20.796zm0 6L32 22l-16 8-16-8 3.205-1.602L16 26.796z"
2151
- />
2152
- </symbol>
2153
- <symbol viewBox="0 0 448 512" id="icon-steam-square">
2154
- <path
2155
- d="M185.2 356.5c7.7-18.5-1-39.7-19.6-47.4l-29.5-12.2c11.4-4.3 24.3-4.5 36.4.5 12.2 5.1 21.6 14.6 26.7 26.7 5 12.2 5 25.6-.1 37.7-10.5 25.1-39.4 37-64.6 26.5-11.6-4.8-20.4-13.6-25.4-24.2l28.5 11.8c18.6 7.8 39.9-.9 47.6-19.4zM400 32H48C21.5 32 0 53.5 0 80v160.7l116.6 48.1c12-8.2 26.2-12.1 40.7-11.3l55.4-80.2v-1.1c0-48.2 39.3-87.5 87.6-87.5s87.6 39.3 87.6 87.5c0 49.2-40.9 88.7-89.6 87.5l-79 56.3c1.6 38.5-29.1 68.8-65.7 68.8-31.8 0-58.5-22.7-64.5-52.7L0 319.2V432c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-99.7 222.5c-32.2 0-58.4-26.1-58.4-58.3s26.2-58.3 58.4-58.3 58.4 26.2 58.4 58.3-26.2 58.3-58.4 58.3zm.1-14.6c24.2 0 43.9-19.6 43.9-43.8 0-24.2-19.6-43.8-43.9-43.8-24.2 0-43.9 19.6-43.9 43.8 0 24.2 19.7 43.8 43.9 43.8z"
2156
- />
2157
- </symbol>
2158
- <symbol viewBox="0 0 352 512" id="icon-times">
2159
- <path
2160
- d="m242.72 256 100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z"
2161
- />
2162
- </symbol>
2163
- <symbol viewBox="0 0 448 512" id="icon-trash-alt">
2164
- <path
2165
- d="M0 84V56c0-13.3 10.7-24 24-24h112l9.4-18.7c4-8.2 12.3-13.3 21.4-13.3h114.3c9.1 0 17.4 5.1 21.5 13.3L312 32h112c13.3 0 24 10.7 24 24v28c0 6.6-5.4 12-12 12H12C5.4 96 0 90.6 0 84zm416 56v324c0 26.5-21.5 48-48 48H80c-26.5 0-48-21.5-48-48V140c0-6.6 5.4-12 12-12h360c6.6 0 12 5.4 12 12zm-272 68c0-8.8-7.2-16-16-16s-16 7.2-16 16v224c0 8.8 7.2 16 16 16s16-7.2 16-16V208zm96 0c0-8.8-7.2-16-16-16s-16 7.2-16 16v224c0 8.8 7.2 16 16 16s16-7.2 16-16V208zm96 0c0-8.8-7.2-16-16-16s-16 7.2-16 16v224c0 8.8 7.2 16 16 16s16-7.2 16-16V208z"
2166
- />
2167
- </symbol>
2168
- <symbol viewBox="0 0 512 512" id="icon-upload">
2169
- <path
2170
- d="M296 384h-80c-13.3 0-24-10.7-24-24V192h-87.7c-17.8 0-26.7-21.5-14.1-34.1L242.3 5.7c7.5-7.5 19.8-7.5 27.3 0l152.2 152.2c12.6 12.6 3.7 34.1-14.1 34.1H320v168c0 13.3-10.7 24-24 24zm216-8v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h136v8c0 30.9 25.1 56 56 56h80c30.9 0 56-25.1 56-56v-8h136c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z"
2171
- />
2172
- </symbol>
2173
- <symbol viewBox="0 0 448 512" id="icon-user">
2174
- <path
2175
- d="M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z"
2176
- />
2177
- </symbol>
2178
- <symbol viewBox="0 0 13.546 16.345" id="icon-vazarin">
2179
- <path
2180
- d="M0 1.226c5.958 2.784 9.917 8.708 11.277 15.12 1.011-1.734 1.735-3.47 2.192-6.668.349-3.612-.572-7.13-1.043-9.678C11.95 1.529 0 1.226 0 1.226zM7.14 4.87s3.362-.141 4.93-.063c.186 1.331.536 2.41-.233 4.804l-1.525-.03C9.272 7.546 7.14 4.869 7.14 4.869z"
2181
- />
2182
- </symbol>
2183
- <symbol viewBox="0 0 614.156 507.697" id="icon-wifi2">
2184
- <path
2185
- d="M306.719 118.003c-80.452.303-160.77 30.425-222.313 90.281l55.906 55.282c92.257-89.611 240.746-90.142 333.657-1.157l55.781-55.812c-62.01-59.39-142.58-88.897-223.031-88.594M140.312 263.566l-.125.093z"
2186
- />
2187
- <path
2188
- d="M306.594.003C195.649.421 84.87 41.96 0 124.503l55.469 54.844C194.41 44.792 417.73 44.108 557.5 177.972l56.656-55.781C528.642 40.29 417.54-.415 306.594.003M55.469 179.347l-.563.531zm251.406 56.156c-50.088.189-100.122 18.954-138.438 56.219l53.438 52.812c47.181-45.82 123.111-46.068 170.625-.562l53.219-53.313c-38.607-36.975-88.756-55.345-138.844-55.156zm-85 109.031-.063.063z"
2189
- />
2190
- <circle cx="307.078" cy="429.197" r="78.5" />
2191
- </symbol>
2192
- <symbol viewBox="0 0 372.369 372.573" id="icon-xbox">
2193
- <path
2194
- d="M167.618 371.807c-28.683-2.748-57.723-13.049-82.67-29.325-20.904-13.639-25.624-19.245-25.624-30.434 0-22.476 24.712-61.84 66.992-106.716 24.013-25.487 57.46-55.36 61.078-54.55 7.03 1.571 63.25 56.41 84.296 82.224 33.28 40.821 48.58 74.245 40.808 89.147-5.908 11.327-42.572 33.467-69.507 41.972-22.2 7.01-51.356 9.981-75.373 7.681zM31.09 288.68C13.719 262.03 4.943 235.793.705 197.847c-1.4-12.53-.898-19.697 3.177-45.415 5.08-32.054 23.333-69.137 45.268-91.958 9.34-9.72 10.176-9.956 21.563-6.12C84.54 59.012 99.309 69.211 122.21 89.92l13.363 12.083-7.297 8.964c-33.873 41.613-69.63 100.597-83.106 137.09-7.326 19.838-10.28 39.753-7.128 48.043 2.128 5.598.173 3.511-6.953-7.42zm304.915 4.532c1.716-8.377-.454-23.762-5.54-39.28-11.018-33.606-47.84-96.124-81.654-138.63l-10.644-13.38 11.516-10.575c15.036-13.807 25.476-22.074 36.74-29.095 8.889-5.54 21.59-10.444 27.05-10.444 3.367 0 15.218 12.298 24.785 25.72 14.818 20.788 25.718 45.987 31.24 72.22 3.57 16.95 3.867 53.231.576 70.14-2.7 13.875-8.403 31.874-13.966 44.081-4.17 9.147-14.536 26.91-19.08 32.691-2.334 2.972-2.336 2.965-1.023-3.448zM170.69 45.462c-15.601-7.923-39.67-16.427-52.965-18.715-4.66-.803-12.612-1.25-17.67-.995-10.97.554-10.48-.02 7.119-8.333 14.63-6.912 26.834-10.977 43.4-14.455C169.21-.949 204.24-.996 222.58 2.87c19.808 4.174 43.133 12.854 56.276 20.943l3.906 2.404-8.962-.453c-17.81-.9-43.766 6.296-71.633 19.857-8.405 4.09-15.718 7.358-16.25 7.26-.532-.097-7.384-3.436-15.227-7.418z"
2195
- style="stroke: none"
2196
- />
2197
- </symbol>
2198
- </defs>
2199
- </svg>
2200
- `;
2201
- var htmlString = /* @__PURE__ */ (() => {
2202
- const template = `
2203
- <!DOCTYPE html>
2204
- <html>
2205
- <head>
2206
- <meta charset="UTF-8" />
2207
- <title>{{title}}</title>
2208
- <style>{{style}}</style>
2209
- </head>
2210
- <body>
2211
- <div style="display: none;">{{svg}}</div>
2212
- <div id="root">{{htmlString}}</div>
2213
- </body>
2214
- </html>`;
2215
- return (htmlString2, title = "title") => {
2216
- return template.replace("{{htmlString}}", htmlString2).replace("{{title}}", title).replace("{{style}}", style).replace("{{svg}}", svg);
2217
- };
2218
- })();
2219
- var generateImageOutput = /* @__PURE__ */ __name(async (puppe, element) => {
2220
- if (!puppe) {
2221
- return "本功能需要启用 koishi-plugin-puppeteer 插件";
2222
- }
2223
- return await puppe.render(
2224
- htmlString(element.toString()),
2225
- async (page, next) => {
2226
- const handle = await page.$("#root>*");
2227
- return await next(handle ?? void 0);
2228
- }
2229
- );
2230
- }, "generateImageOutput");
2231
-
2232
- // src/utils/wfcd-adapter.ts
2233
- var import_warframe_public_export_plus3 = require("warframe-public-export-plus");
2234
- var solNodesEnDict;
2235
- var getSolNodeKey = /* @__PURE__ */ __name(async (name2) => {
2236
- const worldstateData = await import("warframe-worldstate-data");
2237
- if (!solNodesEnDict) {
2238
- solNodesEnDict = dictToKeyDict(worldstateData.default.solNodes, (n) => [
2239
- n.value
2240
- ]);
2241
- }
2242
- return solNodesEnDict[name2];
2243
- }, "getSolNodeKey");
2244
- var missionTypeEnDict;
2245
- var getMissionTypeKey = /* @__PURE__ */ __name(async (name2) => {
2246
- const worldstateData = await import("warframe-worldstate-data");
2247
- if (!missionTypeEnDict) {
2248
- missionTypeEnDict = dictToKeyDict(
2249
- worldstateData.default.missionTypes,
2250
- (n) => [n.value]
2251
- );
2252
- }
2253
- if (name2 === "Disruption") return "MT_ARTIFACT";
2254
- return missionTypeEnDict[name2];
2255
- }, "getMissionTypeKey");
2256
- var fissureTierName = {
2257
- 1: "/Lotus/Language/Relics/Era_LITH",
2258
- 2: "/Lotus/Language/Relics/Era_MESO",
2259
- 3: "/Lotus/Language/Relics/Era_NEO",
2260
- 4: "/Lotus/Language/Relics/Era_AXI",
2261
- 5: "/Lotus/Language/Relics/Era_REQUIEM",
2262
- 6: "/Lotus/Language/Relics/Era_OMNI",
2263
- 7: "/Lotus/Language/Relics/Era_VANGUARD"
2264
- };
2265
- var fissureTierNumToNumber = /* @__PURE__ */ __name((a) => {
2266
- return typeof a === "string" ? a.charCodeAt(5) : a;
2267
- }, "fissureTierNumToNumber");
2268
- var getVoidTraderItem = /* @__PURE__ */ __name((i) => {
2269
- const itemNameKey = getVoidTraderItemName(i.uniqueName);
2270
- const itemName = !itemNameKey ? i.item : typeof itemNameKey === "string" ? import_warframe_public_export_plus3.dict_zh[itemNameKey] ?? (itemNameKey.includes("/") ? i.item : itemNameKey) : relicToFullNameZH(itemNameKey.era, itemNameKey.category);
2271
- return { name: itemName, ducats: i.ducats, credits: i.credits };
2272
- }, "getVoidTraderItem");
2273
- var getVoidTraderItemName = /* @__PURE__ */ __name((sourceKey) => {
2274
- const fixedKey = sourceKey.replace("/StoreItems", "");
2275
- const flavour = import_warframe_public_export_plus3.ExportFlavour[fixedKey];
2276
- if (flavour) {
2277
- return flavour.name;
2278
- }
2279
- const weapon = import_warframe_public_export_plus3.ExportWeapons[fixedKey];
2280
- if (weapon) {
2281
- return weapon.name;
2282
- }
2283
- const mod = import_warframe_public_export_plus3.ExportUpgrades[fixedKey];
2284
- if (mod) {
2285
- return mod.name;
2286
- }
2287
- const relic = import_warframe_public_export_plus3.ExportRelics[fixedKey];
2288
- if (relic) {
2289
- return { era: relic.era, category: relic.category };
2290
- }
2291
- const skin = import_warframe_public_export_plus3.ExportCustoms[fixedKey];
2292
- if (skin) {
2293
- return skin.name;
2294
- }
2295
- const recipe = import_warframe_public_export_plus3.ExportRecipes[fixedKey];
2296
- if (recipe) {
2297
- const recipeResult = import_warframe_public_export_plus3.ExportKeys[recipe.resultType];
2298
- if (recipeResult) {
2299
- return recipeResult.name;
2300
- }
2301
- }
2302
- const virtual = import_warframe_public_export_plus3.ExportVirtuals[fixedKey];
2303
- if (virtual) {
2304
- return virtual.name;
2305
- }
2306
- const resource = import_warframe_public_export_plus3.ExportResources[fixedKey];
2307
- if (resource) {
2308
- return resource.name;
2309
- }
2310
- const booster = import_warframe_public_export_plus3.ExportBundles[sourceKey];
2311
- if (booster) {
2312
- return booster.name;
2313
- }
2314
- const boosterPack = import_warframe_public_export_plus3.ExportBoosterPacks[fixedKey];
2315
- if (boosterPack) {
2316
- return boosterPack.name;
2317
- }
2318
- }, "getVoidTraderItemName");
2319
-
2320
- // src/infrastructure/wfm/wfm-api.ts
2321
- var wfmApiV1Base = "https://api.warframe.market/v1/";
2322
- var wfmApiV2Base = "https://api.warframe.market/v2/";
2323
- var getWFMItemList = /* @__PURE__ */ __name(async () => {
2324
- const response = await fetchAsyncData(
2325
- `${wfmApiV2Base}items`
2326
- );
2327
- return response?.data;
2328
- }, "getWFMItemList");
2329
- var getWFMItemStatistics = /* @__PURE__ */ __name(async (itemId) => {
2330
- const response = await fetchAsyncData(
2331
- `${wfmApiV1Base}items/${itemId}/statistics`
2332
- );
2333
- return response?.payload;
2334
- }, "getWFMItemStatistics");
2335
- var getWFMOrderList = /* @__PURE__ */ __name(async (itemId) => {
2336
- const response = await fetchAsyncData(
2337
- `${wfmApiV2Base}orders/item/${itemId}`
2338
- );
2339
- return response?.data;
2340
- }, "getWFMOrderList");
2341
- var getWFMRivenItemList = /* @__PURE__ */ __name(async () => {
2342
- const response = await fetchAsyncData(
2343
- `${wfmApiV2Base}riven/weapons`
2344
- );
2345
- return response?.data;
2346
- }, "getWFMRivenItemList");
2347
- var getWFMRivenOrderList = /* @__PURE__ */ __name(async (itemId) => {
2348
- const response = await fetchAsyncData(
2349
- `${wfmApiV1Base}auctions/search?type=riven&sort_by=price_asc&weapon_url_name=${itemId}`
2350
- );
2351
- return response?.payload.auctions;
2352
- }, "getWFMRivenOrderList");
2353
- var getWFMRivenAttributeList = /* @__PURE__ */ __name(async () => {
2354
- const response = await fetchAsyncData(
2355
- `${wfmApiV2Base}riven/attributes`
2356
- );
2357
- return response?.data;
2358
- }, "getWFMRivenAttributeList");
2359
- var getWFMDucatnator = /* @__PURE__ */ __name(async () => {
2360
- const response = await fetchAsyncData(`${wfmApiV1Base}tools/ducats`);
2361
- if (!response || !response.payload) {
2362
- return void 0;
2363
- }
2364
- const day = response.payload.previous_day.map((e) => {
2365
- return e;
2366
- });
2367
- const hour = response.payload.previous_hour.map((e) => {
2368
- return e;
2369
- });
2370
- return {
2371
- day,
2372
- hour
2373
- };
2374
- }, "getWFMDucatnator");
2375
-
2376
- // src/data/wfm/globalItem.ts
2377
- var globalItemDataFactory = /* @__PURE__ */ __name(async (response) => {
2378
- response ??= await getWFMItemList();
2379
- if (!response) {
2380
- return {
2381
- globalItemList: [],
2382
- globalItemDict: {},
2383
- globalItemNameToSlugDict: {},
2384
- globalItemGameRefDict: {}
2385
- };
2386
- }
2387
- const data = response;
2388
- const globalItemList = response;
2389
- const globalItemDict = listToDict(
2390
- data,
2391
- (i) => [i.slug]
2392
- );
2393
- const globalItemNameToSlugDict = ((list) => {
2394
- const result = {};
2395
- for (const item of list) {
2396
- if (item.i18n["zh-hans"]?.name) {
2397
- result[normalizeName(item.i18n["zh-hans"].name)] = item.slug;
2398
- }
2399
- if (item.i18n["en"]?.name) {
2400
- result[normalizeName(item.i18n["en"].name)] = item.slug;
2401
- }
2402
- }
2403
- return result;
2404
- })(globalItemList);
2405
- const globalItemGameRefDict = listToDict(data, (i) => [i.gameRef]);
2406
- return {
2407
- globalItemList,
2408
- globalItemDict,
2409
- globalItemNameToSlugDict,
2410
- globalItemGameRefDict
2411
- };
2412
- }, "globalItemDataFactory");
2413
- var globalItemData = createAsyncCache(globalItemDataFactory, -1);
2414
-
2415
- // src/data/wfm/globalRivenItem.ts
2416
- var globalRivenItemData = createAsyncCache(async () => {
2417
- const rivenData = await getWFMRivenItemList();
2418
- if (!rivenData) {
2419
- throw new Error("Failed to fetch riven items from Warframe Market API.");
2420
- }
2421
- const data = rivenData;
2422
- const globalRivenItemList = data;
2423
- const globalRivenItemDict = listToDict(data, (i) => [i.slug]);
2424
- return {
2425
- globalRivenItemList,
2426
- globalRivenItemDict
2427
- };
2428
- }, -1);
2429
-
2430
- // src/data/wfm/globalRivenAttribute.ts
2431
- var globalRivenAttributeFactory = /* @__PURE__ */ __name(async (rivenAttributeData) => {
2432
- rivenAttributeData ??= await getWFMRivenAttributeList();
2433
- if (!rivenAttributeData) {
2434
- throw new Error(
2435
- "Failed to fetch riven attributes from Warframe Market API."
2436
- );
2437
- }
2438
- const data = rivenAttributeData;
2439
- const globalRivenAttributeList = data;
2440
- const globalRivenAttributeDict = listToDict(data, (a) => [
2441
- a.slug
2442
- ]);
2443
- return {
2444
- globalRivenAttributeList,
2445
- globalRivenAttributeDict
2446
- };
2447
- }, "globalRivenAttributeFactory");
2448
- var globalRivenAttribute = createAsyncCache(
2449
- globalRivenAttributeFactory,
2450
- -1
2451
- );
2452
-
2453
- // src/data/wfm/globalDucatnator.ts
2454
- var globalDucatnatorIDDict = createAsyncCache(async () => {
2455
- const data = await getWFMDucatnator();
2456
- if (!data) {
2457
- return void 0;
2458
- }
2459
- return listToDict(data.hour, (d) => [d.item]);
2460
- }, 36e5);
1579
+ // src/data/wfm/globalDucatnator.ts
1580
+ var globalDucatnatorIDDict = createAsyncCache(async () => {
1581
+ const data = await getWFMDucatnator();
1582
+ if (!data) {
1583
+ return void 0;
1584
+ }
1585
+ return listToDict(data.hour, (d) => [d.item]);
1586
+ }, 36e5);
2461
1587
 
2462
1588
  // src/assets/baro.ts
2463
1589
  var Baro = `
@@ -18478,12 +17604,9 @@ var getVoidTraderHistory = /* @__PURE__ */ __name(async (data) => {
18478
17604
  }
18479
17605
  __name(assignItemFields, "assignItemFields");
18480
17606
  if (!data) {
18481
- try {
18482
- data = await fetchAsyncText(
18483
- "https://docs.google.com/spreadsheets/d/1cdT7M2qbOhZ01AQT2RaH8_6VL1yww4BHkTRtLzqZ7_g/export?format=csv&gid=564427308"
18484
- );
18485
- } catch {
18486
- }
17607
+ data = await fetchAsyncText(
17608
+ "https://docs.google.com/spreadsheets/d/1cdT7M2qbOhZ01AQT2RaH8_6VL1yww4BHkTRtLzqZ7_g/export?format=csv&gid=564427308"
17609
+ );
18487
17610
  if (!data) {
18488
17611
  return parseBaroLuaTable(Baro);
18489
17612
  }
@@ -18669,7 +17792,7 @@ var getRivenOrders = /* @__PURE__ */ __name(async (input) => {
18669
17792
  return { item: targetItem, orders };
18670
17793
  }, "getRivenOrders");
18671
17794
  var applyRelicData = /* @__PURE__ */ __name(async (relic) => {
18672
- const tier = import_warframe_public_export_plus4.dict_zh[relic.tierKey] ?? relic.tier;
17795
+ const tier = import_warframe_public_export_plus.dict_zh[relic.tierKey] ?? relic.tier;
18673
17796
  const { globalItemGameRefDict } = await globalItemData.get();
18674
17797
  const wfmDict = await globalDucatnatorIDDict.get();
18675
17798
  const loadedItems = relic.items.map((element) => {
@@ -18720,30 +17843,36 @@ var primedModHistory = createAsyncCache(async () => {
18720
17843
  });
18721
17844
  const result = [];
18722
17845
  const { globalItemDict, globalItemNameToSlugDict } = await globalItemData.get();
18723
- for (let i = 0; i < primeModHistory.length; i++) {
18724
- const mod = primeModHistory[i];
17846
+ const minInterval = 500;
17847
+ let lastRequestTime = 0;
17848
+ for (const mod of primeModHistory) {
18725
17849
  const name2 = normalizeName(mod.Name);
18726
17850
  const slug = globalItemNameToSlugDict[name2];
18727
- if (slug) {
18728
- const item = globalItemDict[slug];
18729
- try {
18730
- const data = await getWFMItemStatistics(slug);
18731
- result.push({
18732
- name: item.i18n["zh-hans"]?.name,
18733
- last: mod.Last,
18734
- plats: data?.statistics_closed["90days"].at(-1)?.median
18735
- // Get medium price
18736
- });
18737
- } catch {
18738
- result.push({
18739
- name: item.i18n["zh-hans"]?.name,
18740
- last: mod.Last
18741
- });
18742
- }
18743
- await sleep(300);
17851
+ if (!slug) {
17852
+ result.push({ name: mod.Name, last: mod.Last });
17853
+ continue;
17854
+ }
17855
+ const item = globalItemDict[slug];
17856
+ const elapsed = Date.now() - lastRequestTime;
17857
+ if (elapsed < minInterval) {
17858
+ await sleep(minInterval - elapsed);
17859
+ }
17860
+ const data = await getWFMItemStatistics(slug);
17861
+ lastRequestTime = Date.now();
17862
+ if (data) {
17863
+ const zeroRankList = data.statistics_closed["90days"].filter(
17864
+ (e) => e.mod_rank === 0
17865
+ );
17866
+ const lastThree = zeroRankList.slice(-3);
17867
+ const avg = lastThree.length > 0 ? Math.round(lastThree.reduce((acc, e) => acc + e.median, 0) / lastThree.length * 10) / 10 : void 0;
17868
+ result.push({
17869
+ name: item.i18n["zh-hans"]?.name,
17870
+ last: mod.Last,
17871
+ plats: avg
17872
+ });
18744
17873
  } else {
18745
17874
  result.push({
18746
- name: mod.Name,
17875
+ name: item.i18n["zh-hans"]?.name,
18747
17876
  last: mod.Last
18748
17877
  });
18749
17878
  }
@@ -18897,7 +18026,7 @@ var compareRivenItemName = /* @__PURE__ */ __name((input, standard) => {
18897
18026
  }, "compareRivenItemName");
18898
18027
 
18899
18028
  // src/services/wf-service.ts
18900
- var import_warframe_public_export_plus8 = require("warframe-public-export-plus");
18029
+ var import_warframe_public_export_plus7 = require("warframe-public-export-plus");
18901
18030
 
18902
18031
  // src/assets/zh.json
18903
18032
  var zh_default = {
@@ -19503,13 +18632,182 @@ var warframes = [
19503
18632
  ]
19504
18633
  ];
19505
18634
 
18635
+ // src/infrastructure/ocr-api.ts
18636
+ var import_node_crypto = __toESM(require("node:crypto"));
18637
+ var ocrCache = new CacheStorage(100);
18638
+ var getImageBase64Hash = /* @__PURE__ */ __name((base64) => {
18639
+ const pureBase64 = base64.replace(/^data:image\/\w+;base64,/, "");
18640
+ return import_node_crypto.default.createHash("sha256").update(pureBase64, "base64").digest("hex");
18641
+ }, "getImageBase64Hash");
18642
+ var getTextFromTencentOCR = /* @__PURE__ */ __name(async (image, secret) => {
18643
+ const tencentcloud = require("tencentcloud-sdk-nodejs-ocr");
18644
+ const ocrClient = tencentcloud.ocr.v20181119.Client;
18645
+ const clientConfig = {
18646
+ credential: {
18647
+ secretId: secret.id,
18648
+ secretKey: secret.key
18649
+ },
18650
+ region: "",
18651
+ profile: {
18652
+ httpProfile: {
18653
+ endpoint: "ocr.tencentcloudapi.com"
18654
+ }
18655
+ }
18656
+ };
18657
+ const client = new ocrClient(clientConfig);
18658
+ const { TextDetections } = await client.GeneralAccurateOCR({
18659
+ ImageBase64: image
18660
+ });
18661
+ const result = TextDetections?.map((t) => t.DetectedText).filter(
18662
+ Boolean
18663
+ );
18664
+ return result;
18665
+ }, "getTextFromTencentOCR");
18666
+ var extractTextFromImage = /* @__PURE__ */ __name(async (image, secret) => {
18667
+ if (image instanceof Blob) {
18668
+ const buffer = await image.arrayBuffer();
18669
+ image = Buffer.from(buffer).toString("base64");
18670
+ }
18671
+ const imageHash = getImageBase64Hash(image);
18672
+ try {
18673
+ return await ocrCache.get(
18674
+ imageHash,
18675
+ () => getTextFromTencentOCR(image, secret)
18676
+ );
18677
+ } catch (err) {
18678
+ logger.error("OCR request error:", err);
18679
+ return void 0;
18680
+ }
18681
+ }, "extractTextFromImage");
18682
+
18683
+ // src/infrastructure/wf/wf-export-adapter.ts
18684
+ var import_warframe_public_export_plus2 = require("warframe-public-export-plus");
18685
+ var regionToShort = /* @__PURE__ */ __name((region, dict) => {
18686
+ let faction;
18687
+ if (region.faction) {
18688
+ const name2 = import_warframe_public_export_plus2.ExportFactions[region.faction].name;
18689
+ if (name2) {
18690
+ faction = dict[name2];
18691
+ }
18692
+ }
18693
+ if (!faction) {
18694
+ faction = region.faction;
18695
+ }
18696
+ return {
18697
+ name: dict[region.name],
18698
+ system: dict[region.systemName],
18699
+ type: dict[region.missionName],
18700
+ faction,
18701
+ maxLevel: region.maxEnemyLevel,
18702
+ minLevel: region.minEnemyLevel
18703
+ };
18704
+ }, "regionToShort");
18705
+ var relicEraToTransKey = /* @__PURE__ */ __name((era) => {
18706
+ const prefix = "/Lotus/Language/Relics/Era_";
18707
+ return prefix + era.toUpperCase();
18708
+ }, "relicEraToTransKey");
18709
+ var fixRelicRewardKey = /* @__PURE__ */ __name((item) => {
18710
+ return item.replace("StoreItems/", "");
18711
+ }, "fixRelicRewardKey");
18712
+
18713
+ // src/infrastructure/wf/wfcd-adapter.ts
18714
+ var import_warframe_public_export_plus3 = require("warframe-public-export-plus");
18715
+ var relicToFullNameZH = /* @__PURE__ */ __name((tier, category) => {
18716
+ return `${import_warframe_public_export_plus3.dict_zh[relicEraToTransKey(tier)] ?? toPascalCase(tier)} ${category} 遗物`;
18717
+ }, "relicToFullNameZH");
18718
+ var solNodesEnDict;
18719
+ var getSolNodeKey = /* @__PURE__ */ __name(async (name2) => {
18720
+ const worldstateData = await import("warframe-worldstate-data");
18721
+ if (!solNodesEnDict) {
18722
+ solNodesEnDict = dictToKeyDict(worldstateData.default.solNodes, (n) => [
18723
+ n.value
18724
+ ]);
18725
+ }
18726
+ return solNodesEnDict[name2];
18727
+ }, "getSolNodeKey");
18728
+ var missionTypeEnDict;
18729
+ var getMissionTypeKey = /* @__PURE__ */ __name(async (name2) => {
18730
+ const worldstateData = await import("warframe-worldstate-data");
18731
+ if (!missionTypeEnDict) {
18732
+ missionTypeEnDict = dictToKeyDict(
18733
+ worldstateData.default.missionTypes,
18734
+ (n) => [n.value]
18735
+ );
18736
+ }
18737
+ if (name2 === "Disruption") return "MT_ARTIFACT";
18738
+ return missionTypeEnDict[name2];
18739
+ }, "getMissionTypeKey");
18740
+ var fissureTierName = {
18741
+ 1: "/Lotus/Language/Relics/Era_LITH",
18742
+ 2: "/Lotus/Language/Relics/Era_MESO",
18743
+ 3: "/Lotus/Language/Relics/Era_NEO",
18744
+ 4: "/Lotus/Language/Relics/Era_AXI",
18745
+ 5: "/Lotus/Language/Relics/Era_REQUIEM",
18746
+ 6: "/Lotus/Language/Relics/Era_OMNI",
18747
+ 7: "/Lotus/Language/Relics/Era_VANGUARD"
18748
+ };
18749
+ var fissureTierNumToNumber = /* @__PURE__ */ __name((a) => {
18750
+ return typeof a === "string" ? Number(a.charAt(5)) : a;
18751
+ }, "fissureTierNumToNumber");
18752
+ var getVoidTraderItem = /* @__PURE__ */ __name((i) => {
18753
+ const itemNameKey = getVoidTraderItemName(i.uniqueName);
18754
+ const itemName = !itemNameKey ? i.item : typeof itemNameKey === "string" ? import_warframe_public_export_plus3.dict_zh[itemNameKey] ?? (itemNameKey.includes("/") ? i.item : itemNameKey) : relicToFullNameZH(itemNameKey.era, itemNameKey.category);
18755
+ return { name: itemName, ducats: i.ducats, credits: i.credits };
18756
+ }, "getVoidTraderItem");
18757
+ var getVoidTraderItemName = /* @__PURE__ */ __name((sourceKey) => {
18758
+ const fixedKey = sourceKey.replace("/StoreItems", "");
18759
+ const flavour = import_warframe_public_export_plus3.ExportFlavour[fixedKey];
18760
+ if (flavour) {
18761
+ return flavour.name;
18762
+ }
18763
+ const weapon = import_warframe_public_export_plus3.ExportWeapons[fixedKey];
18764
+ if (weapon) {
18765
+ return weapon.name;
18766
+ }
18767
+ const mod = import_warframe_public_export_plus3.ExportUpgrades[fixedKey];
18768
+ if (mod) {
18769
+ return mod.name;
18770
+ }
18771
+ const relic = import_warframe_public_export_plus3.ExportRelics[fixedKey];
18772
+ if (relic) {
18773
+ return { era: relic.era, category: relic.category };
18774
+ }
18775
+ const skin = import_warframe_public_export_plus3.ExportCustoms[fixedKey];
18776
+ if (skin) {
18777
+ return skin.name;
18778
+ }
18779
+ const recipe = import_warframe_public_export_plus3.ExportRecipes[fixedKey];
18780
+ if (recipe) {
18781
+ const recipeResult = import_warframe_public_export_plus3.ExportKeys[recipe.resultType];
18782
+ if (recipeResult) {
18783
+ return recipeResult.name;
18784
+ }
18785
+ }
18786
+ const virtual = import_warframe_public_export_plus3.ExportVirtuals[fixedKey];
18787
+ if (virtual) {
18788
+ return virtual.name;
18789
+ }
18790
+ const resource = import_warframe_public_export_plus3.ExportResources[fixedKey];
18791
+ if (resource) {
18792
+ return resource.name;
18793
+ }
18794
+ const booster = import_warframe_public_export_plus3.ExportBundles[sourceKey];
18795
+ if (booster) {
18796
+ return booster.name;
18797
+ }
18798
+ const boosterPack = import_warframe_public_export_plus3.ExportBoosterPacks[fixedKey];
18799
+ if (boosterPack) {
18800
+ return boosterPack.name;
18801
+ }
18802
+ }, "getVoidTraderItemName");
18803
+
19506
18804
  // src/data/wf/relics.ts
19507
- var import_warframe_public_export_plus5 = require("warframe-public-export-plus");
18805
+ var import_warframe_public_export_plus4 = require("warframe-public-export-plus");
19508
18806
  var relics = (() => {
19509
18807
  const result = {};
19510
- for (const key in import_warframe_public_export_plus5.ExportRelics) {
19511
- const exportRelic = import_warframe_public_export_plus5.ExportRelics[key];
19512
- const exportRewards = import_warframe_public_export_plus5.ExportRewards[exportRelic.rewardManifest];
18808
+ for (const key in import_warframe_public_export_plus4.ExportRelics) {
18809
+ const exportRelic = import_warframe_public_export_plus4.ExportRelics[key];
18810
+ const exportRewards = import_warframe_public_export_plus4.ExportRewards[exportRelic.rewardManifest];
19513
18811
  const era = "/Lotus/Language/Relics/Era_" + exportRelic.era.toUpperCase();
19514
18812
  const relicKey = normalizeName(exportRelic.era + exportRelic.category);
19515
18813
  const rewards = (exportRewards[0] ?? []).map((r) => {
@@ -19532,7 +18830,7 @@ var relics = (() => {
19532
18830
  })();
19533
18831
 
19534
18832
  // src/data/wf/globalWorldState.ts
19535
- var import_warframe_public_export_plus6 = require("warframe-public-export-plus");
18833
+ var import_warframe_public_export_plus5 = require("warframe-public-export-plus");
19536
18834
  var globalWorldState = createAsyncCache(async () => {
19537
18835
  const worldState = await getWorldState();
19538
18836
  const fissures = [];
@@ -19540,13 +18838,13 @@ var globalWorldState = createAsyncCache(async () => {
19540
18838
  const spFissures = [];
19541
18839
  for (const fissure of worldState.fissures) {
19542
18840
  const nodeKey = await getSolNodeKey(fissure.nodeKey);
19543
- const tierName = fissure.tierNum in fissureTierName ? import_warframe_public_export_plus6.dict_zh[fissureTierName[fissure.tierNum]] : fissure.tierNum;
18841
+ const tierName = fissure.tierNum in fissureTierName ? import_warframe_public_export_plus5.dict_zh[fissureTierName[fissure.tierNum]] : fissure.tierNum;
19544
18842
  const obj = {
19545
18843
  category: fissure.isStorm ? "rj-fissures" : fissure.isHard ? "sp-fissures" : "fissures",
19546
18844
  hard: fissure.isHard,
19547
18845
  activation: fissure.activation?.getTime(),
19548
18846
  expiry: fissure.expiry?.getTime(),
19549
- node: regionToShort(import_warframe_public_export_plus6.ExportRegions[nodeKey], import_warframe_public_export_plus6.dict_zh),
18847
+ node: regionToShort(import_warframe_public_export_plus5.ExportRegions[nodeKey], import_warframe_public_export_plus5.dict_zh),
19550
18848
  tier: tierName,
19551
18849
  tierNum: fissureTierNumToNumber(fissure.tierNum)
19552
18850
  };
@@ -63779,7 +63077,7 @@ var rivenAttrValueDict = (() => {
63779
63077
  })();
63780
63078
 
63781
63079
  // src/data/wf/rivenDisposition.ts
63782
- var import_warframe_public_export_plus7 = require("warframe-public-export-plus");
63080
+ var import_warframe_public_export_plus6 = require("warframe-public-export-plus");
63783
63081
 
63784
63082
  // src/assets/rivencalc.json
63785
63083
  var rivencalc_default = {
@@ -67475,597 +66773,1262 @@ var rivencalc_default = {
67475
66773
  curse: false,
67476
66774
  buff: true
67477
66775
  }
67478
- ]
67479
- };
67480
-
67481
- // src/data/wf/rivenDisposition.ts
67482
- var weaponRivenDispositionDict = (() => {
67483
- const mapped = rivencalc_default.weapons.reduce(
67484
- (prev, element) => {
67485
- let mapped2 = void 0;
67486
- for (const weaponKey in import_warframe_public_export_plus7.ExportWeapons) {
67487
- const weapon = import_warframe_public_export_plus7.ExportWeapons[weaponKey];
67488
- const splited = weapon.name.split("/");
67489
- if (splited.length <= 0) {
67490
- continue;
67491
- }
67492
- const keyName = splited[splited.length - 1];
67493
- const normalizedCalcName = normalizeName(element.name);
67494
- if (normalizeName(keyName) === normalizedCalcName) {
67495
- mapped2 = weapon;
67496
- break;
67497
- }
67498
- const weaponEN2 = import_warframe_public_export_plus7.dict_en[weapon.name];
67499
- if (weaponEN2 && normalizeName(weaponEN2) === normalizedCalcName) {
67500
- mapped2 = weapon;
67501
- break;
67502
- }
66776
+ ]
66777
+ };
66778
+
66779
+ // src/data/wf/rivenDisposition.ts
66780
+ var weaponRivenDispositionDict = (() => {
66781
+ const mapped = rivencalc_default.weapons.reduce(
66782
+ (prev, element) => {
66783
+ let mapped2 = void 0;
66784
+ for (const weaponKey in import_warframe_public_export_plus6.ExportWeapons) {
66785
+ const weapon = import_warframe_public_export_plus6.ExportWeapons[weaponKey];
66786
+ const splited = weapon.name.split("/");
66787
+ if (splited.length <= 0) {
66788
+ continue;
66789
+ }
66790
+ const keyName = splited[splited.length - 1];
66791
+ const normalizedCalcName = normalizeName(element.name);
66792
+ if (normalizeName(keyName) === normalizedCalcName) {
66793
+ mapped2 = weapon;
66794
+ break;
66795
+ }
66796
+ const weaponEN2 = import_warframe_public_export_plus6.dict_en[weapon.name];
66797
+ if (weaponEN2 && normalizeName(weaponEN2) === normalizedCalcName) {
66798
+ mapped2 = weapon;
66799
+ break;
66800
+ }
66801
+ }
66802
+ if (!mapped2) {
66803
+ return prev;
66804
+ }
66805
+ const weaponEN = import_warframe_public_export_plus6.dict_en[mapped2.name];
66806
+ const weaponZH = import_warframe_public_export_plus6.dict_zh[mapped2.name];
66807
+ const result = {
66808
+ name: {
66809
+ en: weaponEN,
66810
+ zh: weaponZH
66811
+ },
66812
+ calc: element,
66813
+ weapon: mapped2
66814
+ };
66815
+ prev.push(result);
66816
+ return prev;
66817
+ },
66818
+ []
66819
+ );
66820
+ return listToDict(mapped, (e) => [
66821
+ normalizeName(e.name.zh),
66822
+ normalizeName(e.name.en)
66823
+ ]);
66824
+ })();
66825
+
66826
+ // src/data/wf/rivenStatData.ts
66827
+ var rivenStatFixFactor = {
66828
+ "2": { buffFactor: 0.99, buffCount: 2, curseFactor: 0, curseCount: 0 },
66829
+ "21": {
66830
+ buffFactor: 1.2375,
66831
+ buffCount: 2,
66832
+ curseFactor: -0.495,
66833
+ curseCount: 1
66834
+ },
66835
+ "3": {
66836
+ buffFactor: 0.75,
66837
+ buffCount: 3,
66838
+ curseFactor: 0,
66839
+ curseCount: 0
66840
+ },
66841
+ "31": {
66842
+ buffFactor: 0.9375,
66843
+ buffCount: 3,
66844
+ curseFactor: -0.75,
66845
+ curseCount: 1
66846
+ }
66847
+ };
66848
+
66849
+ // src/services/wf-service.ts
66850
+ var getRelic = /* @__PURE__ */ __name(async (input) => {
66851
+ if (!input) {
66852
+ return "请提供正确的遗物名称";
66853
+ }
66854
+ input = normalizeName(input);
66855
+ if (!input) {
66856
+ return "请提供正确的遗物名称";
66857
+ }
66858
+ if (!relics) {
66859
+ return "遗物数据未加载完成,请稍后再试";
66860
+ }
66861
+ const tierListForMatch = [
66862
+ "古纪",
66863
+ "前纪",
66864
+ "中纪",
66865
+ "后纪",
66866
+ "安魂",
66867
+ "先锋",
66868
+ "Lith",
66869
+ "Meso",
66870
+ "Neo",
66871
+ "Axi",
66872
+ "Requiem",
66873
+ "Vanguard"
66874
+ ].map((t) => normalizeName(t));
66875
+ const tier = tierListForMatch.find((t) => input.startsWith(t));
66876
+ if (!tier) {
66877
+ return "请提供正确的遗物名称";
66878
+ }
66879
+ const category = input.replace(new RegExp(`^${tier}`), "").replace(/遗物$|relic$/, "");
66880
+ const zhTierMap = {
66881
+ 古纪: "Lith",
66882
+ 前纪: "Meso",
66883
+ 中纪: "Neo",
66884
+ 后纪: "Axi",
66885
+ 安魂: "Requiem",
66886
+ 先锋: "Vanguard"
66887
+ };
66888
+ const enTier = zhTierMap[tier] ?? tier;
66889
+ const key = normalizeName(enTier + category);
66890
+ return relics[key] ?? "未找到对应遗物信息";
66891
+ }, "getRelic");
66892
+ var getArbitrations = /* @__PURE__ */ __name((day = 3) => {
66893
+ if (day > 14 || day <= 0) {
66894
+ return "天数需小于等于14且大于0";
66895
+ }
66896
+ const currentHourTimeStamp = Math.floor(
66897
+ (/* @__PURE__ */ new Date()).setMinutes(0, 0, 0) / 1e3
66898
+ );
66899
+ const currentHourIndex = arbitrationSchedule.findIndex(
66900
+ (a) => a.time === currentHourTimeStamp
66901
+ );
66902
+ const weekArbys = arbitrationSchedule.slice(
66903
+ currentHourIndex,
66904
+ currentHourIndex + 24 * day
66905
+ );
66906
+ return weekArbys.filter((a) => arbyRewards_default[a.node]).map((a) => {
66907
+ const obj = regionToShort(import_warframe_public_export_plus7.ExportRegions[a.node], import_warframe_public_export_plus7.dict_zh);
66908
+ return {
66909
+ ...obj,
66910
+ time: new Date(a.time * 1e3).toLocaleString("zh-cn", {
66911
+ year: "numeric",
66912
+ month: "numeric",
66913
+ day: "numeric",
66914
+ hour: "numeric",
66915
+ // minute: 'numeric', // 保持注释或删除,以去除分钟
66916
+ // second: 'numeric', // 保持注释或删除,以去除秒
66917
+ hour12: false,
66918
+ // 统一使用 24 小时制
66919
+ // hourCycle: 'h23' // 另一种设置 24 小时制的方法
66920
+ timeZone: "Asia/Shanghai"
66921
+ }),
66922
+ rewards: arbyRewards_default[a.node]
66923
+ };
66924
+ });
66925
+ }, "getArbitrations");
66926
+ var getWeekly = /* @__PURE__ */ __name(async () => {
66927
+ const { raw: worldState } = await globalWorldState.get();
66928
+ if (!worldState) {
66929
+ return "内部错误,获取最新信息失败";
66930
+ }
66931
+ const archon = {
66932
+ name: import_warframe_public_export_plus7.dict_zh["/Lotus/Language/Narmer/" + removeSpace(worldState.archonHunt.boss)]
66933
+ };
66934
+ const stringToDebuff = /* @__PURE__ */ __name((key, name2, prefix) => {
66935
+ const keyToName = zh_default[`${prefix}${key}`];
66936
+ if (!keyToName) {
66937
+ for (const transKey in en_default) {
66938
+ if (en_default[transKey] === name2) {
66939
+ return {
66940
+ name: zh_default[transKey],
66941
+ desc: zh_default[transKey + "_Desc"]
66942
+ };
66943
+ }
66944
+ }
66945
+ }
66946
+ const riskDesc = zh_default[`${prefix}${key}_Desc`];
66947
+ return {
66948
+ name: keyToName,
66949
+ desc: riskDesc
66950
+ };
66951
+ }, "stringToDebuff");
66952
+ const deepArchim = worldState.archimedeas[0];
66953
+ const deepArchimMissions = await Promise.all(
66954
+ deepArchim.missions.map(async (m) => {
66955
+ const receivedType = await getMissionTypeKey(m.missionType);
66956
+ const type = import_warframe_public_export_plus7.dict_zh[import_warframe_public_export_plus7.ExportMissionTypes[receivedType]?.name ?? ""] ?? m.missionType;
66957
+ const deviation = stringToDebuff(
66958
+ m.deviation.key,
66959
+ m.deviation.name,
66960
+ "/Lotus/Language/Conquest/MissionVariant_LabConquest_"
66961
+ );
66962
+ const risks = m.risks.map(
66963
+ (r) => stringToDebuff(r.key, r.name, "/Lotus/Language/Conquest/Condition_")
66964
+ );
66965
+ return {
66966
+ type,
66967
+ deviation,
66968
+ risks
66969
+ };
66970
+ })
66971
+ );
66972
+ const deepArchimPersonalModifier = deepArchim.personalModifiers.map(
66973
+ (p) => stringToDebuff(p.key, p.name, "/Lotus/Language/Conquest/PersonalMod_")
66974
+ );
66975
+ const deepArchimRes = {
66976
+ name: "深层科研",
66977
+ missions: deepArchimMissions,
66978
+ peronal: deepArchimPersonalModifier
66979
+ };
66980
+ const temporalArchim = worldState.archimedeas[1];
66981
+ const temporalArchimMissions = await Promise.all(
66982
+ temporalArchim.missions.map(async (m) => {
66983
+ const receivedType = await getMissionTypeKey(m.missionType);
66984
+ const type = import_warframe_public_export_plus7.dict_zh[import_warframe_public_export_plus7.ExportMissionTypes[receivedType]?.name ?? ""] ?? receivedType;
66985
+ const deviation = stringToDebuff(
66986
+ m.deviation.key,
66987
+ m.deviation.name,
66988
+ "/Lotus/Language/Conquest/MissionVariant_HexConquest_"
66989
+ );
66990
+ const risks = m.risks.map(
66991
+ (r) => stringToDebuff(r.key, r.name, "/Lotus/Language/Conquest/Condition_")
66992
+ );
66993
+ return {
66994
+ type,
66995
+ deviation,
66996
+ risks
66997
+ };
66998
+ })
66999
+ );
67000
+ const temporalArchimPersonalModifier = temporalArchim.personalModifiers.map(
67001
+ (p) => stringToDebuff(p.key, p.name, "/Lotus/Language/Conquest/PersonalMod_")
67002
+ );
67003
+ const temporalArchimRes = {
67004
+ name: "时光科研",
67005
+ missions: temporalArchimMissions,
67006
+ peronal: temporalArchimPersonalModifier
67007
+ };
67008
+ return {
67009
+ archonHunt: archon,
67010
+ deepArchimedea: deepArchimRes,
67011
+ temporalArchimedea: temporalArchimRes
67012
+ };
67013
+ }, "getWeekly");
67014
+ var getEnvironment = /* @__PURE__ */ __name(async () => {
67015
+ const { raw: worldState } = await globalWorldState.get();
67016
+ if (!worldState) {
67017
+ return "内部错误,获取最新信息失败";
67018
+ }
67019
+ const cetusDay = worldState.cetusCycle.isDay ? "白天" : "黑夜";
67020
+ const cetus = `地球/夜灵平野: ${cetusDay} ${worldState.cetusCycle.timeLeft}`;
67021
+ const vallisState = worldState.vallisCycle.isWarm ? "温暖" : "寒冷";
67022
+ const vallis = `奥布山谷: ${vallisState} ${worldState.vallisCycle.timeLeft}`;
67023
+ const cambionState = worldState.cambionCycle.state ? worldState.cambionCycle.state.charAt(0).toUpperCase() + worldState.cambionCycle.state.slice(1) : "未知";
67024
+ const cambion = `魔胎之境: ${cambionState} ${worldState.cambionCycle.timeLeft}`;
67025
+ const duviriStateTransDict = {
67026
+ sorrow: "悲伤",
67027
+ fear: "恐惧",
67028
+ joy: "喜悦",
67029
+ anger: "愤怒",
67030
+ envy: "嫉妒"
67031
+ };
67032
+ const duviriState = duviriStateTransDict[worldState.duviriCycle.state] ?? worldState.duviriCycle.state;
67033
+ const duviri = `双衍王境: ${duviriState} ${worldState.duviriCycle.endString}`;
67034
+ const zarimanFaction = worldState.zarimanCycle.isCorpus ? "Corpus" : "Grineer";
67035
+ const zariman = `扎里曼号: ${zarimanFaction} ${worldState.zarimanCycle.timeLeft}`;
67036
+ return `当前环境:
67037
+ ${cetus}
67038
+ ${vallis}
67039
+ ${cambion}
67040
+ ${duviri}
67041
+ ${zariman}`;
67042
+ }, "getEnvironment");
67043
+ var getCircuitWeek = /* @__PURE__ */ __name(() => {
67044
+ const EPOCH = 1734307200 * 1e3;
67045
+ const week = Math.trunc((Date.now() - EPOCH) / 6048e5);
67046
+ const index1 = (week + 1) % incarnons.length;
67047
+ const index2 = (week + 8) % warframes.length;
67048
+ const incarnons2 = incarnons.map((v) => v.map((i) => import_warframe_public_export_plus7.dict_zh[i]));
67049
+ const warframes2 = warframes.map((v) => v.map((i) => import_warframe_public_export_plus7.dict_zh[i]));
67050
+ return {
67051
+ currentIncarnons: index1,
67052
+ currentWarframes: index2,
67053
+ allIncarnons: incarnons2,
67054
+ allWarframes: warframes2
67055
+ };
67056
+ }, "getCircuitWeek");
67057
+ var getFissures = /* @__PURE__ */ __name(async () => {
67058
+ const { fissures } = await globalWorldState.get();
67059
+ return fissures ?? "内部错误,获取最新信息失败";
67060
+ }, "getFissures");
67061
+ var getSteelPathFissures = /* @__PURE__ */ __name(async () => {
67062
+ const { spFissures } = await globalWorldState.get();
67063
+ return spFissures ?? "内部错误,获取最新信息失败";
67064
+ }, "getSteelPathFissures");
67065
+ var getRailjackFissures = /* @__PURE__ */ __name(async () => {
67066
+ const { rjFissures } = await globalWorldState.get();
67067
+ return rjFissures ?? "内部错误,获取最新信息失败";
67068
+ }, "getRailjackFissures");
67069
+ var getAnalyzedRiven = /* @__PURE__ */ __name(async (secret, url) => {
67070
+ const img = await fetchAsyncImage(url);
67071
+ if (!img) {
67072
+ return "获取图片失败";
67073
+ }
67074
+ const extractResult = await extractTextFromImage(img, secret);
67075
+ if (!extractResult) {
67076
+ return "解析图片失败";
67077
+ }
67078
+ const parseResult = await parseOCRResult(extractResult);
67079
+ if (!parseResult || parseResult.attributes.length < 2 || parseResult.attributes.length > 4) {
67080
+ return "解析图片失败";
67081
+ }
67082
+ return analyzeRivenStat(parseResult);
67083
+ }, "getAnalyzedRiven");
67084
+ var getVoidTrader = /* @__PURE__ */ __name(async () => {
67085
+ const { raw: worldState } = await globalWorldState.get();
67086
+ if (worldState.voidTraders.length === 0) {
67087
+ return "虚空商人仍在未知地带漂流...";
67088
+ }
67089
+ const trader = worldState.voidTraders[0];
67090
+ if (trader && trader.activation && trader.activation.getTime() > Date.now()) {
67091
+ const diff2 = trader.activation.getTime() - Date.now();
67092
+ return "距离虚空商人到达还有: " + msToHumanReadable(diff2);
67093
+ }
67094
+ const diff = trader.expiry.getTime() - Date.now();
67095
+ const items = trader.inventory.map(getVoidTraderItem);
67096
+ return { expiry: msToHumanReadable(diff), items };
67097
+ }, "getVoidTrader");
67098
+ var getStaticRivenStats = /* @__PURE__ */ __name(async (weaponType, statType, disposition) => {
67099
+ if (disposition > 1.55 || disposition < 0.5) {
67100
+ return "裂罅倾向错误";
67101
+ }
67102
+ const weaponTypes = [
67103
+ "步枪",
67104
+ "手枪",
67105
+ "霰弹枪",
67106
+ "Archwing枪械",
67107
+ "近战",
67108
+ "Rifle",
67109
+ "Shotgun",
67110
+ "Pistol",
67111
+ "Archgun",
67112
+ "Melee"
67113
+ ];
67114
+ const matchedWeaponType = weaponTypes.find(
67115
+ (v) => normalizeName(v).startsWith(normalizeName(weaponType))
67116
+ );
67117
+ if (!matchedWeaponType) {
67118
+ return "武器类型错误";
67119
+ }
67120
+ const weaponTypeKeys = {
67121
+ 步枪: "Rifle",
67122
+ 手枪: "Pistol",
67123
+ 霰弹枪: "Shotgun",
67124
+ 近战: "Melee",
67125
+ Archwing枪械: "Archgun"
67126
+ };
67127
+ const weaponTypeKey = weaponTypeKeys[matchedWeaponType] ?? matchedWeaponType;
67128
+ const statTypes = ["2", "3", "21", "31"];
67129
+ if (!statTypes.includes(statType)) {
67130
+ return "词条类型错误";
67131
+ }
67132
+ const rivenAttrValues = rivenAttrValueDict[weaponTypeKey];
67133
+ const factor = rivenStatFixFactor[statType];
67134
+ const result = {
67135
+ positive: {},
67136
+ negative: factor.curseCount > 0 ? {} : void 0
67137
+ };
67138
+ const { globalRivenAttributeList } = await globalRivenAttribute.get();
67139
+ for (const key in rivenAttrValues) {
67140
+ const data = globalRivenAttributeList.find(
67141
+ (v) => normalizeName(v.i18n["en"].name) == key
67142
+ );
67143
+ const baseValue = rivenAttrValues[key];
67144
+ const buffValue = baseValue * disposition * factor.buffFactor;
67145
+ result.positive[key] = {
67146
+ name: data?.i18n["zh-hans"].name ?? key,
67147
+ max: buffValue * 1.1,
67148
+ min: buffValue * 0.9,
67149
+ unit: data?.unit ?? ""
67150
+ };
67151
+ if (result.negative) {
67152
+ const curseValue = baseValue * disposition * factor.curseFactor;
67153
+ result.negative[key] = {
67154
+ name: data?.i18n["zh-hans"].name ?? key,
67155
+ max: curseValue * 0.9,
67156
+ min: curseValue * 1.1,
67157
+ unit: data?.unit ?? ""
67158
+ };
67159
+ }
67160
+ }
67161
+ return result;
67162
+ }, "getStaticRivenStats");
67163
+ var getWeaponRivenDisposition = /* @__PURE__ */ __name((name2) => {
67164
+ const normalizedName = normalizeName(name2);
67165
+ const normalRes = weaponRivenDispositionDict[normalizedName];
67166
+ if (normalRes) {
67167
+ return normalRes;
67168
+ }
67169
+ const withPrimeSuffix = normalizedName + "prime";
67170
+ const withPrimeRes = weaponRivenDispositionDict[withPrimeSuffix];
67171
+ if (withPrimeRes) {
67172
+ return withPrimeRes;
67173
+ }
67174
+ return void 0;
67175
+ }, "getWeaponRivenDisposition");
67176
+ var parseOCRResult = /* @__PURE__ */ __name(async (ocrResult) => {
67177
+ const { globalRivenAttributeList } = await globalRivenAttribute.get();
67178
+ const list = ocrResult;
67179
+ if (!list.length) {
67180
+ return;
67181
+ }
67182
+ function similarity(standard, input) {
67183
+ if (!standard || !input) {
67184
+ return 0;
67185
+ }
67186
+ standard = normalizeName(standard);
67187
+ input = normalizeName(input);
67188
+ if (input === "伤害") {
67189
+ return standard === "基础伤害" ? 1 : 0;
67190
+ }
67191
+ if (input === "弹药最大值") {
67192
+ return standard === "弹药上限" ? 1 : 0;
67193
+ }
67194
+ if (standard === "基础伤害" && input.match(/^伤害$|近战伤害/)) {
67195
+ return 1;
67196
+ }
67197
+ if (standard === "暴击率") {
67198
+ standard = "暴击几率";
67199
+ }
67200
+ if (standard.includes(input) || input.includes(standard) || standard.split("/").find((x) => !!x && input.includes(x))) {
67201
+ return 1;
67202
+ }
67203
+ const t = tokenSimilarity(standard, input);
67204
+ const s = normalSimilarity(standard, input);
67205
+ return Math.max(t, s);
67206
+ }
67207
+ __name(similarity, "similarity");
67208
+ const texts = list;
67209
+ const attributes = [];
67210
+ const statLines = [];
67211
+ for (const t of texts) {
67212
+ if (!t || !t.match(/^[x+-]|^[0-9]/)) {
67213
+ continue;
67214
+ }
67215
+ const prefix = t.match(/^[x+-]/) ? t[0] : "";
67216
+ const attrNamePart = removeSpace(t ?? "").replace(/^[^一-龥]+/, "");
67217
+ const attr = globalRivenAttributeList.find((a) => {
67218
+ if (!a) return false;
67219
+ let zhName = a.i18n["zh-hans"]?.name;
67220
+ if (!zhName) return false;
67221
+ const sim = similarity(zhName, attrNamePart);
67222
+ if (sim < 0.8) return false;
67223
+ return true;
67224
+ });
67225
+ if (!attr) {
67226
+ continue;
67227
+ }
67228
+ statLines.push(t);
67229
+ const value = (/* @__PURE__ */ __name((function extractStatValue(text) {
67230
+ const t2 = text.replace(/\s+/g, "");
67231
+ const multMatch = t2.match(/x(\d+(\.\d+)?)/i);
67232
+ if (multMatch) {
67233
+ return {
67234
+ value: parseFloat(multMatch[1]),
67235
+ type: "multiply"
67236
+ };
67503
67237
  }
67504
- if (!mapped2) {
67505
- return prev;
67238
+ const percentMatch = t2.match(/([+-]?\d+(\.\d+)?)%/);
67239
+ if (percentMatch) {
67240
+ return {
67241
+ value: parseFloat(percentMatch[1]),
67242
+ type: "percent"
67243
+ };
67506
67244
  }
67507
- const weaponEN = import_warframe_public_export_plus7.dict_en[mapped2.name];
67508
- const weaponZH = import_warframe_public_export_plus7.dict_zh[mapped2.name];
67509
- const result = {
67510
- name: {
67511
- en: weaponEN,
67512
- zh: weaponZH
67513
- },
67514
- calc: element,
67515
- weapon: mapped2
67516
- };
67517
- prev.push(result);
67518
- return prev;
67519
- },
67520
- []
67521
- );
67522
- return listToDict(mapped, (e) => [
67523
- normalizeName(e.name.zh),
67524
- normalizeName(e.name.en)
67525
- ]);
67526
- })();
67527
-
67528
- // src/data/wf/rivenStatData.ts
67529
- var rivenStatFixFactor = {
67530
- "2": { buffFactor: 0.99, buffCount: 2, curseFactor: 0, curseCount: 0 },
67531
- "21": {
67532
- buffFactor: 1.2375,
67533
- buffCount: 2,
67534
- curseFactor: -0.495,
67535
- curseCount: 1
67536
- },
67537
- "3": {
67538
- buffFactor: 0.75,
67539
- buffCount: 3,
67540
- curseFactor: 0,
67541
- curseCount: 0
67542
- },
67543
- "31": {
67544
- buffFactor: 0.9375,
67545
- buffCount: 3,
67546
- curseFactor: -0.75,
67547
- curseCount: 1
67245
+ const numMatch = t2.match(/([+-]?\d+(\.\d+)?)/);
67246
+ if (numMatch) {
67247
+ return {
67248
+ value: parseFloat(numMatch[1]),
67249
+ type: "number"
67250
+ };
67251
+ }
67252
+ return void 0;
67253
+ }), "extractStatValue"))(t);
67254
+ if (!value) {
67255
+ return void 0;
67256
+ }
67257
+ attributes.push({ attr, value: value.value, prefix });
67548
67258
  }
67549
- };
67550
-
67551
- // src/services/wf-service.ts
67552
- var getRelic = /* @__PURE__ */ __name(async (input) => {
67553
- if (!input) {
67554
- return "请提供正确的遗物名称";
67259
+ const weaponName = (/* @__PURE__ */ __name((function extractWeaponName(ocrData) {
67260
+ const rejectPatterns = [
67261
+ /%/,
67262
+ /x\d/i,
67263
+ /\d/,
67264
+ // numbers, %, multipliers
67265
+ /伤害/,
67266
+ /暴击/,
67267
+ /射速/,
67268
+ /攻击/,
67269
+ /后坐力/,
67270
+ /段位/,
67271
+ /加倍/,
67272
+ /效/,
67273
+ /武器/,
67274
+ /果/,
67275
+ /\)/,
67276
+ /\(/
67277
+ // junk OCR fragments
67278
+ ];
67279
+ const candidates = ocrData.filter((str) => {
67280
+ const s = str.trim();
67281
+ if (/^\d+$/.test(s)) return false;
67282
+ if (/[+%]/.test(s)) return false;
67283
+ if (!/[A-Za-z\u4e00-\u9fa5]/.test(s)) return false;
67284
+ if (rejectPatterns.some((p) => p.test(s))) return false;
67285
+ return true;
67286
+ });
67287
+ const merged = candidates.join("");
67288
+ function removeRivenSuffix(name2) {
67289
+ let s = name2.replace(/\s+/g, "");
67290
+ const rivenPattern = /[A-Za-z]+-?[A-Za-z]+$/;
67291
+ return s.replace(rivenPattern, "");
67292
+ }
67293
+ __name(removeRivenSuffix, "removeRivenSuffix");
67294
+ return merged ? removeRivenSuffix(merged) : null;
67295
+ }), "extractWeaponName"))(texts.filter((t) => !statLines.some((l) => l === t)));
67296
+ if (!weaponName || !attributes.length) {
67297
+ return void 0;
67555
67298
  }
67556
- input = normalizeName(input);
67557
- if (!input) {
67558
- return "请提供正确的遗物名称";
67299
+ return {
67300
+ name: weaponName,
67301
+ attributes
67302
+ };
67303
+ }, "parseOCRResult");
67304
+ var analyzeRivenStat = /* @__PURE__ */ __name((parseResult) => {
67305
+ const weaponRiven = getWeaponRivenDisposition(parseResult.name);
67306
+ if (!weaponRiven) {
67307
+ return "未找到武器: " + parseResult.name;
67559
67308
  }
67560
- if (!relics) {
67561
- return "遗物数据未加载完成,请稍后再试";
67309
+ const disposition = weaponRiven.calc.disposition;
67310
+ const weaponType = weaponRiven.calc.riventype;
67311
+ const rivenStatCountType = (function() {
67312
+ if (parseResult.attributes.length === 4) {
67313
+ return "31";
67314
+ } else if (parseResult.attributes.length === 2) {
67315
+ return "2";
67316
+ }
67317
+ const firstStat = parseResult.attributes[0];
67318
+ const firstStatBaseValue = rivenAttrValueDict[weaponType][normalizeName(firstStat.attr.i18n["en"].name)];
67319
+ if (firstStat.value >= firstStatBaseValue * 1.2375 * 0.9 * disposition) {
67320
+ return "21";
67321
+ } else {
67322
+ return "3";
67323
+ }
67324
+ })();
67325
+ const { buffFactor, buffCount, curseFactor, curseCount } = rivenStatFixFactor[rivenStatCountType];
67326
+ const buffs = [];
67327
+ for (let i = 0; i < buffCount; i++) {
67328
+ const attr = parseResult.attributes[i];
67329
+ const baseValue = rivenAttrValueDict[weaponType][normalizeName(attr.attr.i18n["en"].name)];
67330
+ const value = attr.attr.unit === "multiply" ? attr.value - 1 : attr.value;
67331
+ const standardValue = baseValue * buffFactor * disposition;
67332
+ const percent = (value - standardValue) / standardValue;
67333
+ buffs.push({
67334
+ name: attr.attr.i18n["zh-hans"].name,
67335
+ unit: attr.attr.unit,
67336
+ value: attr.value,
67337
+ percent,
67338
+ max: standardValue * 1.1,
67339
+ min: standardValue * 0.9
67340
+ });
67562
67341
  }
67563
- const tierListForMatch = [
67564
- "古纪",
67565
- "前纪",
67566
- "中纪",
67567
- "后纪",
67568
- "安魂",
67569
- "先锋",
67570
- "Lith",
67571
- "Meso",
67572
- "Neo",
67573
- "Axi",
67574
- "Requiem",
67575
- "Vanguard"
67576
- ].map((t) => normalizeName(t));
67577
- const tier = tierListForMatch.find((t) => input.startsWith(t));
67578
- if (!tier) {
67579
- return "请提供正确的遗物名称";
67342
+ const curses = [];
67343
+ if (curseCount > 0) {
67344
+ for (let i = buffCount; i < buffCount + curseCount; i++) {
67345
+ const attr = parseResult.attributes[i];
67346
+ const baseValue = rivenAttrValueDict[weaponType][normalizeName(attr.attr.i18n["en"].name)];
67347
+ const value = attr.attr.unit === "multiply" ? attr.value - 1 : attr.value;
67348
+ const standardValue = baseValue * curseFactor * disposition;
67349
+ const percent = (value - standardValue) / standardValue * -1;
67350
+ curses.push({
67351
+ name: attr.attr.i18n["zh-hans"].name,
67352
+ unit: attr.attr.unit,
67353
+ value: attr.value,
67354
+ percent,
67355
+ max: standardValue * 0.9,
67356
+ min: standardValue * 1.1
67357
+ });
67358
+ }
67580
67359
  }
67581
- const category = input.replace(new RegExp(`^${tier}`), "").replace(/遗物$|relic$/, "");
67582
- const zhTierMap = {
67583
- 古纪: "Lith",
67584
- 前纪: "Meso",
67585
- 中纪: "Neo",
67586
- 后纪: "Axi",
67587
- 安魂: "Requiem",
67588
- 先锋: "Vanguard"
67360
+ return {
67361
+ name: weaponRiven.name.zh,
67362
+ disposition,
67363
+ buffs,
67364
+ curses
67365
+ };
67366
+ }, "analyzeRivenStat");
67367
+
67368
+ // src/components/render.tsx
67369
+ var style = `
67370
+ :root {
67371
+ --color_success_text: #4d8200;
67372
+ --color_success_border: #4d8200;
67373
+ --color_rgb_success_text: 77 130 0;
67374
+ --color_rgb_success_border: 77 130 0;
67375
+ --color_auction_participant: #1c8a62;
67376
+ --color_auction_sell: #909090;
67377
+ --color_auction_own: mediumpurple;
67378
+ --color_auction_archiving: gray;
67379
+ --color_rgb_auction_archiving: 128 128 128;
67380
+ --color_dark_background--light: #11262b;
67381
+ --color_dark_border--ligth: #283235;
67382
+ --color_dark_background: #171e21;
67383
+ --color_dark_border: #283235;
67384
+ --color_dark_background--darker: #071013;
67385
+ --color_dark_border--darker: #171e21;
67386
+ --color_rgb_dark_background--light: 17 38 43;
67387
+ --color_rgb_dark_border--ligth: 40 50 53;
67388
+ --color_rgb_dark_background: 23 30 33;
67389
+ --color_rgb_dark_border: 40 50 53;
67390
+ --color_rgb_dark_background--darker: 7 16 19;
67391
+ --color_rgb_dark_border--darker: 23 30 33;
67392
+ --color_place_order: #b53600;
67393
+ --color_place_order--hover: #e64400;
67394
+ --color_place_order--active: #ff8f00;
67395
+ --color_place_order_text: #f5f5f5;
67396
+ --color_create_auction: #8960db;
67397
+ --color_create_auction_text: #f5f5f5;
67398
+ --color_create_auction--hover: #b08cff;
67399
+ --color_create_auction--active: #9d92ff;
67400
+ --color_input_inner_shadow: 0 0 0;
67401
+ --color_input_text--highlight: #19a187;
67402
+ --color_attribute_text: white;
67403
+ --color_attribute_background_first: #19a187;
67404
+ --color_attribute_background_second: #358576;
67405
+ --color_attribute_background_third: #516965;
67406
+ --color_attribute_background_negative: #98392d;
67407
+ --color_rgb_attribute_background_first: 25 161 135;
67408
+ --color_rgb_attribute_background_second: 53 133 118;
67409
+ --color_rgb_attribute_background_third: 81 105 101;
67410
+ --color_rgb_attribute_background_negative: 152 57 45;
67411
+ --color_link_dimmed: #408698;
67412
+ --color_link_dimmed--hover: #a3dddb;
67413
+ --color_link_dimmed--active: #acb8dd;
67414
+ --color_rgb_link_dimmed: 64 134 152;
67415
+ --color_rgb_link_dimmed--hover: 163 221 219;
67416
+ --color_rgb_link_dimmed--active: 172 184 221;
67417
+ --color_dark_md_code_background: black;
67418
+ --color_dark_md_code_text: #39a57e;
67419
+ --color_rgb_dark_md_code_background: 0 0 0;
67420
+ --color_status-offline: darkred;
67421
+ --color_highlight: #b53600;
67422
+ --color_highlight_text: #f5f5f5;
67423
+ --color_tooltip_background: #1b2432;
67424
+ --color_tooltip_border: black;
67425
+ --color_tooltip_text: #aab3b6;
67426
+ --color_rgb_tooltip_background: 27 36 50;
67427
+ --color_text_svg: red;
67428
+ --color_dark_text: #aab3b6;
67429
+ --color_dark_h1: #fcfdfd;
67430
+ --color_dark_h2: #e1e4e5;
67431
+ --color_dark_h3: #c5ccce;
67432
+ --color_dark_disclaimer: #333d40;
67433
+ }
67434
+
67435
+ body {
67436
+ font-family: Arial, sans-serif;
67437
+ padding: 20px;
67438
+ }
67439
+
67440
+ * {
67441
+ margin: 0;
67442
+ padding: 0;
67443
+ }
67444
+
67445
+ ul {
67446
+ list-style: none;
67447
+ }
67448
+ `;
67449
+ var svg = `<svg
67450
+ style="display: none"
67451
+ xmlns="http://www.w3.org/2000/svg"
67452
+ xmlns:xlink="http://www.w3.org/1999/xlink"
67453
+ xmlns:osb="http://www.openswatchbook.org/uri/2009/osb"
67454
+ >
67455
+ <defs>
67456
+ <symbol viewBox="0 0 19.736 20.883" id="icon-amber">
67457
+ <path
67458
+ d="M15.163 9.37c-3.622-4.486-4.755-6.107-5.312-6.107-.557 0-1.656 1.621-5.278 6.107.116 2.831 1.424 2.328 5.295 7.062 3.871-4.734 5.179-4.231 5.295-7.062zm-8.26.491c1.296-1.39 2.254-4.473 2.965-4.448.711-.025 1.67 3.058 2.966 4.448-.493 1.425-1.72 2.611-2.966 4.06-1.246-1.449-2.473-2.635-2.965-4.06zm-1.787 7.416C3.03 17.449 0 12.89 0 11.335c0-2.573 4.116-6.501 4.499-7.782l.11-2.16C5.854.397 7.632.1 9.87 0c2.235.099 4.014.396 5.258 1.394l.11 2.159c.383 1.28 4.5 5.209 4.5 7.782 0 1.555-3.085 5.942-5.117 5.942-.86 1.214-3.277 3.606-4.752 3.606-1.474 0-3.892-2.392-4.752-3.606z"
67459
+ />
67460
+ </symbol>
67461
+ <symbol viewBox="0 0 320 512" id="icon-angle-up">
67462
+ <path
67463
+ d="m177 159.7 136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 255.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 329.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1z"
67464
+ />
67465
+ </symbol>
67466
+ <symbol viewBox="0 0 512 512" id="icon-archive">
67467
+ <path
67468
+ d="M32 448c0 17.7 14.3 32 32 32h384c17.7 0 32-14.3 32-32V160H32v288zm160-212c0-6.6 5.4-12 12-12h104c6.6 0 12 5.4 12 12v8c0 6.6-5.4 12-12 12H204c-6.6 0-12-5.4-12-12v-8zM480 32H32C14.3 32 0 46.3 0 64v48c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16V64c0-17.7-14.3-32-32-32z"
67469
+ />
67470
+ </symbol>
67471
+ <symbol viewBox="-10 0 468 512" id="icon-arrow-link">
67472
+ <path
67473
+ fill="currentColor"
67474
+ d="M280 80q-22-2-24-24 2-22 24-24h144q22 2 24 24v144q-2 22-24 24-22-2-24-24v-86L200 312q-16 15-33 0-14-16 0-33L366 80h-86zM0 120q1-24 16-40 16-15 40-16h112q22 2 24 24-2 22-24 24H56q-7 1-8 8v304q1 7 8 8h304q7-1 8-8V312q2-22 24-24 22 2 24 24v112q-1 24-16 40-16 15-40 16H56q-24-1-40-16-15-16-16-40V120z"
67475
+ />
67476
+ </symbol>
67477
+ <symbol viewBox="0 0 512 512" id="icon-arrows-alt-h">
67478
+ <path
67479
+ d="M377.941 169.941V216H134.059v-46.059c0-21.382-25.851-32.09-40.971-16.971L7.029 239.029c-9.373 9.373-9.373 24.568 0 33.941l86.059 86.059c15.119 15.119 40.971 4.411 40.971-16.971V296h243.882v46.059c0 21.382 25.851 32.09 40.971 16.971l86.059-86.059c9.373-9.373 9.373-24.568 0-33.941l-86.059-86.059c-15.119-15.12-40.971-4.412-40.971 16.97z"
67480
+ />
67481
+ </symbol>
67482
+ <symbol viewBox="0 0 1000 1000" id="icon-auction">
67483
+ <path
67484
+ d="m324.4 138.5 250 144.3c19.8 11.4 45 4.6 56.3-15.1 11.4-19.7 4.7-45-15.1-56.3l-250-144.3c-19.8-11.4-45-4.6-56.3 15.1s-4.6 44.8 15.1 56.3zm229.4 180-250-144.3-144.3 250 250 144.3 144.3-250zM97.6 531.3l250 144.3c19.7 11.4 45 4.6 56.3-15.1 11.3-19.7 4.6-45-15.1-56.3L138.8 460c-19.8-11.4-45-4.6-56.3 15.1-11.5 19.6-4.7 44.9 15.1 56.2zm861.5 116.4L502.3 407.8 461 479.3l436.2 275.6c29.6 17.1 67.4 7 84.5-22.6 17.1-29.7 6.9-67.5-22.6-84.6zM506.3 856c0-22.8-18.5-41.2-41.2-41.2H93.8c-22.8 0-41.2 18.4-41.2 41.2v41.2l-42.6-.9 1.4 42.1h536.1l1.9-39.5-40.6-1.7c.1 0-2.5-18.5-2.5-41.2z"
67485
+ />
67486
+ </symbol>
67487
+ <symbol viewBox="0 0 400 423" id="icon-averagePrice">
67488
+ <path
67489
+ d="m162.531 374.211-.905-319.596 70.517-.147 1.118 319.744z"
67490
+ fill="#ff5a69"
67491
+ />
67492
+ </symbol>
67493
+ <symbol viewBox="0 0 384 512" id="icon-award">
67494
+ <path
67495
+ d="M97.12 362.63c-8.69-8.69-4.16-6.24-25.12-11.85-9.51-2.55-17.87-7.45-25.43-13.32L1.2 448.7c-4.39 10.77 3.81 22.47 15.43 22.03l52.69-2.01L105.56 507c8 8.44 22.04 5.81 26.43-4.96l52.05-127.62c-10.84 6.04-22.87 9.58-35.31 9.58-19.5 0-37.82-7.59-51.61-21.37zM382.8 448.7l-45.37-111.24c-7.56 5.88-15.92 10.77-25.43 13.32-21.07 5.64-16.45 3.18-25.12 11.85-13.79 13.78-32.12 21.37-51.62 21.37-12.44 0-24.47-3.55-35.31-9.58L252 502.04c4.39 10.77 18.44 13.4 26.43 4.96l36.25-38.28 52.69 2.01c11.62.44 19.82-11.27 15.43-22.03zM263 340c15.28-15.55 17.03-14.21 38.79-20.14 13.89-3.79 24.75-14.84 28.47-28.98 7.48-28.4 5.54-24.97 25.95-45.75 10.17-10.35 14.14-25.44 10.42-39.58-7.47-28.38-7.48-24.42 0-52.83 3.72-14.14-.25-29.23-10.42-39.58-20.41-20.78-18.47-17.36-25.95-45.75-3.72-14.14-14.58-25.19-28.47-28.98-27.88-7.61-24.52-5.62-44.95-26.41-10.17-10.35-25-14.4-38.89-10.61-27.87 7.6-23.98 7.61-51.9 0-13.89-3.79-28.72.25-38.89 10.61-20.41 20.78-17.05 18.8-44.94 26.41-13.89 3.79-24.75 14.84-28.47 28.98-7.47 28.39-5.54 24.97-25.95 45.75-10.17 10.35-14.15 25.44-10.42 39.58 7.47 28.36 7.48 24.4 0 52.82-3.72 14.14.25 29.23 10.42 39.59 20.41 20.78 18.47 17.35 25.95 45.75 3.72 14.14 14.58 25.19 28.47 28.98C104.6 325.96 106.27 325 121 340c13.23 13.47 33.84 15.88 49.74 5.82a39.676 39.676 0 0 1 42.53 0c15.89 10.06 36.5 7.65 49.73-5.82zM97.66 175.96c0-53.03 42.24-96.02 94.34-96.02s94.34 42.99 94.34 96.02-42.24 96.02-94.34 96.02-94.34-42.99-94.34-96.02z"
67496
+ />
67497
+ </symbol>
67498
+ <symbol viewBox="0 0 640 512" id="icon-backspace">
67499
+ <path
67500
+ d="M576 64H205.26A63.97 63.97 0 0 0 160 82.75L9.37 233.37c-12.5 12.5-12.5 32.76 0 45.25L160 429.25c12 12 28.28 18.75 45.25 18.75H576c35.35 0 64-28.65 64-64V128c0-35.35-28.65-64-64-64zm-84.69 254.06c6.25 6.25 6.25 16.38 0 22.63l-22.62 22.62c-6.25 6.25-16.38 6.25-22.63 0L384 301.25l-62.06 62.06c-6.25 6.25-16.38 6.25-22.63 0l-22.62-22.62c-6.25-6.25-6.25-16.38 0-22.63L338.75 256l-62.06-62.06c-6.25-6.25-6.25-16.38 0-22.63l22.62-22.62c6.25-6.25 16.38-6.25 22.63 0L384 210.75l62.06-62.06c6.25-6.25 16.38-6.25 22.63 0l22.62 22.62c6.25 6.25 6.25 16.38 0 22.63L429.25 256l62.06 62.06z"
67501
+ />
67502
+ </symbol>
67503
+ <symbol viewBox="0 0 512 512" id="icon-ban">
67504
+ <path
67505
+ d="M256 8C119.034 8 8 119.033 8 256s111.034 248 248 248 248-111.034 248-248S392.967 8 256 8zm130.108 117.892c65.448 65.448 70 165.481 20.677 235.637L150.47 105.216c70.204-49.356 170.226-44.735 235.638 20.676zM125.892 386.108c-65.448-65.448-70-165.481-20.677-235.637L361.53 406.784c-70.203 49.356-170.226 44.736-235.638-20.676z"
67506
+ />
67507
+ </symbol>
67508
+ <symbol viewBox="0 0 448 512" id="icon-bars">
67509
+ <path
67510
+ d="M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z"
67511
+ />
67512
+ </symbol>
67513
+ <symbol viewBox="0 0 544 1423" id="icon-candlePrice">
67514
+ <g fill="green">
67515
+ <path
67516
+ d="m141.618 209.102 2.33 804.884 266.39.894-6.224-806.124c-58.188 2.227-202.884-.42-262.496.346z"
67517
+ />
67518
+ <path
67519
+ d="m243.855 250.785-1.697-236.057 63.435-.335.369 236.664zm.917 985.162.013-230.11 64.04-1.797.382 232.173z"
67520
+ />
67521
+ </g>
67522
+ </symbol>
67523
+ <symbol viewBox="0 0 320 512" id="icon-caret-down">
67524
+ <path
67525
+ d="M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z"
67526
+ />
67527
+ </symbol>
67528
+ <symbol viewBox="0 0 192 512" id="icon-caret-left">
67529
+ <path
67530
+ d="M192 127.338v257.324c0 17.818-21.543 26.741-34.142 14.142L29.196 270.142c-7.81-7.81-7.81-20.474 0-28.284l128.662-128.662c12.599-12.6 34.142-3.676 34.142 14.142z"
67531
+ />
67532
+ </symbol>
67533
+ <symbol viewBox="0 0 512 512" id="icon-chart-area">
67534
+ <path
67535
+ d="M500 384c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v308h436zM372.7 159.5 288 216l-85.3-113.7c-5.1-6.8-15.5-6.3-19.9 1L96 248v104h384l-89.9-187.8c-3.2-6.5-11.4-8.7-17.4-4.7z"
67536
+ />
67537
+ </symbol>
67538
+ <symbol viewBox="0 0 512 512" id="icon-check">
67539
+ <path
67540
+ d="m173.898 439.404-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z"
67541
+ />
67542
+ </symbol>
67543
+ <symbol viewBox="0 0 512 512" id="icon-check-circle">
67544
+ <path
67545
+ d="M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm113-303c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-111 111-47-47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0L369 209z"
67546
+ />
67547
+ </symbol>
67548
+ <symbol viewBox="0 0 448 512" id="icon-chevron-down">
67549
+ <path
67550
+ d="M207.029 381.476 12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z"
67551
+ />
67552
+ </symbol>
67553
+ <symbol viewBox="0 0 320 512" id="icon-chevron-left">
67554
+ <path
67555
+ d="M34.52 239.03 228.87 44.69c9.37-9.37 24.57-9.37 33.94 0l22.67 22.67c9.36 9.36 9.37 24.52.04 33.9L131.49 256l154.02 154.75c9.34 9.38 9.32 24.54-.04 33.9l-22.67 22.67c-9.37 9.37-24.57 9.37-33.94 0L34.52 272.97c-9.37-9.37-9.37-24.57 0-33.94z"
67556
+ />
67557
+ </symbol>
67558
+ <symbol viewBox="0 0 448 512" id="icon-chevron-up">
67559
+ <path
67560
+ d="m240.971 130.524 194.343 194.343c9.373 9.373 9.373 24.569 0 33.941l-22.667 22.667c-9.357 9.357-24.522 9.375-33.901.04L224 227.495 69.255 381.516c-9.379 9.335-24.544 9.317-33.901-.04l-22.667-22.667c-9.373-9.373-9.373-24.569 0-33.941L207.03 130.525c9.372-9.373 24.568-9.373 33.941-.001z"
67561
+ />
67562
+ </symbol>
67563
+ <symbol viewBox="0 0 512 512" id="icon-circle">
67564
+ <path
67565
+ d="M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8z"
67566
+ />
67567
+ </symbol>
67568
+ <symbol viewBox="0 0 512 512" id="icon-circle-check">
67569
+ <path
67570
+ d="M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm113-303L241 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L335 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z"
67571
+ />
67572
+ </symbol>
67573
+ <symbol viewBox="0 0 512 512" id="icon-circle-notch">
67574
+ <path
67575
+ d="M288 39.056v16.659c0 10.804 7.281 20.159 17.686 23.066C383.204 100.434 440 171.518 440 256c0 101.689-82.295 184-184 184-101.689 0-184-82.295-184-184 0-84.47 56.786-155.564 134.312-177.219C216.719 75.874 224 66.517 224 55.712V39.064c0-15.709-14.834-27.153-30.046-23.234C86.603 43.482 7.394 141.206 8.003 257.332c.72 137.052 111.477 246.956 248.531 246.667C393.255 503.711 504 392.788 504 256c0-115.633-79.14-212.779-186.211-240.236C302.678 11.889 288 23.456 288 39.056z"
67576
+ />
67577
+ </symbol>
67578
+ <symbol viewBox="0 0 640 512" id="icon-cogs">
67579
+ <path
67580
+ d="m512.1 191-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0L552 6.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zm-10.5-58.8c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.7-82.4 14.3-52.8 52.8zM386.3 286.1l33.7 16.8c10.1 5.8 14.5 18.1 10.5 29.1-8.9 24.2-26.4 46.4-42.6 65.8-7.4 8.9-20.2 11.1-30.3 5.3l-29.1-16.8c-16 13.7-34.6 24.6-54.9 31.7v33.6c0 11.6-8.3 21.6-19.7 23.6-24.6 4.2-50.4 4.4-75.9 0-11.5-2-20-11.9-20-23.6V418c-20.3-7.2-38.9-18-54.9-31.7L74 403c-10 5.8-22.9 3.6-30.3-5.3-16.2-19.4-33.3-41.6-42.2-65.7-4-10.9.4-23.2 10.5-29.1l33.3-16.8c-3.9-20.9-3.9-42.4 0-63.4L12 205.8c-10.1-5.8-14.6-18.1-10.5-29 8.9-24.2 26-46.4 42.2-65.8 7.4-8.9 20.2-11.1 30.3-5.3l29.1 16.8c16-13.7 34.6-24.6 54.9-31.7V57.1c0-11.5 8.2-21.5 19.6-23.5 24.6-4.2 50.5-4.4 76-.1 11.5 2 20 11.9 20 23.6v33.6c20.3 7.2 38.9 18 54.9 31.7l29.1-16.8c10-5.8 22.9-3.6 30.3 5.3 16.2 19.4 33.2 41.6 42.1 65.8 4 10.9.1 23.2-10 29.1l-33.7 16.8c3.9 21 3.9 42.5 0 63.5zm-117.6 21.1c59.2-77-28.7-164.9-105.7-105.7-59.2 77 28.7 164.9 105.7 105.7zm243.4 182.7-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0l8.2-14.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zM501.6 431c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.6-82.4 14.3-52.8 52.8z"
67581
+ />
67582
+ </symbol>
67583
+ <symbol viewBox="0 0 576 512" id="icon-comments">
67584
+ <path
67585
+ d="M416 192c0-88.4-93.1-160-208-160S0 103.6 0 192c0 34.3 14.1 65.9 38 92-13.4 30.2-35.5 54.2-35.8 54.5-2.2 2.3-2.8 5.7-1.5 8.7S4.8 352 8 352c36.6 0 66.9-12.3 88.7-25 32.2 15.7 70.3 25 111.3 25 114.9 0 208-71.6 208-160zm122 220c23.9-26 38-57.7 38-92 0-66.9-53.5-124.2-129.3-148.1.9 6.6 1.3 13.3 1.3 20.1 0 105.9-107.7 192-240 192-10.8 0-21.3-.8-31.7-1.9C207.8 439.6 281.8 480 368 480c41 0 79.1-9.2 111.3-25 21.8 12.7 52.1 25 88.7 25 3.2 0 6.1-1.9 7.3-4.8 1.3-2.9.7-6.3-1.5-8.7-.3-.3-22.4-24.2-35.8-54.5z"
67586
+ />
67587
+ </symbol>
67588
+ <symbol viewBox="0 0 640 512" id="icon-contract">
67589
+ <path
67590
+ d="m519.2 127.9-47.6-47.6A56.252 56.252 0 0 0 432 64H205.2c-14.8 0-29.1 5.9-39.6 16.3L118 127.9H0v255.7h64c17.6 0 31.8-14.2 31.9-31.7h9.1l84.6 76.4c30.9 25.1 73.8 25.7 105.6 3.8 12.5 10.8 26 15.9 41.1 15.9 18.2 0 35.3-7.4 48.8-24 22.1 8.7 48.2 2.6 64-16.8l26.2-32.3c5.6-6.9 9.1-14.8 10.9-23h57.9c.1 17.5 14.4 31.7 31.9 31.7h64V127.9H519.2zM48 351.6c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16c0 8.9-7.2 16-16 16zm390-6.9-26.1 32.2c-2.8 3.4-7.8 4-11.3 1.2l-23.9-19.4-30 36.5c-6 7.3-15 4.8-18 2.4l-36.8-31.5-15.6 19.2c-13.9 17.1-39.2 19.7-55.3 6.6l-97.3-88H96V175.8h41.9l61.7-61.6c2-.8 3.7-1.5 5.7-2.3H262l-38.7 35.5c-29.4 26.9-31.1 72.3-4.4 101.3 14.8 16.2 61.2 41.2 101.5 4.4l8.2-7.5 108.2 87.8c3.4 2.8 3.9 7.9 1.2 11.3zm106-40.8h-69.2c-2.3-2.8-4.9-5.4-7.7-7.7l-102.7-83.4 12.5-11.4c6.5-6 7-16.1 1-22.6L367 167.1c-6-6.5-16.1-6.9-22.6-1l-55.2 50.6c-9.5 8.7-25.7 9.4-34.6 0-9.3-9.9-8.5-25.1 1.2-33.9l65.6-60.1c7.4-6.8 17-10.5 27-10.5l83.7-.2c2.1 0 4.1.8 5.5 2.3l61.7 61.6H544v128zm48 47.7c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16c0 8.9-7.2 16-16 16z"
67591
+ />
67592
+ </symbol>
67593
+ <symbol viewBox="0 0 24 24" id="icon-crossplay">
67594
+ <path
67595
+ d="M10.762 3.098c-1.124.118-2.38.62-3.623 1.449C5.972 5.32 4.9 6.28 3.01 8.255c-1.364 1.42-1.598 1.701-1.86 2.25-.277.58-.361 1.003-.37 1.762 0 .361.013.68.032.699.019.023.712-.638 1.533-1.458l1.5-1.5v1.828L2.32 13.359.797 14.883l.01 1.256.013 1.252 3.985-3.966c2.193-2.18 4.153-4.097 4.36-4.26.735-.577 1.424-.93 2.165-1.107.567-.136 1.383-.108 1.865.06 1.557.554 2.663 1.913 2.817 3.465.02.178.043.323.061.323.014 0 .32-.29.675-.647l.643-.642v-.262c0-.572-.3-1.35-.76-1.974-.75-1.017-2.151-1.86-3.6-2.175-.614-.131-1.617-.112-2.208.042-1.5.394-2.63 1.163-4.434 3.024l-.712.736-.005-.919V8.17l.375-.45C7.12 6.436 8.634 5.4 10.03 5.002c.746-.216 1.29-.282 2.147-.258a7.312 7.312 0 0 1 3.211.815c1.425.718 2.658 1.932 3.22 3.178.211.465.253.375.22-.496-.023-.816-.107-1.172-.412-1.805-.736-1.533-2.54-2.78-4.612-3.197a11.417 11.417 0 0 0-3.043-.14Z"
67596
+ />
67597
+ <path
67598
+ d="M19.148 10.575c-2.189 2.18-4.153 4.097-4.359 4.26-.736.577-1.425.93-2.166 1.107-.567.136-1.382.108-1.865-.06-1.556-.554-2.663-1.913-2.817-3.465-.02-.178-.043-.323-.061-.323-.014 0-.32.29-.675.647l-.643.642v.262c0 .572.3 1.35.76 1.974.75 1.017 2.151 1.86 3.6 2.175.614.131 1.617.112 2.208-.042 1.5-.394 2.63-1.163 4.434-3.024l.713-.736.004.919v.919l-.375.45c-1.073 1.284-2.587 2.32-3.984 2.718-.745.216-1.29.282-2.147.258a7.31 7.31 0 0 1-3.21-.815c-1.426-.718-2.659-1.932-3.221-3.178-.211-.465-.253-.376-.22.496.023.816.107 1.172.412 1.805.614 1.275 1.992 2.386 3.652 2.94 1.673.557 3.839.594 5.371.093.563-.183 1.618-.713 2.246-1.134 1.18-.788 2.245-1.744 4.139-3.718 1.364-1.42 1.598-1.701 1.86-2.25.277-.58.362-1.003.371-1.762 0-.361-.014-.68-.033-.699-.019-.023-.712.638-1.533 1.458l-1.5 1.5v-1.828l1.524-1.523 1.523-1.524-.01-1.256-.013-1.252Z"
67599
+ />
67600
+ </symbol>
67601
+ <symbol viewBox="0 0 24 24" id="icon-crossplay-warn">
67602
+ <g clip-path="url(#icon-crossplay-warn_a)">
67603
+ <path
67604
+ d="M10.762 3.098c-1.124.118-2.38.62-3.623 1.449C5.972 5.32 4.9 6.28 3.01 8.255c-1.364 1.42-1.598 1.701-1.86 2.25-.277.58-.361 1.003-.37 1.762 0 .361.013.68.032.699.019.023.712-.638 1.533-1.458l1.5-1.5v1.828L2.32 13.359.797 14.883l.01 1.256.013 1.252 3.985-3.966c2.193-2.18 4.153-4.097 4.36-4.26.735-.577 1.424-.93 2.165-1.107.567-.136 1.383-.108 1.865.06 1.557.554 2.663 1.913 2.817 3.465.02.178.043.323.061.323.014 0 .32-.29.675-.647l.643-.642v-.262c0-.572-.3-1.35-.76-1.974-.75-1.017-2.151-1.86-3.6-2.175-.614-.131-1.617-.112-2.208.042-1.5.394-2.63 1.163-4.434 3.024l-.712.736-.005-.919V8.17l.375-.45C7.12 6.436 8.634 5.4 10.03 5.002c.746-.216 1.29-.282 2.147-.258a7.312 7.312 0 0 1 3.211.815c1.425.718 2.658 1.932 3.22 3.178.211.465.253.375.22-.496-.023-.816-.107-1.172-.412-1.805-.736-1.533-2.54-2.78-4.612-3.197a11.417 11.417 0 0 0-3.043-.14Z"
67605
+ />
67606
+ <path
67607
+ d="M19.148 10.575c-2.189 2.18-4.153 4.097-4.359 4.26-.736.577-1.425.93-2.166 1.107-.567.136-1.382.108-1.865-.06-1.556-.554-2.663-1.913-2.817-3.465-.02-.178-.043-.323-.061-.323-.014 0-.32.29-.675.647l-.643.642v.262c0 .572.3 1.35.76 1.974.75 1.017 2.151 1.86 3.6 2.175.614.131 1.617.112 2.208-.042 1.5-.394 2.63-1.163 4.434-3.024l.713-.736.004.919v.919l-.375.45c-1.073 1.284-2.587 2.32-3.984 2.718-.745.216-1.29.282-2.147.258a7.31 7.31 0 0 1-3.21-.815c-1.426-.718-2.659-1.932-3.221-3.178-.211-.465-.253-.376-.22.496.023.816.107 1.172.412 1.805.614 1.275 1.992 2.386 3.652 2.94 1.673.557 3.839.594 5.371.093.563-.183 1.618-.713 2.246-1.134 1.18-.788 2.245-1.744 4.139-3.718 1.364-1.42 1.598-1.701 1.86-2.25.277-.58.362-1.003.371-1.762 0-.361-.014-.68-.033-.699-.019-.023-.712.638-1.533 1.458l-1.5 1.5v-1.828l1.524-1.523 1.523-1.524-.01-1.256-.013-1.252Z"
67608
+ />
67609
+ <path
67610
+ d="M18.741 12.996a.868.868 0 0 0-.313-.323.836.836 0 0 0-.856 0 .868.868 0 0 0-.313.323l-5.185 9.075c-.345.605.07 1.374.742 1.374h10.368c.672 0 1.087-.77.741-1.374z"
67611
+ fill="#fff"
67612
+ />
67613
+ <path
67614
+ d="M18.741 12.996a.868.868 0 0 0-.313-.323.836.836 0 0 0-.856 0 .868.868 0 0 0-.313.323l-5.185 9.075c-.345.605.07 1.374.742 1.374h10.368c.672 0 1.087-.77.741-1.374zM18 15.667c.404 0 .721.36.68.774l-.264 2.728a.434.434 0 0 1-.134.28.411.411 0 0 1-.565 0 .434.434 0 0 1-.133-.28l-.265-2.728a.723.723 0 0 1 .174-.542.685.685 0 0 1 .507-.232zm0 4.667c.2 0 .393.082.535.228a.79.79 0 0 1 .221.55c0 .206-.08.404-.221.55a.746.746 0 0 1-.535.227.746.746 0 0 1-.535-.227.789.789 0 0 1-.22-.55.79.79 0 0 1 .22-.55.746.746 0 0 1 .535-.228z"
67615
+ fill="#a52f31"
67616
+ />
67617
+ </g>
67618
+ <defs />
67619
+ </symbol>
67620
+ <clipPath id="icon-crossplay-warn_a">
67621
+ <path fill="#fff" d="M0 0h24v24H0z" />
67622
+ </clipPath>
67623
+ <symbol viewBox="0 0 512 512" id="icon-cubes">
67624
+ <path
67625
+ d="M488.6 250.2 392 214V105.5c0-15-9.3-28.4-23.4-33.7l-100-37.5c-8.1-3.1-17.1-3.1-25.3 0l-100 37.5c-14.1 5.3-23.4 18.7-23.4 33.7V214l-96.6 36.2C9.3 255.5 0 268.9 0 283.9V394c0 13.6 7.7 26.1 19.9 32.2l100 50c10.1 5.1 22.1 5.1 32.2 0l103.9-52 103.9 52c10.1 5.1 22.1 5.1 32.2 0l100-50c12.2-6.1 19.9-18.6 19.9-32.2V283.9c0-15-9.3-28.4-23.4-33.7zM358 214.8l-85 31.9v-68.2l85-37v73.3zM154 104.1l102-38.2 102 38.2v.6l-102 41.4-102-41.4v-.6zm84 291.1-85 42.5v-79.1l85-38.8v75.4zm0-112-102 41.4-102-41.4v-.6l102-38.2 102 38.2v.6zm240 112-85 42.5v-79.1l85-38.8v75.4zm0-112-102 41.4-102-41.4v-.6l102-38.2 102 38.2v.6z"
67626
+ />
67627
+ </symbol>
67628
+ <symbol viewBox="0 0 14.021 15.329" id="icon-cyan">
67629
+ <path
67630
+ d="M14.021 7.959c-.972-1.693-3.793-4.185-3.204-6.465L6.972 0 3.124 1.493C3.714 3.773.972 6.266 0 7.959c1.194 4.657 4.173 6.192 6.973 7.37 2.8-1.178 5.855-2.713 7.048-7.37zM3.127 7.783s1.898-4.066 3.848-5.095c1.95 1.029 3.92 5.095 3.92 5.095-1.4 2.758-3.922 3.62-3.922 3.62s-2.448-.862-3.846-3.62zm6.397-.067A10.821 10.821 0 0 0 6.98 4.397c-1.086.968-1.853 2.053-2.483 3.32.686.98 1.492 1.724 2.48 2.282a7.647 7.647 0 0 0 2.547-2.283z"
67631
+ />
67632
+ </symbol>
67633
+ <symbol viewBox="0 0 940 940" id="icon-cycle-icon">
67634
+ <path
67635
+ d="M469.594.813c-132.135.23-258.059 56.12-346.873 153.955-31.762-19.523-64.48-37.499-96.83-56.034l29.308 229.293 210.975-88.775-89.528-50.959A407.135 407.135 0 0 1 469.594 63.271 407.135 407.135 0 1 1 62.459 470.406l.02-.406H.014l-.014.406a469.593 469.593 0 1 0 939.188 0A469.593 469.593 0 0 0 469.594.812z"
67636
+ />
67637
+ </symbol>
67638
+ <symbol viewBox="-10 0 522 512" id="icon-dice">
67639
+ <path
67640
+ d="M20 317q-4 0-4-4V151q0-4 4-5 1 0 2 1l77 45-76 122q-1 4-3 3zm211 88L23 383q-7-1-7-8 0-2 1-4l106-156 108 190zM31 420q0-3 4-4h1l203 22v66q0 7-7 8-2 0-3-1L34 424q-2-2-3-4zm325-213L256 383 156 207h200zm120 208q4 1 4 4 0 2-2 4l-195 87q-1 1-3 1-7 0-8-8v-66l204-22zm19-44q1 2 1 4 0 7-7 8l-208 22 108-190 106 156zm-4-224q4 0 4 4v162q0 4-4 4-2 0-3-2l-76-122 77-45 2-1z"
67641
+ fill="currentColor"
67642
+ />
67643
+ <path
67644
+ d="M196.54 20.512q-1-8-8-8-2 0-4 1l-151 98q-2 2-3 4 0 2 2 3l83 49 79-143q2-2 2-4zm58-19q-7 0-13 8l-95 167h218l-95-168q-5-7-15-7zm224 114q0-2-2-4l-151-98q-2-1-4-1-7 0-8 8 0 2 2 4l80 143 81-49q3-1 2-3z"
67645
+ fill="currentColor"
67646
+ fill-opacity=".75"
67647
+ />
67648
+ </symbol>
67649
+ <symbol viewBox="0 0 71 71" id="icon-discord">
67650
+ <path
67651
+ d="M60.105 12.928a58.55 58.55 0 0 0-14.452-4.483.22.22 0 0 0-.233.11 40.784 40.784 0 0 0-1.8 3.697c-5.456-.817-10.886-.817-16.23 0-.485-1.164-1.201-2.587-1.828-3.697a.228.228 0 0 0-.233-.11 58.386 58.386 0 0 0-14.451 4.483.207.207 0 0 0-.095.082C1.578 26.76-.944 40.174.293 53.42a.244.244 0 0 0 .093.167c6.073 4.46 11.955 7.167 17.729 8.962a.23.23 0 0 0 .249-.082 42.08 42.08 0 0 0 3.627-5.9.225.225 0 0 0-.123-.312 38.772 38.772 0 0 1-5.539-2.64.228.228 0 0 1-.022-.378 31.17 31.17 0 0 0 1.1-.862.22.22 0 0 1 .23-.03c11.619 5.304 24.198 5.304 35.68 0a.219.219 0 0 1 .233.027c.356.293.728.586 1.103.865a.228.228 0 0 1-.02.378 36.384 36.384 0 0 1-5.54 2.637.227.227 0 0 0-.121.315 47.249 47.249 0 0 0 3.624 5.897.225.225 0 0 0 .249.084c5.801-1.794 11.684-4.502 17.757-8.96a.228.228 0 0 0 .092-.165c1.48-15.315-2.48-28.618-10.497-40.412a.18.18 0 0 0-.093-.084zm-36.38 32.427c-3.497 0-6.38-3.21-6.38-7.156 0-3.944 2.827-7.156 6.38-7.156 3.583 0 6.438 3.24 6.382 7.156 0 3.945-2.827 7.156-6.381 7.156zm23.593 0c-3.498 0-6.38-3.21-6.38-7.156 0-3.944 2.826-7.156 6.38-7.156 3.582 0 6.437 3.24 6.38 7.156 0 3.945-2.798 7.156-6.38 7.156z"
67652
+ />
67653
+ </symbol>
67654
+ <symbol viewBox="0 0 503 523" id="icon-dochPrice">
67655
+ <defs />
67656
+ <path
67657
+ d="m62.572 63.274 2.965-.822-.41 1.084z"
67658
+ opacity=".85"
67659
+ fill="#171e21"
67660
+ fill-opacity=".01"
67661
+ stroke="#171ed9"
67662
+ stroke-width=".008"
67663
+ transform="matrix(30.54912 0 0 33.4782 -1979.787 -2198.975)"
67664
+ />
67665
+ <path
67666
+ d="m66.514 78.982-.005-11.15 13.099.005.01 11.14z"
67667
+ opacity=".15"
67668
+ fill="#265663"
67669
+ stroke="url(#icon-dochPrice_b)"
67670
+ stroke-width=".014"
67671
+ stroke-opacity=".01"
67672
+ transform="matrix(30.54912 0 0 33.4782 -1979.787 -2198.975)"
67673
+ />
67674
+ <path
67675
+ d="M79.374 75.524c.01-.704.018-1.313.023-1.836.026-2.575-.002-3.08-.002-2.657 0 .554.006 2.608-.021 4.493zm-12.64.199c.01-.704.018-1.312.023-1.836.026-2.574-.002-3.079-.002-2.656 0 .553.006 2.608-.021 4.492zm-.063-7.661c.772.01 1.44.016 2.013.02 2.821.025 3.374 0 2.91-.001-.606 0-2.858.005-4.923-.02zm7.699-.064c.772.01 1.44.016 2.013.021 2.821.024 3.374-.002 2.91-.002-.606 0-2.858.005-4.922-.02zm.086 10.781c.772.01 1.439.016 2.012.02 2.822.025 3.375 0 2.911-.001-.606 0-2.858.005-4.923-.02zm-7.752.034c.772.01 1.44.016 2.013.021 2.821.024 3.374-.002 2.91-.002-.606 0-2.858.006-4.923-.02z"
67676
+ opacity=".259"
67677
+ fill="#4d4d4d"
67678
+ fill-opacity=".988"
67679
+ stroke="#171e21"
67680
+ stroke-width=".345"
67681
+ transform="matrix(30.54912 0 0 33.4782 -1979.787 -2198.975)"
67682
+ />
67683
+ </symbol>
67684
+ <linearGradient osb:paint="solid" id="icon-dochPrice_a">
67685
+ <stop offset="0" stop-color="#171e21" />
67686
+ </linearGradient>
67687
+ <linearGradient
67688
+ gradientTransform="translate(1.708 2.148)"
67689
+ y2="71.258"
67690
+ x2="77.916"
67691
+ y1="71.258"
67692
+ x1="64.794"
67693
+ gradientUnits="userSpaceOnUse"
67694
+ id="icon-dochPrice_b"
67695
+ xlink:href="#icon-dochPrice_a"
67696
+ />
67697
+ <symbol viewBox="0 0 512 512" id="icon-dot-circle">
67698
+ <path
67699
+ d="M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm80 248c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80z"
67700
+ />
67701
+ </symbol>
67702
+ <symbol viewBox="0 0 18.231 22.384" id="icon-ducats">
67703
+ <path
67704
+ d="m7.986.006-.275.363H4.737l2.606 4.189-.008 13.603 1.762 3.268 1.762-3.268-.008-13.603L13.457.369h-2.973l-.276-.363H7.986zM4.805 1.522c-.887.528-1.917 1.425-2.571 2.225l2.232 1.138c.4-.42 1.149-.981 1.646-1.277L4.805 1.522zm8.584 0-1.307 2.086c.497.296 1.246.856 1.646 1.277l2.232-1.138c-.654-.8-1.684-1.697-2.57-2.225zM.542 3.497l2.5 4.46v9.41l2.353.378.017-11.763-4.87-2.485zm17.11 0-4.87 2.485.017 11.763 2.353-.379v-9.41l2.5-4.459zM1.057 5.52C.598 6.61.346 8.06.346 9.321c0 2.25.812 4.303 2.15 5.877l.02-7.08L1.057 5.52zm16.08 0-1.459 2.597.02 7.081a9.046 9.046 0 0 0 2.15-5.877c0-1.26-.252-2.712-.711-3.8zm-11.23 8.93v3.103c.274.167.575.323.909.454V14.45c-.312.01-.696-.008-.91 0zm5.472 0v3.557a5.94 5.94 0 0 0 .91-.454v-3.104c-.215-.008-.599.01-.91 0zM3.04 18.006 5.396 22.4v-4.026l-2.356-.368zm12.114 0-2.355.368V22.4l2.355-4.394z"
67705
+ paint-order="markers stroke fill"
67706
+ />
67707
+ </symbol>
67708
+ <symbol viewBox="0 0 576 512" id="icon-edit">
67709
+ <path
67710
+ d="m402.3 344.9 32-32c5-5 13.7-1.5 13.7 5.7V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h273.5c7.1 0 10.7 8.6 5.7 13.7l-32 32c-1.5 1.5-3.5 2.3-5.7 2.3H48v352h352V350.5c0-2.1.8-4.1 2.3-5.6zm156.6-201.8L296.3 405.7l-90.4 10c-26.2 2.9-48.5-19.2-45.6-45.6l10-90.4L432.9 17.1c22.9-22.9 59.9-22.9 82.7 0l43.2 43.2c22.9 22.9 22.9 60 .1 82.8zM460.1 174 402 115.9 216.2 301.8l-7.3 65.3 65.3-7.3L460.1 174zm64.8-79.7-43.2-43.2c-4.1-4.1-10.8-4.1-14.8 0L436 82l58.1 58.1 30.9-30.9c4-4.2 4-10.8-.1-14.9z"
67711
+ />
67712
+ </symbol>
67713
+ <symbol viewBox="0 0 512 512" id="icon-ellipsis-h">
67714
+ <path
67715
+ d="M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z"
67716
+ />
67717
+ </symbol>
67718
+ <symbol viewBox="0 0 256 251.342" id="icon-endo">
67719
+ <path
67720
+ style="
67721
+ display: inline;
67722
+ opacity: 1;
67723
+ fill-opacity: 1;
67724
+ stroke: none;
67725
+ stroke-width: 0.785732;
67726
+ stroke-dasharray: none;
67727
+ stroke-opacity: 1;
67728
+ "
67729
+ d="M127.322 0C65.442.142 13.79 45.301 7.982 106.908l3.266-2.563 18.698-2.582c8.011-47.544 49.162-80.406 97.376-80.442h1.356c48.214.036 89.365 32.898 97.376 80.442l18.698 2.582 3.265 2.563C242.21 45.301 190.557.142 128.678 0Zm-.035 47.06c-32.405.03-60.827 21.633-69.53 52.847l.023-.003v3.347h14.186v-5.306l17.076-2.676c11.52-12.664 18.687-20.448 38.959-20.53 20.271.082 27.436 7.866 38.957 20.53l17.076 2.676v5.306h14.186v-3.347l.023.003c-8.703-31.214-37.125-52.817-69.53-52.846ZM128 84.513c-18.59.058-28.32 13.998-28.32 13.998l14.377.104-14.374 8.299H75.715l-37.213.01-24.361 3.365L0 121.395l26.828 11.82 70.13 3.585a35.294 35.294 0 0 0 12.581 13.113l6.143 69.327L128 251.342l12.317-32.102 6.143-69.327a35.295 35.295 0 0 0 12.581-13.113l70.13-3.585L256 121.395l-14.14-11.107-24.362-3.365-37.213-.01h-23.969l-14.373-8.299 14.376-.104s-9.729-13.94-28.318-13.998zm0 19.427c8.8.082 15.913 7.226 15.914 16.045 0 8.82-7.115 15.963-15.914 16.046-8.8-.083-15.915-7.227-15.915-16.046 0-8.819 7.115-15.963 15.915-16.045zM25.496 117.625h16.915c4.634.004 4.634 6.484 0 6.484H25.496c-4.634 0-4.634-6.484 0-6.484zm31.445 0h5.376c4.635.004 4.635 6.487 0 6.484h-5.376c-4.635-.004-4.635-6.488 0-6.484zm19.972 0h5.377c4.634.004 4.634 6.487 0 6.484h-5.377c-4.635-.004-4.635-6.488 0-6.484zm96.797 0h5.377c4.634-.004 4.634 6.48 0 6.484h-5.377c-4.635.004-4.635-6.48 0-6.484zm19.973 0h5.378c4.635-.004 4.635 6.48 0 6.484h-5.378c-4.635.004-4.635-6.48 0-6.484zm19.906 0h16.915c4.634 0 4.634 6.484 0 6.484h-16.915c-4.634 0-4.634-6.48 0-6.484zm-116.761.026h5.376c4.635.004 4.635 6.487 0 6.484h-5.376c-4.635-.004-4.635-6.488 0-6.484zm56.968 0h5.376c4.635-.004 4.635 6.48 0 6.484h-5.376c-4.635.004-4.635-6.48 0-6.484zM7.808 132.014c4.531 59.23 52.241 103.835 111.479 108.229l-9.88-20.952-9.918-21.851-7.229.14-6.56 6.127 17.64 25.85-21.698-22.127c-26.292-13.768-45.539-35.888-51.267-66.031l-1.433-.074zm240.384 0-21.134 9.311-1.433.074c-5.728 30.143-24.975 52.263-51.267 66.03l-21.698 22.128 17.64-25.85-6.56-6.126-7.23-.141-9.917 21.85-9.88 20.953c59.237-4.395 106.948-48.998 111.479-108.23zm-190.283 6.823c6.87 23.077 27.875 47.583 50.865 54.739l-2.3-25.03c-11.001-5.613-22.351-17.148-27.256-28.484Zm140.182 0-21.309 1.225c-4.905 11.336-16.255 22.871-27.257 28.485l-2.3 25.029c22.991-7.156 43.997-31.662 50.866-54.74zm-76.686 20.178H134.595s-.313 3.032-1.503 4.052c-1.189 1.02-5.091 1.022-5.091 1.022s-3.904-.002-5.093-1.022c-1.19-1.02-1.503-4.052-1.503-4.052zm-.037 19.701h13.264s.287 5.746-1.126 7.473c-1.413 1.726-5.505 1.992-5.505 1.992s-4.094-.266-5.507-1.992c-1.413-1.727-1.126-7.473-1.126-7.473zm.118 24.293H134.514s-.644 5.267-1.933 6.897c-1.267 1.602-4.467 2.517-4.58 2.55-.114-.033-3.315-.948-4.582-2.55-1.289-1.63-1.933-6.897-1.933-6.897z"
67730
+ />
67731
+ <path
67732
+ style="display: inline; opacity: 0.75; stroke-width: 0.799524"
67733
+ d="m99.685 98.435-23.498 3.417.049 5.238 23.452-.006 14.504-8.542zm56.63 0-14.507.107 14.504 8.542 23.454.006.047-5.238zm-76.94 43.87c3.308 10.97 13.424 22.62 24.495 26.022l-1.108-11.899c-5.298-2.668-10.763-8.153-13.125-13.542zm97.25 0-10.262.581c-2.362 5.39-7.827 10.874-13.125 13.542l-1.106 11.9c11.07-3.402 21.185-15.053 24.492-26.024zM85.7 203.706l-4.06 3.723 21.699 22.127zm84.598 0-17.639 25.85 21.698-22.127z"
67734
+ />
67735
+ </symbol>
67736
+ <symbol viewBox="0 0 512 512" id="icon-envelope">
67737
+ <path
67738
+ d="M502.3 190.8c3.9-3.1 9.7-.2 9.7 4.7V400c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V195.6c0-5 5.7-7.8 9.7-4.7 22.4 17.4 52.1 39.5 154.1 113.6 21.1 15.4 56.7 47.8 92.2 47.6 35.7.3 72-32.8 92.3-47.6 102-74.1 131.6-96.3 154-113.7zM256 320c23.2.4 56.6-29.2 73.4-41.4 132.7-96.3 142.8-104.7 173.4-128.7 5.8-4.5 9.2-11.5 9.2-18.9v-19c0-26.5-21.5-48-48-48H48C21.5 64 0 85.5 0 112v19c0 7.4 3.4 14.3 9.2 18.9 30.6 23.9 40.7 32.4 173.4 128.7 16.8 12.2 50.2 41.8 73.4 41.4z"
67739
+ />
67740
+ </symbol>
67741
+ <symbol viewBox="0 0 512 512" id="icon-exchange-alt">
67742
+ <path
67743
+ d="M0 168v-16c0-13.255 10.745-24 24-24h360V80c0-21.367 25.899-32.042 40.971-16.971l80 80c9.372 9.373 9.372 24.569 0 33.941l-80 80C409.956 271.982 384 261.456 384 240v-48H24c-13.255 0-24-10.745-24-24zm488 152H128v-48c0-21.314-25.862-32.08-40.971-16.971l-80 80c-9.372 9.373-9.372 24.569 0 33.941l80 80C102.057 463.997 128 453.437 128 432v-48h360c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24z"
67744
+ />
67745
+ </symbol>
67746
+ <symbol viewBox="0 0 576 512" id="icon-eye">
67747
+ <path
67748
+ d="M569.354 231.631C512.97 135.949 407.81 72 288 72 168.14 72 63.004 135.994 6.646 231.631a47.999 47.999 0 0 0 0 48.739C63.031 376.051 168.19 440 288 440c119.86 0 224.996-63.994 281.354-159.631a47.997 47.997 0 0 0 0-48.738zM288 392c-102.556 0-192.091-54.701-240-136 44.157-74.933 123.677-127.27 216.162-135.007C273.958 131.078 280 144.83 280 160c0 30.928-25.072 56-56 56s-56-25.072-56-56l.001-.042C157.794 179.043 152 200.844 152 224c0 75.111 60.889 136 136 136s136-60.889 136-136c0-31.031-10.4-59.629-27.895-82.515C451.704 164.638 498.009 205.106 528 256c-47.908 81.299-137.444 136-240 136z"
67749
+ />
67750
+ </symbol>
67751
+ <symbol viewBox="0 0 576 512" id="icon-eye-slash">
67752
+ <path
67753
+ d="M272.702 359.139c-80.483-9.011-136.212-86.886-116.93-167.042l116.93 167.042zM288 392c-102.556 0-192.092-54.701-240-136 21.755-36.917 52.1-68.342 88.344-91.658l-27.541-39.343C67.001 152.234 31.921 188.741 6.646 231.631a47.999 47.999 0 0 0 0 48.739C63.004 376.006 168.14 440 288 440a332.89 332.89 0 0 0 39.648-2.367l-32.021-45.744A284.16 284.16 0 0 1 288 392zm281.354-111.631c-33.232 56.394-83.421 101.742-143.554 129.492l48.116 68.74c3.801 5.429 2.48 12.912-2.949 16.712L450.23 509.83c-5.429 3.801-12.912 2.48-16.712-2.949L102.084 33.399c-3.801-5.429-2.48-12.912 2.949-16.712L125.77 2.17c5.429-3.801 12.912-2.48 16.712 2.949l55.526 79.325C226.612 76.343 256.808 72 288 72c119.86 0 224.996 63.994 281.354 159.631a48.002 48.002 0 0 1 0 48.738zM528 256c-44.157-74.933-123.677-127.27-216.162-135.007C302.042 131.078 296 144.83 296 160c0 30.928 25.072 56 56 56s56-25.072 56-56l-.001-.042c30.632 57.277 16.739 130.26-36.928 171.719l26.695 38.135C452.626 346.551 498.308 306.386 528 256z"
67754
+ />
67755
+ </symbol>
67756
+ <symbol viewBox="0 0 512 512" id="icon-filter2">
67757
+ <path
67758
+ d="M24 64h336c10 0 19 6 22 15 4 9 2 19-5 26L256 226v198c0 10-6 19-15 22-9 4-19 2-26-5l-80-80c-4-4-7-10-7-17V226L7 105c-7-7-9-17-5-26s12-15 22-15Zm145 135c5 5 7 11 7 17v118l32 32V216c0-6 3-12 7-17l87-87H82ZM472 64h48c13 0 24 11 24 24s-11 24-24 24h-48c-13 0-24-11-24-24s11-24 24-24zM344 232h176c13 0 24 11 24 24s-11 24-24 24H344c-13 0-24-11-24-24s11-24 24-24zm0 168h176c13 0 24 11 24 24s-11 24-24 24H344c-13 0-24-11-24-24s11-24 24-24z"
67759
+ />
67760
+ </symbol>
67761
+ <symbol viewBox="0 0 448 512" id="icon-fire-alt">
67762
+ <path
67763
+ fill="currentColor"
67764
+ d="M323.56 51.2c-20.8 19.3-39.58 39.59-56.22 59.97C240.08 73.62 206.28 35.53 168 0 69.74 91.17 0 209.96 0 281.6 0 408.85 100.29 512 224 512s224-103.15 224-230.4c0-53.27-51.98-163.14-124.44-230.4zm-19.47 340.65C282.43 407.01 255.72 416 226.86 416 154.71 416 96 368.26 96 290.75c0-38.61 24.31-72.63 72.79-130.75 6.93 7.98 98.83 125.34 98.83 125.34l58.63-66.88c4.14 6.85 7.91 13.55 11.27 19.97 27.35 52.19 15.81 118.97-33.43 153.42z"
67765
+ />
67766
+ </symbol>
67767
+ <symbol viewBox="0 0 496 512" id="icon-frown">
67768
+ <path
67769
+ d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-64c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm-80 128c-40.2 0-78 17.7-103.8 48.6-8.5 10.2-7.1 25.3 3.1 33.8 10.2 8.4 25.3 7.1 33.8-3.1 16.6-19.9 41-31.4 66.9-31.4s50.3 11.4 66.9 31.4c8.1 9.7 23.1 11.9 33.8 3.1 10.2-8.5 11.5-23.6 3.1-33.8C326 321.7 288.2 304 248 304z"
67770
+ />
67771
+ </symbol>
67772
+ <symbol viewBox="0 0 1024 1024" id="icon-github">
67773
+ <path
67774
+ d="M512 13.028C229.345 13.028.407 241.966.407 524.62c0 226.38 146.443 417.588 349.802 485.374 25.58 4.476 35.172-10.871 35.172-24.3 0-12.151-.64-52.439-.64-95.285-128.538 23.661-161.791-31.335-172.023-60.112-5.755-14.708-30.696-60.112-52.438-72.263-17.906-9.592-43.486-33.253-.64-33.893 40.288-.64 69.065 37.09 78.658 52.439 46.043 77.378 119.585 55.635 149.001 42.206 4.477-33.254 17.906-55.636 32.614-68.426-113.83-12.79-232.775-56.914-232.775-252.599 0-55.635 19.825-101.679 52.439-137.49-5.116-12.79-23.022-65.229 5.116-135.573 0 0 42.845-13.429 140.688 52.439 40.927-11.511 84.413-17.267 127.898-17.267s86.97 5.756 127.898 17.267c97.842-66.507 140.688-52.439 140.688-52.439 28.138 70.344 10.232 122.783 5.116 135.573 32.614 35.811 52.439 81.215 52.439 137.49 0 196.324-119.585 239.81-233.415 252.6 18.545 15.987 34.533 46.682 34.533 94.644 0 68.426-.64 123.422-.64 140.688 0 13.43 9.593 29.417 35.172 24.301 202.08-67.786 348.523-259.634 348.523-485.374 0-282.655-228.938-511.593-511.593-511.593z"
67775
+ />
67776
+ </symbol>
67777
+ <symbol viewBox="0 0 384 512" id="icon-hourglass-half">
67778
+ <path
67779
+ d="M360 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24zm-75.078 384H99.08c17.059-46.797 52.096-80 92.92-80 40.821 0 75.862 33.196 92.922 80zm.019-256H99.078C91.988 108.548 88 86.748 88 64h208c0 22.805-3.987 44.587-11.059 64z"
67780
+ />
67781
+ </symbol>
67782
+ <symbol viewBox="0 0 640 512" id="icon-infinity">
67783
+ <path
67784
+ d="M471.1 96C405 96 353.3 137.3 320 174.6 286.7 137.3 235 96 168.9 96 75.8 96 0 167.8 0 256s75.8 160 168.9 160c66.1 0 117.8-41.3 151.1-78.6 33.3 37.3 85 78.6 151.1 78.6 93.1 0 168.9-71.8 168.9-160S564.2 96 471.1 96zM168.9 320c-40.2 0-72.9-28.7-72.9-64s32.7-64 72.9-64c38.2 0 73.4 36.1 94 64-20.4 27.6-55.9 64-94 64zm302.2 0c-38.2 0-73.4-36.1-94-64 20.4-27.6 55.9-64 94-64 40.2 0 72.9 28.7 72.9 64s-32.7 64-72.9 64z"
67785
+ />
67786
+ </symbol>
67787
+ <symbol viewBox="0 0 512 512" id="icon-info">
67788
+ <path
67789
+ d="M256 40c118.621 0 216 96.075 216 216 0 119.291-96.61 216-216 216-119.244 0-216-96.562-216-216 0-119.203 96.602-216 216-216m0-32C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm-36 344h12V232h-12c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h48c6.627 0 12 5.373 12 12v140h12c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12h-72c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12zm36-240c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32z"
67790
+ />
67791
+ </symbol>
67792
+ <symbol viewBox="0 0 512 512" id="icon-link">
67793
+ <path
67794
+ d="M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z"
67795
+ />
67796
+ </symbol>
67797
+ <symbol viewBox="0 0 16.267 16.491" id="icon-madurai">
67798
+ <path
67799
+ d="M1.694 16.491c2.23-6.227 5.77-7.546 8.965-10.499.951-.88 3.086-2.097 4.85-2.429-.685-.632-1.147-.878-1.782-1.182-.778-.408-1.376-.255-2.676 1.188-1.155 1.317-5.634 4.724-6.369 4.886-.6-1.235.772-5.57.975-8.455 0 0-3.164 2.749-5.657 2.557 0 0 2.429.895 2.557 1.917z"
67800
+ />
67801
+ </symbol>
67802
+ <symbol viewBox="0 0 400 423" id="icon-medianPrice">
67803
+ <path
67804
+ d="m162.531 374.211-.905-319.596 70.517-.147 1.118 319.744z"
67805
+ fill="#5a95ff"
67806
+ />
67807
+ </symbol>
67808
+ <symbol viewBox="0 0 496 512" id="icon-meh">
67809
+ <path
67810
+ d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-64c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm8 144H160c-13.2 0-24 10.8-24 24s10.8 24 24 24h176c13.2 0 24-10.8 24-24s-10.8-24-24-24z"
67811
+ />
67812
+ </symbol>
67813
+ <symbol viewBox="0 0 18 18" id="icon-naramon">
67814
+ <path
67815
+ d="M2.096 13.26c-.135-1.702-.278-3.405-1.943-5.401l14.824-.226c1.105-.706.837-2.893.837-2.893.475 2.041.346 4.33 2.033 5.876l-14.576.045c-.726.484-1.175 2.599-1.175 2.599z"
67816
+ />
67817
+ </symbol>
67818
+ <symbol viewBox="0 0 448 512" id="icon-paste">
67819
+ <path
67820
+ d="M128 184c0-30.879 25.122-56 56-56h136V56c0-13.255-10.745-24-24-24h-80.61C204.306 12.89 183.637 0 160 0s-44.306 12.89-55.39 32H24C10.745 32 0 42.745 0 56v336c0 13.255 10.745 24 24 24h104V184zm32-144c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24zm184 248h104v200c0 13.255-10.745 24-24 24H184c-13.255 0-24-10.745-24-24V184c0-13.255 10.745-24 24-24h136v104c0 13.2 10.8 24 24 24zm104-38.059V256h-96v-96h6.059a24 24 0 0 1 16.97 7.029l65.941 65.941a24.002 24.002 0 0 1 7.03 16.971z"
67821
+ />
67822
+ </symbol>
67823
+ <symbol viewBox="0 0 1024 1024" id="icon-patreon">
67824
+ <path
67825
+ d="M137.741 725.75c1.5-266.734 1.784-274.433 11.392-308.99 23.796-85.581 79.183-167.291 142.612-210.392 72.468-49.243 140.233-70.911 221.774-70.911 165.476 0 306.731 100.693 358.349 255.448 72.925 218.636-64.099 445.36-295.631 489.159-32.01 6.055-121.217 3.042-150.485-5.083l-18.827-5.227v-81.415c0-44.779.498-81.414 1.108-81.413s12.072 4.209 25.472 9.35c55.969 21.472 122.821 18.874 174.984-6.801 41.045-20.203 65.707-42.046 90.702-80.335 29.938-45.86 36.874-71.683 34.883-129.857-1.52-44.41-2.761-49.999-17.913-80.657-34.942-70.7-97.786-118.015-171.229-128.915-87.002-12.913-172.325 28.33-219.124 105.918-33.246 55.119-31.703 39.4-33.12 337.377l-1.272 267.515 145.246-2.37c143.004-2.334 146.034-2.574 196.28-15.553 173.31-44.768 304.422-174.39 353.036-349.024 11.417-41.014 12.246-49.68 12.054-125.998-.177-70.118-1.597-86.964-9.834-116.642-26-93.682-65.87-161.534-135.816-231.14-36.62-36.442-53.216-49.156-93.275-71.46-90.78-50.542-143.996-64.706-243.648-64.849-62.259-.09-76.537 1.328-117.394 11.65-82.493 20.841-170.399 70.213-225.413 126.602-58.491 59.953-98.831 125.916-122.085 199.632-22.794 72.255-24.565 99.609-24.593 379.888l-.028 258.045h110.255l1.538-273.55z"
67826
+ />
67827
+ </symbol>
67828
+ <symbol viewBox="0 0 24 24" id="icon-platform-mobile">
67829
+ <path
67830
+ d="M5.75 4.5A2.5 2.5 0 0 1 8.25 2h7.5a2.5 2.5 0 0 1 2.5 2.5v15a2.5 2.5 0 0 1-2.5 2.5h-7.5a2.5 2.5 0 0 1-2.5-2.5Zm7.5 13.75a1.25 1.25 0 1 0-2.5 0 1.25 1.25 0 0 0 2.5 0Z"
67831
+ />
67832
+ </symbol>
67833
+ <symbol viewBox="0 0 24 24" id="icon-platform-pc">
67834
+ <path
67835
+ d="M2 12v8.66h4.312v-5.815l1.197.01 1.197.012 1.368-1.368 1.368-1.368v-6.06l-1.368-1.368L8.709 3.34H2Zm5.018-2.855v2.279l-.353-.011-.353-.011V6.87h.706zm6.407-4.435-1.35 1.361v11.895l1.35 1.35 1.345 1.345h4.498l1.368-1.364L22 17.932V13.19l-2.256.007-2.26.011-.012 1.978-.007 1.98h-.669V6.908h.669v3.272H22V8.097c0-1.513-.011-2.082-.041-2.082-.022 0-.643-.602-1.379-1.338L19.242 3.34l-2.234.008-2.238.003Z"
67836
+ />
67837
+ </symbol>
67838
+ <symbol viewBox="0 0 24 24" id="icon-platform-ps">
67839
+ <path
67840
+ d="M9.218 3s.008 6.318.035 6.445l-.02 9.866L12.8 20.5l.007-13.452c0-1.207.432-1.302.824-1.146.376.15.609.557.607 1.176l.008 5.67c.28.195 1.213.433 1.624.42.146-.003 2.603.153 2.342-4.011-.127-2.027-.728-3.269-2.788-4.269-1.43-.694-4.873-1.64-6.206-1.888Zm-.699 9.877-5.743 2.131c-2.19.783-2.322 1.977-.578 2.723 3.168 1.274 6.324.545 6.324.545l-.005-1.895c.02-.017-1.747.773-2.67.847-1.284.102-1.554-.215-1.572-.372-.029-.253.406-.436.507-.472l3.745-1.373zm8.853.915c-1.577.022-2.724.399-3.88.729l.019 2.212 4.073-1.463c.53-.19 2.104-.276 2.232.209.078.295-.256.42-.524.518l-5.8 2.118.015 2.131 7.837-2.89c.48-.177 1.679-.726 1.656-1.55-.028-.986-2.27-1.68-3.892-1.901-.637-.087-1.21-.12-1.736-.113z"
67841
+ />
67842
+ </symbol>
67843
+ <symbol viewBox="0 0 24 24" id="icon-platform-switch">
67844
+ <path
67845
+ d="M5.8 8.4v.001a1.703 1.703 0 0 0 1.697 1.696c.934 0 1.697-.764 1.697-1.697S8.43 6.704 7.497 6.704A1.7 1.7 0 0 0 5.8 8.4z"
67846
+ />
67847
+ <path
67848
+ d="M11.54 3H7.61A4.61 4.61 0 0 0 3 7.61v8.766a4.61 4.61 0 0 0 4.61 4.611h3.93a.127.127 0 0 0 .128-.127V3.127c.014-.07-.043-.127-.128-.127Zm-1.315 16.544H7.61a3.088 3.088 0 0 1-2.235-.934 3.149 3.149 0 0 1-.933-2.234V7.61a3.09 3.09 0 0 1 .933-2.235 3.152 3.152 0 0 1 2.235-.933h2.615Zm9.425-15.18a4.609 4.609 0 0 0-3.26-1.35h-2.785a.111.111 0 0 0-.113.113v17.746c-.014.07.042.127.127.127h2.77A4.61 4.61 0 0 0 21 16.39V7.624a4.61 4.61 0 0 0-1.35-3.26zm-2.61 10.358a1.828 1.828 0 0 1-1.823-1.824c0-1.004.82-1.824 1.824-1.824s1.824.82 1.824 1.824-.82 1.824-1.824 1.824z"
67849
+ />
67850
+ </symbol>
67851
+ <symbol viewBox="0 0 24 24" id="icon-platform-xbox">
67852
+ <path
67853
+ d="M11.007 21.959a9.984 9.984 0 0 1-4.44-1.574c-1.123-.732-1.377-1.033-1.377-1.634 0-1.206 1.328-3.32 3.599-5.729 1.289-1.368 3.085-2.971 3.28-2.928.377.085 3.397 3.028 4.528 4.414 1.787 2.191 2.609 3.986 2.191 4.786-.317.608-2.286 1.796-3.733 2.253-1.192.376-2.758.535-4.048.412zm-7.333-4.462c-.933-1.43-1.405-2.84-1.632-4.876-.075-.673-.049-1.057.17-2.438.273-1.72 1.253-3.71 2.432-4.935.501-.52.546-.534 1.158-.327.741.25 1.534.798 2.764 1.91l.718.648-.393.481c-1.82 2.233-3.74 5.4-4.463 7.358-.393 1.064-.55 2.133-.381 2.578.114.3.01.188-.374-.399zm16.377.243c.092-.45-.025-1.275-.298-2.109-.591-1.804-2.57-5.16-4.386-7.441l-.571-.719.618-.567c.808-.741 1.369-1.185 1.974-1.562.477-.298 1.16-.56 1.453-.56.18 0 .817.661 1.33 1.382.797 1.115 1.382 2.47 1.679 3.877.191.91.208 2.858.03 3.766a12.033 12.033 0 0 1-.75 2.367c-.226.49-.781 1.444-1.025 1.755-.126.16-.126.159-.056-.185zm-8.88-13.3c-.837-.425-2.13-.881-2.844-1.004a5.194 5.194 0 0 0-.949-.054c-.59.03-.563 0 .382-.447a9.722 9.722 0 0 1 2.332-.776c1-.21 2.882-.212 3.867-.005 1.063.224 2.316.69 3.022 1.125l.21.128-.481-.024c-.957-.048-2.351.338-3.848 1.066-.452.22-.844.395-.873.39a15.893 15.893 0 0 1-.818-.398Z"
67854
+ />
67855
+ </symbol>
67856
+ <symbol viewBox="0 0 215.535 215.535" id="icon-platinum">
67857
+ <path
67858
+ d="M105.563 0c-32.088 0-56.76 18.984-56.76 18.984l8.052 7.096-15.052 16.395-15.916 13.998-6.903-7.67S0 74.875 0 109.973c0 32.087 18.984 56.761 18.984 56.761l7.096-8.054 16.395 15.052 13.998 15.916-7.67 6.905s26.072 18.982 61.17 18.982c32.087 0 56.761-18.982 56.761-18.982l-8.054-7.096 15.052-16.396 15.916-13.998 6.905 7.671s18.982-26.074 18.982-61.171c0-32.088-18.982-56.76-18.982-56.76l-7.096 8.052-16.394-15.052-14-15.916 7.671-6.903S140.66 0 105.562 0zm-.192 8.438c28.187.505 46.406 12.464 46.406 12.464l-5.369 5.178 20.326 22.05 22.532 20.999 5.56-5.56s10.93 14.189 12.272 41.802c-.506 28.187-12.463 46.404-12.463 46.404l-5.178-5.369-22.053 20.328-20.996 22.532 5.56 5.56s-14.189 10.93-41.802 12.272c-28.186-.506-46.406-12.463-46.406-12.463l5.369-5.178-20.326-22.053-22.532-20.998-5.56 5.563S9.78 137.777 8.437 110.164C8.943 81.978 20.902 63.76 20.902 63.76l5.178 5.369 22.05-20.326 21-22.533-5.56-5.562s14.187-10.929 41.8-12.27zM71.295 60.467v11.879h9.734v69.62h-9.734v13.231h72.592v-13.23h-9.239V72.346l9.239.144V60.467z"
67859
+ fill-rule="evenodd"
67860
+ />
67861
+ </symbol>
67862
+ <symbol viewBox="0 0 448 512" id="icon-plus-square">
67863
+ <path
67864
+ d="M352 240v32c0 6.6-5.4 12-12 12h-88v88c0 6.6-5.4 12-12 12h-32c-6.6 0-12-5.4-12-12v-88h-88c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h88v-88c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v88h88c6.6 0 12 5.4 12 12zm96-160v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"
67865
+ />
67866
+ </symbol>
67867
+ <symbol
67868
+ viewBox="0 0 978 388"
67869
+ fill-rule="evenodd"
67870
+ stroke-linejoin="round"
67871
+ stroke-miterlimit="2"
67872
+ id="icon-pwa_logo"
67873
+ >
67874
+ <path
67875
+ d="m719.12 322.11 28.23-71.38h81.503l-38.688-108.283 48.38-122.33L977.1 388H874.92l-23.676-65.89H719.121zm-87.175 45.77L780.27-.002l-98.332.008L580.47 237.74 508.314.005h-75.581L355.264 237.74l-54.639-108.338-49.444 152.33 50.204 86.149h96.774l70.01-213.197 66.744 213.197h97.032zM93.344 241.602h60.57c18.348 0 34.684-2.045 49.013-6.142l15.662-48.254 43.78-134.881a107.213 107.213 0 0 0-11.423-14.996C228.468 12.446 195.578.013 152.284.013H.002v367.884h93.342V241.602zm80.172-156.96c8.782 8.838 13.17 20.668 13.17 35.476 0 14.933-3.863 26.77-11.58 35.522-8.469 9.723-24.052 14.588-46.757 14.588H93.344V71.394h35.264c21.161 0 36.133 4.411 44.908 13.249z"
67876
+ fill-opacity=".91"
67877
+ fill-rule="nonzero"
67878
+ />
67879
+ </symbol>
67880
+ <symbol viewBox="0 0 1952 734.93" id="icon-pwa_logo_inverse">
67881
+ <path
67882
+ d="m1436.62 603.304 56.39-142.599h162.82l-77.27-216.315L1675.2 0 1952 734.934h-204.13l-47.3-131.629h-263.95z"
67883
+ fill="#FFF"
67884
+ />
67885
+ <path
67886
+ d="M1262.47 734.935 1558.79.002h-196.45l-202.7 474.931L1015.5.003H864.499l-154.768 474.93-109.146-216.416-98.773 304.302 100.284 172.116h193.331l139.857-425.91 133.346 425.91h193.84z"
67887
+ fill="#a52f31"
67888
+ />
67889
+ <path
67890
+ d="M186.476 482.643h121.003c36.654 0 69.293-4.091 97.917-12.273l31.293-96.408 87.459-269.446c-6.664-10.563-14.272-20.55-22.824-29.96C456.419 24.853 390.719 0 304.222 0H0v734.933h186.476v-252.29zm160.166-313.564c17.54 17.653 26.309 41.276 26.309 70.871 0 29.822-7.713 53.474-23.138 70.956-16.91 19.425-48.047 29.137-93.409 29.137h-69.928V142.598h70.442c42.277 0 72.185 8.827 89.724 26.481z"
67891
+ fill="#FFF"
67892
+ />
67893
+ </symbol>
67894
+ <symbol viewBox="0 0 51.936 53.127" id="icon-qq">
67895
+ <path
67896
+ d="M50.267 29.674c1.056 2.179 1.833 4.656 1.64 7.586-.077 1.202-.385 2.516-.974 3.326-.3.409-.736.791-1.199.798-.776.014-1.331-.911-1.729-1.508-.473-.708-.83-1.392-1.198-2.085-.478.492-.645 1.208-.887 1.818-.757 1.91-1.812 3.573-3.149 4.924 1.251.725 2.418 1.229 3.504 2.084.668.527 1.552 1.284 1.331 2.529-.147.831-.863 1.532-1.376 1.862-3.574 2.307-11.038 1.969-15.435.533-.854-.28-1.711-.729-2.484-.843-.293-.044-.798-.023-1.109-.045-.448-.03-.947-.116-1.153-.089-.264.036-.492.307-.798.488-1.938 1.145-3.832 1.795-6.743 1.996-3.233.226-6.495-.043-9.003-.843-1.331-.424-3.111-1.291-3.282-2.838-.084-.75.122-1.874.399-2.396.688-1.304 2.242-1.724 4.168-1.907-.071-.333-.533-.547-.843-.8-1.828-1.492-3.261-3.503-4.169-5.987-.145-.399-.201-.849-.443-1.242-.428.314-.477.891-.754 1.331-.559.888-1.453 1.824-2.352 2.262-.33.161-.821.355-1.197.266-.729-.171-.895-1.512-.977-2.438-.302-3.444.698-6.223 1.819-8.384 1.432-2.76 3.478-4.552 5.545-6.254-.577-1.593.107-3.379.842-4.348.028-.728.098-1.399.354-2.04.146-.354.467-.582.533-.887.07-.319-.029-.676 0-1.065.327-4.318 2.986-8.22 5.368-10.6 1.413-1.414 2.668-2.418 4.655-3.327 1.801-.823 4.089-1.3 6.566-1.553h3.236C36.907.748 41.949 4.27 44.321 10.6c.365.972.631 1.96.888 3.016.254 1.044.223 2.32.576 3.415.214.663.766 1.254 1.065 1.953.606 1.412.807 3.406 0 4.789 1.197 1.682 2.382 3.77 3.417 5.901zm-3.328 19.341c.376-2.04-2.059-1.636-3.637-1.73.191-.668 1.122-.592 1.818-.754a4.123 4.123 0 0 0-2.972-1.464c-3.032 2.644-6.568 4.785-11.577 5.456 1.441 1.203 4.591 1.694 7.674 1.817 3.032.121 6.287-.618 7.807-1.907.405-.343.793-.901.887-1.418zm-2.661-10.159c1.104-4.161-.569-7.771-2.262-10.246-5.013 3.403-13.106 6.049-20.804 4.035.045.823.128 1.729.134 2.706.005.971.195 2.061.044 2.883-.117.646-.679 1.299-1.197 1.509-.768.312-1.958.297-2.929.223-1.758-.137-3.261-.984-3.725-2.352-.176-.519-.14-1.181-.179-1.819-.119-2.033.078-3.921.356-5.722a20.458 20.458 0 0 0-2.706-1.597c-1.445 1.452-2.125 5.038-2.04 7.541.021.635.159 1.545.31 2.262.412 1.965 1.507 3.791 2.706 5.19 1.242 1.449 2.606 2.588 4.303 3.592 3.394 2.012 8.088 3.016 12.598 3.062 1.633.016 3.217-.311 4.701-.843 1.508-.542 2.95-1.376 4.259-2.219 1.289-.83 2.639-1.991 3.504-2.972 1.155-1.309 2.39-3.207 2.927-5.233zm-6.653-17.167c.361-.167 1.765-.771 1.73-1.242-.02-.237-.747-.669-1.109-.886-3.768-2.251-9.395-3.03-14.948-2.219-2.127.312-4.053.812-5.811 1.643-.556.262-2.138 1.056-2.085 1.64.021.228.378.505.577.622.864.507 2.262.805 3.238 1.02-.198-.543-.586-.892-.8-1.419 1.998 1.383 4.328 2.877 7.407 3.149 4.613.406 8.113-1.41 10.735-3.149-.25.629-1.129.919-1.287 1.464 1.02-.012 1.607-.278 2.353-.623zm-5.013-4.568c3.081-1.104 3.179-8.305.045-9.492-.281-.106-.839-.111-1.02-.088-1.013.122-1.712.842-2.13 1.553-1.396 2.374-.918 7.275 1.73 8.072.496.149 1.05.071 1.375-.045zm-9.889-.044c2.244.224 3.325-2.575 3.281-4.79-.046-2.284-1.131-4.685-2.972-4.701-1.132-.012-1.932.767-2.395 1.597-1.373 2.454-.784 7.608 2.086 7.894zm-5.858 35.528c3.022-.151 6.146-.59 7.275-2.262-4.633-.55-8.8-1.938-11.933-4.081-.395-.27-1.05-.858-1.374-.931-.07-.016-.221.042-.354.043-1.067.018-1.794.433-2.618.933-.552.336-1.23.853-.797 1.465.491-.026.791-.243 1.374-.179-.568.498-1.555.885-1.774 1.729-.188.73.512 1.346.932 1.642 2.09 1.479 5.7 1.823 9.269 1.641z"
67897
+ />
67898
+ <path
67899
+ d="M41.528 36.549c.038.506-.653.628-.931.312-.854.229-1.98.008-1.775-1.108.18-.976 1.55-1.893 2.219-.977.289.396.189 1.1.397 1.642-.208-.146-.358-.351-.62-.444-.936.278.404 1.491.71.575zm-1.287-.709c.201-.062.223.172.356.044-.182-1.575-1.55.501-.533.576-.017-.283.007-.524.177-.62zm.134.178c-.228-.036-.168.216-.177.399.151-.042.091-.293.177-.399z"
67900
+ />
67901
+ <path
67902
+ d="M40.642 36.417c-.188-.063.003-.296.177-.268-.018.131-.145.152-.177.268zm-1.952.132c.024.477-.659.647-.933.312-.787.158-1.766.092-1.817-.754-.065-1.048 1.341-2.195 2.128-1.465.295.274.419.786.354 1.42.058.105.113.212.179.311-.311 0-.355-.427-.665-.399-.595.051-.187.941.266.931.312-.008.241-.216.488-.356zm-1.287-.709c.173-.035.229.163.354.044-.071-.299-.175-.564-.443-.665-.373.127-.79 1.291-.089 1.198-.06-.217-.005-.482.178-.577zm0 .577c.016-.138.224-.384.045-.444-.082.137-.224.359-.045.444z"
67903
+ />
67904
+ <path
67905
+ d="M37.937 36.106c.122.098-.141.181-.134.311-.217-.092.06-.238.134-.311zm-6.034-25.15c.593.289.962 1.389.62 2.262-.961.134-.553-1.236-1.108-1.331-.612-.102-.519 1.057-.888 1.376-.688-.091-.519-.928-.354-1.419.206-.616.952-1.269 1.73-.888zm-7.541-.488c1.771-.235 1.605 3.937.089 3.858-1.539-.077-1.62-3.654-.089-3.858z"
67906
+ />
67907
+ </symbol>
67908
+ <symbol viewBox="0 0 512 512" id="icon-question-circle-solid">
67909
+ <path
67910
+ d="M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zM262.655 90c-54.497 0-89.255 22.957-116.549 63.758-3.536 5.286-2.353 12.415 2.715 16.258l34.699 26.31c5.205 3.947 12.621 3.008 16.665-2.122 17.864-22.658 30.113-35.797 57.303-35.797 20.429 0 45.698 13.148 45.698 32.958 0 14.976-12.363 22.667-32.534 33.976C247.128 238.528 216 254.941 216 296v4c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12v-1.333c0-28.462 83.186-29.647 83.186-106.667 0-58.002-60.165-102-116.531-102zM256 338c-25.365 0-46 20.635-46 46 0 25.364 20.635 46 46 46s46-20.636 46-46c0-25.365-20.635-46-46-46z"
67911
+ />
67912
+ </symbol>
67913
+ <symbol viewBox="0 0 512 512" id="icon-search">
67914
+ <path
67915
+ d="M505 442.7 405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z"
67916
+ />
67917
+ </symbol>
67918
+ <symbol viewBox="0 0 512 512" id="icon-search-plus">
67919
+ <path
67920
+ d="M304 192v32c0 6.6-5.4 12-12 12h-56v56c0 6.6-5.4 12-12 12h-32c-6.6 0-12-5.4-12-12v-56h-56c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h56v-56c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v56h56c6.6 0 12 5.4 12 12zm201 284.7L476.7 505c-9.4 9.4-24.6 9.4-33.9 0L343 405.3c-4.5-4.5-7-10.6-7-17V372c-35.3 27.6-79.7 44-128 44C93.1 416 0 322.9 0 208S93.1 0 208 0s208 93.1 208 208c0 48.3-16.4 92.7-44 128h16.3c6.4 0 12.5 2.5 17 7l99.7 99.7c9.3 9.4 9.3 24.6 0 34zM344 208c0-75.2-60.8-136-136-136S72 132.8 72 208s60.8 136 136 136 136-60.8 136-136z"
67921
+ />
67922
+ </symbol>
67923
+ <symbol viewBox="0 0 576 512" id="icon-shopping-cart">
67924
+ <path
67925
+ d="m528.12 301.319 47.273-208C578.806 78.301 567.391 64 551.99 64H159.208l-9.166-44.81C147.758 8.021 137.93 0 126.529 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24h69.883l70.248 343.435C147.325 417.1 136 435.222 136 456c0 30.928 25.072 56 56 56s56-25.072 56-56c0-15.674-6.447-29.835-16.824-40h209.647C430.447 426.165 424 440.326 424 456c0 30.928 25.072 56 56 56s56-25.072 56-56c0-22.172-12.888-41.332-31.579-50.405l5.517-24.276c3.413-15.018-8.002-29.319-23.403-29.319H218.117l-6.545-32h293.145c11.206 0 20.92-7.754 23.403-18.681z"
67926
+ />
67927
+ </symbol>
67928
+ <symbol viewBox="0 0 512 512" id="icon-sign-in-alt">
67929
+ <path
67930
+ d="M416 448h-84c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h84c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32h-84c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h84c53 0 96 43 96 96v192c0 53-43 96-96 96zm-47-201L201 79c-15-15-41-4.5-41 17v96H24c-13.3 0-24 10.7-24 24v96c0 13.3 10.7 24 24 24h136v96c0 21.5 26 32 41 17l168-168c9.3-9.4 9.3-24.6 0-34z"
67931
+ />
67932
+ </symbol>
67933
+ <symbol viewBox="0 0 512 512" id="icon-sign-out-alt">
67934
+ <path
67935
+ d="M497 273 329 441c-15 15-41 4.5-41-17v-96H152c-13.3 0-24-10.7-24-24v-96c0-13.3 10.7-24 24-24h136V88c0-21.4 25.9-32 41-17l168 168c9.3 9.4 9.3 24.6 0 34zM192 436v-40c0-6.6-5.4-12-12-12H96c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32h84c6.6 0 12-5.4 12-12V76c0-6.6-5.4-12-12-12H96c-53 0-96 43-96 96v192c0 53 43 96 96 96h84c6.6 0 12-5.4 12-12z"
67936
+ />
67937
+ </symbol>
67938
+ <symbol viewBox="0 0 400 423" id="icon-simpleAvgPrice">
67939
+ <path
67940
+ d="m162.531 374.211-.905-319.596 70.517-.147 1.118 319.744z"
67941
+ fill="#464646"
67942
+ />
67943
+ </symbol>
67944
+ <symbol viewBox="0 0 496 512" id="icon-smile">
67945
+ <path
67946
+ d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm4 72.6c-20.8 25-51.5 39.4-84 39.4s-63.2-14.3-84-39.4c-8.5-10.2-23.7-11.5-33.8-3.1-10.2 8.5-11.5 23.6-3.1 33.8 30 36 74.1 56.6 120.9 56.6s90.9-20.6 120.9-56.6c8.5-10.2 7.1-25.3-3.1-33.8-10.1-8.4-25.3-7.1-33.8 3.1z"
67947
+ />
67948
+ </symbol>
67949
+ <symbol viewBox="0 0 32 32" id="icon-stack">
67950
+ <path
67951
+ d="M32 10 16 2 0 10l16 8 16-8zM16 4.655 26.689 10 16 15.345 5.311 10 16 4.655zm12.795 9.743L32 16l-16 8-16-8 3.205-1.602L16 20.796zm0 6L32 22l-16 8-16-8 3.205-1.602L16 26.796z"
67952
+ />
67953
+ </symbol>
67954
+ <symbol viewBox="0 0 448 512" id="icon-steam-square">
67955
+ <path
67956
+ d="M185.2 356.5c7.7-18.5-1-39.7-19.6-47.4l-29.5-12.2c11.4-4.3 24.3-4.5 36.4.5 12.2 5.1 21.6 14.6 26.7 26.7 5 12.2 5 25.6-.1 37.7-10.5 25.1-39.4 37-64.6 26.5-11.6-4.8-20.4-13.6-25.4-24.2l28.5 11.8c18.6 7.8 39.9-.9 47.6-19.4zM400 32H48C21.5 32 0 53.5 0 80v160.7l116.6 48.1c12-8.2 26.2-12.1 40.7-11.3l55.4-80.2v-1.1c0-48.2 39.3-87.5 87.6-87.5s87.6 39.3 87.6 87.5c0 49.2-40.9 88.7-89.6 87.5l-79 56.3c1.6 38.5-29.1 68.8-65.7 68.8-31.8 0-58.5-22.7-64.5-52.7L0 319.2V432c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-99.7 222.5c-32.2 0-58.4-26.1-58.4-58.3s26.2-58.3 58.4-58.3 58.4 26.2 58.4 58.3-26.2 58.3-58.4 58.3zm.1-14.6c24.2 0 43.9-19.6 43.9-43.8 0-24.2-19.6-43.8-43.9-43.8-24.2 0-43.9 19.6-43.9 43.8 0 24.2 19.7 43.8 43.9 43.8z"
67957
+ />
67958
+ </symbol>
67959
+ <symbol viewBox="0 0 352 512" id="icon-times">
67960
+ <path
67961
+ d="m242.72 256 100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z"
67962
+ />
67963
+ </symbol>
67964
+ <symbol viewBox="0 0 448 512" id="icon-trash-alt">
67965
+ <path
67966
+ d="M0 84V56c0-13.3 10.7-24 24-24h112l9.4-18.7c4-8.2 12.3-13.3 21.4-13.3h114.3c9.1 0 17.4 5.1 21.5 13.3L312 32h112c13.3 0 24 10.7 24 24v28c0 6.6-5.4 12-12 12H12C5.4 96 0 90.6 0 84zm416 56v324c0 26.5-21.5 48-48 48H80c-26.5 0-48-21.5-48-48V140c0-6.6 5.4-12 12-12h360c6.6 0 12 5.4 12 12zm-272 68c0-8.8-7.2-16-16-16s-16 7.2-16 16v224c0 8.8 7.2 16 16 16s16-7.2 16-16V208zm96 0c0-8.8-7.2-16-16-16s-16 7.2-16 16v224c0 8.8 7.2 16 16 16s16-7.2 16-16V208zm96 0c0-8.8-7.2-16-16-16s-16 7.2-16 16v224c0 8.8 7.2 16 16 16s16-7.2 16-16V208z"
67967
+ />
67968
+ </symbol>
67969
+ <symbol viewBox="0 0 512 512" id="icon-upload">
67970
+ <path
67971
+ d="M296 384h-80c-13.3 0-24-10.7-24-24V192h-87.7c-17.8 0-26.7-21.5-14.1-34.1L242.3 5.7c7.5-7.5 19.8-7.5 27.3 0l152.2 152.2c12.6 12.6 3.7 34.1-14.1 34.1H320v168c0 13.3-10.7 24-24 24zm216-8v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h136v8c0 30.9 25.1 56 56 56h80c30.9 0 56-25.1 56-56v-8h136c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z"
67972
+ />
67973
+ </symbol>
67974
+ <symbol viewBox="0 0 448 512" id="icon-user">
67975
+ <path
67976
+ d="M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z"
67977
+ />
67978
+ </symbol>
67979
+ <symbol viewBox="0 0 13.546 16.345" id="icon-vazarin">
67980
+ <path
67981
+ d="M0 1.226c5.958 2.784 9.917 8.708 11.277 15.12 1.011-1.734 1.735-3.47 2.192-6.668.349-3.612-.572-7.13-1.043-9.678C11.95 1.529 0 1.226 0 1.226zM7.14 4.87s3.362-.141 4.93-.063c.186 1.331.536 2.41-.233 4.804l-1.525-.03C9.272 7.546 7.14 4.869 7.14 4.869z"
67982
+ />
67983
+ </symbol>
67984
+ <symbol viewBox="0 0 614.156 507.697" id="icon-wifi2">
67985
+ <path
67986
+ d="M306.719 118.003c-80.452.303-160.77 30.425-222.313 90.281l55.906 55.282c92.257-89.611 240.746-90.142 333.657-1.157l55.781-55.812c-62.01-59.39-142.58-88.897-223.031-88.594M140.312 263.566l-.125.093z"
67987
+ />
67988
+ <path
67989
+ d="M306.594.003C195.649.421 84.87 41.96 0 124.503l55.469 54.844C194.41 44.792 417.73 44.108 557.5 177.972l56.656-55.781C528.642 40.29 417.54-.415 306.594.003M55.469 179.347l-.563.531zm251.406 56.156c-50.088.189-100.122 18.954-138.438 56.219l53.438 52.812c47.181-45.82 123.111-46.068 170.625-.562l53.219-53.313c-38.607-36.975-88.756-55.345-138.844-55.156zm-85 109.031-.063.063z"
67990
+ />
67991
+ <circle cx="307.078" cy="429.197" r="78.5" />
67992
+ </symbol>
67993
+ <symbol viewBox="0 0 372.369 372.573" id="icon-xbox">
67994
+ <path
67995
+ d="M167.618 371.807c-28.683-2.748-57.723-13.049-82.67-29.325-20.904-13.639-25.624-19.245-25.624-30.434 0-22.476 24.712-61.84 66.992-106.716 24.013-25.487 57.46-55.36 61.078-54.55 7.03 1.571 63.25 56.41 84.296 82.224 33.28 40.821 48.58 74.245 40.808 89.147-5.908 11.327-42.572 33.467-69.507 41.972-22.2 7.01-51.356 9.981-75.373 7.681zM31.09 288.68C13.719 262.03 4.943 235.793.705 197.847c-1.4-12.53-.898-19.697 3.177-45.415 5.08-32.054 23.333-69.137 45.268-91.958 9.34-9.72 10.176-9.956 21.563-6.12C84.54 59.012 99.309 69.211 122.21 89.92l13.363 12.083-7.297 8.964c-33.873 41.613-69.63 100.597-83.106 137.09-7.326 19.838-10.28 39.753-7.128 48.043 2.128 5.598.173 3.511-6.953-7.42zm304.915 4.532c1.716-8.377-.454-23.762-5.54-39.28-11.018-33.606-47.84-96.124-81.654-138.63l-10.644-13.38 11.516-10.575c15.036-13.807 25.476-22.074 36.74-29.095 8.889-5.54 21.59-10.444 27.05-10.444 3.367 0 15.218 12.298 24.785 25.72 14.818 20.788 25.718 45.987 31.24 72.22 3.57 16.95 3.867 53.231.576 70.14-2.7 13.875-8.403 31.874-13.966 44.081-4.17 9.147-14.536 26.91-19.08 32.691-2.334 2.972-2.336 2.965-1.023-3.448zM170.69 45.462c-15.601-7.923-39.67-16.427-52.965-18.715-4.66-.803-12.612-1.25-17.67-.995-10.97.554-10.48-.02 7.119-8.333 14.63-6.912 26.834-10.977 43.4-14.455C169.21-.949 204.24-.996 222.58 2.87c19.808 4.174 43.133 12.854 56.276 20.943l3.906 2.404-8.962-.453c-17.81-.9-43.766 6.296-71.633 19.857-8.405 4.09-15.718 7.358-16.25 7.26-.532-.097-7.384-3.436-15.227-7.418z"
67996
+ style="stroke: none"
67997
+ />
67998
+ </symbol>
67999
+ </defs>
68000
+ </svg>
68001
+ `;
68002
+ var htmlString = /* @__PURE__ */ (() => {
68003
+ const template = `
68004
+ <!DOCTYPE html>
68005
+ <html>
68006
+ <head>
68007
+ <meta charset="UTF-8" />
68008
+ <title>{{title}}</title>
68009
+ <style>{{style}}</style>
68010
+ </head>
68011
+ <body>
68012
+ <div style="display: none;">{{svg}}</div>
68013
+ <div id="root">{{htmlString}}</div>
68014
+ </body>
68015
+ </html>`;
68016
+ return (htmlString2, title = "title") => {
68017
+ return template.replace("{{htmlString}}", htmlString2).replace("{{title}}", title).replace("{{style}}", style).replace("{{svg}}", svg);
67589
68018
  };
67590
- const enTier = zhTierMap[tier] ?? tier;
67591
- const key = normalizeName(enTier + category);
67592
- return relics[key] ?? "未找到对应遗物信息";
67593
- }, "getRelic");
67594
- var getArbitrations = /* @__PURE__ */ __name((day = 3) => {
67595
- if (day > 14 || day <= 0) {
67596
- return "天数需小于等于14且大于0";
67597
- }
67598
- const currentHourTimeStamp = Math.floor(
67599
- (/* @__PURE__ */ new Date()).setMinutes(0, 0, 0) / 1e3
67600
- );
67601
- const currentHourIndex = arbitrationSchedule.findIndex(
67602
- (a) => a.time === currentHourTimeStamp
67603
- );
67604
- const weekArbys = arbitrationSchedule.slice(
67605
- currentHourIndex,
67606
- currentHourIndex + 24 * day
67607
- );
67608
- return weekArbys.filter((a) => arbyRewards_default[a.node]).map((a) => {
67609
- const obj = regionToShort(import_warframe_public_export_plus8.ExportRegions[a.node], import_warframe_public_export_plus8.dict_zh);
67610
- return {
67611
- ...obj,
67612
- time: new Date(a.time * 1e3).toLocaleString("zh-cn", {
67613
- year: "numeric",
67614
- month: "numeric",
67615
- day: "numeric",
67616
- hour: "numeric",
67617
- // minute: 'numeric', // 保持注释或删除,以去除分钟
67618
- // second: 'numeric', // 保持注释或删除,以去除秒
67619
- hour12: false,
67620
- // 统一使用 24 小时制
67621
- // hourCycle: 'h23' // 另一种设置 24 小时制的方法
67622
- timeZone: "Asia/Shanghai"
67623
- }),
67624
- rewards: arbyRewards_default[a.node]
67625
- };
67626
- });
67627
- }, "getArbitrations");
67628
- var getWeekly = /* @__PURE__ */ __name(async () => {
67629
- const { raw: worldState } = await globalWorldState.get();
67630
- if (!worldState) {
67631
- return "内部错误,获取最新信息失败";
68019
+ })();
68020
+ var generateImageOutput = /* @__PURE__ */ __name(async (puppe, element) => {
68021
+ if (!puppe) {
68022
+ return "本功能需要启用 koishi-plugin-puppeteer 插件";
67632
68023
  }
67633
- const archon = {
67634
- name: import_warframe_public_export_plus8.dict_zh["/Lotus/Language/Narmer/" + removeSpace(worldState.archonHunt.boss)]
67635
- };
67636
- const stringToDebuff = /* @__PURE__ */ __name((key, name2, prefix) => {
67637
- const keyToName = zh_default[`${prefix}${key}`];
67638
- if (!keyToName) {
67639
- for (const transKey in en_default) {
67640
- if (en_default[transKey] === name2) {
67641
- return {
67642
- name: zh_default[transKey],
67643
- desc: zh_default[transKey + "_Desc"]
67644
- };
67645
- }
67646
- }
68024
+ return await puppe.render(
68025
+ htmlString(element.toString()),
68026
+ async (page, next) => {
68027
+ const handle = await page.$("#root>*");
68028
+ return await next(handle ?? void 0);
67647
68029
  }
67648
- const riskDesc = zh_default[`${prefix}${key}_Desc`];
67649
- return {
67650
- name: keyToName,
67651
- desc: riskDesc
67652
- };
67653
- }, "stringToDebuff");
67654
- const deepArchim = worldState.archimedeas[0];
67655
- const deepArchimMissions = await Promise.all(
67656
- deepArchim.missions.map(async (m) => {
67657
- const receivedType = await getMissionTypeKey(m.missionType);
67658
- const type = import_warframe_public_export_plus8.dict_zh[import_warframe_public_export_plus8.ExportMissionTypes[receivedType]?.name ?? ""] ?? m.missionType;
67659
- const deviation = stringToDebuff(
67660
- m.deviation.key,
67661
- m.deviation.name,
67662
- "/Lotus/Language/Conquest/MissionVariant_LabConquest_"
67663
- );
67664
- const risks = m.risks.map(
67665
- (r) => stringToDebuff(r.key, r.name, "/Lotus/Language/Conquest/Condition_")
67666
- );
67667
- return {
67668
- type,
67669
- deviation,
67670
- risks
67671
- };
67672
- })
67673
- );
67674
- const deepArchimPersonalModifier = deepArchim.personalModifiers.map(
67675
- (p) => stringToDebuff(p.key, p.name, "/Lotus/Language/Conquest/PersonalMod_")
67676
- );
67677
- const deepArchimRes = {
67678
- name: "深层科研",
67679
- missions: deepArchimMissions,
67680
- peronal: deepArchimPersonalModifier
67681
- };
67682
- const temporalArchim = worldState.archimedeas[1];
67683
- const temporalArchimMissions = await Promise.all(
67684
- temporalArchim.missions.map(async (m) => {
67685
- const receivedType = await getMissionTypeKey(m.missionType);
67686
- const type = import_warframe_public_export_plus8.dict_zh[import_warframe_public_export_plus8.ExportMissionTypes[receivedType]?.name ?? ""] ?? receivedType;
67687
- const deviation = stringToDebuff(
67688
- m.deviation.key,
67689
- m.deviation.name,
67690
- "/Lotus/Language/Conquest/MissionVariant_HexConquest_"
67691
- );
67692
- const risks = m.risks.map(
67693
- (r) => stringToDebuff(r.key, r.name, "/Lotus/Language/Conquest/Condition_")
67694
- );
67695
- return {
67696
- type,
67697
- deviation,
67698
- risks
67699
- };
67700
- })
67701
- );
67702
- const temporalArchimPersonalModifier = temporalArchim.personalModifiers.map(
67703
- (p) => stringToDebuff(p.key, p.name, "/Lotus/Language/Conquest/PersonalMod_")
67704
- );
67705
- const temporalArchimRes = {
67706
- name: "时光科研",
67707
- missions: temporalArchimMissions,
67708
- peronal: temporalArchimPersonalModifier
67709
- };
67710
- return {
67711
- archonHunt: archon,
67712
- deepArchimedea: deepArchimRes,
67713
- temporalArchimedea: temporalArchimRes
67714
- };
67715
- }, "getWeekly");
67716
- var getEnvironment = /* @__PURE__ */ __name(async () => {
67717
- const { raw: worldState } = await globalWorldState.get();
67718
- if (!worldState) {
67719
- return "内部错误,获取最新信息失败";
67720
- }
67721
- const cetusDay = worldState.cetusCycle.isDay ? "白天" : "黑夜";
67722
- const cetus = `地球/夜灵平野: ${cetusDay} ${worldState.cetusCycle.timeLeft}`;
67723
- const vallisState = worldState.vallisCycle.isWarm ? "温暖" : "寒冷";
67724
- const vallis = `奥布山谷: ${vallisState} ${worldState.vallisCycle.timeLeft}`;
67725
- const cambionState = worldState.cambionCycle.state ? worldState.cambionCycle.state.charAt(0).toUpperCase() + worldState.cambionCycle.state.slice(1) : "未知";
67726
- const cambion = `魔胎之境: ${cambionState} ${worldState.cambionCycle.timeLeft}`;
67727
- const duviriStateTransDict = {
67728
- sorrow: "悲伤",
67729
- fear: "恐惧",
67730
- joy: "喜悦",
67731
- anger: "愤怒",
67732
- envy: "嫉妒"
67733
- };
67734
- const duviriState = duviriStateTransDict[worldState.duviriCycle.state] ?? worldState.duviriCycle.state;
67735
- const duviri = `双衍王境: ${duviriState} ${worldState.duviriCycle.endString}`;
67736
- const zarimanFaction = worldState.zarimanCycle.isCorpus ? "Corpus" : "Grineer";
67737
- const zariman = `扎里曼号: ${zarimanFaction} ${worldState.zarimanCycle.timeLeft}`;
67738
- return `当前环境:
67739
- ${cetus}
67740
- ${vallis}
67741
- ${cambion}
67742
- ${duviri}
67743
- ${zariman}`;
67744
- }, "getEnvironment");
67745
- var getCircuitWeek = /* @__PURE__ */ __name(() => {
67746
- const EPOCH = 1734307200 * 1e3;
67747
- const week = Math.trunc((Date.now() - EPOCH) / 6048e5);
67748
- const index1 = (week + 1) % incarnons.length;
67749
- const index2 = (week + 8) % warframes.length;
67750
- const incarnons2 = incarnons.map((v) => v.map((i) => import_warframe_public_export_plus8.dict_zh[i]));
67751
- const warframes2 = warframes.map((v) => v.map((i) => import_warframe_public_export_plus8.dict_zh[i]));
67752
- return {
67753
- currentIncarnons: index1,
67754
- currentWarframes: index2,
67755
- allIncarnons: incarnons2,
67756
- allWarframes: warframes2
67757
- };
67758
- }, "getCircuitWeek");
67759
- var getFissures = /* @__PURE__ */ __name(async () => {
67760
- const { fissures } = await globalWorldState.get();
67761
- return fissures ?? "内部错误,获取最新信息失败";
67762
- }, "getFissures");
67763
- var getSteelPathFissures = /* @__PURE__ */ __name(async () => {
67764
- const { spFissures } = await globalWorldState.get();
67765
- return spFissures ?? "内部错误,获取最新信息失败";
67766
- }, "getSteelPathFissures");
67767
- var getRailjackFissures = /* @__PURE__ */ __name(async () => {
67768
- const { rjFissures } = await globalWorldState.get();
67769
- return rjFissures ?? "内部错误,获取最新信息失败";
67770
- }, "getRailjackFissures");
67771
- var getAnalyzedRiven = /* @__PURE__ */ __name(async (secret, url) => {
67772
- const img = await fetchAsyncImage(url);
67773
- if (!img) {
67774
- return "获取图片失败";
67775
- }
67776
- const extractResult = await extractTextFromImage(img, secret);
67777
- if (!extractResult) {
67778
- return "解析图片失败";
67779
- }
67780
- const parseResult = await parseOCRResult(extractResult);
67781
- if (!parseResult || parseResult.attributes.length < 2 || parseResult.attributes.length > 4) {
67782
- return "解析图片失败";
67783
- }
67784
- return analyzeRivenStat(parseResult);
67785
- }, "getAnalyzedRiven");
67786
- var getVoidTrader = /* @__PURE__ */ __name(async () => {
67787
- const { raw: worldState } = await globalWorldState.get();
67788
- if (worldState.voidTraders.length === 0) {
67789
- return "虚空商人仍在未知地带漂流...";
67790
- }
67791
- const trader = worldState.voidTraders[0];
67792
- if (trader && trader.activation && trader.activation.getTime() > Date.now()) {
67793
- const diff2 = trader.activation.getTime() - Date.now();
67794
- return "距离虚空商人到达还有: " + msToHumanReadable(diff2);
67795
- }
67796
- const diff = trader.expiry.getTime() - Date.now();
67797
- const items = trader.inventory.map(getVoidTraderItem);
67798
- return { expiry: msToHumanReadable(diff), items };
67799
- }, "getVoidTrader");
67800
- var getStaticRivenStats = /* @__PURE__ */ __name(async (weaponType, statType, disposition) => {
67801
- if (disposition > 1.55 || disposition < 0.5) {
67802
- return "裂罅倾向错误";
67803
- }
67804
- const weaponTypes = [
67805
- "步枪",
67806
- "手枪",
67807
- "霰弹枪",
67808
- "Archwing枪械",
67809
- "近战",
67810
- "Rifle",
67811
- "Shotgun",
67812
- "Pistol",
67813
- "Archgun",
67814
- "Melee"
67815
- ];
67816
- const matchedWeaponType = weaponTypes.find(
67817
- (v) => normalizeName(v).startsWith(normalizeName(weaponType))
67818
68030
  );
67819
- if (!matchedWeaponType) {
67820
- return "武器类型错误";
67821
- }
67822
- const weaponTypeKeys = {
67823
- 步枪: "Rifle",
67824
- 手枪: "Pistol",
67825
- 霰弹枪: "Shotgun",
67826
- 近战: "Melee",
67827
- Archwing枪械: "Archgun"
67828
- };
67829
- const weaponTypeKey = weaponTypeKeys[matchedWeaponType] ?? matchedWeaponType;
67830
- const statTypes = ["2", "3", "21", "31"];
67831
- if (!statTypes.includes(statType)) {
67832
- return "词条类型错误";
67833
- }
67834
- const rivenAttrValues = rivenAttrValueDict[weaponTypeKey];
67835
- const factor = rivenStatFixFactor[statType];
67836
- const result = {
67837
- positive: {},
67838
- negative: factor.curseCount > 0 ? {} : void 0
67839
- };
67840
- const { globalRivenAttributeList } = await globalRivenAttribute.get();
67841
- for (const key in rivenAttrValues) {
67842
- const data = globalRivenAttributeList.find(
67843
- (v) => normalizeName(v.i18n["en"].name) == key
67844
- );
67845
- const baseValue = rivenAttrValues[key];
67846
- const buffValue = baseValue * disposition * factor.buffFactor;
67847
- result.positive[key] = {
67848
- name: data?.i18n["zh-hans"].name ?? key,
67849
- max: buffValue * 1.1,
67850
- min: buffValue * 0.9,
67851
- unit: data?.unit ?? ""
67852
- };
67853
- if (result.negative) {
67854
- const curseValue = baseValue * disposition * factor.curseFactor;
67855
- result.negative[key] = {
67856
- name: data?.i18n["zh-hans"].name ?? key,
67857
- max: curseValue * 0.9,
67858
- min: curseValue * 1.1,
67859
- unit: data?.unit ?? ""
67860
- };
67861
- }
67862
- }
67863
- return result;
67864
- }, "getStaticRivenStats");
67865
- var getWeaponRivenDisposition = /* @__PURE__ */ __name((name2) => {
67866
- const normalizedName = normalizeName(name2);
67867
- const normalRes = weaponRivenDispositionDict[normalizedName];
67868
- if (normalRes) {
67869
- return normalRes;
67870
- }
67871
- const withPrimeSuffix = normalizedName + "prime";
67872
- const withPrimeRes = weaponRivenDispositionDict[withPrimeSuffix];
67873
- if (withPrimeRes) {
67874
- return withPrimeRes;
67875
- }
67876
- return void 0;
67877
- }, "getWeaponRivenDisposition");
67878
- var parseOCRResult = /* @__PURE__ */ __name(async (ocrResult) => {
67879
- const { globalRivenAttributeList } = await globalRivenAttribute.get();
67880
- const list = ocrResult;
67881
- if (!list.length) {
67882
- return;
67883
- }
67884
- function similarity(standard, input) {
67885
- if (!standard || !input) {
67886
- return 0;
67887
- }
67888
- standard = normalizeName(standard);
67889
- input = normalizeName(input);
67890
- if (input === "伤害") {
67891
- return standard === "基础伤害" ? 1 : 0;
67892
- }
67893
- if (input === "弹药最大值") {
67894
- return standard === "弹药上限" ? 1 : 0;
67895
- }
67896
- if (standard === "基础伤害" && input.match(/^伤害$|近战伤害/)) {
67897
- return 1;
67898
- }
67899
- if (standard === "暴击率") {
67900
- standard = "暴击几率";
67901
- }
67902
- if (standard.includes(input) || input.includes(standard) || standard.split("/").find((x) => !!x && input.includes(x))) {
67903
- return 1;
67904
- }
67905
- const t = tokenSimilarity(standard, input);
67906
- const s = normalSimilarity(standard, input);
67907
- return Math.max(t, s);
67908
- }
67909
- __name(similarity, "similarity");
67910
- const texts = list;
67911
- const attributes = [];
67912
- const statLines = [];
67913
- for (const t of texts) {
67914
- if (!t || !t.match(/^[x+-]|^[0-9]/)) {
67915
- continue;
67916
- }
67917
- const prefix = t.match(/^[x+-]/) ? t[0] : "";
67918
- const attrNamePart = removeSpace(t ?? "").replace(/^[^一-龥]+/, "");
67919
- const attr = globalRivenAttributeList.find((a) => {
67920
- if (!a) return false;
67921
- let zhName = a.i18n["zh-hans"]?.name;
67922
- if (!zhName) return false;
67923
- const sim = similarity(zhName, attrNamePart);
67924
- if (sim < 0.8) return false;
67925
- return true;
67926
- });
67927
- if (!attr) {
67928
- continue;
67929
- }
67930
- statLines.push(t);
67931
- const value = (/* @__PURE__ */ __name((function extractStatValue(text) {
67932
- const t2 = text.replace(/\s+/g, "");
67933
- const multMatch = t2.match(/x(\d+(\.\d+)?)/i);
67934
- if (multMatch) {
67935
- return {
67936
- value: parseFloat(multMatch[1]),
67937
- type: "multiply"
67938
- };
67939
- }
67940
- const percentMatch = t2.match(/([+-]?\d+(\.\d+)?)%/);
67941
- if (percentMatch) {
67942
- return {
67943
- value: parseFloat(percentMatch[1]),
67944
- type: "percent"
67945
- };
67946
- }
67947
- const numMatch = t2.match(/([+-]?\d+(\.\d+)?)/);
67948
- if (numMatch) {
67949
- return {
67950
- value: parseFloat(numMatch[1]),
67951
- type: "number"
67952
- };
67953
- }
67954
- return void 0;
67955
- }), "extractStatValue"))(t);
67956
- if (!value) {
67957
- return void 0;
67958
- }
67959
- attributes.push({ attr, value: value.value, prefix });
67960
- }
67961
- const weaponName = (/* @__PURE__ */ __name((function extractWeaponName(ocrData) {
67962
- const rejectPatterns = [
67963
- /%/,
67964
- /x\d/i,
67965
- /\d/,
67966
- // numbers, %, multipliers
67967
- /伤害/,
67968
- /暴击/,
67969
- /射速/,
67970
- /攻击/,
67971
- /后坐力/,
67972
- /段位/,
67973
- /加倍/,
67974
- /效/,
67975
- /武器/,
67976
- /果/,
67977
- /\)/,
67978
- /\(/
67979
- // junk OCR fragments
67980
- ];
67981
- const candidates = ocrData.filter((str) => {
67982
- const s = str.trim();
67983
- if (/^\d+$/.test(s)) return false;
67984
- if (/[+%]/.test(s)) return false;
67985
- if (!/[A-Za-z\u4e00-\u9fa5]/.test(s)) return false;
67986
- if (rejectPatterns.some((p) => p.test(s))) return false;
67987
- return true;
67988
- });
67989
- const merged = candidates.join("");
67990
- function removeRivenSuffix(name2) {
67991
- let s = name2.replace(/\s+/g, "");
67992
- const rivenPattern = /[A-Za-z]+-?[A-Za-z]+$/;
67993
- return s.replace(rivenPattern, "");
67994
- }
67995
- __name(removeRivenSuffix, "removeRivenSuffix");
67996
- return merged ? removeRivenSuffix(merged) : null;
67997
- }), "extractWeaponName"))(texts.filter((t) => !statLines.some((l) => l === t)));
67998
- if (!weaponName || !attributes.length) {
67999
- return void 0;
68000
- }
68001
- return {
68002
- name: weaponName,
68003
- attributes
68004
- };
68005
- }, "parseOCRResult");
68006
- var analyzeRivenStat = /* @__PURE__ */ __name((parseResult) => {
68007
- const weaponRiven = getWeaponRivenDisposition(parseResult.name);
68008
- if (!weaponRiven) {
68009
- return "未找到武器: " + parseResult.name;
68010
- }
68011
- const disposition = weaponRiven.calc.disposition;
68012
- const weaponType = weaponRiven.calc.riventype;
68013
- const rivenStatCountType = (function() {
68014
- if (parseResult.attributes.length === 4) {
68015
- return "31";
68016
- } else if (parseResult.attributes.length === 2) {
68017
- return "2";
68018
- }
68019
- const firstStat = parseResult.attributes[0];
68020
- const firstStatBaseValue = rivenAttrValueDict[weaponType][normalizeName(firstStat.attr.i18n["en"].name)];
68021
- if (firstStat.value >= firstStatBaseValue * 1.2375 * 0.9 * disposition) {
68022
- return "21";
68023
- } else {
68024
- return "3";
68025
- }
68026
- })();
68027
- const { buffFactor, buffCount, curseFactor, curseCount } = rivenStatFixFactor[rivenStatCountType];
68028
- const buffs = [];
68029
- for (let i = 0; i < buffCount; i++) {
68030
- const attr = parseResult.attributes[i];
68031
- const baseValue = rivenAttrValueDict[weaponType][normalizeName(attr.attr.i18n["en"].name)];
68032
- const value = attr.attr.unit === "multiply" ? attr.value - 1 : attr.value;
68033
- const standardValue = baseValue * buffFactor * disposition;
68034
- const percent = (value - standardValue) / standardValue;
68035
- buffs.push({
68036
- name: attr.attr.i18n["zh-hans"].name,
68037
- unit: attr.attr.unit,
68038
- value: attr.value,
68039
- percent,
68040
- max: standardValue * 1.1,
68041
- min: standardValue * 0.9
68042
- });
68043
- }
68044
- const curses = [];
68045
- if (curseCount > 0) {
68046
- for (let i = buffCount; i < buffCount + curseCount; i++) {
68047
- const attr = parseResult.attributes[i];
68048
- const baseValue = rivenAttrValueDict[weaponType][normalizeName(attr.attr.i18n["en"].name)];
68049
- const value = attr.attr.unit === "multiply" ? attr.value - 1 : attr.value;
68050
- const standardValue = baseValue * curseFactor * disposition;
68051
- const percent = (value - standardValue) / standardValue * -1;
68052
- curses.push({
68053
- name: attr.attr.i18n["zh-hans"].name,
68054
- unit: attr.attr.unit,
68055
- value: attr.value,
68056
- percent,
68057
- max: standardValue * 0.9,
68058
- min: standardValue * 1.1
68059
- });
68060
- }
68061
- }
68062
- return {
68063
- name: weaponRiven.name.zh,
68064
- disposition,
68065
- buffs,
68066
- curses
68067
- };
68068
- }, "analyzeRivenStat");
68031
+ }, "generateImageOutput");
68069
68032
 
68070
68033
  // src/components/wf.tsx
68071
68034
  var import_jsx_runtime = require("@satorijs/element/jsx-runtime");
@@ -70194,11 +70157,11 @@ var onReadyHandler = /* @__PURE__ */ __name(async () => {
70194
70157
  // src/index.ts
70195
70158
  var import_reflect_metadata = __toESM(require_Reflect());
70196
70159
  var name = "warframe";
70197
- var Config = import_koishi.Schema.object({
70198
- developerMode: import_koishi.Schema.boolean().default(false),
70199
- ocrAPISecret: import_koishi.Schema.object({
70200
- id: import_koishi.Schema.string().required(),
70201
- key: import_koishi.Schema.string().required()
70160
+ var Config = import_koishi2.Schema.object({
70161
+ developerMode: import_koishi2.Schema.boolean().default(false),
70162
+ ocrAPISecret: import_koishi2.Schema.object({
70163
+ id: import_koishi2.Schema.string().required(),
70164
+ key: import_koishi2.Schema.string().required()
70202
70165
  }).description("OCR API 密钥")
70203
70166
  });
70204
70167
  function apply(ctx) {
@@ -70209,7 +70172,7 @@ __name(apply, "apply");
70209
70172
  var setupHooks = /* @__PURE__ */ __name((ctx) => {
70210
70173
  ctx.on("message", (session) => {
70211
70174
  if (ctx.config.developerMode) {
70212
- ctx.logger.info(
70175
+ logger.info(
70213
70176
  `Koishi recieved message: ${session.content}
70214
70177
  Platform: ${session.platform}
70215
70178
  User: ${session.author.name}`
@@ -70218,7 +70181,7 @@ var setupHooks = /* @__PURE__ */ __name((ctx) => {
70218
70181
  });
70219
70182
  ctx.on("command/before-execute", (action) => {
70220
70183
  if (ctx.config.developerMode) {
70221
- ctx.logger.info(
70184
+ logger.info(
70222
70185
  `WFM Plugin received command ${action.command?.name}
70223
70186
  arguments: ${JSON.stringify(action.args)}`
70224
70187
  );