@atlasauth/js 0.18.0 → 0.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/dist/attempt.d.ts +34 -1
  3. package/dist/attempt.js +2 -0
  4. package/dist/attempt.js.map +1 -1
  5. package/dist/captcha-controller.d.ts +3 -0
  6. package/dist/captcha-controller.js +10 -1
  7. package/dist/captcha-controller.js.map +1 -1
  8. package/dist/compat.d.ts +24 -0
  9. package/dist/compat.js +15 -1
  10. package/dist/compat.js.map +1 -1
  11. package/dist/fapi.d.ts +71 -0
  12. package/dist/fapi.js +109 -3
  13. package/dist/fapi.js.map +1 -1
  14. package/dist/index.d.ts +4 -0
  15. package/dist/index.js +6 -0
  16. package/dist/index.js.map +1 -1
  17. package/dist/passkey-sign-up.d.ts +3 -0
  18. package/dist/passkey-sign-up.js +1 -0
  19. package/dist/passkey-sign-up.js.map +1 -1
  20. package/dist/policies.d.ts +156 -0
  21. package/dist/policies.js +103 -0
  22. package/dist/policies.js.map +1 -0
  23. package/dist/policy-acceptance.d.ts +259 -0
  24. package/dist/policy-acceptance.js +698 -0
  25. package/dist/policy-acceptance.js.map +1 -0
  26. package/dist/policy-dom.d.ts +106 -0
  27. package/dist/policy-dom.js +438 -0
  28. package/dist/policy-dom.js.map +1 -0
  29. package/dist/redirect.d.ts +5 -1
  30. package/dist/redirect.js +4 -1
  31. package/dist/redirect.js.map +1 -1
  32. package/dist/referral-detect.d.ts +2 -2
  33. package/dist/referral-detect.js +25 -4
  34. package/dist/referral-detect.js.map +1 -1
  35. package/dist/referral.d.ts +3 -1
  36. package/dist/referral.js +21 -8
  37. package/dist/referral.js.map +1 -1
  38. package/dist/sign-in-with-atlas-loader.d.ts +42 -0
  39. package/dist/sign-in-with-atlas-loader.js +105 -0
  40. package/dist/sign-in-with-atlas-loader.js.map +1 -0
  41. package/dist/version.d.ts +1 -1
  42. package/dist/version.js +1 -1
  43. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policy-acceptance.js","sourceRoot":"","sources":["../src/policy-acceptance.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;;;AA+DH,0CA0BC;AAGD,8CAQC;AAGD,8CAEC;AAGD,kDAqBC;AAGD,gEAEC;AAOD,oCAQC;AAMD,8CAEC;AAGD,wCAGC;AAGD,4CAMC;AAWD,wDAQC;AA0ND,wDAEC;AAKD,0CAEC;AAQD,4CAkCC;AAUD,8BAwCC;AAuBD,gDA0CC;AAGD,gCAGC;AAGD,4CAKC;AAkCD,4CASC;AAGD,gCAGC;AAGD,sCAIC;AAQD,8DAUC;AAOD,oDAoCC;AA9rBD,yCAOoB;AAuCpB,MAAM,QAAQ,GAA6B,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;AAE1E,SAAS,GAAG,CAAC,CAAU;IACrB,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACtD,CAAC;AAED,sFAAsF;AACtF,SAAS,IAAI,CAAC,CAAU;IACtB,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAClF,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;AAChB,CAAC;AAED,4GAA4G;AAC5G,SAAgB,eAAe,CAAC,GAAY;IAC1C,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACjD,MAAM,CAAC,GAAG,GAA8B,CAAC;IACzC,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,CAAwC,CAAC;IAC7H,MAAM,IAAI,GAAG,CAAC,IAAY,EAAW,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3F,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACxC,MAAM,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC7D,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IACpC,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAwB,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,OAAyB,CAAC,CAAC,CAAC,UAAU,CAAC;IAC1G,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;IACvF,OAAO;QACL,GAAG;QACH,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG;QAC1B,OAAO;QACP,QAAQ,EAAE,CAAC,CAAC,QAAQ,KAAK,KAAK;QAC9B,SAAS,EAAE,CAAC,CAAC,UAAU,KAAK,qBAAqB,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,SAAS;QACrF,SAAS;QACT,OAAO;QACP,WAAW,EAAE,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACtC,eAAe,EAAE,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC9C,UAAU,EAAE,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACpC,aAAa,EAAE,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,IAAI,EAAE;QAChD,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACvC,gBAAgB,EAAE,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACjD,QAAQ,EAAE,OAAO,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI;KAC9D,CAAC;AACJ,CAAC;AAED,oGAAoG;AACpG,SAAgB,iBAAiB,CAAC,IAAa;IAC7C,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QAC9B,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;YAChC,CAAC,CAAC,CAAE,IAA+C,CAAC,QAAQ,IAAK,IAA2B,CAAC,IAAI,CAAC;YAClG,CAAC,CAAC,IAAI,CAAC;IACX,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IACpC,OAAO,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;AAC1E,CAAC;AAED,yEAAyE;AACzE,SAAgB,iBAAiB,CAAC,OAA0D;IAC1F,OAAO,iBAAiB,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;AACtD,CAAC;AAED,yCAAyC;AACzC,SAAgB,mBAAmB,CAAC,IAAa;IAC/C,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QAC9B,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,CAAE,IAAsD,EAAE,QAAQ,IAAK,IAAkC,EAAE,IAAI,CAAC,CAAC;IACrH,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IACpC,MAAM,GAAG,GAAqB,EAAE,CAAC;IACjC,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;QACxB,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,SAAS;QAChD,MAAM,CAAC,GAAG,IAA+B,CAAC;QAC1C,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACxC,IAAI,CAAC,GAAG;YAAE,SAAS;QACnB,GAAG,CAAC,IAAI,CAAC;YACP,GAAG;YACH,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG;YAC1B,eAAe,EAAE,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAAC;YACxC,cAAc,EAAE,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC;YACtC,aAAa,EAAE,CAAC,CAAC,cAAc,KAAK,IAAI;YACxC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC;SACnC,CAAC,CAAC;IACL,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,iFAAiF;AACjF,SAAgB,0BAA0B,CAAC,MAAgD;IACzF,OAAO,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,4BAA4B,CAAC,CAAC;AACxE,CAAC;AAED,6EAA6E;AAC7E,gFAAgF;AAChF,4EAA4E;AAE5E,sFAAsF;AAC/E,KAAK,UAAU,YAAY,CAChC,MAAkB,EAClB,OAA8C,EAAE;IAEhD,MAAM,GAAG,GAAG,MAAM,IAAA,sBAAW,EAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAClF,IAAI,CAAC,GAAG,CAAC,EAAE;QAAE,OAAO,EAAE,CAAC;IACvB,MAAM,GAAG,GAAG,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACxC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,qBAAqB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACtF,CAAC;AAED;;;GAGG;AACI,KAAK,UAAU,iBAAiB,CAAC,MAAkB,EAAE,OAA4B,EAAE;IACxF,OAAO,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACpC,CAAC;AAED,iGAAiG;AAC1F,KAAK,UAAU,cAAc,CAAC,MAAkB;IACrD,MAAM,GAAG,GAAG,MAAM,IAAA,wBAAa,EAAC,MAAM,CAAC,CAAC;IACxC,OAAO,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACrD,CAAC;AAED,mFAAmF;AAC5E,KAAK,UAAU,gBAAgB,CACpC,MAAkB,EAClB,WAA+B;IAE/B,MAAM,GAAG,GAAG,MAAM,IAAA,yBAAc,EAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACtD,OAAO,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC;AAC/E,CAAC;AAED;;;;;GAKG;AACU,QAAA,oBAAoB,GAAG,gCAAqB,CAAC;AAE1D,yFAAyF;AACzF,SAAgB,sBAAsB,CAAC,KAAyB;IAC9D,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IACtB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAY,CAAC;QAC5C,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAE,MAA6B,CAAC,CAAC,CAAC,EAAE,CAAC;IACrE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AA2BD;;;;;GAKG;AACH,MAAa,0BAA0B;IAC7B,IAAI,GAAa,EAAE,CAAC;IACpB,OAAO,GAAG,IAAI,GAAG,EAAuB,CAAC;IACzC,IAAI,GAAkB,IAAI,CAAC;IAC3B,SAAS,GAAG,IAAI,GAAG,EAAc,CAAC;IACzB,GAAG,CAAe;IAC1B,QAAQ,CAAU;IAE3B,YAAY,WAAqB,EAAE,EAAE,UAAmC,EAAE;QACxE,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,KAAK,KAAK,CAAC;QAC3C,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC;IAED,SAAS,CAAC,EAAc;QACtB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACvB,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACzC,CAAC;IAEO,IAAI;QACV,KAAK,MAAM,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;YAAE,EAAE,EAAE,CAAC;IAC7C,CAAC;IAEO,KAAK,CAAC,GAAW;QACvB,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;QACpD,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC;QAC3C,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC7B,IAAI,CAAC,CAAC,EAAE,CAAC;YACP,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YACxE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAC1B,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;IAC5D,CAAC;IAED,QAAQ;QACN,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtC,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,IAAI;YACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,OAAO,EAAE,IAAI,CAAC,IAAI;YAClB,eAAe,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;SAC/E,CAAC;IACJ,CAAC;IAED,wFAAwF;IACxF,WAAW,CAAC,QAAkB;QAC5B,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;QACrB,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,IAAI,CAAC;YAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAC9E,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,gBAAgB;QACd,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,UAAU,CAAC,CAAC;IAC3D,CAAC;IACD,cAAc;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC;IACzD,CAAC;IACD,YAAY;QACV,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC;IACvD,CAAC;IAED,SAAS,CAAC,GAAW;QACnB,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;QAC/C,IAAI,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;QACrB,kDAAkD;QAClD,IAAI,CAAC,CAAC,OAAO,KAAK,MAAM;YAAE,OAAO,IAAI,CAAC;QACtC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;IACjC,CAAC;IAED,UAAU,CAAC,GAAW,EAAE,OAAgB;QACtC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,GAAG,OAAO,CAAC;QAClC,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,4EAA4E;IAC5E,aAAa,CAAC,OAAgB;QAC5B,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,gBAAgB,EAAE;YAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,GAAG,OAAO,CAAC;QAC7E,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,2DAA2D;IAC3D,YAAY,CAAC,GAAW;QACtB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC,CAAC,aAAa,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,2EAA2E;IAC3E,aAAa;QACX,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC;IAC3E,CAAC;IAED,yEAAyE;IACzE,YAAY,CAAC,GAAW;QACtB,IAAI,IAAI,CAAC,IAAI;YAAE,IAAI,CAAC,aAAa,EAAE,CAAC;QACpC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC;YAAE,OAAO;QAClD,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;QAChB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACtC,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,aAAa;QACX,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO;QACvB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,2EAA2E;IAC3E,UAAU,CAAC,GAAW;QACpB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,CAAC,QAAQ,KAAK,IAAI;YAAE,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACnD,CAAC;IAED,SAAS,CAAC,GAAW;QACnB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YACxB,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;YACjD,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;QACpB,CAAC;IACH,CAAC;IAED,8DAA8D;IAC9D,iBAAiB,CAAC,GAAW;QAC3B,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;YACrB,CAAC,CAAC,aAAa,GAAG,IAAI,CAAC;YACvB,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,CAAC;IACH,CAAC;IAED,gBAAgB,CAAC,GAAW;QAC1B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,aAAa,CAAC;IACvC,CAAC;IAED,MAAM,CAAC,GAAW;QAChB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACjG,CAAC;IAED,0GAA0G;IAC1G,OAAO;QACL,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACvE,CAAC;IAED,kHAAkH;IAClH,SAAS;QACP,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC;IACrC,CAAC;IAED,kHAAkH;IAClH,SAAS;QACP,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,OAAO,KAAK,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAChG,CAAC;IAED,sFAAsF;IACtF,KAAK;QACH,MAAM,GAAG,GAA8B,EAAE,CAAC;QAC1C,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAC1B,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC;gBAAE,SAAS;YACrC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAClC,GAAG,CAAC,IAAI,CAAC;gBACP,MAAM,EAAE,CAAC,CAAC,GAAG;gBACb,UAAU,EAAE,CAAC,CAAC,SAAS;gBACvB,cAAc,EAAE,CAAC,CAAC,aAAa;gBAC/B,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,GAAG,CAAC,CAAC,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC1F,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC3C,CAAC,CAAC;QACL,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;CACF;AAtLD,gEAsLC;AAED,qGAAqG;AACrG,SAAgB,sBAAsB,CAAC,WAAqB,EAAE,EAAE,UAAmC,EAAE;IACnG,OAAO,IAAI,0BAA0B,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAC3D,CAAC;AAED,8EAA8E;AAE9E,wFAAwF;AACxF,SAAgB,eAAe,CAAC,EAAqE,EAAE,KAAK,GAAG,CAAC;IAC9G,OAAO,EAAE,CAAC,YAAY,GAAG,EAAE,CAAC,YAAY,GAAG,EAAE,CAAC,SAAS,IAAI,KAAK,CAAC;AACnE,CAAC;AAED;;;;;GAKG;AACH,SAAgB,gBAAgB,CAAC,QAAqB,EAAE,QAA4B,EAAE,KAAiB;IACrG,IAAI,IAAI,GAAG,KAAK,CAAC;IACjB,IAAI,QAAQ,GAAgC,IAAI,CAAC;IACjD,MAAM,IAAI,GAAG,GAAG,EAAE;QAChB,IAAI,IAAI;YAAE,OAAO;QACjB,IAAI,GAAG,IAAI,CAAC;QACZ,IAAI,EAAE,CAAC;QACP,KAAK,EAAE,CAAC;IACV,CAAC,CAAC;IACF,MAAM,KAAK,GAAG,GAAG,EAAE;QACjB,IAAI,eAAe,CAAC,QAAQ,CAAC;YAAE,IAAI,EAAE,CAAC;IACxC,CAAC,CAAC;IACF,MAAM,IAAI,GAAG,GAAG,EAAE;QAChB,QAAQ,EAAE,UAAU,EAAE,CAAC;QACvB,QAAQ,CAAC,mBAAmB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC9C,IAAI,OAAO,MAAM,KAAK,WAAW;YAAE,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACjF,CAAC,CAAC;IACF,IAAI,QAAQ,IAAI,OAAO,oBAAoB,KAAK,WAAW,EAAE,CAAC;QAC5D,QAAQ,GAAG,IAAI,oBAAoB,CACjC,CAAC,OAAO,EAAE,EAAE;YACV,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC;gBAAE,IAAI,EAAE,CAAC;QACpD,CAAC,EACD,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE,CACjC,CAAC;QACF,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC;IACD,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9D,IAAI,OAAO,MAAM,KAAK,WAAW;QAAE,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC5E,wCAAwC;IACxC,KAAK,EAAE,CAAC;IACR,OAAO,GAAG,EAAE;QACV,IAAI,GAAG,IAAI,CAAC;QACZ,IAAI,EAAE,CAAC;IACT,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,SAAS,GACb,sIAAsI,CAAC;AAEzI;;;;GAIG;AACH,SAAgB,SAAS,CAAC,SAAsB,EAAE,UAAmE,EAAE;IACrH,MAAM,GAAG,GAAG,SAAS,CAAC,aAAa,CAAC;IACpC,MAAM,QAAQ,GAAG,GAAG,CAAC,aAAmC,CAAC;IACzD,MAAM,KAAK,GAAG,CAAC,KAAoB,EAAE,EAAE;QACrC,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YACtD,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,KAAK,CAAC,eAAe,EAAE,CAAC;YACxB,OAAO;QACT,CAAC;QACD,IAAI,KAAK,CAAC,GAAG,KAAK,KAAK;YAAE,OAAO;QAChC,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAc,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;QACxH,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,SAAS,CAAC,KAAK,EAAE,CAAC;YAClB,OAAO;QACT,CAAC;QACD,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;QACxB,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC;QACtC,MAAM,MAAM,GAAG,GAAG,CAAC,aAAa,CAAC;QACjC,IAAI,KAAK,CAAC,QAAQ,IAAI,CAAC,MAAM,KAAK,KAAK,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;YACxE,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,CAAC;aAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,MAAM,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;YAC/E,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,CAAC;IACH,CAAC,CAAC;IACF,MAAM,SAAS,GAAG,CAAC,KAAiB,EAAE,EAAE;QACtC,IAAI,KAAK,CAAC,MAAM,YAAY,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;YACtE,CAAC,OAAO,CAAC,YAAY,IAAI,SAAS,CAAC,CAAC,KAAK,EAAE,CAAC;QAC9C,CAAC;IACH,CAAC,CAAC;IACF,GAAG,CAAC,gBAAgB,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IAC7C,GAAG,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAC3C,CAAC,OAAO,CAAC,YAAY,IAAI,SAAS,CAAC,CAAC,KAAK,EAAE,CAAC;IAC5C,OAAO,GAAG,EAAE;QACV,GAAG,CAAC,mBAAmB,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAChD,GAAG,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC9C,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC;IACtB,CAAC,CAAC;AACJ,CAAC;AAED,8EAA8E;AAE9E,SAAS,UAAU,CAAC,CAAS;IAC3B,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC7H,CAAC;AAED,SAAS,cAAc,CAAC,IAAY;IAClC,IAAI,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAC3B,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;IACnD,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,CAAC;IAC7D,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,4BAA4B,EAAE,eAAe,CAAC,CAAC;IACjE,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,uCAAuC,EAAE,+DAA+D,CAAC,CAAC;IAC5H,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;GAKG;AACH,SAAgB,kBAAkB,CAAC,QAAgB;IACjD,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC3D,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,IAAI,IAAI,GAAa,EAAE,CAAC;IACxB,IAAI,IAAI,GAAuB,IAAI,CAAC;IACpC,MAAM,SAAS,GAAG,GAAG,EAAE;QACrB,IAAI,IAAI,CAAC,MAAM;YAAE,IAAI,CAAC,IAAI,CAAC,MAAM,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;QACvE,IAAI,GAAG,EAAE,CAAC;IACZ,CAAC,CAAC;IACF,MAAM,SAAS,GAAG,GAAG,EAAE;QACrB,IAAI,IAAI;YAAE,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC;QAClC,IAAI,GAAG,IAAI,CAAC;IACd,CAAC,CAAC;IACF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9C,MAAM,QAAQ,GAAG,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,OAAO,EAAE,CAAC;YACZ,SAAS,EAAE,CAAC;YACZ,SAAS,EAAE,CAAC;YACZ,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAE,CAAC,MAAM,CAAC;YACjC,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,cAAc,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC;QACrE,CAAC;aAAM,IAAI,MAAM,IAAI,QAAQ,EAAE,CAAC;YAC9B,SAAS,EAAE,CAAC;YACZ,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;YAClC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;gBAClB,SAAS,EAAE,CAAC;gBACZ,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC;gBACvB,IAAI,GAAG,IAAI,CAAC;YACd,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,IAAI,QAAQ,CAAE,CAAC,CAAC,CAAE,CAAC,OAAO,CAAC,CAAC;QACrE,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YAC9B,SAAS,EAAE,CAAC;YACZ,SAAS,EAAE,CAAC;QACd,CAAC;aAAM,CAAC;YACN,SAAS,EAAE,CAAC;YACZ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IACD,SAAS,EAAE,CAAC;IACZ,SAAS,EAAE,CAAC;IACZ,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzB,CAAC;AAED,qGAAqG;AACrG,SAAgB,UAAU,CAAC,MAAuD;IAChF,IAAI,MAAM,CAAC,WAAW;QAAE,OAAO,MAAM,CAAC,WAAW,CAAC;IAClD,OAAO,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAClF,CAAC;AAED,4EAA4E;AAC5E,SAAgB,gBAAgB,CAAC,GAA8B;IAC7D,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAC;IACpB,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;IACxB,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QAAE,OAAO,EAAE,CAAC;IACzC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACtC,CAAC;AAED,+EAA+E;AAE/E,2EAA2E;AAC9D,QAAA,cAAc,GAAqC,MAAM,CAAC,MAAM,CAAC;IAC5E,sBAAsB,EAAE,2BAA2B;IACnD,iBAAiB,EAAE,yBAAyB;IAC5C,kBAAkB,EAAE,4CAA4C;IAChE,YAAY,EAAE,KAAK;IACnB,aAAa,EAAE,mBAAmB;IAClC,mBAAmB,EAAE,MAAM;IAC3B,gBAAgB,EAAE,mBAAmB;IACrC,kBAAkB,EAAE,kBAAkB;IACtC,mBAAmB,EAAE,6BAA6B;IAClD,eAAe,EAAE,QAAQ;IACzB,gBAAgB,EAAE,SAAS;IAC3B,qBAAqB,EAAE,cAAc;IACrC,sBAAsB,EAAE,2BAA2B;IACnD,sBAAsB,EAAE,yDAAyD;IACjF,qBAAqB,EAAE,oBAAoB;IAC3C,qBAAqB,EAAE,qDAAqD;IAC5E,iBAAiB,EAAE,yCAAyC;IAC5D,wBAAwB,EAAE,kDAAkD;IAC5E,iBAAiB,EAAE,kDAAkD;IACrE,gBAAgB,EAAE,UAAU;IAC5B,oBAAoB,EAAE,kBAAkB;IACxC,mBAAmB,EAAE,wDAAwD;IAC7E,oBAAoB,EAAE,uCAAuC;IAC7D,qBAAqB,EAAE,mBAAmB;IAC1C,eAAe,EAAE,qBAAqB;CACvC,CAAC,CAAC;AAEH,0FAA0F;AAC1F,SAAgB,gBAAgB,CAC9B,MAA8D;IAE9D,OAAO,CAAC,GAAG,EAAE,IAAI,GAAG,EAAE,EAAE,EAAE;QACxB,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC9B,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG;YAAE,OAAO,GAAG,CAAC;QACnC,MAAM,QAAQ,GAAG,sBAAc,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC;QAC5C,OAAO,QAAQ,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,CAAS,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACxE,CAAC,CAAC;AACJ,CAAC;AAED,mCAAmC;AACnC,SAAgB,UAAU,CAAC,MAAgB,EAAE,GAAW;IACtD,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC/C,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;AACjF,CAAC;AAED,iHAAiH;AACjH,SAAgB,aAAa,CAAC,QAAgB,EAAE,IAAY;IAC1D,MAAM,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC;IACzC,IAAI,EAAE,GAAG,CAAC;QAAE,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAClC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;AACvE,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,yBAAyB,CAC7C,MAAkB,EAClB,UAAsC,EACtC,MAAgD,EAChD,OAA4B,EAAE;IAE9B,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC;IACtD,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC/C,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IACpD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACI,KAAK,UAAU,oBAAoB,CACxC,MAAkB,EAClB,OAA0D,EAC1D,OAAsD,EAAE;IAExD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAE,OAAQ,CAAC,gBAA8B,CAAC,CAAC,CAAC,EAAE,CAAC;IACzG,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,wEAAwE;QACxE,wEAAwE;QACxE,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC7C,OAAO,IAAI,0BAA0B,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC;IAC7E,CAAC;IACD,IAAI,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;IAClF,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,EAAE,CAAC;QAC9D,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC7C,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAC7B,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;YAC9C,IAAI,CAAC,IAAI;gBAAE,OAAO,CAAC,CAAC;YACpB,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAA4B,CAAC;YAC9G,MAAM,GAAG,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,SAAS,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;YAC5E,OAAO;gBACL,GAAG,IAAI;gBACP,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3C,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACjD,SAAS,EAAE,CAAC,CAAC,SAAS;gBACtB,OAAO,EAAE,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO;gBAClC,WAAW,EAAE,CAAC,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW;gBAC9C,eAAe,EAAE,CAAC,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe;gBAC1D,aAAa,EAAE,CAAC,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa;gBACpD,gBAAgB,EAAE,CAAC,CAAC,gBAAgB,IAAI,IAAI,CAAC,gBAAgB;gBAC7D,QAAQ,EAAE,CAAC,CAAC,QAAQ;aACrB,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IACD,2FAA2F;IAC3F,OAAO,IAAI,0BAA0B,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AAC9F,CAAC;AAED;;;;;GAKG;AACH,MAAa,oBAAoB;IAOZ;IACA;IAPnB,sFAAsF;IACtF,OAAO,GAAqB,EAAE,CAAC;IAC/B,MAAM,GAAG,KAAK,CAAC;IACP,SAAS,GAAG,IAAI,GAAG,EAAc,CAAC;IAE1C,YACmB,MAAkB,EAClB,MAAe;QADf,WAAM,GAAN,MAAM,CAAY;QAClB,WAAM,GAAN,MAAM,CAAS;IAC/B,CAAC;IAEJ,SAAS,CAAC,EAAc;QACtB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACvB,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACzC,CAAC;IAEO,IAAI;QACV,KAAK,MAAM,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;YAAE,EAAE,EAAE,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,OAAO,GAAG,CAAC,MAAM,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;QAClF,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,oEAAoE;IACpE,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IAClG,CAAC;IAED,8EAA8E;IAC9E,KAAK,CAAC,KAAK;QACT,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QACrE,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACvD,OAAO,IAAI,0BAA0B,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACrH,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,UAAsC;QACjD,MAAM,GAAG,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC;QACpE,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;YACX,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;YAClB,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;CACF;AA9CD,oDA8CC"}
