legalesign-document-viewer 1.0.11 → 1.0.13

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 (81) hide show
  1. package/dist/cjs/loader.cjs.js +1 -1
  2. package/dist/cjs/ls-assignee-select_21.cjs.entry.js +3 -3
  3. package/dist/cjs/ls-compose-loader_7.cjs.entry.js +1 -1
  4. package/dist/cjs/ls-document-viewer.cjs.entry.js +1 -1
  5. package/dist/cjs/ls-document-viewer.cjs.js +1 -1
  6. package/dist/cjs/ls-field-alignment_3.cjs.entry.js +1 -1
  7. package/dist/cjs/{mouseHandlers-CwOyBBz6.js → mouseHandlers-Cc9PovyB.js} +3 -3
  8. package/dist/cjs/{mouseHandlers-CwOyBBz6.js.map → mouseHandlers-Cc9PovyB.js.map} +1 -1
  9. package/dist/collection/components/ls-document-viewer/mouseHandlers.js +1 -1
  10. package/dist/collection/components/ls-document-viewer/mouseHandlers.js.map +1 -1
  11. package/dist/collection/components/ls-field-properties-advanced/ls-field-properties-advanced.js +3 -3
  12. package/dist/collection/components/ls-field-properties-advanced/ls-field-properties-advanced.js.map +1 -1
  13. package/dist/components/ls-document-viewer.js +15 -15
  14. package/dist/components/ls-field-distribute.js +1 -1
  15. package/dist/components/ls-field-properties-advanced.js +1 -1
  16. package/dist/components/ls-field-properties-autosign.js +1 -1
  17. package/dist/components/ls-field-properties-checkbox.js +1 -1
  18. package/dist/components/ls-field-properties-date.js +1 -1
  19. package/dist/components/ls-field-properties-dropdown.js +1 -1
  20. package/dist/components/ls-field-properties-email.js +1 -1
  21. package/dist/components/ls-field-properties-file.js +1 -1
  22. package/dist/components/ls-field-properties-general.js +1 -1
  23. package/dist/components/ls-field-properties-multiple.js +1 -1
  24. package/dist/components/ls-field-properties-number.js +1 -1
  25. package/dist/components/ls-field-properties-signature.js +1 -1
  26. package/dist/components/ls-field-properties-text.js +1 -1
  27. package/dist/components/ls-field-properties.js +1 -1
  28. package/dist/components/ls-left-bar.js +1 -1
  29. package/dist/components/ls-statusbar.js +1 -1
  30. package/dist/components/{p-BD_LQa4f.js → p-BDD6zFgO.js} +3 -3
  31. package/dist/components/{p-BD_LQa4f.js.map → p-BDD6zFgO.js.map} +1 -1
  32. package/dist/components/{p-nEeIgVD4.js → p-BTcdVmkv.js} +15 -9
  33. package/dist/components/p-BTcdVmkv.js.map +1 -0
  34. package/dist/components/{p-BcIQeY5m.js → p-BmpejMo_.js} +3 -3
  35. package/dist/components/{p-BcIQeY5m.js.map → p-BmpejMo_.js.map} +1 -1
  36. package/dist/components/{p-D2fyXA3F.js → p-ByN7GurE.js} +3 -3
  37. package/dist/components/{p-D2fyXA3F.js.map → p-ByN7GurE.js.map} +1 -1
  38. package/dist/components/{p-DKCAgr17.js → p-CHbV_3Pe.js} +3 -3
  39. package/dist/components/{p-DKCAgr17.js.map → p-CHbV_3Pe.js.map} +1 -1
  40. package/dist/components/{p-BRcbstSs.js → p-CowkeWsT.js} +3 -3
  41. package/dist/components/{p-BRcbstSs.js.map → p-CowkeWsT.js.map} +1 -1
  42. package/dist/components/{p-Bmm5vB3M.js → p-CyV8nu-T.js} +15 -15
  43. package/dist/components/{p-Bmm5vB3M.js.map → p-CyV8nu-T.js.map} +1 -1
  44. package/dist/components/{p-DjyJ7Vy7.js → p-D4pQIA1Z.js} +3 -3
  45. package/dist/components/{p-DjyJ7Vy7.js.map → p-D4pQIA1Z.js.map} +1 -1
  46. package/dist/components/{p-0gpJEkuE.js → p-D6grL59P.js} +18 -12
  47. package/dist/components/p-D6grL59P.js.map +1 -0
  48. package/dist/components/{p-BrzfHYNI.js → p-DAq2HFf_.js} +3 -3
  49. package/dist/components/{p-BrzfHYNI.js.map → p-DAq2HFf_.js.map} +1 -1
  50. package/dist/components/{p-m1DXrPv0.js → p-DpA4TE1Q.js} +3 -3
  51. package/dist/components/{p-m1DXrPv0.js.map → p-DpA4TE1Q.js.map} +1 -1
  52. package/dist/components/{p-CLsTvOMB.js → p-Dw48QFVg.js} +3 -3
  53. package/dist/components/{p-CLsTvOMB.js.map → p-Dw48QFVg.js.map} +1 -1
  54. package/dist/components/{p-ZKk3AJde.js → p-pAh5qPFg.js} +14 -14
  55. package/dist/components/{p-ZKk3AJde.js.map → p-pAh5qPFg.js.map} +1 -1
  56. package/dist/components/{p-sL-kvPiU.js → p-uST4uUr8.js} +3 -3
  57. package/dist/components/{p-sL-kvPiU.js.map → p-uST4uUr8.js.map} +1 -1
  58. package/dist/components/{p-BoxsygDA.js → p-x8FQ2VuC.js} +3 -3
  59. package/dist/components/{p-BoxsygDA.js.map → p-x8FQ2VuC.js.map} +1 -1
  60. package/dist/esm/loader.js +1 -1
  61. package/dist/esm/ls-assignee-select_21.entry.js +3 -3
  62. package/dist/esm/ls-compose-loader_7.entry.js +1 -1
  63. package/dist/esm/ls-document-viewer.entry.js +1 -1
  64. package/dist/esm/ls-document-viewer.js +1 -1
  65. package/dist/esm/ls-field-alignment_3.entry.js +1 -1
  66. package/dist/esm/{mouseHandlers-ZnSeG3Tw.js → mouseHandlers-CidXuxi3.js} +3 -3
  67. package/dist/esm/{mouseHandlers-ZnSeG3Tw.js.map → mouseHandlers-CidXuxi3.js.map} +1 -1
  68. package/dist/ls-document-viewer/ls-document-viewer.esm.js +1 -1
  69. package/dist/ls-document-viewer/{p-ddb4daf1.entry.js → p-5353749c.entry.js} +2 -2
  70. package/dist/ls-document-viewer/{p-ddb4daf1.entry.js.map → p-5353749c.entry.js.map} +1 -1
  71. package/dist/ls-document-viewer/{p-af926417.entry.js → p-89798744.entry.js} +2 -2
  72. package/dist/ls-document-viewer/{p-c7361f1c.entry.js → p-8d626c5c.entry.js} +2 -2
  73. package/dist/ls-document-viewer/{p-BnmDPEuZ.js → p-D6sbeDib.js} +2 -2
  74. package/dist/ls-document-viewer/{p-BnmDPEuZ.js.map → p-D6sbeDib.js.map} +1 -1
  75. package/dist/ls-document-viewer/{p-106a844a.entry.js → p-cbff9ae0.entry.js} +2 -2
  76. package/package.json +1 -1
  77. package/dist/components/p-0gpJEkuE.js.map +0 -1
  78. package/dist/components/p-nEeIgVD4.js.map +0 -1
  79. /package/dist/ls-document-viewer/{p-af926417.entry.js.map → p-89798744.entry.js.map} +0 -0
  80. /package/dist/ls-document-viewer/{p-c7361f1c.entry.js.map → p-8d626c5c.entry.js.map} +0 -0
  81. /package/dist/ls-document-viewer/{p-106a844a.entry.js.map → p-cbff9ae0.entry.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"mouseHandlers.js","sourceRoot":"","sources":["../../../../src/components/ls-document-viewer/mouseHandlers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAEpF,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACrG,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzC,MAAM,aAAa,GAAG,CAAC,CAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC;AAEvD,SAAS,sBAAsB,CAAC,KAAiB;IAC/C,IAAI,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,cAAc,CAAC,yBAAyB,CAAC,CAAC;IAClF,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACxC,OAAO,CAAC,EAAE,GAAG,yBAAyB,CAAC;QACvC,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC;QACjC,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,kBAAkB,CAAC;QAC3C,OAAO,CAAC,KAAK,CAAC,YAAY,GAAG,QAAQ,CAAC;QACtC,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,0BAA0B,CAAC;QACtD,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,OAAO,CAAC;QAC9B,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,SAAS,CAAC;QACnC,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,+CAA+C,CAAC;QAC3E,OAAO,CAAC,KAAK,CAAC,aAAa,GAAG,MAAM,CAAC;QACrC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC;QAC/B,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC;QACpC,OAAO,CAAC,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC;QACtE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC;IACjD,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC;AAClD,CAAC;AAED,SAAS,sBAAsB;IAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,cAAc,CAAC,yBAAyB,CAAC,CAAC;IACrF,IAAI,OAAO;QAAE,OAAO,CAAC,MAAM,EAAE,CAAC;AAChC,CAAC;AAED,SAAS,gBAAgB;IACvB,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC;IACxC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG,MAAM,CAAC;IAC9C,QAAQ,CAAC,gBAAgB,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,eAAe;IACtB,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,EAAE,CAAC;IACpC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG,EAAE,CAAC;IAC1C,QAAQ,CAAC,mBAAmB,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,kBAAkB;IAChC,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,cAAc,CAAC,iBAAiB,CAAgB,CAAC;IACrF,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,KAAK,IAAI,CAAC,OAAO,CAAC,CAAC;IACnF,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7C,GAAG,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC;QAChC,OAAO;IACT,CAAC;IAED,IAAI,OAAO,GAAG,QAAQ,EAAE,MAAM,GAAG,QAAQ,EAAE,QAAQ,GAAG,CAAC,QAAQ,EAAE,SAAS,GAAG,CAAC,QAAQ,CAAC;IAEvF,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QACvB,MAAM,IAAI,GAAG,CAAC,CAAC,UAAU,CAAC;QAC1B,MAAM,GAAG,GAAG,CAAC,CAAC,SAAS,CAAC;QACxB,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,CAAC;QACnC,MAAM,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,YAAY,CAAC;QACpC,IAAI,IAAI,GAAG,OAAO;YAAE,OAAO,GAAG,IAAI,CAAC;QACnC,IAAI,GAAG,GAAG,MAAM;YAAE,MAAM,GAAG,GAAG,CAAC;QAC/B,IAAI,KAAK,GAAG,QAAQ;YAAE,QAAQ,GAAG,KAAK,CAAC;QACvC,IAAI,MAAM,GAAG,SAAS;YAAE,SAAS,GAAG,MAAM,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,OAAO,GAAG,IAAI,CAAC;IAChC,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,GAAG,IAAI,CAAC;IAC9B,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,QAAQ,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC;IAC9C,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,SAAS,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC;IAC/C,GAAG,CAAC,KAAK,CAAC,UAAU,GAAG,SAAS,CAAC;AACnC,CAAC;AAED,IAAI,UAAU,GAAG,IAAI,CAAC;AAEtB,MAAM,UAAU,QAAQ,CAAC,IAAI,EAAE,KAAK;IAClC,IAAI,UAAU;QAAE,YAAY,CAAC,UAAU,CAAC,CAAC;IAEzC,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE;QAC3B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3B,CAAC,EAAE,KAAK,CAAC,CAAC;AACZ,CAAC;AAED,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAE5B,MAAM,UAAU,SAAS,CAAC,CAAC;IACzB,IAAI,IAAI,CAAC,kBAAkB;QAAE,OAAO;IACpC,wEAAwE;IACxE,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;QACtD,OAAO;IACT,CAAC;IACD,6FAA6F;IAC7F,0EAA0E;IAC1E,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC;IAC5E,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,cAAc,CAAC,wBAAwB,CAAC,CAAC;IACnF,IAAI,CAAC,KAAK;QAAE,OAAO;IACnB,MAAM,MAAM,GAAG,CAAC,CAAC,MAAqB,CAAC;IACvC,MAAM,aAAa,GAAG,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,OAAO,IAAI,MAAM,EAAE,EAAE,KAAK,YAAY,IAAI,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,QAAQ,CAAC;IAC3I,MAAM,aAAa,GAAG,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,iBAAiB,CAAC;IAC3E,IAAI,CAAC,aAAa,IAAI,CAAC,aAAa;QAAE,OAAO;IAE7C,mBAAmB;IACnB,iCAAiC;IACjC,wCAAwC;IACxC,+DAA+D;IAC/D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACrB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;IAE7E,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QACjB,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,qBAAqB,EAAE,CAAC;QAC9E,MAAM,KAAK,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;QAClG,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,wCAAwC;QACxC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,CAAC;QACxC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;QACzC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,GAAG,IAAI,CAAC,CAAC;QAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;QAC5C,+BAA+B;QAC/B,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC,GAAG,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,OAAO,EAAE,CAAC;YACpF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QACpB,CAAC;aAAM,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,GAAG,CAAC,GAAG,OAAO,EAAE,CAAC;YACvF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QACpB,CAAC;aAAM,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC,GAAG,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,GAAG,CAAC,GAAG,OAAO,EAAE,CAAC;YACxF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QACpB,CAAC;aAAM,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,OAAO,EAAE,CAAC;YAC1F,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;YAClB,YAAY;QACd,CAAC;aAAM,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,OAAO,IAAI,GAAG,IAAI,CAAC,CAAC,OAAO,IAAI,MAAM,EAAE,CAAC;YACzF,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;YACpB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;YAClB,oBAAoB;QACtB,CAAC;aAAM,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,OAAO,IAAI,GAAG,IAAI,CAAC,CAAC,OAAO,IAAI,MAAM,EAAE,CAAC;YAC1F,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;YACpB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;YAClB,aAAa;QACf,CAAC;aAAM,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,GAAG,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,OAAO,IAAI,IAAI,IAAI,CAAC,CAAC,OAAO,IAAI,KAAK,EAAE,CAAC;YACxF,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;YACpB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;YAClB,aAAa;QACf,CAAC;aAAM,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,OAAO,IAAI,IAAI,IAAI,CAAC,CAAC,OAAO,IAAI,KAAK,EAAE,CAAC;YAC3F,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;YACpB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QACpB,CAAC;aAAM,IAAI,CAAC,CAAC,OAAO,IAAI,MAAM,IAAI,CAAC,CAAC,OAAO,IAAI,GAAG,IAAI,CAAC,CAAC,OAAO,IAAI,IAAI,IAAI,CAAC,CAAC,OAAO,IAAI,KAAK,EAAE,CAAC;YAC9F,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QACpB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,KAAK,KAAK,IAAI,CAAC,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;QAChE,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,cAAc,CAAC,iBAAiB,CAAgB,CAAC;QACrF,GAAG,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC;QAEhC,qDAAqD;QACrD,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACtC,qEAAqE;QACrE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;QAEtD,+DAA+D;QAC/D,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;YACrC,4BAA4B;YAC5B,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;gBAClB,EAAE,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAChC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;QACnD,CAAC;QAED,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE,CAAC;QAChE,MAAM,KAAK,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;QAC1H,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QAExB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YAC1C,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,qBAAqB,EAAE,CAAC;YACpD,MAAM,MAAM,GAAG,CAAgB,CAAC;YAChC,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;QAC3E,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IAC3B,CAAC;SAAM,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;QAC9C,yCAAyC;QACzC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YACpC,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,KAAK,CAAC;YAC/B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC/D,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC/D,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IAClC,CAAC;SAAM,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;QAChD,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,cAAc,CAAC,iBAAiB,CAAgB,CAAC;QACrF,GAAG,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC;QAEhC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YACpC,oCAAoC;YACpC,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,KAAK,CAAC;YAC/B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC/D,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC7D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC3B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAClC,CAAC;aAAM,CAAC;YACN,mBAAmB;YACnB,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC;YAC9B,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YAClD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;YAE7D,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE,CAAC;YAChE,MAAM,KAAK,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;YAC1H,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YAExB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;gBAC1C,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,qBAAqB,EAAE,CAAC;gBACpD,MAAM,MAAM,GAAG,CAAgB,CAAC;gBAChC,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;YAC3E,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAC3B,CAAC;IACH,CAAC;SAAM,CAAC;QACN,kEAAkE;QAClE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;QAC3D,gBAAgB,EAAE,CAAC;QAEnB,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;YAC7B,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC3B,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;YACnB,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAClC,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,WAAW;IACrC,OAAO,CACL,WAAW,CAAC,MAAM,IAAI,CAAC;QACvB,WAAW,CAAC,IAAI,GAAG,CAAC;QACpB,WAAW,CAAC,GAAG,GAAG,CAAC;QACnB,WAAW,CAAC,IAAI,GAAG,WAAW,CAAC,KAAK,IAAI,WAAW,CAAC,cAAc,CAAC,KAAK;QACxE,WAAW,CAAC,GAAG,GAAG,WAAW,CAAC,MAAM,IAAI,WAAW,CAAC,cAAc,CAAC,MAAM,CAC1E,CAAC;AACJ,CAAC;AACD,MAAM,UAAU,SAAS,CAAC,KAAK;IAC7B,KAAK,CAAC,cAAc,EAAE,CAAC;IACvB,IAAI,IAAI,CAAC,kBAAkB;QAAE,OAAO;IACpC,6EAA6E;IAC7E,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;QACtD,OAAO;IACT,CAAC;IAED,4DAA4D;IAC5D,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;QAC7E,gBAAgB,EAAE,CAAC;QACnB,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QACjD,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,eAAe,KAAK,WAAW,IAAI,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC;QAEvG,iDAAiD;QACjD,IAAI,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QACzC,IAAI,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QACvC,IAAI,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;QAC3C,IAAI,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAE7C,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;YACtB,KAAK,GAAG;gBACN,IAAI,KAAK,EAAE,CAAC;oBACV,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC;oBAClD,cAAc,GAAG,eAAe,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;gBACtF,CAAC;qBAAM,CAAC;oBACN,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,MAAM,CAAC;oBAC5C,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC;gBACpD,CAAC;gBACD,MAAM;YACR,KAAK,GAAG;gBACN,IAAI,KAAK,EAAE,CAAC;oBACV,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC;oBAClD,cAAc,GAAG,eAAe,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;gBACtF,CAAC;qBAAM,CAAC;oBACN,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC;gBACpD,CAAC;gBACD,MAAM;YACR,KAAK,GAAG;gBACN,IAAI,KAAK,EAAE,CAAC;oBACV,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,MAAM,CAAC;oBAChD,eAAe,GAAG,cAAc,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;gBACtF,CAAC;qBAAM,CAAC;oBACN,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,MAAM,CAAC;gBAClD,CAAC;gBACD,MAAM;YACR,KAAK,GAAG;gBACN,IAAI,KAAK,EAAE,CAAC;oBACV,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,MAAM,CAAC;oBAChD,eAAe,GAAG,cAAc,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;oBACpF,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,MAAM,CAAC;gBAChD,CAAC;qBAAM,CAAC;oBACN,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,MAAM,CAAC;oBAC9C,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,MAAM,CAAC;gBAClD,CAAC;gBACD,MAAM;YACR,KAAK,IAAI;gBACP,IAAI,KAAK,EAAE,CAAC;oBACV,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,MAAM,CAAC;oBAChD,eAAe,GAAG,cAAc,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;gBACtF,CAAC;qBAAM,CAAC;oBACN,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,MAAM,CAAC;oBAChD,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC;gBACpD,CAAC;gBACD,MAAM;YACR,KAAK,IAAI;gBACP,IAAI,KAAK,EAAE,CAAC;oBACV,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,MAAM,CAAC;oBAChD,eAAe,GAAG,cAAc,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;oBACpF,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,MAAM,CAAC;oBAC9C,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,eAAe,CAAC,CAAC;gBAClF,CAAC;qBAAM,CAAC;oBACN,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,MAAM,CAAC;oBAC9C,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,MAAM,CAAC;oBAC5C,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,MAAM,CAAC;oBAChD,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC;gBACpD,CAAC;gBACD,MAAM;YACR,KAAK,IAAI;gBACP,IAAI,KAAK,EAAE,CAAC;oBACV,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,MAAM,CAAC;oBAChD,eAAe,GAAG,cAAc,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;oBACpF,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,eAAe,CAAC,CAAC;gBAClF,CAAC;qBAAM,CAAC;oBACN,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,MAAM,CAAC;oBAChD,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,MAAM,CAAC;oBAC5C,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC;gBACpD,CAAC;gBACD,MAAM;YACR,KAAK,IAAI;gBACP,IAAI,KAAK,EAAE,CAAC;oBACV,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,MAAM,CAAC;oBAChD,eAAe,GAAG,cAAc,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;oBACpF,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,MAAM,CAAC;gBAChD,CAAC;qBAAM,CAAC;oBACN,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,MAAM,CAAC;oBAC9C,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,MAAM,CAAC;oBAChD,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC;gBACpD,CAAC;gBACD,MAAM;QACV,CAAC;QAED,2BAA2B;QAC3B,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAA+B,CAAC;QAC1H,MAAM,UAAU,GAAG,mBAAmB,CACpC,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,eAAe,EAC5D,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CACpE,CAAC;QAEF,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;YAC9D,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,KAAK,SAAS,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,KAAK,SAAS,CAAC;YAClF,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,KAAK,SAAS,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,KAAK,SAAS,CAAC;YAElF,uDAAuD;YACvD,IAAI,IAAI,GAAG,IAAI,CAAC;YAChB,IAAI,IAAI,GAAG,IAAI,CAAC;YAChB,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC/C,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,KAAK,SAAS;oBAC5C,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,aAAa,GAAG,cAAc,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;oBACjE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACjD,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,KAAK,SAAS;oBAC5C,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,YAAY,GAAG,eAAe,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;oBACjE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAChD,IAAI,KAAK,IAAI,KAAK,EAAE,CAAC;oBAAC,IAAI,GAAG,KAAK,CAAC;gBAAC,CAAC;qBAAM,CAAC;oBAAC,IAAI,GAAG,KAAK,CAAC;gBAAC,CAAC;YAC9D,CAAC;YAED,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBAClB,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;oBACrC,eAAe,GAAG,CAAC,YAAY,GAAG,eAAe,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;oBACxE,YAAY,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;gBACpC,CAAC;gBACD,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;oBACrC,eAAe,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,YAAY,CAAC;gBACtD,CAAC;gBACD,cAAc,GAAG,eAAe,GAAG,MAAM,CAAC;YAC5C,CAAC;iBAAM,IAAI,IAAI,EAAE,CAAC;gBAChB,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;oBACrC,cAAc,GAAG,CAAC,aAAa,GAAG,cAAc,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;oBACvE,aAAa,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;gBACrC,CAAC;gBACD,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;oBACrC,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,aAAa,CAAC;gBACtD,CAAC;gBACD,eAAe,GAAG,cAAc,GAAG,MAAM,CAAC;YAC5C,CAAC;YAED,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAAE,YAAY,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,eAAe,CAAC;YACjH,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAAE,aAAa,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,cAAc,CAAC;YAEjH,wCAAwC;YACxC,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAC1C,CAAC,IAAI,IAAI,CAAC,CAAC,WAAW,KAAK,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,WAAW,KAAK,GAAG,CAAC,CACnE,CAAC;YACF,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC;QACpC,CAAC;aAAM,CAAC;YACN,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;gBACrC,eAAe,GAAG,CAAC,YAAY,GAAG,eAAe,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;gBACxE,YAAY,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;YACpC,CAAC;YACD,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;gBACrC,eAAe,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,YAAY,CAAC;YACtD,CAAC;YACD,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;gBACrC,cAAc,GAAG,CAAC,aAAa,GAAG,cAAc,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;gBACvE,aAAa,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;YACrC,CAAC;YACD,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;gBACrC,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,aAAa,CAAC;YACtD,CAAC;YACD,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC/C,CAAC;QAED,IAAI,CAAC,WAAW,CAAC,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,EAAE,aAAa,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,YAAY,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,cAAc,GAAG,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,eAAe,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;YACxL,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,aAAa,GAAG,IAAI,CAAC;YAChD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,GAAG,YAAY,GAAG,IAAI,CAAC;YAC9C,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,GAAG,cAAc,GAAG,IAAI,CAAC;YAClD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,eAAe,GAAG,IAAI,CAAC;YACpD,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG;gBACvB,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ;gBACzB,IAAI,EAAE,aAAa,GAAG,IAAI,CAAC,IAAI;gBAC/B,GAAG,EAAE,YAAY,GAAG,IAAI,CAAC,IAAI;gBAC7B,KAAK,EAAE,cAAc,GAAG,IAAI,CAAC,IAAI;gBACjC,MAAM,EAAE,eAAe,GAAG,IAAI,CAAC,IAAI;aACpC,CAAC;QACJ,CAAC;QAED,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IACvG,CAAC;SAAM,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,oBAAoB,CAAC,IAAI,KAAK,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;QACnF,8DAA8D;QAC9D,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;YACpD,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;YACvD,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;YACvD,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,iBAAiB,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,iBAAiB;gBAAE,OAAO;YACjF,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC;YAC9C,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;YACjC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,WAAW,CAAC;QAC5C,CAAC;QAED,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,kCAAkC;QAClC,IAAI,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,cAAc,CAAC,kBAAkB,CAAgB,CAAC;QAC1F,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,cAAc,CAAC,mBAAmB,CAAgB,CAAC;QACzF,IAAI,UAAU,GAAG,KAAK,CAAC,qBAAqB,EAAE,CAAC,IAAI,CAAC;QACpD,IAAI,SAAS,GAAG,KAAK,CAAC,qBAAqB,EAAE,CAAC,GAAG,CAAC;QAElD,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;QACnD,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;QAEnD,qCAAqC;QACrC,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,SAAS,CAAC;QACrC,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,UAAU,GAAG,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC;QACxI,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;QACrI,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;QAC9C,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;QAE/C,kCAAkC;IACpC,CAAC;SAAM,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;QAC3F,+CAA+C;QAC/C,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;QACjE,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YACnB,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC;YACzC,OAAO;QACT,CAAC;QAED,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,gBAAgB,EAAE,CAAC;QACnB,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,cAAc,CAAC,iBAAiB,CAAgB,CAAC;QACrF,GAAG,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC;QAEhC,kDAAkD;QAClD,IAAI,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;YAC1B,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACxB,MAAM,KAAK,GAAG,CAAC,CAAC,UAAU,EAAE,cAAc,CAAC,eAAe,CAAqB,CAAC;gBAChF,IAAI,KAAK;oBAAE,KAAK,CAAC,IAAI,EAAE,CAAC;YAC1B,CAAC,CAAC,CAAC;QACL,CAAC;QAED,kCAAkC;QAClC,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QACjD,IAAI,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;YAC1B,6DAA6D;YAC7D,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC;YACzD,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,MAAM,CAAC;YACvD,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YAClD,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YAEpD,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAA+B,CAAC;YAC1H,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YACzD,MAAM,IAAI,GAAG,aAAa,CAAC,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;YAEtH,2CAA2C;YAC3C,MAAM,WAAW,GAAG,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/D,MAAM,WAAW,GAAG,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;YAE9D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,MAAM,GAAG,WAAW,CAAC;gBACnE,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,MAAM,GAAG,WAAW,CAAC;gBACjE,IACE,OAAO,IAAI,CAAC;oBACZ,MAAM,IAAI,CAAC;oBACX,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI;oBACtG,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,EACvG,CAAC;oBACD,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;oBACzD,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;gBACzD,CAAC;YACH,CAAC;YAED,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACvC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAClC,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,KAAK;IAC3B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACrB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IACvB,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;IACjC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;IACrC,eAAe,EAAE,CAAC;IAClB,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IAC7B,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IAEpC,sFAAsF;IACtF,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QACvC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,cAAc,CAAC,kBAAkB,CAAgB,CAAC;QAC1F,IAAI,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;QAC3E,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC;QAC/B,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,IAAI,KAAK,CAAC,CAAC;QAChE,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC;QAEpC,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;YAC1D,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;QAC5E,CAAC;aAAM,IAAI,OAAO,EAAE,CAAC;YACnB,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;YACpE,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;YACtE,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,SAAS,CAAC,CAAC;QACnD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC;QAED,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC7D,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IAClC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,CAAC;IAC1B,wEAAwE;IACxE,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;QACtD,OAAO;IACT,CAAC;IAED,gCAAgC;IAChC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,sBAAsB;QACtB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,gBAAgB,CAAC,iBAAiB,CAA+B,CAAC;QAC3G,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,cAAc,CAAC,mBAAmB,CAAmB,CAAC;QACjG,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;QAE9D,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;aACf,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC;aACzB,GAAG,CAAC,EAAE,CAAC,EAAE;YACR,iEAAiE;YACjE,MAAM,KAAK,GAAG;gBACZ,GAAG,EAAE,CAAC,QAAQ;gBACd,GAAG,cAAc,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC;aAChH,CAAC;YACF,sCAAsC;YACtC,EAAE,CAAC,QAAQ,GAAG,KAAK,CAAC;YACpB,uCAAuC;YACvC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;QAC3C,CAAC,CAAC,CACL,CAAC;QACF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;QACxD,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IAClC,CAAC;SAAM,CAAC;QACN,mCAAmC;QACnC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAEzB,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,gBAAgB,CAAC,iBAAiB,CAA+B,CAAC;QAC3G,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACjB,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,qBAAqB,EAAE,CAAC;YAC/D,IAAI,CAAC,CAAC,OAAO,IAAI,MAAM,IAAI,CAAC,CAAC,OAAO,IAAI,GAAG,IAAI,CAAC,CAAC,OAAO,IAAI,IAAI,IAAI,CAAC,CAAC,OAAO,IAAI,KAAK,EAAE,CAAC;gBACvF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;gBACrB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;gBAClB,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;oBAC7B,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC;oBAC5C,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;gBACpB,CAAC;gBACD,yEAAyE;gBACzE,MAAM,GAAG,IAAI,CAAC;YAChB,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,2CAA2C;QAC3C,IAAI,MAAM,EAAE,CAAC;YACX,sBAAsB,EAAE,CAAC;QAC3B,CAAC;aAAM,CAAC;YACN,oBAAoB,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;QAC7C,CAAC;QAED,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;QAC7D,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC7D,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IAClC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,MAAsD;IACnF,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,cAAc,CAAC,mBAAmB,CAAgB,CAAC;IAC3F,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;IAC3E,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC1C,SAAS,CAAC,EAAE,GAAG,gBAAgB,CAAC;QAChC,SAAS,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;QACtC,SAAS,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC;QAC1B,SAAS,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC;QAC3B,SAAS,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC;QAC/B,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;QAChC,SAAS,CAAC,KAAK,CAAC,aAAa,GAAG,MAAM,CAAC;QACvC,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;QAChC,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IAC/B,CAAC;IAED,SAAS,CAAC,SAAS,GAAG,EAAE,CAAC;IACzB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;QACjC,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,aAAa,CAAC;QAC3C,IAAI,KAAK,CAAC,WAAW,KAAK,GAAG,EAAE,CAAC;YAC9B,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;YACxC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC;YACrB,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC;YACvB,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;YAC3B,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,oCAAoC,CAAC;QAC/D,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;YACvC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC;YACtB,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC;YAC1B,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC;YACxB,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,oCAAoC,CAAC;QAC9D,CAAC;QACD,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;IAC7E,IAAI,SAAS;QAAE,SAAS,CAAC,SAAS,GAAG,EAAE,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,SAAwB;IACvD,mDAAmD;IACnD,IAAI,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;QAC3B,OAAO;IACT,CAAC;IACD,mCAAmC;IACnC,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC5B,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,cAAc,CAAC,mBAAmB,CAAgB,CAAC;IAC3F,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACvB,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;IAC/B,IAAI,QAAQ,GAAG,KAAK,CAAC;IAErB,qCAAqC;IACrC,gBAAgB,EAAE,CAAC;IAEnB,oEAAoE;IACpE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,gBAAgB,CAAC,gCAAgC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;QACzF,GAAG,CAAC,UAAU,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACzG,CAAC,CAAC,CAAC;IAEH,sEAAsE;IACtE,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC5C,KAAK,CAAC,EAAE,GAAG,kBAAkB,CAAC;IAC9B,KAAK,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC/B,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,SAAS,CAAC,YAAY,GAAG,IAAI,GAAG,IAAI,CAAC;IACzD,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,aAAa,GAAG,IAAI,GAAG,IAAI,CAAC;IAC3D,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,cAAc,kBAAkB,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IAC/E,MAAM,GAAG,GAAG,kBAAkB,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACvE,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC5C,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC5C,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC5C,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;IACpD,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,wEAAwE,CAAC;IACjG,KAAK,CAAC,KAAK,CAAC,aAAa,GAAG,MAAM,CAAC;IACnC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC;IAC7B,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC;IAClC,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,aAAa,CAAC;IACtC,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,+CAA+C,CAAC;IACzE,KAAK,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IACnE,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC;IAC/D,KAAK,CAAC,KAAK,CAAC,QAAQ,GAAG,SAAS,CAAC;IACjC,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC;IAClC,KAAK,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;IAC7B,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC;IAClC,KAAK,CAAC,KAAK,CAAC,aAAa,GAAG,YAAY,CAAC;IACzC,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC,eAAe,CAAC;IAE5C,6BAA6B;IAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,KAAK,SAAS;QACtC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,IAAI,CAAC,MAAM,CAAC;QAC5D,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC;IAClE,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,QAAQ,EAAE,wBAAwB;QAChF,CAAC,CAAC,eAAe;QACjB,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS;YACvB,CAAC,CAAC,GAAG,QAAQ,EAAE,SAAS,IAAI,QAAQ,EAAE,QAAQ,EAAE;YAChD,CAAC,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,eAAe,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IACtF,MAAM,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAClD,aAAa,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;IAC1C,aAAa,CAAC,KAAK,CAAC,KAAK,GAAG,yBAAyB,CAAC;IACtD,aAAa,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC;IAC/C,aAAa,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC;IAC/B,aAAa,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC;IACjC,aAAa,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC;IAClC,aAAa,CAAC,KAAK,CAAC,UAAU,GAAG,GAAG,CAAC;IACrC,aAAa,CAAC,KAAK,CAAC,QAAQ,GAAG,GAAG,KAAK,GAAG,IAAI,KAAK,CAAC;IACpD,aAAa,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC;IAC1C,aAAa,CAAC,KAAK,CAAC,UAAU,GAAG,YAAY,CAAC;IAC9C,aAAa,CAAC,KAAK,CAAC,aAAa,GAAG,MAAM,CAAC;IAC3C,aAAa,CAAC,KAAK,CAAC,aAAa,GAAG,MAAM,CAAC;IAC3C,aAAa,CAAC,WAAW,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,4BAA4B,CAAC,IAAI,YAAY,EAAE,CAAC;IACxF,KAAK,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;IAEjC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAE7C,gCAAgC;IAChC,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC3C,IAAI,CAAC,EAAE,GAAG,aAAa,CAAC;IACxB,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC9B,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC;IAC7B,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC;IACxB,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,kBAAkB,CAAC;IAC1C,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,kBAAkB,CAAC;IACxC,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,UAAU,CAAC;IACrC,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,0BAA0B,CAAC;IACnD,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,OAAO,CAAC;IAC3B,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,SAAS,CAAC;IAChC,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,+CAA+C,CAAC;IACxE,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,MAAM,CAAC;IAClC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC;IAC5B,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,mCAAmC,CAAC;IAC3D,IAAI,CAAC,WAAW,GAAG,qCAAqC,CAAC;IACzD,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAE5C,MAAM,WAAW,GAAG,CAAC,CAAa,EAAE,EAAE;QACpC,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,QAAQ,GAAG,IAAI,CAAC;QAChB,MAAM,SAAS,GAAG,SAAS,CAAC,YAAY,GAAG,IAAI,CAAC;QAChD,MAAM,UAAU,GAAG,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC;QAElD,MAAM,SAAS,GAAG,KAAK,CAAC,qBAAqB,EAAE,CAAC;QAChD,MAAM,WAAW,GAAG,CAAC,CAAC,OAAO,IAAI,SAAS,CAAC,IAAI,IAAI,CAAC,CAAC,OAAO,IAAI,SAAS,CAAC,KAAK;YAC3E,CAAC,CAAC,OAAO,IAAI,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,IAAI,SAAS,CAAC,MAAM,CAAC;QAChE,MAAM,UAAU,GAAG,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC;QAEnC,kDAAkD;QAClD,IAAI,WAAW,GAAG,QAAQ,CAAC,cAAc,CAAC,gBAAgB,CAAqB,CAAC;QAChF,IAAI,CAAC,WAAW,IAAI,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YAChD,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YAC9C,WAAW,CAAC,EAAE,GAAG,gBAAgB,CAAC;YAClC,WAAW,CAAC,WAAW,GAAG,oCAAoC,CAAC;YAC/D,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QACzC,CAAC;aAAM,IAAI,CAAC,WAAW,IAAI,CAAC,UAAU,IAAI,WAAW,EAAE,CAAC;YACtD,WAAW,CAAC,MAAM,EAAE,CAAC;QACvB,CAAC;QAED,2DAA2D;QAC3D,sEAAsE;QACtE,IAAI,WAAW,EAAE,CAAC;YAChB,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,SAAS,CAAC;YACnC,KAAK,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC;YAC1B,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,GAAG,SAAS,CAAC,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC;YACxD,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,GAAG,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC;YACtD,IAAI,IAAI,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC;YAC7B,IAAI,GAAG,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,CAAC;YAE7B,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAA+B,CAAC;YACvH,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YACnF,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,SAAS,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;YACrH,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,UAAU,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;YAEnH,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzC,CAAC;aAAM,IAAI,UAAU,EAAE,CAAC;YACtB,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,SAAS,CAAC;YACnC,KAAK,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;YAC5B,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,SAAS,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;YACtD,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,UAAU,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;YACtD,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC;YAClC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,GAAG,EAAE;QACnB,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QACvD,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACnD,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACnD,KAAK,CAAC,MAAM,EAAE,CAAC;QACf,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7B,eAAe,EAAE,CAAC;QAClB,MAAM,WAAW,GAAG,QAAQ,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;QAC9D,IAAI,WAAW;YAAE,WAAW,CAAC,MAAM,EAAE,CAAC;QACtC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,gBAAgB,CAAC,gCAAgC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YACzF,GAAG,CAAC,UAAU,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAC5G,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;QAChC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;IACjC,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,CAAC,CAAa,EAAE,EAAE;QAClC,qFAAqF;QACrF,IAAI,CAAC,QAAQ;YAAE,OAAO;QAEtB,MAAM,SAAS,GAAG,KAAK,CAAC,qBAAqB,EAAE,CAAC;QAChD,MAAM,WAAW,GAAG,CAAC,CAAC,OAAO,IAAI,SAAS,CAAC,IAAI,IAAI,CAAC,CAAC,OAAO,IAAI,SAAS,CAAC,KAAK;YAC3E,CAAC,CAAC,OAAO,IAAI,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,IAAI,SAAS,CAAC,MAAM,CAAC;QAEhE,OAAO,EAAE,CAAC;QAEV,IAAI,WAAW,EAAE,CAAC;YAEhB,MAAM,SAAS,GAAG,SAAS,CAAC,YAAY,GAAG,IAAI,CAAC;YAChD,MAAM,UAAU,GAAG,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC;YAClD,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,GAAG,SAAS,CAAC,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC;YACxD,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,GAAG,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC;YACtD,IAAI,IAAI,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC;YAC7B,IAAI,GAAG,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,CAAC;YAE7B,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAA+B,CAAC;YACvH,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YACnF,IAAI,IAAI,CAAC,CAAC,KAAK,IAAI;gBAAE,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;YACnC,IAAI,IAAI,CAAC,CAAC,KAAK,IAAI;gBAAE,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;YAElC,MAAM,QAAQ,GAAG,GAAG,GAAG,IAAI,CAAC;YAC5B,MAAM,SAAS,GAAG,IAAI,GAAG,IAAI,CAAC;YAE9B,6DAA6D;YAC7D,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;YAC9D,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;YAChE,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;YAC7F,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,GAAG,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC;YAE7F,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC;YAEjG,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;YAC7C,MAAM,OAAO,GAAkB;gBAC7B,MAAM,EAAE,QAAQ;gBAChB,IAAI,EAAE;oBACJ,EAAE;oBACF,KAAK,EAAE,SAAS,CAAC,eAAe,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBAC9D,eAAe,EAAE,SAAS,CAAC,eAAe;oBAC1C,WAAW,EAAE,SAAS,CAAC,WAAW;oBAClC,UAAU,EAAE,SAAS,CAAC,UAAU;oBAChC,cAAc,EAAE,KAAK;oBACrB,GAAG,EAAE,cAAc;oBACnB,IAAI,EAAE,eAAe;oBACrB,UAAU,EAAE,KAAK;oBACjB,MAAM,EAAE,SAAS,CAAC,aAAa;oBAC/B,KAAK,EAAE,SAAS,CAAC,YAAY;oBAC7B,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;oBACrD,QAAQ,EAAE,IAAI,CAAC,UAAU;oBACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,KAAK,EAAE,MAAM;oBACb,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,IAAI,EAAE,IAAI,CAAC,OAAO;oBAClB,KAAK,EAAE,IAAI;oBACX,KAAK,EAAE,EAAE;oBACT,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,IAAI;oBAChB,QAAQ,EAAE,SAAS,CAAC,eAAe,KAAK,UAAU;oBAClD,OAAO,EAAE,IAAI;oBACb,WAAW,EAAE,IAAI;oBACjB,UAAU,EAAE,IAAI;oBAChB,UAAU,EAAE,IAAI;oBAChB,EAAE,EAAE,eAAe,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBAC3F,EAAE,EAAE,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;oBAC1F,EAAE,EAAE,CAAC,eAAe,GAAG,SAAS,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK;oBAC5F,EAAE,EAAE,CAAC,cAAc,GAAG,SAAS,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,MAAM;oBAC7F,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE;iBACd;aAClB,CAAC;YAEF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,CAAC,CAAgB,EAAE,EAAE;QACrC,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;YACvB,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,CAAC,CAAC,eAAe,EAAE,CAAC;YACpB,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC,CAAC;IAEF,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC;IAClC,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IACpD,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAChD,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAK;IACpC,iFAAiF;IACjF,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;QACtD,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACjE,IAAI,CAAC;QACH,IAAI,IAAI,GAAkB,IAAI,CAAC,iBAAkC,CAAC;QAElE,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,WAAW,KAAK,WAAW,EAAE,CAAC;YACnE,IAAI,GAAG;gBACL,KAAK,EAAE,MAAM;gBACb,eAAe,EAAE,MAAM;gBACvB,WAAW,EAAE,MAAM;gBACnB,UAAU,EAAE,CAAC;gBACb,aAAa,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC,aAAa;gBACnD,YAAY,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC,YAAY;aAClD,CAAC;QACJ,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,WAAW,KAAK,WAAW,EAAE,CAAC;YAC1D,IAAI,GAAG;gBACL,KAAK,EAAE,WAAW;gBAClB,eAAe,EAAE,WAAW;gBAC5B,WAAW,EAAE,OAAO;gBACpB,UAAU,EAAE,IAAI;gBAChB,aAAa,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC,aAAa;gBACxD,YAAY,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC,YAAY;aACvD,CAAC;QACJ,CAAC;aAAM,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,WAAW,KAAK,OAAO,EAAE,CAAC;YAC7D,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC;QAC3C,CAAC;QACD,sCAAsC;QACtC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC;QACjG,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,cAAc,CAAC,mBAAmB,CAAgB,CAAC;QACzF,qEAAqE;QACrE,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;QAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;QAC9D,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;QAChE,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC;QAC3D,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC;QAC7D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;QAC3E,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;QAE3E,8CAA8C;QAC9C,MAAM,OAAO,GAAkB;YAC7B,MAAM,EAAE,QAAQ;YAChB,IAAI,EAAE;gBACJ,EAAE;gBACF,KAAK,EAAE,IAAI,CAAC,eAAe,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACzD,eAAe,EAAE,IAAI,CAAC,eAAe;gBACrC,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,WAAW,EAAE,KAAK;gBAClB,GAAG;gBACH,IAAI;gBACJ,UAAU,EAAE,KAAK;gBACjB,MAAM,EAAE,IAAI,CAAC,aAAa;gBAC1B,KAAK,EAAE,IAAI,CAAC,YAAY;gBACxB,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;gBACrD,QAAQ,EAAE,iBAAiB;gBAC3B,QAAQ,EAAE,iBAAiB;gBAC3B,KAAK,EAAE,MAAM;gBACb,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,IAAI,EAAE,IAAI,CAAC,OAAO;gBAClB,KAAK,EAAE,IAAI;gBACX,KAAK,EAAE,EAAE;gBACT,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAE,IAAI;gBAChB,QAAQ,EAAE,IAAI,CAAC,eAAe,KAAK,UAAU;gBAC7C,OAAO,EAAE,IAAI;gBACb,WAAW,EAAE,IAAI;gBACjB,UAAU,EAAE,IAAI;gBAChB,UAAU,EAAE,IAAI;gBAChB,EAAE,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACrE,EAAE,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBACpE,EAAE,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK;gBAC5E,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,MAAM;gBAC7E,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE;aACd;SAClB,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IAC9B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnB,CAAC;AACH,CAAC","sourcesContent":["import { LSApiElement } from '../../types/LSApiElement';\nimport { LSMutateEvent } from '../../types/LSMutateEvent';\nimport { findDimensions, findIn, recalculateCoordinates } from './editorCalculator';\nimport { IToolboxField } from '../interfaces/IToolboxField';\nimport { FIELD_DEFAULTS, DEFAULT_FONT_SIZE, DEFAULT_FONT_NAME } from '../../constants/fieldDefaults';\nimport { setLastClickPosition, clearLastClickPosition } from './clipboard';\nimport { snapshotField } from './history';\nimport { calculateSnap, calculateResizeSnap } from './snapHelper';\nimport { defaultRolePalette } from './defaultPalette';\nimport { dvI18n } from '../../i18n/i18n';\n\nconst preventSelect = (e: Event) => e.preventDefault();\n\nfunction showMoveBlockedTooltip(event: MouseEvent) {\n let tooltip = this.component.shadowRoot.getElementById('ls-move-blocked-tooltip');\n if (!tooltip) {\n tooltip = document.createElement('div');\n tooltip.id = 'ls-move-blocked-tooltip';\n tooltip.style.position = 'fixed';\n tooltip.style.padding = '0.375rem 0.75rem';\n tooltip.style.borderRadius = '0.5rem';\n tooltip.style.background = 'var(--gray-100, #45484d)';\n tooltip.style.color = 'white';\n tooltip.style.fontSize = '0.75rem';\n tooltip.style.fontFamily = 'var(--font-family, IBM Plex Sans, sans-serif)';\n tooltip.style.pointerEvents = 'none';\n tooltip.style.zIndex = '10000';\n tooltip.style.whiteSpace = 'nowrap';\n tooltip.textContent = dvI18n.t('fieldproperties.cannotmovemultipage');\n this.component.shadowRoot.appendChild(tooltip);\n }\n tooltip.style.left = (event.clientX + 12) + 'px';\n tooltip.style.top = (event.clientY + 12) + 'px';\n}\n\nfunction hideMoveBlockedTooltip() {\n const tooltip = this.component.shadowRoot?.getElementById('ls-move-blocked-tooltip');\n if (tooltip) tooltip.remove();\n}\n\nfunction disableSelection() {\n document.body.style.userSelect = 'none';\n document.body.style.webkitUserSelect = 'none';\n document.addEventListener('selectstart', preventSelect);\n}\n\nfunction enableSelection() {\n document.body.style.userSelect = '';\n document.body.style.webkitUserSelect = '';\n document.removeEventListener('selectstart', preventSelect);\n}\n\nexport function updateSelectionBox() {\n var box = this.component.shadowRoot.getElementById('ls-box-selector') as HTMLElement;\n const pageSelected = this.selected?.filter(f => f.dataItem?.page === this.pageNum);\n if (!pageSelected || pageSelected.length < 2) {\n box.style.visibility = 'hidden';\n return;\n }\n\n let minLeft = Infinity, minTop = Infinity, maxRight = -Infinity, maxBottom = -Infinity;\n\n pageSelected.forEach(f => {\n const left = f.offsetLeft;\n const top = f.offsetTop;\n const right = left + f.offsetWidth;\n const bottom = top + f.offsetHeight;\n if (left < minLeft) minLeft = left;\n if (top < minTop) minTop = top;\n if (right > maxRight) maxRight = right;\n if (bottom > maxBottom) maxBottom = bottom;\n });\n\n box.style.left = minLeft + 'px';\n box.style.top = minTop + 'px';\n box.style.width = (maxRight - minLeft) + 'px';\n box.style.height = (maxBottom - minTop) + 'px';\n box.style.visibility = 'visible';\n}\n\nlet mousetimer = null;\n\nexport function debounce(data, delay) {\n if (mousetimer) clearTimeout(mousetimer);\n\n mousetimer = setTimeout(() => {\n this.mutate.emit([data]);\n }, delay);\n}\n\nconst MIN_DRAG_DISTANCE = 5;\n\nexport function mouseDown(e) {\n if (this._isToolboxDragging) return;\n // Disable mouse interactions in preview mode or when template is locked\n if (this.mode === 'preview' || this._template?.locked) {\n return;\n }\n // Only process if mousedown target is the frame, canvas, wrapper itself, or an editor field.\n // This prevents floating UI children (select-menu) from triggering drags.\n const frame = this.component.shadowRoot.getElementById('ls-document-frame');\n const wrapper = this.component.shadowRoot.getElementById('document-frame-wrapper');\n if (!frame) return;\n const target = e.target as HTMLElement;\n const isValidTarget = target === frame || target === wrapper || target?.id === 'pdf-canvas' || target?.tagName?.toLowerCase() === 'canvas';\n const isFieldTarget = target?.tagName?.toLowerCase() === 'ls-editor-field';\n if (!isValidTarget && !isFieldTarget) return;\n\n // Find if this was\n // - a hit on a field edge RESIZE\n // - a hit on the middle of a field MOVE\n // - a hit on the background document SELECTMULTIPLE with a box\n this.hitField = null;\n const fields = this.component.shadowRoot.querySelectorAll('ls-editor-field');\n\n fields.forEach(f => {\n const { left, top, height, width, bottom, right } = f.getBoundingClientRect();\n const fdims = { left: f.offsetLeft, top: f.offsetTop, height, width, x: e.screenX, y: e.screenY };\n this.startMouse = fdims;\n // Scale edge threshold for small fields\n const edgeX = Math.min(8, width * 0.25);\n const edgeY = Math.min(8, height * 0.25);\n const cornerX = Math.min(16, width * 0.35);\n const cornerY = Math.min(16, height * 0.35);\n // corners (check before edges)\n if (Math.abs(e.clientX - right) < cornerX && Math.abs(e.clientY - bottom) < cornerY) {\n this.edgeSide = 'se';\n this.hitField = f;\n } else if (Math.abs(e.clientX - left) < cornerX && Math.abs(e.clientY - top) < cornerY) {\n this.edgeSide = 'nw';\n this.hitField = f;\n } else if (Math.abs(e.clientX - right) < cornerX && Math.abs(e.clientY - top) < cornerY) {\n this.edgeSide = 'ne';\n this.hitField = f;\n } else if (Math.abs(e.clientX - left) < cornerX && Math.abs(e.clientY - bottom) < cornerY) {\n this.edgeSide = 'sw';\n this.hitField = f;\n // west edge\n } else if (Math.abs(e.clientX - left) < edgeX && e.clientY >= top && e.clientY <= bottom) {\n this.edgeSide = 'w';\n this.hitField = f;\n // right / east edge\n } else if (Math.abs(e.clientX - right) < edgeX && e.clientY >= top && e.clientY <= bottom) {\n this.edgeSide = 'e';\n this.hitField = f;\n // north edge\n } else if (Math.abs(e.clientY - top) < edgeY && e.clientX >= left && e.clientX <= right) {\n this.edgeSide = 'n';\n this.hitField = f;\n // south edge\n } else if (Math.abs(e.clientY - bottom) < edgeY && e.clientX >= left && e.clientX <= right) {\n this.edgeSide = 's';\n this.hitField = f;\n } else if (e.clientY <= bottom && e.clientY >= top && e.clientX >= left && e.clientX <= right) {\n this.edgeSide = null;\n this.hitField = f;\n }\n });\n\n if (this.hitField && e.shiftKey === false && e.altKey === false) {\n var box = this.component.shadowRoot.getElementById('ls-box-selector') as HTMLElement;\n box.style.visibility = 'hidden';\n\n // Snapshot field state before any resize/move begins\n snapshotField(this.hitField.dataItem);\n // Snapshot all currently selected fields (for multi-field move undo)\n this.selected.forEach(f => snapshotField(f.dataItem));\n\n // mouse down on a field, select it and note the start location\n if (this.hitField.selected === false) {\n // unselect all other fields\n fields.forEach(fu => {\n fu.selected = false;\n });\n this.selected = [this.hitField];\n this.selectFields.emit([this.hitField.dataItem]);\n }\n\n const { height, width } = this.hitField.getBoundingClientRect();\n const fdims = { left: this.hitField.offsetLeft, top: this.hitField.offsetTop, height, width, x: e.screenX, y: e.screenY };\n this.startMouse = fdims;\n\n this.startLocations = this.selected.map(f => {\n const { height, width } = f.getBoundingClientRect();\n const beHtml = f as HTMLElement;\n return { top: beHtml.offsetTop, left: beHtml.offsetLeft, height, width };\n });\n this.selectionBox = null;\n } else if (this.hitField && e.altKey === true) {\n // Alt+click: remove field from selection\n if (this.hitField.selected === true) {\n this.hitField.selected = false;\n this.selected = this.selected.filter(f => f !== this.hitField);\n this.selectFields.emit(this.selected.map(si => si.dataItem));\n }\n this.hitField = null;\n this.startMouse = null;\n this.startLocations = null;\n this.selectionBox = null;\n updateSelectionBox.bind(this)();\n } else if (this.hitField && e.shiftKey === true) {\n var box = this.component.shadowRoot.getElementById('ls-box-selector') as HTMLElement;\n box.style.visibility = 'hidden';\n\n if (this.hitField.selected === true) {\n // Toggle off: remove from selection\n this.hitField.selected = false;\n this.selected = this.selected.filter(f => f !== this.hitField);\n this.selectFields.emit(this.selected.map(si => si.dataItem));\n this.hitField = null;\n this.startMouse = null;\n this.startLocations = null;\n this.selectionBox = null;\n updateSelectionBox.bind(this)();\n } else {\n // Add to selection\n this.hitField.selected = true;\n this.selected = [...this.selected, this.hitField];\n this.selectFields.emit(this.selected.map(si => si.dataItem));\n\n const { height, width } = this.hitField.getBoundingClientRect();\n const fdims = { left: this.hitField.offsetLeft, top: this.hitField.offsetTop, height, width, x: e.screenX, y: e.screenY };\n this.startMouse = fdims;\n\n this.startLocations = this.selected.map(f => {\n const { height, width } = f.getBoundingClientRect();\n const beHtml = f as HTMLElement;\n return { top: beHtml.offsetTop, left: beHtml.offsetLeft, height, width };\n });\n this.selectionBox = null;\n }\n } else {\n // move down on empty space, store pending start for selection box\n this.startLocations = null;\n this.startMouse = null;\n this.selectionBox = null;\n this._pendingSelectionBox = { x: e.clientX, y: e.clientY };\n disableSelection();\n\n if (!e.shiftKey && !e.altKey) {\n this.unselect();\n this.selectFields.emit([]);\n this.selected = [];\n updateSelectionBox.bind(this)();\n }\n }\n}\n\nexport function outOfBounds(futureField) {\n return (\n futureField.height <= 5 ||\n futureField.left < 0 ||\n futureField.top < 0 ||\n futureField.left + futureField.width >= futureField.pageDimensions.width ||\n futureField.top + futureField.height >= futureField.pageDimensions.height\n );\n}\nexport function mouseMove(event) {\n event.preventDefault();\n if (this._isToolboxDragging) return;\n // Disable mouse move interactions in preview mode or when template is locked\n if (this.mode === 'preview' || this._template?.locked) {\n return;\n }\n\n // We have the mouse held down on a field edge to resize it.\n if (this.hitField && this.edgeSide && this.startMouse && event.buttons === 1) {\n disableSelection();\n const movedX = event.screenX - this.startMouse.x;\n const movedY = event.screenY - this.startMouse.y;\n var scale = this.hitField.dataItem.formElementType === 'signature' && this._template.fixSignatureScale;\n\n // Calculate candidate dimensions before snapping\n let candidateLeft = this.startMouse.left;\n let candidateTop = this.startMouse.top;\n let candidateWidth = this.startMouse.width;\n let candidateHeight = this.startMouse.height;\n\n switch (this.edgeSide) {\n case 'n':\n if (scale) {\n candidateHeight = this.startMouse.height - movedY;\n candidateWidth = candidateHeight * (this.startMouse.width / this.startMouse.height);\n } else {\n candidateTop = this.startMouse.top + movedY;\n candidateHeight = this.startMouse.height - movedY;\n }\n break;\n case 's':\n if (scale) {\n candidateHeight = this.startMouse.height + movedY;\n candidateWidth = candidateHeight * (this.startMouse.width / this.startMouse.height);\n } else {\n candidateHeight = this.startMouse.height + movedY;\n }\n break;\n case 'e':\n if (scale) {\n candidateWidth = this.startMouse.width + movedX;\n candidateHeight = candidateWidth * (this.startMouse.height / this.startMouse.width);\n } else {\n candidateWidth = this.startMouse.width + movedX;\n }\n break;\n case 'w':\n if (scale) {\n candidateWidth = this.startMouse.width - movedX;\n candidateHeight = candidateWidth * (this.startMouse.height / this.startMouse.width);\n candidateLeft = this.startMouse.left + movedX;\n } else {\n candidateLeft = this.startMouse.left + movedX;\n candidateWidth = this.startMouse.width - movedX;\n }\n break;\n case 'se':\n if (scale) {\n candidateWidth = this.startMouse.width + movedX;\n candidateHeight = candidateWidth / (this.startMouse.width / this.startMouse.height);\n } else {\n candidateWidth = this.startMouse.width + movedX;\n candidateHeight = this.startMouse.height + movedY;\n }\n break;\n case 'nw':\n if (scale) {\n candidateWidth = this.startMouse.width - movedX;\n candidateHeight = candidateWidth / (this.startMouse.width / this.startMouse.height);\n candidateLeft = this.startMouse.left + movedX;\n candidateTop = this.startMouse.top + (this.startMouse.height - candidateHeight);\n } else {\n candidateLeft = this.startMouse.left + movedX;\n candidateTop = this.startMouse.top + movedY;\n candidateWidth = this.startMouse.width - movedX;\n candidateHeight = this.startMouse.height - movedY;\n }\n break;\n case 'ne':\n if (scale) {\n candidateWidth = this.startMouse.width + movedX;\n candidateHeight = candidateWidth / (this.startMouse.width / this.startMouse.height);\n candidateTop = this.startMouse.top + (this.startMouse.height - candidateHeight);\n } else {\n candidateWidth = this.startMouse.width + movedX;\n candidateTop = this.startMouse.top + movedY;\n candidateHeight = this.startMouse.height - movedY;\n }\n break;\n case 'sw':\n if (scale) {\n candidateWidth = this.startMouse.width - movedX;\n candidateHeight = candidateWidth / (this.startMouse.width / this.startMouse.height);\n candidateLeft = this.startMouse.left + movedX;\n } else {\n candidateLeft = this.startMouse.left + movedX;\n candidateWidth = this.startMouse.width - movedX;\n candidateHeight = this.startMouse.height + movedY;\n }\n break;\n }\n\n // Snap active resize edges\n const allFields = Array.from(this.component.shadowRoot.querySelectorAll('ls-editor-field')) as HTMLLsEditorFieldElement[];\n const resizeSnap = calculateResizeSnap(\n candidateLeft, candidateTop, candidateWidth, candidateHeight,\n this.edgeSide, allFields, this.pageNum, [this.hitField.dataItem.id]\n );\n\n if (scale) {\n const aspect = this.startMouse.width / this.startMouse.height;\n const hasH = resizeSnap.edges.e !== undefined || resizeSnap.edges.w !== undefined;\n const hasV = resizeSnap.edges.n !== undefined || resizeSnap.edges.s !== undefined;\n\n // When both axes snap on a corner, pick the closer one\n let useH = hasH;\n let useV = hasV;\n if (hasH && hasV && this.edgeSide.length === 2) {\n const hDist = resizeSnap.edges.e !== undefined\n ? Math.abs((candidateLeft + candidateWidth) - resizeSnap.edges.e)\n : Math.abs(candidateLeft - resizeSnap.edges.w);\n const vDist = resizeSnap.edges.s !== undefined\n ? Math.abs((candidateTop + candidateHeight) - resizeSnap.edges.s)\n : Math.abs(candidateTop - resizeSnap.edges.n);\n if (hDist <= vDist) { useV = false; } else { useH = false; }\n }\n\n if (useV && !useH) {\n if (resizeSnap.edges.n !== undefined) {\n candidateHeight = (candidateTop + candidateHeight) - resizeSnap.edges.n;\n candidateTop = resizeSnap.edges.n;\n }\n if (resizeSnap.edges.s !== undefined) {\n candidateHeight = resizeSnap.edges.s - candidateTop;\n }\n candidateWidth = candidateHeight * aspect;\n } else if (useH) {\n if (resizeSnap.edges.w !== undefined) {\n candidateWidth = (candidateLeft + candidateWidth) - resizeSnap.edges.w;\n candidateLeft = resizeSnap.edges.w;\n }\n if (resizeSnap.edges.e !== undefined) {\n candidateWidth = resizeSnap.edges.e - candidateLeft;\n }\n candidateHeight = candidateWidth / aspect;\n }\n\n if (this.edgeSide.includes('n')) candidateTop = (this.startMouse.top + this.startMouse.height) - candidateHeight;\n if (this.edgeSide.includes('w')) candidateLeft = (this.startMouse.left + this.startMouse.width) - candidateWidth;\n\n // Only show guides for the axis we used\n const guides = resizeSnap.guides.filter(g =>\n (useH && g.orientation === 'v') || (useV && g.orientation === 'h')\n );\n showSnapGuides.bind(this)(guides);\n } else {\n if (resizeSnap.edges.n !== undefined) {\n candidateHeight = (candidateTop + candidateHeight) - resizeSnap.edges.n;\n candidateTop = resizeSnap.edges.n;\n }\n if (resizeSnap.edges.s !== undefined) {\n candidateHeight = resizeSnap.edges.s - candidateTop;\n }\n if (resizeSnap.edges.w !== undefined) {\n candidateWidth = (candidateLeft + candidateWidth) - resizeSnap.edges.w;\n candidateLeft = resizeSnap.edges.w;\n }\n if (resizeSnap.edges.e !== undefined) {\n candidateWidth = resizeSnap.edges.e - candidateLeft;\n }\n showSnapGuides.bind(this)(resizeSnap.guides);\n }\n\n if (!outOfBounds({ ...this.hitField.dataItem, left: candidateLeft / this.zoom, top: candidateTop / this.zoom, width: candidateWidth / this.zoom, height: candidateHeight / this.zoom })) {\n this.hitField.style.left = candidateLeft + 'px';\n this.hitField.style.top = candidateTop + 'px';\n this.hitField.style.width = candidateWidth + 'px';\n this.hitField.style.height = candidateHeight + 'px';\n this.hitField.dataItem = {\n ...this.hitField.dataItem,\n left: candidateLeft / this.zoom,\n top: candidateTop / this.zoom,\n width: candidateWidth / this.zoom,\n height: candidateHeight / this.zoom,\n };\n }\n\n debounce.bind(this)({ action: 'update', data: recalculateCoordinates(this.hitField.dataItem) }, 700);\n } else if ((this.selectionBox || this._pendingSelectionBox) && event.buttons === 1) {\n // Check minimum drag distance before activating selection box\n if (!this.selectionBox && this._pendingSelectionBox) {\n const dx = event.clientX - this._pendingSelectionBox.x;\n const dy = event.clientY - this._pendingSelectionBox.y;\n if (Math.abs(dx) < MIN_DRAG_DISTANCE && Math.abs(dy) < MIN_DRAG_DISTANCE) return;\n this.selectionBox = this._pendingSelectionBox;\n this._pendingSelectionBox = null;\n this.component.style.cursor = 'crosshair';\n }\n\n this.isBoxing = true;\n // draw the multiple selection box\n var dragBox = this.component.shadowRoot.getElementById('ls-drag-selector') as HTMLElement;\n var frame = this.component.shadowRoot.getElementById('ls-document-frame') as HTMLElement;\n var leftOffset = frame.getBoundingClientRect().left;\n var topOffset = frame.getBoundingClientRect().top;\n\n const movedX = event.clientX - this.selectionBox.x;\n const movedY = event.clientY - this.selectionBox.y;\n\n // allow for the frame to be scrolled\n dragBox.style.visibility = 'visible';\n dragBox.style.left = (this.selectionBox.x > event.clientX ? event.clientX : this.selectionBox.x) - leftOffset + frame.scrollLeft + 'px';\n dragBox.style.top = (this.selectionBox.y > event.clientY ? event.clientY : this.selectionBox.y) - topOffset + frame.scrollTop + 'px';\n dragBox.style.width = Math.abs(movedX) + 'px';\n dragBox.style.height = Math.abs(movedY) + 'px';\n\n // Move one or more selected items\n } else if (this.startLocations && !this.edgeSide && this.startMouse && event.buttons === 1) {\n // Block move if selection spans multiple pages\n const pages = new Set(this.selected?.map(f => f.dataItem?.page));\n if (pages.size > 1) {\n showMoveBlockedTooltip.bind(this)(event);\n return;\n }\n\n this.isMoving = true;\n disableSelection();\n var box = this.component.shadowRoot.getElementById('ls-box-selector') as HTMLElement;\n box.style.visibility = 'hidden';\n\n // Dismiss any open date picker when moving fields\n if (this.selected?.length) {\n this.selected.forEach(f => {\n const input = f.shadowRoot?.getElementById('editing-input') as HTMLInputElement;\n if (input) input.blur();\n });\n }\n\n // Move one or more selected items\n const movedX = event.screenX - this.startMouse.x;\n const movedY = event.screenY - this.startMouse.y;\n if (this.selected?.length) {\n // Calculate snap based on the primary (first) selected field\n const primaryLeft = this.startLocations[0].left + movedX;\n const primaryTop = this.startLocations[0].top + movedY;\n const primaryWidth = this.startLocations[0].width;\n const primaryHeight = this.startLocations[0].height;\n\n const allFields = Array.from(this.component.shadowRoot.querySelectorAll('ls-editor-field')) as HTMLLsEditorFieldElement[];\n const excludeIds = this.selected.map(s => s.dataItem.id);\n const snap = calculateSnap(primaryLeft, primaryTop, primaryWidth, primaryHeight, allFields, this.pageNum, excludeIds);\n\n // Apply snap offset to all selected fields\n const snapOffsetX = snap.x !== null ? snap.x - primaryLeft : 0;\n const snapOffsetY = snap.y !== null ? snap.y - primaryTop : 0;\n\n for (let i = 0; i < this.selected.length; i++) {\n const newLeft = this.startLocations[i].left + movedX + snapOffsetX;\n const newTop = this.startLocations[i].top + movedY + snapOffsetY;\n if (\n newLeft >= 0 &&\n newTop >= 0 &&\n newLeft <= (this.pageDimensions[this.pageNum - 1].width - this.selected[i].dataItem.width) * this.zoom &&\n newTop <= (this.pageDimensions[this.pageNum - 1].height - this.selected[i].dataItem.height) * this.zoom\n ) {\n this.selected[i].style.left = Math.round(newLeft) + 'px';\n this.selected[i].style.top = Math.round(newTop) + 'px';\n }\n }\n\n showSnapGuides.bind(this)(snap.guides);\n updateSelectionBox.bind(this)();\n }\n }\n}\n\nexport function mouseUp(event) {\n this.edgeSide = null;\n this.startMouse = null;\n this._pendingSelectionBox = null;\n this.component.style.cursor = 'auto';\n enableSelection();\n clearSnapGuides.bind(this)();\n hideMoveBlockedTooltip.bind(this)();\n\n // find what was inside the selection box emit the select event and change their style\n if (this.selectionBox && this.isBoxing) {\n this.isBoxing = false;\n var dragBox = this.component.shadowRoot.getElementById('ls-drag-selector') as HTMLElement;\n var fields = this.component.shadowRoot.querySelectorAll('ls-editor-field');\n const isShift = event.shiftKey;\n const isAlt = event.altKey;\n this.selectionBox = null;\n const found = findIn(fields, dragBox, !isAlt, isShift || isAlt);\n dragBox.style.visibility = 'hidden';\n\n if (isAlt) {\n const removeIds = new Set(found.map(f => f.dataItem?.id));\n found.forEach(f => { f.selected = false; });\n this.selected = this.selected.filter(f => !removeIds.has(f.dataItem?.id));\n } else if (isShift) {\n const existingIds = new Set(this.selected.map(f => f.dataItem?.id));\n const newFields = found.filter(f => !existingIds.has(f.dataItem?.id));\n this.selected = [...this.selected, ...newFields];\n } else {\n this.selected = Array.from(found);\n }\n\n this.selectFields.emit(this.selected.map(fx => fx.dataItem));\n updateSelectionBox.bind(this)();\n }\n}\n\nexport function mouseClick(e) {\n // Disable click interactions in preview mode or when template is locked\n if (this.mode === 'preview' || this._template?.locked) {\n return;\n }\n \n // check we're not moving fields\n if (this.isMoving) {\n // End dragging fields\n this.isMoving = false;\n const fields = this.component.shadowRoot.querySelectorAll('ls-editor-field') as HTMLLsEditorFieldElement[];\n const divFrame = this.component.shadowRoot.getElementById('ls-document-frame') as HTMLDivElement;\n const selected = Array.from(fields).filter(fx => fx.selected);\n\n this.mutate.emit(\n Array.from(fields)\n .filter(fx => fx.selected)\n .map(fx => {\n // Calculate new positions and update the dataItem on the control\n const delta = {\n ...fx.dataItem,\n ...findDimensions(divFrame, fx, fx.dataItem.pageDimensions.height, fx.dataItem.pageDimensions.width, this.zoom),\n };\n // update the data in the html element\n fx.dataItem = delta;\n // send an update event to be processed\n return { action: 'update', data: delta };\n }),\n );\n this.selectFields.emit(selected.map(fx => fx.dataItem));\n updateSelectionBox.bind(this)();\n } else {\n // reset the selection box location\n this.selectionBox = null;\n\n let hitAny = false;\n const fields = this.component.shadowRoot.querySelectorAll('ls-editor-field') as HTMLLsEditorFieldElement[];\n fields.forEach(f => {\n const { left, top, bottom, right } = f.getBoundingClientRect();\n if (e.clientY <= bottom && e.clientY >= top && e.clientX >= left && e.clientX <= right) {\n this.edgeSide = null;\n this.hitField = f;\n if (!e.shiftKey && !e.altKey) {\n fields.forEach(ft => (ft.selected = false));\n f.selected = true;\n }\n // shift/alt+click: mouseDown already toggled selected state, preserve it\n hitAny = true;\n }\n });\n\n // Track click position for paste targeting\n if (hitAny) {\n clearLastClickPosition();\n } else {\n setLastClickPosition(e.clientX, e.clientY);\n }\n\n this.selected = Array.from(fields).filter(fx => fx.selected);\n this.selectFields.emit(this.selected.map(fx => fx.dataItem));\n updateSelectionBox.bind(this)();\n }\n}\n\nexport function showSnapGuides(guides: { orientation: 'h' | 'v'; position: number }[]) {\n const frame = this.component.shadowRoot.getElementById('ls-document-frame') as HTMLElement;\n let container = this.component.shadowRoot.getElementById('ls-snap-guides');\n if (!container) {\n container = document.createElement('div');\n container.id = 'ls-snap-guides';\n container.style.position = 'absolute';\n container.style.top = '0';\n container.style.left = '0';\n container.style.width = '100%';\n container.style.height = '100%';\n container.style.pointerEvents = 'none';\n container.style.zIndex = '9999';\n frame.appendChild(container);\n }\n\n container.innerHTML = '';\n for (const guide of guides) {\n const line = document.createElement('div');\n line.style.position = 'absolute';\n line.style.backgroundColor = 'transparent';\n if (guide.orientation === 'v') {\n line.style.left = guide.position + 'px';\n line.style.top = '0';\n line.style.width = '0';\n line.style.height = '100%';\n line.style.borderLeft = '1px dashed var(--gray-50, #c8c9cc)';\n } else {\n line.style.top = guide.position + 'px';\n line.style.left = '0';\n line.style.width = '100%';\n line.style.height = '0';\n line.style.borderTop = '1px dashed var(--gray-50, #c8c9cc)';\n }\n container.appendChild(line);\n }\n}\n\nexport function clearSnapGuides() {\n const container = this.component.shadowRoot.getElementById('ls-snap-guides');\n if (container) container.innerHTML = '';\n}\n\nexport function toolboxDragStart(fieldData: IToolboxField) {\n // Disable toolbox dragging when template is locked\n if (this._template?.locked) {\n return;\n }\n // Cancel any existing toolbox drag\n if (this._cancelToolboxDrag) {\n this._cancelToolboxDrag();\n }\n\n const frame = this.component.shadowRoot.getElementById('ls-document-frame') as HTMLElement;\n const zoom = this.zoom;\n this._isToolboxDragging = true;\n let hasMoved = false;\n\n // Prevent text selection during drag\n disableSelection();\n\n // Add dragging class to toolbox fields (shadow DOM cursor override)\n this.component.shadowRoot.querySelectorAll('ls-left-bar, ls-compose-loader').forEach(bar => {\n bar.shadowRoot?.querySelectorAll('ls-toolbox-field').forEach(el => el.classList.add('ls-dv-dragging'));\n });\n\n // Create ghost preview element matching the original drag image style\n const ghost = document.createElement('div');\n ghost.id = 'ls-toolbox-ghost';\n ghost.style.position = 'fixed';\n ghost.style.width = fieldData.defaultWidth * zoom + 'px';\n ghost.style.height = fieldData.defaultHeight * zoom + 'px';\n ghost.style.border = `1px dashed ${defaultRolePalette[this.signer % 100].s60}`;\n const s20 = defaultRolePalette[this.signer % 100].s20.replace('#', '');\n const r = parseInt(s20.substring(0, 2), 16);\n const g = parseInt(s20.substring(2, 4), 16);\n const b = parseInt(s20.substring(4, 6), 16);\n ghost.style.background = `rgba(${r},${g},${b},0.5)`;\n ghost.style.boxShadow = '0 4px 6px -1px rgba(0, 0, 0, 0.10), 0 2px 4px -1px rgba(0, 0, 0, 0.06)';\n ghost.style.pointerEvents = 'none';\n ghost.style.zIndex = '10000';\n ghost.style.visibility = 'hidden';\n ghost.style.boxSizing = 'content-box';\n ghost.style.fontFamily = 'var(--font-family, IBM Plex Sans, sans-serif)';\n ghost.style.fontSize = Math.round(DEFAULT_FONT_SIZE * zoom) + 'px';\n ghost.style.color = defaultRolePalette[this.signer % 100].s100;\n ghost.style.overflow = 'visible';\n ghost.style.whiteSpace = 'nowrap';\n ghost.style.display = 'flex';\n ghost.style.alignItems = 'center';\n ghost.style.textTransform = 'capitalize';\n ghost.innerHTML = fieldData.formElementType;\n\n // Assignee label below ghost\n const assignee = this.mode === 'compose'\n ? this._recipients?.find(r => r.signerIndex === this.signer)\n : this._template.roles.find(r => r.signerIndex === this.signer);\n const assigneeName = this.mode === 'compose' && assignee?.previousRecipientDecides\n ? 'To Be Decided'\n : this.mode === 'compose'\n ? `${assignee?.firstName} ${assignee?.lastName}`\n : assignee?.name || (this.signer === 0 ? 'Sender' : `Participant ${this.signer}`);\n const assigneeLabel = document.createElement('p');\n assigneeLabel.style.position = 'absolute';\n assigneeLabel.style.color = 'var(--gray-80, #3a3a3a)';\n assigneeLabel.style.bottom = `-${1 * zoom}rem`;\n assigneeLabel.style.left = '0';\n assigneeLabel.style.margin = '0';\n assigneeLabel.style.padding = '0';\n assigneeLabel.style.lineHeight = '1';\n assigneeLabel.style.fontSize = `${0.625 * zoom}rem`;\n assigneeLabel.style.whiteSpace = 'nowrap';\n assigneeLabel.style.fontFamily = 'sans-serif';\n assigneeLabel.style.textTransform = 'none';\n assigneeLabel.style.pointerEvents = 'none';\n assigneeLabel.textContent = `${dvI18n.t('fieldproperties.assignedto')} ${assigneeName}`;\n ghost.appendChild(assigneeLabel);\n\n this.component.shadowRoot.appendChild(ghost);\n\n // Info chip at bottom of screen\n const chip = document.createElement('div');\n chip.id = 'ls-esc-chip';\n chip.style.position = 'fixed';\n chip.style.bottom = '1.5rem';\n chip.style.left = '50%';\n chip.style.transform = 'translateX(-50%)';\n chip.style.padding = '0.375rem 0.75rem';\n chip.style.borderRadius = '0.625rem';\n chip.style.background = 'var(--gray-100, #1f2937)';\n chip.style.color = 'white';\n chip.style.fontSize = '0.75rem';\n chip.style.fontFamily = 'var(--font-family, IBM Plex Sans, sans-serif)';\n chip.style.pointerEvents = 'none';\n chip.style.zIndex = '10000';\n chip.style.boxShadow = '0 4px 6px -1px rgba(0, 0, 0, 0.1)';\n chip.textContent = 'Press Esc to cancel field placement';\n this.component.shadowRoot.appendChild(chip);\n\n const onMouseMove = (e: MouseEvent) => {\n e.preventDefault();\n hasMoved = true;\n const dragWidth = fieldData.defaultWidth * zoom;\n const dragHeight = fieldData.defaultHeight * zoom;\n\n const frameRect = frame.getBoundingClientRect();\n const isOverFrame = e.clientX >= frameRect.left && e.clientX <= frameRect.right &&\n e.clientY >= frameRect.top && e.clientY <= frameRect.bottom;\n const isDragging = e.buttons === 1;\n\n // Only show grabbing cursor when ghost is visible\n let cursorStyle = document.getElementById('ls-drag-cursor') as HTMLStyleElement;\n if ((isOverFrame || isDragging) && !cursorStyle) {\n cursorStyle = document.createElement('style');\n cursorStyle.id = 'ls-drag-cursor';\n cursorStyle.textContent = '* { cursor: grabbing !important; }';\n document.head.appendChild(cursorStyle);\n } else if (!isOverFrame && !isDragging && cursorStyle) {\n cursorStyle.remove();\n }\n\n // When dragging (mouse held): show ghost over wrapper area\n // When click-to-place (mouse not held): only show over document frame\n if (isOverFrame) {\n ghost.style.visibility = 'visible';\n ghost.style.opacity = '1';\n const x = e.clientX - frameRect.left + frame.scrollLeft;\n const y = e.clientY - frameRect.top + frame.scrollTop;\n let left = x - dragWidth / 2;\n let top = y - dragHeight / 2;\n\n const fields = Array.from(this.component.shadowRoot.querySelectorAll('ls-editor-field')) as HTMLLsEditorFieldElement[];\n const snap = calculateSnap(left, top, dragWidth, dragHeight, fields, this.pageNum);\n ghost.style.left = (snap.x !== null ? snap.x + frameRect.left - frame.scrollLeft : e.clientX - dragWidth / 2) + 'px';\n ghost.style.top = (snap.y !== null ? snap.y + frameRect.top - frame.scrollTop : e.clientY - dragHeight / 2) + 'px';\n\n showSnapGuides.bind(this)(snap.guides);\n } else if (isDragging) {\n ghost.style.visibility = 'visible';\n ghost.style.opacity = '0.5';\n ghost.style.left = (e.clientX - dragWidth / 2) + 'px';\n ghost.style.top = (e.clientY - dragHeight / 2) + 'px';\n clearSnapGuides.bind(this)();\n } else {\n ghost.style.visibility = 'hidden';\n clearSnapGuides.bind(this)();\n }\n };\n\n const cleanup = () => {\n document.removeEventListener('mousemove', onMouseMove);\n document.removeEventListener('mouseup', onMouseUp);\n document.removeEventListener('keydown', onKeyDown);\n ghost.remove();\n chip.remove();\n clearSnapGuides.bind(this)();\n enableSelection();\n const cursorStyle = document.getElementById('ls-drag-cursor');\n if (cursorStyle) cursorStyle.remove();\n this.component.shadowRoot.querySelectorAll('ls-left-bar, ls-compose-loader').forEach(bar => {\n bar.shadowRoot?.querySelectorAll('ls-toolbox-field').forEach(el => el.classList.remove('ls-dv-dragging'));\n });\n this._isToolboxDragging = false;\n this._cancelToolboxDrag = null;\n };\n\n const onMouseUp = (e: MouseEvent) => {\n // Ignore mouseup if it's from the same click that started the drag (no movement yet)\n if (!hasMoved) return;\n\n const frameRect = frame.getBoundingClientRect();\n const shouldPlace = e.clientX >= frameRect.left && e.clientX <= frameRect.right &&\n e.clientY >= frameRect.top && e.clientY <= frameRect.bottom;\n\n cleanup();\n\n if (shouldPlace) {\n\n const dragWidth = fieldData.defaultWidth * zoom;\n const dragHeight = fieldData.defaultHeight * zoom;\n const x = e.clientX - frameRect.left + frame.scrollLeft;\n const y = e.clientY - frameRect.top + frame.scrollTop;\n let left = x - dragWidth / 2;\n let top = y - dragHeight / 2;\n\n const fields = Array.from(this.component.shadowRoot.querySelectorAll('ls-editor-field')) as HTMLLsEditorFieldElement[];\n const snap = calculateSnap(left, top, dragWidth, dragHeight, fields, this.pageNum);\n if (snap.x !== null) left = snap.x;\n if (snap.y !== null) top = snap.y;\n\n const finalTop = top / zoom;\n const finalLeft = left / zoom;\n\n // Check if field fits on page - constrain to page boundaries\n const pageWidth = this.pageDimensions[this.pageNum - 1].width;\n const pageHeight = this.pageDimensions[this.pageNum - 1].height;\n const constrainedLeft = Math.max(0, Math.min(finalLeft, pageWidth - fieldData.defaultWidth));\n const constrainedTop = Math.max(0, Math.min(finalTop, pageHeight - fieldData.defaultHeight));\n\n this.component.shadowRoot.querySelectorAll('ls-editor-field').forEach(f => (f.selected = false));\n\n const id = btoa('ele' + crypto.randomUUID());\n const newData: LSMutateEvent = {\n action: 'create',\n data: {\n id,\n value: fieldData.formElementType === 'checkbox' ? 'false' : '',\n formElementType: fieldData.formElementType,\n elementType: fieldData.elementType,\n validation: fieldData.validation,\n excludeFromPdf: false,\n top: constrainedTop,\n left: constrainedLeft,\n hideBorder: false,\n height: fieldData.defaultHeight,\n width: fieldData.defaultWidth,\n pageDimensions: this.pageDimensions[this.pageNum - 1],\n fontName: this.fontFamily,\n fontSize: this.fontSize,\n align: 'left',\n signer: this.signer,\n page: this.pageNum,\n mapTo: null,\n label: '',\n helpText: null,\n logicGroup: null,\n optional: fieldData.formElementType === 'checkbox',\n options: null,\n logicAction: null,\n labelExtra: null,\n fieldOrder: null,\n ax: constrainedLeft > 0 ? constrainedLeft / this.pageDimensions[this.pageNum - 1].width : 0,\n ay: constrainedTop > 0 ? constrainedTop / this.pageDimensions[this.pageNum - 1].height : 0,\n bx: (constrainedLeft + fieldData.defaultWidth) / this.pageDimensions[this.pageNum - 1].width,\n by: (constrainedTop + fieldData.defaultHeight) / this.pageDimensions[this.pageNum - 1].height,\n templateId: this._template.id,\n } as LSApiElement,\n };\n\n this.mutate.emit([newData]);\n }\n };\n\n const onKeyDown = (e: KeyboardEvent) => {\n if (e.key === 'Escape') {\n e.preventDefault();\n e.stopPropagation();\n cleanup();\n }\n };\n\n this._cancelToolboxDrag = cleanup;\n document.addEventListener('mousemove', onMouseMove);\n document.addEventListener('mouseup', onMouseUp);\n document.addEventListener('keydown', onKeyDown);\n}\n\nexport function mouseDoubleClick(event) {\n // Disable double-click field creation in preview mode or when template is locked\n if (this.mode === 'preview' || this._template?.locked) {\n return;\n }\n \n console.log('double click', this.fieldTypeSelected, this.signer);\n try {\n let data: IToolboxField = this.fieldTypeSelected as IToolboxField;\n\n if (this.checkType('APPROVER') && data.elementType === 'signature') {\n data = {\n label: 'Text',\n formElementType: 'text',\n elementType: 'text',\n validation: 0,\n defaultHeight: FIELD_DEFAULTS['text'].defaultHeight,\n defaultWidth: FIELD_DEFAULTS['text'].defaultWidth,\n };\n }\n\n if (this.signer === 0 && data.elementType === 'signature') {\n data = {\n label: 'Auto Sign',\n formElementType: 'auto sign',\n elementType: 'admin',\n validation: 3000,\n defaultHeight: FIELD_DEFAULTS['auto sign'].defaultHeight,\n defaultWidth: FIELD_DEFAULTS['auto sign'].defaultWidth,\n };\n } else if (this.signer === 0 && data.elementType !== 'admin') {\n data = { ...data, elementType: 'admin' };\n }\n // Unselect all current selected items\n this.component.shadowRoot.querySelectorAll('ls-editor-field').forEach(f => (f.selected = false));\n var frame = this.component.shadowRoot.getElementById('ls-document-frame') as HTMLElement;\n // Make a new API compatible id for a template element (prefix 'ele')\n const id = btoa('ele' + crypto.randomUUID());\n const pageWidth = this.pageDimensions[this.pageNum - 1].width;\n const pageHeight = this.pageDimensions[this.pageNum - 1].height;\n const rawTop = event.offsetY / this.zoom + frame.scrollTop;\n const rawLeft = event.offsetX / this.zoom + frame.scrollLeft;\n const top = Math.max(0, Math.min(rawTop, pageHeight - data.defaultHeight));\n const left = Math.max(0, Math.min(rawLeft, pageWidth - data.defaultWidth));\n\n // TODO: Put these defaults somewhere sensible\n const newData: LSMutateEvent = {\n action: 'create',\n data: {\n id,\n value: data.formElementType === 'checkbox' ? 'false' : '',\n formElementType: data.formElementType,\n elementType: data.elementType,\n validation: data.validation,\n substantive: false,\n top,\n left,\n hideBorder: false,\n height: data.defaultHeight,\n width: data.defaultWidth,\n pageDimensions: this.pageDimensions[this.pageNum - 1],\n fontName: DEFAULT_FONT_NAME,\n fontSize: DEFAULT_FONT_SIZE,\n align: 'left',\n signer: this.signer,\n page: this.pageNum,\n mapTo: null,\n label: '',\n helpText: null,\n logicGroup: null,\n optional: data.formElementType === 'checkbox',\n options: null,\n logicAction: null,\n labelExtra: null,\n fieldOrder: null,\n ax: left > 0 ? left / this.pageDimensions[this.pageNum - 1].width : 0,\n ay: top > 0 ? top / this.pageDimensions[this.pageNum - 1].height : 0,\n bx: (left + data.defaultWidth) / this.pageDimensions[this.pageNum - 1].width,\n by: (top + data.defaultHeight) / this.pageDimensions[this.pageNum - 1].height,\n templateId: this._template.id,\n } as LSApiElement,\n };\n this.mutate.emit([newData]);\n } catch (e) {\n console.error(e);\n }\n}\n"]}
1
+ {"version":3,"file":"mouseHandlers.js","sourceRoot":"","sources":["../../../../src/components/ls-document-viewer/mouseHandlers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAEpF,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACrG,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzC,MAAM,aAAa,GAAG,CAAC,CAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC;AAEvD,SAAS,sBAAsB,CAAC,KAAiB;IAC/C,IAAI,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,cAAc,CAAC,yBAAyB,CAAC,CAAC;IAClF,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACxC,OAAO,CAAC,EAAE,GAAG,yBAAyB,CAAC;QACvC,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC;QACjC,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,kBAAkB,CAAC;QAC3C,OAAO,CAAC,KAAK,CAAC,YAAY,GAAG,QAAQ,CAAC;QACtC,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,0BAA0B,CAAC;QACtD,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,OAAO,CAAC;QAC9B,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,SAAS,CAAC;QACnC,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,+CAA+C,CAAC;QAC3E,OAAO,CAAC,KAAK,CAAC,aAAa,GAAG,MAAM,CAAC;QACrC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC;QAC/B,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC;QACpC,OAAO,CAAC,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC;QACtE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC;IACjD,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC;AAClD,CAAC;AAED,SAAS,sBAAsB;IAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,cAAc,CAAC,yBAAyB,CAAC,CAAC;IACrF,IAAI,OAAO;QAAE,OAAO,CAAC,MAAM,EAAE,CAAC;AAChC,CAAC;AAED,SAAS,gBAAgB;IACvB,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC;IACxC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG,MAAM,CAAC;IAC9C,QAAQ,CAAC,gBAAgB,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,eAAe;IACtB,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,EAAE,CAAC;IACpC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG,EAAE,CAAC;IAC1C,QAAQ,CAAC,mBAAmB,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,kBAAkB;IAChC,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,cAAc,CAAC,iBAAiB,CAAgB,CAAC;IACrF,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,KAAK,IAAI,CAAC,OAAO,CAAC,CAAC;IACnF,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7C,GAAG,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC;QAChC,OAAO;IACT,CAAC;IAED,IAAI,OAAO,GAAG,QAAQ,EAAE,MAAM,GAAG,QAAQ,EAAE,QAAQ,GAAG,CAAC,QAAQ,EAAE,SAAS,GAAG,CAAC,QAAQ,CAAC;IAEvF,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QACvB,MAAM,IAAI,GAAG,CAAC,CAAC,UAAU,CAAC;QAC1B,MAAM,GAAG,GAAG,CAAC,CAAC,SAAS,CAAC;QACxB,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,CAAC;QACnC,MAAM,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,YAAY,CAAC;QACpC,IAAI,IAAI,GAAG,OAAO;YAAE,OAAO,GAAG,IAAI,CAAC;QACnC,IAAI,GAAG,GAAG,MAAM;YAAE,MAAM,GAAG,GAAG,CAAC;QAC/B,IAAI,KAAK,GAAG,QAAQ;YAAE,QAAQ,GAAG,KAAK,CAAC;QACvC,IAAI,MAAM,GAAG,SAAS;YAAE,SAAS,GAAG,MAAM,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,OAAO,GAAG,IAAI,CAAC;IAChC,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,GAAG,IAAI,CAAC;IAC9B,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,QAAQ,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC;IAC9C,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,SAAS,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC;IAC/C,GAAG,CAAC,KAAK,CAAC,UAAU,GAAG,SAAS,CAAC;AACnC,CAAC;AAED,IAAI,UAAU,GAAG,IAAI,CAAC;AAEtB,MAAM,UAAU,QAAQ,CAAC,IAAI,EAAE,KAAK;IAClC,IAAI,UAAU;QAAE,YAAY,CAAC,UAAU,CAAC,CAAC;IAEzC,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE;QAC3B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3B,CAAC,EAAE,KAAK,CAAC,CAAC;AACZ,CAAC;AAED,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAE5B,MAAM,UAAU,SAAS,CAAC,CAAC;IACzB,IAAI,IAAI,CAAC,kBAAkB;QAAE,OAAO;IACpC,wEAAwE;IACxE,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;QACtD,OAAO;IACT,CAAC;IACD,6FAA6F;IAC7F,0EAA0E;IAC1E,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC;IAC5E,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,cAAc,CAAC,wBAAwB,CAAC,CAAC;IACnF,IAAI,CAAC,KAAK;QAAE,OAAO;IACnB,MAAM,MAAM,GAAG,CAAC,CAAC,MAAqB,CAAC;IACvC,MAAM,aAAa,GAAG,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,OAAO,IAAI,MAAM,EAAE,EAAE,KAAK,YAAY,IAAI,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,QAAQ,CAAC;IAC3I,MAAM,aAAa,GAAG,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,iBAAiB,CAAC;IAC3E,IAAI,CAAC,aAAa,IAAI,CAAC,aAAa;QAAE,OAAO;IAE7C,mBAAmB;IACnB,iCAAiC;IACjC,wCAAwC;IACxC,+DAA+D;IAC/D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACrB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;IAE7E,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QACjB,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,qBAAqB,EAAE,CAAC;QAC9E,MAAM,KAAK,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;QAClG,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,wCAAwC;QACxC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,CAAC;QACxC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;QACzC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,GAAG,IAAI,CAAC,CAAC;QAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;QAC5C,+BAA+B;QAC/B,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC,GAAG,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,OAAO,EAAE,CAAC;YACpF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QACpB,CAAC;aAAM,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,GAAG,CAAC,GAAG,OAAO,EAAE,CAAC;YACvF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QACpB,CAAC;aAAM,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC,GAAG,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,GAAG,CAAC,GAAG,OAAO,EAAE,CAAC;YACxF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QACpB,CAAC;aAAM,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,OAAO,EAAE,CAAC;YAC1F,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;YAClB,YAAY;QACd,CAAC;aAAM,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,OAAO,IAAI,GAAG,IAAI,CAAC,CAAC,OAAO,IAAI,MAAM,EAAE,CAAC;YACzF,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;YACpB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;YAClB,oBAAoB;QACtB,CAAC;aAAM,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,OAAO,IAAI,GAAG,IAAI,CAAC,CAAC,OAAO,IAAI,MAAM,EAAE,CAAC;YAC1F,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;YACpB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;YAClB,aAAa;QACf,CAAC;aAAM,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,GAAG,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,OAAO,IAAI,IAAI,IAAI,CAAC,CAAC,OAAO,IAAI,KAAK,EAAE,CAAC;YACxF,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;YACpB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;YAClB,aAAa;QACf,CAAC;aAAM,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,OAAO,IAAI,IAAI,IAAI,CAAC,CAAC,OAAO,IAAI,KAAK,EAAE,CAAC;YAC3F,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;YACpB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QACpB,CAAC;aAAM,IAAI,CAAC,CAAC,OAAO,IAAI,MAAM,IAAI,CAAC,CAAC,OAAO,IAAI,GAAG,IAAI,CAAC,CAAC,OAAO,IAAI,IAAI,IAAI,CAAC,CAAC,OAAO,IAAI,KAAK,EAAE,CAAC;YAC9F,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QACpB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,KAAK,KAAK,IAAI,CAAC,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;QAChE,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,cAAc,CAAC,iBAAiB,CAAgB,CAAC;QACrF,GAAG,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC;QAEhC,qDAAqD;QACrD,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACtC,qEAAqE;QACrE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;QAEtD,+DAA+D;QAC/D,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;YACrC,4BAA4B;YAC5B,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;gBAClB,EAAE,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAChC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;QACnD,CAAC;QAED,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE,CAAC;QAChE,MAAM,KAAK,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;QAC1H,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QAExB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YAC1C,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,qBAAqB,EAAE,CAAC;YACpD,MAAM,MAAM,GAAG,CAAgB,CAAC;YAChC,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;QAC3E,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IAC3B,CAAC;SAAM,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;QAC9C,yCAAyC;QACzC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YACpC,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,KAAK,CAAC;YAC/B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC/D,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC/D,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IAClC,CAAC;SAAM,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;QAChD,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,cAAc,CAAC,iBAAiB,CAAgB,CAAC;QACrF,GAAG,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC;QAEhC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YACpC,oCAAoC;YACpC,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,KAAK,CAAC;YAC/B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC/D,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC7D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC3B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAClC,CAAC;aAAM,CAAC;YACN,mBAAmB;YACnB,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC;YAC9B,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YAClD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;YAE7D,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE,CAAC;YAChE,MAAM,KAAK,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;YAC1H,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YAExB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;gBAC1C,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,qBAAqB,EAAE,CAAC;gBACpD,MAAM,MAAM,GAAG,CAAgB,CAAC;gBAChC,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;YAC3E,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAC3B,CAAC;IACH,CAAC;SAAM,CAAC;QACN,kEAAkE;QAClE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;QAC3D,gBAAgB,EAAE,CAAC;QAEnB,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;YAC7B,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC3B,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;YACnB,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAClC,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,WAAW;IACrC,OAAO,CACL,WAAW,CAAC,MAAM,IAAI,CAAC;QACvB,WAAW,CAAC,IAAI,GAAG,CAAC;QACpB,WAAW,CAAC,GAAG,GAAG,CAAC;QACnB,WAAW,CAAC,IAAI,GAAG,WAAW,CAAC,KAAK,IAAI,WAAW,CAAC,cAAc,CAAC,KAAK;QACxE,WAAW,CAAC,GAAG,GAAG,WAAW,CAAC,MAAM,IAAI,WAAW,CAAC,cAAc,CAAC,MAAM,CAC1E,CAAC;AACJ,CAAC;AACD,MAAM,UAAU,SAAS,CAAC,KAAK;IAC7B,KAAK,CAAC,cAAc,EAAE,CAAC;IACvB,IAAI,IAAI,CAAC,kBAAkB;QAAE,OAAO;IACpC,6EAA6E;IAC7E,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;QACtD,OAAO;IACT,CAAC;IAED,4DAA4D;IAC5D,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;QAC7E,gBAAgB,EAAE,CAAC;QACnB,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QACjD,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,eAAe,KAAK,WAAW,IAAI,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC;QAEvG,iDAAiD;QACjD,IAAI,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QACzC,IAAI,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QACvC,IAAI,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;QAC3C,IAAI,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAE7C,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;YACtB,KAAK,GAAG;gBACN,IAAI,KAAK,EAAE,CAAC;oBACV,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC;oBAClD,cAAc,GAAG,eAAe,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;gBACtF,CAAC;qBAAM,CAAC;oBACN,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,MAAM,CAAC;oBAC5C,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC;gBACpD,CAAC;gBACD,MAAM;YACR,KAAK,GAAG;gBACN,IAAI,KAAK,EAAE,CAAC;oBACV,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC;oBAClD,cAAc,GAAG,eAAe,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;gBACtF,CAAC;qBAAM,CAAC;oBACN,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC;gBACpD,CAAC;gBACD,MAAM;YACR,KAAK,GAAG;gBACN,IAAI,KAAK,EAAE,CAAC;oBACV,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,MAAM,CAAC;oBAChD,eAAe,GAAG,cAAc,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;gBACtF,CAAC;qBAAM,CAAC;oBACN,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,MAAM,CAAC;gBAClD,CAAC;gBACD,MAAM;YACR,KAAK,GAAG;gBACN,IAAI,KAAK,EAAE,CAAC;oBACV,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,MAAM,CAAC;oBAChD,eAAe,GAAG,cAAc,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;oBACpF,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,MAAM,CAAC;gBAChD,CAAC;qBAAM,CAAC;oBACN,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,MAAM,CAAC;oBAC9C,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,MAAM,CAAC;gBAClD,CAAC;gBACD,MAAM;YACR,KAAK,IAAI;gBACP,IAAI,KAAK,EAAE,CAAC;oBACV,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,MAAM,CAAC;oBAChD,eAAe,GAAG,cAAc,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;gBACtF,CAAC;qBAAM,CAAC;oBACN,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,MAAM,CAAC;oBAChD,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC;gBACpD,CAAC;gBACD,MAAM;YACR,KAAK,IAAI;gBACP,IAAI,KAAK,EAAE,CAAC;oBACV,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,MAAM,CAAC;oBAChD,eAAe,GAAG,cAAc,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;oBACpF,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,MAAM,CAAC;oBAC9C,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,eAAe,CAAC,CAAC;gBAClF,CAAC;qBAAM,CAAC;oBACN,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,MAAM,CAAC;oBAC9C,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,MAAM,CAAC;oBAC5C,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,MAAM,CAAC;oBAChD,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC;gBACpD,CAAC;gBACD,MAAM;YACR,KAAK,IAAI;gBACP,IAAI,KAAK,EAAE,CAAC;oBACV,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,MAAM,CAAC;oBAChD,eAAe,GAAG,cAAc,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;oBACpF,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,eAAe,CAAC,CAAC;gBAClF,CAAC;qBAAM,CAAC;oBACN,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,MAAM,CAAC;oBAChD,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,MAAM,CAAC;oBAC5C,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC;gBACpD,CAAC;gBACD,MAAM;YACR,KAAK,IAAI;gBACP,IAAI,KAAK,EAAE,CAAC;oBACV,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,MAAM,CAAC;oBAChD,eAAe,GAAG,cAAc,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;oBACpF,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,MAAM,CAAC;gBAChD,CAAC;qBAAM,CAAC;oBACN,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,MAAM,CAAC;oBAC9C,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,MAAM,CAAC;oBAChD,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC;gBACpD,CAAC;gBACD,MAAM;QACV,CAAC;QAED,2BAA2B;QAC3B,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAA+B,CAAC;QAC1H,MAAM,UAAU,GAAG,mBAAmB,CACpC,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,eAAe,EAC5D,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CACpE,CAAC;QAEF,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;YAC9D,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,KAAK,SAAS,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,KAAK,SAAS,CAAC;YAClF,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,KAAK,SAAS,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,KAAK,SAAS,CAAC;YAElF,uDAAuD;YACvD,IAAI,IAAI,GAAG,IAAI,CAAC;YAChB,IAAI,IAAI,GAAG,IAAI,CAAC;YAChB,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC/C,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,KAAK,SAAS;oBAC5C,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,aAAa,GAAG,cAAc,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;oBACjE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACjD,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,KAAK,SAAS;oBAC5C,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,YAAY,GAAG,eAAe,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;oBACjE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAChD,IAAI,KAAK,IAAI,KAAK,EAAE,CAAC;oBAAC,IAAI,GAAG,KAAK,CAAC;gBAAC,CAAC;qBAAM,CAAC;oBAAC,IAAI,GAAG,KAAK,CAAC;gBAAC,CAAC;YAC9D,CAAC;YAED,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBAClB,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;oBACrC,eAAe,GAAG,CAAC,YAAY,GAAG,eAAe,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;oBACxE,YAAY,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;gBACpC,CAAC;gBACD,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;oBACrC,eAAe,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,YAAY,CAAC;gBACtD,CAAC;gBACD,cAAc,GAAG,eAAe,GAAG,MAAM,CAAC;YAC5C,CAAC;iBAAM,IAAI,IAAI,EAAE,CAAC;gBAChB,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;oBACrC,cAAc,GAAG,CAAC,aAAa,GAAG,cAAc,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;oBACvE,aAAa,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;gBACrC,CAAC;gBACD,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;oBACrC,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,aAAa,CAAC;gBACtD,CAAC;gBACD,eAAe,GAAG,cAAc,GAAG,MAAM,CAAC;YAC5C,CAAC;YAED,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAAE,YAAY,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,eAAe,CAAC;YACjH,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAAE,aAAa,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,cAAc,CAAC;YAEjH,wCAAwC;YACxC,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAC1C,CAAC,IAAI,IAAI,CAAC,CAAC,WAAW,KAAK,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,WAAW,KAAK,GAAG,CAAC,CACnE,CAAC;YACF,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC;QACpC,CAAC;aAAM,CAAC;YACN,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;gBACrC,eAAe,GAAG,CAAC,YAAY,GAAG,eAAe,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;gBACxE,YAAY,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;YACpC,CAAC;YACD,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;gBACrC,eAAe,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,YAAY,CAAC;YACtD,CAAC;YACD,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;gBACrC,cAAc,GAAG,CAAC,aAAa,GAAG,cAAc,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;gBACvE,aAAa,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;YACrC,CAAC;YACD,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;gBACrC,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,aAAa,CAAC;YACtD,CAAC;YACD,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC/C,CAAC;QAED,IAAI,CAAC,WAAW,CAAC,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,EAAE,aAAa,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,YAAY,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,cAAc,GAAG,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,eAAe,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;YACxL,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,aAAa,GAAG,IAAI,CAAC;YAChD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,GAAG,YAAY,GAAG,IAAI,CAAC;YAC9C,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,GAAG,cAAc,GAAG,IAAI,CAAC;YAClD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,eAAe,GAAG,IAAI,CAAC;YACpD,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG;gBACvB,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ;gBACzB,IAAI,EAAE,aAAa,GAAG,IAAI,CAAC,IAAI;gBAC/B,GAAG,EAAE,YAAY,GAAG,IAAI,CAAC,IAAI;gBAC7B,KAAK,EAAE,cAAc,GAAG,IAAI,CAAC,IAAI;gBACjC,MAAM,EAAE,eAAe,GAAG,IAAI,CAAC,IAAI;aACpC,CAAC;QACJ,CAAC;QAED,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IACvG,CAAC;SAAM,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,oBAAoB,CAAC,IAAI,KAAK,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;QACnF,8DAA8D;QAC9D,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;YACpD,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;YACvD,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;YACvD,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,iBAAiB,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,iBAAiB;gBAAE,OAAO;YACjF,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC;YAC9C,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;YACjC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,WAAW,CAAC;QAC5C,CAAC;QAED,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,kCAAkC;QAClC,IAAI,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,cAAc,CAAC,kBAAkB,CAAgB,CAAC;QAC1F,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,cAAc,CAAC,mBAAmB,CAAgB,CAAC;QACzF,IAAI,UAAU,GAAG,KAAK,CAAC,qBAAqB,EAAE,CAAC,IAAI,CAAC;QACpD,IAAI,SAAS,GAAG,KAAK,CAAC,qBAAqB,EAAE,CAAC,GAAG,CAAC;QAElD,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;QACnD,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;QAEnD,qCAAqC;QACrC,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,SAAS,CAAC;QACrC,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,UAAU,GAAG,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC;QACxI,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;QACrI,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;QAC9C,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;QAE/C,kCAAkC;IACpC,CAAC;SAAM,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;QAC3F,+CAA+C;QAC/C,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;QACjE,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YACnB,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC;YACzC,OAAO;QACT,CAAC;QAED,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,gBAAgB,EAAE,CAAC;QACnB,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,cAAc,CAAC,iBAAiB,CAAgB,CAAC;QACrF,GAAG,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC;QAEhC,kDAAkD;QAClD,IAAI,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;YAC1B,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACxB,MAAM,KAAK,GAAG,CAAC,CAAC,UAAU,EAAE,cAAc,CAAC,eAAe,CAAqB,CAAC;gBAChF,IAAI,KAAK;oBAAE,KAAK,CAAC,IAAI,EAAE,CAAC;YAC1B,CAAC,CAAC,CAAC;QACL,CAAC;QAED,kCAAkC;QAClC,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QACjD,IAAI,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;YAC1B,6DAA6D;YAC7D,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC;YACzD,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,MAAM,CAAC;YACvD,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YAClD,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YAEpD,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAA+B,CAAC;YAC1H,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YACzD,MAAM,IAAI,GAAG,aAAa,CAAC,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;YAEtH,2CAA2C;YAC3C,MAAM,WAAW,GAAG,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/D,MAAM,WAAW,GAAG,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;YAE9D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,MAAM,GAAG,WAAW,CAAC;gBACnE,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,MAAM,GAAG,WAAW,CAAC;gBACjE,IACE,OAAO,IAAI,CAAC;oBACZ,MAAM,IAAI,CAAC;oBACX,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI;oBACtG,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,EACvG,CAAC;oBACD,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;oBACzD,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;gBACzD,CAAC;YACH,CAAC;YAED,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACvC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAClC,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,KAAK;IAC3B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACrB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IACvB,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;IACjC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;IACrC,eAAe,EAAE,CAAC;IAClB,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IAC7B,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IAEpC,sFAAsF;IACtF,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QACvC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,cAAc,CAAC,kBAAkB,CAAgB,CAAC;QAC1F,IAAI,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;QAC3E,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC;QAC/B,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,IAAI,KAAK,CAAC,CAAC;QAChE,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC;QAEpC,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;YAC1D,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;QAC5E,CAAC;aAAM,IAAI,OAAO,EAAE,CAAC;YACnB,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;YACpE,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;YACtE,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,SAAS,CAAC,CAAC;QACnD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC;QAED,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC7D,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IAClC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,CAAC;IAC1B,wEAAwE;IACxE,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;QACtD,OAAO;IACT,CAAC;IAED,gCAAgC;IAChC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,sBAAsB;QACtB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,gBAAgB,CAAC,iBAAiB,CAA+B,CAAC;QAC3G,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,cAAc,CAAC,mBAAmB,CAAmB,CAAC;QACjG,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;QAE9D,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;aACf,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC;aACzB,GAAG,CAAC,EAAE,CAAC,EAAE;YACR,iEAAiE;YACjE,MAAM,KAAK,GAAG;gBACZ,GAAG,EAAE,CAAC,QAAQ;gBACd,GAAG,cAAc,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC;aAChH,CAAC;YACF,sCAAsC;YACtC,EAAE,CAAC,QAAQ,GAAG,KAAK,CAAC;YACpB,uCAAuC;YACvC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;QAC3C,CAAC,CAAC,CACL,CAAC;QACF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;QACxD,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IAClC,CAAC;SAAM,CAAC;QACN,mCAAmC;QACnC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAEzB,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,gBAAgB,CAAC,iBAAiB,CAA+B,CAAC;QAC3G,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACjB,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,qBAAqB,EAAE,CAAC;YAC/D,IAAI,CAAC,CAAC,OAAO,IAAI,MAAM,IAAI,CAAC,CAAC,OAAO,IAAI,GAAG,IAAI,CAAC,CAAC,OAAO,IAAI,IAAI,IAAI,CAAC,CAAC,OAAO,IAAI,KAAK,EAAE,CAAC;gBACvF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;gBACrB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;gBAClB,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;oBAC7B,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC;oBAC5C,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;gBACpB,CAAC;gBACD,yEAAyE;gBACzE,MAAM,GAAG,IAAI,CAAC;YAChB,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,2CAA2C;QAC3C,IAAI,MAAM,EAAE,CAAC;YACX,sBAAsB,EAAE,CAAC;QAC3B,CAAC;aAAM,CAAC;YACN,oBAAoB,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;QAC7C,CAAC;QAED,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;QAC7D,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC7D,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IAClC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,MAAsD;IACnF,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,cAAc,CAAC,mBAAmB,CAAgB,CAAC;IAC3F,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;IAC3E,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC1C,SAAS,CAAC,EAAE,GAAG,gBAAgB,CAAC;QAChC,SAAS,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;QACtC,SAAS,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC;QAC1B,SAAS,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC;QAC3B,SAAS,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC;QAC/B,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;QAChC,SAAS,CAAC,KAAK,CAAC,aAAa,GAAG,MAAM,CAAC;QACvC,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;QAChC,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IAC/B,CAAC;IAED,SAAS,CAAC,SAAS,GAAG,EAAE,CAAC;IACzB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;QACjC,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,aAAa,CAAC;QAC3C,IAAI,KAAK,CAAC,WAAW,KAAK,GAAG,EAAE,CAAC;YAC9B,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;YACxC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC;YACrB,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC;YACvB,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;YAC3B,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,oCAAoC,CAAC;QAC/D,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;YACvC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC;YACtB,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC;YAC1B,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC;YACxB,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,oCAAoC,CAAC;QAC9D,CAAC;QACD,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;IAC7E,IAAI,SAAS;QAAE,SAAS,CAAC,SAAS,GAAG,EAAE,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,SAAwB;IACvD,mDAAmD;IACnD,IAAI,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;QAC3B,OAAO;IACT,CAAC;IACD,mCAAmC;IACnC,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC5B,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,cAAc,CAAC,mBAAmB,CAAgB,CAAC;IAC3F,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACvB,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;IAC/B,IAAI,QAAQ,GAAG,KAAK,CAAC;IAErB,qCAAqC;IACrC,gBAAgB,EAAE,CAAC;IAEnB,oEAAoE;IACpE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,gBAAgB,CAAC,gCAAgC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;QACzF,GAAG,CAAC,UAAU,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACzG,CAAC,CAAC,CAAC;IAEH,sEAAsE;IACtE,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC5C,KAAK,CAAC,EAAE,GAAG,kBAAkB,CAAC;IAC9B,KAAK,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC/B,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,SAAS,CAAC,YAAY,GAAG,IAAI,GAAG,IAAI,CAAC;IACzD,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,aAAa,GAAG,IAAI,GAAG,IAAI,CAAC;IAC3D,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,cAAc,kBAAkB,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IAC/E,MAAM,GAAG,GAAG,kBAAkB,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACvE,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC5C,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC5C,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC5C,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;IACpD,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,wEAAwE,CAAC;IACjG,KAAK,CAAC,KAAK,CAAC,aAAa,GAAG,MAAM,CAAC;IACnC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC;IAC7B,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC;IAClC,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,aAAa,CAAC;IACtC,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,+CAA+C,CAAC;IACzE,KAAK,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IACnE,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC;IAC/D,KAAK,CAAC,KAAK,CAAC,QAAQ,GAAG,SAAS,CAAC;IACjC,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC;IAClC,KAAK,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;IAC7B,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC;IAClC,KAAK,CAAC,KAAK,CAAC,aAAa,GAAG,YAAY,CAAC;IACzC,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC,eAAe,CAAC;IAE5C,6BAA6B;IAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,KAAK,SAAS;QACtC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,IAAI,CAAC,MAAM,CAAC;QAC5D,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC;IAClE,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,QAAQ,EAAE,wBAAwB;QAChF,CAAC,CAAC,eAAe;QACjB,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS;YACvB,CAAC,CAAC,GAAG,QAAQ,EAAE,SAAS,IAAI,QAAQ,EAAE,QAAQ,EAAE;YAChD,CAAC,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,eAAe,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IACtF,MAAM,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAClD,aAAa,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;IAC1C,aAAa,CAAC,KAAK,CAAC,KAAK,GAAG,yBAAyB,CAAC;IACtD,aAAa,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC;IAC/C,aAAa,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC;IAC/B,aAAa,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC;IACjC,aAAa,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC;IAClC,aAAa,CAAC,KAAK,CAAC,UAAU,GAAG,GAAG,CAAC;IACrC,aAAa,CAAC,KAAK,CAAC,QAAQ,GAAG,GAAG,KAAK,GAAG,IAAI,KAAK,CAAC;IACpD,aAAa,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC;IAC1C,aAAa,CAAC,KAAK,CAAC,UAAU,GAAG,YAAY,CAAC;IAC9C,aAAa,CAAC,KAAK,CAAC,aAAa,GAAG,MAAM,CAAC;IAC3C,aAAa,CAAC,KAAK,CAAC,aAAa,GAAG,MAAM,CAAC;IAC3C,aAAa,CAAC,WAAW,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,4BAA4B,CAAC,IAAI,YAAY,EAAE,CAAC;IACxF,KAAK,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;IAEjC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAE7C,gCAAgC;IAChC,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC3C,IAAI,CAAC,EAAE,GAAG,aAAa,CAAC;IACxB,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC9B,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC;IAC7B,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC;IACxB,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,kBAAkB,CAAC;IAC1C,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,kBAAkB,CAAC;IACxC,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,UAAU,CAAC;IACrC,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,0BAA0B,CAAC;IACnD,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,OAAO,CAAC;IAC3B,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,SAAS,CAAC;IAChC,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,+CAA+C,CAAC;IACxE,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,MAAM,CAAC;IAClC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC;IAC5B,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,mCAAmC,CAAC;IAC3D,IAAI,CAAC,WAAW,GAAG,qCAAqC,CAAC;IACzD,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAE5C,MAAM,WAAW,GAAG,CAAC,CAAa,EAAE,EAAE;QACpC,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,QAAQ,GAAG,IAAI,CAAC;QAChB,MAAM,SAAS,GAAG,SAAS,CAAC,YAAY,GAAG,IAAI,CAAC;QAChD,MAAM,UAAU,GAAG,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC;QAElD,MAAM,SAAS,GAAG,KAAK,CAAC,qBAAqB,EAAE,CAAC;QAChD,MAAM,WAAW,GAAG,CAAC,CAAC,OAAO,IAAI,SAAS,CAAC,IAAI,IAAI,CAAC,CAAC,OAAO,IAAI,SAAS,CAAC,KAAK;YAC3E,CAAC,CAAC,OAAO,IAAI,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,IAAI,SAAS,CAAC,MAAM,CAAC;QAChE,MAAM,UAAU,GAAG,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC;QAEnC,kDAAkD;QAClD,IAAI,WAAW,GAAG,QAAQ,CAAC,cAAc,CAAC,gBAAgB,CAAqB,CAAC;QAChF,IAAI,CAAC,WAAW,IAAI,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YAChD,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YAC9C,WAAW,CAAC,EAAE,GAAG,gBAAgB,CAAC;YAClC,WAAW,CAAC,WAAW,GAAG,oCAAoC,CAAC;YAC/D,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QACzC,CAAC;aAAM,IAAI,CAAC,WAAW,IAAI,CAAC,UAAU,IAAI,WAAW,EAAE,CAAC;YACtD,WAAW,CAAC,MAAM,EAAE,CAAC;QACvB,CAAC;QAED,2DAA2D;QAC3D,sEAAsE;QACtE,IAAI,WAAW,EAAE,CAAC;YAChB,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,SAAS,CAAC;YACnC,KAAK,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC;YAC1B,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,GAAG,SAAS,CAAC,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC;YACxD,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,GAAG,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC;YACtD,IAAI,IAAI,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC;YAC7B,IAAI,GAAG,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,CAAC;YAE7B,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAA+B,CAAC;YACvH,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YACnF,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,SAAS,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;YACrH,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,UAAU,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;YAEnH,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzC,CAAC;aAAM,IAAI,UAAU,EAAE,CAAC;YACtB,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,SAAS,CAAC;YACnC,KAAK,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;YAC5B,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,SAAS,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;YACtD,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,UAAU,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;YACtD,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC;YAClC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,GAAG,EAAE;QACnB,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QACvD,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACnD,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACnD,KAAK,CAAC,MAAM,EAAE,CAAC;QACf,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7B,eAAe,EAAE,CAAC;QAClB,MAAM,WAAW,GAAG,QAAQ,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;QAC9D,IAAI,WAAW;YAAE,WAAW,CAAC,MAAM,EAAE,CAAC;QACtC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,gBAAgB,CAAC,gCAAgC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YACzF,GAAG,CAAC,UAAU,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAC5G,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;QAChC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;IACjC,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,CAAC,CAAa,EAAE,EAAE;QAClC,qFAAqF;QACrF,IAAI,CAAC,QAAQ;YAAE,OAAO;QAEtB,MAAM,SAAS,GAAG,KAAK,CAAC,qBAAqB,EAAE,CAAC;QAChD,MAAM,WAAW,GAAG,CAAC,CAAC,OAAO,IAAI,SAAS,CAAC,IAAI,IAAI,CAAC,CAAC,OAAO,IAAI,SAAS,CAAC,KAAK;YAC3E,CAAC,CAAC,OAAO,IAAI,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,IAAI,SAAS,CAAC,MAAM,CAAC;QAEhE,OAAO,EAAE,CAAC;QAEV,IAAI,WAAW,EAAE,CAAC;YAEhB,MAAM,SAAS,GAAG,SAAS,CAAC,YAAY,GAAG,IAAI,CAAC;YAChD,MAAM,UAAU,GAAG,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC;YAClD,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,GAAG,SAAS,CAAC,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC;YACxD,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,GAAG,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC;YACtD,IAAI,IAAI,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC;YAC7B,IAAI,GAAG,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,CAAC;YAE7B,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAA+B,CAAC;YACvH,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YACnF,IAAI,IAAI,CAAC,CAAC,KAAK,IAAI;gBAAE,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;YACnC,IAAI,IAAI,CAAC,CAAC,KAAK,IAAI;gBAAE,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;YAElC,MAAM,QAAQ,GAAG,GAAG,GAAG,IAAI,CAAC;YAC5B,MAAM,SAAS,GAAG,IAAI,GAAG,IAAI,CAAC;YAE9B,6DAA6D;YAC7D,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;YAC9D,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;YAChE,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;YAC7F,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,GAAG,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC;YAE7F,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC;YAEjG,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;YAC7C,MAAM,OAAO,GAAkB;gBAC7B,MAAM,EAAE,QAAQ;gBAChB,IAAI,EAAE;oBACJ,EAAE;oBACF,KAAK,EAAE,SAAS,CAAC,eAAe,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBAC9D,eAAe,EAAE,SAAS,CAAC,eAAe;oBAC1C,WAAW,EAAE,SAAS,CAAC,WAAW;oBAClC,UAAU,EAAE,SAAS,CAAC,UAAU;oBAChC,cAAc,EAAE,KAAK;oBACrB,GAAG,EAAE,cAAc;oBACnB,IAAI,EAAE,eAAe;oBACrB,UAAU,EAAE,KAAK;oBACjB,MAAM,EAAE,SAAS,CAAC,aAAa;oBAC/B,KAAK,EAAE,SAAS,CAAC,YAAY;oBAC7B,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;oBACrD,QAAQ,EAAE,IAAI,CAAC,UAAU;oBACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,KAAK,EAAE,MAAM;oBACb,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,IAAI,EAAE,IAAI,CAAC,OAAO;oBAClB,KAAK,EAAE,IAAI;oBACX,KAAK,EAAE,EAAE;oBACT,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,IAAI;oBAChB,QAAQ,EAAE,SAAS,CAAC,eAAe,KAAK,UAAU;oBAClD,OAAO,EAAE,IAAI;oBACb,WAAW,EAAE,IAAI;oBACjB,UAAU,EAAE,IAAI;oBAChB,UAAU,EAAE,IAAI;oBAChB,EAAE,EAAE,eAAe,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBAC3F,EAAE,EAAE,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;oBAC1F,EAAE,EAAE,CAAC,eAAe,GAAG,SAAS,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK;oBAC5F,EAAE,EAAE,CAAC,cAAc,GAAG,SAAS,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,MAAM;oBAC7F,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE;iBACd;aAClB,CAAC;YAEF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,CAAC,CAAgB,EAAE,EAAE;QACrC,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;YACvB,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,CAAC,CAAC,eAAe,EAAE,CAAC;YACpB,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC,CAAC;IAEF,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC;IAClC,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IACpD,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAChD,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAK;IACpC,iFAAiF;IACjF,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;QACtD,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACjE,IAAI,CAAC;QACH,IAAI,IAAI,GAAkB,IAAI,CAAC,iBAAkC,CAAC;QAElE,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,WAAW,KAAK,WAAW,EAAE,CAAC;YACnE,IAAI,GAAG;gBACL,KAAK,EAAE,MAAM;gBACb,eAAe,EAAE,MAAM;gBACvB,WAAW,EAAE,MAAM;gBACnB,UAAU,EAAE,CAAC;gBACb,aAAa,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC,aAAa;gBACnD,YAAY,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC,YAAY;aAClD,CAAC;QACJ,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,WAAW,KAAK,WAAW,EAAE,CAAC;YAC1D,IAAI,GAAG;gBACL,KAAK,EAAE,WAAW;gBAClB,eAAe,EAAE,WAAW;gBAC5B,WAAW,EAAE,OAAO;gBACpB,UAAU,EAAE,IAAI;gBAChB,aAAa,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC,aAAa;gBACxD,YAAY,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC,YAAY;aACvD,CAAC;QACJ,CAAC;aAAM,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,WAAW,KAAK,OAAO,EAAE,CAAC;YAC7D,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC;QAC3C,CAAC;QACD,sCAAsC;QACtC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC;QACjG,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,cAAc,CAAC,mBAAmB,CAAgB,CAAC;QACzF,qEAAqE;QACrE,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;QAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;QAC9D,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;QAChE,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC;QAC3D,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC;QAC7D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;QAC3E,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;QAE3E,8CAA8C;QAC9C,MAAM,OAAO,GAAkB;YAC7B,MAAM,EAAE,QAAQ;YAChB,IAAI,EAAE;gBACJ,EAAE;gBACF,KAAK,EAAE,IAAI,CAAC,eAAe,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACzD,eAAe,EAAE,IAAI,CAAC,eAAe;gBACrC,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,cAAc,EAAE,KAAK;gBACrB,GAAG;gBACH,IAAI;gBACJ,UAAU,EAAE,KAAK;gBACjB,MAAM,EAAE,IAAI,CAAC,aAAa;gBAC1B,KAAK,EAAE,IAAI,CAAC,YAAY;gBACxB,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;gBACrD,QAAQ,EAAE,iBAAiB;gBAC3B,QAAQ,EAAE,iBAAiB;gBAC3B,KAAK,EAAE,MAAM;gBACb,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,IAAI,EAAE,IAAI,CAAC,OAAO;gBAClB,KAAK,EAAE,IAAI;gBACX,KAAK,EAAE,EAAE;gBACT,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAE,IAAI;gBAChB,QAAQ,EAAE,IAAI,CAAC,eAAe,KAAK,UAAU;gBAC7C,OAAO,EAAE,IAAI;gBACb,WAAW,EAAE,IAAI;gBACjB,UAAU,EAAE,IAAI;gBAChB,UAAU,EAAE,IAAI;gBAChB,EAAE,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACrE,EAAE,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBACpE,EAAE,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK;gBAC5E,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,MAAM;gBAC7E,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE;aACd;SAClB,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IAC9B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnB,CAAC;AACH,CAAC","sourcesContent":["import { LSApiElement } from '../../types/LSApiElement';\nimport { LSMutateEvent } from '../../types/LSMutateEvent';\nimport { findDimensions, findIn, recalculateCoordinates } from './editorCalculator';\nimport { IToolboxField } from '../interfaces/IToolboxField';\nimport { FIELD_DEFAULTS, DEFAULT_FONT_SIZE, DEFAULT_FONT_NAME } from '../../constants/fieldDefaults';\nimport { setLastClickPosition, clearLastClickPosition } from './clipboard';\nimport { snapshotField } from './history';\nimport { calculateSnap, calculateResizeSnap } from './snapHelper';\nimport { defaultRolePalette } from './defaultPalette';\nimport { dvI18n } from '../../i18n/i18n';\n\nconst preventSelect = (e: Event) => e.preventDefault();\n\nfunction showMoveBlockedTooltip(event: MouseEvent) {\n let tooltip = this.component.shadowRoot.getElementById('ls-move-blocked-tooltip');\n if (!tooltip) {\n tooltip = document.createElement('div');\n tooltip.id = 'ls-move-blocked-tooltip';\n tooltip.style.position = 'fixed';\n tooltip.style.padding = '0.375rem 0.75rem';\n tooltip.style.borderRadius = '0.5rem';\n tooltip.style.background = 'var(--gray-100, #45484d)';\n tooltip.style.color = 'white';\n tooltip.style.fontSize = '0.75rem';\n tooltip.style.fontFamily = 'var(--font-family, IBM Plex Sans, sans-serif)';\n tooltip.style.pointerEvents = 'none';\n tooltip.style.zIndex = '10000';\n tooltip.style.whiteSpace = 'nowrap';\n tooltip.textContent = dvI18n.t('fieldproperties.cannotmovemultipage');\n this.component.shadowRoot.appendChild(tooltip);\n }\n tooltip.style.left = (event.clientX + 12) + 'px';\n tooltip.style.top = (event.clientY + 12) + 'px';\n}\n\nfunction hideMoveBlockedTooltip() {\n const tooltip = this.component.shadowRoot?.getElementById('ls-move-blocked-tooltip');\n if (tooltip) tooltip.remove();\n}\n\nfunction disableSelection() {\n document.body.style.userSelect = 'none';\n document.body.style.webkitUserSelect = 'none';\n document.addEventListener('selectstart', preventSelect);\n}\n\nfunction enableSelection() {\n document.body.style.userSelect = '';\n document.body.style.webkitUserSelect = '';\n document.removeEventListener('selectstart', preventSelect);\n}\n\nexport function updateSelectionBox() {\n var box = this.component.shadowRoot.getElementById('ls-box-selector') as HTMLElement;\n const pageSelected = this.selected?.filter(f => f.dataItem?.page === this.pageNum);\n if (!pageSelected || pageSelected.length < 2) {\n box.style.visibility = 'hidden';\n return;\n }\n\n let minLeft = Infinity, minTop = Infinity, maxRight = -Infinity, maxBottom = -Infinity;\n\n pageSelected.forEach(f => {\n const left = f.offsetLeft;\n const top = f.offsetTop;\n const right = left + f.offsetWidth;\n const bottom = top + f.offsetHeight;\n if (left < minLeft) minLeft = left;\n if (top < minTop) minTop = top;\n if (right > maxRight) maxRight = right;\n if (bottom > maxBottom) maxBottom = bottom;\n });\n\n box.style.left = minLeft + 'px';\n box.style.top = minTop + 'px';\n box.style.width = (maxRight - minLeft) + 'px';\n box.style.height = (maxBottom - minTop) + 'px';\n box.style.visibility = 'visible';\n}\n\nlet mousetimer = null;\n\nexport function debounce(data, delay) {\n if (mousetimer) clearTimeout(mousetimer);\n\n mousetimer = setTimeout(() => {\n this.mutate.emit([data]);\n }, delay);\n}\n\nconst MIN_DRAG_DISTANCE = 5;\n\nexport function mouseDown(e) {\n if (this._isToolboxDragging) return;\n // Disable mouse interactions in preview mode or when template is locked\n if (this.mode === 'preview' || this._template?.locked) {\n return;\n }\n // Only process if mousedown target is the frame, canvas, wrapper itself, or an editor field.\n // This prevents floating UI children (select-menu) from triggering drags.\n const frame = this.component.shadowRoot.getElementById('ls-document-frame');\n const wrapper = this.component.shadowRoot.getElementById('document-frame-wrapper');\n if (!frame) return;\n const target = e.target as HTMLElement;\n const isValidTarget = target === frame || target === wrapper || target?.id === 'pdf-canvas' || target?.tagName?.toLowerCase() === 'canvas';\n const isFieldTarget = target?.tagName?.toLowerCase() === 'ls-editor-field';\n if (!isValidTarget && !isFieldTarget) return;\n\n // Find if this was\n // - a hit on a field edge RESIZE\n // - a hit on the middle of a field MOVE\n // - a hit on the background document SELECTMULTIPLE with a box\n this.hitField = null;\n const fields = this.component.shadowRoot.querySelectorAll('ls-editor-field');\n\n fields.forEach(f => {\n const { left, top, height, width, bottom, right } = f.getBoundingClientRect();\n const fdims = { left: f.offsetLeft, top: f.offsetTop, height, width, x: e.screenX, y: e.screenY };\n this.startMouse = fdims;\n // Scale edge threshold for small fields\n const edgeX = Math.min(8, width * 0.25);\n const edgeY = Math.min(8, height * 0.25);\n const cornerX = Math.min(16, width * 0.35);\n const cornerY = Math.min(16, height * 0.35);\n // corners (check before edges)\n if (Math.abs(e.clientX - right) < cornerX && Math.abs(e.clientY - bottom) < cornerY) {\n this.edgeSide = 'se';\n this.hitField = f;\n } else if (Math.abs(e.clientX - left) < cornerX && Math.abs(e.clientY - top) < cornerY) {\n this.edgeSide = 'nw';\n this.hitField = f;\n } else if (Math.abs(e.clientX - right) < cornerX && Math.abs(e.clientY - top) < cornerY) {\n this.edgeSide = 'ne';\n this.hitField = f;\n } else if (Math.abs(e.clientX - left) < cornerX && Math.abs(e.clientY - bottom) < cornerY) {\n this.edgeSide = 'sw';\n this.hitField = f;\n // west edge\n } else if (Math.abs(e.clientX - left) < edgeX && e.clientY >= top && e.clientY <= bottom) {\n this.edgeSide = 'w';\n this.hitField = f;\n // right / east edge\n } else if (Math.abs(e.clientX - right) < edgeX && e.clientY >= top && e.clientY <= bottom) {\n this.edgeSide = 'e';\n this.hitField = f;\n // north edge\n } else if (Math.abs(e.clientY - top) < edgeY && e.clientX >= left && e.clientX <= right) {\n this.edgeSide = 'n';\n this.hitField = f;\n // south edge\n } else if (Math.abs(e.clientY - bottom) < edgeY && e.clientX >= left && e.clientX <= right) {\n this.edgeSide = 's';\n this.hitField = f;\n } else if (e.clientY <= bottom && e.clientY >= top && e.clientX >= left && e.clientX <= right) {\n this.edgeSide = null;\n this.hitField = f;\n }\n });\n\n if (this.hitField && e.shiftKey === false && e.altKey === false) {\n var box = this.component.shadowRoot.getElementById('ls-box-selector') as HTMLElement;\n box.style.visibility = 'hidden';\n\n // Snapshot field state before any resize/move begins\n snapshotField(this.hitField.dataItem);\n // Snapshot all currently selected fields (for multi-field move undo)\n this.selected.forEach(f => snapshotField(f.dataItem));\n\n // mouse down on a field, select it and note the start location\n if (this.hitField.selected === false) {\n // unselect all other fields\n fields.forEach(fu => {\n fu.selected = false;\n });\n this.selected = [this.hitField];\n this.selectFields.emit([this.hitField.dataItem]);\n }\n\n const { height, width } = this.hitField.getBoundingClientRect();\n const fdims = { left: this.hitField.offsetLeft, top: this.hitField.offsetTop, height, width, x: e.screenX, y: e.screenY };\n this.startMouse = fdims;\n\n this.startLocations = this.selected.map(f => {\n const { height, width } = f.getBoundingClientRect();\n const beHtml = f as HTMLElement;\n return { top: beHtml.offsetTop, left: beHtml.offsetLeft, height, width };\n });\n this.selectionBox = null;\n } else if (this.hitField && e.altKey === true) {\n // Alt+click: remove field from selection\n if (this.hitField.selected === true) {\n this.hitField.selected = false;\n this.selected = this.selected.filter(f => f !== this.hitField);\n this.selectFields.emit(this.selected.map(si => si.dataItem));\n }\n this.hitField = null;\n this.startMouse = null;\n this.startLocations = null;\n this.selectionBox = null;\n updateSelectionBox.bind(this)();\n } else if (this.hitField && e.shiftKey === true) {\n var box = this.component.shadowRoot.getElementById('ls-box-selector') as HTMLElement;\n box.style.visibility = 'hidden';\n\n if (this.hitField.selected === true) {\n // Toggle off: remove from selection\n this.hitField.selected = false;\n this.selected = this.selected.filter(f => f !== this.hitField);\n this.selectFields.emit(this.selected.map(si => si.dataItem));\n this.hitField = null;\n this.startMouse = null;\n this.startLocations = null;\n this.selectionBox = null;\n updateSelectionBox.bind(this)();\n } else {\n // Add to selection\n this.hitField.selected = true;\n this.selected = [...this.selected, this.hitField];\n this.selectFields.emit(this.selected.map(si => si.dataItem));\n\n const { height, width } = this.hitField.getBoundingClientRect();\n const fdims = { left: this.hitField.offsetLeft, top: this.hitField.offsetTop, height, width, x: e.screenX, y: e.screenY };\n this.startMouse = fdims;\n\n this.startLocations = this.selected.map(f => {\n const { height, width } = f.getBoundingClientRect();\n const beHtml = f as HTMLElement;\n return { top: beHtml.offsetTop, left: beHtml.offsetLeft, height, width };\n });\n this.selectionBox = null;\n }\n } else {\n // move down on empty space, store pending start for selection box\n this.startLocations = null;\n this.startMouse = null;\n this.selectionBox = null;\n this._pendingSelectionBox = { x: e.clientX, y: e.clientY };\n disableSelection();\n\n if (!e.shiftKey && !e.altKey) {\n this.unselect();\n this.selectFields.emit([]);\n this.selected = [];\n updateSelectionBox.bind(this)();\n }\n }\n}\n\nexport function outOfBounds(futureField) {\n return (\n futureField.height <= 5 ||\n futureField.left < 0 ||\n futureField.top < 0 ||\n futureField.left + futureField.width >= futureField.pageDimensions.width ||\n futureField.top + futureField.height >= futureField.pageDimensions.height\n );\n}\nexport function mouseMove(event) {\n event.preventDefault();\n if (this._isToolboxDragging) return;\n // Disable mouse move interactions in preview mode or when template is locked\n if (this.mode === 'preview' || this._template?.locked) {\n return;\n }\n\n // We have the mouse held down on a field edge to resize it.\n if (this.hitField && this.edgeSide && this.startMouse && event.buttons === 1) {\n disableSelection();\n const movedX = event.screenX - this.startMouse.x;\n const movedY = event.screenY - this.startMouse.y;\n var scale = this.hitField.dataItem.formElementType === 'signature' && this._template.fixSignatureScale;\n\n // Calculate candidate dimensions before snapping\n let candidateLeft = this.startMouse.left;\n let candidateTop = this.startMouse.top;\n let candidateWidth = this.startMouse.width;\n let candidateHeight = this.startMouse.height;\n\n switch (this.edgeSide) {\n case 'n':\n if (scale) {\n candidateHeight = this.startMouse.height - movedY;\n candidateWidth = candidateHeight * (this.startMouse.width / this.startMouse.height);\n } else {\n candidateTop = this.startMouse.top + movedY;\n candidateHeight = this.startMouse.height - movedY;\n }\n break;\n case 's':\n if (scale) {\n candidateHeight = this.startMouse.height + movedY;\n candidateWidth = candidateHeight * (this.startMouse.width / this.startMouse.height);\n } else {\n candidateHeight = this.startMouse.height + movedY;\n }\n break;\n case 'e':\n if (scale) {\n candidateWidth = this.startMouse.width + movedX;\n candidateHeight = candidateWidth * (this.startMouse.height / this.startMouse.width);\n } else {\n candidateWidth = this.startMouse.width + movedX;\n }\n break;\n case 'w':\n if (scale) {\n candidateWidth = this.startMouse.width - movedX;\n candidateHeight = candidateWidth * (this.startMouse.height / this.startMouse.width);\n candidateLeft = this.startMouse.left + movedX;\n } else {\n candidateLeft = this.startMouse.left + movedX;\n candidateWidth = this.startMouse.width - movedX;\n }\n break;\n case 'se':\n if (scale) {\n candidateWidth = this.startMouse.width + movedX;\n candidateHeight = candidateWidth / (this.startMouse.width / this.startMouse.height);\n } else {\n candidateWidth = this.startMouse.width + movedX;\n candidateHeight = this.startMouse.height + movedY;\n }\n break;\n case 'nw':\n if (scale) {\n candidateWidth = this.startMouse.width - movedX;\n candidateHeight = candidateWidth / (this.startMouse.width / this.startMouse.height);\n candidateLeft = this.startMouse.left + movedX;\n candidateTop = this.startMouse.top + (this.startMouse.height - candidateHeight);\n } else {\n candidateLeft = this.startMouse.left + movedX;\n candidateTop = this.startMouse.top + movedY;\n candidateWidth = this.startMouse.width - movedX;\n candidateHeight = this.startMouse.height - movedY;\n }\n break;\n case 'ne':\n if (scale) {\n candidateWidth = this.startMouse.width + movedX;\n candidateHeight = candidateWidth / (this.startMouse.width / this.startMouse.height);\n candidateTop = this.startMouse.top + (this.startMouse.height - candidateHeight);\n } else {\n candidateWidth = this.startMouse.width + movedX;\n candidateTop = this.startMouse.top + movedY;\n candidateHeight = this.startMouse.height - movedY;\n }\n break;\n case 'sw':\n if (scale) {\n candidateWidth = this.startMouse.width - movedX;\n candidateHeight = candidateWidth / (this.startMouse.width / this.startMouse.height);\n candidateLeft = this.startMouse.left + movedX;\n } else {\n candidateLeft = this.startMouse.left + movedX;\n candidateWidth = this.startMouse.width - movedX;\n candidateHeight = this.startMouse.height + movedY;\n }\n break;\n }\n\n // Snap active resize edges\n const allFields = Array.from(this.component.shadowRoot.querySelectorAll('ls-editor-field')) as HTMLLsEditorFieldElement[];\n const resizeSnap = calculateResizeSnap(\n candidateLeft, candidateTop, candidateWidth, candidateHeight,\n this.edgeSide, allFields, this.pageNum, [this.hitField.dataItem.id]\n );\n\n if (scale) {\n const aspect = this.startMouse.width / this.startMouse.height;\n const hasH = resizeSnap.edges.e !== undefined || resizeSnap.edges.w !== undefined;\n const hasV = resizeSnap.edges.n !== undefined || resizeSnap.edges.s !== undefined;\n\n // When both axes snap on a corner, pick the closer one\n let useH = hasH;\n let useV = hasV;\n if (hasH && hasV && this.edgeSide.length === 2) {\n const hDist = resizeSnap.edges.e !== undefined\n ? Math.abs((candidateLeft + candidateWidth) - resizeSnap.edges.e)\n : Math.abs(candidateLeft - resizeSnap.edges.w);\n const vDist = resizeSnap.edges.s !== undefined\n ? Math.abs((candidateTop + candidateHeight) - resizeSnap.edges.s)\n : Math.abs(candidateTop - resizeSnap.edges.n);\n if (hDist <= vDist) { useV = false; } else { useH = false; }\n }\n\n if (useV && !useH) {\n if (resizeSnap.edges.n !== undefined) {\n candidateHeight = (candidateTop + candidateHeight) - resizeSnap.edges.n;\n candidateTop = resizeSnap.edges.n;\n }\n if (resizeSnap.edges.s !== undefined) {\n candidateHeight = resizeSnap.edges.s - candidateTop;\n }\n candidateWidth = candidateHeight * aspect;\n } else if (useH) {\n if (resizeSnap.edges.w !== undefined) {\n candidateWidth = (candidateLeft + candidateWidth) - resizeSnap.edges.w;\n candidateLeft = resizeSnap.edges.w;\n }\n if (resizeSnap.edges.e !== undefined) {\n candidateWidth = resizeSnap.edges.e - candidateLeft;\n }\n candidateHeight = candidateWidth / aspect;\n }\n\n if (this.edgeSide.includes('n')) candidateTop = (this.startMouse.top + this.startMouse.height) - candidateHeight;\n if (this.edgeSide.includes('w')) candidateLeft = (this.startMouse.left + this.startMouse.width) - candidateWidth;\n\n // Only show guides for the axis we used\n const guides = resizeSnap.guides.filter(g =>\n (useH && g.orientation === 'v') || (useV && g.orientation === 'h')\n );\n showSnapGuides.bind(this)(guides);\n } else {\n if (resizeSnap.edges.n !== undefined) {\n candidateHeight = (candidateTop + candidateHeight) - resizeSnap.edges.n;\n candidateTop = resizeSnap.edges.n;\n }\n if (resizeSnap.edges.s !== undefined) {\n candidateHeight = resizeSnap.edges.s - candidateTop;\n }\n if (resizeSnap.edges.w !== undefined) {\n candidateWidth = (candidateLeft + candidateWidth) - resizeSnap.edges.w;\n candidateLeft = resizeSnap.edges.w;\n }\n if (resizeSnap.edges.e !== undefined) {\n candidateWidth = resizeSnap.edges.e - candidateLeft;\n }\n showSnapGuides.bind(this)(resizeSnap.guides);\n }\n\n if (!outOfBounds({ ...this.hitField.dataItem, left: candidateLeft / this.zoom, top: candidateTop / this.zoom, width: candidateWidth / this.zoom, height: candidateHeight / this.zoom })) {\n this.hitField.style.left = candidateLeft + 'px';\n this.hitField.style.top = candidateTop + 'px';\n this.hitField.style.width = candidateWidth + 'px';\n this.hitField.style.height = candidateHeight + 'px';\n this.hitField.dataItem = {\n ...this.hitField.dataItem,\n left: candidateLeft / this.zoom,\n top: candidateTop / this.zoom,\n width: candidateWidth / this.zoom,\n height: candidateHeight / this.zoom,\n };\n }\n\n debounce.bind(this)({ action: 'update', data: recalculateCoordinates(this.hitField.dataItem) }, 700);\n } else if ((this.selectionBox || this._pendingSelectionBox) && event.buttons === 1) {\n // Check minimum drag distance before activating selection box\n if (!this.selectionBox && this._pendingSelectionBox) {\n const dx = event.clientX - this._pendingSelectionBox.x;\n const dy = event.clientY - this._pendingSelectionBox.y;\n if (Math.abs(dx) < MIN_DRAG_DISTANCE && Math.abs(dy) < MIN_DRAG_DISTANCE) return;\n this.selectionBox = this._pendingSelectionBox;\n this._pendingSelectionBox = null;\n this.component.style.cursor = 'crosshair';\n }\n\n this.isBoxing = true;\n // draw the multiple selection box\n var dragBox = this.component.shadowRoot.getElementById('ls-drag-selector') as HTMLElement;\n var frame = this.component.shadowRoot.getElementById('ls-document-frame') as HTMLElement;\n var leftOffset = frame.getBoundingClientRect().left;\n var topOffset = frame.getBoundingClientRect().top;\n\n const movedX = event.clientX - this.selectionBox.x;\n const movedY = event.clientY - this.selectionBox.y;\n\n // allow for the frame to be scrolled\n dragBox.style.visibility = 'visible';\n dragBox.style.left = (this.selectionBox.x > event.clientX ? event.clientX : this.selectionBox.x) - leftOffset + frame.scrollLeft + 'px';\n dragBox.style.top = (this.selectionBox.y > event.clientY ? event.clientY : this.selectionBox.y) - topOffset + frame.scrollTop + 'px';\n dragBox.style.width = Math.abs(movedX) + 'px';\n dragBox.style.height = Math.abs(movedY) + 'px';\n\n // Move one or more selected items\n } else if (this.startLocations && !this.edgeSide && this.startMouse && event.buttons === 1) {\n // Block move if selection spans multiple pages\n const pages = new Set(this.selected?.map(f => f.dataItem?.page));\n if (pages.size > 1) {\n showMoveBlockedTooltip.bind(this)(event);\n return;\n }\n\n this.isMoving = true;\n disableSelection();\n var box = this.component.shadowRoot.getElementById('ls-box-selector') as HTMLElement;\n box.style.visibility = 'hidden';\n\n // Dismiss any open date picker when moving fields\n if (this.selected?.length) {\n this.selected.forEach(f => {\n const input = f.shadowRoot?.getElementById('editing-input') as HTMLInputElement;\n if (input) input.blur();\n });\n }\n\n // Move one or more selected items\n const movedX = event.screenX - this.startMouse.x;\n const movedY = event.screenY - this.startMouse.y;\n if (this.selected?.length) {\n // Calculate snap based on the primary (first) selected field\n const primaryLeft = this.startLocations[0].left + movedX;\n const primaryTop = this.startLocations[0].top + movedY;\n const primaryWidth = this.startLocations[0].width;\n const primaryHeight = this.startLocations[0].height;\n\n const allFields = Array.from(this.component.shadowRoot.querySelectorAll('ls-editor-field')) as HTMLLsEditorFieldElement[];\n const excludeIds = this.selected.map(s => s.dataItem.id);\n const snap = calculateSnap(primaryLeft, primaryTop, primaryWidth, primaryHeight, allFields, this.pageNum, excludeIds);\n\n // Apply snap offset to all selected fields\n const snapOffsetX = snap.x !== null ? snap.x - primaryLeft : 0;\n const snapOffsetY = snap.y !== null ? snap.y - primaryTop : 0;\n\n for (let i = 0; i < this.selected.length; i++) {\n const newLeft = this.startLocations[i].left + movedX + snapOffsetX;\n const newTop = this.startLocations[i].top + movedY + snapOffsetY;\n if (\n newLeft >= 0 &&\n newTop >= 0 &&\n newLeft <= (this.pageDimensions[this.pageNum - 1].width - this.selected[i].dataItem.width) * this.zoom &&\n newTop <= (this.pageDimensions[this.pageNum - 1].height - this.selected[i].dataItem.height) * this.zoom\n ) {\n this.selected[i].style.left = Math.round(newLeft) + 'px';\n this.selected[i].style.top = Math.round(newTop) + 'px';\n }\n }\n\n showSnapGuides.bind(this)(snap.guides);\n updateSelectionBox.bind(this)();\n }\n }\n}\n\nexport function mouseUp(event) {\n this.edgeSide = null;\n this.startMouse = null;\n this._pendingSelectionBox = null;\n this.component.style.cursor = 'auto';\n enableSelection();\n clearSnapGuides.bind(this)();\n hideMoveBlockedTooltip.bind(this)();\n\n // find what was inside the selection box emit the select event and change their style\n if (this.selectionBox && this.isBoxing) {\n this.isBoxing = false;\n var dragBox = this.component.shadowRoot.getElementById('ls-drag-selector') as HTMLElement;\n var fields = this.component.shadowRoot.querySelectorAll('ls-editor-field');\n const isShift = event.shiftKey;\n const isAlt = event.altKey;\n this.selectionBox = null;\n const found = findIn(fields, dragBox, !isAlt, isShift || isAlt);\n dragBox.style.visibility = 'hidden';\n\n if (isAlt) {\n const removeIds = new Set(found.map(f => f.dataItem?.id));\n found.forEach(f => { f.selected = false; });\n this.selected = this.selected.filter(f => !removeIds.has(f.dataItem?.id));\n } else if (isShift) {\n const existingIds = new Set(this.selected.map(f => f.dataItem?.id));\n const newFields = found.filter(f => !existingIds.has(f.dataItem?.id));\n this.selected = [...this.selected, ...newFields];\n } else {\n this.selected = Array.from(found);\n }\n\n this.selectFields.emit(this.selected.map(fx => fx.dataItem));\n updateSelectionBox.bind(this)();\n }\n}\n\nexport function mouseClick(e) {\n // Disable click interactions in preview mode or when template is locked\n if (this.mode === 'preview' || this._template?.locked) {\n return;\n }\n \n // check we're not moving fields\n if (this.isMoving) {\n // End dragging fields\n this.isMoving = false;\n const fields = this.component.shadowRoot.querySelectorAll('ls-editor-field') as HTMLLsEditorFieldElement[];\n const divFrame = this.component.shadowRoot.getElementById('ls-document-frame') as HTMLDivElement;\n const selected = Array.from(fields).filter(fx => fx.selected);\n\n this.mutate.emit(\n Array.from(fields)\n .filter(fx => fx.selected)\n .map(fx => {\n // Calculate new positions and update the dataItem on the control\n const delta = {\n ...fx.dataItem,\n ...findDimensions(divFrame, fx, fx.dataItem.pageDimensions.height, fx.dataItem.pageDimensions.width, this.zoom),\n };\n // update the data in the html element\n fx.dataItem = delta;\n // send an update event to be processed\n return { action: 'update', data: delta };\n }),\n );\n this.selectFields.emit(selected.map(fx => fx.dataItem));\n updateSelectionBox.bind(this)();\n } else {\n // reset the selection box location\n this.selectionBox = null;\n\n let hitAny = false;\n const fields = this.component.shadowRoot.querySelectorAll('ls-editor-field') as HTMLLsEditorFieldElement[];\n fields.forEach(f => {\n const { left, top, bottom, right } = f.getBoundingClientRect();\n if (e.clientY <= bottom && e.clientY >= top && e.clientX >= left && e.clientX <= right) {\n this.edgeSide = null;\n this.hitField = f;\n if (!e.shiftKey && !e.altKey) {\n fields.forEach(ft => (ft.selected = false));\n f.selected = true;\n }\n // shift/alt+click: mouseDown already toggled selected state, preserve it\n hitAny = true;\n }\n });\n\n // Track click position for paste targeting\n if (hitAny) {\n clearLastClickPosition();\n } else {\n setLastClickPosition(e.clientX, e.clientY);\n }\n\n this.selected = Array.from(fields).filter(fx => fx.selected);\n this.selectFields.emit(this.selected.map(fx => fx.dataItem));\n updateSelectionBox.bind(this)();\n }\n}\n\nexport function showSnapGuides(guides: { orientation: 'h' | 'v'; position: number }[]) {\n const frame = this.component.shadowRoot.getElementById('ls-document-frame') as HTMLElement;\n let container = this.component.shadowRoot.getElementById('ls-snap-guides');\n if (!container) {\n container = document.createElement('div');\n container.id = 'ls-snap-guides';\n container.style.position = 'absolute';\n container.style.top = '0';\n container.style.left = '0';\n container.style.width = '100%';\n container.style.height = '100%';\n container.style.pointerEvents = 'none';\n container.style.zIndex = '9999';\n frame.appendChild(container);\n }\n\n container.innerHTML = '';\n for (const guide of guides) {\n const line = document.createElement('div');\n line.style.position = 'absolute';\n line.style.backgroundColor = 'transparent';\n if (guide.orientation === 'v') {\n line.style.left = guide.position + 'px';\n line.style.top = '0';\n line.style.width = '0';\n line.style.height = '100%';\n line.style.borderLeft = '1px dashed var(--gray-50, #c8c9cc)';\n } else {\n line.style.top = guide.position + 'px';\n line.style.left = '0';\n line.style.width = '100%';\n line.style.height = '0';\n line.style.borderTop = '1px dashed var(--gray-50, #c8c9cc)';\n }\n container.appendChild(line);\n }\n}\n\nexport function clearSnapGuides() {\n const container = this.component.shadowRoot.getElementById('ls-snap-guides');\n if (container) container.innerHTML = '';\n}\n\nexport function toolboxDragStart(fieldData: IToolboxField) {\n // Disable toolbox dragging when template is locked\n if (this._template?.locked) {\n return;\n }\n // Cancel any existing toolbox drag\n if (this._cancelToolboxDrag) {\n this._cancelToolboxDrag();\n }\n\n const frame = this.component.shadowRoot.getElementById('ls-document-frame') as HTMLElement;\n const zoom = this.zoom;\n this._isToolboxDragging = true;\n let hasMoved = false;\n\n // Prevent text selection during drag\n disableSelection();\n\n // Add dragging class to toolbox fields (shadow DOM cursor override)\n this.component.shadowRoot.querySelectorAll('ls-left-bar, ls-compose-loader').forEach(bar => {\n bar.shadowRoot?.querySelectorAll('ls-toolbox-field').forEach(el => el.classList.add('ls-dv-dragging'));\n });\n\n // Create ghost preview element matching the original drag image style\n const ghost = document.createElement('div');\n ghost.id = 'ls-toolbox-ghost';\n ghost.style.position = 'fixed';\n ghost.style.width = fieldData.defaultWidth * zoom + 'px';\n ghost.style.height = fieldData.defaultHeight * zoom + 'px';\n ghost.style.border = `1px dashed ${defaultRolePalette[this.signer % 100].s60}`;\n const s20 = defaultRolePalette[this.signer % 100].s20.replace('#', '');\n const r = parseInt(s20.substring(0, 2), 16);\n const g = parseInt(s20.substring(2, 4), 16);\n const b = parseInt(s20.substring(4, 6), 16);\n ghost.style.background = `rgba(${r},${g},${b},0.5)`;\n ghost.style.boxShadow = '0 4px 6px -1px rgba(0, 0, 0, 0.10), 0 2px 4px -1px rgba(0, 0, 0, 0.06)';\n ghost.style.pointerEvents = 'none';\n ghost.style.zIndex = '10000';\n ghost.style.visibility = 'hidden';\n ghost.style.boxSizing = 'content-box';\n ghost.style.fontFamily = 'var(--font-family, IBM Plex Sans, sans-serif)';\n ghost.style.fontSize = Math.round(DEFAULT_FONT_SIZE * zoom) + 'px';\n ghost.style.color = defaultRolePalette[this.signer % 100].s100;\n ghost.style.overflow = 'visible';\n ghost.style.whiteSpace = 'nowrap';\n ghost.style.display = 'flex';\n ghost.style.alignItems = 'center';\n ghost.style.textTransform = 'capitalize';\n ghost.innerHTML = fieldData.formElementType;\n\n // Assignee label below ghost\n const assignee = this.mode === 'compose'\n ? this._recipients?.find(r => r.signerIndex === this.signer)\n : this._template.roles.find(r => r.signerIndex === this.signer);\n const assigneeName = this.mode === 'compose' && assignee?.previousRecipientDecides\n ? 'To Be Decided'\n : this.mode === 'compose'\n ? `${assignee?.firstName} ${assignee?.lastName}`\n : assignee?.name || (this.signer === 0 ? 'Sender' : `Participant ${this.signer}`);\n const assigneeLabel = document.createElement('p');\n assigneeLabel.style.position = 'absolute';\n assigneeLabel.style.color = 'var(--gray-80, #3a3a3a)';\n assigneeLabel.style.bottom = `-${1 * zoom}rem`;\n assigneeLabel.style.left = '0';\n assigneeLabel.style.margin = '0';\n assigneeLabel.style.padding = '0';\n assigneeLabel.style.lineHeight = '1';\n assigneeLabel.style.fontSize = `${0.625 * zoom}rem`;\n assigneeLabel.style.whiteSpace = 'nowrap';\n assigneeLabel.style.fontFamily = 'sans-serif';\n assigneeLabel.style.textTransform = 'none';\n assigneeLabel.style.pointerEvents = 'none';\n assigneeLabel.textContent = `${dvI18n.t('fieldproperties.assignedto')} ${assigneeName}`;\n ghost.appendChild(assigneeLabel);\n\n this.component.shadowRoot.appendChild(ghost);\n\n // Info chip at bottom of screen\n const chip = document.createElement('div');\n chip.id = 'ls-esc-chip';\n chip.style.position = 'fixed';\n chip.style.bottom = '1.5rem';\n chip.style.left = '50%';\n chip.style.transform = 'translateX(-50%)';\n chip.style.padding = '0.375rem 0.75rem';\n chip.style.borderRadius = '0.625rem';\n chip.style.background = 'var(--gray-100, #1f2937)';\n chip.style.color = 'white';\n chip.style.fontSize = '0.75rem';\n chip.style.fontFamily = 'var(--font-family, IBM Plex Sans, sans-serif)';\n chip.style.pointerEvents = 'none';\n chip.style.zIndex = '10000';\n chip.style.boxShadow = '0 4px 6px -1px rgba(0, 0, 0, 0.1)';\n chip.textContent = 'Press Esc to cancel field placement';\n this.component.shadowRoot.appendChild(chip);\n\n const onMouseMove = (e: MouseEvent) => {\n e.preventDefault();\n hasMoved = true;\n const dragWidth = fieldData.defaultWidth * zoom;\n const dragHeight = fieldData.defaultHeight * zoom;\n\n const frameRect = frame.getBoundingClientRect();\n const isOverFrame = e.clientX >= frameRect.left && e.clientX <= frameRect.right &&\n e.clientY >= frameRect.top && e.clientY <= frameRect.bottom;\n const isDragging = e.buttons === 1;\n\n // Only show grabbing cursor when ghost is visible\n let cursorStyle = document.getElementById('ls-drag-cursor') as HTMLStyleElement;\n if ((isOverFrame || isDragging) && !cursorStyle) {\n cursorStyle = document.createElement('style');\n cursorStyle.id = 'ls-drag-cursor';\n cursorStyle.textContent = '* { cursor: grabbing !important; }';\n document.head.appendChild(cursorStyle);\n } else if (!isOverFrame && !isDragging && cursorStyle) {\n cursorStyle.remove();\n }\n\n // When dragging (mouse held): show ghost over wrapper area\n // When click-to-place (mouse not held): only show over document frame\n if (isOverFrame) {\n ghost.style.visibility = 'visible';\n ghost.style.opacity = '1';\n const x = e.clientX - frameRect.left + frame.scrollLeft;\n const y = e.clientY - frameRect.top + frame.scrollTop;\n let left = x - dragWidth / 2;\n let top = y - dragHeight / 2;\n\n const fields = Array.from(this.component.shadowRoot.querySelectorAll('ls-editor-field')) as HTMLLsEditorFieldElement[];\n const snap = calculateSnap(left, top, dragWidth, dragHeight, fields, this.pageNum);\n ghost.style.left = (snap.x !== null ? snap.x + frameRect.left - frame.scrollLeft : e.clientX - dragWidth / 2) + 'px';\n ghost.style.top = (snap.y !== null ? snap.y + frameRect.top - frame.scrollTop : e.clientY - dragHeight / 2) + 'px';\n\n showSnapGuides.bind(this)(snap.guides);\n } else if (isDragging) {\n ghost.style.visibility = 'visible';\n ghost.style.opacity = '0.5';\n ghost.style.left = (e.clientX - dragWidth / 2) + 'px';\n ghost.style.top = (e.clientY - dragHeight / 2) + 'px';\n clearSnapGuides.bind(this)();\n } else {\n ghost.style.visibility = 'hidden';\n clearSnapGuides.bind(this)();\n }\n };\n\n const cleanup = () => {\n document.removeEventListener('mousemove', onMouseMove);\n document.removeEventListener('mouseup', onMouseUp);\n document.removeEventListener('keydown', onKeyDown);\n ghost.remove();\n chip.remove();\n clearSnapGuides.bind(this)();\n enableSelection();\n const cursorStyle = document.getElementById('ls-drag-cursor');\n if (cursorStyle) cursorStyle.remove();\n this.component.shadowRoot.querySelectorAll('ls-left-bar, ls-compose-loader').forEach(bar => {\n bar.shadowRoot?.querySelectorAll('ls-toolbox-field').forEach(el => el.classList.remove('ls-dv-dragging'));\n });\n this._isToolboxDragging = false;\n this._cancelToolboxDrag = null;\n };\n\n const onMouseUp = (e: MouseEvent) => {\n // Ignore mouseup if it's from the same click that started the drag (no movement yet)\n if (!hasMoved) return;\n\n const frameRect = frame.getBoundingClientRect();\n const shouldPlace = e.clientX >= frameRect.left && e.clientX <= frameRect.right &&\n e.clientY >= frameRect.top && e.clientY <= frameRect.bottom;\n\n cleanup();\n\n if (shouldPlace) {\n\n const dragWidth = fieldData.defaultWidth * zoom;\n const dragHeight = fieldData.defaultHeight * zoom;\n const x = e.clientX - frameRect.left + frame.scrollLeft;\n const y = e.clientY - frameRect.top + frame.scrollTop;\n let left = x - dragWidth / 2;\n let top = y - dragHeight / 2;\n\n const fields = Array.from(this.component.shadowRoot.querySelectorAll('ls-editor-field')) as HTMLLsEditorFieldElement[];\n const snap = calculateSnap(left, top, dragWidth, dragHeight, fields, this.pageNum);\n if (snap.x !== null) left = snap.x;\n if (snap.y !== null) top = snap.y;\n\n const finalTop = top / zoom;\n const finalLeft = left / zoom;\n\n // Check if field fits on page - constrain to page boundaries\n const pageWidth = this.pageDimensions[this.pageNum - 1].width;\n const pageHeight = this.pageDimensions[this.pageNum - 1].height;\n const constrainedLeft = Math.max(0, Math.min(finalLeft, pageWidth - fieldData.defaultWidth));\n const constrainedTop = Math.max(0, Math.min(finalTop, pageHeight - fieldData.defaultHeight));\n\n this.component.shadowRoot.querySelectorAll('ls-editor-field').forEach(f => (f.selected = false));\n\n const id = btoa('ele' + crypto.randomUUID());\n const newData: LSMutateEvent = {\n action: 'create',\n data: {\n id,\n value: fieldData.formElementType === 'checkbox' ? 'false' : '',\n formElementType: fieldData.formElementType,\n elementType: fieldData.elementType,\n validation: fieldData.validation,\n excludeFromPdf: false,\n top: constrainedTop,\n left: constrainedLeft,\n hideBorder: false,\n height: fieldData.defaultHeight,\n width: fieldData.defaultWidth,\n pageDimensions: this.pageDimensions[this.pageNum - 1],\n fontName: this.fontFamily,\n fontSize: this.fontSize,\n align: 'left',\n signer: this.signer,\n page: this.pageNum,\n mapTo: null,\n label: '',\n helpText: null,\n logicGroup: null,\n optional: fieldData.formElementType === 'checkbox',\n options: null,\n logicAction: null,\n labelExtra: null,\n fieldOrder: null,\n ax: constrainedLeft > 0 ? constrainedLeft / this.pageDimensions[this.pageNum - 1].width : 0,\n ay: constrainedTop > 0 ? constrainedTop / this.pageDimensions[this.pageNum - 1].height : 0,\n bx: (constrainedLeft + fieldData.defaultWidth) / this.pageDimensions[this.pageNum - 1].width,\n by: (constrainedTop + fieldData.defaultHeight) / this.pageDimensions[this.pageNum - 1].height,\n templateId: this._template.id,\n } as LSApiElement,\n };\n\n this.mutate.emit([newData]);\n }\n };\n\n const onKeyDown = (e: KeyboardEvent) => {\n if (e.key === 'Escape') {\n e.preventDefault();\n e.stopPropagation();\n cleanup();\n }\n };\n\n this._cancelToolboxDrag = cleanup;\n document.addEventListener('mousemove', onMouseMove);\n document.addEventListener('mouseup', onMouseUp);\n document.addEventListener('keydown', onKeyDown);\n}\n\nexport function mouseDoubleClick(event) {\n // Disable double-click field creation in preview mode or when template is locked\n if (this.mode === 'preview' || this._template?.locked) {\n return;\n }\n \n console.log('double click', this.fieldTypeSelected, this.signer);\n try {\n let data: IToolboxField = this.fieldTypeSelected as IToolboxField;\n\n if (this.checkType('APPROVER') && data.elementType === 'signature') {\n data = {\n label: 'Text',\n formElementType: 'text',\n elementType: 'text',\n validation: 0,\n defaultHeight: FIELD_DEFAULTS['text'].defaultHeight,\n defaultWidth: FIELD_DEFAULTS['text'].defaultWidth,\n };\n }\n\n if (this.signer === 0 && data.elementType === 'signature') {\n data = {\n label: 'Auto Sign',\n formElementType: 'auto sign',\n elementType: 'admin',\n validation: 3000,\n defaultHeight: FIELD_DEFAULTS['auto sign'].defaultHeight,\n defaultWidth: FIELD_DEFAULTS['auto sign'].defaultWidth,\n };\n } else if (this.signer === 0 && data.elementType !== 'admin') {\n data = { ...data, elementType: 'admin' };\n }\n // Unselect all current selected items\n this.component.shadowRoot.querySelectorAll('ls-editor-field').forEach(f => (f.selected = false));\n var frame = this.component.shadowRoot.getElementById('ls-document-frame') as HTMLElement;\n // Make a new API compatible id for a template element (prefix 'ele')\n const id = btoa('ele' + crypto.randomUUID());\n const pageWidth = this.pageDimensions[this.pageNum - 1].width;\n const pageHeight = this.pageDimensions[this.pageNum - 1].height;\n const rawTop = event.offsetY / this.zoom + frame.scrollTop;\n const rawLeft = event.offsetX / this.zoom + frame.scrollLeft;\n const top = Math.max(0, Math.min(rawTop, pageHeight - data.defaultHeight));\n const left = Math.max(0, Math.min(rawLeft, pageWidth - data.defaultWidth));\n\n // TODO: Put these defaults somewhere sensible\n const newData: LSMutateEvent = {\n action: 'create',\n data: {\n id,\n value: data.formElementType === 'checkbox' ? 'false' : '',\n formElementType: data.formElementType,\n elementType: data.elementType,\n validation: data.validation,\n excludeFromPdf: false,\n top,\n left,\n hideBorder: false,\n height: data.defaultHeight,\n width: data.defaultWidth,\n pageDimensions: this.pageDimensions[this.pageNum - 1],\n fontName: DEFAULT_FONT_NAME,\n fontSize: DEFAULT_FONT_SIZE,\n align: 'left',\n signer: this.signer,\n page: this.pageNum,\n mapTo: null,\n label: '',\n helpText: null,\n logicGroup: null,\n optional: data.formElementType === 'checkbox',\n options: null,\n logicAction: null,\n labelExtra: null,\n fieldOrder: null,\n ax: left > 0 ? left / this.pageDimensions[this.pageNum - 1].width : 0,\n ay: top > 0 ? top / this.pageDimensions[this.pageNum - 1].height : 0,\n bx: (left + data.defaultWidth) / this.pageDimensions[this.pageNum - 1].width,\n by: (top + data.defaultHeight) / this.pageDimensions[this.pageNum - 1].height,\n templateId: this._template.id,\n } as LSApiElement,\n };\n this.mutate.emit([newData]);\n } catch (e) {\n console.error(e);\n }\n}\n"]}
@@ -29,7 +29,7 @@ export class LsFieldPropertiesAdvanced {
29
29
  this.dataItem = { ...this.dataItem, ...diff };
30
30
  diffs = [{ action: 'update', data: { ...this.dataItem, ...diff } }];
31
31
  }
32
- if (bounceDelay === 0) {
32
+ if (!bounceDelay || bounceDelay === 0) {
33
33
  this.mutate.emit(diffs);
34
34
  }
35
35
  else {
@@ -54,10 +54,10 @@ export class LsFieldPropertiesAdvanced {
54
54
  return '';
55
55
  }
56
56
  render() {
57
- return (h(Host, { key: '5ee4d83054b39ff8f15f68ce81855358982b47d6' }, h("div", { key: '3c093b283a9675b94476139f743458343b4f868b', class: 'ls-dv-expand-fields-row', onClick: () => (this.expanded = !this.expanded) }, h("ls-icon", { key: '9ad907b068024ba3b062e01487f2d9f81dc62758', name: this.expanded ? 'expand-icon' : 'collapse-icon', size: 20, solid: true }), h("p", { key: '71078ba34ca93acf9b7b214539621d9e543a695a' }, dvI18n.t('fieldproperties.advancedproperties'))), this.expanded && (h("div", { key: '31535010abc956aa04a4723bcf11dd12c503a53f', class: 'ls-dv-field-set' }, h("ls-props-section", { key: '82407eb2fafabc44627f5914e2788f798c908c9a', sectionTitle: dvI18n.t('fieldproperties.fieldorder'), sectionDescription: dvI18n.t('fieldproperties.fieldorderdescription') }, h("input", { key: '16d535ee0d0bea198331605de59b9665267f82cf', type: "number", placeholder: dvI18n.t('fieldproperties.placeholdereg1'), value: this.getValue('fieldOrder'), onInput: e => {
57
+ return (h(Host, { key: 'cf6a2fccea19ebbc7c067ed0ea852ecc29d6daee' }, h("div", { key: 'fa1349e5ec4ac3cfeceefa9eb55d961a45eb0387', class: 'ls-dv-expand-fields-row', onClick: () => (this.expanded = !this.expanded) }, h("ls-icon", { key: 'c7df008825734a12a7562d27a466f7bca3df1247', name: this.expanded ? 'expand-icon' : 'collapse-icon', size: 20, solid: true }), h("p", { key: '23c61c4bed86e2f83d79f2b2a794252b588c0516' }, dvI18n.t('fieldproperties.advancedproperties'))), this.expanded && (h("div", { key: '8fcc0ec1e1772991f44bdf747474060a1362362d', class: 'ls-dv-field-set' }, h("ls-props-section", { key: '436a5e7c4f634786fb908543326dcf51b855e108', sectionTitle: dvI18n.t('fieldproperties.fieldorder'), sectionDescription: dvI18n.t('fieldproperties.fieldorderdescription') }, h("input", { key: 'a1988edaeab650e4c5289e5f9e6af6ed26fa0975', type: "number", placeholder: dvI18n.t('fieldproperties.placeholdereg1'), value: this.getValue('fieldOrder'), onInput: e => {
58
58
  console.log(e);
59
59
  this.alter({ fieldOrder: e.target.value }, 1500);
60
- }, onChange: () => { console.log('onchange'); }, disabled: this.readonly })), h("ls-props-section", { key: 'e3154557e33035e1757a9c1ddd8cac3ab373ef41', sectionTitle: dvI18n.t('fieldproperties.refname') }, h("input", { key: 'f18f206468351b7d3981f2b7fc34ae8b5ca7e353', value: this.getValue('mapTo'), placeholder: dvI18n.t('fieldproperties.placeholdercheckboxgroup'), onInput: e => this.alter({ mapTo: e.target.value }, 1500), disabled: this.readonly })), h("ls-props-section", { key: 'faa78e556daf96d1f821bbf4a7f67ae658f4d6ce', sectionTitle: dvI18n.t('fieldproperties.linktype'), sectionDescription: dvI18n.t('fieldproperties.linktypedescription') }, h("select", { key: '4d1bfe9580800fac18afe9ffeed0bf8b60e9d123', onChange: e => this.alter({ logicAction: e.target.value }, 1500), name: "Link Field", "aria-label": "Link Field", disabled: this.readonly }, h("option", { key: '0e6b13cde24abbf9de7a4cfe04a15e8fb810ef54', value: "0", selected: this.getValue('logicAction') === 0 }, dvI18n.t('fieldproperties.linktypenoption')), h("option", { key: '403744701cf4ece417ed601ad38e4fa0f698f1ee', value: "1", selected: this.getValue('logicAction') === 1 }, dvI18n.t('fieldproperties.linktypeoneofgroup')), h("option", { key: 'f6212426adcb2f49ca490858237549615fbf28c0', value: "2", selected: this.getValue('logicAction') === 2 }, dvI18n.t('fieldproperties.linktypeaddtotal')), h("option", { key: '2741a87470500e2b2bdbc95fd0bd1e0302be5900', value: "3", selected: this.getValue('logicAction') === 3 }, dvI18n.t('fieldproperties.linktypeconditional')))), h("ls-props-section", { key: '1c90092334c55c24b469c3dfab1f0fe31de870fa', sectionTitle: dvI18n.t('fieldproperties.linkvalue'), sectionDescription: dvI18n.t('fieldproperties.linkvaluedescription') }, h("input", { key: '9d312841712efbdd6d0af1ffb698da94ae71638c', value: this.getValue('logicGroup'), width: "30", placeholder: dvI18n.t('fieldproperties.placeholdercheckboxgroup'), onChange: e => this.alter({ logicGroup: e.target.value }), disabled: this.readonly })), h("ls-props-section", { key: '12d54e4c2700baa253bcd728a977101d299ac39c', sectionTitle: dvI18n.t('fieldproperties.excludefrompdf'), sectionDescription: dvI18n.t('fieldproperties.excludefrompdfdescription') }, h("input", { key: '404bf02e4d16793c49223cc20af81eb91fb130d7', type: "checkbox", checked: !!this.getValue('excludeFromPdf'), onChange: e => this.alter({ excludeFromPdf: e.target.checked }), disabled: this.readonly }))))));
60
+ }, onChange: () => { console.log('onchange'); }, disabled: this.readonly })), h("ls-props-section", { key: '265f574a5b5ebfc88c3d642b9ceb1faf9f0e1baa', sectionTitle: dvI18n.t('fieldproperties.refname') }, h("input", { key: 'f8b0ed79dc407ddc9d72078dfc2aad183a2dde6d', value: this.getValue('mapTo'), placeholder: dvI18n.t('fieldproperties.placeholdercheckboxgroup'), onInput: e => this.alter({ mapTo: e.target.value }, 1500), disabled: this.readonly })), h("ls-props-section", { key: '4b86fbef7f34a01d2e5e74c8ea5a4489a22c631b', sectionTitle: dvI18n.t('fieldproperties.linktype'), sectionDescription: dvI18n.t('fieldproperties.linktypedescription') }, h("select", { key: 'e90aece69adaec099f37789aa04ea5531e5240bb', onChange: e => this.alter({ logicAction: e.target.value }, 1500), name: "Link Field", "aria-label": "Link Field", disabled: this.readonly }, h("option", { key: '310b6d8a4b5532d7105095af060d567a336d8aa5', value: "0", selected: this.getValue('logicAction') === 0 }, dvI18n.t('fieldproperties.linktypenoption')), h("option", { key: '93da460c4d466000c43a59fe7189263870fc2750', value: "1", selected: this.getValue('logicAction') === 1 }, dvI18n.t('fieldproperties.linktypeoneofgroup')), h("option", { key: '4471f63cfad3ea4668b7318b47e8673c65afda45', value: "2", selected: this.getValue('logicAction') === 2 }, dvI18n.t('fieldproperties.linktypeaddtotal')), h("option", { key: 'c65989b75aba5ba931154cc4195de3fe47354a2a', value: "3", selected: this.getValue('logicAction') === 3 }, dvI18n.t('fieldproperties.linktypeconditional')))), h("ls-props-section", { key: 'b6da09e895a848d786790aae1d68e1e3971af8e4', sectionTitle: dvI18n.t('fieldproperties.linkvalue'), sectionDescription: dvI18n.t('fieldproperties.linkvaluedescription') }, h("input", { key: 'c53121ddb284fd5ffe17e9f8a2abc423a8d8603f', value: this.getValue('logicGroup'), width: "30", placeholder: dvI18n.t('fieldproperties.placeholdercheckboxgroup'), onInput: e => this.alter({ logicGroup: e.target.value }, 350), disabled: this.readonly })), h("ls-props-section", { key: '21492db3549a3f25ab7a45109d6ffa8b591d141f', sectionTitle: dvI18n.t('fieldproperties.excludefrompdf'), row: true, sectionDescription: dvI18n.t('fieldproperties.excludefrompdfdescription') }, h("ls-toggle", { key: 'c9f759c73a6d40bf5c1435054e10d8c0c8dedf93', id: "toggle-excludefrompdf", checked: this.getValue('excludeFromPdf'), onValueChange: ev => !this.readonly && this.alter({ excludeFromPdf: ev.detail }) }))))));
61
61
  }
62
62
  static get is() { return "ls-field-properties-advanced"; }
63
63
  static get encapsulation() { return "shadow"; }
@@ -1 +1 @@
1
- {"version":3,"file":"ls-field-properties-advanced.js","sourceRoot":"","sources":["../../../../src/components/ls-field-properties-advanced/ls-field-properties-advanced.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Host, Prop, h, Event, EventEmitter } from '@stencil/core';\nimport { LSApiElement } from '../../types/LSApiElement';\nimport { LSMutateEvent } from '../../types/LSMutateEvent';\nimport { dvI18n } from '../../i18n/i18n';\n\n@Component({\n tag: 'ls-field-properties-advanced',\n styleUrl: 'ls-field-properties-advanced.scss',\n shadow: true,\n})\nexport class LsFieldPropertiesAdvanced {\n @Prop({ mutable: true }) dataItem: LSApiElement | LSApiElement[];\n @Prop({ mutable: true }) expanded: boolean = false;\n @Prop() readonly: boolean = false;\n\n @Event({\n bubbles: true,\n cancelable: true,\n composed: true,\n })\n mutate: EventEmitter<LSMutateEvent[]>;\n\n isSingle(dt: LSApiElement | LSApiElement[]): dt is LSApiElement {\n return (dt as LSApiElement[]).length === undefined;\n }\n\n isMultiple(dt: LSApiElement | LSApiElement[]): dt is LSApiElement[] {\n return typeof (dt as LSApiElement[]).length === 'number';\n }\n\n // Send one or more mutations up the chain\n // The source of the chain fires the mutation\n // NOTE this alter is debounced to account for typing\n alter(diff: object, bounceDelay: number = 0) {\n console.log('Altering advanced props:', diff);\n let diffs = [];\n if (this.isMultiple(this.dataItem)) {\n this.dataItem = this.dataItem.map(di => {\n return { ...di, ...diff } as LSApiElement;\n });\n\n diffs = this.dataItem.map(di => {\n return { action: 'update', data: { ...di, ...diff } as LSApiElement } as LSMutateEvent;\n });\n } else if (this.isSingle(this.dataItem)) {\n this.dataItem = { ...this.dataItem, ...diff };\n\n diffs = [{ action: 'update', data: { ...this.dataItem, ...diff } }];\n }\n\n if (bounceDelay === 0) {\n this.mutate.emit(diffs);\n }\n else {\n this.debounce(diffs, bounceDelay);\n }\n }\n\n private titletimer;\n\n debounce(diffs, delay) {\n if (this.titletimer) clearTimeout(this.titletimer);\n\n this.titletimer = setTimeout(() => {\n this.mutate.emit(diffs);\n }, delay);\n }\n\n getValue(key) {\n if (this.isMultiple(this.dataItem)) {\n return '';\n } else if (this.isSingle(this.dataItem)) {\n return this.dataItem[key];\n }\n return '';\n }\n\n render() {\n return (\n <Host>\n <div class={'ls-dv-expand-fields-row'} onClick={() => (this.expanded = !this.expanded)}>\n <ls-icon name={this.expanded ? 'expand-icon' : 'collapse-icon'} size={20} solid />\n <p>{dvI18n.t('fieldproperties.advancedproperties')}</p>\n </div>\n {this.expanded && (\n <div class={'ls-dv-field-set'}>\n <ls-props-section sectionTitle={dvI18n.t('fieldproperties.fieldorder')} sectionDescription={dvI18n.t('fieldproperties.fieldorderdescription')}>\n <input type=\"number\" placeholder={dvI18n.t('fieldproperties.placeholdereg1')} value={this.getValue('fieldOrder')} onInput={e => {\n console.log(e);\n this.alter({ fieldOrder: (e.target as HTMLInputElement).value }, 1500)\n }} \n onChange={() => { console.log('onchange')}}\n disabled={this.readonly}\n />\n </ls-props-section>\n\n <ls-props-section sectionTitle={dvI18n.t('fieldproperties.refname')}>\n <input value={this.getValue('mapTo')} placeholder={dvI18n.t('fieldproperties.placeholdercheckboxgroup')} onInput={e => this.alter({ mapTo: (e.target as HTMLInputElement).value }, 1500)} disabled={this.readonly} />\n </ls-props-section>\n\n <ls-props-section sectionTitle={dvI18n.t('fieldproperties.linktype')} sectionDescription={dvI18n.t('fieldproperties.linktypedescription')}>\n <select onChange={e => this.alter({ logicAction: (e.target as HTMLInputElement).value }, 1500)} name=\"Link Field\" aria-label=\"Link Field\" disabled={this.readonly}>\n <option value=\"0\" selected={this.getValue('logicAction') === 0}>\n {dvI18n.t('fieldproperties.linktypenoption')}\n </option>\n <option value=\"1\" selected={this.getValue('logicAction') === 1}>\n {dvI18n.t('fieldproperties.linktypeoneofgroup')}\n </option>\n <option value=\"2\" selected={this.getValue('logicAction') === 2}>\n {dvI18n.t('fieldproperties.linktypeaddtotal')}\n </option>\n <option value=\"3\" selected={this.getValue('logicAction') === 3}>\n {dvI18n.t('fieldproperties.linktypeconditional')}\n </option>\n </select>\n </ls-props-section>\n\n <ls-props-section sectionTitle={dvI18n.t('fieldproperties.linkvalue')} sectionDescription={dvI18n.t('fieldproperties.linkvaluedescription')}>\n <input\n value={this.getValue('logicGroup')}\n width=\"30\"\n placeholder={dvI18n.t('fieldproperties.placeholdercheckboxgroup')}\n onChange={e => this.alter({ logicGroup: (e.target as HTMLInputElement).value })}\n disabled={this.readonly}\n />\n </ls-props-section>\n\n <ls-props-section sectionTitle={dvI18n.t('fieldproperties.excludefrompdf')} sectionDescription={dvI18n.t('fieldproperties.excludefrompdfdescription')}>\n <input\n type=\"checkbox\"\n checked={!!this.getValue('excludeFromPdf')}\n onChange={e => this.alter({ excludeFromPdf: (e.target as HTMLInputElement).checked })}\n disabled={this.readonly}\n />\n </ls-props-section>\n </div>\n )}\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"ls-field-properties-advanced.js","sourceRoot":"","sources":["../../../../src/components/ls-field-properties-advanced/ls-field-properties-advanced.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Host, Prop, h, Event, EventEmitter } from '@stencil/core';\nimport { LSApiElement } from '../../types/LSApiElement';\nimport { LSMutateEvent } from '../../types/LSMutateEvent';\nimport { dvI18n } from '../../i18n/i18n';\n\n@Component({\n tag: 'ls-field-properties-advanced',\n styleUrl: 'ls-field-properties-advanced.scss',\n shadow: true,\n})\nexport class LsFieldPropertiesAdvanced {\n @Prop({ mutable: true }) dataItem: LSApiElement | LSApiElement[];\n @Prop({ mutable: true }) expanded: boolean = false;\n @Prop() readonly: boolean = false;\n\n @Event({\n bubbles: true,\n cancelable: true,\n composed: true,\n })\n mutate: EventEmitter<LSMutateEvent[]>;\n\n isSingle(dt: LSApiElement | LSApiElement[]): dt is LSApiElement {\n return (dt as LSApiElement[]).length === undefined;\n }\n\n isMultiple(dt: LSApiElement | LSApiElement[]): dt is LSApiElement[] {\n return typeof (dt as LSApiElement[]).length === 'number';\n }\n\n // Send one or more mutations up the chain\n // The source of the chain fires the mutation\n // NOTE this alter is debounced to account for typing\n alter(diff: object, bounceDelay: number = 0) {\n console.log('Altering advanced props:', diff);\n let diffs = [];\n if (this.isMultiple(this.dataItem)) {\n this.dataItem = this.dataItem.map(di => {\n return { ...di, ...diff } as LSApiElement;\n });\n\n diffs = this.dataItem.map(di => {\n return { action: 'update', data: { ...di, ...diff } as LSApiElement } as LSMutateEvent;\n });\n } else if (this.isSingle(this.dataItem)) {\n this.dataItem = { ...this.dataItem, ...diff };\n\n diffs = [{ action: 'update', data: { ...this.dataItem, ...diff } }];\n }\n\n if (!bounceDelay || bounceDelay === 0) {\n this.mutate.emit(diffs);\n }\n else {\n this.debounce(diffs, bounceDelay);\n }\n }\n\n private titletimer;\n\n debounce(diffs, delay) {\n if (this.titletimer) clearTimeout(this.titletimer);\n\n this.titletimer = setTimeout(() => {\n this.mutate.emit(diffs);\n }, delay);\n }\n\n getValue(key) {\n if (this.isMultiple(this.dataItem)) {\n return '';\n } else if (this.isSingle(this.dataItem)) {\n return this.dataItem[key];\n }\n return '';\n }\n\n render() {\n return (\n <Host>\n <div class={'ls-dv-expand-fields-row'} onClick={() => (this.expanded = !this.expanded)}>\n <ls-icon name={this.expanded ? 'expand-icon' : 'collapse-icon'} size={20} solid />\n <p>{dvI18n.t('fieldproperties.advancedproperties')}</p>\n </div>\n {this.expanded && (\n <div class={'ls-dv-field-set'}>\n <ls-props-section sectionTitle={dvI18n.t('fieldproperties.fieldorder')} sectionDescription={dvI18n.t('fieldproperties.fieldorderdescription')}>\n <input type=\"number\" placeholder={dvI18n.t('fieldproperties.placeholdereg1')} value={this.getValue('fieldOrder')} onInput={e => {\n console.log(e);\n this.alter({ fieldOrder: (e.target as HTMLInputElement).value }, 1500)\n }} \n onChange={() => { console.log('onchange')}}\n disabled={this.readonly}\n />\n </ls-props-section>\n\n <ls-props-section sectionTitle={dvI18n.t('fieldproperties.refname')}>\n <input value={this.getValue('mapTo')} placeholder={dvI18n.t('fieldproperties.placeholdercheckboxgroup')} onInput={e => this.alter({ mapTo: (e.target as HTMLInputElement).value }, 1500)} disabled={this.readonly} />\n </ls-props-section>\n\n <ls-props-section sectionTitle={dvI18n.t('fieldproperties.linktype')} sectionDescription={dvI18n.t('fieldproperties.linktypedescription')}>\n <select onChange={e => this.alter({ logicAction: (e.target as HTMLInputElement).value }, 1500)} name=\"Link Field\" aria-label=\"Link Field\" disabled={this.readonly}>\n <option value=\"0\" selected={this.getValue('logicAction') === 0}>\n {dvI18n.t('fieldproperties.linktypenoption')}\n </option>\n <option value=\"1\" selected={this.getValue('logicAction') === 1}>\n {dvI18n.t('fieldproperties.linktypeoneofgroup')}\n </option>\n <option value=\"2\" selected={this.getValue('logicAction') === 2}>\n {dvI18n.t('fieldproperties.linktypeaddtotal')}\n </option>\n <option value=\"3\" selected={this.getValue('logicAction') === 3}>\n {dvI18n.t('fieldproperties.linktypeconditional')}\n </option>\n </select>\n </ls-props-section>\n\n <ls-props-section sectionTitle={dvI18n.t('fieldproperties.linkvalue')} sectionDescription={dvI18n.t('fieldproperties.linkvaluedescription')}>\n <input\n value={this.getValue('logicGroup')}\n width=\"30\"\n placeholder={dvI18n.t('fieldproperties.placeholdercheckboxgroup')}\n onInput={e => this.alter({ logicGroup: (e.target as HTMLInputElement).value }, 350)}\n disabled={this.readonly}\n />\n </ls-props-section>\n\n <ls-props-section sectionTitle={dvI18n.t('fieldproperties.excludefrompdf')} row={true} sectionDescription={dvI18n.t('fieldproperties.excludefrompdfdescription')}> \n <ls-toggle id=\"toggle-excludefrompdf\" checked={this.getValue('excludeFromPdf')} onValueChange={ev => !this.readonly && this.alter({ excludeFromPdf: ev.detail })} />\n </ls-props-section>\n </div>\n )}\n </Host>\n );\n }\n}\n"]}
@@ -2,7 +2,7 @@ import { t as transformTag, p as proxyCustomElement, H, c as createEvent, h, a a
2
2
  import { d as dvI18n } from './p-Al32p_JM.js';
3
3
  import { o as oob, m as moveField, u as updateTemplate, r as recalculateCoordinates, s as syncRoles, d as defineCustomElement$U, c as matchData, e as validate, g as getInputType, h as getApiType, i as addField, j as getTemplate } from './p-XbFErpli.js';
4
4
  import { D as DEFAULT_FONT_SIZE$1, a as DEFAULT_FONT_NAME, F as FIELD_DEFAULTS } from './p-04cXI5GQ.js';
5
- import { c as copySelected, a as cutSelected, p as pasteClipboard, u as updateSelectionBox, d as defineCustomElement$O, t as toolboxDragStart, m as mouseClick, b as mouseDown, e as mouseMove, f as mouseUp, g as mouseDoubleClick } from './p-CLsTvOMB.js';
5
+ import { c as copySelected, a as cutSelected, p as pasteClipboard, u as updateSelectionBox, d as defineCustomElement$O, t as toolboxDragStart, m as mouseClick, b as mouseDown, e as mouseMove, f as mouseUp, g as mouseDoubleClick } from './p-Dw48QFVg.js';
6
6
  import { r as redo, u as undo, b as recordMutations, c as clearHistory, d as canRedo, e as canUndo } from './p-DmQNqtPP.js';
7
7
  import { d as defineCustomElement$_ } from './p-CQI0GKzS.js';
8
8
  import { d as defineCustomElement$Z } from './p-BKbGzLae.js';
@@ -18,19 +18,19 @@ import { d as defineCustomElement$P } from './p-C-vCe5Wm.js';
18
18
  import { d as defineCustomElement$N } from './p-gvdT4if6.js';
19
19
  import { d as defineCustomElement$M } from './p-Dxb06R94.js';
20
20
  import { d as defineCustomElement$L } from './p-DGQDJCUG.js';
21
- import { d as defineCustomElement$K } from './p-ZKk3AJde.js';
22
- import { d as defineCustomElement$J } from './p-nEeIgVD4.js';
23
- import { d as defineCustomElement$I } from './p-0gpJEkuE.js';
24
- import { d as defineCustomElement$H } from './p-BrzfHYNI.js';
21
+ import { d as defineCustomElement$K } from './p-pAh5qPFg.js';
22
+ import { d as defineCustomElement$J } from './p-BTcdVmkv.js';
23
+ import { d as defineCustomElement$I } from './p-D6grL59P.js';
24
+ import { d as defineCustomElement$H } from './p-DAq2HFf_.js';
25
25
  import { d as defineCustomElement$G } from './p-CyHkY6Ep.js';
26
- import { d as defineCustomElement$F } from './p-m1DXrPv0.js';
27
- import { d as defineCustomElement$E } from './p-BD_LQa4f.js';
28
- import { d as defineCustomElement$D } from './p-BcIQeY5m.js';
29
- import { d as defineCustomElement$C } from './p-DKCAgr17.js';
30
- import { d as defineCustomElement$B } from './p-D2fyXA3F.js';
31
- import { d as defineCustomElement$A } from './p-sL-kvPiU.js';
32
- import { d as defineCustomElement$z } from './p-DjyJ7Vy7.js';
33
- import { d as defineCustomElement$y } from './p-BoxsygDA.js';
26
+ import { d as defineCustomElement$F } from './p-DpA4TE1Q.js';
27
+ import { d as defineCustomElement$E } from './p-BDD6zFgO.js';
28
+ import { d as defineCustomElement$D } from './p-BmpejMo_.js';
29
+ import { d as defineCustomElement$C } from './p-CHbV_3Pe.js';
30
+ import { d as defineCustomElement$B } from './p-ByN7GurE.js';
31
+ import { d as defineCustomElement$A } from './p-uST4uUr8.js';
32
+ import { d as defineCustomElement$z } from './p-D4pQIA1Z.js';
33
+ import { d as defineCustomElement$y } from './p-x8FQ2VuC.js';
34
34
  import { d as defineCustomElement$x } from './p-BzFRp7ij.js';
35
35
  import { d as defineCustomElement$w } from './p-eWb3jk9k.js';
36
36
  import { d as defineCustomElement$v } from './p-CzkJGTTH.js';
@@ -40,7 +40,7 @@ import { d as defineCustomElement$s } from './p-Brq7Gduk.js';
40
40
  import { d as defineCustomElement$r } from './p-DaQLveiE.js';
41
41
  import { d as defineCustomElement$q } from './p-C2JalniE.js';
42
42
  import { d as defineCustomElement$p } from './p-CIV0VNix.js';
43
- import { d as defineCustomElement$o } from './p-Bmm5vB3M.js';
43
+ import { d as defineCustomElement$o } from './p-CyV8nu-T.js';
44
44
  import { d as defineCustomElement$n } from './p-MzXqai7c.js';
45
45
  import { d as defineCustomElement$m } from './p-CKoM9Y6t.js';
46
46
  import { d as defineCustomElement$l } from './p-Cujzhc6S.js';
@@ -54,7 +54,7 @@ import { d as defineCustomElement$e } from './p-8F4ilTjF.js';
54
54
  import { d as defineCustomElement$d } from './p-CJWQJjj3.js';
55
55
  import { d as defineCustomElement$c } from './p-CF40f_5M.js';
56
56
  import { d as defineCustomElement$b } from './p-eDwhUH-3.js';
57
- import { d as defineCustomElement$a } from './p-BRcbstSs.js';
57
+ import { d as defineCustomElement$a } from './p-CowkeWsT.js';
58
58
  import { d as defineCustomElement$9 } from './p-CM71cfRg.js';
59
59
  import { d as defineCustomElement$8 } from './p-t_ow9YJD.js';
60
60
  import { d as defineCustomElement$7 } from './p-BddWzZuD.js';
@@ -1,4 +1,4 @@
1
- import { L as LsFieldDistribute$1, d as defineCustomElement$1 } from './p-CLsTvOMB.js';
1
+ import { L as LsFieldDistribute$1, d as defineCustomElement$1 } from './p-Dw48QFVg.js';
2
2
 
3
3
  const LsFieldDistribute = LsFieldDistribute$1;
4
4
  const defineCustomElement = defineCustomElement$1;