@maplibre/mlt 1.1.0 → 1.1.2

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 (136) hide show
  1. package/LICENSE.txt +231 -0
  2. package/dist/decoding/decodingUtils.js +2 -2
  3. package/dist/decoding/decodingUtils.js.map +1 -1
  4. package/dist/decoding/decodingUtils.spec.js +2 -2
  5. package/dist/decoding/decodingUtils.spec.js.map +1 -1
  6. package/dist/decoding/fsstDecoder.js.map +1 -1
  7. package/dist/decoding/fsstDecoder.spec.js +14 -10
  8. package/dist/decoding/fsstDecoder.spec.js.map +1 -1
  9. package/dist/decoding/geometryDecoder.js +40 -200
  10. package/dist/decoding/geometryDecoder.js.map +1 -1
  11. package/dist/decoding/geometryDecoder.spec.js.map +1 -1
  12. package/dist/decoding/geometryScaling.js.map +1 -1
  13. package/dist/decoding/intWrapper.js.map +1 -1
  14. package/dist/decoding/integerDecodingUtils.d.ts +1 -1
  15. package/dist/decoding/integerDecodingUtils.js.map +1 -1
  16. package/dist/decoding/integerDecodingUtils.spec.js.map +1 -1
  17. package/dist/decoding/integerStreamDecoder.d.ts +13 -22
  18. package/dist/decoding/integerStreamDecoder.js +234 -237
  19. package/dist/decoding/integerStreamDecoder.js.map +1 -1
  20. package/dist/decoding/integerStreamDecoder.spec.js +77 -39
  21. package/dist/decoding/integerStreamDecoder.spec.js.map +1 -1
  22. package/dist/decoding/propertyDecoder.js +21 -21
  23. package/dist/decoding/propertyDecoder.js.map +1 -1
  24. package/dist/decoding/propertyDecoder.spec.js +162 -199
  25. package/dist/decoding/propertyDecoder.spec.js.map +1 -1
  26. package/dist/decoding/stringDecoder.d.ts +2 -10
  27. package/dist/decoding/stringDecoder.js +150 -157
  28. package/dist/decoding/stringDecoder.js.map +1 -1
  29. package/dist/decoding/stringDecoder.spec.js +59 -60
  30. package/dist/decoding/stringDecoder.spec.js.map +1 -1
  31. package/dist/index.js.map +1 -1
  32. package/dist/metadata/tile/dictionaryType.js.map +1 -1
  33. package/dist/metadata/tile/lengthType.js.map +1 -1
  34. package/dist/metadata/tile/logicalLevelTechnique.js.map +1 -1
  35. package/dist/metadata/tile/logicalStreamType.js.map +1 -1
  36. package/dist/metadata/tile/offsetType.js.map +1 -1
  37. package/dist/metadata/tile/physicalLevelTechnique.js.map +1 -1
  38. package/dist/metadata/tile/physicalStreamType.js.map +1 -1
  39. package/dist/metadata/tile/scalarType.js.map +1 -1
  40. package/dist/metadata/tile/streamMetadataDecoder.d.ts +28 -4
  41. package/dist/metadata/tile/streamMetadataDecoder.js +81 -15
  42. package/dist/metadata/tile/streamMetadataDecoder.js.map +1 -1
  43. package/dist/metadata/tileset/embeddedTilesetMetadataDecoder.js +4 -4
  44. package/dist/metadata/tileset/embeddedTilesetMetadataDecoder.js.map +1 -1
  45. package/dist/metadata/tileset/tilesetMetadata.js.map +1 -1
  46. package/dist/metadata/tileset/typeMap.d.ts +21 -29
  47. package/dist/metadata/tileset/typeMap.js +167 -169
  48. package/dist/metadata/tileset/typeMap.js.map +1 -1
  49. package/dist/mltDecoder.js +20 -18
  50. package/dist/mltDecoder.js.map +1 -1
  51. package/dist/mltDecoder.spec.js.map +1 -1
  52. package/dist/mltMetadata.js.map +1 -1
  53. package/dist/vector/constant/intConstVector.js.map +1 -1
  54. package/dist/vector/constant/longConstVector.js.map +1 -1
  55. package/dist/vector/dictionary/stringDictionaryVector.js.map +1 -1
  56. package/dist/vector/featureTable.js.map +1 -1
  57. package/dist/vector/filter/flatSelectionVector.d.ts +27 -0
  58. package/dist/vector/filter/flatSelectionVector.js +54 -0
  59. package/dist/vector/filter/flatSelectionVector.js.map +1 -0
  60. package/dist/vector/filter/flatSelectionVector.spec.d.ts +1 -0
  61. package/dist/vector/filter/flatSelectionVector.spec.js +51 -0
  62. package/dist/vector/filter/flatSelectionVector.spec.js.map +1 -0
  63. package/dist/vector/filter/selectionVector.d.ts +8 -0
  64. package/dist/vector/filter/selectionVector.js +2 -0
  65. package/dist/vector/filter/selectionVector.js.map +1 -0
  66. package/dist/vector/filter/selectionVectorUtil.spec.d.ts +1 -0
  67. package/dist/vector/filter/selectionVectorUtil.spec.js +154 -0
  68. package/dist/vector/filter/selectionVectorUtil.spec.js.map +1 -0
  69. package/dist/vector/filter/selectionVectorUtils.d.ts +16 -0
  70. package/dist/vector/filter/selectionVectorUtils.js +37 -0
  71. package/dist/vector/filter/selectionVectorUtils.js.map +1 -0
  72. package/dist/vector/filter/sequenceSelectionVector.d.ts +26 -0
  73. package/dist/vector/filter/sequenceSelectionVector.js +67 -0
  74. package/dist/vector/filter/sequenceSelectionVector.js.map +1 -0
  75. package/dist/vector/filter/sequenceSelectionVector.spec.d.ts +1 -0
  76. package/dist/vector/filter/sequenceSelectionVector.spec.js +115 -0
  77. package/dist/vector/filter/sequenceSelectionVector.spec.js.map +1 -0
  78. package/dist/vector/fixedSizeVector.js.map +1 -1
  79. package/dist/vector/flat/bitVector.js.map +1 -1
  80. package/dist/vector/flat/booleanFlatVector.js.map +1 -1
  81. package/dist/vector/flat/doubleFlatVector.js.map +1 -1
  82. package/dist/vector/flat/floatFlatVector.js.map +1 -1
  83. package/dist/vector/flat/floatFlatVector.spec.js.map +1 -1
  84. package/dist/vector/flat/intFlatVector.js.map +1 -1
  85. package/dist/vector/flat/intFlatVector.spec.js.map +1 -1
  86. package/dist/vector/flat/longFlatVector.js.map +1 -1
  87. package/dist/vector/flat/longFlatVector.spec.js.map +1 -1
  88. package/dist/vector/flat/stringFlatVector.js.map +1 -1
  89. package/dist/vector/fsst-dictionary/stringFsstDictionaryVector.js.map +1 -1
  90. package/dist/vector/fsst-dictionary/stringFsstDictionaryVector.spec.js.map +1 -1
  91. package/dist/vector/geometry/constGeometryVector.d.ts +2 -2
  92. package/dist/vector/geometry/constGeometryVector.js +6 -6
  93. package/dist/vector/geometry/constGeometryVector.js.map +1 -1
  94. package/dist/vector/geometry/constGpuVector.d.ts +1 -1
  95. package/dist/vector/geometry/constGpuVector.js +3 -24
  96. package/dist/vector/geometry/constGpuVector.js.map +1 -1
  97. package/dist/vector/geometry/flatGeometryVector.d.ts +2 -2
  98. package/dist/vector/geometry/flatGeometryVector.js +7 -7
  99. package/dist/vector/geometry/flatGeometryVector.js.map +1 -1
  100. package/dist/vector/geometry/flatGpuVector.d.ts +1 -1
  101. package/dist/vector/geometry/flatGpuVector.js +3 -22
  102. package/dist/vector/geometry/flatGpuVector.js.map +1 -1
  103. package/dist/vector/geometry/geometryType.js.map +1 -1
  104. package/dist/vector/geometry/geometryVector.js +2 -2
  105. package/dist/vector/geometry/geometryVector.js.map +1 -1
  106. package/dist/vector/geometry/geometryVectorConverter.js +4 -4
  107. package/dist/vector/geometry/geometryVectorConverter.js.map +1 -1
  108. package/dist/vector/geometry/gpuVector.js.map +1 -1
  109. package/dist/vector/geometry/topologyVector.js.map +1 -1
  110. package/dist/vector/geometry/vertexBufferType.js.map +1 -1
  111. package/dist/vector/geometry/zOrderCurve.d.ts +4 -17
  112. package/dist/vector/geometry/zOrderCurve.js +10 -35
  113. package/dist/vector/geometry/zOrderCurve.js.map +1 -1
  114. package/dist/vector/geometry/zOrderCurve.spec.js +15 -10
  115. package/dist/vector/geometry/zOrderCurve.spec.js.map +1 -1
  116. package/dist/vector/intVector.js.map +1 -1
  117. package/dist/vector/sequence/intSequenceVector.js.map +1 -1
  118. package/dist/vector/sequence/longSequenceVector.js.map +1 -1
  119. package/dist/vector/sequence/longSequenceVektor.spec.js.map +1 -1
  120. package/dist/vector/sequence/sequenceVector.js.map +1 -1
  121. package/dist/vector/variableSizeVector.js.map +1 -1
  122. package/dist/vector/vector.js.map +1 -1
  123. package/dist/vector/vectorType.js.map +1 -1
  124. package/package.json +5 -5
  125. package/dist/metadata/tile/mortonEncodedStreamMetadata.d.ts +0 -15
  126. package/dist/metadata/tile/mortonEncodedStreamMetadata.js +0 -27
  127. package/dist/metadata/tile/mortonEncodedStreamMetadata.js.map +0 -1
  128. package/dist/metadata/tile/rleEncodedStreamMetadata.d.ts +0 -24
  129. package/dist/metadata/tile/rleEncodedStreamMetadata.js +0 -38
  130. package/dist/metadata/tile/rleEncodedStreamMetadata.js.map +0 -1
  131. package/dist/metadata/tile/streamMetadata.d.ts +0 -29
  132. package/dist/metadata/tile/streamMetadata.js +0 -82
  133. package/dist/metadata/tile/streamMetadata.js.map +0 -1
  134. package/dist/vector/geometry/spaceFillingCurve.d.ts +0 -22
  135. package/dist/vector/geometry/spaceFillingCurve.js +0 -31
  136. package/dist/vector/geometry/spaceFillingCurve.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"propertyDecoder.spec.js","sourceRoot":"","sources":["../../src/decoding/propertyDecoder.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAC,MAAM,QAAQ,CAAC;AAC3D,OAAO,EAAC,qBAAqB,EAAC,MAAM,wCAAwC,CAAC;AAC7E,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAC,oBAAoB,EAAC,MAAM,mBAAmB,CAAC;AAEvD,OAAO,EAAC,UAAU,EAAC,MAAM,6BAA6B,CAAC;AACvD,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,EAAC,aAAa,EAAC,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAC,cAAc,EAAC,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAC,iBAAiB,EAAC,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAC,kBAAkB,EAAC,MAAM,uCAAuC,CAAC;AACzE,OAAO,EAAC,cAAc,EAAC,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAC,eAAe,EAAC,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAC,UAAU,EAAC,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAC9C,OAAO,KAAK,aAAa,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAC,iBAAiB,EAAC,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAC,eAAe,EAAC,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAC,gBAAgB,EAAC,MAAM,iCAAiC,CAAC;AAGjE,0BAA0B;AAC1B,MAAM,SAAS,GAAG;IACd,WAAW,EAAE,EAAE;IACf,UAAU,EAAE,CAAC;IACb,uBAAuB,EAAE,CAAC;IAC1B,WAAW,EAAE,GAAG;CACnB,CAAC;AAEF,oDAAoD;AACpD,SAAS,YAAY,CAAC,UAAsB,EAAE,WAAoB,KAAK;IACnE,OAAO;QACH,IAAI,EAAE,KAAK;QACX,QAAQ;QACR,WAAW,EAAE,IAAI;QACjB,IAAI,EAAE,YAAY;QAClB,UAAU,EAAE;YACR,MAAM,EAAE,KAAK;YACb,YAAY,EAAE,UAAU;YACxB,WAAW,EAAE,IAAI;YACjB,IAAI,EAAE,cAAc;SACvB;QACD,WAAW,EAAE,IAAI;KACpB,CAAC;AACN,CAAC;AAED,qCAAqC;AACrC,SAAS,kBAAkB,CACvB,aAAqB,SAAS,CAAC,WAAW,EAC1C,YAAoB,SAAS,CAAC,UAAU;IAExC,OAAO;QACH,UAAU;QACV,SAAS;QACT,sBAAsB,EAAE,CAAC;QACzB,sBAAsB,EAAE,CAAC;QACzB,sBAAsB,EAAE,CAAC;KACrB,CAAC;AACb,CAAC;AAED,0DAA0D;AAC1D,SAAS,qBAAqB,CAC1B,aAAqB,SAAS,CAAC,WAAW,EAC1C,YAAoB,SAAS,CAAC,UAAU,EACxC,eAAuB,CAAC;IAExB,OAAO;QACH,UAAU;QACV,SAAS;QACT,YAAY;QACZ,sBAAsB,EAAE,CAAC;QACzB,sBAAsB,EAAE,CAAC;QACzB,sBAAsB,EAAE,CAAC;KACrB,CAAC;AACb,CAAC;AAED,mDAAmD;AACnD,SAAS,kBAAkB,CAAC,UAAsB;IAC9C,EAAE,CAAC,KAAK,CAAC,oBAAoB,EAAE,eAAe,CAAC;SAC1C,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAEtC,IAAI,UAAU,KAAK,UAAU,CAAC,MAAM,IAAI,UAAU,KAAK,UAAU,CAAC,OAAO,EAAE,CAAC;QACxE,EAAE,CAAC,KAAK,CAAC,oBAAoB,EAAE,kBAAkB,CAAC;aAC7C,eAAe,CAAC,IAAI,aAAa,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAChE,CAAC;SAAM,CAAC;QACJ,EAAE,CAAC,KAAK,CAAC,oBAAoB,EAAE,iBAAiB,CAAC;aAC5C,eAAe,CAAC,IAAI,UAAU,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IAC1D,CAAC;AACL,CAAC;AAED,yCAAyC;AACzC,SAAS,0BAA0B,CAAC,UAAsB;IACtD,EAAE,CAAC,KAAK,CAAC,oBAAoB,EAAE,eAAe,CAAC;SAC1C,eAAe,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAE1C,IAAI,UAAU,KAAK,UAAU,CAAC,MAAM,IAAI,UAAU,KAAK,UAAU,CAAC,OAAO,EAAE,CAAC;QACxE,EAAE,CAAC,KAAK,CAAC,oBAAoB,EAAE,0BAA0B,CAAC;aACrD,eAAe,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IACrC,CAAC;SAAM,CAAC;QACJ,EAAE,CAAC,KAAK,CAAC,oBAAoB,EAAE,yBAAyB,CAAC;aACpD,eAAe,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IACnC,CAAC;AACL,CAAC;AAED,sCAAsC;AACtC,SAAS,uBAAuB,CAAC,UAAsB;IACnD,EAAE,CAAC,KAAK,CAAC,oBAAoB,EAAE,eAAe,CAAC;SAC1C,eAAe,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAEvC,IAAI,UAAU,KAAK,UAAU,CAAC,MAAM,IAAI,UAAU,KAAK,UAAU,CAAC,OAAO,EAAE,CAAC;QACxE,EAAE,CAAC,KAAK,CAAC,oBAAoB,EAAE,uBAAuB,CAAC;aAClD,eAAe,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;SAAM,CAAC;QACJ,EAAE,CAAC,KAAK,CAAC,oBAAoB,EAAE,sBAAsB,CAAC;aACjD,eAAe,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC;AACL,CAAC;AAED,gDAAgD;AAChD,SAAS,gBAAgB,CAAC,UAAsB;IAC5C,IAAI,UAAU,KAAK,UAAU,CAAC,KAAK,EAAE,CAAC;QAClC,EAAE,CAAC,KAAK,CAAC,aAAa,EAAE,gBAAgB,CAAC;aACpC,eAAe,CAAC,IAAI,YAAY,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAClE,CAAC;SAAM,IAAI,UAAU,KAAK,UAAU,CAAC,MAAM,EAAE,CAAC;QAC1C,EAAE,CAAC,KAAK,CAAC,aAAa,EAAE,iBAAiB,CAAC;aACrC,eAAe,CAAC,IAAI,YAAY,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAClE,CAAC;AACL,CAAC;AAED,uCAAuC;AACvC,SAAS,wBAAwB,CAAC,UAAsB;IACpD,IAAI,UAAU,KAAK,UAAU,CAAC,KAAK,EAAE,CAAC;QAClC,EAAE,CAAC,KAAK,CAAC,aAAa,EAAE,wBAAwB,CAAC;aAC5C,eAAe,CAAC,IAAI,YAAY,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAClE,CAAC;SAAM,IAAI,UAAU,KAAK,UAAU,CAAC,MAAM,EAAE,CAAC;QAC1C,EAAE,CAAC,KAAK,CAAC,aAAa,EAAE,yBAAyB,CAAC;aAC7C,eAAe,CAAC,IAAI,YAAY,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAClE,CAAC;AACL,CAAC;AAED,yCAAyC;AACzC,SAAS,0BAA0B,CAAC,UAAsB;IACtD,EAAE,CAAC,KAAK,CAAC,oBAAoB,EAAE,eAAe,CAAC;SAC1C,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAEtC,IAAI,UAAU,KAAK,UAAU,CAAC,MAAM,IAAI,UAAU,KAAK,UAAU,CAAC,OAAO,EAAE,CAAC;QACxE,EAAE,CAAC,KAAK,CAAC,oBAAoB,EAAE,0BAA0B,CAAC;aACrD,eAAe,CAAC,IAAI,aAAa,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAChE,CAAC;SAAM,CAAC;QACJ,EAAE,CAAC,KAAK,CAAC,oBAAoB,EAAE,yBAAyB,CAAC;aACpD,eAAe,CAAC,IAAI,UAAU,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IAC1D,CAAC;AACL,CAAC;AAED,iEAAiE;AACjE,SAAS,wBAAwB;IAC7B,MAAM,WAAW,GAAG,EAAE,CAAC,KAAK,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC;IAE9D,iCAAiC;IACjC,WAAW,CAAC,mBAAmB,CAAC;QAC5B,UAAU,EAAE,SAAS,CAAC,uBAAuB;QAC7C,SAAS,EAAE,SAAS,CAAC,UAAU;QAC/B,sBAAsB,EAAE,CAAC;QACzB,sBAAsB,EAAE,CAAC;QACzB,sBAAsB,EAAE,CAAC;KACrB,CAAC,CAAC;IAEV,gCAAgC;IAChC,WAAW,CAAC,eAAe,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAElD,uCAAuC;IACvC,EAAE,CAAC,KAAK,CAAC,aAAa,EAAE,kBAAkB,CAAC;SACtC,eAAe,CAAC,IAAI,UAAU,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AACvD,CAAC;AAED,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IAClC,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC,CAAC;IAEtC,QAAQ,CAAC,8CAA8C,EAAE,GAAG,EAAE;QAC1D,MAAM,WAAW,GAAG;YAChB;gBACI,UAAU,EAAE,UAAU,CAAC,MAAM;gBAC7B,WAAW,EAAE,aAAa;gBAC1B,MAAM,EAAE,kBAAkB;gBAC1B,QAAQ,EAAE,QAAQ;aACrB;YACD;gBACI,UAAU,EAAE,UAAU,CAAC,MAAM;gBAC7B,WAAW,EAAE,cAAc;gBAC3B,MAAM,EAAE,kBAAkB;gBAC1B,QAAQ,EAAE,QAAQ;aACrB;SACJ,CAAC;QAEF,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAChB,gCAAgC,EAChC,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE;YACpC,UAAU;YACV,EAAE,CAAC,KAAK,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC,eAAe,CAAC,kBAAkB,EAAE,CAAC,CAAC;YAChF,MAAM,CAAC,UAAU,CAAC,CAAC;YACnB,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YAC/C,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;YAEjC,MAAM;YACN,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;YAEnF,SAAS;YACT,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;YAC3C,MAAM,CAAE,MAAc,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC1C,MAAM,CAAE,MAAc,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAC1E,CAAC,CACJ,CAAC;IACN,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,gDAAgD,EAAE,GAAG,EAAE;QAC5D,MAAM,WAAW,GAAG;YAChB;gBACI,UAAU,EAAE,UAAU,CAAC,OAAO;gBAC9B,WAAW,EAAE,aAAa;gBAC1B,MAAM,EAAE,kBAAkB;gBAC1B,QAAQ,EAAE,SAAS;aACtB;YACD;gBACI,UAAU,EAAE,UAAU,CAAC,OAAO;gBAC9B,WAAW,EAAE,cAAc;gBAC3B,MAAM,EAAE,kBAAkB;gBAC1B,QAAQ,EAAE,SAAS;aACtB;SACJ,CAAC;QAEF,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAChB,gCAAgC,EAChC,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE;YACpC,UAAU;YACV,EAAE,CAAC,KAAK,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC,eAAe,CAAC,kBAAkB,EAAE,CAAC,CAAC;YAChF,MAAM,CAAC,UAAU,CAAC,CAAC;YACnB,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YAC/C,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;YAEjC,MAAM;YACN,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;YAEnF,SAAS;YACT,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;YAC3C,MAAM,CAAE,MAAc,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC1C,MAAM,CAAE,MAAc,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAC1E,CAAC,CACJ,CAAC;IACN,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,0CAA0C,EAAE,GAAG,EAAE;QACtD,MAAM,WAAW,GAAG;YAChB,EAAE,UAAU,EAAE,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,0BAA0B,EAAE,QAAQ,EAAE,QAAQ,EAAE;YACzF,EAAE,UAAU,EAAE,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,0BAA0B,EAAE,QAAQ,EAAE,QAAQ,EAAE;SAC5F,CAAC;QAEF,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAChB,wDAAwD,EACxD,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE;YACvB,UAAU;YACV,wBAAwB,EAAE,CAAC;YAC3B,MAAM,CAAC,UAAU,CAAC,CAAC;YACnB,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YAC9C,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;YAEjC,MAAM;YACN,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;YAEnF,SAAS;YACT,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,CAAE,MAAc,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9C,CAAC,CACJ,CAAC;IACN,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACxD,MAAM,WAAW,GAAG;YAChB,EAAE,UAAU,EAAE,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,0BAA0B,EAAE,QAAQ,EAAE,SAAS,EAAE;YAC3F,EAAE,UAAU,EAAE,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,0BAA0B,EAAE,QAAQ,EAAE,SAAS,EAAE;SAC9F,CAAC;QAEF,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAChB,wDAAwD,EACxD,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE;YACvB,UAAU;YACV,wBAAwB,EAAE,CAAC;YAC3B,MAAM,CAAC,UAAU,CAAC,CAAC;YACnB,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YAC9C,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;YAEjC,MAAM;YACN,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;YAEnF,SAAS;YACT,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,CAAE,MAAc,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9C,CAAC,CACJ,CAAC;IACN,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,0CAA0C,EAAE,GAAG,EAAE;QACtD,MAAM,WAAW,GAAG;YAChB;gBACI,UAAU,EAAE,UAAU,CAAC,MAAM;gBAC7B,WAAW,EAAE,iBAAiB;gBAC9B,MAAM,EAAE,0BAA0B;gBAClC,QAAQ,EAAE,QAAQ;aACrB;YACD;gBACI,UAAU,EAAE,UAAU,CAAC,MAAM;gBAC7B,WAAW,EAAE,kBAAkB;gBAC/B,MAAM,EAAE,0BAA0B;gBAClC,QAAQ,EAAE,QAAQ;aACrB;SACJ,CAAC;QAEF,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAChB,gDAAgD,EAChD,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE;YACpC,UAAU;YACV,EAAE,CAAC,KAAK,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC,eAAe,CAAC,qBAAqB,EAAE,CAAC,CAAC;YACnF,MAAM,CAAC,UAAU,CAAC,CAAC;YACnB,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YAC/C,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;YAEjC,MAAM;YACN,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;YAEnF,SAAS;YACT,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;YAC3C,MAAM,CAAE,MAAc,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9C,CAAC,CACJ,CAAC;IACN,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,uCAAuC,EAAE,GAAG,EAAE;QACnD,MAAM,WAAW,GAAG;YAChB;gBACI,UAAU,EAAE,UAAU,CAAC,MAAM;gBAC7B,WAAW,EAAE,cAAc;gBAC3B,MAAM,EAAE,uBAAuB;gBAC/B,QAAQ,EAAE,QAAQ;aACrB;YACD;gBACI,UAAU,EAAE,UAAU,CAAC,MAAM;gBAC7B,WAAW,EAAE,eAAe;gBAC5B,MAAM,EAAE,uBAAuB;gBAC/B,QAAQ,EAAE,QAAQ;aACrB;SACJ,CAAC;QAEF,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAChB,6CAA6C,EAC7C,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE;YACpC,UAAU;YACV,EAAE,CAAC,KAAK,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC,eAAe,CAAC,kBAAkB,EAAE,CAAC,CAAC;YAChF,MAAM,CAAC,UAAU,CAAC,CAAC;YACnB,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YAC/C,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;YAEjC,MAAM;YACN,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;YAEnF,SAAS;YACT,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;YAC3C,MAAM,CAAE,MAAc,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9C,CAAC,CACJ,CAAC;IACN,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;QAC1C,MAAM,WAAW,GAAG;YAChB;gBACI,UAAU,EAAE,UAAU,CAAC,KAAK;gBAC5B,WAAW,EAAE,eAAe;gBAC5B,MAAM,EAAE,gBAAgB;gBACxB,QAAQ,EAAE,OAAO;aACpB;YACD;gBACI,UAAU,EAAE,UAAU,CAAC,MAAM;gBAC7B,WAAW,EAAE,gBAAgB;gBAC7B,MAAM,EAAE,gBAAgB;gBACxB,QAAQ,EAAE,QAAQ;aACrB;SACJ,CAAC;QAEF,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAChB,gCAAgC,EAChC,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE;YACpC,UAAU;YACV,EAAE,CAAC,KAAK,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC,eAAe,CAAC,kBAAkB,EAAE,CAAC,CAAC;YAChF,MAAM,CAAC,UAAU,CAAC,CAAC;YACnB,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YAC/C,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;YAEjC,MAAM;YACN,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;YAEnF,SAAS;YACT,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;YAC3C,MAAM,CAAE,MAAc,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC1C,MAAM,CAAE,MAAc,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAC1E,CAAC,CACJ,CAAC;IACN,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;QACtC,MAAM,WAAW,GAAG;YAChB;gBACI,UAAU,EAAE,UAAU,CAAC,KAAK;gBAC5B,WAAW,EAAE,eAAe;gBAC5B,MAAM,EAAE,wBAAwB;gBAChC,QAAQ,EAAE,OAAO;aACpB;YACD;gBACI,UAAU,EAAE,UAAU,CAAC,MAAM;gBAC7B,WAAW,EAAE,gBAAgB;gBAC7B,MAAM,EAAE,wBAAwB;gBAChC,QAAQ,EAAE,QAAQ;aACrB;SACJ,CAAC;QAEF,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAChB,wDAAwD,EACxD,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE;YACpC,UAAU;YACV,wBAAwB,EAAE,CAAC;YAC3B,MAAM,CAAC,UAAU,CAAC,CAAC;YACnB,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YAC9C,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;YAEjC,MAAM;YACN,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;YAEnF,SAAS;YACT,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;YAC3C,MAAM,CAAE,MAAc,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9C,CAAC,CACJ,CAAC;IACN,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;QAC7B,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACjD,UAAU;YACV,EAAE,CAAC,KAAK,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC,eAAe,CAAC,kBAAkB,EAAE,CAAC,CAAC;YAChF,EAAE,CAAC,KAAK,CAAC,aAAa,EAAE,kBAAkB,CAAC;iBACtC,eAAe,CAAC,IAAI,UAAU,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACvD,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;YAEjC,MAAM;YACN,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;YAEnF,SAAS;YACT,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;YACjD,MAAM,CAAE,MAAc,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;YAC5D,UAAU;YACV,wBAAwB,EAAE,CAAC;YAC3B,EAAE,CAAC,KAAK,CAAC,aAAa,EAAE,0BAA0B,CAAC;iBAC9C,eAAe,CAAC,IAAI,UAAU,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACtD,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;YAEjC,MAAM;YACN,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;YAEnF,SAAS;YACT,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;YACjD,MAAM,CAAE,MAAc,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACvC,MAAM,aAAa,GAAG;YAClB,EAAE,YAAY,EAAE,CAAC,EAAE,WAAW,EAAE,oBAAoB,EAAE;YACtD,EAAE,YAAY,EAAE,CAAC,EAAE,WAAW,EAAE,uBAAuB,EAAE;SAC5D,CAAC;QAEF,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAClB,iDAAiD,EACjD,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE;YACjB,UAAU;YACV,wBAAwB,EAAE,CAAC;YAC3B,MAAM,gBAAgB,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;YACzC,MAAM,eAAe,GAAG,EAAE,CAAC,KAAK,CAAC,aAAa,EAAE,QAAQ,CAAC;iBACpD,eAAe,CAAC,gBAAuB,CAAC,CAAC;YAC9C,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YACrD,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;YAEjC,MAAM;YACN,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;YAE9F,SAAS;YACT,MAAM,CAAE,MAA2B,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAC1E,CAAC,CACJ,CAAC;IACN,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAC9B,EAAE,CAAC,kEAAkE,EAAE,GAAG,EAAE;YACxE,UAAU;YACV,EAAE,CAAC,KAAK,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC,eAAe,CAAC,kBAAkB,EAAE,CAAC,CAAC;YAChF,MAAM,aAAa,GAAG,EAAE,CAAC,KAAK,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;YAC5D,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAC/C,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;YAC9C,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;YAEjC,MAAM;YACN,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;YAE/F,SAAS;YACT,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;YAC1B,MAAM,CAAC,aAAa,CAAC,CAAC,oBAAoB,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;YACrE,UAAU;YACV,EAAE,CAAC,KAAK,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC,eAAe,CAAC,kBAAkB,EAAE,CAAC,CAAC;YAChF,EAAE,CAAC,KAAK,CAAC,aAAa,EAAE,kBAAkB,CAAC;iBACtC,eAAe,CAAC,IAAI,UAAU,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAChD,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;YAC5C,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;YAEjC,MAAM;YACN,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;YAE/F,SAAS;YACT,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;YAClE,UAAU;YACV,EAAE,CAAC,KAAK,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC,eAAe,CAAC,kBAAkB,EAAE,CAAC,CAAC;YAChF,EAAE,CAAC,KAAK,CAAC,aAAa,EAAE,kBAAkB,CAAC;iBACtC,eAAe,CAAC,IAAI,UAAU,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAChD,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;YAEjC,MAAM;YACN,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;YAE9F,SAAS;YACT,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;YACtC,UAAU;YACV,EAAE,CAAC,KAAK,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC,eAAe,CAAC,kBAAkB,EAAE,CAAC,CAAC;YAChF,MAAM,aAAa,GAAG,EAAE,CAAC,KAAK,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;YAC5D,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAChD,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;YACrC,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;YAEjC,MAAM;YACN,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;YAE/F,SAAS;YACT,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;YAC1B,MAAM,CAAC,aAAa,CAAC,CAAC,gBAAgB,EAAE,CAAC;QAC7C,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;QACxB,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;YACzC,UAAU;YACV,EAAE,CAAC,KAAK,CAAC,qBAAqB,EAAE,QAAQ,CAAC;iBACpC,eAAe,CAAC,kBAAkB,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;YAChD,EAAE,CAAC,KAAK,CAAC,oBAAoB,EAAE,eAAe,CAAC;iBAC1C,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACtC,EAAE,CAAC,KAAK,CAAC,oBAAoB,EAAE,iBAAiB,CAAC;iBAC5C,eAAe,CAAC,IAAI,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC3C,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAC/C,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;YAEjC,MAAM;YACN,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAEhE,SAAS;YACT,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;YAC7C,MAAM,CAAE,MAAc,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;YACnD,UAAU;YACV,MAAM,cAAc,GAAG,MAAM,CAAC;YAC9B,EAAE,CAAC,KAAK,CAAC,qBAAqB,EAAE,QAAQ,CAAC;iBACpC,eAAe,CAAC,kBAAkB,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC;YACjE,EAAE,CAAC,KAAK,CAAC,oBAAoB,EAAE,eAAe,CAAC;iBAC1C,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACtC,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,cAAc,CAAC,CAAC;YAClD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,EAAE,CAAC,EAAE,EAAE,CAAC;gBACtC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACtB,CAAC;YACD,EAAE,CAAC,KAAK,CAAC,oBAAoB,EAAE,iBAAiB,CAAC;iBAC5C,eAAe,CAAC,UAAU,CAAC,CAAC;YACjC,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAC/C,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;YAEjC,MAAM;YACN,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,cAAc,CAAC,CAAC;YAE7E,SAAS;YACT,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;YAC7C,MAAM,CAAE,MAAc,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;QACpE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;YAC/C,UAAU;YACV,EAAE,CAAC,KAAK,CAAC,qBAAqB,EAAE,QAAQ,CAAC;iBACpC,eAAe,CAAC,EAAC,GAAG,kBAAkB,EAAE,EAAE,SAAS,EAAE,CAAC,EAAC,CAAC,CAAC;YAC9D,EAAE,CAAC,KAAK,CAAC,oBAAoB,EAAE,eAAe,CAAC;iBAC1C,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACtC,EAAE,CAAC,KAAK,CAAC,oBAAoB,EAAE,iBAAiB,CAAC;iBAC5C,eAAe,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;YACxC,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAC/C,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;YAEjC,MAAM;YACN,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAEhE,SAAS;YACT,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;YAC7C,MAAM,CAAE,MAAc,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mEAAmE,EAAE,GAAG,EAAE;YACzE,UAAU;YACV,EAAE,CAAC,KAAK,CAAC,qBAAqB,EAAE,QAAQ,CAAC;iBACpC,eAAe,CAAC,kBAAkB,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;YAChD,EAAE,CAAC,KAAK,CAAC,oBAAoB,EAAE,eAAe,CAAC;iBAC1C,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACtC,EAAE,CAAC,KAAK,CAAC,oBAAoB,EAAE,iBAAiB,CAAC;iBAC5C,eAAe,CAAC,IAAI,UAAU,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;YACtD,MAAM,OAAO,GAAG,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAChD,MAAM,OAAO,GAAG,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAChD,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;YAEjC,MAAM;YACN,MAAM,OAAO,GAAG,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;YACrF,MAAM,gBAAgB,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC;YACtC,MAAM,OAAO,GAAG,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;YACrF,MAAM,iBAAiB,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC;YAEvC,SAAS;YACT,MAAM,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;YAC9C,MAAM,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;YAC9C,MAAM,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;YAC3D,UAAU;YACV,MAAM,MAAM,GAAW;gBACnB,IAAI,EAAE,SAAS;gBACf,QAAQ,EAAE,KAAK;gBACf,WAAW,EAAE,IAAI;gBACjB,IAAI,EAAE,aAAa;gBACnB,WAAW,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;gBAClC,UAAU,EAAE,IAAI;aACZ,CAAC;YACT,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;YAEjC,MAAM;YACN,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;YAEnF,SAAS;YACT,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC9B,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;QAE/B,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;YAC1D,UAAU;YACV,EAAE,CAAC,KAAK,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC,eAAe,CAAC,kBAAkB,EAAE,CAAC,CAAC;YAChF,EAAE,CAAC,KAAK,CAAC,oBAAoB,EAAE,eAAe,CAAC;iBAC1C,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACtC,EAAE,CAAC,KAAK,CAAC,oBAAoB,EAAE,iBAAiB,CAAC;iBAC5C,eAAe,CAAC,IAAI,UAAU,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;YAEtD,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAC/C,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACnD,MAAM,WAAW,GAAG,EAAE,CAAC;YACvB,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC;YAE3C,MAAM;YACN,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;YAEnF,SAAS;YACT,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;YAC7C,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kEAAkE,EAAE,GAAG,EAAE;YACxE,UAAU;YACV,EAAE,CAAC,KAAK,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC,eAAe,CAAC,kBAAkB,EAAE,CAAC,CAAC;YAChF,MAAM,aAAa,GAAG,EAAE,CAAC,KAAK,CAAC,aAAa,EAAE,YAAY,CAAC;iBACtD,kBAAkB,CAAC,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;gBAC7C,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,oBAAoB;YACrD,CAAC,CAAC,CAAC;YAEP,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAC/C,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;YAC7C,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;YACjC,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC;YAEjC,MAAM;YACN,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;YAE/F,SAAS;YACT,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;YAC1B,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;YAClD,MAAM,CAAC,aAAa,CAAC,CAAC,oBAAoB,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACrC,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;YAC1D,UAAU;YACV,EAAE,CAAC,KAAK,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC,eAAe,CAAC,kBAAkB,EAAE,CAAC,CAAC;YAChF,EAAE,CAAC,KAAK,CAAC,oBAAoB,EAAE,eAAe,CAAC;iBAC1C,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACtC,EAAE,CAAC,KAAK,CAAC,oBAAoB,EAAE,iBAAiB,CAAC;iBAC5C,eAAe,CAAC,IAAI,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;YAEnD,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAC/C,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;YAEjC,MAAM;YACN,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;YAEnF,SAAS;YACT,MAAM,CAAE,MAAc,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;YAC/D,UAAU;YACV,MAAM,KAAK,GAAG;gBACV,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO;gBACrC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO;aACxC,CAAC;YAEF,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;gBACvB,EAAE,CAAC,KAAK,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC,eAAe,CAAC,kBAAkB,EAAE,CAAC,CAAC;gBAChF,kBAAkB,CAAC,UAAU,CAAC,CAAC;gBAE/B,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;gBAC/C,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;gBACnD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;gBAEjC,MAAM;gBACN,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;gBAEnF,SAAS;gBACT,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;gBAC7B,MAAM,CAAE,MAAc,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAE1C,EAAE,CAAC,eAAe,EAAE,CAAC;YACzB,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;QAC7B,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;YACpD,UAAU;YACV,EAAE,CAAC,KAAK,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC,eAAe,CAAC,kBAAkB,EAAE,CAAC,CAAC;YAChF,MAAM,MAAM,GAAG,YAAY,CAAC,GAAU,CAAC,CAAC,CAAC,eAAe;YACxD,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;YAEjC,eAAe;YACf,MAAM,CAAC,GAAG,EAAE;gBACR,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;YACxE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;YAC3D,UAAU;YACV,EAAE,CAAC,KAAK,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC,eAAe,CAAC,kBAAkB,EAAE,CAAC,CAAC;YAChF,MAAM,MAAM,GAAW;gBACnB,IAAI,EAAE,WAAW;gBACjB,QAAQ,EAAE,KAAK;gBACf,WAAW,EAAE,IAAI;gBACjB,IAAI,EAAE,YAAY;gBAClB,UAAU,EAAE,IAAI;gBAChB,WAAW,EAAE,IAAI;aACb,CAAC;YACT,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;YAEjC,MAAM;YACN,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;YAEnF,SAAS;YACT,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC9B,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"propertyDecoder.spec.js","sourceRoot":"","sources":["../../src/decoding/propertyDecoder.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC7D,OAAO,KAAK,qBAAqB,MAAM,wCAAwC,CAAC;AAChF,OAAO,KAAK,oBAAoB,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAEzD,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,aAAa,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,aAAa,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAGnE,0BAA0B;AAC1B,MAAM,SAAS,GAAG;IACd,WAAW,EAAE,EAAE;IACf,UAAU,EAAE,CAAC;IACb,uBAAuB,EAAE,CAAC;IAC1B,WAAW,EAAE,GAAG;CACnB,CAAC;AAEF,oDAAoD;AACpD,SAAS,YAAY,CAAC,UAAsB,EAAE,WAAoB,KAAK;IACnE,OAAO;QACH,IAAI,EAAE,KAAK;QACX,QAAQ;QACR,WAAW,EAAE,IAAI;QACjB,IAAI,EAAE,YAAY;QAClB,UAAU,EAAE;YACR,MAAM,EAAE,KAAK;YACb,YAAY,EAAE,UAAU;YACxB,WAAW,EAAE,IAAI;YACjB,IAAI,EAAE,cAAc;SACvB;QACD,WAAW,EAAE,IAAI;KACpB,CAAC;AACN,CAAC;AAED,qCAAqC;AACrC,SAAS,kBAAkB,CAAC,aAAqB,SAAS,CAAC,WAAW,EAAE,YAAoB,SAAS,CAAC,UAAU;IAC5G,OAAO;QACH,UAAU;QACV,SAAS;QACT,sBAAsB,EAAE,CAAC;QACzB,sBAAsB,EAAE,CAAC;QACzB,sBAAsB,EAAE,CAAC;KACrB,CAAC;AACb,CAAC;AAED,0DAA0D;AAC1D,SAAS,qBAAqB,CAC1B,aAAqB,SAAS,CAAC,WAAW,EAC1C,YAAoB,SAAS,CAAC,UAAU,EACxC,eAAuB,CAAC;IAExB,OAAO;QACH,UAAU;QACV,SAAS;QACT,YAAY;QACZ,sBAAsB,EAAE,CAAC;QACzB,sBAAsB,EAAE,CAAC;QACzB,sBAAsB,EAAE,CAAC;KACrB,CAAC;AACb,CAAC;AAED,mDAAmD;AACnD,SAAS,kBAAkB,CAAC,UAAsB;IAC9C,EAAE,CAAC,KAAK,CAAC,oBAAoB,EAAE,eAAe,CAAC,CAAC,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAEjF,IAAI,UAAU,KAAK,UAAU,CAAC,MAAM,IAAI,UAAU,KAAK,UAAU,CAAC,OAAO,EAAE,CAAC;QACxE,EAAE,CAAC,KAAK,CAAC,oBAAoB,EAAE,kBAAkB,CAAC,CAAC,eAAe,CAAC,IAAI,aAAa,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAC9G,CAAC;SAAM,CAAC;QACJ,EAAE,CAAC,KAAK,CAAC,oBAAoB,EAAE,iBAAiB,CAAC,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IACvG,CAAC;AACL,CAAC;AAED,yCAAyC;AACzC,SAAS,0BAA0B,CAAC,UAAsB;IACtD,EAAE,CAAC,KAAK,CAAC,oBAAoB,EAAE,eAAe,CAAC,CAAC,eAAe,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAErF,IAAI,UAAU,KAAK,UAAU,CAAC,MAAM,IAAI,UAAU,KAAK,UAAU,CAAC,OAAO,EAAE,CAAC;QACxE,EAAE,CAAC,KAAK,CAAC,oBAAoB,EAAE,0BAA0B,CAAC,CAAC,eAAe,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IAC3F,CAAC;SAAM,CAAC;QACJ,EAAE,CAAC,KAAK,CAAC,oBAAoB,EAAE,yBAAyB,CAAC,CAAC,eAAe,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IACxF,CAAC;AACL,CAAC;AAED,sCAAsC;AACtC,SAAS,uBAAuB,CAAC,UAAsB;IACnD,EAAE,CAAC,KAAK,CAAC,oBAAoB,EAAE,eAAe,CAAC,CAAC,eAAe,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAElF,IAAI,UAAU,KAAK,UAAU,CAAC,MAAM,IAAI,UAAU,KAAK,UAAU,CAAC,OAAO,EAAE,CAAC;QACxE,EAAE,CAAC,KAAK,CAAC,oBAAoB,EAAE,uBAAuB,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;IACjF,CAAC;SAAM,CAAC;QACJ,EAAE,CAAC,KAAK,CAAC,oBAAoB,EAAE,sBAAsB,CAAC,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;IAC/E,CAAC;AACL,CAAC;AAED,gDAAgD;AAChD,SAAS,gBAAgB,CAAC,UAAsB;IAC5C,IAAI,UAAU,KAAK,UAAU,CAAC,KAAK,EAAE,CAAC;QAClC,EAAE,CAAC,KAAK,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC,eAAe,CAAC,IAAI,YAAY,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IACvG,CAAC;SAAM,IAAI,UAAU,KAAK,UAAU,CAAC,MAAM,EAAE,CAAC;QAC1C,EAAE,CAAC,KAAK,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC,eAAe,CAAC,IAAI,YAAY,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IACxG,CAAC;AACL,CAAC;AAED,uCAAuC;AACvC,SAAS,wBAAwB,CAAC,UAAsB;IACpD,IAAI,UAAU,KAAK,UAAU,CAAC,KAAK,EAAE,CAAC;QAClC,EAAE,CAAC,KAAK,CAAC,aAAa,EAAE,wBAAwB,CAAC,CAAC,eAAe,CAAC,IAAI,YAAY,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAC/G,CAAC;SAAM,IAAI,UAAU,KAAK,UAAU,CAAC,MAAM,EAAE,CAAC;QAC1C,EAAE,CAAC,KAAK,CAAC,aAAa,EAAE,yBAAyB,CAAC,CAAC,eAAe,CAAC,IAAI,YAAY,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAChH,CAAC;AACL,CAAC;AAED,yCAAyC;AACzC,SAAS,0BAA0B,CAAC,UAAsB;IACtD,EAAE,CAAC,KAAK,CAAC,oBAAoB,EAAE,eAAe,CAAC,CAAC,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAEjF,IAAI,UAAU,KAAK,UAAU,CAAC,MAAM,IAAI,UAAU,KAAK,UAAU,CAAC,OAAO,EAAE,CAAC;QACxE,EAAE,CAAC,KAAK,CAAC,oBAAoB,EAAE,0BAA0B,CAAC,CAAC,eAAe,CACtE,IAAI,aAAa,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CACxC,CAAC;IACN,CAAC;SAAM,CAAC;QACJ,EAAE,CAAC,KAAK,CAAC,oBAAoB,EAAE,yBAAyB,CAAC,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IAC/G,CAAC;AACL,CAAC;AAED,iEAAiE;AACjE,SAAS,wBAAwB;IAC7B,MAAM,WAAW,GAAG,EAAE,CAAC,KAAK,CAAC,qBAAqB,EAAE,sBAAsB,CAAC,CAAC;IAE5E,iCAAiC;IACjC,WAAW,CAAC,mBAAmB,CAAC;QAC5B,UAAU,EAAE,SAAS,CAAC,uBAAuB;QAC7C,SAAS,EAAE,SAAS,CAAC,UAAU;QAC/B,sBAAsB,EAAE,CAAC;QACzB,sBAAsB,EAAE,CAAC;QACzB,sBAAsB,EAAE,CAAC;KACrB,CAAC,CAAC;IAEV,gCAAgC;IAChC,WAAW,CAAC,eAAe,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAElD,uCAAuC;IACvC,EAAE,CAAC,KAAK,CAAC,aAAa,EAAE,kBAAkB,CAAC,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC9F,CAAC;AAED,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IAClC,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC,CAAC;IAEtC,QAAQ,CAAC,8CAA8C,EAAE,GAAG,EAAE;QAC1D,MAAM,WAAW,GAAG;YAChB;gBACI,UAAU,EAAE,UAAU,CAAC,MAAM;gBAC7B,WAAW,EAAE,aAAa;gBAC1B,MAAM,EAAE,kBAAkB;gBAC1B,QAAQ,EAAE,QAAQ;aACrB;YACD;gBACI,UAAU,EAAE,UAAU,CAAC,MAAM;gBAC7B,WAAW,EAAE,cAAc;gBAC3B,MAAM,EAAE,kBAAkB;gBAC1B,QAAQ,EAAE,QAAQ;aACrB;SACJ,CAAC;QAEF,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,gCAAgC,EAAE,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE;YAC3F,UAAU;YACV,EAAE,CAAC,KAAK,CAAC,qBAAqB,EAAE,sBAAsB,CAAC,CAAC,eAAe,CAAC,kBAAkB,EAAE,CAAC,CAAC;YAC9F,MAAM,CAAC,UAAU,CAAC,CAAC;YACnB,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YAC/C,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;YAEjC,MAAM;YACN,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;YAEnF,SAAS;YACT,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;YAC3C,MAAM,CAAE,MAAc,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC1C,MAAM,CAAE,MAAc,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAC1E,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,gDAAgD,EAAE,GAAG,EAAE;QAC5D,MAAM,WAAW,GAAG;YAChB;gBACI,UAAU,EAAE,UAAU,CAAC,OAAO;gBAC9B,WAAW,EAAE,aAAa;gBAC1B,MAAM,EAAE,kBAAkB;gBAC1B,QAAQ,EAAE,SAAS;aACtB;YACD;gBACI,UAAU,EAAE,UAAU,CAAC,OAAO;gBAC9B,WAAW,EAAE,cAAc;gBAC3B,MAAM,EAAE,kBAAkB;gBAC1B,QAAQ,EAAE,SAAS;aACtB;SACJ,CAAC;QAEF,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,gCAAgC,EAAE,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE;YAC3F,UAAU;YACV,EAAE,CAAC,KAAK,CAAC,qBAAqB,EAAE,sBAAsB,CAAC,CAAC,eAAe,CAAC,kBAAkB,EAAE,CAAC,CAAC;YAC9F,MAAM,CAAC,UAAU,CAAC,CAAC;YACnB,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YAC/C,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;YAEjC,MAAM;YACN,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;YAEnF,SAAS;YACT,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;YAC3C,MAAM,CAAE,MAAc,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC1C,MAAM,CAAE,MAAc,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAC1E,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,0CAA0C,EAAE,GAAG,EAAE;QACtD,MAAM,WAAW,GAAG;YAChB,EAAE,UAAU,EAAE,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,0BAA0B,EAAE,QAAQ,EAAE,QAAQ,EAAE;YACzF,EAAE,UAAU,EAAE,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,0BAA0B,EAAE,QAAQ,EAAE,QAAQ,EAAE;SAC5F,CAAC;QAEF,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,wDAAwD,EAAE,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE;YACtG,UAAU;YACV,wBAAwB,EAAE,CAAC;YAC3B,MAAM,CAAC,UAAU,CAAC,CAAC;YACnB,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YAC9C,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;YAEjC,MAAM;YACN,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;YAEnF,SAAS;YACT,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,CAAE,MAAc,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACxD,MAAM,WAAW,GAAG;YAChB,EAAE,UAAU,EAAE,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,0BAA0B,EAAE,QAAQ,EAAE,SAAS,EAAE;YAC3F,EAAE,UAAU,EAAE,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,0BAA0B,EAAE,QAAQ,EAAE,SAAS,EAAE;SAC9F,CAAC;QAEF,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,wDAAwD,EAAE,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE;YACtG,UAAU;YACV,wBAAwB,EAAE,CAAC;YAC3B,MAAM,CAAC,UAAU,CAAC,CAAC;YACnB,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YAC9C,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;YAEjC,MAAM;YACN,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;YAEnF,SAAS;YACT,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,CAAE,MAAc,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,0CAA0C,EAAE,GAAG,EAAE;QACtD,MAAM,WAAW,GAAG;YAChB;gBACI,UAAU,EAAE,UAAU,CAAC,MAAM;gBAC7B,WAAW,EAAE,iBAAiB;gBAC9B,MAAM,EAAE,0BAA0B;gBAClC,QAAQ,EAAE,QAAQ;aACrB;YACD;gBACI,UAAU,EAAE,UAAU,CAAC,MAAM;gBAC7B,WAAW,EAAE,kBAAkB;gBAC/B,MAAM,EAAE,0BAA0B;gBAClC,QAAQ,EAAE,QAAQ;aACrB;SACJ,CAAC;QAEF,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAChB,gDAAgD,EAChD,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE;YACpC,UAAU;YACV,EAAE,CAAC,KAAK,CAAC,qBAAqB,EAAE,sBAAsB,CAAC,CAAC,eAAe,CAAC,qBAAqB,EAAE,CAAC,CAAC;YACjG,MAAM,CAAC,UAAU,CAAC,CAAC;YACnB,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YAC/C,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;YAEjC,MAAM;YACN,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;YAEnF,SAAS;YACT,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;YAC3C,MAAM,CAAE,MAAc,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9C,CAAC,CACJ,CAAC;IACN,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,uCAAuC,EAAE,GAAG,EAAE;QACnD,MAAM,WAAW,GAAG;YAChB;gBACI,UAAU,EAAE,UAAU,CAAC,MAAM;gBAC7B,WAAW,EAAE,cAAc;gBAC3B,MAAM,EAAE,uBAAuB;gBAC/B,QAAQ,EAAE,QAAQ;aACrB;YACD;gBACI,UAAU,EAAE,UAAU,CAAC,MAAM;gBAC7B,WAAW,EAAE,eAAe;gBAC5B,MAAM,EAAE,uBAAuB;gBAC/B,QAAQ,EAAE,QAAQ;aACrB;SACJ,CAAC;QAEF,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,6CAA6C,EAAE,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE;YACxG,UAAU;YACV,EAAE,CAAC,KAAK,CAAC,qBAAqB,EAAE,sBAAsB,CAAC,CAAC,eAAe,CAAC,kBAAkB,EAAE,CAAC,CAAC;YAC9F,MAAM,CAAC,UAAU,CAAC,CAAC;YACnB,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YAC/C,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;YAEjC,MAAM;YACN,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;YAEnF,SAAS;YACT,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;YAC3C,MAAM,CAAE,MAAc,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;QAC1C,MAAM,WAAW,GAAG;YAChB;gBACI,UAAU,EAAE,UAAU,CAAC,KAAK;gBAC5B,WAAW,EAAE,eAAe;gBAC5B,MAAM,EAAE,gBAAgB;gBACxB,QAAQ,EAAE,OAAO;aACpB;YACD;gBACI,UAAU,EAAE,UAAU,CAAC,MAAM;gBAC7B,WAAW,EAAE,gBAAgB;gBAC7B,MAAM,EAAE,gBAAgB;gBACxB,QAAQ,EAAE,QAAQ;aACrB;SACJ,CAAC;QAEF,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,gCAAgC,EAAE,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE;YAC3F,UAAU;YACV,EAAE,CAAC,KAAK,CAAC,qBAAqB,EAAE,sBAAsB,CAAC,CAAC,eAAe,CAAC,kBAAkB,EAAE,CAAC,CAAC;YAC9F,MAAM,CAAC,UAAU,CAAC,CAAC;YACnB,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YAC/C,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;YAEjC,MAAM;YACN,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;YAEnF,SAAS;YACT,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;YAC3C,MAAM,CAAE,MAAc,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC1C,MAAM,CAAE,MAAc,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAC1E,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;QACtC,MAAM,WAAW,GAAG;YAChB;gBACI,UAAU,EAAE,UAAU,CAAC,KAAK;gBAC5B,WAAW,EAAE,eAAe;gBAC5B,MAAM,EAAE,wBAAwB;gBAChC,QAAQ,EAAE,OAAO;aACpB;YACD;gBACI,UAAU,EAAE,UAAU,CAAC,MAAM;gBAC7B,WAAW,EAAE,gBAAgB;gBAC7B,MAAM,EAAE,wBAAwB;gBAChC,QAAQ,EAAE,QAAQ;aACrB;SACJ,CAAC;QAEF,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAChB,wDAAwD,EACxD,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE;YACpC,UAAU;YACV,wBAAwB,EAAE,CAAC;YAC3B,MAAM,CAAC,UAAU,CAAC,CAAC;YACnB,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YAC9C,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;YAEjC,MAAM;YACN,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;YAEnF,SAAS;YACT,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;YAC3C,MAAM,CAAE,MAAc,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9C,CAAC,CACJ,CAAC;IACN,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;QAC7B,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACjD,UAAU;YACV,EAAE,CAAC,KAAK,CAAC,qBAAqB,EAAE,sBAAsB,CAAC,CAAC,eAAe,CAAC,kBAAkB,EAAE,CAAC,CAAC;YAC9F,EAAE,CAAC,KAAK,CAAC,aAAa,EAAE,kBAAkB,CAAC,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAC1F,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACvD,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;YAEjC,MAAM;YACN,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;YAEnF,SAAS;YACT,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;YACjD,MAAM,CAAE,MAAc,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;YAC5D,UAAU;YACV,wBAAwB,EAAE,CAAC;YAC3B,EAAE,CAAC,KAAK,CAAC,aAAa,EAAE,0BAA0B,CAAC,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAClG,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACtD,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;YAEjC,MAAM;YACN,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;YAEnF,SAAS;YACT,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;YACjD,MAAM,CAAE,MAAc,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACvC,MAAM,aAAa,GAAG;YAClB,EAAE,YAAY,EAAE,CAAC,EAAE,WAAW,EAAE,oBAAoB,EAAE;YACtD,EAAE,YAAY,EAAE,CAAC,EAAE,WAAW,EAAE,uBAAuB,EAAE;SAC5D,CAAC;QAEF,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,iDAAiD,EAAE,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE;YAC3F,UAAU;YACV,wBAAwB,EAAE,CAAC;YAC3B,MAAM,gBAAgB,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;YACzC,MAAM,eAAe,GAAG,EAAE,CAAC,KAAK,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC,eAAe,CAAC,gBAAuB,CAAC,CAAC;YACzG,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YACrD,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;YAEjC,MAAM;YACN,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;YAE9F,SAAS;YACT,MAAM,CAAE,MAA2B,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAC1E,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAC9B,EAAE,CAAC,kEAAkE,EAAE,GAAG,EAAE;YACxE,UAAU;YACV,EAAE,CAAC,KAAK,CAAC,qBAAqB,EAAE,sBAAsB,CAAC,CAAC,eAAe,CAAC,kBAAkB,EAAE,CAAC,CAAC;YAC9F,MAAM,aAAa,GAAG,EAAE,CAAC,KAAK,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;YAC5D,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAC/C,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;YAC9C,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;YAEjC,MAAM;YACN,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;YAE/F,SAAS;YACT,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;YAC1B,MAAM,CAAC,aAAa,CAAC,CAAC,oBAAoB,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;YACrE,UAAU;YACV,EAAE,CAAC,KAAK,CAAC,qBAAqB,EAAE,sBAAsB,CAAC,CAAC,eAAe,CAAC,kBAAkB,EAAE,CAAC,CAAC;YAC9F,EAAE,CAAC,KAAK,CAAC,aAAa,EAAE,kBAAkB,CAAC,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAC1F,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAChD,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;YAC5C,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;YAEjC,MAAM;YACN,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;YAE/F,SAAS;YACT,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;YAClE,UAAU;YACV,EAAE,CAAC,KAAK,CAAC,qBAAqB,EAAE,sBAAsB,CAAC,CAAC,eAAe,CAAC,kBAAkB,EAAE,CAAC,CAAC;YAC9F,EAAE,CAAC,KAAK,CAAC,aAAa,EAAE,kBAAkB,CAAC,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAC1F,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAChD,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;YAEjC,MAAM;YACN,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;YAE9F,SAAS;YACT,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;YACtC,UAAU;YACV,EAAE,CAAC,KAAK,CAAC,qBAAqB,EAAE,sBAAsB,CAAC,CAAC,eAAe,CAAC,kBAAkB,EAAE,CAAC,CAAC;YAC9F,MAAM,aAAa,GAAG,EAAE,CAAC,KAAK,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;YAC5D,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAChD,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;YACrC,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;YAEjC,MAAM;YACN,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;YAE/F,SAAS;YACT,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;YAC1B,MAAM,CAAC,aAAa,CAAC,CAAC,gBAAgB,EAAE,CAAC;QAC7C,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;QACxB,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;YACzC,UAAU;YACV,EAAE,CAAC,KAAK,CAAC,qBAAqB,EAAE,sBAAsB,CAAC,CAAC,eAAe,CAAC,kBAAkB,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;YACnG,EAAE,CAAC,KAAK,CAAC,oBAAoB,EAAE,eAAe,CAAC,CAAC,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACjF,EAAE,CAAC,KAAK,CAAC,oBAAoB,EAAE,iBAAiB,CAAC,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACxF,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAC/C,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;YAEjC,MAAM;YACN,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAEhE,SAAS;YACT,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;YAC7C,MAAM,CAAE,MAAc,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;YACnD,UAAU;YACV,MAAM,cAAc,GAAG,MAAM,CAAC;YAC9B,EAAE,CAAC,KAAK,CAAC,qBAAqB,EAAE,sBAAsB,CAAC,CAAC,eAAe,CACnE,kBAAkB,CAAC,MAAM,EAAE,cAAc,CAAC,CAC7C,CAAC;YACF,EAAE,CAAC,KAAK,CAAC,oBAAoB,EAAE,eAAe,CAAC,CAAC,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACjF,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,cAAc,CAAC,CAAC;YAClD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,EAAE,CAAC,EAAE,EAAE,CAAC;gBACtC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACtB,CAAC;YACD,EAAE,CAAC,KAAK,CAAC,oBAAoB,EAAE,iBAAiB,CAAC,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;YAC9E,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAC/C,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;YAEjC,MAAM;YACN,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,cAAc,CAAC,CAAC;YAE7E,SAAS;YACT,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;YAC7C,MAAM,CAAE,MAAc,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;QACpE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;YAC/C,UAAU;YACV,EAAE,CAAC,KAAK,CAAC,qBAAqB,EAAE,sBAAsB,CAAC,CAAC,eAAe,CAAC;gBACpE,GAAG,kBAAkB,EAAE;gBACvB,SAAS,EAAE,CAAC;aACf,CAAC,CAAC;YACH,EAAE,CAAC,KAAK,CAAC,oBAAoB,EAAE,eAAe,CAAC,CAAC,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACjF,EAAE,CAAC,KAAK,CAAC,oBAAoB,EAAE,iBAAiB,CAAC,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;YACrF,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAC/C,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;YAEjC,MAAM;YACN,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAEhE,SAAS;YACT,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;YAC7C,MAAM,CAAE,MAAc,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mEAAmE,EAAE,GAAG,EAAE;YACzE,UAAU;YACV,EAAE,CAAC,KAAK,CAAC,qBAAqB,EAAE,sBAAsB,CAAC,CAAC,eAAe,CAAC,kBAAkB,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;YACnG,EAAE,CAAC,KAAK,CAAC,oBAAoB,EAAE,eAAe,CAAC,CAAC,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACjF,EAAE,CAAC,KAAK,CAAC,oBAAoB,EAAE,iBAAiB,CAAC,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;YACnG,MAAM,OAAO,GAAG,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAChD,MAAM,OAAO,GAAG,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAChD,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;YAEjC,MAAM;YACN,MAAM,OAAO,GAAG,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;YACrF,MAAM,gBAAgB,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC;YACtC,MAAM,OAAO,GAAG,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;YACrF,MAAM,iBAAiB,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC;YAEvC,SAAS;YACT,MAAM,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;YAC9C,MAAM,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;YAC9C,MAAM,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;YAC3D,UAAU;YACV,MAAM,MAAM,GAAW;gBACnB,IAAI,EAAE,SAAS;gBACf,QAAQ,EAAE,KAAK;gBACf,WAAW,EAAE,IAAI;gBACjB,IAAI,EAAE,aAAa;gBACnB,WAAW,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;gBAClC,UAAU,EAAE,IAAI;aACZ,CAAC;YACT,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;YAEjC,MAAM;YACN,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;YAEnF,SAAS;YACT,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC9B,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;QAC/B,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;YAC1D,UAAU;YACV,EAAE,CAAC,KAAK,CAAC,qBAAqB,EAAE,sBAAsB,CAAC,CAAC,eAAe,CAAC,kBAAkB,EAAE,CAAC,CAAC;YAC9F,EAAE,CAAC,KAAK,CAAC,oBAAoB,EAAE,eAAe,CAAC,CAAC,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACjF,EAAE,CAAC,KAAK,CAAC,oBAAoB,EAAE,iBAAiB,CAAC,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;YAEnG,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAC/C,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACnD,MAAM,WAAW,GAAG,EAAE,CAAC;YACvB,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC;YAE3C,MAAM;YACN,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;YAEnF,SAAS;YACT,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;YAC7C,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kEAAkE,EAAE,GAAG,EAAE;YACxE,UAAU;YACV,EAAE,CAAC,KAAK,CAAC,qBAAqB,EAAE,sBAAsB,CAAC,CAAC,eAAe,CAAC,kBAAkB,EAAE,CAAC,CAAC;YAC9F,MAAM,aAAa,GAAG,EAAE;iBACnB,KAAK,CAAC,aAAa,EAAE,YAAY,CAAC;iBAClC,kBAAkB,CAAC,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;gBAC7C,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,oBAAoB;YACrD,CAAC,CAAC,CAAC;YAEP,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAC/C,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;YAC7C,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;YACjC,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC;YAEjC,MAAM;YACN,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;YAE/F,SAAS;YACT,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;YAC1B,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;YAClD,MAAM,CAAC,aAAa,CAAC,CAAC,oBAAoB,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACrC,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;YAC1D,UAAU;YACV,EAAE,CAAC,KAAK,CAAC,qBAAqB,EAAE,sBAAsB,CAAC,CAAC,eAAe,CAAC,kBAAkB,EAAE,CAAC,CAAC;YAC9F,EAAE,CAAC,KAAK,CAAC,oBAAoB,EAAE,eAAe,CAAC,CAAC,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACjF,EAAE,CAAC,KAAK,CAAC,oBAAoB,EAAE,iBAAiB,CAAC,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;YAEhG,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAC/C,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;YAEjC,MAAM;YACN,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;YAEnF,SAAS;YACT,MAAM,CAAE,MAAc,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;YAC/D,UAAU;YACV,MAAM,KAAK,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;YAE7F,KAAK,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;gBACzB,EAAE,CAAC,KAAK,CAAC,qBAAqB,EAAE,sBAAsB,CAAC,CAAC,eAAe,CAAC,kBAAkB,EAAE,CAAC,CAAC;gBAC9F,kBAAkB,CAAC,UAAU,CAAC,CAAC;gBAE/B,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;gBAC/C,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;gBACnD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;gBAEjC,MAAM;gBACN,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;gBAEnF,SAAS;gBACT,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;gBAC7B,MAAM,CAAE,MAAc,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAE1C,EAAE,CAAC,eAAe,EAAE,CAAC;YACzB,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;QAC7B,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;YACpD,UAAU;YACV,EAAE,CAAC,KAAK,CAAC,qBAAqB,EAAE,sBAAsB,CAAC,CAAC,eAAe,CAAC,kBAAkB,EAAE,CAAC,CAAC;YAC9F,MAAM,MAAM,GAAG,YAAY,CAAC,GAAU,CAAC,CAAC,CAAC,eAAe;YACxD,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;YAEjC,eAAe;YACf,MAAM,CAAC,GAAG,EAAE;gBACR,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;YACxE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;YAC3D,UAAU;YACV,EAAE,CAAC,KAAK,CAAC,qBAAqB,EAAE,sBAAsB,CAAC,CAAC,eAAe,CAAC,kBAAkB,EAAE,CAAC,CAAC;YAC9F,MAAM,MAAM,GAAW;gBACnB,IAAI,EAAE,WAAW;gBACjB,QAAQ,EAAE,KAAK;gBACf,WAAW,EAAE,IAAI;gBACjB,IAAI,EAAE,YAAY;gBAClB,UAAU,EAAE,IAAI;gBAChB,WAAW,EAAE,IAAI;aACb,CAAC;YACT,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;YAEjC,MAAM;YACN,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;YAEnF,SAAS;YACT,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC9B,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC","sourcesContent":["import { afterEach, describe, expect, it, vi } from \"vitest\";\nimport * as StreamMetadataDecoder from \"../metadata/tile/streamMetadataDecoder\";\nimport * as IntegerStreamDecoder from \"./integerStreamDecoder\";\nimport { decodePropertyColumn } from \"./propertyDecoder\";\nimport { type Column } from \"../metadata/tileset/tilesetMetadata\";\nimport { ScalarType } from \"../metadata/tile/scalarType\";\nimport IntWrapper from \"./intWrapper\";\nimport { IntFlatVector } from \"../vector/flat/intFlatVector\";\nimport { LongFlatVector } from \"../vector/flat/longFlatVector\";\nimport { IntSequenceVector } from \"../vector/sequence/intSequenceVector\";\nimport { LongSequenceVector } from \"../vector/sequence/longSequenceVector\";\nimport { IntConstVector } from \"../vector/constant/intConstVector\";\nimport { LongConstVector } from \"../vector/constant/longConstVector\";\nimport { VectorType } from \"../vector/vectorType\";\nimport * as StringDecoder from \"./stringDecoder\";\nimport * as decodingUtils from \"./decodingUtils\";\nimport { BooleanFlatVector } from \"../vector/flat/booleanFlatVector\";\nimport { FloatFlatVector } from \"../vector/flat/floatFlatVector\";\nimport { DoubleFlatVector } from \"../vector/flat/doubleFlatVector\";\nimport { type StringFlatVector } from \"../vector/flat/stringFlatVector\";\n\n// Constants for test data\nconst TEST_DATA = {\n BYTE_LENGTH: 12,\n NUM_VALUES: 3,\n NULLABILITY_BYTE_LENGTH: 1,\n BUFFER_SIZE: 100,\n};\n\n// Helper: Create column with specific configuration\nfunction createColumn(scalarType: ScalarType, nullable: boolean = false): Column {\n return {\n name: \"age\",\n nullable,\n columnScope: null,\n type: \"scalarType\",\n scalarType: {\n longID: false,\n physicalType: scalarType,\n logicalType: null,\n type: \"physicalType\",\n },\n complexType: null,\n };\n}\n\n// Helper: Setup stream metadata mock\nfunction mockStreamMetadata(byteLength: number = TEST_DATA.BYTE_LENGTH, numValues: number = TEST_DATA.NUM_VALUES) {\n return {\n byteLength,\n numValues,\n logicalLevelTechnique1: 0,\n logicalLevelTechnique2: 0,\n physicalLevelTechnique: 0,\n } as any;\n}\n\n// Helper: Setup RLE stream metadata for sequence encoding\nfunction mockRleStreamMetadata(\n byteLength: number = TEST_DATA.BYTE_LENGTH,\n numValues: number = TEST_DATA.NUM_VALUES,\n numRleValues: number = 2,\n) {\n return {\n byteLength,\n numValues,\n numRleValues,\n logicalLevelTechnique1: 0,\n logicalLevelTechnique2: 0,\n physicalLevelTechnique: 0,\n } as any;\n}\n\n// Helper: Mock integer decoders (INT_32 or INT_64)\nfunction mockIntegerDecoder(scalarType: ScalarType) {\n vi.spyOn(IntegerStreamDecoder, \"getVectorType\").mockReturnValue(VectorType.FLAT);\n\n if (scalarType === ScalarType.INT_64 || scalarType === ScalarType.UINT_64) {\n vi.spyOn(IntegerStreamDecoder, \"decodeLongStream\").mockReturnValue(new BigInt64Array([100n, 200n, 300n]));\n } else {\n vi.spyOn(IntegerStreamDecoder, \"decodeIntStream\").mockReturnValue(new Int32Array([100, 200, 300]));\n }\n}\n\n// Helper: Mock integer sequence decoders\nfunction mockIntegerSequenceDecoder(scalarType: ScalarType) {\n vi.spyOn(IntegerStreamDecoder, \"getVectorType\").mockReturnValue(VectorType.SEQUENCE);\n\n if (scalarType === ScalarType.INT_64 || scalarType === ScalarType.UINT_64) {\n vi.spyOn(IntegerStreamDecoder, \"decodeSequenceLongStream\").mockReturnValue([10n, 20n]);\n } else {\n vi.spyOn(IntegerStreamDecoder, \"decodeSequenceIntStream\").mockReturnValue([10, 20]);\n }\n}\n\n// Helper: Mock integer const decoders\nfunction mockIntegerConstDecoder(scalarType: ScalarType) {\n vi.spyOn(IntegerStreamDecoder, \"getVectorType\").mockReturnValue(VectorType.CONST);\n\n if (scalarType === ScalarType.INT_64 || scalarType === ScalarType.UINT_64) {\n vi.spyOn(IntegerStreamDecoder, \"decodeConstLongStream\").mockReturnValue(42n);\n } else {\n vi.spyOn(IntegerStreamDecoder, \"decodeConstIntStream\").mockReturnValue(42);\n }\n}\n\n// Helper: Mock float decoders (FLOAT or DOUBLE)\nfunction mockFloatDecoder(scalarType: ScalarType) {\n if (scalarType === ScalarType.FLOAT) {\n vi.spyOn(decodingUtils, \"decodeFloatsLE\").mockReturnValue(new Float32Array([100.5, 200.5, 300.5]));\n } else if (scalarType === ScalarType.DOUBLE) {\n vi.spyOn(decodingUtils, \"decodeDoublesLE\").mockReturnValue(new Float64Array([100.5, 200.5, 300.5]));\n }\n}\n\n// Helper: Mock nullable float decoders\nfunction mockNullableFloatDecoder(scalarType: ScalarType) {\n if (scalarType === ScalarType.FLOAT) {\n vi.spyOn(decodingUtils, \"decodeNullableFloatsLE\").mockReturnValue(new Float32Array([100.5, 200.5, 300.5]));\n } else if (scalarType === ScalarType.DOUBLE) {\n vi.spyOn(decodingUtils, \"decodeNullableDoublesLE\").mockReturnValue(new Float64Array([100.5, 200.5, 300.5]));\n }\n}\n\n// Helper: Mock nullable integer decoders\nfunction mockNullableIntegerDecoder(scalarType: ScalarType) {\n vi.spyOn(IntegerStreamDecoder, \"getVectorType\").mockReturnValue(VectorType.FLAT);\n\n if (scalarType === ScalarType.INT_64 || scalarType === ScalarType.UINT_64) {\n vi.spyOn(IntegerStreamDecoder, \"decodeNullableLongStream\").mockReturnValue(\n new BigInt64Array([100n, 200n, 300n]),\n );\n } else {\n vi.spyOn(IntegerStreamDecoder, \"decodeNullableIntStream\").mockReturnValue(new Int32Array([100, 200, 300]));\n }\n}\n\n// Helper: Setup nullable column with separate nullability stream\nfunction setupNullableStreamMocks() {\n const metadataSpy = vi.spyOn(StreamMetadataDecoder, \"decodeStreamMetadata\");\n\n // First call: nullability stream\n metadataSpy.mockReturnValueOnce({\n byteLength: TEST_DATA.NULLABILITY_BYTE_LENGTH,\n numValues: TEST_DATA.NUM_VALUES,\n logicalLevelTechnique1: 0,\n logicalLevelTechnique2: 0,\n physicalLevelTechnique: 0,\n } as any);\n\n // Subsequent calls: data stream\n metadataSpy.mockReturnValue(mockStreamMetadata());\n\n // Mock the nullability bitmap decoding\n vi.spyOn(decodingUtils, \"decodeBooleanRle\").mockReturnValue(new Uint8Array([0b00000111]));\n}\n\ndescribe(\"decodePropertyColumn\", () => {\n afterEach(() => vi.restoreAllMocks());\n\n describe(\"Number Columns - Non-Nullable - Signed Types\", () => {\n const numberTypes = [\n {\n scalarType: ScalarType.INT_32,\n vectorClass: IntFlatVector,\n mockFn: mockIntegerDecoder,\n testName: \"INT_32\",\n },\n {\n scalarType: ScalarType.INT_64,\n vectorClass: LongFlatVector,\n mockFn: mockIntegerDecoder,\n testName: \"INT_64\",\n },\n ];\n\n it.each(numberTypes)(\"should decode $testName column\", ({ scalarType, vectorClass, mockFn }) => {\n // Arrange\n vi.spyOn(StreamMetadataDecoder, \"decodeStreamMetadata\").mockReturnValue(mockStreamMetadata());\n mockFn(scalarType);\n const column = createColumn(scalarType, false);\n const data = new Uint8Array(TEST_DATA.BUFFER_SIZE);\n const offset = new IntWrapper(0);\n\n // Act\n const result = decodePropertyColumn(data, offset, column, 1, TEST_DATA.NUM_VALUES);\n\n // Assert\n expect(result).toBeInstanceOf(vectorClass);\n expect((result as any)._name).toBe(\"age\");\n expect((result as any).dataBuffer).toHaveLength(TEST_DATA.NUM_VALUES);\n });\n });\n\n describe(\"Number Columns - Non-Nullable - Unsigned Types\", () => {\n const numberTypes = [\n {\n scalarType: ScalarType.UINT_32,\n vectorClass: IntFlatVector,\n mockFn: mockIntegerDecoder,\n testName: \"UINT_32\",\n },\n {\n scalarType: ScalarType.UINT_64,\n vectorClass: LongFlatVector,\n mockFn: mockIntegerDecoder,\n testName: \"UINT_64\",\n },\n ];\n\n it.each(numberTypes)(\"should decode $testName column\", ({ scalarType, vectorClass, mockFn }) => {\n // Arrange\n vi.spyOn(StreamMetadataDecoder, \"decodeStreamMetadata\").mockReturnValue(mockStreamMetadata());\n mockFn(scalarType);\n const column = createColumn(scalarType, false);\n const data = new Uint8Array(TEST_DATA.BUFFER_SIZE);\n const offset = new IntWrapper(0);\n\n // Act\n const result = decodePropertyColumn(data, offset, column, 1, TEST_DATA.NUM_VALUES);\n\n // Assert\n expect(result).toBeInstanceOf(vectorClass);\n expect((result as any)._name).toBe(\"age\");\n expect((result as any).dataBuffer).toHaveLength(TEST_DATA.NUM_VALUES);\n });\n });\n\n describe(\"Number Columns - Nullable - Signed Types\", () => {\n const numberTypes = [\n { scalarType: ScalarType.INT_32, mockFn: mockNullableIntegerDecoder, testName: \"INT_32\" },\n { scalarType: ScalarType.INT_64, mockFn: mockNullableIntegerDecoder, testName: \"INT_64\" },\n ];\n\n it.each(numberTypes)(\"should decode nullable $testName column with null mask\", ({ scalarType, mockFn }) => {\n // Arrange\n setupNullableStreamMocks();\n mockFn(scalarType);\n const column = createColumn(scalarType, true);\n const data = new Uint8Array(TEST_DATA.BUFFER_SIZE);\n const offset = new IntWrapper(0);\n\n // Act\n const result = decodePropertyColumn(data, offset, column, 2, TEST_DATA.NUM_VALUES);\n\n // Assert\n expect(result).toBeDefined();\n expect((result as any)._name).toBe(\"age\");\n });\n });\n\n describe(\"Number Columns - Nullable - Unsigned Types\", () => {\n const numberTypes = [\n { scalarType: ScalarType.UINT_32, mockFn: mockNullableIntegerDecoder, testName: \"UINT_32\" },\n { scalarType: ScalarType.UINT_64, mockFn: mockNullableIntegerDecoder, testName: \"UINT_64\" },\n ];\n\n it.each(numberTypes)(\"should decode nullable $testName column with null mask\", ({ scalarType, mockFn }) => {\n // Arrange\n setupNullableStreamMocks();\n mockFn(scalarType);\n const column = createColumn(scalarType, true);\n const data = new Uint8Array(TEST_DATA.BUFFER_SIZE);\n const offset = new IntWrapper(0);\n\n // Act\n const result = decodePropertyColumn(data, offset, column, 2, TEST_DATA.NUM_VALUES);\n\n // Assert\n expect(result).toBeDefined();\n expect((result as any)._name).toBe(\"age\");\n });\n });\n\n describe(\"Integer Vector Encoding Types - SEQUENCE\", () => {\n const numberTypes = [\n {\n scalarType: ScalarType.INT_32,\n vectorClass: IntSequenceVector,\n mockFn: mockIntegerSequenceDecoder,\n testName: \"INT_32\",\n },\n {\n scalarType: ScalarType.INT_64,\n vectorClass: LongSequenceVector,\n mockFn: mockIntegerSequenceDecoder,\n testName: \"INT_64\",\n },\n ];\n\n it.each(numberTypes)(\n \"should decode $testName with SEQUENCE encoding\",\n ({ scalarType, vectorClass, mockFn }) => {\n // Arrange\n vi.spyOn(StreamMetadataDecoder, \"decodeStreamMetadata\").mockReturnValue(mockRleStreamMetadata());\n mockFn(scalarType);\n const column = createColumn(scalarType, false);\n const data = new Uint8Array(TEST_DATA.BUFFER_SIZE);\n const offset = new IntWrapper(0);\n\n // Act\n const result = decodePropertyColumn(data, offset, column, 1, TEST_DATA.NUM_VALUES);\n\n // Assert\n expect(result).toBeInstanceOf(vectorClass);\n expect((result as any)._name).toBe(\"age\");\n },\n );\n });\n\n describe(\"Integer Vector Encoding Types - CONST\", () => {\n const numberTypes = [\n {\n scalarType: ScalarType.INT_32,\n vectorClass: IntConstVector,\n mockFn: mockIntegerConstDecoder,\n testName: \"INT_32\",\n },\n {\n scalarType: ScalarType.INT_64,\n vectorClass: LongConstVector,\n mockFn: mockIntegerConstDecoder,\n testName: \"INT_64\",\n },\n ];\n\n it.each(numberTypes)(\"should decode $testName with CONST encoding\", ({ scalarType, vectorClass, mockFn }) => {\n // Arrange\n vi.spyOn(StreamMetadataDecoder, \"decodeStreamMetadata\").mockReturnValue(mockStreamMetadata());\n mockFn(scalarType);\n const column = createColumn(scalarType, false);\n const data = new Uint8Array(TEST_DATA.BUFFER_SIZE);\n const offset = new IntWrapper(0);\n\n // Act\n const result = decodePropertyColumn(data, offset, column, 1, TEST_DATA.NUM_VALUES);\n\n // Assert\n expect(result).toBeInstanceOf(vectorClass);\n expect((result as any)._name).toBe(\"age\");\n });\n });\n\n describe(\"Float Columns - Non-Nullable\", () => {\n const numberTypes = [\n {\n scalarType: ScalarType.FLOAT,\n vectorClass: FloatFlatVector,\n mockFn: mockFloatDecoder,\n testName: \"FLOAT\",\n },\n {\n scalarType: ScalarType.DOUBLE,\n vectorClass: DoubleFlatVector,\n mockFn: mockFloatDecoder,\n testName: \"DOUBLE\",\n },\n ];\n\n it.each(numberTypes)(\"should decode $testName column\", ({ scalarType, vectorClass, mockFn }) => {\n // Arrange\n vi.spyOn(StreamMetadataDecoder, \"decodeStreamMetadata\").mockReturnValue(mockStreamMetadata());\n mockFn(scalarType);\n const column = createColumn(scalarType, false);\n const data = new Uint8Array(TEST_DATA.BUFFER_SIZE);\n const offset = new IntWrapper(0);\n\n // Act\n const result = decodePropertyColumn(data, offset, column, 1, TEST_DATA.NUM_VALUES);\n\n // Assert\n expect(result).toBeInstanceOf(vectorClass);\n expect((result as any)._name).toBe(\"age\");\n expect((result as any).dataBuffer).toHaveLength(TEST_DATA.NUM_VALUES);\n });\n });\n\n describe(\"Float Columns - Nullable\", () => {\n const numberTypes = [\n {\n scalarType: ScalarType.FLOAT,\n vectorClass: FloatFlatVector,\n mockFn: mockNullableFloatDecoder,\n testName: \"FLOAT\",\n },\n {\n scalarType: ScalarType.DOUBLE,\n vectorClass: DoubleFlatVector,\n mockFn: mockNullableFloatDecoder,\n testName: \"DOUBLE\",\n },\n ];\n\n it.each(numberTypes)(\n \"should decode nullable $testName column with null mask\",\n ({ scalarType, vectorClass, mockFn }) => {\n // Arrange\n setupNullableStreamMocks();\n mockFn(scalarType);\n const column = createColumn(scalarType, true);\n const data = new Uint8Array(TEST_DATA.BUFFER_SIZE);\n const offset = new IntWrapper(0);\n\n // Act\n const result = decodePropertyColumn(data, offset, column, 2, TEST_DATA.NUM_VALUES);\n\n // Assert\n expect(result).toBeInstanceOf(vectorClass);\n expect((result as any)._name).toBe(\"age\");\n },\n );\n });\n\n describe(\"Boolean Columns\", () => {\n it(\"should decode non-nullable BOOLEAN column\", () => {\n // Arrange\n vi.spyOn(StreamMetadataDecoder, \"decodeStreamMetadata\").mockReturnValue(mockStreamMetadata());\n vi.spyOn(decodingUtils, \"decodeBooleanRle\").mockReturnValue(new Uint8Array([0b00000111]));\n const column = createColumn(ScalarType.BOOLEAN, false);\n const data = new Uint8Array(TEST_DATA.BUFFER_SIZE);\n const offset = new IntWrapper(0);\n\n // Act\n const result = decodePropertyColumn(data, offset, column, 1, TEST_DATA.NUM_VALUES);\n\n // Assert\n expect(result).toBeInstanceOf(BooleanFlatVector);\n expect((result as any)._name).toBe(\"age\");\n });\n\n it(\"should decode nullable BOOLEAN column with null mask\", () => {\n // Arrange\n setupNullableStreamMocks();\n vi.spyOn(decodingUtils, \"decodeNullableBooleanRle\").mockReturnValue(new Uint8Array([0b00000111]));\n const column = createColumn(ScalarType.BOOLEAN, true);\n const data = new Uint8Array(TEST_DATA.BUFFER_SIZE);\n const offset = new IntWrapper(0);\n\n // Act\n const result = decodePropertyColumn(data, offset, column, 2, TEST_DATA.NUM_VALUES);\n\n // Assert\n expect(result).toBeInstanceOf(BooleanFlatVector);\n expect((result as any)._name).toBe(\"age\");\n });\n });\n\n describe(\"String Columns - Nullable\", () => {\n const streamConfigs = [\n { totalStreams: 2, description: \"single data stream\" },\n { totalStreams: 4, description: \"multiple data streams\" },\n ];\n\n it.each(streamConfigs)(\"should decode nullable STRING with $description\", ({ totalStreams }) => {\n // Arrange\n setupNullableStreamMocks();\n const mockStringVector = { name: \"age\" };\n const stringDecodeSpy = vi.spyOn(StringDecoder, \"decodeString\").mockReturnValue(mockStringVector as any);\n const column = createColumn(ScalarType.STRING, true);\n const data = new Uint8Array(TEST_DATA.BUFFER_SIZE);\n const offset = new IntWrapper(0);\n\n // Act\n const result = decodePropertyColumn(data, offset, column, totalStreams, TEST_DATA.NUM_VALUES);\n\n // Assert\n expect((result as StringFlatVector).name).toBe(mockStringVector.name);\n });\n });\n\n describe(\"Column Filtering\", () => {\n it(\"should return null when column NOT in propertyColumnNames filter\", () => {\n // Arrange\n vi.spyOn(StreamMetadataDecoder, \"decodeStreamMetadata\").mockReturnValue(mockStreamMetadata());\n const skipColumnSpy = vi.spyOn(decodingUtils, \"skipColumn\");\n const column = createColumn(ScalarType.STRING);\n const filterList = new Set([\"name\", \"value\"]);\n const data = new Uint8Array(TEST_DATA.BUFFER_SIZE);\n const offset = new IntWrapper(0);\n\n // Act\n const result = decodePropertyColumn(data, offset, column, 1, TEST_DATA.NUM_VALUES, filterList);\n\n // Assert\n expect(result).toBeNull();\n expect(skipColumnSpy).toHaveBeenCalledWith(1, data, offset);\n });\n\n it(\"should decode column when it IS in propertyColumnNames filter\", () => {\n // Arrange\n vi.spyOn(StreamMetadataDecoder, \"decodeStreamMetadata\").mockReturnValue(mockStreamMetadata());\n vi.spyOn(decodingUtils, \"decodeBooleanRle\").mockReturnValue(new Uint8Array([0b00000111]));\n const column = createColumn(ScalarType.BOOLEAN);\n const filterList = new Set([\"age\", \"name\"]);\n const data = new Uint8Array(TEST_DATA.BUFFER_SIZE);\n const offset = new IntWrapper(0);\n\n // Act\n const result = decodePropertyColumn(data, offset, column, 1, TEST_DATA.NUM_VALUES, filterList);\n\n // Assert\n expect(result).toBeInstanceOf(BooleanFlatVector);\n });\n\n it(\"should ignore filter when propertyColumnNames is undefined\", () => {\n // Arrange\n vi.spyOn(StreamMetadataDecoder, \"decodeStreamMetadata\").mockReturnValue(mockStreamMetadata());\n vi.spyOn(decodingUtils, \"decodeBooleanRle\").mockReturnValue(new Uint8Array([0b00000111]));\n const column = createColumn(ScalarType.BOOLEAN);\n const data = new Uint8Array(TEST_DATA.BUFFER_SIZE);\n const offset = new IntWrapper(0);\n\n // Act\n const result = decodePropertyColumn(data, offset, column, 1, TEST_DATA.NUM_VALUES, undefined);\n\n // Assert\n expect(result).toBeInstanceOf(BooleanFlatVector);\n });\n\n it(\"should handle empty filter set\", () => {\n // Arrange\n vi.spyOn(StreamMetadataDecoder, \"decodeStreamMetadata\").mockReturnValue(mockStreamMetadata());\n const skipColumnSpy = vi.spyOn(decodingUtils, \"skipColumn\");\n const column = createColumn(ScalarType.BOOLEAN);\n const filterList = new Set<string>();\n const data = new Uint8Array(TEST_DATA.BUFFER_SIZE);\n const offset = new IntWrapper(0);\n\n // Act\n const result = decodePropertyColumn(data, offset, column, 1, TEST_DATA.NUM_VALUES, filterList);\n\n // Assert\n expect(result).toBeNull();\n expect(skipColumnSpy).toHaveBeenCalled();\n });\n });\n\n describe(\"Edge Cases\", () => {\n it(\"should handle single value column\", () => {\n // Arrange\n vi.spyOn(StreamMetadataDecoder, \"decodeStreamMetadata\").mockReturnValue(mockStreamMetadata(12, 1));\n vi.spyOn(IntegerStreamDecoder, \"getVectorType\").mockReturnValue(VectorType.FLAT);\n vi.spyOn(IntegerStreamDecoder, \"decodeIntStream\").mockReturnValue(new Int32Array([42]));\n const column = createColumn(ScalarType.INT_32);\n const data = new Uint8Array(TEST_DATA.BUFFER_SIZE);\n const offset = new IntWrapper(0);\n\n // Act\n const result = decodePropertyColumn(data, offset, column, 1, 1);\n\n // Assert\n expect(result).toBeInstanceOf(IntFlatVector);\n expect((result as any).dataBuffer).toHaveLength(1);\n });\n\n it(\"should handle large column with many values\", () => {\n // Arrange\n const largeNumValues = 100000;\n vi.spyOn(StreamMetadataDecoder, \"decodeStreamMetadata\").mockReturnValue(\n mockStreamMetadata(400000, largeNumValues),\n );\n vi.spyOn(IntegerStreamDecoder, \"getVectorType\").mockReturnValue(VectorType.FLAT);\n const largeArray = new Int32Array(largeNumValues);\n for (let i = 0; i < largeNumValues; i++) {\n largeArray[i] = i;\n }\n vi.spyOn(IntegerStreamDecoder, \"decodeIntStream\").mockReturnValue(largeArray);\n const column = createColumn(ScalarType.INT_32);\n const data = new Uint8Array(TEST_DATA.BUFFER_SIZE);\n const offset = new IntWrapper(0);\n\n // Act\n const result = decodePropertyColumn(data, offset, column, 1, largeNumValues);\n\n // Assert\n expect(result).toBeInstanceOf(IntFlatVector);\n expect((result as any).dataBuffer).toHaveLength(largeNumValues);\n });\n\n it(\"should handle zero numValues gracefully\", () => {\n // Arrange\n vi.spyOn(StreamMetadataDecoder, \"decodeStreamMetadata\").mockReturnValue({\n ...mockStreamMetadata(),\n numValues: 0,\n });\n vi.spyOn(IntegerStreamDecoder, \"getVectorType\").mockReturnValue(VectorType.FLAT);\n vi.spyOn(IntegerStreamDecoder, \"decodeIntStream\").mockReturnValue(new Int32Array(0));\n const column = createColumn(ScalarType.INT_32);\n const data = new Uint8Array(TEST_DATA.BUFFER_SIZE);\n const offset = new IntWrapper(0);\n\n // Act\n const result = decodePropertyColumn(data, offset, column, 1, 0);\n\n // Assert\n expect(result).toBeInstanceOf(IntFlatVector);\n expect((result as any).dataBuffer).toHaveLength(0);\n });\n\n it(\"should handle multiple sequential columns with offset advancement\", () => {\n // Arrange\n vi.spyOn(StreamMetadataDecoder, \"decodeStreamMetadata\").mockReturnValue(mockStreamMetadata(12, 3));\n vi.spyOn(IntegerStreamDecoder, \"getVectorType\").mockReturnValue(VectorType.FLAT);\n vi.spyOn(IntegerStreamDecoder, \"decodeIntStream\").mockReturnValue(new Int32Array([100, 200, 300]));\n const column1 = createColumn(ScalarType.INT_32);\n const column2 = createColumn(ScalarType.INT_32);\n const data = new Uint8Array(TEST_DATA.BUFFER_SIZE);\n const offset = new IntWrapper(0);\n\n // Act\n const result1 = decodePropertyColumn(data, offset, column1, 1, TEST_DATA.NUM_VALUES);\n const offsetAfterFirst = offset.get();\n const result2 = decodePropertyColumn(data, offset, column2, 1, TEST_DATA.NUM_VALUES);\n const offsetAfterSecond = offset.get();\n\n // Assert\n expect(result1).toBeInstanceOf(IntFlatVector);\n expect(result2).toBeInstanceOf(IntFlatVector);\n expect(offsetAfterSecond).toEqual(offsetAfterFirst);\n });\n\n it(\"should handle non-scalar column type returning null\", () => {\n // Arrange\n const column: Column = {\n name: \"complex\",\n nullable: false,\n columnScope: null,\n type: \"complexType\",\n complexType: { type: \"arrayType\" },\n scalarType: null,\n } as any;\n const data = new Uint8Array(TEST_DATA.BUFFER_SIZE);\n const offset = new IntWrapper(0);\n\n // Act\n const result = decodePropertyColumn(data, offset, column, 2, TEST_DATA.NUM_VALUES);\n\n // Assert\n expect(result).toBeNull();\n });\n });\n\n describe(\"Offset Management\", () => {\n it(\"should handle offset at non-zero starting position\", () => {\n // Arrange\n vi.spyOn(StreamMetadataDecoder, \"decodeStreamMetadata\").mockReturnValue(mockStreamMetadata());\n vi.spyOn(IntegerStreamDecoder, \"getVectorType\").mockReturnValue(VectorType.FLAT);\n vi.spyOn(IntegerStreamDecoder, \"decodeIntStream\").mockReturnValue(new Int32Array([100, 200, 300]));\n\n const column = createColumn(ScalarType.INT_32);\n const data = new Uint8Array(TEST_DATA.BUFFER_SIZE);\n const startOffset = 50;\n const offset = new IntWrapper(startOffset);\n\n // Act\n const result = decodePropertyColumn(data, offset, column, 1, TEST_DATA.NUM_VALUES);\n\n // Assert\n expect(result).toBeInstanceOf(IntFlatVector);\n expect(offset.get()).toEqual(startOffset);\n });\n\n it(\"should correctly skip columns with filterList and advance offset\", () => {\n // Arrange\n vi.spyOn(StreamMetadataDecoder, \"decodeStreamMetadata\").mockReturnValue(mockStreamMetadata());\n const skipColumnSpy = vi\n .spyOn(decodingUtils, \"skipColumn\")\n .mockImplementation((numStreams, data, offset) => {\n offset.add(12 * numStreams); // Simulate skipping\n });\n\n const column = createColumn(ScalarType.INT_32);\n const filterList = new Set([\"other_column\"]);\n const data = new Uint8Array(TEST_DATA.BUFFER_SIZE);\n const offset = new IntWrapper(0);\n const startOffset = offset.get();\n\n // Act\n const result = decodePropertyColumn(data, offset, column, 3, TEST_DATA.NUM_VALUES, filterList);\n\n // Assert\n expect(result).toBeNull();\n expect(offset.get()).toBeGreaterThan(startOffset);\n expect(skipColumnSpy).toHaveBeenCalledWith(3, data, offset);\n });\n });\n\n describe(\"Type Consistency Checks\", () => {\n it(\"should preserve column metadata in returned vector\", () => {\n // Arrange\n vi.spyOn(StreamMetadataDecoder, \"decodeStreamMetadata\").mockReturnValue(mockStreamMetadata());\n vi.spyOn(IntegerStreamDecoder, \"getVectorType\").mockReturnValue(VectorType.FLAT);\n vi.spyOn(IntegerStreamDecoder, \"decodeIntStream\").mockReturnValue(new Int32Array([10, 20, 30]));\n\n const column = createColumn(ScalarType.INT_32);\n const data = new Uint8Array(TEST_DATA.BUFFER_SIZE);\n const offset = new IntWrapper(0);\n\n // Act\n const result = decodePropertyColumn(data, offset, column, 1, TEST_DATA.NUM_VALUES);\n\n // Assert\n expect((result as any)._name).toBe(column.name);\n });\n\n it(\"should handle all signed and unsigned type combinations\", () => {\n // Arrange\n const types = [ScalarType.INT_32, ScalarType.UINT_32, ScalarType.INT_64, ScalarType.UINT_64];\n\n types.forEach((scalarType) => {\n vi.spyOn(StreamMetadataDecoder, \"decodeStreamMetadata\").mockReturnValue(mockStreamMetadata());\n mockIntegerDecoder(scalarType);\n\n const column = createColumn(scalarType, false);\n const data = new Uint8Array(TEST_DATA.BUFFER_SIZE);\n const offset = new IntWrapper(0);\n\n // Act\n const result = decodePropertyColumn(data, offset, column, 1, TEST_DATA.NUM_VALUES);\n\n // Assert\n expect(result).toBeDefined();\n expect((result as any)._name).toBe(\"age\");\n\n vi.restoreAllMocks();\n });\n });\n });\n\n describe(\"Error Scenarios\", () => {\n it(\"should handle invalid scalar type gracefully\", () => {\n // Arrange\n vi.spyOn(StreamMetadataDecoder, \"decodeStreamMetadata\").mockReturnValue(mockStreamMetadata());\n const column = createColumn(999 as any); // Invalid type\n const data = new Uint8Array(TEST_DATA.BUFFER_SIZE);\n const offset = new IntWrapper(0);\n\n // Act & Assert\n expect(() => {\n decodePropertyColumn(data, offset, column, 1, TEST_DATA.NUM_VALUES);\n }).toThrow();\n });\n\n it(\"should handle mismatched numStreams for string type\", () => {\n // Arrange\n vi.spyOn(StreamMetadataDecoder, \"decodeStreamMetadata\").mockReturnValue(mockStreamMetadata());\n const column: Column = {\n name: \"stringCol\",\n nullable: false,\n columnScope: null,\n type: \"stringType\",\n scalarType: null,\n complexType: null,\n } as any;\n const data = new Uint8Array(TEST_DATA.BUFFER_SIZE);\n const offset = new IntWrapper(0);\n\n // Act\n const result = decodePropertyColumn(data, offset, column, 2, TEST_DATA.NUM_VALUES);\n\n // Assert\n expect(result).toBeNull();\n });\n });\n});\n"]}
