weflow-cli 1.5.0

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 (145) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +149 -0
  3. package/bin/weflow-cli-electron.cjs +59 -0
  4. package/bin/weflow-cli.ts +2311 -0
  5. package/cli.cjs +3 -0
  6. package/dist/bin/weflow-cli.d.ts +3 -0
  7. package/dist/bin/weflow-cli.d.ts.map +1 -0
  8. package/dist/bin/weflow-cli.js +2270 -0
  9. package/dist/bin/weflow-cli.js.map +1 -0
  10. package/dist/mcp-server/index.d.ts +3 -0
  11. package/dist/mcp-server/index.d.ts.map +1 -0
  12. package/dist/mcp-server/index.js +690 -0
  13. package/dist/mcp-server/index.js.map +1 -0
  14. package/dist/src/core/dbPathService.d.ts +40 -0
  15. package/dist/src/core/dbPathService.d.ts.map +1 -0
  16. package/dist/src/core/dbPathService.js +324 -0
  17. package/dist/src/core/dbPathService.js.map +1 -0
  18. package/dist/src/core/keyService.d.ts +59 -0
  19. package/dist/src/core/keyService.d.ts.map +1 -0
  20. package/dist/src/core/keyService.js +368 -0
  21. package/dist/src/core/keyService.js.map +1 -0
  22. package/dist/src/core/ntCore.d.ts +62 -0
  23. package/dist/src/core/ntCore.d.ts.map +1 -0
  24. package/dist/src/core/ntCore.js +191 -0
  25. package/dist/src/core/ntCore.js.map +1 -0
  26. package/dist/src/core/sqlcipherCore.d.ts +119 -0
  27. package/dist/src/core/sqlcipherCore.d.ts.map +1 -0
  28. package/dist/src/core/sqlcipherCore.js +693 -0
  29. package/dist/src/core/sqlcipherCore.js.map +1 -0
  30. package/dist/src/core/wcdbCore.d.ts +738 -0
  31. package/dist/src/core/wcdbCore.d.ts.map +1 -0
  32. package/dist/src/core/wcdbCore.js +4545 -0
  33. package/dist/src/core/wcdbCore.js.map +1 -0
  34. package/dist/src/core/wechatClient.d.ts +23 -0
  35. package/dist/src/core/wechatClient.d.ts.map +1 -0
  36. package/dist/src/core/wechatClient.js +166 -0
  37. package/dist/src/core/wechatClient.js.map +1 -0
  38. package/dist/src/services/chatService.d.ts +25 -0
  39. package/dist/src/services/chatService.d.ts.map +1 -0
  40. package/dist/src/services/chatService.js +291 -0
  41. package/dist/src/services/chatService.js.map +1 -0
  42. package/dist/src/services/configService.d.ts +43 -0
  43. package/dist/src/services/configService.d.ts.map +1 -0
  44. package/dist/src/services/configService.js +156 -0
  45. package/dist/src/services/configService.js.map +1 -0
  46. package/dist/src/services/exportService.d.ts +30 -0
  47. package/dist/src/services/exportService.d.ts.map +1 -0
  48. package/dist/src/services/exportService.js +273 -0
  49. package/dist/src/services/exportService.js.map +1 -0
  50. package/dist/src/services/wechat-formatter.d.ts +69 -0
  51. package/dist/src/services/wechat-formatter.d.ts.map +1 -0
  52. package/dist/src/services/wechat-formatter.js +248 -0
  53. package/dist/src/services/wechat-formatter.js.map +1 -0
  54. package/dist/src/services/wechatMessageService.d.ts +28 -0
  55. package/dist/src/services/wechatMessageService.d.ts.map +1 -0
  56. package/dist/src/services/wechatMessageService.js +341 -0
  57. package/dist/src/services/wechatMessageService.js.map +1 -0
  58. package/dist/src/services/wereadService.d.ts +206 -0
  59. package/dist/src/services/wereadService.d.ts.map +1 -0
  60. package/dist/src/services/wereadService.js +145 -0
  61. package/dist/src/services/wereadService.js.map +1 -0
  62. package/dist/src/services/whitelistService.d.ts +20 -0
  63. package/dist/src/services/whitelistService.d.ts.map +1 -0
  64. package/dist/src/services/whitelistService.js +60 -0
  65. package/dist/src/services/whitelistService.js.map +1 -0
  66. package/dist/src/types.d.ts +140 -0
  67. package/dist/src/types.d.ts.map +1 -0
  68. package/dist/src/types.js +2 -0
  69. package/dist/src/types.js.map +1 -0
  70. package/dist/src/utils/errors.d.ts +25 -0
  71. package/dist/src/utils/errors.d.ts.map +1 -0
  72. package/dist/src/utils/errors.js +43 -0
  73. package/dist/src/utils/errors.js.map +1 -0
  74. package/dist/src/utils/pathUtils.d.ts +5 -0
  75. package/dist/src/utils/pathUtils.d.ts.map +1 -0
  76. package/dist/src/utils/pathUtils.js +16 -0
  77. package/dist/src/utils/pathUtils.js.map +1 -0
  78. package/dist/src/utils/pythonRunner.d.ts +27 -0
  79. package/dist/src/utils/pythonRunner.d.ts.map +1 -0
  80. package/dist/src/utils/pythonRunner.js +62 -0
  81. package/dist/src/utils/pythonRunner.js.map +1 -0
  82. package/dist/src/utils/talkerUtils.d.ts +14 -0
  83. package/dist/src/utils/talkerUtils.d.ts.map +1 -0
  84. package/dist/src/utils/talkerUtils.js +73 -0
  85. package/dist/src/utils/talkerUtils.js.map +1 -0
  86. package/mcp-server/index.ts +757 -0
  87. package/package.json +72 -0
  88. package/resources/key/win32/x64/wx_key.dll +0 -0
  89. package/resources/wcdb/win32/x64/SDL2.dll +0 -0
  90. package/resources/wcdb/win32/x64/WCDB.dll +0 -0
  91. package/resources/wcdb/win32/x64/msvcp140.dll +0 -0
  92. package/resources/wcdb/win32/x64/msvcp140_1.dll +0 -0
  93. package/resources/wcdb/win32/x64/vcruntime140.dll +0 -0
  94. package/resources/wcdb/win32/x64/vcruntime140_1.dll +0 -0
  95. package/resources/wcdb/win32/x64/wcdb_api.dll +0 -0
  96. package/scripts/_batch_link_sources.py +73 -0
  97. package/scripts/_utils.py +531 -0
  98. package/scripts/annual_report.py +796 -0
  99. package/scripts/auto_tag.py +128 -0
  100. package/scripts/biz_daily.py +896 -0
  101. package/scripts/chat_report.py +397 -0
  102. package/scripts/chat_stats.py +702 -0
  103. package/scripts/classify_daily.py +411 -0
  104. package/scripts/compile_wiki.py +258 -0
  105. package/scripts/create_reading_notes.py +370 -0
  106. package/scripts/enrich_backlinks.py +163 -0
  107. package/scripts/export_chat_html.py +766 -0
  108. package/scripts/extract_3x_key.py +86 -0
  109. package/scripts/extract_todos.py +404 -0
  110. package/scripts/fav_server.py +392 -0
  111. package/scripts/fix_topics.py +111 -0
  112. package/scripts/generate_ai_report.py +367 -0
  113. package/scripts/generate_html.py +1372 -0
  114. package/scripts/generate_review.py +170 -0
  115. package/scripts/mcp_bridge.py +398 -0
  116. package/scripts/nt_decrypt.py +562 -0
  117. package/scripts/pipeline.py +145 -0
  118. package/scripts/promote_all.py +310 -0
  119. package/scripts/promote_ideas.py +297 -0
  120. package/scripts/rag_chat.py +191 -0
  121. package/scripts/scan_decrypt_4x.py +329 -0
  122. package/scripts/semantic_search.py +431 -0
  123. package/scripts/sync_fav.py +146 -0
  124. package/scripts/sync_weread.py +192 -0
  125. package/scripts/vault_rag.py +139 -0
  126. package/scripts/vault_search.py +141 -0
  127. package/src/core/dbPathService.ts +348 -0
  128. package/src/core/keyService.ts +409 -0
  129. package/src/core/ntCore.ts +224 -0
  130. package/src/core/sqlcipherCore.ts +764 -0
  131. package/src/core/wcdbCore.ts +4568 -0
  132. package/src/core/wechatClient.ts +204 -0
  133. package/src/lz4.d.ts +10 -0
  134. package/src/services/chatService.ts +296 -0
  135. package/src/services/configService.ts +197 -0
  136. package/src/services/exportService.ts +305 -0
  137. package/src/services/wechat-formatter.ts +348 -0
  138. package/src/services/wechatMessageService.ts +383 -0
  139. package/src/services/wereadService.ts +308 -0
  140. package/src/services/whitelistService.ts +72 -0
  141. package/src/types.ts +141 -0
  142. package/src/utils/errors.ts +42 -0
  143. package/src/utils/pathUtils.ts +16 -0
  144. package/src/utils/pythonRunner.ts +81 -0
  145. package/src/utils/talkerUtils.ts +84 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../mcp-server/index.ts"],"names":[],"mappings":";AACA;;;;;GAKG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAA;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAA;AAChF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,oCAAoC,CAAA;AAC3C,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,IAAI,CAAA;AAC9F,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,MAAM,CAAA;AAElC,sBAAsB;AACtB,KAAK,UAAU,kBAAkB,CAAC,GAAW;IAO3C,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;QAC5B,OAAO,EAAE;YACP,YAAY,EAAE,8DAA8D;YAC5E,QAAQ,EAAE,iCAAiC;YAC3C,iBAAiB,EAAE,gBAAgB;SACpC;QACD,QAAQ,EAAE,QAAQ;KACnB,CAAC,CAAA;IACF,IAAI,CAAC,IAAI,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,QAAQ,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,UAAU,EAAE,CAAC,CAAA;IACxE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAA;IAE9B,aAAa;IACb,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,sDAAsD,CAAC,EAAE,CAAC,CAAC,CAAC;WAChF,IAAI,CAAC,KAAK,CAAC,0BAA0B,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE;WACnD,QAAQ,CAAA;IACb,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,+DAA+D,CAAC,EAAE,CAAC,CAAC,CAAC;WAC1F,IAAI,CAAC,KAAK,CAAC,iCAAiC,CAAC,EAAE,CAAC,CAAC,CAAC;WAClD,QAAQ,CAAA;IACb,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,4DAA4D,CAAC,EAAE,CAAC,CAAC,CAAC;WAC5F,EAAE,CAAA;IAEP,qBAAqB;IACrB,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,4DAA4D,CAAC,CAAA;IAC7F,IAAI,OAAO,GAAG,YAAY,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;IAErC,sBAAsB;IACtB,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,CAAA;IAEjD,yBAAyB;IACzB,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;IAEjC,SAAS;IACT,MAAM,MAAM,GAAa,EAAE,CAAA;IAC3B,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAA;IACzD,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,IAAI,CAAC,CAAC,CAAC,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC7B,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,CAAA;AACxD,CAAC;AAED,yCAAyC;AACzC,SAAS,cAAc,CAAC,IAAY;IAClC,IAAI,EAAE,GAAG,IAAI;QACX,qBAAqB;SACpB,OAAO,CAAC,iCAAiC,EAAE,EAAE,CAAC;SAC9C,OAAO,CAAC,mCAAmC,EAAE,EAAE,CAAC;QACjD,KAAK;SACJ,OAAO,CAAC,wBAAwB,EAAE,UAAU,CAAC;SAC7C,OAAO,CAAC,wBAAwB,EAAE,WAAW,CAAC;SAC9C,OAAO,CAAC,wBAAwB,EAAE,YAAY,CAAC;SAC/C,OAAO,CAAC,wBAAwB,EAAE,aAAa,CAAC;QACjD,QAAQ;SACP,OAAO,CAAC,gCAAgC,EAAE,QAAQ,CAAC;SACnD,OAAO,CAAC,sBAAsB,EAAE,QAAQ,CAAC;SACzC,OAAO,CAAC,wBAAwB,EAAE,MAAM,CAAC;SACzC,OAAO,CAAC,sBAAsB,EAAE,MAAM,CAAC;QACxC,QAAQ;SACP,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC;SAC7B,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC;SAC7B,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;QACvB,KAAK;SACJ,OAAO,CAAC,wBAAwB,EAAE,QAAQ,CAAC;QAC5C,KAAK;SACJ,OAAO,CAAC,6CAA6C,EAAE,CAAC,CAAS,EAAE,OAAe,EAAE,EAAE;QACrF,OAAO,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,IAAI,CAAA;IAC9D,CAAC,CAAC;QACF,KAAK;SACJ,OAAO,CAAC,gCAAgC,EAAE,WAAW,CAAC;QACvD,KAAK;SACJ,OAAO,CAAC,yCAAyC,EAAE,UAAU,CAAC;QAC/D,SAAS;SACR,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;QACxB,aAAa;SACZ,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC;SACtB,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;SACrB,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;SACrB,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;SACvB,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC;SACtB,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;QACxB,SAAS;SACR,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC;SAC1B,IAAI,EAAE,CAAA;IAET,OAAO,EAAE,CAAA;AACX,CAAC;AACD,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAA;AAErF,yBAAyB;AACzB,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAA;AACpD,MAAM,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,EAAE,CAAA;AAM5D,IAAI,WAAW,GAAsB,IAAI,CAAA;AAEzC,KAAK,UAAU,cAAc;IAC3B,IAAI,WAAW,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,WAAW,CAAC,SAAS,GAAG,KAAK,EAAE,CAAC;QAC9D,OAAO,WAAW,CAAC,KAAK,CAAA;IAC1B,CAAC;IACD,IAAI,CAAC,aAAa,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAA;IAC5D,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,KAAK,CACtB,8EAA8E,aAAa,WAAW,iBAAiB,EAAE,CAC1H,CAAA;IACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAS,CAAA;IACrC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,kBAAkB,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,OAAO,GAAG,CAAC,CAAA;IACpE,CAAC;IACD,WAAW,GAAG;QACZ,KAAK,EAAE,IAAI,CAAC,YAAY;QACxB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC,GAAG,IAAI;KACtD,CAAA;IACD,OAAO,WAAW,CAAC,KAAK,CAAA;AAC1B,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,KAAa,EAAE,QAAgB;IAC9D,MAAM,GAAG,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAA;IAClC,MAAM,QAAQ,GAAG,aAAa,IAAI,CAAC,GAAG,EAAE,EAAE,CAAA;IAC1C,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAA;IACjD,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,IAAI,KAAK,CAAA;IAC7D,MAAM,QAAQ,GAAG,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,WAAW,CAAA;IAE7E,MAAM,MAAM,GAAG;QACb,KAAK,QAAQ,EAAE;QACf,2DAA2D,QAAQ,GAAG;QACtE,iBAAiB,QAAQ,EAAE;QAC3B,EAAE,EAAE,EAAE;KACP,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACd,MAAM,OAAO,GAAG,SAAS,QAAQ,QAAQ,CAAA;IAEzC,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IACpD,MAAM,YAAY,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IACtD,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAA;IAClF,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAA;IACxB,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;IACjC,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,WAAW,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAA;IAEvD,MAAM,IAAI,GAAG,MAAM,KAAK,CACtB,wEAAwE,KAAK,aAAa,EAC1F;QACE,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,iCAAiC,QAAQ,EAAE,EAAE;QACxE,IAAI;KACL,CACF,CAAA;IACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAS,CAAA;IACrC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,YAAY,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,OAAO,GAAG,CAAC,CAAA;IAC9D,CAAC;IACD,OAAO,IAAI,CAAC,QAAQ,CAAA;AACtB,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,KAAa,EAAE,QAM9C;IACA,MAAM,IAAI,GAAG,MAAM,KAAK,CACtB,4DAA4D,KAAK,EAAE,EACnE;QACE,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;QAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;KACnC,CACF,CAAA;IACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAS,CAAA;IACrC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,WAAW,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,OAAO,GAAG,CAAC,CAAA;IAC7D,CAAC;IACD,OAAO,IAAI,CAAC,QAAQ,CAAA;AACtB,CAAC;AAED,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,GAAG,EAAE,IAAI,CAAC,CAAC,CAAA;AAChE,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAA;AACvD,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,UAAU,CAAC,CAAA;AAC/E,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAA;AACtF,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,CAAA;AAE5D,SAAS,gBAAgB,CAAC,IAAY;IACpC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,CAAA;IACtC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;IAClC,IAAI,GAAG,KAAK,CAAC,CAAC;QAAE,OAAO,EAAE,CAAA;IACzB,MAAM,EAAE,GAAwB,EAAE,CAAA;IAClC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QAClD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAC7B,IAAI,GAAG,KAAK,CAAC,CAAC;YAAE,SAAQ;QACxB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAA;QACrC,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;QACpC,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7C,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAA;QAC/E,CAAC;aAAM,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACpD,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAC5B,CAAC;aAAM,CAAC;YACN,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,CAAA;QACf,CAAC;IACH,CAAC;IACD,OAAO,EAAE,CAAA;AACX,CAAC;AAED,SAAS,YAAY;IACnB,MAAM,OAAO,GAAU,EAAE,CAAA;IACzB,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,OAAO,CAAA;IAC1C,KAAK,MAAM,OAAO,IAAI,WAAW,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC;QAC9D,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;QACnC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE;YAAE,SAAQ;QACzC,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC;YACpC,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;YAC1B,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE;gBAAE,SAAQ;YACzC,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC;gBACnC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,WAAW;oBAAE,SAAQ;gBAC3D,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,CAAA;gBACrD,MAAM,EAAE,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAA;gBACpC,OAAO,CAAC,IAAI,CAAC;oBACX,GAAG,EAAE;oBACL,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC;oBAChC,OAAO;iBACR,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,SAAS,cAAc,CAAC,IAAyB;IAC/C,IAAI,QAAQ,GAAG,YAAY,EAAE,CAAA;IAC7B,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAA;QAC7C,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAC7B,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1C,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC3C,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CACjE,CAAA;IACH,CAAC;IACD,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,CAAA;IACzD,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC,IAAI,CAAC,CAAA;IAC1D,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;IACtC,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;IACpC,IAAI,CAAC,GAAG,CAAC,MAAM;QAAE,OAAO,SAAS,CAAA;IACjC,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CACjB,MAAM,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,KAAK,IAAI,OAAO,QAAQ,CAAC,CAAC,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,KAAK,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAC1J,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;AAChB,CAAC;AAED,gCAAgC;AAChC,SAAS,kBAAkB,CAAC,KAAa,EAAE,KAAa;IACtD,MAAM,MAAM,GAA6C;QACvD,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC;QACpB,OAAO,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC;QACvB,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;QACrB,KAAK,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC;KACrB,CAAA;IACD,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAA;IACjD,MAAM,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,CAAA;IAEtB,SAAS,KAAK,CAAC,GAAW;QACxB,IAAI,CAAC,GAAG,UAAU,CAAA;QAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACpC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAA;YACX,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACtE,CAAC;QACD,OAAO,CAAC,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAA;IAC/B,CAAC;IACD,SAAS,KAAK,CAAC,IAAY,EAAE,IAAY;QACvC,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAC5B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;QAClC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;QACnB,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAC9B,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QACvE,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAA;IAC5C,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAA;IAChE,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IAC7B,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAAC,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IAClD,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;IAExB,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;QAC9B,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,MAAM,EAAE,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YAC7B,MAAM,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;YAClC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,CAAA;YAChC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,CAAA;YACpC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,CAAA;QACtC,CAAC;IACH,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC;QACxB,SAAS;QACT,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC;QACnB,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC;QAC/B,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;KAC/B,CAAC,CAAA;IAEF,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAA;IAC/C,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAC/D,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,SAAS,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;IACpD,aAAa,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IACxB,OAAO,IAAI,CAAA;AACb,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,EACxC,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAChC,CAAA;IAED,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;QAC5D,KAAK,EAAE;YACL;gBACE,IAAI,EAAE,wBAAwB;gBAC9B,WAAW,EAAE,wBAAwB;gBACrC,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE;wBAC3D,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,4BAA4B,EAAE;wBACpE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,eAAe,EAAE;wBACtD,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE;qBACpD;iBACF;aACF;YACD;gBACE,IAAI,EAAE,kBAAkB;gBACxB,WAAW,EAAE,cAAc;gBAC3B,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,oBAAoB,EAAE;qBAC5D;iBACF;aACF;YACD;gBACE,IAAI,EAAE,qBAAqB;gBAC3B,WAAW,EAAE,UAAU;gBACvB,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE;aAChD;YACD;gBACE,IAAI,EAAE,oBAAoB;gBAC1B,WAAW,EAAE,kBAAkB;gBAC/B,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE;qBACzD;oBACD,QAAQ,EAAE,CAAC,MAAM,CAAC;iBACnB;aACF;YACD;gBACE,IAAI,EAAE,mBAAmB;gBACzB,WAAW,EAAE,eAAe;gBAC5B,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,oBAAoB,EAAE;qBAC5D;iBACF;aACF;YACD;gBACE,IAAI,EAAE,kBAAkB;gBACxB,WAAW,EAAE,SAAS;gBACtB,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE;aAChD;YACD;gBACE,IAAI,EAAE,uBAAuB;gBAC7B,WAAW,EAAE,mEAAmE;gBAChF,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE;wBAC5D,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,mDAAmD,EAAE;qBAC5F;oBACD,QAAQ,EAAE,CAAC,SAAS,CAAC;iBACtB;aACF;YACD;gBACE,IAAI,EAAE,wBAAwB;gBAC9B,WAAW,EAAE,qEAAqE;gBAClF,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE;wBACrD,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE;wBAC5D,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,6BAA6B,EAAE;wBACtE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,mDAAmD,EAAE;wBAC3F,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE;wBAC3D,YAAY,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,qBAAqB,EAAE;qBACtE;oBACD,QAAQ,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC;iBAC/B;aACF;YACD;gBACE,IAAI,EAAE,oBAAoB;gBAC1B,WAAW,EAAE,kBAAkB;gBAC/B,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE;aAChD;YACD;gBACE,IAAI,EAAE,sBAAsB;gBAC5B,WAAW,EAAE,2CAA2C;gBACxD,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE;wBACjD,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE;qBACpD;oBACD,QAAQ,EAAE,CAAC,SAAS,CAAC;iBACtB;aACF;YACD;gBACE,IAAI,EAAE,sBAAsB;gBAC5B,WAAW,EAAE,0BAA0B;gBACvC,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,wBAAwB,EAAE;qBAC/D;oBACD,QAAQ,EAAE,CAAC,KAAK,CAAC;iBAClB;aACF;SACF;KACF,CAAC,CAAC,CAAA;IAEH,MAAM,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAChE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,CAAA;QAErD,IAAI,CAAC;YACH,QAAQ,IAAI,EAAE,CAAC;gBACb,KAAK,wBAAwB;oBAC3B,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAA;gBAEpE,KAAK,kBAAkB,CAAC,CAAC,CAAC;oBACxB,MAAM,KAAK,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;oBAClF,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;oBAChD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,WAAW,CAAC,CAAA;oBACjD,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;wBAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,IAAI,MAAM,EAAE,CAAC,EAAE,CAAA;oBACxF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,EAAE,CAAA;gBAC7E,CAAC;gBAED,KAAK,qBAAqB,CAAC,CAAC,CAAC;oBAC3B,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;wBAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,4BAA4B,EAAE,CAAC,EAAE,CAAA;oBACxG,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,EAAE,CAAC,EAAE,CAAA;gBAClF,CAAC;gBAED,KAAK,oBAAoB,CAAC,CAAC,CAAC;oBAC1B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;oBAC9B,KAAK,MAAM,GAAG,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC;wBAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,IAAI,GAAG,GAAG,CAAC,CAAA;wBACzC,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;4BACrB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC,EAAE,CAAA;wBAC3E,CAAC;oBACH,CAAC;oBACD,eAAe;oBACf,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;wBAC3B,KAAK,MAAM,CAAC,IAAI,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC;4BACxC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gCACrB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,EAAE,CAAA;4BAC1F,CAAC;wBACH,CAAC;oBACH,CAAC;oBACD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,IAAI,EAAE,EAAE,CAAC,EAAE,CAAA;gBAChE,CAAC;gBAED,KAAK,mBAAmB,CAAC,CAAC,CAAC;oBACzB,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;oBAC9E,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAA;oBACpC,IAAI,IAAY,CAAA;oBAChB,IAAI,IAAI,EAAE,CAAC;wBACT,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,SAAS,IAAI,KAAK,CAAC,CAAA;oBAC1C,CAAC;yBAAM,CAAC;wBACN,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;oBACpD,CAAC;oBACD,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;wBAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,IAAI,IAAI,IAAI,QAAQ,EAAE,CAAC,EAAE,CAAA;oBACzG,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC,EAAE,CAAA;gBAC3E,CAAC;gBAED,KAAK,uBAAuB,CAAC,CAAC,CAAC;oBAC7B,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAA;oBAC1C,IAAI,CAAC,OAAO;wBAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,EAAE,CAAA;oBAC9E,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,SAAS,CAAC,CAAA;oBAC7C,MAAM,IAAI,GAAG,mBAAmB,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,KAAY,EAAE,CAAC,CAAA;oBAClE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,CAAA;oBACvF,OAAO;wBACL,OAAO,EAAE,CAAC;gCACR,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE;oCACJ,OAAO,KAAK,EAAE;oCACd,QAAQ,IAAI,CAAC,MAAM,KAAK;oCACxB,SAAS,OAAO,EAAE;oCAClB,KAAK;oCACL,IAAI;iCACL,CAAC,IAAI,CAAC,IAAI,CAAC;6BACb,CAAC;qBACH,CAAA;gBACH,CAAC;gBAED,KAAK,oBAAoB,CAAC,CAAC,CAAC;oBAC1B,MAAM,MAAM,GAAG,UAAU,EAAE,CAAA;oBAC3B,OAAO;wBACL,OAAO,EAAE,CAAC;gCACR,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;6BAChF,CAAC;qBACH,CAAA;gBACH,CAAC;gBAED,KAAK,wBAAwB,CAAC,CAAC,CAAC;oBAC9B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;oBACnD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAA;oBAC1C,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,cAAc,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;oBAChE,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,SAAS,CAAC,CAAA;oBAC7C,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;oBACnE,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,KAAK,IAAI,IAAI,IAAI,CAAC,YAAY,KAAK,MAAM,CAAA;oBAE9E,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;wBACvB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,0BAA0B,EAAE,CAAC,EAAE,CAAA;oBAC1E,CAAC;oBAED,QAAQ;oBACR,MAAM,IAAI,GAAG,mBAAmB,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,KAAY,EAAE,CAAC,CAAA;oBAClE,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAA;oBAEzE,IAAI,WAAW,EAAE,CAAC;wBAChB,OAAO;4BACL,OAAO,EAAE,CAAC;oCACR,IAAI,EAAE,MAAM;oCACZ,IAAI,EAAE;wCACJ,aAAa,KAAK,EAAE;wCACpB,OAAO,MAAM,UAAU,KAAK,UAAU,SAAS,EAAE;wCACjD,KAAK;wCACL,IAAI;qCACL,CAAC,IAAI,CAAC,IAAI,CAAC;iCACb,CAAC;yBACH,CAAA;oBACH,CAAC;oBAED,YAAY;oBACZ,IAAI,CAAC;wBACH,MAAM,KAAK,GAAG,MAAM,cAAc,EAAE,CAAA;wBAEpC,qBAAqB;wBACrB,IAAI,YAAY,GAAG,EAAE,CAAA;wBACrB,IAAI,UAAU,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;4BACzC,YAAY,GAAG,MAAM,iBAAiB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAA;wBAC3D,CAAC;6BAAM,CAAC;4BACN,UAAU;4BACV,MAAM,SAAS,GAAG,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;4BAClD,YAAY,GAAG,MAAM,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;wBAC1D,CAAC;wBAED,OAAO;wBACP,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,KAAK,EAAE,CAAC;gCAC9C,KAAK;gCACL,MAAM;gCACN,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;gCACvE,OAAO,EAAE,IAAI;gCACb,cAAc,EAAE,YAAY,IAAI,SAAS;6BAC1C,CAAC,CAAC,CAAA;wBAEH,OAAO;4BACL,OAAO,EAAE,CAAC;oCACR,IAAI,EAAE,MAAM;oCACZ,IAAI,EAAE;wCACJ,cAAc;wCACd,aAAa,OAAO,EAAE;wCACtB,OAAO,KAAK,EAAE;wCACd,OAAO,MAAM,UAAU,KAAK,UAAU,SAAS,EAAE;wCACjD,QAAQ,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,EAAE;wCAC5C,EAAE;wCACF,kCAAkC;qCACnC,CAAC,IAAI,CAAC,IAAI,CAAC;iCACb,CAAC;yBACH,CAAA;oBACH,CAAC;oBAAC,OAAO,CAAM,EAAE,CAAC;wBAChB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,OAAO,sBAAsB,IAAI,EAAE,EAAE,CAAC,EAAE,CAAA;oBAC9F,CAAC;gBACH,CAAC;gBAED,KAAK,kBAAkB,CAAC,CAAC,CAAC;oBACxB,MAAM,QAAQ,GAAG,YAAY,EAAE,CAAA;oBAC/B,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;oBAC/D,MAAM,MAAM,GAA2B,EAAE,CAAA;oBACzC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA,CAAC,CAAC,CAAC,CAAA;oBACvF,IAAI,KAAK,GAAG,uBAAuB,QAAQ,CAAC,MAAM,aAAa,KAAK,CAAC,MAAM,OAAO,KAAK,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,KAAK,CAAC,MAAM,GAAC,CAAC,CAAC,cAAc,CAAA;oBACnI,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;wBACxE,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,CAAA;oBAC/B,CAAC;oBACD,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;wBAC5B,MAAM,GAAG,GAAG,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;wBAC9C,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;wBAClC,IAAI,CAAC;4BAAE,KAAK,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;oBACtC,CAAC;oBACD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAA;gBACrD,CAAC;gBAED,KAAK,sBAAsB,CAAC,CAAC,CAAC;oBAC5B,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;oBACjD,IAAI,CAAC,OAAO;wBAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,EAAE,CAAA;oBAC9E,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;oBAEtC,IAAI,CAAC;wBACH,WAAW;wBACX,MAAM,IAAI,GAAG,MAAM,KAAK,CACtB,gDAAgD,kBAAkB,CAAC,OAAO,CAAC,EAAE,EAC7E;4BACE,OAAO,EAAE;gCACP,YAAY,EAAE,iHAAiH;gCAC/H,SAAS,EAAE,2BAA2B;gCACtC,QAAQ,EAAE,WAAW;gCACrB,iBAAiB,EAAE,gBAAgB;6BACpC;yBACF,CACF,CAAA;wBACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAA;wBAE9B,qBAAqB;wBACrB,iCAAiC;wBACjC,MAAM,KAAK,GAA4D,EAAE,CAAA;wBAEzE,oBAAoB;wBACpB,MAAM,YAAY,GAAG,0CAA0C,CAAA;wBAC/D,MAAM,MAAM,GAAa,EAAE,CAAA;wBAC3B,IAAI,EAA0B,CAAA;wBAC9B,OAAO,CAAC,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;4BAC/C,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;4BACpG,IAAI,CAAC;gCAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;wBACvB,CAAC;wBAED,+BAA+B;wBAC/B,MAAM,WAAW,GAAG,6DAA6D,CAAA;wBACjF,MAAM,QAAQ,GAAa,EAAE,CAAA;wBAC7B,IAAI,EAA0B,CAAA;wBAC9B,OAAO,CAAC,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;4BAC9C,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;4BAC9C,IAAI,CAAC;gCAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;wBACzB,CAAC;wBAED,aAAa;wBACb,MAAM,WAAW,GAAG,oDAAoD,CAAA;wBACxE,MAAM,KAAK,GAAa,EAAE,CAAA;wBAC1B,IAAI,EAA0B,CAAA;wBAC9B,OAAO,CAAC,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;4BAC9C,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAA;4BACzH,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,EAAE;gCAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;wBACvC,CAAC;wBAED,OAAO;wBACP,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;wBACpE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;4BAChD,KAAK,CAAC,IAAI,CAAC;gCACT,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,QAAQ;gCAC5B,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,SAAS;gCACjC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE;6BACrB,CAAC,CAAA;wBACJ,CAAC;wBAED,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;4BAClB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,OAAO,wFAAwF,EAAE,CAAC,EAAE,CAAA;wBACvJ,CAAC;wBAED,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CACpC,GAAG,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,KAAK,eAAe,IAAI,CAAC,OAAO,QAAQ,IAAI,CAAC,IAAI,EAAE,CACxE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;wBAEd,OAAO;4BACL,OAAO,EAAE,CAAC;oCACR,IAAI,EAAE,MAAM;oCACZ,IAAI,EAAE;wCACJ,WAAW,OAAO,UAAU,KAAK,CAAC,MAAM,KAAK;wCAC7C,EAAE;wCACF,OAAO;wCACP,EAAE;wCACF,KAAK;wCACL,0DAA0D;qCAC3D,CAAC,IAAI,CAAC,IAAI,CAAC;iCACb,CAAC;yBACH,CAAA;oBACH,CAAC;oBAAC,OAAO,CAAM,EAAE,CAAC;wBAChB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAA;oBACpE,CAAC;gBACH,CAAC;gBAED,KAAK,sBAAsB,CAAC,CAAC,CAAC;oBAC5B,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;oBACzC,IAAI,CAAC,GAAG;wBAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,EAAE,CAAA;oBACtE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;wBACtC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,qCAAqC,EAAE,CAAC,EAAE,CAAA;oBACrF,CAAC;oBAED,IAAI,CAAC;wBACH,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,GAAG,CAAC,CAAA;wBAC7C,OAAO;4BACL,OAAO,EAAE,CAAC;oCACR,IAAI,EAAE,MAAM;oCACZ,IAAI,EAAE;wCACJ,KAAK,OAAO,CAAC,KAAK,EAAE;wCACpB,SAAS,OAAO,CAAC,MAAM,EAAE;wCACzB,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE;wCACrD,EAAE;wCACF,OAAO,CAAC,OAAO;qCAChB,CAAC,IAAI,CAAC,IAAI,CAAC;iCACb,CAAC;yBACH,CAAA;oBACH,CAAC;oBAAC,OAAO,CAAM,EAAE,CAAC;wBAChB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,OAAO,2CAA2C,EAAE,CAAC,EAAE,CAAA;oBAC7G,CAAC;gBACH,CAAC;gBAED;oBACE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,IAAI,EAAE,EAAE,CAAC,EAAE,CAAA;YACjE,CAAC;QACH,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAA;QAClE,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAA;IAC5C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;AACjC,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA"}
