@agent-link/agent 0.1.338 → 0.1.339

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 (78) hide show
  1. package/dist/backends/types.d.ts +58 -0
  2. package/dist/backends/types.js +15 -4
  3. package/dist/backends/types.js.map +1 -1
  4. package/dist/connection.js +231 -28
  5. package/dist/connection.js.map +1 -1
  6. package/dist/copilot-capabilities-offline.d.ts +254 -0
  7. package/dist/copilot-capabilities-offline.js +392 -0
  8. package/dist/copilot-capabilities-offline.js.map +1 -0
  9. package/dist/copilot-capabilities.d.ts +43 -0
  10. package/dist/copilot-capabilities.js +128 -0
  11. package/dist/copilot-capabilities.js.map +1 -0
  12. package/dist/copilot-capability-service.d.ts +24 -0
  13. package/dist/copilot-capability-service.js +116 -0
  14. package/dist/copilot-capability-service.js.map +1 -0
  15. package/dist/copilot-command-bridge.d.ts +184 -0
  16. package/dist/copilot-command-bridge.js +1800 -0
  17. package/dist/copilot-command-bridge.js.map +1 -0
  18. package/dist/copilot-compaction-barrier.d.ts +36 -0
  19. package/dist/copilot-compaction-barrier.js +152 -0
  20. package/dist/copilot-compaction-barrier.js.map +1 -0
  21. package/dist/copilot-compaction-lifecycle.d.ts +34 -0
  22. package/dist/copilot-compaction-lifecycle.js +88 -0
  23. package/dist/copilot-compaction-lifecycle.js.map +1 -0
  24. package/dist/copilot-compaction-policy.d.ts +5 -0
  25. package/dist/copilot-compaction-policy.js +7 -0
  26. package/dist/copilot-compaction-policy.js.map +1 -0
  27. package/dist/copilot-configuration.d.ts +63 -0
  28. package/dist/copilot-configuration.js +283 -0
  29. package/dist/copilot-configuration.js.map +1 -0
  30. package/dist/copilot-event-scope.d.ts +13 -0
  31. package/dist/copilot-event-scope.js +26 -0
  32. package/dist/copilot-event-scope.js.map +1 -0
  33. package/dist/copilot-fork-metadata.d.ts +9 -0
  34. package/dist/copilot-fork-metadata.js +86 -0
  35. package/dist/copilot-fork-metadata.js.map +1 -0
  36. package/dist/copilot-message-kind.d.ts +21 -0
  37. package/dist/copilot-message-kind.js +45 -0
  38. package/dist/copilot-message-kind.js.map +1 -0
  39. package/dist/copilot-plan-state.d.ts +19 -0
  40. package/dist/copilot-plan-state.js +180 -0
  41. package/dist/copilot-plan-state.js.map +1 -0
  42. package/dist/copilot-request-dispatch.d.ts +10 -0
  43. package/dist/copilot-request-dispatch.js +31 -0
  44. package/dist/copilot-request-dispatch.js.map +1 -0
  45. package/dist/copilot-review-documents.d.ts +17 -0
  46. package/dist/copilot-review-documents.js +162 -0
  47. package/dist/copilot-review-documents.js.map +1 -0
  48. package/dist/copilot-session-activity.d.ts +3 -0
  49. package/dist/copilot-session-activity.js +94 -0
  50. package/dist/copilot-session-activity.js.map +1 -0
  51. package/dist/copilot-sidecar.d.ts +2 -0
  52. package/dist/copilot-sidecar.js +17 -0
  53. package/dist/copilot-sidecar.js.map +1 -0
  54. package/dist/copilot-turn-journal.d.ts +36 -0
  55. package/dist/copilot-turn-journal.js +246 -0
  56. package/dist/copilot-turn-journal.js.map +1 -0
  57. package/dist/copilot-user-requests.d.ts +11 -0
  58. package/dist/copilot-user-requests.js +84 -0
  59. package/dist/copilot-user-requests.js.map +1 -0
  60. package/dist/copilot.d.ts +194 -9
  61. package/dist/copilot.js +5012 -240
  62. package/dist/copilot.js.map +1 -1
  63. package/dist/history-message-transform.d.ts +47 -1
  64. package/dist/history-message-transform.js +67 -0
  65. package/dist/history-message-transform.js.map +1 -1
  66. package/dist/history.d.ts +8 -0
  67. package/dist/history.js.map +1 -1
  68. package/dist/provider-command-discovery.d.ts +5 -0
  69. package/dist/provider-command-discovery.js +49 -1
  70. package/dist/provider-command-discovery.js.map +1 -1
  71. package/dist/provider-command-types.d.ts +5 -0
  72. package/dist/provider-command-types.js.map +1 -1
  73. package/dist/runtime.d.ts +1 -1
  74. package/dist/runtime.js +1 -1
  75. package/dist/runtime.js.map +1 -1
  76. package/dist/search-sessions.js +2 -1
  77. package/dist/search-sessions.js.map +1 -1
  78. package/package.json +3 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"copilot-command-bridge.js","sourceRoot":"","sources":["../src/copilot-command-bridge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAqB,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAC5C,OAAO,KAAK,GAAG,MAAM,0BAA0B,CAAC;AAChD,OAAO,EACL,uBAAuB,EACvB,mBAAmB,EACnB,mBAAmB,GAEpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAMrE,OAAO,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAClF,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,0BAA0B,EAC9F,mBAAmB,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,oCAAoC,EAClF,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAC/J,OAAO,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAExH,MAAM,oBAAoB,GAAG,MAAM,CAAC;AACpC,MAAM,2BAA2B,GAAG,CAAC,GAAG,MAAM,CAAC;AAC/C,MAAM,sBAAsB,GAAG,MAAM,CAAC;AACtC,MAAM,oCAAoC,GAAG,EAAE,GAAG,MAAM,CAAC;AACzD,MAAM,0BAA0B,GAAG,CAAC,CAAC;AACrC,MAAM,mBAAmB,GAAG,KAAK,CAAC;AAClC,MAAM,uBAAuB,GAAG,MAAM,CAAC;AACvC,MAAM,2BAA2B,GAAG,EAAE,GAAG,MAAM,CAAC;AAChD,MAAM,8CAA8C,GAAG,yBAAyB,CAAC,UAAU,CAAC;AAC5F,MAAM,0CAA0C,GAAG,yBAAyB,CAAC,gBAAgB,CAAC;AAC9F,MAAM,uCAAuC,GAAG,MAAM,CAAC,yBAAyB,CAAC,UAAU,CAAC,CAAC;AAC7F,MAAM,kBAAkB,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAU,CAAC;AAEhE,SAAS,6BAA6B,CAAC,OAA6B;IAClE,MAAM,KAAK,GAAG,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC;IACnC,MAAM,OAAO,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC;IACnE,OAAO,OAAO,OAAO,KAAK,QAAQ,IAAI,gCAAgC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACvF,CAAC;AAWD,MAAM,YAAY,GAAG,IAAI,GAAG,EAAyB,CAAC;AACtD,MAAM,8BAA8B,GAAG,yCAAyC,CAAC;AACjF,MAAM,8CAA8C,GAAG;IACrD,8BAA8B;IAC9B,0JAA0J;IAC1J,8HAA8H;IAC9H,qGAAqG;IACrG,+EAA+E;CAChF,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACZ,MAAM,8CAA8C,GAAG;IACrD,8BAA8B;IAC9B,4MAA4M;IAC5M,sIAAsI;IACtI,mIAAmI;IACnI,+EAA+E;CAChF,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACZ,MAAM,yCAAyC,GAAG;IAChD,8BAA8B;IAC9B,uHAAuH;IACvH,+DAA+D;IAC/D,qHAAqH;IACrH,yHAAyH;IACzH,oIAAoI;CACrI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACZ,MAAM,qDAAqD,GAAG;IAC5D,8BAA8B;IAC9B,uHAAuH;IACvH,qHAAqH;IACrH,yHAAyH;CAC1H,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACZ,MAAM,sDAAsD,GAAG;IAC7D,8BAA8B;IAC9B,sHAAsH;IACtH,yHAAyH;CAC1H,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACZ,MAAM,UAAU,kCAAkC,CAAC,IAAY;IAC7D,MAAM,OAAO,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;IACxD,MAAM,aAAa,GAAG;QACpB,8CAA8C;QAC9C,8CAA8C;QAC9C,yCAAyC;QACzC,qDAAqD;QACrD,sDAAsD;KACvD,CAAC;IACF,KAAK,MAAM,QAAQ,IAAI,aAAa,EAAE,CAAC;QACrC,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/B,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC;QACtD,CAAC;IACH,CAAC;IACD,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,8BAA8B,CAAC,CAAC;IACxE,IAAI,WAAW,IAAI,CAAC,EAAE,CAAC;QACrB,MAAM,yBAAyB,GAAG,OAAO;aACtC,KAAK,CAAC,WAAW,CAAC;aAClB,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC;aAC9B,OAAO,EAAE,CAAC;QACb,IAAI,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,yBAAyB,CAAC,CAAC,EAAE,CAAC;YACnF,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC;QACjD,CAAC;IACH,CAAC;IACD,OAAO,uBAAuB,CAAC,IAAI,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,wBAAwB;IACtC,OAAO;QACL;YACE,EAAE,EAAE,iBAAiB;YACrB,IAAI,EAAE,SAAS;YACf,UAAU,EAAE,UAAU;YACtB,WAAW,EAAE,uGAAuG;YACpH,IAAI,EAAE,SAAS;SAChB;QACD;YACE,EAAE,EAAE,cAAc;YAClB,IAAI,EAAE,MAAM;YACZ,UAAU,EAAE,OAAO;YACnB,WAAW,EAAE,kBAAkB;YAC/B,IAAI,EAAE,SAAS;SAChB;QACD;YACE,EAAE,EAAE,cAAc;YAClB,IAAI,EAAE,MAAM;YACZ,UAAU,EAAE,OAAO;YACnB,WAAW,EAAE,0GAA0G;YACvH,IAAI,EAAE,SAAS;SAChB;KACF,CAAC;AACJ,CAAC;AA4GD,SAAS,WAAW,CAAI,OAAmB,EAAE,SAAiB,EAAE,KAAa;IAC3E,OAAO,IAAI,OAAO,CAAI,CAAC,cAAc,EAAE,aAAa,EAAE,EAAE;QACtD,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,YAAY,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;QAC1F,OAAO,CAAC,IAAI,CACV,KAAK,CAAC,EAAE;YACN,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,cAAc,CAAC,KAAK,CAAC,CAAC;QACxB,CAAC,EACD,KAAK,CAAC,EAAE;YACN,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,aAAa,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,sBAAsB,CAAC,OAAe;IAC7C,IAAI,QAAQ,EAAE,KAAK,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IAEnF,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACjC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;IACpF,IAAI,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;IAEnF,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAC9E,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACvC,IAAI,UAAU,CAAC,MAAM,CAAC;gBAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;QACrF,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,iCAAiC;IACnC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,KAA8C;IACpF,MAAM,IAAI,GAAG,0BAA0B,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;IACpF,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,qBAAqB,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;QAC3G,IAAI,CAAC;YAAC,MAAM,IAAI,GAAG,QAAQ,CAAC,SAAU,CAAC,CAAC;YAAC,OAAO,GAAG,SAAS,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QAAC,CAAC;QAC9F,MAAM,CAAC;YAAC,OAAO,EAAE,CAAC;QAAC,CAAC;IACtB,CAAC,CAAC,CAAC;IACH,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI;QAC1F,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACjE,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAe,EAAE,UAAkB;IAC/D,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC;IAC9B,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,UAAU,oCAAoC,CAAC,CAAC;IAC/G,IAAI,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACvE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,GAAI,KAA+B,CAAC,IAAI,IAAK,KAAe,CAAC,OAAO,CAAC;QAC/E,MAAM,IAAI,KAAK,CAAC,GAAG,UAAU,uCAAuC,GAAG,KAAK,IAAI,yCAAyC,CAAC,CAAC;IAC7H,CAAC;IACD,6EAA6E;IAC7E,sDAAsD;IACtD,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3D,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACxF,IAAI,CAAC;YACH,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE;gBAAE,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;QACpE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,GAAI,KAA+B,CAAC,IAAI,IAAK,KAAe,CAAC,OAAO,CAAC;YAC/E,MAAM,IAAI,KAAK,CAAC,GAAG,UAAU,gCAAgC,UAAU,KAAK,IAAI,yCAAyC,CAAC,CAAC;QAC7H,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAe,EAAE,UAAkB,EAAE,KAAc;IAC5E,MAAM,KAAK,GAAG,KAA8B,CAAC;IAC7C,OAAO,IAAI,KAAK,CAAC,GAAG,UAAU,2BAA2B,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI;UAC7F,eAAe,IAAI,CAAC,OAAO,wBAAwB,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,KAAK,KAAK,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AACzH,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,UAAkB,EAClB,OAAe,EACf,iBAA+C,EAAE,EACjD,YAAqC,KAAK;IAE1C,MAAM,QAAQ,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;IACzC,MAAM,gBAAgB,GAAG,UAAU,KAAK,SAAS;WAC5C,QAAQ,CAAC,OAAO,KAAK,SAAS;WAC9B,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM;WACtB,CAAC,QAAQ,CAAC,KAAK,CAAC;IACrB,MAAM,QAAQ,GAAG,gBAAgB;QAC/B,CAAC,CAAC,EAAE,OAAO,EAAE,qBAAqB,CAAC,SAAS,CAAC,IAAI,SAAS,EAAE,UAAU,EAAE,EAAc,EAAE,SAAS,EAAE,EAAE,EAAE;QACvG,CAAC,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IACrC,MAAM,WAAW,GAAG;QAClB,GAAG,QAAQ,CAAC,UAAU;QACtB,GAAG,CAAC,UAAU,KAAK,gBAAgB,IAAI,cAAc,CAAC,WAAW;YAC/D,CAAC,CAAC,CAAC,WAAW,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACnD,GAAG,CAAC,UAAU,KAAK,gBAAgB,IAAI,SAAS,KAAK,KAAK;YACxD,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,KAAK,gBAAgB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,EAAE,kBAAkB,EAAE,SAAS,CAAC,CAAC;KAC9G,CAAC;IACF,MAAM,MAAM,GAAG,sBAAsB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACxD,MAAM,UAAU,GAAG;QACjB,GAAG,WAAW,EAAE;QAChB,GAAG,CAAC,QAAQ,CAAC,GAAG,IAAI,EAAE,CAAC;QACvB,GAAG,CAAC,CAAC,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,gBAAgB,CAAC;YAC/D,CAAC,CAAC,EAAE,uCAAuC,EAAE;YAC7C,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;IAEF,IAAI,MAAM,EAAE,CAAC;QACX,OAAO;YACL,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC,UAAU,EAAE,GAAG,WAAW,CAAC;YAC5C,OAAO,EAAE;gBACP,GAAG,EAAE,QAAQ,CAAC,GAAG,IAAI,OAAO;gBAC5B,GAAG,EAAE,UAAU;gBACf,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;gBAC/B,WAAW,EAAE,IAAI;aAClB;SACF,CAAC;IACJ,CAAC;IAED,IAAI,QAAQ,EAAE,KAAK,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9E,OAAO;YACL,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,SAAS;YACzC,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,OAAO,EAAE,GAAG,WAAW,CAAC;YAC1D,OAAO,EAAE;gBACP,GAAG,EAAE,QAAQ,CAAC,GAAG,IAAI,OAAO;gBAC5B,GAAG,EAAE,UAAU;gBACf,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;gBAC/B,WAAW,EAAE,IAAI;aAClB;SACF,CAAC;IACJ,CAAC;IAED,OAAO;QACL,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE;YACP,GAAG,EAAE,QAAQ,CAAC,GAAG,IAAI,OAAO;YAC5B,GAAG,EAAE,UAAU;YACf,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;YAC/B,WAAW,EAAE,IAAI;YACjB,GAAG,QAAQ,CAAC,SAAS;SACtB;KACF,CAAC;AACJ,CAAC;AAED,MAAM,OAAO,qBAAqB;IAkLH;IAjLrB,oBAAoB,GAAG,IAAI,GAAG,EAAU,CAAC;IACzC,kBAAkB,GAAG,IAAI,GAAG,EAKhC,CAAC;IACG,eAAe,GAAG,IAAI,GAAG,EAAuB,CAAC;IACjD,mBAAmB,GAAG,IAAI,0BAA0B,EAAE,CAAC;IAC9C,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;IAC1C,aAAa,GAAG,IAAI,GAAG,EAAkB,CAAC;IAElD,iBAAiB,CAAC,SAAiB;QACjC,MAAM,QAAQ,GAAG,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,eAAe,CAAC,EAAE,SAAS,CAAC,CAAC;QAC5H,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC5C,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,iBAAiB,CAAC,SAAiB,EAAE,QAAgB,EAAE,WAAqB,EAAE;QAC5E,OAAO,wBAAwB,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,eAAe,CAAC,EACtG,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC/F,CAAC;IAED,iBAAiB,CAAC,SAAiB,EAAE,QAAgB;QACnD,OAAO,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,eAAe,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC7H,CAAC;IAED,iBAAiB,CAAC,SAAiB,EAAE,QAAgB,EAAE,OAAe;QACpE,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,eAAe,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC/H,CAAC;IACO,KAAK,GAAwB,IAAI,CAAC;IAClC,UAAU,GAA6B,IAAI,CAAC;IAC5C,aAAa,GAAgC,IAAI,CAAC;IACzC,WAAW,GAAG,IAAI,GAAG,EAA2B,CAAC;IACjD,iBAAiB,GAAG,IAAI,GAAG,EAAsD,CAAC;IAClF,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzC,aAAa,GAAG,IAAI,GAAG,EAAwB,CAAC;IACzD,MAAM,GAAG,EAAE,CAAC;IACZ,kBAAkB,GAAwB,IAAI,CAAC;IAC/C,qBAAqB,GAAoC,IAAI,CAAC;IAC9D,WAAW,GAAyB,IAAI,CAAC;IACzC,YAAY,GAAyB,IAAI,CAAC;IAC1C,aAAa,GAAoC,IAAI,CAAC;IACtD,aAAa,GAAgC,IAAI,CAAC;IAClD,kBAAkB,GAAG,CAAC,CAAC;IACvB,sBAAsB,GAAG,EAAE,CAAC;IAC5B,mBAAmB,GAAG,CAAC,CAAC;IACxB,eAAe,GAAG,KAAK,CAAC;IAChC,gBAAgB,GAAG,EAAE,CAAC;IAEtB,KAAK,CAAC,yBAAyB;QAC7B,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAmB;YAAE,OAAO,KAAK,CAAC;QAC3E,IAAI,IAAI,CAAC,OAAO,CAAC,kBAAkB,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAC1I,IAAI,IAAI,CAAC,eAAe;YAAE,OAAO,IAAI,CAAC;QACtC,IAAI,IAAI,CAAC,aAAa,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,mBAAmB,GAAG,OAAO;YAAE,OAAO,KAAK,CAAC;QAC1F,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACtC,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,0BAA0B,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;YACpH,iBAAiB,CAAC,SAAS,EAAE,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YACpF,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,SAAS,CAAC,qBAAqB,IAAI,SAAS,CAAC,qBAAqB,KAAK,IAAI,CAAC,aAAa,CAAC,qBAAqB,CAAC;YACzI,OAAO,IAAI,CAAC,eAAe,CAAC;QAC9B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAAE,MAAM,KAAK,CAAC;YAC7D,OAAO,KAAK,CAAC,CAAC,mDAAmD;QACnE,CAAC;IACH,CAAC;IAED,gBAAgB;QACd,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACzE,CAAC;IAEO,kBAAkB,CAAC,SAAiB,EAAE,OAAqC;QACjF,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAmB;YAAE,OAAO;QAC9C,IAAI,CAAC,sBAAsB,GAAG,SAAS,CAAC;QACxC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACrC,IAAI,CAAC,aAAa,GAAG,0BAA0B,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE;YACvF,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,WAAW,IAAI,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,eAAe;SACjG,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,SAAS,CAAC;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC;QACpD,IAAI,QAAQ,EAAE,SAAS,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK;YAAE,IAAI,CAAC,aAAa,CAAC,qBAAqB,GAAG,QAAQ,EAAE,qBAAqB,CAAC;QAC5H,IAAI,QAAQ,EAAE,SAAS,KAAK,SAAS,IAAI,QAAQ,CAAC,UAAU,KAAK,IAAI,CAAC,OAAO,CAAC,UAAU;eACjF,QAAQ,CAAC,qBAAqB,KAAK,CAAC;eACpC,QAAQ,CAAC,SAAS,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK;eAC1C,QAAQ,CAAC,SAAS,CAAC,OAAO,KAAK,CAAC,OAAO,CAAC,WAAW,IAAI,SAAS,CAAC;eACjE,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC,EAAE,CAAC;YAC5F,wEAAwE;YACxE,8EAA8E;YAC9E,oBAAoB,CAAC,IAAI,CAAC,aAAa,EAAE,eAAe,EAAE,QAAQ,CAAC,SAAS,CAAC,aAAa,EACxF,QAAQ,CAAC,OAAO,CAAC,aAAc,EAAE,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;IAEO,oBAAoB;QAC1B,IAAI,CAAC,IAAI,CAAC,aAAa;YAAE,OAAO;QAChC,IAAI,CAAC,aAAa,CAAC,OAAO,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QACxE,mBAAmB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACxC,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;IACnG,CAAC;IAEO,oBAAoB,CAAC,SAAiB,EAAE,KAA8B;QAC5E,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,SAAS,KAAK,IAAI,CAAC,sBAAsB;YAAE,OAAO;QAC7E,MAAM,SAAS,GAAG,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QAC1F,IAAI,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,SAAS,GAAG,IAAI,CAAC,kBAAkB;YAAE,OAAO;QAC9E,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QAC5D,yBAAyB,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;QACrD,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,KAAK,MAAM;YAAE,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC3F,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,SAAiB;QAC1C,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,SAAS,KAAK,IAAI,CAAC,sBAAsB;YAAE,OAAO;QAC7E,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;YAC1B,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAA0B,0BAA0B,EAAE,EAAE,SAAS,EAAE,EAAE,IAAI,CAAC,CAAC;gBAC7G,oBAAoB,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;gBACvG,oBAAoB,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,EAAE,OAAO,CAAC,eAAe,EAAE,iBAAiB,CAAC,CAAC;gBAC/F,oBAAoB,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,EAAE,OAAO,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;gBAC5F,oBAAoB,CAAC,IAAI,CAAC,aAAa,EAAE,eAAe,EAAE,OAAO,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC;YACtG,CAAC;YAAC,MAAM,CAAC,CAAC,oEAAoE,CAAC,CAAC;QAClF,CAAC;QACD,uBAAuB,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,eAAe,CAAC,EAClH,SAAS,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACtC,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,+BAA+B,CAAC,CAAC;IAC5I,CAAC;IAED,kFAAkF;IAClF,KAAK,CAAC,mBAAmB,CAAC,SAAiB;QACzC,IAAI,IAAI,CAAC,aAAa,EAAE;YAAE,OAAO,IAAI,CAAC;QACtC,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;QACzC,MAAM,aAAa,GAAG,aAAa,EAAE,SAAS,CAAC,KAAK,CAAC;QACrD,MAAM,eAAe,GAAG,aAAa,EAAE,SAAS,CAAC,aAAa,CAAC;QAC/D,IAAI,CAAC,aAAa,IAAI,CAAC,eAAe;eAC/B,CAAC,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC;YAAE,OAAO,IAAI,CAAC;QAChH,IAAI,QAA0D,CAAC;QAC/D,IAAI,CAAC;YACH,uEAAuE;YACvE,qEAAqE;YACrE,uEAAuE;YACvE,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,8BAA8B,EAAE;gBAC5D,SAAS,EAAE,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,eAAe,EAAE,gBAAgB,EAAE,CAAC;aAChG,EAAE,IAAI,CAAC,CAAC;QACX,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAK,KAA2B,EAAE,IAAI,KAAK,CAAC,KAAK;gBAAE,OAAO,IAAI,CAAC,CAAC,aAAa;YAC7E,MAAM,KAAK,CAAC;QACd,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,IAAI,aAAa,KAAK,IAAI,CAAC,aAAa,IAAI,aAAa,EAAE,SAAS,CAAC,KAAK,KAAK,aAAa;eACtG,aAAa,EAAE,SAAS,CAAC,aAAa,KAAK,eAAe;YAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QAC1H,MAAM,KAAK,GAAG,QAAQ,EAAE,WAAW,CAAC;QACpC,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC,CAAC,sDAAsD;QAC/E,IAAI,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,IAAI,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE,KAAK,aAAa,CAAC,WAAW,EAAE,EAAE,CAAC;YACzG,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;QAC1E,CAAC;QACD,MAAM,WAAW,GAAG,CAAC,CAAU,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,gBAAgB,KAAK,eAAe,EAAE,CAAC;YAClF,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAC5D,CAAC;QACD,MAAM,QAAQ,GAA2B;YACvC,KAAK,EAAE,aAAa;YACpB,aAAa,EAAE,KAAK,CAAC,WAAW;YAChC,aAAa,EAAE,KAAK,CAAC,gBAAgB;YACrC,iEAAiE;YACjE,wEAAwE;YACxE,0EAA0E;YAC1E,eAAe,EAAE,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC,YAAY,GAAG,CAAC;mBACrE,WAAW,CAAC,KAAK,CAAC,kBAAkB,CAAC;mBACrC,WAAW,CAAC,KAAK,CAAC,qBAAqB,CAAC,IAAI,KAAK,CAAC,qBAAqB,GAAG,CAAC;mBAC3E,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC,kBAAkB,GAAG,KAAK,CAAC,qBAAqB,KAAK,KAAK,CAAC,WAAW;YACtG,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,EAAE,mBAAmB,EAAE,KAAK,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrG,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,YAAY;gBAClG,CAAC,CAAC,EAAE,iBAAiB,EAAE,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAClE,CAAC;QACF,4EAA4E;QAC5E,OAAO,QAAQ,CAAC;IAClB,CAAC;IACO,QAAQ,GAAG,KAAK,CAAC;IAEzB,YAA6B,OAAqC;QAArC,YAAO,GAAP,OAAO,CAA8B;IAAG,CAAC;IAEtE,KAAK;QACH,IAAI,IAAI,CAAC,YAAY;YAAE,OAAO,IAAI,CAAC,YAAY,CAAC;QAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;YAChD,IAAI,IAAI,CAAC,YAAY,KAAK,QAAQ;gBAAE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAC/D,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC;QAC7B,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,KAAK,CAAC,YAAY;QACxB,IAAI,IAAI,CAAC,WAAW;YAAE,MAAM,IAAI,CAAC,WAAW,CAAC;QAC7C,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,aAAa;YAAE,OAAO;QAClD,MAAM,IAAI,GAAG,0BAA0B,CACrC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,CAC3F,CAAC;QACF,oBAAoB,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACpD,IAAI,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC;YACrC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,IAAI,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC;YACvG,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE,eAAe,CAAC,IAAI,CAAC,aAAc,CAAC,CAAC,CAAC;QACpG,CAAC;QAED,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,gBAAgB,GAAG,uBAAuB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC9D,IAAI,KAAmB,CAAC;QACxB,IAAI,CAAC;YAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAAC,CAAC;QAC7D,OAAO,KAAK,EAAE,CAAC;YAAC,MAAM,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAAC,CAAC;QAChF,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,QAAQ,GAAG,IAAI,CAAC;QACpB,IAAI,cAAc,GAAG,KAAK,CAAC;QAC3B,IAAI,aAAsC,CAAC;QAC3C,MAAM,cAAc,GAAG,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,GAAG,aAAa,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACtF,2EAA2E;QAC3E,KAAK,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,MAAM,IAAI,GAAG,CAAC,KAAY,EAAE,MAAM,GAAG,KAAK,EAAE,EAAE;YAC5C,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,IAAI,cAAc;gBAAE,OAAO;YACnD,cAAc,GAAG,IAAI,CAAC;YACtB,aAAa,CAAC,KAAK,CAAC,CAAC;YACrB,IAAI,MAAM;gBAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YAC9B,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,CAAC;YAC3B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,IAAI,CAAC,aAAa,EAAE,KAAK,EAAE,CAAC;YAC5B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;YAC/B,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;YAC1B,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;YAC1B,KAAK,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBACpD,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;gBACzB,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACpC,CAAC;YACD,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;YAChC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAC9B,IAAI,CAAC,qBAAqB,EAAE,CAAC,KAAK,CAAC,CAAC;YACpC,IAAI,MAAM;gBAAE,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC;YACxC,uEAAuE;YACvE,6EAA6E;YAC7E,MAAM,UAAU,GAAG,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;YAC/C,IAAI,CAAC,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;gBACzB,sEAAsE;gBACtE,wEAAwE;gBACxE,MAAM,MAAM,GAAG,GAAG,EAAE,GAAG,IAAI,UAAU;oBAAE,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC9E,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACxC,CAAC;iBAAM,IAAI,UAAU;gBAAE,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC,CAAC;QAC7D,CAAC,CAAC;QACF,2EAA2E;QAC3E,6EAA6E;QAC7E,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1F,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE;YAC/B,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM;gBAAE,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE;YACxB,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,EAClD,IAAI,KAAK,CAAC,iBAAiB,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QACnF,CAAC,CAAC,CAAC;QACH,IAAI,YAAyB,CAAC;QAC9B,MAAM,OAAO,GAAG,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE,GAAG,YAAY,GAAG,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7G,IAAI,CAAC;YACH,wEAAwE;YACxE,2EAA2E;YAC3E,MAAM,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,EAAE,oBAAoB,EAAE,yBAAyB,CAAC,CAAC;YAC5G,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK;gBAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;YAChG,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;gBACvB,IAAI,CAAC,aAAa,CAAC,OAAO,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;gBAClE,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;YACnG,CAAC;YACD,MAAM,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,cAAc,EAAE,KAAK,CAAC,EAAE;gBAC7D,IAAI,CAAC,IAAI,CAAC,QAAQ;oBAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YAClC,CAAC,CAAC,CAAC;YACH,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK;gBAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QAClG,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtE,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,GAAI,KAAe,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC/E,CAAC;gBAAS,CAAC;YACT,QAAQ,GAAG,KAAK,CAAC;YACjB,KAAK,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YAC5C,IAAI,IAAI,CAAC,aAAa,KAAK,aAAa;gBAAE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QACtE,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,oBAAoB,CAAC,KAAmB,EAAE,cAA8B,EAAE,SAAiC;QACvH,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;QACpE,CAAC;QAED,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;iBAC7C,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;gBAChE,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;YACtC,CAAC,CAAC;iBACD,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;gBACtE,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,cAAc,CAAC;uBACzE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC;gBACjE,OAAO,QAAQ;oBACb,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,UAAmB,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,EAAE;oBAC5E,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,WAAoB,EAAE,EAAE,CAAC;YACrD,CAAC,CAAC;iBACD,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;gBAC/D,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,uBAAuB,EAAE,CAAC;oBAC1C,OAAO,EAAE,MAAM,EAAE,QAAiB,EAAE,CAAC;gBACvC,CAAC;gBACD,MAAM,SAAS,GAAG,mBAAmB,UAAU,EAAE,EAAE,CAAC;gBACpD,MAAM,SAAS,GAAG,WAAW,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ;oBAC7E,CAAC,CAAC,MAAM,CAAC,SAAS;oBAClB,CAAC,CAAC,EAAE,CAAC;gBACP,IAAI,SAAS;oBAAE,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;gBAC5D,OAAO,IAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;oBAC/D,IAAI,SAAS;wBAAE,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;gBAC/D,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YACL,MAAM,MAAM,GAAG,GAAG,CAAC,YAAY,CAC7B,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAA+B,EACzD,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAA+B,CAC3D,CAAC;YACF,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAC1C,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC;YAChC,KAAK,UAAU,CAAC,MAAM,CAAC,IAAI,CACzB,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC,EAClE,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAC9E,CAAC;YACF,MAAM,WAAW,CACf,OAAO,CAAC,IAAI,CAAC;gBACX,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE;oBACrD,eAAe,EAAE,GAAG,CAAC,gBAAgB;oBACrC,kBAAkB,EAAE;wBAClB,OAAO,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE;wBAC9C,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,uBAAuB;4BACtC,CAAC,CAAC,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE;4BAC/B,CAAC,CAAC,EAAE,CAAC;qBACR;oBACD,UAAU,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,EAAE;iBAChD,CAAC,EAAE,cAAc;aACnB,CAAC,EACF,2BAA2B,EAC3B,4BAA4B,CAC7B,CAAC;YACF,OAAO;QACT,CAAC;QAED,MAAM,UAAU,GAAG,uBAAuB,CACxC,IAAI,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC,EACrC,IAAI,mBAAmB,CAAC,KAAK,CAAC,KAAK,CAAC,CACrC,CAAC;QACF,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC,CAAC,CAAC;QAChF,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;QAClD,UAAU,CAAC,cAAc,CAAC,eAAe,EAAE,YAAY,CAAC,EAAE;YACxD,IAAI,CAAC,YAAY,IAAI,OAAO,YAAY,KAAK,QAAQ;gBAAE,OAAO;YAC9D,MAAM,KAAK,GAAG,YAAwD,CAAC;YACvE,IACE,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ;mBAChC,KAAK,CAAC,KAAK;mBACX,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,EAClC,CAAC;gBACD,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,KAAgC,CAAC,CAAC;YACzF,CAAC;QACH,CAAC,CAAC,CAAC;QACH,UAAU,CAAC,SAAS,CAAC,mBAAmB,EAAE,KAAK,EAAC,MAAM,EAAC,EAAE;YACvD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC1D,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;YAC/D,CAAC;YACD,MAAM,SAAS,GAAG,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/E,MAAM,QAAQ,GAAG,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5E,IAAI,CAAC,SAAS,IAAI,CAAC,QAAQ;gBAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;YACnF,MAAM,SAAS,GAAG,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ;gBACpD,CAAC,CAAC,MAAM,CAAC,SAAS;gBAClB,CAAC,CAAC,UAAU,QAAQ,EAAE,CAAC;YACzB,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YAC7C,IAAI,CAAC;gBACH,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,SAAS,EAAE;oBACtD,QAAQ;oBACR,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;wBACpC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC;wBAC9E,CAAC,CAAC,SAAS;oBACb,aAAa,EAAE,OAAO,MAAM,CAAC,aAAa,KAAK,SAAS;wBACtD,CAAC,CAAC,MAAM,CAAC,aAAa;wBACtB,CAAC,CAAC,SAAS;iBACd,CAAC,CAAC;YACL,CAAC;oBAAS,CAAC;gBACT,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YAChD,CAAC;QACH,CAAC,CAAC,CAAC;QACH,UAAU,CAAC,SAAS,CAAC,sBAAsB,EAAE,KAAK,EAAC,MAAM,EAAC,EAAE;YAC1D,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,qBAAqB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC7D,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;YAClE,CAAC;YACD,MAAM,SAAS,GAAG,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/E,MAAM,OAAO,GAAG,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YACzE,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;gBAC3C,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC;gBAC9E,CAAC,CAAC,EAAE,CAAC;YACP,MAAM,iBAAiB,GAAG,OAAO,MAAM,CAAC,iBAAiB,KAAK,QAAQ;gBACpE,CAAC,CAAC,MAAM,CAAC,iBAAiB;gBAC1B,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACrB,IAAI,CAAC,SAAS,IAAI,CAAC,OAAO;gBAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;YACrF,OAAO,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,SAAS,EAAE;gBACnD,OAAO;gBACP,WAAW,EAAE,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;gBACpF,OAAO;gBACP,iBAAiB;aAClB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,UAAU,CAAC,MAAM,EAAE,CAAC;QAEpB,MAAM,WAAW,CACf,OAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,SAAS,EAAE,EAAE,CAAC,EAAE,cAAc,CAAC,CAAC,EACrE,IAAI,CAAC,OAAO,CAAC,UAAU,KAAK,gBAAgB,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,oBAAoB,EACjG,qBAAqB,CACtB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,OAAO,CACX,MAAc,EACd,SAAkC,EAAE,EACpC,YAA2B,sBAAsB;QAEjD,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QAC5E,IAAI,SAAS,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAI,MAAM,EAAE,MAAM,CAAC,CAAC;QAC7E,OAAO,WAAW,CAChB,IAAI,CAAC,UAAU,CAAC,WAAW,CAAI,MAAM,EAAE,MAAM,CAAC,EAC9C,SAAS,EACT,MAAM,CACP,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,WAAW,CACf,SAAkB,EAClB,UAAwC,EAAE;QAE1C,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACjD,CAAC;QACD,MAAM,eAAe,GAAG,SAAS,IAAI,UAAU,EAAE,CAAC;QAClD,MAAM,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC;QAC/C,IAAI,CAAC,kBAAkB,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;QAClD,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC;QAC/D,IAAI,QAAgC,CAAC;QACrC,IAAI,CAAC;YACH,IAAI,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;YACrC,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;gBACvB,IAAI,OAAgB,CAAC;gBACrB,IAAI,CAAC;oBAAC,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;gBAAC,CAAC;gBACpD,MAAM,CAAC;oBAAC,kBAAkB,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,EAAE,aAAa,EAAE,mDAAmD,CAAC,CAAC;gBAAC,CAAC;gBAC/H,IAAI,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC;oBACpC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAuB,YAAY,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;oBAC7F,yBAAyB,CAAC,wBAAwB,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;wBACrG,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,eAAe;qBACpF,CAAC,CAAC;gBACL,CAAC;gBACD,MAAM,aAAa,GAAI,OAA0D,EAAE,MAAM,CAAC;gBAC1F,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC;uBAChG,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC3F,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,MAAM,CAAC;gBACrG,CAAC;gBACD,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACxC,CAAC;YACD,MAAM,MAAM,GAA4B;gBACtC,SAAS,EAAE,eAAe;gBAC1B,UAAU,EAAE,WAAW;gBACvB,gBAAgB,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO;gBACtC,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,eAAe,EAAE,MAAM;gBACvB,SAAS,EAAE,IAAI;gBACf,8BAA8B,EAAE,IAAI;gBACpC,gBAAgB,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB;gBACnD,mBAAmB,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,qBAAqB;gBACzD,oBAAoB,EAAE,UAAU;gBAChC,YAAY,EAAE,QAAQ;gBACtB,qEAAqE;gBACrE,2DAA2D;gBAC3D,oEAAoE;gBACpE,gBAAgB,EAAE;oBAChB,OAAO,EAAE,IAAI;oBACb,6BAA6B,EAAE,8CAA8C;oBAC7E,yBAAyB,EAAE,0CAA0C;iBACtE;gBACD,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC1E,CAAC;YACF,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,KAAK,gBAAgB,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,sBAAsB,CAAC;YACpH,KAAK,IAAI,OAAO,GAAG,CAAC,GAAI,OAAO,EAAE,EAAE,CAAC;gBAClC,IAAI,CAAC;oBACH,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAyB,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;oBAC/E,MAAM;gBACR,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,IAAI,CAAC,OAAO,CAAC,kBAAkB;wBAAE,MAAM,KAAK,CAAC;oBACjD,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,OAAO,IAAI,CAAC;wBAAE,MAAM,KAAK,CAAC;oBACrD,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;oBAC9B,IAAI,MAAM,CAAC,WAAW,KAAK,cAAc,IAAI,0EAA0E,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;wBACtI,kBAAkB,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;wBAC1E,MAAM,CAAC,WAAW,GAAG,SAAS,CAAC;oBACjC,CAAC;yBAAM,IAAI,MAAM,CAAC,eAAe,IAAI,oFAAoF,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;wBACxI,kBAAkB,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;wBACzE,OAAO,MAAM,CAAC,eAAe,CAAC;oBAChC,CAAC;;wBAAM,MAAM,KAAK,CAAC;gBACrB,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;gBACvB,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,QAAQ,CAAC;gBACrC,kBAAkB,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC3E,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC9B,CAAC;YACD,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC;YAC5B,MAAM,KAAK,CAAC;QACd,CAAC;QACD,MAAM,iBAAiB,GAAG,QAAQ,CAAC,SAAS,IAAI,eAAe,CAAC;QAChE,IAAI,iBAAiB,KAAK,eAAe,EAAE,CAAC;YAC1C,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,8CAA8C,iBAAiB,EAAE,CAAC,CAAC;QACrF,CAAC;QACD,MAAM,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;QACnD,IAAI,IAAI,CAAC,OAAO,CAAC,kBAAkB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YAC1D,KAAK,MAAM,KAAK,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAU,EAAE,CAAC;gBAC5D,IAAI,KAAK,KAAK,OAAO,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC;oBAAE,SAAS;gBACnG,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gBACtD,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gBACnD,IAAI,SAAS,IAAI,MAAM,IAAI,SAAS,KAAK,MAAM,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,iBAAiB,EAAE,CAAC;oBAC3G,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC;oBAC5B,MAAM,IAAI,KAAK,CAAC,sCAAsC,KAAK,2CAA2C,CAAC,CAAC;gBAC1G,CAAC;YACH,CAAC;QACH,CAAC;QACD,IAAI,CAAC;YAAC,MAAM,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,oDAAoD,CAAC,CAAC;QAC7G,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAAC,SAAiB;QAChD,IAAI,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QACjE,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC1D,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;QACrE,CAAC;QACD,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QAClE,IAAI,cAA2B,CAAC;QAChC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAO,cAAc,CAAC,EAAE;YACjD,cAAc,GAAG,cAAc,CAAC;QAClC,CAAC,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC;QACzD,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAClC,IAAI,UAAmC,CAAC;QACxC,MAAM,SAAS,GAAG,IAAI,OAAO,CAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,GAAG,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACrF,IAAI,CAAC,qBAAqB,GAAG,UAAU,CAAC;QACxC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,KAAK,CACjD,mBAAmB,SAAS,8GAA8G,CAC3I,CAAC,EAAE,uBAAuB,CAAC,CAAC;QAC7B,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;YAC1D,IAAI,IAAI,CAAC,QAAQ;gBAAE,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;YACjG,IAAI,CAAC,kBAAkB,GAAG,GAAG,EAAE;gBAC7B,cAAc,EAAE,CAAC;gBACjB,IAAI,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,IAAI;oBAAE,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBACzE,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;YACjC,CAAC,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,cAAc,EAAE,CAAC;YACjB,uEAAuE;YACvE,iEAAiE;YACjE,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;gBAClB,IAAI,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,IAAI;oBAAE,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC3E,CAAC,CAAC,CAAC;YACH,MAAM,KAAK,CAAC;QACd,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,IAAI,IAAI,CAAC,qBAAqB,KAAK,UAAU;gBAAE,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;QACnF,CAAC;IACH,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,SAAiB;QACzC,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;YACzB,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC;YAC1D,IAAI,OAAO;gBAAE,OAAO,OAAO,CAAC;YAC5B,OAAO,WAAW,CAChB,IAAI,OAAO,CAAoB,cAAc,CAAC,EAAE;gBAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC;gBACnE,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;gBAC5B,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YACjD,CAAC,CAAC,EACF,sBAAsB,EACtB,gCAAgC,CACjC,CAAC;QACJ,CAAC;QACD,OAAO,wBAAwB,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,uBAAuB,EAAE;YAC1E,SAAS;YACT,eAAe,EAAE,IAAI;YACrB,aAAa,EAAE,IAAI;YACnB,qBAAqB,EAAE,IAAI;SAC5B,CAAC,CAAC,CAAC;IACN,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,SAAiB,EACjB,IAAY,EACZ,KAAa;QAEb,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC5C,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;YAChD,OAAO,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACnD,CAAC;QACD,OAAO,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IACxD,CAAC;IAED,+EAA+E;IACvE,kBAAkB,CACxB,SAAiB,EAAE,KAAa,EAAE,cAAoC;QAEtE,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACxD,IAAI,QAAQ,EAAE,OAAO;YAAE,OAAO,QAAQ,CAAC,OAAO,CAAC;QAC/C,MAAM,OAAO,GAGT,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAChD,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,MAAM,WAAW,GAAG,GAAG,EAAE;YACvB,IAAI,IAAI,CAAC,QAAQ;gBAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;YACjE,IAAI,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,OAAO,EAAE,CAAC;gBAC5E,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;YAClD,CAAC;QACH,CAAC,CAAC;QACF,6EAA6E;QAC7E,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;YAClD,WAAW,EAAE,CAAC;YACd,IAAI,6BAA6B,CAAC,cAAc,CAAC,EAAE,CAAC;gBAClD,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;YACpE,CAAC;YACD,IAAI,WAAW,GAAG,cAAc,CAAC;YACjC,KAAK,IAAI,KAAK,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,0BAA0B,EAAE,KAAK,EAAE,EAAE,CAAC;gBACtF,WAAW,EAAE,CAAC;gBACd,IAAI,KAAK;oBAAE,OAAO,CAAC,IAAI,CAAC,kDAAkD,SAAS,UAAU,KAAK,IAAI,0BAA0B,EAAE,CAAC,CAAC;gBACpI,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;gBAC5B,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;gBAC/B,IAAI,MAAkD,CAAC;gBACvD,IAAI,YAAqB,CAAC;gBAC1B,IAAI,CAAC;oBAAC,MAAM,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;gBAAC,CAAC;gBAC3E,OAAO,KAAK,EAAE,CAAC;oBAAC,YAAY,GAAG,KAAK,CAAC;gBAAC,CAAC;gBACvC,WAAW,EAAE,CAAC;gBACd,qEAAqE;gBACrE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC;gBACxE,IAAI,OAAO,EAAE,CAAC;oBACZ,WAAW,GAAG,OAAO,CAAC;oBACtB,mEAAmE;oBACnE,qEAAqE;oBACrE,IAAI,YAAY,IAAI,kDAAkD,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;wBAAE,MAAM,YAAY,CAAC;oBACtH,IAAI,6BAA6B,CAAC,OAAO,CAAC,EAAE,CAAC;wBAC3C,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;oBACpE,CAAC;oBACD,SAAS;gBACX,CAAC;gBACD,IAAI,YAAY;oBAAE,MAAM,YAAY,CAAC;gBACrC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,cAAc,IAAI,MAAM,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;oBACrF,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAC;gBAC/F,CAAC;gBACD,IAAI,KAAK,IAAI,UAAU,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI,EAAE,CAAC;oBAChD,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;gBACzF,CAAC;gBACD,qEAAqE;gBACrE,uEAAuE;gBACvE,IAAI,UAAU;oBAAE,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;gBACrE,SAAS,GAAG,IAAI,CAAC;gBACjB,OAAO,MAAM,CAAC;YAChB,CAAC;YACD,MAAM,MAAM,GAAG,WAAW,EAAE,IAAI,EAAE,KAAK,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,mCAAmC,0BAA0B,aAAa,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,IAAI,2CAA2C,EAAE,CAAC,CAAC;QACpM,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;YACd,IAAI,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,OAAO;gBAAE,OAAO;YAC/D,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC1C,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YACpD,IAAI,SAAS;gBAAE,cAAc,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;QACtF,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC,OAAO,CAAC;IACzB,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAC7B,SAAiB,EAAE,IAAY,EAAE,KAAa;QAE9C,MAAM,QAAQ,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACjF,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrF,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;YACzB,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;YACpE,MAAM,IAAI,CAAC,aAAa,CACtB,SAAS,EACT,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,CACnB,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAChC;gBACE,SAAS;gBACT,MAAM,EAAE,CAAC;wBACP,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,IAAI,KAAK,MAAM;4BACnB,CAAC,CAAC,GAAG,WAAW,OAAO,yCAAyC,GAAG,OAAO,EAAE;4BAC5E,CAAC,CAAC,WAAW;qBAChB,CAAC;aACH,EACD,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,oCAAoC,CAAC,CAAC,CAAC,IAAI,CACjE,CACF,CAAC;YACF,MAAM,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;YAC3C,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;QAC/B,CAAC;QACD,sEAAsE;QACtE,0EAA0E;QAC1E,8DAA8D;QAC9D,MAAM,gBAAgB,GAAG,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,mBAAmB;YAC7E,CAAC,CAAC,MAAM,IAAI,CAAC,OAAO,CAA0B,0BAA0B,EAAE,EAAE,SAAS,EAAE,CAAC;YACxF,CAAC,CAAC,SAAS,CAAC;QACd,IAAI,gBAAgB,EAAE,CAAC;YACrB,0EAA0E;YAC1E,kEAAkE;YAClE,uEAAuE;YACvE,0EAA0E;YAC1E,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAChC,oBAAoB,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;YACvC,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,gBAAgB,CAAC,OAAO,CAAC,CAAC;YAC/E,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,KAAK,KAAK,UAAU;gBAAE,MAAM,IAAI,KAAK,CAAC,yGAAyG,CAAC,CAAC;YAC7K,IAAI,IAAI,CAAC,QAAQ;gBAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QACnE,CAAC;QACD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAC/B,yBAAyB,EACzB,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,EAC1B,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,oCAAoC,CAAC,CAAC,CAAC,sBAAsB,CACnF,CAAC;YACF,IAAI,gBAAgB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACvC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAA0B,0BAA0B,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;gBACrG,MAAM,IAAI,GAAG,CAAC,SAAS,EAAE,aAAa,EAAE,iBAAiB,CAAU,CAAC;gBACpE,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,gBAAgB,CAAC,GAAG,CAAC,KAAK,QAAQ;uBACrE,gBAAgB,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC3C,IAAI,OAAO,EAAE,CAAC;oBACZ,IAAI,OAAO,gBAAgB,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;wBAC9E,MAAM,IAAI,KAAK,CAAC,4EAA4E,CAAC,CAAC;oBAChG,CAAC;oBACD,MAAM,IAAI,CAAC,OAAO,CAAC,wBAAwB,EAAE;wBAC3C,SAAS,EAAE,OAAO,EAAE,gBAAgB,CAAC,OAAO;wBAC5C,GAAG,CAAC,OAAO,gBAAgB,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,gBAAgB,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC1G,GAAG,CAAC,OAAO,gBAAgB,CAAC,eAAe,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,gBAAgB,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBACvH,CAAC,CAAC;oBACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAA0B,0BAA0B,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;oBACxG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,gBAAgB,CAAC,GAAG,CAAC,KAAK,QAAQ,IAAI,gBAAgB,CAAC,GAAG,CAAC,KAAK,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;wBAC3G,MAAM,IAAI,KAAK,CAAC,0FAA0F,CAAC,CAAC;oBAC9G,CAAC;gBACH,CAAC;YACH,CAAC;YACD,OAAO,OAAO,IAAI,MAAM,CAAC,IAAI,KAAK,cAAc;gBAC9C,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,GAAG,OAAO,EAAE,EAAE;gBACrD,CAAC,CAAC,MAAM,CAAC;QACb,CAAC;gBAAS,CAAC;YACT,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,aAAa;gBAAE,oCAAoC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACzG,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,SAAiB,EAAE,IAA0C;QACzE,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;YACzB,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC9C,MAAM,MAAM,GAAG,KAAK,EAAE,KAAK,EAAE,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,EAAE,EAAE;mBAC7F,IAAI,CAAC;YACV,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;YAChF,IAAI,KAAK,EAAE,KAAK;gBAAE,KAAK,CAAC,KAAK,CAAC,aAAa,GAAG,MAAM,CAAC;YACrD,OAAO;QACT,CAAC;QACD,MAAM,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5D,IAAI,IAAI,KAAK,WAAW;YAAE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;;YACtD,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,SAAiB;QAC7B,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;YACzB,OAAO,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;QACjF,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAuC,kBAAkB,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;QACzG,IAAI,IAAI,KAAK,WAAW;YAAE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;aACtD,IAAI,IAAI,KAAK,aAAa,IAAI,IAAI,KAAK,MAAM;YAAE,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACxF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,SAAiB;QACpC,IAAI,IAAI,CAAC,aAAa,EAAE;YAAE,OAAO;QACjC,MAAM,IAAI,CAAC,OAAO,CAAC,6BAA6B,EAAE;YAChD,SAAS;YACT,IAAI,EAAE,WAAW;YACjB,MAAM,EAAE,KAAK;SACd,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,IAAI,CACR,SAAiB,EACjB,MAAc,EACd,aAAqB,EACrB,WAAyE;QAEzE,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC5C,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;YACzB,MAAM,IAAI,CAAC,aAAa,CACtB,SAAS,EACT,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,CACnB,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAChC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,IAAI,aAAa,EAAE,CAAC,EAAE,EACxE,IAAI,CACL,CACF,CAAC;YACF,qEAAqE;YACrE,wEAAwE;YACxE,wEAAwE;YACxE,MAAM,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;YAC3C,OAAO;QACT,CAAC;QACD,MAAM,IAAI,CAAC,aAAa,CACtB,SAAS,EACT,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAO,cAAc,EAAE;YACvC,SAAS;YACT,MAAM;YACN,aAAa;YACb,IAAI,EAAE,IAAI;YACV,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAChD,EAAE,IAAI,CAAC,CACT,CAAC;QACF,MAAM,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;IAC7C,CAAC;IAED,eAAe,CACb,SAAiB,EACjB,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,eAAe,CAAC;QAE1D,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;QAClC,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAC5C,IAAI,UAAU,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,GAAG,EAAE,CAAC;YAAE,OAAO,IAAI,CAAC;QAChF,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QAC7C,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;YACtD,OAAO,OAAO,IAAI,IAAI,CAAC;QACzB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,SAAiB;QAC3B,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACzC,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACvD,IAAI,OAAO;YAAE,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;QACtC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC1C,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACvC,IAAI,CAAC;YACH,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;YACvC,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;gBACzB,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;YACxE,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC;oBACH,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;wBACrC,MAAM,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,mBAAmB,CAAC,CAAC;wBAChG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;oBACtC,CAAC;gBACH,CAAC;wBAAS,CAAC;oBACT,MAAM,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,SAAS,EAAE,EAAE,mBAAmB,CAAC,CAAC;gBAC1E,CAAC;YACH,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC,CAAC;QAClF,CAAC;IACH,CAAC;IAED,KAAK,CAAC,kBAAkB,CACtB,SAAiB,EACjB,SAAiB,EACjB,QAAqC;QAErC,IAAI,IAAI,CAAC,aAAa,EAAE;YAAE,OAAO,KAAK,CAAC;QACvC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAwB,mCAAmC,EAAE;YAC5F,SAAS;YACT,SAAS;YACT,QAAQ;SACT,CAAC,CAAC;QACH,IAAI,MAAM,CAAC,OAAO,KAAK,IAAI;YAAE,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC3E,OAAO,MAAM,CAAC,OAAO,KAAK,IAAI,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,SAAiB;QAC3C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACzC,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACvD,IAAI,OAAO;YAAE,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;QACtC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC1C,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;YACzB,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YAC5B,OAAO;QACT,CAAC;QACD,MAAM,IAAI,CAAC,OAAO,CAAC,uCAAuC,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;IAC7E,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,SAAiB;QACpC,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;YACzB,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,EAAE,mBAAmB,CAAC,CAAC;YAC7F,CAAC;YAAC,MAAM,CAAC;gBACP,0EAA0E;YAC5E,CAAC;YACD,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACnC,OAAO;QACT,CAAC;QACD,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;QACvD,CAAC;QAAC,MAAM,CAAC;YACP,sEAAsE;QACxE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,SAAiB;QACnC,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,KAAK,gBAAgB;YAAE,OAAO;QACzD,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,IAAI;QACF,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO,IAAI,CAAC,WAAW,CAAC;QAC9C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE;YAAE,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;QACjF,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;QAChC,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAC7B,IAAI,CAAC,mBAAmB,GAAG,IAAI,0BAA0B,EAAE,CAAC;QAC5D,IAAI,CAAC,aAAa,EAAE,CAAC,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC,CAAC;QACrE,IAAI,CAAC,qBAAqB,EAAE,CAAC,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC,CAAC;QACtG,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;YAC9C,IAAI,IAAI,CAAC,WAAW,KAAK,OAAO;gBAAE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAC5D,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;QAC3B,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,KAAK,CAAC,WAAW;QACvB,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACnC,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;QACzC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,OAAiC,CAAC;QACtC,MAAM,MAAM,GAAG,KAAK,EAAE,GAAG,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,IAAI,KAAK,CAAC,UAAU,KAAK,IAAI,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,UAAU;YACnH,CAAC,CAAC,IAAI,OAAO,CAAO,aAAa,CAAC,EAAE,GAAG,OAAO,GAAG,aAAa,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;YAChG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACtB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAElB,2EAA2E;QAC3E,uEAAuE;QACvE,wEAAwE;QACxE,mEAAmE;QACnE,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,KAAK,gBAAgB,IAAI,QAAQ,EAAE,KAAK,OAAO,IAAI,KAAK,EAAE,GAAG;eACvG,KAAK,CAAC,QAAQ,KAAK,IAAI,IAAI,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;QAC1D,IAAI,eAAe,EAAE,CAAC;YACpB,sEAAsE;YACtE,2EAA2E;YAC3E,UAAU,EAAE,OAAO,EAAE,CAAC;YACtB,MAAM,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE;gBAChC,IAAI,CAAC;oBACH,QAAQ,CAAC,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,EAC9D,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC1E,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,EAAE,CAAC,CAAC,iDAAiD;gBAC9D,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAED,IAAI,aAAa;YAAE,aAAa,CAAC,KAAK,EAAE,CAAC;QAEzC,IAAI,UAAU,IAAI,CAAC,eAAe,EAAE,CAAC;YACnC,IAAI,CAAC;gBACH,MAAM,WAAW,CACf,UAAU,CAAC,WAAW,CAAC,kBAAkB,EAAE,EAAE,CAAC,EAC9C,mBAAmB,EACnB,sBAAsB,CACvB,CAAC;YACJ,CAAC;YAAC,MAAM,CAAC;gBACP,mDAAmD;YACrD,CAAC;YACD,UAAU,CAAC,OAAO,EAAE,CAAC;QACvB,CAAC;QACD,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM;YAAE,KAAK,CAAC,IAAI,EAAE,CAAC;QACzC,yEAAyE;QACzE,kEAAkE;QAClE,IAAI,CAAC;YAAC,MAAM,WAAW,CAAC,MAAM,EAAE,mBAAmB,EAAE,0BAA0B,CAAC,CAAC;QAAC,CAAC;gBAC3E,CAAC;YACP,IAAI,OAAO;gBAAE,KAAK,EAAE,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACrD,IAAI,CAAC,iBAAiB,CAAC,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC;QAC/D,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAC1B,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;QAC/B,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAC1B,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC;IAC9B,CAAC;IAED,SAAS;QACP,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACrE,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,KAAK,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;IAChG,CAAC;IAEO,aAAa;QACnB,OAAO,IAAI,CAAC,SAAS,KAAK,KAAK,CAAC;IAClC,CAAC;IAEO,wBAAwB,CAAC,SAAiB,EAAE,KAA8B;QAChF,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,SAAS,EAAE,KAAK,CAAC;YAAE,OAAO;QAC/D,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC5C,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC5C,MAAM,IAAI,GAAG,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9D,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QAC3D,MAAM,SAAS,GAAG,OAAO,IAAI,EAAE,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;QAEnF,IAAI,IAAI,KAAK,sBAAsB,IAAI,SAAS,EAAE,CAAC;YACjD,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC/C,CAAC;aAAM,IAAI,IAAI,KAAK,sBAAsB,IAAI,SAAS,EAAE,CAAC;YACxD,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAChD,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAClD,CAAC;IAEO,oBAAoB,CAAC,SAAiB,EAAE,KAA0B;QACxE,IAAI,mBAAmB,CAAC,KAAK,CAAC;YAAE,OAAO;QACvC,IAAI,KAAK,CAAC,IAAI,KAAK,sBAAsB,EAAE,CAAC;YAC1C,IAAI,KAAK,CAAC,IAAI,EAAE,OAAO,KAAK,WAAW;gBAAE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;iBACrE,IAAI,KAAK,CAAC,IAAI,EAAE,OAAO,KAAK,aAAa,IAAI,KAAK,CAAC,IAAI,EAAE,OAAO,KAAK,MAAM;gBAAE,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACxH,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,uBAAuB;YAAE,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAClF,CAAC;IAEO,0BAA0B,CAAC,SAAiB,EAAE,KAA0B;QAC9E,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,qBAAqB,CAAC;YAAE,OAAO,IAAI,CAAC;QAChE,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,SAAS,CAAC;YAAE,OAAO,KAAK,CAAC;QAC5E,MAAM,KAAK,GAAG,iBAAiB,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC;QACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACnE,OAAO,CAAC,KAAK,CAAC,6BAA6B,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI;YAC5F,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;QAC/E,IAAI,CAAC,QAAQ;YAAE,OAAO,KAAK,CAAC;QAC5B,KAAK,CAAC,mBAAmB,GAAG,QAAQ,CAAC,MAAM,CAAC;QAC5C,KAAK,CAAC,uBAAuB,GAAG,QAAQ,CAAC,IAAI,CAAC;QAC9C,IAAI,QAAQ,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC;QAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,IAAI,GAAG,EAAU,CAAC;QACxE,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,KAAK,2BAA2B,IAAI,KAAK,CAAC,IAAI,EAAE,OAAO,KAAK,KAAK,CAAC;QAC3F,MAAM,OAAO,GAAG,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACtF,IAAI,OAAO,IAAI,KAAK,CAAC,IAAI,KAAK,0BAA0B,EAAE,CAAC;YACzD,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;YAC7C,OAAO,CAAC,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;YAChD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,MAAM,IAAI,KAAK,KAAK,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ;eAClE,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;YACjE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACnB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YAC5C,KAAK,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;gBAC/D,IAAI,IAAI,CAAC,QAAQ,IAAI,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBAAE,OAAO;gBACxE,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,SAAS,EAAE;oBACvC,IAAI,EAAE,2BAA2B;oBACjC,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;iBACxE,CAAC,CAAC;gBACH,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACnG,KAAK,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YAC7C,CAAC,CAAC,CAAC;YACH,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,0BAA0B;YAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;;YAC5D,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAC5C,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC,CAAC;YACvF,KAAK,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC7C,CAAC;aAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACxB,cAAc,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;QACvE,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,aAAa,CACnB,SAAiB,EACjB,cAAgC;QAEhC,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACtC,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,0CAA0C,SAAS,EAAE,CAAC,CAAC,CAAC;QAC1F,CAAC;QAED,OAAO,IAAI,OAAO,CAAI,CAAC,cAAc,EAAE,aAAa,EAAE,EAAE;YACtD,MAAM,MAAM,GAAiB;gBAC3B,mBAAmB,EAAE,IAAI,GAAG,EAAE;gBAC9B,OAAO,EAAE,KAAK;gBACd,SAAS,EAAE,GAAG,EAAE,GAAE,CAAC;gBACnB,MAAM,EAAE,aAAa;gBACrB,IAAI,EAAE,KAAK,CAAC,EAAE;oBACZ,IAAI,MAAM,CAAC,OAAO;wBAAE,OAAO;oBAC3B,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;oBACtB,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;oBAC1C,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACvB,CAAC;aACF,CAAC;YACF,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YAE1C,IAAI,eAAe,GAAG,KAAK,CAAC;YAC5B,IAAI,YAAe,CAAC;YACpB,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,eAAe,CAAC,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;YAC9H,IAAI,IAAI,CAAC,aAAa,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;gBAClF,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;gBACpD,KAAK,CAAC,iBAAiB,GAAG,IAAI,CAAC;gBAC/B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YACzC,CAAC;YACD,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,kBAAkB,CACjE,WAAW,EACX,KAAK,CAAC,EAAE;gBACN,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;gBAC5C,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;gBAC9B,IAAI,mBAAmB,CAAC,KAAK,CAAC;oBAAE,OAAO;gBACvC,IAAI,KAAK,CAAC,IAAI,KAAK,sBAAsB,IAAI,IAAI,CAAC,SAAS;oBAAE,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC/G,IAAI,KAAK,CAAC,IAAI,KAAK,sBAAsB,IAAI,IAAI,CAAC,SAAS;oBAAE,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;gBAChH,oEAAoE;gBACpE,iEAAiE;gBACjE,oEAAoE;gBACpE,IAAI,KAAK,CAAC,IAAI,KAAK,uBAAuB,EAAE,CAAC;oBAC3C,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;gBAClD,CAAC;gBACD,qEAAqE;gBACrE,qEAAqE;gBACrE,uEAAuE;gBACvE,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,qBAAqB,CAAC,EAAE,CAAC;oBAC3E,IAAI,CAAC,wBAAwB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;gBAClD,CAAC;gBACD,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;oBAAE,OAAO;gBAClC,IAAI,KAAK,CAAC,IAAI,KAAK,0BAA0B,IAAI,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,qBAAqB,CAAC,EAAE,CAAC;oBAC/F,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;oBACpD,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;oBAC1B,KAAK,CAAC,iBAAiB,GAAG,IAAI,CAAC;oBAC/B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;oBACvC,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC5D,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,mBAAmB,IAAI,IAAI,CAAC,KAAK,KAAK,cAAc,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;oBAC/F,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,yBAAyB,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBACpH,CAAC;YACH,CAAC,CACF,CAAC,CAAC,CAAC,SAAS,CAAC;YACd,MAAM,MAAM,GAAG,GAAG,EAAE;gBAClB,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,mBAAmB,CAAC,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC;uBACtF,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,IAAI,IAAI,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC;oBAAE,OAAO;gBACnG,wEAAwE;gBACxE,sEAAsE;gBACtE,qEAAqE;gBACrE,IAAI,CAAC,eAAe,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,OAAO,EAAE,QAAQ,EAAE,CAAC;oBAChE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;oBACtB,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;oBAC1C,cAAc,CAAC,YAAY,CAAC,CAAC;gBAC/B,CAAC;YACH,CAAC,CAAC;YACF,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,CAAC,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;gBAC7E,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,CAAC;YAChC,CAAC;YACD,MAAM,CAAC,SAAS,GAAG,GAAG,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;YAExD,IAAI,OAAmB,CAAC;YACxB,IAAI,CAAC;gBAAC,OAAO,GAAG,cAAc,EAAE,CAAC;YAAC,CAAC;YACnC,OAAO,KAAK,EAAE,CAAC;gBAAC,MAAM,CAAC,IAAI,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAAC,OAAO;YAAC,CAAC;YACjG,OAAO,CAAC,IAAI,CACV,KAAK,CAAC,EAAE;gBACN,IAAI,MAAM,CAAC,OAAO;oBAAE,OAAO;gBAC3B,YAAY,GAAG,KAAK,CAAC;gBACrB,eAAe,GAAG,IAAI,CAAC;gBACvB,OAAO,EAAE,IAAI,EAAE,CAAC;gBAChB,MAAM,EAAE,CAAC;YACX,CAAC,EACD,KAAK,CAAC,EAAE;gBACN,IAAI,MAAM,CAAC,OAAO;oBAAE,OAAO;gBAC3B,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;gBACnE,IAAI,UAAU,EAAE,CAAC;oBACf,kEAAkE;oBAClE,kEAAkE;oBAClE,KAAK,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;oBAChF,OAAO;gBACT,CAAC;gBACD,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;gBACtB,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;gBAC1C,aAAa,CAAC,KAAK,CAAC,CAAC;YACvB,CAAC,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,iBAAiB,CAAC,SAAiB,EAAE,SAAiB;QAC5D,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACjD,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO;YAAE,OAAO;QACtC,MAAM,CAAC,mBAAmB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC5C,CAAC;IAEO,kBAAkB,CAAC,SAAiB,EAAE,SAAiB;QAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACjD,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO;YAAE,OAAO;QACtC,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC7C,cAAc,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACrE,CAAC;IAEO,sBAAsB,CAAC,SAAiB;QAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACjD,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO;YAAE,OAAO;QACtC,MAAM,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC;IACrC,CAAC;IAEO,iBAAiB,CAAC,SAAiB,EAAE,MAAoB;QAC/D,IAAI,MAAM,CAAC,YAAY;YAAE,aAAa,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC5D,MAAM,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC;QACnC,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,MAAM,EAAE,CAAC;YACjD,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAEO,iBAAiB,CAAC,KAAY;QACpC,KAAK,MAAM,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5E,CAAC;IAEO,KAAK,CAAC,cAAc,CAC1B,SAAkB,EAClB,UAAwC,EAAE;QAE1C,MAAM,MAAM,GAAG,SAAS,IAAI,UAAU,EAAE,CAAC;QACzC,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACtC,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACzC,IAAI,eAAmC,CAAC;QACxC,IAAI,CAAC;YACH,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;gBACpD,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC;gBAC5B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YACzC,CAAC;YACD,MAAM,QAAQ,GAAG,SAAS;gBACxB,CAAC,CAAC,MAAM,IAAI,CAAC,UAAU,CACrB,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAC9B,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,EACxD,2BAA2B,CAC5B;gBACD,CAAC,CAAC,MAAM,IAAI,CAAC,UAAU,CACrB,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAC7B,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,EAC7C,2BAA2B,CAC5B,CAAC;YACJ,eAAe,GAAG,SAAS,IAAK,QAAmC,CAAC,SAAS,CAAC;YAC9E,IAAI,CAAC,eAAe;gBAAE,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;YACxF,IAAI,CAAC,sBAAsB,GAAG,eAAe,CAAC;YAC9C,IAAI,IAAI,CAAC,aAAa;gBAAE,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,eAAe,CAAC;YACvE,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;YAC1D,IAAI,QAAQ,IAAI,OAAO,IAAI,QAAQ;gBAAE,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;YAClE,IAAI,QAAQ,IAAI,eAAe,IAAI,QAAQ;gBAAE,KAAK,CAAC,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC;YAC1F,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;YAC7C,MAAM,IAAI,CAAC,sBAAsB,CAAC,eAAe,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;YACnE,KAAK,CAAC,cAAc,GAAG,KAAK,CAAC;YAC7B,MAAM,IAAI,CAAC,oBAAoB,CAAC,eAAe,CAAC,CAAC;YACjD,OAAO,eAAe,CAAC;QACzB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,eAAe;gBAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;iBACzD,IAAI,SAAS;gBAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACvD,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;gBACvB,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,QAAQ,CAAC;gBACrC,kBAAkB,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC3E,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC9B,CAAC;YACD,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC;YAC5B,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,sBAAsB,CAClC,SAAiB,EACjB,KAAsB,EACtB,OAAqC;QAErC,MAAM,SAAS,GAAG;YAChB;gBACE,KAAK,EAAE,OAAO;gBACd,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,UAAU,EAAE,CAAC,OAAO,CAAC;gBACrB,WAAW,EAAE,QAAQ;aACtB;YACD;gBACE,KAAK,EAAE,cAAc;gBACrB,KAAK,EAAE,OAAO,CAAC,WAAW;gBAC1B,UAAU,EAAE,CAAC,cAAc,CAAC;gBAC5B,WAAW,EAAE,UAAU;gBACvB,eAAe,EAAE,IAAI;aACtB;YACD;gBACE,KAAK,EAAE,kBAAkB;gBACzB,KAAK,EAAE,OAAO,CAAC,eAAe;gBAC9B,UAAU,EAAE,CAAC,eAAe,CAAC;gBAC7B,WAAW,EAAE,wBAAwB;aACtC;SACF,CAAC;QAEF,KAAK,MAAM,MAAM,IAAI,SAAS,EAAE,CAAC;YAC/B,IAAI,CAAC,MAAM,CAAC,KAAK;gBAAE,SAAS;YAC5B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,KAAK,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC1G,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,aAAa,EACzD,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;YACtG,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,IAAI,IAAI,CAAC,aAAa;oBAAE,kBAAkB,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,EAAE,aAAa,EACjF,gCAAgC,MAAM,CAAC,KAAK,uBAAuB,CAAC,CAAC;gBACvE,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;oBAC5B,OAAO,CAAC,IAAI,CAAC,oDAAoD,MAAM,CAAC,KAAK,eAAe,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;gBAC9G,CAAC;gBACD,SAAS;YACX,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACvH,IAAI,IAAI,CAAC,aAAa,IAAI,KAAK,KAAK,QAAQ;gBAAE,IAAI,CAAC,aAAa,CAAC,gBAAgB,GAAG,MAAM,CAAC;YAC3F,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;gBACnC,IAAI,KAAK,KAAK,OAAO;oBAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,MAAM,CAAC,KAAK,kBAAkB,CAAC,CAAC;gBAC/F,MAAM,QAAQ,GAAG,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS;oBAC5E,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC3E,IAAI,QAAQ,IAAI,QAAQ,KAAK,MAAM,CAAC,YAAY,EAAE,CAAC;oBACjD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CACpC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAC/F,CAAC;oBACF,KAAK,CAAC,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC;gBAC/C,CAAC;gBACD,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;oBACvB,kBAAkB,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE,aAAa,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,kBAAkB,CAAC,CAAC;oBAC1H,MAAM,MAAM,GAAG,KAAK,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC;oBAC5E,IAAI,QAAQ,IAAI,MAAM,EAAE,IAAI,KAAK,QAAQ;wBAAE,oBAAoB,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,EAAE,MAAM,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;gBACrI,CAAC;gBACD,SAAS;YACX,CAAC;YACD,IAAI,MAAM,CAAC,YAAY,KAAK,MAAM,CAAC,KAAK,EAAE,CAAC;gBACzC,IAAI,CAAC;oBACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CACpC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CACnG,CAAC;oBACF,KAAK,CAAC,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC;gBAC/C,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,KAAK,KAAK,OAAO,IAAI,CAAC,wDAAwD,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;wBAAE,MAAM,KAAK,CAAC;oBAC3I,kBAAkB,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC9E,CAAC;YACH,CAAC;YACD,MAAM,MAAM,GAAG,KAAK,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC;YAC5E,IAAI,IAAI,CAAC,aAAa,IAAI,MAAM,EAAE,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACpD,oBAAoB,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,EAAE,MAAM,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;YAC1F,CAAC;QACH,CAAC;IACH,CAAC;IAEO,mBAAmB,CACzB,OAAqD,EACrD,cAAkC,EAClC,UAAoB,EACpB,WAAmB;QAEnB,IAAI,IAAsE,CAAC;QAC3E,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,KAAK,MAAM,MAAM,IAAI,OAAO,IAAI,EAAE,EAAE,CAAC;YACnC,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ;gBAAE,SAAS;YACvC,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAC7C,SAAS,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAC7C,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC7B,IAAI,cAAc,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC;gBAAE,SAAS;YAC/E,MAAM,QAAQ,GAAG,GAAG,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YAC/C,MAAM,KAAK,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;kBAC9C,CAAC,MAAM,CAAC,QAAQ,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACtE,IAAI,KAAK,GAAG,SAAS,EAAE,CAAC;gBACtB,IAAI,GAAG,MAAM,CAAC;gBACd,SAAS,GAAG,KAAK,CAAC;YACpB,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,KAAK,CAAC,UAAU,CACtB,MAAc,EACd,MAA+B,EAC/B,YAA2B,sBAAsB;QAEjD,IAAI,CAAC,IAAI,CAAC,aAAa;YAAE,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QACtF,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAA6B,MAAM,EAAE,MAAM,CAAC,CAAC;QACtF,CAAC;QACD,OAAO,WAAW,CAChB,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAA6B,MAAM,EAAE,MAAM,CAAC,EAC5E,SAAS,EACT,MAAM,CACP,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,SAAS,CAAC,MAAc,EAAE,MAA+B;QACrE,IAAI,CAAC,IAAI,CAAC,aAAa;YAAE,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QACtF,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAA0B,MAAM,EAAE,MAAM,CAAC,CAAC;IACjF,CAAC;IAEO,sBAAsB,CAAC,YAAqC;QAClE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,YAAY,CAAC;QAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QACpD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAEvC,QAAQ,MAAM,CAAC,aAAa,EAAE,CAAC;YAC7B,KAAK,2BAA2B,CAAC,CAAC,CAAC;gBACjC,MAAM,QAAQ,GAAG,oBAAoB,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;gBAChE,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;gBAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBACtD,IAAI,OAAO,EAAE,CAAC;oBACZ,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;oBACzC,KAAK,MAAM,cAAc,IAAI,OAAO;wBAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;gBACjE,CAAC;gBACD,MAAM;YACR,CAAC;YACD,KAAK,qBAAqB;gBACxB,IAAI,KAAK,CAAC,KAAK;oBAAE,KAAK,CAAC,KAAK,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;;oBAC7D,KAAK,CAAC,KAAK,GAAG,EAAE,aAAa,EAAE,MAAM,CAAC,aAAa,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC;gBAC/E,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE;oBAC3B,IAAI,EAAE,sBAAsB;oBAC5B,IAAI,EAAE,EAAE,OAAO,EAAE,gBAAgB,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE;iBAC1D,CAAC,CAAC;gBACH,MAAM;YACR,KAAK,sBAAsB;gBACzB,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;oBAChD,MAAM,KAAK,GAAG,CAAC,OAAqD,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE;wBACvH,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;qBAC/I,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC7D,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;oBAC5C,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;oBACzC,IAAI,QAAQ,KAAK,IAAI;wBAAE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;gBACrD,CAAC;gBACD,KAAK,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;gBAC3C,MAAM;YACR,KAAK,mBAAmB,CAAC,CAAC,CAAC;gBACzB,IAAI,KAAK,CAAC,iBAAiB;oBAAE,MAAM;gBACnC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,KAAK,aAAa;oBAC1C,CAAC,CAAC,0BAA0B;oBAC5B,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,WAAW;wBAC7B,CAAC,CAAC,6BAA6B;wBAC/B,CAAC,CAAC,2BAA2B,CAAC;gBAClC,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE;oBAC3B,IAAI;oBACJ,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE;iBACrD,CAAC,CAAC;gBACH,MAAM;YACR,CAAC;YACD,KAAK,cAAc;gBACjB,mEAAmE;gBACnE,mEAAmE;gBACnE,IAAI,CAAC,KAAK,CAAC,cAAc,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;oBAC/D,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBACtG,CAAC;gBACD,IAAI,KAAK,CAAC,YAAY;oBAAE,MAAM;gBAC9B,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE;oBAC3B,IAAI,EAAE,sBAAsB;oBAC5B,IAAI,EAAE;wBACJ,IAAI,EAAE,MAAM,CAAC,IAAI;wBACjB,IAAI,EAAE,MAAM,CAAC,IAAI;wBACjB,IAAI,EAAE,MAAM,CAAC,IAAI;qBAClB;iBACF,CAAC,CAAC;gBACH,MAAM;YACR,KAAK,qBAAqB,CAAC;YAC3B,KAAK,qBAAqB;gBACxB,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oBACnC,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE;wBAC3B,IAAI,EAAE,MAAM,CAAC,aAAa,KAAK,qBAAqB;4BAClD,CAAC,CAAC,yBAAyB;4BAC3B,CAAC,CAAC,2BAA2B;wBAC/B,IAAI,EAAE,EAAE,YAAY,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE;qBAC5C,CAAC,CAAC;gBACL,CAAC;gBACD,MAAM;YACR,KAAK,WAAW,CAAC,CAAC,CAAC;gBACjB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC;gBACzC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;gBAC/C,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE;oBAC3B,IAAI,EAAE,mBAAmB;oBACzB,IAAI,EAAE;wBACJ,YAAY,EAAE,CAAC;gCACb,UAAU,EAAE,MAAM,CAAC,UAAU;gCAC7B,IAAI;gCACJ,SAAS,EAAE,MAAM,CAAC,QAAQ;gCAC1B,gBAAgB,EAAE,MAAM,CAAC,KAAK;6BAC/B,CAAC;qBACH;iBACF,CAAC,CAAC;gBACH,MAAM;YACR,CAAC;YACD,KAAK,kBAAkB;gBACrB,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;oBAChE,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE;wBAC3B,IAAI,EAAE,yBAAyB;wBAC/B,IAAI,EAAE;4BACJ,UAAU,EAAE,MAAM,CAAC,UAAU;4BAC7B,QAAQ,EAAE,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC;4BACjE,OAAO,EAAE,MAAM,CAAC,MAAM,KAAK,WAAW;4BACtC,MAAM,EAAE,EAAE,OAAO,EAAE,sBAAsB,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE;4BAC7D,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,QAAQ;gCAC/B,CAAC,CAAC,EAAE,OAAO,EAAE,sBAAsB,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,uBAAuB,EAAE;gCAClF,CAAC,CAAC,SAAS;yBACd;qBACF,CAAC,CAAC;gBACL,CAAC;gBACD,MAAM;QACV,CAAC;IACH,CAAC;IAEO,YAAY,CAAC,SAAiB,EAAE,KAA8B;QACpE,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,cAAc;YAAE,OAAO;QAC5D,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,SAAS,EAAE,KAAK,CAAC;YAAE,OAAO;QAC/D,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC5C,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAClD,CAAC;CACF;AAED,SAAS,gBAAgB,CAAC,MAAe;IACvC,MAAM,UAAU,GAAG,MAAM,EAAE,WAAW,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9E,IAAI,UAAU,KAAK,MAAM;QAAE,OAAO,MAAM,CAAC;IACzC,IAAI,UAAU,KAAK,WAAW;QAAE,OAAO,WAAW,CAAC;IACnD,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAc;IAC5C,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,KAAK,IAAI,IAAI;QAAE,OAAO,EAAE,CAAC;IAC7B,IAAI,CAAC;QAAC,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IAAC,CAAC;AACvE,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,MAA8B;IACjE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,OAAO,EAAE,CAAC;IACtC,MAAM,UAAU,GAAsB,EAAE,CAAC;IACzC,KAAK,MAAM,SAAS,IAAI,kBAAkB,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;YACnC,MAAM,IAAI,GAAG,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;YAC1C,OAAO,IAAI,KAAK,SAAS,IAAI,CAAC,SAAS,KAAK,MAAM,IAAI,IAAI,KAAK,WAAW,CAAC,CAAC;QAC9E,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,MAAM;YAAE,SAAS;QACtB,UAAU,CAAC,IAAI,CAAC;YACd,EAAE,EAAE,WAAW,SAAS,EAAE;YAC1B,IAAI,EAAE,SAAS;YACf,UAAU,EAAE,IAAI,SAAS,EAAE;YAC3B,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,EAAE;YACrC,IAAI,EAAE,SAAS;SAChB,CAAC,CAAC;IACL,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,KAAc;IACrD,MAAM,MAAM,GAAI,KAAwC,EAAE,QAAQ,CAAC;IACnE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,OAAO,EAAE,CAAC;IAEtC,MAAM,UAAU,GAAsB,EAAE,CAAC;IACzC,KAAK,MAAM,SAAS,IAAI,kBAAkB,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;YACnC,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ;gBAAE,OAAO,KAAK,CAAC;YAC/D,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACzF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,SAAS,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,MAAM;YAAE,SAAS;QACtB,UAAU,CAAC,IAAI,CAAC;YACd,EAAE,EAAE,WAAW,SAAS,EAAE;YAC1B,IAAI,EAAE,SAAS;YACf,UAAU,EAAE,IAAI,SAAS,EAAE;YAC3B,WAAW,EAAE,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;YAC7E,IAAI,EAAE,SAAS;SAChB,CAAC,CAAC;IACL,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,MAA4B;IAE5B,OAAO,EAAE,QAAQ,EAAE,wBAAwB,EAAE,EAAE,CAAC;AAClD,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,CAAC,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC;AAC9C,CAAC"}
