@jetio/validator 1.0.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 (57) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1362 -0
  3. package/dist/cli.js +219 -0
  4. package/dist/compileSchema.d.ts +148 -0
  5. package/dist/compileSchema.js +2199 -0
  6. package/dist/compileSchema.js.map +1 -0
  7. package/dist/formats.d.ts +41 -0
  8. package/dist/formats.js +166 -0
  9. package/dist/formats.js.map +1 -0
  10. package/dist/index.cjs.js +6167 -0
  11. package/dist/index.d.ts +9 -0
  12. package/dist/index.esm.js +6148 -0
  13. package/dist/index.js +28 -0
  14. package/dist/index.js.map +1 -0
  15. package/dist/jet-validator.d.ts +88 -0
  16. package/dist/jet-validator.js +983 -0
  17. package/dist/jet-validator.js.map +1 -0
  18. package/dist/resolver.d.ts +348 -0
  19. package/dist/resolver.js +2459 -0
  20. package/dist/resolver.js.map +1 -0
  21. package/dist/scripts/load-metaschemas.d.ts +1 -0
  22. package/dist/scripts/metaschema-loader.d.ts +2 -0
  23. package/dist/src/compileSchema.d.ts +148 -0
  24. package/dist/src/formats.d.ts +41 -0
  25. package/dist/src/index.d.ts +9 -0
  26. package/dist/src/jet-validator.d.ts +88 -0
  27. package/dist/src/resolver.d.ts +348 -0
  28. package/dist/src/types/format.d.ts +7 -0
  29. package/dist/src/types/keywords.d.ts +78 -0
  30. package/dist/src/types/schema.d.ts +123 -0
  31. package/dist/src/types/standalone.d.ts +4 -0
  32. package/dist/src/types/validation.d.ts +49 -0
  33. package/dist/src/utilities/index.d.ts +11 -0
  34. package/dist/src/utilities/schema.d.ts +10 -0
  35. package/dist/types/format.d.ts +7 -0
  36. package/dist/types/format.js +3 -0
  37. package/dist/types/format.js.map +1 -0
  38. package/dist/types/keywords.d.ts +78 -0
  39. package/dist/types/keywords.js +4 -0
  40. package/dist/types/keywords.js.map +1 -0
  41. package/dist/types/schema.d.ts +123 -0
  42. package/dist/types/schema.js +3 -0
  43. package/dist/types/schema.js.map +1 -0
  44. package/dist/types/standalone.d.ts +4 -0
  45. package/dist/types/standalone.js +3 -0
  46. package/dist/types/standalone.js.map +1 -0
  47. package/dist/types/validation.d.ts +49 -0
  48. package/dist/types/validation.js +3 -0
  49. package/dist/types/validation.js.map +1 -0
  50. package/dist/utilities/index.d.ts +11 -0
  51. package/dist/utilities/index.js +146 -0
  52. package/dist/utilities/index.js.map +1 -0
  53. package/dist/utilities/schema.d.ts +10 -0
  54. package/dist/utilities/schema.js +232 -0
  55. package/dist/utilities/schema.js.map +1 -0
  56. package/dist/validator.umd.js +6196 -0
  57. package/package.json +79 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jet-validator.js","sourceRoot":"","sources":["../src/jet-validator.ts"],"names":[],"mappings":";;;AAAA,mDAA2C;AAC3C,uCAA2E;AAC3E,yCAA4C;AAiB5C,2CAAoE;AACpE,+CAAoD;AAEpD,MAAa,YAAY;IAevB,YAAY,UAA4B,EAAE;QAdlC,YAAO,GAAqC,EAAE,CAAC;QAC/C,gBAAW,GAAqC,EAAE,CAAC;QACnD,mBAAc,GAAmC,IAAI,GAAG,EAAE,CAAC;QAE3D,cAAS,GAAY,KAAK,CAAC;QAG3B,YAAO,GAAW,CAAC,CAAC;QACpB,YAAO,GAA2B;YACxC,UAAU,EAAE,yCAAyC;YACrD,UAAU,EAAE,yCAAyC;YACrD,eAAe,EAAE,8CAA8C;YAC/D,eAAe,EAAE,8CAA8C;SAChE,CAAC;QAEA,IAAI,CAAC,OAAO,GAAG;YACb,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,KAAK;YACrC,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,IAAI;YACtC,kBAAkB,EAAE,OAAO,CAAC,kBAAkB,IAAI,EAAE;YACpD,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,KAAK;YACjC,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,KAAK;YAC7B,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,KAAK;YACzC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,IAAI;YAC9B,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,EAAE;YACpC,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,cAAc;YACtC,eAAe,EAAE,OAAO,CAAC,eAAe,IAAI,IAAI;YAChD,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,MAAM;YACxC,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,GAAG;YACjC,YAAY,EAAE,OAAO,CAAC,YAAY,IAAI,GAAG;YACzC,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE;YAC9B,UAAU,EACR,OAAO,CAAC,UAAU;gBAClB,CAAC,GAAG,EAAE;oBACJ,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;gBAC7C,CAAC,CAAC;YACJ,mBAAmB,EAAE,OAAO,CAAC,mBAAmB,IAAI,KAAK;YACzD,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,KAAK;YAC7B,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,IAAI,KAAK;YACnD,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,KAAK;YACzC,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,KAAK;YACzC,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,IAAI;YAC5B,YAAY,EAAE,OAAO,CAAC,YAAY,IAAI,KAAK;YAC3C,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,KAAK;YAC7C,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,KAAK;YAC/C,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,KAAK;YACzC,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,KAAK;YAC7B,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,KAAK;YAC/C,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,IAAI;YAC5C,YAAY,EAAE,OAAO,CAAC,YAAY,IAAI,KAAK;SAC5C,CAAC;QACF,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,KAAK,KAAK,EAAE,CAAC;YACtC,IAAI,CAAC,gBAAgB;gBACnB,IAAI,CAAC,OAAO,CAAC,UAAU,KAAK,MAAM;oBAChC,CAAC,CAAC,EAAE,GAAG,gCAAsB,EAAE;oBAC/B,CAAC,CAAC,EAAE,GAAG,gCAAsB,EAAE,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;QAC7B,CAAC;QACD,IAAI,CAAC,gBAAgB,GAAG,IAAI,GAAG,EAAE,CAAC;IACpC,CAAC;IAED,SAAS;IACT,SAAS,CACP,GAAW,EACX,SAA2B,EAC3B,OAAgC;QAEhC,MAAM,cAAc,GAClB,OAAO,EAAE,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC;QACxD,IAAI,CAAC,cAAc,IAAI,GAAG,IAAI,IAAI,CAAC,gBAAgB;YACjD,MAAM,KAAK,CACT,WAAW,GAAG,+CAA+C,GAAG,8BAA8B,CAC/F,CAAC;QACJ,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;IACzC,CAAC;IAED,YAAY,CAAC,GAAW;QACtB,IAAI,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,WAAW,GAAG,sBAAsB,CAAC,CAAC;QACxD,CAAC;QACD,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;IAED,SAAS,CAAC,MAAc;QACtB,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IAED,UAAU,CAAC,KAAa,EAAE,MAAc;QACtC,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAChD,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC;QAE5B,IAAI,SAAS,YAAY,MAAM,EAAE,CAAC;YAChC,OAAO,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;aAAM,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE,CAAC;YAC3C,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;aAAM,CAAC;YACN,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;YACpC,IAAI,QAAQ,YAAY,MAAM,EAAE,CAAC;gBAC/B,OAAO,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC9B,CAAC;iBAAM,CAAC;gBACN,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;IACH,CAAC;IAED,kBAAkB,CAAC,GAAW;QAC5B,OAAO,GAAG,IAAI,IAAI,CAAC,gBAAgB,CAAC;IACtC,CAAC;IAED,oBAAoB;QAClB,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC5C,CAAC;IAED,cAAc,CAAC,KAAa,EAAE,MAAc;QAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC/C,OAAO,OAAO;YACZ,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE;YACjB,CAAC,CAAC;gBACE,KAAK,EAAE,KAAK;gBACZ,MAAM,EAAE,EAAE,OAAO,EAAE,8BAA8B,MAAM,GAAG,EAAE;aAC7D,CAAC;IACR,CAAC;IAED,aAAa;QACX,OAAO,EAAE,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;IACtC,CAAC;IACD,YAAY;IAEZ,SAAS;IACT,UAAU,CACR,UAIyB;QAEzB,IAAI,uBAAc,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3C,MAAM,IAAI,KAAK,CACb,YAAY,UAAU,CAAC,OAAO,qDAAqD,CACpF,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,yBAAyB,CAAC,UAAU,CAAC,CAAC;QAC3C,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QACxD,IAAI,OAAO,IAAI,UAAU,EAAE,CAAC;YAC1B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACxB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,aAAa,CAAC,OAAe;QAC3B,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACpC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE,CAAC;YAC/C,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC;gBACnB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,MAAM;YACR,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gBAAgB;QACd,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,UAAU,CACR,OAAe;QAOf,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;IAEO,yBAAyB,CAC/B,GAIyB;QAEzB,MAAM,UAAU,GAAU,EAAE,CAAC;QAC7B,IAAI,OAAO,IAAI,GAAG,IAAK,GAAW,CAAC,KAAK;YACtC,UAAU,CAAC,IAAI,CAAE,GAAW,CAAC,KAAK,CAAC,CAAC;QACtC,IAAI,SAAS,IAAI,GAAG,IAAK,GAAW,CAAC,OAAO;YAC1C,UAAU,CAAC,IAAI,CAAE,GAAW,CAAC,OAAO,CAAC,CAAC;QACxC,IAAI,UAAU,IAAI,GAAG,IAAK,GAAW,CAAC,QAAQ;YAC5C,UAAU,CAAC,IAAI,CAAE,GAAW,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,MAAM,IAAI,GAAG,IAAK,GAAW,CAAC,IAAI;YAAE,UAAU,CAAC,IAAI,CAAE,GAAW,CAAC,IAAI,CAAC,CAAC;QAE3E,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CACb,YAAY,GAAG,CAAC,OAAO,gEAAgE,CACxF,CAAC;QACJ,CAAC;QAED,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CACb,YAAY,GAAG,CAAC,OAAO,2DAA2D,CACnF,CAAC;QACJ,CAAC;QAED,IAAK,GAAW,CAAC,UAAU,EAAE,CAAC;YAC5B,MAAM,UAAU,GAAG;gBACjB,QAAQ;gBACR,QAAQ;gBACR,SAAS;gBACT,OAAO;gBACP,QAAQ;gBACR,MAAM;aACP,CAAC;YACF,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAE,GAAW,CAAC,UAAU,CAAC;gBAClD,CAAC,CAAE,GAAW,CAAC,UAAU;gBACzB,CAAC,CAAC,CAAE,GAAW,CAAC,UAAU,CAAC,CAAC;YAE9B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC/B,MAAM,IAAI,KAAK,CACb,uBAAuB,IAAI,kBAAkB,GAAG,CAAC,OAAO,GAAG,CAC5D,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAK,GAAW,CAAC,IAAI,EAAE,CAAC;YACtB,MAAM,UAAU,GAAG;gBACjB,QAAQ;gBACR,QAAQ;gBACR,SAAS;gBACT,SAAS;gBACT,OAAO;gBACP,QAAQ;gBACR,MAAM;aACP,CAAC;YACF,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAE,GAAW,CAAC,IAAI,CAAC;gBAC5C,CAAC,CAAE,GAAW,CAAC,IAAI;gBACnB,CAAC,CAAC,CAAE,GAAW,CAAC,IAAI,CAAC,CAAC;YAExB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC/B,MAAM,IAAI,KAAK,CACb,iBAAiB,IAAI,kBAAkB,GAAG,CAAC,OAAO,GAAG,CACtD,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAK,GAAW,CAAC,UAAU,EAAE,CAAC;YAC5B,IACE,OAAQ,GAAW,CAAC,UAAU,KAAK,QAAQ;gBAC1C,GAAW,CAAC,UAAU,KAAK,IAAI,EAChC,CAAC;gBACD,MAAM,IAAI,KAAK,CACb,2BAA2B,GAAG,CAAC,OAAO,qBAAqB,CAC5D,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,cAAc,CAAC,GAAW;QACxB,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACtC,CAAC;IAED,gBAAgB;QACd,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC1C,CAAC;IAED,aAAa;QACX,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED,YAAY;IAEZ,SAAS;IACT,SAAS,CAAC,MAAwB,EAAE,EAAW;QAC7C,MAAM,GAAG,GAAG,EAAE,IAAI,MAAM,CAAC,GAAG,CAAC;QAC7B,IAAI,CAAC,GAAG;YACN,MAAM,KAAK,CAAC,yDAAyD,CAAC,CAAC;QACzE,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;QACjB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IAC9C,CAAC;IAED,SAAS,CAAC,GAAW;QACnB,OAAO,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,iBAAiB,CAAC,GAAW,EAAE,MAAyB;QACtD,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;YACpC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;QACjD,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,CAAC,UAAU,GAAG,yBAAyB,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAED,KAAK,CAAC,sBAAsB,CAC1B,GAAW,EACX,MAAyB;QAEzB,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;YACpC,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;QAC5D,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,CAAC,UAAU,GAAG,yBAAyB,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAED,aAAa,CAAC,GAAW;QACvB,OAAO,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC;IAC7B,CAAC;IAED,eAAe;QACb,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IAED,YAAY,CAAC,OAAkC;QAC7C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;YAClB,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;gBACvB,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;YAChC,CAAC;YACD,OAAO;QACT,CAAC;QACD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,IAAI,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC/B,MAAM,IAAI,KAAK,CAAC,WAAW,OAAO,sBAAsB,CAAC,CAAC;YAC5D,CAAC;YACD,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC7B,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;gBACvB,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACxC,CAAC;YACD,OAAO;QACT,CAAC;QACD,IAAI,OAAO,YAAY,MAAM,EAAE,CAAC;YAC9B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACvC,IAAI,OAAO,GAAG,CAAC,CAAC;YAEhB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;gBACvB,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;oBACtB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;oBACzB,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;wBACvB,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBACpC,CAAC;oBACD,OAAO,EAAE,CAAC;gBACZ,CAAC;YACH,CAAC;YAED,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;gBAClB,OAAO,CAAC,IAAI,CAAC,+BAA+B,OAAO,EAAE,CAAC,CAAC;YACzD,CAAC;YACD,OAAO;QACT,CAAC;QACD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACvC,IAAI,KAAK,GAAG,KAAK,CAAC;YAElB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;gBACvB,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,OAAO,EAAE,CAAC;oBAClC,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;oBACzB,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;wBACvB,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBACpC,CAAC;oBACD,KAAK,GAAG,IAAI,CAAC;oBACb,MAAM;gBACR,CAAC;YACH,CAAC;YAED,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;YACzD,CAAC;YACD,OAAO;QACT,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAC3D,CAAC;IAED,YAAY;QACV,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;IACpB,CAAC;IAED,aAAa;QACX,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IACD,YAAY;IAEZ,SAAS;IACT,QAAQ,CACN,MAAiC,EACjC,IAAS,EACT,MAAyB;QAEzB,IAAI,WAAW,CAAC;QAChB,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAO,MAAM,KAAK,SAAS,EAAE,CAAC;YAC9D,WAAW,GAAG,MAAM,CAAC;QACvB,CAAC;aAAM,CAAC;YACN,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACrC,CAAC;QACD,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,IAAI,SAAS,CAAC;YACd,IAAI,OAAO,WAAW,KAAK,SAAS,EAAE,CAAC;gBACrC,MAAM,IAAI,GACR,OAAO,MAAM,KAAK,QAAQ;oBACxB,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC;oBACnC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CACtB,WAAgC,CAAC,GAAG,IAAI,WAAW,CACrD,CAAC;gBACR,IAAI,IAAI;oBAAE,SAAS,GAAG,IAAI,CAAC;YAC7B,CAAC;YACD,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;YAChD,CAAC;YACD,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;YAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC;QAC7C,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,CAAC,UAAU,MAAM,6BAA6B,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,MAAiC,EACjC,IAAS,EACT,MAAyB;QAEzB,IAAI,WAAW,CAAC;QAChB,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAO,MAAM,KAAK,SAAS,EAAE,CAAC;YAC9D,WAAW,GAAG,MAAM,CAAC;QACvB,CAAC;aAAM,CAAC;YACN,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACrC,CAAC;QACD,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,IAAI,SAAS,CAAC;YACd,IAAI,OAAO,WAAW,KAAK,SAAS,EAAE,CAAC;gBACrC,MAAM,IAAI,GACR,OAAO,MAAM,KAAK,QAAQ;oBACxB,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC;oBACnC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CACtB,WAAgC,CAAC,GAAG,IAAI,WAAW,CACrD,CAAC;gBACR,IAAI,IAAI;oBAAE,SAAS,GAAG,IAAI,CAAC;YAC7B,CAAC;YACD,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;YAC3D,CAAC;YACD,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC;YACpC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC;QAC7C,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,CAAC,UAAU,MAAM,6BAA6B,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAED,YAAY;IAEZ,SAAS;IACT,aAAa,CACX,OAAgB,EAChB,OAA0B;QAE1B,IAAI,YAAY,GAAuB,OAAO,EAAE,UAAU,CAAC;QAE3D,IAAI,CAAC,YAAY,IAAI,OAAO,EAAE,CAAC;YAC7B,YAAY,GAAG,OAAO,CAAC;QACzB,CAAC;QAED,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,YAAY;gBACV,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,yCAAyC,CAAC;QACzE,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,YAAY,CAAC;QAC3D,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC3C,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,IAAI,OAAO,EAAE,YAAY,EAAE,CAAC;gBAC1B,MAAM,IAAI,KAAK,CACb,gBAAgB,YAAY,oBAAoB;oBAC9C,gFAAgF;oBAChF,oEAAoE,CACvE,CAAC;YACJ,CAAC;QACH,CAAC;QACD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC;IACtC,CAAC;IAED,kBAAkB,CAChB,MAAwB,EACxB,OAA0B;QAE1B,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACnE,IAAI,CAAC,UAAU;YACb,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,sBAAsB,EAAE,CAAC,EAAE,CAAC;QACzE,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;YACzC,GAAG,OAAO;YACV,WAAW,EAAE,IAAI;YACjB,cAAc,EAAE,KAAK;SACtB,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QAEjC,IAAI,CAAC,MAAM,IAAI,OAAO,EAAE,YAAY,EAAE,CAAC;YACrC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAC9B,MAAM,KAAK,EAAE,CAAC;QAChB,CAAC;QACD,IAAI,CAAC,MAAM;YAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC;QAE3D,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,mBAAmB,CACvB,MAAwB,EACxB,OAA0B;QAE1B,IAAI,UAAU,CAAC;QACf,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,aAAa,CAC5D,MAAM,CAAC,OAAO,EACd,OAAO,CACR,CAAC;QACF,IAAI,OAAO,EAAE,CAAC;YACZ,UAAU,GAAG,OAAO,CAAC;QACvB,CAAC;aAAM,CAAC;YACN,UAAU,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QAC3D,CAAC;QACD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE;YACpD,GAAG,OAAO;YACV,cAAc,EAAE,KAAK;YACrB,KAAK,EAAE,IAAI;SACZ,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,CAAC;QAEvC,IAAI,CAAC,MAAM,IAAI,OAAO,EAAE,YAAY,EAAE,CAAC;YACrC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAC9B,MAAM,KAAK,EAAE,CAAC;QAChB,CAAC;QACD,IAAI,CAAC,MAAM;YAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC;QAC3D,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC;IACrD,CAAC;IAED,aAAa,CAAC,MAAwB,EAAE,GAAY;QAClD,IAAI,GAAG,GAAG,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC;QAE5B,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;QAClE,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC;QAC3C,IAAI,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YACrC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QACxD,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IACD,YAAY;IACZ,eAAe;QACb,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACvB,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAChC,CAAC;IACH,CAAC;IAEO,eAAe,CACrB,cAA0C,EAC1C,UAAsC,EACtC,QAAe,EACf,UAAuB,EACvB,WAAwB,EACxB,MAAwB,EACxB,cAMC;QAED,MAAM,gBAAgB,GAAG,cAAc,CAAC,mBAAmB,CAAC;QAC5D,MAAM,eAAe,GAAG,cAAc,CAAC,wBAAwB,CAAC;QAChE,MAAM,OAAO,GAAG;YACd,GAAG,MAAM;SACV,CAAC;QACF,IAAI,OAAO,cAAc,KAAK,SAAS;YAAE,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC;QACnE,MAAM,QAAQ,GAAG,IAAI,wBAAQ,CAC3B,QAAQ,EACR,UAAU,EACV,OAAO,EACP,IAAI,EACJ,WAAW,EACX,cAAc,EACd,KAAK,CACN,CAAC;QACF,IAAI,MAAM,CAAC;QACX,IAAI,cAAc,CAAC,gBAAgB,EAAE,CAAC;YACpC,MAAM,GAAG,QAAQ,CAAC,aAAa,CAC7B,cAAc,EACd;gBACE,MAAM,EAAE,iBAAiB;gBACzB,IAAI,EAAE,cAAc;gBACpB,KAAK,EAAE,EAAE;aACV,EACD;gBACE,8BAA8B,EAAE,eAAe;gBAC/C,wBAAwB,EAAE,eAAe;oBACvC,CAAC,CAAC,qBAAqB;oBACvB,CAAC,CAAC,SAAS;gBACb,yBAAyB,EAAE,gBAAgB;gBAC3C,wBAAwB,EAAE,gBAAgB;oBACxC,CAAC,CAAC,gBAAgB;oBAClB,CAAC,CAAC,SAAS;gBACb,WAAW,EAAE,IAAI;aAClB,EACD,UAAU,CACX,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,QAAQ,CAAC,aAAa,CAC7B,cAAc,EACd,SAAS,EACT,SAAS,EACT,UAAU,CACX,CAAC;QACJ,CAAC;QACD,MAAM,QAAQ,GAAG,QAAQ,CAAC,mBAAmB,EAAE,CAAC;QAChD,MAAM,gBAAgB,GAAwB,EAAE,CAAC;QACjD,MAAM,cAAc,GAAG,IAAI,GAAG,CAG5B,QAAQ,CAAC,gBAAgB,CAAC,CAAC;QAC7B,KAAK,MAAM,UAAU,IAAI,QAAQ,CAAC,gBAAgB,EAAE,CAAC;YACnD,MAAM,QAAQ,GACZ,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CACnC,EAAE,QAAQ,CAAC;YACZ,IAAI,QAAQ;gBAAE,cAAc,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QACzD,CAAC;QAED,IAAI,OAAO,cAAc,KAAK,SAAS,EAAE,CAAC;YACxC,IAAI,UAAU,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBACxB,KAAK,MAAM,YAAY,IAAI,UAAU,EAAE,CAAC;oBACtC,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;oBACtD,IAAI,SAAS,EAAE,CAAC;wBACd,IACE,OAAO,SAAS,KAAK,UAAU;4BAC/B,SAAS,YAAY,MAAM,EAC3B,CAAC;4BACD,gBAAgB,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC;wBAC7C,CAAC;6BAAM,CAAC;4BACN,gBAAgB,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC,QAAQ,CAAC;wBACtD,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QACD,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QACjD,IAAI,mBAAmB,GAAG,mBAAmB,CAAC;QAC9C,IAAI,cAAc,CAAC,gBAAgB,EAAE,CAAC;YACpC,IAAI,gBAAgB,IAAI,eAAe,EAAE,CAAC;gBACxC,IAAI,eAAe;oBACjB,mBAAmB,GAAG,mBAAmB,GAAG,sBAAsB,CAAC;gBACrE,IAAI,gBAAgB;oBAClB,mBAAmB,GAAG,mBAAmB,GAAG,iBAAiB,CAAC;YAClE,CAAC;QACH,CAAC;QACD,IAAI,cAAc,CAAC,gBAAgB;YACjC,mBAAmB,GAAG,mBAAmB,GAAG,OAAO,CAAC;QACtD,mBAAmB,GAAG,mBAAmB,GAAG,GAAG,CAAC;QAChD,MAAM,WAAW,GAAG;MAClB,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;MAClC,WAAW,YAAY,mBAAmB,IAC1C,cAAc,CAAC,gBAAgB;YAC7B,CAAC,CAAC,gDAAgD;YAClD,CAAC,CAAC,EACN,GAAG,MAAM,GACP,OAAO,CAAC,SAAS;YACf,CAAC,CAAC,2DAA2D;YAC7D,CAAC,CAAC,aACN;KACC,CAAC;QACF,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC3B,CAAC;QAED,MAAM,WAAW,GAAa,EAAE,CAAC;QACjC,MAAM,SAAS,GAAa,EAAE,CAAC;QAE/B,IAAI,QAAQ,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YACjC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC;gBACzD,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACxB,SAAS,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;QACD,OAAO,IAAI,QAAQ,CACjB,kBAAkB,EAClB,WAAW,EACX,oBAAoB,EACpB,gBAAgB,EAChB,QAAQ,EACR,GAAG,WAAW,EACd,WAAW,CACZ,CACC,gBAAgB,EAChB,qBAAS,EACT,8BAAkB,EAClB,cAAc,EACd,kBAAM,EACN,GAAG,SAAS,CACe,CAAC;IAChC,CAAC;IAED,OAAO,CACL,OAAyB,EACzB,MAAyB;QAEzB,MAAM,MAAM,GACV,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAE,OAA4B,CAAC;QAEzE,MAAM,WAAW,GAAG;YAClB,GAAG,IAAI,CAAC,OAAO;YACf,GAAG,MAAM;SACV,CAAC;QAEF,IACE,OAAO,MAAM,KAAK,QAAQ;YAC1B,WAAW,CAAC,cAAc;YAC1B,CAAC,WAAW,CAAC,UAAU,IAAI,MAAM,CAAC,OAAO,CAAC,EAC1C,CAAC;YACD,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE;gBAC7C,UAAU,EAAE,WAAW,EAAE,UAAU;aACpC,CAAC,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;gBAClB,MAAM,SAAS,GAAG,CAAC,IAAS,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;gBAC7C,SAAiB,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC;gBAChD,OAAO,SAAqC,CAAC;YAC/C,CAAC;QACH,CAAC;QACD,IAAI,WAAW,CAAC,KAAK,IAAI,OAAO,MAAM,KAAK,SAAS,EAAE,CAAC;YACrD,IACE,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,EAAE,GAAI,CAAC;gBACvC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,EACjC,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,EAAE,GAAI,CAAC;oBAC7C,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAE,CAAC;YACxC,CAAC;QACH,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,yBAAc,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QACvD,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CACpC,QAAQ,CAAC,MAAM,EACf,MAAM,EACN,QAAQ,CAAC,QAAQ,EACjB,QAAQ,CAAC,UAAU,EACnB,QAAQ,CAAC,QAAQ,EACjB,WAAW,EACX,QAAQ,CAAC,cAAc,CACxB,CAAC;QAEF,IAAI,WAAW,CAAC,KAAK,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACvE,MAAM,KAAK,GAAG,MAAuC,CAAC;YACtD,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,EAAE,IAAI,MAAM,EAAE,SAAS,CAAC,CAAC;QACxE,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,OAAmC,EACnC,MAAyB;QAEzB,MAAM,MAAM,GACV,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAE,OAA4B,CAAC;QACzE,MAAM,WAAW,GAAG;YAClB,GAAG,IAAI,CAAC,OAAO;YACf,GAAG,MAAM;SACV,CAAC;QACF,IACE,OAAO,MAAM,KAAK,QAAQ;YAC1B,WAAW,CAAC,cAAc;YAC1B,CAAC,WAAW,CAAC,UAAU,IAAI,MAAM,CAAC,OAAO,CAAC,EAC1C,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE;gBACpD,UAAU,EAAE,WAAW,EAAE,UAAU;aACpC,CAAC,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;gBAClB,MAAM,SAAS,GAAG,CAAC,IAAS,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;gBAC7C,SAAiB,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC;gBAChD,OAAO,SAAqC,CAAC;YAC/C,CAAC;QACH,CAAC;QAED,IAAI,WAAW,CAAC,KAAK,IAAI,OAAO,MAAM,KAAK,SAAS,EAAE,CAAC;YACrD,IACE,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,EAAE,GAAI,CAAC;gBACvC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,EACjC,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,EAAE,GAAI,CAAC;oBAC7C,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAE,CAAC;YACxC,CAAC;QACH,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,yBAAc,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QACvD,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,YAAY,CAC1C,MAAM,EACN,WAAW,CAAC,UAAU,CACvB,CAAC;QACF,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CACpC,QAAQ,CAAC,MAAM,EACf,MAAM,EACN,QAAQ,CAAC,QAAQ,EACjB,QAAQ,CAAC,UAAU,EACnB,QAAQ,CAAC,QAAQ,EACjB,WAAW,EACX,QAAQ,CAAC,cAAc,CACxB,CAAC;QACF,IAAI,WAAW,CAAC,KAAK,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YACpD,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAC/C,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,SAAS,CAAC,MAAW,EAAE,MAAM,GAAG,CAAC;QAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,qBAAqB;QAEzD,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1B,wEAAwE;YACxE,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;QACvD,CAAC;aAAM,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAChD,wCAAwC;YACxC,OAAO,CAAC,GAAG,CACT,GAAG,MAAM,wBAAwB,MAAM,CAAC,OAAO,IAAI,eAAe,EAAE,CACrE,CAAC;YACF,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACpB,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,mBAAmB,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC7D,CAAC;YACD,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;gBACtB,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,qBAAqB,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;YACjE,CAAC;YACD,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;gBAChB,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,cAAc,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YACpD,CAAC;YACD,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACpB,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,kBAAkB,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC5D,CAAC;YACD,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;gBACrB,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,kBAAkB,CAAC,CAAC;gBACzC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,mCAAmC;YACnF,CAAC;QACH,CAAC;IACH,CAAC;IAED,gBAAgB,CAAC,QAAgB;QAC/B,IAAI,CAAC,QAAQ,IAAI,QAAQ,KAAK,GAAG;YAAE,OAAO,EAAE,CAAC;QAC7C,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACrD,OAAO,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACvC,CAAC;IAED,gBAAgB,CAAC,QAAgB;QAC/B,IAAI,CAAC,QAAQ,IAAI,QAAQ,KAAK,GAAG;YAAE,OAAO,EAAE,CAAC;QAC7C,OAAO,QAAQ;aACZ,KAAK,CAAC,CAAC,CAAC;aACR,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC;aAC3B,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACzB,CAAC;IACD,cAAc,CAAC,MAAa;QAC1B,MAAM,OAAO,GAA6B,EAAE,CAAC;QAE7C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,IAAI,GAAG,CAAC;YACpC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;gBAAE,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;YACzC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACrC,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,UAAU,CACR,MAAa,EACb,OAAkD;QAElD,MAAM,GAAG,GAAG,OAAO,EAAE,SAAS,IAAI,IAAI,CAAC;QACvC,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,MAAM,CAAC;QAE3C,OAAO,MAAM;aACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACT,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,IAAI,GAAG,CAAC;YAC/B,MAAM,QAAQ,GACZ,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;YACnE,OAAO,GAAG,QAAQ,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;QACrC,CAAC,CAAC;aACD,IAAI,CAAC,GAAG,CAAC,CAAC;IACf,CAAC;IAED,kBAAkB,CAChB,MAAc,EACd,OAA0B;QAO1B,MAAM,IAAI,GAAa,EAAE,CAAC;QAC1B,MAAM,aAAa,GAAa,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC;QAC/C,IAAI,qBAAqB,CAAC;QAC1B,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;YACvB,qBAAqB,GAAG,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC;QACpD,CAAC;aAAM,CAAC;YACN,qBAAqB,GAAG,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QACtD,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,yBAAc,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAClD,QAAQ,CAAC,gBAAgB,GAAG,qBAAqB,CAAC;QAClD,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC9C,MAAM,gBAAgB,GAAG,QAAQ,CAAC,cAAc,CAAC,mBAAmB,CAAC;QACrE,MAAM,eAAe,GAAG,QAAQ,CAAC,cAAc,CAAC,wBAAwB,CAAC;QACzE,MAAM,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC;QAEnD,MAAM,QAAQ,GAAG,IAAI,wBAAQ,CAC3B,QAAQ,CAAC,QAAQ,EACjB,MAAM,EACN,EAAE,GAAG,MAAM,EAAE,EACb,IAAI,EACJ,QAAQ,CAAC,QAAQ,EACjB,QAAQ,CAAC,cAAc,CACxB,CAAC;QACF,QAAQ,CAAC,gBAAgB,GAAG,qBAAqB,CAAC;QAClD,IAAI,MAAM,CAAC;QACX,IAAI,QAAQ,CAAC,cAAc,CAAC,gBAAgB,EAAE,CAAC;YAC7C,MAAM,GAAG,QAAQ,CAAC,aAAa,CAC7B,QAAQ,CAAC,MAAM,EACf;gBACE,MAAM,EAAE,iBAAiB;gBACzB,IAAI,EAAE,cAAc;gBACpB,KAAK,EAAE,EAAE;aACV,EACD;gBACE,8BAA8B,EAAE,eAAe;gBAC/C,wBAAwB,EAAE,eAAe;oBACvC,CAAC,CAAC,qBAAqB;oBACvB,CAAC,CAAC,SAAS;gBACb,yBAAyB,EAAE,gBAAgB;gBAC3C,wBAAwB,EAAE,gBAAgB;oBACxC,CAAC,CAAC,gBAAgB;oBAClB,CAAC,CAAC,SAAS;gBACb,WAAW,EAAE,IAAI;aAClB,EACD,UAAU,CACX,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,QAAQ,CAAC,aAAa,CAC7B,QAAQ,CAAC,MAAM,EACf,SAAS,EACT,SAAS,EACT,UAAU,CACX,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,mBAAmB,EAAE,CAAC;QAEhD,IAAI,QAAQ,CAAC,iBAAiB,EAAE,CAAC;YAC/B,IAAI,CAAC,IAAI,CAAC,2BAA2B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAClE,IAAI,CAAC,IAAI,CAAC,0BAA0B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACnE,CAAC;QACD,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;QACzC,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,0BAA0B,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;YAC9D,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;QACxD,CAAC;aAAM,IAAI,QAAQ,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YACxC,IAAI,CAAC,iBAAiB,CACpB,IAAI,EACJ,QAAQ,CAAC,UAAU,EACnB,MAAM,EACN,aAAa,EACb,cAAc,CACf,CAAC;QACJ,CAAC;QAED,KAAK,MAAM,UAAU,IAAI,QAAQ,CAAC,gBAAgB,EAAE,CAAC;YACnD,MAAM,QAAQ,GACZ,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CACnC,EAAE,QAAQ,CAAC;YACZ,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,CAAC,IAAI,CAAC,SAAS,UAAU,MAAM,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC;QACD,IAAI,QAAQ,CAAC,WAAW;YAAE,IAAI,CAAC,IAAI,CAAC,kBAAM,CAAC,QAAQ,EAAE,GAAG,GAAG,CAAC,CAAC;QAC7D,IAAI,QAAQ,CAAC,cAAc;YAAE,IAAI,CAAC,IAAI,CAAC,8BAAkB,CAAC,QAAQ,EAAE,GAAG,GAAG,CAAC,CAAC;QAC5E,IAAI,QAAQ,CAAC,cAAc;YAAE,IAAI,CAAC,IAAI,CAAC,qBAAS,CAAC,QAAQ,EAAE,GAAG,GAAG,CAAC,CAAC;QACnE,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QACjD,IAAI,mBAAmB,GAAG,mBAAmB,CAAC;QAE9C,IAAI,QAAQ,CAAC,cAAc,CAAC,gBAAgB,EAAE,CAAC;YAC7C,IAAI,gBAAgB,IAAI,eAAe,EAAE,CAAC;gBACxC,IAAI,eAAe;oBAAE,mBAAmB,IAAI,sBAAsB,CAAC;gBACnE,IAAI,gBAAgB;oBAAE,mBAAmB,IAAI,iBAAiB,CAAC;YACjE,CAAC;YACD,mBAAmB,IAAI,OAAO,CAAC;QACjC,CAAC;QACD,mBAAmB,IAAI,GAAG,CAAC;QAC3B,IAAI,gBAAgB,GAAG,EAAE,CAAC;QAC1B,IAAI,QAAQ,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YACjC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC;gBACzD,gBAAgB;oBACd,gBAAgB;wBAChB,SAAS,KAAK,iBAAiB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC;YAC7D,CAAC;QACH,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9C,MAAM,WAAW,GAAG;QAChB,WAAW,YAAY,mBAAmB;QAC1C,gBAAgB,GAChB,QAAQ,CAAC,cAAc,CAAC,gBAAgB;YACtC,CAAC,CAAC,sDAAsD;YACxD,CAAC,CAAC,EACN;QACE,MAAM;QAEN,IAAI,CAAC,OAAO,CAAC,SAAS;YACpB,CAAC,CAAC,2DAA2D;YAC7D,CAAC,CAAC,cACN;;CAEL,CAAC;QACE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACvB,IAAI,WAA+B,CAAC;QACpC,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,WAAW,GAAG,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC;QACxD,CAAC;QAED,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;YACrB,YAAY,EAAE,qBAAqB;YACnC,WAAW;YACX,OAAO,EAAE,aAAa;SACvB,CAAC;IACJ,CAAC;IAEO,iBAAiB,CACvB,IAAc,EACd,WAAwB,EACxB,MAAwB,EACxB,aAAuB,EACvB,cAA2B;QAE3B,MAAM,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,IAAI,EAAE,CAAC;QAE3D,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QACpC,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACrC,IAAI,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC;gBAAE,SAAS;YAE7C,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;YAEpD,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAC/B,SAAS;YACX,CAAC;YAED,MAAM,aAAa,GAAG,kBAAkB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YAC9D,IAAI,OAAO,SAAS,KAAK,UAAU,IAAI,SAAS,YAAY,MAAM,EAAE,CAAC;gBACnE,IAAI,CAAC,cAAc,CACjB,SAAS,EACT,IAAI,EACJ,UAAU,EACV,cAAc,EACd,aAAa,EACb,aAAa,CACd,CAAC;YACJ,CAAC;iBAAM,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,UAAU,IAAI,SAAS,EAAE,CAAC;gBACpE,IAAI,CAAC,cAAc,CACjB,SAAS,CAAC,QAAQ,EAClB,IAAI,EACJ,UAAU,EACV,cAAc,EACd,aAAa,EACb,aAAa,CACd,CAAC;YACJ,CAAC;QACH,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClB,CAAC;IAEO,cAAc,CACpB,SAAgE,EAChE,IAAc,EACd,UAAkB,EAClB,cAA2B,EAC3B,aAAsB,EACtB,aAAuB;QAEvB,IAAI,SAAS,YAAY,MAAM,EAAE,CAAC;YAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;YACpD,IAAI,CAAC,IAAI,CACP,SAAS,QAAQ,iBAAiB,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,MAChE,SAAS,CAAC,KACZ,OAAO,CACR,CAAC;YACF,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACjC,CAAC;aAAM,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE,CAAC;YAC3C,IAAI,aAAa,EAAE,CAAC;gBAClB,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC;gBACtC,IAAI,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACnC,IAAI,CAAC,IAAI,CACP,SAAS,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,MAAM,QAAQ,KAAK,CAC/D,CAAC;oBACF,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBACjC,CAAC;qBAAM,CAAC;oBACN,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBACjC,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,iBAAiB,GAAG,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC;gBAEnE,IAAI,iBAAiB,EAAE,CAAC;oBACtB,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC;gBAC9D,CAAC;qBAAM,CAAC;oBACN,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC;wBACnB,IAAI,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;oBAC1C,CAAC;yBAAM,CAAC;wBACN,IAAI,CAAC,IAAI,CACP,SAAS,IAAI,CAAC,iBAAiB,CAC7B,UAAU,CACX,MAAM,SAAS,CAAC,QAAQ,EAAE,KAAK,CACjC,CAAC;oBACJ,CAAC;oBAED,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBACjC,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAEO,0BAA0B,CAChC,IAAc,EACd,MAAwB,EACxB,cAA2B;QAE3B,MAAM,iBAAiB,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;QAE/C,IAAI,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC;QAEvE,IAAI,iBAAiB,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,KAAK,MAAM,UAAU,IAAI,iBAAiB,EAAE,CAAC;gBAC3C,IAAI,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC;oBAAE,SAAS;gBAE7C,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;gBACpD,IAAI,SAAS,EAAE,CAAC;oBACd,IAAI,SAAS,YAAY,MAAM,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE,CAAC;wBACnE,IAAI,CAAC,kBAAkB,CACrB,SAAS,EACT,UAAU,EACV,cAAc,EACd,IAAI,CACL,CAAC;oBACJ,CAAC;yBAAM,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,UAAU,IAAI,SAAS,EAAE,CAAC;wBACpE,IAAI,CAAC,kBAAkB,CACrB,SAAS,CAAC,QAAQ,EAClB,UAAU,EACV,cAAc,EACd,IAAI,CACL,CAAC;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;aAAM,IAAI,MAAM,CAAC,UAAU,KAAK,MAAM,IAAI,MAAM,CAAC,UAAU,KAAK,MAAM,EAAE,CAAC;YACxE,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC;YAEzC,KAAK,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;gBACjE,IAAI,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC;oBAAE,SAAS;gBAE7C,IAAI,SAAS,YAAY,MAAM,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE,CAAC;oBACnE,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,UAAU,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;gBACvE,CAAC;qBAAM,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,UAAU,IAAI,SAAS,EAAE,CAAC;oBACpE,IAAI,CAAC,kBAAkB,CACrB,SAAS,CAAC,QAAQ,EAClB,UAAU,EACV,cAAc,EACd,IAAI,CACL,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClB,CAAC;IACO,kBAAkB,CACxB,SAAgE,EAChE,UAAkB,EAClB,cAA2B,EAC3B,IAAc;QAEd,IAAI,SAAS,YAAY,MAAM,EAAE,CAAC;YAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;YACpD,IAAI,CAAC,IAAI,CACP,SAAS,QAAQ,iBAAiB,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,MAChE,SAAS,CAAC,KACZ,OAAO,CACR,CAAC;YACF,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACjC,CAAC;aAAM,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE,CAAC;YAC3C,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAEO,kBAAkB,CACxB,IAAc,EACd,MAAwB,EACxB,cAA2B;QAE3B,IAAI,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;QACjD,IAAI,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;QAE1C,MAAM,YAAY,GAAa,EAAE,CAAC;QAElC,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChD,YAAY,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;QACvC,CAAC;aAAM,IAAI,MAAM,CAAC,UAAU,KAAK,MAAM,IAAI,MAAM,CAAC,UAAU,KAAK,MAAM,EAAE,CAAC;YACxE,MAAM,UAAU,GACd,MAAM,CAAC,UAAU,KAAK,MAAM;gBAC1B,CAAC,CAAC,gCAAsB;gBACxB,CAAC,CAAC,gCAAsB,CAAC;YAC7B,YAAY,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QAChD,CAAC;QAED,KAAK,MAAM,UAAU,IAAI,YAAY,EAAE,CAAC;YACtC,IAAI,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;gBACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;gBACpD,IAAI,CAAC,IAAI,CAAC,MAAM,UAAU,MAAM,QAAQ,KAAK,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtB,CAAC;IAEO,iBAAiB,CAAC,UAAkB;QAC1C,OAAO,SAAS,GAAG,UAAU,CAAC,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;IAC9D,CAAC;IAEO,uBAAuB,CAAC,UAAkB;QAChD,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC;QAExE,OAAO,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACzC,CAAC;IAEO,oBAAoB,CAC1B,IAAc,EACd,UAAkB,EAClB,cAA2B;QAE3B,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;QACpD,IAAI,CAAC,SAAS,IAAI,OAAO,SAAS,KAAK,UAAU;YAAE,OAAO;QAE1D,IAAI,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC;YAAE,OAAO;QAE3C,QAAQ,UAAU,EAAE,CAAC;YACnB,KAAK,WAAW;gBACd,IAAI,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;gBACrD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;oBAChC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC,CAAC;oBAChD,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBAC7B,CAAC;gBACD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;oBAChC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC,CAAC;oBAChD,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBAC7B,CAAC;gBACD,IAAI,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;gBACxC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBAC/B,MAAM;YAER,KAAK,eAAe;gBAClB,IAAI,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;gBACzD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;oBAChC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC,CAAC;oBAChD,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBAC7B,CAAC;gBACD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;oBACpC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC,CAAC;oBACpD,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBACjC,CAAC;gBACD,IAAI,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;gBACxC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBAC/B,MAAM;YAER,KAAK,MAAM;gBACT,IAAI,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;gBAChD,IAAI,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;gBACxC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBAC/B,MAAM;YAER;gBACE,IAAI,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;gBACxC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAEO,uBAAuB,CAAC,UAAkB;QAChD,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAEpD,IAAI,CAAC,SAAS;YAAE,OAAO,EAAE,CAAC;QAE1B,IAAI,SAAS,YAAY,MAAM,EAAE,CAAC;YAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;YACpD,OAAO,SAAS,QAAQ,iBAAiB,IAAI,CAAC,SAAS,CACrD,SAAS,CAAC,MAAM,CACjB,MAAM,SAAS,CAAC,KAAK,OAAO,CAAC;QAChC,CAAC;QAED,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE,CAAC;YACpC,OAAO,GAAG,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC;QACtC,CAAC;QAED,OAAO,EAAE,CAAC;IACZ,CAAC;IAEO,eAAe,CAAC,QAAgB;QACtC,MAAM,gBAAgB,GAAG,CAAC,aAAa,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC;QAErE,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IACrE,CAAC;IAEO,mBAAmB,CAAC,aAAuB;QACjD,MAAM,KAAK,GAAG;YACZ,+CAA+C;YAC/C,kDAAkD;YAClD,4BAA4B;SAC7B,CAAC;QAEF,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;YACnC,KAAK,CAAC,IAAI,CAAC,KAAK,MAAM,oBAAoB,MAAM,gBAAgB,CAAC,CAAC;QACpE,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEnB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;CACF;AAtzCD,oCAszCC"}
