@maplibre/mlt 1.1.6 → 1.1.7
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.
- package/dist/decoding/bigEndianDecode.d.ts +13 -0
- package/dist/decoding/bigEndianDecode.js +50 -0
- package/dist/decoding/bigEndianDecode.js.map +1 -0
- package/dist/decoding/decodingTestUtils.d.ts +1 -1
- package/dist/decoding/decodingTestUtils.js.map +1 -1
- package/dist/decoding/decodingUtils.js +4 -2
- package/dist/decoding/decodingUtils.js.map +1 -1
- package/dist/decoding/fastPforDecoder.d.ts +48 -0
- package/dist/decoding/fastPforDecoder.js +482 -0
- package/dist/decoding/fastPforDecoder.js.map +1 -0
- package/dist/decoding/fastPforShared.d.ts +9 -0
- package/dist/decoding/fastPforShared.js +29 -0
- package/dist/decoding/fastPforShared.js.map +1 -0
- package/dist/decoding/fastPforUnpack.d.ts +23 -0
- package/dist/decoding/fastPforUnpack.js +910 -0
- package/dist/decoding/fastPforUnpack.js.map +1 -0
- package/dist/decoding/geometryDecoder.d.ts +2 -2
- package/dist/decoding/geometryDecoder.js +11 -8
- package/dist/decoding/geometryDecoder.js.map +1 -1
- package/dist/decoding/integerDecodingUtils.d.ts +14 -10
- package/dist/decoding/integerDecodingUtils.js +44 -22
- package/dist/decoding/integerDecodingUtils.js.map +1 -1
- package/dist/decoding/integerStreamDecoder.d.ts +1 -1
- package/dist/decoding/integerStreamDecoder.js +13 -6
- package/dist/decoding/integerStreamDecoder.js.map +1 -1
- package/dist/decoding/propertyDecoder.js +10 -14
- package/dist/decoding/propertyDecoder.js.map +1 -1
- package/dist/decoding/stringDecoder.js +1 -4
- package/dist/decoding/stringDecoder.js.map +1 -1
- package/dist/encoding/bigEndianEncode.d.ts +7 -0
- package/dist/encoding/bigEndianEncode.js +16 -0
- package/dist/encoding/bigEndianEncode.js.map +1 -0
- package/dist/encoding/constGeometryVectorEncoder.d.ts +19 -0
- package/dist/encoding/constGeometryVectorEncoder.js +248 -0
- package/dist/encoding/constGeometryVectorEncoder.js.map +1 -0
- package/dist/encoding/encodingUtils.d.ts +1 -1
- package/dist/encoding/encodingUtils.js +2 -2
- package/dist/encoding/encodingUtils.js.map +1 -1
- package/dist/encoding/fastPforEncoder.d.ts +19 -0
- package/dist/encoding/fastPforEncoder.js +310 -0
- package/dist/encoding/fastPforEncoder.js.map +1 -0
- package/dist/encoding/integerEncodingUtils.d.ts +7 -7
- package/dist/encoding/integerEncodingUtils.js +25 -17
- package/dist/encoding/integerEncodingUtils.js.map +1 -1
- package/dist/encoding/integerStreamEncoder.d.ts +1 -1
- package/dist/encoding/integerStreamEncoder.js +5 -5
- package/dist/encoding/integerStreamEncoder.js.map +1 -1
- package/dist/encoding/packNullableUtils.d.ts +1 -1
- package/dist/encoding/packNullableUtils.js.map +1 -1
- package/dist/encoding/propertyEncoder.d.ts +1 -1
- package/dist/encoding/propertyEncoder.js +8 -8
- package/dist/encoding/propertyEncoder.js.map +1 -1
- package/dist/encoding/stringEncoder.js +3 -3
- package/dist/encoding/stringEncoder.js.map +1 -1
- package/dist/encoding/zOrderCurveEncoder.js +1 -1
- package/dist/encoding/zOrderCurveEncoder.js.map +1 -1
- package/dist/metadata/tile/logicalStreamType.d.ts +3 -3
- package/dist/metadata/tile/logicalStreamType.js.map +1 -1
- package/dist/metadata/tileset/embeddedTilesetMetadataDecoder.d.ts +1 -1
- package/dist/metadata/tileset/embeddedTilesetMetadataDecoder.js.map +1 -1
- package/dist/metadata/tileset/typeMap.d.ts +10 -2
- package/dist/metadata/tileset/typeMap.js +25 -15
- package/dist/metadata/tileset/typeMap.js.map +1 -1
- package/dist/mltDecoder.js +29 -26
- package/dist/mltDecoder.js.map +1 -1
- package/dist/mltMetadata.js.map +1 -1
- package/dist/vector/constant/intConstVector.d.ts +1 -1
- package/dist/vector/constant/intConstVector.js +1 -1
- package/dist/vector/constant/intConstVector.js.map +1 -1
- package/dist/vector/constant/longConstVector.d.ts +1 -1
- package/dist/vector/constant/longConstVector.js +1 -1
- package/dist/vector/constant/longConstVector.js.map +1 -1
- package/dist/vector/dictionary/stringDictionaryVector.d.ts +0 -1
- package/dist/vector/dictionary/stringDictionaryVector.js +0 -2
- package/dist/vector/dictionary/stringDictionaryVector.js.map +1 -1
- package/dist/vector/featureTable.d.ts +4 -5
- package/dist/vector/featureTable.js +2 -29
- package/dist/vector/featureTable.js.map +1 -1
- package/dist/vector/filter/flatSelectionVector.d.ts +1 -1
- package/dist/vector/filter/flatSelectionVector.js.map +1 -1
- package/dist/vector/filter/selectionVectorUtils.d.ts +1 -1
- package/dist/vector/filter/selectionVectorUtils.js.map +1 -1
- package/dist/vector/filter/sequenceSelectionVector.d.ts +1 -1
- package/dist/vector/filter/sequenceSelectionVector.js.map +1 -1
- package/dist/vector/flat/stringFlatVector.d.ts +0 -1
- package/dist/vector/flat/stringFlatVector.js +0 -2
- package/dist/vector/flat/stringFlatVector.js.map +1 -1
- package/dist/vector/fsst-dictionary/stringFsstDictionaryVector.d.ts +0 -2
- package/dist/vector/fsst-dictionary/stringFsstDictionaryVector.js +0 -36
- package/dist/vector/fsst-dictionary/stringFsstDictionaryVector.js.map +1 -1
- package/dist/vector/geometry/constGeometryVector.d.ts +2 -2
- package/dist/vector/geometry/constGeometryVector.js +1 -1
- package/dist/vector/geometry/constGeometryVector.js.map +1 -1
- package/dist/vector/geometry/constGpuVector.d.ts +2 -2
- package/dist/vector/geometry/constGpuVector.js +1 -1
- package/dist/vector/geometry/constGpuVector.js.map +1 -1
- package/dist/vector/geometry/flatGeometryVector.d.ts +1 -1
- package/dist/vector/geometry/flatGeometryVector.js.map +1 -1
- package/dist/vector/geometry/flatGpuVector.d.ts +1 -1
- package/dist/vector/geometry/flatGpuVector.js.map +1 -1
- package/dist/vector/geometry/geometryType.js.map +1 -1
- package/dist/vector/geometry/geometryVector.d.ts +4 -5
- package/dist/vector/geometry/geometryVector.js +0 -8
- package/dist/vector/geometry/geometryVector.js.map +1 -1
- package/dist/vector/geometry/geometryVectorConverter.d.ts +1 -1
- package/dist/vector/geometry/geometryVectorConverter.js +167 -211
- package/dist/vector/geometry/geometryVectorConverter.js.map +1 -1
- package/dist/vector/geometry/gpuVector.d.ts +2 -2
- package/dist/vector/geometry/gpuVector.js.map +1 -1
- package/dist/vector/geometry/topologyVector.d.ts +5 -9
- package/dist/vector/geometry/topologyVector.js +1 -19
- package/dist/vector/geometry/topologyVector.js.map +1 -1
- package/dist/vector/geometry/vertexBufferType.js.map +1 -1
- package/dist/vector/intVector.d.ts +7 -7
- package/dist/vector/intVector.js.map +1 -1
- package/dist/vector/vector.js +1 -1
- package/dist/vector/vector.js.map +1 -1
- package/dist/vector/vectorType.js.map +1 -1
- package/package.json +9 -10
- package/dist/decoding/decodingUtils.spec.d.ts +0 -1
- package/dist/decoding/decodingUtils.spec.js +0 -141
- package/dist/decoding/decodingUtils.spec.js.map +0 -1
- package/dist/decoding/fsstDecoder.spec.d.ts +0 -1
- package/dist/decoding/fsstDecoder.spec.js +0 -57
- package/dist/decoding/fsstDecoder.spec.js.map +0 -1
- package/dist/decoding/integerDecodingUtils.spec.d.ts +0 -1
- package/dist/decoding/integerDecodingUtils.spec.js +0 -300
- package/dist/decoding/integerDecodingUtils.spec.js.map +0 -1
- package/dist/decoding/integerStreamDecoder.spec.d.ts +0 -1
- package/dist/decoding/integerStreamDecoder.spec.js +0 -402
- package/dist/decoding/integerStreamDecoder.spec.js.map +0 -1
- package/dist/decoding/propertyDecoder.spec.d.ts +0 -1
- package/dist/decoding/propertyDecoder.spec.js +0 -448
- package/dist/decoding/propertyDecoder.spec.js.map +0 -1
- package/dist/decoding/stringDecoder.spec.d.ts +0 -1
- package/dist/decoding/stringDecoder.spec.js +0 -387
- package/dist/decoding/stringDecoder.spec.js.map +0 -1
- package/dist/decoding/unpackNullableUtils.spec.d.ts +0 -1
- package/dist/decoding/unpackNullableUtils.spec.js +0 -71
- package/dist/decoding/unpackNullableUtils.spec.js.map +0 -1
- package/dist/metadata/tileset/embeddedTilesetMetadataDecoder.spec.d.ts +0 -1
- package/dist/metadata/tileset/embeddedTilesetMetadataDecoder.spec.js +0 -142
- package/dist/metadata/tileset/embeddedTilesetMetadataDecoder.spec.js.map +0 -1
- package/dist/mltDecoder.spec.d.ts +0 -1
- package/dist/mltDecoder.spec.js +0 -152
- package/dist/mltDecoder.spec.js.map +0 -1
- package/dist/vector/filter/flatSelectionVector.spec.d.ts +0 -1
- package/dist/vector/filter/flatSelectionVector.spec.js +0 -51
- package/dist/vector/filter/flatSelectionVector.spec.js.map +0 -1
- package/dist/vector/filter/selectionVectorUtil.spec.d.ts +0 -1
- package/dist/vector/filter/selectionVectorUtil.spec.js +0 -154
- package/dist/vector/filter/selectionVectorUtil.spec.js.map +0 -1
- package/dist/vector/filter/sequenceSelectionVector.spec.d.ts +0 -1
- package/dist/vector/filter/sequenceSelectionVector.spec.js +0 -115
- package/dist/vector/filter/sequenceSelectionVector.spec.js.map +0 -1
- package/dist/vector/flat/floatFlatVector.spec.d.ts +0 -1
- package/dist/vector/flat/floatFlatVector.spec.js +0 -14
- package/dist/vector/flat/floatFlatVector.spec.js.map +0 -1
- package/dist/vector/flat/intFlatVector.spec.d.ts +0 -1
- package/dist/vector/flat/intFlatVector.spec.js +0 -15
- package/dist/vector/flat/intFlatVector.spec.js.map +0 -1
- package/dist/vector/flat/longFlatVector.spec.d.ts +0 -1
- package/dist/vector/flat/longFlatVector.spec.js +0 -14
- package/dist/vector/flat/longFlatVector.spec.js.map +0 -1
- package/dist/vector/fsst-dictionary/stringFsstDictionaryVector.spec.d.ts +0 -1
- package/dist/vector/fsst-dictionary/stringFsstDictionaryVector.spec.js +0 -28
- package/dist/vector/fsst-dictionary/stringFsstDictionaryVector.spec.js.map +0 -1
- package/dist/vector/geometry/zOrderCurve.spec.d.ts +0 -1
- package/dist/vector/geometry/zOrderCurve.spec.js +0 -25
- package/dist/vector/geometry/zOrderCurve.spec.js.map +0 -1
- package/dist/vector/sequence/longSequenceVektor.spec.d.ts +0 -1
- package/dist/vector/sequence/longSequenceVektor.spec.js +0 -11
- package/dist/vector/sequence/longSequenceVektor.spec.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fastPforUnpack.js","sourceRoot":"","sources":["../../src/decoding/fastPforUnpack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEzC,MAAM,UAAU,cAAc,CAAC,QAAoB,EAAE,KAAa,EAAE,GAAe,EAAE,MAAc;IAC/F,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1B,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;IACtC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,QAAoB,EAAE,KAAa,EAAE,GAAe,EAAE,MAAc;IAC/F,IAAI,EAAE,GAAG,MAAM,CAAC;IAChB,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAClC,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IACtC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;IAC9B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;IAC9B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;IAC9B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;IAC9B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;IAC9B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;IAC9B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;IAC9B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;IAC9B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;IAC9B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;IAC9B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;IAC/B,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,QAAoB,EAAE,KAAa,EAAE,GAAe,EAAE,MAAc;IAC/F,IAAI,EAAE,GAAG,MAAM,CAAC;IAChB,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAClC,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IACtC,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IACtC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;IAC9B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;IAC9B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;IAC9B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;IAC9B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;IACtD,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;IAC9B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;IAC9B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;IAC9B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;IACtD,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;IAC9B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;IAC9B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;IAC9B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;IAC/B,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,QAAoB,EAAE,KAAa,EAAE,GAAe,EAAE,MAAc;IAC/F,IAAI,EAAE,GAAG,MAAM,CAAC;IAChB,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAClC,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IACtC,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IACtC,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IACtC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;IAC9B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;IAC9B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;IAC9B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;IAC9B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;IAC9B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;IAC9B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;IAC9B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;IAC9B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;IAC9B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;IAC9B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;IAC9B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;IAC9B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;IAC/B,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,QAAoB,EAAE,KAAa,EAAE,GAAe,EAAE,MAAc;IAC/F,IAAI,EAAE,GAAG,MAAM,CAAC;IAChB,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAClC,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IACtC,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IACtC,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IACtC,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IACtC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACvD,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACvD,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACvD,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;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G,IAAI,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACvD,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACvD,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IAChC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,QAAoB,EAAE,KAAa,EAAE,GAAe,EAAE,MAAc;IAC/F,IAAI,EAAE,GAAG,MAAM,CAAC;IAChB,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAClC,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IACtC,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IACtC,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IACtC,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IACtC,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IACtC,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IACtC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACvD,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACxD,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACvD,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACxD,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACvD,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACvD,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IAChC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,QAAoB,EAAE,KAAa,EAAE,GAAe,EAAE,MAAc;IAC/F,IAAI,EAAE,GAAG,MAAM,CAAC;IAChB,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAClC,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IACtC,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IACtC,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IACtC,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IACtC,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IACtC,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IACtC,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IACtC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI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AAC;IACjC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;IACxD,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC;IAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC;IACjC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC;IACjC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;IACzD,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC;IAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC;IACjC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;IACxD,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC;IAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC;IACjC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC;IACjC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;IACzD,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAA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AAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;IACxD,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC;IAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC;IACjC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;IACxD,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC;IAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC;IACjC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC;IACjC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC;IAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC;IACjC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC;IACjC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;IACzD,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC;IAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC;IACjC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAA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AC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC;IACjC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;IACxD,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC;IAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC;IACjC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;IACxD,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC;IAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC;IACjC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;IACzD,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC;IAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC;IACjC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;IACzD,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC;IAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC;IACjC,GAAG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C,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC;IACjC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;IACzD,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC;IAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC;IACjC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC;IAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC;IACjC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;IACxD,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC;IAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC;IACjC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;IACzD,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC;IAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC;IACjC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC;IAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,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AC,GAAG,MAAM,CAAC;IACjC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,MAAM,CAAC;IAClC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC;IACjC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,MAAM,CAAC;IAClC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC;IACjC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,MAAM,CAAC;IAClC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC;IAClC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,EAAE,CAAC,GAAG,MAAM,CAAC;IACnC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC;IAClC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,EAAE,CAAC,GAAG,MAAM,CAAC;IACnC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC;IAClC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,EAAE,CAAC,GAAG,MAAM,CAAC;IACnC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC;IAClC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,EAAE,CAAC,GAAG,MAAM,CAAC;IACnC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC;IAClC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,EAAE,CAAC,GAAG,MAAM,CAAC;IACnC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC;IAClC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,EAAE,CAAC,GAAG,MAAM,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,QAAoB,EAAE,KAAa,EAAE,GAAe,EAAE,MAAc;IAChG,IAAI,EAAE,GAAG,MAAM,CAAC;IAChB,IAAI,EAAE,GAAG,KAAK,CAAC;IACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,QAAQ,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;QACjC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;QAC9B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;QAC9B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;QAC9B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;QAC9B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;QAC9B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;QAC9B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;QAC9B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;QAC9B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;QAC9B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;QAC9B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;IACnC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,QAAoB,EAAE,KAAa,EAAE,GAAe,EAAE,MAAc;IAChG,IAAI,EAAE,GAAG,MAAM,CAAC;IAChB,IAAI,EAAE,GAAG,KAAK,CAAC;IACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,QAAQ,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;QACjC,MAAM,GAAG,GAAG,QAAQ,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;QACjC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;QAC9B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;QAC9B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;QAC9B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;QAC9B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;QAC9B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;QAC9B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;QAC9B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;QAC9B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;QAC9B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;QAC9B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;IACnC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,QAAoB,EAAE,KAAa,EAAE,GAAe,EAAE,MAAc;IAChG,IAAI,EAAE,GAAG,MAAM,CAAC;IAChB,IAAI,EAAE,GAAG,KAAK,CAAC;IACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,QAAQ,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;QACjC,MAAM,GAAG,GAAG,QAAQ,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;QACjC,MAAM,GAAG,GAAG,QAAQ,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;QACjC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;QAC9B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;QAC9B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;QAC9B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;QAC9B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QACtD,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;QAC9B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;QAC9B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;QAC9B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QACtD,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;QAC9B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;QAC9B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;QAC9B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;IACnC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,QAAoB,EAAE,KAAa,EAAE,GAAe,EAAE,MAAc;IAChG,IAAI,EAAE,GAAG,MAAM,CAAC;IAChB,IAAI,EAAE,GAAG,KAAK,CAAC;IACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,QAAQ,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;QACjC,MAAM,GAAG,GAAG,QAAQ,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;QACjC,MAAM,GAAG,GAAG,QAAQ,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;QACjC,MAAM,GAAG,GAAG,QAAQ,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;QACjC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;QAC9B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;QAC9B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;QAC9B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;QAC9B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;QAC9B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;QAC9B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;QAC9B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;QAC9B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;QAC9B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;QAC9B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;QAC9B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;QAC9B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;IACnC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,QAAoB,EAAE,KAAa,EAAE,GAAe,EAAE,MAAc;IAChG,IAAI,EAAE,GAAG,MAAM,CAAC;IAChB,IAAI,EAAE,GAAG,KAAK,CAAC;IACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,QAAQ,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;QACjC,MAAM,GAAG,GAAG,QAAQ,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;QACjC,MAAM,GAAG,GAAG,QAAQ,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;QACjC,MAAM,GAAG,GAAG,QAAQ,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;QACjC,MAAM,GAAG,GAAG,QAAQ,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;QACjC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;QAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;QAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;QAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;QAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QACvD,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;QAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;QAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;QAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QACvD,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;QAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;QAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;QAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;QAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QACvD,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;QAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;QAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;QAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QACvD,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;QAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;QAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;QAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IACpC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,QAAoB,EAAE,KAAa,EAAE,GAAe,EAAE,MAAc;IAChG,IAAI,EAAE,GAAG,MAAM,CAAC;IAChB,IAAI,EAAE,GAAG,KAAK,CAAC;IACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,QAAQ,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;QACjC,MAAM,GAAG,GAAG,QAAQ,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;QACjC,MAAM,GAAG,GAAG,QAAQ,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;QACjC,MAAM,GAAG,GAAG,QAAQ,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;QACjC,MAAM,GAAG,GAAG,QAAQ,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;QACjC,MAAM,GAAG,GAAG,QAAQ,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;QACjC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;QAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;QAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;QAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QACvD,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;QAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;QAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;QAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QACvD,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;QAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;QAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;QAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;QAChC,GAAG,CAAC,EAAE,EAAE,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C,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;QAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QACxD,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;QAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;QAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QACvD,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;QAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;QAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QACxD,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;QAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,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AC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;QAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;QAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;QAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;QAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;QAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;QAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;QAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;QAChC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;QAC/B,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CA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","sourcesContent":["import { MASKS } from \"./fastPforShared\";\n\nexport function fastUnpack32_1(inValues: Int32Array, inPos: number, out: Int32Array, outPos: number): void {\n const in0 = inValues[inPos] >>> 0;\n for (let i = 0; i < 32; i++) {\n out[outPos + i] = (in0 >>> i) & 1;\n }\n}\n\nexport function fastUnpack32_2(inValues: Int32Array, inPos: number, out: Int32Array, outPos: number): void {\n let op = outPos;\n const in0 = inValues[inPos] >>> 0;\n const in1 = inValues[inPos + 1] >>> 0;\n out[op++] = (in0 >>> 0) & 0x3;\n out[op++] = (in0 >>> 2) & 0x3;\n out[op++] = (in0 >>> 4) & 0x3;\n out[op++] = (in0 >>> 6) & 0x3;\n out[op++] = (in0 >>> 8) & 0x3;\n out[op++] = (in0 >>> 10) & 0x3;\n out[op++] = (in0 >>> 12) & 0x3;\n out[op++] = (in0 >>> 14) & 0x3;\n out[op++] = (in0 >>> 16) & 0x3;\n out[op++] = (in0 >>> 18) & 0x3;\n out[op++] = (in0 >>> 20) & 0x3;\n out[op++] = (in0 >>> 22) & 0x3;\n out[op++] = (in0 >>> 24) & 0x3;\n out[op++] = (in0 >>> 26) & 0x3;\n out[op++] = (in0 >>> 28) & 0x3;\n out[op++] = (in0 >>> 30) & 0x3;\n out[op++] = (in1 >>> 0) & 0x3;\n out[op++] = (in1 >>> 2) & 0x3;\n out[op++] = (in1 >>> 4) & 0x3;\n out[op++] = (in1 >>> 6) & 0x3;\n out[op++] = (in1 >>> 8) & 0x3;\n out[op++] = (in1 >>> 10) & 0x3;\n out[op++] = (in1 >>> 12) & 0x3;\n out[op++] = (in1 >>> 14) & 0x3;\n out[op++] = (in1 >>> 16) & 0x3;\n out[op++] = (in1 >>> 18) & 0x3;\n out[op++] = (in1 >>> 20) & 0x3;\n out[op++] = (in1 >>> 22) & 0x3;\n out[op++] = (in1 >>> 24) & 0x3;\n out[op++] = (in1 >>> 26) & 0x3;\n out[op++] = (in1 >>> 28) & 0x3;\n out[op] = (in1 >>> 30) & 0x3;\n}\n\nexport function fastUnpack32_3(inValues: Int32Array, inPos: number, out: Int32Array, outPos: number): void {\n let op = outPos;\n const in0 = inValues[inPos] >>> 0;\n const in1 = inValues[inPos + 1] >>> 0;\n const in2 = inValues[inPos + 2] >>> 0;\n out[op++] = (in0 >>> 0) & 0x7;\n out[op++] = (in0 >>> 3) & 0x7;\n out[op++] = (in0 >>> 6) & 0x7;\n out[op++] = (in0 >>> 9) & 0x7;\n out[op++] = (in0 >>> 12) & 0x7;\n out[op++] = (in0 >>> 15) & 0x7;\n out[op++] = (in0 >>> 18) & 0x7;\n out[op++] = (in0 >>> 21) & 0x7;\n out[op++] = (in0 >>> 24) & 0x7;\n out[op++] = (in0 >>> 27) & 0x7;\n out[op++] = ((in0 >>> 30) | ((in1 & 0x1) << 2)) & 0x7;\n out[op++] = (in1 >>> 1) & 0x7;\n out[op++] = (in1 >>> 4) & 0x7;\n out[op++] = (in1 >>> 7) & 0x7;\n out[op++] = (in1 >>> 10) & 0x7;\n out[op++] = (in1 >>> 13) & 0x7;\n out[op++] = (in1 >>> 16) & 0x7;\n out[op++] = (in1 >>> 19) & 0x7;\n out[op++] = (in1 >>> 22) & 0x7;\n out[op++] = (in1 >>> 25) & 0x7;\n out[op++] = (in1 >>> 28) & 0x7;\n out[op++] = ((in1 >>> 31) | ((in2 & 0x3) << 1)) & 0x7;\n out[op++] = (in2 >>> 2) & 0x7;\n out[op++] = (in2 >>> 5) & 0x7;\n out[op++] = (in2 >>> 8) & 0x7;\n out[op++] = (in2 >>> 11) & 0x7;\n out[op++] = (in2 >>> 14) & 0x7;\n out[op++] = (in2 >>> 17) & 0x7;\n out[op++] = (in2 >>> 20) & 0x7;\n out[op++] = (in2 >>> 23) & 0x7;\n out[op++] = (in2 >>> 26) & 0x7;\n out[op] = (in2 >>> 29) & 0x7;\n}\n\nexport function fastUnpack32_4(inValues: Int32Array, inPos: number, out: Int32Array, outPos: number): void {\n let op = outPos;\n const in0 = inValues[inPos] >>> 0;\n const in1 = inValues[inPos + 1] >>> 0;\n const in2 = inValues[inPos + 2] >>> 0;\n const in3 = inValues[inPos + 3] >>> 0;\n out[op++] = (in0 >>> 0) & 0xf;\n out[op++] = (in0 >>> 4) & 0xf;\n out[op++] = (in0 >>> 8) & 0xf;\n out[op++] = (in0 >>> 12) & 0xf;\n out[op++] = (in0 >>> 16) & 0xf;\n out[op++] = (in0 >>> 20) & 0xf;\n out[op++] = (in0 >>> 24) & 0xf;\n out[op++] = (in0 >>> 28) & 0xf;\n out[op++] = (in1 >>> 0) & 0xf;\n out[op++] = (in1 >>> 4) & 0xf;\n out[op++] = (in1 >>> 8) & 0xf;\n out[op++] = (in1 >>> 12) & 0xf;\n out[op++] = (in1 >>> 16) & 0xf;\n out[op++] = (in1 >>> 20) & 0xf;\n out[op++] = (in1 >>> 24) & 0xf;\n out[op++] = (in1 >>> 28) & 0xf;\n out[op++] = (in2 >>> 0) & 0xf;\n out[op++] = (in2 >>> 4) & 0xf;\n out[op++] = (in2 >>> 8) & 0xf;\n out[op++] = (in2 >>> 12) & 0xf;\n out[op++] = (in2 >>> 16) & 0xf;\n out[op++] = (in2 >>> 20) & 0xf;\n out[op++] = (in2 >>> 24) & 0xf;\n out[op++] = (in2 >>> 28) & 0xf;\n out[op++] = (in3 >>> 0) & 0xf;\n out[op++] = (in3 >>> 4) & 0xf;\n out[op++] = (in3 >>> 8) & 0xf;\n out[op++] = (in3 >>> 12) & 0xf;\n out[op++] = (in3 >>> 16) & 0xf;\n out[op++] = (in3 >>> 20) & 0xf;\n out[op++] = (in3 >>> 24) & 0xf;\n out[op] = (in3 >>> 28) & 0xf;\n}\n\nexport function fastUnpack32_5(inValues: Int32Array, inPos: number, out: Int32Array, outPos: number): void {\n let op = outPos;\n const in0 = inValues[inPos] >>> 0;\n const in1 = inValues[inPos + 1] >>> 0;\n const in2 = inValues[inPos + 2] >>> 0;\n const in3 = inValues[inPos + 3] >>> 0;\n const in4 = inValues[inPos + 4] >>> 0;\n out[op++] = (in0 >>> 0) & 0x1f;\n out[op++] = (in0 >>> 5) & 0x1f;\n out[op++] = (in0 >>> 10) & 0x1f;\n out[op++] = (in0 >>> 15) & 0x1f;\n out[op++] = (in0 >>> 20) & 0x1f;\n out[op++] = (in0 >>> 25) & 0x1f;\n out[op++] = ((in0 >>> 30) | ((in1 & 0x7) << 2)) & 0x1f;\n out[op++] = (in1 >>> 3) & 0x1f;\n out[op++] = (in1 >>> 8) & 0x1f;\n out[op++] = (in1 >>> 13) & 0x1f;\n out[op++] = (in1 >>> 18) & 0x1f;\n out[op++] = (in1 >>> 23) & 0x1f;\n out[op++] = ((in1 >>> 28) | ((in2 & 0x1) << 4)) & 0x1f;\n out[op++] = (in2 >>> 1) & 0x1f;\n out[op++] = (in2 >>> 6) & 0x1f;\n out[op++] = (in2 >>> 11) & 0x1f;\n out[op++] = (in2 >>> 16) & 0x1f;\n out[op++] = (in2 >>> 21) & 0x1f;\n out[op++] = (in2 >>> 26) & 0x1f;\n out[op++] = ((in2 >>> 31) | ((in3 & 0xf) << 1)) & 0x1f;\n out[op++] = (in3 >>> 4) & 0x1f;\n out[op++] = (in3 >>> 9) & 0x1f;\n out[op++] = (in3 >>> 14) & 0x1f;\n out[op++] = (in3 >>> 19) & 0x1f;\n out[op++] = (in3 >>> 24) & 0x1f;\n out[op++] = ((in3 >>> 29) | ((in4 & 0x3) << 3)) & 0x1f;\n out[op++] = (in4 >>> 2) & 0x1f;\n out[op++] = (in4 >>> 7) & 0x1f;\n out[op++] = (in4 >>> 12) & 0x1f;\n out[op++] = (in4 >>> 17) & 0x1f;\n out[op++] = (in4 >>> 22) & 0x1f;\n out[op] = (in4 >>> 27) & 0x1f;\n}\n\nexport function fastUnpack32_6(inValues: Int32Array, inPos: number, out: Int32Array, outPos: number): void {\n let op = outPos;\n const in0 = inValues[inPos] >>> 0;\n const in1 = inValues[inPos + 1] >>> 0;\n const in2 = inValues[inPos + 2] >>> 0;\n const in3 = inValues[inPos + 3] >>> 0;\n const in4 = inValues[inPos + 4] >>> 0;\n const in5 = inValues[inPos + 5] >>> 0;\n out[op++] = (in0 >>> 0) & 0x3f;\n out[op++] = (in0 >>> 6) & 0x3f;\n out[op++] = (in0 >>> 12) & 0x3f;\n out[op++] = (in0 >>> 18) & 0x3f;\n out[op++] = (in0 >>> 24) & 0x3f;\n out[op++] = ((in0 >>> 30) | ((in1 & 0xf) << 2)) & 0x3f;\n out[op++] = (in1 >>> 4) & 0x3f;\n out[op++] = (in1 >>> 10) & 0x3f;\n out[op++] = (in1 >>> 16) & 0x3f;\n out[op++] = (in1 >>> 22) & 0x3f;\n out[op++] = ((in1 >>> 28) | ((in2 & 0x3) << 4)) & 0x3f;\n out[op++] = (in2 >>> 2) & 0x3f;\n out[op++] = (in2 >>> 8) & 0x3f;\n out[op++] = (in2 >>> 14) & 0x3f;\n out[op++] = (in2 >>> 20) & 0x3f;\n out[op++] = (in2 >>> 26) & 0x3f;\n out[op++] = (in3 >>> 0) & 0x3f;\n out[op++] = (in3 >>> 6) & 0x3f;\n out[op++] = (in3 >>> 12) & 0x3f;\n out[op++] = (in3 >>> 18) & 0x3f;\n out[op++] = (in3 >>> 24) & 0x3f;\n out[op++] = ((in3 >>> 30) | ((in4 & 0xf) << 2)) & 0x3f;\n out[op++] = (in4 >>> 4) & 0x3f;\n out[op++] = (in4 >>> 10) & 0x3f;\n out[op++] = (in4 >>> 16) & 0x3f;\n out[op++] = (in4 >>> 22) & 0x3f;\n out[op++] = ((in4 >>> 28) | ((in5 & 0x3) << 4)) & 0x3f;\n out[op++] = (in5 >>> 2) & 0x3f;\n out[op++] = (in5 >>> 8) & 0x3f;\n out[op++] = (in5 >>> 14) & 0x3f;\n out[op++] = (in5 >>> 20) & 0x3f;\n out[op] = (in5 >>> 26) & 0x3f;\n}\n\nexport function fastUnpack32_7(inValues: Int32Array, inPos: number, out: Int32Array, outPos: number): void {\n let op = outPos;\n const in0 = inValues[inPos] >>> 0;\n const in1 = inValues[inPos + 1] >>> 0;\n const in2 = inValues[inPos + 2] >>> 0;\n const in3 = inValues[inPos + 3] >>> 0;\n const in4 = inValues[inPos + 4] >>> 0;\n const in5 = inValues[inPos + 5] >>> 0;\n const in6 = inValues[inPos + 6] >>> 0;\n out[op++] = (in0 >>> 0) & 0x7f;\n out[op++] = (in0 >>> 7) & 0x7f;\n out[op++] = (in0 >>> 14) & 0x7f;\n out[op++] = (in0 >>> 21) & 0x7f;\n out[op++] = ((in0 >>> 28) | ((in1 & 0x7) << 4)) & 0x7f;\n out[op++] = (in1 >>> 3) & 0x7f;\n out[op++] = (in1 >>> 10) & 0x7f;\n out[op++] = (in1 >>> 17) & 0x7f;\n out[op++] = (in1 >>> 24) & 0x7f;\n out[op++] = ((in1 >>> 31) | ((in2 & 0x3f) << 1)) & 0x7f;\n out[op++] = (in2 >>> 6) & 0x7f;\n out[op++] = (in2 >>> 13) & 0x7f;\n out[op++] = (in2 >>> 20) & 0x7f;\n out[op++] = ((in2 >>> 27) | ((in3 & 0x3) << 5)) & 0x7f;\n out[op++] = (in3 >>> 2) & 0x7f;\n out[op++] = (in3 >>> 9) & 0x7f;\n out[op++] = (in3 >>> 16) & 0x7f;\n out[op++] = (in3 >>> 23) & 0x7f;\n out[op++] = ((in3 >>> 30) | ((in4 & 0x1f) << 2)) & 0x7f;\n out[op++] = (in4 >>> 5) & 0x7f;\n out[op++] = (in4 >>> 12) & 0x7f;\n out[op++] = (in4 >>> 19) & 0x7f;\n out[op++] = ((in4 >>> 26) | ((in5 & 0x1) << 6)) & 0x7f;\n out[op++] = (in5 >>> 1) & 0x7f;\n out[op++] = (in5 >>> 8) & 0x7f;\n out[op++] = (in5 >>> 15) & 0x7f;\n out[op++] = (in5 >>> 22) & 0x7f;\n out[op++] = ((in5 >>> 29) | ((in6 & 0xf) << 3)) & 0x7f;\n out[op++] = (in6 >>> 4) & 0x7f;\n out[op++] = (in6 >>> 11) & 0x7f;\n out[op++] = (in6 >>> 18) & 0x7f;\n out[op] = (in6 >>> 25) & 0x7f;\n}\n\nexport function fastUnpack32_8(inValues: Int32Array, inPos: number, out: Int32Array, outPos: number): void {\n let op = outPos;\n const in0 = inValues[inPos] >>> 0;\n const in1 = inValues[inPos + 1] >>> 0;\n const in2 = inValues[inPos + 2] >>> 0;\n const in3 = inValues[inPos + 3] >>> 0;\n const in4 = inValues[inPos + 4] >>> 0;\n const in5 = inValues[inPos + 5] >>> 0;\n const in6 = inValues[inPos + 6] >>> 0;\n const in7 = inValues[inPos + 7] >>> 0;\n out[op++] = (in0 >>> 0) & 0xff;\n out[op++] = (in0 >>> 8) & 0xff;\n out[op++] = (in0 >>> 16) & 0xff;\n out[op++] = (in0 >>> 24) & 0xff;\n out[op++] = (in1 >>> 0) & 0xff;\n out[op++] = (in1 >>> 8) & 0xff;\n out[op++] = (in1 >>> 16) & 0xff;\n out[op++] = (in1 >>> 24) & 0xff;\n out[op++] = (in2 >>> 0) & 0xff;\n out[op++] = (in2 >>> 8) & 0xff;\n out[op++] = (in2 >>> 16) & 0xff;\n out[op++] = (in2 >>> 24) & 0xff;\n out[op++] = (in3 >>> 0) & 0xff;\n out[op++] = (in3 >>> 8) & 0xff;\n out[op++] = (in3 >>> 16) & 0xff;\n out[op++] = (in3 >>> 24) & 0xff;\n out[op++] = (in4 >>> 0) & 0xff;\n out[op++] = (in4 >>> 8) & 0xff;\n out[op++] = (in4 >>> 16) & 0xff;\n out[op++] = (in4 >>> 24) & 0xff;\n out[op++] = (in5 >>> 0) & 0xff;\n out[op++] = (in5 >>> 8) & 0xff;\n out[op++] = (in5 >>> 16) & 0xff;\n out[op++] = (in5 >>> 24) & 0xff;\n out[op++] = (in6 >>> 0) & 0xff;\n out[op++] = (in6 >>> 8) & 0xff;\n out[op++] = (in6 >>> 16) & 0xff;\n out[op++] = (in6 >>> 24) & 0xff;\n out[op++] = (in7 >>> 0) & 0xff;\n out[op++] = (in7 >>> 8) & 0xff;\n out[op++] = (in7 >>> 16) & 0xff;\n out[op] = (in7 >>> 24) & 0xff;\n}\n\nexport function fastUnpack32_9(inValues: Int32Array, inPos: number, out: Int32Array, outPos: number): void {\n let op = outPos;\n const in0 = inValues[inPos] >>> 0;\n const in1 = inValues[inPos + 1] >>> 0;\n const in2 = inValues[inPos + 2] >>> 0;\n const in3 = inValues[inPos + 3] >>> 0;\n const in4 = inValues[inPos + 4] >>> 0;\n const in5 = inValues[inPos + 5] >>> 0;\n const in6 = inValues[inPos + 6] >>> 0;\n const in7 = inValues[inPos + 7] >>> 0;\n const in8 = inValues[inPos + 8] >>> 0;\n out[op++] = (in0 >>> 0) & 0x1ff;\n out[op++] = (in0 >>> 9) & 0x1ff;\n out[op++] = (in0 >>> 18) & 0x1ff;\n out[op++] = ((in0 >>> 27) | ((in1 & 0xf) << 5)) & 0x1ff;\n out[op++] = (in1 >>> 4) & 0x1ff;\n out[op++] = (in1 >>> 13) & 0x1ff;\n out[op++] = (in1 >>> 22) & 0x1ff;\n out[op++] = ((in1 >>> 31) | ((in2 & 0xff) << 1)) & 0x1ff;\n out[op++] = (in2 >>> 8) & 0x1ff;\n out[op++] = (in2 >>> 17) & 0x1ff;\n out[op++] = ((in2 >>> 26) | ((in3 & 0x7) << 6)) & 0x1ff;\n out[op++] = (in3 >>> 3) & 0x1ff;\n out[op++] = (in3 >>> 12) & 0x1ff;\n out[op++] = (in3 >>> 21) & 0x1ff;\n out[op++] = ((in3 >>> 30) | ((in4 & 0x7f) << 2)) & 0x1ff;\n out[op++] = (in4 >>> 7) & 0x1ff;\n out[op++] = (in4 >>> 16) & 0x1ff;\n out[op++] = ((in4 >>> 25) | ((in5 & 0x3) << 7)) & 0x1ff;\n out[op++] = (in5 >>> 2) & 0x1ff;\n out[op++] = (in5 >>> 11) & 0x1ff;\n out[op++] = (in5 >>> 20) & 0x1ff;\n out[op++] = ((in5 >>> 29) | ((in6 & 0x3f) << 3)) & 0x1ff;\n out[op++] = (in6 >>> 6) & 0x1ff;\n out[op++] = (in6 >>> 15) & 0x1ff;\n out[op++] = ((in6 >>> 24) | ((in7 & 0x1) << 8)) & 0x1ff;\n out[op++] = (in7 >>> 1) & 0x1ff;\n out[op++] = (in7 >>> 10) & 0x1ff;\n out[op++] = (in7 >>> 19) & 0x1ff;\n out[op++] = ((in7 >>> 28) | ((in8 & 0x1f) << 4)) & 0x1ff;\n out[op++] = (in8 >>> 5) & 0x1ff;\n out[op++] = (in8 >>> 14) & 0x1ff;\n out[op] = (in8 >>> 23) & 0x1ff;\n}\n\nexport function fastUnpack32_10(inValues: Int32Array, inPos: number, out: Int32Array, outPos: number): void {\n let op = outPos;\n const in0 = inValues[inPos] >>> 0;\n const in1 = inValues[inPos + 1] >>> 0;\n const in2 = inValues[inPos + 2] >>> 0;\n const in3 = inValues[inPos + 3] >>> 0;\n const in4 = inValues[inPos + 4] >>> 0;\n const in5 = inValues[inPos + 5] >>> 0;\n const in6 = inValues[inPos + 6] >>> 0;\n const in7 = inValues[inPos + 7] >>> 0;\n const in8 = inValues[inPos + 8] >>> 0;\n const in9 = inValues[inPos + 9] >>> 0;\n out[op++] = (in0 >>> 0) & 0x3ff;\n out[op++] = (in0 >>> 10) & 0x3ff;\n out[op++] = (in0 >>> 20) & 0x3ff;\n out[op++] = ((in0 >>> 30) | ((in1 & 0xff) << 2)) & 0x3ff;\n out[op++] = (in1 >>> 8) & 0x3ff;\n out[op++] = (in1 >>> 18) & 0x3ff;\n out[op++] = ((in1 >>> 28) | ((in2 & 0x3f) << 4)) & 0x3ff;\n out[op++] = (in2 >>> 6) & 0x3ff;\n out[op++] = (in2 >>> 16) & 0x3ff;\n out[op++] = ((in2 >>> 26) | ((in3 & 0xf) << 6)) & 0x3ff;\n out[op++] = (in3 >>> 4) & 0x3ff;\n out[op++] = (in3 >>> 14) & 0x3ff;\n out[op++] = ((in3 >>> 24) | ((in4 & 0x3) << 8)) & 0x3ff;\n out[op++] = (in4 >>> 2) & 0x3ff;\n out[op++] = (in4 >>> 12) & 0x3ff;\n out[op++] = (in4 >>> 22) & 0x3ff;\n out[op++] = (in5 >>> 0) & 0x3ff;\n out[op++] = (in5 >>> 10) & 0x3ff;\n out[op++] = (in5 >>> 20) & 0x3ff;\n out[op++] = ((in5 >>> 30) | ((in6 & 0xff) << 2)) & 0x3ff;\n out[op++] = (in6 >>> 8) & 0x3ff;\n out[op++] = (in6 >>> 18) & 0x3ff;\n out[op++] = ((in6 >>> 28) | ((in7 & 0x3f) << 4)) & 0x3ff;\n out[op++] = (in7 >>> 6) & 0x3ff;\n out[op++] = (in7 >>> 16) & 0x3ff;\n out[op++] = ((in7 >>> 26) | ((in8 & 0xf) << 6)) & 0x3ff;\n out[op++] = (in8 >>> 4) & 0x3ff;\n out[op++] = (in8 >>> 14) & 0x3ff;\n out[op++] = ((in8 >>> 24) | ((in9 & 0x3) << 8)) & 0x3ff;\n out[op++] = (in9 >>> 2) & 0x3ff;\n out[op++] = (in9 >>> 12) & 0x3ff;\n out[op] = (in9 >>> 22) & 0x3ff;\n}\n\nexport function fastUnpack32_11(inValues: Int32Array, inPos: number, out: Int32Array, outPos: number): void {\n let op = outPos;\n const in0 = inValues[inPos] >>> 0;\n const in1 = inValues[inPos + 1] >>> 0;\n const in2 = inValues[inPos + 2] >>> 0;\n const in3 = inValues[inPos + 3] >>> 0;\n const in4 = inValues[inPos + 4] >>> 0;\n const in5 = inValues[inPos + 5] >>> 0;\n const in6 = inValues[inPos + 6] >>> 0;\n const in7 = inValues[inPos + 7] >>> 0;\n const in8 = inValues[inPos + 8] >>> 0;\n const in9 = inValues[inPos + 9] >>> 0;\n const in10 = inValues[inPos + 10] >>> 0;\n out[op++] = (in0 >>> 0) & 0x7ff;\n out[op++] = (in0 >>> 11) & 0x7ff;\n out[op++] = ((in0 >>> 22) | ((in1 & 0x1) << 10)) & 0x7ff;\n out[op++] = (in1 >>> 1) & 0x7ff;\n out[op++] = (in1 >>> 12) & 0x7ff;\n out[op++] = ((in1 >>> 23) | ((in2 & 0x3) << 9)) & 0x7ff;\n out[op++] = (in2 >>> 2) & 0x7ff;\n out[op++] = (in2 >>> 13) & 0x7ff;\n out[op++] = ((in2 >>> 24) | ((in3 & 0x7) << 8)) & 0x7ff;\n out[op++] = (in3 >>> 3) & 0x7ff;\n out[op++] = (in3 >>> 14) & 0x7ff;\n out[op++] = ((in3 >>> 25) | ((in4 & 0xf) << 7)) & 0x7ff;\n out[op++] = (in4 >>> 4) & 0x7ff;\n out[op++] = (in4 >>> 15) & 0x7ff;\n out[op++] = ((in4 >>> 26) | ((in5 & 0x1f) << 6)) & 0x7ff;\n out[op++] = (in5 >>> 5) & 0x7ff;\n out[op++] = (in5 >>> 16) & 0x7ff;\n out[op++] = ((in5 >>> 27) | ((in6 & 0x3f) << 5)) & 0x7ff;\n out[op++] = (in6 >>> 6) & 0x7ff;\n out[op++] = (in6 >>> 17) & 0x7ff;\n out[op++] = ((in6 >>> 28) | ((in7 & 0x7f) << 4)) & 0x7ff;\n out[op++] = (in7 >>> 7) & 0x7ff;\n out[op++] = (in7 >>> 18) & 0x7ff;\n out[op++] = ((in7 >>> 29) | ((in8 & 0xff) << 3)) & 0x7ff;\n out[op++] = (in8 >>> 8) & 0x7ff;\n out[op++] = (in8 >>> 19) & 0x7ff;\n out[op++] = ((in8 >>> 30) | ((in9 & 0x1ff) << 2)) & 0x7ff;\n out[op++] = (in9 >>> 9) & 0x7ff;\n out[op++] = (in9 >>> 20) & 0x7ff;\n out[op++] = ((in9 >>> 31) | ((in10 & 0x3ff) << 1)) & 0x7ff;\n out[op++] = (in10 >>> 10) & 0x7ff;\n out[op] = (in10 >>> 21) & 0x7ff;\n}\n\nexport function fastUnpack32_12(inValues: Int32Array, inPos: number, out: Int32Array, outPos: number): void {\n let op = outPos;\n const in0 = inValues[inPos] >>> 0;\n const in1 = inValues[inPos + 1] >>> 0;\n const in2 = inValues[inPos + 2] >>> 0;\n const in3 = inValues[inPos + 3] >>> 0;\n const in4 = inValues[inPos + 4] >>> 0;\n const in5 = inValues[inPos + 5] >>> 0;\n const in6 = inValues[inPos + 6] >>> 0;\n const in7 = inValues[inPos + 7] >>> 0;\n const in8 = inValues[inPos + 8] >>> 0;\n const in9 = inValues[inPos + 9] >>> 0;\n const in10 = inValues[inPos + 10] >>> 0;\n const in11 = inValues[inPos + 11] >>> 0;\n out[op++] = (in0 >>> 0) & 0xfff;\n out[op++] = (in0 >>> 12) & 0xfff;\n out[op++] = ((in0 >>> 24) | ((in1 & 0xf) << 8)) & 0xfff;\n out[op++] = (in1 >>> 4) & 0xfff;\n out[op++] = (in1 >>> 16) & 0xfff;\n out[op++] = ((in1 >>> 28) | ((in2 & 0xff) << 4)) & 0xfff;\n out[op++] = (in2 >>> 8) & 0xfff;\n out[op++] = (in2 >>> 20) & 0xfff;\n out[op++] = (in3 >>> 0) & 0xfff;\n out[op++] = (in3 >>> 12) & 0xfff;\n out[op++] = ((in3 >>> 24) | ((in4 & 0xf) << 8)) & 0xfff;\n out[op++] = (in4 >>> 4) & 0xfff;\n out[op++] = (in4 >>> 16) & 0xfff;\n out[op++] = ((in4 >>> 28) | ((in5 & 0xff) << 4)) & 0xfff;\n out[op++] = (in5 >>> 8) & 0xfff;\n out[op++] = (in5 >>> 20) & 0xfff;\n out[op++] = (in6 >>> 0) & 0xfff;\n out[op++] = (in6 >>> 12) & 0xfff;\n out[op++] = ((in6 >>> 24) | ((in7 & 0xf) << 8)) & 0xfff;\n out[op++] = (in7 >>> 4) & 0xfff;\n out[op++] = (in7 >>> 16) & 0xfff;\n out[op++] = ((in7 >>> 28) | ((in8 & 0xff) << 4)) & 0xfff;\n out[op++] = (in8 >>> 8) & 0xfff;\n out[op++] = (in8 >>> 20) & 0xfff;\n out[op++] = (in9 >>> 0) & 0xfff;\n out[op++] = (in9 >>> 12) & 0xfff;\n out[op++] = ((in9 >>> 24) | ((in10 & 0xf) << 8)) & 0xfff;\n out[op++] = (in10 >>> 4) & 0xfff;\n out[op++] = (in10 >>> 16) & 0xfff;\n out[op++] = ((in10 >>> 28) | ((in11 & 0xff) << 4)) & 0xfff;\n out[op++] = (in11 >>> 8) & 0xfff;\n out[op] = (in11 >>> 20) & 0xfff;\n}\n\nexport function fastUnpack32_16(inValues: Int32Array, inPos: number, out: Int32Array, outPos: number): void {\n let op = outPos;\n const in0 = inValues[inPos] >>> 0;\n const in1 = inValues[inPos + 1] >>> 0;\n const in2 = inValues[inPos + 2] >>> 0;\n const in3 = inValues[inPos + 3] >>> 0;\n const in4 = inValues[inPos + 4] >>> 0;\n const in5 = inValues[inPos + 5] >>> 0;\n const in6 = inValues[inPos + 6] >>> 0;\n const in7 = inValues[inPos + 7] >>> 0;\n const in8 = inValues[inPos + 8] >>> 0;\n const in9 = inValues[inPos + 9] >>> 0;\n const in10 = inValues[inPos + 10] >>> 0;\n const in11 = inValues[inPos + 11] >>> 0;\n const in12 = inValues[inPos + 12] >>> 0;\n const in13 = inValues[inPos + 13] >>> 0;\n const in14 = inValues[inPos + 14] >>> 0;\n const in15 = inValues[inPos + 15] >>> 0;\n out[op++] = (in0 >>> 0) & 0xffff;\n out[op++] = (in0 >>> 16) & 0xffff;\n out[op++] = (in1 >>> 0) & 0xffff;\n out[op++] = (in1 >>> 16) & 0xffff;\n out[op++] = (in2 >>> 0) & 0xffff;\n out[op++] = (in2 >>> 16) & 0xffff;\n out[op++] = (in3 >>> 0) & 0xffff;\n out[op++] = (in3 >>> 16) & 0xffff;\n out[op++] = (in4 >>> 0) & 0xffff;\n out[op++] = (in4 >>> 16) & 0xffff;\n out[op++] = (in5 >>> 0) & 0xffff;\n out[op++] = (in5 >>> 16) & 0xffff;\n out[op++] = (in6 >>> 0) & 0xffff;\n out[op++] = (in6 >>> 16) & 0xffff;\n out[op++] = (in7 >>> 0) & 0xffff;\n out[op++] = (in7 >>> 16) & 0xffff;\n out[op++] = (in8 >>> 0) & 0xffff;\n out[op++] = (in8 >>> 16) & 0xffff;\n out[op++] = (in9 >>> 0) & 0xffff;\n out[op++] = (in9 >>> 16) & 0xffff;\n out[op++] = (in10 >>> 0) & 0xffff;\n out[op++] = (in10 >>> 16) & 0xffff;\n out[op++] = (in11 >>> 0) & 0xffff;\n out[op++] = (in11 >>> 16) & 0xffff;\n out[op++] = (in12 >>> 0) & 0xffff;\n out[op++] = (in12 >>> 16) & 0xffff;\n out[op++] = (in13 >>> 0) & 0xffff;\n out[op++] = (in13 >>> 16) & 0xffff;\n out[op++] = (in14 >>> 0) & 0xffff;\n out[op++] = (in14 >>> 16) & 0xffff;\n out[op++] = (in15 >>> 0) & 0xffff;\n out[op] = (in15 >>> 16) & 0xffff;\n}\n\nexport function fastUnpack256_1(inValues: Int32Array, inPos: number, out: Int32Array, outPos: number): void {\n let op = outPos;\n let ip = inPos;\n for (let c = 0; c < 8; c++) {\n const in0 = inValues[ip++] >>> 0;\n out[op++] = (in0 >>> 0) & 0x1;\n out[op++] = (in0 >>> 1) & 0x1;\n out[op++] = (in0 >>> 2) & 0x1;\n out[op++] = (in0 >>> 3) & 0x1;\n out[op++] = (in0 >>> 4) & 0x1;\n out[op++] = (in0 >>> 5) & 0x1;\n out[op++] = (in0 >>> 6) & 0x1;\n out[op++] = (in0 >>> 7) & 0x1;\n out[op++] = (in0 >>> 8) & 0x1;\n out[op++] = (in0 >>> 9) & 0x1;\n out[op++] = (in0 >>> 10) & 0x1;\n out[op++] = (in0 >>> 11) & 0x1;\n out[op++] = (in0 >>> 12) & 0x1;\n out[op++] = (in0 >>> 13) & 0x1;\n out[op++] = (in0 >>> 14) & 0x1;\n out[op++] = (in0 >>> 15) & 0x1;\n out[op++] = (in0 >>> 16) & 0x1;\n out[op++] = (in0 >>> 17) & 0x1;\n out[op++] = (in0 >>> 18) & 0x1;\n out[op++] = (in0 >>> 19) & 0x1;\n out[op++] = (in0 >>> 20) & 0x1;\n out[op++] = (in0 >>> 21) & 0x1;\n out[op++] = (in0 >>> 22) & 0x1;\n out[op++] = (in0 >>> 23) & 0x1;\n out[op++] = (in0 >>> 24) & 0x1;\n out[op++] = (in0 >>> 25) & 0x1;\n out[op++] = (in0 >>> 26) & 0x1;\n out[op++] = (in0 >>> 27) & 0x1;\n out[op++] = (in0 >>> 28) & 0x1;\n out[op++] = (in0 >>> 29) & 0x1;\n out[op++] = (in0 >>> 30) & 0x1;\n out[op++] = (in0 >>> 31) & 0x1;\n }\n}\n\nexport function fastUnpack256_2(inValues: Int32Array, inPos: number, out: Int32Array, outPos: number): void {\n let op = outPos;\n let ip = inPos;\n for (let c = 0; c < 8; c++) {\n const in0 = inValues[ip++] >>> 0;\n const in1 = inValues[ip++] >>> 0;\n out[op++] = (in0 >>> 0) & 0x3;\n out[op++] = (in0 >>> 2) & 0x3;\n out[op++] = (in0 >>> 4) & 0x3;\n out[op++] = (in0 >>> 6) & 0x3;\n out[op++] = (in0 >>> 8) & 0x3;\n out[op++] = (in0 >>> 10) & 0x3;\n out[op++] = (in0 >>> 12) & 0x3;\n out[op++] = (in0 >>> 14) & 0x3;\n out[op++] = (in0 >>> 16) & 0x3;\n out[op++] = (in0 >>> 18) & 0x3;\n out[op++] = (in0 >>> 20) & 0x3;\n out[op++] = (in0 >>> 22) & 0x3;\n out[op++] = (in0 >>> 24) & 0x3;\n out[op++] = (in0 >>> 26) & 0x3;\n out[op++] = (in0 >>> 28) & 0x3;\n out[op++] = (in0 >>> 30) & 0x3;\n out[op++] = (in1 >>> 0) & 0x3;\n out[op++] = (in1 >>> 2) & 0x3;\n out[op++] = (in1 >>> 4) & 0x3;\n out[op++] = (in1 >>> 6) & 0x3;\n out[op++] = (in1 >>> 8) & 0x3;\n out[op++] = (in1 >>> 10) & 0x3;\n out[op++] = (in1 >>> 12) & 0x3;\n out[op++] = (in1 >>> 14) & 0x3;\n out[op++] = (in1 >>> 16) & 0x3;\n out[op++] = (in1 >>> 18) & 0x3;\n out[op++] = (in1 >>> 20) & 0x3;\n out[op++] = (in1 >>> 22) & 0x3;\n out[op++] = (in1 >>> 24) & 0x3;\n out[op++] = (in1 >>> 26) & 0x3;\n out[op++] = (in1 >>> 28) & 0x3;\n out[op++] = (in1 >>> 30) & 0x3;\n }\n}\n\nexport function fastUnpack256_3(inValues: Int32Array, inPos: number, out: Int32Array, outPos: number): void {\n let op = outPos;\n let ip = inPos;\n for (let c = 0; c < 8; c++) {\n const in0 = inValues[ip++] >>> 0;\n const in1 = inValues[ip++] >>> 0;\n const in2 = inValues[ip++] >>> 0;\n out[op++] = (in0 >>> 0) & 0x7;\n out[op++] = (in0 >>> 3) & 0x7;\n out[op++] = (in0 >>> 6) & 0x7;\n out[op++] = (in0 >>> 9) & 0x7;\n out[op++] = (in0 >>> 12) & 0x7;\n out[op++] = (in0 >>> 15) & 0x7;\n out[op++] = (in0 >>> 18) & 0x7;\n out[op++] = (in0 >>> 21) & 0x7;\n out[op++] = (in0 >>> 24) & 0x7;\n out[op++] = (in0 >>> 27) & 0x7;\n out[op++] = ((in0 >>> 30) | ((in1 & 0x1) << 2)) & 0x7;\n out[op++] = (in1 >>> 1) & 0x7;\n out[op++] = (in1 >>> 4) & 0x7;\n out[op++] = (in1 >>> 7) & 0x7;\n out[op++] = (in1 >>> 10) & 0x7;\n out[op++] = (in1 >>> 13) & 0x7;\n out[op++] = (in1 >>> 16) & 0x7;\n out[op++] = (in1 >>> 19) & 0x7;\n out[op++] = (in1 >>> 22) & 0x7;\n out[op++] = (in1 >>> 25) & 0x7;\n out[op++] = (in1 >>> 28) & 0x7;\n out[op++] = ((in1 >>> 31) | ((in2 & 0x3) << 1)) & 0x7;\n out[op++] = (in2 >>> 2) & 0x7;\n out[op++] = (in2 >>> 5) & 0x7;\n out[op++] = (in2 >>> 8) & 0x7;\n out[op++] = (in2 >>> 11) & 0x7;\n out[op++] = (in2 >>> 14) & 0x7;\n out[op++] = (in2 >>> 17) & 0x7;\n out[op++] = (in2 >>> 20) & 0x7;\n out[op++] = (in2 >>> 23) & 0x7;\n out[op++] = (in2 >>> 26) & 0x7;\n out[op++] = (in2 >>> 29) & 0x7;\n }\n}\n\nexport function fastUnpack256_4(inValues: Int32Array, inPos: number, out: Int32Array, outPos: number): void {\n let op = outPos;\n let ip = inPos;\n for (let c = 0; c < 8; c++) {\n const in0 = inValues[ip++] >>> 0;\n const in1 = inValues[ip++] >>> 0;\n const in2 = inValues[ip++] >>> 0;\n const in3 = inValues[ip++] >>> 0;\n out[op++] = (in0 >>> 0) & 0xf;\n out[op++] = (in0 >>> 4) & 0xf;\n out[op++] = (in0 >>> 8) & 0xf;\n out[op++] = (in0 >>> 12) & 0xf;\n out[op++] = (in0 >>> 16) & 0xf;\n out[op++] = (in0 >>> 20) & 0xf;\n out[op++] = (in0 >>> 24) & 0xf;\n out[op++] = (in0 >>> 28) & 0xf;\n out[op++] = (in1 >>> 0) & 0xf;\n out[op++] = (in1 >>> 4) & 0xf;\n out[op++] = (in1 >>> 8) & 0xf;\n out[op++] = (in1 >>> 12) & 0xf;\n out[op++] = (in1 >>> 16) & 0xf;\n out[op++] = (in1 >>> 20) & 0xf;\n out[op++] = (in1 >>> 24) & 0xf;\n out[op++] = (in1 >>> 28) & 0xf;\n out[op++] = (in2 >>> 0) & 0xf;\n out[op++] = (in2 >>> 4) & 0xf;\n out[op++] = (in2 >>> 8) & 0xf;\n out[op++] = (in2 >>> 12) & 0xf;\n out[op++] = (in2 >>> 16) & 0xf;\n out[op++] = (in2 >>> 20) & 0xf;\n out[op++] = (in2 >>> 24) & 0xf;\n out[op++] = (in2 >>> 28) & 0xf;\n out[op++] = (in3 >>> 0) & 0xf;\n out[op++] = (in3 >>> 4) & 0xf;\n out[op++] = (in3 >>> 8) & 0xf;\n out[op++] = (in3 >>> 12) & 0xf;\n out[op++] = (in3 >>> 16) & 0xf;\n out[op++] = (in3 >>> 20) & 0xf;\n out[op++] = (in3 >>> 24) & 0xf;\n out[op++] = (in3 >>> 28) & 0xf;\n }\n}\n\nexport function fastUnpack256_5(inValues: Int32Array, inPos: number, out: Int32Array, outPos: number): void {\n let op = outPos;\n let ip = inPos;\n for (let c = 0; c < 8; c++) {\n const in0 = inValues[ip++] >>> 0;\n const in1 = inValues[ip++] >>> 0;\n const in2 = inValues[ip++] >>> 0;\n const in3 = inValues[ip++] >>> 0;\n const in4 = inValues[ip++] >>> 0;\n out[op++] = (in0 >>> 0) & 0x1f;\n out[op++] = (in0 >>> 5) & 0x1f;\n out[op++] = (in0 >>> 10) & 0x1f;\n out[op++] = (in0 >>> 15) & 0x1f;\n out[op++] = (in0 >>> 20) & 0x1f;\n out[op++] = (in0 >>> 25) & 0x1f;\n out[op++] = ((in0 >>> 30) | ((in1 & 0x7) << 2)) & 0x1f;\n out[op++] = (in1 >>> 3) & 0x1f;\n out[op++] = (in1 >>> 8) & 0x1f;\n out[op++] = (in1 >>> 13) & 0x1f;\n out[op++] = (in1 >>> 18) & 0x1f;\n out[op++] = (in1 >>> 23) & 0x1f;\n out[op++] = ((in1 >>> 28) | ((in2 & 0x1) << 4)) & 0x1f;\n out[op++] = (in2 >>> 1) & 0x1f;\n out[op++] = (in2 >>> 6) & 0x1f;\n out[op++] = (in2 >>> 11) & 0x1f;\n out[op++] = (in2 >>> 16) & 0x1f;\n out[op++] = (in2 >>> 21) & 0x1f;\n out[op++] = (in2 >>> 26) & 0x1f;\n out[op++] = ((in2 >>> 31) | ((in3 & 0xf) << 1)) & 0x1f;\n out[op++] = (in3 >>> 4) & 0x1f;\n out[op++] = (in3 >>> 9) & 0x1f;\n out[op++] = (in3 >>> 14) & 0x1f;\n out[op++] = (in3 >>> 19) & 0x1f;\n out[op++] = (in3 >>> 24) & 0x1f;\n out[op++] = ((in3 >>> 29) | ((in4 & 0x3) << 3)) & 0x1f;\n out[op++] = (in4 >>> 2) & 0x1f;\n out[op++] = (in4 >>> 7) & 0x1f;\n out[op++] = (in4 >>> 12) & 0x1f;\n out[op++] = (in4 >>> 17) & 0x1f;\n out[op++] = (in4 >>> 22) & 0x1f;\n out[op++] = (in4 >>> 27) & 0x1f;\n }\n}\n\nexport function fastUnpack256_6(inValues: Int32Array, inPos: number, out: Int32Array, outPos: number): void {\n let op = outPos;\n let ip = inPos;\n for (let c = 0; c < 8; c++) {\n const in0 = inValues[ip++] >>> 0;\n const in1 = inValues[ip++] >>> 0;\n const in2 = inValues[ip++] >>> 0;\n const in3 = inValues[ip++] >>> 0;\n const in4 = inValues[ip++] >>> 0;\n const in5 = inValues[ip++] >>> 0;\n out[op++] = (in0 >>> 0) & 0x3f;\n out[op++] = (in0 >>> 6) & 0x3f;\n out[op++] = (in0 >>> 12) & 0x3f;\n out[op++] = (in0 >>> 18) & 0x3f;\n out[op++] = (in0 >>> 24) & 0x3f;\n out[op++] = ((in0 >>> 30) | ((in1 & 0xf) << 2)) & 0x3f;\n out[op++] = (in1 >>> 4) & 0x3f;\n out[op++] = (in1 >>> 10) & 0x3f;\n out[op++] = (in1 >>> 16) & 0x3f;\n out[op++] = (in1 >>> 22) & 0x3f;\n out[op++] = ((in1 >>> 28) | ((in2 & 0x3) << 4)) & 0x3f;\n out[op++] = (in2 >>> 2) & 0x3f;\n out[op++] = (in2 >>> 8) & 0x3f;\n out[op++] = (in2 >>> 14) & 0x3f;\n out[op++] = (in2 >>> 20) & 0x3f;\n out[op++] = (in2 >>> 26) & 0x3f;\n out[op++] = (in3 >>> 0) & 0x3f;\n out[op++] = (in3 >>> 6) & 0x3f;\n out[op++] = (in3 >>> 12) & 0x3f;\n out[op++] = (in3 >>> 18) & 0x3f;\n out[op++] = (in3 >>> 24) & 0x3f;\n out[op++] = ((in3 >>> 30) | ((in4 & 0xf) << 2)) & 0x3f;\n out[op++] = (in4 >>> 4) & 0x3f;\n out[op++] = (in4 >>> 10) & 0x3f;\n out[op++] = (in4 >>> 16) & 0x3f;\n out[op++] = (in4 >>> 22) & 0x3f;\n out[op++] = ((in4 >>> 28) | ((in5 & 0x3) << 4)) & 0x3f;\n out[op++] = (in5 >>> 2) & 0x3f;\n out[op++] = (in5 >>> 8) & 0x3f;\n out[op++] = (in5 >>> 14) & 0x3f;\n out[op++] = (in5 >>> 20) & 0x3f;\n out[op++] = (in5 >>> 26) & 0x3f;\n }\n}\n\nexport function fastUnpack256_7(inValues: Int32Array, inPos: number, out: Int32Array, outPos: number): void {\n let op = outPos;\n let ip = inPos;\n for (let c = 0; c < 8; c++) {\n const in0 = inValues[ip++] >>> 0;\n const in1 = inValues[ip++] >>> 0;\n const in2 = inValues[ip++] >>> 0;\n const in3 = inValues[ip++] >>> 0;\n const in4 = inValues[ip++] >>> 0;\n const in5 = inValues[ip++] >>> 0;\n const in6 = inValues[ip++] >>> 0;\n out[op++] = (in0 >>> 0) & 0x7f;\n out[op++] = (in0 >>> 7) & 0x7f;\n out[op++] = (in0 >>> 14) & 0x7f;\n out[op++] = (in0 >>> 21) & 0x7f;\n out[op++] = ((in0 >>> 28) | ((in1 & 0x7) << 4)) & 0x7f;\n out[op++] = (in1 >>> 3) & 0x7f;\n out[op++] = (in1 >>> 10) & 0x7f;\n out[op++] = (in1 >>> 17) & 0x7f;\n out[op++] = (in1 >>> 24) & 0x7f;\n out[op++] = ((in1 >>> 31) | ((in2 & 0x3f) << 1)) & 0x7f;\n out[op++] = (in2 >>> 6) & 0x7f;\n out[op++] = (in2 >>> 13) & 0x7f;\n out[op++] = (in2 >>> 20) & 0x7f;\n out[op++] = ((in2 >>> 27) | ((in3 & 0x3) << 5)) & 0x7f;\n out[op++] = (in3 >>> 2) & 0x7f;\n out[op++] = (in3 >>> 9) & 0x7f;\n out[op++] = (in3 >>> 16) & 0x7f;\n out[op++] = (in3 >>> 23) & 0x7f;\n out[op++] = ((in3 >>> 30) | ((in4 & 0x1f) << 2)) & 0x7f;\n out[op++] = (in4 >>> 5) & 0x7f;\n out[op++] = (in4 >>> 12) & 0x7f;\n out[op++] = (in4 >>> 19) & 0x7f;\n out[op++] = ((in4 >>> 26) | ((in5 & 0x1) << 6)) & 0x7f;\n out[op++] = (in5 >>> 1) & 0x7f;\n out[op++] = (in5 >>> 8) & 0x7f;\n out[op++] = (in5 >>> 15) & 0x7f;\n out[op++] = (in5 >>> 22) & 0x7f;\n out[op++] = ((in5 >>> 29) | ((in6 & 0xf) << 3)) & 0x7f;\n out[op++] = (in6 >>> 4) & 0x7f;\n out[op++] = (in6 >>> 11) & 0x7f;\n out[op++] = (in6 >>> 18) & 0x7f;\n out[op++] = (in6 >>> 25) & 0x7f;\n }\n}\n\nexport function fastUnpack256_8(inValues: Int32Array, inPos: number, out: Int32Array, outPos: number): void {\n let op = outPos;\n let ip = inPos;\n for (let c = 0; c < 8; c++) {\n const in0 = inValues[ip++] >>> 0;\n const in1 = inValues[ip++] >>> 0;\n const in2 = inValues[ip++] >>> 0;\n const in3 = inValues[ip++] >>> 0;\n const in4 = inValues[ip++] >>> 0;\n const in5 = inValues[ip++] >>> 0;\n const in6 = inValues[ip++] >>> 0;\n const in7 = inValues[ip++] >>> 0;\n out[op++] = (in0 >>> 0) & 0xff;\n out[op++] = (in0 >>> 8) & 0xff;\n out[op++] = (in0 >>> 16) & 0xff;\n out[op++] = (in0 >>> 24) & 0xff;\n out[op++] = (in1 >>> 0) & 0xff;\n out[op++] = (in1 >>> 8) & 0xff;\n out[op++] = (in1 >>> 16) & 0xff;\n out[op++] = (in1 >>> 24) & 0xff;\n out[op++] = (in2 >>> 0) & 0xff;\n out[op++] = (in2 >>> 8) & 0xff;\n out[op++] = (in2 >>> 16) & 0xff;\n out[op++] = (in2 >>> 24) & 0xff;\n out[op++] = (in3 >>> 0) & 0xff;\n out[op++] = (in3 >>> 8) & 0xff;\n out[op++] = (in3 >>> 16) & 0xff;\n out[op++] = (in3 >>> 24) & 0xff;\n out[op++] = (in4 >>> 0) & 0xff;\n out[op++] = (in4 >>> 8) & 0xff;\n out[op++] = (in4 >>> 16) & 0xff;\n out[op++] = (in4 >>> 24) & 0xff;\n out[op++] = (in5 >>> 0) & 0xff;\n out[op++] = (in5 >>> 8) & 0xff;\n out[op++] = (in5 >>> 16) & 0xff;\n out[op++] = (in5 >>> 24) & 0xff;\n out[op++] = (in6 >>> 0) & 0xff;\n out[op++] = (in6 >>> 8) & 0xff;\n out[op++] = (in6 >>> 16) & 0xff;\n out[op++] = (in6 >>> 24) & 0xff;\n out[op++] = (in7 >>> 0) & 0xff;\n out[op++] = (in7 >>> 8) & 0xff;\n out[op++] = (in7 >>> 16) & 0xff;\n out[op++] = (in7 >>> 24) & 0xff;\n }\n}\n\nexport function fastUnpack256_16(inValues: Int32Array, inPos: number, out: Int32Array, outPos: number): void {\n let op = outPos;\n let ip = inPos;\n for (let i = 0; i < 128; i++) {\n const in0 = inValues[ip++] >>> 0;\n out[op++] = in0 & 0xffff;\n out[op++] = (in0 >>> 16) & 0xffff;\n }\n}\n\nexport function fastUnpack256_Generic(\n inValues: Int32Array,\n inPos: number,\n out: Int32Array,\n outPos: number,\n bitWidth: number,\n): void {\n const mask = MASKS[bitWidth] >>> 0;\n\n let inputWordIndex = inPos;\n let bitOffset = 0;\n let currentWord = inValues[inputWordIndex] >>> 0;\n let op = outPos;\n\n for (let c = 0; c < 8; c++) {\n for (let i = 0; i < 32; i++) {\n if (bitOffset + bitWidth <= 32) {\n const value = (currentWord >>> bitOffset) & mask;\n out[op + i] = value | 0;\n bitOffset += bitWidth;\n\n if (bitOffset === 32) {\n bitOffset = 0;\n inputWordIndex++;\n if (i !== 31) {\n currentWord = inValues[inputWordIndex] >>> 0;\n }\n }\n } else {\n const lowBits = 32 - bitOffset;\n const low = currentWord >>> bitOffset;\n\n inputWordIndex++;\n currentWord = inValues[inputWordIndex] >>> 0;\n\n const highBits = bitWidth - lowBits;\n const highMask = (-1 >>> (32 - highBits)) >>> 0;\n\n const high = currentWord & highMask;\n\n const value = (low | (high << lowBits)) & mask;\n out[op + i] = value | 0;\n bitOffset = highBits;\n }\n }\n op += 32;\n\n bitOffset = 0;\n if (c < 7) {\n currentWord = inValues[inputWordIndex] >>> 0;\n }\n }\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { type GeometryVector } from "../vector/geometry/geometryVector";
|
|
2
1
|
import type IntWrapper from "./intWrapper";
|
|
3
|
-
import {
|
|
2
|
+
import type { GeometryVector } from "../vector/geometry/geometryVector";
|
|
3
|
+
import type { GpuVector } from "../vector/geometry/gpuVector";
|
|
4
4
|
import type GeometryScaling from "./geometryScaling";
|
|
5
5
|
export declare function decodeGeometryColumn(tile: Uint8Array, numStreams: number, offset: IntWrapper, numFeatures: number, scalingData?: GeometryScaling): GeometryVector | GpuVector;
|
|
@@ -4,9 +4,8 @@ import { VectorType } from "../vector/vectorType";
|
|
|
4
4
|
import { PhysicalStreamType } from "../metadata/tile/physicalStreamType";
|
|
5
5
|
import { LengthType } from "../metadata/tile/lengthType";
|
|
6
6
|
import { DictionaryType } from "../metadata/tile/dictionaryType";
|
|
7
|
-
import TopologyVector from "../vector/geometry/topologyVector";
|
|
8
7
|
import { createConstGeometryVector, createMortonEncodedConstGeometryVector, } from "../vector/geometry/constGeometryVector";
|
|
9
|
-
import { createFlatGeometryVector, createFlatGeometryVectorMortonEncoded
|
|
8
|
+
import { createFlatGeometryVector, createFlatGeometryVectorMortonEncoded } from "../vector/geometry/flatGeometryVector";
|
|
10
9
|
import { OffsetType } from "../metadata/tile/offsetType";
|
|
11
10
|
import { createConstGpuVector } from "../vector/geometry/constGpuVector";
|
|
12
11
|
import { createFlatGpuVector } from "../vector/geometry/flatGpuVector";
|
|
@@ -76,7 +75,7 @@ export function decodeGeometryColumn(tile, numStreams, offset, numFeatures, scal
|
|
|
76
75
|
if (indexBuffer !== null) {
|
|
77
76
|
if (geometryOffsets != null || partOffsets != null) {
|
|
78
77
|
/* Case when the indices of a Polygon outline are encoded in the tile */
|
|
79
|
-
const topologyVector =
|
|
78
|
+
const topologyVector = { geometryOffsets, partOffsets, ringOffsets };
|
|
80
79
|
return createConstGpuVector(numFeatures, geometryType, triangleOffsets, indexBuffer, vertexBuffer, topologyVector);
|
|
81
80
|
}
|
|
82
81
|
/* Case when the no Polygon outlines are encoded in the tile */
|
|
@@ -84,8 +83,8 @@ export function decodeGeometryColumn(tile, numStreams, offset, numFeatures, scal
|
|
|
84
83
|
}
|
|
85
84
|
return mortonSettings === null
|
|
86
85
|
? /* Currently only 2D coordinates (Vec2) are implemented in the encoder */
|
|
87
|
-
createConstGeometryVector(numFeatures, geometryType,
|
|
88
|
-
: createMortonEncodedConstGeometryVector(numFeatures, geometryType,
|
|
86
|
+
createConstGeometryVector(numFeatures, geometryType, { geometryOffsets, partOffsets, ringOffsets }, vertexOffsets, vertexBuffer)
|
|
87
|
+
: createMortonEncodedConstGeometryVector(numFeatures, geometryType, { geometryOffsets, partOffsets, ringOffsets }, vertexOffsets, vertexBuffer, mortonSettings);
|
|
89
88
|
}
|
|
90
89
|
/* Different geometry types are mixed in the geometry column */
|
|
91
90
|
const geometryTypeVector = decodeIntStream(tile, offset, geometryTypeMetadata, false);
|
|
@@ -168,11 +167,15 @@ export function decodeGeometryColumn(tile, numStreams, offset, numFeatures, scal
|
|
|
168
167
|
}
|
|
169
168
|
if (indexBuffer !== null) {
|
|
170
169
|
/* Case when the indices of a Polygon outline are encoded in the tile */
|
|
171
|
-
return createFlatGpuVector(geometryTypeVector, triangleOffsets, indexBuffer, vertexBuffer,
|
|
170
|
+
return createFlatGpuVector(geometryTypeVector, triangleOffsets, indexBuffer, vertexBuffer, {
|
|
171
|
+
geometryOffsets,
|
|
172
|
+
partOffsets,
|
|
173
|
+
ringOffsets,
|
|
174
|
+
});
|
|
172
175
|
}
|
|
173
176
|
return mortonSettings === null /* Currently only 2D coordinates (Vec2) are implemented in the encoder */
|
|
174
|
-
? createFlatGeometryVector(geometryTypeVector,
|
|
175
|
-
: createFlatGeometryVectorMortonEncoded(geometryTypeVector,
|
|
177
|
+
? createFlatGeometryVector(geometryTypeVector, { geometryOffsets, partOffsets, ringOffsets }, vertexOffsets, vertexBuffer)
|
|
178
|
+
: createFlatGeometryVectorMortonEncoded(geometryTypeVector, { geometryOffsets, partOffsets, ringOffsets }, vertexOffsets, vertexBuffer, mortonSettings);
|
|
176
179
|
}
|
|
177
180
|
/*
|
|
178
181
|
* Handle the parsing of the different topology length buffers separate not generic to reduce the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"geometryDecoder.js","sourceRoot":"","sources":["../../src/decoding/geometryDecoder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAoC,MAAM,wCAAwC,CAAC;AAEhH,OAAO,EACH,oBAAoB,EACpB,eAAe,EACf,gCAAgC,EAChC,aAAa,GAChB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,cAAc,MAAM,mCAAmC,CAAC;AAC/D,OAAO,EAEH,yBAAyB,EACzB,sCAAsC,GACzC,MAAM,wCAAwC,CAAC;AAChD,OAAO,EACH,wBAAwB,EACxB,qCAAqC,GAExC,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAkB,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAEzF,OAAO,EAAE,mBAAmB,EAAiB,MAAM,kCAAkC,CAAC;AAGtF,yCAAyC;AACzC,MAAM,UAAU,oBAAoB,CAChC,IAAgB,EAChB,UAAkB,EAClB,MAAkB,EAClB,WAAmB,EACnB,WAA6B;IAE7B,MAAM,oBAAoB,GAAG,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAChE,MAAM,uBAAuB,GAAG,aAAa,CAAC,oBAAoB,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAE/F,IAAI,aAAa,GAAe,IAAI,CAAC;IACrC,IAAI,YAAY,GAAe,IAAI,CAAC;IACpC,IAAI,cAAc,GAAmB,IAAI,CAAC;IAC1C,IAAI,WAAW,GAAe,IAAI,CAAC;IAEnC,IAAI,uBAAuB,KAAK,UAAU,CAAC,KAAK,EAAE,CAAC;QAC/C,6DAA6D;QAC7D,MAAM,YAAY,GAAG,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,oBAAoB,EAAE,KAAK,CAAC,CAAC;QAErF,kEAAkE;QAClE,IAAI,eAAe,GAAgB,IAAI,CAAC;QACxC,IAAI,WAAW,GAAgB,IAAI,CAAC;QACpC,IAAI,WAAW,GAAgB,IAAI,CAAC;QACpC,yGAAyG;QACzG,uBAAuB;QACvB,IAAI,eAAe,GAAgB,IAAI,CAAC;QAExC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,MAAM,sBAAsB,GAAG,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAClE,QAAQ,sBAAsB,CAAC,kBAAkB,EAAE,CAAC;gBAChD,KAAK,kBAAkB,CAAC,MAAM;oBAC1B,QAAQ,sBAAsB,CAAC,iBAAiB,CAAC,UAAU,EAAE,CAAC;wBAC1D,KAAK,UAAU,CAAC,UAAU;4BACtB,eAAe,GAAG,gCAAgC,CAAC,IAAI,EAAE,MAAM,EAAE,sBAAsB,CAAC,CAAC;4BACzF,MAAM;wBACV,KAAK,UAAU,CAAC,KAAK;4BACjB,WAAW,GAAG,gCAAgC,CAAC,IAAI,EAAE,MAAM,EAAE,sBAAsB,CAAC,CAAC;4BACrF,MAAM;wBACV,KAAK,UAAU,CAAC,KAAK;4BACjB,WAAW,GAAG,gCAAgC,CAAC,IAAI,EAAE,MAAM,EAAE,sBAAsB,CAAC,CAAC;4BACrF,MAAM;wBACV,KAAK,UAAU,CAAC,SAAS;4BACrB,eAAe,GAAG,gCAAgC,CAAC,IAAI,EAAE,MAAM,EAAE,sBAAsB,CAAC,CAAC;oBACjG,CAAC;oBACD,MAAM;gBACV,KAAK,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC;oBAC7B,QAAQ,sBAAsB,CAAC,iBAAiB,CAAC,UAAU,EAAE,CAAC;wBAC1D,KAAK,UAAU,CAAC,MAAM;4BAClB,aAAa,GAAG,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,sBAAsB,EAAE,KAAK,CAAC,CAAC;4BAC7E,MAAM;wBACV,KAAK,UAAU,CAAC,KAAK;4BACjB,WAAW,GAAG,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,sBAAsB,EAAE,KAAK,CAAC,CAAC;4BAC3E,MAAM;oBACd,CAAC;oBACD,MAAM;gBACV,CAAC;gBACD,KAAK,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;oBAC3B,IAAI,cAAc,CAAC,MAAM,KAAK,sBAAsB,CAAC,iBAAiB,CAAC,cAAc,EAAE,CAAC;wBACpF,YAAY,GAAG,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,sBAAsB,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;oBAC5F,CAAC;yBAAM,CAAC;wBACJ,MAAM,cAAc,GAAG,sBAAqD,CAAC;wBAC7E,cAAc,GAAG;4BACb,OAAO,EAAE,cAAc,CAAC,OAAO;4BAC/B,eAAe,EAAE,cAAc,CAAC,eAAe;yBAClD,CAAC;wBACF,YAAY,GAAG,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,sBAAsB,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;oBAC7F,CAAC;oBACD,MAAM;gBACV,CAAC;YACL,CAAC;QACL,CAAC;QAED,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;YACvB,IAAI,eAAe,IAAI,IAAI,IAAI,WAAW,IAAI,IAAI,EAAE,CAAC;gBACjD,wEAAwE;gBACxE,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,eAAe,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;gBACrF,OAAO,oBAAoB,CACvB,WAAW,EACX,YAAY,EACZ,eAAe,EACf,WAAW,EACX,YAAY,EACZ,cAAc,CACjB,CAAC;YACN,CAAC;YAED,+DAA+D;YAC/D,OAAO,oBAAoB,CAAC,WAAW,EAAE,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;QACvG,CAAC;QAED,OAAO,cAAc,KAAK,IAAI;YAC1B,CAAC,CAAC,0EAA0E;gBAC1E,yBAAyB,CACrB,WAAW,EACX,YAAY,EACZ,IAAI,cAAc,CAAC,eAAe,EAAE,WAAW,EAAE,WAAW,CAAC,EAC7D,aAAa,EACb,YAAY,CACf;YACH,CAAC,CAAC,sCAAsC,CAClC,WAAW,EACX,YAAY,EACZ,IAAI,cAAc,CAAC,eAAe,EAAE,WAAW,EAAE,WAAW,CAAC,EAC7D,aAAa,EACb,YAAY,EACZ,cAAc,CACjB,CAAC;IACZ,CAAC;IAED,+DAA+D;IAC/D,MAAM,kBAAkB,GAAG,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,oBAAoB,EAAE,KAAK,CAAC,CAAC;IAEtF,mFAAmF;IACnF,IAAI,eAAe,GAAe,IAAI,CAAC;IACvC,IAAI,WAAW,GAAe,IAAI,CAAC;IACnC,IAAI,WAAW,GAAe,IAAI,CAAC;IACnC,yGAAyG;IACzG,uBAAuB;IACvB,IAAI,eAAe,GAAgB,IAAI,CAAC;IAExC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,sBAAsB,GAAG,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAClE,QAAQ,sBAAsB,CAAC,kBAAkB,EAAE,CAAC;YAChD,KAAK,kBAAkB,CAAC,MAAM;gBAC1B,QAAQ,sBAAsB,CAAC,iBAAiB,CAAC,UAAU,EAAE,CAAC;oBAC1D,KAAK,UAAU,CAAC,UAAU;wBACtB,eAAe,GAAG,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,sBAAsB,EAAE,KAAK,CAAC,CAAC;wBAC/E,MAAM;oBACV,KAAK,UAAU,CAAC,KAAK;wBACjB,WAAW,GAAG,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,sBAAsB,EAAE,KAAK,CAAC,CAAC;wBAC3E,MAAM;oBACV,KAAK,UAAU,CAAC,KAAK;wBACjB,WAAW,GAAG,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,sBAAsB,EAAE,KAAK,CAAC,CAAC;wBAC3E,MAAM;oBACV,KAAK,UAAU,CAAC,SAAS;wBACrB,eAAe,GAAG,gCAAgC,CAAC,IAAI,EAAE,MAAM,EAAE,sBAAsB,CAAC,CAAC;gBACjG,CAAC;gBACD,MAAM;YACV,KAAK,kBAAkB,CAAC,MAAM;gBAC1B,QAAQ,sBAAsB,CAAC,iBAAiB,CAAC,UAAU,EAAE,CAAC;oBAC1D,KAAK,UAAU,CAAC,MAAM;wBAClB,aAAa,GAAG,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,sBAAsB,EAAE,KAAK,CAAC,CAAC;wBAC7E,MAAM;oBACV,KAAK,UAAU,CAAC,KAAK;wBACjB,WAAW,GAAG,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,sBAAsB,EAAE,KAAK,CAAC,CAAC;wBAC3E,MAAM;gBACd,CAAC;gBACD,MAAM;YACV,KAAK,kBAAkB,CAAC,IAAI;gBACxB,IAAI,cAAc,CAAC,MAAM,KAAK,sBAAsB,CAAC,iBAAiB,CAAC,cAAc,EAAE,CAAC;oBACpF,YAAY,GAAG,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,sBAAsB,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;gBAC5F,CAAC;qBAAM,CAAC;oBACJ,MAAM,cAAc,GAAG,sBAAqD,CAAC;oBAC7E,cAAc,GAAG;wBACb,OAAO,EAAE,cAAc,CAAC,OAAO;wBAC/B,eAAe,EAAE,cAAc,CAAC,eAAe;qBAClD,CAAC;oBACF,YAAY,GAAG,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,sBAAsB,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;gBAC7F,CAAC;gBACD,MAAM;QACd,CAAC;IACL,CAAC;IAED,0FAA0F;IAC1F,kEAAkE;IAClE,IAAI,eAAe,GAAgB,IAAI,CAAC;IACxC,IAAI,WAAW,GAAgB,IAAI,CAAC;IACpC,IAAI,WAAW,GAAgB,IAAI,CAAC;IAEpC,IAAI,eAAe,KAAK,IAAI,EAAE,CAAC;QAC3B,eAAe,GAAG,sBAAsB,CAAC,kBAAkB,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC;QACjF,IAAI,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;YAC/C,WAAW,GAAG,wBAAwB,CAAC,kBAAkB,EAAE,eAAe,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;YAChG,WAAW,GAAG,wBAAwB,CAAC,kBAAkB,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;QAC1G,CAAC;aAAM,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;YAC9B,WAAW,GAAG,yCAAyC,CAAC,kBAAkB,EAAE,eAAe,EAAE,WAAW,CAAC,CAAC;QAC9G,CAAC;IACL,CAAC;SAAM,IAAI,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;QACtD,WAAW,GAAG,sBAAsB,CAAC,kBAAkB,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;QACzE,WAAW,GAAG,wBAAwB,CAAC,kBAAkB,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;IAC/F,CAAC;SAAM,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;QAC9B,WAAW,GAAG,sBAAsB,CAAC,kBAAkB,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;IAC7E,CAAC;IAED,IAAI,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;QAC/C;oDAC4C;QAC5C,OAAO,mBAAmB,CAAC,kBAAkB,EAAE,eAAe,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;IAC/F,CAAC;IAED,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;QACvB,wEAAwE;QACxE,OAAO,mBAAmB,CACtB,kBAAkB,EAClB,eAAe,EACf,WAAW,EACX,YAAY,EACZ,IAAI,cAAc,CAAC,eAAe,EAAE,WAAW,EAAE,WAAW,CAAC,CAChE,CAAC;IACN,CAAC;IAED,OAAO,cAAc,KAAK,IAAI,CAAC,0EAA0E;QACrG,CAAC,CAAC,wBAAwB,CACpB,kBAAkB,EAClB,IAAI,cAAc,CAAC,eAAe,EAAE,WAAW,EAAE,WAAW,CAAC,EAC7D,aAAa,EACb,YAAY,CACf;QACH,CAAC,CAAC,qCAAqC,CACjC,kBAAkB,EAClB,IAAI,cAAc,CAAC,eAAe,EAAE,WAAW,EAAE,WAAW,CAAC,EAC7D,aAAa,EACb,YAAY,EACZ,cAAc,CACjB,CAAC;AACZ,CAAC;AAED;;;GAGG;AACH,SAAS,sBAAsB,CAC3B,aAAyB,EACzB,gBAA0C,EAC1C,QAAgB;IAEhB,MAAM,iBAAiB,GAAG,IAAI,WAAW,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACpE,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,iBAAiB,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC;IACtC,IAAI,iBAAiB,GAAG,CAAC,CAAC;IAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5C;;;;aAIK;QACL,cAAc,GAAG,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC;YACrC,cAAc,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnG,CAAC;IAED,OAAO,iBAAiB,CAAC;AAC7B,CAAC;AAED,SAAS,wBAAwB,CAC7B,aAAyB,EACzB,gBAA6B,EAC7B,kBAA8B,EAC9B,mBAA4B;IAE5B,MAAM,mBAAmB,GAAG,IAAI,WAAW,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/F,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,mBAAmB,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC;IACxC,IAAI,mBAAmB,GAAG,CAAC,CAAC;IAC5B,IAAI,yBAAyB,GAAG,CAAC,CAAC;IAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5C,MAAM,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QACtC,MAAM,aAAa,GAAG,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;QACpE,IACI,YAAY,KAAK,CAAC;YAClB,YAAY,KAAK,CAAC;YAClB,CAAC,mBAAmB,IAAI,CAAC,YAAY,KAAK,CAAC,IAAI,YAAY,KAAK,CAAC,CAAC,CAAC,EACrE,CAAC;YACC;0DAC8C;YAC9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC;gBACrC,cAAc,GAAG,mBAAmB,CAAC,mBAAmB,EAAE,CAAC;oBACvD,cAAc,GAAG,kBAAkB,CAAC,yBAAyB,EAAE,CAAC,CAAC;YACzE,CAAC;QACL,CAAC;aAAM,CAAC;YACJ;2CAC+B;YAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC;gBACrC,mBAAmB,CAAC,mBAAmB,EAAE,CAAC,GAAG,EAAE,cAAc,CAAC;YAClE,CAAC;QACL,CAAC;IACL,CAAC;IAED,OAAO,mBAAmB,CAAC;AAC/B,CAAC;AAED;;GAEG;AACH,SAAS,yCAAyC,CAC9C,aAAyB,EACzB,gBAA6B,EAC7B,kBAA8B;IAE9B,MAAM,mBAAmB,GAAG,IAAI,WAAW,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/F,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,mBAAmB,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC;IACxC,IAAI,yBAAyB,GAAG,CAAC,CAAC;IAClC,IAAI,mBAAmB,GAAG,CAAC,CAAC;IAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5C,MAAM,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QACtC,MAAM,aAAa,GAAG,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;QACpE,IAAI,YAAY,KAAK,CAAC,IAAI,YAAY,KAAK,CAAC,EAAE,CAAC;YAC3C,iFAAiF;YACjF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC;gBACrC,cAAc,GAAG,mBAAmB,CAAC,yBAAyB,EAAE,CAAC;oBAC7D,cAAc,GAAG,kBAAkB,CAAC,mBAAmB,EAAE,CAAC,CAAC;YACnE,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,oEAAoE;YACpE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC;gBACrC,mBAAmB,CAAC,yBAAyB,EAAE,CAAC,GAAG,EAAE,cAAc,CAAC;YACxE,CAAC;QACL,CAAC;IACL,CAAC;IAED,OAAO,mBAAmB,CAAC;AAC/B,CAAC;AAED,SAAS,wBAAwB,CAC7B,aAAyB,EACzB,gBAA6B,EAC7B,kBAA+B,EAC/B,kBAA8B;IAE9B,MAAM,mBAAmB,GAAG,IAAI,WAAW,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACnG,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,mBAAmB,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC;IACxC,IAAI,yBAAyB,GAAG,CAAC,CAAC;IAClC,IAAI,yBAAyB,GAAG,CAAC,CAAC;IAClC,IAAI,yBAAyB,GAAG,CAAC,CAAC;IAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5C,MAAM,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QACtC,MAAM,aAAa,GAAG,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;QACpE,IAAI,YAAY,KAAK,CAAC,IAAI,YAAY,KAAK,CAAC,EAAE,CAAC;YAC3C;wBACY;YACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC;gBACrC,MAAM,QAAQ,GACV,kBAAkB,CAAC,yBAAyB,CAAC,GAAG,kBAAkB,CAAC,yBAAyB,GAAG,CAAC,CAAC,CAAC;gBACtG,yBAAyB,EAAE,CAAC;gBAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;oBAChC,cAAc,GAAG,mBAAmB,CAAC,yBAAyB,EAAE,CAAC;wBAC7D,cAAc,GAAG,kBAAkB,CAAC,yBAAyB,EAAE,CAAC,CAAC;gBACzE,CAAC;YACL,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,oEAAoE;YACpE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC;gBACrC,mBAAmB,CAAC,yBAAyB,EAAE,CAAC,GAAG,EAAE,cAAc,CAAC;gBACpE,yBAAyB,EAAE,CAAC;YAChC,CAAC;QACL,CAAC;IACL,CAAC;IAED,OAAO,mBAAmB,CAAC;AAC/B,CAAC","sourcesContent":["import { type GeometryVector, type MortonSettings } from \"../vector/geometry/geometryVector\";\nimport { decodeStreamMetadata, type MortonEncodedStreamMetadata } from \"../metadata/tile/streamMetadataDecoder\";\nimport type IntWrapper from \"./intWrapper\";\nimport {\n decodeConstIntStream,\n decodeIntStream,\n decodeLengthStreamToOffsetBuffer,\n getVectorType,\n} from \"./integerStreamDecoder\";\nimport { VectorType } from \"../vector/vectorType\";\nimport { PhysicalStreamType } from \"../metadata/tile/physicalStreamType\";\nimport { LengthType } from \"../metadata/tile/lengthType\";\nimport { DictionaryType } from \"../metadata/tile/dictionaryType\";\nimport TopologyVector from \"../vector/geometry/topologyVector\";\nimport {\n ConstGeometryVector,\n createConstGeometryVector,\n createMortonEncodedConstGeometryVector,\n} from \"../vector/geometry/constGeometryVector\";\nimport {\n createFlatGeometryVector,\n createFlatGeometryVectorMortonEncoded,\n FlatGeometryVector,\n} from \"../vector/geometry/flatGeometryVector\";\nimport { OffsetType } from \"../metadata/tile/offsetType\";\nimport { ConstGpuVector, createConstGpuVector } from \"../vector/geometry/constGpuVector\";\nimport { type GpuVector } from \"../vector/geometry/gpuVector\";\nimport { createFlatGpuVector, FlatGpuVector } from \"../vector/geometry/flatGpuVector\";\nimport type GeometryScaling from \"./geometryScaling\";\n\n// TODO: get rid of numFeatures parameter\nexport function decodeGeometryColumn(\n tile: Uint8Array,\n numStreams: number,\n offset: IntWrapper,\n numFeatures: number,\n scalingData?: GeometryScaling,\n): GeometryVector | GpuVector {\n const geometryTypeMetadata = decodeStreamMetadata(tile, offset);\n const geometryTypesVectorType = getVectorType(geometryTypeMetadata, numFeatures, tile, offset);\n\n let vertexOffsets: Int32Array = null;\n let vertexBuffer: Int32Array = null;\n let mortonSettings: MortonSettings = null;\n let indexBuffer: Int32Array = null;\n\n if (geometryTypesVectorType === VectorType.CONST) {\n /* All geometries in the colum have the same geometry type */\n const geometryType = decodeConstIntStream(tile, offset, geometryTypeMetadata, false);\n\n // Variables for const geometry path (directly decoded as offsets)\n let geometryOffsets: Uint32Array = null;\n let partOffsets: Uint32Array = null;\n let ringOffsets: Uint32Array = null;\n //TODO: use geometryOffsets for that? -> but then tessellated polygons can't be used with normal polygons\n // in one FeatureTable?\n let triangleOffsets: Uint32Array = null;\n\n for (let i = 0; i < numStreams - 1; i++) {\n const geometryStreamMetadata = decodeStreamMetadata(tile, offset);\n switch (geometryStreamMetadata.physicalStreamType) {\n case PhysicalStreamType.LENGTH:\n switch (geometryStreamMetadata.logicalStreamType.lengthType) {\n case LengthType.GEOMETRIES:\n geometryOffsets = decodeLengthStreamToOffsetBuffer(tile, offset, geometryStreamMetadata);\n break;\n case LengthType.PARTS:\n partOffsets = decodeLengthStreamToOffsetBuffer(tile, offset, geometryStreamMetadata);\n break;\n case LengthType.RINGS:\n ringOffsets = decodeLengthStreamToOffsetBuffer(tile, offset, geometryStreamMetadata);\n break;\n case LengthType.TRIANGLES:\n triangleOffsets = decodeLengthStreamToOffsetBuffer(tile, offset, geometryStreamMetadata);\n }\n break;\n case PhysicalStreamType.OFFSET: {\n switch (geometryStreamMetadata.logicalStreamType.offsetType) {\n case OffsetType.VERTEX:\n vertexOffsets = decodeIntStream(tile, offset, geometryStreamMetadata, false);\n break;\n case OffsetType.INDEX:\n indexBuffer = decodeIntStream(tile, offset, geometryStreamMetadata, false);\n break;\n }\n break;\n }\n case PhysicalStreamType.DATA: {\n if (DictionaryType.VERTEX === geometryStreamMetadata.logicalStreamType.dictionaryType) {\n vertexBuffer = decodeIntStream(tile, offset, geometryStreamMetadata, true, scalingData);\n } else {\n const mortonMetadata = geometryStreamMetadata as MortonEncodedStreamMetadata;\n mortonSettings = {\n numBits: mortonMetadata.numBits,\n coordinateShift: mortonMetadata.coordinateShift,\n };\n vertexBuffer = decodeIntStream(tile, offset, geometryStreamMetadata, false, scalingData);\n }\n break;\n }\n }\n }\n\n if (indexBuffer !== null) {\n if (geometryOffsets != null || partOffsets != null) {\n /* Case when the indices of a Polygon outline are encoded in the tile */\n const topologyVector = new TopologyVector(geometryOffsets, partOffsets, ringOffsets);\n return createConstGpuVector(\n numFeatures,\n geometryType,\n triangleOffsets,\n indexBuffer,\n vertexBuffer,\n topologyVector,\n );\n }\n\n /* Case when the no Polygon outlines are encoded in the tile */\n return createConstGpuVector(numFeatures, geometryType, triangleOffsets, indexBuffer, vertexBuffer);\n }\n\n return mortonSettings === null\n ? /* Currently only 2D coordinates (Vec2) are implemented in the encoder */\n createConstGeometryVector(\n numFeatures,\n geometryType,\n new TopologyVector(geometryOffsets, partOffsets, ringOffsets),\n vertexOffsets,\n vertexBuffer,\n )\n : createMortonEncodedConstGeometryVector(\n numFeatures,\n geometryType,\n new TopologyVector(geometryOffsets, partOffsets, ringOffsets),\n vertexOffsets,\n vertexBuffer,\n mortonSettings,\n );\n }\n\n /* Different geometry types are mixed in the geometry column */\n const geometryTypeVector = decodeIntStream(tile, offset, geometryTypeMetadata, false);\n\n // Variables for flat geometry path (decoded as lengths, then converted to offsets)\n let geometryLengths: Int32Array = null;\n let partLengths: Int32Array = null;\n let ringLengths: Int32Array = null;\n //TODO: use geometryOffsets for that? -> but then tessellated polygons can't be used with normal polygons\n // in one FeatureTable?\n let triangleOffsets: Uint32Array = null;\n\n for (let i = 0; i < numStreams - 1; i++) {\n const geometryStreamMetadata = decodeStreamMetadata(tile, offset);\n switch (geometryStreamMetadata.physicalStreamType) {\n case PhysicalStreamType.LENGTH:\n switch (geometryStreamMetadata.logicalStreamType.lengthType) {\n case LengthType.GEOMETRIES:\n geometryLengths = decodeIntStream(tile, offset, geometryStreamMetadata, false);\n break;\n case LengthType.PARTS:\n partLengths = decodeIntStream(tile, offset, geometryStreamMetadata, false);\n break;\n case LengthType.RINGS:\n ringLengths = decodeIntStream(tile, offset, geometryStreamMetadata, false);\n break;\n case LengthType.TRIANGLES:\n triangleOffsets = decodeLengthStreamToOffsetBuffer(tile, offset, geometryStreamMetadata);\n }\n break;\n case PhysicalStreamType.OFFSET:\n switch (geometryStreamMetadata.logicalStreamType.offsetType) {\n case OffsetType.VERTEX:\n vertexOffsets = decodeIntStream(tile, offset, geometryStreamMetadata, false);\n break;\n case OffsetType.INDEX:\n indexBuffer = decodeIntStream(tile, offset, geometryStreamMetadata, false);\n break;\n }\n break;\n case PhysicalStreamType.DATA:\n if (DictionaryType.VERTEX === geometryStreamMetadata.logicalStreamType.dictionaryType) {\n vertexBuffer = decodeIntStream(tile, offset, geometryStreamMetadata, true, scalingData);\n } else {\n const mortonMetadata = geometryStreamMetadata as MortonEncodedStreamMetadata;\n mortonSettings = {\n numBits: mortonMetadata.numBits,\n coordinateShift: mortonMetadata.coordinateShift,\n };\n vertexBuffer = decodeIntStream(tile, offset, geometryStreamMetadata, false, scalingData);\n }\n break;\n }\n }\n\n // TODO: refactor the following instructions -> decode in one pass for performance reasons\n /* Calculate the offsets from the length buffer for util access */\n let geometryOffsets: Uint32Array = null;\n let partOffsets: Uint32Array = null;\n let ringOffsets: Uint32Array = null;\n\n if (geometryLengths !== null) {\n geometryOffsets = decodeRootLengthStream(geometryTypeVector, geometryLengths, 2);\n if (partLengths !== null && ringLengths !== null) {\n partOffsets = decodeLevel1LengthStream(geometryTypeVector, geometryOffsets, partLengths, false);\n ringOffsets = decodeLevel2LengthStream(geometryTypeVector, geometryOffsets, partOffsets, ringLengths);\n } else if (partLengths !== null) {\n partOffsets = decodeLevel1WithoutRingBufferLengthStream(geometryTypeVector, geometryOffsets, partLengths);\n }\n } else if (partLengths !== null && ringLengths !== null) {\n partOffsets = decodeRootLengthStream(geometryTypeVector, partLengths, 1);\n ringOffsets = decodeLevel1LengthStream(geometryTypeVector, partOffsets, ringLengths, true);\n } else if (partLengths !== null) {\n partOffsets = decodeRootLengthStream(geometryTypeVector, partLengths, 0);\n }\n\n if (indexBuffer !== null && partOffsets === null) {\n /* Case when the indices of a Polygon outline are not encoded in the data so no\n * topology data are present in the tile */\n return createFlatGpuVector(geometryTypeVector, triangleOffsets, indexBuffer, vertexBuffer);\n }\n\n if (indexBuffer !== null) {\n /* Case when the indices of a Polygon outline are encoded in the tile */\n return createFlatGpuVector(\n geometryTypeVector,\n triangleOffsets,\n indexBuffer,\n vertexBuffer,\n new TopologyVector(geometryOffsets, partOffsets, ringOffsets),\n );\n }\n\n return mortonSettings === null /* Currently only 2D coordinates (Vec2) are implemented in the encoder */\n ? createFlatGeometryVector(\n geometryTypeVector,\n new TopologyVector(geometryOffsets, partOffsets, ringOffsets),\n vertexOffsets,\n vertexBuffer,\n )\n : createFlatGeometryVectorMortonEncoded(\n geometryTypeVector,\n new TopologyVector(geometryOffsets, partOffsets, ringOffsets),\n vertexOffsets,\n vertexBuffer,\n mortonSettings,\n );\n}\n\n/*\n * Handle the parsing of the different topology length buffers separate not generic to reduce the\n * branching and improve the performance\n */\nfunction decodeRootLengthStream(\n geometryTypes: Int32Array,\n rootLengthStream: Int32Array | Uint32Array,\n bufferId: number,\n): Uint32Array {\n const rootBufferOffsets = new Uint32Array(geometryTypes.length + 1);\n let previousOffset = 0;\n rootBufferOffsets[0] = previousOffset;\n let rootLengthCounter = 0;\n for (let i = 0; i < geometryTypes.length; i++) {\n /* Test if the geometry has and entry in the root buffer\n * BufferId: 2 GeometryOffsets -> MultiPolygon, MultiLineString, MultiPoint\n * BufferId: 1 PartOffsets -> Polygon\n * BufferId: 0 PartOffsets, RingOffsets -> LineString\n * */\n previousOffset = rootBufferOffsets[i + 1] =\n previousOffset + (geometryTypes[i] > bufferId ? rootLengthStream[rootLengthCounter++] : 1);\n }\n\n return rootBufferOffsets;\n}\n\nfunction decodeLevel1LengthStream(\n geometryTypes: Int32Array,\n rootOffsetBuffer: Uint32Array,\n level1LengthBuffer: Int32Array,\n isLineStringPresent: boolean,\n): Uint32Array {\n const level1BufferOffsets = new Uint32Array(rootOffsetBuffer[rootOffsetBuffer.length - 1] + 1);\n let previousOffset = 0;\n level1BufferOffsets[0] = previousOffset;\n let level1BufferCounter = 1;\n let level1LengthBufferCounter = 0;\n for (let i = 0; i < geometryTypes.length; i++) {\n const geometryType = geometryTypes[i];\n const numGeometries = rootOffsetBuffer[i + 1] - rootOffsetBuffer[i];\n if (\n geometryType === 5 ||\n geometryType === 2 ||\n (isLineStringPresent && (geometryType === 4 || geometryType === 1))\n ) {\n /* For MultiPolygon, Polygon and in some cases for MultiLineString and LineString\n * a value in the level1LengthBuffer exists */\n for (let j = 0; j < numGeometries; j++) {\n previousOffset = level1BufferOffsets[level1BufferCounter++] =\n previousOffset + level1LengthBuffer[level1LengthBufferCounter++];\n }\n } else {\n /* For MultiPoint and Point and in some cases for MultiLineString and LineString no value in the\n * level1LengthBuffer exists */\n for (let j = 0; j < numGeometries; j++) {\n level1BufferOffsets[level1BufferCounter++] = ++previousOffset;\n }\n }\n }\n\n return level1BufferOffsets;\n}\n\n/*\n * Case where no ring buffer exists so no MultiPolygon or Polygon geometry is part of the buffer\n */\nfunction decodeLevel1WithoutRingBufferLengthStream(\n geometryTypes: Int32Array,\n rootOffsetBuffer: Uint32Array,\n level1LengthBuffer: Int32Array,\n): Uint32Array {\n const level1BufferOffsets = new Uint32Array(rootOffsetBuffer[rootOffsetBuffer.length - 1] + 1);\n let previousOffset = 0;\n level1BufferOffsets[0] = previousOffset;\n let level1OffsetBufferCounter = 1;\n let level1LengthCounter = 0;\n for (let i = 0; i < geometryTypes.length; i++) {\n const geometryType = geometryTypes[i];\n const numGeometries = rootOffsetBuffer[i + 1] - rootOffsetBuffer[i];\n if (geometryType === 4 || geometryType === 1) {\n /* For MultiLineString and LineString a value in the level1LengthBuffer exists */\n for (let j = 0; j < numGeometries; j++) {\n previousOffset = level1BufferOffsets[level1OffsetBufferCounter++] =\n previousOffset + level1LengthBuffer[level1LengthCounter++];\n }\n } else {\n /* For MultiPoint and Point no value in level1LengthBuffer exists */\n for (let j = 0; j < numGeometries; j++) {\n level1BufferOffsets[level1OffsetBufferCounter++] = ++previousOffset;\n }\n }\n }\n\n return level1BufferOffsets;\n}\n\nfunction decodeLevel2LengthStream(\n geometryTypes: Int32Array,\n rootOffsetBuffer: Uint32Array,\n level1OffsetBuffer: Uint32Array,\n level2LengthBuffer: Int32Array,\n): Uint32Array {\n const level2BufferOffsets = new Uint32Array(level1OffsetBuffer[level1OffsetBuffer.length - 1] + 1);\n let previousOffset = 0;\n level2BufferOffsets[0] = previousOffset;\n let level1OffsetBufferCounter = 1;\n let level2OffsetBufferCounter = 1;\n let level2LengthBufferCounter = 0;\n for (let i = 0; i < geometryTypes.length; i++) {\n const geometryType = geometryTypes[i];\n const numGeometries = rootOffsetBuffer[i + 1] - rootOffsetBuffer[i];\n if (geometryType !== 0 && geometryType !== 3) {\n /* For MultiPolygon, MultiLineString, Polygon and LineString a value in level2LengthBuffer\n * exists */\n for (let j = 0; j < numGeometries; j++) {\n const numParts =\n level1OffsetBuffer[level1OffsetBufferCounter] - level1OffsetBuffer[level1OffsetBufferCounter - 1];\n level1OffsetBufferCounter++;\n for (let k = 0; k < numParts; k++) {\n previousOffset = level2BufferOffsets[level2OffsetBufferCounter++] =\n previousOffset + level2LengthBuffer[level2LengthBufferCounter++];\n }\n }\n } else {\n /* For MultiPoint and Point no value in level2LengthBuffer exists */\n for (let j = 0; j < numGeometries; j++) {\n level2BufferOffsets[level2OffsetBufferCounter++] = ++previousOffset;\n level1OffsetBufferCounter++;\n }\n }\n }\n\n return level2BufferOffsets;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"geometryDecoder.js","sourceRoot":"","sources":["../../src/decoding/geometryDecoder.ts"],"names":[],"mappings":"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","sourcesContent":["import { decodeStreamMetadata, type MortonEncodedStreamMetadata } from \"../metadata/tile/streamMetadataDecoder\";\nimport type IntWrapper from \"./intWrapper\";\nimport {\n decodeConstIntStream,\n decodeIntStream,\n decodeLengthStreamToOffsetBuffer,\n getVectorType,\n} from \"./integerStreamDecoder\";\nimport { VectorType } from \"../vector/vectorType\";\nimport { PhysicalStreamType } from \"../metadata/tile/physicalStreamType\";\nimport { LengthType } from \"../metadata/tile/lengthType\";\nimport { DictionaryType } from \"../metadata/tile/dictionaryType\";\nimport {\n createConstGeometryVector,\n createMortonEncodedConstGeometryVector,\n} from \"../vector/geometry/constGeometryVector\";\nimport { createFlatGeometryVector, createFlatGeometryVectorMortonEncoded } from \"../vector/geometry/flatGeometryVector\";\nimport { OffsetType } from \"../metadata/tile/offsetType\";\nimport { createConstGpuVector } from \"../vector/geometry/constGpuVector\";\nimport { createFlatGpuVector } from \"../vector/geometry/flatGpuVector\";\nimport type { GeometryVector, MortonSettings } from \"../vector/geometry/geometryVector\";\nimport type { GpuVector } from \"../vector/geometry/gpuVector\";\nimport type GeometryScaling from \"./geometryScaling\";\n\n// TODO: get rid of numFeatures parameter\nexport function decodeGeometryColumn(\n tile: Uint8Array,\n numStreams: number,\n offset: IntWrapper,\n numFeatures: number,\n scalingData?: GeometryScaling,\n): GeometryVector | GpuVector {\n const geometryTypeMetadata = decodeStreamMetadata(tile, offset);\n const geometryTypesVectorType = getVectorType(geometryTypeMetadata, numFeatures, tile, offset);\n\n let vertexOffsets: Int32Array = null;\n let vertexBuffer: Int32Array = null;\n let mortonSettings: MortonSettings = null;\n let indexBuffer: Int32Array = null;\n\n if (geometryTypesVectorType === VectorType.CONST) {\n /* All geometries in the colum have the same geometry type */\n const geometryType = decodeConstIntStream(tile, offset, geometryTypeMetadata, false);\n\n // Variables for const geometry path (directly decoded as offsets)\n let geometryOffsets: Uint32Array = null;\n let partOffsets: Uint32Array = null;\n let ringOffsets: Uint32Array = null;\n //TODO: use geometryOffsets for that? -> but then tessellated polygons can't be used with normal polygons\n // in one FeatureTable?\n let triangleOffsets: Uint32Array = null;\n\n for (let i = 0; i < numStreams - 1; i++) {\n const geometryStreamMetadata = decodeStreamMetadata(tile, offset);\n switch (geometryStreamMetadata.physicalStreamType) {\n case PhysicalStreamType.LENGTH:\n switch (geometryStreamMetadata.logicalStreamType.lengthType) {\n case LengthType.GEOMETRIES:\n geometryOffsets = decodeLengthStreamToOffsetBuffer(tile, offset, geometryStreamMetadata);\n break;\n case LengthType.PARTS:\n partOffsets = decodeLengthStreamToOffsetBuffer(tile, offset, geometryStreamMetadata);\n break;\n case LengthType.RINGS:\n ringOffsets = decodeLengthStreamToOffsetBuffer(tile, offset, geometryStreamMetadata);\n break;\n case LengthType.TRIANGLES:\n triangleOffsets = decodeLengthStreamToOffsetBuffer(tile, offset, geometryStreamMetadata);\n }\n break;\n case PhysicalStreamType.OFFSET: {\n switch (geometryStreamMetadata.logicalStreamType.offsetType) {\n case OffsetType.VERTEX:\n vertexOffsets = decodeIntStream(tile, offset, geometryStreamMetadata, false);\n break;\n case OffsetType.INDEX:\n indexBuffer = decodeIntStream(tile, offset, geometryStreamMetadata, false);\n break;\n }\n break;\n }\n case PhysicalStreamType.DATA: {\n if (DictionaryType.VERTEX === geometryStreamMetadata.logicalStreamType.dictionaryType) {\n vertexBuffer = decodeIntStream(tile, offset, geometryStreamMetadata, true, scalingData);\n } else {\n const mortonMetadata = geometryStreamMetadata as MortonEncodedStreamMetadata;\n mortonSettings = {\n numBits: mortonMetadata.numBits,\n coordinateShift: mortonMetadata.coordinateShift,\n };\n vertexBuffer = decodeIntStream(tile, offset, geometryStreamMetadata, false, scalingData);\n }\n break;\n }\n }\n }\n\n if (indexBuffer !== null) {\n if (geometryOffsets != null || partOffsets != null) {\n /* Case when the indices of a Polygon outline are encoded in the tile */\n const topologyVector = { geometryOffsets, partOffsets, ringOffsets };\n return createConstGpuVector(\n numFeatures,\n geometryType,\n triangleOffsets,\n indexBuffer,\n vertexBuffer,\n topologyVector,\n );\n }\n\n /* Case when the no Polygon outlines are encoded in the tile */\n return createConstGpuVector(numFeatures, geometryType, triangleOffsets, indexBuffer, vertexBuffer);\n }\n\n return mortonSettings === null\n ? /* Currently only 2D coordinates (Vec2) are implemented in the encoder */\n createConstGeometryVector(\n numFeatures,\n geometryType,\n { geometryOffsets, partOffsets, ringOffsets },\n vertexOffsets,\n vertexBuffer,\n )\n : createMortonEncodedConstGeometryVector(\n numFeatures,\n geometryType,\n { geometryOffsets, partOffsets, ringOffsets },\n vertexOffsets,\n vertexBuffer,\n mortonSettings,\n );\n }\n\n /* Different geometry types are mixed in the geometry column */\n const geometryTypeVector = decodeIntStream(tile, offset, geometryTypeMetadata, false);\n\n // Variables for flat geometry path (decoded as lengths, then converted to offsets)\n let geometryLengths: Int32Array = null;\n let partLengths: Int32Array = null;\n let ringLengths: Int32Array = null;\n //TODO: use geometryOffsets for that? -> but then tessellated polygons can't be used with normal polygons\n // in one FeatureTable?\n let triangleOffsets: Uint32Array = null;\n\n for (let i = 0; i < numStreams - 1; i++) {\n const geometryStreamMetadata = decodeStreamMetadata(tile, offset);\n switch (geometryStreamMetadata.physicalStreamType) {\n case PhysicalStreamType.LENGTH:\n switch (geometryStreamMetadata.logicalStreamType.lengthType) {\n case LengthType.GEOMETRIES:\n geometryLengths = decodeIntStream(tile, offset, geometryStreamMetadata, false);\n break;\n case LengthType.PARTS:\n partLengths = decodeIntStream(tile, offset, geometryStreamMetadata, false);\n break;\n case LengthType.RINGS:\n ringLengths = decodeIntStream(tile, offset, geometryStreamMetadata, false);\n break;\n case LengthType.TRIANGLES:\n triangleOffsets = decodeLengthStreamToOffsetBuffer(tile, offset, geometryStreamMetadata);\n }\n break;\n case PhysicalStreamType.OFFSET:\n switch (geometryStreamMetadata.logicalStreamType.offsetType) {\n case OffsetType.VERTEX:\n vertexOffsets = decodeIntStream(tile, offset, geometryStreamMetadata, false);\n break;\n case OffsetType.INDEX:\n indexBuffer = decodeIntStream(tile, offset, geometryStreamMetadata, false);\n break;\n }\n break;\n case PhysicalStreamType.DATA:\n if (DictionaryType.VERTEX === geometryStreamMetadata.logicalStreamType.dictionaryType) {\n vertexBuffer = decodeIntStream(tile, offset, geometryStreamMetadata, true, scalingData);\n } else {\n const mortonMetadata = geometryStreamMetadata as MortonEncodedStreamMetadata;\n mortonSettings = {\n numBits: mortonMetadata.numBits,\n coordinateShift: mortonMetadata.coordinateShift,\n };\n vertexBuffer = decodeIntStream(tile, offset, geometryStreamMetadata, false, scalingData);\n }\n break;\n }\n }\n\n // TODO: refactor the following instructions -> decode in one pass for performance reasons\n /* Calculate the offsets from the length buffer for util access */\n let geometryOffsets: Uint32Array = null;\n let partOffsets: Uint32Array = null;\n let ringOffsets: Uint32Array = null;\n\n if (geometryLengths !== null) {\n geometryOffsets = decodeRootLengthStream(geometryTypeVector, geometryLengths, 2);\n if (partLengths !== null && ringLengths !== null) {\n partOffsets = decodeLevel1LengthStream(geometryTypeVector, geometryOffsets, partLengths, false);\n ringOffsets = decodeLevel2LengthStream(geometryTypeVector, geometryOffsets, partOffsets, ringLengths);\n } else if (partLengths !== null) {\n partOffsets = decodeLevel1WithoutRingBufferLengthStream(geometryTypeVector, geometryOffsets, partLengths);\n }\n } else if (partLengths !== null && ringLengths !== null) {\n partOffsets = decodeRootLengthStream(geometryTypeVector, partLengths, 1);\n ringOffsets = decodeLevel1LengthStream(geometryTypeVector, partOffsets, ringLengths, true);\n } else if (partLengths !== null) {\n partOffsets = decodeRootLengthStream(geometryTypeVector, partLengths, 0);\n }\n\n if (indexBuffer !== null && partOffsets === null) {\n /* Case when the indices of a Polygon outline are not encoded in the data so no\n * topology data are present in the tile */\n return createFlatGpuVector(geometryTypeVector, triangleOffsets, indexBuffer, vertexBuffer);\n }\n\n if (indexBuffer !== null) {\n /* Case when the indices of a Polygon outline are encoded in the tile */\n return createFlatGpuVector(geometryTypeVector, triangleOffsets, indexBuffer, vertexBuffer, {\n geometryOffsets,\n partOffsets,\n ringOffsets,\n });\n }\n\n return mortonSettings === null /* Currently only 2D coordinates (Vec2) are implemented in the encoder */\n ? createFlatGeometryVector(\n geometryTypeVector,\n { geometryOffsets, partOffsets, ringOffsets },\n vertexOffsets,\n vertexBuffer,\n )\n : createFlatGeometryVectorMortonEncoded(\n geometryTypeVector,\n { geometryOffsets, partOffsets, ringOffsets },\n vertexOffsets,\n vertexBuffer,\n mortonSettings,\n );\n}\n\n/*\n * Handle the parsing of the different topology length buffers separate not generic to reduce the\n * branching and improve the performance\n */\nfunction decodeRootLengthStream(\n geometryTypes: Int32Array,\n rootLengthStream: Int32Array | Uint32Array,\n bufferId: number,\n): Uint32Array {\n const rootBufferOffsets = new Uint32Array(geometryTypes.length + 1);\n let previousOffset = 0;\n rootBufferOffsets[0] = previousOffset;\n let rootLengthCounter = 0;\n for (let i = 0; i < geometryTypes.length; i++) {\n /* Test if the geometry has and entry in the root buffer\n * BufferId: 2 GeometryOffsets -> MultiPolygon, MultiLineString, MultiPoint\n * BufferId: 1 PartOffsets -> Polygon\n * BufferId: 0 PartOffsets, RingOffsets -> LineString\n * */\n previousOffset = rootBufferOffsets[i + 1] =\n previousOffset + (geometryTypes[i] > bufferId ? rootLengthStream[rootLengthCounter++] : 1);\n }\n\n return rootBufferOffsets;\n}\n\nfunction decodeLevel1LengthStream(\n geometryTypes: Int32Array,\n rootOffsetBuffer: Uint32Array,\n level1LengthBuffer: Int32Array,\n isLineStringPresent: boolean,\n): Uint32Array {\n const level1BufferOffsets = new Uint32Array(rootOffsetBuffer[rootOffsetBuffer.length - 1] + 1);\n let previousOffset = 0;\n level1BufferOffsets[0] = previousOffset;\n let level1BufferCounter = 1;\n let level1LengthBufferCounter = 0;\n for (let i = 0; i < geometryTypes.length; i++) {\n const geometryType = geometryTypes[i];\n const numGeometries = rootOffsetBuffer[i + 1] - rootOffsetBuffer[i];\n if (\n geometryType === 5 ||\n geometryType === 2 ||\n (isLineStringPresent && (geometryType === 4 || geometryType === 1))\n ) {\n /* For MultiPolygon, Polygon and in some cases for MultiLineString and LineString\n * a value in the level1LengthBuffer exists */\n for (let j = 0; j < numGeometries; j++) {\n previousOffset = level1BufferOffsets[level1BufferCounter++] =\n previousOffset + level1LengthBuffer[level1LengthBufferCounter++];\n }\n } else {\n /* For MultiPoint and Point and in some cases for MultiLineString and LineString no value in the\n * level1LengthBuffer exists */\n for (let j = 0; j < numGeometries; j++) {\n level1BufferOffsets[level1BufferCounter++] = ++previousOffset;\n }\n }\n }\n\n return level1BufferOffsets;\n}\n\n/*\n * Case where no ring buffer exists so no MultiPolygon or Polygon geometry is part of the buffer\n */\nfunction decodeLevel1WithoutRingBufferLengthStream(\n geometryTypes: Int32Array,\n rootOffsetBuffer: Uint32Array,\n level1LengthBuffer: Int32Array,\n): Uint32Array {\n const level1BufferOffsets = new Uint32Array(rootOffsetBuffer[rootOffsetBuffer.length - 1] + 1);\n let previousOffset = 0;\n level1BufferOffsets[0] = previousOffset;\n let level1OffsetBufferCounter = 1;\n let level1LengthCounter = 0;\n for (let i = 0; i < geometryTypes.length; i++) {\n const geometryType = geometryTypes[i];\n const numGeometries = rootOffsetBuffer[i + 1] - rootOffsetBuffer[i];\n if (geometryType === 4 || geometryType === 1) {\n /* For MultiLineString and LineString a value in the level1LengthBuffer exists */\n for (let j = 0; j < numGeometries; j++) {\n previousOffset = level1BufferOffsets[level1OffsetBufferCounter++] =\n previousOffset + level1LengthBuffer[level1LengthCounter++];\n }\n } else {\n /* For MultiPoint and Point no value in level1LengthBuffer exists */\n for (let j = 0; j < numGeometries; j++) {\n level1BufferOffsets[level1OffsetBufferCounter++] = ++previousOffset;\n }\n }\n }\n\n return level1BufferOffsets;\n}\n\nfunction decodeLevel2LengthStream(\n geometryTypes: Int32Array,\n rootOffsetBuffer: Uint32Array,\n level1OffsetBuffer: Uint32Array,\n level2LengthBuffer: Int32Array,\n): Uint32Array {\n const level2BufferOffsets = new Uint32Array(level1OffsetBuffer[level1OffsetBuffer.length - 1] + 1);\n let previousOffset = 0;\n level2BufferOffsets[0] = previousOffset;\n let level1OffsetBufferCounter = 1;\n let level2OffsetBufferCounter = 1;\n let level2LengthBufferCounter = 0;\n for (let i = 0; i < geometryTypes.length; i++) {\n const geometryType = geometryTypes[i];\n const numGeometries = rootOffsetBuffer[i + 1] - rootOffsetBuffer[i];\n if (geometryType !== 0 && geometryType !== 3) {\n /* For MultiPolygon, MultiLineString, Polygon and LineString a value in level2LengthBuffer\n * exists */\n for (let j = 0; j < numGeometries; j++) {\n const numParts =\n level1OffsetBuffer[level1OffsetBufferCounter] - level1OffsetBuffer[level1OffsetBufferCounter - 1];\n level1OffsetBufferCounter++;\n for (let k = 0; k < numParts; k++) {\n previousOffset = level2BufferOffsets[level2OffsetBufferCounter++] =\n previousOffset + level2LengthBuffer[level2LengthBufferCounter++];\n }\n }\n } else {\n /* For MultiPoint and Point no value in level2LengthBuffer exists */\n for (let j = 0; j < numGeometries; j++) {\n level2BufferOffsets[level2OffsetBufferCounter++] = ++previousOffset;\n level1OffsetBufferCounter++;\n }\n }\n }\n\n return level2BufferOffsets;\n}\n"]}
|
|
@@ -1,22 +1,26 @@
|
|
|
1
1
|
import type IntWrapper from "./intWrapper";
|
|
2
|
+
import { type FastPforWireDecodeWorkspace } from "./fastPforDecoder";
|
|
3
|
+
export type { FastPforWireDecodeWorkspace } from "./fastPforDecoder";
|
|
4
|
+
export { createFastPforWireDecodeWorkspace } from "./fastPforDecoder";
|
|
2
5
|
export declare function decodeVarintInt32(buf: Uint8Array, bufferOffset: IntWrapper, numValues: number): Int32Array;
|
|
3
|
-
export declare function decodeVarintInt64(src: Uint8Array, offset: IntWrapper, numValues: number):
|
|
6
|
+
export declare function decodeVarintInt64(src: Uint8Array, offset: IntWrapper, numValues: number): BigUint64Array;
|
|
4
7
|
export declare function decodeVarintFloat64(src: Uint8Array, offset: IntWrapper, numValues: number): Float64Array;
|
|
5
|
-
export declare function decodeFastPfor(
|
|
8
|
+
export declare function decodeFastPfor(encodedBytes: Uint8Array, expectedValueCount: number, encodedByteLength: number, offset: IntWrapper): Int32Array;
|
|
9
|
+
export declare function decodeFastPforWithWorkspace(encodedBytes: Uint8Array, expectedValueCount: number, encodedByteLength: number, offset: IntWrapper, workspace: FastPforWireDecodeWorkspace): Int32Array;
|
|
6
10
|
export declare function decodeZigZagInt32Value(encoded: number): number;
|
|
7
11
|
export declare function decodeZigZagInt64Value(encoded: bigint): bigint;
|
|
8
12
|
export declare function decodeZigZagFloat64Value(encoded: number): number;
|
|
9
13
|
export declare function decodeZigZagInt32(encodedData: Int32Array): void;
|
|
10
|
-
export declare function decodeZigZagInt64(encodedData:
|
|
14
|
+
export declare function decodeZigZagInt64(encodedData: BigUint64Array): BigInt64Array;
|
|
11
15
|
export declare function decodeZigZagFloat64(encodedData: Float64Array): void;
|
|
12
16
|
export declare function decodeUnsignedRleInt32(encodedData: Int32Array, numRuns: number, numTotalValues?: number): Int32Array;
|
|
13
|
-
export declare function decodeUnsignedRleInt64(encodedData:
|
|
17
|
+
export declare function decodeUnsignedRleInt64(encodedData: BigUint64Array, numRuns: number, numTotalValues?: number): BigUint64Array;
|
|
14
18
|
export declare function decodeUnsignedRleFloat64(encodedData: Float64Array, numRuns: number, numTotalValues: number): Float64Array;
|
|
15
19
|
export declare function decodeZigZagDeltaInt32(data: Int32Array): void;
|
|
16
|
-
export declare function decodeZigZagDeltaInt64(data: BigInt64Array):
|
|
20
|
+
export declare function decodeZigZagDeltaInt64(data: BigInt64Array | BigUint64Array): BigInt64Array;
|
|
17
21
|
export declare function decodeZigZagDeltaFloat64(data: Float64Array): void;
|
|
18
22
|
export declare function decodeZigZagRleInt32(data: Int32Array, numRuns: number, numTotalValues?: number): Int32Array;
|
|
19
|
-
export declare function decodeZigZagRleInt64(data:
|
|
23
|
+
export declare function decodeZigZagRleInt64(data: BigUint64Array, numRuns: number, numTotalValues?: number): BigInt64Array;
|
|
20
24
|
export declare function decodeZigZagRleFloat64(data: Float64Array, numRuns: number, numTotalValues: number): Float64Array;
|
|
21
25
|
export declare function fastInverseDelta(data: Uint32Array | Int32Array): void;
|
|
22
26
|
export declare function inverseDelta(data: Int32Array): void;
|
|
@@ -37,10 +41,10 @@ export declare function decodeDeltaRleInt32(data: Int32Array, numRuns: number, n
|
|
|
37
41
|
/**
|
|
38
42
|
* Decode Delta-RLE with multiple runs for 64-bit integers.
|
|
39
43
|
*/
|
|
40
|
-
export declare function decodeDeltaRleInt64(data:
|
|
44
|
+
export declare function decodeDeltaRleInt64(data: BigUint64Array, numRuns: number, numValues: number): BigInt64Array;
|
|
41
45
|
export declare function decodeUnsignedConstRleInt32(data: Int32Array): number;
|
|
42
46
|
export declare function decodeZigZagConstRleInt32(data: Int32Array): number;
|
|
43
47
|
export declare function decodeZigZagSequenceRleInt32(data: Int32Array): [baseValue: number, delta: number];
|
|
44
|
-
export declare function decodeUnsignedConstRleInt64(data: BigInt64Array): bigint;
|
|
45
|
-
export declare function decodeZigZagConstRleInt64(data: BigInt64Array): bigint;
|
|
46
|
-
export declare function decodeZigZagSequenceRleInt64(data: BigInt64Array): [baseValue: bigint, delta: bigint];
|
|
48
|
+
export declare function decodeUnsignedConstRleInt64(data: BigInt64Array | BigUint64Array): bigint;
|
|
49
|
+
export declare function decodeZigZagConstRleInt64(data: BigInt64Array | BigUint64Array): bigint;
|
|
50
|
+
export declare function decodeZigZagSequenceRleInt64(data: BigInt64Array | BigUint64Array): [baseValue: bigint, delta: bigint];
|