@@ -2,13 +2,5 @@ import type IntWrapper from "./intWrapper";
2
2
  import BitVector from "../vector/flat/bitVector";
3
3
  import type Vector from "../vector/vector";
4
4
  import { type Column } from "../metadata/tileset/tilesetMetadata";
5
- export declare class StringDecoder {
6
- private static readonly ROOT_COLUMN_NAME;
7
- private static readonly NESTED_COLUMN_SEPARATOR;
8
- private constructor();
9
- static decode(name: string, data: Uint8Array, offset: IntWrapper, numStreams: number, bitVector?: BitVector): Vector;
10
- private static decodeFsstDictionaryVector;
11
- private static decodeDictionaryVector;
12
- private static decodePlainStringVector;
13
- static decodeSharedDictionary(data: Uint8Array, offset: IntWrapper, column: Column, numFeatures: number, propertyColumnNames?: Set<string>): Vector[];
14
- }
5
+ export declare function decodeString(name: string, data: Uint8Array, offset: IntWrapper, numStreams: number, bitVector?: BitVector): Vector;
6
+ export declare function decodeSharedDictionary(data: Uint8Array, offset: IntWrapper, column: Column, numFeatures: number, propertyColumnNames?: Set<string>): Vector[];
@@ -1,191 +1,184 @@
1
- import { StreamMetadataDecoder } from "../metadata/tile/streamMetadataDecoder";
1
+ import { decodeStreamMetadata } from "../metadata/tile/streamMetadataDecoder";
2
2
  import { StringFlatVector } from "../vector/flat/stringFlatVector";