@@ -0,0 +1,106 @@
1
+ /**
2
+ * Vanilla-DOM policy UI: the consent block (checkboxes + in-page viewer), the
3
+ * clickwrap sentence, and the unskippable scroll modal. The Vue, Svelte,
4
+ * Angular and Solid components and the embed widget host these; React draws
5
+ * the same markup natively. Both use the `atlas-policy-*` classes from
6
+ * {@link POLICY_CSS}, so an `appearance.elements` class on any of them works
7
+ * everywhere.
8
+ */
9
+ import { PolicyAcceptanceController, isPolicyAcceptanceRequired, type Policy } from './policy-acceptance';
10
+ /** Translate a key with `{vars}`; unknown keys fall back to English in the caller's translator. */
11
+ export type PolicyT = (key: string, vars?: Record<string, string>) => string;
12
+ /** Extra class names per element, appended to the defaults (the `appearance.elements` hooks). */
13
+ export type PolicyClasses = Partial<Record<'root' | 'checkbox' | 'text' | 'link' | 'viewer' | 'viewerBody' | 'overlay' | 'modal' | 'button' | 'primaryButton' | 'error' | 'summary', string>>;
14
+ export declare const POLICY_CSS = ".atlas-policy-consent{display:flex;flex-direction:column;gap:8px;font-size:.875rem;}\n.atlas-policy-row{display:flex;gap:8px;align-items:flex-start;}\n.atlas-policy-link{padding:0;font:inherit;color:var(--atlas-color-primary,#5b5bd6);background:none;border:0;cursor:pointer;text-decoration:underline;}\n.atlas-policy-clickwrap{margin:0;font-size:.8125rem;color:var(--atlas-color-muted,#666);text-align:center;}\n.atlas-policy-viewer{display:flex;flex-direction:column;gap:8px;border:1px solid var(--atlas-color-border,#e4e4e9);border-radius:var(--atlas-border-radius,8px);padding:12px;}\n.atlas-policy-viewer-head{display:flex;justify-content:space-between;align-items:center;gap:8px;}\n.atlas-policy-meta{margin:0;font-size:.75rem;color:var(--atlas-color-muted,#666);}\n.atlas-policy-body{max-height:min(50vh,22rem);overflow:auto;padding:0 4px;font-size:.875rem;line-height:1.55;overscroll-behavior:contain;}\n.atlas-policy-body:focus-visible{outline:2px solid var(--atlas-color-focus-ring,var(--atlas-color-primary,#5b5bd6));outline-offset:2px;}\n.atlas-policy-sentinel{display:block;height:1px;}\n.atlas-policy-overlay{position:fixed;inset:0;z-index:2147483000;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(0,0,0,.55);}\n.atlas-policy-modal{display:flex;flex-direction:column;gap:12px;width:100%;max-width:36rem;max-height:calc(100vh - 32px);padding:20px;background:var(--atlas-color-background,#fff);color:var(--atlas-color-text,#1c1c1f);border:1px solid var(--atlas-color-border,#e4e4e9);border-radius:var(--atlas-border-radius,8px);box-shadow:0 12px 40px rgba(0,0,0,.3);font-family:var(--atlas-font-family,ui-sans-serif,system-ui,sans-serif);}\n.atlas-policy-modal h2{margin:0;font-size:1.125rem;}\n.atlas-policy-summary{padding:8px 12px;font-size:.8125rem;background:var(--atlas-color-surface,rgba(91,91,214,.08));border-radius:var(--atlas-border-radius,8px);}\n.atlas-policy-summary strong{display:block;margin-bottom:2px;}\n.atlas-policy-hint{margin:0;font-size:.8125rem;color:var(--atlas-color-muted,#666);}\n.atlas-policy-actions{display:flex;justify-content:flex-end;gap:8px;}\n.atlas-policy-actions button{min-height:40px;padding:8px 16px;font:inherit;font-weight:600;border-radius:var(--atlas-border-radius,8px);cursor:pointer;border:1px solid var(--atlas-color-border,#e4e4e9);background:transparent;color:inherit;}\n.atlas-policy-actions button.atlas-policy-accept{color:var(--atlas-color-text-on-primary,#fff);background:var(--atlas-color-primary,#5b5bd6);border-color:transparent;}\n.atlas-policy-actions button:disabled{opacity:.55;cursor:not-allowed;}\n.atlas-policy-banner{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between;padding:10px 14px;font-size:.875rem;border:1px solid var(--atlas-color-border,#e4e4e9);border-radius:var(--atlas-border-radius,8px);background:var(--atlas-color-surface,rgba(91,91,214,.08));}";
15
+ /** Inject {@link POLICY_CSS} once (idempotent). Hosts that carry their own base stylesheet need not call it. */
16
+ export declare function injectPolicyStyles(doc?: Document): void;
17
+ /**
18
+ * Defence in depth on top of the server's sanitiser: strip active content from
19
+ * policy HTML before it is put in the page. Unparseable input (no DOM) is
20
+ * escaped to text.
21
+ */
22
+ export declare function sanitizePolicyHtml(html: string): string;
23
+ /** The safe HTML string to draw for a policy. */
24
+ export declare function renderPolicyContent(policy: Pick<Policy, 'contentHtml' | 'contentMarkdown'>): string;
25
+ interface DomOptions {
26
+ t: PolicyT;
27
+ classes?: PolicyClasses;
28
+ /** The document to build in (tests, iframes). */
29
+ document?: Document;
30
+ }
31
+ export interface MountedPolicyUi {
32
+ destroy(): void;
33
+ /** Re-render now (normally automatic on controller changes). */
34
+ render(): void;
35
+ }
36
+ /**
37
+ * The consent block: one combined checkbox ("I agree to the Terms and Privacy
38
+ * Policy") or one per policy, with each name opening the in-page viewer. While a
39
+ * document is open the viewer replaces the checkboxes; "Back" returns.
40
+ */
41
+ export declare function mountPolicyConsent(host: HTMLElement, controller: PolicyAcceptanceController, options: DomOptions): MountedPolicyUi;
42
+ /** The clickwrap sentence for `link`-mode policies: "By continuing you agree to the Terms and Privacy Policy." */
43
+ export declare function mountPolicyClickwrap(host: HTMLElement, controller: PolicyAcceptanceController, options: DomOptions): MountedPolicyUi;
44
+ export interface PolicyModalOptions extends DomOptions {
45
+ /** A re-acceptance of an updated policy: shows the summary of changes and the "updated" heading. */
46
+ reaccept?: boolean;
47
+ /** Where to attach the overlay (default `document.body`). */
48
+ container?: HTMLElement;
49
+ /** The controller to record the reading clock and scroll evidence on. */
50
+ controller?: PolicyAcceptanceController;
51
+ onAccept(): void;
52
+ onDecline(): void;
53
+ }
54
+ export interface PolicyModalHandle {
55
+ close(): void;
56
+ /** Whether Accept is currently enabled (the end was seen or the text fits). */
57
+ readonly acceptEnabled: boolean;
58
+ }
59
+ /**
60
+ * The unskippable policy modal: `role="dialog" aria-modal="true"`, focus trapped,
61
+ * no close button and Escape disabled. Accept is enabled only once an end
62
+ * sentinel is visible (IntersectionObserver) or the text fits; Decline calls
63
+ * `onDecline`. A re-acceptance also shows the version's summary of changes.
64
+ */
65
+ export declare function openPolicyModal(policy: Policy, options: PolicyModalOptions): PolicyModalHandle;
66
+ /**
67
+ * Walk the controller's unread scroll-mode policies one modal at a time.
68
+ * Resolves `true` when all were accepted, `false` when the user declined.
69
+ */
70
+ export declare function runScrollPolicies(controller: PolicyAcceptanceController, options: DomOptions & {
71
+ reaccept?: boolean;
72
+ container?: HTMLElement;
73
+ }): Promise<boolean>;
74
+ /** The user-facing message when a required policy was declined or is unticked. */
75
+ export declare function policyRequiredMessage(controller: PolicyAcceptanceController, t: PolicyT, errors?: Parameters<typeof isPolicyAcceptanceRequired>[0]): string;
76
+ /**
77
+ * Submit-time check for a sign-up form: opens the unskippable dialog for each
78
+ * unread scroll-mode policy. `ok` is false when the user declined one (`declined`
79
+ * is its title) — the form should not submit, and should say why.
80
+ */
81
+ export declare function confirmPolicies(controller: PolicyAcceptanceController, options: DomOptions & {
82
+ container?: HTMLElement;
83
+ }): Promise<{
84
+ ok: boolean;
85
+ declined: string | null;
86
+ }>;
87
+ export interface PolicyAcceptStepOptions extends DomOptions {
88
+ /** Where the scroll dialog attaches (default `document.body`). */
89
+ container?: HTMLElement;
90
+ /** The user accepted everything required: send these as `policy_acceptances`. */
91
+ onSubmit(acceptances: ReturnType<PolicyAcceptanceController['build']>): void;
92
+ /** The user declined a policy: cancel the attempt. */
93
+ onDecline(policy: Policy): void;
94
+ }
95
+ export interface MountedPolicyStep extends MountedPolicyUi {
96
+ /** Disable the continue button while a request is in flight. */
97
+ setBusy(busy: boolean): void;
98
+ }
99
+ /**
100
+ * The sign-in step for `needs_policy_acceptance`, as plain DOM: scroll-mode
101
+ * policies open their dialog at once, the rest are checkboxes / a clickwrap
102
+ * sentence with an "Accept and continue" button. Used by the framework SDKs'
103
+ * sign-in components and the embed widget.
104
+ */
105
+ export declare function mountPolicyAcceptStep(host: HTMLElement, controller: PolicyAcceptanceController, options: PolicyAcceptStepOptions): MountedPolicyStep;
106
+ export {};
@@ -0,0 +1,438 @@
1
+ "use strict";
2
+ /**
3
+ * Vanilla-DOM policy UI: the consent block (checkboxes + in-page viewer), the
4
+ * clickwrap sentence, and the unskippable scroll modal. The Vue, Svelte,
5
+ * Angular and Solid components and the embed widget host these; React draws
6
+ * the same markup natively. Both use the `atlas-policy-*` classes from
7
+ * {@link POLICY_CSS}, so an `appearance.elements` class on any of them works
8
+ * everywhere.
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.POLICY_CSS = void 0;
12
+ exports.injectPolicyStyles = injectPolicyStyles;
13
+ exports.sanitizePolicyHtml = sanitizePolicyHtml;
14
+ exports.renderPolicyContent = renderPolicyContent;
15
+ exports.mountPolicyConsent = mountPolicyConsent;
16
+ exports.mountPolicyClickwrap = mountPolicyClickwrap;
17
+ exports.openPolicyModal = openPolicyModal;
18
+ exports.runScrollPolicies = runScrollPolicies;
19
+ exports.policyRequiredMessage = policyRequiredMessage;
20
+ exports.confirmPolicies = confirmPolicies;
21
+ exports.mountPolicyAcceptStep = mountPolicyAcceptStep;
22
+ const policy_acceptance_1 = require("./policy-acceptance");
23
+ exports.POLICY_CSS = `.atlas-policy-consent{display:flex;flex-direction:column;gap:8px;font-size:.875rem;}
24
+ .atlas-policy-row{display:flex;gap:8px;align-items:flex-start;}
25
+ .atlas-policy-link{padding:0;font:inherit;color:var(--atlas-color-primary,#5b5bd6);background:none;border:0;cursor:pointer;text-decoration:underline;}
26
+ .atlas-policy-clickwrap{margin:0;font-size:.8125rem;color:var(--atlas-color-muted,#666);text-align:center;}
27
+ .atlas-policy-viewer{display:flex;flex-direction:column;gap:8px;border:1px solid var(--atlas-color-border,#e4e4e9);border-radius:var(--atlas-border-radius,8px);padding:12px;}
28
+ .atlas-policy-viewer-head{display:flex;justify-content:space-between;align-items:center;gap:8px;}
29
+ .atlas-policy-meta{margin:0;font-size:.75rem;color:var(--atlas-color-muted,#666);}
30
+ .atlas-policy-body{max-height:min(50vh,22rem);overflow:auto;padding:0 4px;font-size:.875rem;line-height:1.55;overscroll-behavior:contain;}
31
+ .atlas-policy-body:focus-visible{outline:2px solid var(--atlas-color-focus-ring,var(--atlas-color-primary,#5b5bd6));outline-offset:2px;}
32
+ .atlas-policy-sentinel{display:block;height:1px;}
33
+ .atlas-policy-overlay{position:fixed;inset:0;z-index:2147483000;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(0,0,0,.55);}
34
+ .atlas-policy-modal{display:flex;flex-direction:column;gap:12px;width:100%;max-width:36rem;max-height:calc(100vh - 32px);padding:20px;background:var(--atlas-color-background,#fff);color:var(--atlas-color-text,#1c1c1f);border:1px solid var(--atlas-color-border,#e4e4e9);border-radius:var(--atlas-border-radius,8px);box-shadow:0 12px 40px rgba(0,0,0,.3);font-family:var(--atlas-font-family,ui-sans-serif,system-ui,sans-serif);}
35
+ .atlas-policy-modal h2{margin:0;font-size:1.125rem;}
36
+ .atlas-policy-summary{padding:8px 12px;font-size:.8125rem;background:var(--atlas-color-surface,rgba(91,91,214,.08));border-radius:var(--atlas-border-radius,8px);}
37
+ .atlas-policy-summary strong{display:block;margin-bottom:2px;}
38
+ .atlas-policy-hint{margin:0;font-size:.8125rem;color:var(--atlas-color-muted,#666);}
39
+ .atlas-policy-actions{display:flex;justify-content:flex-end;gap:8px;}
40
+ .atlas-policy-actions button{min-height:40px;padding:8px 16px;font:inherit;font-weight:600;border-radius:var(--atlas-border-radius,8px);cursor:pointer;border:1px solid var(--atlas-color-border,#e4e4e9);background:transparent;color:inherit;}
41
+ .atlas-policy-actions button.atlas-policy-accept{color:var(--atlas-color-text-on-primary,#fff);background:var(--atlas-color-primary,#5b5bd6);border-color:transparent;}
42
+ .atlas-policy-actions button:disabled{opacity:.55;cursor:not-allowed;}
43
+ .atlas-policy-banner{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between;padding:10px 14px;font-size:.875rem;border:1px solid var(--atlas-color-border,#e4e4e9);border-radius:var(--atlas-border-radius,8px);background:var(--atlas-color-surface,rgba(91,91,214,.08));}`;
44
+ const STYLE_ID = 'atlas-policy-styles';
45
+ /** Inject {@link POLICY_CSS} once (idempotent). Hosts that carry their own base stylesheet need not call it. */
46
+ function injectPolicyStyles(doc = document) {
47
+ if (doc.getElementById(STYLE_ID))
48
+ return;
49
+ const style = doc.createElement('style');
50
+ style.id = STYLE_ID;
51
+ style.textContent = exports.POLICY_CSS;
52
+ doc.head.appendChild(style);
53
+ }
54
+ const FORBIDDEN_TAGS = new Set(['SCRIPT', 'STYLE', 'IFRAME', 'OBJECT', 'EMBED', 'FORM', 'LINK', 'META', 'BASE', 'SVG', 'MATH']);
55
+ /**
56
+ * Defence in depth on top of the server's sanitiser: strip active content from
57
+ * policy HTML before it is put in the page. Unparseable input (no DOM) is
58
+ * escaped to text.
59
+ */
60
+ function sanitizePolicyHtml(html) {
61
+ if (typeof document === 'undefined' || typeof document.createElement !== 'function') {
62
+ return html.replace(/&/g, '&amp;').replace(/</g, '&lt;');
63
+ }
64
+ const tpl = document.createElement('template');
65
+ tpl.innerHTML = html;
66
+ const walk = (node) => {
67
+ for (const child of Array.from(node.children)) {
68
+ if (FORBIDDEN_TAGS.has(child.tagName.toUpperCase())) {
69
+ child.remove();
70
+ continue;
71
+ }
72
+ for (const attr of Array.from(child.attributes)) {
73
+ const name = attr.name.toLowerCase();
74
+ const value = attr.value.trim().toLowerCase().replace(/[\s\u0000-\u001f]/g, '');
75
+ if (name.startsWith('on') || name === 'style' || ((name === 'href' || name === 'src' || name === 'xlink:href') && /^(javascript|data|vbscript):/.test(value))) {
76
+ child.removeAttribute(attr.name);
77
+ }
78
+ }
79
+ if (child.tagName === 'A') {
80
+ child.setAttribute('target', '_blank');
81
+ child.setAttribute('rel', 'noopener noreferrer');
82
+ }
83
+ walk(child);
84
+ }
85
+ };
86
+ walk(tpl.content);
87
+ return tpl.innerHTML;
88
+ }
89
+ /** The safe HTML string to draw for a policy. */
90
+ function renderPolicyContent(policy) {
91
+ return sanitizePolicyHtml((0, policy_acceptance_1.policyHtml)(policy));
92
+ }
93
+ function el(doc, tag, className, attrs = {}, text) {
94
+ const node = doc.createElement(tag);
95
+ if (className)
96
+ node.className = className;
97
+ for (const [k, v] of Object.entries(attrs))
98
+ node.setAttribute(k, v);
99
+ if (text !== undefined)
100
+ node.textContent = text;
101
+ return node;
102
+ }
103
+ const cx = (...parts) => parts.filter(Boolean).join(' ');
104
+ let uid = 0;
105
+ const reading = new WeakSet();
106
+ // The step currently showing for a controller (a repaint swaps it while a dialog is open).
107
+ const activeStep = new WeakMap();
108
+ /** A policy name that opens the document in the viewer. */
109
+ function docLink(doc, policy, controller, o) {
110
+ const b = el(doc, 'button', cx('atlas-policy-link', o.classes?.link), { type: 'button', 'data-atlas-policy-open': policy.key, 'aria-haspopup': 'dialog' }, policy.title);
111
+ b.addEventListener('click', (e) => {
112
+ e.preventDefault();
113
+ controller.openDocument(policy.key);
114
+ });
115
+ return b;
116
+ }
117
+ /** Append a sentence template with `{policies}` replaced by the given nodes (joined "A, B and C"). */
118
+ function sentence(doc, tpl, nodes, and) {
119
+ const [before, after] = (0, policy_acceptance_1.splitTemplate)(tpl, 'policies');
120
+ const frag = doc.createDocumentFragment();
121
+ frag.append(before);
122
+ nodes.forEach((n, i) => {
123
+ if (i > 0)
124
+ frag.append(i === nodes.length - 1 ? ` ${and} ` : ', ');
125
+ frag.append(n);
126
+ });
127
+ frag.append(after);
128
+ return frag;
129
+ }
130
+ /**
131
+ * The consent block: one combined checkbox ("I agree to the Terms and Privacy
132
+ * Policy") or one per policy, with each name opening the in-page viewer. While a
133
+ * document is open the viewer replaces the checkboxes; "Back" returns.
134
+ */
135
+ function mountPolicyConsent(host, controller, options) {
136
+ const doc = options.document ?? host.ownerDocument;
137
+ const { t, classes } = options;
138
+ let stopScroll = null;
139
+ const render = () => {
140
+ stopScroll?.();
141
+ stopScroll = null;
142
+ host.textContent = '';
143
+ host.className = cx('atlas-policy-consent', classes?.root);
144
+ host.setAttribute('data-atlas-policies', '');
145
+ const viewing = controller.viewing;
146
+ if (viewing) {
147
+ host.append(renderViewer(doc, viewing, controller, options, (stop) => (stopScroll = stop)));
148
+ return;
149
+ }
150
+ const boxes = controller.checkboxPolicies();
151
+ if (boxes.length === 0)
152
+ return;
153
+ const and = t('policy.and');
154
+ if (controller.combined) {
155
+ const id = `atlas-policy-${++uid}`;
156
+ const row = el(doc, 'div', 'atlas-policy-row atlas-consent');
157
+ const input = el(doc, 'input', cx('atlas-policy-checkbox', classes?.checkbox), { type: 'checkbox', id, name: 'policies', 'data-atlas-policy-all': '' });
158
+ input.checked = controller.snapshot().combinedChecked;
159
+ input.addEventListener('change', () => controller.setAllChecked(input.checked));
160
+ const label = el(doc, 'label', cx('atlas-text', classes?.text), { for: id });
161
+ label.append(sentence(doc, t('policy.agreeCombined'), boxes.map((p) => docLink(doc, p, controller, options)), and));
162
+ row.append(input, label);
163
+ host.append(row);
164
+ }
165
+ else {
166
+ for (const p of boxes) {
167
+ const id = `atlas-policy-${++uid}`;
168
+ const row = el(doc, 'div', 'atlas-policy-row atlas-consent');
169
+ const input = el(doc, 'input', cx('atlas-policy-checkbox', classes?.checkbox), { type: 'checkbox', id, name: `policy_${p.key}`, 'data-atlas-policy-box': p.key });
170
+ input.checked = controller.isChecked(p.key);
171
+ input.addEventListener('change', () => controller.setChecked(p.key, input.checked));
172
+ const label = el(doc, 'label', cx('atlas-text', classes?.text), { for: id });
173
+ const [before, after] = (0, policy_acceptance_1.splitTemplate)(t('policy.agreeOne'), 'policy');
174
+ label.append(before, docLink(doc, p, controller, options), after);
175
+ row.append(input, label);
176
+ host.append(row);
177
+ }
178
+ }
179
+ };
180
+ const off = controller.subscribe(render);
181
+ render();
182
+ return {
183
+ render,
184
+ destroy() {
185
+ off();
186
+ stopScroll?.();
187
+ host.textContent = '';
188
+ },
189
+ };
190
+ }
191
+ /** The clickwrap sentence for `link`-mode policies: "By continuing you agree to the Terms and Privacy Policy." */
192
+ function mountPolicyClickwrap(host, controller, options) {
193
+ const doc = options.document ?? host.ownerDocument;
194
+ const { t, classes } = options;
195
+ const render = () => {
196
+ host.textContent = '';
197
+ const links = controller.linkPolicies();
198
+ host.hidden = links.length === 0;
199
+ if (links.length === 0)
200
+ return;
201
+ host.className = cx('atlas-policy-clickwrap', classes?.text);
202
+ host.setAttribute('data-atlas-policy-clickwrap', '');
203
+ host.append(sentence(doc, t('policy.clickwrap'), links.map((p) => docLink(doc, p, controller, options)), t('policy.and')));
204
+ };
205
+ const off = controller.subscribe(render);
206
+ render();
207
+ return {
208
+ render,
209
+ destroy() {
210
+ off();
211
+ host.textContent = '';
212
+ },
213
+ };
214
+ }
215
+ function renderViewer(doc, policy, controller, o, track) {
216
+ const { t, classes } = o;
217
+ const wrap = el(doc, 'div', cx('atlas-policy-viewer', classes?.viewer), { role: 'region', 'aria-label': policy.title, 'data-atlas-policy-viewer': policy.key });
218
+ const head = el(doc, 'div', 'atlas-policy-viewer-head');
219
+ head.append(el(doc, 'strong', undefined, {}, policy.title));
220
+ const back = el(doc, 'button', cx('atlas-policy-link', classes?.link), { type: 'button', 'data-atlas-policy-back': '' }, t('policy.viewerBack'));
221
+ back.addEventListener('click', () => controller.closeDocument());
222
+ head.append(back);
223
+ const meta = [policy.version ? t('policy.version', { version: policy.version }) : '', policy.effectiveAt ? t('policy.effective', { date: (0, policy_acceptance_1.formatPolicyDate)(policy.effectiveAt) }) : '']
224
+ .filter(Boolean)
225
+ .join(' · ');
226
+ const body = el(doc, 'div', cx('atlas-policy-body', classes?.viewerBody), { tabindex: '0', 'data-atlas-policy-content': '' });
227
+ body.innerHTML = renderPolicyContent(policy);
228
+ const sentinel = el(doc, 'span', 'atlas-policy-sentinel', { 'aria-hidden': 'true' });
229
+ body.append(sentinel);
230
+ wrap.append(head);
231
+ if (meta)
232
+ wrap.append(el(doc, 'p', 'atlas-policy-meta', {}, meta));
233
+ wrap.append(body);
234
+ track((0, policy_acceptance_1.observeScrollEnd)(body, sentinel, () => controller.markScrolledToEnd(policy.key)));
235
+ return wrap;
236
+ }
237
+ /**
238
+ * The unskippable policy modal: `role="dialog" aria-modal="true"`, focus trapped,
239
+ * no close button and Escape disabled. Accept is enabled only once an end
240
+ * sentinel is visible (IntersectionObserver) or the text fits; Decline calls
241
+ * `onDecline`. A re-acceptance also shows the version's summary of changes.
242
+ */
243
+ function openPolicyModal(policy, options) {
244
+ const doc = options.document ?? document;
245
+ const { t, classes, controller } = options;
246
+ const n = ++uid;
247
+ const titleId = `atlas-policy-title-${n}`;
248
+ const hintId = `atlas-policy-hint-${n}`;
249
+ const overlay = el(doc, 'div', cx('atlas-policy-overlay', classes?.overlay), { 'data-atlas-policy-modal': policy.key });
250
+ const modal = el(doc, 'div', cx('atlas-policy-modal', classes?.modal), {
251
+ role: 'dialog',
252
+ 'aria-modal': 'true',
253
+ 'aria-labelledby': titleId,
254
+ 'aria-describedby': hintId,
255
+ tabindex: '-1',
256
+ });
257
+ modal.append(el(doc, 'h2', undefined, { id: titleId }, options.reaccept && policy.reaccept !== false ? t('policy.reacceptTitle', { policy: policy.title }) : policy.title));
258
+ if (options.reaccept && policy.reaccept !== false && policy.summaryOfChanges) {
259
+ const sum = el(doc, 'div', cx('atlas-policy-summary', classes?.summary), { 'data-atlas-policy-summary': '' });
260
+ sum.append(el(doc, 'strong', undefined, {}, t('policy.summaryTitle')), el(doc, 'span', undefined, {}, policy.summaryOfChanges));
261
+ modal.append(sum);
262
+ }
263
+ const body = el(doc, 'div', cx('atlas-policy-body', classes?.viewerBody), { tabindex: '0', role: 'region', 'aria-label': policy.title, 'data-atlas-policy-content': '' });
264
+ body.innerHTML = renderPolicyContent(policy);
265
+ const sentinel = el(doc, 'span', 'atlas-policy-sentinel', { 'aria-hidden': 'true', 'data-atlas-policy-end': '' });
266
+ body.append(sentinel);
267
+ const hint = el(doc, 'p', 'atlas-policy-hint', { id: hintId, 'aria-live': 'polite' }, t('policy.scrollHint'));
268
+ const actions = el(doc, 'div', 'atlas-policy-actions');
269
+ const decline = el(doc, 'button', cx(classes?.button), { type: 'button', 'data-atlas-policy-decline': '' }, t('policy.decline'));
270
+ const accept = el(doc, 'button', cx('atlas-policy-accept', classes?.primaryButton), { type: 'button', 'data-atlas-policy-accept': '', disabled: '', 'aria-disabled': 'true' }, t('policy.accept'));
271
+ actions.append(decline, accept);
272
+ modal.append(body, hint, actions);
273
+ overlay.append(modal);
274
+ (options.container ?? doc.body).append(overlay);
275
+ let enabled = false;
276
+ const stopObserve = (0, policy_acceptance_1.observeScrollEnd)(body, sentinel, () => {
277
+ enabled = true;
278
+ accept.disabled = false;
279
+ accept.removeAttribute('disabled');
280
+ accept.setAttribute('aria-disabled', 'false');
281
+ hint.textContent = '';
282
+ controller?.markScrolledToEnd(policy.key);
283
+ });
284
+ controller?.startClock(policy.key);
285
+ const release = (0, policy_acceptance_1.trapFocus)(modal, { initialFocus: body });
286
+ let closed = false;
287
+ const close = () => {
288
+ if (closed)
289
+ return;
290
+ closed = true;
291
+ stopObserve();
292
+ release();
293
+ controller?.stopClock(policy.key);
294
+ overlay.remove();
295
+ };
296
+ accept.addEventListener('click', () => {
297
+ if (!enabled)
298
+ return;
299
+ close();
300
+ options.onAccept();
301
+ });
302
+ decline.addEventListener('click', () => {
303
+ close();
304
+ options.onDecline();
305
+ });
306
+ return {
307
+ close,
308
+ get acceptEnabled() {
309
+ return enabled;
310
+ },
311
+ };
312
+ }
313
+ /**
314
+ * Walk the controller's unread scroll-mode policies one modal at a time.
315
+ * Resolves `true` when all were accepted, `false` when the user declined.
316
+ */
317
+ function runScrollPolicies(controller, options) {
318
+ return new Promise((resolve) => {
319
+ const next = () => {
320
+ const policy = controller.pendingScroll();
321
+ if (!policy) {
322
+ resolve(true);
323
+ return;
324
+ }
325
+ openPolicyModal(policy, {
326
+ ...options,
327
+ controller,
328
+ onAccept: () => {
329
+ controller.acceptScroll(policy.key);
330
+ next();
331
+ },
332
+ onDecline: () => resolve(false),
333
+ });
334
+ };
335
+ next();
336
+ });
337
+ }
338
+ /** The user-facing message when a required policy was declined or is unticked. */
339
+ function policyRequiredMessage(controller, t, errors) {
340
+ const missing = controller.missing();
341
+ if (missing.length === 1)
342
+ return t('policy.required', { policy: missing[0].title });
343
+ if (missing.length > 1)
344
+ return t('policy.requiredGeneric');
345
+ return errors && (0, policy_acceptance_1.isPolicyAcceptanceRequired)(errors) ? t('policy.requiredGeneric') : '';
346
+ }
347
+ /**
348
+ * Submit-time check for a sign-up form: opens the unskippable dialog for each
349
+ * unread scroll-mode policy. `ok` is false when the user declined one (`declined`
350
+ * is its title) — the form should not submit, and should say why.
351
+ */
352
+ async function confirmPolicies(controller, options) {
353
+ if (!controller.pendingScroll())
354
+ return { ok: true, declined: null };
355
+ const ok = await runScrollPolicies(controller, options);
356
+ if (ok)
357
+ return { ok: true, declined: null };
358
+ const declined = controller.policies.find((p) => p.display === 'scroll' && !controller.isChecked(p.key))?.title ?? null;
359
+ return { ok: false, declined };
360
+ }
361
+ /**
362
+ * The sign-in step for `needs_policy_acceptance`, as plain DOM: scroll-mode
363
+ * policies open their dialog at once, the rest are checkboxes / a clickwrap
364
+ * sentence with an "Accept and continue" button. Used by the framework SDKs'
365
+ * sign-in components and the embed widget.
366
+ */
367
+ function mountPolicyAcceptStep(host, controller, options) {
368
+ const doc = options.document ?? host.ownerDocument;
369
+ const { t, classes } = options;
370
+ let busy = false;
371
+ let alive = true;
372
+ host.textContent = '';
373
+ host.setAttribute('data-atlas-policy-step', '');
374
+ const hasOthers = controller.policies.some((p) => p.display !== 'scroll');
375
+ host.append(el(doc, 'p', cx('atlas-text', classes?.text), {}, t('policy.pendingIntro')));
376
+ const consent = el(doc, 'div');
377
+ const clickwrap = el(doc, 'p');
378
+ const mountedConsent = mountPolicyConsent(consent, controller, options);
379
+ const mountedWrap = mountPolicyClickwrap(clickwrap, controller, options);
380
+ host.append(consent);
381
+ let button = null;
382
+ const sync = () => {
383
+ if (button)
384
+ button.disabled = busy || !controller.canSubmit() || controller.pendingScroll() !== null;
385
+ };
386
+ if (hasOthers) {
387
+ button = el(doc, 'button', cx('atlas-button', classes?.primaryButton), { type: 'button', 'data-atlas-policy-continue': '' }, t('policy.submit'));
388
+ button.addEventListener('click', () => options.onSubmit(controller.build()));
389
+ host.append(button);
390
+ }
391
+ host.append(clickwrap);
392
+ const off = controller.subscribe(sync);
393
+ sync();
394
+ const me = { hasOthers, onSubmit: options.onSubmit, onDecline: options.onDecline };
395
+ activeStep.set(controller, me);
396
+ const open = () => {
397
+ // One dialog queue per controller, even if the host repaints the step.
398
+ if (!alive || reading.has(controller) || !controller.pendingScroll())
399
+ return;
400
+ reading.add(controller);
401
+ void runScrollPolicies(controller, { ...options, reaccept: true }).then((ok) => {
402
+ reading.delete(controller);
403
+ const current = activeStep.get(controller);
404
+ if (!current)
405
+ return;
406
+ if (!ok) {
407
+ const declined = controller.policies.find((p) => p.display === 'scroll' && !controller.isChecked(p.key));
408
+ if (declined)
409
+ current.onDecline(declined);
410
+ }
411
+ else if (!current.hasOthers) {
412
+ current.onSubmit(controller.build());
413
+ }
414
+ });
415
+ };
416
+ open();
417
+ return {
418
+ render() {
419
+ mountedConsent.render();
420
+ mountedWrap.render();
421
+ sync();
422
+ },
423
+ setBusy(next) {
424
+ busy = next;
425
+ sync();
426
+ },
427
+ destroy() {
428
+ alive = false;
429
+ if (activeStep.get(controller) === me)
430
+ activeStep.delete(controller);
431
+ off();
432
+ mountedConsent.destroy();
433
+ mountedWrap.destroy();
434
+ host.textContent = '';
435
+ },
436
+ };
437
+ }
438
+ //# sourceMappingURL=policy-dom.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policy-dom.js","sourceRoot":"","sources":["../src/policy-dom.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AA8CH,gDAMC;AASD,gDA4BC;AAGD,kDAEC;AAqED,gDAuDC;AAGD,oDAqBC;AAqDD,0CAoEC;AAMD,8CAoBC;AAGD,sDAKC;AAQD,0CASC;AAsBD,sDAgEC;AAlfD,2DAS6B;AAUhB,QAAA,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;0SAoBgR,CAAC;AAE3S,MAAM,QAAQ,GAAG,qBAAqB,CAAC;AAEvC,gHAAgH;AAChH,SAAgB,kBAAkB,CAAC,MAAgB,QAAQ;IACzD,IAAI,GAAG,CAAC,cAAc,CAAC,QAAQ,CAAC;QAAE,OAAO;IACzC,MAAM,KAAK,GAAG,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IACzC,KAAK,CAAC,EAAE,GAAG,QAAQ,CAAC;IACpB,KAAK,CAAC,WAAW,GAAG,kBAAU,CAAC;IAC/B,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;AAEhI;;;;GAIG;AACH,SAAgB,kBAAkB,CAAC,IAAY;IAC7C,IAAI,OAAO,QAAQ,KAAK,WAAW,IAAI,OAAO,QAAQ,CAAC,aAAa,KAAK,UAAU,EAAE,CAAC;QACpF,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC3D,CAAC;IACD,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IAC/C,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC;IACrB,MAAM,IAAI,GAAG,CAAC,IAAa,EAAE,EAAE;QAC7B,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC9C,IAAI,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;gBACpD,KAAK,CAAC,MAAM,EAAE,CAAC;gBACf,SAAS;YACX,CAAC;YACD,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;gBAChD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;gBACrC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;gBAChF,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,YAAY,CAAC,IAAI,8BAA8B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;oBAC9J,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACnC,CAAC;YACH,CAAC;YACD,IAAI,KAAK,CAAC,OAAO,KAAK,GAAG,EAAE,CAAC;gBAC1B,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;gBACvC,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,qBAAqB,CAAC,CAAC;YACnD,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,CAAC;QACd,CAAC;IACH,CAAC,CAAC;IACF,IAAI,CAAC,GAAG,CAAC,OAA6B,CAAC,CAAC;IACxC,OAAO,GAAG,CAAC,SAAS,CAAC;AACvB,CAAC;AAED,iDAAiD;AACjD,SAAgB,mBAAmB,CAAC,MAAuD;IACzF,OAAO,kBAAkB,CAAC,IAAA,8BAAU,EAAC,MAAM,CAAC,CAAC,CAAC;AAChD,CAAC;AASD,SAAS,EAAE,CACT,GAAa,EACb,GAAM,EACN,SAAkB,EAClB,QAAgC,EAAE,EAClC,IAAa;IAEb,MAAM,IAAI,GAAG,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IACpC,IAAI,SAAS;QAAE,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC1C,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACpE,IAAI,IAAI,KAAK,SAAS;QAAE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAChD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,EAAE,GAAG,CAAC,GAAG,KAA6B,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEjF,IAAI,GAAG,GAAG,CAAC,CAAC;AACZ,MAAM,OAAO,GAAG,IAAI,OAAO,EAA8B,CAAC;AAM1D,2FAA2F;AAC3F,MAAM,UAAU,GAAG,IAAI,OAAO,EAA4C,CAAC;AAE3E,2DAA2D;AAC3D,SAAS,OAAO,CAAC,GAAa,EAAE,MAAc,EAAE,UAAsC,EAAE,CAAa;IACnG,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC,mBAAmB,EAAE,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,wBAAwB,EAAE,MAAM,CAAC,GAAG,EAAE,eAAe,EAAE,QAAQ,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IACzK,CAAC,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;QAChC,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,CAAC;AACX,CAAC;AAED,sGAAsG;AACtG,SAAS,QAAQ,CAAC,GAAa,EAAE,GAAW,EAAE,KAAa,EAAE,GAAW;IACtE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,IAAA,iCAAa,EAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IACvD,MAAM,IAAI,GAAG,GAAG,CAAC,sBAAsB,EAAE,CAAC;IAC1C,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACpB,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACrB,IAAI,CAAC,GAAG,CAAC;YAAE,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACnE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC,CAAC,CAAC;IACH,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACnB,OAAO,IAAI,CAAC;AACd,CAAC;AAQD;;;;GAIG;AACH,SAAgB,kBAAkB,CAAC,IAAiB,EAAE,UAAsC,EAAE,OAAmB;IAC/G,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,aAAa,CAAC;IACnD,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAC/B,IAAI,UAAU,GAAwB,IAAI,CAAC;IAE3C,MAAM,MAAM,GAAG,GAAG,EAAE;QAClB,UAAU,EAAE,EAAE,CAAC;QACf,UAAU,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC,sBAAsB,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QAC3D,IAAI,CAAC,YAAY,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAC;QAC7C,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;QACnC,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAC5F,OAAO;QACT,CAAC;QACD,MAAM,KAAK,GAAG,UAAU,CAAC,gBAAgB,EAAE,CAAC;QAC5C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAC/B,MAAM,GAAG,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC;QAC5B,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;YACxB,MAAM,EAAE,GAAG,gBAAgB,EAAE,GAAG,EAAE,CAAC;YACnC,MAAM,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,gCAAgC,CAAC,CAAC;YAC7D,MAAM,KAAK,GAAG,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,uBAAuB,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,uBAAuB,EAAE,EAAE,EAAE,CAAC,CAAC;YACxJ,KAAK,CAAC,OAAO,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC,eAAe,CAAC;YACtD,KAAK,CAAC,gBAAgB,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;YAChF,MAAM,KAAK,GAAG,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;YAC7E,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,sBAAsB,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YACpH,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACzB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;aAAM,CAAC;YACN,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;gBACtB,MAAM,EAAE,GAAG,gBAAgB,EAAE,GAAG,EAAE,CAAC;gBACnC,MAAM,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,gCAAgC,CAAC,CAAC;gBAC7D,MAAM,KAAK,GAAG,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,uBAAuB,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,GAAG,EAAE,EAAE,uBAAuB,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;gBAClK,KAAK,CAAC,OAAO,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBAC5C,KAAK,CAAC,gBAAgB,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;gBACpF,MAAM,KAAK,GAAG,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;gBAC7E,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,IAAA,iCAAa,EAAC,CAAC,CAAC,iBAAiB,CAAC,EAAE,QAAQ,CAAC,CAAC;gBACtE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC;gBAClE,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;gBACzB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACnB,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,GAAG,GAAG,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACzC,MAAM,EAAE,CAAC;IACT,OAAO;QACL,MAAM;QACN,OAAO;YACL,GAAG,EAAE,CAAC;YACN,UAAU,EAAE,EAAE,CAAC;YACf,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACxB,CAAC;KACF,CAAC;AACJ,CAAC;AAED,kHAAkH;AAClH,SAAgB,oBAAoB,CAAC,IAAiB,EAAE,UAAsC,EAAE,OAAmB;IACjH,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,aAAa,CAAC;IACnD,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAC/B,MAAM,MAAM,GAAG,GAAG,EAAE;QAClB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,MAAM,KAAK,GAAG,UAAU,CAAC,YAAY,EAAE,CAAC;QACxC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;QACjC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAC/B,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC,wBAAwB,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QAC7D,IAAI,CAAC,YAAY,CAAC,6BAA6B,EAAE,EAAE,CAAC,CAAC;QACrD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,kBAAkB,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAC7H,CAAC,CAAC;IACF,MAAM,GAAG,GAAG,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACzC,MAAM,EAAE,CAAC;IACT,OAAO;QACL,MAAM;QACN,OAAO;YACL,GAAG,EAAE,CAAC;YACN,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACxB,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CACnB,GAAa,EACb,MAAc,EACd,UAAsC,EACtC,CAAa,EACb,KAAiC;IAEjC,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;IACzB,MAAM,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,qBAAqB,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,CAAC,KAAK,EAAE,0BAA0B,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;IAChK,MAAM,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,0BAA0B,CAAC,CAAC;IACxD,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5D,MAAM,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC,mBAAmB,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,wBAAwB,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC;IACjJ,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,CAAC;IACjE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAClB,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,EAAE,EAAE,IAAI,EAAE,IAAA,oCAAgB,EAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SACnL,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,KAAK,CAAC,CAAC;IACf,MAAM,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,mBAAmB,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,2BAA2B,EAAE,EAAE,EAAE,CAAC,CAAC;IAC9H,IAAI,CAAC,SAAS,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC7C,MAAM,QAAQ,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,uBAAuB,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,CAAC;IACrF,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACtB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAClB,IAAI,IAAI;QAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,mBAAmB,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;IACnE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAClB,KAAK,CAAC,IAAA,oCAAgB,EAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACxF,OAAO,IAAI,CAAC;AACd,CAAC;AAmBD;;;;;GAKG;AACH,SAAgB,eAAe,CAAC,MAAc,EAAE,OAA2B;IACzE,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,IAAI,QAAQ,CAAC;IACzC,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;IAC3C,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC;IAChB,MAAM,OAAO,GAAG,sBAAsB,CAAC,EAAE,CAAC;IAC1C,MAAM,MAAM,GAAG,qBAAqB,CAAC,EAAE,CAAC;IACxC,MAAM,OAAO,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,sBAAsB,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE,yBAAyB,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;IACxH,MAAM,KAAK,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,oBAAoB,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE;QACrE,IAAI,EAAE,QAAQ;QACd,YAAY,EAAE,MAAM;QACpB,iBAAiB,EAAE,OAAO;QAC1B,kBAAkB,EAAE,MAAM;QAC1B,QAAQ,EAAE,IAAI;KACf,CAAC,CAAC;IACH,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,sBAAsB,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5K,IAAI,OAAO,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,KAAK,KAAK,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;QAC7E,MAAM,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,sBAAsB,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE,2BAA2B,EAAE,EAAE,EAAE,CAAC,CAAC;QAC9G,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC,qBAAqB,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAChI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACpB,CAAC;IACD,MAAM,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,mBAAmB,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,CAAC,KAAK,EAAE,2BAA2B,EAAE,EAAE,EAAE,CAAC,CAAC;IAC1K,IAAI,CAAC,SAAS,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC7C,MAAM,QAAQ,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,uBAAuB,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,uBAAuB,EAAE,EAAE,EAAE,CAAC,CAAC;IAClH,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACtB,MAAM,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,mBAAmB,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAC9G,MAAM,OAAO,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,sBAAsB,CAAC,CAAC;IACvD,MAAM,OAAO,GAAG,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,2BAA2B,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACjI,MAAM,MAAM,GAAG,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC,qBAAqB,EAAE,OAAO,EAAE,aAAa,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,0BAA0B,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,eAAe,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC;IACnM,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAChC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAClC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC,OAAO,CAAC,SAAS,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAEhD,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,MAAM,WAAW,GAAG,IAAA,oCAAgB,EAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE;QACxD,OAAO,GAAG,IAAI,CAAC;QACf,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC;QACxB,MAAM,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QACnC,MAAM,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;QAC9C,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,UAAU,EAAE,iBAAiB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IACH,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACnC,MAAM,OAAO,GAAG,IAAA,6BAAS,EAAC,KAAK,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;IACzD,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,MAAM,KAAK,GAAG,GAAG,EAAE;QACjB,IAAI,MAAM;YAAE,OAAO;QACnB,MAAM,GAAG,IAAI,CAAC;QACd,WAAW,EAAE,CAAC;QACd,OAAO,EAAE,CAAC;QACV,UAAU,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAClC,OAAO,CAAC,MAAM,EAAE,CAAC;IACnB,CAAC,CAAC;IACF,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;QACpC,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,KAAK,EAAE,CAAC;QACR,OAAO,CAAC,QAAQ,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;QACrC,KAAK,EAAE,CAAC;QACR,OAAO,CAAC,SAAS,EAAE,CAAC;IACtB,CAAC,CAAC,CAAC;IACH,OAAO;QACL,KAAK;QACL,IAAI,aAAa;YACf,OAAO,OAAO,CAAC;QACjB,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAgB,iBAAiB,CAAC,UAAsC,EAAE,OAAqE;IAC7I,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,IAAI,GAAG,GAAG,EAAE;YAChB,MAAM,MAAM,GAAG,UAAU,CAAC,aAAa,EAAE,CAAC;YAC1C,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,OAAO,CAAC,IAAI,CAAC,CAAC;gBACd,OAAO;YACT,CAAC;YACD,eAAe,CAAC,MAAM,EAAE;gBACtB,GAAG,OAAO;gBACV,UAAU;gBACV,QAAQ,EAAE,GAAG,EAAE;oBACb,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBACpC,IAAI,EAAE,CAAC;gBACT,CAAC;gBACD,SAAS,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;aAChC,CAAC,CAAC;QACL,CAAC,CAAC;QACF,IAAI,EAAE,CAAC;IACT,CAAC,CAAC,CAAC;AACL,CAAC;AAED,kFAAkF;AAClF,SAAgB,qBAAqB,CAAC,UAAsC,EAAE,CAAU,EAAE,MAAyD;IACjJ,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC;IACrC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC,iBAAiB,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAE,CAAC,KAAK,EAAE,CAAC,CAAC;IACrF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,CAAC,CAAC,wBAAwB,CAAC,CAAC;IAC3D,OAAO,MAAM,IAAI,IAAA,8CAA0B,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACzF,CAAC;AAGD;;;;GAIG;AACI,KAAK,UAAU,eAAe,CACnC,UAAsC,EACtC,OAAiD;IAEjD,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACrE,MAAM,EAAE,GAAG,MAAM,iBAAiB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACxD,IAAI,EAAE;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC5C,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,IAAI,IAAI,CAAC;IACxH,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;AACjC,CAAC;AAgBD;;;;;GAKG;AACH,SAAgB,qBAAqB,CAAC,IAAiB,EAAE,UAAsC,EAAE,OAAgC;IAC/H,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,aAAa,CAAC;IACnD,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAC/B,IAAI,IAAI,GAAG,KAAK,CAAC;IACjB,IAAI,KAAK,GAAG,IAAI,CAAC;IACjB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;IACtB,IAAI,CAAC,YAAY,CAAC,wBAAwB,EAAE,EAAE,CAAC,CAAC;IAChD,MAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC;IAC1E,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IACzF,MAAM,OAAO,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC/B,MAAM,SAAS,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC/B,MAAM,cAAc,GAAG,kBAAkB,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IACxE,MAAM,WAAW,GAAG,oBAAoB,CAAC,SAAS,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IACzE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACrB,IAAI,MAAM,GAA6B,IAAI,CAAC;IAC5C,MAAM,IAAI,GAAG,GAAG,EAAE;QAChB,IAAI,MAAM;YAAE,MAAM,CAAC,QAAQ,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,IAAI,UAAU,CAAC,aAAa,EAAE,KAAK,IAAI,CAAC;IACvG,CAAC,CAAC;IACF,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,GAAG,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC,cAAc,EAAE,OAAO,EAAE,aAAa,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,4BAA4B,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC;QACjJ,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC7E,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACvB,MAAM,GAAG,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACvC,IAAI,EAAE,CAAC;IACP,MAAM,EAAE,GAAiB,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC;IACjG,UAAU,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAC/B,MAAM,IAAI,GAAG,GAAG,EAAE;QAChB,uEAAuE;QACvE,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE;YAAE,OAAO;QAC7E,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACxB,KAAK,iBAAiB,CAAC,UAAU,EAAE,EAAE,GAAG,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE;YAC7E,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAC3B,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC3C,IAAI,CAAC,OAAO;gBAAE,OAAO;YACrB,IAAI,CAAC,EAAE,EAAE,CAAC;gBACR,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACzG,IAAI,QAAQ;oBAAE,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YAC5C,CAAC;iBAAM,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;gBAC9B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC;YACvC,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IACF,IAAI,EAAE,CAAC;IACP,OAAO;QACL,MAAM;YACJ,cAAc,CAAC,MAAM,EAAE,CAAC;YACxB,WAAW,CAAC,MAAM,EAAE,CAAC;YACrB,IAAI,EAAE,CAAC;QACT,CAAC;QACD,OAAO,CAAC,IAAI;YACV,IAAI,GAAG,IAAI,CAAC;YACZ,IAAI,EAAE,CAAC;QACT,CAAC;QACD,OAAO;YACL,KAAK,GAAG,KAAK,CAAC;YACd,IAAI,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,EAAE;gBAAE,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACrE,GAAG,EAAE,CAAC;YACN,cAAc,CAAC,OAAO,EAAE,CAAC;YACzB,WAAW,CAAC,OAAO,EAAE,CAAC;YACtB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACxB,CAAC;KACF,CAAC;AACJ,CAAC"}