@@ -0,0 +1,348 @@
1
+ import { BaseSchema, SchemaDefinition } from "./types/schema";
2
+ import { ValidatorOptions } from "./types/validation";
3
+ import { JetValidator } from "./jet-validator";
4
+ /**
5
+ * Context object passed through schema resolution.
6
+ * Tracks the current state during recursive schema traversal.
7
+ */
8
+ interface ResolutionContext {
9
+ /** Whether this is the first/root call to resolve */
10
+ isRootResolution: boolean;
11
+ /** Map of reference identifiers to their generated function names */
12
+ refToFunctionName: Map<string, string>;
13
+ /** Current JSON pointer path in the schema (e.g., "#/properties/name") */
14
+ currentSchemaPath: string;
15
+ /** The $id of the current schema context */
16
+ schemaId?: string;
17
+ /** The main/root hash for external schema resolution */
18
+ rootHash?: string;
19
+ /** List of all $id values defined locally in this schema */
20
+ localSchemaIds?: string[];
21
+ }
22
+ /**
23
+ * Represents a registered schema identifier ($id, $anchor, or $dynamicAnchor).
24
+ * Used to track where schemas are defined and how they can be referenced.
25
+ */
26
+ interface SchemaIdentifierEntry {
27
+ /** The JSON pointer path where this identifier is defined */
28
+ schemaPath: string;
29
+ /** The identifier value (URL, anchor name, etc.) */
30
+ identifier: string;
31
+ /** For anchors defined within an external schema, tracks the parent schema's $id */
32
+ parentSchemaId?: string;
33
+ }
34
+ /**
35
+ * SchemaResolver handles the complex task of resolving JSON Schema references.
36
+ *
37
+ * It performs several key functions:
38
+ * 1. Collects all $id, $anchor, $dynamicAnchor declarations
39
+ * 2. Resolves all $ref and $dynamicRef to their target schemas
40
+ * 3. Generates unique function names for each referenceable schema
41
+ * 4. Optionally inlines references that don't form cycles
42
+ * 5. Loads external schemas (sync or async)
43
+ *
44
+ * The resolver supports JSON Schema drafts 6, 7, 2019-09, and 2020-12.
45
+ */
46
+ export declare class SchemaResolver {
47
+ /**
48
+ * Maps external schema URLs to their internal reference maps.
49
+ * Structure: externalSchemaUrl -> (refIdentifier -> functionName)
50
+ */
51
+ private readonly externalSchemaRefMaps;
52
+ /**
53
+ * Collection of all schemas that need to be compiled into validator functions.
54
+ * Each entry contains the schema, its path, and the generated function name.
55
+ */
56
+ private readonly schemasToCompile;
57
+ rootFunctionName: string;
58
+ /**
59
+ * Tracks which schemas have already been added to schemasToCompile.
60
+ * Structure: schemaUrl -> Set of paths already processed
61
+ * Prevents duplicate compilation of the same schema.
62
+ */
63
+ private readonly compiledSchemaPaths;
64
+ /**
65
+ * Cache of fully processed external schemas.
66
+ * Avoids re-processing the same external schema multiple times.
67
+ */
68
+ private processedExternalSchemas;
69
+ /**
70
+ * Whether the root schema has been set (used for function naming).
71
+ * The root schema always gets the function name "validate".
72
+ */
73
+ private hasSetRootSchema;
74
+ /**
75
+ * All format strings encountered in the schema.
76
+ * Used to validate that required format validators are available.
77
+ */
78
+ private discoveredFormats;
79
+ /**
80
+ * All custom keywords encountered in the schema.
81
+ * Used to validate that required keyword handlers are registered.
82
+ */
83
+ private discoveredCustomKeywords;
84
+ /**
85
+ * Reference to the parent JetValidator instance.
86
+ * Used for accessing registered schemas, keywords, and meta-schemas.
87
+ */
88
+ private jetValidator;
89
+ /**
90
+ * Validation options passed to the resolver.
91
+ * Controls behavior like strict mode, draft version, and inlining.
92
+ */
93
+ private options;
94
+ /**
95
+ * Counter for generating unique function names.
96
+ * Incremented each time a new function name is generated.
97
+ */
98
+ private functionNameCounter;
99
+ /**
100
+ * Maps schema IDs to their paths containing refs (for inlining decisions).
101
+ * Used to determine which external refs can be safely inlined.
102
+ */
103
+ private schemaIdToRefPaths;
104
+ /**
105
+ * Tracks schemas currently being resolved to detect circular references.
106
+ * Prevents infinite loops when schemas reference each other.
107
+ */
108
+ private currentlyResolvingSchemas;
109
+ /**
110
+ * Context information needed during compilation.
111
+ * Accumulated during resolution and passed to the compiler.
112
+ */
113
+ private compilationContext;
114
+ constructor(jetValidator: JetValidator, options: ValidatorOptions);
115
+ /**
116
+ * Clears all resolution state.
117
+ * Called after resolution is complete to free memory.
118
+ */
119
+ private clearResolutionState;
120
+ /**
121
+ * Gets or creates a reference map for storing function names for a schema.
122
+ * The map key is determined by the schema's identity (URL, external ID, or context).
123
+ */
124
+ private getOrCreateRefMapForSchema;
125
+ /**
126
+ * Gets an existing reference map for a schema identifier.
127
+ * Returns undefined if no map exists.
128
+ */
129
+ private getRefMapForIdentifier;
130
+ /**
131
+ * Updates the tracking of which schema paths have been processed.
132
+ * Returns whether this is a new path (true) or already processed (false).
133
+ */
134
+ private trackSchemaPath;
135
+ /**
136
+ * Generates a unique function name for a schema.
137
+ * Format: validate_{sanitized_identifier}_{counter}
138
+ */
139
+ private generateFunctionName;
140
+ /**
141
+ * Assigns function names to all collected schema identifiers ($id, $anchor, $dynamicAnchor).
142
+ */
143
+ private assignFunctionNamesToIdentifiers;
144
+ /**
145
+ * Assigns function name for the root schema (always "validate" for main root schema).
146
+ */
147
+ private assignRootSchemaFunctionName;
148
+ /**
149
+ * Assigns function name for non-root schemas.
150
+ */
151
+ private assignNonRootSchemaFunctionName;
152
+ /**
153
+ * Assigns function names to all collected references ($ref, $dynamicRef).
154
+ */
155
+ private assignFunctionNamesToReferences;
156
+ /**
157
+ * Assigns function name for a local hash reference (#, #/, #anchor).
158
+ */
159
+ private assignHashRefFunctionName;
160
+ /**
161
+ * Assigns function name for an external reference (http://...).
162
+ */
163
+ private assignExternalRefFunctionName;
164
+ /**
165
+ * Assigns function name for an HTTP URL reference.
166
+ */
167
+ private assignHttpRefFunctionName;
168
+ /**
169
+ * Assigns function name for a reference that maps to a local $id path.
170
+ */
171
+ private assignIdentifierPathRefFunctionName;
172
+ /**
173
+ * Pre-processes a schema to collect all identifiers, references, and paths.
174
+ * This is the first pass that gathers information needed for resolution.
175
+ */
176
+ private preprocessSchema;
177
+ /**
178
+ * Expands macro keywords in a schema.
179
+ * Macros are custom keywords that transform into standard JSON Schema.
180
+ */
181
+ private expandMacros;
182
+ /**
183
+ * Recursively expands macros in nested schema locations.
184
+ */
185
+ private expandMacrosRecursively;
186
+ private logInliningSummary;
187
+ /**
188
+ * Asynchronously resolves a schema, loading external schemas as needed.
189
+ * Use this when external schemas need to be fetched over the network.
190
+ */
191
+ resolveAsync(schema: SchemaDefinition | boolean, loadSchema?: (uri: string) => Promise<SchemaDefinition> | SchemaDefinition): Promise<{
192
+ schema: boolean | SchemaDefinition;
193
+ refables: {
194
+ path: string;
195
+ schema: SchemaDefinition | boolean;
196
+ functionName: string;
197
+ }[];
198
+ allFormats: Set<string>;
199
+ keywords: Set<string>;
200
+ compileContext: {
201
+ /** Whether any schema uses unevaluatedProperties */
202
+ hasUnevaluatedProperties: boolean;
203
+ /** Whether any schema uses unevaluatedItems */
204
+ hasUnevaluatedItems: boolean;
205
+ /** Whether any ref points to the root "validate" function */
206
+ hasRootReference: boolean;
207
+ /** List of all function names that are referenced */
208
+ referencedFunctions: string[];
209
+ /** Whether any schema uses $data references */
210
+ uses$Data: boolean;
211
+ inliningStats: {
212
+ totalRefs: number;
213
+ inlinedRefs: number;
214
+ functionRefs: number;
215
+ };
216
+ };
217
+ }>;
218
+ /**
219
+ * Synchronously resolves a schema.
220
+ * External schemas must already be registered with the JetValidator instance.
221
+ */
222
+ resolveSync(schema: SchemaDefinition | boolean): {
223
+ schema: boolean | SchemaDefinition;
224
+ refables: {
225
+ path: string;
226
+ schema: SchemaDefinition | boolean;
227
+ functionName: string;
228
+ }[];
229
+ allFormats: Set<string>;
230
+ keywords: Set<string>;
231
+ compileContext: {
232
+ /** Whether any schema uses unevaluatedProperties */
233
+ hasUnevaluatedProperties: boolean;
234
+ /** Whether any schema uses unevaluatedItems */
235
+ hasUnevaluatedItems: boolean;
236
+ /** Whether any ref points to the root "validate" function */
237
+ hasRootReference: boolean;
238
+ /** List of all function names that are referenced */
239
+ referencedFunctions: string[];
240
+ /** Whether any schema uses $data references */
241
+ uses$Data: boolean;
242
+ inliningStats: {
243
+ totalRefs: number;
244
+ inlinedRefs: number;
245
+ functionRefs: number;
246
+ };
247
+ };
248
+ };
249
+ /**
250
+ * Resolves a schema asynchronously, handling external references.
251
+ */
252
+ private resolveSchemaAsync;
253
+ /**
254
+ * Resolves a schema synchronously.
255
+ */
256
+ private resolveSchemaSynchronously;
257
+ /**
258
+ * Processes schema inlining for optimization.
259
+ * Inlines references that don't form cycles to reduce function call overhead.
260
+ */
261
+ private processInlining;
262
+ /**
263
+ * Computes the lookup key for a reference during inlining.
264
+ */
265
+ private computeLookupKey;
266
+ /**
267
+ * Initializes the resolution context with schema identity information.
268
+ */
269
+ initializeResolutionContext(schema: SchemaDefinition, context: ResolutionContext): void;
270
+ /**
271
+ * Initializes schemas that have identifiers ($id, $anchor, etc.) by adding them to schemasToCompile.
272
+ */
273
+ initializeIdentifiedSchemas(schema: SchemaDefinition, identifiers: SchemaIdentifierEntry[], context: ResolutionContext & {
274
+ schemaId: string;
275
+ }, allRefs: string[]): void;
276
+ /**
277
+ * Determines if a reference should be skipped (already processed).
278
+ */
279
+ shouldSkipReference(ref: string, context: ResolutionContext & {
280
+ schemaId: string;
281
+ }, identifierToPath: Record<string, string>): boolean;
282
+ /**
283
+ * Resolves a local reference (within the same schema).
284
+ */
285
+ resolveLocalReference(schema: SchemaDefinition, ref: string, identifierToPath: Record<string, string>, context: ResolutionContext & {
286
+ schemaId: string;
287
+ }): void;
288
+ /**
289
+ * Adds a locally resolved reference to the compilation queue.
290
+ */
291
+ addLocalRefToCompile(ref: string, schemaAtPath: boolean | BaseSchema, context: ResolutionContext & {
292
+ schemaId: string;
293
+ }, identifierToPath: Record<string, string>): void;
294
+ /**
295
+ * Resolves an external reference asynchronously.
296
+ */
297
+ resolveExternalSchemaAsync(ref: string, identifiers: SchemaIdentifierEntry[], context: ResolutionContext, loadSchema?: (uri: string) => Promise<SchemaDefinition> | SchemaDefinition): Promise<void>;
298
+ /**
299
+ * Resolves an external reference synchronously.
300
+ */
301
+ resolveExternalSchemaSync(ref: string, identifiers: SchemaIdentifierEntry[], context: ResolutionContext): void;
302
+ /**
303
+ * Adds an external schema to the compilation queue.
304
+ */
305
+ addExternalSchemaToCompile(ref: string, resolvedSchema: {
306
+ schema: SchemaDefinition | boolean;
307
+ idPaths: Record<string, string>;
308
+ refs: string[];
309
+ }, context: ResolutionContext): void;
310
+ /**
311
+ * Resolves a reference at a specific path, updating the schema with function names.
312
+ * This is called after all schemas have been collected to finalize references.
313
+ */
314
+ resolveReferenceAtPath(targetSchema: SchemaDefinition | boolean, rootSchema: SchemaDefinition, refToFunctionName: Map<string, string>, currentPath: string, externalRefPaths: string[], identifierToPath: Record<string, string>, localIdentifiers?: string[], isInlined?: boolean): void;
315
+ /**
316
+ * Finalizes a $ref by resolving it to a function name.
317
+ */
318
+ private finalizeRef;
319
+ /**
320
+
321
+ Finalizes a $dynamicRef by resolving it to a function name.
322
+ */
323
+ private finalizeDynamicRef;
324
+ /**
325
+ Recursively collects all metadata from a schema:
326
+ Identifiers ($id, $anchor, $dynamicAnchor)
327
+ References ($ref, $dynamicRef)
328
+ Paths containing references
329
+ Formats and custom keywords
330
+ */
331
+ private collectSchemaMetadata;
332
+ /**
333
+
334
+ Validates schema against strict mode requirements.
335
+ */
336
+ private validateStrictModeRequirements;
337
+ /**
338
+
339
+ Collects custom keywords from a schema.
340
+ */
341
+ private collectCustomKeywords;
342
+ /**
343
+
344
+ Recursively collects metadata from nested schema locations.
345
+ */
346
+ private collectNestedSchemaMetadata;
347
+ }
348
+ export {};