3
3
  import { StringDictionaryVector } from "../vector/dictionary/stringDictionaryVector";
4
4
  import BitVector from "../vector/flat/bitVector";
5
5
  import { PhysicalStreamType } from "../metadata/tile/physicalStreamType";
6
6
  import { DictionaryType } from "../metadata/tile/dictionaryType";
7
7
  import { LengthType } from "../metadata/tile/lengthType";
8
- import IntegerStreamDecoder from "./integerStreamDecoder";
8
+ import { decodeIntStream, decodeLengthStreamToOffsetBuffer, decodeNullableIntStream } from "./integerStreamDecoder";
9
9
  import { ScalarType } from "../metadata/tileset/tilesetMetadata";
10
10
  import { decodeVarintInt32 } from "./integerDecodingUtils";
11
11
  import { decodeBooleanRle, skipColumn } from "./decodingUtils";
12
- import { RleEncodedStreamMetadata } from "../metadata/tile/rleEncodedStreamMetadata";
13
12
  import { StringFsstDictionaryVector } from "../vector/fsst-dictionary/stringFsstDictionaryVector";
14
- export class StringDecoder {
15
- static ROOT_COLUMN_NAME = "default";
16
- static NESTED_COLUMN_SEPARATOR = ":";
17
- constructor() {
18
- }
19
- static decode(name, data, offset, numStreams, bitVector) {
20
- let dictionaryLengthStream = null;
21
- let offsetStream = null;
22
- let dictionaryStream = null;
23
- let symbolLengthStream = null;
24
- let symbolTableStream = null;
25
- let presentStream = null;
26
- let plainLengthStream = null;
27
- let plainDataStream = null;
28
- for (let i = 0; i < numStreams; i++) {
29
- const streamMetadata = StreamMetadataDecoder.decode(data, offset);
30
- if (streamMetadata.byteLength === 0) {
31
- continue;
13
+ const ROOT_COLUMN_NAME = "default";
14
+ const NESTED_COLUMN_SEPARATOR = ":";
15
+ export function decodeString(name, data, offset, numStreams, bitVector) {
16
+ let dictionaryLengthStream = null;
17
+ let offsetStream = null;
18
+ let dictionaryStream = null;
19
+ let symbolLengthStream = null;
20
+ let symbolTableStream = null;
21
+ let presentStream = null;
22
+ let plainLengthStream = null;
23
+ let plainDataStream = null;
24
+ for (let i = 0; i < numStreams; i++) {
25
+ const streamMetadata = decodeStreamMetadata(data, offset);
26
+ if (streamMetadata.byteLength === 0) {
27
+ continue;
28
+ }
29
+ switch (streamMetadata.physicalStreamType) {
30
+ case PhysicalStreamType.PRESENT: {
31
+ const presentData = decodeBooleanRle(data, streamMetadata.numValues, offset);
32
+ presentStream = new BitVector(presentData, streamMetadata.numValues);
33
+ break;
34
+ }
35
+ case PhysicalStreamType.OFFSET: {
36
+ const isNullable = bitVector != null || presentStream != null;
37
+ const nullabilityBuffer = bitVector ?? presentStream;
38
+ offsetStream = isNullable
39
+ ? decodeNullableIntStream(data, offset, streamMetadata, false, nullabilityBuffer)
40
+ : decodeIntStream(data, offset, streamMetadata, false);
41
+ break;
32
42
  }
33
- switch (streamMetadata.physicalStreamType) {
34
- case PhysicalStreamType.PRESENT: {
35
- const presentData = decodeBooleanRle(data, streamMetadata.numValues, offset);
36
- presentStream = new BitVector(presentData, streamMetadata.numValues);
37
- break;
43
+ case PhysicalStreamType.LENGTH: {
44
+ const ls = decodeLengthStreamToOffsetBuffer(data, offset, streamMetadata);
45
+ if (LengthType.DICTIONARY === streamMetadata.logicalStreamType.lengthType) {
46
+ dictionaryLengthStream = ls;
38
47
  }
39
- case PhysicalStreamType.OFFSET: {
40
- const isNullable = bitVector != null || presentStream != null;
41
- const nullabilityBuffer = bitVector ?? presentStream;
42
- offsetStream = isNullable
43
- ? IntegerStreamDecoder.decodeNullableIntStream(data, offset, streamMetadata, false, nullabilityBuffer)
44
- : IntegerStreamDecoder.decodeIntStream(data, offset, streamMetadata, false);
45
- break;
48
+ else if (LengthType.SYMBOL === streamMetadata.logicalStreamType.lengthType) {
49
+ symbolLengthStream = ls;
50
+ }
51
+ else {
52
+ // Plain string encoding uses VAR_BINARY length type
53
+ plainLengthStream = ls;
54
+ }
55
+ break;
56
+ }
57
+ case PhysicalStreamType.DATA: {
58
+ const ds = data.subarray(offset.get(), offset.get() + streamMetadata.byteLength);
59
+ offset.add(streamMetadata.byteLength);
60
+ const dictType = streamMetadata.logicalStreamType.dictionaryType;
61
+ if (DictionaryType.FSST === dictType) {
62
+ symbolTableStream = ds;
46
63
  }
47
- case PhysicalStreamType.LENGTH: {
48
- const ls = IntegerStreamDecoder.decodeLengthStreamToOffsetBuffer(data, offset, streamMetadata);
49
- if (LengthType.DICTIONARY === streamMetadata.logicalStreamType.lengthType) {
50
- dictionaryLengthStream = ls;
51
- }
52
- else if (LengthType.SYMBOL === streamMetadata.logicalStreamType.lengthType) {
53
- symbolLengthStream = ls;
54
- }
55
- else {
56
- // Plain string encoding uses VAR_BINARY length type
57
- plainLengthStream = ls;
58
- }
59
- break;
64
+ else if (DictionaryType.SINGLE === dictType || DictionaryType.SHARED === dictType) {
65
+ dictionaryStream = ds;
60
66
  }
61
- case PhysicalStreamType.DATA: {
62
- const ds = data.subarray(offset.get(), offset.get() + streamMetadata.byteLength);
63
- offset.add(streamMetadata.byteLength);
64
- const dictType = streamMetadata.logicalStreamType.dictionaryType;
65
- if (DictionaryType.FSST === dictType) {
66
- symbolTableStream = ds;
67
- }
68
- else if (DictionaryType.SINGLE === dictType || DictionaryType.SHARED === dictType) {
69
- dictionaryStream = ds;
70
- }
71
- else if (DictionaryType.NONE === dictType) {
72
- plainDataStream = ds;
73
- }
74
- break;
67
+ else if (DictionaryType.NONE === dictType) {
68
+ plainDataStream = ds;
75
69
  }
70
+ break;
76
71
  }
77
72
  }
78
- return this.decodeFsstDictionaryVector(name, symbolTableStream, offsetStream, dictionaryLengthStream, dictionaryStream, symbolLengthStream, bitVector ?? presentStream) ?? this.decodeDictionaryVector(name, dictionaryStream, offsetStream, dictionaryLengthStream, bitVector ?? presentStream) ?? this.decodePlainStringVector(name, plainLengthStream, plainDataStream, offsetStream, bitVector ?? presentStream);
79
73
  }
80
- static decodeFsstDictionaryVector(name, symbolTableStream, offsetStream, dictionaryLengthStream, dictionaryStream, symbolLengthStream, nullabilityBuffer) {
81
- if (!symbolTableStream) {
82
- return null;
83
- }
84
- return new StringFsstDictionaryVector(name, offsetStream, dictionaryLengthStream, dictionaryStream, symbolLengthStream, symbolTableStream, nullabilityBuffer);
74
+ return (decodeFsstDictionaryVector(name, symbolTableStream, offsetStream, dictionaryLengthStream, dictionaryStream, symbolLengthStream, bitVector ?? presentStream) ??
75
+ decodeDictionaryVector(name, dictionaryStream, offsetStream, dictionaryLengthStream, bitVector ?? presentStream) ??
76
+ decodePlainStringVector(name, plainLengthStream, plainDataStream, offsetStream, bitVector ?? presentStream));
77
+ }
78
+ function decodeFsstDictionaryVector(name, symbolTableStream, offsetStream, dictionaryLengthStream, dictionaryStream, symbolLengthStream, nullabilityBuffer) {
79
+ if (!symbolTableStream) {
80
+ return null;
85
81
  }
86
- static decodeDictionaryVector(name, dictionaryStream, offsetStream, dictionaryLengthStream, nullabilityBuffer) {
87
- if (!dictionaryStream) {
88
- return null;
89
- }
82
+ return new StringFsstDictionaryVector(name, offsetStream, dictionaryLengthStream, dictionaryStream, symbolLengthStream, symbolTableStream, nullabilityBuffer);
83
+ }
84
+ function decodeDictionaryVector(name, dictionaryStream, offsetStream, dictionaryLengthStream, nullabilityBuffer) {
85
+ if (!dictionaryStream) {
86
+ return null;
87
+ }
88
+ return nullabilityBuffer
89
+ ? new StringDictionaryVector(name, offsetStream, dictionaryLengthStream, dictionaryStream, nullabilityBuffer)
90
+ : new StringDictionaryVector(name, offsetStream, dictionaryLengthStream, dictionaryStream);
91
+ }
92
+ function decodePlainStringVector(name, plainLengthStream, plainDataStream, offsetStream, nullabilityBuffer) {
93
+ if (!plainLengthStream || !plainDataStream) {
94
+ return null;
95
+ }
96
+ if (offsetStream) {
90
97
  return nullabilityBuffer
91
- ? new StringDictionaryVector(name, offsetStream, dictionaryLengthStream, dictionaryStream, nullabilityBuffer)
92
- : new StringDictionaryVector(name, offsetStream, dictionaryLengthStream, dictionaryStream);
98
+ ? new StringDictionaryVector(name, offsetStream, plainLengthStream, plainDataStream, nullabilityBuffer)
99
+ : new StringDictionaryVector(name, offsetStream, plainLengthStream, plainDataStream);
93
100
  }
94
- static decodePlainStringVector(name, plainLengthStream, plainDataStream, offsetStream, nullabilityBuffer) {
95
- if (!plainLengthStream || !plainDataStream) {
96
- return null;
97
- }
98
- if (offsetStream) {
99
- return nullabilityBuffer
100
- ? new StringDictionaryVector(name, offsetStream, plainLengthStream, plainDataStream, nullabilityBuffer)
101
- : new StringDictionaryVector(name, offsetStream, plainLengthStream, plainDataStream);
101
+ if (nullabilityBuffer && nullabilityBuffer.size() !== plainLengthStream.length - 1) {
102
+ const sparseOffsetStream = new Int32Array(nullabilityBuffer.size());
103
+ let valueIndex = 0;
104
+ for (let i = 0; i < nullabilityBuffer.size(); i++) {
105
+ if (nullabilityBuffer.get(i)) {
106
+ sparseOffsetStream[i] = valueIndex++;
107
+ }
108
+ else {
109
+ sparseOffsetStream[i] = 0;
110
+ }
102
111
  }
103
- if (nullabilityBuffer && nullabilityBuffer.size() !== plainLengthStream.length - 1) {
104
- const sparseOffsetStream = new Int32Array(nullabilityBuffer.size());
105
- let valueIndex = 0;
106
- for (let i = 0; i < nullabilityBuffer.size(); i++) {
107
- if (nullabilityBuffer.get(i)) {
108
- sparseOffsetStream[i] = valueIndex++;
112
+ return new StringDictionaryVector(name, sparseOffsetStream, plainLengthStream, plainDataStream, nullabilityBuffer);
113
+ }
114
+ return nullabilityBuffer
115
+ ? new StringFlatVector(name, plainLengthStream, plainDataStream, nullabilityBuffer)
116
+ : new StringFlatVector(name, plainLengthStream, plainDataStream);
117
+ }
118
+ export function decodeSharedDictionary(data, offset, column, numFeatures, propertyColumnNames) {
119
+ let dictionaryOffsetBuffer = null;
120
+ let dictionaryBuffer = null;
121
+ let symbolOffsetBuffer = null;
122
+ let symbolTableBuffer = null;
123
+ let dictionaryStreamDecoded = false;
124
+ while (!dictionaryStreamDecoded) {
125
+ const streamMetadata = decodeStreamMetadata(data, offset);
126
+ switch (streamMetadata.physicalStreamType) {
127
+ case PhysicalStreamType.LENGTH:
128
+ if (LengthType.DICTIONARY === streamMetadata.logicalStreamType.lengthType) {
129
+ dictionaryOffsetBuffer = decodeLengthStreamToOffsetBuffer(data, offset, streamMetadata);
109
130
  }
110
131
  else {
111
- sparseOffsetStream[i] = 0;
132
+ symbolOffsetBuffer = decodeLengthStreamToOffsetBuffer(data, offset, streamMetadata);
112
133
  }
113
- }
114
- return new StringDictionaryVector(name, sparseOffsetStream, plainLengthStream, plainDataStream, nullabilityBuffer);
134
+ break;
135
+ case PhysicalStreamType.DATA:
136
+ if (DictionaryType.SINGLE === streamMetadata.logicalStreamType.dictionaryType ||
137
+ DictionaryType.SHARED === streamMetadata.logicalStreamType.dictionaryType) {
138
+ dictionaryBuffer = data.subarray(offset.get(), offset.get() + streamMetadata.byteLength);
139
+ dictionaryStreamDecoded = true;
140
+ }
141
+ else {
142
+ symbolTableBuffer = data.subarray(offset.get(), offset.get() + streamMetadata.byteLength);
143
+ }
144
+ offset.add(streamMetadata.byteLength);
145
+ break;
115
146
  }
116
- return nullabilityBuffer
117
- ? new StringFlatVector(name, plainLengthStream, plainDataStream, nullabilityBuffer)
118
- : new StringFlatVector(name, plainLengthStream, plainDataStream);
119
147
  }
120
- static decodeSharedDictionary(data, offset, column, numFeatures, propertyColumnNames) {
121
- let dictionaryOffsetBuffer = null;
122
- let dictionaryBuffer = null;
123
- let symbolOffsetBuffer = null;
124
- let symbolTableBuffer = null;
125
- let dictionaryStreamDecoded = false;
126
- while (!dictionaryStreamDecoded) {
127
- const streamMetadata = StreamMetadataDecoder.decode(data, offset);
128
- switch (streamMetadata.physicalStreamType) {
129
- case PhysicalStreamType.LENGTH:
130
- if (LengthType.DICTIONARY === streamMetadata.logicalStreamType.lengthType) {
131
- dictionaryOffsetBuffer = IntegerStreamDecoder.decodeLengthStreamToOffsetBuffer(data, offset, streamMetadata);
132
- }
133
- else {
134
- symbolOffsetBuffer = IntegerStreamDecoder.decodeLengthStreamToOffsetBuffer(data, offset, streamMetadata);
135
- }
136
- break;
137
- case PhysicalStreamType.DATA:
138
- if (DictionaryType.SINGLE === streamMetadata.logicalStreamType.dictionaryType ||
139
- DictionaryType.SHARED === streamMetadata.logicalStreamType.dictionaryType) {
140
- dictionaryBuffer = data.subarray(offset.get(), offset.get() + streamMetadata.byteLength);
141
- dictionaryStreamDecoded = true;
142
- }
143
- else {
144
- symbolTableBuffer = data.subarray(offset.get(), offset.get() + streamMetadata.byteLength);
145
- }
146
- offset.add(streamMetadata.byteLength);
147
- break;
148
- }
148
+ const childFields = column.complexType.children;
149
+ const stringDictionaryVectors = [];
150
+ let i = 0;
151
+ for (const childField of childFields) {
152
+ const numStreams = decodeVarintInt32(data, offset, 1)[0];
153
+ if (numStreams == 0) {
154
+ /* Column is not present in the tile */
155
+ continue;
149
156
  }
150
- const childFields = column.complexType.children;
151
- const stringDictionaryVectors = [];
152
- let i = 0;
153
- for (const childField of childFields) {
154
- const numStreams = decodeVarintInt32(data, offset, 1)[0];
155
- if (numStreams == 0) {
156
- /* Column is not present in the tile */
157
+ const columnName = `${column.name}${childField.name === ROOT_COLUMN_NAME ? "" : NESTED_COLUMN_SEPARATOR + childField.name}`;
158
+ if (propertyColumnNames) {
159
+ if (!propertyColumnNames.has(columnName)) {
160
+ //TODO: add size of sub column to Mlt for faster skipping
161
+ skipColumn(numStreams, data, offset);
157
162
  continue;
158
163
  }
159
- const columnName = `${column.name}${childField.name === StringDecoder.ROOT_COLUMN_NAME
160
- ? ""
161
- : StringDecoder.NESTED_COLUMN_SEPARATOR + childField.name}`;
162
- if (propertyColumnNames) {
163
- if (!propertyColumnNames.has(columnName)) {
164
- //TODO: add size of sub column to Mlt for faster skipping
165
- skipColumn(numStreams, data, offset);
166
- continue;
167
- }
168
- }
169
- if (numStreams !== 2 ||
170
- childField.type !== "scalarField" ||
171
- childField.scalarField.physicalType !== ScalarType.STRING) {
172
- throw new Error("Currently only optional string fields are implemented for a struct.");
173
- }
174
- const presentStreamMetadata = StreamMetadataDecoder.decode(data, offset);
175
- const presentStream = decodeBooleanRle(data, presentStreamMetadata.numValues, offset);
176
- const offsetStreamMetadata = StreamMetadataDecoder.decode(data, offset);
177
- const offsetCount = (offsetStreamMetadata instanceof RleEncodedStreamMetadata
178
- ? offsetStreamMetadata.numRleValues
179
- : offsetStreamMetadata.numValues);
180
- const isNullable = offsetCount !== numFeatures;
181
- const offsetStream = isNullable
182
- ? IntegerStreamDecoder.decodeNullableIntStream(data, offset, offsetStreamMetadata, false, new BitVector(presentStream, presentStreamMetadata.numValues))
183
- : IntegerStreamDecoder.decodeIntStream(data, offset, offsetStreamMetadata, false);
184
- stringDictionaryVectors[i++] = symbolTableBuffer
185
- ? new StringFsstDictionaryVector(columnName, offsetStream, dictionaryOffsetBuffer, dictionaryBuffer, symbolOffsetBuffer, symbolTableBuffer, new BitVector(presentStream, presentStreamMetadata.numValues))
186
- : new StringDictionaryVector(columnName, offsetStream, dictionaryOffsetBuffer, dictionaryBuffer, new BitVector(presentStream, presentStreamMetadata.numValues));
187
164
  }
188
- return stringDictionaryVectors;
165
+ if (numStreams !== 2 ||
166
+ childField.type !== "scalarField" ||
167
+ childField.scalarField.physicalType !== ScalarType.STRING) {
168
+ throw new Error("Currently only optional string fields are implemented for a struct.");
169
+ }
170
+ const presentStreamMetadata = decodeStreamMetadata(data, offset);
171
+ const presentStream = decodeBooleanRle(data, presentStreamMetadata.numValues, offset);
172
+ const offsetStreamMetadata = decodeStreamMetadata(data, offset);
173
+ const offsetCount = offsetStreamMetadata.decompressedCount;
174
+ const isNullable = offsetCount !== numFeatures;
175
+ const offsetStream = isNullable
176
+ ? decodeNullableIntStream(data, offset, offsetStreamMetadata, false, new BitVector(presentStream, presentStreamMetadata.numValues))
177
+ : decodeIntStream(data, offset, offsetStreamMetadata, false);
178
+ stringDictionaryVectors[i++] = symbolTableBuffer
179
+ ? new StringFsstDictionaryVector(columnName, offsetStream, dictionaryOffsetBuffer, dictionaryBuffer, symbolOffsetBuffer, symbolTableBuffer, new BitVector(presentStream, presentStreamMetadata.numValues))
180
+ : new StringDictionaryVector(columnName, offsetStream, dictionaryOffsetBuffer, dictionaryBuffer, new BitVector(presentStream, presentStreamMetadata.numValues));
189
181
  }
182
+ return stringDictionaryVectors;
190
183
  }
191
184
  //# sourceMappingURL=stringDecoder.js.map