@kenkaiiii/ggcoder 4.11.3 → 4.12.1

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 (124) hide show
  1. package/dist/app-sidecar.js +368 -53
  2. package/dist/app-sidecar.js.map +1 -1
  3. package/dist/cli.d.ts.map +1 -1
  4. package/dist/cli.js +5 -3
  5. package/dist/cli.js.map +1 -1
  6. package/dist/config.d.ts +5 -0
  7. package/dist/config.d.ts.map +1 -1
  8. package/dist/config.js +3 -0
  9. package/dist/config.js.map +1 -1
  10. package/dist/core/agent-session.d.ts +57 -11
  11. package/dist/core/agent-session.d.ts.map +1 -1
  12. package/dist/core/agent-session.js +196 -38
  13. package/dist/core/agent-session.js.map +1 -1
  14. package/dist/core/api-benchmark.d.ts +64 -0
  15. package/dist/core/api-benchmark.d.ts.map +1 -0
  16. package/dist/core/api-benchmark.js +381 -0
  17. package/dist/core/api-benchmark.js.map +1 -0
  18. package/dist/core/event-bus.d.ts +1 -0
  19. package/dist/core/event-bus.d.ts.map +1 -1
  20. package/dist/core/mcp/client.d.ts +32 -0
  21. package/dist/core/mcp/client.d.ts.map +1 -1
  22. package/dist/core/mcp/client.js +232 -27
  23. package/dist/core/mcp/client.js.map +1 -1
  24. package/dist/core/mcp/index.d.ts +3 -1
  25. package/dist/core/mcp/index.d.ts.map +1 -1
  26. package/dist/core/mcp/index.js +2 -0
  27. package/dist/core/mcp/index.js.map +1 -1
  28. package/dist/core/mcp/loopback.d.ts +27 -0
  29. package/dist/core/mcp/loopback.d.ts.map +1 -0
  30. package/dist/core/mcp/loopback.js +66 -0
  31. package/dist/core/mcp/loopback.js.map +1 -0
  32. package/dist/core/mcp/loopback.test.d.ts +2 -0
  33. package/dist/core/mcp/loopback.test.d.ts.map +1 -0
  34. package/dist/core/mcp/loopback.test.js +87 -0
  35. package/dist/core/mcp/loopback.test.js.map +1 -0
  36. package/dist/core/mcp/oauth-provider.d.ts +51 -0
  37. package/dist/core/mcp/oauth-provider.d.ts.map +1 -0
  38. package/dist/core/mcp/oauth-provider.js +95 -0
  39. package/dist/core/mcp/oauth-provider.js.map +1 -0
  40. package/dist/core/mcp/oauth-store.d.ts +39 -0
  41. package/dist/core/mcp/oauth-store.d.ts.map +1 -0
  42. package/dist/core/mcp/oauth-store.js +63 -0
  43. package/dist/core/mcp/oauth-store.js.map +1 -0
  44. package/dist/core/mcp/oauth-store.test.d.ts +2 -0
  45. package/dist/core/mcp/oauth-store.test.d.ts.map +1 -0
  46. package/dist/core/mcp/oauth-store.test.js +94 -0
  47. package/dist/core/mcp/oauth-store.test.js.map +1 -0
  48. package/dist/core/mcp/parse-add-command.d.ts.map +1 -1
  49. package/dist/core/mcp/parse-add-command.js +1 -0
  50. package/dist/core/mcp/parse-add-command.js.map +1 -1
  51. package/dist/core/mcp/parse-add-command.test.js +8 -2
  52. package/dist/core/mcp/parse-add-command.test.js.map +1 -1
  53. package/dist/core/mcp/store.d.ts +4 -4
  54. package/dist/core/mcp/store.d.ts.map +1 -1
  55. package/dist/core/mcp/store.js +7 -1
  56. package/dist/core/mcp/store.js.map +1 -1
  57. package/dist/core/mcp/store.test.js +11 -2
  58. package/dist/core/mcp/store.test.js.map +1 -1
  59. package/dist/core/mcp/types.d.ts +5 -1
  60. package/dist/core/mcp/types.d.ts.map +1 -1
  61. package/dist/core/process-manager.d.ts.map +1 -1
  62. package/dist/core/process-manager.js +5 -1
  63. package/dist/core/process-manager.js.map +1 -1
  64. package/dist/core/settings-manager.d.ts +4 -0
  65. package/dist/core/settings-manager.d.ts.map +1 -1
  66. package/dist/core/settings-manager.js +5 -0
  67. package/dist/core/settings-manager.js.map +1 -1
  68. package/dist/core/shell.d.ts +51 -0
  69. package/dist/core/shell.d.ts.map +1 -0
  70. package/dist/core/shell.js +82 -0
  71. package/dist/core/shell.js.map +1 -0
  72. package/dist/core/shell.test.d.ts +2 -0
  73. package/dist/core/shell.test.d.ts.map +1 -0
  74. package/dist/core/shell.test.js +87 -0
  75. package/dist/core/shell.test.js.map +1 -0
  76. package/dist/core/speed-benchmark.d.ts +133 -0
  77. package/dist/core/speed-benchmark.d.ts.map +1 -0
  78. package/dist/core/speed-benchmark.js +410 -0
  79. package/dist/core/speed-benchmark.js.map +1 -0
  80. package/dist/core/speed-benchmark.test.d.ts +2 -0
  81. package/dist/core/speed-benchmark.test.d.ts.map +1 -0
  82. package/dist/core/speed-benchmark.test.js +97 -0
  83. package/dist/core/speed-benchmark.test.js.map +1 -0
  84. package/dist/interactive.d.ts.map +1 -1
  85. package/dist/interactive.js +4 -3
  86. package/dist/interactive.js.map +1 -1
  87. package/dist/tools/bash.d.ts.map +1 -1
  88. package/dist/tools/bash.js +17 -1
  89. package/dist/tools/bash.js.map +1 -1
  90. package/dist/tools/edit-diff.d.ts.map +1 -1
  91. package/dist/tools/edit-diff.js +25 -8
  92. package/dist/tools/edit-diff.js.map +1 -1
  93. package/dist/tools/generate-image.d.ts +39 -0
  94. package/dist/tools/generate-image.d.ts.map +1 -0
  95. package/dist/tools/generate-image.js +301 -0
  96. package/dist/tools/generate-image.js.map +1 -0
  97. package/dist/tools/generate-image.test.d.ts +2 -0
  98. package/dist/tools/generate-image.test.d.ts.map +1 -0
  99. package/dist/tools/generate-image.test.js +223 -0
  100. package/dist/tools/generate-image.test.js.map +1 -0
  101. package/dist/tools/index.d.ts +12 -1
  102. package/dist/tools/index.d.ts.map +1 -1
  103. package/dist/tools/index.js +16 -1
  104. package/dist/tools/index.js.map +1 -1
  105. package/dist/tools/ls.d.ts.map +1 -1
  106. package/dist/tools/ls.js +7 -4
  107. package/dist/tools/ls.js.map +1 -1
  108. package/dist/tools/plan-mode.test.js +5 -5
  109. package/dist/tools/plan-mode.test.js.map +1 -1
  110. package/dist/tools/prompt-hints.d.ts.map +1 -1
  111. package/dist/tools/prompt-hints.js +2 -0
  112. package/dist/tools/prompt-hints.js.map +1 -1
  113. package/dist/tools/safe-env.d.ts.map +1 -1
  114. package/dist/tools/safe-env.js +27 -0
  115. package/dist/tools/safe-env.js.map +1 -1
  116. package/dist/ui/App.d.ts +1 -1
  117. package/dist/ui/App.d.ts.map +1 -1
  118. package/dist/ui/hooks/usePixelFixFlow.d.ts +1 -1
  119. package/dist/ui/hooks/usePixelFixFlow.d.ts.map +1 -1
  120. package/dist/ui/hooks/usePixelFixFlow.js +1 -1
  121. package/dist/ui/hooks/usePixelFixFlow.js.map +1 -1
  122. package/dist/ui/render.d.ts +1 -1
  123. package/dist/ui/render.d.ts.map +1 -1
  124. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"agent-session.js","sourceRoot":"","sources":["../../src/core/agent-session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-session.js","sourceRoot":"","sources":["../../src/core/agent-session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAmC,MAAM,qBAAqB,CAAC;AAC/F,OAAO,EACL,aAAa,EACb,qBAAqB,GAOtB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EACL,oBAAoB,EACpB,qBAAqB,GAEtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAsC,MAAM,sBAAsB,CAAC;AAC1F,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,EAAE,cAAc,EAAc,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EACL,WAAW,EACX,mBAAmB,GAGpB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACpE,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAEL,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AA2E7B,8DAA8D;AAE9D,MAAM,OAAO,YAAY;IACd,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;IAC1B,aAAa,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAE5C,eAAe,CAAmB;IAClC,WAAW,CAAe;IAC1B,cAAc,CAAkB;IAChC,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;IAExC,QAAQ,GAAc,EAAE,CAAC;IACzB,KAAK,GAAgB,EAAE,CAAC;IAChC;;0EAEsE;IAC9D,eAAe,CAA6C;IAC5D,MAAM,GAAY,EAAE,CAAC;IACrB,cAAc,GAAG,KAAK,CAAC;IAC/B,yEAAyE;IACzE,2EAA2E;IAC3E,mEAAmE;IAC3D,SAAS,GAAqB;QACpC,YAAY,EAAE,CAAC;QACf,SAAS,EAAE,CAAC;QACZ,YAAY,EAAE,CAAC;QACf,KAAK,EAAE,CAAC;QACR,UAAU,EAAE,CAAC;QACb,SAAS,EAAE,CAAC;QACZ,SAAS,EAAE,CAAC;KACb,CAAC;IACM,QAAQ,GAAG,EAAE,CAAC;IACd,uBAAuB,GAAG,CAAC,CAAC;IAC5B,uBAAuB,GAAG,CAAC,CAAC;IAC5B,oBAAoB,GAAG,CAAC,CAAC;IACzB,mBAAmB,GAAG,IAAI,GAAG,EAAkB,CAAC;IAChD,kBAAkB,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC/C,aAAa,GAAG,IAAI,GAAG,EAA2D,CAAC;IACnF,mBAAmB,GAAG,KAAK,CAAC;IAC5B,iBAAiB,GAAG,KAAK,CAAC;IAC1B,mBAAmB,GAAG,KAAK,CAAC;IAC5B,kBAAkB,GAAG,KAAK,CAAC;IAC3B,eAAe,GAAG,EAAE,CAAC;IAC7B;mEAC+D;IACvD,cAAc,GAAG,KAAK,CAAC;IAC/B,uEAAuE;IACvE,4EAA4E;IAC5E,6EAA6E;IAC7E,0EAA0E;IAClE,SAAS,GAA8D,EAAE,CAAC;IAC1E,cAAc,CAAkB;IAChC,UAAU,CAAc;IACxB,UAAU,CAAoB;IAC9B,QAAQ,CAAW;IACnB,KAAK,CAAS;IACd,GAAG,CAAS;IACZ,OAAO,CAAU;IACjB,SAAS,CAAS;IAClB,aAAa,CAAiB;IAC9B,kBAAkB,CAAU;IACpC,4EAA4E;IACpE,WAAW,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACzC;;mFAE+E;IACvE,gBAAgB,CAAU;IAE1B,SAAS,GAAG,EAAE,CAAC;IACf,WAAW,GAAG,EAAE,CAAC;IACjB,kBAAkB,GAAG,CAAC,CAAC;IAC/B,wFAAwF;IAChF,aAAa,GAAkB,IAAI,CAAC;IAEpC,IAAI,CAAsB;IAElC,YAAY,OAA4B;QACtC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;QACpB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACtD,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;QAC3C,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,YAAY,CAAC;IACjD,CAAC;IAED;;;;;;;OAOG;IACK,gBAAgB,CAAC,OAAe;QACtC,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;QACpC,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACxB,OAAO,SAAS;gBACd,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,eAAe,CAAC;gBAC1D,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;QAC1B,CAAC;QACD,OAAO,SAAS,EAAE,eAAe,IAAI,KAAK,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,UAAU;QACd,0CAA0C;QAC1C,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAE9B,MAAM,KAAK,GAAG,MAAM,aAAa,EAAE,CAAC;QAEpC,uBAAuB;QACvB,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC/D,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;QAElC,IAAI,CAAC,WAAW,GAAG,IAAI,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACnD,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QAE9B,kBAAkB;QAClB,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAE5D,6CAA6C;QAC7C,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC9C,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACrE,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACvE,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAErE,kBAAkB;QAClB,IAAI,CAAC,MAAM,GAAG,MAAM,cAAc,CAAC;YACjC,eAAe,EAAE,KAAK,CAAC,SAAS;YAChC,UAAU,EAAE,IAAI,CAAC,GAAG;SACrB,CAAC,CAAC;QAEH,4DAA4D;QAC5D,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC;YAClC,eAAe,EAAE,KAAK,CAAC,SAAS;YAChC,UAAU,EAAE,IAAI,CAAC,GAAG;SACrB,CAAC,CAAC;QACH,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,UAAU,EAAE,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE;YACzF,MAAM;YACN,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,cAAc,EAAE,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,gBAAgB,CAAC;YAC1D,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,0EAA0E;YAC1E,oEAAoE;YACpE,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ;YAChC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK;YAC1B,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,iBAAiB,EAAE;YAC3C,qEAAqE;YACrE,iEAAiE;YACjE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU;gBAC/C,CAAC,CAAC;oBACE,WAAW,EAAE,IAAI,CAAC,WAAW;oBAC7B,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW;oBAClC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU;iBACjC;gBACH,CAAC,CAAC,EAAE,CAAC;SACR,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAE7B,0EAA0E;QAC1E,oEAAoE;QACpE,yEAAyE;QACzE,yEAAyE;QACzE,uEAAuE;QACvE,wEAAwE;QACxE,mEAAmE;QACnE,IAAI,CAAC,UAAU,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACzC,IAAI,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;YACnC,KAAK,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAChC,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACjC,CAAC;QAED,MAAM,UAAU,GACd,IAAI,CAAC,kBAAkB;YACvB,CAAC,MAAM,iBAAiB,CACtB,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,MAAM,EACX,KAAK,EACL,SAAS,EACT,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EACnC,SAAS,EACT,IAAI,CAAC,QAAQ,CACd,CAAC,CAAC;QACL,IAAI,CAAC,QAAQ,GAAG,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;QAE1D,qEAAqE;QACrE,uEAAuE;QACvE,oEAAoE;QACpE,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACxB,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QACjD,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YAC/B,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACtD,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACpC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACrE,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;YAC7C,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAChC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAChC,CAAC;QAED,0BAA0B;QAC1B,MAAM,QAAQ,GAAG,qBAAqB,EAAE,CAAC;QACzC,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC3B,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACnC,CAAC;QAED,kEAAkE;QAClE,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC/C,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC;YACpC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;YACrB,OAAO,CAAC,OAAO,GAAG,KAAK,IAAI,EAAE;gBAC3B,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;gBAC9B,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CACnB,CAAC,CAAC,EAAE,EAAE,CACJ,MAAM,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,WAAW,EAAE,CAC/G,CAAC;gBAEF,+BAA+B;gBAC/B,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC/B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACf,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;oBAC/B,KAAK,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;wBAClC,KAAK,CAAC,IAAI,CACR,MAAM,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,WAAW,EAAE,CACrH,CAAC;oBACJ,CAAC;gBACH,CAAC;gBAED,yCAAyC;gBACzC,MAAM,UAAU,GAAG,MAAM,kBAAkB,CAAC,GAAG,CAAC,CAAC;gBACjD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC1B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACf,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;oBAC/B,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;wBAC7B,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;oBACpD,CAAC;gBACH,CAAC;gBAED,OAAO,uBAAuB,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpD,CAAC,CAAC;QACJ,CAAC;QAED,kBAAkB;QAClB,MAAM,UAAU,GAAqB;YACnC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;YAC7C,oBAAoB,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC;YAC/D,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,eAAe,EAAE,IAAI,CAAC,eAAe;SACtC,CAAC;QACF,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;QAEpE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IACrE,CAAC;IAED;;;;;;;;OAQG;IACK,KAAK,CAAC,iBAAiB;QAC7B,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,OAAO;QAC7B,IAAI,CAAC;YACH,IAAI,MAA0B,CAAC;YAC/B,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;gBAC5B,IAAI,CAAC;oBACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;oBAClE,MAAM,GAAG,QAAQ,CAAC,WAAW,CAAC;gBAChC,CAAC;gBAAC,MAAM,CAAC;oBACP,6CAA6C;gBAC/C,CAAC;YACH,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,CAC/C,MAAM,gBAAgB,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CACxD,CAAC;YACF,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC;YAC7B,uEAAuE;YACvE,wEAAwE;YACxE,qEAAqE;YACrE,oEAAoE;YACpE,sEAAsE;YACtE,sEAAsE;YACtE,mEAAmE;YACnE,qEAAqE;YACrE,IAAI,IAAI,CAAC,IAAI,CAAC,oBAAoB,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1D,MAAM,IAAI,CAAC,0BAA0B,EAAE,CAAC;YAC1C,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CACD,MAAM,EACN,KAAK,EACL,8BAA8B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CACjF,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,OAAe;QAC1B,2BAA2B;QAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACjD,IAAI,MAAM,EAAE,CAAC;YACX,2DAA2D;YAC3D,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACvD,MAAM,UAAU,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACtD,MAAM,eAAe,GAAG,CAAC,gBAAgB;gBACvC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC;gBAChD,CAAC,CAAC,SAAS,CAAC;YACd,MAAM,UAAU,GAAG,gBAAgB,EAAE,MAAM,IAAI,eAAe,EAAE,MAAM,CAAC;YAEvE,IAAI,UAAU,EAAE,CAAC;gBACf,oEAAoE;gBACpE,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI;oBAC5B,CAAC,CAAC,GAAG,UAAU,+BAA+B,MAAM,CAAC,IAAI,EAAE;oBAC3D,CAAC,CAAC,UAAU,CAAC;gBACf,qDAAqD;gBACrD,MAAM,WAAW,GAAY,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;gBACnE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAChC,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;gBACvC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAC/C,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;gBACrB,OAAO;YACT,CAAC;YAED,MAAM,UAAU,GAAG,IAAI,CAAC,yBAAyB,EAAE,CAAC;YACpD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;YACrE,IAAI,MAAM,EAAE,CAAC;gBACX,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,CAAC,CAAC;YAC5D,CAAC;YACD,OAAO;QACT,CAAC;QAED,oBAAoB;QACpB,MAAM,WAAW,GAAY,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;QACvD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAChC,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QACvC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAE/C,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;IACvB,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,qBAAqB,CAAC,IAAY,EAAE,WAAgC;QACxE,MAAM,KAAK,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QAC3D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAC/B,MAAM,WAAW,GAAY,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QAC9D,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAChC,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QACvC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC/C,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;IACvB,CAAC;IAED;;;;OAIG;IACK,oBAAoB,CAC1B,IAAY,EACZ,WAAgC;QAEhC,MAAM,KAAK,GAAqD,EAAE,CAAC;QACnE,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,MAAM,kBAAkB,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,aAAa,IAAI,KAAK,CAAC;QACxE,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;YAC5B,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBACvB,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;gBACpE,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;oBACX,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;gBACnE,CAAC;YACH,CAAC;iBAAM,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAC9B,sEAAsE;gBACtE,uEAAuE;gBACvE,uEAAuE;gBACvE,qEAAqE;gBACrE,yEAAyE;gBACzE,kEAAkE;gBAClE,IAAI,kBAAkB,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;oBACjC,KAAK,CAAC,IAAI,CAAC;wBACT,IAAI,EAAE,MAAM;wBACZ,IAAI,EACF,gCAAgC,CAAC,CAAC,IAAI,yCAAyC;4BAC/E,4EAA4E;4BAC5E,4DAA4D;qBAC/D,CAAC,CAAC;gBACL,CAAC;qBAAM,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;oBAClB,KAAK,CAAC,IAAI,CAAC;wBACT,IAAI,EAAE,MAAM;wBACZ,IAAI,EACF,kCAAkC,CAAC,CAAC,IAAI,qCAAqC;4BAC7E,oDAAoD;qBACvD,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,KAAK,CAAC,IAAI,CAAC;wBACT,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,sEAAsE;qBAC7E,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;iBAAM,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;gBAClB,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;YACrD,CAAC;QACH,CAAC;QACD,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,IAAI,IAAI,CAAC,IAAI,EAAE;YAAE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC7C,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,SAAS,CAAC,IAAI,CAAC,8CAA8C,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACvF,CAAC;QACD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC;YAAE,KAAK,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACxF,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;OAIG;IACK,cAAc,CAAC,eAAuB;QAC5C,IAAI,CAAC,SAAS,GAAG;YACf,YAAY,EAAE,CAAC;YACf,SAAS,EAAE,CAAC;YACZ,YAAY,EAAE,CAAC;YACf,KAAK,EAAE,CAAC;YACR,UAAU,EAAE,CAAC;YACb,SAAS,EAAE,CAAC;YACZ,SAAS,EAAE,CAAC;SACb,CAAC;QACF,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,uBAAuB,GAAG,CAAC,CAAC;QACjC,IAAI,CAAC,uBAAuB,GAAG,CAAC,CAAC;QACjC,IAAI,CAAC,oBAAoB,GAAG,CAAC,CAAC;QAC9B,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC;QACjC,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;QAChC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;QACjC,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;QAC/B,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;QACjC,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;QAChC,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;IACzC,CAAC;IAED;;;;OAIG;IACK,cAAc,CAAC,KAAiB;QACtC,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,YAAY;gBACf,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC;gBAC5B,MAAM;YACR,KAAK,iBAAiB;gBACpB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC;gBACvF,MAAM;YACR,KAAK,eAAe,CAAC,CAAC,CAAC;gBACrB,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;gBACtD,MAAM,IAAI,GAAG,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;gBAC9B,MAAM,IAAI,GAAG,IAAI,EAAE,IAAI,CAAC;gBACxB,IAAI,CAAC,SAAS,CAAC,SAAS,IAAI,CAAC,CAAC;gBAC9B,IAAI,KAAK,CAAC,OAAO;oBAAE,IAAI,CAAC,SAAS,CAAC,YAAY,IAAI,CAAC,CAAC;gBACpD,IAAI,IAAI,KAAK,OAAO;oBAAE,IAAI,CAAC,SAAS,CAAC,UAAU,IAAI,CAAC,CAAC;gBACrD,IAAI,IAAI,KAAK,MAAM;oBAAE,IAAI,CAAC,SAAS,CAAC,SAAS,IAAI,CAAC,CAAC;gBACnD,IAAI,IAAI,KAAK,MAAM;oBAAE,IAAI,CAAC,SAAS,CAAC,SAAS,IAAI,CAAC,CAAC;gBACnD,IAAI,CAAC,uBAAuB,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,uBAAuB,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACpF,MAAM,GAAG,GAAG,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBAC1C,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBAC7D,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;gBAC3C,IAAI,OAAO,GAAG,IAAI,CAAC,uBAAuB;oBAAE,IAAI,CAAC,uBAAuB,GAAG,OAAO,CAAC;gBACnF,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC;oBAClD,MAAM,QAAQ,GAAI,IAAgC,CAAC,SAAS,CAAC;oBAC7D,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;wBACjC,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;wBAClE,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;wBAChD,IAAI,QAAQ,GAAG,IAAI,CAAC,oBAAoB;4BAAE,IAAI,CAAC,oBAAoB,GAAG,QAAQ,CAAC;oBACjF,CAAC;gBACH,CAAC;gBACD,IAAI,IAAI,KAAK,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;oBACtC,MAAM,IAAI,GAAI,KAAK,CAAC,OAAyC,EAAE,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC;oBACpF,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;oBACrD,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;oBACtD,IAAI,CAAC,SAAS,CAAC,YAAY,IAAI,KAAK,GAAG,OAAO,CAAC;gBACjD,CAAC;gBACD,MAAM;YACR,CAAC;YACD,KAAK,UAAU;gBACb,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC;gBAClC,MAAM;QACV,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACK,uBAAuB;QAC7B,6EAA6E;QAC7E,sDAAsD;QACtD,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACxC,gEAAgE;YAChE,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;gBACpD,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACtD,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;YAC7C,CAAC;YACD,sEAAsE;YACtE,+DAA+D;YAC/D,MAAM,KAAK,GAAqD,EAAE,CAAC;YACnE,KAAK,MAAM,CAAC,IAAI,MAAM;gBAAE,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;YACxF,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QAC5C,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,oBAAoB,CAAC;YAAE,OAAO,IAAI,CAAC;QACjE,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC5B,MAAM,QAAQ,GAAG,iBAAiB,CAAC;gBACjC,mBAAmB,EAAE,IAAI,CAAC,uBAAuB;gBACjD,mBAAmB,EAAE,IAAI,CAAC,uBAAuB;gBACjD,gBAAgB,EAAE,IAAI,CAAC,oBAAoB;gBAC3C,sBAAsB,EAAE,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC;aAC5D,CAAC,CAAC;YACH,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;gBACzB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;gBAC9B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;gBACnD,OAAO,CAAC,qBAAqB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;YACnD,CAAC;QACH,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACzD,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;YAChC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC;YACpD,OAAO,CAAC,uBAAuB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;QACzD,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACK,uBAAuB;QAC7B,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,oBAAoB,CAAC;YAAE,OAAO,IAAI,CAAC;QACjE,IAAI,IAAI,CAAC,mBAAmB;YAAE,OAAO,IAAI,CAAC;QAC1C,MAAM,QAAQ,GAAG,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACrD,IAAI,CAAC,QAAQ,CAAC,YAAY;YAAE,OAAO,IAAI,CAAC;QACxC,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAChC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QAC9C,OAAO,CAAC,uBAAuB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;IACrD,CAAC;IAED,oFAAoF;IAC5E,KAAK,CAAC,OAAO;QACnB,sEAAsE;QACtE,kEAAkE;QAClE,oEAAoE;QACpE,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC3B,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,mBAAmB,EAAE;gBACxC,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,GAAG,EAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI,QAAQ;gBACzC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;aACzC,CAAC,CAAC;QACL,CAAC;QAED,6EAA6E;QAC7E,qEAAqE;QACrE,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;QAC7E,MAAM,eAAe,GAAG,OAAO,QAAQ,EAAE,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACtF,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;QAErC,gDAAgD;QAChD,yEAAyE;QACzE,iFAAiF;QACjF,IAAI,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAErE,0EAA0E;QAC1E,2EAA2E;QAC3E,kCAAkC;QAClC,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;YAC5C,MAAM,aAAa,GAAG,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE;gBACjD,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,SAAS,EAAE,KAAK,CAAC,SAAS;aAC3B,CAAC,CAAC;YACH,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;YAC/D,IAAI,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,EAAE,SAAS,CAAC,EAAE,CAAC;gBAC3D,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBAC1B,qEAAqE;gBACrE,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;YACjC,CAAC;QACH,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,qBAAqB,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAE5F,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAExD,MAAM,YAAY,GAAG,KAAK,EAAE,MAAc,EAAE,SAAkB,EAAE,SAAkB,EAAE,EAAE;YACpF,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACvC,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC;YACvD,MAAM,SAAS,GAAG,SAAS,CAAC,YAAY,EAAE;gBACxC,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,SAAS,EAAE,IAAI;gBACf,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,QAAQ,EAAE,IAAI,CAAC,aAAa;gBAC5B,MAAM;gBACN,OAAO,EAAE,gBAAgB;gBACzB,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;gBACxB,SAAS;gBACT,SAAS;gBACT,sEAAsE;gBACtE,iEAAiE;gBACjE,cAAc,EACZ,IAAI,CAAC,QAAQ,KAAK,UAAU,IAAI,oBAAoB,CAAC,gBAAgB,CAAC;oBACpE,CAAC,CAAC,iBAAiB,EAAE;oBACrB,CAAC,CAAC,SAAS;gBACf,wEAAwE;gBACxE,uEAAuE;gBACvE,cAAc,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;gBAC1D,cAAc,EAAE,IAAI,CAAC,iBAAiB,EAAE;gBACxC,cAAc,EAAE,SAAS,EAAE,cAAc;gBACzC,aAAa,EAAE,SAAS,EAAE,aAAa;gBACvC,SAAS;gBACT,gFAAgF;gBAChF,uEAAuE;gBACvE,kBAAkB,EAAE,IAAI,CAAC,KAAK,CAC5B,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,CACjF;gBACD,yEAAyE;gBACzE,yEAAyE;gBACzE,mBAAmB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,uBAAuB,EAAE;gBACzD,mBAAmB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,uBAAuB,EAAE;aAC1D,CAAC,CAAC;YAEH,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,SAAsC,EAAE,CAAC;gBACjE,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;gBAC3B,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;YACzC,CAAC;QACH,CAAC,CAAC;QAEF,IAAI,CAAC;YACH,kFAAkF;YAClF,2EAA2E;YAC3E,0EAA0E;YAC1E,kDAAkD;YAClD,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;YACpC,MAAM,YAAY,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QAC1E,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,0EAA0E;YAC1E,IAAI,YAAY,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;gBACnD,OAAO;YACT,CAAC;YACD,IAAI,GAAG,YAAY,aAAa,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC;gBAC3D,yEAAyE;gBACzE,iEAAiE;gBACjE,qEAAqE;gBACrE,mEAAmE;gBACnE,2CAA2C;gBAC3C,IAAI,MAAM,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACzD,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,IAAI,CAAC,QAAQ,kCAAkC,CAAC,CAAC;oBACpF,MAAM,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBACvD,MAAM,GAAG,CAAC;gBACZ,CAAC;gBACD,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,8CAA8C,CAAC,CAAC;gBACpE,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;gBACzF,MAAM,YAAY,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;YAC1E,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,CAAC;YACZ,CAAC;QACH,CAAC;QAED,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAC;QAE7B,uBAAuB;QACvB,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACpE,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9C,CAAC;QACD,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,QAAgB,EAAE,KAAa;QAC/C,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC;QACnC,IAAI,QAAQ;YAAE,IAAI,CAAC,QAAQ,GAAG,QAAoB,CAAC;QACnD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,iBAAiB,CAAC,KAAK,CAAC,CAAC;QACzB,qEAAqE;QACrE,0EAA0E;QAC1E,yEAAyE;QACzE,yDAAyD;QACzD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAC9C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE;YACjC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,aAAa,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,aAAa,IAAI,KAAK;SAC5D,CAAC,CAAC;QAEH,uEAAuE;QACvE,yEAAyE;QACzE,qEAAqE;QACrE,sEAAsE;QACtE,kDAAkD;QAClD,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAChD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5E,CAAC;QAED,uDAAuD;QACvD,IAAI,QAAQ,IAAI,QAAQ,KAAK,YAAY,EAAE,CAAC;YAC1C,4DAA4D;YAC5D,yFAAyF;YACzF,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC;YACrE,IAAI,IAAI,CAAC,QAAQ,KAAK,WAAW,IAAI,YAAY,EAAE,CAAC;gBAClD,kFAAkF;gBAClF,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC;YACjE,CAAC;iBAAM,IAAI,IAAI,CAAC,QAAQ,KAAK,WAAW,IAAI,CAAC,YAAY,EAAE,CAAC;gBAC1D,wDAAwD;gBACxD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC;YACzC,CAAC;YAED,uEAAuE;YACvE,sEAAsE;YACtE,yEAAyE;YACzE,yEAAyE;YACzE,mEAAmE;YACnE,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,KAAK,KAAK,IAAI,YAAY,KAAK,KAAK,CAAC;YACtE,IAAI,IAAI,CAAC,UAAU,IAAI,WAAW,EAAE,CAAC;gBACnC,uBAAuB;gBACvB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;gBAEnE,6BAA6B;gBAC7B,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;gBAEhC,+CAA+C;gBAC/C,IAAI,CAAC;oBACH,IAAI,MAA0B,CAAC;oBAC/B,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;wBAC5B,IAAI,CAAC;4BACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;4BAClE,MAAM,GAAG,QAAQ,CAAC,WAAW,CAAC;wBAChC,CAAC;wBAAC,MAAM,CAAC;4BACP,6CAA6C;wBAC/C,CAAC;oBACH,CAAC;oBACD,yEAAyE;oBACzE,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;oBACxE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;oBAC3D,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC;gBAC/B,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,GAAG,CACD,MAAM,EACN,KAAK,EACL,4BAA4B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAC/E,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,mBAKb;QACC,MAAM,KAAK,GAAG,mBAAmB,IAAI,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QAChG,MAAM,aAAa,GAAG,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE;YACjD,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,SAAS,EAAE,KAAK,CAAC,SAAS;SAC3B,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QAE/E,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE;YAC1C,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE,KAAK,CAAC,WAAW;YACzB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO;YACtC,aAAa;YACb,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;SACzB,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAEhC,yEAAyE;QACzE,qEAAqE;QACrE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACtF,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,EAAE,CAAC;QAC5B,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;QAEhC,gEAAgE;QAChE,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChC,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ;gBAAE,SAAS;YACpC,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QACjC,CAAC;QACD,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAE/C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE;YACnC,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa;YAC1C,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ;SACjC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,UAAU;QACd,yEAAyE;QACzE,IAAI,CAAC,WAAW,CAAC,OAAO,GAAG,KAAK,CAAC;QACjC,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;QAClC,MAAM,UAAU,GACd,IAAI,CAAC,kBAAkB;YACvB,CAAC,MAAM,iBAAiB,CACtB,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,MAAM,EACX,KAAK,EACL,SAAS,EACT,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EACnC,SAAS,EACT,IAAI,CAAC,QAAQ,CACd,CAAC,CAAC;QACL,IAAI,CAAC,QAAQ,GAAG,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;QAC1D,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC9B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,WAAmB;QACnC,MAAM,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;QAC5C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IACrE,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC;QACxB,0CAA0C;QAC1C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAChE,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAEjF,sCAAsC;QACtC,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;QAClE,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,cAAc,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;QAEnE,IAAI,WAAW,KAAK,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;QAC/E,CAAC;QAED,qDAAqD;QACrD,MAAM,YAAY,GAAG,cAAc,CAAC,WAAW,GAAG,CAAC,CAAE,CAAC;QACtD,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC;QAExE,uCAAuC;QACvC,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAC3F,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACnC,IAAI,CAAC,QAAQ,GAAG,CAAC,SAAS,EAAE,GAAG,cAAc,CAAC,CAAC;QAC/C,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAE/C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE;YACnC,MAAM,EAAE,IAAI,CAAC,aAAa;YAC1B,YAAY,EAAE,cAAc,CAAC,MAAM;SACpC,CAAC,CAAC;QAEH,OAAO;YACL,YAAY,EAAE,cAAc,CAAC,MAAM;YACnC,YAAY,EAAE,cAAc,CAAC,MAAM;SACpC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY;QAChB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAChE,OAAO,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC1D,CAAC;IAED,QAAQ;QACN,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM;YAClC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO;SACnC,CAAC;IACJ,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;IAClC,CAAC;IAED;;mBAEe;IACf,YAAY,CAAC,IAAY,EAAE,cAAmC,EAAE;QAC9D,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;QAC3C,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;IAC/B,CAAC;IAED,2CAA2C;IAC3C,cAAc;QACZ,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;IAC/B,CAAC;IAED;sFACkF;IAClF,UAAU;QACR,OAAO,IAAI,CAAC,SAAS;aAClB,MAAM,CAAC,CAAC,CAAC;aACT,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;aAClB,IAAI,CAAC,MAAM,CAAC,CAAC;IAClB,CAAC;IAED,+EAA+E;IAC/E,uBAAuB;QACrB,OAAO,IAAI,CAAC,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC3C,CAAC;IAED,+EAA+E;IAC/E,KAAK,CAAC,qBAAqB,CAAC,EAAU;QACpC,IAAI,CAAC,IAAI,CAAC,cAAc;YAAE,OAAO,kCAAkC,EAAE,GAAG,CAAC;QACzE,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACtC,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,WAAW,CAAC,MAAe;QAC/B,IAAI,CAAC,WAAW,CAAC,OAAO,GAAG,MAAM,CAAC;QAClC,2EAA2E;QAC3E,yEAAyE;QACzE,IAAI,MAAM;YAAE,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;QAC9C,MAAM,IAAI,CAAC,0BAA0B,EAAE,CAAC;IAC1C,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,eAAe,CAAC,gBAAoC;QACxD,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,MAAM,IAAI,CAAC,0BAA0B,EAAE,CAAC;IAC1C,CAAC;IAED,wEAAwE;IAChE,KAAK,CAAC,0BAA0B;QACtC,IAAI,IAAI,CAAC,kBAAkB;YAAE,OAAO;QACpC,MAAM,OAAO,GAAG,MAAM,iBAAiB,CACrC,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,WAAW,CAAC,OAAO,EACxB,IAAI,CAAC,gBAAgB,EACrB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EACnC,SAAS,EACT,IAAI,CAAC,QAAQ,CACd,CAAC;QACF,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,QAAQ,EAAE,CAAC;YACxC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;QAC1D,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,aAAa;QACjB,MAAM,WAAW,GAAG,CAAC,OAA2B,EAAU,EAAE,CAC1D,OAAO,OAAO,KAAK,QAAQ;YACzB,CAAC,CAAC,OAAO;YACT,CAAC,CAAC,OAAO;iBACJ,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACT,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,MAAM,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAC7E;iBACA,IAAI,CAAC,GAAG,CAAC,CAAC;QACnB,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;QAC7D,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;QACvE,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7D,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;YAAE,OAAO,IAAI,CAAC;QAClC,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACvE,MAAM,KAAK,GAAG,MAAM,oBAAoB,CAAC;gBACvC,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,WAAW,EAAE,QAAQ;gBACrB,gBAAgB,EAAE,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;gBACrF,MAAM,EAAE,KAAK,CAAC,WAAW;gBACzB,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO;gBACtC,SAAS,EAAE,KAAK,CAAC,SAAS;aAC3B,CAAC,CAAC;YACH,OAAO,KAAK,IAAI,IAAI,CAAC;QACvB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,2EAA2E;IAC3E,gBAAgB;QACd,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED;gFAC4E;IAC5E,gBAAgB,CAAC,KAAgC;QAC/C,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IAC7B,CAAC;IAED,0DAA0D;IAC1D,SAAS,CAAC,MAAmB;QAC3B,IAAI,CAAC,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;IACvC,CAAC;IAED,wEAAwE;IAChE,gBAAgB;QACtB,OAAO,IAAI,CAAC,eAAe,EAAE,GAAG,CAAC,cAAc,CAAC,KAAK,WAAW,CAAC;IACnE,CAAC;IAED;;;uEAGmE;IAC3D,KAAK,CAAC,iBAAiB,CAAC,KAI/B;QACC,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,IAAI,CAAC,QAAQ,KAAK,WAAW,EAAE,CAAC;YACrF,OAAO;QACT,CAAC;QACD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,qBAAqB,EAAE,CAAC;YAChD,MAAM,UAAU,GACd,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAChF,IAAI,CAAC,UAAU;gBAAE,OAAO;YACxB,MAAM,qBAAqB,CAAC;gBAC1B,MAAM,EAAE,KAAK,CAAC,WAAW;gBACzB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,MAAM,EAAE,UAAU;gBAClB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC5B,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,WAAW,EAAE,CAAC,CAAC,WAAW;oBAC1B,UAAU,EAAE,CAAC,CAAC,UAAU;oBACxB,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAClE,CAAC,CAAC;gBACH,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO;gBACtC,SAAS;gBACT,cAAc,EAAE,MAAM;gBACtB,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;aACzB,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,8DAA8D;QAChE,CAAC;IACH,CAAC;IAEO,iBAAiB;QACvB,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc;YAAE,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;QAC9D,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,OAAO,SAAS,CAAC;QACtC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,oBAAoB,IAAI,SAAS,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;IAC5E,CAAC;IAED,mEAAmE;IACnE,kBAAkB;QAChB,OAAO,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,CAAC,cAAc,EAAE,WAAW,EAAE,CAAC;QACnC,IAAI,CAAC,UAAU,EAAE,WAAW,EAAE,CAAC;QAC/B,MAAM,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,CAAC;QACjC,MAAM,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,CAAC;QAC3C,IAAI,CAAC,QAAQ,CAAC,kBAAkB,EAAE,CAAC;QACnC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;IAClB,CAAC;IAED,0DAA0D;IAElD,KAAK,CAAC,gBAAgB;QAC5B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACtF,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,EAAE,CAAC;QAC5B,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;QAChC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;IACjD,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,WAAmB;QACnD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC3D,0DAA0D;QAC1D,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAE7F,gDAAgD;QAChD,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;QAE1C,4CAA4C;QAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB;QACpD,IAAI,CAAC,QAAQ,GAAG,CAAC,SAAS,EAAE,GAAG,cAAc,CAAC,CAAC;QAE/C,2EAA2E;QAC3E,2EAA2E;QAC3E,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvE,MAAM,aAAa,GAAG,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE;YACjD,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,SAAS,EAAE,KAAK,CAAC,SAAS;SAC3B,CAAC,CAAC;QACH,IAAI,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,CAAC,EAAE,CAAC;YACrD,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,oDAAoD,CAAC,CAAC;YAC7E,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAC7C,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,MAAM,EAAE,KAAK,CAAC,WAAW;gBACzB,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO;gBACtC,aAAa;gBACb,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;aACzB,CAAC,CAAC;YACH,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;YACnC,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,0BAA0B,EAAE;gBACjD,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC;gBAC9C,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC;aACzC,CAAC,CAAC;QACL,CAAC;QAED,2CAA2C;QAC3C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACtF,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,EAAE,CAAC;QAC5B,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;QAEhC,sEAAsE;QACtE,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChC,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ;gBAAE,SAAS;YACpC,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QACjC,CAAC;QACD,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;IACjD,CAAC;IAEO,KAAK,CAAC,qBAAqB,CAAC,iBAA0B;QAC5D,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,OAAgB;QAC3C,oEAAoE;QACpE,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,OAAO;QAC9B,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QACpC,MAAM,KAAK,GAAiB;YAC1B,IAAI,EAAE,SAAS;YACf,EAAE,EAAE,OAAO;YACX,QAAQ,EAAE,IAAI,CAAC,aAAa;YAC5B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,OAAO;SACR,CAAC;QACF,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QAC/D,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC;QAC7B,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAClE,CAAC;IAEO,yBAAyB;QAC/B,OAAO;YACL,WAAW,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC;YACnE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;YAC7B,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE;YACnC,YAAY,EAAE,KAAK,IAAI,EAAE;gBACvB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC1D,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;oBAAE,OAAO,oBAAoB,CAAC;gBACvD,OAAO,QAAQ;qBACZ,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,YAAY,YAAY,CAAC;qBACjF,IAAI,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC;YACD,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,EAAwC;YACtF,UAAU,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;gBAC/B,MAAM,IAAI,CAAC,eAAe,CAAC,GAAG,CAC5B,GAAkD,EAClD,KAAc,CACf,CAAC;YACJ,CAAC;YACD,YAAY,EAAE,GAAG,EAAE;gBACjB,MAAM,OAAO,GAAG,YAAY,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,yBAAyB,CAAC;gBACjF,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,IAAI,CACxF,IAAI,CACL,CAAC;gBACF,OAAO,OAAO,GAAG,IAAI,CAAC;YACxB,CAAC;YACD,IAAI,EAAE,GAAG,EAAE;gBACT,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,MAAM,EAAE,KAAK,EAAE,SAAkB,EAAE,EAAE;gBACnC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBAC5C,OAAO,0BAA0B,MAAM,CAAC,YAAY,OAAO,MAAM,CAAC,YAAY,8CAA8C,CAAC;YAC/H,CAAC;YACD,YAAY,EAAE,KAAK,IAAI,EAAE;gBACvB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;gBAC3C,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC;oBAAE,OAAO,uCAAuC,CAAC;gBACzE,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CACxB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACP,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,UAAU,aAAa,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,GAAG,CAC/H,CAAC;gBACF,OAAO,GAAG,QAAQ,CAAC,MAAM,iBAAiB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/D,CAAC;SACF,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Real-API speed benchmark — sends actual requests to a live provider and
3
+ * measures TTFT, output throughput, cache behavior, and wall-clock latency.
4
+ *
5
+ * Unlike the mock benchmark, this hits real endpoints and produces
6
+ * production-representative numbers. Uses gg's own AuthStorage to resolve
7
+ * credentials (same path as a real session).
8
+ *
9
+ * Usage:
10
+ * npx tsx src/core/api-benchmark.ts
11
+ *
12
+ * Environment overrides:
13
+ * GG_BENCH_PROVIDER — provider name (default: "glm")
14
+ * GG_BENCH_MODEL — model id (default: "glm-5.2")
15
+ * GG_BENCH_TURNS — number of turns (default: 5)
16
+ */
17
+ export interface ApiTurnMetrics {
18
+ turn: number;
19
+ prompt: string;
20
+ ttftMs: number;
21
+ outputTokens: number;
22
+ outputDurationMs: number;
23
+ tokensPerSecond: number;
24
+ wallClockMs: number;
25
+ inputTokens: number;
26
+ cacheRead: number;
27
+ cacheWrite: number;
28
+ cacheHit: boolean;
29
+ stopReason: string;
30
+ }
31
+ export interface ApiBenchmarkResult {
32
+ provider: string;
33
+ model: string;
34
+ turns: ApiTurnMetrics[];
35
+ totalWallClockMs: number;
36
+ totalTtftMs: number;
37
+ totalOutputTokens: number;
38
+ avgTokensPerSecond: number;
39
+ avgTtftMs: number;
40
+ cacheHits: number;
41
+ cacheHitRate: number;
42
+ }
43
+ export declare function runApiBenchmark(config: {
44
+ provider: string;
45
+ model: string;
46
+ apiKey: string;
47
+ baseUrl?: string;
48
+ accountId?: string;
49
+ cacheRetention?: "short" | "long";
50
+ promptCacheKey?: string;
51
+ turns?: number;
52
+ }): Promise<ApiBenchmarkResult>;
53
+ export declare function formatApiResult(result: ApiBenchmarkResult): string;
54
+ export interface ApiComparisonResult {
55
+ baseline: ApiBenchmarkResult;
56
+ optimized: ApiBenchmarkResult;
57
+ ttftImprovement: number;
58
+ throughputImprovement: number;
59
+ wallClockImprovement: number;
60
+ cacheHitRateDelta: number;
61
+ }
62
+ /** Format an A/B comparison between two API benchmark runs. */
63
+ export declare function formatApiComparison(c: ApiComparisonResult): string;
64
+ //# sourceMappingURL=api-benchmark.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-benchmark.d.ts","sourceRoot":"","sources":["../../src/core/api-benchmark.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAOH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;CACtB;AAwDD,wBAAsB,eAAe,CAAC,MAAM,EAAE;IAC5C,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAClC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA0I9B;AAID,wBAAgB,eAAe,CAAC,MAAM,EAAE,kBAAkB,GAAG,MAAM,CAsClE;AAeD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,SAAS,EAAE,kBAAkB,CAAC;IAC9B,eAAe,EAAE,MAAM,CAAC;IACxB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,+DAA+D;AAC/D,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,mBAAmB,GAAG,MAAM,CAiClE"}
@@ -0,0 +1,381 @@
1
+ /**
2
+ * Real-API speed benchmark — sends actual requests to a live provider and
3
+ * measures TTFT, output throughput, cache behavior, and wall-clock latency.
4
+ *
5
+ * Unlike the mock benchmark, this hits real endpoints and produces
6
+ * production-representative numbers. Uses gg's own AuthStorage to resolve
7
+ * credentials (same path as a real session).
8
+ *
9
+ * Usage:
10
+ * npx tsx src/core/api-benchmark.ts
11
+ *
12
+ * Environment overrides:
13
+ * GG_BENCH_PROVIDER — provider name (default: "glm")
14
+ * GG_BENCH_MODEL — model id (default: "glm-5.2")
15
+ * GG_BENCH_TURNS — number of turns (default: 5)
16
+ */
17
+ import { stream } from "@kenkaiiii/gg-ai";
18
+ import { AuthStorage } from "./auth-storage.js";
19
+ // ── System prompt (realistic coding-agent prefix) ──────────
20
+ function buildSystemPrompt() {
21
+ return [
22
+ "You are GG Coder — a coding agent that works directly in the user's codebase.",
23
+ "You explore, understand, change, and verify code — completing tasks end-to-end",
24
+ "rather than just suggesting edits.",
25
+ "",
26
+ "## How to Talk",
27
+ "Don't narrate tool calls. Stay silent between tools unless you have a decision.",
28
+ "Final replies: 1-3 sentences, hard cap 5.",
29
+ "",
30
+ "## How to Work",
31
+ "- Read before edit/write; re-read after formatters or codegen.",
32
+ "- Compute in bash; write with edit/write so read-tracking stays intact.",
33
+ "- Keep edits small; plan multi-file work first.",
34
+ "- Choose targeted verification appropriate to the change.",
35
+ "",
36
+ "## Tools",
37
+ "- read: Read file contents",
38
+ "- write: Write file contents",
39
+ "- edit: Replace text in a file via search-replace blocks",
40
+ "- bash: Execute shell commands",
41
+ "- grep: Search file contents using regex",
42
+ "- find: Find files matching a glob pattern",
43
+ "",
44
+ "## Code Quality",
45
+ "Intent-revealing names; reuse existing deps. Types first; handle I/O and errors.",
46
+ "No dead/commented code, placeholders, or unasked refactors.",
47
+ "",
48
+ "## Environment",
49
+ "- Working directory: /home/user/my-project",
50
+ "- Platform: linux",
51
+ "",
52
+ "<!-- uncached -->",
53
+ "Today's date: 20 June 2026",
54
+ ].join("\n");
55
+ }
56
+ // ── Conversation turns ──────────────────────────────────────
57
+ /** Prompts designed to produce 100-300 token responses so throughput
58
+ * measurement is meaningful (the simple one-liners gave 8-13 tokens
59
+ * which made tok/s unreliable). */
60
+ const CONVERSATION_TURNS = [
61
+ "Write a TypeScript function `rateLimit(opts: { maxAttempts: number; windowMs: number })` that returns an Express middleware. Include the full implementation with comments, error handling, and an in-memory store. Make it production quality.",
62
+ "Now write a test file for that rate limiter using vitest. Cover the happy path, rate limit exceeded, window reset, and multiple IPs. Include at least 4 test cases with full implementations.",
63
+ "Refactor the rate limiter to support a Redis backend as an alternative to the in-memory store. Show the interface, both implementations, and a factory function. Keep it backward compatible.",
64
+ "Write a README section documenting the rate limiter API: installation, usage examples for both backends, configuration options, and a comparison table of in-memory vs Redis.",
65
+ "Review the entire rate limiter module for security issues, edge cases, and performance. Write a brief analysis with specific findings and recommended fixes for each issue.",
66
+ ];
67
+ // ── Benchmark runner ────────────────────────────────────────
68
+ export async function runApiBenchmark(config) {
69
+ const { provider, model, apiKey, baseUrl, accountId, cacheRetention = "long", promptCacheKey = `bench-${Date.now()}`, turns = 5, } = config;
70
+ const messages = [{ role: "system", content: buildSystemPrompt() }];
71
+ const turnMetrics = [];
72
+ for (let i = 0; i < turns; i++) {
73
+ const userPrompt = CONVERSATION_TURNS[i % CONVERSATION_TURNS.length];
74
+ messages.push({ role: "user", content: userPrompt });
75
+ const turnStart = Date.now();
76
+ let ttftMs = 0;
77
+ let firstToken = true;
78
+ const result = stream({
79
+ provider: provider,
80
+ model,
81
+ messages: [...messages],
82
+ maxTokens: 1024,
83
+ apiKey,
84
+ baseUrl,
85
+ accountId,
86
+ cacheRetention,
87
+ promptCacheKey,
88
+ });
89
+ let response;
90
+ try {
91
+ // Consume the stream, measuring TTFT on first event.
92
+ for await (const event of result) {
93
+ if (firstToken && (event.type === "text_delta" || event.type === "thinking_delta")) {
94
+ ttftMs = Date.now() - turnStart;
95
+ firstToken = false;
96
+ }
97
+ if (event.type === "text_delta") {
98
+ // Output counting happens via usage.outputTokens from the response.
99
+ }
100
+ }
101
+ response = await result.response;
102
+ }
103
+ catch (err) {
104
+ const errMsg = err instanceof Error ? err.message : String(err);
105
+ console.error(` Turn ${i + 1} FAILED: ${errMsg.slice(0, 200)}`);
106
+ turnMetrics.push({
107
+ turn: i + 1,
108
+ prompt: userPrompt.slice(0, 50),
109
+ ttftMs: 0,
110
+ outputTokens: 0,
111
+ outputDurationMs: 0,
112
+ tokensPerSecond: 0,
113
+ wallClockMs: Date.now() - turnStart,
114
+ inputTokens: 0,
115
+ cacheRead: 0,
116
+ cacheWrite: 0,
117
+ cacheHit: false,
118
+ stopReason: "error",
119
+ });
120
+ // Don't continue — conversation context is broken after an error
121
+ break;
122
+ }
123
+ const wallClockMs = Date.now() - turnStart;
124
+ const outputTokens = response.usage.outputTokens;
125
+ const outputDurationMs = wallClockMs - ttftMs;
126
+ const tokensPerSecond = outputDurationMs > 0 ? (outputTokens / outputDurationMs) * 1000 : 0;
127
+ const cacheRead = response.usage.cacheRead ?? 0;
128
+ turnMetrics.push({
129
+ turn: i + 1,
130
+ prompt: userPrompt.slice(0, 50),
131
+ ttftMs,
132
+ outputTokens,
133
+ outputDurationMs,
134
+ tokensPerSecond,
135
+ wallClockMs,
136
+ inputTokens: response.usage.inputTokens,
137
+ cacheRead,
138
+ cacheWrite: response.usage.cacheWrite ?? 0,
139
+ cacheHit: cacheRead > 0,
140
+ stopReason: response.stopReason,
141
+ });
142
+ // Append assistant reply for next turn.
143
+ const assistantContent = typeof response.message.content === "string"
144
+ ? response.message.content
145
+ : response.message.content
146
+ .filter((p) => p.type === "text")
147
+ .map((p) => p.text ?? "")
148
+ .join("");
149
+ messages.push({ role: "assistant", content: assistantContent });
150
+ // Brief pause between turns (realistic user think time).
151
+ if (i < turns - 1) {
152
+ await sleep(2000);
153
+ }
154
+ // Progress output.
155
+ process.stdout.write(` Turn ${i + 1}/${turns}: TTFT ${ttftMs}ms | ${tokensPerSecond.toFixed(0)} tok/s | ` +
156
+ `${outputTokens} out | cache ${cacheRead > 0 ? "HIT" : "miss"}` +
157
+ `${cacheRead > 0 ? ` (${cacheRead} tok)` : ""}\n`);
158
+ }
159
+ const totalWallClockMs = turnMetrics.reduce((s, t) => s + t.wallClockMs, 0);
160
+ const totalTtftMs = turnMetrics.reduce((s, t) => s + t.ttftMs, 0);
161
+ const totalOutputTokens = turnMetrics.reduce((s, t) => s + t.outputTokens, 0);
162
+ const cacheHits = turnMetrics.filter((t) => t.cacheHit).length;
163
+ const validTurns = turnMetrics.filter((t) => t.stopReason !== "error");
164
+ const avgTokensPerSecond = validTurns.length > 0
165
+ ? validTurns.reduce((s, t) => s + t.tokensPerSecond, 0) / validTurns.length
166
+ : 0;
167
+ const avgTtftMs = validTurns.length > 0 ? totalTtftMs / validTurns.length : 0;
168
+ return {
169
+ provider,
170
+ model,
171
+ turns: turnMetrics,
172
+ totalWallClockMs,
173
+ totalTtftMs,
174
+ totalOutputTokens,
175
+ avgTokensPerSecond,
176
+ avgTtftMs,
177
+ cacheHits,
178
+ cacheHitRate: turnMetrics.length > 0 ? cacheHits / turnMetrics.length : 0,
179
+ };
180
+ }
181
+ // ── Formatting ──────────────────────────────────────────────
182
+ export function formatApiResult(result) {
183
+ const lines = [];
184
+ lines.push("");
185
+ lines.push("╔══════════════════════════════════════════════════════════════╗");
186
+ lines.push(`║ API BENCHMARK: ${result.provider} / ${result.model}`.padEnd(63) + "║");
187
+ lines.push("╠══════════════════════════════════════════════════════════════╣");
188
+ lines.push("");
189
+ lines.push("┌──────┬────────────┬──────────┬───────────┬────────┬──────────┐");
190
+ lines.push("│ Turn │ TTFT │ Output │ Tok/s │ Cache │ Wall │");
191
+ lines.push("├──────┼────────────┼──────────┼───────────┼────────┼──────────┤");
192
+ for (const t of result.turns) {
193
+ const cacheLabel = t.cacheHit ? " HIT " : "miss";
194
+ lines.push(`│ ${String(t.turn).padStart(4)} │ ${fmt(t.ttftMs).padStart(10)} │ ` +
195
+ `${String(t.outputTokens).padStart(8)} │ ${t.tokensPerSecond.toFixed(0).padStart(9)} │ ` +
196
+ `${cacheLabel} │ ${fmt(t.wallClockMs).padStart(8)} │`);
197
+ }
198
+ lines.push("└──────┴────────────┴──────────┴───────────┴────────┴──────────┘");
199
+ lines.push("");
200
+ lines.push("┌─────────────────────────────┬──────────────────────────────┐");
201
+ lines.push("│ Metric │ Value │");
202
+ lines.push("├─────────────────────────────┼──────────────────────────────┤");
203
+ lines.push(`│ Avg TTFT │ ${fmt(result.avgTtftMs).padStart(28)} │`);
204
+ lines.push(`│ Avg output throughput │ ${result.avgTokensPerSecond.toFixed(0).padStart(22)} tok/s │`);
205
+ lines.push(`│ Total output tokens │ ${String(result.totalOutputTokens).padStart(28)} │`);
206
+ lines.push(`│ Total wall-clock │ ${fmt(result.totalWallClockMs).padStart(28)} │`);
207
+ lines.push(`│ Cache hits │ ${String(result.cacheHits).padStart(28)} │`);
208
+ lines.push(`│ Cache hit rate │ ${(result.cacheHitRate * 100).toFixed(0).padStart(27)}% │`);
209
+ lines.push("└─────────────────────────────┴──────────────────────────────┘");
210
+ lines.push("");
211
+ return lines.join("\n");
212
+ }
213
+ function fmt(ms) {
214
+ if (ms < 1000)
215
+ return `${Math.round(ms)}ms`;
216
+ return `${(ms / 1000).toFixed(2)}s`;
217
+ }
218
+ function sleep(ms) {
219
+ return new Promise((resolve) => setTimeout(resolve, ms));
220
+ }
221
+ /** Format an A/B comparison between two API benchmark runs. */
222
+ export function formatApiComparison(c) {
223
+ const lines = [];
224
+ lines.push("");
225
+ lines.push("╔══════════════════════════════════════════════════════════════╗");
226
+ lines.push("║ REAL API A/B: BASELINE vs OPTIMIZED ║");
227
+ lines.push("╚══════════════════════════════════════════════════════════════╝");
228
+ lines.push("");
229
+ lines.push(formatApiResult(c.baseline));
230
+ lines.push(formatApiResult(c.optimized));
231
+ lines.push("┌─────────────────────────────┬──────────────┬──────────────┬───────────┐");
232
+ lines.push("│ Metric │ Baseline │ Optimized │ Delta │");
233
+ lines.push("├─────────────────────────────┼──────────────┼──────────────┼───────────┤");
234
+ // TTFT/wall-clock: delta = (baseline - optimized), positive = faster = show -X%.
235
+ const pctDown = (delta) => `${delta >= 0 ? "-" : "+"}${Math.abs(delta).toFixed(1).padStart(5)}%`;
236
+ // Throughput: delta = (optimized - baseline), positive = faster = show +X%.
237
+ const pctUp = (delta) => `${delta >= 0 ? "+" : "-"}${Math.abs(delta).toFixed(1).padStart(5)}%`;
238
+ lines.push(`│ Avg TTFT │ ${fmt(c.baseline.avgTtftMs).padStart(11)} │ ${fmt(c.optimized.avgTtftMs).padStart(11)} │ ${pctDown(c.ttftImprovement).padStart(8)} │`);
239
+ lines.push(`│ Avg throughput (tok/s) │ ${String(c.baseline.avgTokensPerSecond.toFixed(0)).padStart(11)} │ ${String(c.optimized.avgTokensPerSecond.toFixed(0)).padStart(11)} │ ${pctUp(c.throughputImprovement).padStart(8)} │`);
240
+ lines.push(`│ Total wall-clock │ ${fmt(c.baseline.totalWallClockMs).padStart(11)} │ ${fmt(c.optimized.totalWallClockMs).padStart(11)} │ ${pctDown(c.wallClockImprovement).padStart(8)} │`);
241
+ lines.push(`│ Cache hit rate │ ${(c.baseline.cacheHitRate * 100).toFixed(0).padStart(10)}% │ ${(c.optimized.cacheHitRate * 100).toFixed(0).padStart(10)}% │ ${c.cacheHitRateDelta >= 0 ? "+" : ""}${c.cacheHitRateDelta.toFixed(0).padStart(5)}pp │`);
242
+ lines.push("└─────────────────────────────┴──────────────┴──────────────┴───────────┘");
243
+ lines.push("");
244
+ return lines.join("\n");
245
+ }
246
+ async function main() {
247
+ const provider = process.env.GG_BENCH_PROVIDER ?? "glm";
248
+ const model = process.env.GG_BENCH_MODEL ?? "glm-5.2";
249
+ const turns = parseInt(process.env.GG_BENCH_TURNS ?? "5", 10);
250
+ const mode = process.env.GG_BENCH_MODE ?? "compare"; // "single" or "compare"
251
+ // Resolve credentials using gg's AuthStorage (same path as a real session).
252
+ const authStorage = new AuthStorage();
253
+ await authStorage.load();
254
+ let apiKey;
255
+ let baseUrl;
256
+ let accountId;
257
+ try {
258
+ const creds = await authStorage.resolveCredentials(provider);
259
+ apiKey = creds.accessToken;
260
+ baseUrl = creds.baseUrl;
261
+ accountId = creds.accountId;
262
+ }
263
+ catch (err) {
264
+ console.error(`❌ Could not resolve credentials for "${provider}". ` +
265
+ `Make sure you're logged in: run \`ggcoder login\` and choose ${provider}.\n` +
266
+ ` Error: ${err instanceof Error ? err.message : String(err)}`);
267
+ process.exit(1);
268
+ }
269
+ if (!apiKey) {
270
+ console.error(`❌ Resolved credentials for "${provider}" but accessToken is empty.`);
271
+ process.exit(1);
272
+ }
273
+ console.log(`\n🔍 API Benchmark: ${provider}/${model} — mode: ${mode} (${turns} turns)`);
274
+ console.log(` API key: ${apiKey.slice(0, 8)}...${apiKey.slice(-4)}`);
275
+ console.log(` Base URL: ${baseUrl ?? "(provider default)"}`);
276
+ if (accountId)
277
+ console.log(` Account ID: ${accountId}`);
278
+ console.log("");
279
+ if (mode === "single") {
280
+ const result = await runApiBenchmark({
281
+ provider,
282
+ model,
283
+ apiKey,
284
+ baseUrl,
285
+ accountId,
286
+ cacheRetention: "long",
287
+ promptCacheKey: `bench-${provider}-${Date.now()}`,
288
+ turns,
289
+ });
290
+ console.log(formatApiResult(result));
291
+ return;
292
+ }
293
+ // A/B comparison mode.
294
+ console.log("━".repeat(50));
295
+ console.log("▶ BASELINE: cacheRetention=short, no prewarm");
296
+ console.log("━".repeat(50));
297
+ const baseline = await runApiBenchmark({
298
+ provider,
299
+ model,
300
+ apiKey,
301
+ baseUrl,
302
+ accountId,
303
+ cacheRetention: "short",
304
+ promptCacheKey: `bench-base-${provider}-${Date.now()}`,
305
+ turns,
306
+ });
307
+ // Cool-down between runs so the second run isn't affected by connection warming.
308
+ console.log("\n⏳ Cooling down 5s between runs...\n");
309
+ await sleep(5000);
310
+ console.log("━".repeat(50));
311
+ console.log("▶ OPTIMIZED: cacheRetention=long + prewarm");
312
+ console.log("━".repeat(50));
313
+ // Fire a prewarm request before the optimized run (same as AgentSession does).
314
+ if (provider === "anthropic") {
315
+ const { prewarmAnthropicCache } = await import("@kenkaiiii/gg-ai");
316
+ await prewarmAnthropicCache({
317
+ apiKey,
318
+ model,
319
+ system: buildSystemPrompt(),
320
+ cacheRetention: "long",
321
+ baseUrl,
322
+ }).catch(() => { });
323
+ console.log(" (prewarm sent)");
324
+ }
325
+ else {
326
+ // For non-Anthropic providers, fire a minimal warm-up request to prime
327
+ // the provider's prefix cache (GLM, OpenAI, etc. auto-cache on first hit).
328
+ console.log(" (warm-up request for prefix cache)");
329
+ await runApiBenchmark({
330
+ provider,
331
+ model,
332
+ apiKey,
333
+ baseUrl,
334
+ accountId,
335
+ cacheRetention: "long",
336
+ promptCacheKey: `bench-warm-${provider}-${Date.now()}`,
337
+ turns: 1,
338
+ }).catch(() => { });
339
+ }
340
+ const optimized = await runApiBenchmark({
341
+ provider,
342
+ model,
343
+ apiKey,
344
+ baseUrl,
345
+ accountId,
346
+ cacheRetention: "long",
347
+ promptCacheKey: `bench-opt-${provider}-${Date.now()}`,
348
+ turns,
349
+ });
350
+ const ttftImprovement = baseline.avgTtftMs > 0
351
+ ? ((baseline.avgTtftMs - optimized.avgTtftMs) / baseline.avgTtftMs) * 100
352
+ : 0;
353
+ const throughputImprovement = baseline.avgTokensPerSecond > 0
354
+ ? ((optimized.avgTokensPerSecond - baseline.avgTokensPerSecond) /
355
+ baseline.avgTokensPerSecond) *
356
+ 100
357
+ : 0;
358
+ const wallClockImprovement = baseline.totalWallClockMs > 0
359
+ ? ((baseline.totalWallClockMs - optimized.totalWallClockMs) / baseline.totalWallClockMs) * 100
360
+ : 0;
361
+ const comparison = {
362
+ baseline,
363
+ optimized,
364
+ ttftImprovement,
365
+ throughputImprovement,
366
+ wallClockImprovement,
367
+ cacheHitRateDelta: (optimized.cacheHitRate - baseline.cacheHitRate) * 100,
368
+ };
369
+ console.log(formatApiComparison(comparison));
370
+ }
371
+ // Run when executed directly (not when imported by tests).
372
+ const isDirectRun = process.argv[1]?.endsWith("api-benchmark.ts") ||
373
+ process.argv[1]?.endsWith("api-benchmark.js") ||
374
+ process.argv[1]?.endsWith("api-benchmark");
375
+ if (isDirectRun) {
376
+ main().catch((err) => {
377
+ console.error("Benchmark failed:", err);
378
+ process.exit(1);
379
+ });
380
+ }
381
+ //# sourceMappingURL=api-benchmark.js.map