qd-changjing/public/static/Build/CesiumUnminified/Workers/BoxGeometry-14396797.js.map

1 line
54 KiB
Plaintext

{"version":3,"file":"BoxGeometry-14396797.js","sources":["../../../../Source/Core/BoxGeometry.js"],"sourcesContent":["import arrayFill from \"./arrayFill.js\";\nimport BoundingSphere from \"./BoundingSphere.js\";\nimport Cartesian3 from \"./Cartesian3.js\";\nimport Check from \"./Check.js\";\nimport ComponentDatatype from \"./ComponentDatatype.js\";\nimport defaultValue from \"./defaultValue.js\";\nimport defined from \"./defined.js\";\nimport DeveloperError from \"./DeveloperError.js\";\nimport Geometry from \"./Geometry.js\";\nimport GeometryAttribute from \"./GeometryAttribute.js\";\nimport GeometryAttributes from \"./GeometryAttributes.js\";\nimport GeometryOffsetAttribute from \"./GeometryOffsetAttribute.js\";\nimport PrimitiveType from \"./PrimitiveType.js\";\nimport VertexFormat from \"./VertexFormat.js\";\n\nconst diffScratch = new Cartesian3();\n\n/**\n * Describes a cube centered at the origin.\n *\n * @alias BoxGeometry\n * @constructor\n *\n * @param {Object} options Object with the following properties:\n * @param {Cartesian3} options.minimum The minimum x, y, and z coordinates of the box.\n * @param {Cartesian3} options.maximum The maximum x, y, and z coordinates of the box.\n * @param {VertexFormat} [options.vertexFormat=VertexFormat.DEFAULT] The vertex attributes to be computed.\n *\n * @see BoxGeometry.fromDimensions\n * @see BoxGeometry.createGeometry\n * @see Packable\n *\n * @demo {@link https://sandcastle.cesium.com/index.html?src=Box.html|Cesium Sandcastle Box Demo}\n *\n * @example\n * const box = new Cesium.BoxGeometry({\n * vertexFormat : Cesium.VertexFormat.POSITION_ONLY,\n * maximum : new Cesium.Cartesian3(250000.0, 250000.0, 250000.0),\n * minimum : new Cesium.Cartesian3(-250000.0, -250000.0, -250000.0)\n * });\n * const geometry = Cesium.BoxGeometry.createGeometry(box);\n */\nfunction BoxGeometry(options) {\n options = defaultValue(options, defaultValue.EMPTY_OBJECT);\n\n const min = options.minimum;\n const max = options.maximum;\n\n //>>includeStart('debug', pragmas.debug);\n Check.typeOf.object(\"min\", min);\n Check.typeOf.object(\"max\", max);\n if (\n defined(options.offsetAttribute) &&\n options.offsetAttribute === GeometryOffsetAttribute.TOP\n ) {\n throw new DeveloperError(\n \"GeometryOffsetAttribute.TOP is not a supported options.offsetAttribute for this geometry.\"\n );\n }\n //>>includeEnd('debug');\n\n const vertexFormat = defaultValue(options.vertexFormat, VertexFormat.DEFAULT);\n\n this._minimum = Cartesian3.clone(min);\n this._maximum = Cartesian3.clone(max);\n this._vertexFormat = vertexFormat;\n this._offsetAttribute = options.offsetAttribute;\n this._workerName = \"createBoxGeometry\";\n}\n\n/**\n * Creates a cube centered at the origin given its dimensions.\n *\n * @param {Object} options Object with the following properties:\n * @param {Cartesian3} options.dimensions The width, depth, and height of the box stored in the x, y, and z coordinates of the <code>Cartesian3</code>, respectively.\n * @param {VertexFormat} [options.vertexFormat=VertexFormat.DEFAULT] The vertex attributes to be computed.\n * @returns {BoxGeometry}\n *\n * @exception {DeveloperError} All dimensions components must be greater than or equal to zero.\n *\n *\n * @example\n * const box = Cesium.BoxGeometry.fromDimensions({\n * vertexFormat : Cesium.VertexFormat.POSITION_ONLY,\n * dimensions : new Cesium.Cartesian3(500000.0, 500000.0, 500000.0)\n * });\n * const geometry = Cesium.BoxGeometry.createGeometry(box);\n *\n * @see BoxGeometry.createGeometry\n */\nBoxGeometry.fromDimensions = function (options) {\n options = defaultValue(options, defaultValue.EMPTY_OBJECT);\n const dimensions = options.dimensions;\n\n //>>includeStart('debug', pragmas.debug);\n Check.typeOf.object(\"dimensions\", dimensions);\n Check.typeOf.number.greaterThanOrEquals(\"dimensions.x\", dimensions.x, 0);\n Check.typeOf.number.greaterThanOrEquals(\"dimensions.y\", dimensions.y, 0);\n Check.typeOf.number.greaterThanOrEquals(\"dimensions.z\", dimensions.z, 0);\n //>>includeEnd('debug');\n\n const corner = Cartesian3.multiplyByScalar(dimensions, 0.5, new Cartesian3());\n\n return new BoxGeometry({\n minimum: Cartesian3.negate(corner, new Cartesian3()),\n maximum: corner,\n vertexFormat: options.vertexFormat,\n offsetAttribute: options.offsetAttribute,\n });\n};\n\n/**\n * Creates a cube from the dimensions of an AxisAlignedBoundingBox.\n *\n * @param {AxisAlignedBoundingBox} boundingBox A description of the AxisAlignedBoundingBox.\n * @returns {BoxGeometry}\n *\n *\n *\n * @example\n * const aabb = Cesium.AxisAlignedBoundingBox.fromPoints(Cesium.Cartesian3.fromDegreesArray([\n * -72.0, 40.0,\n * -70.0, 35.0,\n * -75.0, 30.0,\n * -70.0, 30.0,\n * -68.0, 40.0\n * ]));\n * const box = Cesium.BoxGeometry.fromAxisAlignedBoundingBox(aabb);\n *\n * @see BoxGeometry.createGeometry\n */\nBoxGeometry.fromAxisAlignedBoundingBox = function (boundingBox) {\n //>>includeStart('debug', pragmas.debug);\n Check.typeOf.object(\"boundingBox\", boundingBox);\n //>>includeEnd('debug');\n\n return new BoxGeometry({\n minimum: boundingBox.minimum,\n maximum: boundingBox.maximum,\n });\n};\n\n/**\n * The number of elements used to pack the object into an array.\n * @type {Number}\n */\nBoxGeometry.packedLength =\n 2 * Cartesian3.packedLength + VertexFormat.packedLength + 1;\n\n/**\n * Stores the provided instance into the provided array.\n *\n * @param {BoxGeometry} value The value to pack.\n * @param {Number[]} array The array to pack into.\n * @param {Number} [startingIndex=0] The index into the array at which to start packing the elements.\n *\n * @returns {Number[]} The array that was packed into\n */\nBoxGeometry.pack = function (value, array, startingIndex) {\n //>>includeStart('debug', pragmas.debug);\n Check.typeOf.object(\"value\", value);\n Check.defined(\"array\", array);\n //>>includeEnd('debug');\n\n startingIndex = defaultValue(startingIndex, 0);\n\n Cartesian3.pack(value._minimum, array, startingIndex);\n Cartesian3.pack(\n value._maximum,\n array,\n startingIndex + Cartesian3.packedLength\n );\n VertexFormat.pack(\n value._vertexFormat,\n array,\n startingIndex + 2 * Cartesian3.packedLength\n );\n array[\n startingIndex + 2 * Cartesian3.packedLength + VertexFormat.packedLength\n ] = defaultValue(value._offsetAttribute, -1);\n\n return array;\n};\n\nconst scratchMin = new Cartesian3();\nconst scratchMax = new Cartesian3();\nconst scratchVertexFormat = new VertexFormat();\nconst scratchOptions = {\n minimum: scratchMin,\n maximum: scratchMax,\n vertexFormat: scratchVertexFormat,\n offsetAttribute: undefined,\n};\n\n/**\n * Retrieves an instance from a packed array.\n *\n * @param {Number[]} array The packed array.\n * @param {Number} [startingIndex=0] The starting index of the element to be unpacked.\n * @param {BoxGeometry} [result] The object into which to store the result.\n * @returns {BoxGeometry} The modified result parameter or a new BoxGeometry instance if one was not provided.\n */\nBoxGeometry.unpack = function (array, startingIndex, result) {\n //>>includeStart('debug', pragmas.debug);\n Check.defined(\"array\", array);\n //>>includeEnd('debug');\n\n startingIndex = defaultValue(startingIndex, 0);\n\n const min = Cartesian3.unpack(array, startingIndex, scratchMin);\n const max = Cartesian3.unpack(\n array,\n startingIndex + Cartesian3.packedLength,\n scratchMax\n );\n const vertexFormat = VertexFormat.unpack(\n array,\n startingIndex + 2 * Cartesian3.packedLength,\n scratchVertexFormat\n );\n const offsetAttribute =\n array[\n startingIndex + 2 * Cartesian3.packedLength + VertexFormat.packedLength\n ];\n\n if (!defined(result)) {\n scratchOptions.offsetAttribute =\n offsetAttribute === -1 ? undefined : offsetAttribute;\n return new BoxGeometry(scratchOptions);\n }\n\n result._minimum = Cartesian3.clone(min, result._minimum);\n result._maximum = Cartesian3.clone(max, result._maximum);\n result._vertexFormat = VertexFormat.clone(vertexFormat, result._vertexFormat);\n result._offsetAttribute =\n offsetAttribute === -1 ? undefined : offsetAttribute;\n\n return result;\n};\n\n/**\n * Computes the geometric representation of a box, including its vertices, indices, and a bounding sphere.\n *\n * @param {BoxGeometry} boxGeometry A description of the box.\n * @returns {Geometry|undefined} The computed vertices and indices.\n */\nBoxGeometry.createGeometry = function (boxGeometry) {\n const min = boxGeometry._minimum;\n const max = boxGeometry._maximum;\n const vertexFormat = boxGeometry._vertexFormat;\n\n if (Cartesian3.equals(min, max)) {\n return;\n }\n\n const attributes = new GeometryAttributes();\n let indices;\n let positions;\n\n if (\n vertexFormat.position &&\n (vertexFormat.st ||\n vertexFormat.normal ||\n vertexFormat.tangent ||\n vertexFormat.bitangent)\n ) {\n if (vertexFormat.position) {\n // 8 corner points. Duplicated 3 times each for each incident edge/face.\n positions = new Float64Array(6 * 4 * 3);\n\n // +z face\n positions[0] = min.x;\n positions[1] = min.y;\n positions[2] = max.z;\n positions[3] = max.x;\n positions[4] = min.y;\n positions[5] = max.z;\n positions[6] = max.x;\n positions[7] = max.y;\n positions[8] = max.z;\n positions[9] = min.x;\n positions[10] = max.y;\n positions[11] = max.z;\n\n // -z face\n positions[12] = min.x;\n positions[13] = min.y;\n positions[14] = min.z;\n positions[15] = max.x;\n positions[16] = min.y;\n positions[17] = min.z;\n positions[18] = max.x;\n positions[19] = max.y;\n positions[20] = min.z;\n positions[21] = min.x;\n positions[22] = max.y;\n positions[23] = min.z;\n\n // +x face\n positions[24] = max.x;\n positions[25] = min.y;\n positions[26] = min.z;\n positions[27] = max.x;\n positions[28] = max.y;\n positions[29] = min.z;\n positions[30] = max.x;\n positions[31] = max.y;\n positions[32] = max.z;\n positions[33] = max.x;\n positions[34] = min.y;\n positions[35] = max.z;\n\n // -x face\n positions[36] = min.x;\n positions[37] = min.y;\n positions[38] = min.z;\n positions[39] = min.x;\n positions[40] = max.y;\n positions[41] = min.z;\n positions[42] = min.x;\n positions[43] = max.y;\n positions[44] = max.z;\n positions[45] = min.x;\n positions[46] = min.y;\n positions[47] = max.z;\n\n // +y face\n positions[48] = min.x;\n positions[49] = max.y;\n positions[50] = min.z;\n positions[51] = max.x;\n positions[52] = max.y;\n positions[53] = min.z;\n positions[54] = max.x;\n positions[55] = max.y;\n positions[56] = max.z;\n positions[57] = min.x;\n positions[58] = max.y;\n positions[59] = max.z;\n\n // -y face\n positions[60] = min.x;\n positions[61] = min.y;\n positions[62] = min.z;\n positions[63] = max.x;\n positions[64] = min.y;\n positions[65] = min.z;\n positions[66] = max.x;\n positions[67] = min.y;\n positions[68] = max.z;\n positions[69] = min.x;\n positions[70] = min.y;\n positions[71] = max.z;\n\n attributes.position = new GeometryAttribute({\n componentDatatype: ComponentDatatype.DOUBLE,\n componentsPerAttribute: 3,\n values: positions,\n });\n }\n\n if (vertexFormat.normal) {\n const normals = new Float32Array(6 * 4 * 3);\n\n // +z face\n normals[0] = 0.0;\n normals[1] = 0.0;\n normals[2] = 1.0;\n normals[3] = 0.0;\n normals[4] = 0.0;\n normals[5] = 1.0;\n normals[6] = 0.0;\n normals[7] = 0.0;\n normals[8] = 1.0;\n normals[9] = 0.0;\n normals[10] = 0.0;\n normals[11] = 1.0;\n\n // -z face\n normals[12] = 0.0;\n normals[13] = 0.0;\n normals[14] = -1.0;\n normals[15] = 0.0;\n normals[16] = 0.0;\n normals[17] = -1.0;\n normals[18] = 0.0;\n normals[19] = 0.0;\n normals[20] = -1.0;\n normals[21] = 0.0;\n normals[22] = 0.0;\n normals[23] = -1.0;\n\n // +x face\n normals[24] = 1.0;\n normals[25] = 0.0;\n normals[26] = 0.0;\n normals[27] = 1.0;\n normals[28] = 0.0;\n normals[29] = 0.0;\n normals[30] = 1.0;\n normals[31] = 0.0;\n normals[32] = 0.0;\n normals[33] = 1.0;\n normals[34] = 0.0;\n normals[35] = 0.0;\n\n // -x face\n normals[36] = -1.0;\n normals[37] = 0.0;\n normals[38] = 0.0;\n normals[39] = -1.0;\n normals[40] = 0.0;\n normals[41] = 0.0;\n normals[42] = -1.0;\n normals[43] = 0.0;\n normals[44] = 0.0;\n normals[45] = -1.0;\n normals[46] = 0.0;\n normals[47] = 0.0;\n\n // +y face\n normals[48] = 0.0;\n normals[49] = 1.0;\n normals[50] = 0.0;\n normals[51] = 0.0;\n normals[52] = 1.0;\n normals[53] = 0.0;\n normals[54] = 0.0;\n normals[55] = 1.0;\n normals[56] = 0.0;\n normals[57] = 0.0;\n normals[58] = 1.0;\n normals[59] = 0.0;\n\n // -y face\n normals[60] = 0.0;\n normals[61] = -1.0;\n normals[62] = 0.0;\n normals[63] = 0.0;\n normals[64] = -1.0;\n normals[65] = 0.0;\n normals[66] = 0.0;\n normals[67] = -1.0;\n normals[68] = 0.0;\n normals[69] = 0.0;\n normals[70] = -1.0;\n normals[71] = 0.0;\n\n attributes.normal = new GeometryAttribute({\n componentDatatype: ComponentDatatype.FLOAT,\n componentsPerAttribute: 3,\n values: normals,\n });\n }\n\n if (vertexFormat.st) {\n const texCoords = new Float32Array(6 * 4 * 2);\n\n // +z face\n texCoords[0] = 0.0;\n texCoords[1] = 0.0;\n texCoords[2] = 1.0;\n texCoords[3] = 0.0;\n texCoords[4] = 1.0;\n texCoords[5] = 1.0;\n texCoords[6] = 0.0;\n texCoords[7] = 1.0;\n\n // -z face\n texCoords[8] = 1.0;\n texCoords[9] = 0.0;\n texCoords[10] = 0.0;\n texCoords[11] = 0.0;\n texCoords[12] = 0.0;\n texCoords[13] = 1.0;\n texCoords[14] = 1.0;\n texCoords[15] = 1.0;\n\n //+x face\n texCoords[16] = 0.0;\n texCoords[17] = 0.0;\n texCoords[18] = 1.0;\n texCoords[19] = 0.0;\n texCoords[20] = 1.0;\n texCoords[21] = 1.0;\n texCoords[22] = 0.0;\n texCoords[23] = 1.0;\n\n // -x face\n texCoords[24] = 1.0;\n texCoords[25] = 0.0;\n texCoords[26] = 0.0;\n texCoords[27] = 0.0;\n texCoords[28] = 0.0;\n texCoords[29] = 1.0;\n texCoords[30] = 1.0;\n texCoords[31] = 1.0;\n\n // +y face\n texCoords[32] = 1.0;\n texCoords[33] = 0.0;\n texCoords[34] = 0.0;\n texCoords[35] = 0.0;\n texCoords[36] = 0.0;\n texCoords[37] = 1.0;\n texCoords[38] = 1.0;\n texCoords[39] = 1.0;\n\n // -y face\n texCoords[40] = 0.0;\n texCoords[41] = 0.0;\n texCoords[42] = 1.0;\n texCoords[43] = 0.0;\n texCoords[44] = 1.0;\n texCoords[45] = 1.0;\n texCoords[46] = 0.0;\n texCoords[47] = 1.0;\n\n attributes.st = new GeometryAttribute({\n componentDatatype: ComponentDatatype.FLOAT,\n componentsPerAttribute: 2,\n values: texCoords,\n });\n }\n\n if (vertexFormat.tangent) {\n const tangents = new Float32Array(6 * 4 * 3);\n\n // +z face\n tangents[0] = 1.0;\n tangents[1] = 0.0;\n tangents[2] = 0.0;\n tangents[3] = 1.0;\n tangents[4] = 0.0;\n tangents[5] = 0.0;\n tangents[6] = 1.0;\n tangents[7] = 0.0;\n tangents[8] = 0.0;\n tangents[9] = 1.0;\n tangents[10] = 0.0;\n tangents[11] = 0.0;\n\n // -z face\n tangents[12] = -1.0;\n tangents[13] = 0.0;\n tangents[14] = 0.0;\n tangents[15] = -1.0;\n tangents[16] = 0.0;\n tangents[17] = 0.0;\n tangents[18] = -1.0;\n tangents[19] = 0.0;\n tangents[20] = 0.0;\n tangents[21] = -1.0;\n tangents[22] = 0.0;\n tangents[23] = 0.0;\n\n // +x face\n tangents[24] = 0.0;\n tangents[25] = 1.0;\n tangents[26] = 0.0;\n tangents[27] = 0.0;\n tangents[28] = 1.0;\n tangents[29] = 0.0;\n tangents[30] = 0.0;\n tangents[31] = 1.0;\n tangents[32] = 0.0;\n tangents[33] = 0.0;\n tangents[34] = 1.0;\n tangents[35] = 0.0;\n\n // -x face\n tangents[36] = 0.0;\n tangents[37] = -1.0;\n tangents[38] = 0.0;\n tangents[39] = 0.0;\n tangents[40] = -1.0;\n tangents[41] = 0.0;\n tangents[42] = 0.0;\n tangents[43] = -1.0;\n tangents[44] = 0.0;\n tangents[45] = 0.0;\n tangents[46] = -1.0;\n tangents[47] = 0.0;\n\n // +y face\n tangents[48] = -1.0;\n tangents[49] = 0.0;\n tangents[50] = 0.0;\n tangents[51] = -1.0;\n tangents[52] = 0.0;\n tangents[53] = 0.0;\n tangents[54] = -1.0;\n tangents[55] = 0.0;\n tangents[56] = 0.0;\n tangents[57] = -1.0;\n tangents[58] = 0.0;\n tangents[59] = 0.0;\n\n // -y face\n tangents[60] = 1.0;\n tangents[61] = 0.0;\n tangents[62] = 0.0;\n tangents[63] = 1.0;\n tangents[64] = 0.0;\n tangents[65] = 0.0;\n tangents[66] = 1.0;\n tangents[67] = 0.0;\n tangents[68] = 0.0;\n tangents[69] = 1.0;\n tangents[70] = 0.0;\n tangents[71] = 0.0;\n\n attributes.tangent = new GeometryAttribute({\n componentDatatype: ComponentDatatype.FLOAT,\n componentsPerAttribute: 3,\n values: tangents,\n });\n }\n\n if (vertexFormat.bitangent) {\n const bitangents = new Float32Array(6 * 4 * 3);\n\n // +z face\n bitangents[0] = 0.0;\n bitangents[1] = 1.0;\n bitangents[2] = 0.0;\n bitangents[3] = 0.0;\n bitangents[4] = 1.0;\n bitangents[5] = 0.0;\n bitangents[6] = 0.0;\n bitangents[7] = 1.0;\n bitangents[8] = 0.0;\n bitangents[9] = 0.0;\n bitangents[10] = 1.0;\n bitangents[11] = 0.0;\n\n // -z face\n bitangents[12] = 0.0;\n bitangents[13] = 1.0;\n bitangents[14] = 0.0;\n bitangents[15] = 0.0;\n bitangents[16] = 1.0;\n bitangents[17] = 0.0;\n bitangents[18] = 0.0;\n bitangents[19] = 1.0;\n bitangents[20] = 0.0;\n bitangents[21] = 0.0;\n bitangents[22] = 1.0;\n bitangents[23] = 0.0;\n\n // +x face\n bitangents[24] = 0.0;\n bitangents[25] = 0.0;\n bitangents[26] = 1.0;\n bitangents[27] = 0.0;\n bitangents[28] = 0.0;\n bitangents[29] = 1.0;\n bitangents[30] = 0.0;\n bitangents[31] = 0.0;\n bitangents[32] = 1.0;\n bitangents[33] = 0.0;\n bitangents[34] = 0.0;\n bitangents[35] = 1.0;\n\n // -x face\n bitangents[36] = 0.0;\n bitangents[37] = 0.0;\n bitangents[38] = 1.0;\n bitangents[39] = 0.0;\n bitangents[40] = 0.0;\n bitangents[41] = 1.0;\n bitangents[42] = 0.0;\n bitangents[43] = 0.0;\n bitangents[44] = 1.0;\n bitangents[45] = 0.0;\n bitangents[46] = 0.0;\n bitangents[47] = 1.0;\n\n // +y face\n bitangents[48] = 0.0;\n bitangents[49] = 0.0;\n bitangents[50] = 1.0;\n bitangents[51] = 0.0;\n bitangents[52] = 0.0;\n bitangents[53] = 1.0;\n bitangents[54] = 0.0;\n bitangents[55] = 0.0;\n bitangents[56] = 1.0;\n bitangents[57] = 0.0;\n bitangents[58] = 0.0;\n bitangents[59] = 1.0;\n\n // -y face\n bitangents[60] = 0.0;\n bitangents[61] = 0.0;\n bitangents[62] = 1.0;\n bitangents[63] = 0.0;\n bitangents[64] = 0.0;\n bitangents[65] = 1.0;\n bitangents[66] = 0.0;\n bitangents[67] = 0.0;\n bitangents[68] = 1.0;\n bitangents[69] = 0.0;\n bitangents[70] = 0.0;\n bitangents[71] = 1.0;\n\n attributes.bitangent = new GeometryAttribute({\n componentDatatype: ComponentDatatype.FLOAT,\n componentsPerAttribute: 3,\n values: bitangents,\n });\n }\n\n // 12 triangles: 6 faces, 2 triangles each.\n indices = new Uint16Array(6 * 2 * 3);\n\n // +z face\n indices[0] = 0;\n indices[1] = 1;\n indices[2] = 2;\n indices[3] = 0;\n indices[4] = 2;\n indices[5] = 3;\n\n // -z face\n indices[6] = 4 + 2;\n indices[7] = 4 + 1;\n indices[8] = 4 + 0;\n indices[9] = 4 + 3;\n indices[10] = 4 + 2;\n indices[11] = 4 + 0;\n\n // +x face\n indices[12] = 8 + 0;\n indices[13] = 8 + 1;\n indices[14] = 8 + 2;\n indices[15] = 8 + 0;\n indices[16] = 8 + 2;\n indices[17] = 8 + 3;\n\n // -x face\n indices[18] = 12 + 2;\n indices[19] = 12 + 1;\n indices[20] = 12 + 0;\n indices[21] = 12 + 3;\n indices[22] = 12 + 2;\n indices[23] = 12 + 0;\n\n // +y face\n indices[24] = 16 + 2;\n indices[25] = 16 + 1;\n indices[26] = 16 + 0;\n indices[27] = 16 + 3;\n indices[28] = 16 + 2;\n indices[29] = 16 + 0;\n\n // -y face\n indices[30] = 20 + 0;\n indices[31] = 20 + 1;\n indices[32] = 20 + 2;\n indices[33] = 20 + 0;\n indices[34] = 20 + 2;\n indices[35] = 20 + 3;\n } else {\n // Positions only - no need to duplicate corner points\n positions = new Float64Array(8 * 3);\n\n positions[0] = min.x;\n positions[1] = min.y;\n positions[2] = min.z;\n positions[3] = max.x;\n positions[4] = min.y;\n positions[5] = min.z;\n positions[6] = max.x;\n positions[7] = max.y;\n positions[8] = min.z;\n positions[9] = min.x;\n positions[10] = max.y;\n positions[11] = min.z;\n positions[12] = min.x;\n positions[13] = min.y;\n positions[14] = max.z;\n positions[15] = max.x;\n positions[16] = min.y;\n positions[17] = max.z;\n positions[18] = max.x;\n positions[19] = max.y;\n positions[20] = max.z;\n positions[21] = min.x;\n positions[22] = max.y;\n positions[23] = max.z;\n\n attributes.position = new GeometryAttribute({\n componentDatatype: ComponentDatatype.DOUBLE,\n componentsPerAttribute: 3,\n values: positions,\n });\n\n // 12 triangles: 6 faces, 2 triangles each.\n indices = new Uint16Array(6 * 2 * 3);\n\n // plane z = corner.Z\n indices[0] = 4;\n indices[1] = 5;\n indices[2] = 6;\n indices[3] = 4;\n indices[4] = 6;\n indices[5] = 7;\n\n // plane z = -corner.Z\n indices[6] = 1;\n indices[7] = 0;\n indices[8] = 3;\n indices[9] = 1;\n indices[10] = 3;\n indices[11] = 2;\n\n // plane x = corner.X\n indices[12] = 1;\n indices[13] = 6;\n indices[14] = 5;\n indices[15] = 1;\n indices[16] = 2;\n indices[17] = 6;\n\n // plane y = corner.Y\n indices[18] = 2;\n indices[19] = 3;\n indices[20] = 7;\n indices[21] = 2;\n indices[22] = 7;\n indices[23] = 6;\n\n // plane x = -corner.X\n indices[24] = 3;\n indices[25] = 0;\n indices[26] = 4;\n indices[27] = 3;\n indices[28] = 4;\n indices[29] = 7;\n\n // plane y = -corner.Y\n indices[30] = 0;\n indices[31] = 1;\n indices[32] = 5;\n indices[33] = 0;\n indices[34] = 5;\n indices[35] = 4;\n }\n\n const diff = Cartesian3.subtract(max, min, diffScratch);\n const radius = Cartesian3.magnitude(diff) * 0.5;\n\n if (defined(boxGeometry._offsetAttribute)) {\n const length = positions.length;\n const applyOffset = new Uint8Array(length / 3);\n const offsetValue =\n boxGeometry._offsetAttribute === GeometryOffsetAttribute.NONE ? 0 : 1;\n arrayFill(applyOffset, offsetValue);\n attributes.applyOffset = new GeometryAttribute({\n componentDatatype: ComponentDatatype.UNSIGNED_BYTE,\n componentsPerAttribute: 1,\n values: applyOffset,\n });\n }\n\n return new Geometry({\n attributes: attributes,\n indices: indices,\n primitiveType: PrimitiveType.TRIANGLES,\n boundingSphere: new BoundingSphere(Cartesian3.ZERO, radius),\n offsetAttribute: boxGeometry._offsetAttribute,\n });\n};\n\nlet unitBoxGeometry;\n\n/**\n * Returns the geometric representation of a unit box, including its vertices, indices, and a bounding sphere.\n * @returns {Geometry} The computed vertices and indices.\n *\n * @private\n */\nBoxGeometry.getUnitBox = function () {\n if (!defined(unitBoxGeometry)) {\n unitBoxGeometry = BoxGeometry.createGeometry(\n BoxGeometry.fromDimensions({\n dimensions: new Cartesian3(1.0, 1.0, 1.0),\n vertexFormat: VertexFormat.POSITION_ONLY,\n })\n );\n }\n return unitBoxGeometry;\n};\nexport default BoxGeometry;\n"],"names":["Cartesian3","defaultValue","Check","defined","GeometryOffsetAttribute","DeveloperError","VertexFormat","GeometryAttributes","GeometryAttribute","ComponentDatatype","arrayFill","Geometry","PrimitiveType","BoundingSphere"],"mappings":"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S,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;EAC3B,MAAM,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;EAC3B,MAAM,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;EAC3B,MAAM,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;EAC3B,MAAM,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;EAC3B,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;EAC5B,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;AAC5B;EACA;EACA,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;EAC5B,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;EAC5B,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;EAC5B,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;EAC5B,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;EAC5B,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;EAC5B,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;EAC5B,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;EAC5B,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;EAC5B,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;EAC5B,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;EAC5B,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;AAC5B;EACA;EACA,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;EAC5B,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;EAC5B,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;EAC5B,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;EAC5B,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;EAC5B,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;EAC5B,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;EAC5B,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;EAC5B,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;EAC5B,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;EAC5B,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;EAC5B,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;AAC5B;EACA;EACA,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;EAC5B,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;EAC5B,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;EAC5B,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;EAC5B,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;EAC5B,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;EAC5B,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;EAC5B,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;EAC5B,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;EAC5B,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;EAC5B,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;EAC5B,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;AAC5B;EACA;EACA,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;EAC5B,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;EAC5B,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;EAC5B,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;EAC5B,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;EAC5B,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;EAC5B,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;EAC5B,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;EAC5B,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;EAC5B,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;EAC5B,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;EAC5B,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;AAC5B;EACA;EACA,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;EAC5B,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;EAC5B,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;EAC5B,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;EAC5B,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;EAC5B,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;EAC5B,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;EAC5B,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;EAC5B,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,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MAAM,OAAO,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EACxB,MAAM,OAAO,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EACxB,MAAM,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC;EACzB,MAAM,OAAO,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EACxB,MAAM,OAAO,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EACxB,MAAM,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC;EACzB,MAAM,OAAO,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EACxB,MAAM,OAAO,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;AACxB;EACA;EACA,MAAM,OAAO,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EACxB,MAAM,OAAO,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EACxB,MAAM,OAAO,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EACxB,MAAM,OAAO,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EACxB,MAAM,OAAO,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EACxB,MAAM,OAAO,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EACxB,MAAM,OAAO,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EACxB,MAAM,OAAO,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EACxB,MAAM,OAAO,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EACxB,MAAM,OAAO,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EACxB,MAAM,OAAO,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EACxB,MAAM,OAAO,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;AACxB;EACA;EACA,MAAM,OAAO,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EACxB,MAAM,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC;EACzB,MAAM,OAAO,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EACxB,MAAM,OAAO,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EACxB,MAAM,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC;EACzB,MAAM,OAAO,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EACxB,MAAM,OAAO,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EACxB,MAAM,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC;EACzB,MAAM,OAAO,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EACxB,MAAM,OAAO,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EACxB,MAAM,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC;EACzB,MAAM,OAAO,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;AACxB;EACA,MAAM,UAAU,CAAC,MAAM,GAAG,IAAID,mCAAiB,CAAC;EAChD,QAAQ,iBAAiB,EAAEC,mCAAiB,CAAC,KAAK;EAClD,QAAQ,sBAAsB,EAAE,CAAC;EACjC,QAAQ,MAAM,EAAE,OAAO;EACvB,OAAO,CAAC,CAAC;EACT,KAAK;AACL;EACA,IAAI,IAAI,YAAY,CAAC,EAAE,EAAE;EACzB,MAAM,MAAM,SAAS,GAAG,IAAI,YAAY,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACpD;EACA;EACA,MAAM,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;EACzB,MAAM,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;EACzB,MAAM,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;EACzB,MAAM,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;EACzB,MAAM,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;EACzB,MAAM,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;EACzB,MAAM,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;EACzB,MAAM,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AACzB;EACA;EACA,MAAM,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;EACzB,MAAM,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;EACzB,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EAC1B,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EAC1B,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EAC1B,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EAC1B,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EAC1B,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;AAC1B;EACA;EACA,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EAC1B,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EAC1B,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EAC1B,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EAC1B,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EAC1B,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EAC1B,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EAC1B,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;AAC1B;EACA;EACA,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EAC1B,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EAC1B,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EAC1B,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EAC1B,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EAC1B,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EAC1B,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EAC1B,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;AAC1B;EACA;EACA,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EAC1B,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EAC1B,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EAC1B,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EAC1B,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EAC1B,MAAM,SAAS,CAAC,EAAE,CAAC,GAAG,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,QAAQ,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EACzB,MAAM,QAAQ,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;AACzB;EACA;EACA,MAAM,QAAQ,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EACzB,MAAM,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC;EAC1B,MAAM,QAAQ,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EACzB,MAAM,QAAQ,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EACzB,MAAM,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC;EAC1B,MAAM,QAAQ,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EACzB,MAAM,QAAQ,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EACzB,MAAM,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC;EAC1B,MAAM,QAAQ,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EACzB,MAAM,QAAQ,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EACzB,MAAM,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC;EAC1B,MAAM,QAAQ,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;AACzB;EACA;EACA,MAAM,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC;EAC1B,MAAM,QAAQ,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EACzB,MAAM,QAAQ,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EACzB,MAAM,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC;EAC1B,MAAM,QAAQ,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EACzB,MAAM,QAAQ,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EACzB,MAAM,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC;EAC1B,MAAM,QAAQ,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EACzB,MAAM,QAAQ,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EACzB,MAAM,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC;EAC1B,MAAM,QAAQ,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EACzB,MAAM,QAAQ,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;AACzB;EACA;EACA,MAAM,QAAQ,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EACzB,MAAM,QAAQ,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EACzB,MAAM,QAAQ,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EACzB,MAAM,QAAQ,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EACzB,MAAM,QAAQ,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EACzB,MAAM,QAAQ,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EACzB,MAAM,QAAQ,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EACzB,MAAM,QAAQ,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EACzB,MAAM,QAAQ,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EACzB,MAAM,QAAQ,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EACzB,MAAM,QAAQ,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EACzB,MAAM,QAAQ,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;AACzB;EACA,MAAM,UAAU,CAAC,OAAO,GAAG,IAAID,mCAAiB,CAAC;EACjD,QAAQ,iBAAiB,EAAEC,mCAAiB,CAAC,KAAK;EAClD,QAAQ,sBAAsB,EAAE,CAAC;EACjC,QAAQ,MAAM,EAAE,QAAQ;EACxB,OAAO,CAAC,CAAC;EACT,KAAK;AACL;EACA,IAAI,IAAI,YAAY,CAAC,SAAS,EAAE;EAChC,MAAM,MAAM,UAAU,GAAG,IAAI,YAAY,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACrD;EACA;EACA,MAAM,UAAU,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;EAC1B,MAAM,UAAU,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;EAC1B,MAAM,UAAU,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;EAC1B,MAAM,UAAU,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;EAC1B,MAAM,UAAU,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;EAC1B,MAAM,UAAU,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;EAC1B,MAAM,UAAU,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;EAC1B,MAAM,UAAU,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;EAC1B,MAAM,UAAU,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;EAC1B,MAAM,UAAU,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;EAC1B,MAAM,UAAU,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EAC3B,MAAM,UAAU,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;AAC3B;EACA;EACA,MAAM,UAAU,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EAC3B,MAAM,UAAU,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EAC3B,MAAM,UAAU,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EAC3B,MAAM,UAAU,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EAC3B,MAAM,UAAU,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EAC3B,MAAM,UAAU,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EAC3B,MAAM,UAAU,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EAC3B,MAAM,UAAU,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EAC3B,MAAM,UAAU,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EAC3B,MAAM,UAAU,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EAC3B,MAAM,UAAU,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EAC3B,MAAM,UAAU,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;AAC3B;EACA;EACA,MAAM,UAAU,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EAC3B,MAAM,UAAU,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EAC3B,MAAM,UAAU,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EAC3B,MAAM,UAAU,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EAC3B,MAAM,UAAU,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EAC3B,MAAM,UAAU,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EAC3B,MAAM,UAAU,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EAC3B,MAAM,UAAU,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EAC3B,MAAM,UAAU,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EAC3B,MAAM,UAAU,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EAC3B,MAAM,UAAU,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EAC3B,MAAM,UAAU,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;AAC3B;EACA;EACA,MAAM,UAAU,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EAC3B,MAAM,UAAU,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EAC3B,MAAM,UAAU,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EAC3B,MAAM,UAAU,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EAC3B,MAAM,UAAU,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EAC3B,MAAM,UAAU,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EAC3B,MAAM,UAAU,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EAC3B,MAAM,UAAU,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EAC3B,MAAM,UAAU,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EAC3B,MAAM,UAAU,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EAC3B,MAAM,UAAU,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EAC3B,MAAM,UAAU,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;AAC3B;EACA;EACA,MAAM,UAAU,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EAC3B,MAAM,UAAU,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EAC3B,MAAM,UAAU,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EAC3B,MAAM,UAAU,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EAC3B,MAAM,UAAU,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EAC3B,MAAM,UAAU,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EAC3B,MAAM,UAAU,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EAC3B,MAAM,UAAU,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EAC3B,MAAM,UAAU,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;EAC3B,MAAM,UAAU,CAAC,EAA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"}