@@ -0,0 +1,40 @@
1
+ export interface WxidInfo {
2
+ wxid: string;
3
+ modifiedTime: number;
4
+ nickname?: string;
5
+ avatarUrl?: string;
6
+ }
7
+ export declare class DbPathService {
8
+ private readVarint;
9
+ private extractMmkvString;
10
+ private parseGlobalConfig;
11
+ /**
12
+ * 自动检测微信数据库根目录
13
+ */
14
+ autoDetect(): Promise<{
15
+ success: boolean;
16
+ path?: string;
17
+ error?: string;
18
+ }>;
19
+ /**
20
+ * 查找账号目录(包含 db_storage 或图片目录)
21
+ */
22
+ findAccountDirs(rootPath: string): string[];
23
+ private isAccountDir;
24
+ private isPotentialAccountName;
25
+ private getAccountModifiedTime;
26
+ /**
27
+ * 扫描目录名候选(仅包含下划线的文件夹,排除 all_users)
28
+ */
29
+ scanWxidCandidates(rootPath: string): WxidInfo[];
30
+ /**
31
+ * 扫描 wxid 列表
32
+ */
33
+ scanWxids(rootPath: string): WxidInfo[];
34
+ /**
35
+ * 获取默认数据库路径
36
+ */
37
+ getDefaultPath(): string;
38
+ }
39
+ export declare const dbPathService: DbPathService;
40
+ //# sourceMappingURL=dbPathService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dbPathService.d.ts","sourceRoot":"","sources":["../../../src/core/dbPathService.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,YAAY,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,UAAU;IAclB,OAAO,CAAC,iBAAiB;IAoBzB,OAAO,CAAC,iBAAiB;IAwCzB;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAmDhF;;OAEG;IACH,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE;IA8B3C,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,sBAAsB;IAQ9B,OAAO,CAAC,sBAAsB;IA6B9B;;OAEG;IACH,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,EAAE;IAgDhD;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,EAAE;IAqCvC;;OAEG;IACH,cAAc,IAAI,MAAM;CA8BzB;AAED,eAAO,MAAM,aAAa,eAAsB,CAAA"}
@@ -0,0 +1,324 @@
1
+ import { join, basename } from 'path';
2
+ import { existsSync, readdirSync, statSync, readFileSync } from 'fs';
3
+ import { homedir } from 'os';
4
+ import { createDecipheriv } from 'crypto';
5
+ import { expandHomePath } from '../utils/pathUtils.js';
6
+ export class DbPathService {
7
+ readVarint(buf, offset) {
8
+ let value = 0;
9
+ let length = 0;
10
+ let shift = 0;
11
+ while (offset < buf.length && shift < 32) {
12
+ const b = buf[offset++];
13
+ value |= (b & 0x7f) << shift;
14
+ length++;
15
+ if ((b & 0x80) === 0)
16
+ break;
17
+ shift += 7;
18
+ }
19
+ return { value, length };
20
+ }
21
+ extractMmkvString(buf, keyName) {
22
+ const keyBuf = Buffer.from(keyName, 'utf8');
23
+ const idx = buf.indexOf(keyBuf);
24
+ if (idx === -1)
25
+ return '';
26
+ try {
27
+ let offset = idx + keyBuf.length;
28
+ const v1 = this.readVarint(buf, offset);
29
+ offset += v1.length;
30
+ const v2 = this.readVarint(buf, offset);
31
+ offset += v2.length;
32
+ // 合理性检查
33
+ if (v2.value > 0 && v2.value <= 10000 && offset + v2.value <= buf.length) {
34
+ return buf.toString('utf8', offset, offset + v2.value);
35
+ }
36
+ }
37
+ catch { }
38
+ return '';
39
+ }
40
+ parseGlobalConfig(rootPath) {
41
+ try {
42
+ const configPath = join(rootPath, 'all_users', 'config', 'global_config');
43
+ if (!existsSync(configPath))
44
+ return null;
45
+ const fullData = readFileSync(configPath);
46
+ if (fullData.length <= 4)
47
+ return null;
48
+ const encryptedData = fullData.subarray(4);
49
+ const key = Buffer.alloc(16, 0);
50
+ Buffer.from('xwechat_crypt_key').copy(key); // 直接硬编码,iv更是不重要
51
+ const iv = Buffer.alloc(16, 0);
52
+ const decipher = createDecipheriv('aes-128-cfb', key, iv);
53
+ decipher.setAutoPadding(false);
54
+ const decrypted = Buffer.concat([decipher.update(encryptedData), decipher.final()]);
55
+ const wxid = this.extractMmkvString(decrypted, 'mmkv_key_user_name');
56
+ const nickname = this.extractMmkvString(decrypted, 'mmkv_key_nick_name');
57
+ let avatarUrl = this.extractMmkvString(decrypted, 'mmkv_key_head_img_url');
58
+ if (!avatarUrl && decrypted.includes('http')) {
59
+ const httpIdx = decrypted.indexOf('http');
60
+ const nullIdx = decrypted.indexOf(0x00, httpIdx);
61
+ if (nullIdx !== -1) {
62
+ avatarUrl = decrypted.toString('utf8', httpIdx, nullIdx);
63
+ }
64
+ }
65
+ if (wxid || nickname) {
66
+ return { wxid, nickname, avatarUrl };
67
+ }
68
+ return null;
69
+ }
70
+ catch (e) {
71
+ console.error('解析 global_config 失败:', e);
72
+ return null;
73
+ }
74
+ }
75
+ /**
76
+ * 自动检测微信数据库根目录
77
+ */
78
+ async autoDetect() {
79
+ try {
80
+ const possiblePaths = [];
81
+ const home = homedir();
82
+ if (process.platform === 'darwin') {
83
+ // macOS 微信 4.0.5+ 新路径(优先检测)
84
+ const appSupportBase = join(home, 'Library', 'Containers', 'com.tencent.xinWeChat', 'Data', 'Library', 'Application Support', 'com.tencent.xinWeChat');
85
+ if (existsSync(appSupportBase)) {
86
+ try {
87
+ const entries = readdirSync(appSupportBase);
88
+ for (const entry of entries) {
89
+ // 匹配形如 2.0b4.0.9 的版本目录
90
+ if (/^\d+\.\d+b\d+\.\d+/.test(entry) || /^\d+\.\d+\.\d+/.test(entry)) {
91
+ possiblePaths.push(join(appSupportBase, entry));
92
+ }
93
+ }
94
+ }
95
+ catch { }
96
+ }
97
+ // macOS 旧路径兜底
98
+ possiblePaths.push(join(home, 'Library', 'Containers', 'com.tencent.xinWeChat', 'Data', 'Documents', 'xwechat_files'));
99
+ }
100
+ else {
101
+ // Windows: 优先检测 NT 格式 (xwechat_files)
102
+ possiblePaths.push(join(home, 'xwechat_files'));
103
+ // Windows 微信4.x 数据目录 (Documents)
104
+ possiblePaths.push(join(home, 'Documents', 'xwechat_files'));
105
+ // Windows 微信3.x 数据目录
106
+ possiblePaths.push(join(home, 'Documents', 'WeChat Files'));
107
+ }
108
+ for (const path of possiblePaths) {
109
+ if (!existsSync(path))
110
+ continue;
111
+ // 检查是否有有效的账号目录,或本身就是账号目录
112
+ const accounts = this.findAccountDirs(path);
113
+ if (accounts.length > 0) {
114
+ return { success: true, path };
115
+ }
116
+ // 如果该目录本身就是账号目录(直接包含 db_storage 等)
117
+ if (this.isAccountDir(path)) {
118
+ return { success: true, path };
119
+ }
120
+ }
121
+ return { success: false, error: '未能自动检测到微信数据库目录' };
122
+ }
123
+ catch (e) {
124
+ return { success: false, error: String(e) };
125
+ }
126
+ }
127
+ /**
128
+ * 查找账号目录(包含 db_storage 或图片目录)
129
+ */
130
+ findAccountDirs(rootPath) {
131
+ const resolvedRootPath = expandHomePath(rootPath);
132
+ const accounts = [];
133
+ try {
134
+ const entries = readdirSync(resolvedRootPath);
135
+ for (const entry of entries) {
136
+ const entryPath = join(resolvedRootPath, entry);
137
+ let stat;
138
+ try {
139
+ stat = statSync(entryPath);
140
+ }
141
+ catch {
142
+ continue;
143
+ }
144
+ if (stat.isDirectory()) {
145
+ if (!this.isPotentialAccountName(entry))
146
+ continue;
147
+ // 检查是否有有效账号目录结构
148
+ if (this.isAccountDir(entryPath)) {
149
+ accounts.push(entry);
150
+ }
151
+ }
152
+ }
153
+ }
154
+ catch { }
155
+ return accounts;
156
+ }
157
+ isAccountDir(entryPath) {
158
+ return (existsSync(join(entryPath, 'db_storage')) || // WeChat 4.x
159
+ existsSync(join(entryPath, 'Msg')) || // WeChat 3.x
160
+ existsSync(join(entryPath, 'FileStorage', 'Image')) ||
161
+ existsSync(join(entryPath, 'FileStorage', 'Image2')));
162
+ }
163
+ isPotentialAccountName(name) {
164
+ const lower = name.toLowerCase();
165
+ if (lower.startsWith('all') || lower.startsWith('applet') || lower.startsWith('backup') || lower.startsWith('wmpf')) {
166
+ return false;
167
+ }
168
+ return true;
169
+ }
170
+ getAccountModifiedTime(entryPath) {
171
+ try {
172
+ const accountStat = statSync(entryPath);
173
+ let latest = accountStat.mtimeMs;
174
+ const dbPath = join(entryPath, 'db_storage');
175
+ if (existsSync(dbPath)) {
176
+ const dbStat = statSync(dbPath);
177
+ latest = Math.max(latest, dbStat.mtimeMs);
178
+ }
179
+ const imagePath = join(entryPath, 'FileStorage', 'Image');
180
+ if (existsSync(imagePath)) {
181
+ const imageStat = statSync(imagePath);
182
+ latest = Math.max(latest, imageStat.mtimeMs);
183
+ }
184
+ const image2Path = join(entryPath, 'FileStorage', 'Image2');
185
+ if (existsSync(image2Path)) {
186
+ const image2Stat = statSync(image2Path);
187
+ latest = Math.max(latest, image2Stat.mtimeMs);
188
+ }
189
+ return latest;
190
+ }
191
+ catch {
192
+ return 0;
193
+ }
194
+ }
195
+ /**
196
+ * 扫描目录名候选(仅包含下划线的文件夹,排除 all_users)
197
+ */
198
+ scanWxidCandidates(rootPath) {
199
+ const resolvedRootPath = expandHomePath(rootPath);
200
+ const wxids = [];
201
+ try {
202
+ if (existsSync(resolvedRootPath)) {
203
+ const entries = readdirSync(resolvedRootPath);
204
+ for (const entry of entries) {
205
+ const entryPath = join(resolvedRootPath, entry);
206
+ let stat;
207
+ try {
208
+ stat = statSync(entryPath);
209
+ }
210
+ catch {
211
+ continue;
212
+ }
213
+ if (!stat.isDirectory())
214
+ continue;
215
+ const lower = entry.toLowerCase();
216
+ if (lower === 'all_users')
217
+ continue;
218
+ if (!entry.includes('_'))
219
+ continue;
220
+ wxids.push({ wxid: entry, modifiedTime: stat.mtimeMs });
221
+ }
222
+ }
223
+ if (wxids.length === 0) {
224
+ const rootName = basename(resolvedRootPath);
225
+ if (rootName.includes('_') && rootName.toLowerCase() !== 'all_users') {
226
+ const rootStat = statSync(resolvedRootPath);
227
+ wxids.push({ wxid: rootName, modifiedTime: rootStat.mtimeMs });
228
+ }
229
+ }
230
+ }
231
+ catch { }
232
+ const sorted = wxids.sort((a, b) => {
233
+ if (b.modifiedTime !== a.modifiedTime)
234
+ return b.modifiedTime - a.modifiedTime;
235
+ return a.wxid.localeCompare(b.wxid);
236
+ });
237
+ const globalInfo = this.parseGlobalConfig(resolvedRootPath);
238
+ if (globalInfo) {
239
+ for (const w of sorted) {
240
+ if (w.wxid.startsWith(globalInfo.wxid) || sorted.length === 1) {
241
+ w.nickname = globalInfo.nickname;
242
+ w.avatarUrl = globalInfo.avatarUrl;
243
+ }
244
+ }
245
+ }
246
+ return sorted;
247
+ }
248
+ /**
249
+ * 扫描 wxid 列表
250
+ */
251
+ scanWxids(rootPath) {
252
+ const resolvedRootPath = expandHomePath(rootPath);
253
+ const wxids = [];
254
+ try {
255
+ if (this.isAccountDir(resolvedRootPath)) {
256
+ const wxid = basename(resolvedRootPath);
257
+ const modifiedTime = this.getAccountModifiedTime(resolvedRootPath);
258
+ return [{ wxid, modifiedTime }];
259
+ }
260
+ const accounts = this.findAccountDirs(resolvedRootPath);
261
+ for (const account of accounts) {
262
+ const fullPath = join(resolvedRootPath, account);
263
+ const modifiedTime = this.getAccountModifiedTime(fullPath);
264
+ wxids.push({ wxid: account, modifiedTime });
265
+ }
266
+ }
267
+ catch { }
268
+ const sorted = wxids.sort((a, b) => {
269
+ if (b.modifiedTime !== a.modifiedTime)
270
+ return b.modifiedTime - a.modifiedTime;
271
+ return a.wxid.localeCompare(b.wxid);
272
+ });
273
+ const globalInfo = this.parseGlobalConfig(resolvedRootPath);
274
+ if (globalInfo) {
275
+ for (const w of sorted) {
276
+ if (w.wxid.startsWith(globalInfo.wxid) || sorted.length === 1) {
277
+ w.nickname = globalInfo.nickname;
278
+ w.avatarUrl = globalInfo.avatarUrl;
279
+ }
280
+ }
281
+ }
282
+ return sorted;
283
+ }
284
+ /**
285
+ * 获取默认数据库路径
286
+ */
287
+ getDefaultPath() {
288
+ const home = homedir();
289
+ if (process.platform === 'darwin') {
290
+ // 优先返回 4.0.5+ 新路径
291
+ const appSupportBase = join(home, 'Library', 'Containers', 'com.tencent.xinWeChat', 'Data', 'Library', 'Application Support', 'com.tencent.xinWeChat');
292
+ if (existsSync(appSupportBase)) {
293
+ try {
294
+ const entries = readdirSync(appSupportBase);
295
+ for (const entry of entries) {
296
+ if (/^\d+\.\d+b\d+\.\d+/.test(entry) || /^\d+\.\d+\.\d+/.test(entry)) {
297
+ const candidate = join(appSupportBase, entry);
298
+ if (existsSync(candidate))
299
+ return candidate;
300
+ }
301
+ }
302
+ }
303
+ catch { }
304
+ }
305
+ // 旧版本路径兜底
306
+ return join(home, 'Library', 'Containers', 'com.tencent.xinWeChat', 'Data', 'Documents', 'xwechat_files');
307
+ }
308
+ // 优先返回 4.x 路径
309
+ const xwechatPath = join(home, 'Documents', 'xwechat_files');
310
+ if (existsSync(xwechatPath))
311
+ return xwechatPath;
312
+ // 备用 4.x 路径(部分安装将数据放在用户目录下)
313
+ const xwechatHomePath = join(home, 'xwechat_files');
314
+ if (existsSync(xwechatHomePath))
315
+ return xwechatHomePath;
316
+ // 兜底 3.x 路径
317
+ const wechatFilesPath = join(home, 'Documents', 'WeChat Files');
318
+ if (existsSync(wechatFilesPath))
319
+ return wechatFilesPath;
320
+ return xwechatPath;
321
+ }
322
+ }
323
+ export const dbPathService = new DbPathService();
324
+ //# sourceMappingURL=dbPathService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dbPathService.js","sourceRoot":"","sources":["../../../src/core/dbPathService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ import type { DbKeyResult } from '../types.js';
2
+ export declare class KeyService {
3
+ private koffi;
4
+ private lib;
5
+ private initialized;
6
+ private initHook;
7
+ private pollKeyData;
8
+ private getStatusMessage;
9
+ private cleanupHook;
10
+ private getLastErrorMsg;
11
+ private kernel32;
12
+ private OpenProcess;
13
+ private CloseHandle;
14
+ private QueryFullProcessImageNameW;
15
+ private readonly PROCESS_ALL_ACCESS;
16
+ private getDllPath;
17
+ private isNetworkPath;
18
+ private localizeNetworkDll;
19
+ private ensureLoaded;
20
+ private ensureKernel32;
21
+ private decodeUtf8;
22
+ private decodeCString;
23
+ private findPidByImageName;
24
+ findWeChatPid(): Promise<number | null>;
25
+ private getProcessExecutablePath;
26
+ /**
27
+ * 等待微信进程出现,立即 hook 并提取密钥
28
+ * 用户应在调用此方法后启动微信
29
+ */
30
+ waitForKey(timeoutMs?: number, onStatus?: (message: string) => void): Promise<DbKeyResult>;
31
+ /**
32
+ * 自动从运行中的微信进程提取数据库解密 key
33
+ */
34
+ autoGetDbKey(timeoutMs?: number, onStatus?: (message: string) => void): Promise<DbKeyResult>;
35
+ private extractKeyFromPid;
36
+ /**
37
+ * 检测当前运行的微信版本
38
+ */
39
+ detectWeChatVersion(): Promise<'3.x' | '4.x' | null>;
40
+ /**
41
+ * 提取 3.x 数据库密钥 (通过 Python/pywxdump 内存搜索)
42
+ */
43
+ extract3xKey(onStatus?: (message: string) => void): Promise<DbKeyResult & {
44
+ wxid?: string;
45
+ msgDir?: string;
46
+ wxDir?: string;
47
+ }>;
48
+ /**
49
+ * 自动检测并提取密钥 (支持 3.x 和 4.x)
50
+ */
51
+ autoExtractKey(onStatus?: (message: string) => void): Promise<DbKeyResult & {
52
+ version?: string;
53
+ wxid?: string;
54
+ msgDir?: string;
55
+ wxDir?: string;
56
+ }>;
57
+ }
58
+ export declare const keyService: KeyService;
59
+ //# sourceMappingURL=keyService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keyService.d.ts","sourceRoot":"","sources":["../../../src/core/keyService.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAK9C,qBAAa,UAAU;IACrB,OAAO,CAAC,KAAK,CAAY;IACzB,OAAO,CAAC,GAAG,CAAY;IACvB,OAAO,CAAC,WAAW,CAAQ;IAC3B,OAAO,CAAC,QAAQ,CAAY;IAC5B,OAAO,CAAC,WAAW,CAAY;IAC/B,OAAO,CAAC,gBAAgB,CAAY;IACpC,OAAO,CAAC,WAAW,CAAY;IAC/B,OAAO,CAAC,eAAe,CAAY;IAGnC,OAAO,CAAC,QAAQ,CAAY;IAC5B,OAAO,CAAC,WAAW,CAAY;IAC/B,OAAO,CAAC,WAAW,CAAY;IAC/B,OAAO,CAAC,0BAA0B,CAAY;IAE9C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAW;IAE9C,OAAO,CAAC,UAAU;IAqBlB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,kBAAkB;IAgB1B,OAAO,CAAC,YAAY;IAiCpB,OAAO,CAAC,cAAc;IAetB,OAAO,CAAC,UAAU;IAKlB,OAAO,CAAC,aAAa;YASP,kBAAkB;IAkB1B,aAAa,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;YAS/B,wBAAwB;IAsBtC;;;OAGG;IACG,UAAU,CACd,SAAS,SAAU,EACnB,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GACnC,OAAO,CAAC,WAAW,CAAC;IAiCvB;;OAEG;IACG,YAAY,CAChB,SAAS,SAAS,EAClB,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GACnC,OAAO,CAAC,WAAW,CAAC;YAuBT,iBAAiB;IA6D/B;;OAEG;IACG,mBAAmB,IAAI,OAAO,CAAC,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC;IAU1D;;OAEG;IACG,YAAY,CAChB,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GACnC,OAAO,CAAC,WAAW,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IA0D5E;;OAEG;IACG,cAAc,CAClB,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GACnC,OAAO,CAAC,WAAW,GAAG;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAc/F;AAED,eAAO,MAAM,UAAU,YAAmB,CAAA"}