@@ -0,0 +1,36 @@
1
+ type Frame = Record<string, any>;
2
+ type Fence = {
3
+ id: string;
4
+ start: number;
5
+ end?: number;
6
+ status: 'pending' | 'failed';
7
+ };
8
+ /** Display barrier, not a claim that an already-running external tool is paused. */
9
+ export declare class CopilotCompactionBarrier {
10
+ private fencePath?;
11
+ private id;
12
+ private maxBytes;
13
+ private scopes;
14
+ private frames;
15
+ private usage?;
16
+ private failure?;
17
+ private waiters;
18
+ private bytes;
19
+ startedAt?: number;
20
+ constructor(fencePath?: string | undefined, id?: string, maxBytes?: number);
21
+ get active(): boolean;
22
+ get failed(): boolean;
23
+ start(scope?: string, at?: number): void;
24
+ has(scope: string): boolean;
25
+ hold(frame: Frame): boolean;
26
+ complete(scope?: string): boolean;
27
+ drain(): Frame[];
28
+ fail(error?: Error): void;
29
+ wait(): Promise<void>;
30
+ private save;
31
+ }
32
+ export declare function compactionFencePath(root: string, sessionId?: string | null): string | undefined;
33
+ export declare function readCompactionFences(path?: string): Fence[];
34
+ /** A new real user request bounds an abandoned pending fence after restart. */
35
+ export declare function compactionPublicationHidden(fences: Fence[], event: Frame, includeUsage?: boolean): boolean;
36
+ export {};
@@ -0,0 +1,152 @@
1
+ import { existsSync, readFileSync } from 'fs';
2
+ import { atomicWriteCopilotSidecar } from './copilot-sidecar.js';
3
+ import { join } from 'path';
4
+ import { isCopilotChildEvent } from './copilot-event-scope.js';
5
+ const HELD = new Set(['text_delta', 'reasoning_delta', 'tool_started', 'tool_updated', 'tool_completed',
6
+ 'user_input_requested', 'plan_ready', 'plan_implementation_status']);
7
+ const FILE = '.agentlink-compaction-publication.json';
8
+ /** Display barrier, not a claim that an already-running external tool is paused. */
9
+ export class CopilotCompactionBarrier {
10
+ fencePath;
11
+ id;
12
+ maxBytes;
13
+ scopes = new Set();
14
+ frames = [];
15
+ usage;
16
+ failure;
17
+ waiters = [];
18
+ bytes = 0;
19
+ startedAt;
20
+ constructor(fencePath, id = '', maxBytes = 16 * 1024 * 1024) {
21
+ this.fencePath = fencePath;
22
+ this.id = id;
23
+ this.maxBytes = maxBytes;
24
+ }
25
+ get active() { return this.scopes.size > 0; }
26
+ get failed() { return !!this.failure; }
27
+ start(scope = 'main', at = Date.now()) {
28
+ if (this.failure)
29
+ return;
30
+ if (!this.active) {
31
+ this.startedAt = at;
32
+ this.save({ id: this.id, start: at, status: 'pending' });
33
+ }
34
+ this.scopes.add(scope);
35
+ }
36
+ has(scope) { return this.scopes.has(scope); }
37
+ hold(frame) {
38
+ const type = frame.event?.type;
39
+ if (!HELD.has(type) && type !== 'usage_update' && frame.type !== 'command_output')
40
+ return false;
41
+ if (this.failure)
42
+ return true; // Late output from the stopped operation must not escape.
43
+ if (!this.active)
44
+ return false;
45
+ const copy = structuredClone(frame);
46
+ if (type === 'usage_update') {
47
+ this.usage = copy;
48
+ return true;
49
+ }
50
+ const last = this.frames.at(-1);
51
+ let replacement;
52
+ if (last && last.event?.type === type && last.turnId === frame.turnId && last.event.messageId === frame.event?.messageId
53
+ && ['text_delta', 'reasoning_delta'].includes(type)) {
54
+ replacement = { ...last, event: { ...last.event, ...copy.event, text: (last.event.text || '') + (copy.event.text || '') } };
55
+ }
56
+ else if (last && type === 'tool_updated' && last.event?.type === type && last.event.tool?.id === copy.event.tool?.id) {
57
+ replacement = copy;
58
+ }
59
+ const bytes = this.bytes + Buffer.byteLength(JSON.stringify(replacement || copy))
60
+ - (replacement ? Buffer.byteLength(JSON.stringify(last)) : 0);
61
+ if (bytes > this.maxBytes)
62
+ throw new Error('Copilot compaction output buffer exceeded its safe limit. Stop and retry after compaction.');
63
+ if (replacement)
64
+ this.frames[this.frames.length - 1] = replacement;
65
+ else
66
+ this.frames.push(copy);
67
+ this.bytes = bytes;
68
+ return true;
69
+ }
70
+ complete(scope = 'main') {
71
+ if (this.failure)
72
+ return false;
73
+ this.scopes.delete(scope);
74
+ if (this.active)
75
+ return false;
76
+ this.save();
77
+ for (const waiter of this.waiters.splice(0))
78
+ waiter.resolve();
79
+ return true;
80
+ }
81
+ drain() {
82
+ if (this.active || this.failure)
83
+ return [];
84
+ const frames = this.usage ? [this.usage, ...this.frames] : this.frames;
85
+ this.frames = [];
86
+ this.usage = undefined;
87
+ this.bytes = 0;
88
+ this.startedAt = undefined;
89
+ return frames;
90
+ }
91
+ fail(error = new Error('Copilot compaction cancelled')) {
92
+ this.failure = error;
93
+ if (this.startedAt != null)
94
+ this.save({ id: this.id, start: this.startedAt, status: 'failed' });
95
+ this.scopes.clear();
96
+ this.frames = [];
97
+ this.usage = undefined;
98
+ this.bytes = 0;
99
+ for (const waiter of this.waiters.splice(0))
100
+ waiter.reject(error);
101
+ }
102
+ wait() {
103
+ if (this.failure)
104
+ return Promise.reject(this.failure);
105
+ if (!this.active)
106
+ return Promise.resolve();
107
+ return new Promise((resolve, reject) => this.waiters.push({ resolve, reject }));
108
+ }
109
+ save(fence) {
110
+ if (!this.fencePath)
111
+ return;
112
+ const fences = readCompactionFences(this.fencePath).filter(item => item.id !== this.id);
113
+ if (fence)
114
+ fences.push(fence);
115
+ atomicWriteCopilotSidecar(this.fencePath, JSON.stringify({ version: 1, fences }), 'utf8');
116
+ }
117
+ }
118
+ export function compactionFencePath(root, sessionId) {
119
+ if (!sessionId || !/^[\w-]+$/.test(sessionId))
120
+ return undefined;
121
+ const dir = join(root, sessionId);
122
+ return existsSync(dir) ? join(dir, FILE) : undefined;
123
+ }
124
+ export function readCompactionFences(path) {
125
+ if (!path)
126
+ return [];
127
+ try {
128
+ const data = JSON.parse(readFileSync(path, 'utf8'));
129
+ return data.version === 1 && Array.isArray(data.fences)
130
+ ? data.fences.filter((f) => typeof f.id === 'string' && Number.isFinite(f.start)
131
+ && (f.end == null || Number.isFinite(f.end)) && ['pending', 'failed'].includes(f.status)) : [];
132
+ }
133
+ catch {
134
+ return [];
135
+ }
136
+ }
137
+ /** A new real user request bounds an abandoned pending fence after restart. */
138
+ export function compactionPublicationHidden(fences, event, includeUsage = false) {
139
+ const at = Date.parse(event.timestamp || event.createdAt || '');
140
+ if (!Number.isFinite(at))
141
+ return false;
142
+ if (event.type === 'user.message' && !isCopilotChildEvent(event)
143
+ && !event.data?.source?.startsWith('agent-')) {
144
+ for (const fence of fences)
145
+ if (fence.end == null && at > fence.start)
146
+ fence.end = at;
147
+ }
148
+ return fences.some(f => at >= f.start && (f.end == null || at < f.end))
149
+ && (String(event.type).startsWith('assistant.') || String(event.type).startsWith('tool.') || event.type === 'session.task_complete'
150
+ || (includeUsage && /^(?:session\.(?:usage_|compaction_)|model\.)/.test(String(event.type))));
151
+ }
152
+ //# sourceMappingURL=copilot-compaction-barrier.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"copilot-compaction-barrier.js","sourceRoot":"","sources":["../src/copilot-compaction-barrier.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,cAAc,EAAE,gBAAgB;IACrG,sBAAsB,EAAE,YAAY,EAAE,4BAA4B,CAAC,CAAC,CAAC;AACvE,MAAM,IAAI,GAAG,wCAAwC,CAAC;AAItD,oFAAoF;AACpF,MAAM,OAAO,wBAAwB;IAQf;IAA4B;IAAiB;IAPzD,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;IAC3B,MAAM,GAAY,EAAE,CAAC;IACrB,KAAK,CAAS;IACd,OAAO,CAAS;IAChB,OAAO,GAA+D,EAAE,CAAC;IACzE,KAAK,GAAG,CAAC,CAAC;IAClB,SAAS,CAAU;IACnB,YAAoB,SAAkB,EAAU,KAAK,EAAE,EAAU,WAAW,EAAE,GAAG,IAAI,GAAG,IAAI;QAAxE,cAAS,GAAT,SAAS,CAAS;QAAU,OAAE,GAAF,EAAE,CAAK;QAAU,aAAQ,GAAR,QAAQ,CAAmB;IAAG,CAAC;IAChG,IAAI,MAAM,KAAc,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;IACtD,IAAI,MAAM,KAAc,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAChD,KAAK,CAAC,KAAK,GAAG,MAAM,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE;QACnC,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO;QACzB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;YACpB,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;QAC3D,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IACD,GAAG,CAAC,KAAa,IAAa,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC9D,IAAI,CAAC,KAAY;QACf,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,cAAc,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB;YAAE,OAAO,KAAK,CAAC;QAChG,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC,CAAC,0DAA0D;QACzF,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAC/B,MAAM,IAAI,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;QACpC,IAAI,IAAI,KAAK,cAAc,EAAE,CAAC;YAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YAAC,OAAO,IAAI,CAAC;QAAC,CAAC;QAChE,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAChC,IAAI,WAA8B,CAAC;QACnC,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,KAAK,CAAC,KAAK,EAAE,SAAS;eACjH,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACxD,WAAW,GAAG,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9H,CAAC;aAAM,IAAI,IAAI,IAAI,IAAI,KAAK,cAAc,IAAI,IAAI,CAAC,KAAK,EAAE,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC;YACvH,WAAW,GAAG,IAAI,CAAC;QACrB,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,IAAI,IAAI,CAAC,CAAC;cAC7E,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChE,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,4FAA4F,CAAC,CAAC;QACzI,IAAI,WAAW;YAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC;;YAC9D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,QAAQ,CAAC,KAAK,GAAG,MAAM;QACrB,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;QAC/B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAC9B,IAAI,CAAC,IAAI,EAAE,CAAC;QACZ,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;YAAE,MAAM,CAAC,OAAO,EAAE,CAAC;QAC9D,OAAO,IAAI,CAAC;IACd,CAAC;IACD,KAAK;QACH,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;QACvE,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QAAC,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;QAAC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QACrF,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,8BAA8B,CAAC;QACpD,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI;YAAE,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;QAChG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAAC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QAAC,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;QAC9E,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;YAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACpE,CAAC;IACD,IAAI;QACF,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACtD,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAC3C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IAClF,CAAC;IACO,IAAI,CAAC,KAAa;QACxB,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,OAAO;QAC5B,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC;QACxF,IAAI,KAAK;YAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9B,yBAAyB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;IAC5F,CAAC;CACF;AAED,MAAM,UAAU,mBAAmB,CAAC,IAAY,EAAE,SAAyB;IACzE,IAAI,CAAC,SAAS,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC;QAAE,OAAO,SAAS,CAAC;IAChE,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAClC,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACvD,CAAC;AACD,MAAM,UAAU,oBAAoB,CAAC,IAAa;IAChD,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IACrB,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;QACpD,OAAO,IAAI,CAAC,OAAO,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;YACrD,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;mBAClF,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACrG,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,EAAE,CAAC;IAAC,CAAC;AACxB,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,2BAA2B,CAAC,MAAe,EAAE,KAAY,EAAE,YAAY,GAAG,KAAK;IAC7F,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;IAChE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QAAE,OAAO,KAAK,CAAC;IACvC,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;WACzD,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjD,KAAK,MAAM,KAAK,IAAI,MAAM;YAAE,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,IAAI,EAAE,GAAG,KAAK,CAAC,KAAK;gBAAE,KAAK,CAAC,GAAG,GAAG,EAAE,CAAC;IACxF,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;WAClE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,uBAAuB;eAC9H,CAAC,YAAY,IAAI,8CAA8C,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACpG,CAAC"}
@@ -0,0 +1,34 @@
1
+ export interface CopilotCompactionRecord {
2
+ id: string;
3
+ sessionId: string;
4
+ scope: string;
5
+ status: 'started' | 'completed' | 'failed' | 'cancelled';
6
+ startedAt?: number;
7
+ completedAt?: number;
8
+ startEventId?: string;
9
+ completionEventId?: string;
10
+ aliases?: string[];
11
+ trigger?: string;
12
+ generation?: number;
13
+ turnId?: string;
14
+ preCompactionTokens?: number;
15
+ postCompactionTokens?: number;
16
+ preCompactionMessagesLength?: number;
17
+ messagesRemoved?: number;
18
+ tokensRemoved?: number;
19
+ }
20
+ /** Search only visible status labels, never the native summary or internal IDs. */
21
+ export declare function copilotCompactionSearchText(record: CopilotCompactionRecord, query: string): string;
22
+ type NativeEvent = Record<string, any>;
23
+ export declare class CopilotCompactionLifecycle {
24
+ private records;
25
+ private seen;
26
+ private sequence;
27
+ accept(sessionId: string, event: NativeEvent): {
28
+ record: CopilotCompactionRecord;
29
+ late: boolean;
30
+ } | undefined;
31
+ cancel(sessionId: string, at?: number): void;
32
+ private copy;
33
+ }
34
+ export {};
@@ -0,0 +1,88 @@
1
+ import { copilotChildScope } from './copilot-event-scope.js';
2
+ function nativeCounts(data = {}) {
3
+ return Object.fromEntries(['preCompactionTokens', 'postCompactionTokens', 'preCompactionMessagesLength', 'messagesRemoved', 'tokensRemoved']
4
+ .filter(key => Number.isFinite(data[key]) && data[key] >= 0).map(key => [key, data[key]]));
5
+ }
6
+ /** Search only visible status labels, never the native summary or internal IDs. */
7
+ export function copilotCompactionSearchText(record, query) {
8
+ const labels = {
9
+ started: ['压缩状态未确认', 'Compaction status unconfirmed', '上下文压缩中...', 'Context compacting...'],
10
+ completed: ['上下文已压缩', 'Context compacted'],
11
+ failed: ['上下文压缩失败', 'Context compaction failed'],
12
+ cancelled: ['上下文压缩已停止', 'Context compaction stopped'],
13
+ };
14
+ const candidates = labels[record.status];
15
+ return Array.isArray(candidates) ? candidates.find(text => text.toLowerCase().includes(query.toLowerCase())) || '' : '';
16
+ }
17
+ export class CopilotCompactionLifecycle {
18
+ records = new Map();
19
+ seen = new Set();
20
+ sequence = 0;
21
+ accept(sessionId, event) {
22
+ if (!['session.compaction_start', 'session.compaction_complete', 'session.compaction_failed'].includes(event.type))
23
+ return undefined;
24
+ const scope = copilotChildScope(event) || 'main';
25
+ const key = `${sessionId}:${scope}`;
26
+ const parsed = Date.parse(event.timestamp || '');
27
+ const at = Number.isFinite(parsed) ? parsed : Date.now();
28
+ const identity = event.id || (event.type === 'session.compaction_start'
29
+ ? event.agentlinkCompaction?.startEventId : event.agentlinkCompaction?.completionEventId)
30
+ || (Number.isFinite(parsed) ? `${event.type}:${at}` : `unidentified:${++this.sequence}`);
31
+ const seenKey = `${key}:${identity}`;
32
+ if (this.seen.has(seenKey))
33
+ return undefined;
34
+ this.seen.add(seenKey);
35
+ if (this.seen.size > 1024)
36
+ this.seen.delete(this.seen.values().next().value);
37
+ const previous = this.records.get(key);
38
+ const start = event.type === 'session.compaction_start';
39
+ const status = start ? 'started' : event.type === 'session.compaction_failed' || event.data?.success === false ? 'failed' : 'completed';
40
+ if (previous?.status === 'cancelled' && !start) {
41
+ previous.completionEventId = identity;
42
+ return { record: this.copy(previous), late: true };
43
+ }
44
+ if (Number.isFinite(parsed) && previous?.status === 'started' && previous.startedAt != null && at < previous.startedAt)
45
+ return undefined;
46
+ if (Number.isFinite(parsed) && previous?.completedAt != null && at <= previous.completedAt) {
47
+ // The completion is authoritative. Only enrich its missing start within
48
+ // this cycle; never reopen a completed scope or replay old usage.
49
+ if (start && previous.startedAt == null && at > (previous.previousEnd || 0)) {
50
+ previous.startedAt = at;
51
+ previous.startEventId = identity;
52
+ previous.aliases = [...(previous.aliases || []), `compact:${key}:${identity}`];
53
+ return { record: this.copy(previous), late: true };
54
+ }
55
+ return undefined;
56
+ }
57
+ let record;
58
+ if (previous?.status === 'started' && !start) {
59
+ record = { ...previous, ...nativeCounts(event.data), status, completedAt: at, completionEventId: identity };
60
+ }
61
+ else if (previous?.status === 'started' && start) {
62
+ return undefined;
63
+ }
64
+ else {
65
+ record = { id: `compact:${key}:${identity}`, sessionId, scope, status, ...nativeCounts(event.data),
66
+ ...(start ? { startedAt: at, startEventId: identity } : { completedAt: at, completionEventId: identity }),
67
+ previousEnd: previous?.completedAt,
68
+ ...(typeof event.data?.trigger === 'string' ? { trigger: event.data.trigger } : {}) };
69
+ }
70
+ this.records.set(key, record);
71
+ if (this.records.size > 128)
72
+ this.records.delete(this.records.keys().next().value);
73
+ return { record: this.copy(record), late: false };
74
+ }
75
+ cancel(sessionId, at) {
76
+ for (const record of this.records.values()) {
77
+ if (record.sessionId === sessionId && record.status === 'started') {
78
+ record.status = 'cancelled';
79
+ record.completedAt = at;
80
+ }
81
+ }
82
+ }
83
+ copy(record) {
84
+ const { previousEnd: _, ...publicRecord } = record;
85
+ return structuredClone(publicRecord);
86
+ }
87
+ }
88
+ //# sourceMappingURL=copilot-compaction-lifecycle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"copilot-compaction-lifecycle.js","sourceRoot":"","sources":["../src/copilot-compaction-lifecycle.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export declare const COPILOT_COMPACTION_POLICY: Readonly<{
2
+ preRequest: 0.8;
3
+ background: 0.9;
4
+ bufferExhaustion: 0.95;
5
+ }>;
@@ -0,0 +1,7 @@
1
+ // Shared production boundaries for pre-request maintenance and native safeguards.
2
+ export const COPILOT_COMPACTION_POLICY = Object.freeze({
3
+ preRequest: 0.8,
4
+ background: 0.9,
5
+ bufferExhaustion: 0.95,
6
+ });
7
+ //# sourceMappingURL=copilot-compaction-policy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"copilot-compaction-policy.js","sourceRoot":"","sources":["../src/copilot-compaction-policy.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAClF,MAAM,CAAC,MAAM,yBAAyB,GAAG,MAAM,CAAC,MAAM,CAAC;IACrD,UAAU,EAAE,GAAG;IACf,UAAU,EAAE,GAAG;IACf,gBAAgB,EAAE,IAAI;CACvB,CAAC,CAAC"}
@@ -0,0 +1,63 @@
1
+ export interface CopilotRequestedConfiguration {
2
+ model?: string;
3
+ context?: string;
4
+ effort?: string;
5
+ }
6
+ export type CopilotConfigurationField = 'model' | 'context' | 'effort' | 'contextWindow';
7
+ export type CopilotConfigurationSource = 'provider_config' | 'provider_event' | 'capability_declaration' | 'legacy_history';
8
+ export interface CopilotConfiguration {
9
+ version: 1;
10
+ revision: string;
11
+ epoch?: string;
12
+ generation?: number;
13
+ sequence?: number;
14
+ providerId: string;
15
+ transport: 'sdk' | 'acp';
16
+ requested: CopilotRequestedConfiguration;
17
+ effective: {
18
+ model?: string;
19
+ context?: string;
20
+ effort?: string;
21
+ contextWindow?: number;
22
+ };
23
+ sources: Partial<Record<CopilotConfigurationField, CopilotConfigurationSource>>;
24
+ evidenceTimes?: Partial<Record<CopilotConfigurationField, number>>;
25
+ /** Window evidence excludes maintenance turns (older snapshots may not). */
26
+ windowEvidenceVersion?: 1;
27
+ status: 'pending' | 'confirmed' | 'fallback' | 'unverified' | 'failed';
28
+ issues: Array<{
29
+ field: CopilotConfigurationField;
30
+ code: 'unsupported' | 'unconfirmed' | 'rejected';
31
+ message: string;
32
+ }>;
33
+ supportedEfforts?: string[];
34
+ capabilityFingerprint?: string;
35
+ declaredWindows?: {
36
+ default?: number;
37
+ long_context?: number;
38
+ };
39
+ observedDefaultWindow?: number;
40
+ updatedAt: string;
41
+ sessionId?: string;
42
+ runtime?: {
43
+ pid?: number;
44
+ phase?: 'bootstrap' | 'runtime';
45
+ };
46
+ }
47
+ export declare function configurationKey(value: CopilotRequestedConfiguration): string;
48
+ export declare function createCopilotConfiguration(providerId: string, transport: 'sdk' | 'acp', requested: CopilotRequestedConfiguration): CopilotConfiguration;
49
+ export declare function configurationIssue(config: CopilotConfiguration, field: CopilotConfigurationField, code: 'unsupported' | 'unconfirmed' | 'rejected', message: string): void;
50
+ export declare function confirmConfiguration(config: CopilotConfiguration, field: CopilotConfigurationField, value: unknown, source: CopilotConfigurationSource, observedAt?: number): void;
51
+ export declare function finishConfiguration(config: CopilotConfiguration): CopilotConfiguration;
52
+ export declare function applyModelCatalog(config: CopilotConfiguration, response: unknown, previous?: CopilotConfiguration): {
53
+ effort?: string;
54
+ };
55
+ interface ObservationScope {
56
+ compacting: boolean;
57
+ }
58
+ export declare function resetCopilotConfigurationObservation(config: CopilotConfiguration): void;
59
+ export declare function observeConfigurationEvent(config: CopilotConfiguration, event: Record<string, any>, replayScope?: ObservationScope): void;
60
+ export declare function readConfigurationEvents(config: CopilotConfiguration, root: string, sessionId: string, since: number): void;
61
+ export declare function persistCopilotConfiguration(root: string, sessionId: string, config: CopilotConfiguration): void;
62
+ export declare function readStoredCopilotConfiguration(root: string, sessionId: string, providerId: string): CopilotConfiguration | undefined;
63
+ export {};