@mlightcad/data-model 1.9.0 → 1.9.1
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/README.md +3 -0
- package/dist/data-model.cjs +7 -7
- package/lib/base/AcDbDxfFiler.d.ts +1 -1
- package/lib/base/AcDbDxfFiler.d.ts.map +1 -1
- package/lib/base/AcDbObject.d.ts +1 -0
- package/lib/base/AcDbObject.d.ts.map +1 -1
- package/lib/base/AcDbObject.js +6 -0
- package/lib/base/AcDbObject.js.map +1 -1
- package/lib/converter/AcDbRegenerator.d.ts +1 -1
- package/lib/converter/AcDbRegenerator.d.ts.map +1 -1
- package/lib/converter/AcDbRegenerator.js.map +1 -1
- package/lib/database/AcDbBlockTable.d.ts +1 -1
- package/lib/database/AcDbBlockTable.d.ts.map +1 -1
- package/lib/database/AcDbBlockTableRecord.d.ts +1 -1
- package/lib/database/AcDbBlockTableRecord.d.ts.map +1 -1
- package/lib/database/AcDbDatabase.d.ts +2 -2
- package/lib/database/AcDbDatabase.d.ts.map +1 -1
- package/lib/database/AcDbDatabase.js +7 -2
- package/lib/database/AcDbDatabase.js.map +1 -1
- package/lib/database/AcDbDatabaseConverter.d.ts +1 -1
- package/lib/database/AcDbDatabaseConverter.d.ts.map +1 -1
- package/lib/database/AcDbDatabaseConverter.js +1 -1
- package/lib/database/AcDbDatabaseConverter.js.map +1 -1
- package/lib/database/AcDbDimStyleTableRecord.d.ts +1 -1
- package/lib/database/AcDbDimStyleTableRecord.d.ts.map +1 -1
- package/lib/database/AcDbDimStyleTableRecord.js +1 -1
- package/lib/database/AcDbDimStyleTableRecord.js.map +1 -1
- package/lib/database/AcDbLayerTableRecord.d.ts +1 -1
- package/lib/database/AcDbLayerTableRecord.d.ts.map +1 -1
- package/lib/database/AcDbLinetypeTableRecord.d.ts +1 -1
- package/lib/database/AcDbLinetypeTableRecord.d.ts.map +1 -1
- package/lib/database/AcDbRegAppTableRecord.d.ts +1 -1
- package/lib/database/AcDbRegAppTableRecord.d.ts.map +1 -1
- package/lib/database/AcDbSymbolTableRecord.d.ts +1 -1
- package/lib/database/AcDbSymbolTableRecord.d.ts.map +1 -1
- package/lib/database/AcDbSysVarManager.js +4 -1
- package/lib/database/AcDbSysVarManager.js.map +1 -1
- package/lib/database/AcDbTextStyleTable.js +1 -1
- package/lib/database/AcDbTextStyleTable.js.map +1 -1
- package/lib/database/AcDbTextStyleTableRecord.d.ts +1 -1
- package/lib/database/AcDbTextStyleTableRecord.d.ts.map +1 -1
- package/lib/database/AcDbViewTableRecord.d.ts +1 -1
- package/lib/database/AcDbViewTableRecord.d.ts.map +1 -1
- package/lib/database/AcDbViewportTableRecord.d.ts +1 -1
- package/lib/database/AcDbViewportTableRecord.d.ts.map +1 -1
- package/lib/entity/AcDb2dPolyline.d.ts +2 -2
- package/lib/entity/AcDb2dPolyline.d.ts.map +1 -1
- package/lib/entity/AcDb2dPolyline.js +1 -1
- package/lib/entity/AcDb2dPolyline.js.map +1 -1
- package/lib/entity/AcDb2dVertex.d.ts +2 -2
- package/lib/entity/AcDb2dVertex.d.ts.map +1 -1
- package/lib/entity/AcDb2dVertex.js +1 -1
- package/lib/entity/AcDb2dVertex.js.map +1 -1
- package/lib/entity/AcDb3dPolyline.d.ts +2 -2
- package/lib/entity/AcDb3dPolyline.d.ts.map +1 -1
- package/lib/entity/AcDb3dPolyline.js +1 -1
- package/lib/entity/AcDb3dPolyline.js.map +1 -1
- package/lib/entity/AcDb3dVertex.d.ts +2 -2
- package/lib/entity/AcDb3dVertex.d.ts.map +1 -1
- package/lib/entity/AcDb3dVertex.js +1 -1
- package/lib/entity/AcDb3dVertex.js.map +1 -1
- package/lib/entity/AcDbArc.d.ts +2 -2
- package/lib/entity/AcDbArc.d.ts.map +1 -1
- package/lib/entity/AcDbArc.js +1 -1
- package/lib/entity/AcDbArc.js.map +1 -1
- package/lib/entity/AcDbAttribute.d.ts +1 -1
- package/lib/entity/AcDbAttribute.d.ts.map +1 -1
- package/lib/entity/AcDbAttributeDefinition.d.ts +1 -1
- package/lib/entity/AcDbAttributeDefinition.d.ts.map +1 -1
- package/lib/entity/AcDbBlockReference.d.ts +4 -2
- package/lib/entity/AcDbBlockReference.d.ts.map +1 -1
- package/lib/entity/AcDbBlockReference.js +3 -1
- package/lib/entity/AcDbBlockReference.js.map +1 -1
- package/lib/entity/AcDbCircle.d.ts +2 -2
- package/lib/entity/AcDbCircle.d.ts.map +1 -1
- package/lib/entity/AcDbCircle.js +1 -1
- package/lib/entity/AcDbCircle.js.map +1 -1
- package/lib/entity/AcDbEllipse.d.ts +2 -2
- package/lib/entity/AcDbEllipse.d.ts.map +1 -1
- package/lib/entity/AcDbEllipse.js +1 -1
- package/lib/entity/AcDbEllipse.js.map +1 -1
- package/lib/entity/AcDbEntity.d.ts +2 -2
- package/lib/entity/AcDbEntity.d.ts.map +1 -1
- package/lib/entity/AcDbEntity.js +1 -1
- package/lib/entity/AcDbEntity.js.map +1 -1
- package/lib/entity/AcDbFace.d.ts +2 -2
- package/lib/entity/AcDbFace.d.ts.map +1 -1
- package/lib/entity/AcDbFace.js.map +1 -1
- package/lib/entity/AcDbHatch.d.ts +2 -2
- package/lib/entity/AcDbHatch.d.ts.map +1 -1
- package/lib/entity/AcDbHatch.js +1 -1
- package/lib/entity/AcDbHatch.js.map +1 -1
- package/lib/entity/AcDbLeader.d.ts +2 -2
- package/lib/entity/AcDbLeader.d.ts.map +1 -1
- package/lib/entity/AcDbLeader.js +1 -1
- package/lib/entity/AcDbLeader.js.map +1 -1
- package/lib/entity/AcDbLine.d.ts +1 -1
- package/lib/entity/AcDbLine.d.ts.map +1 -1
- package/lib/entity/AcDbMLeader.d.ts +2 -2
- package/lib/entity/AcDbMLeader.d.ts.map +1 -1
- package/lib/entity/AcDbMLeader.js +4 -2
- package/lib/entity/AcDbMLeader.js.map +1 -1
- package/lib/entity/AcDbMLine.d.ts +2 -2
- package/lib/entity/AcDbMLine.d.ts.map +1 -1
- package/lib/entity/AcDbMLine.js +2 -2
- package/lib/entity/AcDbMLine.js.map +1 -1
- package/lib/entity/AcDbMText.d.ts +2 -2
- package/lib/entity/AcDbMText.d.ts.map +1 -1
- package/lib/entity/AcDbMText.js +1 -1
- package/lib/entity/AcDbMText.js.map +1 -1
- package/lib/entity/AcDbOsnapHelpers.d.ts +1 -1
- package/lib/entity/AcDbOsnapHelpers.d.ts.map +1 -1
- package/lib/entity/AcDbOsnapHelpers.js +1 -1
- package/lib/entity/AcDbOsnapHelpers.js.map +1 -1
- package/lib/entity/AcDbPoint.d.ts +2 -2
- package/lib/entity/AcDbPoint.d.ts.map +1 -1
- package/lib/entity/AcDbPoint.js +1 -1
- package/lib/entity/AcDbPoint.js.map +1 -1
- package/lib/entity/AcDbPolyFaceMesh.d.ts +2 -2
- package/lib/entity/AcDbPolyFaceMesh.d.ts.map +1 -1
- package/lib/entity/AcDbPolyFaceMesh.js +1 -1
- package/lib/entity/AcDbPolyFaceMesh.js.map +1 -1
- package/lib/entity/AcDbPolygonMesh.d.ts +2 -2
- package/lib/entity/AcDbPolygonMesh.d.ts.map +1 -1
- package/lib/entity/AcDbPolygonMesh.js +1 -1
- package/lib/entity/AcDbPolygonMesh.js.map +1 -1
- package/lib/entity/AcDbPolyline.d.ts +2 -2
- package/lib/entity/AcDbPolyline.d.ts.map +1 -1
- package/lib/entity/AcDbPolyline.js +1 -1
- package/lib/entity/AcDbPolyline.js.map +1 -1
- package/lib/entity/AcDbRasterImage.d.ts +3 -2
- package/lib/entity/AcDbRasterImage.d.ts.map +1 -1
- package/lib/entity/AcDbRasterImage.js +1 -1
- package/lib/entity/AcDbRasterImage.js.map +1 -1
- package/lib/entity/AcDbRay.d.ts +2 -2
- package/lib/entity/AcDbRay.d.ts.map +1 -1
- package/lib/entity/AcDbRay.js +1 -1
- package/lib/entity/AcDbRay.js.map +1 -1
- package/lib/entity/AcDbShape.d.ts +2 -2
- package/lib/entity/AcDbShape.d.ts.map +1 -1
- package/lib/entity/AcDbShape.js +1 -1
- package/lib/entity/AcDbShape.js.map +1 -1
- package/lib/entity/AcDbSpline.d.ts +2 -2
- package/lib/entity/AcDbSpline.d.ts.map +1 -1
- package/lib/entity/AcDbSpline.js +1 -1
- package/lib/entity/AcDbSpline.js.map +1 -1
- package/lib/entity/AcDbTable.d.ts +1 -1
- package/lib/entity/AcDbTable.d.ts.map +1 -1
- package/lib/entity/AcDbText.d.ts +2 -2
- package/lib/entity/AcDbText.d.ts.map +1 -1
- package/lib/entity/AcDbText.js +1 -1
- package/lib/entity/AcDbText.js.map +1 -1
- package/lib/entity/AcDbTrace.d.ts +2 -2
- package/lib/entity/AcDbTrace.d.ts.map +1 -1
- package/lib/entity/AcDbViewport.d.ts +1 -1
- package/lib/entity/AcDbViewport.d.ts.map +1 -1
- package/lib/entity/AcDbWipeout.d.ts +1 -1
- package/lib/entity/AcDbWipeout.d.ts.map +1 -1
- package/lib/entity/AcDbXline.d.ts +2 -2
- package/lib/entity/AcDbXline.d.ts.map +1 -1
- package/lib/entity/AcDbXline.js +1 -1
- package/lib/entity/AcDbXline.js.map +1 -1
- package/lib/misc/AcDbDataGenerator.d.ts +1 -1
- package/lib/misc/AcDbDataGenerator.d.ts.map +1 -1
- package/lib/misc/AcDbDataGenerator.js +7 -3
- package/lib/misc/AcDbDataGenerator.js.map +1 -1
- package/lib/misc/AcDbRenderingCache.d.ts +1 -1
- package/lib/misc/AcDbRenderingCache.d.ts.map +1 -1
- package/lib/misc/AcDbRenderingCache.js +1 -1
- package/lib/misc/AcDbRenderingCache.js.map +1 -1
- package/lib/object/AcDbMLeaderStyle.js +1 -1
- package/lib/object/AcDbMLeaderStyle.js.map +1 -1
- package/lib/object/layout/AcDbLayoutManager.d.ts.map +1 -1
- package/lib/object/layout/AcDbLayoutManager.js +2 -2
- package/lib/object/layout/AcDbLayoutManager.js.map +1 -1
- package/package.json +4 -4
package/dist/data-model.cjs
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});var vn=(i=>(i[i.Invalid=-9999]="Invalid",i[i.Start=0]="Start",i[i.Text=1]="Text",i[i.AttributeTag=2]="AttributeTag",i[i.BlockName=2]="BlockName",i[i.ShapeName=2]="ShapeName",i[i.SymbolTableName=2]="SymbolTableName",i[i.SymbolTableRecordName=2]="SymbolTableRecordName",i[i.MlineStyleName=2]="MlineStyleName",i[i.AttributePrompt=3]="AttributePrompt",i[i.Description=3]="Description",i[i.DimPostString=3]="DimPostString",i[i.DimStyleName=3]="DimStyleName",i[i.LinetypeProse=3]="LinetypeProse",i[i.TextFontFile=3]="TextFontFile",i[i.CLShapeName=4]="CLShapeName",i[i.DimensionAlternativePrefixSuffix=4]="DimensionAlternativePrefixSuffix",i[i.SymbolTableRecordComments=4]="SymbolTableRecordComments",i[i.TextBigFontFile=4]="TextBigFontFile",i[i.Handle=5]="Handle",i[i.DimensionBlock=5]="DimensionBlock",i[i.LinetypeName=6]="LinetypeName",i[i.DimBlk1=6]="DimBlk1",i[i.TextStyleName=7]="TextStyleName",i[i.DimBlk2=7]="DimBlk2",i[i.LayerName=8]="LayerName",i[i.CLShapeText=9]="CLShapeText",i[i.XCoordinate=10]="XCoordinate",i[i.YCoordinate=20]="YCoordinate",i[i.ZCoordinate=30]="ZCoordinate",i[i.Real=40]="Real",i[i.TxtSize=40]="TxtSize",i[i.ViewportHeight=40]="ViewportHeight",i[i.Angle=50]="Angle",i[i.ViewportSnapAngle=50]="ViewportSnapAngle",i[i.Visibility=60]="Visibility",i[i.Int16=70]="Int16",i[i.Int32=90]="Int32",i[i.Int64=160]="Int64",i[i.Int8=280]="Int8",i[i.Thickness=39]="Thickness",i[i.Elevation=38]="Elevation",i[i.LinetypeScale=48]="LinetypeScale",i[i.DashLength=49]="DashLength",i[i.MlineOffset=49]="MlineOffset",i[i.LinetypeElement=49]="LinetypeElement",i[i.NormalX=210]="NormalX",i[i.NormalY=220]="NormalY",i[i.NormalZ=230]="NormalZ",i[i.UcsOrg=110]="UcsOrg",i[i.UcsOrientationX=111]="UcsOrientationX",i[i.UcsOrientationY=112]="UcsOrientationY",i[i.ViewHeight=45]="ViewHeight",i[i.ViewWidth=41]="ViewWidth",i[i.ViewLensLength=42]="ViewLensLength",i[i.ViewFrontClip=43]="ViewFrontClip",i[i.ViewBackClip=44]="ViewBackClip",i[i.ViewBrightness=141]="ViewBrightness",i[i.ViewContrast=142]="ViewContrast",i[i.ViewMode=71]="ViewMode",i[i.ViewportActive=68]="ViewportActive",i[i.ViewportAspect=41]="ViewportAspect",i[i.ViewportGrid=76]="ViewportGrid",i[i.ViewportIcon=74]="ViewportIcon",i[i.ViewportNumber=69]="ViewportNumber",i[i.ViewportSnap=75]="ViewportSnap",i[i.ViewportSnapPair=78]="ViewportSnapPair",i[i.ViewportSnapStyle=77]="ViewportSnapStyle",i[i.ViewportTwist=51]="ViewportTwist",i[i.ViewportVisibility=67]="ViewportVisibility",i[i.ViewportZoom=73]="ViewportZoom",i[i.Color=62]="Color",i[i.ColorRgb=420]="ColorRgb",i[i.ColorName=430]="ColorName",i[i.LineWeight=370]="LineWeight",i[i.PlotStyleNameType=380]="PlotStyleNameType",i[i.PlotStyleNameId=390]="PlotStyleNameId",i[i.GradientObjType=450]="GradientObjType",i[i.GradientAngle=460]="GradientAngle",i[i.GradientName=470]="GradientName",i[i.GradientColCount=453]="GradientColCount",i[i.GradientPatType=451]="GradientPatType",i[i.GradientTintType=452]="GradientTintType",i[i.GradientShift=461]="GradientShift",i[i.GradientColVal=463]="GradientColVal",i[i.GradientTintVal=462]="GradientTintVal",i[i.SoftPointerId=330]="SoftPointerId",i[i.HardPointerId=340]="HardPointerId",i[i.SoftOwnershipId=350]="SoftOwnershipId",i[i.HardOwnershipId=360]="HardOwnershipId",i[i.ArbitraryHandle=320]="ArbitraryHandle",i[i.ExtendedDataAsciiString=1e3]="ExtendedDataAsciiString",i[i.ExtendedDataRegAppName=1001]="ExtendedDataRegAppName",i[i.ExtendedDataControlString=1002]="ExtendedDataControlString",i[i.ExtendedDataLayerName=1003]="ExtendedDataLayerName",i[i.ExtendedDataBinaryChunk=1004]="ExtendedDataBinaryChunk",i[i.ExtendedDataHandle=1005]="ExtendedDataHandle",i[i.ExtendedDataXCoordinate=1010]="ExtendedDataXCoordinate",i[i.ExtendedDataWorldXCoordinate=1011]="ExtendedDataWorldXCoordinate",i[i.ExtendedDataWorldXDisp=1012]="ExtendedDataWorldXDisp",i[i.ExtendedDataWorldXDir=1013]="ExtendedDataWorldXDir",i[i.ExtendedDataYCoordinate=1020]="ExtendedDataYCoordinate",i[i.ExtendedDataWorldYCoordinate=1021]="ExtendedDataWorldYCoordinate",i[i.ExtendedDataWorldYDisp=1022]="ExtendedDataWorldYDisp",i[i.ExtendedDataWorldYDir=1023]="ExtendedDataWorldYDir",i[i.ExtendedDataZCoordinate=1030]="ExtendedDataZCoordinate",i[i.ExtendedDataWorldZCoordinate=1031]="ExtendedDataWorldZCoordinate",i[i.ExtendedDataWorldZDisp=1032]="ExtendedDataWorldZDisp",i[i.ExtendedDataWorldZDir=1033]="ExtendedDataWorldZDir",i[i.ExtendedDataReal=1040]="ExtendedDataReal",i[i.ExtendedDataDist=1041]="ExtendedDataDist",i[i.ExtendedDataScale=1042]="ExtendedDataScale",i[i.ExtendedDataInteger16=1070]="ExtendedDataInteger16",i[i.ExtendedDataInteger32=1071]="ExtendedDataInteger32",i[i.XTextString=300]="XTextString",i[i.XReal=140]="XReal",i[i.XInt16=170]="XInt16",i[i.XXInt16=270]="XXInt16",i[i.Subclass=100]="Subclass",i[i.ControlString=102]="ControlString",i[i.EmbeddedObjectStart=101]="EmbeddedObjectStart",i[i.End=-1]="End",i[i.FirstEntityId=-2]="FirstEntityId",i[i.HeaderId=-2]="HeaderId",i[i.XDataStart=-3]="XDataStart",i[i.Operator=-4]="Operator",i[i.PReactors=-5]="PReactors",i[i.XDictionary=-6]="XDictionary",i))(vn||{});exports.AcCmColorMethod=void 0;(function(i){i[i.ByColor=1]="ByColor",i[i.ByACI=2]="ByACI",i[i.ByLayer=3]="ByLayer",i[i.ByBlock=4]="ByBlock",i[i.None=0]="None"})(exports.AcCmColorMethod||(exports.AcCmColorMethod={}));var fa=function(i){var t=typeof Symbol=="function"&&Symbol.iterator,e=t&&i[t],n=0;if(e)return e.call(i);if(i&&typeof i.length=="number")return{next:function(){return i&&n>=i.length&&(i=void 0),{value:i&&i[n++],done:!i}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},ya=function(i,t){var e=typeof Symbol=="function"&&i[Symbol.iterator];if(!e)return i;var n=e.call(i),r,s=[],o;try{for(;(t===void 0||t-- >0)&&!(r=n.next()).done;)s.push(r.value)}catch(a){o={error:a}}finally{try{r&&!r.done&&(e=n.return)&&e.call(n)}finally{if(o)throw o.error}}return s},Lr={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},yi=[0,16711680,16776960,65280,65535,255,16711935,16777215,8421504,12632256,16711680,16744319,13369344,13395558,10027008,10046540,8323072,8339263,4980736,4990502,16727808,16752511,13382400,13401958,10036736,10051404,8331008,8343359,4985600,4992806,16744192,16760703,13395456,13408614,10046464,10056268,8339200,8347455,4990464,4995366,16760576,16768895,13408512,13415014,10056192,10061132,8347392,8351551,4995328,4997670,16776960,16777087,13421568,13421670,10000384,10000460,8355584,8355647,5000192,5000230,12582656,14679935,10079232,11717734,7510016,8755276,6258432,7307071,3755008,4344870,8388352,12582783,6736896,10079334,5019648,7510092,4161280,6258495,2509824,3755046,4194048,10485631,3394560,8375398,2529280,6264908,2064128,5209919,1264640,3099686,65280,8388479,52224,6736998,38912,5019724,32512,4161343,19456,2509862,65343,8388511,52275,6737023,38950,5019743,32543,4161359,19475,2509871,65407,8388543,52326,6737049,38988,5019762,32575,4161375,19494,2509881,65471,8388575,52377,6737074,39026,5019781,32607,4161391,19513,2509890,65535,8388607,52428,6737100,39064,5019800,32639,4161407,19532,2509900,49151,8380415,39372,6730444,29336,5014936,24447,4157311,14668,2507340,32767,8372223,26316,6724044,19608,5010072,16255,4153215,9804,2505036,16383,8364031,13260,6717388,9880,5005208,8063,4149119,4940,2502476,255,8355839,204,6710988,152,5000344,127,4145023,76,2500172,4129023,10452991,3342540,8349388,2490520,6245528,2031743,5193599,1245260,3089996,8323327,12550143,6684876,10053324,4980888,7490712,4128895,6242175,2490444,3745356,12517631,14647295,10027212,11691724,7471256,8735896,6226047,7290751,3735628,4335180,16711935,16744447,13369548,13395660,9961624,9981080,8323199,8339327,4980812,4990540,16711871,16744415,13369497,13395634,9961586,9981061,8323167,8339311,4980793,4990530,16711807,16744383,13369446,13395609,9961548,9981042,8323135,8339295,4980774,4990521,16711743,16744351,13369395,13395583,9961510,9981023,8323103,8339279,4980755,4990511,3355443,5987163,8684676,11382189,14079702,16777215,0],Et=function(){function i(){}return i.getColorByIndex=function(t){return yi[t]},i.getIndexByColor=function(t){for(var e=yi.length-1,n=1;n<e;++n)if(yi[n]===t)return n},i.getColorByName=function(t){return Lr[t.toLowerCase()]},i.getNameByColor=function(t){var e,n;try{for(var r=fa(Object.entries(Lr)),s=r.next();!s.done;s=r.next()){var o=ya(s.value,2),a=o[0],h=o[1];if(h===t)return a}}catch(l){e={error:l}}finally{try{s&&!s.done&&(n=r.return)&&n.call(r)}finally{if(e)throw e.error}}},i.getNameByIndex=function(t){var e=this.getColorByIndex(t);return this.getNameByColor(e)},i}(),ma=function(i,t){var e=typeof Symbol=="function"&&i[Symbol.iterator];if(!e)return i;var n=e.call(i),r,s=[],o;try{for(;(t===void 0||t-- >0)&&!(r=n.next()).done;)s.push(r.value)}catch(a){o={error:a}}finally{try{r&&!r.done&&(e=n.return)&&e.call(n)}finally{if(o)throw o.error}}return s},k=function(){function i(t,e){t===void 0&&(t=exports.AcCmColorMethod.ByLayer),this._colorMethod=t,this._colorMethod==exports.AcCmColorMethod.ByColor&&e==null?this._value=16777215:this._colorMethod==exports.AcCmColorMethod.ByACI?e==null?this._value=8:e===0?this._colorMethod=exports.AcCmColorMethod.ByBlock:e===256?this._colorMethod=exports.AcCmColorMethod.ByLayer:this._value=Math.max(0,Math.min(e,256)):this._value=e}return Object.defineProperty(i.prototype,"colorMethod",{get:function(){return this._colorMethod},set:function(t){this._colorMethod=t},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"red",{get:function(){var t=this.RGB;return t!=null?t>>16&255:void 0},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"green",{get:function(){var t=this.RGB;return t!=null?t>>8&255:void 0},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"blue",{get:function(){var t=this.RGB;return t!=null?t&255:void 0},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"RGB",{get:function(){switch(this._colorMethod){case exports.AcCmColorMethod.ByColor:case exports.AcCmColorMethod.ByBlock:case exports.AcCmColorMethod.ByLayer:return this._value;case exports.AcCmColorMethod.ByACI:return this._value?Et.getColorByIndex(this._value):this._value;default:return}},enumerable:!1,configurable:!0}),i.prototype.setRGB=function(t,e,n){var r=Math.max(0,Math.min(255,Math.round(t))),s=Math.max(0,Math.min(255,Math.round(e))),o=Math.max(0,Math.min(255,Math.round(n)));return this._value=r<<16|s<<8|o,this._colorMethod=exports.AcCmColorMethod.ByColor,this},i.prototype.setRGBValue=function(t){return t==null||!Number.isFinite(t)?this:(this._value=t&16777215,this._colorMethod=exports.AcCmColorMethod.ByColor,this)},i.prototype.setRGBFromCss=function(t){if(!t)return this;var e=t.trim().toLowerCase();if(e.startsWith("#")){var n=0,r=0,s=0;if(e.length===7)n=parseInt(e.substr(1,2),16),r=parseInt(e.substr(3,2),16),s=parseInt(e.substr(5,2),16);else if(e.length===4)n=parseInt(e[1]+e[1],16),r=parseInt(e[2]+e[2],16),s=parseInt(e[3]+e[3],16);else return this;return this.setRGB(n,r,s)}var o=e.match(/^rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)/);if(o){var n=parseInt(o[1],10),r=parseInt(o[2],10),s=parseInt(o[3],10);return this.setRGB(n,r,s)}var a=Et.getColorByName(t);return a!==void 0?this.setRGBValue(a):this},i.prototype.setScalar=function(t){return this.setRGB(t,t,t)},Object.defineProperty(i.prototype,"hexColor",{get:function(){var t=this.RGB;if(t!=null){var e=t.toString(16).padStart(6,"0").toUpperCase();return"0x"+e}},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"cssColor",{get:function(){var t=this.RGB;if(t!=null)return"rgb(".concat(t>>16&255,",").concat(t>>8&255,",").concat(t&255,")")},enumerable:!1,configurable:!0}),i.prototype.cssColorAlpha=function(t){var e=this.RGB;if(e!=null)return"rgba(".concat(e>>16&255,",").concat(e>>8&255,",").concat(e&255,",").concat(t,")")},Object.defineProperty(i.prototype,"colorIndex",{get:function(){return this._colorMethod===exports.AcCmColorMethod.ByACI?this._value:this._colorMethod===exports.AcCmColorMethod.ByLayer?256:this._colorMethod===exports.AcCmColorMethod.ByBlock?0:void 0},set:function(t){if(t!=null){var e=Math.max(0,Math.min(256,Math.round(t)));e===0?(this._colorMethod=exports.AcCmColorMethod.ByBlock,this._value=void 0):e===256?(this._colorMethod=exports.AcCmColorMethod.ByLayer,this._value=void 0):(this._colorMethod=exports.AcCmColorMethod.ByACI,this._value=e)}},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"isByColor",{get:function(){return this._colorMethod===exports.AcCmColorMethod.ByColor},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"isByACI",{get:function(){return this._colorMethod===exports.AcCmColorMethod.ByACI},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"isForeground",{get:function(){return this._colorMethod===exports.AcCmColorMethod.ByACI&&this._value===7},enumerable:!1,configurable:!0}),i.prototype.setForeground=function(){return this._colorMethod=exports.AcCmColorMethod.ByACI,this._value=7,this},Object.defineProperty(i.prototype,"isByLayer",{get:function(){return this._colorMethod===exports.AcCmColorMethod.ByLayer},enumerable:!1,configurable:!0}),i.prototype.setByLayer=function(t){return this._colorMethod=exports.AcCmColorMethod.ByLayer,t==null?this._value=256:this._value=t,this},Object.defineProperty(i.prototype,"isByBlock",{get:function(){return this._colorMethod===exports.AcCmColorMethod.ByBlock},enumerable:!1,configurable:!0}),i.prototype.setByBlock=function(t){return this._colorMethod=exports.AcCmColorMethod.ByBlock,t==null?this._value=0:this._value=t,this},Object.defineProperty(i.prototype,"colorName",{get:function(){switch(this._colorMethod){case exports.AcCmColorMethod.ByLayer:return"ByLayer";case exports.AcCmColorMethod.ByBlock:return"ByBlock";case exports.AcCmColorMethod.ByColor:return this._value?Et.getNameByColor(this._value):"";case exports.AcCmColorMethod.ByACI:return this._value?Et.getNameByIndex(this._value):"";default:return}},set:function(t){if(t){var e=Et.getColorByName(t);e!==void 0&&(this._value=e,this._colorMethod=exports.AcCmColorMethod.ByColor)}},enumerable:!1,configurable:!0}),i.prototype.clone=function(){var t=new i;return t._colorMethod=this._colorMethod,t._value=this._value,t},i.prototype.copy=function(t){return this._colorMethod=t._colorMethod,this._value=t._value,this},i.prototype.equals=function(t){return this._colorMethod===t._colorMethod&&this._value===t._value},i.prototype.toString=function(){switch(this._colorMethod){case exports.AcCmColorMethod.None:return"None";case exports.AcCmColorMethod.ByLayer:return"ByLayer";case exports.AcCmColorMethod.ByBlock:return"ByBlock";case exports.AcCmColorMethod.ByACI:return this._value!==void 0?String(this._value):"";case exports.AcCmColorMethod.ByColor:return this._value?"RGB:".concat(this.red,",").concat(this.green,",").concat(this.blue):"";default:return""}},i.fromString=function(t){if(t){var e=t.trim();if(/^none$/i.test(e))return new i(exports.AcCmColorMethod.None);if(/^bylayer$/i.test(e))return new i(exports.AcCmColorMethod.ByLayer);if(/^byblock$/i.test(e))return new i(exports.AcCmColorMethod.ByBlock);var n=e.match(/^rgb\s*:\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})$/i);if(n){var r=Number(n[1]),s=Number(n[2]),o=Number(n[3]),a=new i(exports.AcCmColorMethod.ByColor);return a.setRGB(r,s,o),a}if(/^\d{1,3},\d{1,3},\d{1,3}$/.test(e)){var h=ma(e.split(",").map(Number),3),r=h[0],s=h[1],o=h[2],a=new i(exports.AcCmColorMethod.ByColor);return a.setRGB(r,s,o),a}if(/^\d+$/.test(e)){var l=parseInt(e,10);return new i(exports.AcCmColorMethod.ByACI,l)}if(/^book\$/i.test(e)){var c=e.substring(e.indexOf("$")+1),u=Et.getColorByName(c);return u!=null?new i(exports.AcCmColorMethod.ByColor,u):void 0}var g=Et.getColorByName(e);if(g!=null)return new i(exports.AcCmColorMethod.ByColor,g)}},i}(),_a=function(){function i(t,e){t===void 0&&(t=exports.AcCmColorMethod.ByColor),e===void 0&&(e=0),this._colorMethod=t,this._value=e}return Object.defineProperty(i.prototype,"colorMethd",{get:function(){return this._colorMethod},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"red",{get:function(){return this._value>>16&255},set:function(t){this._colorMethod=exports.AcCmColorMethod.ByColor,this._value=this._value&65535|(t&255)<<16},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"green",{get:function(){return this._value>>8&255},set:function(t){this._colorMethod=exports.AcCmColorMethod.ByColor,this._value=this._value&16711935|(t&255)<<8},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"blue",{get:function(){return this._value&255},set:function(t){this._colorMethod=exports.AcCmColorMethod.ByColor,this._value=this._value&16776960|t&255},enumerable:!1,configurable:!0}),i.prototype.setRGB=function(t,e,n){this._colorMethod=exports.AcCmColorMethod.ByColor,this._value=(t&255)<<16|(e&255)<<8|n&255},Object.defineProperty(i.prototype,"colorIndex",{get:function(){return this._value},set:function(t){this._colorMethod=exports.AcCmColorMethod.ByACI,this._value=t},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"layerIndex",{get:function(){return this._value},set:function(t){this._colorMethod=exports.AcCmColorMethod.ByLayer,this._value=t},enumerable:!1,configurable:!0}),i.prototype.isByColor=function(){return this._colorMethod===exports.AcCmColorMethod.ByColor},i.prototype.isByLayer=function(){return this._colorMethod===exports.AcCmColorMethod.ByLayer},i.prototype.isByBlock=function(){return this._colorMethod===exports.AcCmColorMethod.ByBlock},i.prototype.isByACI=function(){return this._colorMethod===exports.AcCmColorMethod.ByACI},i.prototype.isNone=function(){return this._colorMethod===exports.AcCmColorMethod.None},Object.defineProperty(i.prototype,"rawValue",{get:function(){return this._value},set:function(t){this._value=t},enumerable:!1,configurable:!0}),i}(),st={get ILLEGAL_PARAMETERS(){return new ReferenceError("Illegal Parameters")},get ZERO_DIVISION(){return new Error("Zero division")},get UNRESOLVED_BOUNDARY_CONFLICT(){return new Error("Unresolved boundary conflict in boolean operation")},get INFINITE_LOOP(){return new Error("Infinite loop")},get CANNOT_INVOKE_ABSTRACT_METHOD(){return new Error("Abstract method cannot be invoked")},get OPERATION_IS_NOT_SUPPORTED(){return new Error("Operation is not supported")},get NOT_IMPLEMENTED(){return new Error("Not implemented yet")}},wa=function(){function i(){this._listeners={}}return i.prototype.addEventListener=function(t,e){this._listeners===void 0&&(this._listeners={});var n=this._listeners;n[t]===void 0&&(n[t]=[]),n[t].indexOf(e)===-1&&n[t].push(e)},i.prototype.hasEventListener=function(t,e){if(this._listeners===void 0)return!1;var n=this._listeners;return n[t]!==void 0&&n[t].indexOf(e)!==-1},i.prototype.removeEventListener=function(t,e){if(this._listeners!==void 0){var n=this._listeners,r=n[t];if(r!==void 0){var s=r.indexOf(e);s!==-1&&r.splice(s,1)}}},i.prototype.dispatchEvent=function(t){if(this._listeners!==void 0){var e=this._listeners,n=e[t.type];if(n!==void 0){t.target=this;for(var r=n.slice(0),s=0,o=r.length;s<o;s++)r[s].call(this,t)}}},i}(),ba=function(i){var t=typeof Symbol=="function"&&Symbol.iterator,e=t&&i[t],n=0;if(e)return e.call(i);if(i&&typeof i.length=="number")return{next:function(){return i&&n>=i.length&&(i=void 0),{value:i&&i[n++],done:!i}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},xa=function(i,t){var e=typeof Symbol=="function"&&i[Symbol.iterator];if(!e)return i;var n=e.call(i),r,s=[],o;try{for(;(t===void 0||t-- >0)&&!(r=n.next()).done;)s.push(r.value)}catch(a){o={error:a}}finally{try{r&&!r.done&&(e=n.return)&&e.call(n)}finally{if(o)throw o.error}}return s},va=function(i,t,e){if(e||arguments.length===2)for(var n=0,r=t.length,s;n<r;n++)(s||!(n in t))&&(s||(s=Array.prototype.slice.call(t,0,n)),s[n]=t[n]);return i.concat(s||Array.prototype.slice.call(t))},D=function(){function i(){this.listeners=[]}return i.prototype.addEventListener=function(t){this.listeners.push(t)},i.prototype.removeEventListener=function(t){this.listeners=this.listeners.filter(function(e){return e!==t})},i.prototype.replaceEventListener=function(t){this.removeEventListener(t),this.addEventListener(t)},i.prototype.dispatch=function(t){for(var e,n,r=[],s=1;s<arguments.length;s++)r[s-1]=arguments[s];try{for(var o=ba(this.listeners),a=o.next();!a.done;a=o.next()){var h=a.value,l=h;l.call.apply(l,va([null,t],xa(r),!1))}}catch(c){e={error:c}}finally{try{a&&!a.done&&(n=o.return)&&n.call(o)}finally{if(e)throw e.error}}},i}(),Ii=function(){return Ii=Object.assign||function(i){for(var t,e=1,n=arguments.length;e<n;e++){t=arguments[e];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(i[r]=t[r])}return i},Ii.apply(this,arguments)},Pa=function(i,t){var e=typeof Symbol=="function"&&i[Symbol.iterator];if(!e)return i;var n=e.call(i),r,s=[],o;try{for(;(t===void 0||t-- >0)&&!(r=n.next()).done;)s.push(r.value)}catch(a){o={error:a}}finally{try{r&&!r.done&&(e=n.return)&&e.call(n)}finally{if(o)throw o.error}}return s},Aa=function(i,t,e){if(e||arguments.length===2)for(var n=0,r=t.length,s;n<r;n++)(s||!(n in t))&&(s||(s=Array.prototype.slice.call(t,0,n)),s[n]=t[n]);return i.concat(s||Array.prototype.slice.call(t))},Qr=function(i){var t=typeof Symbol=="function"&&Symbol.iterator,e=t&&i[t],n=0;if(e)return e.call(i);if(i&&typeof i.length=="number")return{next:function(){return i&&n>=i.length&&(i=void 0),{value:i&&i[n++],done:!i}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")};function pe(i){return i===null||typeof i!="object"?i:Array.isArray(i)?Aa([],Pa(i),!1):Ii({},i)}function Ti(i){if(i===null||typeof i!="object")return i;if(i instanceof Date)return new Date(i.getTime());if(i instanceof RegExp)return new RegExp(i.source,i.flags);if(Array.isArray(i))return i.map(Ti);var t={};for(var e in i)Object.prototype.hasOwnProperty.call(i,e)&&(t[e]=Ti(i[e]));return t}function Le(i){for(var t,e,n=[],r=1;r<arguments.length;r++)n[r-1]=arguments[r];try{for(var s=Qr(n),o=s.next();!o.done;o=s.next()){var a=o.value;if(a)for(var h in a)Object.prototype.hasOwnProperty.call(a,h)&&i[h]===void 0&&(i[h]=a[h])}}catch(l){t={error:l}}finally{try{o&&!o.done&&(e=s.return)&&e.call(s)}finally{if(t)throw t.error}}return i}function Jr(i,t){return i!=null&&Object.prototype.hasOwnProperty.call(i,t)}function ts(i){return i==null?!0:Array.isArray(i)||typeof i=="string"?i.length===0:i instanceof Map||i instanceof Set?i.size===0:typeof i=="object"?Object.keys(i).length===0:!1}function re(i,t){var e,n;if(i===t)return!0;if(i==null||t==null)return i===t;if(typeof i!=typeof t)return!1;if(typeof i!="object")return i===t;if(Array.isArray(i)!==Array.isArray(t))return!1;if(Array.isArray(i)){if(i.length!==t.length)return!1;for(var r=0;r<i.length;r++)if(!re(i[r],t[r]))return!1;return!0}var s=Object.keys(i),o=Object.keys(t);if(s.length!==o.length)return!1;try{for(var a=Qr(s),h=a.next();!h.done;h=a.next()){var l=h.value;if(!Object.prototype.hasOwnProperty.call(t,l)||!re(i[l],t[l]))return!1}}catch(c){e={error:c}}finally{try{h&&!h.done&&(n=a.return)&&n.call(a)}finally{if(e)throw e.error}}return!0}var Sa=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function La(i){return i&&i.__esModule&&Object.prototype.hasOwnProperty.call(i,"default")?i.default:i}var es={exports:{}};(function(i){(function(t,e){i.exports?i.exports=e():t.log=e()})(Sa,function(){var t=function(){},e="undefined",n=typeof window!==e&&typeof window.navigator!==e&&/Trident\/|MSIE /.test(window.navigator.userAgent),r=["trace","debug","info","warn","error"],s={},o=null;function a(f,y){var m=f[y];if(typeof m.bind=="function")return m.bind(f);try{return Function.prototype.bind.call(m,f)}catch{return function(){return Function.prototype.apply.apply(m,[f,arguments])}}}function h(){console.log&&(console.log.apply||Function.prototype.apply.apply(console.log,[console,arguments]))}function l(f){return f==="debug"&&(f="log"),typeof console===e?!1:f==="trace"&&n?h:console[f]!==void 0?a(console,f):console.log!==void 0?a(console,"log"):t}function c(){for(var f=this.getLevel(),y=0;y<r.length;y++){var m=r[y];this[m]=y<f?t:this.methodFactory(m,f,this.name)}if(this.log=this.debug,typeof console===e&&f<this.levels.SILENT)return"No console available for logging"}function u(f){return function(){typeof console!==e&&(c.call(this),this[f].apply(this,arguments))}}function g(f,y,m){return l(f)||u.apply(this,arguments)}function d(f,y){var m=this,x,S,A,L="loglevel";typeof f=="string"?L+=":"+f:typeof f=="symbol"&&(L=void 0);function T(O){var R=(r[O]||"silent").toUpperCase();if(!(typeof window===e||!L)){try{window.localStorage[L]=R;return}catch{}try{window.document.cookie=encodeURIComponent(L)+"="+R+";"}catch{}}}function M(){var O;if(!(typeof window===e||!L)){try{O=window.localStorage[L]}catch{}if(typeof O===e)try{var R=window.document.cookie,W=encodeURIComponent(L),J=R.indexOf(W+"=");J!==-1&&(O=/^([^;]+)/.exec(R.slice(J+W.length+1))[1])}catch{}return m.levels[O]===void 0&&(O=void 0),O}}function X(){if(!(typeof window===e||!L)){try{window.localStorage.removeItem(L)}catch{}try{window.document.cookie=encodeURIComponent(L)+"=; expires=Thu, 01 Jan 1970 00:00:00 UTC"}catch{}}}function I(O){var R=O;if(typeof R=="string"&&m.levels[R.toUpperCase()]!==void 0&&(R=m.levels[R.toUpperCase()]),typeof R=="number"&&R>=0&&R<=m.levels.SILENT)return R;throw new TypeError("log.setLevel() called with invalid level: "+O)}m.name=f,m.levels={TRACE:0,DEBUG:1,INFO:2,WARN:3,ERROR:4,SILENT:5},m.methodFactory=y||g,m.getLevel=function(){return A??S??x},m.setLevel=function(O,R){return A=I(O),R!==!1&&T(A),c.call(m)},m.setDefaultLevel=function(O){S=I(O),M()||m.setLevel(O,!1)},m.resetLevel=function(){A=null,X(),c.call(m)},m.enableAll=function(O){m.setLevel(m.levels.TRACE,O)},m.disableAll=function(O){m.setLevel(m.levels.SILENT,O)},m.rebuild=function(){if(o!==m&&(x=I(o.getLevel())),c.call(m),o===m)for(var O in s)s[O].rebuild()},x=I(o?o.getLevel():"WARN");var z=M();z!=null&&(A=I(z)),c.call(m)}o=new d,o.getLogger=function(y){if(typeof y!="symbol"&&typeof y!="string"||y==="")throw new TypeError("You must supply a name when creating a logger.");var m=s[y];return m||(m=s[y]=new d(y,o.methodFactory)),m};var p=typeof window!==e?window.log:void 0;return o.noConflict=function(){return typeof window!==e&&window.log===o&&(window.log=p),o},o.getLoggers=function(){return s},o.default=o,o})})(es);var Ea=es.exports;const Ma=La(Ea);var Ia=!0,fe=Ma;fe.setLevel("debug");var Ta=function(i){try{fe.setLevel(i)}catch(t){fe.setLevel("error"),fe.error(t)}},is=function(){function i(t,e){this.events={attrChanged:new D,modelChanged:new D},this._changing=!1,this._previousAttributes={},this._pending=!1;var n=t||{};e&&Le(n,e),this.attributes=n,this.changed={}}return i.prototype.get=function(t){return this.attributes[t]},i.prototype.set=function(t,e,n){if(t==null)return this;var r;typeof t=="object"?(r=t,n=e):(r={},r[t]=e),n||(n={});var s=n.unset,o=n.silent,a=[],h=this._changing;this._changing=!0,h||(this._previousAttributes=pe(this.attributes),this.changed={});var l=this.attributes,c=this.changed,u=this._previousAttributes;for(var g in r)e=r[g],re(l[g],e)||a.push(g),re(u[g],e)?delete c[g]:c[g]=e,s?delete l[g]:l[g]=e;if(!o){a.length&&(this._pending=n);for(var d=0;d<a.length;d++)this.events.attrChanged.dispatch({object:this,attrName:a[d],attrValue:l[a[d]],options:n})}if(h)return this;if(!o)for(;this._pending;)n=this._pending,this._pending=!1,this.events.modelChanged.dispatch({object:this,options:n});return this._pending=!1,this._changing=!1,this},i.prototype.has=function(t){return this.get(t)!=null},i.prototype.hasChanged=function(t){return t==null?!ts(this.changed):Jr(this.changed,t)},i.prototype.changedAttributes=function(t){if(!t)return this.hasChanged()?pe(this.changed):{};var e=this._changing?this._previousAttributes:this.attributes,n={};for(var r in t){var s=t[r];re(e[r],s)||(n[r]=s)}return n},i.prototype.previous=function(t){return t==null||!this._previousAttributes?null:this._previousAttributes[t]},i.prototype.previousAttributes=function(){return pe(this._previousAttributes)},i.prototype.clone=function(){var t=pe(this.attributes);return new i(t)},i}(),Ca=function(i){var t=typeof Symbol=="function"&&Symbol.iterator,e=t&&i[t],n=0;if(e)return e.call(i);if(i&&typeof i.length=="number")return{next:function(){return i&&n>=i.length&&(i=void 0),{value:i&&i[n++],done:!i}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},Oa=function(i,t){var e=typeof Symbol=="function"&&i[Symbol.iterator];if(!e)return i;var n=e.call(i),r,s=[],o;try{for(;(t===void 0||t-- >0)&&!(r=n.next()).done;)s.push(r.value)}catch(a){o={error:a}}finally{try{r&&!r.done&&(e=n.return)&&e.call(n)}finally{if(o)throw o.error}}return s},Pn=function(){function i(){this.entries=new Map}return i.getInstance=function(){return i.instance||(i.instance=new i),i.instance},i.prototype.collect=function(t){this.entries.set(t.name,t)},i.prototype.printAll=function(){var t,e;try{for(var n=Ca(this.entries),r=n.next();!r.done;r=n.next())var s=Oa(r.value,2),o=s[0],a=s[1]}catch(h){t={error:h}}finally{try{r&&!r.done&&(e=n.return)&&e.call(n)}finally{if(t)throw t.error}}},i.prototype.clear=function(){this.entries.clear()},i.prototype.getAll=function(){return Array.from(this.entries.values())},i.prototype.getEntry=function(t){return this.entries.get(t)},i.prototype.remove=function(t){return this.entries.delete(t)},i}(),ka=function(){function i(){}return i.formatBytes=function(t,e){if(e===void 0&&(e=2),t===0)return"0 B";var n=1024,r=Math.max(0,e),s=["B","KB","MB","GB","TB"],o=Math.floor(Math.log(t)/Math.log(n)),a=t/Math.pow(n,o);return"".concat(parseFloat(a.toFixed(r))," ").concat(s[o])},i}();exports.AcCmTransparencyMethod=void 0;(function(i){i[i.ByLayer=0]="ByLayer",i[i.ByBlock=1]="ByBlock",i[i.ByAlpha=2]="ByAlpha",i[i.ErrorValue=3]="ErrorValue"})(exports.AcCmTransparencyMethod||(exports.AcCmTransparencyMethod={}));var U=function(){function i(t){t!==void 0?(this._method=exports.AcCmTransparencyMethod.ByAlpha,this._alpha=i.clampAlpha(t)):(this._method=exports.AcCmTransparencyMethod.ByLayer,this._alpha=255)}return Object.defineProperty(i.prototype,"method",{get:function(){return this._method},set:function(t){this._method=t},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"alpha",{get:function(){return this._alpha},set:function(t){this._alpha=i.clampAlpha(t),this._method=exports.AcCmTransparencyMethod.ByAlpha},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"percentage",{get:function(){if(this._method===exports.AcCmTransparencyMethod.ByAlpha)return Math.round((1-this._alpha/255)*100)},set:function(t){var e=Math.max(0,Math.min(100,t)),n=Math.round(255*(1-e/100));this.alpha=n},enumerable:!1,configurable:!0}),i.clampAlpha=function(t){return Math.max(0,Math.min(255,Math.floor(t)))},Object.defineProperty(i.prototype,"isByAlpha",{get:function(){return this._method===exports.AcCmTransparencyMethod.ByAlpha},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"isByBlock",{get:function(){return this._method===exports.AcCmTransparencyMethod.ByBlock},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"isByLayer",{get:function(){return this._method===exports.AcCmTransparencyMethod.ByLayer},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"isClear",{get:function(){return this.isByAlpha&&this._alpha===0},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"isSolid",{get:function(){return this.isByAlpha&&this._alpha===255},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"isInvalid",{get:function(){return this._method===exports.AcCmTransparencyMethod.ErrorValue},enumerable:!1,configurable:!0}),i.prototype.serialize=function(){var t=this._method;return t<<24|this._alpha},i.prototype.clone=function(){var t=new i;return t._method=this._method,t._alpha=this._alpha,t},i.prototype.equals=function(t){return this._method===t._method&&this._alpha===t._alpha},i.prototype.toString=function(){return this.isByLayer?"ByLayer":this.isByBlock?"ByBlock":this._alpha.toString()},i.fromString=function(t){var e=t.trim(),n=e.toLowerCase();if(n===""||n==="."||n==="use current"||n==="bylayer"){var r=new i;return r._method=exports.AcCmTransparencyMethod.ByLayer,r}if(n==="byblock"){var s=new i;return s._method=exports.AcCmTransparencyMethod.ByBlock,s}var o=Number(e);if(Number.isInteger(o)&&o>=0&&o<=255){var a=new i;return o<=90?a.percentage=o:a.alpha=o,a}var h=new i;return h._method=exports.AcCmTransparencyMethod.ErrorValue,h},i.deserialize=function(t){var e=t>>>24&255,n=t&255,r=e>=exports.AcCmTransparencyMethod.ByLayer&&e<=exports.AcCmTransparencyMethod.ErrorValue?e:exports.AcCmTransparencyMethod.ErrorValue,s=new i;return s._method=r,s._alpha=i.clampAlpha(n),s},i}(),Er=function(i,t,e,n){function r(s){return s instanceof e?s:new e(function(o){o(s)})}return new(e||(e=Promise))(function(s,o){function a(c){try{l(n.next(c))}catch(u){o(u)}}function h(c){try{l(n.throw(c))}catch(u){o(u)}}function l(c){c.done?s(c.value):r(c.value).then(a,h)}l((n=n.apply(i,t||[])).next())})},mi=function(i,t){var e={label:0,sent:function(){if(s[0]&1)throw s[1];return s[1]},trys:[],ops:[]},n,r,s,o;return o={next:a(0),throw:a(1),return:a(2)},typeof Symbol=="function"&&(o[Symbol.iterator]=function(){return this}),o;function a(l){return function(c){return h([l,c])}}function h(l){if(n)throw new TypeError("Generator is already executing.");for(;o&&(o=0,l[0]&&(e=0)),e;)try{if(n=1,r&&(s=l[0]&2?r.return:l[0]?r.throw||((s=r.return)&&s.call(r),0):r.next)&&!(s=s.call(r,l[1])).done)return s;switch(r=0,s&&(l=[l[0]&2,s.value]),l[0]){case 0:case 1:s=l;break;case 4:return e.label++,{value:l[1],done:!1};case 5:e.label++,r=l[1],l=[0];continue;case 7:l=e.ops.pop(),e.trys.pop();continue;default:if(s=e.trys,!(s=s.length>0&&s[s.length-1])&&(l[0]===6||l[0]===2)){e=0;continue}if(l[0]===3&&(!s||l[1]>s[0]&&l[1]<s[3])){e.label=l[1];break}if(l[0]===6&&e.label<s[1]){e.label=s[1],s=l;break}if(s&&e.label<s[2]){e.label=s[2],e.ops.push(l);break}s[2]&&e.ops.pop(),e.trys.pop();continue}l=t.call(i,e)}catch(c){l=[6,c],r=0}finally{n=s=0}if(l[0]&5)throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}},ns=function(){function i(t){this.name=t}return i.prototype.run=function(t){throw new Error("run() must be implemented by subclass")},i}(),rs=function(){function i(){this.tasks=[],this.onProgress=function(){},this.onComplete=function(){},this.onError=function(){return!1}}return i.prototype.scheduleTask=function(t){return new Promise(function(e,n){var r=function(){Promise.resolve(t()).then(e).catch(n)};typeof window<"u"&&typeof window.requestAnimationFrame=="function"?window.requestAnimationFrame(r):setTimeout(r,0)})},i.prototype.addTask=function(t){this.tasks.push(t)},i.prototype.setProgressCallback=function(t){this.onProgress=t},i.prototype.setCompleteCallback=function(t){this.onComplete=t},i.prototype.setErrorCallback=function(t){this.onError=t},i.prototype.run=function(t){return Er(this,void 0,void 0,function(){var e,n,r,s,o,a,h=this;return mi(this,function(l){switch(l.label){case 0:e=this.tasks.length,n=t,r=function(c){var u,g,d;return mi(this,function(p){switch(p.label){case 0:u=s.tasks[c],p.label=1;case 1:return p.trys.push([1,3,,4]),[4,s.scheduleTask(function(){return Er(h,void 0,void 0,function(){var f;return mi(this,function(y){switch(y.label){case 0:return[4,u.run(n)];case 1:return f=y.sent(),this.onProgress((c+1)/e,u),[2,f]}})})})];case 2:return n=p.sent(),[3,4];case 3:return g=p.sent(),d=s.onError({error:g,taskIndex:c,task:u}),d?[2,{value:Promise.reject(g)}]:[3,4];case 4:return[2]}})},s=this,o=0,l.label=1;case 1:return o<e?[5,r(o)]:[3,4];case 2:if(a=l.sent(),typeof a=="object")return[2,a.value];l.label=3;case 3:return o++,[3,1];case 4:return this.onComplete(n),[2]}})})},i}(),ss=function(){function i(t,e,n){this.isLoading=!1,this.itemsLoaded=0,this.itemsTotal=0,this.urlModifier=void 0,this.handlers=[],this.onStart=void 0,this.onLoad=t,this.onProgress=e,this.onError=n}return i.prototype.itemStart=function(t){this.itemsTotal++,this.isLoading===!1&&this.onStart!==void 0&&this.onStart(t,this.itemsLoaded,this.itemsTotal),this.isLoading=!0},i.prototype.itemEnd=function(t){this.itemsLoaded++,this.onProgress!==void 0&&this.onProgress(t,this.itemsLoaded,this.itemsTotal),this.itemsLoaded===this.itemsTotal&&(this.isLoading=!1,this.onLoad!==void 0&&this.onLoad())},i.prototype.itemError=function(t){this.onError!==void 0&&this.onError(t)},i.prototype.resolveURL=function(t){return this.urlModifier?this.urlModifier(t):t},i.prototype.setURLModifier=function(t){return this.urlModifier=t,this},i.prototype.addHandler=function(t,e){return this.handlers.push(t,e),this},i.prototype.removeHandler=function(t){var e=this.handlers.indexOf(t);return e!==-1&&this.handlers.splice(e,2),this},i.prototype.getHandler=function(t){for(var e=0,n=this.handlers.length;e<n;e+=2){var r=this.handlers[e],s=this.handlers[e+1];if(r.global&&(r.lastIndex=0),r.test(t))return s}return null},i}(),os=new ss,Ya=function(){function i(t){this.manager=t!==void 0?t:os,this.crossOrigin="anonymous",this.withCredentials=!1,this.path="",this.resourcePath="",this.requestHeader={}}return i.prototype.loadAsync=function(t,e){var n=this;return new Promise(function(r,s){n.load(t,r,e,s)})},i.prototype.parse=function(t){},i.prototype.setCrossOrigin=function(t){return this.crossOrigin=t,this},i.prototype.setWithCredentials=function(t){return this.withCredentials=t,this},i.prototype.setPath=function(t){return this.path=t,this},i.prototype.setResourcePath=function(t){return this.resourcePath=t,this},i.prototype.setRequestHeader=function(t){return this.requestHeader=t,this},i}();const Mr=[{name:"AC1.2",value:1},{name:"AC1.40",value:2},{name:"AC1.50",value:3},{name:"AC2.20",value:4},{name:"AC2.10",value:5},{name:"AC2.21",value:6},{name:"AC2.22",value:7},{name:"AC1001",value:8},{name:"AC1002",value:9},{name:"AC1003",value:10},{name:"AC1004",value:11},{name:"AC1005",value:12},{name:"AC1006",value:13},{name:"AC1007",value:14},{name:"AC1008",value:15},{name:"AC1009",value:16},{name:"AC1010",value:17},{name:"AC1011",value:18},{name:"AC1012",value:19},{name:"AC1013",value:20},{name:"AC1014",value:21},{name:"AC1500",value:22},{name:"AC1015",value:23},{name:"AC1800a",value:24},{name:"AC1018",value:25},{name:"AC2100a",value:26},{name:"AC1021",value:27},{name:"AC2400a",value:28},{name:"AC1024",value:29},{name:"AC1027",value:31},{name:"AC3200a",value:32},{name:"AC1032",value:33}];class dt{constructor(t){if(typeof t=="string"){const e=Mr.find(n=>n.name===t);if(!e)throw new Error(`Unknown DWG version name: ${t}`);this.name=e.name,this.value=e.value;return}if(typeof t=="number"){const e=Mr.find(n=>n.value===t);if(!e)throw new Error(`Unknown DWG version value: ${t}`);this.name=e.name,this.value=e.value;return}throw new Error("Invalid constructor argument for AcDbDwgVersion")}}class as{constructor(t={}){this._database=t.database,this._precision=Math.max(0,Math.min(16,t.precision??16)),this._version=t.version instanceof dt?t.version:t.version!=null?new dt(t.version):void 0,this._lines=[],this._handleMap=new Map,this._nextHandle=1}get database(){return this._database}set database(t){this._database=t}get precision(){return this._precision}setPrecision(t){return this._precision=Math.max(0,Math.min(16,t)),this}get version(){return this._version}get nextHandle(){return this._nextHandle}setVersion(t){return this._version=t instanceof dt?t:new dt(t),this}toString(){return this._lines.join(`
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});var vn=(i=>(i[i.Invalid=-9999]="Invalid",i[i.Start=0]="Start",i[i.Text=1]="Text",i[i.AttributeTag=2]="AttributeTag",i[i.BlockName=2]="BlockName",i[i.ShapeName=2]="ShapeName",i[i.SymbolTableName=2]="SymbolTableName",i[i.SymbolTableRecordName=2]="SymbolTableRecordName",i[i.MlineStyleName=2]="MlineStyleName",i[i.AttributePrompt=3]="AttributePrompt",i[i.Description=3]="Description",i[i.DimPostString=3]="DimPostString",i[i.DimStyleName=3]="DimStyleName",i[i.LinetypeProse=3]="LinetypeProse",i[i.TextFontFile=3]="TextFontFile",i[i.CLShapeName=4]="CLShapeName",i[i.DimensionAlternativePrefixSuffix=4]="DimensionAlternativePrefixSuffix",i[i.SymbolTableRecordComments=4]="SymbolTableRecordComments",i[i.TextBigFontFile=4]="TextBigFontFile",i[i.Handle=5]="Handle",i[i.DimensionBlock=5]="DimensionBlock",i[i.LinetypeName=6]="LinetypeName",i[i.DimBlk1=6]="DimBlk1",i[i.TextStyleName=7]="TextStyleName",i[i.DimBlk2=7]="DimBlk2",i[i.LayerName=8]="LayerName",i[i.CLShapeText=9]="CLShapeText",i[i.XCoordinate=10]="XCoordinate",i[i.YCoordinate=20]="YCoordinate",i[i.ZCoordinate=30]="ZCoordinate",i[i.Real=40]="Real",i[i.TxtSize=40]="TxtSize",i[i.ViewportHeight=40]="ViewportHeight",i[i.Angle=50]="Angle",i[i.ViewportSnapAngle=50]="ViewportSnapAngle",i[i.Visibility=60]="Visibility",i[i.Int16=70]="Int16",i[i.Int32=90]="Int32",i[i.Int64=160]="Int64",i[i.Int8=280]="Int8",i[i.Thickness=39]="Thickness",i[i.Elevation=38]="Elevation",i[i.LinetypeScale=48]="LinetypeScale",i[i.DashLength=49]="DashLength",i[i.MlineOffset=49]="MlineOffset",i[i.LinetypeElement=49]="LinetypeElement",i[i.NormalX=210]="NormalX",i[i.NormalY=220]="NormalY",i[i.NormalZ=230]="NormalZ",i[i.UcsOrg=110]="UcsOrg",i[i.UcsOrientationX=111]="UcsOrientationX",i[i.UcsOrientationY=112]="UcsOrientationY",i[i.ViewHeight=45]="ViewHeight",i[i.ViewWidth=41]="ViewWidth",i[i.ViewLensLength=42]="ViewLensLength",i[i.ViewFrontClip=43]="ViewFrontClip",i[i.ViewBackClip=44]="ViewBackClip",i[i.ViewBrightness=141]="ViewBrightness",i[i.ViewContrast=142]="ViewContrast",i[i.ViewMode=71]="ViewMode",i[i.ViewportActive=68]="ViewportActive",i[i.ViewportAspect=41]="ViewportAspect",i[i.ViewportGrid=76]="ViewportGrid",i[i.ViewportIcon=74]="ViewportIcon",i[i.ViewportNumber=69]="ViewportNumber",i[i.ViewportSnap=75]="ViewportSnap",i[i.ViewportSnapPair=78]="ViewportSnapPair",i[i.ViewportSnapStyle=77]="ViewportSnapStyle",i[i.ViewportTwist=51]="ViewportTwist",i[i.ViewportVisibility=67]="ViewportVisibility",i[i.ViewportZoom=73]="ViewportZoom",i[i.Color=62]="Color",i[i.ColorRgb=420]="ColorRgb",i[i.ColorName=430]="ColorName",i[i.LineWeight=370]="LineWeight",i[i.PlotStyleNameType=380]="PlotStyleNameType",i[i.PlotStyleNameId=390]="PlotStyleNameId",i[i.GradientObjType=450]="GradientObjType",i[i.GradientAngle=460]="GradientAngle",i[i.GradientName=470]="GradientName",i[i.GradientColCount=453]="GradientColCount",i[i.GradientPatType=451]="GradientPatType",i[i.GradientTintType=452]="GradientTintType",i[i.GradientShift=461]="GradientShift",i[i.GradientColVal=463]="GradientColVal",i[i.GradientTintVal=462]="GradientTintVal",i[i.SoftPointerId=330]="SoftPointerId",i[i.HardPointerId=340]="HardPointerId",i[i.SoftOwnershipId=350]="SoftOwnershipId",i[i.HardOwnershipId=360]="HardOwnershipId",i[i.ArbitraryHandle=320]="ArbitraryHandle",i[i.ExtendedDataAsciiString=1e3]="ExtendedDataAsciiString",i[i.ExtendedDataRegAppName=1001]="ExtendedDataRegAppName",i[i.ExtendedDataControlString=1002]="ExtendedDataControlString",i[i.ExtendedDataLayerName=1003]="ExtendedDataLayerName",i[i.ExtendedDataBinaryChunk=1004]="ExtendedDataBinaryChunk",i[i.ExtendedDataHandle=1005]="ExtendedDataHandle",i[i.ExtendedDataXCoordinate=1010]="ExtendedDataXCoordinate",i[i.ExtendedDataWorldXCoordinate=1011]="ExtendedDataWorldXCoordinate",i[i.ExtendedDataWorldXDisp=1012]="ExtendedDataWorldXDisp",i[i.ExtendedDataWorldXDir=1013]="ExtendedDataWorldXDir",i[i.ExtendedDataYCoordinate=1020]="ExtendedDataYCoordinate",i[i.ExtendedDataWorldYCoordinate=1021]="ExtendedDataWorldYCoordinate",i[i.ExtendedDataWorldYDisp=1022]="ExtendedDataWorldYDisp",i[i.ExtendedDataWorldYDir=1023]="ExtendedDataWorldYDir",i[i.ExtendedDataZCoordinate=1030]="ExtendedDataZCoordinate",i[i.ExtendedDataWorldZCoordinate=1031]="ExtendedDataWorldZCoordinate",i[i.ExtendedDataWorldZDisp=1032]="ExtendedDataWorldZDisp",i[i.ExtendedDataWorldZDir=1033]="ExtendedDataWorldZDir",i[i.ExtendedDataReal=1040]="ExtendedDataReal",i[i.ExtendedDataDist=1041]="ExtendedDataDist",i[i.ExtendedDataScale=1042]="ExtendedDataScale",i[i.ExtendedDataInteger16=1070]="ExtendedDataInteger16",i[i.ExtendedDataInteger32=1071]="ExtendedDataInteger32",i[i.XTextString=300]="XTextString",i[i.XReal=140]="XReal",i[i.XInt16=170]="XInt16",i[i.XXInt16=270]="XXInt16",i[i.Subclass=100]="Subclass",i[i.ControlString=102]="ControlString",i[i.EmbeddedObjectStart=101]="EmbeddedObjectStart",i[i.End=-1]="End",i[i.FirstEntityId=-2]="FirstEntityId",i[i.HeaderId=-2]="HeaderId",i[i.XDataStart=-3]="XDataStart",i[i.Operator=-4]="Operator",i[i.PReactors=-5]="PReactors",i[i.XDictionary=-6]="XDictionary",i))(vn||{});exports.AcCmColorMethod=void 0;(function(i){i[i.ByColor=1]="ByColor",i[i.ByACI=2]="ByACI",i[i.ByLayer=3]="ByLayer",i[i.ByBlock=4]="ByBlock",i[i.None=0]="None"})(exports.AcCmColorMethod||(exports.AcCmColorMethod={}));var fa=function(i){var t=typeof Symbol=="function"&&Symbol.iterator,e=t&&i[t],n=0;if(e)return e.call(i);if(i&&typeof i.length=="number")return{next:function(){return i&&n>=i.length&&(i=void 0),{value:i&&i[n++],done:!i}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},ya=function(i,t){var e=typeof Symbol=="function"&&i[Symbol.iterator];if(!e)return i;var n=e.call(i),r,s=[],o;try{for(;(t===void 0||t-- >0)&&!(r=n.next()).done;)s.push(r.value)}catch(a){o={error:a}}finally{try{r&&!r.done&&(e=n.return)&&e.call(n)}finally{if(o)throw o.error}}return s},Sr={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},mi=[0,16711680,16776960,65280,65535,255,16711935,16777215,8421504,12632256,16711680,16744319,13369344,13395558,10027008,10046540,8323072,8339263,4980736,4990502,16727808,16752511,13382400,13401958,10036736,10051404,8331008,8343359,4985600,4992806,16744192,16760703,13395456,13408614,10046464,10056268,8339200,8347455,4990464,4995366,16760576,16768895,13408512,13415014,10056192,10061132,8347392,8351551,4995328,4997670,16776960,16777087,13421568,13421670,10000384,10000460,8355584,8355647,5000192,5000230,12582656,14679935,10079232,11717734,7510016,8755276,6258432,7307071,3755008,4344870,8388352,12582783,6736896,10079334,5019648,7510092,4161280,6258495,2509824,3755046,4194048,10485631,3394560,8375398,2529280,6264908,2064128,5209919,1264640,3099686,65280,8388479,52224,6736998,38912,5019724,32512,4161343,19456,2509862,65343,8388511,52275,6737023,38950,5019743,32543,4161359,19475,2509871,65407,8388543,52326,6737049,38988,5019762,32575,4161375,19494,2509881,65471,8388575,52377,6737074,39026,5019781,32607,4161391,19513,2509890,65535,8388607,52428,6737100,39064,5019800,32639,4161407,19532,2509900,49151,8380415,39372,6730444,29336,5014936,24447,4157311,14668,2507340,32767,8372223,26316,6724044,19608,5010072,16255,4153215,9804,2505036,16383,8364031,13260,6717388,9880,5005208,8063,4149119,4940,2502476,255,8355839,204,6710988,152,5000344,127,4145023,76,2500172,4129023,10452991,3342540,8349388,2490520,6245528,2031743,5193599,1245260,3089996,8323327,12550143,6684876,10053324,4980888,7490712,4128895,6242175,2490444,3745356,12517631,14647295,10027212,11691724,7471256,8735896,6226047,7290751,3735628,4335180,16711935,16744447,13369548,13395660,9961624,9981080,8323199,8339327,4980812,4990540,16711871,16744415,13369497,13395634,9961586,9981061,8323167,8339311,4980793,4990530,16711807,16744383,13369446,13395609,9961548,9981042,8323135,8339295,4980774,4990521,16711743,16744351,13369395,13395583,9961510,9981023,8323103,8339279,4980755,4990511,3355443,5987163,8684676,11382189,14079702,16777215,0],Et=function(){function i(){}return i.getColorByIndex=function(t){return mi[t]},i.getIndexByColor=function(t){for(var e=mi.length-1,n=1;n<e;++n)if(mi[n]===t)return n},i.getColorByName=function(t){return Sr[t.toLowerCase()]},i.getNameByColor=function(t){var e,n;try{for(var r=fa(Object.entries(Sr)),s=r.next();!s.done;s=r.next()){var o=ya(s.value,2),a=o[0],h=o[1];if(h===t)return a}}catch(l){e={error:l}}finally{try{s&&!s.done&&(n=r.return)&&n.call(r)}finally{if(e)throw e.error}}},i.getNameByIndex=function(t){var e=this.getColorByIndex(t);return this.getNameByColor(e)},i}(),ma=function(i,t){var e=typeof Symbol=="function"&&i[Symbol.iterator];if(!e)return i;var n=e.call(i),r,s=[],o;try{for(;(t===void 0||t-- >0)&&!(r=n.next()).done;)s.push(r.value)}catch(a){o={error:a}}finally{try{r&&!r.done&&(e=n.return)&&e.call(n)}finally{if(o)throw o.error}}return s},k=function(){function i(t,e){t===void 0&&(t=exports.AcCmColorMethod.ByLayer),this._colorMethod=t,this._colorMethod==exports.AcCmColorMethod.ByColor&&e==null?this._value=16777215:this._colorMethod==exports.AcCmColorMethod.ByACI?e==null?this._value=8:e===0?this._colorMethod=exports.AcCmColorMethod.ByBlock:e===256?this._colorMethod=exports.AcCmColorMethod.ByLayer:this._value=Math.max(0,Math.min(e,256)):this._value=e}return Object.defineProperty(i.prototype,"colorMethod",{get:function(){return this._colorMethod},set:function(t){this._colorMethod=t},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"red",{get:function(){var t=this.RGB;return t!=null?t>>16&255:void 0},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"green",{get:function(){var t=this.RGB;return t!=null?t>>8&255:void 0},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"blue",{get:function(){var t=this.RGB;return t!=null?t&255:void 0},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"RGB",{get:function(){switch(this._colorMethod){case exports.AcCmColorMethod.ByColor:case exports.AcCmColorMethod.ByBlock:case exports.AcCmColorMethod.ByLayer:return this._value;case exports.AcCmColorMethod.ByACI:return this._value?Et.getColorByIndex(this._value):this._value;default:return}},enumerable:!1,configurable:!0}),i.prototype.setRGB=function(t,e,n){var r=Math.max(0,Math.min(255,Math.round(t))),s=Math.max(0,Math.min(255,Math.round(e))),o=Math.max(0,Math.min(255,Math.round(n)));return this._value=r<<16|s<<8|o,this._colorMethod=exports.AcCmColorMethod.ByColor,this},i.prototype.setRGBValue=function(t){return t==null||!Number.isFinite(t)?this:(this._value=t&16777215,this._colorMethod=exports.AcCmColorMethod.ByColor,this)},i.prototype.setRGBFromCss=function(t){if(!t)return this;var e=t.trim().toLowerCase();if(e.startsWith("#")){var n=0,r=0,s=0;if(e.length===7)n=parseInt(e.substr(1,2),16),r=parseInt(e.substr(3,2),16),s=parseInt(e.substr(5,2),16);else if(e.length===4)n=parseInt(e[1]+e[1],16),r=parseInt(e[2]+e[2],16),s=parseInt(e[3]+e[3],16);else return this;return this.setRGB(n,r,s)}var o=e.match(/^rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)/);if(o){var n=parseInt(o[1],10),r=parseInt(o[2],10),s=parseInt(o[3],10);return this.setRGB(n,r,s)}var a=Et.getColorByName(t);return a!==void 0?this.setRGBValue(a):this},i.prototype.setScalar=function(t){return this.setRGB(t,t,t)},Object.defineProperty(i.prototype,"hexColor",{get:function(){var t=this.RGB;if(t!=null){var e=t.toString(16).padStart(6,"0").toUpperCase();return"0x"+e}},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"cssColor",{get:function(){var t=this.RGB;if(t!=null)return"rgb(".concat(t>>16&255,",").concat(t>>8&255,",").concat(t&255,")")},enumerable:!1,configurable:!0}),i.prototype.cssColorAlpha=function(t){var e=this.RGB;if(e!=null)return"rgba(".concat(e>>16&255,",").concat(e>>8&255,",").concat(e&255,",").concat(t,")")},Object.defineProperty(i.prototype,"colorIndex",{get:function(){return this._colorMethod===exports.AcCmColorMethod.ByACI?this._value:this._colorMethod===exports.AcCmColorMethod.ByLayer?256:this._colorMethod===exports.AcCmColorMethod.ByBlock?0:void 0},set:function(t){if(t!=null){var e=Math.max(0,Math.min(256,Math.round(t)));e===0?(this._colorMethod=exports.AcCmColorMethod.ByBlock,this._value=void 0):e===256?(this._colorMethod=exports.AcCmColorMethod.ByLayer,this._value=void 0):(this._colorMethod=exports.AcCmColorMethod.ByACI,this._value=e)}},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"isByColor",{get:function(){return this._colorMethod===exports.AcCmColorMethod.ByColor},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"isByACI",{get:function(){return this._colorMethod===exports.AcCmColorMethod.ByACI},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"isForeground",{get:function(){return this._colorMethod===exports.AcCmColorMethod.ByACI&&this._value===7},enumerable:!1,configurable:!0}),i.prototype.setForeground=function(){return this._colorMethod=exports.AcCmColorMethod.ByACI,this._value=7,this},Object.defineProperty(i.prototype,"isByLayer",{get:function(){return this._colorMethod===exports.AcCmColorMethod.ByLayer},enumerable:!1,configurable:!0}),i.prototype.setByLayer=function(t){return this._colorMethod=exports.AcCmColorMethod.ByLayer,t==null?this._value=256:this._value=t,this},Object.defineProperty(i.prototype,"isByBlock",{get:function(){return this._colorMethod===exports.AcCmColorMethod.ByBlock},enumerable:!1,configurable:!0}),i.prototype.setByBlock=function(t){return this._colorMethod=exports.AcCmColorMethod.ByBlock,t==null?this._value=0:this._value=t,this},Object.defineProperty(i.prototype,"colorName",{get:function(){switch(this._colorMethod){case exports.AcCmColorMethod.ByLayer:return"ByLayer";case exports.AcCmColorMethod.ByBlock:return"ByBlock";case exports.AcCmColorMethod.ByColor:return this._value?Et.getNameByColor(this._value):"";case exports.AcCmColorMethod.ByACI:return this._value?Et.getNameByIndex(this._value):"";default:return}},set:function(t){if(t){var e=Et.getColorByName(t);e!==void 0&&(this._value=e,this._colorMethod=exports.AcCmColorMethod.ByColor)}},enumerable:!1,configurable:!0}),i.prototype.clone=function(){var t=new i;return t._colorMethod=this._colorMethod,t._value=this._value,t},i.prototype.copy=function(t){return this._colorMethod=t._colorMethod,this._value=t._value,this},i.prototype.equals=function(t){return this._colorMethod===t._colorMethod&&this._value===t._value},i.prototype.toString=function(){switch(this._colorMethod){case exports.AcCmColorMethod.None:return"None";case exports.AcCmColorMethod.ByLayer:return"ByLayer";case exports.AcCmColorMethod.ByBlock:return"ByBlock";case exports.AcCmColorMethod.ByACI:return this._value!==void 0?String(this._value):"";case exports.AcCmColorMethod.ByColor:return this._value?"RGB:".concat(this.red,",").concat(this.green,",").concat(this.blue):"";default:return""}},i.fromString=function(t){if(t){var e=t.trim();if(/^none$/i.test(e))return new i(exports.AcCmColorMethod.None);if(/^bylayer$/i.test(e))return new i(exports.AcCmColorMethod.ByLayer);if(/^byblock$/i.test(e))return new i(exports.AcCmColorMethod.ByBlock);var n=e.match(/^rgb\s*:\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})$/i);if(n){var r=Number(n[1]),s=Number(n[2]),o=Number(n[3]),a=new i(exports.AcCmColorMethod.ByColor);return a.setRGB(r,s,o),a}if(/^\d{1,3},\d{1,3},\d{1,3}$/.test(e)){var h=ma(e.split(",").map(Number),3),r=h[0],s=h[1],o=h[2],a=new i(exports.AcCmColorMethod.ByColor);return a.setRGB(r,s,o),a}if(/^\d+$/.test(e)){var l=parseInt(e,10);return new i(exports.AcCmColorMethod.ByACI,l)}if(/^book\$/i.test(e)){var c=e.substring(e.indexOf("$")+1),u=Et.getColorByName(c);return u!=null?new i(exports.AcCmColorMethod.ByColor,u):void 0}var g=Et.getColorByName(e);if(g!=null)return new i(exports.AcCmColorMethod.ByColor,g)}},i}(),_a=function(){function i(t,e){t===void 0&&(t=exports.AcCmColorMethod.ByColor),e===void 0&&(e=0),this._colorMethod=t,this._value=e}return Object.defineProperty(i.prototype,"colorMethd",{get:function(){return this._colorMethod},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"red",{get:function(){return this._value>>16&255},set:function(t){this._colorMethod=exports.AcCmColorMethod.ByColor,this._value=this._value&65535|(t&255)<<16},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"green",{get:function(){return this._value>>8&255},set:function(t){this._colorMethod=exports.AcCmColorMethod.ByColor,this._value=this._value&16711935|(t&255)<<8},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"blue",{get:function(){return this._value&255},set:function(t){this._colorMethod=exports.AcCmColorMethod.ByColor,this._value=this._value&16776960|t&255},enumerable:!1,configurable:!0}),i.prototype.setRGB=function(t,e,n){this._colorMethod=exports.AcCmColorMethod.ByColor,this._value=(t&255)<<16|(e&255)<<8|n&255},Object.defineProperty(i.prototype,"colorIndex",{get:function(){return this._value},set:function(t){this._colorMethod=exports.AcCmColorMethod.ByACI,this._value=t},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"layerIndex",{get:function(){return this._value},set:function(t){this._colorMethod=exports.AcCmColorMethod.ByLayer,this._value=t},enumerable:!1,configurable:!0}),i.prototype.isByColor=function(){return this._colorMethod===exports.AcCmColorMethod.ByColor},i.prototype.isByLayer=function(){return this._colorMethod===exports.AcCmColorMethod.ByLayer},i.prototype.isByBlock=function(){return this._colorMethod===exports.AcCmColorMethod.ByBlock},i.prototype.isByACI=function(){return this._colorMethod===exports.AcCmColorMethod.ByACI},i.prototype.isNone=function(){return this._colorMethod===exports.AcCmColorMethod.None},Object.defineProperty(i.prototype,"rawValue",{get:function(){return this._value},set:function(t){this._value=t},enumerable:!1,configurable:!0}),i}(),st={get ILLEGAL_PARAMETERS(){return new ReferenceError("Illegal Parameters")},get ZERO_DIVISION(){return new Error("Zero division")},get UNRESOLVED_BOUNDARY_CONFLICT(){return new Error("Unresolved boundary conflict in boolean operation")},get INFINITE_LOOP(){return new Error("Infinite loop")},get CANNOT_INVOKE_ABSTRACT_METHOD(){return new Error("Abstract method cannot be invoked")},get OPERATION_IS_NOT_SUPPORTED(){return new Error("Operation is not supported")},get NOT_IMPLEMENTED(){return new Error("Not implemented yet")}},wa=function(){function i(){this._listeners={}}return i.prototype.addEventListener=function(t,e){this._listeners===void 0&&(this._listeners={});var n=this._listeners;n[t]===void 0&&(n[t]=[]),n[t].indexOf(e)===-1&&n[t].push(e)},i.prototype.hasEventListener=function(t,e){if(this._listeners===void 0)return!1;var n=this._listeners;return n[t]!==void 0&&n[t].indexOf(e)!==-1},i.prototype.removeEventListener=function(t,e){if(this._listeners!==void 0){var n=this._listeners,r=n[t];if(r!==void 0){var s=r.indexOf(e);s!==-1&&r.splice(s,1)}}},i.prototype.dispatchEvent=function(t){if(this._listeners!==void 0){var e=this._listeners,n=e[t.type];if(n!==void 0){t.target=this;for(var r=n.slice(0),s=0,o=r.length;s<o;s++)r[s].call(this,t)}}},i}(),ba=function(i){var t=typeof Symbol=="function"&&Symbol.iterator,e=t&&i[t],n=0;if(e)return e.call(i);if(i&&typeof i.length=="number")return{next:function(){return i&&n>=i.length&&(i=void 0),{value:i&&i[n++],done:!i}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},xa=function(i,t){var e=typeof Symbol=="function"&&i[Symbol.iterator];if(!e)return i;var n=e.call(i),r,s=[],o;try{for(;(t===void 0||t-- >0)&&!(r=n.next()).done;)s.push(r.value)}catch(a){o={error:a}}finally{try{r&&!r.done&&(e=n.return)&&e.call(n)}finally{if(o)throw o.error}}return s},va=function(i,t,e){if(e||arguments.length===2)for(var n=0,r=t.length,s;n<r;n++)(s||!(n in t))&&(s||(s=Array.prototype.slice.call(t,0,n)),s[n]=t[n]);return i.concat(s||Array.prototype.slice.call(t))},D=function(){function i(){this.listeners=[]}return i.prototype.addEventListener=function(t){this.listeners.push(t)},i.prototype.removeEventListener=function(t){this.listeners=this.listeners.filter(function(e){return e!==t})},i.prototype.replaceEventListener=function(t){this.removeEventListener(t),this.addEventListener(t)},i.prototype.dispatch=function(t){for(var e,n,r=[],s=1;s<arguments.length;s++)r[s-1]=arguments[s];try{for(var o=ba(this.listeners),a=o.next();!a.done;a=o.next()){var h=a.value,l=h;l.call.apply(l,va([null,t],xa(r),!1))}}catch(c){e={error:c}}finally{try{a&&!a.done&&(n=o.return)&&n.call(o)}finally{if(e)throw e.error}}},i}(),Ti=function(){return Ti=Object.assign||function(i){for(var t,e=1,n=arguments.length;e<n;e++){t=arguments[e];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(i[r]=t[r])}return i},Ti.apply(this,arguments)},Pa=function(i,t){var e=typeof Symbol=="function"&&i[Symbol.iterator];if(!e)return i;var n=e.call(i),r,s=[],o;try{for(;(t===void 0||t-- >0)&&!(r=n.next()).done;)s.push(r.value)}catch(a){o={error:a}}finally{try{r&&!r.done&&(e=n.return)&&e.call(n)}finally{if(o)throw o.error}}return s},Aa=function(i,t,e){if(e||arguments.length===2)for(var n=0,r=t.length,s;n<r;n++)(s||!(n in t))&&(s||(s=Array.prototype.slice.call(t,0,n)),s[n]=t[n]);return i.concat(s||Array.prototype.slice.call(t))},Kr=function(i){var t=typeof Symbol=="function"&&Symbol.iterator,e=t&&i[t],n=0;if(e)return e.call(i);if(i&&typeof i.length=="number")return{next:function(){return i&&n>=i.length&&(i=void 0),{value:i&&i[n++],done:!i}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")};function pe(i){return i===null||typeof i!="object"?i:Array.isArray(i)?Aa([],Pa(i),!1):Ti({},i)}function Ci(i){if(i===null||typeof i!="object")return i;if(i instanceof Date)return new Date(i.getTime());if(i instanceof RegExp)return new RegExp(i.source,i.flags);if(Array.isArray(i))return i.map(Ci);var t={};for(var e in i)Object.prototype.hasOwnProperty.call(i,e)&&(t[e]=Ci(i[e]));return t}function Ee(i){for(var t,e,n=[],r=1;r<arguments.length;r++)n[r-1]=arguments[r];try{for(var s=Kr(n),o=s.next();!o.done;o=s.next()){var a=o.value;if(a)for(var h in a)Object.prototype.hasOwnProperty.call(a,h)&&i[h]===void 0&&(i[h]=a[h])}}catch(l){t={error:l}}finally{try{o&&!o.done&&(e=s.return)&&e.call(s)}finally{if(t)throw t.error}}return i}function Qr(i,t){return i!=null&&Object.prototype.hasOwnProperty.call(i,t)}function Jr(i){return i==null?!0:Array.isArray(i)||typeof i=="string"?i.length===0:i instanceof Map||i instanceof Set?i.size===0:typeof i=="object"?Object.keys(i).length===0:!1}function re(i,t){var e,n;if(i===t)return!0;if(i==null||t==null)return i===t;if(typeof i!=typeof t)return!1;if(typeof i!="object")return i===t;if(Array.isArray(i)!==Array.isArray(t))return!1;if(Array.isArray(i)){if(i.length!==t.length)return!1;for(var r=0;r<i.length;r++)if(!re(i[r],t[r]))return!1;return!0}var s=Object.keys(i),o=Object.keys(t);if(s.length!==o.length)return!1;try{for(var a=Kr(s),h=a.next();!h.done;h=a.next()){var l=h.value;if(!Object.prototype.hasOwnProperty.call(t,l)||!re(i[l],t[l]))return!1}}catch(c){e={error:c}}finally{try{h&&!h.done&&(n=a.return)&&n.call(a)}finally{if(e)throw e.error}}return!0}var Sa=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function La(i){return i&&i.__esModule&&Object.prototype.hasOwnProperty.call(i,"default")?i.default:i}var ts={exports:{}};(function(i){(function(t,e){i.exports?i.exports=e():t.log=e()})(Sa,function(){var t=function(){},e="undefined",n=typeof window!==e&&typeof window.navigator!==e&&/Trident\/|MSIE /.test(window.navigator.userAgent),r=["trace","debug","info","warn","error"],s={},o=null;function a(f,y){var m=f[y];if(typeof m.bind=="function")return m.bind(f);try{return Function.prototype.bind.call(m,f)}catch{return function(){return Function.prototype.apply.apply(m,[f,arguments])}}}function h(){console.log&&(console.log.apply||Function.prototype.apply.apply(console.log,[console,arguments]))}function l(f){return f==="debug"&&(f="log"),typeof console===e?!1:f==="trace"&&n?h:console[f]!==void 0?a(console,f):console.log!==void 0?a(console,"log"):t}function c(){for(var f=this.getLevel(),y=0;y<r.length;y++){var m=r[y];this[m]=y<f?t:this.methodFactory(m,f,this.name)}if(this.log=this.debug,typeof console===e&&f<this.levels.SILENT)return"No console available for logging"}function u(f){return function(){typeof console!==e&&(c.call(this),this[f].apply(this,arguments))}}function g(f,y,m){return l(f)||u.apply(this,arguments)}function d(f,y){var m=this,x,S,A,L="loglevel";typeof f=="string"?L+=":"+f:typeof f=="symbol"&&(L=void 0);function T(O){var R=(r[O]||"silent").toUpperCase();if(!(typeof window===e||!L)){try{window.localStorage[L]=R;return}catch{}try{window.document.cookie=encodeURIComponent(L)+"="+R+";"}catch{}}}function M(){var O;if(!(typeof window===e||!L)){try{O=window.localStorage[L]}catch{}if(typeof O===e)try{var R=window.document.cookie,W=encodeURIComponent(L),J=R.indexOf(W+"=");J!==-1&&(O=/^([^;]+)/.exec(R.slice(J+W.length+1))[1])}catch{}return m.levels[O]===void 0&&(O=void 0),O}}function X(){if(!(typeof window===e||!L)){try{window.localStorage.removeItem(L)}catch{}try{window.document.cookie=encodeURIComponent(L)+"=; expires=Thu, 01 Jan 1970 00:00:00 UTC"}catch{}}}function I(O){var R=O;if(typeof R=="string"&&m.levels[R.toUpperCase()]!==void 0&&(R=m.levels[R.toUpperCase()]),typeof R=="number"&&R>=0&&R<=m.levels.SILENT)return R;throw new TypeError("log.setLevel() called with invalid level: "+O)}m.name=f,m.levels={TRACE:0,DEBUG:1,INFO:2,WARN:3,ERROR:4,SILENT:5},m.methodFactory=y||g,m.getLevel=function(){return A??S??x},m.setLevel=function(O,R){return A=I(O),R!==!1&&T(A),c.call(m)},m.setDefaultLevel=function(O){S=I(O),M()||m.setLevel(O,!1)},m.resetLevel=function(){A=null,X(),c.call(m)},m.enableAll=function(O){m.setLevel(m.levels.TRACE,O)},m.disableAll=function(O){m.setLevel(m.levels.SILENT,O)},m.rebuild=function(){if(o!==m&&(x=I(o.getLevel())),c.call(m),o===m)for(var O in s)s[O].rebuild()},x=I(o?o.getLevel():"WARN");var z=M();z!=null&&(A=I(z)),c.call(m)}o=new d,o.getLogger=function(y){if(typeof y!="symbol"&&typeof y!="string"||y==="")throw new TypeError("You must supply a name when creating a logger.");var m=s[y];return m||(m=s[y]=new d(y,o.methodFactory)),m};var p=typeof window!==e?window.log:void 0;return o.noConflict=function(){return typeof window!==e&&window.log===o&&(window.log=p),o},o.getLoggers=function(){return s},o.default=o,o})})(ts);var Ea=ts.exports;const Ma=La(Ea);var Ia=!0,fe=Ma;fe.setLevel("debug");var Ta=function(i){try{fe.setLevel(i)}catch(t){fe.setLevel("error"),fe.error(t)}},es=function(){function i(t,e){this.events={attrChanged:new D,modelChanged:new D},this._changing=!1,this._previousAttributes={},this._pending=!1;var n=t||{};e&&Ee(n,e),this.attributes=n,this.changed={}}return i.prototype.get=function(t){return this.attributes[t]},i.prototype.set=function(t,e,n){if(t==null)return this;var r;typeof t=="object"?(r=t,n=e):(r={},r[t]=e),n||(n={});var s=n.unset,o=n.silent,a=[],h=this._changing;this._changing=!0,h||(this._previousAttributes=pe(this.attributes),this.changed={});var l=this.attributes,c=this.changed,u=this._previousAttributes;for(var g in r)e=r[g],re(l[g],e)||a.push(g),re(u[g],e)?delete c[g]:c[g]=e,s?delete l[g]:l[g]=e;if(!o){a.length&&(this._pending=n);for(var d=0;d<a.length;d++)this.events.attrChanged.dispatch({object:this,attrName:a[d],attrValue:l[a[d]],options:n})}if(h)return this;if(!o)for(;this._pending;)n=this._pending,this._pending=!1,this.events.modelChanged.dispatch({object:this,options:n});return this._pending=!1,this._changing=!1,this},i.prototype.has=function(t){return this.get(t)!=null},i.prototype.hasChanged=function(t){return t==null?!Jr(this.changed):Qr(this.changed,t)},i.prototype.changedAttributes=function(t){if(!t)return this.hasChanged()?pe(this.changed):{};var e=this._changing?this._previousAttributes:this.attributes,n={};for(var r in t){var s=t[r];re(e[r],s)||(n[r]=s)}return n},i.prototype.previous=function(t){return t==null||!this._previousAttributes?null:this._previousAttributes[t]},i.prototype.previousAttributes=function(){return pe(this._previousAttributes)},i.prototype.clone=function(){var t=pe(this.attributes);return new i(t)},i}(),Ca=function(i){var t=typeof Symbol=="function"&&Symbol.iterator,e=t&&i[t],n=0;if(e)return e.call(i);if(i&&typeof i.length=="number")return{next:function(){return i&&n>=i.length&&(i=void 0),{value:i&&i[n++],done:!i}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},Oa=function(i,t){var e=typeof Symbol=="function"&&i[Symbol.iterator];if(!e)return i;var n=e.call(i),r,s=[],o;try{for(;(t===void 0||t-- >0)&&!(r=n.next()).done;)s.push(r.value)}catch(a){o={error:a}}finally{try{r&&!r.done&&(e=n.return)&&e.call(n)}finally{if(o)throw o.error}}return s},Pn=function(){function i(){this.entries=new Map}return i.getInstance=function(){return i.instance||(i.instance=new i),i.instance},i.prototype.collect=function(t){this.entries.set(t.name,t)},i.prototype.printAll=function(){var t,e;try{for(var n=Ca(this.entries),r=n.next();!r.done;r=n.next())var s=Oa(r.value,2),o=s[0],a=s[1]}catch(h){t={error:h}}finally{try{r&&!r.done&&(e=n.return)&&e.call(n)}finally{if(t)throw t.error}}},i.prototype.clear=function(){this.entries.clear()},i.prototype.getAll=function(){return Array.from(this.entries.values())},i.prototype.getEntry=function(t){return this.entries.get(t)},i.prototype.remove=function(t){return this.entries.delete(t)},i}(),ka=function(){function i(){}return i.formatBytes=function(t,e){if(e===void 0&&(e=2),t===0)return"0 B";var n=1024,r=Math.max(0,e),s=["B","KB","MB","GB","TB"],o=Math.floor(Math.log(t)/Math.log(n)),a=t/Math.pow(n,o);return"".concat(parseFloat(a.toFixed(r))," ").concat(s[o])},i}();exports.AcCmTransparencyMethod=void 0;(function(i){i[i.ByLayer=0]="ByLayer",i[i.ByBlock=1]="ByBlock",i[i.ByAlpha=2]="ByAlpha",i[i.ErrorValue=3]="ErrorValue"})(exports.AcCmTransparencyMethod||(exports.AcCmTransparencyMethod={}));var U=function(){function i(t){t!==void 0?(this._method=exports.AcCmTransparencyMethod.ByAlpha,this._alpha=i.clampAlpha(t)):(this._method=exports.AcCmTransparencyMethod.ByLayer,this._alpha=255)}return Object.defineProperty(i.prototype,"method",{get:function(){return this._method},set:function(t){this._method=t},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"alpha",{get:function(){return this._alpha},set:function(t){this._alpha=i.clampAlpha(t),this._method=exports.AcCmTransparencyMethod.ByAlpha},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"percentage",{get:function(){if(this._method===exports.AcCmTransparencyMethod.ByAlpha)return Math.round((1-this._alpha/255)*100)},set:function(t){var e=Math.max(0,Math.min(100,t)),n=Math.round(255*(1-e/100));this.alpha=n},enumerable:!1,configurable:!0}),i.clampAlpha=function(t){return Math.max(0,Math.min(255,Math.floor(t)))},Object.defineProperty(i.prototype,"isByAlpha",{get:function(){return this._method===exports.AcCmTransparencyMethod.ByAlpha},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"isByBlock",{get:function(){return this._method===exports.AcCmTransparencyMethod.ByBlock},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"isByLayer",{get:function(){return this._method===exports.AcCmTransparencyMethod.ByLayer},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"isClear",{get:function(){return this.isByAlpha&&this._alpha===0},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"isSolid",{get:function(){return this.isByAlpha&&this._alpha===255},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"isInvalid",{get:function(){return this._method===exports.AcCmTransparencyMethod.ErrorValue},enumerable:!1,configurable:!0}),i.prototype.serialize=function(){var t=this._method;return t<<24|this._alpha},i.prototype.clone=function(){var t=new i;return t._method=this._method,t._alpha=this._alpha,t},i.prototype.equals=function(t){return this._method===t._method&&this._alpha===t._alpha},i.prototype.toString=function(){return this.isByLayer?"ByLayer":this.isByBlock?"ByBlock":this._alpha.toString()},i.fromString=function(t){var e=t.trim(),n=e.toLowerCase();if(n===""||n==="."||n==="use current"||n==="bylayer"){var r=new i;return r._method=exports.AcCmTransparencyMethod.ByLayer,r}if(n==="byblock"){var s=new i;return s._method=exports.AcCmTransparencyMethod.ByBlock,s}var o=Number(e);if(Number.isInteger(o)&&o>=0&&o<=255){var a=new i;return o<=90?a.percentage=o:a.alpha=o,a}var h=new i;return h._method=exports.AcCmTransparencyMethod.ErrorValue,h},i.deserialize=function(t){var e=t>>>24&255,n=t&255,r=e>=exports.AcCmTransparencyMethod.ByLayer&&e<=exports.AcCmTransparencyMethod.ErrorValue?e:exports.AcCmTransparencyMethod.ErrorValue,s=new i;return s._method=r,s._alpha=i.clampAlpha(n),s},i}(),Lr=function(i,t,e,n){function r(s){return s instanceof e?s:new e(function(o){o(s)})}return new(e||(e=Promise))(function(s,o){function a(c){try{l(n.next(c))}catch(u){o(u)}}function h(c){try{l(n.throw(c))}catch(u){o(u)}}function l(c){c.done?s(c.value):r(c.value).then(a,h)}l((n=n.apply(i,t||[])).next())})},_i=function(i,t){var e={label:0,sent:function(){if(s[0]&1)throw s[1];return s[1]},trys:[],ops:[]},n,r,s,o;return o={next:a(0),throw:a(1),return:a(2)},typeof Symbol=="function"&&(o[Symbol.iterator]=function(){return this}),o;function a(l){return function(c){return h([l,c])}}function h(l){if(n)throw new TypeError("Generator is already executing.");for(;o&&(o=0,l[0]&&(e=0)),e;)try{if(n=1,r&&(s=l[0]&2?r.return:l[0]?r.throw||((s=r.return)&&s.call(r),0):r.next)&&!(s=s.call(r,l[1])).done)return s;switch(r=0,s&&(l=[l[0]&2,s.value]),l[0]){case 0:case 1:s=l;break;case 4:return e.label++,{value:l[1],done:!1};case 5:e.label++,r=l[1],l=[0];continue;case 7:l=e.ops.pop(),e.trys.pop();continue;default:if(s=e.trys,!(s=s.length>0&&s[s.length-1])&&(l[0]===6||l[0]===2)){e=0;continue}if(l[0]===3&&(!s||l[1]>s[0]&&l[1]<s[3])){e.label=l[1];break}if(l[0]===6&&e.label<s[1]){e.label=s[1],s=l;break}if(s&&e.label<s[2]){e.label=s[2],e.ops.push(l);break}s[2]&&e.ops.pop(),e.trys.pop();continue}l=t.call(i,e)}catch(c){l=[6,c],r=0}finally{n=s=0}if(l[0]&5)throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}},is=function(){function i(t){this.name=t}return i.prototype.run=function(t){throw new Error("run() must be implemented by subclass")},i}(),ns=function(){function i(){this.tasks=[],this.onProgress=function(){},this.onComplete=function(){},this.onError=function(){return!1}}return i.prototype.scheduleTask=function(t){return new Promise(function(e,n){var r=function(){Promise.resolve(t()).then(e).catch(n)};typeof window<"u"&&typeof window.requestAnimationFrame=="function"?window.requestAnimationFrame(r):setTimeout(r,0)})},i.prototype.addTask=function(t){this.tasks.push(t)},i.prototype.setProgressCallback=function(t){this.onProgress=t},i.prototype.setCompleteCallback=function(t){this.onComplete=t},i.prototype.setErrorCallback=function(t){this.onError=t},i.prototype.run=function(t){return Lr(this,void 0,void 0,function(){var e,n,r,s,o,a,h=this;return _i(this,function(l){switch(l.label){case 0:e=this.tasks.length,n=t,r=function(c){var u,g,d;return _i(this,function(p){switch(p.label){case 0:u=s.tasks[c],p.label=1;case 1:return p.trys.push([1,3,,4]),[4,s.scheduleTask(function(){return Lr(h,void 0,void 0,function(){var f;return _i(this,function(y){switch(y.label){case 0:return[4,u.run(n)];case 1:return f=y.sent(),this.onProgress((c+1)/e,u),[2,f]}})})})];case 2:return n=p.sent(),[3,4];case 3:return g=p.sent(),d=s.onError({error:g,taskIndex:c,task:u}),d?[2,{value:Promise.reject(g)}]:[3,4];case 4:return[2]}})},s=this,o=0,l.label=1;case 1:return o<e?[5,r(o)]:[3,4];case 2:if(a=l.sent(),typeof a=="object")return[2,a.value];l.label=3;case 3:return o++,[3,1];case 4:return this.onComplete(n),[2]}})})},i}(),rs=function(){function i(t,e,n){this.isLoading=!1,this.itemsLoaded=0,this.itemsTotal=0,this.urlModifier=void 0,this.handlers=[],this.onStart=void 0,this.onLoad=t,this.onProgress=e,this.onError=n}return i.prototype.itemStart=function(t){this.itemsTotal++,this.isLoading===!1&&this.onStart!==void 0&&this.onStart(t,this.itemsLoaded,this.itemsTotal),this.isLoading=!0},i.prototype.itemEnd=function(t){this.itemsLoaded++,this.onProgress!==void 0&&this.onProgress(t,this.itemsLoaded,this.itemsTotal),this.itemsLoaded===this.itemsTotal&&(this.isLoading=!1,this.onLoad!==void 0&&this.onLoad())},i.prototype.itemError=function(t){this.onError!==void 0&&this.onError(t)},i.prototype.resolveURL=function(t){return this.urlModifier?this.urlModifier(t):t},i.prototype.setURLModifier=function(t){return this.urlModifier=t,this},i.prototype.addHandler=function(t,e){return this.handlers.push(t,e),this},i.prototype.removeHandler=function(t){var e=this.handlers.indexOf(t);return e!==-1&&this.handlers.splice(e,2),this},i.prototype.getHandler=function(t){for(var e=0,n=this.handlers.length;e<n;e+=2){var r=this.handlers[e],s=this.handlers[e+1];if(r.global&&(r.lastIndex=0),r.test(t))return s}return null},i}(),ss=new rs,Ya=function(){function i(t){this.manager=t!==void 0?t:ss,this.crossOrigin="anonymous",this.withCredentials=!1,this.path="",this.resourcePath="",this.requestHeader={}}return i.prototype.loadAsync=function(t,e){var n=this;return new Promise(function(r,s){n.load(t,r,e,s)})},i.prototype.parse=function(t){},i.prototype.setCrossOrigin=function(t){return this.crossOrigin=t,this},i.prototype.setWithCredentials=function(t){return this.withCredentials=t,this},i.prototype.setPath=function(t){return this.path=t,this},i.prototype.setResourcePath=function(t){return this.resourcePath=t,this},i.prototype.setRequestHeader=function(t){return this.requestHeader=t,this},i}();const Er=[{name:"AC1.2",value:1},{name:"AC1.40",value:2},{name:"AC1.50",value:3},{name:"AC2.20",value:4},{name:"AC2.10",value:5},{name:"AC2.21",value:6},{name:"AC2.22",value:7},{name:"AC1001",value:8},{name:"AC1002",value:9},{name:"AC1003",value:10},{name:"AC1004",value:11},{name:"AC1005",value:12},{name:"AC1006",value:13},{name:"AC1007",value:14},{name:"AC1008",value:15},{name:"AC1009",value:16},{name:"AC1010",value:17},{name:"AC1011",value:18},{name:"AC1012",value:19},{name:"AC1013",value:20},{name:"AC1014",value:21},{name:"AC1500",value:22},{name:"AC1015",value:23},{name:"AC1800a",value:24},{name:"AC1018",value:25},{name:"AC2100a",value:26},{name:"AC1021",value:27},{name:"AC2400a",value:28},{name:"AC1024",value:29},{name:"AC1027",value:31},{name:"AC3200a",value:32},{name:"AC1032",value:33}];class dt{constructor(t){if(typeof t=="string"){const e=Er.find(n=>n.name===t);if(!e)throw new Error(`Unknown DWG version name: ${t}`);this.name=e.name,this.value=e.value;return}if(typeof t=="number"){const e=Er.find(n=>n.value===t);if(!e)throw new Error(`Unknown DWG version value: ${t}`);this.name=e.name,this.value=e.value;return}throw new Error("Invalid constructor argument for AcDbDwgVersion")}}class os{constructor(t={}){this._database=t.database,this._precision=Math.max(0,Math.min(16,t.precision??16)),this._version=t.version instanceof dt?t.version:t.version!=null?new dt(t.version):void 0,this._lines=[],this._handleMap=new Map,this._nextHandle=1}get database(){return this._database}set database(t){this._database=t}get precision(){return this._precision}setPrecision(t){return this._precision=Math.max(0,Math.min(16,t)),this}get version(){return this._version}get nextHandle(){return this._nextHandle}setVersion(t){return this._version=t instanceof dt?t:new dt(t),this}toString(){return this._lines.join(`
|
|
2
2
|
`)+`
|
|
3
|
-
`}registerHandle(t){return this._handleMap.has(t)||(/^[0-9A-F]+$/i.test(t)?this._handleMap.set(t,t.toUpperCase()):(this._handleMap.set(t,this._nextHandle.toString(16).toUpperCase()),this._nextHandle+=1)),this._handleMap.get(t)}resolveHandle(t){if(t)return this.registerHandle(t)}writeGroup(t,e){if(e==null)return this;this._lines.push(String(Math.trunc(t)));const n=this.formatValue(e);return this._lines.push(n===""?"0":n),this}writeStart(t){return this.writeString(0,t)}writeSubclassMarker(t){return this.writeString(100,t)}writeString(t,e){return!e&&e!==""?this:this.writeGroup(t,e)}writeInt8(t,e){return e==null?this:this.writeGroup(t,Math.trunc(e))}writeInt16(t,e){return e==null?this:this.writeGroup(t,Math.trunc(e))}writeInt32(t,e){return e==null?this:this.writeGroup(t,Math.trunc(e))}writeInt64(t,e){return e==null?this:this.writeGroup(t,Math.trunc(e))}writeUInt16(t,e){return e==null?this:this.writeGroup(t,Math.max(0,e))}writeUInt32(t,e){return e==null?this:this.writeGroup(t,Math.max(0,e))}writeBoolean(t,e){return e==null?this:this.writeGroup(t,e?1:0)}writeBool(t,e){return this.writeBoolean(t,e)}writeDouble(t,e){return e==null||!Number.isFinite(e)?this:this.writeGroup(t,e)}writeAngle(t,e){return e==null||!Number.isFinite(e)?this:this.writeDouble(t,e*180/Math.PI)}writeHandle(t,e){const n=this.resolveHandle(e);return n?this.writeString(t,n):this}writeObjectId(t,e){return this.writeHandle(t,e)}writePoint2d(t,e){return e?(this.writeDouble(t,e.x),this.writeDouble(t+10,e.y),this):this}writePoint3d(t,e){return e?(this.writeDouble(t,e.x),this.writeDouble(t+10,e.y),this.writeDouble(t+20,e.z??0),this):this}writeVector3d(t,e){return e?(this.writeDouble(t,e.x),this.writeDouble(t+10,e.y),this.writeDouble(t+20,e.z??0),this):this}writeCmColor(t,e=62,n=420){if(!t)return this;const r=t.colorIndex;r!=null&&this.writeInt16(e,r);const s=t.RGB;return s!=null&&t.colorIndex==null&&this.writeInt32(n,s),this}writeTransparency(t,e=440){return!t||t.method===exports.AcCmTransparencyMethod.ErrorValue?this:this.writeInt32(e,t.serialize())}writeResultBuffer(t){if(!t)return this;for(const e of t)this.writeGroup(e.code,e.value);return this}startSection(t){return this.writeStart("SECTION"),this.writeString(2,t),this}endSection(){return this.writeStart("ENDSEC"),this}startTable(t){return this.writeStart("TABLE"),this.writeString(2,t),this}endTable(){return this.writeStart("ENDTAB"),this}formatValue(t){if(typeof t=="string")return this.sanitizeStringForDxfLine(t);if(typeof t=="boolean")return t?"1":"0";if(typeof t=="number"){if(!Number.isFinite(t))return"0";if(Number.isInteger(t))return String(t);const n=t.toFixed(this._precision).replace(/\.?0+$/,"");return n===""||n==="-"?"0":n}return String(t)}sanitizeStringForDxfLine(t){return t.replace(/\r\n|\r|\n/g," ").replace(/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F]/g,"")}}var Z=["00","01","02","03","04","05","06","07","08","09","0a","0b","0c","0d","0e","0f","10","11","12","13","14","15","16","17","18","19","1a","1b","1c","1d","1e","1f","20","21","22","23","24","25","26","27","28","29","2a","2b","2c","2d","2e","2f","30","31","32","33","34","35","36","37","38","39","3a","3b","3c","3d","3e","3f","40","41","42","43","44","45","46","47","48","49","4a","4b","4c","4d","4e","4f","50","51","52","53","54","55","56","57","58","59","5a","5b","5c","5d","5e","5f","60","61","62","63","64","65","66","67","68","69","6a","6b","6c","6d","6e","6f","70","71","72","73","74","75","76","77","78","79","7a","7b","7c","7d","7e","7f","80","81","82","83","84","85","86","87","88","89","8a","8b","8c","8d","8e","8f","90","91","92","93","94","95","96","97","98","99","9a","9b","9c","9d","9e","9f","a0","a1","a2","a3","a4","a5","a6","a7","a8","a9","aa","ab","ac","ad","ae","af","b0","b1","b2","b3","b4","b5","b6","b7","b8","b9","ba","bb","bc","bd","be","bf","c0","c1","c2","c3","c4","c5","c6","c7","c8","c9","ca","cb","cc","cd","ce","cf","d0","d1","d2","d3","d4","d5","d6","d7","d8","d9","da","db","dc","dd","de","df","e0","e1","e2","e3","e4","e5","e6","e7","e8","e9","ea","eb","ec","ed","ee","ef","f0","f1","f2","f3","f4","f5","f6","f7","f8","f9","fa","fb","fc","fd","fe","ff"],Ir=1234567,An=Math.PI/180,Sn=180/Math.PI;function ls(){var i=Math.random()*4294967295|0,t=Math.random()*4294967295|0,e=Math.random()*4294967295|0,n=Math.random()*4294967295|0,r=Z[i&255]+Z[i>>8&255]+Z[i>>16&255]+Z[i>>24&255]+"-"+Z[t&255]+Z[t>>8&255]+"-"+Z[t>>16&15|64]+Z[t>>24&255]+"-"+Z[e&63|128]+Z[e>>8&255]+"-"+Z[e>>16&255]+Z[e>>24&255]+Z[n&255]+Z[n>>8&255]+Z[n>>16&255]+Z[n>>24&255];return r.toLowerCase()}function bt(i,t,e){return Math.max(t,Math.min(e,i))}function Ln(i,t){return(i%t+t)%t}function hs(i,t,e,n,r){return n+(i-t)*(r-n)/(e-t)}function cs(i,t,e){return i!==t?(e-i)/(t-i):0}function En(i,t,e){return(1-e)*i+e*t}function us(i,t,e,n){return En(i,t,1-Math.exp(-e*n))}function ds(i,t){return t===void 0&&(t=1),t-Math.abs(Ln(i,t*2)-t)}function gs(i,t,e){return i<=t?0:i>=e?1:(i=(i-t)/(e-t),i*i*(3-2*i))}function ps(i,t,e){return i<=t?0:i>=e?1:(i=(i-t)/(e-t),i*i*i*(i*(i*6-15)+10))}function fs(i,t){return i+Math.floor(Math.random()*(t-i+1))}function ys(i,t){return i+Math.random()*(t-i)}function ms(i){return i*(.5-Math.random())}function _s(i){i!==void 0&&(Ir=i);var t=Ir+=1831565813;return t=Math.imul(t^t>>>15,t|1),t^=t+Math.imul(t^t>>>7,t|61),((t^t>>>14)>>>0)/4294967296}function ws(i){return i*An}function bs(i){return i*Sn}function xs(i){return(i&i-1)===0&&i!==0}function vs(i){return Math.pow(2,Math.ceil(Math.log(i)/Math.LN2))}function Ps(i){return Math.pow(2,Math.floor(Math.log(i)/Math.LN2))}function ye(i){var t=Math.PI*2;return(i%t+t)%t}function As(i,t,e){return i>t&&i<e||i>e&&i<t}function Ss(i,t,e,n){return n===void 0&&(n=!1),i=ye(i),t=ye(t),e=ye(e),n?t>e?i<=t&&i>=e:i<=t||i>=e:t<e?i>=t&&i<=e:i>=t||i<=e}function Mn(i){return i=Math.abs(i),i<1?0:Math.ceil(Math.log10(Math.abs(i)+1))}function Ls(i,t){t===void 0&&(t=1e-7);var e=Mn(i);return Math.max(Math.pow(10,e)*t,t)}var E={DEG2RAD:An,RAD2DEG:Sn,generateUUID:ls,clamp:bt,euclideanModulo:Ln,mapLinear:hs,inverseLerp:cs,lerp:En,damp:us,pingpong:ds,smoothstep:gs,smootherstep:ps,randInt:fs,randFloat:ys,randFloatSpread:ms,seededRandom:_s,degToRad:ws,radToDeg:bs,isPowerOfTwo:xs,ceilPowerOfTwo:vs,floorPowerOfTwo:Ps,normalizeAngle:ye,isBetween:As,isBetweenAngle:Ss,intPartLength:Mn,relativeEps:Ls},Xa=function(i,t){var e={label:0,sent:function(){if(s[0]&1)throw s[1];return s[1]},trys:[],ops:[]},n,r,s,o;return o={next:a(0),throw:a(1),return:a(2)},typeof Symbol=="function"&&(o[Symbol.iterator]=function(){return this}),o;function a(l){return function(c){return h([l,c])}}function h(l){if(n)throw new TypeError("Generator is already executing.");for(;o&&(o=0,l[0]&&(e=0)),e;)try{if(n=1,r&&(s=l[0]&2?r.return:l[0]?r.throw||((s=r.return)&&s.call(r),0):r.next)&&!(s=s.call(r,l[1])).done)return s;switch(r=0,s&&(l=[l[0]&2,s.value]),l[0]){case 0:case 1:s=l;break;case 4:return e.label++,{value:l[1],done:!1};case 5:e.label++,r=l[1],l=[0];continue;case 7:l=e.ops.pop(),e.trys.pop();continue;default:if(s=e.trys,!(s=s.length>0&&s[s.length-1])&&(l[0]===6||l[0]===2)){e=0;continue}if(l[0]===3&&(!s||l[1]>s[0]&&l[1]<s[3])){e.label=l[1];break}if(l[0]===6&&e.label<s[1]){e.label=s[1],s=l;break}if(s&&e.label<s[2]){e.label=s[2],e.ops.push(l);break}s[2]&&e.ops.pop(),e.trys.pop();continue}l=t.call(i,e)}catch(c){l=[6,c],r=0}finally{n=s=0}if(l[0]&5)throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}},j=function(){function i(t,e){this.x=0,this.y=0;var n=+(t!==void 0)+ +(e!==void 0);if(n!==0){if(n===1&&t instanceof Array){this.x=t[0],this.y=t[1];return}if(n===1){var r=t,s=r.x,o=r.y;this.x=s,this.y=o;return}if(n===2){this.x=t,this.y=e;return}throw st.ILLEGAL_PARAMETERS}}return Object.defineProperty(i.prototype,"width",{get:function(){return this.x},set:function(t){this.x=t},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"height",{get:function(){return this.y},set:function(t){this.y=t},enumerable:!1,configurable:!0}),i.prototype.set=function(t,e){return this.x=t,this.y=e,this},i.prototype.setScalar=function(t){return this.x=t,this.y=t,this},i.prototype.setX=function(t){return this.x=t,this},i.prototype.setY=function(t){return this.y=t,this},i.prototype.setComponent=function(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;default:throw new Error("index is out of range: "+t)}return this},i.prototype.getComponent=function(t){switch(t){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+t)}},i.prototype.clone=function(){return new i(this.x,this.y)},i.prototype.copy=function(t){return this.x=t.x,this.y=t.y,this},i.prototype.add=function(t){return this.x+=t.x,this.y+=t.y,this},i.prototype.addScalar=function(t){return this.x+=t,this.y+=t,this},i.prototype.addVectors=function(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this},i.prototype.addScaledVector=function(t,e){return this.x+=t.x*e,this.y+=t.y*e,this},i.prototype.sub=function(t){return this.x-=t.x,this.y-=t.y,this},i.prototype.subScalar=function(t){return this.x-=t,this.y-=t,this},i.prototype.subVectors=function(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this},i.prototype.multiply=function(t){return this.x*=t.x,this.y*=t.y,this},i.prototype.multiplyScalar=function(t){return this.x*=t,this.y*=t,this},i.prototype.divide=function(t){return this.x/=t.x,this.y/=t.y,this},i.prototype.divideScalar=function(t){return this.multiplyScalar(1/t)},i.prototype.applyMatrix2d=function(t){var e=this.x,n=this.y,r=t.elements;return this.x=r[0]*e+r[3]*n+r[6],this.y=r[1]*e+r[4]*n+r[7],this},i.prototype.min=function(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this},i.prototype.max=function(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this},i.prototype.clamp=function(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this},i.prototype.clampScalar=function(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this},i.prototype.clampLength=function(t,e){var n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))},i.prototype.floor=function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this},i.prototype.ceil=function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this},i.prototype.round=function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this},i.prototype.roundToZero=function(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this},i.prototype.negate=function(){return this.x=-this.x,this.y=-this.y,this},i.prototype.dot=function(t){return this.x*t.x+this.y*t.y},i.prototype.cross=function(t){return this.x*t.y-this.y*t.x},i.prototype.lengthSq=function(){return this.x*this.x+this.y*this.y},i.prototype.length=function(){return Math.sqrt(this.x*this.x+this.y*this.y)},i.prototype.manhattanLength=function(){return Math.abs(this.x)+Math.abs(this.y)},i.prototype.normalize=function(){return this.divideScalar(this.length()||1)},i.prototype.angle=function(){var t=Math.atan2(-this.y,-this.x)+Math.PI;return t},i.prototype.angleTo=function(t){var e=Math.sqrt(this.lengthSq()*t.lengthSq());if(e===0)return Math.PI/2;var n=this.dot(t)/e;return Math.acos(Math.max(-1,Math.min(1,n)))},i.prototype.distanceTo=function(t){return Math.sqrt(this.distanceToSquared(t))},i.prototype.distanceToSquared=function(t){var e=this.x-t.x,n=this.y-t.y;return e*e+n*n},i.prototype.manhattanDistanceTo=function(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)},i.prototype.setLength=function(t){return this.normalize().multiplyScalar(t)},i.prototype.lerp=function(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this},i.prototype.lerpVectors=function(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this},i.prototype.equals=function(t){return t.x===this.x&&t.y===this.y},i.prototype.fromArray=function(t,e){return e===void 0&&(e=0),this.x=t[e],this.y=t[e+1],this},i.prototype.toArray=function(t,e){return t===void 0&&(t=[]),e===void 0&&(e=0),t[e]=this.x,t[e+1]=this.y,t},i.prototype.rotateAround=function(t,e){var n=Math.cos(e),r=Math.sin(e),s=this.x-t.x,o=this.y-t.y;return this.x=s*n-o*r+t.x,this.y=s*r+o*n+t.y,this},i.prototype.random=function(){return this.x=Math.random(),this.y=Math.random(),this},i.prototype.relativeEps=function(t){return t===void 0&&(t=1e-7),Math.min(E.relativeEps(this.x,t),E.relativeEps(this.y,t))},i.prototype[Symbol.iterator]=function(){return Xa(this,function(t){switch(t.label){case 0:return[4,this.x];case 1:return t.sent(),[4,this.y];case 2:return t.sent(),[2]}})},i.EMPTY=Object.freeze(new i(0,0)),i}(),Ee=function(){function i(t,e,n,r,s,o,a,h,l){this.elements=[1,0,0,0,1,0,0,0,1],t!=null&&e!=null&&n!=null&&r!=null&&s!=null&&o!=null&&a!=null&&h!=null&&l!=null&&this.set(t,e,n,r,s,o,a,h,l)}return i.prototype.set=function(t,e,n,r,s,o,a,h,l){var c=this.elements;return c[0]=t,c[1]=r,c[2]=a,c[3]=e,c[4]=s,c[5]=h,c[6]=n,c[7]=o,c[8]=l,this},i.prototype.identity=function(){return this.set(1,0,0,0,1,0,0,0,1),this},i.prototype.copy=function(t){var e=this.elements,n=t.elements;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],this},i.prototype.extractBasis=function(t,e,n){return t.setFromMatrix3Column(this,0),e.setFromMatrix3Column(this,1),n.setFromMatrix3Column(this,2),this},i.prototype.setFromMatrix4=function(t){var e=t.elements;return this.set(e[0],e[4],e[8],e[1],e[5],e[9],e[2],e[6],e[10]),this},i.prototype.multiply=function(t){return this.multiplyMatrices(this,t)},i.prototype.premultiply=function(t){return this.multiplyMatrices(t,this)},i.prototype.multiplyMatrices=function(t,e){var n=t.elements,r=e.elements,s=this.elements,o=n[0],a=n[3],h=n[6],l=n[1],c=n[4],u=n[7],g=n[2],d=n[5],p=n[8],f=r[0],y=r[3],m=r[6],x=r[1],S=r[4],A=r[7],L=r[2],T=r[5],M=r[8];return s[0]=o*f+a*x+h*L,s[3]=o*y+a*S+h*T,s[6]=o*m+a*A+h*M,s[1]=l*f+c*x+u*L,s[4]=l*y+c*S+u*T,s[7]=l*m+c*A+u*M,s[2]=g*f+d*x+p*L,s[5]=g*y+d*S+p*T,s[8]=g*m+d*A+p*M,this},i.prototype.multiplyScalar=function(t){var e=this.elements;return e[0]*=t,e[3]*=t,e[6]*=t,e[1]*=t,e[4]*=t,e[7]*=t,e[2]*=t,e[5]*=t,e[8]*=t,this},i.prototype.determinant=function(){var t=this.elements,e=t[0],n=t[1],r=t[2],s=t[3],o=t[4],a=t[5],h=t[6],l=t[7],c=t[8];return e*o*c-e*a*l-n*s*c+n*a*h+r*s*l-r*o*h},i.prototype.invert=function(){var t=this.elements,e=t[0],n=t[1],r=t[2],s=t[3],o=t[4],a=t[5],h=t[6],l=t[7],c=t[8],u=c*o-a*l,g=a*h-c*s,d=l*s-o*h,p=e*u+n*g+r*d;if(p===0)return this.set(0,0,0,0,0,0,0,0,0);var f=1/p;return t[0]=u*f,t[1]=(r*l-c*n)*f,t[2]=(a*n-r*o)*f,t[3]=g*f,t[4]=(c*e-r*h)*f,t[5]=(r*s-a*e)*f,t[6]=d*f,t[7]=(n*h-l*e)*f,t[8]=(o*e-n*s)*f,this},i.prototype.transpose=function(){var t,e=this.elements;return t=e[1],e[1]=e[3],e[3]=t,t=e[2],e[2]=e[6],e[6]=t,t=e[5],e[5]=e[7],e[7]=t,this},i.prototype.getNormalMatrix=function(t){return this.setFromMatrix4(t).invert().transpose()},i.prototype.transposeIntoArray=function(t){var e=this.elements;return t.elements[0]=e[0],t.elements[1]=e[3],t.elements[2]=e[6],t.elements[3]=e[1],t.elements[4]=e[4],t.elements[5]=e[7],t.elements[6]=e[2],t.elements[7]=e[5],t.elements[8]=e[8],this},i.prototype.setUvTransform=function(t,e,n,r,s,o,a){var h=Math.cos(s),l=Math.sin(s);return this.set(n*h,n*l,-n*(h*o+l*a)+o+t,-r*l,r*h,-r*(-l*o+h*a)+a+e,0,0,1),this},i.prototype.scale=function(t,e){return this.premultiply(_i.makeScale(t,e)),this},i.prototype.rotate=function(t){return this.premultiply(_i.makeRotation(-t)),this},i.prototype.translate=function(t,e){return this.premultiply(_i.makeTranslation(t,e)),this},i.prototype.makeTranslation=function(t,e){return t instanceof j?this.set(1,0,t.x,0,1,t.y,0,0,1):this.set(1,0,t,0,1,e,0,0,1),this},i.prototype.makeRotation=function(t){var e=Math.cos(t),n=Math.sin(t);return this.set(e,-n,0,n,e,0,0,0,1),this},i.prototype.makeScale=function(t,e){return this.set(t,0,0,0,e,0,0,0,1),this},i.prototype.equals=function(t){for(var e=this.elements,n=t.elements,r=0;r<9;r++)if(e[r]!==n[r])return!1;return!0},i.prototype.fromArray=function(t,e){e===void 0&&(e=0);for(var n=0;n<9;n++)this.elements[n]=t[n+e];return this},i.prototype.toArray=function(t,e){t===void 0&&(t=[]),e===void 0&&(e=0);var n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+3]=n[3],t[e+4]=n[4],t[e+5]=n[5],t[e+6]=n[6],t[e+7]=n[7],t[e+8]=n[8],t},i.prototype.clone=function(){return new i().fromArray(this.elements)},i.IDENTITY=Object.freeze(new i),i}(),_i=new Ee,wt=1e-6,B=2*Math.PI,Na={x:0,y:0},In={x:0,y:0,z:0},F=function(){function i(){this.equalPointTol=wt,this.equalVectorTol=wt}return i.prototype.clone=function(){var t=new i;return t.equalPointTol=this.equalPointTol,t.equalVectorTol=this.equalVectorTol,t},i.prototype.equalPoint2d=function(t,e){return new j(t).sub(e).length()<this.equalPointTol},i.prototype.equalPoint3d=function(t,e){return new w(t).sub(e).length()<this.equalPointTol},i.equalToZero=function(t,e){return e===void 0&&(e=wt),t<e&&t>-e},i.equal=function(t,e,n){return n===void 0&&(n=wt),Math.abs(t-e)<n},i.great=function(t,e,n){return n===void 0&&(n=wt),t-e>n},i.less=function(t,e,n){return n===void 0&&(n=wt),t-e<n},i.isPositive=function(t,e){return e===void 0&&(e=wt),t>e},i.isNonPositive=function(t,e){return e===void 0&&(e=wt),t<=e},i}(),di=new F,Ba=function(i,t){var e={label:0,sent:function(){if(s[0]&1)throw s[1];return s[1]},trys:[],ops:[]},n,r,s,o;return o={next:a(0),throw:a(1),return:a(2)},typeof Symbol=="function"&&(o[Symbol.iterator]=function(){return this}),o;function a(l){return function(c){return h([l,c])}}function h(l){if(n)throw new TypeError("Generator is already executing.");for(;o&&(o=0,l[0]&&(e=0)),e;)try{if(n=1,r&&(s=l[0]&2?r.return:l[0]?r.throw||((s=r.return)&&s.call(r),0):r.next)&&!(s=s.call(r,l[1])).done)return s;switch(r=0,s&&(l=[l[0]&2,s.value]),l[0]){case 0:case 1:s=l;break;case 4:return e.label++,{value:l[1],done:!1};case 5:e.label++,r=l[1],l=[0];continue;case 7:l=e.ops.pop(),e.trys.pop();continue;default:if(s=e.trys,!(s=s.length>0&&s[s.length-1])&&(l[0]===6||l[0]===2)){e=0;continue}if(l[0]===3&&(!s||l[1]>s[0]&&l[1]<s[3])){e.label=l[1];break}if(l[0]===6&&e.label<s[1]){e.label=s[1],s=l;break}if(s&&e.label<s[2]){e.label=s[2],e.ops.push(l);break}s[2]&&e.ops.pop(),e.trys.pop();continue}l=t.call(i,e)}catch(c){l=[6,c],r=0}finally{n=s=0}if(l[0]&5)throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}},ae=function(){function i(t,e,n,r){t===void 0&&(t=0),e===void 0&&(e=0),n===void 0&&(n=0),r===void 0&&(r=1),this._x=t,this._y=e,this._z=n,this._w=r}return i.slerpFlat=function(t,e,n,r,s,o,a){var h=n[r+0],l=n[r+1],c=n[r+2],u=n[r+3],g=s[o+0],d=s[o+1],p=s[o+2],f=s[o+3];if(a===0){t[e+0]=h,t[e+1]=l,t[e+2]=c,t[e+3]=u;return}if(a===1){t[e+0]=g,t[e+1]=d,t[e+2]=p,t[e+3]=f;return}if(u!==f||h!==g||l!==d||c!==p){var y=1-a,m=h*g+l*d+c*p+u*f,x=m>=0?1:-1,S=1-m*m;if(S>Number.EPSILON){var A=Math.sqrt(S),L=Math.atan2(A,m*x);y=Math.sin(y*L)/A,a=Math.sin(a*L)/A}var T=a*x;if(h=h*y+g*T,l=l*y+d*T,c=c*y+p*T,u=u*y+f*T,y===1-a){var M=1/Math.sqrt(h*h+l*l+c*c+u*u);h*=M,l*=M,c*=M,u*=M}}t[e]=h,t[e+1]=l,t[e+2]=c,t[e+3]=u},i.multiplyQuaternionsFlat=function(t,e,n,r,s,o){var a=n[r],h=n[r+1],l=n[r+2],c=n[r+3],u=s[o],g=s[o+1],d=s[o+2],p=s[o+3];return t[e]=a*p+c*u+h*d-l*g,t[e+1]=h*p+c*g+l*u-a*d,t[e+2]=l*p+c*d+a*g-h*u,t[e+3]=c*p-a*u-h*g-l*d,t},Object.defineProperty(i.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._onChangeCallback()},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._onChangeCallback()},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"z",{get:function(){return this._z},set:function(t){this._z=t,this._onChangeCallback()},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"w",{get:function(){return this._w},set:function(t){this._w=t,this._onChangeCallback()},enumerable:!1,configurable:!0}),i.prototype.set=function(t,e,n,r){return this._x=t,this._y=e,this._z=n,this._w=r,this._onChangeCallback(),this},i.prototype.clone=function(){return new i(this._x,this._y,this._z,this._w)},i.prototype.copy=function(t){return this._x=t.x,this._y=t.y,this._z=t.z,this._w=t.w,this._onChangeCallback(),this},i.prototype.setFromEuler=function(t,e){e===void 0&&(e=!0);var n=t.x,r=t.y,s=t.z,o=t.order,a=Math.cos,h=Math.sin,l=a(n/2),c=a(r/2),u=a(s/2),g=h(n/2),d=h(r/2),p=h(s/2);switch(o){case"XYZ":this._x=g*c*u+l*d*p,this._y=l*d*u-g*c*p,this._z=l*c*p+g*d*u,this._w=l*c*u-g*d*p;break;case"YXZ":this._x=g*c*u+l*d*p,this._y=l*d*u-g*c*p,this._z=l*c*p-g*d*u,this._w=l*c*u+g*d*p;break;case"ZXY":this._x=g*c*u-l*d*p,this._y=l*d*u+g*c*p,this._z=l*c*p+g*d*u,this._w=l*c*u-g*d*p;break;case"ZYX":this._x=g*c*u-l*d*p,this._y=l*d*u+g*c*p,this._z=l*c*p-g*d*u,this._w=l*c*u+g*d*p;break;case"YZX":this._x=g*c*u+l*d*p,this._y=l*d*u+g*c*p,this._z=l*c*p-g*d*u,this._w=l*c*u-g*d*p;break;case"XZY":this._x=g*c*u-l*d*p,this._y=l*d*u-g*c*p,this._z=l*c*p+g*d*u,this._w=l*c*u+g*d*p;break;default:}return e===!0&&this._onChangeCallback(),this},i.prototype.setFromAxisAngle=function(t,e){var n=e/2,r=Math.sin(n);return this._x=t.x*r,this._y=t.y*r,this._z=t.z*r,this._w=Math.cos(n),this._onChangeCallback(),this},i.prototype.setFromRotationMatrix=function(t){var e=t.elements,n=e[0],r=e[4],s=e[8],o=e[1],a=e[5],h=e[9],l=e[2],c=e[6],u=e[10],g=n+a+u;if(g>0){var d=.5/Math.sqrt(g+1);this._w=.25/d,this._x=(c-h)*d,this._y=(s-l)*d,this._z=(o-r)*d}else if(n>a&&n>u){var d=2*Math.sqrt(1+n-a-u);this._w=(c-h)/d,this._x=.25*d,this._y=(r+o)/d,this._z=(s+l)/d}else if(a>u){var d=2*Math.sqrt(1+a-n-u);this._w=(s-l)/d,this._x=(r+o)/d,this._y=.25*d,this._z=(h+c)/d}else{var d=2*Math.sqrt(1+u-n-a);this._w=(o-r)/d,this._x=(s+l)/d,this._y=(h+c)/d,this._z=.25*d}return this._onChangeCallback(),this},i.prototype.setFromUnitVectors=function(t,e){var n=t.dot(e)+1;return n<Number.EPSILON?(n=0,Math.abs(t.x)>Math.abs(t.z)?(this._x=-t.y,this._y=t.x,this._z=0,this._w=n):(this._x=0,this._y=-t.z,this._z=t.y,this._w=n)):(this._x=t.y*e.z-t.z*e.y,this._y=t.z*e.x-t.x*e.z,this._z=t.x*e.y-t.y*e.x,this._w=n),this.normalize()},i.prototype.angleTo=function(t){return 2*Math.acos(Math.abs(bt(this.dot(t),-1,1)))},i.prototype.rotateTowards=function(t,e){var n=this.angleTo(t);if(n===0)return this;var r=Math.min(1,e/n);return this.slerp(t,r),this},i.prototype.identity=function(){return this.set(0,0,0,1)},i.prototype.invert=function(){return this.conjugate()},i.prototype.conjugate=function(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this},i.prototype.dot=function(t){return this._x*t._x+this._y*t._y+this._z*t._z+this._w*t._w},i.prototype.lengthSq=function(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w},i.prototype.length=function(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)},i.prototype.normalize=function(){var t=this.length();return t===0?(this._x=0,this._y=0,this._z=0,this._w=1):(t=1/t,this._x=this._x*t,this._y=this._y*t,this._z=this._z*t,this._w=this._w*t),this._onChangeCallback(),this},i.prototype.multiply=function(t){return this.multiplyQuaternions(this,t)},i.prototype.premultiply=function(t){return this.multiplyQuaternions(t,this)},i.prototype.multiplyQuaternions=function(t,e){var n=t._x,r=t._y,s=t._z,o=t._w,a=e._x,h=e._y,l=e._z,c=e._w;return this._x=n*c+o*a+r*l-s*h,this._y=r*c+o*h+s*a-n*l,this._z=s*c+o*l+n*h-r*a,this._w=o*c-n*a-r*h-s*l,this._onChangeCallback(),this},i.prototype.slerp=function(t,e){if(e===0)return this;if(e===1)return this.copy(t);var n=this._x,r=this._y,s=this._z,o=this._w,a=o*t._w+n*t._x+r*t._y+s*t._z;if(a<0?(this._w=-t._w,this._x=-t._x,this._y=-t._y,this._z=-t._z,a=-a):this.copy(t),a>=1)return this._w=o,this._x=n,this._y=r,this._z=s,this;var h=1-a*a;if(h<=Number.EPSILON){var l=1-e;return this._w=l*o+e*this._w,this._x=l*n+e*this._x,this._y=l*r+e*this._y,this._z=l*s+e*this._z,this.normalize(),this}var c=Math.sqrt(h),u=Math.atan2(c,a),g=Math.sin((1-e)*u)/c,d=Math.sin(e*u)/c;return this._w=o*g+this._w*d,this._x=n*g+this._x*d,this._y=r*g+this._y*d,this._z=s*g+this._z*d,this._onChangeCallback(),this},i.prototype.slerpQuaternions=function(t,e,n){return this.copy(t).slerp(e,n)},i.prototype.random=function(){var t=2*Math.PI*Math.random(),e=2*Math.PI*Math.random(),n=Math.random(),r=Math.sqrt(1-n),s=Math.sqrt(n);return this.set(r*Math.sin(t),r*Math.cos(t),s*Math.sin(e),s*Math.cos(e))},i.prototype.equals=function(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._w===this._w},i.prototype.fromArray=function(t,e){return e===void 0&&(e=0),this._x=t[e],this._y=t[e+1],this._z=t[e+2],this._w=t[e+3],this._onChangeCallback(),this},i.prototype.toArray=function(t,e){return t===void 0&&(t=[]),e===void 0&&(e=0),t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._w,t},i.prototype.toJSON=function(){return this.toArray()},i.prototype._onChange=function(t){return this._onChangeCallback=t,this},i.prototype._onChangeCallback=function(){},i.prototype[Symbol.iterator]=function(){return Ba(this,function(t){switch(t.label){case 0:return[4,this._x];case 1:return t.sent(),[4,this._y];case 2:return t.sent(),[4,this._z];case 3:return t.sent(),[4,this._w];case 4:return t.sent(),[2]}})},i}(),Ra=function(i,t){var e={label:0,sent:function(){if(s[0]&1)throw s[1];return s[1]},trys:[],ops:[]},n,r,s,o;return o={next:a(0),throw:a(1),return:a(2)},typeof Symbol=="function"&&(o[Symbol.iterator]=function(){return this}),o;function a(l){return function(c){return h([l,c])}}function h(l){if(n)throw new TypeError("Generator is already executing.");for(;o&&(o=0,l[0]&&(e=0)),e;)try{if(n=1,r&&(s=l[0]&2?r.return:l[0]?r.throw||((s=r.return)&&s.call(r),0):r.next)&&!(s=s.call(r,l[1])).done)return s;switch(r=0,s&&(l=[l[0]&2,s.value]),l[0]){case 0:case 1:s=l;break;case 4:return e.label++,{value:l[1],done:!1};case 5:e.label++,r=l[1],l=[0];continue;case 7:l=e.ops.pop(),e.trys.pop();continue;default:if(s=e.trys,!(s=s.length>0&&s[s.length-1])&&(l[0]===6||l[0]===2)){e=0;continue}if(l[0]===3&&(!s||l[1]>s[0]&&l[1]<s[3])){e.label=l[1];break}if(l[0]===6&&e.label<s[1]){e.label=s[1],s=l;break}if(s&&e.label<s[2]){e.label=s[2],e.ops.push(l);break}s[2]&&e.ops.pop(),e.trys.pop();continue}l=t.call(i,e)}catch(c){l=[6,c],r=0}finally{n=s=0}if(l[0]&5)throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}},w=function(){function i(t,e,n){this.x=0,this.y=0,this.z=0;var r=+(t!==void 0)+ +(e!==void 0)+ +(n!==void 0);if(r!==0){if(r===1&&t instanceof Array){this.x=t[0],this.y=t[1],this.z=t[2];return}if(r===1){var s=t,o=s.x,a=s.y,h=s.z;this.x=o,this.y=a,this.z=h||0;return}if(r===3){this.x=t,this.y=e,this.z=n;return}throw st.ILLEGAL_PARAMETERS}}return i.prototype.set=function(t,e,n){return n===void 0&&(n=this.z),this.x=t,this.y=e,this.z=n,this},i.prototype.setScalar=function(t){return this.x=t,this.y=t,this.z=t,this},i.prototype.setX=function(t){return this.x=t,this},i.prototype.setY=function(t){return this.y=t,this},i.prototype.setZ=function(t){return this.z=t,this},i.prototype.setComponent=function(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;default:throw new Error("index is out of range: "+t)}return this},i.prototype.getComponent=function(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+t)}},i.prototype.clone=function(){return new i(this.x,this.y,this.z)},i.prototype.copy=function(t){return this.x=t.x,this.y=t.y,this.z=t.z||0,this},i.prototype.add=function(t){return this.x+=t.x,this.y+=t.y,this.z+=t.z||0,this},i.prototype.addScalar=function(t){return this.x+=t,this.y+=t,this.z+=t,this},i.prototype.addVectors=function(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this},i.prototype.addScaledVector=function(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this},i.prototype.sub=function(t){return this.x-=t.x,this.y-=t.y,this.z-=t.z,this},i.prototype.subScalar=function(t){return this.x-=t,this.y-=t,this.z-=t,this},i.prototype.subVectors=function(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this},i.prototype.multiply=function(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this},i.prototype.multiplyScalar=function(t){return this.x*=t,this.y*=t,this.z*=t,this},i.prototype.multiplyVectors=function(t,e){return this.x=t.x*e.x,this.y=t.y*e.y,this.z=t.z*e.z,this},i.prototype.applyEuler=function(t){return this.applyQuaternion(Tr.setFromEuler(t))},i.prototype.applyAxisAngle=function(t,e){return this.applyQuaternion(Tr.setFromAxisAngle(t,e))},i.prototype.applyMatrix3=function(t){var e=this.x,n=this.y,r=this.z,s=t.elements;return this.x=s[0]*e+s[3]*n+s[6]*r,this.y=s[1]*e+s[4]*n+s[7]*r,this.z=s[2]*e+s[5]*n+s[8]*r,this},i.prototype.applyNormalMatrix=function(t){return this.applyMatrix3(t).normalize()},i.prototype.applyMatrix4=function(t){var e=this.x,n=this.y,r=this.z,s=t.elements,o=1/(s[3]*e+s[7]*n+s[11]*r+s[15]);return this.x=(s[0]*e+s[4]*n+s[8]*r+s[12])*o,this.y=(s[1]*e+s[5]*n+s[9]*r+s[13])*o,this.z=(s[2]*e+s[6]*n+s[10]*r+s[14])*o,this},i.prototype.applyQuaternion=function(t){var e=this.x,n=this.y,r=this.z,s=t.x,o=t.y,a=t.z,h=t.w,l=2*(o*r-a*n),c=2*(a*e-s*r),u=2*(s*n-o*e);return this.x=e+h*l+o*u-a*c,this.y=n+h*c+a*l-s*u,this.z=r+h*u+s*c-o*l,this},i.prototype.transformDirection=function(t){var e=this.x,n=this.y,r=this.z,s=t.elements;return this.x=s[0]*e+s[4]*n+s[8]*r,this.y=s[1]*e+s[5]*n+s[9]*r,this.z=s[2]*e+s[6]*n+s[10]*r,this.normalize()},i.prototype.divide=function(t){return this.x/=t.x,this.y/=t.y,this.z/=t.z,this},i.prototype.divideScalar=function(t){return this.multiplyScalar(1/t)},i.prototype.min=function(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this},i.prototype.max=function(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this},i.prototype.clamp=function(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this},i.prototype.clampScalar=function(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this.z=Math.max(t,Math.min(e,this.z)),this},i.prototype.clampLength=function(t,e){var n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))},i.prototype.floor=function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this},i.prototype.ceil=function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this},i.prototype.round=function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this},i.prototype.roundToZero=function(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this},i.prototype.negate=function(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this},i.prototype.dot=function(t){return this.x*t.x+this.y*t.y+this.z*t.z},i.prototype.isParallelTo=function(t){var e=this.dot(t),n=this.length(),r=t.length();return Math.abs(e)===n*r},i.prototype.lengthSq=function(){return this.x*this.x+this.y*this.y+this.z*this.z},i.prototype.length=function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)},i.prototype.manhattanLength=function(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)},i.prototype.normalize=function(){return this.divideScalar(this.length()||1)},i.prototype.setLength=function(t){return this.normalize().multiplyScalar(t)},i.prototype.lerp=function(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this},i.prototype.lerpVectors=function(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this.z=t.z+(e.z-t.z)*n,this},i.prototype.cross=function(t){return this.crossVectors(this,t)},i.prototype.crossVectors=function(t,e){var n=t.x,r=t.y,s=t.z,o=e.x,a=e.y,h=e.z;return this.x=r*h-s*a,this.y=s*o-n*h,this.z=n*a-r*o,this},i.prototype.projectOnVector=function(t){var e=t.lengthSq();if(e===0)return this.set(0,0,0);var n=t.dot(this)/e;return this.copy(t).multiplyScalar(n)},i.prototype.projectOnPlane=function(t){return wi.copy(this).projectOnVector(t),this.sub(wi)},i.prototype.reflect=function(t){return this.sub(wi.copy(t).multiplyScalar(2*this.dot(t)))},i.prototype.angleTo=function(t){var e=Math.sqrt(this.lengthSq()*t.lengthSq());if(e===0)return Math.PI/2;var n=this.dot(t)/e;return Math.acos(Math.max(-1,Math.min(1,n)))},i.prototype.distanceTo=function(t){return Math.sqrt(this.distanceToSquared(t))},i.prototype.distanceToSquared=function(t){var e=this.x-t.x,n=this.y-t.y,r=this.z-t.z;return e*e+n*n+r*r},i.prototype.manhattanDistanceTo=function(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)+Math.abs(this.z-t.z)},i.prototype.setFromMatrixPosition=function(t){var e=t.elements;return this.x=e[12],this.y=e[13],this.z=e[14],this},i.prototype.setFromMatrixScale=function(t){var e=this.setFromMatrixColumn(t,0).length(),n=this.setFromMatrixColumn(t,1).length(),r=this.setFromMatrixColumn(t,2).length();return this.x=e,this.y=n,this.z=r,this},i.prototype.setFromMatrixColumn=function(t,e){return this.fromArray(t.elements,e*4)},i.prototype.setFromMatrix3Column=function(t,e){return this.fromArray(t.elements,e*3)},i.prototype.equals=function(t){return t.x===this.x&&t.y===this.y&&t.z===this.z},i.prototype.fromArray=function(t,e){return e===void 0&&(e=0),this.x=t[e],this.y=t[e+1],this.z=t[e+2],this},i.prototype.toArray=function(t,e){return t===void 0&&(t=[]),e===void 0&&(e=0),t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t},i.prototype.random=function(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this},i.prototype.randomDirection=function(){var t=Math.random()*Math.PI*2,e=Math.random()*2-1,n=Math.sqrt(1-e*e);return this.x=n*Math.cos(t),this.y=e,this.z=n*Math.sin(t),this},i.prototype[Symbol.iterator]=function(){return Ra(this,function(t){switch(t.label){case 0:return[4,this.x];case 1:return t.sent(),[4,this.y];case 2:return t.sent(),[4,this.z];case 3:return t.sent(),[2]}})},i.ORIGIN=Object.freeze(new i(0,0,0)),i.X_AXIS=Object.freeze(new i(1,0,0)),i.NEGATIVE_X_AXIS=Object.freeze(new i(-1,0,0)),i.Y_AXIS=Object.freeze(new i(0,1,0)),i.NEGATIVE_Y_AXIS=Object.freeze(new i(0,-1,0)),i.Z_AXIS=Object.freeze(new i(0,0,1)),i.NEGATIVE_Z_AXIS=Object.freeze(new i(0,0,-1)),i}(),wi=new w,Tr=new ae,Y=function(){function i(t,e,n,r,s,o,a,h,l,c,u,g,d,p,f,y){this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],t!=null&&e!=null&&n!=null&&r!=null&&s!=null&&o!=null&&a!=null&&h!=null&&l!=null&&c!=null&&u!=null&&g!=null&&d!=null&&p!=null&&f!=null&&y!=null&&this.set(t,e,n,r,s,o,a,h,l,c,u,g,d,p,f,y)}return i.prototype.set=function(t,e,n,r,s,o,a,h,l,c,u,g,d,p,f,y){var m=this.elements;return m[0]=t,m[4]=e,m[8]=n,m[12]=r,m[1]=s,m[5]=o,m[9]=a,m[13]=h,m[2]=l,m[6]=c,m[10]=u,m[14]=g,m[3]=d,m[7]=p,m[11]=f,m[15]=y,this},i.prototype.identity=function(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this},i.prototype.clone=function(){return new i().fromArray(this.elements)},i.prototype.copy=function(t){var e=this.elements,n=t.elements;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],e[9]=n[9],e[10]=n[10],e[11]=n[11],e[12]=n[12],e[13]=n[13],e[14]=n[14],e[15]=n[15],this},i.prototype.copyPosition=function(t){var e=this.elements,n=t.elements;return e[12]=n[12],e[13]=n[13],e[14]=n[14],this},i.prototype.setFromMatrix3=function(t){var e=t.elements;return this.set(e[0],e[3],e[6],0,e[1],e[4],e[7],0,e[2],e[5],e[8],0,0,0,0,1),this},i.prototype.setFromExtrusionDirection=function(t){if(di.equalPoint3d(t,w.Z_AXIS))this.identity();else{var e=new w(1,0,0);Math.abs(t.x)<1/64&&Math.abs(t.y)<1/64?e.crossVectors(w.Y_AXIS,t).normalize():e.crossVectors(w.Z_AXIS,t).normalize();var n=t.clone().cross(e).normalize();this.set(e.x,e.y,e.z,0,n.x,n.y,n.z,0,t.x,t.y,t.z,0,0,0,0,1)}return this},i.prototype.extractBasis=function(t,e,n){return t.setFromMatrixColumn(this,0),e.setFromMatrixColumn(this,1),n.setFromMatrixColumn(this,2),this},i.prototype.makeBasis=function(t,e,n){return this.set(t.x,e.x,n.x,0,t.y,e.y,n.y,0,t.z,e.z,n.z,0,0,0,0,1),this},i.prototype.extractRotation=function(t){var e=this.elements,n=t.elements,r=1/qt.setFromMatrixColumn(t,0).length(),s=1/qt.setFromMatrixColumn(t,1).length(),o=1/qt.setFromMatrixColumn(t,2).length();return e[0]=n[0]*r,e[1]=n[1]*r,e[2]=n[2]*r,e[3]=0,e[4]=n[4]*s,e[5]=n[5]*s,e[6]=n[6]*s,e[7]=0,e[8]=n[8]*o,e[9]=n[9]*o,e[10]=n[10]*o,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this},i.prototype.makeRotationFromQuaternion=function(t){return this.compose(za,t,Fa)},i.prototype.lookAt=function(t,e,n){var r=this.elements;return ot.subVectors(t,e),ot.lengthSq()===0&&(ot.z=1),ot.normalize(),Lt.crossVectors(n,ot),Lt.lengthSq()===0&&(Math.abs(n.z)===1?ot.x+=1e-4:ot.z+=1e-4,ot.normalize(),Lt.crossVectors(n,ot)),Lt.normalize(),Te.crossVectors(ot,Lt),r[0]=Lt.x,r[4]=Te.x,r[8]=ot.x,r[1]=Lt.y,r[5]=Te.y,r[9]=ot.y,r[2]=Lt.z,r[6]=Te.z,r[10]=ot.z,this},i.prototype.multiply=function(t){return this.multiplyMatrices(this,t)},i.prototype.premultiply=function(t){return this.multiplyMatrices(t,this)},i.prototype.multiplyMatrices=function(t,e){var n=t.elements,r=e.elements,s=this.elements,o=n[0],a=n[4],h=n[8],l=n[12],c=n[1],u=n[5],g=n[9],d=n[13],p=n[2],f=n[6],y=n[10],m=n[14],x=n[3],S=n[7],A=n[11],L=n[15],T=r[0],M=r[4],X=r[8],I=r[12],z=r[1],O=r[5],R=r[9],W=r[13],J=r[2],yt=r[6],Dt=r[10],Ut=r[14],zt=r[3],$t=r[7],At=r[11],St=r[15];return s[0]=o*T+a*z+h*J+l*zt,s[4]=o*M+a*O+h*yt+l*$t,s[8]=o*X+a*R+h*Dt+l*At,s[12]=o*I+a*W+h*Ut+l*St,s[1]=c*T+u*z+g*J+d*zt,s[5]=c*M+u*O+g*yt+d*$t,s[9]=c*X+u*R+g*Dt+d*At,s[13]=c*I+u*W+g*Ut+d*St,s[2]=p*T+f*z+y*J+m*zt,s[6]=p*M+f*O+y*yt+m*$t,s[10]=p*X+f*R+y*Dt+m*At,s[14]=p*I+f*W+y*Ut+m*St,s[3]=x*T+S*z+A*J+L*zt,s[7]=x*M+S*O+A*yt+L*$t,s[11]=x*X+S*R+A*Dt+L*At,s[15]=x*I+S*W+A*Ut+L*St,this},i.prototype.multiplyScalar=function(t){var e=this.elements;return e[0]*=t,e[4]*=t,e[8]*=t,e[12]*=t,e[1]*=t,e[5]*=t,e[9]*=t,e[13]*=t,e[2]*=t,e[6]*=t,e[10]*=t,e[14]*=t,e[3]*=t,e[7]*=t,e[11]*=t,e[15]*=t,this},i.prototype.determinant=function(){var t=this.elements,e=t[0],n=t[4],r=t[8],s=t[12],o=t[1],a=t[5],h=t[9],l=t[13],c=t[2],u=t[6],g=t[10],d=t[14],p=t[3],f=t[7],y=t[11],m=t[15];return p*(+s*h*u-r*l*u-s*a*g+n*l*g+r*a*d-n*h*d)+f*(+e*h*d-e*l*g+s*o*g-r*o*d+r*l*c-s*h*c)+y*(+e*l*u-e*a*d-s*o*u+n*o*d+s*a*c-n*l*c)+m*(-r*a*c-e*h*u+e*a*g+r*o*u-n*o*g+n*h*c)},i.prototype.transpose=function(){var t=this.elements,e;return e=t[1],t[1]=t[4],t[4]=e,e=t[2],t[2]=t[8],t[8]=e,e=t[6],t[6]=t[9],t[9]=e,e=t[3],t[3]=t[12],t[12]=e,e=t[7],t[7]=t[13],t[13]=e,e=t[11],t[11]=t[14],t[14]=e,this},i.prototype.setPosition=function(t,e,n){var r=this.elements;return t instanceof w?(r[12]=t.x,r[13]=t.y,r[14]=t.z):(r[12]=t,r[13]=e,r[14]=n),this},i.prototype.invert=function(){var t=this.elements,e=t[0],n=t[1],r=t[2],s=t[3],o=t[4],a=t[5],h=t[6],l=t[7],c=t[8],u=t[9],g=t[10],d=t[11],p=t[12],f=t[13],y=t[14],m=t[15],x=u*y*l-f*g*l+f*h*d-a*y*d-u*h*m+a*g*m,S=p*g*l-c*y*l-p*h*d+o*y*d+c*h*m-o*g*m,A=c*f*l-p*u*l+p*a*d-o*f*d-c*a*m+o*u*m,L=p*u*h-c*f*h-p*a*g+o*f*g+c*a*y-o*u*y,T=e*x+n*S+r*A+s*L;if(T===0)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);var M=1/T;return t[0]=x*M,t[1]=(f*g*s-u*y*s-f*r*d+n*y*d+u*r*m-n*g*m)*M,t[2]=(a*y*s-f*h*s+f*r*l-n*y*l-a*r*m+n*h*m)*M,t[3]=(u*h*s-a*g*s-u*r*l+n*g*l+a*r*d-n*h*d)*M,t[4]=S*M,t[5]=(c*y*s-p*g*s+p*r*d-e*y*d-c*r*m+e*g*m)*M,t[6]=(p*h*s-o*y*s-p*r*l+e*y*l+o*r*m-e*h*m)*M,t[7]=(o*g*s-c*h*s+c*r*l-e*g*l-o*r*d+e*h*d)*M,t[8]=A*M,t[9]=(p*u*s-c*f*s-p*n*d+e*f*d+c*n*m-e*u*m)*M,t[10]=(o*f*s-p*a*s+p*n*l-e*f*l-o*n*m+e*a*m)*M,t[11]=(c*a*s-o*u*s-c*n*l+e*u*l+o*n*d-e*a*d)*M,t[12]=L*M,t[13]=(c*f*r-p*u*r+p*n*g-e*f*g-c*n*y+e*u*y)*M,t[14]=(p*a*r-o*f*r-p*n*h+e*f*h+o*n*y-e*a*y)*M,t[15]=(o*u*r-c*a*r+c*n*h-e*u*h-o*n*g+e*a*g)*M,this},i.prototype.scale=function(t){var e=this.elements,n=t.x,r=t.y,s=t.z;return e[0]*=n,e[4]*=r,e[8]*=s,e[1]*=n,e[5]*=r,e[9]*=s,e[2]*=n,e[6]*=r,e[10]*=s,e[3]*=n,e[7]*=r,e[11]*=s,this},i.prototype.getMaxScaleOnAxis=function(){var t=this.elements,e=t[0]*t[0]+t[1]*t[1]+t[2]*t[2],n=t[4]*t[4]+t[5]*t[5]+t[6]*t[6],r=t[8]*t[8]+t[9]*t[9]+t[10]*t[10];return Math.sqrt(Math.max(e,n,r))},i.prototype.makeTranslation=function(t,e,n){return t instanceof w?this.set(1,0,0,t.x,0,1,0,t.y,0,0,1,t.z,0,0,0,1):this.set(1,0,0,t,0,1,0,e,0,0,1,n,0,0,0,1),this},i.prototype.makeRotationX=function(t){var e=Math.cos(t),n=Math.sin(t);return this.set(1,0,0,0,0,e,-n,0,0,n,e,0,0,0,0,1),this},i.prototype.makeRotationY=function(t){var e=Math.cos(t),n=Math.sin(t);return this.set(e,0,n,0,0,1,0,0,-n,0,e,0,0,0,0,1),this},i.prototype.makeRotationZ=function(t){var e=Math.cos(t),n=Math.sin(t);return this.set(e,-n,0,0,n,e,0,0,0,0,1,0,0,0,0,1),this},i.prototype.makeRotationAxis=function(t,e){var n=Math.cos(e),r=Math.sin(e),s=1-n,o=t.x,a=t.y,h=t.z,l=s*o,c=s*a;return this.set(l*o+n,l*a-r*h,l*h+r*a,0,l*a+r*h,c*a+n,c*h-r*o,0,l*h-r*a,c*h+r*o,s*h*h+n,0,0,0,0,1),this},i.prototype.makeScale=function(t,e,n){return this.set(t,0,0,0,0,e,0,0,0,0,n,0,0,0,0,1),this},i.prototype.makeShear=function(t,e,n,r,s,o){return this.set(1,n,s,0,t,1,o,0,e,r,1,0,0,0,0,1),this},i.prototype.compose=function(t,e,n){var r=this.elements,s=e.x,o=e.y,a=e.z,h=e.w,l=s+s,c=o+o,u=a+a,g=s*l,d=s*c,p=s*u,f=o*c,y=o*u,m=a*u,x=h*l,S=h*c,A=h*u,L=n.x,T=n.y,M=n.z;return r[0]=(1-(f+m))*L,r[1]=(d+A)*L,r[2]=(p-S)*L,r[3]=0,r[4]=(d-A)*T,r[5]=(1-(g+m))*T,r[6]=(y+x)*T,r[7]=0,r[8]=(p+S)*M,r[9]=(y-x)*M,r[10]=(1-(g+f))*M,r[11]=0,r[12]=t.x,r[13]=t.y,r[14]=t.z,r[15]=1,this},i.prototype.decompose=function(t,e,n){var r=this.elements,s=qt.set(r[0],r[1],r[2]).length(),o=qt.set(r[4],r[5],r[6]).length(),a=qt.set(r[8],r[9],r[10]).length(),h=this.determinant();h<0&&(s=-s),t.x=r[12],t.y=r[13],t.z=r[14],ct.copy(this);var l=1/s,c=1/o,u=1/a;return ct.elements[0]*=l,ct.elements[1]*=l,ct.elements[2]*=l,ct.elements[4]*=c,ct.elements[5]*=c,ct.elements[6]*=c,ct.elements[8]*=u,ct.elements[9]*=u,ct.elements[10]*=u,e.setFromRotationMatrix(ct),n.x=s,n.y=o,n.z=a,this},i.prototype.equals=function(t){for(var e=this.elements,n=t.elements,r=0;r<16;r++)if(e[r]!==n[r])return!1;return!0},i.prototype.fromArray=function(t,e){e===void 0&&(e=0);for(var n=0;n<16;n++)this.elements[n]=t[n+e];return this},i.prototype.toArray=function(t,e){t===void 0&&(t=[]),e===void 0&&(e=0);var n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+3]=n[3],t[e+4]=n[4],t[e+5]=n[5],t[e+6]=n[6],t[e+7]=n[7],t[e+8]=n[8],t[e+9]=n[9],t[e+10]=n[10],t[e+11]=n[11],t[e+12]=n[12],t[e+13]=n[13],t[e+14]=n[14],t[e+15]=n[15],t},i.IDENTITY=Object.freeze(new i),i}(),qt=new w,ct=new Y,za=new w(0,0,0),Fa=new w(1,1,1),Lt=new w,Te=new w,ot=new w,C=function(){function i(t,e){t===void 0&&(t=void 0),e===void 0&&(e=void 0),this.min=t==null?new w(1/0,1/0,1/0):new w(t.x,t.y,t.z),this.max=e==null?new w(-1/0,-1/0,-1/0):new w(e.x,e.y,e.z)}return i.prototype.set=function(t,e){return this.min.copy(t),this.max.copy(e),this},i.prototype.setFromArray=function(t){this.makeEmpty();for(var e=0,n=t.length;e<n;e+=3)this.expandByPoint(bi.fromArray(t,e));return this},i.prototype.setFromPoints=function(t){this.makeEmpty();for(var e=0,n=t.length;e<n;e++)this.expandByPoint(t[e]);return this},i.prototype.setFromCenterAndSize=function(t,e){var n=bi.copy(e).multiplyScalar(.5);return this.min.copy(t).sub(n),this.max.copy(t).add(n),this},i.prototype.clone=function(){return new i().copy(this)},i.prototype.copy=function(t){return this.min.copy(t.min),this.max.copy(t.max),this},i.prototype.makeEmpty=function(){return this.min.x=this.min.y=this.min.z=1/0,this.max.x=this.max.y=this.max.z=-1/0,this},i.prototype.isEmpty=function(){return this.max.x<this.min.x||this.max.y<this.min.y||this.max.z<this.min.z},i.prototype.getCenter=function(t){return this.isEmpty()?t.set(0,0,0):t.addVectors(this.min,this.max).multiplyScalar(.5)},i.prototype.getSize=function(t){return this.isEmpty()?t.set(0,0,0):t.subVectors(this.max,this.min)},Object.defineProperty(i.prototype,"center",{get:function(){return this.isEmpty()?new w(0,0,0):new w(0,0,0).addVectors(this.min,this.max).multiplyScalar(.5)},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"size",{get:function(){return this.isEmpty()?new w(0,0,0):new w(0,0,0).subVectors(this.max,this.min)},enumerable:!1,configurable:!0}),i.prototype.expandByPoint=function(t){return this.min.min(t),this.max.max(t),this},i.prototype.expandByVector=function(t){return this.min.sub(t),this.max.add(t),this},i.prototype.expandByScalar=function(t){return this.min.addScalar(-t),this.max.addScalar(t),this},i.prototype.containsPoint=function(t){return!(t.x<this.min.x||t.x>this.max.x||t.y<this.min.y||t.y>this.max.y||t.z<this.min.z||t.z>this.max.z)},i.prototype.containsBox=function(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y&&this.min.z<=t.min.z&&t.max.z<=this.max.z},i.prototype.getParameter=function(t,e){return e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y),(t.z-this.min.z)/(this.max.z-this.min.z))},i.prototype.intersectsBox=function(t){return!(t.max.x<this.min.x||t.min.x>this.max.x||t.max.y<this.min.y||t.min.y>this.max.y||t.max.z<this.min.z||t.min.z>this.max.z)},i.prototype.intersectsPlane=function(t){var e,n;return t.normal.x>0?(e=t.normal.x*this.min.x,n=t.normal.x*this.max.x):(e=t.normal.x*this.max.x,n=t.normal.x*this.min.x),t.normal.y>0?(e+=t.normal.y*this.min.y,n+=t.normal.y*this.max.y):(e+=t.normal.y*this.max.y,n+=t.normal.y*this.min.y),t.normal.z>0?(e+=t.normal.z*this.min.z,n+=t.normal.z*this.max.z):(e+=t.normal.z*this.max.z,n+=t.normal.z*this.min.z),e<=-t.constant&&n>=-t.constant},i.prototype.clampPoint=function(t,e){return e.copy(t).clamp(this.min,this.max)},i.prototype.distanceToPoint=function(t){return this.clampPoint(t,bi).distanceTo(t)},i.prototype.intersect=function(t){return this.min.max(t.min),this.max.min(t.max),this.isEmpty()&&this.makeEmpty(),this},i.prototype.union=function(t){return this.min.min(t.min),this.max.max(t.max),this},i.prototype.applyMatrix4=function(t){return this.isEmpty()?this:(_t[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(t),_t[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(t),_t[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(t),_t[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(t),_t[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(t),_t[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(t),_t[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(t),_t[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(t),this.setFromPoints(_t),this)},i.prototype.translate=function(t){return this.min.add(t),this.max.add(t),this},i.prototype.equals=function(t){return t.min.equals(this.min)&&t.max.equals(this.max)},i}(),_t=[new w,new w,new w,new w,new w,new w,new w,new w],bi=new w,Cr=new j,et=function(){function i(t,e){t===void 0&&(t=void 0),e===void 0&&(e=void 0),this.min=t==null?new j(1/0,1/0):new j(t.x,t.y),this.max=e==null?new j(-1/0,-1/0):new j(e.x,e.y)}return i.prototype.set=function(t,e){return this.min.copy(t),this.max.copy(e),this},i.prototype.setFromPoints=function(t){this.makeEmpty();for(var e=0,n=t.length;e<n;e++)this.expandByPoint(t[e]);return this},i.prototype.setFromCenterAndSize=function(t,e){var n=Cr.copy(e).multiplyScalar(.5);return this.min.copy(t).sub(n),this.max.copy(t).add(n),this},i.prototype.clone=function(){return new i().copy(this)},i.prototype.copy=function(t){return this.min.copy(t.min),this.max.copy(t.max),this},i.prototype.makeEmpty=function(){return this.min.x=this.min.y=1/0,this.max.x=this.max.y=-1/0,this},i.prototype.isEmpty=function(){return this.max.x<this.min.x||this.max.y<this.min.y},i.prototype.getCenter=function(t){return this.isEmpty()?t.set(0,0):t.addVectors(this.min,this.max).multiplyScalar(.5)},i.prototype.getSize=function(t){return this.isEmpty()?t.set(0,0):t.subVectors(this.max,this.min)},Object.defineProperty(i.prototype,"center",{get:function(){return this.isEmpty()?new j(0,0):new j(0,0).addVectors(this.min,this.max).multiplyScalar(.5)},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"size",{get:function(){return this.isEmpty()?new j(0,0):new j(0,0).subVectors(this.max,this.min)},enumerable:!1,configurable:!0}),i.prototype.expandByPoint=function(t){return this.min.min(t),this.max.max(t),this},i.prototype.expandByVector=function(t){return this.min.sub(t),this.max.add(t),this},i.prototype.expandByScalar=function(t){return this.min.addScalar(-t),this.max.addScalar(t),this},i.prototype.containsPoint=function(t){return!(t.x<this.min.x||t.x>this.max.x||t.y<this.min.y||t.y>this.max.y)},i.prototype.containsBox=function(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y},i.prototype.getParameter=function(t,e){return e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y))},i.prototype.intersectsBox=function(t){return!(t.max.x<this.min.x||t.min.x>this.max.x||t.max.y<this.min.y||t.min.y>this.max.y)},i.prototype.clampPoint=function(t,e){return e.copy(t).clamp(this.min,this.max)},i.prototype.distanceToPoint=function(t){return this.clampPoint(t,Cr).distanceTo(t)},i.prototype.intersect=function(t){return this.min.max(t.min),this.max.min(t.max),this.isEmpty()&&this.makeEmpty(),this},i.prototype.union=function(t){return this.min.min(t.min),this.max.max(t.max),this},i.prototype.translate=function(t){return this.min.add(t),this.max.add(t),this},i.prototype.equals=function(t){return t.min.equals(this.min)&&t.max.equals(this.max)},i}(),Or=new w,Va=new w,ja=new Ee,Tn=function(){function i(t,e){t===void 0&&(t=new w(1,0,0)),e===void 0&&(e=0),this.normal=t,this.constant=e}return i.prototype.set=function(t,e){return this.normal.copy(t),this.constant=e,this},i.prototype.setComponents=function(t,e,n,r){return this.normal.set(t,e,n),this.constant=r,this},i.prototype.setFromNormalAndCoplanarPoint=function(t,e){return this.normal.copy(t),this.constant=-e.dot(this.normal),this},i.prototype.setFromCoplanarPoints=function(t,e,n){var r=Or.subVectors(n,e).cross(Va.subVectors(t,e)).normalize();return this.setFromNormalAndCoplanarPoint(r,t),this},i.prototype.copy=function(t){return this.normal.copy(t.normal),this.constant=t.constant,this},i.prototype.normalize=function(){var t=1/this.normal.length();return this.normal.multiplyScalar(t),this.constant*=t,this},i.prototype.negate=function(){return this.constant*=-1,this.normal.negate(),this},i.prototype.distanceToPoint=function(t){return this.normal.dot(t)+this.constant},i.prototype.projectPoint=function(t,e){return e.copy(t).addScaledVector(this.normal,-this.distanceToPoint(t))},i.prototype.intersectsBox=function(t){return t.intersectsPlane(this)},i.prototype.coplanarPoint=function(t){return t.copy(this.normal).multiplyScalar(-this.constant)},i.prototype.applyMatrix4=function(t,e){var n=e||ja.getNormalMatrix(t),r=this.coplanarPoint(Or).applyMatrix4(t),s=this.normal.applyMatrix3(n).normalize();return this.constant=-r.dot(s),this},i.prototype.translate=function(t){return this.constant-=t.dot(this.normal),this},i.prototype.equals=function(t){return t.normal.equals(this.normal)&&t.constant===this.constant},i.prototype.clone=function(){return new i().copy(this)},i}(),Ga=function(){var i=function(t,e){return i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,r){n.__proto__=r}||function(n,r){for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&(n[s]=r[s])},i(t,e)};return function(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");i(t,e);function n(){this.constructor=t}t.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}}(),P=function(i){Ga(t,i);function t(){return i!==null&&i.apply(this,arguments)||this}return t.prototype.clone=function(){return new t(this.x,this.y)},t.pointArrayToNumberArray=function(e){var n=new Array(e.length*2);return e.forEach(function(r,s){r.toArray(n,s*2)}),n},t}(j),Ha=function(){var i=function(t,e){return i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,r){n.__proto__=r}||function(n,r){for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&(n[s]=r[s])},i(t,e)};return function(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");i(t,e);function n(){this.constructor=t}t.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}}(),_=function(i){Ha(t,i);function t(){return i!==null&&i.apply(this,arguments)||this}return t.prototype.clone=function(){return new t(this.x,this.y,this.z)},t.pointArrayToNumberArray=function(e,n){n===void 0&&(n=!0);var r=n?3:2,s=new Array(e.length*r);return e.forEach(function(o,a){o.toArray(s,a*r)}),s},t}(w),Wa=function(i,t){var e={label:0,sent:function(){if(s[0]&1)throw s[1];return s[1]},trys:[],ops:[]},n,r,s,o;return o={next:a(0),throw:a(1),return:a(2)},typeof Symbol=="function"&&(o[Symbol.iterator]=function(){return this}),o;function a(l){return function(c){return h([l,c])}}function h(l){if(n)throw new TypeError("Generator is already executing.");for(;o&&(o=0,l[0]&&(e=0)),e;)try{if(n=1,r&&(s=l[0]&2?r.return:l[0]?r.throw||((s=r.return)&&s.call(r),0):r.next)&&!(s=s.call(r,l[1])).done)return s;switch(r=0,s&&(l=[l[0]&2,s.value]),l[0]){case 0:case 1:s=l;break;case 4:return e.label++,{value:l[1],done:!1};case 5:e.label++,r=l[1],l=[0];continue;case 7:l=e.ops.pop(),e.trys.pop();continue;default:if(s=e.trys,!(s=s.length>0&&s[s.length-1])&&(l[0]===6||l[0]===2)){e=0;continue}if(l[0]===3&&(!s||l[1]>s[0]&&l[1]<s[3])){e.label=l[1];break}if(l[0]===6&&e.label<s[1]){e.label=s[1],s=l;break}if(s&&e.label<s[2]){e.label=s[2],e.ops.push(l);break}s[2]&&e.ops.pop(),e.trys.pop();continue}l=t.call(i,e)}catch(c){l=[6,c],r=0}finally{n=s=0}if(l[0]&5)throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}},kr=new Y,Yr=new ae,Da=function(){function i(t,e,n,r){t===void 0&&(t=0),e===void 0&&(e=0),n===void 0&&(n=0),r===void 0&&(r=i.DEFAULT_ORDER),this._x=t,this._y=e,this._z=n,this._order=r}return Object.defineProperty(i.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._onChangeCallback()},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._onChangeCallback()},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"z",{get:function(){return this._z},set:function(t){this._z=t,this._onChangeCallback()},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"order",{get:function(){return this._order},set:function(t){this._order=t,this._onChangeCallback()},enumerable:!1,configurable:!0}),i.prototype.set=function(t,e,n,r){return r===void 0&&(r=this._order),this._x=t,this._y=e,this._z=n,this._order=r,this._onChangeCallback(),this},i.prototype.clone=function(){return new i(this._x,this._y,this._z,this._order)},i.prototype.copy=function(t){return this._x=t._x,this._y=t._y,this._z=t._z,this._order=t._order,this._onChangeCallback(),this},i.prototype.setFromRotationMatrix=function(t,e,n){e===void 0&&(e=this._order),n===void 0&&(n=!0);var r=t.elements,s=r[0],o=r[4],a=r[8],h=r[1],l=r[5],c=r[9],u=r[2],g=r[6],d=r[10];switch(e){case"XYZ":this._y=Math.asin(bt(a,-1,1)),Math.abs(a)<.9999999?(this._x=Math.atan2(-c,d),this._z=Math.atan2(-o,s)):(this._x=Math.atan2(g,l),this._z=0);break;case"YXZ":this._x=Math.asin(-bt(c,-1,1)),Math.abs(c)<.9999999?(this._y=Math.atan2(a,d),this._z=Math.atan2(h,l)):(this._y=Math.atan2(-u,s),this._z=0);break;case"ZXY":this._x=Math.asin(bt(g,-1,1)),Math.abs(g)<.9999999?(this._y=Math.atan2(-u,d),this._z=Math.atan2(-o,l)):(this._y=0,this._z=Math.atan2(h,s));break;case"ZYX":this._y=Math.asin(-bt(u,-1,1)),Math.abs(u)<.9999999?(this._x=Math.atan2(g,d),this._z=Math.atan2(h,s)):(this._x=0,this._z=Math.atan2(-o,l));break;case"YZX":this._z=Math.asin(bt(h,-1,1)),Math.abs(h)<.9999999?(this._x=Math.atan2(-c,l),this._y=Math.atan2(-u,s)):(this._x=0,this._y=Math.atan2(a,d));break;case"XZY":this._z=Math.asin(-bt(o,-1,1)),Math.abs(o)<.9999999?(this._x=Math.atan2(g,l),this._y=Math.atan2(a,s)):(this._x=Math.atan2(-c,d),this._y=0);break;default:}return this._order=e,n===!0&&this._onChangeCallback(),this},i.prototype.setFromQuaternion=function(t,e,n){return n===void 0&&(n=!0),kr.makeRotationFromQuaternion(t),this.setFromRotationMatrix(kr,e,n)},i.prototype.setFromVector3=function(t,e){return e===void 0&&(e=this._order),this.set(t.x,t.y,t.z,e)},i.prototype.reorder=function(t){return Yr.setFromEuler(this),this.setFromQuaternion(Yr,t)},i.prototype.equals=function(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._order===this._order},i.prototype.fromArray=function(t){return this._x=t[0],this._y=t[1],this._z=t[2],t[3]!==void 0&&(this._order=t[3]),this._onChangeCallback(),this},i.prototype.toArray=function(t,e){return t===void 0&&(t=[]),e===void 0&&(e=0),t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._order,t},i.prototype._onChange=function(t){return this._onChangeCallback=t,this},i.prototype._onChangeCallback=function(){},i.prototype[Symbol.iterator]=function(){return Wa(this,function(t){switch(t.label){case 0:return[4,this._x];case 1:return t.sent(),[4,this._y];case 2:return t.sent(),[4,this._z];case 3:return t.sent(),[4,this._order];case 4:return t.sent(),[2]}})},i.DEFAULT_ORDER="XYZ",i}();function Cn(i,t,e){e===void 0&&(e=!1);for(var n=i.x,r=i.y,s=!1,o=t.length,a=0,h=o-1;a<o;h=a++){var l=t[a].x,c=t[a].y,u=t[h].x,g=t[h].y,d=c>r!=g>r;e&&(d=c>=r!=g>=r);var p=d&&n<(u-l)*(r-c)/(g-c)+l;p&&(s=!s)}return s}function Es(i,t){if(i.length===0||t.length===0)return!1;var e=new et().setFromPoints(i),n=new et().setFromPoints(t);if(!e.intersectsBox(n))return!1;for(var r=0;r<i.length;){if(Cn(i[r],t,!0))return!0;r<i.length-1&&di.equalPoint2d(i[r+1],i[r])&&++r,++r}return!1}var Ms={isPointInPolygon:Cn,isPolygonIntersect:Es},Ce=function(i,t){var e=typeof Symbol=="function"&&i[Symbol.iterator];if(!e)return i;var n=e.call(i),r,s=[],o;try{for(;(t===void 0||t-- >0)&&!(r=n.next()).done;)s.push(r.value)}catch(a){o={error:a}}finally{try{r&&!r.done&&(e=n.return)&&e.call(n)}finally{if(o)throw o.error}}return s},Oe=function(i,t,e){if(e||arguments.length===2)for(var n=0,r=t.length,s;n<r;n++)(s||!(n in t))&&(s||(s=Array.prototype.slice.call(t,0,n)),s[n]=t[n]);return i.concat(s||Array.prototype.slice.call(t))};function Ua(i,t){for(var e=[],n=t-1,r=i,s=0;s<=r;s++)e.push(0);for(var s=1;s<=n-r;s++)e.push(s);for(var s=0;s<=r;s++)e.push(n-r+1);return e}function $a(i,t){for(var e=t.length-1,n=i,r=[0],s=0,o=1;o<=e;o++){var a=t[o][0]-t[o-1][0],h=t[o][1]-t[o-1][1],l=t[o][2]-t[o-1][2],c=Math.sqrt(a*a+h*h+l*l);s+=c,r.push(s)}for(var u=[],o=0;o<=n;o++)u.push(0);for(var o=1;o<=e-n;o++){var g=r[o]/s;u.push(g*(e-n+1))}for(var o=0;o<=n;o++)u.push(e-n+1);return u}function Is(i,t){t===void 0&&(t="Uniform");var e=i.length;if(e===0)return[];if(e===1)return[0];var n=e-1;if(t==="Uniform")return new Array(e).fill(0).map(function(g,d){return d/n});for(var r=[0],s=0,o=1;o<=n;o++){var a=i[o][0]-i[o-1][0],h=i[o][1]-i[o-1][1],l=i[o][2]-i[o-1][2],c=Math.sqrt(a*a+h*h+l*l),u=t==="SqrtChord"?Math.sqrt(c):c;s+=u,r.push(s)}return s<1e-12?new Array(e).fill(0).map(function(g,d){return d/n}):r.map(function(g){return g/s})}function Ts(i,t){for(var e=t.length-1,n=i,r=e+n+1,s=new Array(r+1).fill(0),o=t[t.length-1],a=r-n;a<=r;a++)s[a]=o;for(var h=1;h<=e-n;h++){for(var l=0,a=h;a<h+n;a++)l+=t[a];s[h+n]=l/n}return s}function qa(i,t){for(var e=t.length-1,n=i,r=[0],s=0,o=1;o<=e;o++){var a=t[o][0]-t[o-1][0],h=t[o][1]-t[o-1][1],l=t[o][2]-t[o-1][2],c=Math.sqrt(a*a+h*h+l*l),u=Math.sqrt(c);s+=u,r.push(s)}for(var g=[],o=0;o<=n;o++)g.push(0);for(var o=1;o<=e-n;o++){var d=r[o]/s;g.push(d*(e-n+1))}for(var o=0;o<=n;o++)g.push(e-n+1);return g}function xi(i,t){for(var e=i.length,n=i.map(function(y){return y.slice()}),r=t.slice(),s=0;s<e;s++){for(var o=s,a=Math.abs(n[s][s]),h=s+1;h<e;h++){var l=Math.abs(n[h][s]);l>a&&(a=l,o=h)}if(a<1e-12)throw new Error("Interpolation matrix is singular.");if(o!==s){var c=n[s];n[s]=n[o],n[o]=c;var u=r[s];r[s]=r[o],r[o]=u}for(var h=s+1;h<e;h++){var g=n[h][s]/n[s][s];if(!(Math.abs(g)<1e-14)){for(var d=s;d<e;d++)n[h][d]-=g*n[s][d];r[h]-=g*r[s]}}}for(var p=new Array(e).fill(0),h=e-1;h>=0;h--){for(var f=r[h],d=h+1;d<e;d++)f-=n[h][d]*p[d];p[h]=f/n[h][h]}return p}function On(i,t,e,n,r){var s,o,a,h,l,c;if(e===void 0&&(e="Uniform"),i.length===0)return{controlPoints:[],knots:[],weights:[]};var u=i.map(function(At){var St;return[At[0],At[1],(St=At[2])!==null&&St!==void 0?St:0]}),g=!!n,d=!!r,p=(g?1:0)+(d?1:0),f=u.length-1,y=f+p;if(y<t)throw new Error("Not enough points to interpolate a curve of this degree.");var m=Is(u,e),x=m.slice();g&&x.unshift(m[0]),d&&x.push(m[m.length-1]);var S=Ts(t,x),A=y+1,L=new Array(A),T=new Array(A),M=new Array(A),X=new Array(A),I=0;L[I]=new Array(A).fill(0),L[I][0]=1,T[I]=u[0][0],M[I]=u[0][1],X[I]=u[0][2],I++;for(var z=1;z<=f-1;z++){var O=m[z];L[I]=new Array(A).fill(0);for(var R=0;R<=y;R++)L[I][R]=Nt(R,t,O,S);T[I]=u[z][0],M[I]=u[z][1],X[I]=u[z][2],I++}if(L[I]=new Array(A).fill(0),L[I][y]=1,T[I]=u[f][0],M[I]=u[f][1],X[I]=u[f][2],I++,g){var W=S[t+1]-S[0],J=W!==0?t/W:0;L[I]=new Array(A).fill(0),L[I][0]=-J,L[I][1]=J,T[I]=(s=n==null?void 0:n[0])!==null&&s!==void 0?s:0,M[I]=(o=n==null?void 0:n[1])!==null&&o!==void 0?o:0,X[I]=(a=n==null?void 0:n[2])!==null&&a!==void 0?a:0,I++}if(d){var W=S[y+t+1]-S[y],J=W!==0?t/W:0;L[I]=new Array(A).fill(0),L[I][y-1]=-J,L[I][y]=J,T[I]=(h=r==null?void 0:r[0])!==null&&h!==void 0?h:0,M[I]=(l=r==null?void 0:r[1])!==null&&l!==void 0?l:0,X[I]=(c=r==null?void 0:r[2])!==null&&c!==void 0?c:0,I++}for(var yt=xi(L,T),Dt=xi(L,M),Ut=xi(L,X),zt=new Array(A),z=0;z<A;z++)zt[z]=[yt[z],Dt[z],Ut[z]];var $t=new Array(A).fill(1);return{controlPoints:zt,knots:S,weights:$t}}function Nt(i,t,e,n){if(t===0)return e>=n[i]&&e<n[i+1]?1:0;var r=n[i+t]-n[i],s=n[i+t+1]-n[i+1],o=r>1e-10?(e-n[i])/r:0,a=s>1e-10?(n[i+t+1]-e)/s:0;return o*Nt(i,t-1,e,n)+a*Nt(i+1,t-1,e,n)}function me(i,t,e,n,r){var s=n.length-1,o=t;if(i=Math.max(e[o],Math.min(e[s+1],i)),Math.abs(i-e[s+1])<1e-8)return Oe([],Ce(n[s]),!1);if(Math.abs(i-e[o])<1e-8)return Oe([],Ce(n[0]),!1);for(var a=[0,0,0],h=0,l=0;l<=s;l++){var c=Nt(l,o,i,e),u=r[l]*c;a[0]+=n[l][0]*u,a[1]+=n[l][1]*u,a[2]+=n[l][2]*u,h+=u}if(Math.abs(h)<1e-10){var g=e[e.length-o-1];if(Math.abs(i-g)<1e-8)return Oe([],Ce(n[s]),!1);if(Math.abs(i-e[o])<1e-8)return Oe([],Ce(n[0]),!1)}return Math.abs(h)>=1e-10&&(a[0]/=h,a[1]/=h,a[2]/=h),a}function Ci(i,t,e,n){if(t===0)return 0;var r=n[i+t]-n[i],s=n[i+t+1]-n[i+1],o=0;return r>1e-10&&(o+=t/r*Nt(i,t-1,e,n)),s>1e-10&&(o-=t/s*Nt(i+1,t-1,e,n)),o}function Za(i,t,e,n){if(t<=1)return 0;var r=n[i+t]-n[i],s=n[i+t+1]-n[i+1],o=0;return r>1e-10&&(o+=t/r*Ci(i,t-1,e,n)),s>1e-10&&(o-=t/s*Ci(i+1,t-1,e,n)),o}function Ka(i,t,e,n,r){var s=n.length-1,o=t,a=e[o],h=e[s+1];i=Math.max(a,Math.min(h,i));for(var l=[0,0,0],c=[0,0,0],u=[0,0,0],g=0,d=0,p=0,f=0;f<=s;f++){var y=Nt(f,o,i,e),m=Ci(f,o,i,e),x=Za(f,o,i,e),S=r[f],A=S*y,L=S*m,T=S*x,M=n[f];l[0]+=A*M[0],l[1]+=A*M[1],l[2]+=A*M[2],c[0]+=L*M[0],c[1]+=L*M[1],c[2]+=L*M[2],u[0]+=T*M[0],u[1]+=T*M[1],u[2]+=T*M[2],g+=A,d+=L,p+=T}if(Math.abs(g)<1e-10){var X=me(i,t,e,n,r);return{point:X,deriv1:[0,0,0],deriv2:[0,0,0]}}var I=g*g,z=[l[0]/g,l[1]/g,l[2]/g],O=[(c[0]*g-l[0]*d)/I,(c[1]*g-l[1]*d)/I,(c[2]*g-l[2]*d)/I],R=u[0]*g-l[0]*p,W=u[1]*g-l[1]*p,J=u[2]*g-l[2]*p,yt=[R/I-2*d*O[0]/g,W/I-2*d*O[1]/g,J/I-2*d*O[2]/g];return{point:z,deriv1:O,deriv2:yt}}function Qa(i,t){var e=i[0],n=i[1],r=t[0],s=t[1],o=e*e+n*n;return o<1e-20?0:(e*s-n*r)/Math.pow(o,1.5)}function Cs(i,t,e,n){for(var r=i,s=t[r],o=t[t.length-r-1],a=0,h=1e3,l=(o-s)/h,c=me(s,i,t,e,n),u=1;u<=h;u++){var g=s+u*l,d=me(g,i,t,e,n),p=d[0]-c[0],f=d[1]-c[1],y=d[2]-c[2];a+=Math.sqrt(p*p+f*f+y*y),c=d}var m=me(o,i,t,e,n),x=m[0]-c[0],S=m[1]-c[1],A=m[2]-c[2];return a+=Math.sqrt(x*x+S*S+A*A),a}function Ja(i,t,e,n,r){return t===void 0&&(t=3),e===void 0&&(e="Uniform"),i.length===0?[]:On(i,t,e,n,r).controlPoints}var Xr=new Y,Nr=new w,tl=new w,el=new w,vi=new _;function Os(i){return new Y().setFromExtrusionDirection(new w(i.x,i.y,i.z))}function kn(i){return Xr.setFromExtrusionDirection(new w(i.x,i.y,i.z)),Xr.extractBasis(Nr,tl,el),Nr.clone()}function il(i,t){var e;return new _(i.x,i.y,(e=i.z)!==null&&e!==void 0?e:0).applyMatrix4(Os(t))}function xe(i,t){var e;return new _(i.x,i.y,(e=i.z)!==null&&e!==void 0?e:0).applyMatrix4(Os(t).invert())}function Oi(i,t,e){var n,r,s=xe(i,e),o=xe(t,e);return vi.set(o.x-s.x,o.y-s.y,((n=o.z)!==null&&n!==void 0?n:0)-((r=s.z)!==null&&r!==void 0?r:0)),E.normalizeAngle(Math.atan2(vi.y,vi.x))}function ks(i){var t=i.length;if(t<3)return 0;for(var e=0,n=0,r=t-1;n<t;r=n++){var s=i[r],o=i[n];e+=s.x*o.y-o.x*s.y}return e*.5}function nl(i){return Math.abs(ks(i))}function rl(i){var t,e,n=i.length;if(n<3)return 0;for(var r=0,s=0,o=0,a=0,h=n-1;a<n;h=a++){var l=i[h],c=i[a],u=l.x,g=l.y,d=(t=l.z)!==null&&t!==void 0?t:0,p=c.x,f=c.y,y=(e=c.z)!==null&&e!==void 0?e:0;r+=(d+y)*(g-f),s+=(u+p)*(d-y),o+=(g+f)*(u-p)}return .5*Math.hypot(r,s,o)}function sl(i){return i.length<3?0:nl(i)}function Ys(i){return i.length<3?0:rl(i)}var Xs=function(){function i(){this._boundingBoxNeedsUpdate=!1}return Object.defineProperty(i.prototype,"boundingBoxNeedUpdate",{get:function(){return this._boundingBoxNeedsUpdate},enumerable:!1,configurable:!0}),i}(),ol=function(){var i=function(t,e){return i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,r){n.__proto__=r}||function(n,r){for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&(n[s]=r[s])},i(t,e)};return function(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");i(t,e);function n(){this.constructor=t}t.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}}(),Yn=function(i){ol(t,i);function t(){return i!==null&&i.apply(this,arguments)||this}return t.prototype.translate=function(e){return this.transform(new Ee().makeTranslation(e.x,e.y))},Object.defineProperty(t.prototype,"box",{get:function(){return(this._box==null||this._boundingBoxNeedsUpdate)&&(this._box=this.calculateBoundingBox(),this._boundingBoxNeedsUpdate=!1),this._box},enumerable:!1,configurable:!0}),t}(Xs),al=function(){var i=function(t,e){return i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,r){n.__proto__=r}||function(n,r){for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&(n[s]=r[s])},i(t,e)};return function(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");i(t,e);function n(){this.constructor=t}t.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}}(),ce=function(i){al(t,i);function t(){var e=i.call(this)||this;return e.arcLengthDivisions=100,e}return Object.defineProperty(t.prototype,"startPoint",{get:function(){return this.getPoint(0)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"endPoint",{get:function(){return this.getPoint(1)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"length",{get:function(){return this.getLength()},enumerable:!1,configurable:!0}),t.prototype.getPoint=function(e){throw new Error("AcGeCurve2d: .getPoint() not implemented.")},t.prototype.getPointAt=function(e){var n=this.getUtoTmapping(e);return this.getPoint(n)},t.prototype.getPoints=function(e){e===void 0&&(e=5);for(var n=[],r=0;r<=e;r++)n.push(this.getPoint(r/e));return n},t.prototype.getSpacedPoints=function(e){e===void 0&&(e=5);for(var n=[],r=0;r<=e;r++)n.push(this.getPointAt(r/e));return n},t.prototype.getLength=function(){var e=this.getLengths();return e[e.length-1]},t.prototype.getLengths=function(e){e===void 0&&(e=this.arcLengthDivisions);var n=[],r,s=this.getPoint(0),o=0;n.push(0);for(var a=1;a<=e;a++)r=this.getPoint(a/e),o+=r.distanceTo(s),n.push(o),s=r;return n},t.prototype.getUtoTmapping=function(e,n){var r=this.getLengths(),s=0,o=r.length,a;n?a=n:a=e*r[o-1];for(var h=0,l=o-1,c;h<=l;)if(s=Math.floor(h+(l-h)/2),c=r[s]-a,c<0)h=s+1;else if(c>0)l=s-1;else{l=s;break}if(s=l,r[s]===a)return s/(o-1);var u=r[s],g=r[s+1],d=g-u,p=(a-u)/d,f=(s+p)/(o-1);return f},t.prototype.getTangent=function(e){var n=1e-4,r=e-n,s=e+n;r<0&&(r=0),s>1&&(s=1);var o=this.getPoint(r),a=this.getPoint(s),h=new P;return h.copy(a).sub(o).normalize(),h},t.prototype.getTangentAt=function(e){var n=this.getUtoTmapping(e);return this.getTangent(n)},t}(Yn),ll=function(){var i=function(t,e){return i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,r){n.__proto__=r}||function(n,r){for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&(n[s]=r[s])},i(t,e)};return function(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");i(t,e);function n(){this.constructor=t}t.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}}(),ke=function(i){var t=typeof Symbol=="function"&&Symbol.iterator,e=t&&i[t],n=0;if(e)return e.call(i);if(i&&typeof i.length=="number")return{next:function(){return i&&n>=i.length&&(i=void 0),{value:i&&i[n++],done:!i}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},Ye=function(i,t){var e=typeof Symbol=="function"&&i[Symbol.iterator];if(!e)return i;var n=e.call(i),r,s=[],o;try{for(;(t===void 0||t-- >0)&&!(r=n.next()).done;)s.push(r.value)}catch(a){o={error:a}}finally{try{r&&!r.done&&(e=n.return)&&e.call(n)}finally{if(o)throw o.error}}return s},Xe=function(i,t,e){if(e||arguments.length===2)for(var n=0,r=t.length,s;n<r;n++)(s||!(n in t))&&(s||(s=Array.prototype.slice.call(t,0,n)),s[n]=t[n]);return i.concat(s||Array.prototype.slice.call(t))},pt=function(i){ll(t,i);function t(e,n,r,s,o){var a=i.call(this)||this,h=+(e!==void 0)+ +(n!==void 0)+ +(r!==void 0)+ +(s!==void 0)+ +(o!==void 0);if(h==3)typeof e=="object"&&typeof n=="object"&&typeof r=="object"?a.createByThreePoints(e,n,r):a.createByStartEndPointsAndBulge(e,n,r);else if(h==5){var l=e;a.center=new P(l.x,l.y),a.radius=n,a._clockwise=o,a._startAngle=a._clockwise?a._mirrorAngle(E.normalizeAngle(r)):E.normalizeAngle(r),a._endAngle=a._clockwise?a._mirrorAngle(E.normalizeAngle(s)):E.normalizeAngle(s)}else throw st.ILLEGAL_PARAMETERS;return a}return t.prototype.createByThreePoints=function(e,n,r){var s=function(X,I){return{x:(X.x+I.x)/2,y:(X.y+I.y)/2}},o=function(X,I){return(I.y-X.y)/(I.x-X.x)},a=function(X){return-1/X},h=s(e,n),l=s(n,r),c=o(e,n),u=o(n,r),g=a(c),d=a(u),p=function(X,I,z,O){var R=(O-I)/(X-z),W=X*R+I;return{x:R,y:W}},f=h.y-g*h.x,y=l.y-d*l.x,m=p(g,f,d,y),x=Math.sqrt(Math.pow(e.x-m.x,2)+Math.pow(e.y-m.y,2)),S=function(X,I){return Math.atan2(X.y-I.y,X.x-I.x)},A=S(e,m),L=S(n,m),T=S(r,m),M=T>A&&T<L||A>T&&A<L||L>T&&L<A;this.center=m,this.radius=x,this._clockwise=!M,this._startAngle=A,this._endAngle=T},t.prototype.createByStartEndPointsAndBulge=function(e,n,r){var s,o,a;r<0?(s=Math.atan(-r)*4,o=new j(e),a=new j(n)):(s=Math.atan(r)*4,o=new j(n),a=new j(e));var h=new j().subVectors(a,o),l=h.length(),c=new j().addVectors(o,h.multiplyScalar(.5)),u=Math.abs(l/2/Math.tan(s/2)),g=h.normalize(),d=r<0?-Math.PI/2:Math.PI/2,p=new j(g.x*Math.cos(d)-g.y*Math.sin(d),g.y*Math.cos(d)+g.x*Math.sin(d)),f;s<Math.PI?r<0?f=c.add(p.multiplyScalar(u)):f=c.add(p.multiplyScalar(-u)):r<0?f=c.add(p.multiplyScalar(-u)):f=c.add(p.multiplyScalar(u)),r<0?(this._startAngle=Math.atan2(o.y-f.y,o.x-f.x),this._endAngle=Math.atan2(a.y-f.y,a.x-f.x)):(this._startAngle=Math.atan2(a.y-f.y,a.x-f.x),this._endAngle=Math.atan2(o.y-f.y,o.x-f.x)),this._clockwise=r<0,this.center=f,this.radius=a.sub(f).length()},Object.defineProperty(t.prototype,"center",{get:function(){return this._center},set:function(e){this._center=new P(e.x,e.y),this._boundingBoxNeedsUpdate=!0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"radius",{get:function(){return this._radius},set:function(e){this._radius=e,this._boundingBoxNeedsUpdate=!0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"startAngle",{get:function(){return this._clockwise?this._mirrorAngle(this._startAngle):this._startAngle},set:function(e){this._startAngle=this._clockwise?this._mirrorAngle(E.normalizeAngle(e)):E.normalizeAngle(e),this._boundingBoxNeedsUpdate=!0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"endAngle",{get:function(){return this._clockwise?this._mirrorAngle(this._endAngle):this._endAngle},set:function(e){var n=this.startAngle==0&&e==B?e:E.normalizeAngle(e);this._endAngle=this._clockwise?this._mirrorAngle(n):n,this._boundingBoxNeedsUpdate=!0},enumerable:!1,configurable:!0}),t.prototype._mirrorAngle=function(e){var n=e*180/Math.PI,r=(360-n)%360;return r*Math.PI/180},t.prototype._getInternalAngle=function(e){return this._clockwise?this._mirrorAngle(e):e},Object.defineProperty(t.prototype,"deltaAngle",{get:function(){var e=this._getInternalAngle(this.startAngle),n=this._getInternalAngle(this.endAngle);return this.clockwise?E.normalizeAngle(e-n):E.normalizeAngle(n-e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"clockwise",{get:function(){return this._clockwise},set:function(e){this._clockwise=e,this._boundingBoxNeedsUpdate=!0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"startPoint",{get:function(){return this.getPointAtAngle(this.startAngle)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"endPoint",{get:function(){return this.getPointAtAngle(this.endAngle)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"midPoint",{get:function(){var e=this._getInternalAngle(this.startAngle),n=this._clockwise?E.normalizeAngle(e-this.deltaAngle/2):E.normalizeAngle(e+this.deltaAngle/2),r=this._clockwise?this._mirrorAngle(n):n;return this.getPointAtAngle(r)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"closed",{get:function(){var e=this._getInternalAngle(this.startAngle),n=this._getInternalAngle(this.endAngle);return Math.abs(n-e)/Math.PI%2==0},enumerable:!1,configurable:!0}),t.prototype.calculateBoundingBox=function(){var e,n,r=[this.startPoint,this.endPoint],s=[0,Math.PI/2,Math.PI,3*Math.PI/2];try{for(var o=ke(s),a=o.next();!a.done;a=o.next()){var h=a.value,l=this._getInternalAngle(h);E.isBetweenAngle(l,this._getInternalAngle(this.startAngle),this._getInternalAngle(this.endAngle),this.clockwise)&&r.push(this.getPointAtAngle(h))}}catch(g){e={error:g}}finally{try{a&&!a.done&&(n=o.return)&&n.call(o)}finally{if(e)throw e.error}}var c=r.map(function(g){return g.x}),u=r.map(function(g){return g.y});return new et(new P(Math.min.apply(Math,Xe([],Ye(c),!1)),Math.min.apply(Math,Xe([],Ye(u),!1))),new P(Math.max.apply(Math,Xe([],Ye(c),!1)),Math.max.apply(Math,Xe([],Ye(u),!1))))},Object.defineProperty(t.prototype,"length",{get:function(){return Math.abs(this.deltaAngle*this.radius)},enumerable:!1,configurable:!0}),t.prototype.transform=function(e){var n=this,r=e,s=this.center.clone().applyMatrix2d(r),o=this.startPoint.clone().applyMatrix2d(r);if(this.closed)return this.center=s,this.radius=s.distanceTo(o),this._startAngle=Math.atan2(o.y-s.y,o.x-s.x),this._endAngle=this._startAngle,this._clockwise=r.determinant()<0?!this._clockwise:this._clockwise,this._boundingBoxNeedsUpdate=!0,this;var a=this.midPoint.clone().applyMatrix2d(r),h=this.endPoint.clone().applyMatrix2d(r),l=new t(o,a,h),c=r.determinant()<0?!this.clockwise:this.clockwise,u=function(g){var d=E.normalizeAngle(g);return c?n._mirrorAngle(d):d};return this.center=l.center,this.radius=l.radius,this.clockwise=c,this.startAngle=u(Math.atan2(o.y-l.center.y,o.x-l.center.x)),this.endAngle=u(Math.atan2(h.y-l.center.y,h.x-l.center.x)),this._boundingBoxNeedsUpdate=!0,this},t.prototype.clone=function(){return new t(this.center.clone(),this.radius,this._startAngle,this._endAngle,this.clockwise)},t.prototype.getPointAtAngle=function(e){var n=this._getInternalAngle(e),r=this.center.x+this.radius*Math.cos(n),s=this.center.y+this.radius*Math.sin(n);return new P(r,s)},t.prototype.getQuadrantPoints=function(){var e,n,r=[],s=this._getInternalAngle(this.startAngle),o=this._getInternalAngle(this.endAngle),a=[0,Math.PI/2,Math.PI,3*Math.PI/2];try{for(var h=ke(a),l=h.next();!l.done;l=h.next()){var c=l.value,u=this._getInternalAngle(c);E.isBetweenAngle(u,s,o,this.clockwise)&&r.push(this.getPointAtAngle(c))}}catch(g){e={error:g}}finally{try{l&&!l.done&&(n=h.return)&&n.call(h)}finally{if(e)throw e.error}}return r},t.prototype.nearestPoint=function(e){var n=new P(e.x,e.y),r=n.x-this.center.x,s=n.y-this.center.y,o=Math.hypot(r,s);if(o<1e-12)return this.startPoint.clone();var a=Math.atan2(s,r),h=this.clockwise?this._mirrorAngle(E.normalizeAngle(a)):E.normalizeAngle(a),l=this._getInternalAngle(h),c=this._getInternalAngle(this.startAngle),u=this._getInternalAngle(this.endAngle);if(E.isBetweenAngle(l,c,u,this.clockwise))return this.getPointAtAngle(h);var g=n.distanceToSquared(this.startPoint),d=n.distanceToSquared(this.endPoint);return g<=d?this.startPoint.clone():this.endPoint.clone()},t.prototype.perpendicularPoints=function(e){var n,r,s=new P(e.x,e.y),o=s.x-this.center.x,a=s.y-this.center.y,h=Math.hypot(o,a);if(h<1e-12)return[];var l=o/h,c=a/h,u=[new P(this.center.x+l*this.radius,this.center.y+c*this.radius),new P(this.center.x-l*this.radius,this.center.y-c*this.radius)],g=[],d=this._getInternalAngle(this.startAngle),p=this._getInternalAngle(this.endAngle);try{for(var f=ke(u),y=f.next();!y.done;y=f.next()){var m=y.value,x=Math.atan2(m.y-this.center.y,m.x-this.center.x),S=this.clockwise?this._mirrorAngle(E.normalizeAngle(x)):E.normalizeAngle(x),A=this._getInternalAngle(S);(this.closed||E.isBetweenAngle(A,d,p,this.clockwise))&&g.push(m)}}catch(L){n={error:L}}finally{try{y&&!y.done&&(r=f.return)&&r.call(f)}finally{if(n)throw n.error}}return g},t.prototype.tangentPoints=function(e){var n,r,s=[],o=e.x-this.center.x,a=e.y-this.center.y,h=Math.hypot(o,a),l=this.radius;if(h<l)return s;var c=Math.acos(l/h),u=Math.atan2(a,o),g=[u+c,u-c],d=this._getInternalAngle(this.startAngle),p=this._getInternalAngle(this.endAngle);try{for(var f=ke(g),y=f.next();!y.done;y=f.next()){var m=y.value,x=this.clockwise?this._mirrorAngle(E.normalizeAngle(m)):E.normalizeAngle(m),S=this._getInternalAngle(x);(this.closed||E.isBetweenAngle(S,d,p,this.clockwise))&&s.push(this.getPointAtAngle(x))}}catch(A){n={error:A}}finally{try{y&&!y.done&&(r=f.return)&&r.call(f)}finally{if(n)throw n.error}}return s},t.prototype.getPoints=function(e){e===void 0&&(e=100);var n=[],r=this.deltaAngle,s=this._getInternalAngle(this.startAngle);if(this.closed&&(r=B,s=0),this.clockwise)for(var o=0;o<=e;o++){var a=s-r*(o/e),h=this._clockwise?this._mirrorAngle(a):a,l=this.getPointAtAngle(h);n.push(new P(l.x,l.y))}else for(var o=0;o<=e;o++){var a=s+r*(o/e),h=this._clockwise?this._mirrorAngle(a):a,l=this.getPointAtAngle(h);n.push(new P(l.x,l.y))}return n},t}(ce),ki=function(){return ki=Object.assign||function(i){for(var t,e=1,n=arguments.length;e<n;e++){t=arguments[e];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(i[r]=t[r])}return i},ki.apply(this,arguments)},hl=function(i){var t=typeof Symbol=="function"&&Symbol.iterator,e=t&&i[t],n=0;if(e)return e.call(i);if(i&&typeof i.length=="number")return{next:function(){return i&&n>=i.length&&(i=void 0),{value:i&&i[n++],done:!i}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},Ne=1e-6;function Ns(i,t){if(Cl(i)){var e=ul(i,t);return e?[e]:[]}var n=Fs(i),r=n.numberOfVertices;if(r<2)return[];var s=kl(n,t);return s?[s]:[]}function cl(i){return Fs(i)}function ul(i,t){var e,n,r=dl(i);if(r.length===0)return null;var s=[];try{for(var o=hl(r),a=o.next();!a.done;a=o.next()){var h=a.value,l=pl(h,t);if(!l)return null;s.push(l)}}catch(d){e={error:d}}finally{try{a&&!a.done&&(n=o.return)&&n.call(o)}finally{if(e)throw e.error}}var c=gl(i),u=_l(s,c,i.closed,t);if(u.length<2)return null;var g=new H;return u.forEach(function(d,p){g.addVertexAt(p,{x:d.x,y:d.y})}),g.closed=i.closed,g}function dl(i){for(var t,e=[],n=i.numberOfVertices,r=i.closed?n:n-1,s=0;s<r;s++){var o=i.vertices[s],a=i.vertices[(s+1)%n];F.isPositive(Math.abs((t=o.bulge)!==null&&t!==void 0?t:0))?e.push({kind:"arc",arc:new pt(o,a,o.bulge)}):e.push({kind:"line",start:new P(o.x,o.y),end:new P(a.x,a.y)})}return e}function gl(i){for(var t=[],e=0;e<i.numberOfVertices;e++)t.push(i.getPointAt(e));return t}function pl(i,t){if(i.kind==="line"){var e=ml(i.start,i.end,t);return e?ki({kind:"line"},e):null}var n=fl(i.arc,i.arc.startPoint,i.arc.endPoint,t);return n?{kind:"arc",arc:n}:null}function fl(i,t,e,n){var r=yl(i,t,e,n),s=i.radius+r;return F.isNonPositive(s)?null:new pt(i.center,s,i.startAngle,i.endAngle,i.clockwise)}function yl(i,t,e,n){var r=e.x-t.x,s=e.y-t.y,o=Math.hypot(r,s);if(F.isNonPositive(o))return i.clockwise?-n:n;var a=-s/o,h=r/o,l=i.center.x-(t.x+e.x)/2,c=i.center.y-(t.y+e.y)/2,u=l*a+c*h>0;return u?-n:n}function ml(i,t,e){var n=t.x-i.x,r=t.y-i.y,s=Math.hypot(n,r);if(F.isNonPositive(s))return null;var o=-r/s*e,a=n/s*e;return{start:new P(i.x+o,i.y+a),end:new P(t.x+o,t.y+a),dx:n,dy:r}}function _l(i,t,e,n){var r,s,o,a=i.length;if(a===0)return[];for(var h=wl(i,t,e,n),l=[(s=(r=h[0].nextSegmentStart)===null||r===void 0?void 0:r.clone())!==null&&s!==void 0?s:h[0].point.clone()],c=0;c<a;c++){var u=i[c],g=c===a-1&&!e?{point:Al(u)}:h[(c+1)%a];if(c>0&&h[c].filletPoints&&h[c].filletPoints.forEach(function(m){return l.push(m.clone())}),u.kind==="arc")for(var d=(o=h[c].nextSegmentStart)!==null&&o!==void 0?o:h[c].point,p=g.point,f=bl(u.arc,d,p,Math.max(16,32)),y=1;y<f.length;y++)l.push(f[y]);else l.push(g.point.clone())}return Vs(l)}function wl(i,t,e,n){for(var r=i.length,s=[],o=0;o<r;o++)o===0?s.push(e?Br(i[r-1],i[0],t[0],n):{point:Pl(i[0])}):s.push(Br(i[o-1],i[o],t[o],n));return s}function bl(i,t,e,n){for(var r=i.nearestPoint(t),s=i.nearestPoint(e),o=Yi(i,r),a=Yi(i,s),h=vl(i,o,a),l=[],c=0;c<=n;c++){var u=c/n,g=i.clockwise?o-h*u:o+h*u;l.push(i.getPointAtAngle(xl(i,g)))}return l}function Yi(i,t){return Math.atan2(t.y-i.center.y,t.x-i.center.x)}function xl(i,t){var e=E.normalizeAngle(t);return i.clockwise?Xi(e):e}function Xi(i){var t=i*180/Math.PI;return(360-t)%360*(Math.PI/180)}function vl(i,t,e){if(i.clockwise){var n=t-e;return F.isNonPositive(n)&&(n+=B),n}var r=e-t;return F.isNonPositive(r)&&(r+=B),r}function Pl(i){return i.kind==="line"?i.start.clone():i.arc.startPoint.clone()}function Al(i){return i.kind==="line"?i.end.clone():i.arc.endPoint.clone()}function Br(i,t,e,n){return i.kind==="line"&&t.kind==="line"?{point:Ni({start:i.start,end:i.end,dx:i.dx,dy:i.dy},{start:t.start,end:t.end,dx:t.dx,dy:t.dy})}:i.kind==="line"&&t.kind==="arc"?Rr(i,t.arc,e,n,!0):i.kind==="arc"&&t.kind==="line"?Rr(t,i.arc,e,n,!1):i.kind==="arc"&&t.kind==="arc"?Sl(i.arc,t.arc,e,n):{point:e.clone()}}function Sl(i,t,e,n){var r=zs(i.endPoint,t.startPoint),s=Tl(i,t),o=s.filter(function(c){return He(i,c)&&He(t,c)});if(o.length>0)return{point:Rs(o,r)};var a=i.endPoint.clone(),h=t.startPoint.clone(),l=Bs(e,Math.abs(n),a,h);return{point:a,filletPoints:l,nextSegmentStart:h}}function Rr(i,t,e,n,r){var s=zs(r?i.end:i.start,r?t.startPoint:t.endPoint),o=Il(i,t,s);if(El(i,o)&&He(t,o))return{point:o};var a=Ll(i,e,n),h=r?t.startPoint.clone():t.endPoint.clone(),l=Bs(e,Math.abs(n),r?a:h,r?h:a);return r?{point:a,filletPoints:l,nextSegmentStart:h}:{point:h,filletPoints:l,nextSegmentStart:a}}function Ll(i,t,e){var n=Math.hypot(i.dx,i.dy),r=-i.dy/n*e,s=i.dx/n*e;return new P(t.x+r,t.y+s)}function El(i,t){var e=Math.hypot(i.dx,i.dy);if(F.isNonPositive(e))return!1;var n=i.dx/e,r=i.dy/e,s=t.x-i.start.x,o=t.y-i.start.y,a=Math.abs(s*r-o*n);return F.equalToZero(a)}function Bs(i,t,e,n){var r=Math.atan2(e.y-i.y,e.x-i.x),s=Math.atan2(n.y-i.y,n.x-i.x),o=Ml(r,s);if(F.equalToZero(Math.abs(o)))return[];for(var a=[],h=Math.max(2,Math.ceil(Math.abs(o)/Math.PI*16)),l=1;l<h;l++){var c=l/h,u=r+o*c;a.push(new P(i.x+t*Math.cos(u),i.y+t*Math.sin(u)))}return a}function Ml(i,t){for(var e=t-i;e>Math.PI;)e-=B;for(;e<=-Math.PI;)e+=B;return e}function Il(i,t,e){var n=Math.hypot(i.dx,i.dy);if(F.isNonPositive(n))return e.clone();var r=i.dx/n,s=i.dy/n,o=i.start.x-t.center.x,a=i.start.y-t.center.y,h=2*(o*r+a*s),l=o*o+a*a-t.radius*t.radius,c=h*h-4*l;if(c<0)return e.clone();var u=Math.sqrt(c),g=[(-h-u)/2,(-h+u)/2].map(function(p){return new P(i.start.x+r*p,i.start.y+s*p)}),d=g.filter(function(p){return He(t,p)});return Rs(d.length>0?d:g,e)}function He(i,t){var e=Math.abs(Math.hypot(t.x-i.center.x,t.y-i.center.y)-i.radius);if(F.isPositive(e))return!1;var n=Yi(i,t),r=i.clockwise?Xi(E.normalizeAngle(i.startAngle)):E.normalizeAngle(i.startAngle),s=i.clockwise?Xi(E.normalizeAngle(i.endAngle)):E.normalizeAngle(i.endAngle);return E.isBetweenAngle(n,r,s,i.clockwise)}function Tl(i,t){var e=t.center.x-i.center.x,n=t.center.y-i.center.y,r=Math.hypot(e,n);if(F.isNonPositive(r))return[];var s=i.radius+t.radius,o=Math.abs(i.radius-t.radius);if(r>s+Ne)return[];if(r<o-Ne)return[];var a=(i.radius*i.radius-t.radius*t.radius+r*r)/(2*r),h=i.radius*i.radius-a*a;if(h<-Ne)return[];var l=i.center.x+a*e/r,c=i.center.y+a*n/r;if(h<=Ne)return[new P(l,c)];var u=Math.sqrt(h),g=-n*u/r,d=e*u/r;return[new P(l+g,c+d),new P(l-g,c-d)]}function Rs(i,t){for(var e=i[0],n=e.distanceToSquared(t),r=1;r<i.length;r++){var s=i[r].distanceToSquared(t);s<n&&(e=i[r],n=s)}return e.clone()}function zs(i,t){return new P((i.x+t.x)/2,(i.y+t.y)/2)}function Cl(i){for(var t,e=i.numberOfVertices,n=i.closed?e:e-1,r=0;r<n;r++){var s=i.vertices[r];if(F.isPositive(Math.abs((t=s.bulge)!==null&&t!==void 0?t:0)))return!0}return!1}function Fs(i){var t=Ol(i.vertices.map(function(e){return new P(e.x,e.y)}),i.closed);return t.length===i.numberOfVertices?i:new H(t.map(function(e){return{x:e.x,y:e.y}}),i.closed)}function Ol(i,t){var e=Vs(i);if(!t||e.length<2)return e;var n=e[0],r=e[e.length-1];return F.isNonPositive(Math.hypot(n.x-r.x,n.y-r.y))&&e.pop(),e}function Vs(i){var t=[];return i.forEach(function(e){var n=t[t.length-1];(!n||F.isPositive(Math.hypot(n.x-e.x,n.y-e.y)))&&t.push(new P(e.x,e.y))}),t}function kl(i,t){for(var e=[],n=0;n<i.numberOfVertices;n++)e.push(i.getPointAt(n));var r=Yl(e,i.closed,t);if(r.length===0)return null;var s=[];if(i.closed){if(r.length<2)return null;for(var o=r.length,n=0;n<o;n++){var a=r[(n-1+o)%o],h=r[n];s.push(Ni(a,h))}}else{s.push(r[0].start);for(var n=1;n<r.length;n++)s.push(Ni(r[n-1],r[n]));s.push(r[r.length-1].end)}var l=new H;return s.forEach(function(c,u){l.addVertexAt(u,{x:c.x,y:c.y})}),l.closed=i.closed,l}function Yl(i,t,e){for(var n=[],r=t?i.length:i.length-1,s=0;s<r;s++){var o=i[s],a=i[t?(s+1)%i.length:s+1],h=a.x-o.x,l=a.y-o.y,c=Math.hypot(h,l);if(!F.isNonPositive(c)){var u=-l/c*e,g=h/c*e;n.push({start:new P(o.x+u,o.y+g),end:new P(a.x+u,a.y+g),dx:h,dy:l})}}return n}function Ni(i,t){var e=i.dx*t.dy-i.dy*t.dx;if(F.equalToZero(e))return new P((i.end.x+t.start.x)/2,(i.end.y+t.start.y)/2);var n=t.start.x-i.start.x,r=t.start.y-i.start.y,s=(n*t.dy-r*t.dx)/e;return new P(i.start.x+s*i.dx,i.start.y+s*i.dy)}var Xl=function(){var i=function(t,e){return i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,r){n.__proto__=r}||function(n,r){for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&(n[s]=r[s])},i(t,e)};return function(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");i(t,e);function n(){this.constructor=t}t.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}}(),Bi=function(){return Bi=Object.assign||function(i){for(var t,e=1,n=arguments.length;e<n;e++){t=arguments[e];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(i[r]=t[r])}return i},Bi.apply(this,arguments)},H=function(i){Xl(t,i);function t(e,n){e===void 0&&(e=null),n===void 0&&(n=!1);var r=i.call(this)||this;return r._vertices=e||new Array,r._closed=n,r}return Object.defineProperty(t.prototype,"vertices",{get:function(){return this._vertices},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"numberOfVertices",{get:function(){return this._vertices.length},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"closed",{get:function(){return this._closed},set:function(e){this._closed=e,this._boundingBoxNeedsUpdate=!0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"startPoint",{get:function(){if(this.numberOfVertices>0){var e=this._vertices[0];return new P(e.x,e.y)}throw new Error("Start point does not exist in an empty polyline.")},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"endPoint",{get:function(){var e=this.numberOfVertices;if(e>0)if(this.closed){var n=this._vertices[0];return new P(n.x,n.y)}else{var n=this._vertices[e-1];return new P(n.x,n.y)}throw new Error("End point does not exist in an empty polyline.")},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"length",{get:function(){for(var e=0,n=this._vertices.length,r=0;r<n;++r){var s=this._vertices[r],o=null;if(r<n-1?o=this._vertices[r+1]:r==n-1&&this.closed&&(o=this._vertices[0]),o)if(s.bulge){var a=new pt(s,o,s.bulge);e+=a.length}else e+=new P(s.x,s.y).distanceTo(o)}return e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"area",{get:function(){if(!this._closed||this._vertices.length<3)return 0;var e=this.getPoints(128);return sl(e)},enumerable:!1,configurable:!0}),t.prototype.addVertexAt=function(e,n){e<=0?this._vertices.unshift(n):this._vertices.splice(e,0,n),this._boundingBoxNeedsUpdate=!0},t.prototype.removeVertexAt=function(e){if(e<0||e>=this._vertices.length)throw new Error("Index ".concat(e," is out of bounds. Valid range is 0 to ").concat(this._vertices.length-1,"."));this._vertices.splice(e,1),this._boundingBoxNeedsUpdate=!0},t.prototype.reset=function(e,n){e?n!==void 0&&n>=0&&n<this._vertices.length&&(this._vertices=this._vertices.slice(0,n),this._boundingBoxNeedsUpdate=!0):(this._vertices=new Array,this._boundingBoxNeedsUpdate=!0)},t.prototype.getPointAt=function(e){var n=this._vertices[e];return new P(n.x,n.y)},t.prototype.calculateBoundingBox=function(){var e=this.getPoints(100);return new et().setFromPoints(e)},t.prototype.transform=function(e){var n=e.determinant()<0;return this._vertices.forEach(function(r){var s=new P(r).applyMatrix2d(e);r.x=s.x,r.y=s.y,n&&r.bulge!=null&&(r.bulge=-r.bulge)}),this._boundingBoxNeedsUpdate=!0,this},t.prototype.clone=function(){return new t(this._vertices.map(function(e){return Bi({},e)}),this._closed)},t.prototype.getPoints3d=function(e,n){var r=[],s=this.getPoints(e);return s.forEach(function(o){return r.push(new _().set(o.x,o.y,n))}),r},t.prototype.getPoints=function(e){for(var n=[],r=this._vertices.length,s=0;s<r;++s){var o=this._vertices[s];if(o.bulge){var a=null;if(s<r-1?a=this._vertices[s+1]:s==r-1&&this.closed&&(a=this._vertices[0]),a)for(var h=new pt(o,a,o.bulge),l=h.getPoints(e),c=l.length,u=0;u<c;++u){var g=l[u];n.push(new P(g.x,g.y))}}else n.push(new P(o.x,o.y)),s==r-1&&this.closed&&n.push(n[0])}return n},t.prototype.offset=function(e){return Ns(this,e)},t}(ce);function js(i,t,e){var n=Math.hypot(t.x,t.y);if(F.isNonPositive(n))return null;var r=-t.y/n*e,s=t.x/n*e;return new _(i.x+r,i.y+s,i.z)}function Nl(i,t,e){var n;if(i.length<2)return null;var r=cl(new H(i.map(function(o){return{x:o.x,y:o.y}}),t)),s=Ns(r,e);return(n=s[0])!==null&&n!==void 0?n:null}var We=function(i,t){var e=typeof Symbol=="function"&&i[Symbol.iterator];if(!e)return i;var n=e.call(i),r,s=[],o;try{for(;(t===void 0||t-- >0)&&!(r=n.next()).done;)s.push(r.value)}catch(a){o={error:a}}finally{try{r&&!r.done&&(e=n.return)&&e.call(n)}finally{if(o)throw o.error}}return s},se=function(i,t,e){if(e||arguments.length===2)for(var n=0,r=t.length,s;n<r;n++)(s||!(n in t))&&(s||(s=Array.prototype.slice.call(t,0,n)),s[n]=t[n]);return i.concat(s||Array.prototype.slice.call(t))};function Bl(i,t,e,n){if(i.length<2||F.equalToZero(e))return null;var r=Hs(i,n),s=r.points,o=r.tangents;if(s.length<2)return null;var a=o??Rl(s,t),h=zl(s,a,e),l=t?Vl(h):Fl(h);if(l.length<2)return null;var c=new H;return l.forEach(function(u,g){c.addVertexAt(g,{x:u.x,y:u.y})}),c.closed=t,c}function Rl(i,t){for(var e=i.length,n=new Array(e),r=0;r<e;r++){var s=0,o=0;if(t){var a=i[(r-1+e)%e],h=i[(r+1)%e];s=h.x-a.x,o=h.y-a.y}else r===0?(s=i[1].x-i[0].x,o=i[1].y-i[0].y):r===e-1?(s=i[e-1].x-i[e-2].x,o=i[e-1].y-i[e-2].y):(s=i[r+1].x-i[r-1].x,o=i[r+1].y-i[r-1].y);var l=Math.hypot(s,o);F.isNonPositive(l)?n[r]=new P(1,0):n[r]=new P(s/l,o/l)}return n}function zl(i,t,e){return i.map(function(n,r){var s=t[r],o=-s.y*e,a=s.x*e;return new P(n.x+o,n.y+a)})}function Fl(i){var t=De(i);if(t.length<3)return t;for(;;){var e=Gs(t,!1);if(!e||(t=De(se(se(se([],We(t.slice(0,e.segmentA+1)),!1),[e.point],!1),We(t.slice(e.segmentB+1)),!1)),t.length<2))break}return t}function Vl(i){var t=De(i);if(t.length<4)return t;for(;;){var e=Gs(t,!0);if(!e||(t=De(se(se(se([],We(t.slice(0,e.segmentA+1)),!1),[e.point],!1),We(t.slice(e.segmentB+1)),!1)),t.length<3))break}return t}function Gs(i,t){var e=t?i.length:i.length-1;if(e<2)return null;for(var n=0;n<e;n++)for(var r=i[n],s=i[(n+1)%i.length],o=n+1;o<e;o++)if(!jl(n,o,e,t)){var a=i[o],h=i[(o+1)%i.length],l=Gl(r,s,a,h);if(l)return{point:l,segmentA:n,segmentB:o}}return null}function jl(i,t,e,n){return!!(t===i||t===i+1||n&&i===0&&t===e-1)}function Gl(i,t,e,n){var r=t.x-i.x,s=t.y-i.y,o=n.x-e.x,a=n.y-e.y,h=r*a-s*o;if(F.equalToZero(h))return null;var l=e.x-i.x,c=e.y-i.y,u=(l*a-c*o)/h,g=(l*s-c*r)/h,d=di.equalPointTol;return u<-d||u>1+d||g<-d||g>1+d?null:new P(i.x+u*r,i.y+u*s)}function Hs(i,t){var e=[],n=[],r=t!=null&&t.length===i.length;return i.forEach(function(s,o){var a=e[e.length-1];if((!a||F.isPositive(Math.hypot(a.x-s.x,a.y-s.y)))&&(e.push(new P(s.x,s.y)),r)){var h=t[o];n.push(new P(h.x,h.y))}}),{points:e,tangents:r?n:void 0}}function De(i){return Hs(i).points}var Hl=function(){var i=function(t,e){return i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,r){n.__proto__=r}||function(n,r){for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&(n[s]=r[s])},i(t,e)};return function(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");i(t,e);function n(){this.constructor=t}t.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}}(),Bt=function(i){Hl(t,i);function t(){var e=i.call(this)||this;return e._loops=[],e}return t.prototype.add=function(e){this._loops.push(e),this._boundingBoxNeedsUpdate=!0},Object.defineProperty(t.prototype,"loops",{get:function(){return this._loops},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"outter",{get:function(){if(this._loops.length>0)return this._loops[0]},enumerable:!1,configurable:!0}),t.prototype.calculateBoundingBox=function(){var e=this.outter;return e?e.box:new et},t.prototype.transform=function(e){return this._loops.forEach(function(n){n.transform(e)}),this._boundingBoxNeedsUpdate=!0,this},t.prototype.clone=function(){var e=new t;return this._loops.forEach(function(n){e.add(n.clone())}),e},t.prototype.getPoints=function(e){for(var n=[],r=0;r<this.loops.length;++r){var s=this.loops[r],o=s.getPoints(e);n.push(o)}return n},t.prototype.buildHierarchy=function(){for(var e,n=this.getPoints(100),r=this.calculateBoundaryBoxes(n),s=this.sortBoundaryBoxesByAreas(r),o=new Map,a=s.length,h=0;h<a;h++)o.set(s[h],{index:s[h],children:[]});for(var l={index:-1,children:[]},h=0;h<a;h++){for(var c=s[h],u=n[c],g=r[c],d=h+1;d<a;d++){var p=s[d],f=n[p],y=r[p];if(y.containsBox(g)&&Ms.isPointInPolygon(u[E.randInt(0,u.length-1)],f)){(e=o.get(p))===null||e===void 0||e.children.push(o.get(c));break}}d===a&&l.children.push(o.get(c))}return l},Object.defineProperty(t.prototype,"area",{get:function(){if(this._loops.length===0)return 0;for(var e=0,n=0;n<this._loops.length;n++){var r=this._loops[n],s=r.getPoints(128),o=ks(s);n===0?e+=Math.abs(o):e-=Math.abs(o)}return e},enumerable:!1,configurable:!0}),t.prototype.calculateBoundaryBoxes=function(e){var n=[];return e.forEach(function(r){n.push(new et().setFromPoints(r))}),n},t.prototype.sortBoundaryBoxesByAreas=function(e){var n=[];e.forEach(function(s,o){var a=s.size,h=a.width*a.height;n.push({area:h,index:o})}),n.sort(function(s,o){return s.area-o.area});var r=[];return n.forEach(function(s){r.push(s.index)}),r},t}(Yn),Wl=function(){var i=function(t,e){return i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,r){n.__proto__=r}||function(n,r){for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&(n[s]=r[s])},i(t,e)};return function(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");i(t,e);function n(){this.constructor=t}t.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}}(),Dl=function(i){Wl(t,i);function t(){return i!==null&&i.apply(this,arguments)||this}return t.prototype.translate=function(e){return this.transform(new Y().makeTranslation(e.x,e.y,e.z))},Object.defineProperty(t.prototype,"box",{get:function(){return(this._box==null||this._boundingBoxNeedsUpdate)&&(this._box=this.calculateBoundingBox(),this._boundingBoxNeedsUpdate=!1),this._box},enumerable:!1,configurable:!0}),t}(Xs),Ul=function(){var i=function(t,e){return i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,r){n.__proto__=r}||function(n,r){for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&(n[s]=r[s])},i(t,e)};return function(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");i(t,e);function n(){this.constructor=t}t.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}}(),Me=function(i){Ul(t,i);function t(){return i!==null&&i.apply(this,arguments)||this}return t}(Dl),$l=function(){var i=function(t,e){return i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,r){n.__proto__=r}||function(n,r){for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&(n[s]=r[s])},i(t,e)};return function(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");i(t,e);function n(){this.constructor=t}t.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}}(),xt=function(i){$l(t,i);function t(e,n){var r=i.call(this)||this;return r._start=new _(e),r._end=new _(n),r}return Object.defineProperty(t.prototype,"startPoint",{get:function(){return this._start},set:function(e){this._start.copy(e),this._boundingBoxNeedsUpdate=!0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"endPoint",{get:function(){return this._end},set:function(e){this._end.copy(e),this._boundingBoxNeedsUpdate=!0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"direction",{get:function(){return new w().subVectors(this.endPoint,this.startPoint).normalize()},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"midPoint",{get:function(){return new _((this._start.x+this._end.x)/2,(this._start.y+this._end.y)/2,(this._start.z+this._end.z)/2)},enumerable:!1,configurable:!0}),t.prototype.nearestPoint=function(e){return this.project(e)},Object.defineProperty(t.prototype,"length",{get:function(){return this.startPoint.distanceTo(this.endPoint)},enumerable:!1,configurable:!0}),t.prototype.isPointOnLine=function(e){var n=this.project(e),r=1e-6;return n.distanceTo(e)<r},t.prototype.at=function(e,n){return this.delta(n).multiplyScalar(e).add(this._start)},t.prototype.atLength=function(e,n){if(n===void 0&&(n=!1),n){var r=this.delta(Ft).normalize();return new _(this._start).addScaledVector(r,e)}else{var r=this.delta(Ft).normalize();return new _(this._end).addScaledVector(r,e)}},t.prototype.extend=function(e,n){if(n===void 0&&(n=!1),n){var r=Ft.subVectors(this._start,this._end).normalize();this._start=new _(this._start).addScaledVector(r,e)}else{var r=this.delta(Ft).normalize();this._end=new _(this._end).addScaledVector(r,e)}return this._boundingBoxNeedsUpdate=!0,this},t.prototype.closestPointToPointParameter=function(e,n){zr.subVectors(e,this._start),Be.subVectors(this.endPoint,this.startPoint);var r=Be.dot(Be),s=Be.dot(zr),o=s/r;return n&&(o=E.clamp(o,0,1)),o},t.prototype.closestPointToPoint=function(e,n,r){var s=this.closestPointToPointParameter(e,n);return this.delta(r).multiplyScalar(s).add(this._start)},t.prototype.delta=function(e){return e.subVectors(this._end,this._start)},t.prototype.distanceSq=function(){return this._start.distanceToSquared(this._end)},t.prototype.distance=function(){return this._start.distanceTo(this._end)},t.prototype.project=function(e){var n=this.direction,r=Ft.subVectors(e,this.startPoint),s=r.dot(n);return new _().copy(n).multiplyScalar(s).add(this.startPoint)},t.prototype.perpPoint=function(e){var n=this.direction,r=this.startPoint,s=Ft.subVectors(e,r),o=s.dot(n),a=Ft.copy(n).multiplyScalar(o);return new _().addVectors(r,a)},t.prototype.calculateBoundingBox=function(){var e=new _(Math.min(this._start.x,this._end.x),Math.min(this._start.y,this._end.y),Math.min(this._start.z,this._end.z)),n=new _(Math.max(this._start.x,this._end.x),Math.max(this._start.y,this._end.y),Math.max(this._start.z,this._end.z));return new C(e,n)},t.prototype.transform=function(e){return this._start.applyMatrix4(e),this._end.applyMatrix4(e),this._boundingBoxNeedsUpdate=!0,this},Object.defineProperty(t.prototype,"closed",{get:function(){return!1},enumerable:!1,configurable:!0}),t.prototype.copy=function(e){return this.startPoint=e.startPoint,this.endPoint=e.endPoint,this._boundingBoxNeedsUpdate=!0,this},t.prototype.clone=function(){return new t(this._start.clone(),this._end.clone())},t.prototype.offset=function(e){var n=this.startPoint,r=this.endPoint,s=Math.hypot(r.x-n.x,r.y-n.y);if(s===0)return this.clone();var o=new w(r.x-n.x,r.y-n.y,0).normalize(),a=new w(-o.y,o.x,0);return new t(new _(n.x+a.x*e,n.y+a.y*e,n.z),new _(r.x+a.x*e,r.y+a.y*e,r.z))},t}(Me),Ft=new w,zr=new w,Be=new w,ql=function(){var i=function(t,e){return i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,r){n.__proto__=r}||function(n,r){for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&(n[s]=r[s])},i(t,e)};return function(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");i(t,e);function n(){this.constructor=t}t.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}}(),Pi=function(i){var t=typeof Symbol=="function"&&Symbol.iterator,e=t&&i[t],n=0;if(e)return e.call(i);if(i&&typeof i.length=="number")return{next:function(){return i&&n>=i.length&&(i=void 0),{value:i&&i[n++],done:!i}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},gi=function(i){ql(t,i);function t(e,n,r,s,o,a){a===void 0&&(a=w.X_AXIS);var h=i.call(this)||this;return h.center=e,h.radius=n,h.startAngle=r,h.endAngle=s,h.normal=o,h.refVec=a,(s-r)%B==0?(h.startAngle=0,h.endAngle=B):(h.startAngle=r,h.endAngle=s),h}return t.computeCenterPoint=function(e,n,r){var s=new w().addVectors(e,n).multiplyScalar(.5),o=new w().addVectors(e,r).multiplyScalar(.5),a=new w().subVectors(n,e),h=new w().subVectors(r,e),l=new w().crossVectors(a,h).normalize();if(l.lengthSq()===0)return null;var c=new w().crossVectors(a,l).normalize(),u=new w().crossVectors(h,l).normalize(),g=c.clone().multiplyScalar(Number.MAX_SAFE_INTEGER),d=u.clone().multiplyScalar(Number.MAX_SAFE_INTEGER),p=new xt(s,s.clone().add(g)),f=new xt(o,o.clone().add(d)),y=new w,m=p.closestPointToPoint(f.startPoint,!0,y);return m?y:null},t.createByThreePoints=function(e,n,r){var s=t.computeCenterPoint(e,n,r);if(s){var o=s.distanceTo(e),a=new w().subVectors(e,s),h=new w().subVectors(n,s),l=Math.atan2(a.y,a.x),c=Math.atan2(h.y,h.x);return new t(s,o,l,c,w.Z_AXIS)}},Object.defineProperty(t.prototype,"center",{get:function(){return this._center},set:function(e){this._center=new _(e.x,e.y,e.z||0),this._boundingBoxNeedsUpdate=!0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"radius",{get:function(){return this._radius},set:function(e){if(e<0)throw st.ILLEGAL_PARAMETERS;this._radius=e,this._boundingBoxNeedsUpdate=!0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"startAngle",{get:function(){return this._startAngle},set:function(e){this._startAngle=E.normalizeAngle(e),this._boundingBoxNeedsUpdate=!0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"endAngle",{get:function(){return this._endAngle},set:function(e){this._endAngle=this.startAngle==0&&e==B?e:E.normalizeAngle(e),this._boundingBoxNeedsUpdate=!0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"deltaAngle",{get:function(){return E.normalizeAngle(this.endAngle-this.startAngle)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"isLargeArc",{get:function(){return Math.abs(this.deltaAngle)>Math.PI?1:0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"clockwise",{get:function(){return this.deltaAngle<=0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"normal",{get:function(){return this._normal},set:function(e){this._normal=new w(e.x,e.y,e.z),this._normal.normalize(),this._boundingBoxNeedsUpdate=!0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"refVec",{get:function(){return this._refVec},set:function(e){this._refVec=new w(e.x,e.y,e.z),this._refVec.normalize(),this._boundingBoxNeedsUpdate=!0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"startPoint",{get:function(){return this.getPointAtAngle(this._startAngle)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"endPoint",{get:function(){return this.getPointAtAngle(this._endAngle)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"midPoint",{get:function(){var e=this.startAngle,n=this.deltaAngle;this.closed&&(e=0,n=B);var r=e+n*.5;return this.getPointAtAngle(r)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"length",{get:function(){return this.closed?2*Math.PI*this.radius:Math.abs(this.deltaAngle*this.radius)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"area",{get:function(){return this.closed?Math.PI*this.radius*this.radius:0},enumerable:!1,configurable:!0}),t.prototype.nearestPoint=function(e){var n=new w(e.x,e.y,e.z||0),r=this.center,s=this.normal,o=n.clone().sub(r),a=o.dot(s),h=n.clone().sub(s.clone().multiplyScalar(a)),l=h.clone().sub(r);if(l.lengthSq()===0)return this.startPoint.clone();l.normalize().multiplyScalar(this.radius);var c=r.clone().add(l),u=this.getAngle(c.clone()),g=this.startAngle,d=this.deltaAngle,p=E.normalizeAngle(u-g);p<0&&(p=0),p>d&&(p=d);var f=this.getPointAtAngle(g+p),y=f.distanceTo(n),m=this.startPoint.distanceTo(n),x=this.endPoint.distanceTo(n);return m<y&&m<=x?this.startPoint.clone():x<y&&x<m?this.endPoint.clone():f},t.prototype.tangentPoints=function(e){var n,r,s=[],o=new w(e.x,e.y,e.z||0),a=this.center,h=this.normal,l=this.radius,c=o.clone().sub(a),u=c.dot(h),g=o.clone().sub(h.clone().multiplyScalar(u)),d=a.clone(),p=g.clone().sub(d),f=p.length();if(f<l)return s;var y=Math.acos(l/f),m=this.getAngle(g.clone()),x=[m+y,m-y];try{for(var S=Pi(x),A=S.next();!A.done;A=S.next()){var L=A.value,T=E.normalizeAngle(L-this.startAngle);T>=0&&T<=this.deltaAngle&&s.push(this.getPointAtAngle(this.startAngle+T))}}catch(M){n={error:M}}finally{try{A&&!A.done&&(r=S.return)&&r.call(S)}finally{if(n)throw n.error}}return s},t.prototype.perpendicularPoints=function(e){var n,r,s=[],o=new w(e.x,e.y,e.z||0),a=this.center,h=this.normal,l=this.radius,c=o.clone().sub(a),u=c.dot(h),g=o.clone().sub(h.clone().multiplyScalar(u)),d=g.clone().sub(a);if(d.lengthSq()<1e-24)return s;d.normalize();var p=[a.clone().add(d.clone().multiplyScalar(l)),a.clone().sub(d.clone().multiplyScalar(l))];try{for(var f=Pi(p),y=f.next();!y.done;y=f.next()){var m=y.value,x=this.getAngle(m.clone()),S=E.normalizeAngle(x-this.startAngle);S>=0&&S<=this.deltaAngle&&s.push(new _(m.x,m.y,m.z||0))}}catch(A){n={error:A}}finally{try{y&&!y.done&&(r=f.return)&&r.call(f)}finally{if(n)throw n.error}}return s},t.prototype.nearestTangentPoint=function(e){var n=this.tangentPoints(e);if(n.length===0)return null;var r=new _(e.x,e.y,e.z||0);return n.length===1||n[0].distanceTo(r)<n[1].distanceTo(r)?n[0]:n[1]},t.prototype.calculateBoundingBox=function(){for(var e,n,r=[this.startAngle,this.endAngle],s=0;s<2*Math.PI;s+=Math.PI/2)E.isBetweenAngle(s,this.startAngle,this.endAngle)&&r.push(s);var o=1/0,a=1/0,h=1/0,l=-1/0,c=-1/0,u=-1/0;try{for(var g=Pi(r),d=g.next();!d.done;d=g.next()){var p=d.value,f=this.getPointAtAngle(p);f.x<o&&(o=f.x),f.y<a&&(a=f.y),f.z<h&&(h=f.z),f.x>l&&(l=f.x),f.y>c&&(c=f.y),f.z>u&&(u=f.z)}}catch(y){e={error:y}}finally{try{d&&!d.done&&(n=g.return)&&n.call(g)}finally{if(e)throw e.error}}return new C({x:o,y:a,z:h},{x:l,y:c,z:u})},Object.defineProperty(t.prototype,"closed",{get:function(){return Math.abs(this.endAngle-this.startAngle)/Math.PI%2==0},enumerable:!1,configurable:!0}),t.prototype.getPoints=function(e){var n=[],r=this.deltaAngle,s=this.startAngle;this.closed&&(r=B,s=0);for(var o=0;o<=e;o++){var a=s+r*(o/e),h=this.getPointAtAngle(a);n.push(h)}return n},t.prototype.transform=function(e){var n=this.center.clone().applyMatrix4(e),r=this.startPoint.clone().applyMatrix4(e),s=this.endPoint.clone().applyMatrix4(e),o=this.getPointAtAngle(this.closed?Math.PI/2:this.startAngle+this.deltaAngle/2).clone().applyMatrix4(e),a=new w(r).sub(n).normalize(),h=n.distanceTo(r),l=new w().crossVectors(new w(r).sub(n),new w(o).sub(n)).normalize();l.lengthSq()===0&&(l=this.normal.clone().transformDirection(e));var c=function(u){var g=new w(u).sub(n);return Math.atan2(g.dot(Fr.crossVectors(l,a)),g.dot(a))};return this.center=n,this.radius=h,this.normal=l,this.refVec=a,this.startAngle=0,this.endAngle=this.closed?B:c(s),this._boundingBoxNeedsUpdate=!0,this},t.prototype.copy=function(e){return this.center=e.center,this.radius=e.radius,this.startAngle=e.startAngle,this.endAngle=e.endAngle,this.normal=e.normal,this.refVec=e.refVec,this._boundingBoxNeedsUpdate=!0,this},t.prototype.clone=function(){return new t(this.center.clone(),this.radius,this.startAngle,this.endAngle,this.normal,this.refVec)},t.prototype.getAngle=function(e){return e.sub(this.center),Math.atan2(e.dot(Fr.crossVectors(this.refVec,this.normal)),e.dot(this.refVec))},t.prototype.getPointAtAngle=function(e){var n=this.normal,r=this.refVec,s={x:n.y*r.z-n.z*r.y,y:n.z*r.x-n.x*r.z,z:n.x*r.y-n.y*r.x},o=this.center,a=this.radius;return new _(o.x+a*(r.x*Math.cos(e)+s.x*Math.sin(e)),o.y+a*(r.y*Math.cos(e)+s.y*Math.sin(e)),o.z+a*(r.z*Math.cos(e)+s.z*Math.sin(e)))},Object.defineProperty(t.prototype,"plane",{get:function(){var e=new w(this.center).distanceTo(In);return new Tn(this.normal,e)},enumerable:!1,configurable:!0}),t.prototype.offset=function(e){var n=this.radius+e;return n<=0?null:new t(this.center,n,this.startAngle,this.endAngle,this.normal,this.refVec)},t}(Me),Fr=new w,Zl=function(){var i=function(t,e){return i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,r){n.__proto__=r}||function(n,r){for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&(n[s]=r[s])},i(t,e)};return function(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");i(t,e);function n(){this.constructor=t}t.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}}(),ve=function(i){Zl(t,i);function t(e,n,r,s,o,a,h){s===void 0&&(s=0),o===void 0&&(o=B),a===void 0&&(a=!1),h===void 0&&(h=0);var l=i.call(this)||this;return l.center=e,l.majorAxisRadius=n,l.minorAxisRadius=r,(o-s)%B==0?(l.startAngle=0,l.endAngle=B):(l.startAngle=s,l.endAngle=o),l.clockwise=a,l.rotation=h,l}return Object.defineProperty(t.prototype,"center",{get:function(){return this._center},set:function(e){this._center=new _(e.x,e.y,e.z||0),this._boundingBoxNeedsUpdate=!0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"majorAxisRadius",{get:function(){return this._majorAxisRadius},set:function(e){if(e<0)throw st.ILLEGAL_PARAMETERS;this._majorAxisRadius=e,this._boundingBoxNeedsUpdate=!0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"minorAxisRadius",{get:function(){return this._minorAxisRadius},set:function(e){if(e<0)throw st.ILLEGAL_PARAMETERS;this._minorAxisRadius=e,this._boundingBoxNeedsUpdate=!0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"startAngle",{get:function(){return this._startAngle},set:function(e){this._startAngle=E.normalizeAngle(e),this._boundingBoxNeedsUpdate=!0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"endAngle",{get:function(){return this._endAngle},set:function(e){this._endAngle=this.startAngle==0&&e==B?e:E.normalizeAngle(e),this._boundingBoxNeedsUpdate=!0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"clockwise",{get:function(){return this._clockwise},set:function(e){this._clockwise=e,this._boundingBoxNeedsUpdate=!0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"rotation",{get:function(){return this._rotation},set:function(e){this._rotation=e,this._boundingBoxNeedsUpdate=!0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"deltaAngle",{get:function(){return E.normalizeAngle(this.endAngle-this.startAngle)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"isLargeArc",{get:function(){return Math.abs(this.deltaAngle)>Math.PI?1:0},enumerable:!1,configurable:!0}),t.prototype.calculateBoundingBox=function(){for(var e=100,n=1/0,r=1/0,s=-1/0,o=-1/0,a=0;a<=e;a++){var h=this.getPoint(a/e);n=Math.min(n,h.x),r=Math.min(r,h.y),s=Math.max(s,h.x),o=Math.max(o,h.y)}return new et({x:n,y:r},{x:s,y:o})},Object.defineProperty(t.prototype,"closed",{get:function(){return this.deltaAngle==0},enumerable:!1,configurable:!0}),t.prototype.getPoint=function(e){for(var n=Math.PI*2,r=this.endAngle-this.startAngle,s=Math.abs(r)<Number.EPSILON;r<0;)r+=n;for(;r>n;)r-=n;r<Number.EPSILON&&(s?r=0:r=n),this.clockwise===!0&&!s&&(r===n?r=-n:r=r-n);var o=this.startAngle+e*r,a=this.center.x+this.majorAxisRadius*Math.cos(o),h=this.center.y+this.minorAxisRadius*Math.sin(o);if(this.rotation!==0){var l=Math.cos(this.rotation),c=Math.sin(this.rotation),u=a-this.center.x,g=h-this.center.y;a=u*l-g*c+this.center.x,h=u*c+g*l+this.center.y}return new P(a,h)},t.prototype.transform=function(e){var n=e,r=new P(this.center).applyMatrix2d(n),s=new _(r.x,r.y,this.center.z),o=this.getPointAtAngle(0).clone().applyMatrix2d(n),a=this.getPointAtAngle(Math.PI/2).clone().applyMatrix2d(n),h=new P(o).sub(r),l=new P(a).sub(r),c=h.length(),u=l.length(),g=Math.atan2(h.y,h.x),d=h.clone().normalize(),p=l.clone().normalize(),f=function(x){var S=new P(x).sub(r),A=S.dot(d),L=S.dot(p);return E.normalizeAngle(Math.atan2(L/u,A/c))},y=n.determinant()<0?!this.clockwise:this.clockwise,m=this.closed?new t(s,c,u,0,B,y,g):new t(s,c,u,f(this.startPoint.clone().applyMatrix2d(n)),f(this.endPoint.clone().applyMatrix2d(n)),y,g);return this.center=m.center,this.majorAxisRadius=m.majorAxisRadius,this.minorAxisRadius=m.minorAxisRadius,this._startAngle=m._startAngle,this._endAngle=m._endAngle,this._clockwise=m._clockwise,this.rotation=m.rotation,this._boundingBoxNeedsUpdate=!0,this},t.prototype.getPointAtAngle=function(e){return this.getPoint(this.closed?e/B:E.normalizeAngle(e-this.startAngle)/this.deltaAngle)},t.prototype.copy=function(e){return this.center=e.center,this.majorAxisRadius=e.majorAxisRadius,this.minorAxisRadius=e.minorAxisRadius,this.startAngle=e.startAngle,this.endAngle=e.endAngle,this.clockwise=e.clockwise,this.rotation=e.rotation,this},t.prototype.clone=function(){return new t(this.center,this.majorAxisRadius,this.minorAxisRadius,this.startAngle,this.endAngle,this.clockwise,this.rotation)},t.prototype.getFocusPoints=function(){var e=Math.max(this.majorAxisRadius,this.minorAxisRadius),n=Math.min(this.majorAxisRadius,this.minorAxisRadius);if(e-n<1e-9)return[];var r=Math.sqrt(e*e-n*n),s=Math.cos(this.rotation),o=Math.sin(this.rotation),a=this.majorAxisRadius>=this.minorAxisRadius,h=a?s:-o,l=a?o:s;return[new P(this.center.x-r*h,this.center.y-r*l),new P(this.center.x+r*h,this.center.y+r*l)]},t.prototype.getQuadrantPoints=function(){return this.closed?[this.getPoint(0),this.getPoint(.25),this.getPoint(.5),this.getPoint(.75)]:[]},t.prototype.nearestPoint=function(e){for(var n=new P(e.x,e.y),r=this.getPoint(0),s=n.distanceToSquared(r),o=72,a=1;a<=o;a++){var h=this.getPoint(a/o),l=n.distanceToSquared(h);l<s&&(s=l,r=h)}return r},t.prototype.tangentPoints=function(e){var n=this,r=this._projectPointToLocal(e),s=this._findSnapAngles(r,function(o,a,h,l){var c=-n.majorAxisRadius*l,u=n.minorAxisRadius*h;return(o-r.x)*u-(a-r.y)*c});return s.map(function(o){return n.getPointAtAngle(o)})},t.prototype.perpendicularPoints=function(e){var n=this,r=this._projectPointToLocal(e),s=this._findSnapAngles(r,function(o,a,h,l){var c=n.minorAxisRadius*h,u=n.majorAxisRadius*l;return(o-r.x)*u-(a-r.y)*c});return s.map(function(o){return n.getPointAtAngle(o)})},t.prototype._projectPointToLocal=function(e){var n=e.x-this.center.x,r=e.y-this.center.y,s=Math.cos(-this.rotation),o=Math.sin(-this.rotation);return{x:n*s-r*o,y:n*o+r*s}},t.prototype._findSnapAngles=function(e,n,r){r===void 0&&(r=144);for(var s=this.majorAxisRadius,o=this.minorAxisRadius,a=this.startAngle,h=this.deltaAngle,l=[],c=function(A){var L=Math.cos(A),T=Math.sin(A);return n(s*L,o*T,L,T)},u=a,g=c(u),d=1;d<=r;d++){var p=a+h*d/r,f=c(p);if(Math.abs(g)<1e-10&&l.push(u),g*f<0){for(var y=u,m=p,x=0;x<32;x++){var S=(y+m)/2;c(y)*c(S)<=0?m=S:y=S}l.push((y+m)/2)}u=p,g=f}return l},t}(ce),Kl=function(){var i=function(t,e){return i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,r){n.__proto__=r}||function(n,r){for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&(n[s]=r[s])},i(t,e)};return function(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");i(t,e);function n(){this.constructor=t}t.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}}(),Ql=function(i){var t=typeof Symbol=="function"&&Symbol.iterator,e=t&&i[t],n=0;if(e)return e.call(i);if(i&&typeof i.length=="number")return{next:function(){return i&&n>=i.length&&(i=void 0),{value:i&&i[n++],done:!i}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},Ws=function(i){Kl(t,i);function t(e,n,r,s,o,a,h){a===void 0&&(a=0),h===void 0&&(h=B);var l=i.call(this)||this;l.center=e,l.normal=n,l.majorAxis=r,l.majorAxisRadius=s,l.minorAxisRadius=o;var c=Math.abs(h-a);return Math.abs(c-B)<1e-10||Math.abs(c-2*B)<1e-10?(l.startAngle=0,l.endAngle=B):(l.startAngle=a,l.endAngle=h),l}return Object.defineProperty(t.prototype,"center",{get:function(){return this._center},set:function(e){this._center=new _(e.x,e.y,e.z||0),this._boundingBoxNeedsUpdate=!0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"majorAxisRadius",{get:function(){return this._majorAxisRadius},set:function(e){if(e<0)throw st.ILLEGAL_PARAMETERS;this._majorAxisRadius=e,this._boundingBoxNeedsUpdate=!0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"minorAxisRadius",{get:function(){return this._minorAxisRadius},set:function(e){if(e<0)throw st.ILLEGAL_PARAMETERS;this._minorAxisRadius=e,this._boundingBoxNeedsUpdate=!0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"startAngle",{get:function(){return this._startAngle},set:function(e){this._startAngle=E.normalizeAngle(e),this._boundingBoxNeedsUpdate=!0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"endAngle",{get:function(){return this._endAngle},set:function(e){this._endAngle=this.startAngle==0&&e==B?e:E.normalizeAngle(e),this._boundingBoxNeedsUpdate=!0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"deltaAngle",{get:function(){var e=this.endAngle-this.startAngle;return Math.abs(e-B)<1e-10?B:E.normalizeAngle(e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"isLargeArc",{get:function(){return Math.abs(this.deltaAngle)>Math.PI?1:0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"clockwise",{get:function(){return this.deltaAngle<=0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"normal",{get:function(){return this._normal},set:function(e){this._normal=new w(e.x,e.y,e.z),this._normal.normalize(),this._boundingBoxNeedsUpdate=!0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"majorAxis",{get:function(){return this._majorAxis},set:function(e){this._majorAxis=new w(e.x,e.y,e.z),this._majorAxis.normalize(),this._boundingBoxNeedsUpdate=!0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"minorAxis",{get:function(){return new w().crossVectors(this.normal,this.majorAxis).normalize()},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"startPoint",{get:function(){return this.getPointAtAngle(this._startAngle)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"endPoint",{get:function(){return this.getPointAtAngle(this._endAngle)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"midPoint",{get:function(){var e=this.startAngle,n=this.deltaAngle;(this.closed||Math.abs(n-B)<1e-10)&&(e=0,n=B);var r=e+n/2;return this.getPointAtAngle(r)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"isCircular",{get:function(){return F.equal(this.majorAxisRadius,this.minorAxisRadius)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"length",{get:function(){if(this.isCircular)return this.majorAxisRadius*Math.abs(this.deltaAngle);for(var e=1e3,n=this.deltaAngle/e,r=0,s=this.getPointAtAngle(this.startAngle),o=1;o<=e;o++){var a=this.startAngle+o*n,h=this.getPointAtAngle(a),l=h.x-s.x,c=h.y-s.y,u=h.z-s.z;r+=Math.sqrt(l*l+c*c+u*u),s=h}return r},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"area",{get:function(){return Math.abs(this.deltaAngle-B)>=1e-10?0:Math.PI*this.majorAxisRadius*this.minorAxisRadius},enumerable:!1,configurable:!0}),t.prototype.calculateBoundingBox=function(){var e,n;if(this.majorAxis.equals(w.X_AXIS)||this.majorAxis.equals(w.Y_AXIS)||this.majorAxis.isParallelTo(w.X_AXIS)||this.majorAxis.isParallelTo(w.Y_AXIS)){for(var r=[this.startAngle,this.endAngle],s=0;s<2*Math.PI;s+=Math.PI/2)E.isBetweenAngle(s,this.startAngle,this.endAngle)&&r.push(s);var o=1/0,a=1/0,h=1/0,l=-1/0,c=-1/0,u=-1/0;try{for(var g=Ql(r),d=g.next();!d.done;d=g.next()){var p=d.value,f=this.getPointAtAngle(p);f.x<o&&(o=f.x),f.y<a&&(a=f.y),f.z<h&&(h=f.z),f.x>l&&(l=f.x),f.y>c&&(c=f.y),f.z>u&&(u=f.z)}}catch(m){e={error:m}}finally{try{d&&!d.done&&(n=g.return)&&n.call(g)}finally{if(e)throw e.error}}return new C({x:o,y:a,z:h},{x:l,y:c,z:u})}else{for(var y=100,o=1/0,a=1/0,h=1/0,l=-1/0,c=-1/0,u=-1/0,s=0;s<=y;s++){var p=this.startAngle+this.deltaAngle*(s/y),f=this.getPointAtAngle(p);o=Math.min(o,f.x),a=Math.min(a,f.y),h=Math.min(h,f.z),l=Math.max(l,f.x),c=Math.max(c,f.y),u=Math.max(u,f.z)}return new C({x:o,y:a,z:h},{x:l,y:c,z:u})}},Object.defineProperty(t.prototype,"closed",{get:function(){return this.deltaAngle==0},enumerable:!1,configurable:!0}),t.prototype.getPoints=function(e){e===void 0&&(e=100);var n=[],r=this.deltaAngle,s=this.startAngle;this.closed&&(r=B,s=0);for(var o=0;o<=e;o++){var a=s+r*(o/e),h=this.getPointAtAngle(a);n.push(h)}return n},t.prototype.getPointAtAngle=function(e){var n=Math.cos(e),r=Math.sin(e),s=this.minorAxis.clone().multiplyScalar(this.minorAxisRadius).multiplyScalar(r),o=this.majorAxis.clone().multiplyScalar(n*this.majorAxisRadius).add(s);return new _(this.center.x+o.x,this.center.y+o.y,this.center.z+o.z)},t.prototype.nearestPoint=function(e,n){n===void 0&&(n=72);for(var r=new _(e.x,e.y,e.z||0),s=this.getPointAtAngle(this.startAngle),o=r.distanceToSquared(s),a=1;a<=n;a++){var h=this.startAngle+this.deltaAngle*a/n,l=this.getPointAtAngle(h),c=r.distanceToSquared(l);c<o&&(o=c,s=l)}var u=r.distanceToSquared(this.startPoint),g=r.distanceToSquared(this.endPoint);return u<o&&u<=g?this.startPoint.clone():g<o&&g<u?this.endPoint.clone():s.clone()},t.prototype.tangentPoints=function(e){var n=this,r=this._projectPointToLocalPlane(e),s=this._findSnapParameterAngles(function(o,a,h,l){var c=-n.majorAxisRadius*l,u=n.minorAxisRadius*h;return(o-r.x)*u-(a-r.y)*c});return s.map(function(o){return n.getPointAtAngle(o)})},t.prototype.perpendicularPoints=function(e){var n=this,r=this._projectPointToLocalPlane(e),s=this._findSnapParameterAngles(function(o,a,h,l){var c=n.minorAxisRadius*h,u=n.majorAxisRadius*l;return(o-r.x)*u-(a-r.y)*c});return s.map(function(o){return n.getPointAtAngle(o)})},t.prototype._projectPointToLocalPlane=function(e){var n=new _(e.x,e.y,e.z||0),r=new w(n).sub(this.center),s=r.dot(this.normal);return r.sub(this.normal.clone().multiplyScalar(s)),{x:r.dot(this.majorAxis),y:r.dot(this.minorAxis)}},t.prototype._findSnapParameterAngles=function(e,n){n===void 0&&(n=144);for(var r=this.majorAxisRadius,s=this.minorAxisRadius,o=this.startAngle,a=this.deltaAngle,h=[],l=function(S){var A=Math.cos(S),L=Math.sin(S);return e(r*A,s*L,A,L)},c=o,u=l(c),g=1;g<=n;g++){var d=o+a*g/n,p=l(d);if(Math.abs(u)<1e-10&&h.push(c),u*p<0){for(var f=c,y=d,m=0;m<32;m++){var x=(f+y)/2;l(f)*l(x)<=0?y=x:f=x}h.push((f+y)/2)}c=d,u=p}return h},t.prototype.contains=function(e){var n=new w(e).sub(this.center),r=n.dot(this.majorAxis),s=n.dot(this.minorAxis),o=r/this.majorAxisRadius,a=s/this.minorAxisRadius;return o*o+a*a<=1},t.prototype.transform=function(e){var n=e,r=this.center.clone().applyMatrix4(n),s=this.getPointAtAngle(0).clone().applyMatrix4(n),o=this.getPointAtAngle(Math.PI/2).clone().applyMatrix4(n),a=new w(s).sub(r),h=new w(o).sub(r),l=a.length(),c=h.length(),u=a.clone().normalize(),g=new w().crossVectors(a,h).normalize(),d=new w().crossVectors(g,u).normalize();d.dot(h)<0&&(g.negate(),d=new w().crossVectors(g,u).normalize());var p=function(y){var m=new w(y).sub(r),x=m.dot(u),S=m.dot(d);return E.normalizeAngle(Math.atan2(S/c,x/l))},f=this.closed?new t(r,g,u,l,c,0,B):new t(r,g,u,l,c,p(this.startPoint.clone().applyMatrix4(n)),p(this.endPoint.clone().applyMatrix4(n)));return this.center=f.center,this.normal=f.normal,this.majorAxis=f.majorAxis,this.majorAxisRadius=f.majorAxisRadius,this.minorAxisRadius=f.minorAxisRadius,this._startAngle=f._startAngle,this._endAngle=f._endAngle,this._boundingBoxNeedsUpdate=!0,this},t.prototype.copy=function(e){return this.center=e.center,this.normal=e.normal,this.majorAxis=e.majorAxis,this.majorAxisRadius=e.majorAxisRadius,this.minorAxisRadius=e.minorAxisRadius,this.startAngle=e.startAngle,this.endAngle=e.endAngle,this._boundingBoxNeedsUpdate=!0,this},t.prototype.clone=function(){return new t(this.center,this.normal,this.majorAxis,this.majorAxisRadius,this.minorAxisRadius,this.startAngle,this.endAngle)},Object.defineProperty(t.prototype,"plane",{get:function(){var e=new w(this.center).distanceTo(In);return new Tn(this.normal,e)},enumerable:!1,configurable:!0}),t.prototype.offset=function(e){var n=this.majorAxisRadius+e,r=this.minorAxisRadius+e;return n<=0||r<=0?null:new t(this.center,this.normal,this.majorAxis,n,r,this.startAngle,this.endAngle)},t}(Me),Jl=function(){var i=function(t,e){return i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,r){n.__proto__=r}||function(n,r){for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&(n[s]=r[s])},i(t,e)};return function(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");i(t,e);function n(){this.constructor=t}t.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}}(),kt=function(i){Jl(t,i);function t(e,n){var r=i.call(this)||this;return r._start=new P(e),r._end=new P(n),r}return Object.defineProperty(t.prototype,"startPoint",{get:function(){return this._start},set:function(e){this._start.copy(e),this._boundingBoxNeedsUpdate=!0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"endPoint",{get:function(){return this._end},set:function(e){this._end.copy(e),this._boundingBoxNeedsUpdate=!0},enumerable:!1,configurable:!0}),t.prototype.getPoints=function(){return[this.startPoint,this.endPoint]},Object.defineProperty(t.prototype,"length",{get:function(){return this.startPoint.distanceTo(this.endPoint)},enumerable:!1,configurable:!0}),t.prototype.calculateBoundingBox=function(){var e=new P(Math.min(this._start.x,this._end.x),Math.min(this._start.y,this._end.y)),n=new P(Math.max(this._start.x,this._end.x),Math.max(this._start.y,this._end.y));return new et(e,n)},t.prototype.transform=function(e){return this._start.applyMatrix2d(e),this._end.applyMatrix2d(e),this._boundingBoxNeedsUpdate=!0,this},Object.defineProperty(t.prototype,"closed",{get:function(){return!1},enumerable:!1,configurable:!0}),t.prototype.copy=function(e){return this.startPoint=e.startPoint,this.endPoint=e.endPoint,this._boundingBoxNeedsUpdate=!0,this},t.prototype.clone=function(){return new t(this._start.clone(),this._end.clone())},t.prototype.project=function(e){var n=this._end.x-this._start.x,r=this._end.y-this._start.y,s=n*n+r*r;if(s<1e-18)return this._start.clone();var o=((e.x-this._start.x)*n+(e.y-this._start.y)*r)/s;return o=Math.max(0,Math.min(1,o)),new P(this._start.x+o*n,this._start.y+o*r)},t.prototype.nearestPoint=function(e){return this.project(e)},t}(ce),th=function(){var i=function(t,e){return i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,r){n.__proto__=r}||function(n,r){for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&(n[s]=r[s])},i(t,e)};return function(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");i(t,e);function n(){this.constructor=t}t.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}}(),Ai=function(i,t){var e=typeof Symbol=="function"&&i[Symbol.iterator];if(!e)return i;var n=e.call(i),r,s=[],o;try{for(;(t===void 0||t-- >0)&&!(r=n.next()).done;)s.push(r.value)}catch(a){o={error:a}}finally{try{r&&!r.done&&(e=n.return)&&e.call(n)}finally{if(o)throw o.error}}return s},Si=function(i,t,e){if(e||arguments.length===2)for(var n=0,r=t.length,s;n<r;n++)(s||!(n in t))&&(s||(s=Array.prototype.slice.call(t,0,n)),s[n]=t[n]);return i.concat(s||Array.prototype.slice.call(t))},Xn=function(i){th(t,i);function t(e){e===void 0&&(e=[]);var n=i.call(this)||this;return n._curves=e,n}return Object.defineProperty(t.prototype,"curves",{get:function(){return this._curves},enumerable:!1,configurable:!0}),t.buildFromEdges=function(e,n){if(n===void 0&&(n=.001),e.length===0)return[];for(var r=Si([],Ai(e),!1),s=[],o=n*n,a=function(p,f){var y=p.x-f.x,m=p.y-f.y;return y*y+m*m<=o};r.length>0;){var h=[],l=r.shift();h.push(l);var c=t.getEdgeStartPoint(l),u=t.getEdgeEndPoint(l);if(!a(c,u))for(;r.length>0;){var g=t.findConnectingEdge(r,u,o);if(g.index<0)break;var d=r.splice(g.index,1)[0];if(g.reverse&&(d=t.reverseEdge(d)),h.push(d),u=t.getEdgeEndPoint(d),a(u,c))break}s.push(new t(h))}return s},t.prototype.add=function(e){this._curves.push(e),this._boundingBoxNeedsUpdate=!0},Object.defineProperty(t.prototype,"numberOfEdges",{get:function(){return this._curves.length},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"startPoint",{get:function(){if(this._curves.length>0){var e=this._curves[0].startPoint;return new P(e.x,e.y)}throw new Error("Start point does not exist in an empty loop.")},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"endPoint",{get:function(){return this.startPoint},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"length",{get:function(){var e=0;return this._curves.forEach(function(n){e+=n.length}),e},enumerable:!1,configurable:!0}),t.prototype.calculateBoundingBox=function(){var e=this.getPoints(100),n=new et;return n.setFromPoints(e),n},t.prototype.transform=function(e){var n=new Y().set(e.elements[0],e.elements[3],0,e.elements[6],e.elements[1],e.elements[4],0,e.elements[7],0,0,1,0,0,0,0,1);return this._curves.forEach(function(r){r instanceof Yt?r.transform(n):r.transform(e)}),this._boundingBoxNeedsUpdate=!0,this},t.prototype.clone=function(){return new t(this._curves.map(function(e){return e.clone()}))},Object.defineProperty(t.prototype,"closed",{get:function(){return!0},enumerable:!1,configurable:!0}),t.prototype.getPoints=function(e){var n=[];return this.curves.forEach(function(r){r.getPoints(e).forEach(function(s){n.push(new P(s.x,s.y))})}),n},t.findConnectingEdge=function(e,n,r){for(var s=-1,o=!1,a=Number.POSITIVE_INFINITY,h=0;h<e.length;h++){var l=e[h],c=t.getEdgeStartPoint(l),u=t.getEdgeEndPoint(l),g=n.x-c.x,d=n.y-c.y,p=g*g+d*d;p<a&&(a=p,s=h,o=!1);var f=n.x-u.x,y=n.y-u.y,m=f*f+y*y;m<a&&(a=m,s=h,o=!0)}return a>r?{index:-1,reverse:!1}:{index:s,reverse:o}},t.getEdgeStartPoint=function(e){var n=e.startPoint;return new P(n.x,n.y)},t.getEdgeEndPoint=function(e){var n=e.endPoint;return new P(n.x,n.y)},t.reverseEdge=function(e){return e instanceof kt?new kt(e.endPoint,e.startPoint):e instanceof pt?new pt(e.center,e.radius,e.endAngle,e.startAngle,!e.clockwise):e instanceof ve?new ve(e.center,e.majorAxisRadius,e.minorAxisRadius,e.endAngle,e.startAngle,!e.clockwise,e.rotation):e instanceof Yt?t.reverseSplineEdge(e):e},t.reverseSplineEdge=function(e){var n=Si([],Ai(e.controlPoints),!1).reverse(),r=e.knots,s=r[0],o=r[r.length-1],a=r.map(function(c){return s+o-c}).reverse(),h=e.weights,l=h.length>0?Si([],Ai(h),!1).reverse():void 0;return new Yt(n,a,l,e.degree,e.closed)},t}(ce),eh=function(){var i=function(t,e){return i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,r){n.__proto__=r}||function(n,r){for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&(n[s]=r[s])},i(t,e)};return function(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");i(t,e);function n(){this.constructor=t}t.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}}(),Li=function(){function i(){this.c0=0,this.c1=0,this.c2=0,this.c3=0}return i.prototype.init=function(t,e,n,r){this.c0=t,this.c1=n,this.c2=-3*t+3*e-2*n-r,this.c3=2*t-2*e+n+r},i.prototype.initCatmullRom=function(t,e,n,r,s){this.init(e,n,s*(n-t),s*(r-e))},i.prototype.initNonuniformCatmullRom=function(t,e,n,r,s,o,a){var h=(e-t)/s-(n-t)/(s+o)+(n-e)/o,l=(n-e)/o-(r-e)/(o+a)+(r-n)/a;h*=o,l*=o,this.init(e,n,h,l)},i.prototype.calc=function(t){var e=t*t,n=e*t;return this.c0+this.c1*t+this.c2*e+this.c3*n},i}(),Ds=function(i){eh(t,i);function t(e,n,r,s){e===void 0&&(e=[]),n===void 0&&(n=!1),r===void 0&&(r="centripetal"),s===void 0&&(s=.5);var o=i.call(this)||this;return o.isCatmullRomCurve3d=!0,o.type="CatmullRomCurve3d",o._tmp=new w,o._px=new Li,o._py=new Li,o._pz=new Li,o._points=e.map(function(a){return new _(a)}),o._closed=n,o._curveType=r,o._tension=s,o}return Object.defineProperty(t.prototype,"points",{get:function(){return this._points},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"closed",{get:function(){return this._closed},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"curveType",{get:function(){return this._curveType},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"tension",{get:function(){return this._tension},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"startPoint",{get:function(){return this._points.length>0?this._points[0]:new _},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"endPoint",{get:function(){return this._points.length>0?this._points[this._points.length-1]:new _},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"length",{get:function(){if(this._points.length<2)return 0;for(var e=0,n=1;n<this._points.length;n++)e+=this._points[n-1].distanceTo(this._points[n]);return this._closed&&this._points.length>2&&(e+=this._points[this._points.length-1].distanceTo(this._points[0])),e},enumerable:!1,configurable:!0}),t.prototype.getPoint=function(e,n){n===void 0&&(n=new _);var r=n,s=this._points,o=s.length;if(o===0)return r.set(0,0,0);if(o===1)return r.copy(s[0]);var a=(o-(this._closed?0:1))*e,h=Math.floor(a),l=a-h;this._closed?h+=h>0?0:(Math.floor(Math.abs(h)/o)+1)*o:l===0&&h===o-1&&(h=o-2,l=1);var c,u;this._closed||h>0?c=s[(h-1)%o]:(this._tmp.subVectors(s[0],s[1]).add(s[0]),c=new _(this._tmp.x,this._tmp.y,this._tmp.z));var g=s[h%o],d=s[(h+1)%o];if(this._closed||h+2<o?u=s[(h+2)%o]:(this._tmp.subVectors(s[o-1],s[o-2]).add(s[o-1]),u=new _(this._tmp.x,this._tmp.y,this._tmp.z)),this._curveType==="centripetal"||this._curveType==="chordal"){var p=this._curveType==="chordal"?.5:.25,f=Math.pow(c.distanceToSquared(g),p),y=Math.pow(g.distanceToSquared(d),p),m=Math.pow(d.distanceToSquared(u),p);y<1e-4&&(y=1),f<1e-4&&(f=y),m<1e-4&&(m=y),this._px.initNonuniformCatmullRom(c.x,g.x,d.x,u.x,f,y,m),this._py.initNonuniformCatmullRom(c.y,g.y,d.y,u.y,f,y,m),this._pz.initNonuniformCatmullRom(c.z,g.z,d.z,u.z,f,y,m)}else this._curveType==="catmullrom"&&(this._px.initCatmullRom(c.x,g.x,d.x,u.x,this._tension),this._py.initCatmullRom(c.y,g.y,d.y,u.y,this._tension),this._pz.initCatmullRom(c.z,g.z,d.z,u.z,this._tension));return r.set(this._px.calc(l),this._py.calc(l),this._pz.calc(l)),r},t.prototype.getPoints=function(e){for(var n=[],r=0;r<=e;r++)n.push(this.getPoint(r/e));return n},t.prototype.setPoints=function(e){this._points=e.map(function(n){return new _(n)}),this._boundingBoxNeedsUpdate=!0},t.prototype.setClosed=function(e){this._closed!==e&&(this._closed=e,this._boundingBoxNeedsUpdate=!0)},t.prototype.setCurveType=function(e){this._curveType=e},t.prototype.setTension=function(e){this._tension=e},t.prototype.clone=function(){return new t(this._points.map(function(e){return e.clone()}),this._closed,this._curveType,this._tension)},t.prototype.transform=function(e){return this._points=this._points.map(function(n){var r=new _;return r.copy(n),r.applyMatrix4(e),r}),this._boundingBoxNeedsUpdate=!0,this},t.prototype.calculateBoundingBox=function(){if(this._points.length===0)return new C;var e=new C;return this._points.forEach(function(n){e.expandByPoint(n)}),e},t}(Me),Qt=function(i,t){var e=typeof Symbol=="function"&&i[Symbol.iterator];if(!e)return i;var n=e.call(i),r,s=[],o;try{for(;(t===void 0||t-- >0)&&!(r=n.next()).done;)s.push(r.value)}catch(a){o={error:a}}finally{try{r&&!r.done&&(e=n.return)&&e.call(n)}finally{if(o)throw o.error}}return s},Jt=function(i,t,e){if(e||arguments.length===2)for(var n=0,r=t.length,s;n<r;n++)(s||!(n in t))&&(s||(s=Array.prototype.slice.call(t,0,n)),s[n]=t[n]);return i.concat(s||Array.prototype.slice.call(t))};function Vr(i,t){var e,n,r=i.x-t[0],s=i.y-t[1],o=((e=i.z)!==null&&e!==void 0?e:0)-((n=t[2])!==null&&n!==void 0?n:0);return r*r+s*s+o*o}var ut=function(){function i(t,e,n,r){this._degree=t,this._knots=Jt([],Qt(e),!1),this._controlPoints=n.map(function(s){return{x:s.x,y:s.y,z:s.z}}),this._weights=r?Jt([],Qt(r),!1):new Array(n.length).fill(1)}return i.prototype.degree=function(){return this._degree},i.prototype.knots=function(){return Jt([],Qt(this._knots),!1)},i.prototype.controlPoints=function(){return this._controlPoints.map(function(t){return{x:t.x,y:t.y,z:t.z}})},i.prototype.weights=function(){return Jt([],Qt(this._weights),!1)},i.prototype.clone=function(){return new i(this._degree,this._knots,this._controlPoints,this._weights)},i.prototype.point=function(t){return this.evaluate(t).point},i.prototype.evaluate=function(t){var e=this._controlPoints.map(function(n){return[n.x,n.y,n.z]});return Ka(t,this._degree,this._knots,e,this._weights)},i.prototype.signedPlanarCurvatureAt=function(t){var e=this.evaluate(t);return Qa(e.deriv1,e.deriv2)},i.prototype.getOffsetSamplePath2d=function(t,e){var n=this;e===void 0&&(e=512);for(var r=Math.abs(t),s=this.getParameterRange(),o=s.start,a=s.end,h=this.length(),l=Math.max(64,Math.ceil(h/Math.max(r*.2,1e-6))),c=ih(o,a,Math.min(l,e)),u=0;u<8&&c.length<e;u++){for(var g=[],d=0;d<c.length-1;d++){var p=c[d],f=c[d+1],y=(p+f)/2,m=Math.max(Math.abs(this.signedPlanarCurvatureAt(p)),Math.abs(this.signedPlanarCurvatureAt(f)),Math.abs(this.signedPlanarCurvatureAt(y)));r*m>.85&&g.push(y)}if(g.length===0)break;if(c=nh(c,g),c.length>e){c=c.slice(0,e);break}}var x=[],S=[];return c.forEach(function(A){var L=n.evaluate(A);x.push(new P(L.point[0],L.point[1]));var T=L.deriv1[0],M=L.deriv1[1],X=Math.hypot(T,M);S.push(X>1e-10?new P(T/X,M/X):new P(1,0))}),{points:x,tangents:S}},i.prototype.length=function(){var t=this._controlPoints.map(function(e){return[e.x,e.y,e.z]});return Cs(this._degree,this._knots,t,this._weights)},i.byKnotsControlPointsWeights=function(t,e,n,r){return new i(t,e,n,r)},i.byPoints=function(t,e,n,r,s){n===void 0&&(n="Uniform");var o=On(t,e,n,r,s),a=o.controlPoints.map(function(h){return{x:h[0],y:h[1],z:h[2]}});return new i(e,o.knots,a,o.weights)},i.prototype.getParameterRange=function(){var t=this._knots[this._degree],e=this._knots[this._knots.length-this._degree-1];return{start:t,end:e}},i.prototype.getPoints=function(t){for(var e=[],n=this.getParameterRange(),r=n.start,s=n.end,o=0;o<=t;o++){var a=r+(s-r)*(o/t);e.push(this.point(a))}return e},i.prototype.isClosed=function(t){t===void 0&&(t=1e-6);var e=this.getParameterRange(),n=e.start,r=e.end,s=this.point(n),o=this.point(r),a=s[0]-o[0],h=s[1]-o[1],l=s[2]-o[2];return Math.sqrt(a*a+h*h+l*l)<t},i.createFitPointsForClosedCurve=function(t){if(t.length<4)throw new Error("At least 4 points are required for a closed NURBS curve");var e=new Ds(t,!0,"centripetal"),n=Math.max(50,t.length*2);return e.getPoints(n)},i.prototype.nearestPoint=function(t,e){var n;e===void 0&&(e=64);for(var r=this.getParameterRange(),s=r.start,o=r.end,a=this.point(s),h=Vr(t,a),l=0;l<=e;l++){var c=s+(o-s)*l/e,u=this.point(c),g=Vr(t,u);g<h&&(h=g,a=u)}return{x:a[0],y:a[1],z:(n=a[2])!==null&&n!==void 0?n:0}},i.createClosedCurve=function(t,e,n){n===void 0&&(n="Chord");var r=this.createFitPointsForClosedCurve(t),s=r.map(function(o){return[o.x,o.y,o.z]});return i.byPoints(s,e,n)},i}();function ih(i,t,e){if(e<2)return[i,t];for(var n=[],r=0;r<e;r++)n.push(r===e-1?t:i+(t-i)*r/(e-1));return n}function nh(i,t){var e=Jt(Jt([],Qt(i),!1),Qt(t),!1).sort(function(r,s){return r-s}),n=[];return e.forEach(function(r){var s=n[n.length-1];(s===void 0||Math.abs(s-r)>1e-10)&&n.push(r)}),n}var rh=function(){var i=function(t,e){return i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,r){n.__proto__=r}||function(n,r){for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&(n[s]=r[s])},i(t,e)};return function(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");i(t,e);function n(){this.constructor=t}t.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}}(),jr=function(i,t){var e=typeof Symbol=="function"&&i[Symbol.iterator];if(!e)return i;var n=e.call(i),r,s=[],o;try{for(;(t===void 0||t-- >0)&&!(r=n.next()).done;)s.push(r.value)}catch(a){o={error:a}}finally{try{r&&!r.done&&(e=n.return)&&e.call(n)}finally{if(o)throw o.error}}return s},Gr=function(i,t,e){if(e||arguments.length===2)for(var n=0,r=t.length,s;n<r;n++)(s||!(n in t))&&(s||(s=Array.prototype.slice.call(t,0,n)),s[n]=t[n]);return i.concat(s||Array.prototype.slice.call(t))},Yt=function(i){rh(t,i);function t(e,n,r,s,o,a){var h=i.call(this)||this,l=arguments.length;if(h._degree=3,h._closed=!1,Array.isArray(n)){if(l<2||l>5)throw st.ILLEGAL_PARAMETERS;h._controlPoints=e;var d=void 0,p=3,f=!1;if(l>=3&&(Array.isArray(r)?(d=r,l>=4&&(p=s||3),l>=5&&(f=o)):r!==void 0&&(p=r||3,l>=4&&(f=s))),r===void 0&&l>=4&&(p=s||3,l>=5&&(f=o)),h._degree=p,h._closed=f,h._controlPoints.length<h._degree+1)throw st.ILLEGAL_PARAMETERS;h._nurbsCurve=ut.byKnotsControlPointsWeights(h._degree,n,h._controlPoints,d)}else{if(l<2||l>6)throw st.ILLEGAL_PARAMETERS;h._fitPoints=e,h._knotParameterization=n,l>=3&&(h._degree=r||3);var c=typeof s=="boolean";l>=4&&c&&(h._closed=s),c?(l>=5&&(h._startTangent=o),l>=6&&(h._endTangent=a)):(l>=4&&(h._startTangent=s),l>=5&&(h._endTangent=o)),h._closed&&(h._startTangent=void 0,h._endTangent=void 0);var u=(h._startTangent?1:0)+(h._endTangent?1:0);if(h._fitPoints.length+u<h._degree+1)throw st.ILLEGAL_PARAMETERS;if(h._closed)h._nurbsCurve=ut.createClosedCurve(h._fitPoints,h._degree,h._knotParameterization);else{var g=h.toNurbsPoints(h._fitPoints);h._nurbsCurve=ut.byPoints(g,h._degree,h._knotParameterization,h._startTangent?h.toNurbsPoint(h._startTangent):void 0,h._endTangent?h.toNurbsPoint(h._endTangent):void 0)}h._controlPoints=h.toGePoints(h._nurbsCurve.controlPoints().map(function(y){return[y.x,y.y,y.z||0]}))}return h}return t.prototype.buildCurve=function(){if(this._fitPoints&&this._knotParameterization){if(this._closed){var e=ut.createFitPointsForClosedCurve(this._fitPoints),n=this.toNurbsPoints(e);this._nurbsCurve=ut.byPoints(n,this._degree,this._knotParameterization)}else{var n=this.toNurbsPoints(this._fitPoints);this._nurbsCurve=ut.byPoints(n,this._degree,this._knotParameterization,this._startTangent?this.toNurbsPoint(this._startTangent):void 0,this._endTangent?this.toNurbsPoint(this._endTangent):void 0)}this._controlPoints=this.toGePoints(this._nurbsCurve.controlPoints().map(function(o){return[o.x,o.y,o.z||0]}))}else if(this._controlPoints)if(this._closed){var e=ut.createFitPointsForClosedCurve(this._controlPoints),n=this.toNurbsPoints(e);this._nurbsCurve=ut.byPoints(n,this._degree,this._knotParameterization),this._controlPoints=this.toGePoints(this._nurbsCurve.controlPoints().map(function(h){return[h.x,h.y,h.z||0]}))}else{var r=this._nurbsCurve.knots(),s=this._nurbsCurve.weights();this._nurbsCurve=ut.byKnotsControlPointsWeights(this._degree,r,this._controlPoints,s)}},t.prototype.setClosed=function(e){this._closed!==e&&(this._closed=e,this._boundingBoxNeedsUpdate=!0,this.buildCurve())},Object.defineProperty(t.prototype,"degree",{get:function(){return this._degree},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"knotParameterization",{get:function(){return this._knotParameterization},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"controlPoints",{get:function(){return this._controlPoints.map(function(e){return{x:e.x,y:e.y,z:e.z||0}})},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"fitPoints",{get:function(){var e;return(e=this._fitPoints)===null||e===void 0?void 0:e.map(function(n){return{x:n.x,y:n.y,z:n.z||0}})},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"knots",{get:function(){return Gr([],jr(this._nurbsCurve.knots()),!1)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"weights",{get:function(){return Gr([],jr(this._nurbsCurve.weights()),!1)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"startPoint",{get:function(){var e=this._nurbsCurve.knots(),n=this._nurbsCurve.degree(),r=e[n],s=this._nurbsCurve.point(r);return new _(s[0],s[1],s[2])},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"endPoint",{get:function(){var e=this._nurbsCurve.knots(),n=this._nurbsCurve.degree(),r=e[e.length-n-1],s=this._nurbsCurve.point(r);return new _(s[0],s[1],s[2])},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"length",{get:function(){return this._nurbsCurve.length()},enumerable:!1,configurable:!0}),t.prototype.nearestPoint=function(e,n){n===void 0&&(n=64);var r=this._nurbsCurve.nearestPoint(e,n);return new _(r.x,r.y,r.z||0)},t.prototype.evaluateAt=function(e){var n=this._nurbsCurve.point(e);return new _(n[0],n[1],n[2])},t.prototype.getFitPointAt=function(e){if(!this._fitPoints)throw new Error("No fit points in this spline");var n=this._fitPoints.length,r=e<0||e>=n?n-1:e,s=this._fitPoints[r];return{x:s.x,y:s.y,z:s.z||0}},t.prototype.getControlPointAt=function(e){var n=this._controlPoints.length,r=e<0||e>=n?n-1:e;return this._controlPoints[r]},t.prototype.getOffsetSamplePath2d=function(e){return this._nurbsCurve.getOffsetSamplePath2d(e)},t.prototype.getPoints=function(e){e===void 0&&(e=100);for(var n=this._nurbsCurve,r=[],s=n.knots(),o=this._nurbsCurve.degree(),a=s[o],h=s[s.length-o-1],l=(h-a)/(e-1),c=0;c<e;c++){var u=c===e-1?h:a+c*l,g=n.point(u);r.push(new _(g[0],g[1],g[2]))}return r},t.prototype.getCurvePoints=function(e,n){for(var r=[],s=e.knots(),o=e.degree(),a=s[o],h=s[s.length-o-1],l=(h-a)/(n-1),c=0;c<n;c++){var u=a+c*l;r.push(e.point(u))}return r},t.prototype.calculateBoundingBox=function(){var e=this.getPoints(100);return new C().setFromPoints(e)},Object.defineProperty(t.prototype,"closed",{get:function(){return this._closed},set:function(e){this.setClosed(e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"area",{get:function(){if(!this._closed)return 0;var e=this.getPoints(128);return Ys(e)},enumerable:!1,configurable:!0}),t.prototype.transform=function(e){if(this._fitPoints&&this._knotParameterization)this._fitPoints=this._fitPoints.map(function(s){return new _(s).applyMatrix4(e)}),this._startTangent&&(this._startTangent=new _(this._startTangent).transformDirection(e)),this._endTangent&&(this._endTangent=new _(this._endTangent).transformDirection(e)),this.buildCurve();else{var n=this._nurbsCurve.knots(),r=this._nurbsCurve.weights();this._controlPoints=this._controlPoints.map(function(s){return new _(s).applyMatrix4(e)}),this._nurbsCurve=ut.byKnotsControlPointsWeights(this._degree,n,this._controlPoints,r.length>0?r:void 0)}return this._boundingBoxNeedsUpdate=!0,this},t.prototype.clone=function(){return this._fitPoints&&this._knotParameterization?new t(this._fitPoints.map(function(e){return{x:e.x,y:e.y,z:e.z||0}}),this._knotParameterization,this._degree,this._closed,this._startTangent?{x:this._startTangent.x,y:this._startTangent.y,z:this._startTangent.z||0}:void 0,this._endTangent?{x:this._endTangent.x,y:this._endTangent.y,z:this._endTangent.z||0}:void 0):new t(this._controlPoints.map(function(e){return{x:e.x,y:e.y,z:e.z||0}}),this._nurbsCurve.knots(),this._nurbsCurve.weights(),this._degree,this._closed)},t.prototype.toNurbsPoints=function(e){var n=new Array(e.length);return e.forEach(function(r,s){n[s]=[r.x,r.y,r.z||0]}),n},t.prototype.toGePoints=function(e){var n=new Array(e.length);return e.forEach(function(r,s){n[s]={x:r[0],y:r[1],z:r[2]}}),n},t.prototype.toNurbsPoint=function(e){return[e.x,e.y,e.z||0]},t.createClosedSpline=function(e,n,r){if(n===void 0&&(n="Uniform"),r===void 0&&(r=3),e.length<r+1)throw new Error("At least ".concat(r+1," points are required for a degree ").concat(r," closed spline"));return new t(e,n,r,!0)},t}(Me);class Ie{constructor(t){this.i=0,this._records=t,this._keys=Array.from(t.keys())}get count(){return this._records.size}toArray(){return Array.from(this._records.values())}[Symbol.iterator](){return this}next(){for(;this.i<this._keys.length;){const t=this._records.get(this._keys[this.i]);return this.i+=1,{value:t,done:!1}}return{value:null,done:!0}}}var jt=256,Us=[],Hr=256,Re;for(;jt--;)Us[jt]=(jt+256).toString(16).substring(1);function sh(i){var t=0,e=11;if(!Re||jt+e>Hr*2)for(Re="",jt=0;t<Hr;t++)Re+=Us[Math.random()*256|0];return Re.substring(jt,jt+++e)}const Ve="TEMP_";let Ri;function $s(i){Ri=i}class ft{constructor(t,e){if(t=t||{},this._attrs=new is(t,e),this._xDataMap=new Map,!this._attrs.get("objectId"))try{this._attrs.set("objectId",this.database.generateHandle())}catch{this._attrs.set("objectId",this.generateTemporaryHandle())}}generateTemporaryHandle(){return Ve+sh()}get attrs(){return this._attrs}getAttr(t){const e=this._attrs.get(t);if(e===void 0)throw new Error(`[AcDbObject] Attribute name '${t}' does't exist in this object!`);return e}getAttrWithoutException(t){return this._attrs.get(t)}setAttr(t,e){this._attrs.set(t,e)}get objectId(){return this.getAttr("objectId")}set objectId(t){this._attrs.set("objectId",t),t&&!t.startsWith(Ve)&&this.database.updateMaxHandle(t)}get isTemp(){const t=this.getAttrWithoutException("objectId");return!!t&&t.startsWith(Ve)}get ownerId(){return this.getAttr("ownerId")}set ownerId(t){this._attrs.set("ownerId",t)}get extensionDictionary(){return this.getAttrWithoutException("extensionDictionary")}set extensionDictionary(t){this._attrs.set("extensionDictionary",t)}get database(){if(this._database)return this._database;if(Ri)return Ri().workingDatabase;throw new Error("The current working database must be set before using it!")}set database(t){this._database=t}getXData(t){return this._xDataMap.get(t)}setXData(t){for(const e of t)e.code===vn.ExtendedDataRegAppName&&this._xDataMap.set(e.value,t)}removeXData(t){this._xDataMap.delete(t)}createExtensionDictionary(){}close(){}clone(){const t=Object.create(Object.getPrototypeOf(this)),e=this,n=t;for(const r of Object.keys(e))r!=="_database"&&(n[r]=this.cloneValue(e[r]));return t.objectId=this.generateTemporaryHandle(),t}cloneValue(t){if(t==null||typeof t!="object")return t;if(t instanceof Date)return new Date(t.getTime());if(t instanceof RegExp)return new RegExp(t.source,t.flags);if(Array.isArray(t))return t.map(r=>this.cloneValue(r));if(t instanceof Map){const r=new Map;for(const[s,o]of t.entries())r.set(this.cloneValue(s),this.cloneValue(o));return r}if(t instanceof Set){const r=new Set;for(const s of t.values())r.add(this.cloneValue(s));return r}if(ArrayBuffer.isView(t)){if(t instanceof DataView)return new DataView(t.buffer.slice(0));const r=t.constructor;return new r(t)}if(t instanceof ArrayBuffer)return t.slice(0);if("clone"in t&&typeof t.clone=="function")return t.clone();const e=Object.create(Object.getPrototypeOf(t)),n=t;for(const r of Object.keys(n))e[r]=this.cloneValue(n[r]);return e}dxfOut(...t){const[e,n=!1]=t;if(e.writeHandle(5,this.objectId),e.writeObjectId(330,this.ownerId),e.writeObjectId(360,this.extensionDictionary),this.dxfOutFields(e),n)for(const r of this._xDataMap.values())e.writeResultBuffer(r);return this}dxfOutFields(t){return this}}class Rt extends ft{constructor(t,e){t=t||{},Le(t,{name:""}),super(t,e)}get name(){return this.getAttr("name")}set name(t){this.setAttr("name",t)}dxfOutFields(t){return super.dxfOutFields(t),t.writeSubclassMarker("AcDbSymbolTableRecord"),this}}var qs=(i=>(i[i.Any=0]="Any",i[i.Uniform=1]="Uniform",i))(qs||{});const It=class It extends Rt{static isModelSapceName(t){return t.toLowerCase()==It.MODEL_SPACE_NAME.toLowerCase()}static isPaperSapceName(t){return t.toLowerCase().startsWith(It.PAPER_SPACE_NAME_PREFIX.toLowerCase())}constructor(){super(),this._origin=new _,this._layoutId="",this._entities=new Map,this._blockInsertUnits=0,this._explodability=1,this._blockScaling=1,this._bmpPreview=void 0}get isModelSapce(){return It.isModelSapceName(this.name)}get isPaperSapce(){return It.isPaperSapceName(this.name)}get origin(){return this._origin}set origin(t){this._origin.copy(t)}get layoutId(){return this._layoutId}set layoutId(t){this._layoutId=t}get blockInsertUnits(){return this._blockInsertUnits}set blockInsertUnits(t){this._blockInsertUnits=t}get explodability(){return this._explodability}set explodability(t){this._explodability=t}get blockScaling(){return this._blockScaling}set blockScaling(t){this._blockScaling=t}get bmpPreview(){return this._bmpPreview}set bmpPreview(t){this._bmpPreview=t}appendEntity(t){const e=n=>{n.database=this.database,n.ownerId=this.objectId,this.database.ensureEntityStyleDefaults(n),this.database.commitObjectHandle(n,r=>this._entities.has(r)),n.resolveEffectiveProperties(),this._entities.set(n.objectId,n)};if(Array.isArray(t))for(let n=0;n<t.length;++n)e(t[n]);else e(t);(this.isModelSapce||this.isPaperSapce)&&this.database.events.entityAppended.dispatch({database:this.database,entity:t})}removeEntity(t){const e=Array.isArray(t)?t:[t],n=[];return e.forEach(r=>{const s=this._entities.get(r);s&&n.push(s),this._entities.delete(r)}),n.length>0&&this.database.events.entityErased.dispatch({database:this.database,entity:n}),n.length>0}newIterator(){return new Ie(this._entities)}getIdAt(t){return this._entities.get(t)}dxfOutBlockRecord(t){return t.writeStart("BLOCK_RECORD"),this.dxfOut(t),this}dxfOutBlockBegin(t){return t.writeStart("BLOCK"),t.writeHandle(5,this.database.generateHandle()),t.writeObjectId(330,this.objectId),t.writeSubclassMarker("AcDbEntity"),t.writeString(8,"0"),t.writeSubclassMarker("AcDbBlockBegin"),t.writeString(2,this.name),t.writeInt16(70,0),t.writePoint3d(10,this.origin),t.writeString(3,this.name),this}dxfOutBlockEnd(t){return t.writeStart("ENDBLK"),t.writeHandle(5,this.database.generateHandle()),t.writeObjectId(330,this.objectId),t.writeSubclassMarker("AcDbEntity"),t.writeSubclassMarker("AcDbBlockEnd"),this}dxfOutFields(t){return super.dxfOutFields(t),t.writeSubclassMarker("AcDbBlockTableRecord"),t.writeString(2,this.name),t.writeInt16(70,this.blockInsertUnits),t.writeInt16(280,this.explodability),t.writeInt16(281,this.blockScaling),(this.isModelSapce||this.isPaperSapce)&&t.writeObjectId(340,this.layoutId),this}};It.MODEL_SPACE_NAME="*Model_Space",It.PAPER_SPACE_NAME_PREFIX="*Paper_Space";let Q=It;var Zs=(i=>(i[i.kInches=0]="kInches",i[i.kMillimeters=1]="kMillimeters",i[i.kPixels=2]="kPixels",i))(Zs||{}),Ks=(i=>(i[i.k0degrees=0]="k0degrees",i[i.k90degrees=1]="k90degrees",i[i.k180degrees=2]="k180degrees",i[i.k270degrees=3]="k270degrees",i))(Ks||{}),Qs=(i=>(i[i.kDisplay=0]="kDisplay",i[i.kExtents=1]="kExtents",i[i.kLimits=2]="kLimits",i[i.kView=3]="kView",i[i.kWindow=4]="kWindow",i[i.kLayout=5]="kLayout",i))(Qs||{}),Js=(i=>(i[i.kDraft=0]="kDraft",i[i.kPreview=1]="kPreview",i[i.kNormal=2]="kNormal",i[i.kPresentation=3]="kPresentation",i[i.kMaximum=4]="kMaximum",i[i.kCustom=5]="kCustom",i))(Js||{}),to=(i=>(i[i.kAsDisplayed=0]="kAsDisplayed",i[i.kWireframe=1]="kWireframe",i[i.kHidden=2]="kHidden",i[i.kRendered=3]="kRendered",i[i.kVisualStyle=4]="kVisualStyle",i[i.kRenderPreset=5]="kRenderPreset",i))(to||{}),eo=(i=>(i[i.kScaleToFit=0]="kScaleToFit",i[i.k1_128in_1ft=1]="k1_128in_1ft",i[i.k1_64in_1ft=2]="k1_64in_1ft",i[i.k1_32in_1ft=3]="k1_32in_1ft",i[i.k1_16in_1ft=4]="k1_16in_1ft",i[i.k3_32in_1ft=5]="k3_32in_1ft",i[i.k1_8in_1ft=6]="k1_8in_1ft",i[i.k3_16in_1ft=7]="k3_16in_1ft",i[i.k1_4in_1ft=8]="k1_4in_1ft",i[i.k3_8in_1ft=9]="k3_8in_1ft",i[i.k1_2in_1ft=10]="k1_2in_1ft",i[i.k3_4in_1ft=11]="k3_4in_1ft",i[i.k1in_1ft=12]="k1in_1ft",i[i.k3in_1ft=13]="k3in_1ft",i[i.k6in_1ft=14]="k6in_1ft",i[i.k1ft_1ft=15]="k1ft_1ft",i[i.k1_1=16]="k1_1",i[i.k1_2=17]="k1_2",i[i.k1_4=18]="k1_4",i[i.k1_5=19]="k1_5",i[i.k1_8=20]="k1_8",i[i.k1_10=21]="k1_10",i[i.k1_16=22]="k1_16",i[i.k1_20=23]="k1_20",i[i.k1_30=24]="k1_30",i[i.k1_40=25]="k1_40",i[i.k1_50=26]="k1_50",i[i.k1_100=27]="k1_100",i[i.k2_1=28]="k2_1",i[i.k4_1=29]="k4_1",i[i.k8_1=30]="k8_1",i[i.k10_1=31]="k10_1",i[i.k100_1=32]="k100_1",i[i.k1000_1=33]="k1000_1",i[i.k1and1_2in_1ft=34]="k1and1_2in_1ft",i))(eo||{});const oh={0:0,1:1/1536,2:1/768,3:1/384,4:1/192,5:1/128,6:1/96,7:1/64,8:1/48,9:1/32,10:1/24,11:1/16,12:1/12,13:1/4,14:1/2,15:1,16:1,17:1/2,18:1/4,19:1/5,20:1/8,21:1/10,22:1/16,23:1/20,24:1/30,25:1/40,26:1/50,27:1/100,28:2,29:4,30:8,31:10,32:100,33:1e3,34:1/8};class io extends ft{constructor(t=!1){super(),this._plotSettingsName="",this._plotCfgName="",this._canonicalMediaName="",this._currentStyleSheet="",this._plotOrigin=new P,this._customPrintScale={numerator:1,denominator:1},this._plotPaperSize=new P,this._plotPaperMargins={left:0,right:0,top:0,bottom:0},this._plotViewName="",this._plotWindowArea=new et,this._modelType=t,this._plotCentered=!1,this._plotHidden=!1,this._plotPaperUnits=1,this._plotPlotStyles=!0,this._plotRotation=0,this._plotType=5,this._plotViewportBorders=!1,this._printLineweights=!0,this._scaleLineweights=!1,this._drawViewportsFirst=!1,this._showPlotStyles=!0,this._shadePlotType=0,this._shadePlotResLevel=2,this._shadePlotCustomDpi=300,this._shadePlotId=void 0,this._stdScaleType=0,this._useStandardScale=!0}get plotSettingsName(){return this._plotSettingsName}set plotSettingsName(t){this._plotSettingsName=t}getPlotSettingsName(){return this._plotSettingsName}setPlotSettingsName(t){this._plotSettingsName=t}get plotCfgName(){return this._plotCfgName}set plotCfgName(t){this._plotCfgName=t}getPlotCfgName(){return this._plotCfgName}get canonicalMediaName(){return this._canonicalMediaName}set canonicalMediaName(t){this._canonicalMediaName=t}getCanonicalMediaName(){return this._canonicalMediaName}get currentStyleSheet(){return this._currentStyleSheet}set currentStyleSheet(t){this._currentStyleSheet=t}getCurrentStyleSheet(){return this._currentStyleSheet}get plotOrigin(){return this._plotOrigin}set plotOrigin(t){this._plotOrigin=t}getPlotOrigin(){return this._plotOrigin}get customPrintScale(){return this._customPrintScale}set customPrintScale(t){this._customPrintScale=t}getCustomPrintScale(){return this._customPrintScale}get plotPaperSize(){return this._plotPaperSize}set plotPaperSize(t){this._plotPaperSize=t}getPlotPaperSize(){return this._plotPaperSize}get plotPaperMargins(){return this._plotPaperMargins}set plotPaperMargins(t){this._plotPaperMargins=t}getPlotPaperMargins(){return this._plotPaperMargins}get plotViewName(){return this._plotViewName}set plotViewName(t){this._plotViewName=t}getPlotViewName(){return this._plotViewName}get plotWindowArea(){return this._plotWindowArea}set plotWindowArea(t){this._plotWindowArea=t}getPlotWindowArea(){return this._plotWindowArea}get modelType(){return this._modelType}set modelType(t){this._modelType=t}getModelType(){return this._modelType}setModelType(t){this._modelType=t}get drawViewportsFirst(){return this._drawViewportsFirst}set drawViewportsFirst(t){this._drawViewportsFirst=t}setDrawViewportsFirst(t){this._drawViewportsFirst=t}get plotCentered(){return this._plotCentered}set plotCentered(t){this._plotCentered=t}setPlotCentered(t){this._plotCentered=t}get plotHidden(){return this._plotHidden}set plotHidden(t){this._plotHidden=t}setPlotHidden(t){this._plotHidden=t}get plotPaperUnits(){return this._plotPaperUnits}set plotPaperUnits(t){this._plotPaperUnits=t}get plotPlotStyles(){return this._plotPlotStyles}set plotPlotStyles(t){this._plotPlotStyles=t}setPlotPlotStyles(t){this._plotPlotStyles=t}get plotRotation(){return this._plotRotation}set plotRotation(t){this._plotRotation=t}get plotType(){return this._plotType}set plotType(t){this._plotType=t}get plotViewportBorders(){return this._plotViewportBorders}set plotViewportBorders(t){this._plotViewportBorders=t}setPlotViewportBorders(t){this._plotViewportBorders=t}get printLineweights(){return this._printLineweights}set printLineweights(t){this._printLineweights=t}setPrintLineweights(t){this._printLineweights=t}get scaleLineweights(){return this._scaleLineweights}set scaleLineweights(t){this._scaleLineweights=t}setScaleLineweights(t){this._scaleLineweights=t}get showPlotStyles(){return this._showPlotStyles}set showPlotStyles(t){this._showPlotStyles=t}setShowPlotStyles(t){this._showPlotStyles=t}get shadePlot(){return this._shadePlotType}set shadePlot(t){this._shadePlotType=t}setShadePlot(t){this._shadePlotType=t}get shadePlotResLevel(){return this._shadePlotResLevel}set shadePlotResLevel(t){this._shadePlotResLevel=t}setShadePlotResLevel(t){this._shadePlotResLevel=t}get shadePlotCustomDPI(){return this._shadePlotCustomDpi}set shadePlotCustomDPI(t){this._shadePlotCustomDpi=t}setShadePlotCustomDPI(t){this._shadePlotCustomDpi=t}get shadePlotId(){return this._shadePlotId}set shadePlotId(t){this._shadePlotId=t}get plotWireframe(){return this._shadePlotType===1}get plotAsRaster(){return this._shadePlotType===3||this._shadePlotType===4||this._shadePlotType===5}get stdScaleType(){return this._stdScaleType}set stdScaleType(t){this._stdScaleType=t}get stdScale(){return oh[this._stdScaleType]??1}get useStandardScale(){return this._useStandardScale}set useStandardScale(t){this._useStandardScale=t}dxfOutFields(t){super.dxfOutFields(t),t.writeSubclassMarker("AcDbPlotSettings"),t.writeString(1,this.plotSettingsName),t.writeString(2,this.plotCfgName),t.writeString(4,this.canonicalMediaName),t.writeString(6,this.plotViewName),t.writeDouble(40,this.plotPaperMargins.left),t.writeDouble(41,this.plotPaperMargins.bottom),t.writeDouble(42,this.plotPaperMargins.right),t.writeDouble(43,this.plotPaperMargins.top),t.writeDouble(44,this.plotPaperSize.x),t.writeDouble(45,this.plotPaperSize.y),t.writeDouble(46,this.plotOrigin.x),t.writeDouble(47,this.plotOrigin.y),t.writeDouble(48,this.plotWindowArea.min.x),t.writeDouble(49,this.plotWindowArea.min.y),t.writeDouble(140,this.plotWindowArea.max.x),t.writeDouble(141,this.plotWindowArea.max.y),t.writeDouble(142,this.customPrintScale.numerator),t.writeDouble(143,this.customPrintScale.denominator);let e=0;return this.plotViewportBorders&&(e|=1),this.showPlotStyles&&(e|=2),this.plotCentered&&(e|=4),this.plotHidden&&(e|=8),this.useStandardScale&&(e|=16),this.plotPlotStyles&&(e|=32),this.scaleLineweights&&(e|=64),this.printLineweights&&(e|=128),this.drawViewportsFirst&&(e|=512),this.modelType&&(e|=1024),t.writeInt16(70,e),t.writeInt16(72,this.plotPaperUnits),t.writeInt16(73,this.plotRotation),t.writeInt16(74,this.plotType),t.writeString(7,this.currentStyleSheet),t.writeInt16(75,this.stdScaleType),t.writeInt16(76,this.shadePlot),t.writeInt16(77,this.shadePlotResLevel),t.writeInt16(78,this.shadePlotCustomDPI),t.writeDouble(147,this.stdScale),t.writeObjectId(333,this.shadePlotId),this}}class pi extends io{constructor(){super(),this._tabOrder=-1,this._tabSelected=!1,this._blockTableRecordId="",this._layoutName="",this._limits=new et,this._extents=new C,this._viewportArray=[]}get layoutName(){return this._layoutName}set layoutName(t){this._layoutName=t.length>256?t.slice(0,256):t}get tabOrder(){return this._tabOrder}set tabOrder(t){this._tabOrder=t}get tabSelected(){return this._tabSelected}set tabSelected(t){this._tabSelected=t}get blockTableRecordId(){return this._blockTableRecordId}set blockTableRecordId(t){this._blockTableRecordId=t}get limits(){return this._limits}set limits(t){this._limits.copy(t)}get extents(){return this._extents}set extents(t){this._extents.copy(t)}get viewportArray(){return this._viewportArray}set viewportArray(t){this._viewportArray=t.slice()}dxfOutFields(t){return super.dxfOutFields(t),t.writeSubclassMarker("AcDbLayout"),t.writeString(1,this.layoutName),t.writeInt16(70,this.tabSelected?1:0),t.writeInt16(71,this.tabOrder),t.writeObjectId(330,this.blockTableRecordId),t.writeObjectId(331,this._viewportArray.length>0?this._viewportArray[0]:"0"),t.writePoint2d(10,this.limits.min),t.writePoint2d(11,this.limits.max),t.writePoint3d(14,this.extents.min),t.writePoint3d(15,this.extents.max),this}}class no{constructor(){this.events={layoutCreated:new D,layoutRemoved:new D,layoutRenamed:new D,layoutSwitched:new D}}countLayouts(t){return this.getWorkingDatabase(t).objects.layout.numEntries}findLayoutNamed(t,e){return this.getWorkingDatabase(e).objects.layout.getAt(t)}findActiveLayout(){const t=this.getActiveLayout();return t?t.layoutName:"Model"}setCurrentLayoutId(t,e){const n=this.getWorkingDatabase(e),r=n.objects.layout.getIdAt(t);return this.setCurrentLayoutInternal(r,n)}setCurrentLayoutBtrId(t,e){const n=this.getWorkingDatabase(e),r=n.objects.layout.getBtrIdAt(t);return this.setCurrentLayoutInternal(r,n)}setCurrentLayout(t,e){const n=this.getWorkingDatabase(e),r=n.objects.layout.getAt(t);return this.setCurrentLayoutInternal(r,n)}renameLayout(t,e,n){const s=this.getWorkingDatabase(n).objects.layout.getAt(t);return s?(s.layoutName=e,this.events.layoutRenamed.dispatch({layout:s,oldName:t,newName:e}),!0):!1}layoutExists(t,e){return this.getWorkingDatabase(e).objects.layout.has(t)}deleteLayout(t,e){const n=this.getWorkingDatabase(e).objects.layout,r=n.getAt(t);let s=!1;return r&&(s=n.remove(t),s&&this.events.layoutRemoved.dispatch({layout:r})),s}createLayout(t,e){const n=this.getWorkingDatabase(e),r=new pi;r.layoutName=t,r.tabOrder=n.objects.layout.maxTabOrder;const s=new Q;return s.name=`*Paper_Space${r.tabOrder}`,n.tables.blockTable.add(s),n.objects.layout.setAt(t,r),this.events.layoutCreated.dispatch({layout:r}),{layout:r,btr:s}}getActiveLayout(t){const e=this.getWorkingDatabase(t);return e.objects.layout.getBtrIdAt(e.currentSpaceId)}getWorkingDatabase(t){return t||Nn().workingDatabase}setCurrentLayoutInternal(t,e){return t?(this.events.layoutSwitched.dispatch({layout:t}),e.currentSpaceId=t.blockTableRecordId,!0):!1}}let je;function ah(i){je=i}function Nn(){return Ue.instance}const ii=class ii{constructor(){this._workingDatabase=null}get workingDatabase(){if(this._workingDatabase==null)throw new Error("The current working database must be set before using it!");return this._workingDatabase}set workingDatabase(t){this._workingDatabase=t}get layoutManager(){return this._layoutManager||(je||(je=()=>new no),this._layoutManager=je()),this._layoutManager}};ii.instance=new ii;let Ue=ii;$s(Nn);var ro=(i=>(i.kForRead="kForRead",i.kForWrite="kForWrite",i))(ro||{});class Bn{constructor(t){if(this._values=[],t)for(const e of t)this._values.push({...e})}get length(){return this._values.length}at(t){return this._values[t]}add(t){this._values.push(t)}addRange(t){for(const e of t)this._values.push(e)}clear(){this._values.length=0}toArray(){return this._values.map(t=>({...t}))}clone(){return new Bn(this._values)}[Symbol.iterator](){return this._values[Symbol.iterator]()}}class so{constructor(t,e,n){this._chunkSize=-1,this._minimumChunkSize=50,this._count=t,this._numerOfChunk=e<1?1:e,this._minimumChunkSize=n,this.calculateChunkSize()}get count(){return this._count}get numerOfChunk(){return this._numerOfChunk}get minimumChunkSize(){return this._minimumChunkSize}set minimumChunkSize(t){this._minimumChunkSize=t,this.calculateChunkSize()}get chunkSize(){return this._chunkSize}calculateChunkSize(){let t=this._count/this._numerOfChunk;t<this._minimumChunkSize&&(t=Math.min(this._minimumChunkSize,this._count)),this._chunkSize=t<1?this._count:Math.floor(t)}scheduleTask(t){return new Promise((e,n)=>{const r=()=>{Promise.resolve(t()).then(e).catch(n)};typeof window<"u"&&typeof window.requestAnimationFrame=="function"?window.requestAnimationFrame(r):setTimeout(r,0)})}async processChunk(t,e){if(this._count<=0){await(e==null?void 0:e());return}let n=0;const r=async()=>{const s=n,o=Math.min(n+this._chunkSize,this._count);await t(s,o),n=o,n<this._count&&await this.scheduleTask(r)};await r(),await(e==null?void 0:e())}}var rt=(i=>(i[i.DecimalDegrees=0]="DecimalDegrees",i[i.DegreesMinutesSeconds=1]="DegreesMinutesSeconds",i[i.Gradians=2]="Gradians",i[i.Radians=3]="Radians",i[i.SurveyorsUnits=4]="SurveyorsUnits",i))(rt||{}),G=(i=>(i[i.Scientific=1]="Scientific",i[i.Decimal=2]="Decimal",i[i.Engineering=3]="Engineering",i[i.Architectural=4]="Architectural",i[i.Fractional=5]="Fractional",i[i.WindowsDesktop=6]="WindowsDesktop",i))(G||{}),V=(i=>(i[i.Undefined=0]="Undefined",i[i.Inches=1]="Inches",i[i.Feet=2]="Feet",i[i.Miles=3]="Miles",i[i.Millimeters=4]="Millimeters",i[i.Centimeters=5]="Centimeters",i[i.Meters=6]="Meters",i[i.Kilometers=7]="Kilometers",i[i.Microinches=8]="Microinches",i[i.Mils=9]="Mils",i[i.Yards=10]="Yards",i[i.Angstroms=11]="Angstroms",i[i.Nanometers=12]="Nanometers",i[i.Microns=13]="Microns",i[i.Decimeters=14]="Decimeters",i[i.Dekameters=15]="Dekameters",i[i.Hectometers=16]="Hectometers",i[i.Gigameters=17]="Gigameters",i[i.Astronomical=18]="Astronomical",i[i.LightYears=19]="LightYears",i[i.Parsecs=20]="Parsecs",i[i.USSurveyFeet=21]="USSurveyFeet",i[i.USSurveyInch=22]="USSurveyInch",i[i.USSurveyYard=23]="USSurveyYard",i[i.USSurveyMile=24]="USSurveyMile",i[i.Max=24]="Max",i))(V||{});function oo(i){return i==4||i==5||i==6||i==7||i==12||i==13||i==14||i==15||i==16||i==17}function ao(i){return i==1||i==2||i==3||i==8||i==9||i==10||i==21}const zi=Math.PI/200;class lo{constructor(t){this.database=t}formatLength(t,e){const n=this.createContext(e);return Zt(t,n)}formatPoint2d(t,e){const n=this.createContext(e);return`${Zt(t.x,n)}, ${Zt(t.y,n)}`}formatPoint3d(t,e){const n=this.createContext(e);return`${Zt(t.x,n)}, ${Zt(t.y,n)}, ${Zt(t.z,n)}`}formatAngle(t,e){const n=this.createContext(e),s=(e==null?void 0:e.applyAngbaseAngdir)??!0?hh(t,this.database.angbase,this.database.angdir):E.normalizeAngle(t);return lh(s,n)}createContext(t){return{lunits:this.database.lunits,luprec:Pe(this.database.luprec),insunits:this.database.insunits,unitmode:this.database.unitmode,measurement:this.database.measurement,aunits:this.database.aunits,auprec:Pe(this.database.auprec),showUnits:(t==null?void 0:t.showUnits)??!1,showApproximate:(t==null?void 0:t.showApproximate)??!1}}}function Zt(i,t){let e;switch(t.lunits){case G.Scientific:e=Ei(_h(i,t.luprec),t);break;case G.Engineering:e=wh(i,t);break;case G.Architectural:e=bh(i,t);break;case G.Fractional:e=Ei(xh(i,t),t);break;case G.WindowsDesktop:case G.Decimal:default:e=Ei(de(i,t.luprec),t)}return ho(e,ch(i,t),t)}function lh(i,t){let e;switch(t.aunits){case rt.DegreesMinutesSeconds:e=go(i,t);break;case rt.Gradians:e=Ah(i,t);break;case rt.Radians:e=Ph(i,t);break;case rt.SurveyorsUnits:e=Sh(i,t);break;case rt.DecimalDegrees:default:e=vh(i,t)}return ho(e,uh(i,t),t)}function hh(i,t,e){let n=i-t;return e===1&&(n=-n),E.normalizeAngle(n)}function Rn(i){const t=i.showUnits?'"':"";return i.unitmode===1?{feetInchSeparator:"",fractionSeparator:"-",inchSuffix:t}:{feetInchSeparator:"-",fractionSeparator:" ",inchSuffix:t}}function Pe(i,t=0,e=8){return Number.isFinite(i)?Math.max(t,Math.min(e,Math.round(i))):t}function ue(i){return Object.is(i,-0)?0:i}function ho(i,t,e){return!e.showApproximate||!t?i:`~ ${i}`}function ch(i,t){if(!Number.isFinite(i))return!1;const e=gh(i,t);return zn(i,e)}function uh(i,t){if(!Number.isFinite(i))return!1;if(t.aunits===rt.SurveyorsUnits)return dh(i,t.auprec);const e=ph(i,t);return zn(i,e)}function dh(i,t){const n=((90-E.radToDeg(i))%360+360)%360,r=po(n),s=Math.min(Math.abs(n-r.base),Math.abs(r.base+90-n)),o=E.degToRad(s),a=co(o,t);return zn(o,a)}function gh(i,t){const e=ue(i);switch(t.lunits){case G.Scientific:return fh(e,t.luprec);case G.Engineering:case G.Architectural:case G.Fractional:return yh(e,t);case G.WindowsDesktop:case G.Decimal:default:return oe(e,t.luprec)}}function ph(i,t){const e=ue(i);switch(t.aunits){case rt.DegreesMinutesSeconds:return co(e,t.auprec);case rt.Gradians:return oe(e/zi,t.auprec)*zi;case rt.Radians:return oe(e,t.auprec);case rt.DecimalDegrees:default:return E.degToRad(oe(E.radToDeg(e),t.auprec))}}function oe(i,t){if(!Number.isFinite(i))return 0;const e=10**t;return Math.round(ue(i)*e)/e}function fh(i,t){if(!Number.isFinite(i))return 0;const e=ue(i);if(e===0)return 0;const n=e.toExponential(t);return Number(n)}function yh(i,t){if(!Number.isFinite(i))return 0;const e=i<0?-1:1,n=Math.abs(i),r=Math.floor(n/12),s=n-r*12;if(t.lunits===G.Architectural||t.lunits===G.Fractional){const o=1<<Pe(t.luprec,0,8),a=mh(s,o);return e*(r*12+a)}return e*(r*12+oe(s,t.luprec))}function mh(i,t){const e=Math.floor(i),n=i-e,r=Math.round(n*t);return r>=t?e+1:e+r/t}function co(i,t){const e=E.radToDeg(i),n=e<0?-1:1,r=Math.abs(e),s=Math.floor(r),o=(r-s)*60,a=Math.floor(o),h=oe((o-a)*60,t),l=s+a/60+h/3600;return E.degToRad(n*l)}function zn(i,t){if(i===t)return!1;const e=Math.max(Math.abs(i),Math.abs(t),1);return Math.abs(i-t)>e*Number.EPSILON*8}function de(i,t){if(!Number.isFinite(i))return"0";const e=ue(i);if(Number.isInteger(e)&&t===0)return String(e);const r=e.toFixed(t).replace(/\.?0+$/,"");return r===""||r==="-"?"0":r}function _h(i,t){if(!Number.isFinite(i))return"0";const e=ue(i);if(e===0)return"0";const n=e.toExponential(t).match(/^(.+)e([+-])(\d+)$/i);if(!n)return"0";const[,r,s,o]=n,a=o.length<2?o.padStart(2,"0"):o;return`${r}E${s}${a}`.toUpperCase()}function wh(i,t){if(!Number.isFinite(i))return"0";const e=Rn(t),n=i<0?"-":"",r=Math.abs(i),s=Math.floor(r/12),o=r-s*12,a=de(o,t.luprec);return s===0?`${n}${a}${e.inchSuffix}`:`${n}${s}'${e.feetInchSeparator}${a}${e.inchSuffix}`}function bh(i,t){if(!Number.isFinite(i))return"0";const e=Rn(t),n=i<0?"-":"",r=Math.abs(i),s=Math.floor(r/12),o=r-s*12,a=1<<Pe(t.luprec,0,8),h=uo(o,a,e.fractionSeparator);return s===0?`${n}${h}${e.inchSuffix}`:`${n}${s}'${e.feetInchSeparator}${h}${e.inchSuffix}`}function xh(i,t){if(!Number.isFinite(i))return"0";const e=Rn(t),n=i<0?"-":"",r=Math.abs(i),s=1<<Pe(t.luprec,0,8);return`${n}${uo(r,s,e.fractionSeparator)}`}function uo(i,t,e){const n=Math.floor(i),r=i-n;let s=Math.round(r*t);if(s>=t)return String(n+1);if(s===0)return String(n);const o=Ih(s,t);s/=o;const a=t/o,h=`${s}/${a}`;return n===0?h:`${n}${e}${h}`}function vh(i,t){const e=E.radToDeg(i);return`${de(e,t.auprec)}${t.showUnits?"°":""}`}function Ph(i,t){return`${de(i,t.auprec)}${t.showUnits?" rad":""}`}function Ah(i,t){const e=i/zi;return`${de(e,t.auprec)}${t.showUnits?"g":""}`}function go(i,t){const e=E.radToDeg(i),n=e<0?"-":"",r=Math.abs(e),s=Math.floor(r),o=(r-s)*60,a=Math.floor(o),h=(o-a)*60,l=de(h,t.auprec),c=t.showUnits?'"':"";return`${n}${s}d${a}'${l}${c}`}function Sh(i,t){const n=((90-E.radToDeg(i))%360+360)%360,r=po(n),s=Math.min(Math.abs(n-r.base),Math.abs(r.base+90-n)),a=go(E.degToRad(s),t).replace(/^-/,"");return`${r.prefix} ${a} ${r.suffix}`.trim()}function po(i){return i<90?{prefix:"N",suffix:"E",base:0}:i<180?{prefix:"S",suffix:"E",base:90}:i<270?{prefix:"S",suffix:"W",base:180}:{prefix:"N",suffix:"W",base:270}}function Ei(i,t){if(!t.showUnits||t.lunits===G.Engineering||t.lunits===G.Architectural)return i;const e=Lh(t.insunits,t.measurement);return e?`${i}${e}`:i}function Lh(i,t){return i===V.Undefined?t===0?'"':" mm":oo(i)?Eh(i):ao(i)?Mh(i):""}function Eh(i){switch(i){case V.Millimeters:return" mm";case V.Centimeters:return" cm";case V.Meters:return" m";case V.Kilometers:return" km";case V.Decimeters:return" dm";case V.Microns:return" µm";case V.Nanometers:return" nm";default:return""}}function Mh(i){switch(i){case V.Inches:case V.Microinches:case V.Mils:case V.USSurveyInch:return'"';case V.Feet:case V.USSurveyFeet:return"'";case V.Miles:case V.USSurveyMile:return" mi";case V.Yards:case V.USSurveyYard:return" yd";default:return""}}function Ih(i,t){let e=Math.abs(i),n=Math.abs(t);for(;n!==0;){const r=n;n=e%n,e=r}return e||1}var _e=(i=>(i.DXF="dxf",i.DWG="dwg",i))(_e||{});class mt{constructor(){this.events={registered:new D,unregistered:new D},this._converters=new Map}static createInstance(){return mt._instance==null&&(mt._instance=new mt),this._instance}static get instance(){return mt._instance||(mt._instance=new mt),mt._instance}get fileTypes(){return this._converters.keys()}register(t,e){this._converters.set(t,e),this.events.registered.dispatch({fileType:t,converter:e})}get(t){return this._converters.get(t)}unregister(t){const e=this._converters.get(t);e&&(this._converters.delete(t),this.events.unregistered.dispatch({fileType:t,converter:e}))}}class Vt extends ft{constructor(t){super(),this.database=t,this.objectId=t.generateHandle(),this._recordsByName=new Map,this._recordsById=new Map}get numEntries(){return this._recordsByName.size}setAt(t,e){e.database=this.database,e.ownerId=this.objectId,this.database.commitObjectHandle(e,n=>this.hasId(n)),this._recordsByName.set(t,e),this._recordsById.set(e.objectId,e),this.database.events.dictObjetSet.dispatch({database:this.database,object:e,key:t})}remove(t){const e=this.getAt(t);return e?(this._recordsByName.delete(t.toUpperCase()),this._recordsById.delete(this.objectId),this.database.events.dictObjectErased.dispatch({database:this.database,object:e,key:t}),!0):!1}removeId(t){const e=this.getIdAt(t);return e?(this._recordsById.delete(this.objectId),this._recordsByName.forEach((n,r)=>{n===e&&(this._recordsByName.delete(r),this.database.events.dictObjectErased.dispatch({database:this.database,object:e,key:r}))}),!0):!1}removeAll(){this._recordsByName.forEach((t,e)=>{this.database.events.dictObjectErased.dispatch({database:this.database,object:t,key:e})}),this._recordsByName.clear(),this._recordsById.clear()}has(t){return this._recordsByName.has(t.toUpperCase())}hasId(t){return this._recordsById.has(t)}getAt(t){return this._recordsByName.get(t)}getIdAt(t){return this._recordsById.get(t)}newIterator(){return new Ie(this._recordsByName)}entries(){return this._recordsByName.entries()}dxfOutFields(t){super.dxfOutFields(t),t.writeSubclassMarker("AcDbDictionary"),t.writeInt16(280,1),t.writeInt16(281,1);for(const[e,n]of this._recordsByName)t.writeString(3,e),t.writeObjectId(350,n.objectId);return this}}class fo extends ft{constructor(){super(),this._contentType=2,this._drawMLeaderOrderType=1,this._drawLeaderOrderType=0,this._bitFlags=0,this._maxLeaderSegmentsPoints=-1,this._firstSegmentAngleConstraint=0,this._secondSegmentAngleConstraint=0,this._leaderLineType=1,this._leaderLineColor=new k(exports.AcCmColorMethod.ByLayer),this._leaderLineWeight=-2,this._enableLanding=!0,this._landingGap=2,this._enableDogleg=!0,this._doglegLength=8,this._description="",this._arrowSize=4,this._defaultMTextContents="",this._textLeftAttachmentType=1,this._textAngleType=1,this._textAlignmentType=0,this._textRightAttachmentType=1,this._textColor=new k(exports.AcCmColorMethod.ByLayer),this._textHeight=4,this._enableFrameText=!1,this._textAlignAlwaysLeft=!1,this._alignSpace=0,this._blockColor=new k(exports.AcCmColorMethod.ByBlock),this._blockScale=new w(1,1,1),this._enableBlockScale=!0,this._blockRotation=0,this._enableBlockRotation=!1,this._blockConnectionType=0,this._scale=1,this._overwritePropChanged=!1,this._annotative=!1,this._breakSize=0,this._textAttachmentDirection=0,this._bottomTextAttachmentType=9,this._topTextAttachmentType=9,this._extendLeaderToText=!1}get unknown1(){return this._unknown1}set unknown1(t){this._unknown1=t}get contentType(){return this._contentType}set contentType(t){this._contentType=t}get drawMLeaderOrderType(){return this._drawMLeaderOrderType}set drawMLeaderOrderType(t){this._drawMLeaderOrderType=t}get drawLeaderOrderType(){return this._drawLeaderOrderType}set drawLeaderOrderType(t){this._drawLeaderOrderType=t}get bitFlags(){return this._bitFlags}set bitFlags(t){this._bitFlags=t}get maxLeaderSegmentsPoints(){return this._maxLeaderSegmentsPoints}set maxLeaderSegmentsPoints(t){this._maxLeaderSegmentsPoints=t}get maxLeaderSegmentPoints(){return this.maxLeaderSegmentsPoints}set maxLeaderSegmentPoints(t){this.maxLeaderSegmentsPoints=t}get firstSegmentAngleConstraint(){return this._firstSegmentAngleConstraint}set firstSegmentAngleConstraint(t){this._firstSegmentAngleConstraint=t}get secondSegmentAngleConstraint(){return this._secondSegmentAngleConstraint}set secondSegmentAngleConstraint(t){this._secondSegmentAngleConstraint=t}get leaderLineType(){return this._leaderLineType}set leaderLineType(t){this._leaderLineType=t}get leaderLineColor(){return this._leaderLineColor}set leaderLineColor(t){this._leaderLineColor.copy(t)}get leaderLineTypeId(){return this._leaderLineTypeId}set leaderLineTypeId(t){this._leaderLineTypeId=t}get leaderLineWeight(){return this._leaderLineWeight}set leaderLineWeight(t){this._leaderLineWeight=t}get enableLanding(){return this._enableLanding}set enableLanding(t){this._enableLanding=t}get landingEnabled(){return this.enableLanding}set landingEnabled(t){this.enableLanding=t}get landingGap(){return this._landingGap}set landingGap(t){this._landingGap=t}get enableDogleg(){return this._enableDogleg}set enableDogleg(t){this._enableDogleg=t}get doglegEnabled(){return this.enableDogleg}set doglegEnabled(t){this.enableDogleg=t}get doglegLength(){return this._doglegLength}set doglegLength(t){this._doglegLength=t}get description(){return this._description}set description(t){this._description=t}get arrowSymbolId(){return this._arrowSymbolId}set arrowSymbolId(t){this._arrowSymbolId=t}get arrowheadId(){return this.arrowSymbolId}set arrowheadId(t){this.arrowSymbolId=t}get arrowSize(){return this._arrowSize}set arrowSize(t){this._arrowSize=t}get arrowheadSize(){return this.arrowSize}set arrowheadSize(t){this.arrowSize=t}get defaultMTextContents(){return this._defaultMTextContents}set defaultMTextContents(t){this._defaultMTextContents=t}get defaultMText(){return this.defaultMTextContents}set defaultMText(t){this.defaultMTextContents=t}get textString(){return this.defaultMTextContents}set textString(t){this.defaultMTextContents=t}get textStyleId(){return this._textStyleId}set textStyleId(t){this._textStyleId=t}get textStyle(){return this.textStyleId}set textStyle(t){this.textStyleId=t}get textLeftAttachmentType(){return this._textLeftAttachmentType}set textLeftAttachmentType(t){this._textLeftAttachmentType=t}get textAngleType(){return this._textAngleType}set textAngleType(t){this._textAngleType=t}get textAlignmentType(){return this._textAlignmentType}set textAlignmentType(t){this._textAlignmentType=t}get textRightAttachmentType(){return this._textRightAttachmentType}set textRightAttachmentType(t){this._textRightAttachmentType=t}get textColor(){return this._textColor}set textColor(t){this._textColor.copy(t)}get textHeight(){return this._textHeight}set textHeight(t){this._textHeight=t}get enableFrameText(){return this._enableFrameText}set enableFrameText(t){this._enableFrameText=t}get textFrameEnabled(){return this.enableFrameText}set textFrameEnabled(t){this.enableFrameText=t}get textAlignAlwaysLeft(){return this._textAlignAlwaysLeft}set textAlignAlwaysLeft(t){this._textAlignAlwaysLeft=t}get alignSpace(){return this._alignSpace}set alignSpace(t){this._alignSpace=t}get blockId(){return this._blockId}set blockId(t){this._blockId=t}get blockContentId(){return this.blockId}set blockContentId(t){this.blockId=t}get blockColor(){return this._blockColor}set blockColor(t){this._blockColor.copy(t)}get blockContentColor(){return this.blockColor}set blockContentColor(t){this.blockColor=t}get blockScale(){return this._blockScale.clone()}set blockScale(t){this._blockScale.copy(t)}get blockContentScale(){return this.blockScale}set blockContentScale(t){this.blockScale=t}get enableBlockScale(){return this._enableBlockScale}set enableBlockScale(t){this._enableBlockScale=t}get blockContentScaleEnabled(){return this.enableBlockScale}set blockContentScaleEnabled(t){this.enableBlockScale=t}get blockRotation(){return this._blockRotation}set blockRotation(t){this._blockRotation=t}get blockContentRotation(){return this.blockRotation}set blockContentRotation(t){this.blockRotation=t}get enableBlockRotation(){return this._enableBlockRotation}set enableBlockRotation(t){this._enableBlockRotation=t}get blockContentRotationEnabled(){return this.enableBlockRotation}set blockContentRotationEnabled(t){this.enableBlockRotation=t}get blockConnectionType(){return this._blockConnectionType}set blockConnectionType(t){this._blockConnectionType=t}get blockContentConnectionType(){return this.blockConnectionType}set blockContentConnectionType(t){this.blockConnectionType=t}get scale(){return this._scale}set scale(t){this._scale=t}get scaleFactor(){return this.scale}set scaleFactor(t){this.scale=t}get overwritePropChanged(){return this._overwritePropChanged}set overwritePropChanged(t){this._overwritePropChanged=t}get overwritePropertyValue(){return this.overwritePropChanged}set overwritePropertyValue(t){this.overwritePropChanged=t}get annotative(){return this._annotative}set annotative(t){this._annotative=t}get breakSize(){return this._breakSize}set breakSize(t){this._breakSize=t}get breakGapSize(){return this.breakSize}set breakGapSize(t){this.breakSize=t}get textAttachmentDirection(){return this._textAttachmentDirection}set textAttachmentDirection(t){this._textAttachmentDirection=t}get bottomTextAttachmentType(){return this._bottomTextAttachmentType}set bottomTextAttachmentType(t){this._bottomTextAttachmentType=t}get bottomTextAttachmentDirection(){return this.bottomTextAttachmentType}set bottomTextAttachmentDirection(t){this.bottomTextAttachmentType=t}get topTextAttachmentType(){return this._topTextAttachmentType}set topTextAttachmentType(t){this._topTextAttachmentType=t}get topTextAttachmentDirection(){return this.topTextAttachmentType}set topTextAttachmentDirection(t){this.topTextAttachmentType=t}get extendLeaderToText(){return this._extendLeaderToText}set extendLeaderToText(t){this._extendLeaderToText=t}get unknown2(){return this._unknown2}set unknown2(t){this._unknown2=t}dxfOutFields(t){return super.dxfOutFields(t),t.writeSubclassMarker("AcDbMLeaderStyle"),t.writeInt16(179,this.unknown1),t.writeInt16(170,this.contentType),t.writeInt16(171,this.drawMLeaderOrderType),t.writeInt16(172,this.drawLeaderOrderType),t.writeInt32(90,this.maxLeaderSegmentsPoints),t.writeDouble(40,this.firstSegmentAngleConstraint),t.writeDouble(41,this.secondSegmentAngleConstraint),t.writeInt16(173,this.leaderLineType),t.writeInt32(91,Ge(this.leaderLineColor)),t.writeHandle(340,this.leaderLineTypeId),t.writeInt32(92,this.leaderLineWeight),t.writeBoolean(290,this.enableLanding),t.writeDouble(42,this.landingGap),t.writeBoolean(291,this.enableDogleg),t.writeDouble(43,this.doglegLength),t.writeString(3,this.description),t.writeHandle(341,this.arrowSymbolId),t.writeDouble(44,this.arrowSize),t.writeString(300,this.defaultMTextContents),t.writeHandle(342,this.textStyleId),t.writeInt16(174,this.textLeftAttachmentType),t.writeInt16(175,this.textAngleType),t.writeInt16(176,this.textAlignmentType),t.writeInt16(178,this.textRightAttachmentType),t.writeInt32(93,Ge(this.textColor)),t.writeDouble(45,this.textHeight),t.writeBoolean(292,this.enableFrameText),t.writeBoolean(297,this.textAlignAlwaysLeft),t.writeDouble(46,this.alignSpace),t.writeHandle(343,this.blockId),t.writeInt32(94,Ge(this.blockColor)),t.writeDouble(47,this._blockScale.x),t.writeDouble(49,this._blockScale.y),t.writeDouble(140,this._blockScale.z),t.writeBoolean(293,this.enableBlockScale),t.writeDouble(141,this.blockRotation),t.writeBoolean(294,this.enableBlockRotation),t.writeInt16(177,this.blockConnectionType),t.writeDouble(142,this.scale),t.writeBoolean(295,this.overwritePropChanged),t.writeBoolean(296,this.annotative),t.writeDouble(143,this.breakSize),t.writeInt16(271,this.textAttachmentDirection),t.writeInt16(272,this.bottomTextAttachmentType),t.writeInt16(273,this.topTextAttachmentType),t.writeBoolean(298,this.unknown2),this}}class yo extends ft{constructor(){super(),this._styleName="STANDARD",this._flags=0,this._description="",this._fillColor=new k,this._startAngle=90,this._endAngle=90,this._elements=[]}get styleName(){return this._styleName}set styleName(t){this._styleName=t}get flags(){return this._flags}set flags(t){this._flags=t}get description(){return this._description}set description(t){this._description=t}get fillColor(){return this._fillColor}set fillColor(t){this._fillColor.copy(t)}get startAngle(){return this._startAngle}set startAngle(t){this._startAngle=t}get endAngle(){return this._endAngle}set endAngle(t){this._endAngle=t}get elementCount(){return this._elements.length}get elements(){return this._elements.map(t=>({offset:t.offset,color:t.color.clone(),lineType:t.lineType}))}set elements(t){this._elements=t.map(e=>({offset:e.offset,color:e.color.clone(),lineType:e.lineType}))}addElement(t){this._elements.push({offset:t.offset,color:t.color.clone(),lineType:t.lineType})}removeElementAt(t){if(t<0||t>=this._elements.length)throw new Error("The element index is out of range!");this._elements.splice(t,1)}dxfOutFields(t){return super.dxfOutFields(t),t.writeSubclassMarker("AcDbMlineStyle"),t.writeString(2,this.styleName),t.writeInt16(70,this.flags),t.writeString(3,this.description),t.writeCmColor(this.fillColor),t.writeDouble(51,this.startAngle),t.writeDouble(52,this.endAngle),t.writeInt16(71,this.elementCount),this._elements.forEach(e=>{t.writeDouble(49,e.offset),t.writeCmColor(e.color),t.writeString(6,e.lineType)}),this}}class Pt extends ft{constructor(t){super(),this.database=t,this.objectId=t.generateHandle(),this.ownerId=t.objectId,this._recordsByName=new Map,this._recordsById=new Map}get numEntries(){return this._recordsByName.size}add(t){t.database=this.database,t.ownerId=this.objectId,this.database.commitObjectHandle(t,n=>this.hasId(n));const e=this.normalizeName(t.name);this._recordsByName.set(e,t),this._recordsById.set(t.objectId,t)}remove(t){const e=this.normalizeName(t),n=this._recordsByName.get(e);return n?(this._recordsById.delete(n.objectId),this._recordsByName.delete(e),!0):!1}removeId(t){const e=this._recordsById.get(t);return e?(this._recordsByName.delete(this.normalizeName(e.name)),this._recordsById.delete(t),!0):!1}removeAll(){this._recordsByName.clear(),this._recordsById.clear()}has(t){const e=this.normalizeName(t);return this._recordsByName.has(e)}hasId(t){return this._recordsById.has(t)}getAt(t){const e=this.normalizeName(t);return this._recordsByName.get(e)}getIdAt(t){return this._recordsById.get(t)}getOwnerIdAt(t){return this._recordsById.get(t)}newIterator(){return new Ie(this._recordsByName)}normalizeName(t){return t}dxfOutFields(t){return super.dxfOutFields(t),t.writeSubclassMarker("AcDbSymbolTable"),t.writeInt16(70,this.numEntries),this}}class mo extends Pt{constructor(t){super(t)}get modelSpace(){let t=this.getAt(Q.MODEL_SPACE_NAME);return t||(t=new Q,t.name=Q.MODEL_SPACE_NAME,this.add(t)),t}getEntityById(t){for(const e of this.database.tables.blockTable.newIterator()){const n=e.getIdAt(t);if(n)return n}}removeEntity(t){let e=!1;for(const n of this.database.tables.blockTable.newIterator())if(n.removeEntity(t)){e=!0;break}return e}normalizeName(t){let e=t;if(Q.isModelSapceName(t))e=Q.MODEL_SPACE_NAME;else if(Q.isPaperSapceName(t)){const n=Q.PAPER_SPACE_NAME_PREFIX,r=t.substring(n.length);e=n+r}return e}}class _o extends Pt{constructor(t){super(t)}}var wo=(i=>(i[i.Center=0]="Center",i[i.Left=1]="Left",i[i.Right=2]="Right",i[i.OverFirst=3]="OverFirst",i[i.OverSecond=4]="OverSecond",i))(wo||{}),bo=(i=>(i[i.Center=0]="Center",i[i.Above=1]="Above",i[i.Outside=2]="Outside",i[i.JIS=3]="JIS",i[i.Below=4]="Below",i))(bo||{}),xo=(i=>(i[i.Feet=0]="Feet",i[i.None=1]="None",i[i.Inch=2]="Inch",i[i.FeetAndInch=3]="FeetAndInch",i[i.Leading=4]="Leading",i[i.Trailing=8]="Trailing",i[i.LeadingAndTrailing=12]="LeadingAndTrailing",i))(xo||{}),vo=(i=>(i[i.None=0]="None",i[i.Leading=1]="Leading",i[i.Trailing=2]="Trailing",i[i.LeadingAndTrailing=3]="LeadingAndTrailing",i))(vo||{}),Po=(i=>(i[i.Bottom=0]="Bottom",i[i.Middle=1]="Middle",i[i.Top=2]="Top",i))(Po||{});const ni=class ni extends Rt{constructor(t,e){t=t||{},Le(t,ni.DEFAULT_DIM_VALUES),super(t,e)}get dimpost(){return this.getAttr("dimpost")}set dimpost(t){this.setAttr("dimpost",t)}get dimapost(){return this.getAttr("dimapost")}set dimapost(t){this.setAttr("dimapost",t)}get dimscale(){return this.getAttr("dimscale")}set dimscale(t){this.setAttr("dimscale",t)}get dimasz(){return this.getAttr("dimasz")}set dimasz(t){this.setAttr("dimasz",t)}get dimexo(){return this.getAttr("dimexo")}set dimexo(t){this.setAttr("dimexo",t)}get dimdli(){return this.getAttr("dimdli")}set dimdli(t){this.setAttr("dimdli",t)}get dimexe(){return this.getAttr("dimexe")}set dimexe(t){this.setAttr("dimexe",t)}get dimrnd(){return this.getAttr("dimrnd")}set dimrnd(t){this.setAttr("dimrnd",t)}get dimdle(){return this.getAttr("dimdle")}set dimdle(t){this.setAttr("dimdle",t)}get dimtp(){return this.getAttr("dimtp")}set dimtp(t){this.setAttr("dimtp",t)}get dimtm(){return this.getAttr("dimtm")}set dimtm(t){this.setAttr("dimtm",t)}get dimtxt(){return this.getAttr("dimtxt")}set dimtxt(t){this.setAttr("dimtxt",t)}get dimcen(){return this.getAttr("dimcen")}set dimcen(t){this.setAttr("dimcen",t)}get dimtsz(){return this.getAttr("dimtsz")}set dimtsz(t){this.setAttr("dimtsz",t)}get dimaltf(){return this.getAttr("dimaltf")}set dimaltf(t){this.setAttr("dimaltf",t)}get dimlfac(){return this.getAttr("dimlfac")}set dimlfac(t){this.setAttr("dimlfac",t)}get dimtvp(){return this.getAttr("dimtvp")}set dimtvp(t){this.setAttr("dimtvp",t)}get dimtfac(){return this.getAttr("dimtfac")}set dimtfac(t){this.setAttr("dimtfac",t)}get dimgap(){return this.getAttr("dimgap")}set dimgap(t){this.setAttr("dimgap",t)}get dimaltrnd(){return this.getAttr("dimaltrnd")}set dimaltrnd(t){this.setAttr("dimaltrnd",t)}get dimtol(){return this.getAttr("dimtol")}set dimtol(t){this.setAttr("dimtol",t)}get dimlim(){return this.getAttr("dimlim")}set dimlim(t){this.setAttr("dimlim",t)}get dimtih(){return this.getAttr("dimtih")}set dimtih(t){this.setAttr("dimtih",t)}get dimtoh(){return this.getAttr("dimtoh")}set dimtoh(t){this.setAttr("dimtoh",t)}get dimse1(){return this.getAttr("dimse1")}set dimse1(t){this.setAttr("dimse1",t)}get dimse2(){return this.getAttr("dimse2")}set dimse2(t){this.setAttr("dimse2",t)}get dimtad(){return this.getAttr("dimtad")}set dimtad(t){this.setAttr("dimtad",t)}get dimzin(){return this.getAttr("dimzin")}set dimzin(t){this.setAttr("dimzin",t)}get dimazin(){return this.getAttr("dimazin")}set dimazin(t){this.setAttr("dimazin",t)}get dimalt(){return this.getAttr("dimalt")}set dimalt(t){this.setAttr("dimalt",t)}get dimaltd(){return this.getAttr("dimaltd")}set dimaltd(t){this.setAttr("dimaltd",t)}get dimtofl(){return this.getAttr("dimtofl")}set dimtofl(t){this.setAttr("dimtofl",t)}get dimsah(){return this.getAttr("dimsah")}set dimsah(t){this.setAttr("dimsah",t)}get dimtix(){return this.getAttr("dimtix")}set dimtix(t){this.setAttr("dimtix",t)}get dimsoxd(){return this.getAttr("dimsoxd")}set dimsoxd(t){this.setAttr("dimsoxd",t)}get dimclrd(){return this.getAttr("dimclrd")}set dimclrd(t){this.setAttr("dimclrd",t)}get dimclre(){return this.getAttr("dimclre")}set dimclre(t){this.setAttr("dimclre",t)}get dimclrt(){return this.getAttr("dimclrt")}set dimclrt(t){this.setAttr("dimclrt",t)}get dimadec(){return this.getAttr("dimadec")}set dimadec(t){this.setAttr("dimadec",t)}get dimunit(){return this.getAttr("dimunit")}set dimunit(t){this.setAttr("dimunit",t)}get dimdec(){return this.getAttr("dimdec")}set dimdec(t){this.setAttr("dimdec",t)}get dimtdec(){return this.getAttr("dimtdec")}set dimtdec(t){this.setAttr("dimtdec",t)}get dimaltu(){return this.getAttr("dimaltu")}set dimaltu(t){this.setAttr("dimaltu",t)}get dimalttd(){return this.getAttr("dimalttd")}set dimalttd(t){this.setAttr("dimalttd",t)}get dimaunit(){return this.getAttr("dimaunit")}set dimaunit(t){this.setAttr("dimaunit",t)}get dimfrac(){return this.getAttr("dimfrac")}set dimfrac(t){this.setAttr("dimfrac",t)}get dimlunit(){return this.getAttr("dimlunit")}set dimlunit(t){this.setAttr("dimlunit",t)}get dimdsep(){return this.getAttr("dimdsep")}set dimdsep(t){this.setAttr("dimdsep",t)}get dimtmove(){return this.getAttr("dimtmove")}set dimtmove(t){this.setAttr("dimtmove",t)}get dimjust(){return this.getAttr("dimjust")}set dimjust(t){this.setAttr("dimjust",t)}get dimsd1(){return this.getAttr("dimsd1")}set dimsd1(t){this.setAttr("dimsd1",t)}get dimsd2(){return this.getAttr("dimsd2")}set dimsd2(t){this.setAttr("dimsd2",t)}get dimtolj(){return this.getAttr("dimtolj")}set dimtolj(t){this.setAttr("dimtolj",t)}get dimtzin(){return this.getAttr("dimtzin")}set dimtzin(t){this.setAttr("dimtzin",t)}get dimaltz(){return this.getAttr("dimaltz")}set dimaltz(t){this.setAttr("dimaltz",t)}get dimalttz(){return this.getAttr("dimalttz")}set dimalttz(t){this.setAttr("dimalttz",t)}get dimfit(){return this.getAttr("dimfit")}set dimfit(t){this.setAttr("dimfit",t)}get dimupt(){return this.getAttr("dimupt")}set dimupt(t){this.setAttr("dimupt",t)}get dimatfit(){return this.getAttr("dimatfit")}set dimatfit(t){this.setAttr("dimatfit",t)}get dimtxsty(){return this.getAttr("dimtxsty")}set dimtxsty(t){this.setAttr("dimtxsty",t)}get dimldrblk(){return this.getAttr("dimldrblk")}set dimldrblk(t){this.setAttr("dimldrblk",t)}get dimblk(){return this.getAttr("dimblk")}set dimblk(t){this.setAttr("dimblk",t)}get dimblk1(){return this.getAttr("dimblk1")}set dimblk1(t){this.setAttr("dimblk1",t)}get dimblk2(){return this.getAttr("dimblk2")}set dimblk2(t){this.setAttr("dimblk2",t)}get dimlwd(){return this.getAttr("dimlwd")}set dimlwd(t){this.setAttr("dimlwd",t)}get dimlwe(){return this.getAttr("dimlwe")}set dimlwe(t){this.setAttr("dimlwe",t)}dxfOutFields(t){super.dxfOutFields(t);const e=this.database.tables.textStyleTable.getAt(this.dimtxsty),n=this.database.tables.blockTable.getAt(this.dimldrblk),r=this.database.tables.blockTable.getAt(this.dimblk),s=this.database.tables.blockTable.getAt(this.dimblk1),o=this.database.tables.blockTable.getAt(this.dimblk2);return t.writeSubclassMarker("AcDbDimStyleTableRecord"),t.writeString(2,this.name),t.writeInt16(70,0),t.writeString(3,this.dimpost),t.writeString(4,this.dimapost),t.writeDouble(40,this.dimscale),t.writeDouble(41,this.dimasz),t.writeDouble(42,this.dimexo),t.writeDouble(43,this.dimdli),t.writeDouble(44,this.dimexe),t.writeDouble(140,this.dimtxt),t.writeDouble(147,this.dimgap),t.writeInt16(170,this.dimalt),t.writeInt16(171,this.dimtol),t.writeInt16(172,this.dimlim),t.writeInt16(173,this.dimtih),t.writeInt16(174,this.dimtoh),t.writeObjectId(340,e==null?void 0:e.objectId),t.writeObjectId(341,n==null?void 0:n.objectId),t.writeObjectId(342,r==null?void 0:r.objectId),t.writeObjectId(343,s==null?void 0:s.objectId),t.writeObjectId(344,o==null?void 0:o.objectId),t.writeInt16(371,this.dimlwd),t.writeInt16(372,this.dimlwe),this}};ni.DEFAULT_DIM_VALUES={name:"",dimpost:"",dimapost:"",dimscale:1,dimasz:2.5,dimexo:.625,dimdli:.38,dimexe:.18,dimrnd:0,dimdle:0,dimtp:0,dimtm:0,dimtxt:2.5,dimcen:2.5,dimtsz:0,dimaltf:0,dimlfac:1,dimtvp:0,dimtfac:1,dimgap:1,dimaltrnd:0,dimtol:0,dimlim:0,dimtih:0,dimtoh:0,dimse1:0,dimse2:0,dimtad:0,dimzin:0,dimazin:0,dimalt:0,dimaltd:2,dimtofl:0,dimsah:0,dimtix:0,dimsoxd:0,dimclrd:0,dimclre:0,dimclrt:0,dimadec:0,dimunit:2,dimdec:4,dimtdec:4,dimaltu:2,dimalttd:2,dimaunit:0,dimfrac:0,dimlunit:2,dimdsep:".",dimtmove:0,dimjust:0,dimsd1:0,dimsd2:0,dimtolj:0,dimtzin:0,dimaltz:0,dimalttz:0,dimfit:0,dimupt:0,dimatfit:3,dimtxsty:K,dimldrblk:"",dimblk:"",dimblk1:"",dimblk2:"",dimlwd:-2,dimlwe:-2};let le=ni;class Ao extends Pt{constructor(t){super(t)}add(t){super.add(t),this.database.events.layerAppended.dispatch({database:this.database,layer:t})}}class Fn extends Rt{constructor(t,e){t=t||{},Le(t,{color:new k,description:"",standardFlags:0,isHidden:!1,isInUse:!0,isOff:!1,isPlottable:!0,transparency:new U,linetype:"",lineWeight:1,materialId:-1}),super(t,e),this.attrs.events.attrChanged.addEventListener(n=>{this.database.events.layerModified.dispatch({database:this.database,layer:this,changes:n.object.changedAttributes()})})}get color(){return this.getAttr("color")}set color(t){this.setAttr("color",t.clone())}get description(){return this.getAttr("description")}set description(t){this.setAttr("description",t)}get standardFlags(){return this.getAttr("standardFlags")}set standardFlags(t){this.setAttr("standardFlags",t)}get isFrozen(){return(this.standardFlags&1)==1}set isFrozen(t){const e=t?1:0;this.standardFlags=this.standardFlags|e}get isHidden(){return this.getAttr("isHidden")}set isHidden(t){this.setAttr("isHidden",t)}get isInUse(){return this.getAttr("isInUse")}set isInUse(t){this.setAttr("isInUse",t)}get isLocked(){return(this.standardFlags&4)==4}set isLocked(t){const e=t?4:0;this.standardFlags=this.standardFlags|e}get isOff(){return this.getAttr("isOff")}set isOff(t){this.setAttr("isOff",t)}get isPlottable(){return this.getAttr("isPlottable")}set isPlottable(t){this.setAttr("isPlottable",t)}get transparency(){return this.getAttr("transparency")}set transparency(t){this.setAttr("transparency",t.clone())}get linetype(){return this.getAttr("linetype")}set linetype(t){this.setAttr("linetype",t)}get lineStyle(){var e;const t=(e=this.database)==null?void 0:e.tables.linetypeTable.getAt(this.linetype);if(t)return{type:"UserSpecified",...t.linetype}}get lineWeight(){return this.getAttr("lineWeight")}set lineWeight(t){this.setAttr("lineWeight",t)}get materialId(){return this.getAttr("materialId")}set materialId(t){this.setAttr("materialId",t)}dxfOutFields(t){return super.dxfOutFields(t),t.writeSubclassMarker("AcDbLayerTableRecord"),t.writeString(2,this.name),t.writeInt16(70,this.standardFlags),t.writeCmColor(this.color),t.writeString(6,this.linetype),t.writeInt16(290,this.isPlottable?1:0),t.writeInt16(370,this.lineWeight),t.writeTransparency(this.transparency),this.description&&t.writeString(4,this.description),this}}class So extends Pt{constructor(t){super(t)}}class Ht extends Rt{constructor(t){super(),this.name=t.name,this._linetype=t}get numDashes(){return this._linetype.pattern?this._linetype.pattern.length:0}get patternLength(){return this._linetype.totalPatternLength}get comments(){return this._linetype.description}get linetype(){return this._linetype}dashLengthAt(t){if(t<0||t>=this.numDashes)throw new Error('Index must be greater than or equal to zero, but less than the value of property "numDashes".');return this._linetype.pattern[t].elementLength}toPreviewSvgString(t){const e=Math.max((t==null?void 0:t.width)??220,1),n=Math.max((t==null?void 0:t.height)??36,1),r=Math.min(Math.max((t==null?void 0:t.padding)??8,0),Math.floor(e/2)),s=Math.max((t==null?void 0:t.strokeWidth)??2,.5),o=this.escapeSvgAttribute((t==null?void 0:t.stroke)??"currentColor"),a=Math.max((t==null?void 0:t.repeats)??4,1),h=n/2,l=r,c=Math.max(e-r,l+1),u=c-l,g=this._linetype.pattern??[];if(g.length===0||this.patternLength<=0||!g.some(S=>S.elementLength!==0))return this.buildSvgString({width:e,height:n,stroke:o,strokeWidth:s,lineSegments:[[l,c]],dots:[],y:h});const d=[],p=[],f=u/(this.patternLength*a),y=.5,m=Math.max(s*2,2);let x=l;for(;x<c;)for(const S of g){if(x>=c)break;const A=S.elementLength;if(A===0){p.push(x),x=Math.min(x+m,c);continue}const L=Math.max(Math.abs(A)*f,y),T=Math.min(x+L,c);A>0&&T>x&&d.push([x,T]),x=T}return this.buildSvgString({width:e,height:n,stroke:o,strokeWidth:s,lineSegments:d,dots:p,y:h})}buildSvgString(t){const{width:e,height:n,stroke:r,strokeWidth:s,lineSegments:o,dots:a,y:h}=t,l=o.map(([u,g])=>`<line x1="${u.toFixed(2)}" y1="${h.toFixed(2)}" x2="${g.toFixed(2)}" y2="${h.toFixed(2)}" stroke="${r}" stroke-width="${s.toFixed(2)}" stroke-linecap="round" />`).join(""),c=a.map(u=>`<circle cx="${u.toFixed(2)}" cy="${h.toFixed(2)}" r="${(s/2).toFixed(2)}" fill="${r}" />`).join("");return`<svg xmlns="http://www.w3.org/2000/svg" width="${e}" height="${n}" viewBox="0 0 ${e} ${n}" role="img" aria-label="${this.escapeSvgAttribute(this.name)} linetype preview">${l}${c}</svg>`}escapeSvgAttribute(t){return t.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">").replace(/'/g,"'")}dxfOutFields(t){super.dxfOutFields(t),t.writeSubclassMarker("AcDbLinetypeTableRecord"),t.writeString(2,this.name),t.writeInt16(70,this.linetype.standardFlag),t.writeString(3,this.comments),t.writeInt16(72,65),t.writeInt16(73,this.numDashes),t.writeDouble(40,this.patternLength);for(const e of this.linetype.pattern??[])t.writeDouble(49,e.elementLength),t.writeInt16(74,e.elementTypeFlag);return this}}class Lo extends Pt{constructor(t){super(t)}resolveAt(t){this.database.ensureTextStyleDefaults();const e=[],n=r=>{const s=r==null?void 0:r.trim();s&&!e.includes(s)&&e.push(s)};n(t),n(this.database.textstyle),n(K),n("STANDARD");for(const r of e){const s=this.getAt(r);if(s)return s;const o=r.toUpperCase();for(const a of this.newIterator())if(a.name.toUpperCase()===o)return a}return this.newIterator().next().value??void 0}get fonts(){const t=new Set,e=r=>{if(r){const s=r.lastIndexOf(".");if(s>=0){const o=r.substring(0,s).toLowerCase();t.add(o)}else t.add(r.toLowerCase())}},n=this.newIterator();for(const r of n)e(r.fileName),e(r.bigFontFileName);return Array.from(t)}}class Vn extends Rt{constructor(t){super(),this.name=t.name,this._textStyle=t,this._textStyle.font=this.getFileNameWithoutExtension(this._textStyle.font||this._textStyle.extendedFont||this.name),this._isVertical=!1}get obliquingAngle(){return this._textStyle.obliqueAngle}set obliquingAngle(t){this._textStyle.obliqueAngle=t}get priorSize(){return this._textStyle.lastHeight}set priorSize(t){this._textStyle.lastHeight=t}get textSize(){return this._textStyle.fixedTextHeight}set textSize(t){this._textStyle.fixedTextHeight=t}get xScale(){return this._textStyle.widthFactor}set xScale(t){this._textStyle.widthFactor=t}get isVertical(){return this._isVertical}set isVertical(t){this._isVertical=t}get fileName(){return this._textStyle.font}set fileName(t){this._textStyle.font=t}get bigFontFileName(){return this._textStyle.bigFont}set bigFontFileName(t){this._textStyle.bigFont=t}get textStyle(){return this._textStyle}getFileNameWithoutExtension(t){const e=t.split("/").pop();if(e){const n=e.lastIndexOf(".");return n===-1?e:e.substring(0,n)}return t}dxfOutFields(t){return super.dxfOutFields(t),t.writeSubclassMarker("AcDbTextStyleTableRecord"),t.writeString(2,this.name),t.writeInt16(70,this.textStyle.standardFlag),t.writeDouble(40,this.textSize),t.writeDouble(41,this.xScale),t.writeAngle(50,this.obliquingAngle),t.writeInt16(71,this.isVertical?4:this.textStyle.textGenerationFlag),t.writeDouble(42,this.priorSize),t.writeString(3,this.fileName),t.writeString(4,this.bigFontFileName),this}}class Eo extends Pt{constructor(t){super(t)}}const Xt="Continuous",K="Standard",Tt="Standard",Ct="Standard",Th="ANSI31",Mo="ANGLE",Gt="SOLID",Io="USER",To="LINEAR",tt="ByLayer",Ot="ByBlock",Ae="*Active",Fi="mlightcad",Vi="ACAD",Ch=Object.freeze({x:0,y:0}),Oh=Object.freeze({x:0,y:0}),kh=Object.freeze({x:1,y:1}),Yh=Object.freeze({x:0,y:0,z:1}),Xh=Object.freeze({x:0,y:0,z:0});exports.AcGiArrowType=void 0;(function(i){i.ClosedFilled="",i.Dot="_DOT",i.DotSmall="_DOTSMALL",i.DotBlank="_DOTBLANK",i.Origin="_ORIGIN",i.Origin2="_ORIGIN2",i.Open="_OPEN",i.Open90="_OPEN90",i.Open30="_OPEN30",i.Closed="_CLOSED",i.Small="_SMALL",i.None="_NONE",i.Oblique="_OBLIQUE",i.BoxFilled="_BOXFILLED",i.Box="_BOXBLANK",i.ClosedBlank="_CLOSEDBLANK",i.DatumBlank="_DATUMBLANK",i.DatumFilled="_DATUMFILLED",i.Integral="_INTEGRAL",i.ArchTick="_ARCHTICK"})(exports.AcGiArrowType||(exports.AcGiArrowType={}));exports.AcGiLineWeight=void 0;(function(i){i[i.ByBlock=-2]="ByBlock",i[i.ByDIPs=-4]="ByDIPs",i[i.ByLayer=-1]="ByLayer",i[i.ByLineWeightDefault=-3]="ByLineWeightDefault",i[i.LineWeight000=0]="LineWeight000",i[i.LineWeight005=5]="LineWeight005",i[i.LineWeight009=9]="LineWeight009",i[i.LineWeight013=13]="LineWeight013",i[i.LineWeight015=15]="LineWeight015",i[i.LineWeight018=18]="LineWeight018",i[i.LineWeight020=20]="LineWeight020",i[i.LineWeight025=25]="LineWeight025",i[i.LineWeight030=30]="LineWeight030",i[i.LineWeight035=35]="LineWeight035",i[i.LineWeight040=40]="LineWeight040",i[i.LineWeight050=50]="LineWeight050",i[i.LineWeight053=53]="LineWeight053",i[i.LineWeight060=60]="LineWeight060",i[i.LineWeight070=70]="LineWeight070",i[i.LineWeight080=80]="LineWeight080",i[i.LineWeight090=90]="LineWeight090",i[i.LineWeight100=100]="LineWeight100",i[i.LineWeight106=106]="LineWeight106",i[i.LineWeight120=120]="LineWeight120",i[i.LineWeight140=140]="LineWeight140",i[i.LineWeight158=158]="LineWeight158",i[i.LineWeight200=200]="LineWeight200",i[i.LineWeight211=211]="LineWeight211"})(exports.AcGiLineWeight||(exports.AcGiLineWeight={}));exports.AcGiMTextFlowDirection=void 0;(function(i){i[i.LEFT_TO_RIGHT=1]="LEFT_TO_RIGHT",i[i.RIGHT_TO_LEFT=2]="RIGHT_TO_LEFT",i[i.TOP_TO_BOTTOM=3]="TOP_TO_BOTTOM",i[i.BOTTOM_TO_TOP=4]="BOTTOM_TO_TOP",i[i.BY_STYLE=5]="BY_STYLE"})(exports.AcGiMTextFlowDirection||(exports.AcGiMTextFlowDirection={}));exports.AcGiMTextAttachmentPoint=void 0;(function(i){i[i.TopLeft=1]="TopLeft",i[i.TopCenter=2]="TopCenter",i[i.TopRight=3]="TopRight",i[i.MiddleLeft=4]="MiddleLeft",i[i.MiddleCenter=5]="MiddleCenter",i[i.MiddleRight=6]="MiddleRight",i[i.BottomLeft=7]="BottomLeft",i[i.BottomCenter=8]="BottomCenter",i[i.BottomRight=9]="BottomRight",i[i.BaselineLeft=10]="BaselineLeft",i[i.BaselineCenter=11]="BaselineCenter",i[i.BaselineRight=12]="BaselineRight"})(exports.AcGiMTextAttachmentPoint||(exports.AcGiMTextAttachmentPoint={}));exports.AcGiRenderMode=void 0;(function(i){i[i.OPTIMIZED_2D=0]="OPTIMIZED_2D",i[i.WIREFRAME=1]="WIREFRAME",i[i.HIDDEN_LINE=2]="HIDDEN_LINE",i[i.FLAT_SHADED=3]="FLAT_SHADED",i[i.GOURAUD_SHADED=4]="GOURAUD_SHADED",i[i.FLAT_SHADED_WITH_WIREFRAME=5]="FLAT_SHADED_WITH_WIREFRAME",i[i.GOURAUD_SHADED_WITH_WIREFRAME=6]="GOURAUD_SHADED_WITH_WIREFRAME"})(exports.AcGiRenderMode||(exports.AcGiRenderMode={}));exports.AcGiOrthographicType=void 0;(function(i){i[i.NON_ORTHOGRAPHIC=0]="NON_ORTHOGRAPHIC",i[i.TOP=1]="TOP",i[i.BOTTOM=2]="BOTTOM",i[i.FRONT=3]="FRONT",i[i.BACK=4]="BACK",i[i.LEFT=5]="LEFT",i[i.RIGHT=6]="RIGHT"})(exports.AcGiOrthographicType||(exports.AcGiOrthographicType={}));exports.AcGiDefaultLightingType=void 0;(function(i){i[i.ONE_DISTANT_LIGHT=0]="ONE_DISTANT_LIGHT",i[i.TWO_DISTANT_LIGHTS=1]="TWO_DISTANT_LIGHTS"})(exports.AcGiDefaultLightingType||(exports.AcGiDefaultLightingType={}));var Co=function(){function i(){this._number=-1,this._id="",this._groupId="",this._centerPoint=new _,this._height=0,this._width=0,this._viewCenter=new _,this._viewHeight=0}return Object.defineProperty(i.prototype,"number",{get:function(){return this._number},set:function(t){this._number=t},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"id",{get:function(){return this._id},set:function(t){this._id=t},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"groupId",{get:function(){return this._groupId},set:function(t){this._groupId=t},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"centerPoint",{get:function(){return this._centerPoint},set:function(t){this._centerPoint.copy(t)},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"height",{get:function(){return this._height},set:function(t){this._height=t},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"width",{get:function(){return this._width},set:function(t){this._width=t},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"box",{get:function(){var t=new et;return t.setFromCenterAndSize(this.centerPoint,{x:this.width,y:this.height}),t},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"viewCenter",{get:function(){return this._viewCenter},set:function(t){this._viewCenter.copy(t)},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"viewHeight",{get:function(){return this._viewHeight},set:function(t){this._viewHeight=t},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"viewWidth",{get:function(){return this.viewHeight*(this.width/this.height)},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"viewBox",{get:function(){var t=new et;return t.setFromCenterAndSize(this.viewCenter,{x:this.viewWidth,y:this.viewHeight}),t},enumerable:!1,configurable:!0}),i.prototype.clone=function(){var t=new i;return t.id=this.id,t.groupId=this.groupId,t.number=this.number,t.centerPoint.copy(this.centerPoint),t.height=this.height,t.width=this.width,t.viewCenter.copy(this.viewCenter),t.viewHeight=this.viewHeight,t},i.prototype.copy=function(t){return this.id=t.id,this.groupId=t.groupId,this.number=t.number,this.centerPoint.copy(t.centerPoint),this.height=t.height,this.width=t.width,this.viewCenter.copy(t.viewCenter),this.viewHeight=t.viewHeight,this},i}();const Nh=()=>({center:new P,viewDirectionFromTarget:new _(0,0,1),viewTarget:new _(0,0,0),lensLength:500,frontClippingPlane:0,backClippingPlane:0,viewHeight:1e3,viewTwistAngle:0,frozenLayers:[],styleSheet:"",renderMode:exports.AcGiRenderMode.OPTIMIZED_2D,viewMode:0,ucsIconSetting:0,ucsOrigin:new _(0,0,0),ucsXAxis:new _(1,0,0),ucsYAxis:new _(0,1,0),orthographicType:exports.AcGiOrthographicType.TOP,shadePlotSetting:0,shadePlotObjectId:void 0,visualStyleObjectId:void 0,isDefaultLightingOn:!1,defaultLightingType:exports.AcGiDefaultLightingType.ONE_DISTANT_LIGHT,brightness:0,contrast:0,ambientColor:void 0,aspectRatio:void 0});class jn extends Rt{constructor(){super(),this._gsView=Nh(),this._centerPoint=this._gsView.center}get gsView(){return this._gsView}get centerPoint(){return this._centerPoint}set centerPoint(t){this._centerPoint.copy(t)}get viewDirectionFromTarget(){return this._gsView.viewDirectionFromTarget}set viewDirectionFromTarget(t){this._gsView.viewDirectionFromTarget.copy(t)}get viewTarget(){return this._gsView.viewTarget}set viewTarget(t){this._gsView.viewTarget.copy(t)}get viewHeight(){return this._gsView.viewHeight}set viewHeight(t){this._gsView.viewHeight=t}get viewTwistAngle(){return this._gsView.viewTwistAngle}set viewTwistAngle(t){this._gsView.viewTwistAngle=t}get lensLength(){return this._gsView.lensLength}set lensLength(t){this._gsView.lensLength=t}get frontClippingPlane(){return this._gsView.frontClippingPlane}set frontClippingPlane(t){this._gsView.frontClippingPlane=t}get backClippingPlane(){return this._gsView.backClippingPlane}set backClippingPlane(t){this._gsView.backClippingPlane=t}get renderMode(){return this._gsView.renderMode}set renderMode(t){this._gsView.renderMode=t}get viewMode(){return this._gsView.viewMode}set viewMode(t){this._gsView.viewMode=t}get ucsIconSetting(){return this._gsView.ucsIconSetting}set ucsIconSetting(t){this._gsView.ucsIconSetting=t}get ucsOrigin(){return this._gsView.ucsOrigin}set ucsOrigin(t){this._gsView.ucsOrigin.copy(t)}get ucsXAxis(){return this._gsView.ucsXAxis}set ucsXAxis(t){this._gsView.ucsXAxis.copy(t)}get ucsYAxis(){return this._gsView.ucsYAxis}set ucsYAxis(t){this._gsView.ucsYAxis.copy(t)}get orthographicType(){return this._gsView.orthographicType}set orthographicType(t){this._gsView.orthographicType=t}get shadePlotSetting(){return this._gsView.shadePlotSetting}set shadePlotSetting(t){this._gsView.shadePlotSetting=t}get shadePlotObjectId(){return this._gsView.shadePlotObjectId}set shadePlotObjectId(t){this._gsView.shadePlotObjectId=t}get visualStyleObjectId(){return this._gsView.visualStyleObjectId}set visualStyleObjectId(t){this._gsView.visualStyleObjectId=t}get isDefaultLightingOn(){return this._gsView.isDefaultLightingOn}set isDefaultLightingOn(t){this._gsView.isDefaultLightingOn=t}get defaultLightingType(){return this._gsView.defaultLightingType}set defaultLightingType(t){this._gsView.defaultLightingType=t}get brightness(){return this._gsView.brightness}set brightness(t){this._gsView.brightness=t}get contrast(){return this._gsView.contrast}set contrast(t){this._gsView.contrast=t}get ambientColor(){return this._gsView.ambientColor}set ambientColor(t){this._gsView.ambientColor=t}get aspectRatio(){return this._gsView.aspectRatio}set aspectRatio(t){this._gsView.aspectRatio=t}}class Gn extends jn{static isActiveVportName(t){return t.toLowerCase()===Ae.toLowerCase()}constructor(){super(),this._circleSides=100,this._lowerLeftCorner=new P(0,0),this._upperRightCorner=new P(1,1),this._snapBase=new P(0,0),this._snapAngle=0,this._snapSpacing=new P(0,0),this._standardFlag=0,this._gridSpacing=new P,this._gridMajor=10}get circleSides(){return this._circleSides}set circleSides(t){this._circleSides=t}get center(){return this.centerPoint}set center(t){this.centerPoint=t}get lowerLeftCorner(){return this._lowerLeftCorner}set lowerLeftCorner(t){this._lowerLeftCorner.copy(t)}get upperRightCorner(){return this._upperRightCorner}set upperRightCorner(t){this._upperRightCorner.copy(t)}get snapBase(){return this._snapBase}set snapBase(t){this._snapBase.copy(t)}get snapAngle(){return this._snapAngle}set snapAngle(t){this._snapAngle=t}get snapIncrements(){return this._snapSpacing}set snapIncrements(t){this._snapSpacing.copy(t)}get gridMajor(){return this._gridMajor}set gridMajor(t){this._gridMajor=t}get gridIncrements(){return this._gridSpacing}set gridIncrements(t){this._gridSpacing.copy(t)}get standardFlag(){return this._standardFlag}set standardFlag(t){this._standardFlag=t}get snapEnabled(){return!!(this._standardFlag&256)}get backgroundObjectId(){return this._backgroundObjectId}set backgroundObjectId(t){this._backgroundObjectId=t}dxfOutFields(t){return super.dxfOutFields(t),t.writeSubclassMarker("AcDbViewportTableRecord"),t.writeString(2,this.name),t.writeDouble(40,this.gsView.viewHeight),this.gsView.aspectRatio!=null&&Number.isFinite(this.gsView.aspectRatio)&&t.writeDouble(41,this.gsView.aspectRatio),t.writeDouble(45,this.gsView.viewHeight),t.writePoint2d(10,this.lowerLeftCorner),t.writePoint2d(11,this.upperRightCorner),t.writePoint2d(12,this.center),t.writePoint2d(13,this.snapBase),t.writePoint2d(14,this.snapIncrements),t.writePoint2d(15,this.gridIncrements),t.writeInt16(70,this.standardFlag),t.writeInt16(71,this.circleSides),t.writeDouble(42,this.gsView.lensLength),t.writePoint3d(16,this.gsView.viewDirectionFromTarget),t.writePoint3d(17,this.gsView.viewTarget),t.writeAngle(50,this.snapAngle),t.writeAngle(51,this.gsView.viewTwistAngle),t.writeInt16(61,this.gridMajor),t.writeInt16(281,this.backgroundObjectId?1:0),t.writeObjectId(332,this.backgroundObjectId),this}}class Oo extends Pt{constructor(t){super(t)}normalizeName(t){return Gn.isActiveVportName(t)?Ae:t.toUpperCase()}}class ko extends Pt{constructor(t){super(t)}}class ji extends Rt{constructor(t){super(),this.name=t}dxfOutFields(t){return super.dxfOutFields(t),t.writeSubclassMarker("AcDbRegAppTableRecord"),t.writeString(2,this.name),t.writeInt16(70,0),this}}const v={ACADVER:"ACADVER",ANGBASE:"ANGBASE",ANGDIR:"ANGDIR",AUNITS:"AUNITS",AUPREC:"AUPREC",CECOLOR:"CECOLOR",CELTSCALE:"CELTSCALE",CELTYPE:"CELTYPE",CELWEIGHT:"CELWEIGHT",CETRANSPARENCY:"CETRANSPARENCY",CLAYER:"CLAYER",CMLEADERSTYLE:"CMLEADERSTYLE",CMLSCALE:"CMLSCALE",CMLSTYLE:"CMLSTYLE",COLORTHEME:"COLORTHEME",DYNMODE:"DYNMODE",DYNPROMPT:"DYNPROMPT",EXTMAX:"EXTMAX",EXTMIN:"EXTMIN",HPANG:"HPANG",HPASSOC:"HPASSOC",HPBACKGROUNDCOLOR:"HPBACKGROUNDCOLOR",HPCOLOR:"HPCOLOR",HPDOUBLE:"HPDOUBLE",HPISLANDDETECTION:"HPISLANDDETECTION",HPLAYER:"HPLAYER",HPNAME:"HPNAME",HPSCALE:"HPSCALE",HPSEPARATE:"HPSEPARATE",HPTRANSPARENCY:"HPTRANSPARENCY",INSUNITS:"INSUNITS",LTSCALE:"LTSCALE",LUNITS:"LUNITS",LUPREC:"LUPREC",LWDISPLAY:"LWDISPLAY",MEASUREMENT:"MEASUREMENT",MEASUREMENTCOLOR:"MEASUREMENTCOLOR",MODELBKCOLOR:"MODELBKCOLOR",OSMODE:"OSMODE",ORTHOMODE:"ORTHOMODE",PAPERBKCOLOR:"PAPERBKCOLOR",PDMODE:"PDMODE",PDSIZE:"PDSIZE",PICKBOX:"PICKBOX",POLARADDANG:"POLARADDANG",POLARMODE:"POLARMODE",POLARANG:"POLARANG",SHORTCUTMENU:"SHORTCUTMENU",TEXTSTYLE:"TEXTSTYLE",UNITMODE:"UNITMODE"},Bh=Object.freeze(Object.values(v)),ri=class ri{constructor(){this.registry=new Map,this.cache=new Map,this.events={sysVarChanged:new D},this.registerVar({name:v.ANGBASE,type:"number",isDbVar:!0,defaultValue:0}),this.registerVar({name:v.ANGDIR,type:"number",isDbVar:!0,defaultValue:0}),this.registerVar({name:v.AUNITS,type:"number",isDbVar:!0,defaultValue:rt.DecimalDegrees}),this.registerVar({name:v.AUPREC,type:"number",isDbVar:!0,defaultValue:0}),this.registerVar({name:v.CECOLOR,type:"color",isDbVar:!0,defaultValue:new k(exports.AcCmColorMethod.ByLayer)}),this.registerVar({name:v.CELTSCALE,type:"number",isDbVar:!0,defaultValue:-1}),this.registerVar({name:v.CELTYPE,type:"string",isDbVar:!0,defaultValue:tt}),this.registerVar({name:v.CELWEIGHT,type:"number",isDbVar:!0,defaultValue:exports.AcGiLineWeight.ByLayer}),this.registerVar({name:v.CETRANSPARENCY,type:"transparency",isDbVar:!0,defaultValue:new U}),this.registerVar({name:v.CLAYER,type:"string",isDbVar:!0,defaultValue:"0"}),this.registerVar({name:v.CMLEADERSTYLE,type:"string",isDbVar:!0,defaultValue:Ct}),this.registerVar({name:v.CMLSCALE,type:"number",isDbVar:!0,defaultValue:1}),this.registerVar({name:v.CMLSTYLE,type:"string",isDbVar:!0,defaultValue:Tt}),this.registerVar({name:v.COLORTHEME,type:"number",isDbVar:!1,defaultValue:0}),this.registerVar({name:v.DYNMODE,type:"number",isDbVar:!1,defaultValue:3}),this.registerVar({name:v.DYNPROMPT,type:"boolean",isDbVar:!1,defaultValue:!0}),this.registerVar({name:v.HPANG,type:"number",isDbVar:!1,defaultValue:0}),this.registerVar({name:v.HPASSOC,type:"number",isDbVar:!1,defaultValue:1}),this.registerVar({name:v.HPBACKGROUNDCOLOR,type:"color",isDbVar:!0,defaultValue:new k(exports.AcCmColorMethod.None)}),this.registerVar({name:v.HPCOLOR,type:"color",isDbVar:!0,defaultValue:new k(exports.AcCmColorMethod.ByLayer)}),this.registerVar({name:v.HPDOUBLE,type:"number",isDbVar:!1,defaultValue:0}),this.registerVar({name:v.HPISLANDDETECTION,type:"number",isDbVar:!1,defaultValue:1}),this.registerVar({name:v.HPLAYER,type:"string",isDbVar:!0,defaultValue:"."}),this.registerVar({name:v.HPNAME,type:"string",isDbVar:!1,defaultValue:Mo}),this.registerVar({name:v.HPSCALE,type:"number",isDbVar:!1,defaultValue:1}),this.registerVar({name:v.HPSEPARATE,type:"number",isDbVar:!1,defaultValue:0}),this.registerVar({name:v.HPTRANSPARENCY,type:"transparency",isDbVar:!0,defaultValue:new U}),this.registerVar({name:v.INSUNITS,type:"number",isDbVar:!0,defaultValue:V.Millimeters}),this.registerVar({name:v.LUNITS,type:"number",isDbVar:!0,defaultValue:G.Decimal}),this.registerVar({name:v.LUPREC,type:"number",isDbVar:!0,defaultValue:4}),this.registerVar({name:v.LWDISPLAY,type:"boolean",isDbVar:!0,defaultValue:!1}),this.registerVar({name:v.MEASUREMENT,type:"number",isDbVar:!0,defaultValue:1}),this.registerVar({name:v.MEASUREMENTCOLOR,type:"color",isDbVar:!1,defaultValue:(()=>{const t=new k(exports.AcCmColorMethod.ByColor);return t.setRGB(96,165,250),t})()}),this.registerVar({name:v.MODELBKCOLOR,type:"color",isDbVar:!1,defaultValue:(()=>{const t=new k(exports.AcCmColorMethod.ByColor);return t.setRGB(0,0,0),t})()}),this.registerVar({name:v.OSMODE,type:"number",isDbVar:!0,defaultValue:0}),this.registerVar({name:v.ORTHOMODE,type:"number",isDbVar:!0,defaultValue:0}),this.registerVar({name:v.PAPERBKCOLOR,type:"color",isDbVar:!1,defaultValue:(()=>{const t=new k(exports.AcCmColorMethod.ByColor);return t.setRGB(255,255,255),t})()}),this.registerVar({name:v.PICKBOX,type:"number",isDbVar:!1,defaultValue:10}),this.registerVar({name:v.POLARADDANG,type:"string",isDbVar:!1,defaultValue:""}),this.registerVar({name:v.POLARMODE,type:"number",isDbVar:!1,defaultValue:0}),this.registerVar({name:v.POLARANG,type:"number",isDbVar:!1,defaultValue:90}),this.registerVar({name:v.SHORTCUTMENU,type:"number",isDbVar:!1,defaultValue:0}),this.registerVar({name:v.TEXTSTYLE,type:"string",isDbVar:!0,defaultValue:K}),this.registerVar({name:v.UNITMODE,type:"number",isDbVar:!0,defaultValue:0})}static instance(){return this._instance||(this._instance=new ri),this._instance}registerVar(t){const e=this.normalizeName(t.name);this.registry.set(e,{...t,name:e}),t.isDbVar||this.cache.set(e,t.defaultValue)}registerMany(t){t.forEach(e=>this.registerVar(e))}getVar(t,e){t=this.normalizeName(t);const n=this.getDescriptor(t);if(!n)throw new Error(`System variable ${t} not found!`);if(n.isDbVar)return e[t.toLowerCase()];if(this.cache.has(t))return this.cache.get(t)}getDefaultValue(t){t=this.normalizeName(t);const e=this.getDescriptor(t);if(!e)throw new Error(`System variable ${t} not found!`);return e.defaultValue}setVar(t,e,n){t=this.normalizeName(t);const r=this.getDescriptor(t);if(r){const s=this.getVar(t,n);if(r.type==="transparency"){const o=this.parseTransparency(e);if(o==null||o.isInvalid)throw new Error("Invalid transparency value!");e=o}else if(r.type!=="string"&&(typeof e=="string"||e instanceof String)){if(r.type==="number"){const o=Number(e);if(Number.isNaN(o))throw new Error("Invalid number input!");e=o}else if(r.type==="boolean")e=this.parseBoolean(e);else if(r.type==="color"){const o=this.parseColorSysVar(t,e,n);if(o==null)throw new Error("Invalid color value!");e=o}}r.isDbVar?n[t.toLowerCase()]=e:(this.cache.set(t,e),this.hasValueChanged(s,e)&&this.events.sysVarChanged.dispatch({database:n,name:t,newVal:e,oldVal:s}))}else throw new Error(`System variable ${t} not found!`)}getDescriptor(t){return this.registry.get(this.normalizeName(t))}getAllDescriptors(){return[...this.registry.values()]}parseBoolean(t){if(t==null)return!1;const e=String(t).trim().toLowerCase(),n=new Set(["true","t","1","yes","y"]),r=new Set(["false","f","0","no","n"]);return n.has(e)?!0:(r.has(e),!1)}parseColorSysVar(t,e,n){const r=e.trim().toLowerCase();return t===v.HPCOLOR.toLowerCase()&&(r==="."||r==="use current")?n.cecolor.clone():t===v.HPBACKGROUNDCOLOR.toLowerCase()&&(r===""||r==="."||r==="none")?new k(exports.AcCmColorMethod.None):k.fromString(e)}parseTransparency(t){if(t instanceof U)return t;if(typeof t=="number")return U.deserialize(t);if(!(typeof t!="string"&&!(t instanceof String)))return U.fromString(String(t))}hasValueChanged(t,e){return t instanceof k&&e instanceof k||t instanceof U&&e instanceof U?!t.equals(e):!Object.is(t,e)}normalizeName(t){return t.toLowerCase()}};ri._instance=null;let gt=ri;class Yo extends Vt{getBtrIdAt(t){for(const[e,n]of this._recordsByName)if(n.blockTableRecordId==t)return n}get maxTabOrder(){let t=-1;return this._recordsByName.forEach(e=>{e.tabOrder>t&&(t=e.tabOrder)}),t}}class Rh extends ft{constructor(){super({objectId:"0"}),this._drawNoPlotLayers=!0,this.events={dictObjetSet:new D,dictObjectErased:new D,entityAppended:new D,entityModified:new D,entityErased:new D,layerAppended:new D,layerModified:new D,layerErased:new D,openProgress:new D},this._version=new dt("AC1014"),this._angbase=0,this._angdir=0,this._aunits=rt.DecimalDegrees,this._auprec=0,this._lunits=G.Decimal,this._luprec=4,this._celtscale=1,this._cecolor=new k,this._celtype=tt,this._celweight=exports.AcGiLineWeight.ByLayer,this._cetransparency=new U,this._clayer="0",this._cmlstyle=Tt,this._cmlscale=1,this._cmleaderstyle=Ct,this._hpbackgroundcolor=new k(exports.AcCmColorMethod.None),this._hpcolor=this._cecolor.clone(),this._hplayer=".",this._hptransparency=new U,this._textstyle=K,this._extents=new C,this._insunits=V.Millimeters,this._unitmode=0,this._measurement=1,this._ltscale=1,this._lwdisplay=!1,this._pdmode=0,this._pdsize=0,this._osmode=0,this._orthomode=0,this._maxHandle=0,this._tables={appIdTable:new ko(this),blockTable:new mo(this),dimStyleTable:new _o(this),linetypeTable:new So(this),textStyleTable:new Lo(this),viewTable:new Eo(this),layerTable:new Ao(this),viewportTable:new Oo(this)},this._objects={dictionary:new Vt(this),imageDefinition:new Vt(this),layout:new Yo(this),mleaderStyle:new Vt(this),mlineStyle:new Vt(this),xrecord:new Vt(this)}}get tables(){return this._tables}get objects(){return this._objects}get formatter(){return this._formatter??(this._formatter=new lo(this))}generateHandle(){return this._maxHandle++,this._maxHandle.toString(16).toUpperCase()}updateMaxHandle(t){const e=parseInt(t,16);!isNaN(e)&&e>this._maxHandle&&(this._maxHandle=e)}commitObjectHandle(t,e){const n=t.getAttrWithoutException("objectId");!n||t.isTemp||e&&e(n)?t.objectId=this.generateHandle():this.updateMaxHandle(n)}get currentSpaceId(){return this._currentSpace||(this._currentSpace=this._tables.blockTable.modelSpace),this._currentSpace.objectId}set currentSpaceId(t){const e=this.tables.blockTable.getIdAt(t);if(e==null)throw new Error(`[AcDbDatabase] The specified block table record id '${t}' doesn't exist in the drawing database!`);this._currentSpace=e}get aunits(){return this._aunits}set aunits(t){this.updateSysVar(v.AUNITS,this._aunits,t??0,e=>{this._aunits=e})}get auprec(){return this._auprec}set auprec(t){this.updateSysVar(v.AUPREC,this._auprec,t??0,e=>{this._auprec=e})}get lunits(){return this._lunits}set lunits(t){this.updateSysVar(v.LUNITS,this._lunits,t??G.Decimal,e=>{this._lunits=e})}get luprec(){return this._luprec}set luprec(t){this.updateSysVar(v.LUPREC,this._luprec,t??4,e=>{this._luprec=e})}get version(){return this._version}set version(t){this.updateSysVar(v.ACADVER,this._version,new dt(t),e=>{this._version=e})}get insunits(){return this._insunits}set insunits(t){this.updateSysVar(v.INSUNITS,this._insunits,t??4,e=>{this._insunits=e})}get unitmode(){return this._unitmode}set unitmode(t){this.updateSysVar(v.UNITMODE,this._unitmode,t??0,e=>{this._unitmode=e})}get measurement(){return this._measurement}set measurement(t){this.updateSysVar(v.MEASUREMENT,this._measurement,t??1,e=>{this._measurement=e})}get ltscale(){return this._ltscale}set ltscale(t){this.updateSysVar(v.LTSCALE,this._ltscale,t??1,e=>{this._ltscale=e})}get lwdisplay(){return this._lwdisplay}get drawNoPlotLayers(){return this._drawNoPlotLayers}isLayerDrawable(t){if(this._drawNoPlotLayers)return!0;const e=this.tables.layerTable.getAt(t);return e==null||e.isPlottable}set lwdisplay(t){this.updateSysVar(v.LWDISPLAY,this._lwdisplay,t??!1,e=>{this._lwdisplay=e})}get cecolor(){return this._cecolor}set cecolor(t){this.updateSysVar(v.CECOLOR,this._cecolor,t||0,e=>{this._cecolor=e.clone()})}get celtscale(){return this._celtscale}set celtscale(t){this.updateSysVar(v.CELTSCALE,this._celtscale,t??1,e=>{this._celtscale=e})}get celtype(){return this._celtype}set celtype(t){const e=this.normalizeLinetypeName(t??tt);this.updateSysVar(v.CELTYPE,this._celtype,e,n=>{this._celtype=n})}get celweight(){return this._celweight}set celweight(t){this.updateSysVar(v.CELWEIGHT,this._celweight,t??exports.AcGiLineWeight.ByLayer,e=>{this._celweight=e})}get cetransparency(){return this._cetransparency}set cetransparency(t){this.updateSysVar(v.CETRANSPARENCY,this._cetransparency,t??new U,e=>{this._cetransparency=e.clone()})}get clayer(){return this._clayer}set clayer(t){this.updateSysVar(v.CLAYER,this._clayer,t??"0",e=>{this._clayer=e})}get cmlstyle(){return this._cmlstyle}set cmlstyle(t){this.updateSysVar(v.CMLSTYLE,this._cmlstyle,t??Tt,e=>{this._cmlstyle=e})}get cmlscale(){return this._cmlscale}set cmlscale(t){this.updateSysVar(v.CMLSCALE,this._cmlscale,t??1,e=>{this._cmlscale=e})}get cmleaderstyle(){return this._cmleaderstyle}set cmleaderstyle(t){this.updateSysVar(v.CMLEADERSTYLE,this._cmleaderstyle,t??Ct,e=>{this._cmleaderstyle=e})}get hpbackgroundcolor(){return this._hpbackgroundcolor}set hpbackgroundcolor(t){this.updateSysVar(v.HPBACKGROUNDCOLOR,this._hpbackgroundcolor,t??new k(exports.AcCmColorMethod.None),e=>{this._hpbackgroundcolor=e.clone()})}get hpcolor(){return this._hpcolor}set hpcolor(t){this.updateSysVar(v.HPCOLOR,this._hpcolor,t??this._cecolor,e=>{this._hpcolor=e.clone()})}get hplayer(){return this._hplayer}set hplayer(t){this.updateSysVar(v.HPLAYER,this._hplayer,t??".",e=>{this._hplayer=e})}get hptransparency(){return this._hptransparency}set hptransparency(t){this.updateSysVar(v.HPTRANSPARENCY,this._hptransparency,t??new U,e=>{this._hptransparency=e.clone()})}get textstyle(){return this._textstyle}set textstyle(t){this.updateSysVar(v.TEXTSTYLE,this._textstyle,t??K,e=>{this._textstyle=e})}get angbase(){return this._angbase}set angbase(t){this.updateSysVar(v.ANGBASE,this._angbase,t??0,e=>{this._angbase=e})}get angdir(){return this._angdir}set angdir(t){this.updateSysVar(v.ANGDIR,this._angdir,t??0,e=>{this._angdir=e})}get extmax(){return this._extents.max}set extmax(t){if(t){const e=this._extents.max.clone();this._extents.expandByPoint(t),this._extents.max.equals(e)||this.triggerSysVarChangedEvent(v.EXTMAX,e,this._extents.max)}}get extmin(){return this._extents.min}set extmin(t){if(t){const e=this._extents.min.clone();this._extents.expandByPoint(t),this._extents.min.equals(e)||this.triggerSysVarChangedEvent(v.EXTMIN,e,this._extents.min)}}get extents(){return this._extents}get pdmode(){return this._pdmode}set pdmode(t){this.updateSysVar(v.PDMODE,this._pdmode,t??0,e=>{this._pdmode=e})}get pdsize(){return this._pdsize}set pdsize(t){this.updateSysVar(v.PDSIZE,this._pdsize,t??0,e=>{this._pdsize=e})}get osmode(){return this._osmode}set osmode(t){this.updateSysVar(v.OSMODE,this._osmode,t??0,e=>{this._osmode=e})}get orthomode(){return this._orthomode}set orthomode(t){this.updateSysVar(v.ORTHOMODE,this._orthomode,t??0,e=>{this._orthomode=e})}async read(t,e,n=_e.DXF){const r=mt.instance.get(n);if(r==null)throw new Error(`Database converter for file type '${n}' isn't registered and can can't read this file!`);this.clear(),this._drawNoPlotLayers=(e==null?void 0:e.drawNoPlotLayers)??!0,await r.read(t,this,e&&e.minimumChunkSize||10,async(s,o,a,h)=>{if(this.events.openProgress.dispatch({database:this,percentage:s,stage:"CONVERSION",subStage:o,subStageStatus:a,data:h}),e&&e.fontLoader&&o=="FONT"&&a=="END"){const l=h||this.tables.textStyleTable.fonts;await e.fontLoader.load(l)}},e==null?void 0:e.timeout,e==null?void 0:e.sysVars),this.ensureDatabaseDefaults()}async openUri(t,e){var d;this.events.openProgress.dispatch({database:this,percentage:0,stage:"FETCH_FILE",subStageStatus:"START"});const n=await fetch(t);if(!n.ok)throw this.events.openProgress.dispatch({database:this,percentage:100,stage:"FETCH_FILE",subStageStatus:"ERROR"}),new Error(`Failed to fetch file '${t}' with HTTP status code '${n.status}'!`);const r=n.headers.get("content-length"),s=r?parseInt(r,10):null;let o=0;const a=(d=n.body)==null?void 0:d.getReader();if(!a)throw new Error("Failed to get response reader");const h=[];for(;;){const{done:p,value:f}=await a.read();if(p)break;if(h.push(f),o+=f.length,s!==null){const y=Math.round(o/s*100);this.events.openProgress.dispatch({database:this,percentage:y,stage:"FETCH_FILE",subStageStatus:"IN-PROGRESS"})}}const l=new Uint8Array(o);let c=0;for(const p of h)l.set(p,c),c+=p.length;const g=this.getFileNameFromUri(t).toLowerCase().split(".").pop();g==="dwg"?await this.read(l.buffer,e,_e.DWG):g==="dxf"?await this.read(l.buffer,e,_e.DXF):await this.read(l.buffer,e,g),this.events.openProgress.dispatch({database:this,percentage:100,stage:"FETCH_FILE",subStageStatus:"END"})}dxfOut(t,e=16,n=this.version.name,r=!1){this.ensureDatabaseDefaults();const s=n instanceof dt?n:new dt(n),o=new as({database:this,precision:e,version:s});return this.writeDxfHeaderSection(o),this.writeDxfTablesSection(o,s),this.writeDxfBlocksSection(o),this.writeDxfEntitiesSection(o),this.writeDxfObjectsSection(o),o.writeStart("EOF"),o.toString()}async regen(){await new da(this).read(null,this,500,async(e,n,r,s)=>{this.events.openProgress.dispatch({database:this,percentage:e,stage:"CONVERSION",subStage:n,subStageStatus:r,data:s})})}createDefaultData(t={layer:!0,lineType:!0,textStyle:!0,dimStyle:!0,layout:!0}){const e=new oa(this);t.layer&&e.createDefaultLayer(),t.lineType&&e.createDefaultLineType(),t.textStyle&&e.createDefaultTextStyle(),t.dimStyle&&e.createDefaultDimStyle(),t.layout&&e.createDefaultLayout()}ensureEntityStyleDefaults(t){var e;if(t.dxfTypeName==="MLINE"){this.ensureMLineStyle(this._cmlstyle||Tt);return}if(t.dxfTypeName==="MULTILEADER"){this.ensureMLeaderStyle(this._cmleaderstyle||Ct);return}if(t.dxfTypeName==="HATCH"){const n=t;(e=n.applyPatternDefaultsFromSysVars)==null||e.call(n,this)}}ensureTextStyleDefaults(){this.hasDefaultTextStyle()||this.tables.textStyleTable.add(new Vn({name:K,standardFlag:0,fixedTextHeight:0,widthFactor:1,obliqueAngle:0,textGenerationFlag:0,lastHeight:.2,font:"SimKai",bigFont:"",extendedFont:"SimKai"}))}hasDefaultTextStyle(){const t=[K,"STANDARD"];for(const e of t)if(this.tables.textStyleTable.has(e))return!0;for(const e of this.tables.textStyleTable.newIterator())if(e.name.toUpperCase()===K.toUpperCase())return!0;return!1}ensureDatabaseDefaults(){if(!this.tables.layerTable.has("0")){const e=new k;e.colorIndex=7,this.tables.layerTable.add(new Fn({name:"0",standardFlags:0,linetype:Xt,lineWeight:0,isOff:!1,color:e,isPlottable:!0}))}if(this.tables.linetypeTable.has(Ot)||this.tables.linetypeTable.add(new Ht({name:Ot,standardFlag:0,description:"",totalPatternLength:0})),this.tables.linetypeTable.has(tt)||this.tables.linetypeTable.add(new Ht({name:tt,standardFlag:0,description:"",totalPatternLength:0})),this.tables.linetypeTable.has(Xt)||this.tables.linetypeTable.add(new Ht({name:Xt,standardFlag:0,description:"Solid line",totalPatternLength:0})),this.ensureTextStyleDefaults(),this.tables.dimStyleTable.has(K)||this.tables.dimStyleTable.add(new le({name:K,dimtxsty:K})),!this.tables.viewportTable.has(Ae)){const e=new Gn;e.name=Ae,this.tables.viewportTable.add(e)}this.ensureMLineStyle(this._cmlstyle||Tt),this.ensureMLeaderStyle(this._cmleaderstyle||Ct);const t=this.tables.blockTable.modelSpace;if(!this.objects.layout.getAt("Model")){const e=new pi;e.layoutName="Model",e.tabOrder=0,e.blockTableRecordId=t.objectId,e.limits.min.copy({x:0,y:0}),e.limits.max.copy({x:1e6,y:1e6}),e.extents.min.copy({x:0,y:0,z:0}),e.extents.max.copy({x:1e6,y:1e6,z:0}),this.objects.layout.setAt(e.layoutName,e),t.layoutId=e.objectId}this.tables.appIdTable.has(Vi)||this.tables.appIdTable.add(new ji(Vi)),this.tables.appIdTable.has(Fi)||this.tables.appIdTable.add(new ji(Fi))}ensureMLineStyle(t){const e=this.objects.mlineStyle,n=t.trim();if(!n||e.getAt(n))return;for(const[s,o]of e.entries())if(s.toUpperCase()===n.toUpperCase()||o.styleName.toUpperCase()===n.toUpperCase())return;const r=new yo;r.styleName=n,r.elements=[{offset:.5,color:new k().setByLayer(),lineType:tt},{offset:-.5,color:new k().setByLayer(),lineType:tt}],e.setAt(n,r)}ensureMLeaderStyle(t){const e=this.objects.mleaderStyle,n=t.trim();if(!n||e.getAt(n))return;for(const[a]of e.entries())if(a.toUpperCase()===n.toUpperCase())return;const r=new fo;r.unknown1=2,r.maxLeaderSegmentsPoints=2,r.leaderLineColor=new k().setByBlock(),r.textColor=new k().setByBlock(),r.blockColor=new k().setByBlock(),r.alignSpace=4,r.breakSize=3.75,r.enableBlockRotation=!0,r.unknown2=!1;const s=this.tables.linetypeTable.getAt(Ot);r.leaderLineTypeId=s==null?void 0:s.objectId;const o=this.tables.textStyleTable.getAt(K);r.textStyleId=o==null?void 0:o.objectId,e.setAt(n,r)}writeDxfHeaderSection(t){var e;t.startSection("HEADER"),t.writeString(9,"$ACADVER"),t.writeString(1,((e=t.version)==null?void 0:e.name)??this.version.name),t.writeString(9,"$HANDSEED"),t.writeString(5,t.nextHandle.toString(16).toUpperCase()),t.version!=null&&t.version.value>=27&&(t.writeString(9,"$DWGCODEPAGE"),t.writeString(3,"UTF-8")),t.writeString(9,"$INSUNITS"),t.writeInt16(70,this.insunits),t.writeString(9,"$LUNITS"),t.writeInt16(70,this.lunits),t.writeString(9,"$LUPREC"),t.writeInt16(70,this.luprec),t.writeString(9,"$UNITMODE"),t.writeInt16(70,this.unitmode),t.writeString(9,"$MEASUREMENT"),t.writeInt16(70,this.measurement),t.writeString(9,"$LTSCALE"),t.writeDouble(40,this.ltscale),t.writeString(9,"$LWDISPLAY"),t.writeInt16(70,this.lwdisplay?1:0),t.writeString(9,"$CLAYER"),t.writeString(8,this.clayer),t.writeString(9,"$CELTYPE"),t.writeString(6,this.celtype),this.cetransparency.isInvalid||(t.writeString(9,"$CETRANSPARENCY"),t.writeTransparency(this.cetransparency)),t.writeString(9,"$CMLSTYLE"),t.writeString(2,this.cmlstyle),t.writeString(9,"$CMLSCALE"),t.writeDouble(40,this.cmlscale),t.writeString(9,"$CMLEADERSTYLE"),t.writeString(2,this.cmleaderstyle),this.hpcolor.colorMethod!==exports.AcCmColorMethod.None&&(t.writeString(9,"$HPCOLOR"),t.writeCmColor(this.hpcolor,2)),this.hpbackgroundcolor.colorMethod!==exports.AcCmColorMethod.None&&(t.writeString(9,"$HPBACKGROUNDCOLOR"),t.writeCmColor(this.hpbackgroundcolor,2)),t.writeString(9,"$HPLAYER"),t.writeString(8,this.hplayer),this.hptransparency.isInvalid||(t.writeString(9,"$HPTRANSPARENCY"),t.writeTransparency(this.hptransparency)),t.writeString(9,"$TEXTSTYLE"),t.writeString(7,this.textstyle),t.writeString(9,"$ANGBASE"),t.writeAngle(50,this.angbase),t.writeString(9,"$ANGDIR"),t.writeInt16(70,this.angdir),t.writeString(9,"$AUNITS"),t.writeInt16(70,this.aunits),t.writeString(9,"$AUPREC"),t.writeInt16(70,this.auprec),t.writeString(9,"$EXTMIN"),t.writePoint3d(10,this.extmin),t.writeString(9,"$EXTMAX"),t.writePoint3d(10,this.extmax),t.writeString(9,"$PDMODE"),t.writeInt32(70,this.pdmode),t.writeString(9,"$PDSIZE"),t.writeDouble(40,this.pdsize),t.writeString(9,"$OSMODE"),t.writeInt32(70,this.osmode),t.writeString(9,"$ORTHOMODE"),t.writeInt16(70,this.orthomode),t.endSection()}writeDxfTablesSection(t,e){t.startSection("TABLES"),this.writeDxfTable(t,"VPORT",this.tables.viewportTable,this.tables.viewportTable.newIterator(),"VPORT"),this.writeDxfTable(t,"VIEW",this.tables.viewTable,this.tables.viewTable.newIterator(),"VIEW"),this.writeDxfTable(t,"LTYPE",this.tables.linetypeTable,this.tables.linetypeTable.newIterator(),"LTYPE"),this.writeDxfTable(t,"LAYER",this.tables.layerTable,this.tables.layerTable.newIterator(),"LAYER"),this.writeDxfTable(t,"STYLE",this.tables.textStyleTable,this.tables.textStyleTable.newIterator(),"STYLE"),this.writeDxfTable(t,"APPID",this.tables.appIdTable,this.tables.appIdTable.newIterator(),"APPID"),this.writeDxfTable(t,"DIMSTYLE",this.tables.dimStyleTable,this.tables.dimStyleTable.newIterator(),"DIMSTYLE"),e.value>=19&&this.writeDxfTable(t,"BLOCK_RECORD",this.tables.blockTable,this.tables.blockTable.newIterator(),"BLOCK_RECORD"),t.endSection()}writeDxfBlocksSection(t){t.startSection("BLOCKS");for(const e of this.tables.blockTable.newIterator()){if(e.dxfOutBlockBegin(t),!e.isModelSapce&&!e.isPaperSapce)for(const n of e.newIterator())this.writeDxfEntity(t,n);e.dxfOutBlockEnd(t)}t.endSection()}writeDxfEntitiesSection(t){t.startSection("ENTITIES");for(const e of this.tables.blockTable.newIterator())if(!(!e.isModelSapce&&!e.isPaperSapce))for(const n of e.newIterator())this.writeDxfEntity(t,n);t.endSection()}writeDxfObjectsSection(t){t.startSection("OBJECTS");const e=this.objects.dictionary;e.ownerId="0";const n=o=>{t.writeStart("DICTIONARY"),o.dxfOut(t)},r=(o,a)=>{e.getAt(o)!==a&&e.setAt(o,a)},s=o=>{e.getAt(o)&&e.remove(o)};r("ACAD_LAYOUT",this.objects.layout),this.objects.mleaderStyle.numEntries>0?r("ACAD_MLEADERSTYLE",this.objects.mleaderStyle):s("ACAD_MLEADERSTYLE"),this.objects.mlineStyle.numEntries>0?r("ACAD_MLINESTYLE",this.objects.mlineStyle):s("ACAD_MLINESTYLE"),this.objects.imageDefinition.numEntries>0?r("ISM_RASTER_IMAGE_DICT",this.objects.imageDefinition):s("ISM_RASTER_IMAGE_DICT"),this.objects.xrecord.numEntries>0?r("MLIGHT_XRECORD",this.objects.xrecord):s("MLIGHT_XRECORD"),n(e),n(this.objects.layout),this.objects.mleaderStyle.numEntries>0&&n(this.objects.mleaderStyle),this.objects.mlineStyle.numEntries>0&&n(this.objects.mlineStyle),this.objects.imageDefinition.numEntries>0&&n(this.objects.imageDefinition),this.objects.xrecord.numEntries>0&&n(this.objects.xrecord);for(const[o,a]of this.objects.layout.entries())t.writeStart("LAYOUT"),a.dxfOut(t);for(const[o,a]of this.objects.imageDefinition.entries())t.writeStart("IMAGEDEF"),a.dxfOut(t);for(const[o,a]of this.objects.mleaderStyle.entries())t.writeStart("MLEADERSTYLE"),a.dxfOut(t);for(const[o,a]of this.objects.mlineStyle.entries())t.writeStart("MLINESTYLE"),a.dxfOut(t);for(const[o,a]of this.objects.xrecord.entries())t.writeStart("XRECORD"),a.dxfOut(t);t.endSection()}writeDxfTable(t,e,n,r,s){const o=[...r];t.startTable(e),n.dxfOut(t);for(const a of o){if(s==="BLOCK_RECORD"&&a instanceof Q){a.dxfOutBlockRecord(t);continue}t.writeStart(s),a.dxfOut(t)}t.endTable()}writeDxfEntity(t,e){t.writeStart(e.dxfTypeName),e.dxfOut(t)}clear(){this._tables.blockTable.removeAll(),this._tables.dimStyleTable.removeAll(),this._tables.linetypeTable.removeAll(),this._tables.textStyleTable.removeAll(),this._tables.viewTable.removeAll(),this._tables.layerTable.removeAll(),this._tables.viewportTable.removeAll(),this._objects.layout.removeAll(),this._objects.imageDefinition.removeAll(),this._objects.mleaderStyle.removeAll(),this._objects.mlineStyle.removeAll(),this._objects.xrecord.removeAll(),this._currentSpace=void 0,this._extents.makeEmpty()}updateSysVar(t,e,n,r){this.hasSysVarValueChanged(e,n)&&(r(n),this.triggerSysVarChangedEvent(t,e,n))}hasSysVarValueChanged(t,e){return t instanceof k&&e instanceof k||t instanceof U&&e instanceof U?!t.equals(e):t instanceof dt&&e instanceof dt?t.value!==e.value:!Object.is(t,e)}normalizeLinetypeName(t){const e=t.trim();return e.toUpperCase()==="BYLAYER"?tt:e.toUpperCase()==="BYBLOCK"?Ot:e}triggerSysVarChangedEvent(t,e,n){const r=gt.instance(),s=t.toLowerCase();r.getDescriptor(s)!=null&&r.events.sysVarChanged.dispatch({database:this,name:s,oldVal:e,newVal:n})}getFileNameFromUri(t){try{const n=new URL(t).pathname.split("/");return n[n.length-1]||""}catch{return""}}}class zh extends jn{constructor(){super(),this._standardFlags=0,this._viewWidth=this.viewHeight,this._ucsAssociated=!1,this._cameraPlottable=!1,this._ucsElevation=0}get standardFlags(){return this._standardFlags}set standardFlags(t){this._standardFlags=t}get viewWidth(){return this._viewWidth}set viewWidth(t){this._viewWidth=t}get ucsAssociated(){return this._ucsAssociated}set ucsAssociated(t){this._ucsAssociated=t}get cameraPlottable(){return this._cameraPlottable}set cameraPlottable(t){this._cameraPlottable=t}get ucsElevation(){return this._ucsElevation}set ucsElevation(t){this._ucsElevation=t}get ucsObjectId(){return this._ucsObjectId}set ucsObjectId(t){this._ucsObjectId=t}get ucsBaseObjectId(){return this._ucsBaseObjectId}set ucsBaseObjectId(t){this._ucsBaseObjectId=t}get backgroundObjectId(){return this._backgroundObjectId}set backgroundObjectId(t){this._backgroundObjectId=t}get liveSectionObjectId(){return this._liveSectionObjectId}set liveSectionObjectId(t){this._liveSectionObjectId=t}dxfOutFields(t){return super.dxfOutFields(t),t.writeSubclassMarker("AcDbViewTableRecord"),t.writeString(2,this.name),t.writeInt16(70,this.standardFlags),t.writeDouble(40,this.gsView.viewHeight),t.writePoint2d(10,this.centerPoint),t.writeDouble(41,this.viewWidth),t.writePoint3d(11,this.gsView.viewDirectionFromTarget),t.writePoint3d(12,this.gsView.viewTarget),t.writeDouble(42,this.gsView.lensLength),t.writeDouble(43,this.gsView.frontClippingPlane),t.writeDouble(44,this.gsView.backClippingPlane),t.writeAngle(50,this.gsView.viewTwistAngle),t.writeInt16(71,this.gsView.viewMode),t.writeInt16(281,this.gsView.renderMode),t.writeInt16(72,this.ucsAssociated?1:0),t.writeInt16(73,this.cameraPlottable?1:0),t.writeObjectId(332,this.backgroundObjectId),t.writeObjectId(334,this.liveSectionObjectId),t.writeObjectId(348,this.gsView.visualStyleObjectId),this.ucsAssociated&&(t.writePoint3d(110,this.gsView.ucsOrigin),t.writePoint3d(111,this.gsView.ucsXAxis),t.writePoint3d(112,this.gsView.ucsYAxis),t.writeInt16(79,this.gsView.orthographicType),t.writeDouble(146,this.ucsElevation),t.writeObjectId(345,this.ucsObjectId),t.writeObjectId(346,this.ucsBaseObjectId)),this}}class Wt{static get instance(){return this._instance||(this._instance=new Wt),this._instance}constructor(){this._blocks=new Map}createKey(t,e){return`${t}_${e}`}set(t,e){return e=e.fastDeepClone(),this._blocks.set(t,e),e}get(t){let e=this._blocks.get(t);return e&&(e=e.fastDeepClone()),e}has(t){return this._blocks.has(t)}clear(){this._blocks.clear()}draw(t,e,n,r=[],s=!0,o,a){const h=[];if(e!=null){const l=this.createKey(e.name,n);let c;if(this.has(l))c=this.get(l);else{const u=e.newIterator();for(const g of u)g.visibility&&(g.color.isByBlock&&n?(Wr.copy(g.color),g.color.setRGBValue(n),this.addEntity(g,h,t),g.color.copy(Wr)):this.addEntity(g,h,t));c=t.group(h),c&&s&&Q.name&&!Q.name.startsWith("*U")&&this.set(l,c)}return c&&o&&(c.applyMatrix(o),a&&(a.x!=0||a.y!=0||a.z!=1)&&(o.setFromExtrusionDirection(a),c.applyMatrix(o))),c&&r&&r.length>0&&(c.bakeTransformToChildren(),r.forEach(u=>c.addChild(u))),c}else return t.group(h)}addEntity(t,e,n){if(!t.visibility)return;const r=t.worldDraw(n);r&&(this.attachEntityInfo(r,t),e.push(r))}attachEntityInfo(t,e){t.objectId=e.objectId,t.ownerId=e.ownerId,t.layerName=e.layer,t.visible=e.visibility}}const Wr=new k;var Xo=(i=>(i[i.UTF8=0]="UTF8",i[i.US_ASCII=1]="US_ASCII",i[i.ISO_8859_1=2]="ISO_8859_1",i[i.ISO_8859_2=3]="ISO_8859_2",i[i.ISO_8859_3=4]="ISO_8859_3",i[i.ISO_8859_4=5]="ISO_8859_4",i[i.ISO_8859_5=6]="ISO_8859_5",i[i.ISO_8859_6=7]="ISO_8859_6",i[i.ISO_8859_7=8]="ISO_8859_7",i[i.ISO_8859_8=9]="ISO_8859_8",i[i.ISO_8859_9=10]="ISO_8859_9",i[i.CP437=11]="CP437",i[i.CP850=12]="CP850",i[i.CP852=13]="CP852",i[i.CP855=14]="CP855",i[i.CP857=15]="CP857",i[i.CP860=16]="CP860",i[i.CP861=17]="CP861",i[i.CP863=18]="CP863",i[i.CP864=19]="CP864",i[i.CP865=20]="CP865",i[i.CP869=21]="CP869",i[i.CP932=22]="CP932",i[i.MACINTOSH=23]="MACINTOSH",i[i.BIG5=24]="BIG5",i[i.CP949=25]="CP949",i[i.JOHAB=26]="JOHAB",i[i.CP866=27]="CP866",i[i.ANSI_1250=28]="ANSI_1250",i[i.ANSI_1251=29]="ANSI_1251",i[i.ANSI_1252=30]="ANSI_1252",i[i.GB2312=31]="GB2312",i[i.ANSI_1253=32]="ANSI_1253",i[i.ANSI_1254=33]="ANSI_1254",i[i.ANSI_1255=34]="ANSI_1255",i[i.ANSI_1256=35]="ANSI_1256",i[i.ANSI_1257=36]="ANSI_1257",i[i.ANSI_874=37]="ANSI_874",i[i.ANSI_932=38]="ANSI_932",i[i.ANSI_936=39]="ANSI_936",i[i.ANSI_949=40]="ANSI_949",i[i.ANSI_950=41]="ANSI_950",i[i.ANSI_1361=42]="ANSI_1361",i[i.UTF16=43]="UTF16",i[i.ANSI_1258=44]="ANSI_1258",i[i.UNDEFINED=255]="UNDEFINED",i))(Xo||{});const Fh=["utf-8","utf-8","iso-8859-1","iso-8859-2","iso-8859-3","iso-8859-4","iso-8859-5","iso-8859-6","iso-8859-7","iso-8859-8","iso-8859-9","utf-8","utf-8","utf-8","utf-8","utf-8","utf-8","utf-8","utf-8","utf-8","utf-8","utf-8","shift-jis","macintosh","big5","utf-8","utf-8","ibm866","windows-1250","windows-1251","windows-1252","gbk","windows-1253","windows-1254","windows-1255","windows-1256","windows-1257","windows-874","shift-jis","gbk","euc-kr","big5","utf-8","utf-16le","windows-1258"],Vh=i=>Fh[i],qn=class qn extends ft{constructor(){super(...arguments),this._visibility=!0,this._transparency=new U,this._transparencySet=!1}get type(){return this.constructor.typeName}get layer(){return this._layer==null&&(this._layer=this.database.clayer??"0"),this._layer}set layer(t){this._layer=t}get color(){return this.getEntityColor()}set color(t){this.setEntityColor(t)}get resolvedColor(){var e;let t=this.color;if(t.isByLayer){const n=this.getLayerColor();n&&n.RGB!=null&&(t=n)}else if(t.isByBlock){const n=this.database.cecolor;if(n&&(t=n,t.isByLayer)){const r=this.database.clayer||this.layer,s=this.database.tables.layerTable.getAt(r);((e=s==null?void 0:s.color)==null?void 0:e.RGB)!=null&&(t=s.color)}}return t}get rgbColor(){const e=this.resolvedColor.RGB;return e??16777215}get lineType(){var t;return this._lineType==null&&(this._lineType=((t=this.database)==null?void 0:t.celtype)??tt),this._lineType}set lineType(t){t?t.toUpperCase()==="BYLAYER"?this._lineType=tt:t.toUpperCase()==="BYBLOCK"?this._lineType=Ot:this._lineType=t:this._lineType=tt}get lineWeight(){return this._lineWeight==null&&(this._lineWeight=this.database.celweight??exports.AcGiLineWeight.ByLayer),this._lineWeight}set lineWeight(t){this._lineWeight=t}get linetypeScale(){return this._linetypeScale==null&&(this._linetypeScale=this.database.celtscale??-1),this._linetypeScale}set linetypeScale(t){this._linetypeScale=t}get visibility(){return this._visibility}set visibility(t){this._visibility=t}get transparency(){return this._transparency}set transparency(t){this._transparency=t.clone(),this._transparencySet=!0}hasExplicitLayer(){return this._layer!=null}hasExplicitColor(){return this._color!=null}getEntityColor(){return this._color==null&&(this._color=new k,this.database.cecolor&&this._color.copy(this.database.cecolor)),this._color}setEntityColor(t){this._color==null&&(this._color=new k),this._color.copy(t)}shouldResolveColorFromCecolor(){return!0}hasExplicitTransparency(){return this._transparencySet}dxfOutFields(t){t.writeSubclassMarker("AcDbEntity"),t.writeString(8,this.layer),t.writeString(6,this.lineType),t.writeDouble(48,this.linetypeScale),t.writeInt16(60,this.visibility?0:1),t.writeCmColor(this.color),t.writeInt16(370,this.lineWeight),t.writeTransparency(this.transparency);const e=this.database.tables.blockTable.getIdAt(this.ownerId);return e!=null&&e.isPaperSapce&&t.writeInt16(67,1),this}resolveEffectiveProperties(){this._layer==null&&(this._layer=this.database.clayer??"0"),this._color==null&&this.shouldResolveColorFromCecolor()&&(this._color=new k,this.database.cecolor&&this._color.copy(this.database.cecolor)),this._lineType==null&&(this._lineType=this.database.celtype??tt),this._linetypeScale==null&&(this._linetypeScale=this.database.celtscale??-1),this._lineWeight==null&&(this._lineWeight=this.database.celweight??exports.AcGiLineWeight.ByLayer)}get properties(){return{type:this.type,groups:[this.getGeneralProperties()]}}subGetGripPoints(){return new Array}subGetOsnapPoints(t,e,n,r,s,o){}transformBy(t){return this}erase(){return this.database.tables.blockTable.removeEntity(this.objectId)}worldDraw(t,e){if(!this.database.isLayerDrawable(this.layer))return;const n=t.subEntityTraits;n.color=this.resolvedColor,n.rgbColor=this.rgbColor,n.lineType=this.lineStyle,n.lineTypeScale=this.linetypeScale,n.lineWeight=this.lineWeight,n.transparency=this.transparency,n.layer=this.layer,n.drawOrder=0,"thickness"in this&&(n.thickness=this.thickness);const r=this.subWorldDraw(t,e);return this.attachEntityInfo(r),r}triggerModifiedEvent(){this.database.events.entityModified.dispatch({database:this.database,entity:this})}getGeneralProperties(){return{groupName:"general",properties:[{name:"handle",type:"int",editable:!1,accessor:{get:()=>this.objectId}},{name:"color",type:"color",editable:!0,accessor:{get:()=>this.color,set:t=>{this.color=t}}},{name:"layer",type:"string",editable:!0,accessor:{get:()=>this.layer,set:t=>{this.layer=t}}},{name:"linetype",type:"linetype",editable:!0,accessor:{get:()=>this.lineType,set:t=>{this.lineType=t}}},{name:"linetypeScale",type:"float",editable:!0,accessor:{get:()=>this.linetypeScale,set:t=>{this.linetypeScale=t}}},{name:"lineWeight",type:"lineweight",editable:!0,accessor:{get:()=>this.lineWeight,set:t=>{this.lineWeight=t}}},{name:"transparency",type:"transparency",editable:!0,accessor:{get:()=>this.transparency,set:t=>{this.transparency=t}}}]}}get lineStyle(){var r;const{type:t,name:e}=this.getLineType(),n=(r=this.database)==null?void 0:r.tables.linetypeTable.getAt(e);return n?{type:t,...n.linetype}:{type:t,name:e,standardFlag:0,description:"",totalPatternLength:0}}getLineType(){if(this.lineType==tt){const t=this.database.tables.layerTable.getAt(this.layer);if(t&&t.linetype)return{type:"ByLayer",name:t.linetype}}else return this.lineType==Ot?{type:"ByBlock",name:Xt}:{type:"UserSpecified",name:this.lineType};return{type:"UserSpecified",name:Xt}}getLayerColor(){const t=this.database.tables.layerTable.getAt(this.layer);return t!=null?t.color:null}attachEntityInfo(t){t&&(t.objectId=this.objectId,this.attrs.has("ownerId")&&(t.ownerId=this.ownerId),t.layerName=this.layer,t.visible=this.visibility)}};qn.typeName="Entity";let $=qn;const Zn=class Zn extends ${getOffsetSideAtPoint(t){return 1}};Zn.typeName="Curve";let q=Zn;function Dr(i,t){const e=i.x-t.x,n=i.y-t.y,r=(i.z||0)-(t.z||0);return e*e+n*n+r*r}function ht(i,t){if(t.length===0)return;let e=new _(t[0].x,t[0].y,t[0].z||0),n=Dr(i,e);for(let r=1;r<t.length;r++){const s=t[r],o=new _(s.x,s.y,s.z||0),a=Dr(i,o);a<n&&(e=o,n=a)}return e}function ge(i,t,e,n,r){const s=new _(i.x,i.y,i.z||0),o=new _(t.x,t.y,t.z||0),a=new xt(s,o);switch(e){case b.EndPoint:r.push(s,o);break;case b.MidPoint:r.push(a.midPoint);break;case b.Nearest:r.push(a.nearestPoint(n));break;case b.Perpendicular:r.push(a.perpPoint(n));break}}function $e(i,t,e,n,r,s,o){if(e){const a=new pt(i,t,e);switch(r){case b.EndPoint:o.push(new _(a.startPoint.x,a.startPoint.y,n),new _(a.endPoint.x,a.endPoint.y,n));break;case b.MidPoint:o.push(new _(a.midPoint.x,a.midPoint.y,n));break;case b.Nearest:{const h=a.nearestPoint({x:s.x,y:s.y});o.push(new _(h.x,h.y,n));break}case b.Perpendicular:{a.perpendicularPoints({x:s.x,y:s.y}).forEach(l=>o.push(new _(l.x,l.y,n)));break}case b.Tangent:{a.tangentPoints({x:s.x,y:s.y}).forEach(l=>o.push(new _(l.x,l.y,n)));break}}return}ge(new _(i.x,i.y,n),new _(t.x,t.y,n),r,s,o)}function Hn(i,t,e,n,r){if(i.length!==0)switch(e){case b.EndPoint:i.forEach(s=>r.push(new _(s.x,s.y,s.z||0)));break;case b.MidPoint:case b.Nearest:case b.Perpendicular:{const s=i.length,o=[];for(let a=0;a<s;a++){const h=[];ge(i[a],i[(a+1)%i.length],e,n,h),o.push(...h)}if(e===b.MidPoint)r.push(...o);else{const a=ht(n,o);a&&r.push(a)}break}}}const ee=class ee extends q{get dxfTypeName(){return"LWPOLYLINE"}constructor(){super(),this._elevation=0,this._geo=new H}get numberOfVertices(){return this._geo.numberOfVertices}get elevation(){return this._elevation}set elevation(t){this._elevation=t}get closed(){return this._geo.closed}get area(){return this._geo.area}set closed(t){this._geo.closed=t}addVertexAt(t,e,n=0,r=-1,s=-1){const o=r<0?void 0:r,a=s<0?void 0:s,h={x:e.x,y:e.y,bulge:n,startWidth:o,endWidth:a};this._geo.addVertexAt(t,h)}removeVertexAt(t){this._geo.removeVertexAt(t)}reset(t,e){this._geo.reset(t,e)}getPoint2dAt(t){return this._geo.getPointAt(t)}getPoint3dAt(t){const e=this.getPoint2dAt(t);return new _(e.x,e.y,this._elevation)}get geometricExtents(){const t=this._geo.box;return new C({x:t.min.x,y:t.min.y,z:this._elevation},{x:t.max.x,y:t.max.y,z:this._elevation})}subGetGripPoints(){const t=new Array;for(let e=0;e<this.numberOfVertices;++e)t.push(this.getPoint3dAt(e));return t}subGetOsnapPoints(t,e,n,r){var h;const s=this._geo,o=this._elevation,a=s.numberOfVertices;if(a!==0)switch(t){case b.EndPoint:for(let l=0;l<a;l++){const c=s.getPointAt(l);r.push(new _(c.x,c.y,o))}break;case b.MidPoint:case b.Nearest:case b.Perpendicular:case b.Tangent:{const l=this.closed?a:a-1,c=[];for(let u=0;u<l;u++){const g=[];$e(s.getPointAt(u),s.getPointAt((u+1)%a),(h=s.vertices[u])==null?void 0:h.bulge,o,t,e,g),c.push(...g)}if(t===b.MidPoint)r.push(...c);else{const u=ht(e,c);u&&r.push(u)}break}}}transformBy(t){const e=t.determinant()<0;let n=this._elevation;return this._geo.vertices.forEach(r=>{const s=new _(r.x,r.y,this._elevation).applyMatrix4(t);r.x=s.x,r.y=s.y,n=s.z,e&&r.bulge!=null&&(r.bulge=-r.bulge)}),this._elevation=n,this._geo._boundingBoxNeedsUpdate=!0,this}get properties(){return{type:this.type,groups:[this.getGeneralProperties(),{groupName:"geometry",properties:[{name:"vertices",type:"array",editable:!1,itemSchema:{properties:[{name:"x",type:"float",editable:!0},{name:"y",type:"float",editable:!0}]},accessor:{get:()=>this._geo.vertices}},{name:"elevation",type:"float",editable:!0,accessor:{get:()=>this.elevation,set:t=>{this.elevation=t}}},{name:"length",type:"float",editable:!1,accessor:{get:()=>this._geo.length}}]},{groupName:"others",properties:[{name:"closed",type:"float",editable:!0,accessor:{get:()=>this.closed,set:t=>{this.closed=t}}}]}]}}subWorldDraw(t){const e=this._geo.getPoints(100),n=this.createWidthProfile();if(n!=null){const s=jh(n,this.closed);if(s!=null){const o=t.subEntityTraits;return o.fillType={solidFill:!0,patternAngle:0,definitionLines:[]},t.area(s)}}const r=[];return e.forEach(s=>r.push(new _().set(s.x,s.y,this.elevation))),t.lines(r)}dxfOutFields(t){super.dxfOutFields(t),t.writeSubclassMarker("AcDbPolyline"),t.writeInt32(90,this.numberOfVertices),t.writeInt16(70,this.closed?1:0),t.writeDouble(38,this.elevation);for(let e=0;e<this.numberOfVertices;++e)t.writePoint2d(10,this.getPoint2dAt(e));return this}createWidthProfile(){const t=this._geo.vertices,e=t.length;if(e<2)return null;const n=this.closed?e:e-1,r=[];let s=!1;for(let o=0;o<n;o++){const a=t[o],h=t[(o+1)%e],l=Math.max(0,a.startWidth??0),c=Math.max(0,a.endWidth??0);(l>at||c>at)&&(s=!0);const u=this.sampleSegment(a,h),g=u.length-1;for(let d=0;d<=g;d++){if(d===0&&r.length>0||this.closed&&o===n-1&&d===g)continue;const p=g>0?d/g:0;r.push({x:u[d].x,y:u[d].y,width:Dh(l,c,p)})}}return s&&r.length>=2?r:null}sampleSegment(t,e){if(t.bulge&&Math.abs(t.bulge)>at){const r=new pt(t,e,t.bulge).getPoints(32);if(r.length>1)return r.map(s=>new P(s.x,s.y))}return[new P(t.x,t.y),new P(e.x,e.y)]}static from2dPoints(t,e){const n=new ee;return t.forEach((r,s)=>n.addVertexAt(s,r)),n.closed=e,n}static fromGePolyline(t){const e=new ee;return t.vertices.forEach((n,r)=>{e.addVertexAt(r,new P(n.x,n.y),n.bulge??0)}),e.closed=t.closed,e}getOffsetCurves(t){const e=this.createOffsetCurve(t);return e?[e]:[]}getOffsetSideAtPoint(t){const e=this.numberOfVertices;let n=1/0,r=1;const s=this.closed?e:e-1;for(let o=0;o<s;o++){const a=this.getPoint2dAt(o),h=this.getPoint2dAt((o+1)%e),l=h.x-a.x,c=h.y-a.y,u=l*l+c*c;if(u===0)continue;const g=Math.max(0,Math.min(1,((t.x-a.x)*l+(t.y-a.y)*c)/u)),d=(t.x-a.x-g*l)**2+(t.y-a.y-g*c)**2;d<n&&(n=d,r=l*(t.y-a.y)-c*(t.x-a.x)>=0?1:-1)}return r}createOffsetCurve(t){const e=this._geo.offset(t);return e.length===0?null:ee.fromGePolyline(e[0])}};ee.typeName="Polyline";let lt=ee;function fi(i,t,e){const n=Nl(i,t,e);return n?lt.fromGePolyline(n):null}const at=1e-6,Ur=4;function jh(i,t){if(i.length<2)return null;const e=Hh(i,t);if(e.length<2)return null;const{left:n,right:r}=Gh(e,t);if(n.length<2||r.length<2)return null;const s=new Bt;if(t){if(!Mi(n)||!Mi(r))return null;const a=Math.abs(Gi(n)),h=Math.abs(Gi(r)),[l,c]=a>=h?[n,r]:[r,n];return s.add(new H(l,!0)),s.add(new H(c,!0)),s}const o=[...n,...r.reverse()];return Mi(o)?(s.add(new H(o,!0)),s):null}function Gh(i,t){const e=[],n=[];for(let r=0;r<i.length;r++){const s=i[r],o=Math.max(0,s.width)/2;if(o<=at)continue;const a=Wh(i,r,t);a!=null&&(e.push({x:s.x+a.x*o,y:s.y+a.y*o}),n.push({x:s.x-a.x*o,y:s.y-a.y*o}))}return{left:e,right:n}}function Hh(i,t){const e=[];if(i.forEach(n=>{const r=e[e.length-1];(!r||Math.abs(r.x-n.x)>at||Math.abs(r.y-n.y)>at||Math.abs(r.width-n.width)>at)&&e.push(n)}),t&&e.length>1){const n=e[0],r=e[e.length-1];Math.abs(n.x-r.x)<=at&&Math.abs(n.y-r.y)<=at&&e.pop()}return e}function Wh(i,t,e){const n=i.length,r=i[t],s=i[(t-1+n)%n],o=i[(t+1)%n];let a=$r(r.x-s.x,r.y-s.y),h=$r(o.x-r.x,o.y-r.y);if(e||(t===0&&(a=h),t===n-1&&(h=a)),a==null&&h==null)return null;if(a==null)return ze(h);if(h==null)return ze(a);const l=ze(a),c=ze(h),u=l.x+c.x,g=l.y+c.y,d=Math.hypot(u,g);if(d<=at)return c;const p={x:u/d,y:g/d},f=Math.abs(p.x*c.x+p.y*c.y),y=f<=at?Ur:Math.min(1/f,Ur);return{x:p.x*y,y:p.y*y}}function $r(i,t){const e=Math.hypot(i,t);return e<=at?null:{x:i/e,y:t/e}}function ze(i){return{x:-i.y,y:i.x}}function Gi(i){let t=0;const e=i.length;for(let n=0;n<e;n++){const r=i[n],s=i[(n+1)%e];t+=r.x*s.y-s.x*r.y}return t/2}function Mi(i){return i.length>=3&&Math.abs(Gi(i))>at}function Dh(i,t,e){return i+(t-i)*e}var No=(i=>(i[i.SimplePoly=0]="SimplePoly",i[i.FitCurvePoly=1]="FitCurvePoly",i[i.QuadSplinePoly=2]="QuadSplinePoly",i[i.CubicSplinePoly=3]="CubicSplinePoly",i))(No||{});const Kn=class Kn extends q{get dxfTypeName(){return"POLYLINE"}constructor(t,e,n=0,r=!1,s=0,o=0,a=null){super(),this._polyType=t,this._elevation=n;const h=a&&(a==null?void 0:a.length)===e.length,l=e.map((c,u)=>({x:c.x,y:c.y,bulge:h?a[u]:void 0}));this._geo=new H(l,r)}get polyType(){return this._polyType}set polyType(t){this._polyType=t}get elevation(){return this._elevation}set elevation(t){this._elevation=t}get closed(){return this._geo.closed}get area(){return this._geo.area}set closed(t){this._geo.closed=t}get numberOfVertices(){return this._geo.numberOfVertices}getPointAt(t){return this._geo.getPointAt(t)}getBulgeAt(t){const e=this._geo.vertices[t];return(e==null?void 0:e.bulge)||0}get geometricExtents(){const t=this._geo.box;return new C({x:t.min.x,y:t.min.y,z:this._elevation},{x:t.max.x,y:t.max.y,z:this._elevation})}subGetGripPoints(){const t=new Array;for(let e=0;e<this._geo.numberOfVertices;++e){const n=this._geo.getPointAt(e);t.push(new _(n.x,n.y,this._elevation))}return t}subGetOsnapPoints(t,e,n,r){var h;const s=this._geo,o=this._elevation,a=s.numberOfVertices;if(a!==0)switch(t){case b.EndPoint:for(let l=0;l<a;l++){const c=s.getPointAt(l);r.push(new _(c.x,c.y,o))}break;case b.MidPoint:case b.Nearest:case b.Perpendicular:case b.Tangent:{const l=this.closed?a:a-1,c=[];for(let u=0;u<l;u++){const g=[];$e(s.getPointAt(u),s.getPointAt((u+1)%a),(h=s.vertices[u])==null?void 0:h.bulge,o,t,e,g),c.push(...g)}if(t===b.MidPoint)r.push(...c);else{const u=ht(e,c);u&&r.push(u)}break}}}transformBy(t){const e=t.determinant()<0;let n=this._elevation;return this._geo.vertices.forEach(r=>{const s=new _(r.x,r.y,this._elevation).applyMatrix4(t);r.x=s.x,r.y=s.y,n=s.z,e&&r.bulge!=null&&(r.bulge=-r.bulge)}),this._elevation=n,this._geo._boundingBoxNeedsUpdate=!0,this}get properties(){return{type:this.type,groups:[this.getGeneralProperties(),{groupName:"geometry",properties:[{name:"vertices",type:"array",editable:!1,itemSchema:{properties:[{name:"x",type:"float",editable:!0},{name:"y",type:"float",editable:!0}]},accessor:{get:()=>this._geo.vertices}},{name:"elevation",type:"float",editable:!0,accessor:{get:()=>this.elevation,set:t=>{this.elevation=t}}},{name:"length",type:"float",editable:!1,accessor:{get:()=>this._geo.length}}]},{groupName:"others",properties:[{name:"closed",type:"float",editable:!0,accessor:{get:()=>this.closed,set:t=>{this.closed=t}}}]}]}}subWorldDraw(t){const e=[];return this._geo.getPoints(100).forEach(r=>e.push(new _().set(r.x,r.y,this.elevation))),t.lines(e)}dxfOut(t,e=!1){super.dxfOut(t,e);for(let n=0;n<this.numberOfVertices;++n)t.writeStart("VERTEX"),t.writeHandle(5,this.database.generateHandle()),t.writeObjectId(330,this.objectId),t.writeSubclassMarker("AcDbEntity"),t.writeSubclassMarker("AcDbVertex"),t.writeSubclassMarker("AcDb2dVertex"),t.writePoint3d(10,{x:this.getPointAt(n).x,y:this.getPointAt(n).y,z:this.elevation}),t.writeDouble(42,this.getBulgeAt(n)),t.writeInt16(70,0);return t.writeStart("SEQEND"),t.writeHandle(5,this.database.generateHandle()),t.writeObjectId(330,this.objectId),t.writeSubclassMarker("AcDbEntity"),this}dxfOutFields(t){super.dxfOutFields(t),t.writeSubclassMarker("AcDb2dPolyline");let e=this.closed?1:0;return this.polyType===1&&(e|=2),this.polyType===2&&(e|=4),this.polyType===3&&(e|=8),t.writeInt16(66,this.numberOfVertices>0?1:0),t.writeInt16(70,e),t.writeDouble(10,0),t.writeDouble(20,0),t.writeDouble(30,this.elevation),this}getOffsetCurves(t){const e=this.createOffsetCurve(t);return e?[e]:[]}getOffsetSideAtPoint(t){const e=this.collectPath2d();return e.length<2?1:lt.from2dPoints(e,this.closed).getOffsetSideAtPoint(t)}createOffsetCurve(t){const e=this._geo.offset(t);return e.length===0?null:lt.fromGePolyline(e[0])}collectPath2d(){const t=Math.max(32,this.numberOfVertices*4);return this._geo.getPoints(t)}};Kn.typeName="2dPolyline";let Hi=Kn;var Bo=(i=>(i[i.Vertex=0]="Vertex",i[i.CurveFitVertex=1]="CurveFitVertex",i[i.SplineFitVertex=8]="SplineFitVertex",i[i.SplineCtlVertex=9]="SplineCtlVertex",i))(Bo||{});const Qn=class Qn extends ${get dxfTypeName(){return"VERTEX"}constructor(){super(),this._position=new _,this._bulge=0,this._startWidth=0,this._endWidth=0,this._vertexType=0}get position(){return this._position}set position(t){this._position.copy(t)}get bulge(){return this._bulge}set bulge(t){this._bulge=t}get startWidth(){return this._startWidth}set startWidth(t){this._startWidth=t}get endWidth(){return this._endWidth}set endWidth(t){this._endWidth=t}get vertexType(){return this._vertexType}set vertexType(t){this._vertexType=t}get geometricExtents(){return new C().expandByPoint(this._position)}subGetGripPoints(){const t=new Array;return t.push(this._position),t}subGetOsnapPoints(t,e,n,r){(t===b.EndPoint||t===b.Node)&&r.push(this._position)}transformBy(t){return this._position.applyMatrix4(t),this}subWorldDraw(t){}dxfOutFields(t){return super.dxfOutFields(t),t.writeSubclassMarker("AcDbVertex"),t.writeSubclassMarker("AcDb2dVertex"),t.writePoint2d(10,this.position),t.writeDouble(40,this.startWidth),t.writeDouble(41,this.endWidth),t.writeDouble(42,this.bulge),t.writeInt16(70,this.vertexType),this}};Qn.typeName="2dVertex";let Wi=Qn;var Ro=(i=>(i[i.SimplePoly=0]="SimplePoly",i[i.QuadSplinePoly=1]="QuadSplinePoly",i[i.CubicSplinePoly=2]="CubicSplinePoly",i))(Ro||{});const si=class si extends q{get dxfTypeName(){return"POLYLINE"}constructor(t,e,n=!1){super(),this._polyType=t,this._geo=new H(e,n)}get polyType(){return this._polyType}set polyType(t){this._polyType=t}get closed(){return this._geo.closed}get area(){return 0}set closed(t){this._geo.closed=t}get numberOfVertices(){return this._geo.numberOfVertices}getPointAt(t){const e=this._geo.vertices[t];return new _(e.x,e.y,e.z||0)}get geometricExtents(){const t=this._geo.vertices.map(e=>new _(e.x,e.y,e.z||0));return new C().setFromPoints(t)}subGetGripPoints(){const t=new Array;for(let e=0;e<this._geo.numberOfVertices;++e)t.push(this.getPointAt(e));return t}subGetOsnapPoints(t,e,n,r){const s=Array.from({length:this._geo.numberOfVertices},(o,a)=>this.getPointAt(a));if(s.length!==0)switch(t){case b.EndPoint:r.push(...s);break;case b.MidPoint:case b.Nearest:case b.Perpendicular:{const o=[];for(let a=0;a<s.length-1;a++){const h=[];ge(s[a],s[a+1],t,e,h),o.push(...h)}if(t===b.MidPoint)r.push(...o);else{const a=ht(e,o);a&&r.push(a)}break}}}transformBy(t){return this._geo.vertices.forEach(e=>{const n=new _(e.x,e.y,e.z||0).applyMatrix4(t);e.x=n.x,e.y=n.y,e.z=n.z}),this._geo._boundingBoxNeedsUpdate=!0,this}get properties(){return{type:this.type,groups:[this.getGeneralProperties(),{groupName:"geometry",properties:[{name:"vertices",type:"array",editable:!1,itemSchema:{properties:[{name:"x",type:"float",editable:!0},{name:"y",type:"float",editable:!0},{name:"z",type:"float",editable:!0}]},accessor:{get:()=>this._geo.vertices}},{name:"length",type:"float",editable:!1,accessor:{get:()=>this._geo.length}}]},{groupName:"others",properties:[{name:"closed",type:"float",editable:!0,accessor:{get:()=>this.closed,set:t=>{this.closed=t}}}]}]}}subWorldDraw(t){const e=this._geo.vertices.map(n=>new _(n.x,n.y,n.z||0));return t.lines(e)}dxfOut(t,e=!1){super.dxfOut(t,e);for(let n=0;n<this.numberOfVertices;++n){const r=this.getPointAt(n);t.writeStart("VERTEX"),t.writeHandle(5,this.database.generateHandle()),t.writeObjectId(330,this.objectId),t.writeSubclassMarker("AcDbEntity"),t.writeSubclassMarker("AcDbVertex"),t.writeSubclassMarker("AcDb3dPolylineVertex"),t.writePoint3d(10,{x:r.x,y:r.y,z:r.z}),t.writeInt16(70,32)}return t.writeStart("SEQEND"),t.writeHandle(5,this.database.generateHandle()),t.writeObjectId(330,this.objectId),t.writeSubclassMarker("AcDbEntity"),this}dxfOutFields(t){super.dxfOutFields(t),t.writeSubclassMarker("AcDb3dPolyline");let e=this.closed?1:0;return e|=8,this.polyType===1&&(e|=16),this.polyType===2&&(e|=32),t.writeInt16(66,this.numberOfVertices>0?1:0),t.writeInt16(70,e),this}getOffsetCurves(t){const e=this.createOffsetCurve(t);return e?[e]:[]}getOffsetSideAtPoint(t){const e=this.collectPath2d();return e.length<2?1:lt.from2dPoints(e,this.closed).getOffsetSideAtPoint(t)}createOffsetCurve(t){const e=this._geo.offset(t);if(e.length===0)return null;const n=e[0],r=[];for(let s=0;s<n.numberOfVertices;s++){const o=n.getPointAt(s);r.push(new _(o.x,o.y,this.interpolateZ(o.x,o.y)))}return new si(this.polyType,r,this.closed)}collectPath2d(){const t=Math.max(32,this.numberOfVertices*4);return this._geo.getPoints(t)}interpolateZ(t,e){const n=this.numberOfVertices;if(n<=0)return 0;let r=1/0,s=this.getPointAt(0).z;const o=this.closed?n:n-1;for(let a=0;a<o;a++){const h=this.getPointAt(a),l=this.getPointAt((a+1)%n),c=l.x-h.x,u=l.y-h.y,g=c*c+u*u;if(g===0)continue;const d=Math.max(0,Math.min(1,((t-h.x)*c+(e-h.y)*u)/g)),p=h.x+c*d,f=h.y+u*d,y=(t-p)**2+(e-f)**2;y<r&&(r=y,s=h.z+(l.z-h.z)*d)}return s}};si.typeName="3dPolyline";let Di=si;var zo=(i=>(i[i.SimpleVertex=0]="SimpleVertex",i[i.ControlVertex=1]="ControlVertex",i[i.FitVertex=2]="FitVertex",i))(zo||{});const Jn=class Jn extends ${get dxfTypeName(){return"VERTEX"}constructor(){super(),this._position=new _,this._vertexType=0}get position(){return this._position}set position(t){this._position.copy(t)}get vertexType(){return this._vertexType}set vertexType(t){this._vertexType=t}get geometricExtents(){return new C().expandByPoint(this._position)}subGetGripPoints(){const t=new Array;return t.push(this._position),t}subGetOsnapPoints(t,e,n,r){(t===b.EndPoint||t===b.Node)&&r.push(this._position)}transformBy(t){return this._position.applyMatrix4(t),this}subWorldDraw(t){}dxfOutFields(t){return super.dxfOutFields(t),t.writeSubclassMarker("AcDbVertex"),t.writeSubclassMarker("AcDb3dPolylineVertex"),t.writePoint3d(10,this.position),t.writeInt16(70,this.vertexType|32),this}};Jn.typeName="3dVertex";let Ui=Jn;const oi=class oi extends q{get dxfTypeName(){return"ARC"}constructor(t,e,n,r,s=w.Z_AXIS){super();const o=kn(s);this._geo=new gi(t,e,n,r,s,o)}get center(){return this._geo.center}set center(t){this._geo.center=t}get radius(){return this._geo.radius}set radius(t){this._geo.radius=t}get startAngle(){return this._geo.startAngle}set startAngle(t){this._geo.startAngle=t}get endAngle(){return this._geo.endAngle}set endAngle(t){this._geo.endAngle=t}get normal(){return this._geo.normal}set normal(t){this._geo.normal=t}get startPoint(){return this._geo.startPoint}get endPoint(){return this._geo.endPoint}get midPoint(){return this._geo.midPoint}get geometricExtents(){return this._geo.box}get closed(){return this._geo.closed}get area(){return this._geo.area}get properties(){return{type:this.type,groups:[this.getGeneralProperties(),{groupName:"geometry",properties:[{name:"centerX",type:"float",editable:!0,accessor:{get:()=>this.center.x,set:t=>{this.center.x=t}}},{name:"centerY",type:"float",editable:!0,accessor:{get:()=>this.center.y,set:t=>{this.center.y=t}}},{name:"centerZ",type:"float",editable:!0,accessor:{get:()=>this.center.z,set:t=>{this.center.z=t}}},{name:"radius",type:"float",editable:!0,accessor:{get:()=>this.radius,set:t=>{this.radius=t}}},{name:"startAngle",type:"float",editable:!0,accessor:{get:()=>this.startAngle,set:t=>{this.startAngle=t}}},{name:"endAngle",type:"float",editable:!0,accessor:{get:()=>this.endAngle,set:t=>{this.endAngle=t}}},{name:"normalX",type:"float",editable:!0,accessor:{get:()=>this.normal.x,set:t=>{this.normal.x=t}}},{name:"normalY",type:"float",editable:!0,accessor:{get:()=>this.normal.y,set:t=>{this.normal.y=t}}},{name:"normalZ",type:"float",editable:!0,accessor:{get:()=>this.normal.z,set:t=>{this.normal.z=t}}},{name:"arcLength",type:"float",editable:!1,accessor:{get:()=>this._geo.length}},{name:"totalAngle",type:"float",editable:!1,accessor:{get:()=>E.radToDeg(Math.abs(this._geo.deltaAngle))}},{name:"area",type:"float",editable:!1,accessor:{get:()=>this.area}}]}]}}subGetGripPoints(){const t=new Array;return t.push(this.center),t.push(this.startPoint),t.push(this.endPoint),t}subGetOsnapPoints(t,e,n,r){const s=this.startPoint,o=this.endPoint;switch(t){case b.EndPoint:r.push(s),r.push(o);break;case b.MidPoint:r.push(this.midPoint);break;case b.Center:case b.Centroid:r.push(this._geo.center);break;case b.Quadrant:{const a=[0,Math.PI/2,Math.PI,3*Math.PI/2];for(const h of a)E.isBetweenAngle(h,this.startAngle,this.endAngle)&&r.push(this._geo.getPointAtAngle(h));break}case b.Nearest:{const a=this._geo.nearestPoint(e);r.push(a)}break;case b.Perpendicular:{const a=this._geo.perpendicularPoints(e),h=ht(e,a);h&&r.push(h);break}case b.Tangent:{const a=this._geo.tangentPoints(e);r.push(...a);break}}}transformBy(t){return this._geo.transform(t),this}subWorldDraw(t){return t.circularArc(this._geo)}dxfOutFields(t){super.dxfOutFields(t);const e=xe(this.center,this.normal);return t.writeSubclassMarker("AcDbArc"),t.writePoint3d(10,e),t.writeDouble(40,this.radius),t.writeAngle(50,Oi(this.center,this.startPoint,this.normal)),t.writeAngle(51,Oi(this.center,this.endPoint,this.normal)),t.writeVector3d(210,this.normal),this}getOffsetCurves(t){const e=this.createOffsetCurve(t);return e?[e]:[]}getOffsetSideAtPoint(t){const e=this.center,n=this.radius;return Math.sqrt((t.x-e.x)**2+(t.y-e.y)**2)>=n?1:-1}createOffsetCurve(t){const e=this._geo.offset(t);return e?new oi(e.center,e.radius,e.startAngle,e.endAngle,e.normal):null}};oi.typeName="Arc";let $i=oi;const Uh=1;function Fo(i){return i.replace(/\\[PpNn]/g,`
|
|
4
|
-
`).replace(/\\[A-Za-z][^;]*;/g,"").replace(/[{}]/g,"")}function Vo(i,t,e=1){if(!i||t<=0)return 0;const n=Fo(i),r=Math.max(...n.split(/\r\n|\r|\n/g).map(s=>s.length),0);return r===0?0:Math.max(t,r*t*Uh*e)}function $h(i){const t=Fo(i);return Math.max(t.split(/\r\n|\r|\n/g).length,1)}function qh(i,t,e){if(t<=0||i<=0)return 0;if(i===1)return t;const n=Math.max(e,0);return t+(i-1)*t*n}function Zh(i,t,e){switch(e){case exports.AcGiMTextAttachmentPoint.TopCenter:return{minX:-i/2,minY:-t,maxX:i/2,maxY:0};case exports.AcGiMTextAttachmentPoint.TopRight:return{minX:-i,minY:-t,maxX:0,maxY:0};case exports.AcGiMTextAttachmentPoint.MiddleLeft:return{minX:0,minY:-t/2,maxX:i,maxY:t/2};case exports.AcGiMTextAttachmentPoint.MiddleCenter:return{minX:-i/2,minY:-t/2,maxX:i/2,maxY:t/2};case exports.AcGiMTextAttachmentPoint.MiddleRight:return{minX:-i,minY:-t/2,maxX:0,maxY:t/2};case exports.AcGiMTextAttachmentPoint.BottomLeft:case exports.AcGiMTextAttachmentPoint.BaselineLeft:return{minX:0,minY:0,maxX:i,maxY:t};case exports.AcGiMTextAttachmentPoint.BottomCenter:case exports.AcGiMTextAttachmentPoint.BaselineCenter:return{minX:-i/2,minY:0,maxX:i/2,maxY:t};case exports.AcGiMTextAttachmentPoint.BottomRight:case exports.AcGiMTextAttachmentPoint.BaselineRight:return{minX:-i,minY:0,maxX:0,maxY:t};case exports.AcGiMTextAttachmentPoint.TopLeft:default:return{minX:0,minY:-t,maxX:i,maxY:0}}}function Kh(i,t){let e;t&&t.lengthSq()>0?e=t.clone().normalize():e=new w(Math.cos(i),Math.sin(i),0);const n=new w(-e.y,e.x,e.z);return n.lengthSq()===0?n.set(0,1,0):n.normalize(),{xAxis:e,yAxis:n}}function jo(i,t,e,n,r,s=0,o){if(e<=0&&n<=0)return i.expandByPoint(t),i;const a=Zh(e,n,r),{xAxis:h,yAxis:l}=Kh(s,o?new w(o.x,o.y,o.z||0):void 0),c=[[a.minX,a.minY],[a.maxX,a.minY],[a.maxX,a.maxY],[a.minX,a.maxY]];for(const[u,g]of c)i.expandByPoint(new _(t.x+h.x*u+l.x*g,t.y+h.y*u+l.y*g,t.z+h.z*u+l.z*g));return i}var Go=(i=>(i[i.LEFT=0]="LEFT",i[i.CENTER=1]="CENTER",i[i.RIGHT=2]="RIGHT",i[i.ALIGNED=3]="ALIGNED",i[i.MIDDLE=4]="MIDDLE",i[i.FIT=5]="FIT",i))(Go||{}),Ho=(i=>(i[i.BASELINE=0]="BASELINE",i[i.BOTTOM=1]="BOTTOM",i[i.MIDDLE=2]="MIDDLE",i[i.TOP=3]="TOP",i))(Ho||{});const tr=class tr extends ${get dxfTypeName(){return"TEXT"}constructor(){super(),this._textString="",this._height=0,this._thickness=1,this._position=new _,this._alignmentPoint=new _,this._rotation=0,this._oblique=0,this._horizontalMode=0,this._verticalModel=2,this._styleName="",this._widthFactor=1}get textString(){return this._textString}set textString(t){this._textString=t}get thickness(){return this._thickness}set thickness(t){this._thickness=t}get height(){return this._height}set height(t){this._height=t}get position(){return this._position}set position(t){this._position.copy(t)}get alignmentPoint(){return this._alignmentPoint}set alignmentPoint(t){this._alignmentPoint.copy(t)}get rotation(){return this._rotation}set rotation(t){this._rotation=t}get oblique(){return this._oblique}set oblique(t){this._oblique=t}get horizontalMode(){return this._horizontalMode}set horizontalMode(t){this._horizontalMode=t}get verticalMode(){return this._verticalModel}set verticalMode(t){this._verticalModel=t}get styleName(){return this._styleName}set styleName(t){this._styleName=t}get widthFactor(){return this._widthFactor}set widthFactor(t){this._widthFactor=t}get geometricExtents(){const t=new C,{anchor:e,attachmentPoint:n}=this.resolveTextAnchor(),r=Vo(this.textString,this.height,this.widthFactor);return jo(t,e,r,this.height,n,this.rotation)}subGetGripPoints(){return[this._position]}subGetOsnapPoints(t,e,n,r){b.Insertion===t&&r.push(this._position)}transformBy(t){const e=this._position.clone(),n=this._position.clone().add(new w(Math.cos(this._rotation),Math.sin(this._rotation),0)),r=this._position.clone().add(new w(-Math.sin(this._rotation),Math.cos(this._rotation),0)),s=this._position.clone().add(new w(0,0,1));e.applyMatrix4(t),n.applyMatrix4(t),r.applyMatrix4(t),s.applyMatrix4(t);const o=new w(n).sub(e),a=new w(r).sub(e),h=new w(s).sub(e),l=a.length(),c=o.length(),u=h.length();return this._position.copy(e),c>0&&(this._rotation=Math.atan2(o.y,o.x)),l>0&&(this._height*=l,c>0&&(this._widthFactor*=c/l)),u>0&&(this._thickness*=u),this}get properties(){return{type:this.type,groups:[this.getGeneralProperties(),{groupName:"text",properties:[{name:"contents",type:"string",editable:!0,accessor:{get:()=>this.textString,set:t=>{this.textString=t}}},{name:"styleName",type:"string",editable:!0,accessor:{get:()=>this.styleName,set:t=>{this.styleName=t}}},{name:"textHeight",type:"float",editable:!0,accessor:{get:()=>this.height,set:t=>{this.height=t}}},{name:"rotation",type:"float",editable:!0,accessor:{get:()=>this.rotation,set:t=>{this.rotation=t}}},{name:"widthFactor",type:"float",editable:!0,accessor:{get:()=>this.widthFactor,set:t=>{this.widthFactor=t}}},{name:"oblique",type:"float",editable:!0,accessor:{get:()=>this.oblique,set:t=>{this.oblique=t}}}]},{groupName:"geometry",properties:[{name:"positionX",type:"float",editable:!0,accessor:{get:()=>this.position.x,set:t=>{this.position.x=t}}},{name:"positionY",type:"float",editable:!0,accessor:{get:()=>this.position.y,set:t=>{this.position.y=t}}},{name:"positionZ",type:"float",editable:!0,accessor:{get:()=>this.position.z,set:t=>{this.position.z=t}}}]}]}}getTextStyle(){const t=this.database.tables.textStyleTable.resolveAt(this.styleName);if(!t)throw new Error("No valid text style found in text style table.");return t.textStyle}subWorldDraw(t,e){const{anchor:n,attachmentPoint:r}=this.resolveTextAnchor(),s={text:this.textString,height:this.height,width:1/0,widthFactor:this.widthFactor,position:n,rotation:this.rotation,drawingDirection:exports.AcGiMTextFlowDirection.BOTTOM_TO_TOP,attachmentPoint:r};return t.mtext(s,this.getTextStyle(),e)}resolveTextAnchor(){const t=this.resolveAttachmentPoint();if(t===exports.AcGiMTextAttachmentPoint.BaselineLeft)return{anchor:this._position,attachmentPoint:t};const e=this._alignmentPoint;return e.x===0&&e.y===0&&e.z===0||e.x===this._position.x&&e.y===this._position.y&&e.z===this._position.z?{anchor:this._position,attachmentPoint:exports.AcGiMTextAttachmentPoint.BaselineLeft}:{anchor:e,attachmentPoint:t}}resolveAttachmentPoint(){const t=this._horizontalMode,e=this._verticalModel;if(t===4)return exports.AcGiMTextAttachmentPoint.MiddleCenter;if(t===3||t===5)return exports.AcGiMTextAttachmentPoint.BaselineLeft;switch(e){case 3:return t===1?exports.AcGiMTextAttachmentPoint.TopCenter:t===2?exports.AcGiMTextAttachmentPoint.TopRight:exports.AcGiMTextAttachmentPoint.TopLeft;case 2:return t===1?exports.AcGiMTextAttachmentPoint.MiddleCenter:t===2?exports.AcGiMTextAttachmentPoint.MiddleRight:exports.AcGiMTextAttachmentPoint.MiddleLeft;case 1:return t===1?exports.AcGiMTextAttachmentPoint.BottomCenter:t===2?exports.AcGiMTextAttachmentPoint.BottomRight:exports.AcGiMTextAttachmentPoint.BottomLeft;case 0:default:return t===1?exports.AcGiMTextAttachmentPoint.BaselineCenter:t===2?exports.AcGiMTextAttachmentPoint.BaselineRight:exports.AcGiMTextAttachmentPoint.BaselineLeft}}dxfOutFields(t){return super.dxfOutFields(t),t.writeSubclassMarker("AcDbText"),t.writePoint3d(10,this.position),t.writeDouble(39,this.thickness),t.writeDouble(40,this.height),t.writeString(1,this.textString),t.writeAngle(50,this.rotation),t.writeDouble(41,this.widthFactor),t.writeAngle(51,this.oblique),t.writeString(7,this.styleName),t.writeInt16(72,this.horizontalMode),t.writeInt16(73,this.verticalMode),t.writePoint3d(11,this.alignmentPoint),this}};tr.typeName="Text";let Se=tr;var nt=(i=>(i[i.Invisible=1]="Invisible",i[i.Const=2]="Const",i[i.Verifiable=4]="Verifiable",i[i.Preset=8]="Preset",i))(nt||{}),Mt=(i=>(i[i.MultiLine=2]="MultiLine",i[i.ConstMultiLine=4]="ConstMultiLine",i))(Mt||{});const er=class er extends Se{get dxfTypeName(){return"ATTDEF"}constructor(){super(),this._flags=0,this._prompt="",this._mtextFlag=0,this._tag="",this._fieldLength=0,this._lockPositionInBlock=!1,this._isReallyLocked=!1}get isInvisible(){return(this._flags&1)!==0}set isInvisible(t){t?this._flags|=1:this._flags&=-2}get prompt(){return this._prompt}set prompt(t){this._prompt=t}get isConst(){return(this._flags&2)!==0}set isConst(t){t?this._flags|=2:this._flags&=-3}get isVerifiable(){return(this._flags&4)!==0}set isVerifiable(t){t?this._flags|=4:this._flags&=-5}get isPreset(){return(this._flags&8)!==0}set isPreset(t){t?this._flags|=8:this._flags&=-9}get isMTextAttribute(){return(this._mtextFlag&2)!==0}set isMTextAttribute(t){t?this._mtextFlag|=2:this._mtextFlag&=-3}get isConstMTextAttribute(){return(this._mtextFlag&4)!==0}set isConstMTextAttribute(t){t?this._mtextFlag|=4:this._mtextFlag&=-5}get tag(){return this._tag}set tag(t){this._tag=t}get fieldLength(){return this._fieldLength}set fieldLength(t){this._fieldLength=t}get lockPositionInBlock(){return this._lockPositionInBlock}set lockPositionInBlock(t){this._lockPositionInBlock=t}get isReallyLocked(){return this._isReallyLocked}set isReallyLocked(t){this._isReallyLocked=t}get mtext(){return this._mtext}set mtext(t){this._mtext=t,this.isMTextAttribute=t!=null}subWorldDraw(t){}dxfOutFields(t){return super.dxfOutFields(t),t.writeSubclassMarker("AcDbAttributeDefinition"),t.writeString(3,this.prompt),t.writeString(2,this.tag),t.writeInt16(70,this.isInvisible?1:0),t.writeInt16(73,this.fieldLength),t.writeInt16(74,this.isReallyLocked?1:0),this}};er.typeName="AttDef";let qi=er;const ir=class ir extends Se{get dxfTypeName(){return"ATTRIB"}constructor(){super(),this._flags=0,this._mtextFlag=0,this._tag="",this._fieldLength=0,this._lockPositionInBlock=!1,this._isReallyLocked=!1}get isInvisible(){return(this._flags&nt.Invisible)!==0}set isInvisible(t){t?this._flags|=nt.Invisible:this._flags&=~nt.Invisible}get isConst(){return(this._flags&nt.Const)!==0}set isConst(t){t?this._flags|=nt.Const:this._flags&=~nt.Const}get isVerifiable(){return(this._flags&nt.Verifiable)!==0}set isVerifiable(t){t?this._flags|=nt.Verifiable:this._flags&=~nt.Verifiable}get isPreset(){return(this._flags&nt.Preset)!==0}set isPreset(t){t?this._flags|=nt.Preset:this._flags&=~nt.Preset}get isMTextAttribute(){return(this._mtextFlag&Mt.MultiLine)!==0}set isMTextAttribute(t){t?this._mtextFlag|=Mt.MultiLine:this._mtextFlag&=~Mt.MultiLine}get isConstMTextAttribute(){return(this._mtextFlag&Mt.ConstMultiLine)!==0}set isConstMTextAttribute(t){t?this._mtextFlag|=Mt.ConstMultiLine:this._mtextFlag&=~Mt.ConstMultiLine}get tag(){return this._tag}set tag(t){this._tag=t}get fieldLength(){return this._fieldLength}set fieldLength(t){this._fieldLength=t}get lockPositionInBlock(){return this._lockPositionInBlock}set lockPositionInBlock(t){this._lockPositionInBlock=t}get isReallyLocked(){return this._isReallyLocked}set isReallyLocked(t){this._isReallyLocked=t}get mtext(){return this._mtext}set mtext(t){this._mtext=t,this.isMTextAttribute=t!=null}dxfOutFields(t){return super.dxfOutFields(t),t.writeSubclassMarker("AcDbAttribute"),t.writeInt16(70,this.isInvisible?1:0),t.writeInt16(73,this.fieldLength),t.writeString(2,this.tag),t.writeInt16(74,this.isReallyLocked?1:0),this.mtext&&t.writeInt16(71,this.isMTextAttribute?1:0),this}};ir.typeName="Attrib";let Zi=ir;const ie=class ie extends ${get dxfTypeName(){return"INSERT"}constructor(t){super(),this._blockName=t,this._position=new _,this._rotation=0,this._normal=new w(0,0,1),this._scaleFactors=new _(1,1,1),this._attribs=new Map}get position(){return this._position}set position(t){this._position.copy(t)}get rotation(){return this._rotation}set rotation(t){this._rotation=t}get scaleFactors(){return this._scaleFactors}set scaleFactors(t){this._scaleFactors.copy(t)}get normal(){return this._normal}set normal(t){this._normal.copy(t).normalize()}get blockName(){return this._blockName}get blockTableRecord(){return this.database.tables.blockTable.getAt(this._blockName)}appendAttributes(t){this._attribs.set(t.objectId,t),t.ownerId=this.objectId}attributeIterator(){return new Ie(this._attribs)}get blockTransform(){const t=this.blockTableRecord,e=(t==null?void 0:t.origin)??_.ORIGIN,n=new Y().makeTranslation(-e.x,-e.y,-e.z),r=new Y().makeScale(this._scaleFactors.x,this._scaleFactors.y,this._scaleFactors.z),s=new ae().setFromAxisAngle(w.Z_AXIS,this._rotation),o=new Y().makeRotationFromQuaternion(s),a=new Y().makeTranslation(this._position.x,this._position.y,this._position.z);return new Y().multiplyMatrices(a,o).multiply(r).multiply(n)}subGetGripPoints(){return[this._position]}subGetOsnapPoints(t,e,n,r,s,o){const a=o??new Y;b.Insertion===t?r.push(this.getInsertionPoint(a)):s?this.subEntityGetOsnapPoints(t,e,n,r,s,a):this.collectBlockOsnapPoints(t,e,n,r,a)}transformBy(t){const e=new Y().setFromExtrusionDirection(this._normal),n=new Y().makeRotationZ(this._rotation),r=new Y().multiplyMatrices(e,n),s=this._position.clone(),o=new _(this._scaleFactors.x,0,0).applyMatrix4(r).add(s),a=new _(0,this._scaleFactors.y,0).applyMatrix4(r).add(s),h=new _(0,0,this._scaleFactors.z).applyMatrix4(r).add(s);s.applyMatrix4(t),o.applyMatrix4(t),a.applyMatrix4(t),h.applyMatrix4(t);const l=new w(o).sub(s),c=new w(a).sub(s),u=new w(h).sub(s);let g=new w().crossVectors(l,c);g.lengthSq()===0?g=this._normal.clone().transformDirection(t):g.normalize();const p=new Y().setFromExtrusionDirection(g).clone().invert(),f=l.clone().applyMatrix4(p);return this._position.copy(s),this._normal.copy(g),this._rotation=Math.atan2(f.y,f.x),this._scaleFactors.set(l.length(),c.length(),u.length()),this._attribs.forEach(y=>y.transformBy(t)),this}get properties(){const t={type:this.type,groups:[this.getGeneralProperties(),{groupName:"geometry",properties:[{name:"blockName",type:"float",editable:!1,accessor:{get:()=>this._blockName}},{name:"positionX",type:"float",editable:!0,accessor:{get:()=>this.position.x,set:e=>{this.position.x=e}}},{name:"positionY",type:"float",editable:!0,accessor:{get:()=>this.position.y,set:e=>{this.position.y=e}}},{name:"positionZ",type:"float",editable:!0,accessor:{get:()=>this.position.z,set:e=>{this.position.z=e}}},{name:"rotation",type:"float",editable:!0,accessor:{get:()=>this.rotation,set:e=>{this.rotation=e}}},{name:"scaleFactorsX",type:"float",editable:!0,accessor:{get:()=>this.scaleFactors.x,set:e=>{this.scaleFactors.x=e}}},{name:"scaleFactorsY",type:"float",editable:!0,accessor:{get:()=>this.scaleFactors.y,set:e=>{this.scaleFactors.y=e}}},{name:"scaleFactorsZ",type:"float",editable:!0,accessor:{get:()=>this.scaleFactors.z,set:e=>{this.scaleFactors.z=e}}},{name:"normalX",type:"float",editable:!0,accessor:{get:()=>this.normal.x,set:e=>{this.normal.x=e}}},{name:"normalY",type:"float",editable:!0,accessor:{get:()=>this.normal.y,set:e=>{this.normal.y=e}}},{name:"normalZ",type:"float",editable:!0,accessor:{get:()=>this.normal.z,set:e=>{this.normal.z=e}}}]}]};if(this._attribs.size>0){const e={groupName:"attribute",properties:[]};t.groups.push(e),this._attribs.forEach(n=>{e.properties.push({name:n.tag,type:"string",editable:!n.isConst,skipTranslation:!0,accessor:{get:()=>n.textString,set:r=>{n.textString=r}}})})}return t}get geometricExtents(){const t=new C,e=this.blockTableRecord;if(e!=null){const r=e.newIterator();for(const s of r)t.union(s.geometricExtents)}const n=this.blockTransform;return t.applyMatrix4(n),t}subWorldDraw(t){const e=this.blockTableRecord;if(e!=null){const n=this.blockTransform,r=[];return this._attribs.forEach(o=>{if(!o.isInvisible){const a=o.worldDraw(t);a&&r.push(a)}}),Wt.instance.draw(t,e,this.rgbColor,r,!0,n,this._normal)}else return t.group([])}dxfOut(t,e=!1){super.dxfOut(t,e);let n=!1;for(const r of this.attributeIterator())n=!0,t.writeStart("ATTRIB"),r.dxfOut(t);return n&&(t.writeStart("SEQEND"),t.writeHandle(5,this.database.generateHandle()),t.writeObjectId(330,this.objectId),t.writeSubclassMarker("AcDbEntity")),this}collectBlockOsnapPoints(t,e,n,r,s){const o=this.blockTableRecord;if(!o)return;const a=new Y().multiplyMatrices(s,this.getFullInsertionTransform()),h=a.clone().invert(),l=new _(e).applyMatrix4(h),c=new _(n).applyMatrix4(h),u=[];for(const g of o.newIterator()){const d=[];if(g instanceof ie){g.subGetOsnapPoints(t,e,n,d,void 0,a),u.push(...d);continue}g.subGetOsnapPoints(t,l,c,d,void 0,a),d.forEach(p=>u.push(new _(p).applyMatrix4(a)))}if(u.length!==0)if(t===b.Nearest||t===b.Perpendicular||t===b.Tangent){const g=ht(e,u);g&&r.push(g)}else r.push(...u)}subEntityGetOsnapPoints(t,e,n,r,s,o,a=new Set){if(s===this.objectId||a.has(this.objectId))return!1;a.add(this.objectId);try{const h=this.blockTableRecord;if(h==null)return!1;const l=new Y().multiplyMatrices(o,this.getFullInsertionTransform());for(const c of h.newIterator()){if(c.objectId===s){const u=new _(e).applyMatrix4(l.clone().invert()),g=new _(n).applyMatrix4(l.clone().invert()),d=[];return c.subGetOsnapPoints(t,u,g,d,s,l),c instanceof ie?d.forEach(p=>{r.push(p.clone())}):d.forEach(p=>{r.push(new _(p).applyMatrix4(l))}),!0}if(c instanceof ie&&c.subEntityGetOsnapPoints(t,e,n,r,s,l,a))return!0}return!1}finally{a.delete(this.objectId)}}getInsertionPoint(t){var r;const e=((r=this.blockTableRecord)==null?void 0:r.origin)??_.ORIGIN,n=new Y().multiplyMatrices(t,this.getFullInsertionTransform());return new _(e).applyMatrix4(n)}getFullInsertionTransform(){const t=new Y().setFromExtrusionDirection(this._normal);return new Y().multiplyMatrices(t,this.blockTransform)}dxfOutFields(t){return super.dxfOutFields(t),t.writeSubclassMarker("AcDbBlockReference"),t.writePoint3d(10,this.position),t.writeString(2,this.blockName),t.writeDouble(41,this.scaleFactors.x),t.writeDouble(42,this.scaleFactors.y),t.writeDouble(43,this.scaleFactors.z),t.writeAngle(50,this.rotation),t.writeVector3d(210,this.normal),this}};ie.typeName="BlockReference";let he=ie;const ai=class ai extends q{get dxfTypeName(){return"CIRCLE"}constructor(t,e,n=w.Z_AXIS){super();const r=kn(n);this._geo=new gi(t,e,0,B,n,r)}get center(){return this._geo.center}set center(t){this._geo.center=t}get radius(){return this._geo.radius}set radius(t){this._geo.radius=t}get normal(){return this._geo.normal}get geometricExtents(){return this._geo.box}get closed(){return this._geo.closed}get area(){return this._geo.area}subGetOsnapPoints(t,e,n,r){switch(t){case b.Center:case b.Centroid:r.push(this._geo.center);break;case b.Quadrant:r.push(this._geo.getPointAtAngle(0)),r.push(this._geo.getPointAtAngle(Math.PI/2)),r.push(this._geo.getPointAtAngle(Math.PI)),r.push(this._geo.getPointAtAngle(Math.PI/2*3));break;case b.Nearest:{const s=this._geo.nearestPoint(e);r.push(s)}break;case b.Tangent:{const s=this._geo.tangentPoints(e);r.push(...s);break}case b.Perpendicular:{const s=this._geo.perpendicularPoints(e),o=ht(e,s);o&&r.push(o);break}}}get properties(){return{type:this.type,groups:[this.getGeneralProperties(),{groupName:"geometry",properties:[{name:"centerX",type:"float",editable:!0,accessor:{get:()=>this.center.x,set:t=>{this.center.x=t}}},{name:"centerY",type:"float",editable:!0,accessor:{get:()=>this.center.y,set:t=>{this.center.y=t}}},{name:"centerZ",type:"float",editable:!0,accessor:{get:()=>this.center.z,set:t=>{this.center.z=t}}},{name:"radius",type:"float",editable:!0,accessor:{get:()=>this.radius,set:t=>{this.radius=t}}},{name:"normalX",type:"float",editable:!0,accessor:{get:()=>this.normal.x,set:t=>{this.normal.x=t}}},{name:"normalY",type:"float",editable:!0,accessor:{get:()=>this.normal.y,set:t=>{this.normal.y=t}}},{name:"normalZ",type:"float",editable:!0,accessor:{get:()=>this.normal.z,set:t=>{this.normal.z=t}}},{name:"diameter",type:"float",editable:!1,accessor:{get:()=>this._geo.radius*2}},{name:"perimeter",type:"float",editable:!1,accessor:{get:()=>this._geo.length}},{name:"area",type:"float",editable:!1,accessor:{get:()=>this.area}}]}]}}subGetGripPoints(){const t=new Array;return t.push(this.center),t}transformBy(t){return this._geo.transform(t),this}subWorldDraw(t){return t.circularArc(this._geo)}dxfOutFields(t){super.dxfOutFields(t);const e=xe(this.center,this.normal);return t.writeSubclassMarker("AcDbCircle"),t.writePoint3d(10,e),t.writeDouble(40,this.radius),t.writeVector3d(210,this.normal),this}getOffsetCurves(t){const e=this.createOffsetCurve(t);return e?[e]:[]}getOffsetSideAtPoint(t){const e=this.center,n=this.radius;return Math.sqrt((t.x-e.x)**2+(t.y-e.y)**2)>=n?1:-1}createOffsetCurve(t){const e=this._geo.offset(t);return e?new ai(e.center,e.radius,e.normal):null}};ai.typeName="Circle";let Ki=ai;const li=class li extends q{get dxfTypeName(){return"ELLIPSE"}constructor(t,e,n,r,s,o,a){super(),this._geo=new Ws(t,e,n,r,s,o,a)}get center(){return this._geo.center}set center(t){this._geo.center=t}get majorAxis(){return this._geo.majorAxis}get majorAxisRadius(){return this._geo.majorAxisRadius}set majorAxisRadius(t){this._geo.majorAxisRadius=t}get minorAxisRadius(){return this._geo.minorAxisRadius}set minorAxisRadius(t){this._geo.minorAxisRadius=t}get startAngle(){return this._geo.startAngle}set startAngle(t){this._geo.startAngle=t}get endAngle(){return this._geo.endAngle}set endAngle(t){this._geo.endAngle=t}get normal(){return this._geo.normal}set normal(t){this._geo.normal=t}get geometricExtents(){return this._geo.box}get closed(){return this._geo.closed}get area(){return this._geo.area}subGetGripPoints(){const t=new Array;return t.push(this._geo.center),t.push(this._geo.startPoint),t.push(this._geo.endPoint),t}subGetOsnapPoints(t,e,n,r){switch(t){case b.EndPoint:this.closed||(r.push(this._geo.startPoint),r.push(this._geo.endPoint));break;case b.MidPoint:this.closed||r.push(this._geo.midPoint);break;case b.Center:case b.Centroid:r.push(this._geo.center);break;case b.Quadrant:this.closed&&(r.push(this._geo.getPointAtAngle(0)),r.push(this._geo.getPointAtAngle(Math.PI/2)),r.push(this._geo.getPointAtAngle(Math.PI)),r.push(this._geo.getPointAtAngle(Math.PI/2*3)));break;case b.Nearest:r.push(this._geo.nearestPoint(e));break;case b.Tangent:r.push(...this._geo.tangentPoints(e));break;case b.Perpendicular:{const s=this._geo.perpendicularPoints(e),o=ht(e,s);o&&r.push(o);break}}}transformBy(t){return this._geo.transform(t),this}get properties(){return{type:this.type,groups:[this.getGeneralProperties(),{groupName:"geometry",properties:[{name:"centerX",type:"float",editable:!0,accessor:{get:()=>this.center.x,set:t=>{this.center.x=t}}},{name:"centerY",type:"float",editable:!0,accessor:{get:()=>this.center.y,set:t=>{this.center.y=t}}},{name:"centerZ",type:"float",editable:!0,accessor:{get:()=>this.center.z,set:t=>{this.center.z=t}}},{name:"majorAxisRadius",type:"float",editable:!0,accessor:{get:()=>this.majorAxisRadius,set:t=>{this.center.x=t}}},{name:"minorAxisRadius",type:"float",editable:!0,accessor:{get:()=>this.minorAxisRadius,set:t=>{this.minorAxisRadius=t}}},{name:"startAngle",type:"float",editable:!0,accessor:{get:()=>this.startAngle,set:t=>{this.startAngle=t}}},{name:"endAngle",type:"float",editable:!0,accessor:{get:()=>this.endAngle,set:t=>{this.endAngle=t}}},{name:"normalX",type:"float",editable:!0,accessor:{get:()=>this.normal.x,set:t=>{this.normal.x=t}}},{name:"normalY",type:"float",editable:!0,accessor:{get:()=>this.normal.y,set:t=>{this.normal.y=t}}},{name:"normalZ",type:"float",editable:!0,accessor:{get:()=>this.normal.z,set:t=>{this.normal.z=t}}},{name:"length",type:"float",editable:!1,accessor:{get:()=>this._geo.length}},{name:"area",type:"float",editable:!1,accessor:{get:()=>this.area}}]}]}}subWorldDraw(t){return t.ellipticalArc(this._geo)}dxfOutFields(t){super.dxfOutFields(t),t.writeSubclassMarker("AcDbEllipse"),t.writePoint3d(10,this.center);const e=this._geo.majorAxis,n=this.majorAxisRadius;return t.writePoint3d(11,{x:e.x*n,y:e.y*n,z:e.z*n}),t.writeVector3d(210,this.normal),t.writeDouble(40,this.minorAxisRadius/this.majorAxisRadius),t.writeDouble(41,this.startAngle),t.writeDouble(42,this.endAngle),this}getOffsetCurves(t){const e=this.createOffsetCurve(t);return e?[e]:[]}getOffsetSideAtPoint(t){const e=this.center,n=t.x-e.x,r=t.y-e.y,s=this.majorAxis,o=Math.hypot(s.x,s.y)||1,a=this.minorAxisRadius/this.majorAxisRadius*o||1,h=s.x/o,l=s.y/o,c=-l,u=h,g=n*h+r*l,d=n*c+r*u;return(g/o)**2+(d/a)**2>=1?1:-1}createOffsetCurve(t){const e=this._geo.offset(t);return e?new li(e.center,e.normal,e.majorAxis,e.majorAxisRadius,e.minorAxisRadius,e.startAngle,e.endAngle):null}};li.typeName="Ellipse";let Qi=li;const nr=class nr extends ${get dxfTypeName(){return"3DFACE"}constructor(){super(),this._vertices=[new _,new _,new _],this._edgeInvisibilities=0}getVertexAt(t){return t<0?this._vertices[0]:t>this._vertices.length?this._vertices[this._vertices.length-1]:this._vertices[t]}setVertexAt(t,e){if(t<0&&this._vertices[0].copy(e),t>=3)return this._vertices.length===3&&this._vertices.push(new _),this._vertices[3].copy(e);this._vertices[t].copy(e)}setEdgeInvisibilities(t){this._edgeInvisibilities=t}isEdgeVisibleAt(t){if(t<0||t>3)throw new Error("Index out of range");return(this._edgeInvisibilities&1<<t)===0}makeEdgeInvisibleAt(t){if(t<0||t>3)throw new Error("Index out of range");this._edgeInvisibilities=this._edgeInvisibilities|1<<t}get geometricExtents(){return new C().setFromPoints(this._vertices)}get area(){const t=[this.getVertexAt(0),this.getVertexAt(1),this.getVertexAt(2)],e=this.getVertexAt(3);return(e.x!==t[2].x||e.y!==t[2].y||e.z!==t[2].z)&&t.push(e),Ys(t)}subGetGripPoints(){const t=new Array;return t.push(...this._vertices),t}subGetOsnapPoints(t,e,n,r){Hn(this._vertices,!0,t,e,r)}transformBy(t){return this._vertices.forEach(e=>e.applyMatrix4(t)),this}subWorldDraw(t){const e=this._vertices.length,n=new Float32Array(e*3),r=new Uint16Array(e*2);for(let s=0;s<e;s++)n[s*3]=this._vertices[s].x,n[s*3+1]=this._vertices[s].y,n[s*3+2]=this._vertices[s].z,this.isEdgeVisibleAt(s)&&(r[s*2]=s,r[s*2+1]=(s+1)%4);return t.lineSegments(n,3,r)}dxfOutFields(t){super.dxfOutFields(t);const e=this.getVertexAt(0),n=this.getVertexAt(1),r=this.getVertexAt(2),s=this.getVertexAt(3);t.writeSubclassMarker("AcDbFace"),t.writePoint3d(10,e),t.writePoint3d(11,n),t.writePoint3d(12,r),t.writePoint3d(13,s);let o=0;for(let a=0;a<4;++a)this.isEdgeVisibleAt(a)||(o|=1<<a);return t.writeInt16(70,o),this}};nr.typeName="Face";let Ji=nr;const Qh={patterns:[{name:"SOLID",description:"",lines:[]},{name:"ANGLE",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:.275,dashes:[.2,-.075],sourceLine:23},{angle:90,originX:0,originY:0,deltaX:0,deltaY:.275,dashes:[.2,-.075],sourceLine:24}]},{name:"ANSI31",description:"",lines:[{angle:45,originX:0,originY:0,deltaX:0,deltaY:.125,dashes:[],sourceLine:26}]},{name:"ANSI32",description:"",lines:[{angle:45,originX:0,originY:0,deltaX:0,deltaY:.375,dashes:[],sourceLine:28},{angle:45,originX:.176776695,originY:0,deltaX:0,deltaY:.375,dashes:[],sourceLine:29}]},{name:"ANSI33",description:"",lines:[{angle:45,originX:0,originY:0,deltaX:0,deltaY:.25,dashes:[],sourceLine:31},{angle:45,originX:.176776695,originY:0,deltaX:0,deltaY:.25,dashes:[.125,-.0625],sourceLine:32}]},{name:"ANSI34",description:"",lines:[{angle:45,originX:0,originY:0,deltaX:0,deltaY:.75,dashes:[],sourceLine:34},{angle:45,originX:.176776695,originY:0,deltaX:0,deltaY:.75,dashes:[],sourceLine:35},{angle:45,originX:.353553391,originY:0,deltaX:0,deltaY:.75,dashes:[],sourceLine:36},{angle:45,originX:.530330086,originY:0,deltaX:0,deltaY:.75,dashes:[],sourceLine:37}]},{name:"ANSI35",description:"",lines:[{angle:45,originX:0,originY:0,deltaX:0,deltaY:.25,dashes:[],sourceLine:39},{angle:45,originX:.176776695,originY:0,deltaX:0,deltaY:.25,dashes:[.3125,-.0625,0,-.0625],sourceLine:40}]},{name:"ANSI36",description:"",lines:[{angle:45,originX:0,originY:0,deltaX:.21875,deltaY:.125,dashes:[.3125,-.0625,0,-.0625],sourceLine:42}]},{name:"ANSI37",description:"",lines:[{angle:45,originX:0,originY:0,deltaX:0,deltaY:.125,dashes:[],sourceLine:44},{angle:135,originX:0,originY:0,deltaX:0,deltaY:.125,dashes:[],sourceLine:45}]},{name:"ANSI38",description:"",lines:[{angle:45,originX:0,originY:0,deltaX:0,deltaY:.125,dashes:[],sourceLine:47},{angle:135,originX:0,originY:0,deltaX:.25,deltaY:.125,dashes:[.3125,-.1875],sourceLine:48}]},{name:"AR-B816",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:8,dashes:[],sourceLine:54},{angle:90,originX:0,originY:0,deltaX:8,deltaY:8,dashes:[8,-8],sourceLine:55}]},{name:"AR-B816C",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:8,deltaY:8,dashes:[15.625,-.375],sourceLine:57},{angle:0,originX:-8,originY:.375,deltaX:8,deltaY:8,dashes:[15.625,-.375],sourceLine:58},{angle:90,originX:0,originY:0,deltaX:8,deltaY:8,dashes:[-8.375,7.625],sourceLine:59},{angle:90,originX:-.375,originY:0,deltaX:8,deltaY:8,dashes:[-8.375,7.625],sourceLine:60}]},{name:"AR-B88",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:8,dashes:[],sourceLine:62},{angle:90,originX:0,originY:0,deltaX:8,deltaY:4,dashes:[8,-8],sourceLine:63}]},{name:"AR-BRELM",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:5.334,dashes:[7.625,-.375],sourceLine:65},{angle:0,originX:0,originY:2.25,deltaX:0,deltaY:5.334,dashes:[7.625,-.375],sourceLine:66},{angle:0,originX:2,originY:2.667,deltaX:0,deltaY:5.334,dashes:[3.625,-.375],sourceLine:67},{angle:0,originX:2,originY:4.917,deltaX:0,deltaY:5.334,dashes:[3.625,-.375],sourceLine:68},{angle:90,originX:0,originY:0,deltaX:0,deltaY:8,dashes:[2.25,-3.084],sourceLine:69},{angle:90,originX:-.375,originY:0,deltaX:0,deltaY:8,dashes:[2.25,-3.084],sourceLine:70},{angle:90,originX:2,originY:2.667,deltaX:0,deltaY:4,dashes:[2.25,-3.084],sourceLine:71},{angle:90,originX:1.625,originY:2.667,deltaX:0,deltaY:4,dashes:[2.25,-3.084],sourceLine:72}]},{name:"AR-BRSTD",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:2.667,dashes:[],sourceLine:74},{angle:90,originX:0,originY:0,deltaX:2.667,deltaY:4,dashes:[2.667,-2.667],sourceLine:75}]},{name:"AR-CONC",description:"",lines:[{angle:50,originX:0,originY:0,deltaX:4.12975034,deltaY:-5.89789472,dashes:[.75,-8.25],sourceLine:77},{angle:355,originX:0,originY:0,deltaX:-2.03781207,deltaY:7.3723684,dashes:[.6,-6.6],sourceLine:78},{angle:100.45144446,originX:.59771681,originY:-.05229344,deltaX:5.7305871,deltaY:-6.9397673,dashes:[.63740192,-7.01142112],sourceLine:79},{angle:46.1842,originX:0,originY:2,deltaX:6.19462554,deltaY:-8.84684596,dashes:[1.125,-12.375],sourceLine:80},{angle:96.63563549,originX:.88936745,originY:1.86206693,deltaX:8.59588239,deltaY:-10.40964966,dashes:[.95610342,-10.5171376],sourceLine:81},{angle:351.18416399,originX:0,originY:2,deltaX:7.74327494,deltaY:11.05855746,dashes:[.9,-9.90000001],sourceLine:82},{angle:21,originX:1,originY:1.5,deltaX:4.12975034,deltaY:-5.89789472,dashes:[.75,-8.25],sourceLine:83},{angle:326,originX:1,originY:1.5,deltaX:-2.03781207,deltaY:7.3723684,dashes:[.6,-6.6],sourceLine:84},{angle:71.45144474,originX:1.49742254,originY:1.16448426,deltaX:5.7305871,deltaY:-6.9397673,dashes:[.6374019,-7.01142112],sourceLine:85},{angle:37.5,originX:0,originY:0,deltaX:2.123,deltaY:2.567,dashes:[0,-6.52,0,-6.7,0,-6.625],sourceLine:86},{angle:7.5,originX:0,originY:0,deltaX:3.123,deltaY:3.567,dashes:[0,-3.82,0,-6.37,0,-2.525],sourceLine:87},{angle:-32.5,originX:-2.23,originY:0,deltaX:4.6234,deltaY:2.678,dashes:[0,-2.5,0,-7.8,0,-10.35],sourceLine:88},{angle:-42.5,originX:-3.23,originY:0,deltaX:3.6234,deltaY:4.678,dashes:[0,-3.25,0,-5.18,0,-7.35],sourceLine:89}]},{name:"AR-HBONE",description:"",lines:[{angle:45,originX:0,originY:0,deltaX:4,deltaY:4,dashes:[12,-4],sourceLine:91},{angle:135,originX:2.828427125,originY:2.828427125,deltaX:4,deltaY:-4,dashes:[12,-4],sourceLine:92}]},{name:"AR-PARQ1",description:"",lines:[{angle:90,originX:0,originY:0,deltaX:12,deltaY:12,dashes:[12,-12],sourceLine:94},{angle:90,originX:2,originY:0,deltaX:12,deltaY:12,dashes:[12,-12],sourceLine:95},{angle:90,originX:4,originY:0,deltaX:12,deltaY:12,dashes:[12,-12],sourceLine:96},{angle:90,originX:6,originY:0,deltaX:12,deltaY:12,dashes:[12,-12],sourceLine:97},{angle:90,originX:8,originY:0,deltaX:12,deltaY:12,dashes:[12,-12],sourceLine:98},{angle:90,originX:10,originY:0,deltaX:12,deltaY:12,dashes:[12,-12],sourceLine:99},{angle:90,originX:12,originY:0,deltaX:12,deltaY:12,dashes:[12,-12],sourceLine:100},{angle:0,originX:0,originY:12,deltaX:12,deltaY:-12,dashes:[12,-12],sourceLine:101},{angle:0,originX:0,originY:14,deltaX:12,deltaY:-12,dashes:[12,-12],sourceLine:102},{angle:0,originX:0,originY:16,deltaX:12,deltaY:-12,dashes:[12,-12],sourceLine:103},{angle:0,originX:0,originY:18,deltaX:12,deltaY:-12,dashes:[12,-12],sourceLine:104},{angle:0,originX:0,originY:20,deltaX:12,deltaY:-12,dashes:[12,-12],sourceLine:105},{angle:0,originX:0,originY:22,deltaX:12,deltaY:-12,dashes:[12,-12],sourceLine:106},{angle:0,originX:0,originY:24,deltaX:12,deltaY:-12,dashes:[12,-12],sourceLine:107}]},{name:"AR-RROOF",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:2.2,deltaY:1,dashes:[15,-2,5,-1],sourceLine:109},{angle:0,originX:1.33,originY:.5,deltaX:-1,deltaY:1.33,dashes:[3,-.33,6,-.75],sourceLine:110},{angle:0,originX:.5,originY:.85,deltaX:5.2,deltaY:.67,dashes:[8,-1.4,4,-1],sourceLine:111}]},{name:"AR-RSHKE",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:25.5,deltaY:12,dashes:[6,-5,7,-3,9,-4],sourceLine:113},{angle:0,originX:6,originY:.5,deltaX:25.5,deltaY:12,dashes:[5,-19,4,-6],sourceLine:114},{angle:0,originX:18,originY:-.75,deltaX:25.5,deltaY:12,dashes:[3,-31],sourceLine:115},{angle:90,originX:0,originY:0,deltaX:12,deltaY:8.5,dashes:[11.5,-36.5],sourceLine:116},{angle:90,originX:6,originY:0,deltaX:12,deltaY:8.5,dashes:[11.25,-36.75],sourceLine:117},{angle:90,originX:11,originY:0,deltaX:12,deltaY:8.5,dashes:[10.5,-37.5],sourceLine:118},{angle:90,originX:18,originY:-.75,deltaX:12,deltaY:8.5,dashes:[11.5,-36.5],sourceLine:119},{angle:90,originX:21,originY:-.75,deltaX:12,deltaY:8.5,dashes:[11.5,-36.5],sourceLine:120},{angle:90,originX:30,originY:0,deltaX:12,deltaY:8.5,dashes:[11,-37],sourceLine:121}]},{name:"AR-SAND",description:"",lines:[{angle:37.5,originX:0,originY:0,deltaX:1.123,deltaY:1.567,dashes:[0,-1.52,0,-1.7,0,-1.625],sourceLine:123},{angle:7.5,originX:0,originY:0,deltaX:2.123,deltaY:2.567,dashes:[0,-.82,0,-1.37,0,-.525],sourceLine:124},{angle:-32.5,originX:-1.23,originY:0,deltaX:2.6234,deltaY:1.678,dashes:[0,-.5,0,-1.8,0,-2.35],sourceLine:125},{angle:-42.5,originX:-1.23,originY:0,deltaX:1.6234,deltaY:2.678,dashes:[0,-.25,0,-1.18,0,-1.35],sourceLine:126}]},{name:"BOX",description:"",lines:[{angle:90,originX:0,originY:0,deltaX:0,deltaY:1,dashes:[],sourceLine:128},{angle:90,originX:.25,originY:0,deltaX:0,deltaY:1,dashes:[],sourceLine:129},{angle:0,originX:0,originY:0,deltaX:0,deltaY:1,dashes:[-.25,.25],sourceLine:130},{angle:0,originX:0,originY:.25,deltaX:0,deltaY:1,dashes:[-.25,.25],sourceLine:131},{angle:0,originX:0,originY:.5,deltaX:0,deltaY:1,dashes:[.25,-.25],sourceLine:132},{angle:0,originX:0,originY:.75,deltaX:0,deltaY:1,dashes:[.25,-.25],sourceLine:133},{angle:90,originX:.5,originY:0,deltaX:0,deltaY:1,dashes:[.25,-.25],sourceLine:134},{angle:90,originX:.75,originY:0,deltaX:0,deltaY:1,dashes:[.25,-.25],sourceLine:135}]},{name:"BRASS",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:.25,dashes:[],sourceLine:137},{angle:0,originX:0,originY:.125,deltaX:0,deltaY:.25,dashes:[.125,-.0625],sourceLine:138}]},{name:"BRICK",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:.25,dashes:[],sourceLine:140},{angle:90,originX:0,originY:0,deltaX:0,deltaY:.5,dashes:[.25,-.25],sourceLine:141},{angle:90,originX:.25,originY:0,deltaX:0,deltaY:.5,dashes:[-.25,.25],sourceLine:142}]},{name:"BRSTONE",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:.33,dashes:[],sourceLine:144},{angle:90,originX:.9,originY:0,deltaX:.33,deltaY:.5,dashes:[.33,-.33],sourceLine:145},{angle:90,originX:.8,originY:0,deltaX:.33,deltaY:.5,dashes:[.33,-.33],sourceLine:146},{angle:0,originX:.9,originY:.055,deltaX:.5,deltaY:.33,dashes:[-.9,.1],sourceLine:147},{angle:0,originX:.9,originY:.11,deltaX:.5,deltaY:.33,dashes:[-.9,.1],sourceLine:148},{angle:0,originX:.9,originY:.165,deltaX:.5,deltaY:.33,dashes:[-.9,.1],sourceLine:149},{angle:0,originX:.9,originY:.22,deltaX:.5,deltaY:.33,dashes:[-.9,.1],sourceLine:150},{angle:0,originX:.9,originY:.275,deltaX:.5,deltaY:.33,dashes:[-.9,.1],sourceLine:151}]},{name:"CLAY",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:.1875,dashes:[],sourceLine:153},{angle:0,originX:0,originY:.03125,deltaX:0,deltaY:.1875,dashes:[],sourceLine:154},{angle:0,originX:0,originY:.0625,deltaX:0,deltaY:.1875,dashes:[],sourceLine:155},{angle:0,originX:0,originY:.125,deltaX:0,deltaY:.1875,dashes:[.1875,-.125],sourceLine:156}]},{name:"CORK",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:.125,dashes:[],sourceLine:158},{angle:135,originX:.0625,originY:-.0625,deltaX:0,deltaY:.35355339,dashes:[.176776696,-.176776696],sourceLine:159},{angle:135,originX:.09375,originY:-.0625,deltaX:0,deltaY:.35355339,dashes:[.176776696,-.176776696],sourceLine:160},{angle:135,originX:.125,originY:-.0625,deltaX:0,deltaY:.35355339,dashes:[.176776696,-.176776696],sourceLine:161}]},{name:"CROSS",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:.25,deltaY:.25,dashes:[.125,-.375],sourceLine:163},{angle:90,originX:.0625,originY:-.0625,deltaX:.25,deltaY:.25,dashes:[.125,-.375],sourceLine:164}]},{name:"DASH",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:.125,deltaY:.125,dashes:[.125,-.125],sourceLine:166}]},{name:"DOLMIT",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:.25,dashes:[],sourceLine:168},{angle:45,originX:0,originY:0,deltaX:0,deltaY:.70710678,dashes:[.3535533905932738,-.7071067811865476],sourceLine:169}]},{name:"DOTS",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:.03125,deltaY:.0625,dashes:[0,-.0625],sourceLine:171}]},{name:"EARTH",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:.25,deltaY:.25,dashes:[.25,-.25],sourceLine:173},{angle:0,originX:0,originY:.09375,deltaX:.25,deltaY:.25,dashes:[.25,-.25],sourceLine:174},{angle:0,originX:0,originY:.1875,deltaX:.25,deltaY:.25,dashes:[.25,-.25],sourceLine:175},{angle:90,originX:.03125,originY:.21875,deltaX:.25,deltaY:.25,dashes:[.25,-.25],sourceLine:176},{angle:90,originX:.125,originY:.21875,deltaX:.25,deltaY:.25,dashes:[.25,-.25],sourceLine:177},{angle:90,originX:.21875,originY:.21875,deltaX:.25,deltaY:.25,dashes:[.25,-.25],sourceLine:178}]},{name:"ESCHER",description:"",lines:[{angle:60,originX:0,originY:0,deltaX:-.6,deltaY:1.039230484,dashes:[1.1,-.1],sourceLine:180},{angle:180,originX:0,originY:0,deltaX:-.6,deltaY:1.039230484,dashes:[1.1,-.1],sourceLine:181},{angle:300,originX:0,originY:0,deltaX:.6,deltaY:1.039230484,dashes:[1.1,-.1],sourceLine:182},{angle:60,originX:.1,originY:0,deltaX:-.6,deltaY:1.039230484,dashes:[.2,-1],sourceLine:183},{angle:300,originX:.1,originY:0,deltaX:.6,deltaY:1.039230484,dashes:[.2,-1],sourceLine:184},{angle:60,originX:-.05,originY:.08660254,deltaX:-.6,deltaY:1.039230484,dashes:[.2,-1],sourceLine:185},{angle:180,originX:-.05,originY:.08660254,deltaX:-.6,deltaY:1.039230484,dashes:[.2,-1],sourceLine:186},{angle:300,originX:-.05,originY:-.08660254,deltaX:.6,deltaY:1.039230484,dashes:[.2,-1],sourceLine:187},{angle:180,originX:-.05,originY:-.08660254,deltaX:-.6,deltaY:1.039230484,dashes:[.2,-1],sourceLine:188},{angle:60,originX:-.4,originY:0,deltaX:-.6,deltaY:1.039230484,dashes:[.2,-1],sourceLine:189},{angle:300,originX:-.4,originY:0,deltaX:.6,deltaY:1.039230484,dashes:[.2,-1],sourceLine:190},{angle:60,originX:.2,originY:-.346410161,deltaX:-.6,deltaY:1.039230484,dashes:[.2,-1],sourceLine:191},{angle:180,originX:.2,originY:-.346410161,deltaX:-.6,deltaY:1.039230484,dashes:[.2,-1],sourceLine:192},{angle:300,originX:.2,originY:.346410161,deltaX:.6,deltaY:1.039230484,dashes:[.2,-1],sourceLine:193},{angle:180,originX:.2,originY:.346410161,deltaX:-.6,deltaY:1.039230484,dashes:[.2,-1],sourceLine:194},{angle:0,originX:.2,originY:.173205081,deltaX:-.6,deltaY:1.039230484,dashes:[.7,-.5],sourceLine:195},{angle:0,originX:.2,originY:-.173205081,deltaX:-.6,deltaY:1.039230484,dashes:[.7,-.5],sourceLine:196},{angle:120,originX:.05,originY:.259807621,deltaX:.6,deltaY:1.039230484,dashes:[.7,-.5],sourceLine:197},{angle:120,originX:-.25,originY:.08660254,deltaX:.6,deltaY:1.039230484,dashes:[.7,-.5],sourceLine:198},{angle:240,originX:-.25,originY:-.08660254,deltaX:.6,deltaY:1.039230484,dashes:[.7,-.5],sourceLine:199},{angle:240,originX:.05,originY:-.259807621,deltaX:.6,deltaY:1.039230484,dashes:[.7,-.5],sourceLine:200}]},{name:"FLEX",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:.25,dashes:[.25,-.25],sourceLine:202},{angle:45,originX:.25,originY:0,deltaX:.176776695296,deltaY:.176776695296,dashes:[.0625,-.2285533906,.0625,-.353553390593],sourceLine:203}]},{name:"GOST_GLASS",description:"",lines:[{angle:45,originX:0,originY:0,deltaX:6,deltaY:-6,dashes:[5,-7],sourceLine:205},{angle:45,originX:2.12132,originY:0,deltaX:6,deltaY:-6,dashes:[2,-10],sourceLine:206},{angle:45,originX:0,originY:2.12132,deltaX:6,deltaY:-6,dashes:[2,-10],sourceLine:207}]},{name:"GOST_WOOD",description:"",lines:[{angle:90,originX:0,originY:0,deltaX:0,deltaY:-6,dashes:[10,-2],sourceLine:209},{angle:90,originX:2,originY:-2,deltaX:0,deltaY:-6,dashes:[6,-1.5,3,-1.5],sourceLine:210},{angle:90,originX:4,originY:-5,deltaX:0,deltaY:-6,dashes:[10,-2],sourceLine:211}]},{name:"GOST_GROUND",description:"",lines:[{angle:45,originX:0,originY:0,deltaX:10,deltaY:-10,dashes:[20],sourceLine:213},{angle:45,originX:3,originY:0,deltaX:10,deltaY:-10,dashes:[20],sourceLine:214},{angle:45,originX:6,originY:0,deltaX:10,deltaY:-10,dashes:[20],sourceLine:215}]},{name:"GRASS",description:"",lines:[{angle:90,originX:0,originY:0,deltaX:.707106781,deltaY:.707106781,dashes:[.1875,-1.226713563],sourceLine:217},{angle:45,originX:0,originY:0,deltaX:0,deltaY:1,dashes:[.1875,-.8125],sourceLine:218},{angle:135,originX:0,originY:0,deltaX:0,deltaY:1,dashes:[.1875,-.8125],sourceLine:219}]},{name:"GRATE",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:.03125,dashes:[],sourceLine:221},{angle:90,originX:0,originY:0,deltaX:0,deltaY:.125,dashes:[],sourceLine:222}]},{name:"GRAVEL",description:"",lines:[{angle:228.012787504,originX:.72,originY:1,deltaX:12.0413651692039,deltaY:.0743294146632,dashes:[.134536,-13.3190880470737],sourceLine:224},{angle:184.969740728,originX:.63,originY:.9,deltaX:-12.0415166747131,deltaY:.0433148081592,dashes:[.230868,-22.85592476123],sourceLine:225},{angle:132.510447078,originX:.4,originY:.88,deltaX:-14.8659418273816,deltaY:.061429511683,dashes:[.162788,-16.1160325960997],sourceLine:226},{angle:267.273689006,originX:.01,originY:.63,deltaX:-20.0249279039043,deltaY:.0475651493827,dashes:[.210238,-20.813558041629],sourceLine:227},{angle:292.833654178,originX:0,originY:.42,deltaX:-12.9999095019474,deltaY:.048507125026,dashes:[.206155,-20.4093731280883],sourceLine:228},{angle:357.273689006,originX:.08,originY:.23,deltaX:-20.0249279039043,deltaY:.0475651493827,dashes:[.210238,-20.813558041629],sourceLine:229},{angle:37.6942404667,originX:.29,originY:.22,deltaX:-16.4011800288558,deltaY:.0359675000664,dashes:[.278029,-27.524848548916],sourceLine:230},{angle:72.2553283749,originX:.51,originY:.39,deltaX:23.0867613281116,deltaY:.0380969659053,dashes:[.262488,-25.9863214968134],sourceLine:231},{angle:121.429565615,originX:.59,originY:.64,deltaX:15.2642639131074,deltaY:.047404546271,dashes:[.21095,-20.884073109729],sourceLine:232},{angle:175.236358309,originX:.48,originY:.82,deltaX:-11.0450488205478,deltaY:.083045479801,dashes:[.240832,-11.8007625787923],sourceLine:233},{angle:222.397437798,originX:.24,originY:.84,deltaX:16.2787889313724,deltaY:.0321080648114,dashes:[.311448,-30.8333750047949],sourceLine:234},{angle:138.814074834,originX:1,originY:.62,deltaX:9.2190645101588,deltaY:.0940720868851,dashes:[.106301,-10.5238448127347],sourceLine:235},{angle:171.46923439,originX:.92,originY:.69,deltaX:-13.1528534931484,deltaY:.0494468176315,dashes:[.202237,-20.021511416157],sourceLine:236},{angle:225,originX:.72,originY:.72,deltaX:.7071067811865,deltaY:.7071067811865,dashes:[.141421,-1.2727925623731],sourceLine:237},{angle:203.198590514,originX:.65,originY:.84,deltaX:-5.3835637472478,deltaY:.1313064328928,dashes:[.076158,-7.5396151058639],sourceLine:238},{angle:291.801409486,originX:.58,originY:.81,deltaX:-3.156820749011,deltaY:.185695338158,dashes:[.107703,-5.2774618071345],sourceLine:239},{angle:30.9637565321,originX:.62,originY:.71,deltaX:3.6014702879928,deltaY:.1714985851408,dashes:[.174929,-5.6560228948453],sourceLine:240},{angle:161.565051177,originX:.77,originY:.8,deltaX:-2.2135943621183,deltaY:.3162277660138,dashes:[.126491,-3.0357866601684],sourceLine:241},{angle:16.389540334,originX:0,originY:.81,deltaX:10.4401539876873,deltaY:.0564332648047,dashes:[.1772,-17.5428451466694],sourceLine:242},{angle:70.3461759419,originX:.17,originY:.86,deltaX:-11.7045066155395,deltaY:.0672672793901,dashes:[.148661,-14.717407747319],sourceLine:243},{angle:293.198590514,originX:.77,originY:1,deltaX:-5.3835637472478,deltaY:.1313064328928,dashes:[.152315,-7.4634581058639],sourceLine:244},{angle:343.610459666,originX:.83,originY:.86,deltaX:-10.4401539876873,deltaY:.0564332648047,dashes:[.1772,-17.542845146669],sourceLine:245},{angle:339.44395478,originX:0,originY:.19,deltaX:-5.3838927710229,deltaY:.117041147157,dashes:[.17088,-8.3731237453175],sourceLine:246},{angle:294.775140569,originX:.16,originY:.13,deltaX:-12.0828441168135,deltaY:.0698430296124,dashes:[.143178,-14.174643063276],sourceLine:247},{angle:66.8014094864,originX:.78,originY:0,deltaX:5.3835637472487,deltaY:.1313064328552,dashes:[.152315,-7.4634581058639],sourceLine:248},{angle:17.3540246363,originX:.84,originY:.14,deltaX:-13.6013396869991,deltaY:.0596549986364,dashes:[.167631,-16.59542361424],sourceLine:249},{angle:69.4439547804,originX:.29,originY:0,deltaX:-5.383892771022,deltaY:.1170411471946,dashes:[.08544,-8.4585637453175],sourceLine:250},{angle:101.309932474,originX:.72,originY:0,deltaX:4.1184388379018,deltaY:.1961161351396,dashes:[.05099,-5.0480295135928],sourceLine:251},{angle:165.963756532,originX:.71,originY:.05,deltaX:-3.1529631254726,deltaY:.2425356250323,dashes:[.206155,-3.9169506256177],sourceLine:252},{angle:186.009005957,originX:.51,originY:.1,deltaX:-10.0497393137326,deltaY:.0523423921723,dashes:[.19105,-18.9139231745428],sourceLine:253},{angle:303.690067526,originX:.62,originY:.62,deltaX:-2.2188007849008,deltaY:.2773500981134,dashes:[.144222,-3.461329275464],sourceLine:254},{angle:353.157226587,originX:.7,originY:.5,deltaX:17.1171966955143,deltaY:.0397150736497,dashes:[.251794,-24.9275626240283],sourceLine:255},{angle:60.9453959009,originX:.95,originY:.47,deltaX:-8.0616726575653,deltaY:.0971285862325,dashes:[.102956,-10.192674140987],sourceLine:256},{angle:90,originX:1,originY:.56,deltaX:1,deltaY:1,dashes:[.06,-.94],sourceLine:257},{angle:120.256437164,originX:.49,originY:.13,deltaX:-8.0619364083848,deltaY:.0719815751411,dashes:[.138924,-13.7535199894498],sourceLine:258},{angle:48.0127875042,originX:.42,originY:.25,deltaX:12.0413651692041,deltaY:.0743294146212,dashes:[.269072,-13.1845520470737],sourceLine:259},{angle:0,originX:.6,originY:.45,deltaX:1,deltaY:1,dashes:[.26,-.74],sourceLine:260},{angle:325.304846469,originX:.86,originY:.45,deltaX:12.2063917682497,deltaY:-.063245553253,dashes:[.158114,-15.653274300842],sourceLine:261},{angle:254.054604099,originX:.99,originY:.36,deltaX:4.1208169184605,deltaY:.1373605639542,dashes:[.145602,-7.1345078892805],sourceLine:262},{angle:207.645975364,originX:.95,originY:.22,deltaX:21.4708691170287,deltaY:.0421824539631,dashes:[.237065,-23.4694741822594],sourceLine:263},{angle:175.42607874,originX:.74,originY:.11,deltaX:13.0383438432524,deltaY:.039872611164,dashes:[.250799,-24.8290734079689],sourceLine:264}]},{name:"HEX",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:.21650635094610965,dashes:[.125,-.25],sourceLine:266},{angle:120,originX:0,originY:0,deltaX:0,deltaY:.21650635094610965,dashes:[.125,-.25],sourceLine:267},{angle:60,originX:.125,originY:0,deltaX:0,deltaY:.21650635094610965,dashes:[.125,-.25],sourceLine:268}]},{name:"HONEY",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:.1875,deltaY:.10825317547305482,dashes:[.125,-.25],sourceLine:270},{angle:120,originX:0,originY:0,deltaX:.1875,deltaY:.10825317547305482,dashes:[.125,-.25],sourceLine:271},{angle:60,originX:0,originY:0,deltaX:.1875,deltaY:.10825317547305482,dashes:[-.25,.125],sourceLine:272}]},{name:"HOUND",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:.25,deltaY:.0625,dashes:[1,-.5],sourceLine:274},{angle:90,originX:0,originY:0,deltaX:-.25,deltaY:.0625,dashes:[1,-.5],sourceLine:275}]},{name:"INSUL",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:.375,dashes:[],sourceLine:277},{angle:0,originX:0,originY:.125,deltaX:0,deltaY:.375,dashes:[.125,-.125],sourceLine:278},{angle:0,originX:0,originY:.25,deltaX:0,deltaY:.375,dashes:[.125,-.125],sourceLine:279}]},{name:"ACAD_ISO02W100",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:5,dashes:[12,-3],sourceLine:292}]},{name:"ACAD_ISO03W100",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:5,dashes:[12,-18],sourceLine:294}]},{name:"ACAD_ISO04W100",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:5,dashes:[24,-3,.5,-3],sourceLine:296}]},{name:"ACAD_ISO05W100",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:5,dashes:[24,-3,.5,-3,.5,-3],sourceLine:298}]},{name:"ACAD_ISO06W100",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:5,dashes:[24,-3,.5,-3,.5,-6.5],sourceLine:300},{angle:0,originX:0,originY:0,deltaX:0,deltaY:5,dashes:[-34,.5,-3],sourceLine:301}]},{name:"ACAD_ISO07W100",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:5,dashes:[.5,-3],sourceLine:303}]},{name:"ACAD_ISO08W100",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:5,dashes:[24,-3,6,-3],sourceLine:305}]},{name:"ACAD_ISO09W100",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:5,dashes:[24,-3,6,-3,6,-3],sourceLine:307}]},{name:"ACAD_ISO10W100",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:5,dashes:[12,-3,.5,-3],sourceLine:309}]},{name:"ACAD_ISO11W100",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:5,dashes:[12,-3,12,-3,.5,-3],sourceLine:311}]},{name:"ACAD_ISO12W100",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:5,dashes:[12,-3,.5,-3,.5,-3],sourceLine:313}]},{name:"ACAD_ISO13W100",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:5,dashes:[12,-3,12,-3,.5,-6.5],sourceLine:315},{angle:0,originX:0,originY:0,deltaX:0,deltaY:5,dashes:[-33.5,.5,-3],sourceLine:316}]},{name:"ACAD_ISO14W100",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:5,dashes:[12,-3,.5,-3,.5,-6.5],sourceLine:318},{angle:0,originX:0,originY:0,deltaX:0,deltaY:5,dashes:[-22,.5,-3],sourceLine:319}]},{name:"ACAD_ISO15W100",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:5,dashes:[12,-3,12,-3,.5,-10],sourceLine:321},{angle:0,originX:0,originY:0,deltaX:0,deltaY:5,dashes:[-33.5,.5,-3,.5,-3],sourceLine:322}]},{name:"LINE",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:.125,dashes:[],sourceLine:327}]},{name:"MUDST",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:.5,deltaY:.25,dashes:[.25,-.25,0,-.25,0,-.25],sourceLine:329}]},{name:"NET",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:.125,dashes:[],sourceLine:331},{angle:90,originX:0,originY:0,deltaX:0,deltaY:.125,dashes:[],sourceLine:332}]},{name:"NET3",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:.125,dashes:[],sourceLine:334},{angle:60,originX:0,originY:0,deltaX:0,deltaY:.125,dashes:[],sourceLine:335},{angle:120,originX:0,originY:0,deltaX:0,deltaY:.125,dashes:[],sourceLine:336}]},{name:"PLAST",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:.25,dashes:[],sourceLine:338},{angle:0,originX:0,originY:.03125,deltaX:0,deltaY:.25,dashes:[],sourceLine:339},{angle:0,originX:0,originY:.0625,deltaX:0,deltaY:.25,dashes:[],sourceLine:340}]},{name:"PLASTI",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:.25,dashes:[],sourceLine:342},{angle:0,originX:0,originY:.03125,deltaX:0,deltaY:.25,dashes:[],sourceLine:343},{angle:0,originX:0,originY:.0625,deltaX:0,deltaY:.25,dashes:[],sourceLine:344},{angle:0,originX:0,originY:.15625,deltaX:0,deltaY:.25,dashes:[],sourceLine:345}]},{name:"SACNCR",description:"",lines:[{angle:45,originX:0,originY:0,deltaX:0,deltaY:.09375,dashes:[],sourceLine:347},{angle:45,originX:.066291261,originY:0,deltaX:0,deltaY:.09375,dashes:[0,-.09375],sourceLine:348}]},{name:"SQUARE",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:.125,dashes:[.125,-.125],sourceLine:350},{angle:90,originX:0,originY:0,deltaX:0,deltaY:.125,dashes:[.125,-.125],sourceLine:351}]},{name:"STARS",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:.216506351,dashes:[.125,-.125],sourceLine:353},{angle:60,originX:0,originY:0,deltaX:0,deltaY:.216506351,dashes:[.125,-.125],sourceLine:354},{angle:120,originX:.0625,originY:.108253176,deltaX:0,deltaY:.216506351,dashes:[.125,-.125],sourceLine:355}]},{name:"STEEL",description:"",lines:[{angle:45,originX:0,originY:0,deltaX:0,deltaY:.125,dashes:[],sourceLine:357},{angle:45,originX:0,originY:.0625,deltaX:0,deltaY:.125,dashes:[],sourceLine:358}]},{name:"SWAMP",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:.5,deltaY:.866025403,dashes:[.125,-.875],sourceLine:360},{angle:90,originX:.0625,originY:0,deltaX:.866025403,deltaY:.5,dashes:[.0625,-1.669550806],sourceLine:361},{angle:90,originX:.078125,originY:0,deltaX:.866025403,deltaY:.5,dashes:[.05,-1.682050806],sourceLine:362},{angle:90,originX:.046875,originY:0,deltaX:.866025403,deltaY:.5,dashes:[.05,-1.682050806],sourceLine:363},{angle:60,originX:.09375,originY:0,deltaX:.5,deltaY:.866025403,dashes:[.04,-.96],sourceLine:364},{angle:120,originX:.03125,originY:0,deltaX:.5,deltaY:.866025403,dashes:[.04,-.96],sourceLine:365}]},{name:"TRANS",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:.25,dashes:[],sourceLine:367},{angle:0,originX:0,originY:.125,deltaX:0,deltaY:.25,dashes:[.125,-.125],sourceLine:368}]},{name:"TRIANG",description:"",lines:[{angle:60,originX:0,originY:0,deltaX:.1875,deltaY:.324759526,dashes:[.1875,-.1875],sourceLine:370},{angle:120,originX:0,originY:0,deltaX:.1875,deltaY:.324759526,dashes:[.1875,-.1875],sourceLine:371},{angle:0,originX:-.09375,originY:.162379763,deltaX:.1875,deltaY:.324759526,dashes:[.1875,-.1875],sourceLine:372}]},{name:"ZIGZAG",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:.125,deltaY:.125,dashes:[.125,-.125],sourceLine:374},{angle:90,originX:.125,originY:0,deltaX:.125,deltaY:.125,dashes:[.125,-.125],sourceLine:375}]}],issues:[]},Wo={patterns:[{name:"SOLID",description:"",lines:[]},{name:"ANGLE",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:6.985,dashes:[5.08,-1.905],sourceLine:20},{angle:90,originX:0,originY:0,deltaX:0,deltaY:6.985,dashes:[5.08,-1.905],sourceLine:21}]},{name:"ANSI31",description:"",lines:[{angle:45,originX:0,originY:0,deltaX:0,deltaY:3.175,dashes:[],sourceLine:23}]},{name:"ANSI32",description:"",lines:[{angle:45,originX:0,originY:0,deltaX:0,deltaY:9.525,dashes:[],sourceLine:25},{angle:45,originX:4.49013,originY:0,deltaX:0,deltaY:9.525,dashes:[],sourceLine:26}]},{name:"ANSI33",description:"",lines:[{angle:45,originX:0,originY:0,deltaX:0,deltaY:6.35,dashes:[],sourceLine:28},{angle:45,originX:4.49013,originY:0,deltaX:0,deltaY:6.35,dashes:[3.175,-1.5875],sourceLine:29}]},{name:"ANSI34",description:"",lines:[{angle:45,originX:0,originY:0,deltaX:0,deltaY:19.05,dashes:[],sourceLine:31},{angle:45,originX:4.49013,originY:0,deltaX:0,deltaY:19.05,dashes:[],sourceLine:32},{angle:45,originX:8.98026,originY:0,deltaX:0,deltaY:19.05,dashes:[],sourceLine:33},{angle:45,originX:13.4704,originY:0,deltaX:0,deltaY:19.05,dashes:[],sourceLine:34}]},{name:"ANSI35",description:"",lines:[{angle:45,originX:0,originY:0,deltaX:0,deltaY:6.35,dashes:[],sourceLine:36},{angle:45,originX:4.49013,originY:0,deltaX:0,deltaY:6.35,dashes:[7.9375,-1.5875,0,-1.5875],sourceLine:37}]},{name:"ANSI36",description:"",lines:[{angle:45,originX:0,originY:0,deltaX:5.55625,deltaY:3.175,dashes:[7.9375,-1.5875,0,-1.5875],sourceLine:39}]},{name:"ANSI37",description:"",lines:[{angle:45,originX:0,originY:0,deltaX:0,deltaY:3.175,dashes:[],sourceLine:41},{angle:135,originX:0,originY:0,deltaX:0,deltaY:3.175,dashes:[],sourceLine:42}]},{name:"ANSI38",description:"",lines:[{angle:45,originX:0,originY:0,deltaX:0,deltaY:3.175,dashes:[],sourceLine:44},{angle:135,originX:0,originY:0,deltaX:6.35,deltaY:3.175,dashes:[7.9375,-4.7625],sourceLine:45}]},{name:"AR-B816",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:203.2,dashes:[],sourceLine:47},{angle:90,originX:0,originY:0,deltaX:203.2,deltaY:203.2,dashes:[203.2,-203.2],sourceLine:48}]},{name:"AR-B816C",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:203.2,deltaY:203.2,dashes:[396.875,-9.525],sourceLine:50},{angle:0,originX:-203.2,originY:9.525,deltaX:203.2,deltaY:203.2,dashes:[396.875,-9.525],sourceLine:51},{angle:90,originX:0,originY:0,deltaX:203.2,deltaY:203.2,dashes:[-212.725,193.675],sourceLine:52},{angle:90,originX:-9.525,originY:0,deltaX:203.2,deltaY:203.2,dashes:[-212.725,193.675],sourceLine:53}]},{name:"AR-B88",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:203.2,dashes:[],sourceLine:55},{angle:90,originX:0,originY:0,deltaX:203.2,deltaY:101.6,dashes:[203.2,-203.2],sourceLine:56}]},{name:"AR-BRELM",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:135.484,dashes:[193.675,-9.525],sourceLine:58},{angle:0,originX:0,originY:57.15,deltaX:0,deltaY:135.484,dashes:[193.675,-9.525],sourceLine:59},{angle:0,originX:50.8,originY:67.7418,deltaX:0,deltaY:135.484,dashes:[92.075,-9.525],sourceLine:60},{angle:0,originX:50.8,originY:124.892,deltaX:0,deltaY:135.484,dashes:[92.075,-9.525],sourceLine:61},{angle:90,originX:0,originY:0,deltaX:0,deltaY:203.2,dashes:[57.15,-78.334],sourceLine:62},{angle:90,originX:-9.525,originY:0,deltaX:0,deltaY:203.2,dashes:[57.15,-78.334],sourceLine:63},{angle:90,originX:50.8,originY:67.7418,deltaX:0,deltaY:101.6,dashes:[57.15,-78.334],sourceLine:64},{angle:90,originX:41.275,originY:67.7418,deltaX:0,deltaY:101.6,dashes:[57.15,-78.334],sourceLine:65}]},{name:"AR-BRSTD",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:67.7418,dashes:[],sourceLine:67},{angle:90,originX:0,originY:0,deltaX:67.7418,deltaY:101.6,dashes:[67.7418,-67.7418],sourceLine:68}]},{name:"AR-CONC",description:"",lines:[{angle:50,originX:0,originY:0,deltaX:104.896,deltaY:-149.807,dashes:[19.05,-209.55],sourceLine:70},{angle:355,originX:0,originY:0,deltaX:-51.76101082,deltaY:187.25814969,dashes:[15.24,-167.64058417],sourceLine:71},{angle:100.4514447,originX:15.182007,originY:-1.3282535,deltaX:145.5569059,deltaY:-176.270089,dashes:[16.1900088,-178.0902446],sourceLine:72},{angle:46.1842,originX:0,originY:50.8,deltaX:157.343,deltaY:-224.71,dashes:[28.575,-314.325],sourceLine:73},{angle:96.63555761,originX:22.5899,originY:47.2965,deltaX:218.33577212,deltaY:-264.40480444,dashes:[24.28502314,-267.13560816],sourceLine:74},{angle:351.18415117,originX:0,originY:50.8,deltaX:196.67912063,deltaY:280.88740361,dashes:[22.85996707,-251.45973192],sourceLine:75},{angle:21,originX:25.4,originY:38.1,deltaX:104.89565868,deltaY:-149.80652586,dashes:[19.05,-209.55],sourceLine:76},{angle:326,originX:25.4,originY:38.1,deltaX:-51.7604,deltaY:187.258,dashes:[15.24,-167.64],sourceLine:77},{angle:71.451445,originX:38.0345326,originY:29.5779001,deltaX:145.5567546,deltaY:-176.2700748,dashes:[16.1900088,-178.0899376],sourceLine:78},{angle:37.5,originX:0,originY:0,deltaX:53.9242,deltaY:65.2018,dashes:[0,-165.608,0,-170.18,0,-168.275],sourceLine:79},{angle:7.5,originX:0,originY:0,deltaX:79.3242,deltaY:90.6018,dashes:[0,-97.028,0,-161.798,0,-64.135],sourceLine:80},{angle:-32.5,originX:-56.642,originY:0,deltaX:117.434,deltaY:68.0212,dashes:[0,-63.5,0,-198.12,0,-262.89],sourceLine:81},{angle:-42.5,originX:-82.042,originY:0,deltaX:92.0344,deltaY:118.821,dashes:[0,-82.55,0,-131.572,0,-186.69],sourceLine:82}]},{name:"AR-HBONE",description:"",lines:[{angle:45,originX:0,originY:0,deltaX:101.6,deltaY:101.6,dashes:[304.8,-101.6],sourceLine:84},{angle:135,originX:71.842,originY:71.842,deltaX:101.6,deltaY:-101.6,dashes:[304.8,-101.6],sourceLine:85}]},{name:"AR-PARQ1",description:"",lines:[{angle:90,originX:0,originY:0,deltaX:304.8,deltaY:304.8,dashes:[304.8,-304.8],sourceLine:87},{angle:90,originX:50.8,originY:0,deltaX:304.8,deltaY:304.8,dashes:[304.8,-304.8],sourceLine:88},{angle:90,originX:101.6,originY:0,deltaX:304.8,deltaY:304.8,dashes:[304.8,-304.8],sourceLine:89},{angle:90,originX:152.4,originY:0,deltaX:304.8,deltaY:304.8,dashes:[304.8,-304.8],sourceLine:90},{angle:90,originX:203.2,originY:0,deltaX:304.8,deltaY:304.8,dashes:[304.8,-304.8],sourceLine:91},{angle:90,originX:254,originY:0,deltaX:304.8,deltaY:304.8,dashes:[304.8,-304.8],sourceLine:92},{angle:90,originX:304.8,originY:0,deltaX:304.8,deltaY:304.8,dashes:[304.8,-304.8],sourceLine:93},{angle:0,originX:0,originY:304.8,deltaX:304.8,deltaY:-304.8,dashes:[304.8,-304.8],sourceLine:94},{angle:0,originX:0,originY:355.6,deltaX:304.8,deltaY:-304.8,dashes:[304.8,-304.8],sourceLine:95},{angle:0,originX:0,originY:406.4,deltaX:304.8,deltaY:-304.8,dashes:[304.8,-304.8],sourceLine:96},{angle:0,originX:0,originY:457.2,deltaX:304.8,deltaY:-304.8,dashes:[304.8,-304.8],sourceLine:97},{angle:0,originX:0,originY:508,deltaX:304.8,deltaY:-304.8,dashes:[304.8,-304.8],sourceLine:98},{angle:0,originX:0,originY:558.8,deltaX:304.8,deltaY:-304.8,dashes:[304.8,-304.8],sourceLine:99},{angle:0,originX:0,originY:609.6,deltaX:304.8,deltaY:-304.8,dashes:[304.8,-304.8],sourceLine:100}]},{name:"AR-RROOF",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:55.88,deltaY:25.4,dashes:[381,-50.8,127,-25.4],sourceLine:102},{angle:0,originX:33.782,originY:12.7,deltaX:-25.4,deltaY:33.782,dashes:[76.2,-8.382,152.4,-19.05],sourceLine:103},{angle:0,originX:12.7,originY:21.59,deltaX:132.08,deltaY:17.018,dashes:[203.2,-35.56,101.6,-25.4],sourceLine:104}]},{name:"AR-RSHKE",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:647.7,deltaY:304.8,dashes:[152.4,-127,177.8,-76.2,228.6,-101.6],sourceLine:106},{angle:0,originX:152.4,originY:12.7,deltaX:647.7,deltaY:304.8,dashes:[127,-482.6,101.6,-152.4],sourceLine:107},{angle:0,originX:457.2,originY:-19.05,deltaX:647.7,deltaY:304.8,dashes:[76.2,-787.4],sourceLine:108},{angle:90,originX:0,originY:0,deltaX:304.8,deltaY:215.9,dashes:[292.1,-927.1],sourceLine:109},{angle:90,originX:152.4,originY:0,deltaX:304.8,deltaY:215.9,dashes:[285.75,-933.45],sourceLine:110},{angle:90,originX:279.4,originY:0,deltaX:304.8,deltaY:215.9,dashes:[266.7,-952.5],sourceLine:111},{angle:90,originX:457.2,originY:-19.05,deltaX:304.8,deltaY:215.9,dashes:[292.1,-927.1],sourceLine:112},{angle:90,originX:533.4,originY:-19.05,deltaX:304.8,deltaY:215.9,dashes:[292.1,-927.1],sourceLine:113},{angle:90,originX:762,originY:0,deltaX:304.8,deltaY:215.9,dashes:[279.4,-939.8],sourceLine:114}]},{name:"AR-SAND",description:"",lines:[{angle:37.5,originX:0,originY:0,deltaX:28.5242,deltaY:39.8018,dashes:[0,-38.608,0,-43.18,0,-41.275],sourceLine:116},{angle:7.5,originX:0,originY:0,deltaX:53.9242,deltaY:65.2018,dashes:[0,-20.828,0,-34.798,0,-13.335],sourceLine:117},{angle:-32.5,originX:-31.242,originY:0,deltaX:66.6344,deltaY:42.6212,dashes:[0,-12.7,0,-45.72,0,-59.69],sourceLine:118},{angle:-42.5,originX:-31.242,originY:0,deltaX:41.2344,deltaY:68.0212,dashes:[0,-6.35,0,-29.972,0,-34.29],sourceLine:119}]},{name:"BOX",description:"",lines:[{angle:90,originX:0,originY:0,deltaX:0,deltaY:25.4,dashes:[],sourceLine:121},{angle:90,originX:6.35,originY:0,deltaX:0,deltaY:25.4,dashes:[],sourceLine:122},{angle:0,originX:0,originY:0,deltaX:0,deltaY:25.4,dashes:[-6.35,6.35],sourceLine:123},{angle:0,originX:0,originY:6.35,deltaX:0,deltaY:25.4,dashes:[-6.35,6.35],sourceLine:124},{angle:0,originX:0,originY:12.7,deltaX:0,deltaY:25.4,dashes:[6.35,-6.35],sourceLine:125},{angle:0,originX:0,originY:19.05,deltaX:0,deltaY:25.4,dashes:[6.35,-6.35],sourceLine:126},{angle:90,originX:12.7,originY:0,deltaX:0,deltaY:25.4,dashes:[6.35,-6.35],sourceLine:127},{angle:90,originX:19.05,originY:0,deltaX:0,deltaY:25.4,dashes:[6.35,-6.35],sourceLine:128}]},{name:"BRASS",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:6.35,dashes:[],sourceLine:130},{angle:0,originX:0,originY:3.175,deltaX:0,deltaY:6.35,dashes:[3.175,-1.5875],sourceLine:131}]},{name:"BRICK",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:6.35,dashes:[],sourceLine:133},{angle:90,originX:0,originY:0,deltaX:0,deltaY:12.7,dashes:[6.35,-6.35],sourceLine:134},{angle:90,originX:6.35,originY:0,deltaX:0,deltaY:12.7,dashes:[-6.35,6.35],sourceLine:135}]},{name:"BRSTONE",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:8.382,dashes:[],sourceLine:137},{angle:90,originX:22.86,originY:0,deltaX:8.382,deltaY:12.7,dashes:[8.382,-8.382],sourceLine:138},{angle:90,originX:20.32,originY:0,deltaX:8.382,deltaY:12.7,dashes:[8.382,-8.382],sourceLine:139},{angle:0,originX:22.86,originY:1.397,deltaX:12.7,deltaY:8.382,dashes:[-22.86,2.54],sourceLine:140},{angle:0,originX:22.86,originY:2.794,deltaX:12.7,deltaY:8.382,dashes:[-22.86,2.54],sourceLine:141},{angle:0,originX:22.86,originY:4.191,deltaX:12.7,deltaY:8.382,dashes:[-22.86,2.54],sourceLine:142},{angle:0,originX:22.86,originY:5.588,deltaX:12.7,deltaY:8.382,dashes:[-22.86,2.54],sourceLine:143},{angle:0,originX:22.86,originY:6.985,deltaX:12.7,deltaY:8.382,dashes:[-22.86,2.54],sourceLine:144}]},{name:"CLAY",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:4.7625,dashes:[],sourceLine:146},{angle:0,originX:0,originY:.79375,deltaX:0,deltaY:4.7625,dashes:[],sourceLine:147},{angle:0,originX:0,originY:1.5875,deltaX:0,deltaY:4.7625,dashes:[],sourceLine:148},{angle:0,originX:0,originY:3.175,deltaX:0,deltaY:4.7625,dashes:[4.7625,-3.175],sourceLine:149}]},{name:"CORK",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:3.175,dashes:[],sourceLine:151},{angle:135,originX:1.5875,originY:-1.5875,deltaX:0,deltaY:8.98026,dashes:[4.49013,-4.49013],sourceLine:152},{angle:135,originX:2.38125,originY:-1.5875,deltaX:0,deltaY:8.98026,dashes:[4.49013,-4.49013],sourceLine:153},{angle:135,originX:3.175,originY:-1.5875,deltaX:0,deltaY:8.98026,dashes:[4.49013,-4.49013],sourceLine:154}]},{name:"CROSS",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:6.35,deltaY:6.35,dashes:[3.175,-9.525],sourceLine:156},{angle:90,originX:1.5875,originY:-1.5875,deltaX:6.35,deltaY:6.35,dashes:[3.175,-9.525],sourceLine:157}]},{name:"DASH",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:3.175,deltaY:3.175,dashes:[3.175,-3.175],sourceLine:159}]},{name:"DOLMIT",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:6.35,dashes:[],sourceLine:161},{angle:45,originX:0,originY:0,deltaX:0,deltaY:17.9605,dashes:[8.980256121069154,-17.960512242138307],sourceLine:162}]},{name:"DOTS",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:.79375,deltaY:1.5875,dashes:[0,-1.5875],sourceLine:164}]},{name:"EARTH",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:6.35,deltaY:6.35,dashes:[6.35,-6.35],sourceLine:166},{angle:0,originX:0,originY:2.38125,deltaX:6.35,deltaY:6.35,dashes:[6.35,-6.35],sourceLine:167},{angle:0,originX:0,originY:4.7625,deltaX:6.35,deltaY:6.35,dashes:[6.35,-6.35],sourceLine:168},{angle:90,originX:.79375,originY:5.55625,deltaX:6.35,deltaY:6.35,dashes:[6.35,-6.35],sourceLine:169},{angle:90,originX:3.175,originY:5.55625,deltaX:6.35,deltaY:6.35,dashes:[6.35,-6.35],sourceLine:170},{angle:90,originX:5.55625,originY:5.55625,deltaX:6.35,deltaY:6.35,dashes:[6.35,-6.35],sourceLine:171}]},{name:"ESCHER",description:"",lines:[{angle:60,originX:0,originY:0,deltaX:-15.24,deltaY:26.3964542936,dashes:[27.94,-2.54],sourceLine:173},{angle:180,originX:0,originY:0,deltaX:-15.24,deltaY:26.3964542936,dashes:[27.94,-2.54],sourceLine:174},{angle:300,originX:0,originY:0,deltaX:15.24,deltaY:26.3964542936,dashes:[27.94,-2.54],sourceLine:175},{angle:60,originX:2.54,originY:0,deltaX:-15.24,deltaY:26.3964542936,dashes:[5.08,-25.4],sourceLine:176},{angle:300,originX:2.54,originY:0,deltaX:15.24,deltaY:26.3964542936,dashes:[5.08,-25.4],sourceLine:177},{angle:60,originX:-1.27,originY:2.199704516,deltaX:-15.24,deltaY:26.3964542936,dashes:[5.08,-25.4],sourceLine:178},{angle:180,originX:-1.27,originY:2.199704516,deltaX:-15.24,deltaY:26.3964542936,dashes:[5.08,-25.4],sourceLine:179},{angle:300,originX:-1.27,originY:-2.199704516,deltaX:15.24,deltaY:26.3964542936,dashes:[5.08,-25.4],sourceLine:180},{angle:180,originX:-1.27,originY:-2.199704516,deltaX:-15.24,deltaY:26.3964542936,dashes:[5.08,-25.4],sourceLine:181},{angle:60,originX:-10.16,originY:0,deltaX:-15.24,deltaY:26.3964542936,dashes:[5.08,-25.4],sourceLine:182},{angle:300,originX:-10.16,originY:0,deltaX:15.24,deltaY:26.3964542936,dashes:[5.08,-25.4],sourceLine:183},{angle:60,originX:5.08,originY:-8.7988180894,deltaX:-15.24,deltaY:26.3964542936,dashes:[5.08,-25.4],sourceLine:184},{angle:180,originX:5.08,originY:-8.7988180894,deltaX:-15.24,deltaY:26.3964542936,dashes:[5.08,-25.4],sourceLine:185},{angle:300,originX:5.08,originY:8.7988180894,deltaX:15.24,deltaY:26.3964542936,dashes:[5.08,-25.4],sourceLine:186},{angle:180,originX:5.08,originY:8.7988180894,deltaX:-15.24,deltaY:26.3964542936,dashes:[5.08,-25.4],sourceLine:187},{angle:0,originX:5.08,originY:4.3994090574,deltaX:-15.24,deltaY:26.3964542936,dashes:[17.78,-12.7],sourceLine:188},{angle:0,originX:5.08,originY:-4.3994090574,deltaX:-15.24,deltaY:26.3964542936,dashes:[17.78,-12.7],sourceLine:189},{angle:120,originX:1.27,originY:6.5991135734,deltaX:15.24,deltaY:26.3964542936,dashes:[17.78,-12.7],sourceLine:190},{angle:120,originX:-6.35,originY:2.199704516,deltaX:15.24,deltaY:26.3964542936,dashes:[17.78,-12.7],sourceLine:191},{angle:240,originX:-6.35,originY:-2.199704516,deltaX:15.24,deltaY:26.3964542936,dashes:[17.78,-12.7],sourceLine:192},{angle:240,originX:1.27,originY:-6.5991135734,deltaX:15.24,deltaY:26.3964542936,dashes:[17.78,-12.7],sourceLine:193}]},{name:"FLEX",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:6.35,dashes:[6.35,-6.35],sourceLine:195},{angle:45,originX:6.35,originY:0,deltaX:4.490128053,deltaY:4.490128053,dashes:[1.5875,-5.8052561314,1.5875,-8.9802561314],sourceLine:196}]},{name:"GOST_GLASS",description:"",lines:[{angle:45,originX:0,originY:0,deltaX:6,deltaY:-6,dashes:[5,-7],sourceLine:198},{angle:45,originX:2.12132,originY:0,deltaX:6,deltaY:-6,dashes:[2,-10],sourceLine:199},{angle:45,originX:0,originY:2.12132,deltaX:6,deltaY:-6,dashes:[2,-10],sourceLine:200}]},{name:"GOST_WOOD",description:"",lines:[{angle:90,originX:0,originY:0,deltaX:0,deltaY:-6,dashes:[10,-2],sourceLine:202},{angle:90,originX:2,originY:-2,deltaX:0,deltaY:-6,dashes:[6,-1.5,3,-1.5],sourceLine:203},{angle:90,originX:4,originY:-5,deltaX:0,deltaY:-6,dashes:[10,-2],sourceLine:204}]},{name:"GOST_GROUND",description:"",lines:[{angle:45,originX:0,originY:0,deltaX:10,deltaY:-10,dashes:[20],sourceLine:206},{angle:45,originX:3,originY:0,deltaX:10,deltaY:-10,dashes:[20],sourceLine:207},{angle:45,originX:6,originY:0,deltaX:10,deltaY:-10,dashes:[20],sourceLine:208}]},{name:"GRASS",description:"",lines:[{angle:90,originX:0,originY:0,deltaX:17.96051224,deltaY:17.96051224,dashes:[4.7625,-31.15852448],sourceLine:210},{angle:45,originX:0,originY:0,deltaX:0,deltaY:25.4,dashes:[4.7625,-20.6375],sourceLine:211},{angle:135,originX:0,originY:0,deltaX:0,deltaY:25.4,dashes:[4.7625,-20.6375],sourceLine:212}]},{name:"GRATE",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:.79375,dashes:[],sourceLine:214},{angle:90,originX:0,originY:0,deltaX:0,deltaY:3.175,dashes:[],sourceLine:215}]},{name:"GRAVEL",description:"",lines:[{angle:228.0127875,originX:18.288,originY:25.4,deltaX:305.85067529778,deltaY:1.88796713245,dashes:[3.4172144,-338.30483639565],sourceLine:217},{angle:184.969741,originX:16.002,originY:22.86,deltaX:-305.8545235377,deltaY:1.10019612724,dashes:[5.8640472,-580.54048893524],sourceLine:218},{angle:132.5104471,originX:10.16,originY:22.352,deltaX:-377.59492241548,deltaY:1.56030959675,dashes:[4.1348152,-409.347227941],sourceLine:219},{angle:267.273689,originX:.254,originY:16.002,deltaX:-508.63316875916,deltaY:1.20815479432,dashes:[5.3400452,-528.66437425738],sourceLine:220},{angle:292.83365418,originX:0,originY:10.668,deltaX:-330.19770134945,deltaY:1.23208097566,dashes:[5.236337,-518.39807745344],sourceLine:221},{angle:357.273689,originX:2.032,originY:5.842,deltaX:-508.63316875916,deltaY:1.20815479432,dashes:[5.3400452,-528.66437425738],sourceLine:222},{angle:37.69424047,originX:7.366,originY:5.588,deltaX:-416.58997273292,deltaY:.91357450169,dashes:[7.0619366,-699.13115314247],sourceLine:223},{angle:72.25532837,originX:12.954,originY:9.906,deltaX:586.40373773403,deltaY:.96766293399,dashes:[6.6671952,-660.05256601905],sourceLine:224},{angle:121.42956562,originX:14.986,originY:16.256,deltaX:387.71230339293,deltaY:1.2040754753,dashes:[5.35813,-530.45545698712],sourceLine:225},{angle:175.2363583,originX:12.192,originY:20.828,deltaX:-280.5442400419,deltaY:2.10935518695,dashes:[6.1171328,-299.7393695],sourceLine:226},{angle:222.3974378,originX:6.096,originY:21.336,deltaX:413.48123885686,deltaY:.81554484621,dashes:[7.9107792,-783.16772512177],sourceLine:227},{angle:138.81407483,originX:25.4,originY:15.748,deltaX:234.164238558,deltaY:2.38943100688,dashes:[2.7000454,-267.30565824344],sourceLine:228},{angle:171.4692344,originX:23.368,originY:17.526,deltaX:-334.082478726,deltaY:1.25594916784,dashes:[5.1368198,-508.5463899704],sourceLine:229},{angle:225,originX:18.288,originY:18.288,deltaX:17.96051224214,deltaY:17.96051224214,dashes:[3.5920934,-32.32893108428],sourceLine:230},{angle:203.19859051,originX:16.51,originY:21.336,deltaX:-136.74251918,deltaY:3.33518339548,dashes:[1.9344132,-191.50622368894],sourceLine:231},{angle:291.80140949,originX:14.732,originY:20.574,deltaX:-80.18324702488,deltaY:4.71666158921,dashes:[2.7356562,-134.0475299],sourceLine:232},{angle:30.96375653,originX:15.748,originY:18.034,deltaX:91.47734531502,deltaY:4.35606406258,dashes:[4.4431966,-143.6629815291],sourceLine:233},{angle:161.56505118,originX:19.558,originY:20.32,deltaX:-56.2252967978,deltaY:8.03218525675,dashes:[3.2128714,-77.10898116828],sourceLine:234},{angle:16.389540334,originX:0,originY:20.574,deltaX:265.17991128726,deltaY:1.43340492604,dashes:[4.50088,-445.58826672539],sourceLine:235},{angle:70.34617594,originX:4.318,originY:21.844,deltaX:-297.29446803469,deltaY:1.70858889651,dashes:[3.7759894,-373.822156782],sourceLine:236},{angle:293.19859051,originX:19.558,originY:25.4,deltaX:-136.7425191801,deltaY:3.33518339548,dashes:[3.868801,-189.57183588894],sourceLine:237},{angle:343.61045967,originX:21.082,originY:21.844,deltaX:-265.17991128725,deltaY:1.433404926,dashes:[4.50088,-445.5882667254],sourceLine:238},{angle:339.44395478,originX:0,originY:4.826,deltaX:-136.75087638398,deltaY:2.97284513779,dashes:[4.340352,-212.67734313106],sourceLine:239},{angle:294.7751406,originX:4.064,originY:3.302,deltaX:-306.90424056705,deltaY:1.77401295215,dashes:[3.6367212,-360.0359338072],sourceLine:240},{angle:66.80140949,originX:19.812,originY:0,deltaX:136.74251918012,deltaY:3.33518339452,dashes:[3.868801,-189.57183588894],sourceLine:241},{angle:17.35402464,originX:21.336,originY:3.556,deltaX:-345.47402804977,deltaY:1.51523696536,dashes:[4.2578274,-421.523759802],sourceLine:242},{angle:69.44395478,originX:7.366,originY:0,deltaX:-136.75087638396,deltaY:2.97284513874,dashes:[2.170176,-214.84751913106],sourceLine:243},{angle:101.309932474,originX:18.288,originY:0,deltaX:104.60834648271,deltaY:4.98134983255,dashes:[1.295146,-128.21994964526],sourceLine:244},{angle:165.963756532,originX:18.034,originY:1.27,deltaX:-80.085263387,deltaY:6.16040487582,dashes:[5.236337,-99.49054589069],sourceLine:245},{angle:186.00900596,originX:12.954,originY:2.54,deltaX:-255.26337856879,deltaY:1.32949676118,dashes:[4.85267,-480.41364863337],sourceLine:246},{angle:303.69006753,originX:15.748,originY:15.748,deltaX:-56.35753993648,deltaY:7.0446924921,dashes:[3.6632388,-87.9177635968],sourceLine:247},{angle:353.15722659,originX:17.78,originY:12.7,deltaX:434.77679606606,deltaY:1.0087628707,dashes:[6.3955676,-633.16009065031],sourceLine:248},{angle:60.9453959,originX:24.13,originY:11.938,deltaX:-204.76648550216,deltaY:2.46706609031,dashes:[2.6150824,-258.8939231811],sourceLine:249},{angle:90,originX:25.4,originY:14.224,deltaX:25.4,deltaY:25.4,dashes:[1.524,-23.876],sourceLine:250},{angle:120.25643716,originX:12.446,originY:3.302,deltaX:-204.77318477297,deltaY:1.8283320086,dashes:[3.5286696,-349.339407732],sourceLine:251},{angle:48.0127875,originX:10.668,originY:6.35,deltaX:305.85067529778,deltaY:1.88796713138,dashes:[6.8344288,-334.88762199565],sourceLine:252},{angle:0,originX:15.24,originY:11.43,deltaX:25.4,deltaY:25.4,dashes:[6.604,-18.796],sourceLine:253},{angle:325.3048465,originX:21.844,originY:11.43,deltaX:310.04235091354,deltaY:-1.6064370526,dashes:[4.0160956,-397.5931672414],sourceLine:254},{angle:254.0546041,originX:25.146,originY:9.144,deltaX:104.6687497289,deltaY:3.48895832444,dashes:[3.6982908,-181.21650038772],sourceLine:255},{angle:207.64597536,originX:24.13,originY:5.588,deltaX:545.36007557253,deltaY:1.07143433066,dashes:[6.021451,-596.12464422938],sourceLine:256},{angle:175.42607874,originX:18.796,originY:2.794,deltaX:331.1739336186,deltaY:1.01276432357,dashes:[6.3702946,-630.6584645624],sourceLine:257}]},{name:"HEX",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:5.4992613154,dashes:[3.175,-6.35],sourceLine:259},{angle:120,originX:0,originY:0,deltaX:0,deltaY:5.4992613154,dashes:[3.175,-6.35],sourceLine:260},{angle:60,originX:3.175,originY:0,deltaX:0,deltaY:5.4992613154,dashes:[3.175,-6.35],sourceLine:261}]},{name:"HONEY",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:4.7625,deltaY:2.749630645,dashes:[3.175,-6.35],sourceLine:263},{angle:120,originX:0,originY:0,deltaX:4.7625,deltaY:2.749630645,dashes:[3.175,-6.35],sourceLine:264},{angle:60,originX:0,originY:0,deltaX:4.7625,deltaY:2.749630645,dashes:[-6.35,3.175],sourceLine:265}]},{name:"HOUND",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:6.35,deltaY:1.5875,dashes:[25.4,-12.7],sourceLine:267},{angle:90,originX:0,originY:0,deltaX:-6.35,deltaY:1.5875,dashes:[25.4,-12.7],sourceLine:268}]},{name:"INSUL",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:9.525,dashes:[],sourceLine:270},{angle:0,originX:0,originY:3.175,deltaX:0,deltaY:9.525,dashes:[3.175,-3.175],sourceLine:271},{angle:0,originX:0,originY:6.35,deltaX:0,deltaY:9.525,dashes:[3.175,-3.175],sourceLine:272}]},{name:"ACAD_ISO02W100",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:5,dashes:[12,-3],sourceLine:285}]},{name:"ACAD_ISO03W100",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:5,dashes:[12,-18],sourceLine:287}]},{name:"ACAD_ISO04W100",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:5,dashes:[24,-3,.5,-3],sourceLine:289}]},{name:"ACAD_ISO05W100",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:5,dashes:[24,-3,.5,-3,.5,-3],sourceLine:291}]},{name:"ACAD_ISO06W100",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:5,dashes:[24,-3,.5,-3,.5,-6.5],sourceLine:293},{angle:0,originX:0,originY:0,deltaX:0,deltaY:5,dashes:[-34,.5,-3],sourceLine:294}]},{name:"ACAD_ISO07W100",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:5,dashes:[.5,-3],sourceLine:296}]},{name:"ACAD_ISO08W100",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:5,dashes:[24,-3,6,-3],sourceLine:298}]},{name:"ACAD_ISO09W100",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:5,dashes:[24,-3,6,-3,6,-3],sourceLine:300}]},{name:"ACAD_ISO10W100",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:5,dashes:[12,-3,.5,-3],sourceLine:302}]},{name:"ACAD_ISO11W100",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:5,dashes:[12,-3,12,-3,.5,-3],sourceLine:304}]},{name:"ACAD_ISO12W100",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:5,dashes:[12,-3,.5,-3,.5,-3],sourceLine:306}]},{name:"ACAD_ISO13W100",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:5,dashes:[12,-3,12,-3,.5,-6.5],sourceLine:308},{angle:0,originX:0,originY:0,deltaX:0,deltaY:5,dashes:[-33.5,.5,-3],sourceLine:309}]},{name:"ACAD_ISO14W100",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:5,dashes:[12,-3,.5,-3,.5,-6.5],sourceLine:311},{angle:0,originX:0,originY:0,deltaX:0,deltaY:5,dashes:[-22,.5,-3],sourceLine:312}]},{name:"ACAD_ISO15W100",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:5,dashes:[12,-3,12,-3,.5,-10],sourceLine:314},{angle:0,originX:0,originY:0,deltaX:0,deltaY:5,dashes:[-33.5,.5,-3,.5,-3],sourceLine:315}]},{name:"JIS_LC_20",description:"",lines:[{angle:45,originX:0,originY:0,deltaX:0,deltaY:20,dashes:[],sourceLine:322},{angle:45,originX:.4,originY:0,deltaX:0,deltaY:20,dashes:[],sourceLine:323}]},{name:"JIS_LC_20A",description:"",lines:[{angle:45,originX:0,originY:0,deltaX:0,deltaY:20,dashes:[],sourceLine:325},{angle:45,originX:1,originY:0,deltaX:0,deltaY:20,dashes:[],sourceLine:326}]},{name:"JIS_LC_8",description:"",lines:[{angle:45,originX:0,originY:0,deltaX:0,deltaY:7.8,dashes:[],sourceLine:328},{angle:45,originX:.4,originY:0,deltaX:0,deltaY:7.8,dashes:[],sourceLine:329}]},{name:"JIS_LC_8A",description:"",lines:[{angle:45,originX:0,originY:0,deltaX:0,deltaY:7.8,dashes:[],sourceLine:331},{angle:45,originX:1,originY:0,deltaX:0,deltaY:7.8,dashes:[],sourceLine:332}]},{name:"JIS_RC_10",description:"",lines:[{angle:45,originX:0,originY:0,deltaX:0,deltaY:10,dashes:[],sourceLine:334},{angle:45,originX:.725,originY:0,deltaX:0,deltaY:10,dashes:[],sourceLine:335},{angle:45,originX:1.45,originY:0,deltaX:0,deltaY:10,dashes:[],sourceLine:336}]},{name:"JIS_RC_15",description:"",lines:[{angle:45,originX:0,originY:0,deltaX:0,deltaY:15,dashes:[],sourceLine:338},{angle:45,originX:.725,originY:0,deltaX:0,deltaY:15,dashes:[],sourceLine:339},{angle:45,originX:1.45,originY:0,deltaX:0,deltaY:15,dashes:[],sourceLine:340}]},{name:"JIS_RC_18",description:"",lines:[{angle:45,originX:0,originY:0,deltaX:0,deltaY:18,dashes:[],sourceLine:342},{angle:45,originX:1,originY:0,deltaX:0,deltaY:18,dashes:[],sourceLine:343},{angle:45,originX:2,originY:0,deltaX:0,deltaY:18,dashes:[],sourceLine:344}]},{name:"JIS_RC_30",description:"",lines:[{angle:45,originX:0,originY:0,deltaX:0,deltaY:30,dashes:[],sourceLine:346},{angle:45,originX:1,originY:0,deltaX:0,deltaY:30,dashes:[],sourceLine:347},{angle:45,originX:2,originY:0,deltaX:0,deltaY:30,dashes:[],sourceLine:348}]},{name:"JIS_STN_1E",description:"",lines:[{angle:45,originX:0,originY:0,deltaX:0,deltaY:1,dashes:[],sourceLine:350},{angle:45,originX:.705,originY:0,deltaX:0,deltaY:1,dashes:[1,-.5],sourceLine:351}]},{name:"JIS_STN_2.5",description:"",lines:[{angle:45,originX:0,originY:0,deltaX:0,deltaY:2.5,dashes:[],sourceLine:353},{angle:45,originX:1.765,originY:0,deltaX:0,deltaY:2.5,dashes:[1.2,-.5],sourceLine:354}]},{name:"JIS_WOOD",description:"",lines:[{angle:45,originX:0,originY:0,deltaX:0,deltaY:.70710678,dashes:[],sourceLine:356}]},{name:"LINE",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:3.175,dashes:[],sourceLine:359}]},{name:"MUDST",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:12.7,deltaY:6.35,dashes:[6.35,-6.35,0,-6.35,0,-6.35],sourceLine:361}]},{name:"NET",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:3.175,dashes:[],sourceLine:363},{angle:90,originX:0,originY:0,deltaX:0,deltaY:3.175,dashes:[],sourceLine:364}]},{name:"NET3",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:3.175,dashes:[],sourceLine:366},{angle:60,originX:0,originY:0,deltaX:0,deltaY:3.175,dashes:[],sourceLine:367},{angle:120,originX:0,originY:0,deltaX:0,deltaY:3.175,dashes:[],sourceLine:368}]},{name:"PLAST",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:6.35,dashes:[],sourceLine:370},{angle:0,originX:0,originY:.79375,deltaX:0,deltaY:6.35,dashes:[],sourceLine:371},{angle:0,originX:0,originY:1.5875,deltaX:0,deltaY:6.35,dashes:[],sourceLine:372}]},{name:"PLASTI",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:6.35,dashes:[],sourceLine:374},{angle:0,originX:0,originY:.79375,deltaX:0,deltaY:6.35,dashes:[],sourceLine:375},{angle:0,originX:0,originY:1.5875,deltaX:0,deltaY:6.35,dashes:[],sourceLine:376},{angle:0,originX:0,originY:3.96875,deltaX:0,deltaY:6.35,dashes:[],sourceLine:377}]},{name:"SACNCR",description:"",lines:[{angle:45,originX:0,originY:0,deltaX:0,deltaY:2.38125,dashes:[],sourceLine:379},{angle:45,originX:1.6838,originY:0,deltaX:0,deltaY:2.38125,dashes:[0,-2.38125],sourceLine:380}]},{name:"SQUARE",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:3.175,dashes:[3.175,-3.175],sourceLine:382},{angle:90,originX:0,originY:0,deltaX:0,deltaY:3.175,dashes:[3.175,-3.175],sourceLine:383}]},{name:"STARS",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:5.4992613154,dashes:[3.175,-3.175],sourceLine:385},{angle:60,originX:0,originY:0,deltaX:0,deltaY:5.4992613154,dashes:[3.175,-3.175],sourceLine:386},{angle:120,originX:1.5875,originY:2.7496306704,deltaX:0,deltaY:5.4992613154,dashes:[3.175,-3.175],sourceLine:387}]},{name:"STEEL",description:"",lines:[{angle:45,originX:0,originY:0,deltaX:0,deltaY:3.175,dashes:[],sourceLine:389},{angle:45,originX:0,originY:1.5875,deltaX:0,deltaY:3.175,dashes:[],sourceLine:390}]},{name:"SWAMP",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:12.7,deltaY:21.9970452362,dashes:[3.175,-22.225],sourceLine:392},{angle:90,originX:1.5875,originY:0,deltaX:21.9970452362,deltaY:12.7,dashes:[1.5875,-42.4065904724],sourceLine:393},{angle:90,originX:1.984375,originY:0,deltaX:21.9970452362,deltaY:12.7,dashes:[1.27,-42.7240904724],sourceLine:394},{angle:90,originX:1.190625,originY:0,deltaX:21.9970452362,deltaY:12.7,dashes:[1.27,-42.7240904724],sourceLine:395},{angle:60,originX:2.38125,originY:0,deltaX:12.7,deltaY:21.9970452362,dashes:[1.016,-24.384],sourceLine:396},{angle:120,originX:.79375,originY:0,deltaX:12.7,deltaY:21.9970452362,dashes:[1.016,-24.384],sourceLine:397}]},{name:"TRANS",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:6.35,dashes:[],sourceLine:399},{angle:0,originX:0,originY:3.175,deltaX:0,deltaY:6.35,dashes:[3.175,-3.175],sourceLine:400}]},{name:"TRIANG",description:"",lines:[{angle:60,originX:0,originY:0,deltaX:4.7625,deltaY:8.2488919604,dashes:[4.7625,-4.7625],sourceLine:402},{angle:120,originX:0,originY:0,deltaX:4.7625,deltaY:8.2488919604,dashes:[4.7625,-4.7625],sourceLine:403},{angle:0,originX:-2.38125,originY:4.1244459802,deltaX:4.7625,deltaY:8.2488919604,dashes:[4.7625,-4.7625],sourceLine:404}]},{name:"ZIGZAG",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:3.175,deltaY:3.175,dashes:[3.175,-3.175],sourceLine:406},{angle:90,originX:3.175,originY:0,deltaX:3.175,deltaY:3.175,dashes:[3.175,-3.175],sourceLine:407}]}],issues:[]};var we=(i=>(i[i.UserDefined=0]="UserDefined",i[i.Predefined=1]="Predefined",i[i.Custom=2]="Custom",i))(we||{}),Do=(i=>(i[i.Normal=0]="Normal",i[i.Outer=1]="Outer",i[i.Ignore=2]="Ignore",i))(Do||{}),Uo=(i=>(i[i.HatchObject=0]="HatchObject",i[i.GradientObject=1]="GradientObject",i))(Uo||{}),$o=(i=>(i[i.PreDefinedGradient=0]="PreDefinedGradient",i[i.UserDefinedGradient=1]="UserDefinedGradient",i))($o||{});const rr=class rr extends ${constructor(){super(),this._gradientAngle=0,this._elevation=0,this._geo=new Bt,this._isSolidFill=!1,this._definitionLines=[],this._definitionLinesAutoGenerated=!1,this._definitionLinesPatternName="",this._definitionLinesPatternScale=1,this._patternName="",this._patternNameSet=!1,this._patternType=1,this._patternAngle=0,this._patternAngleSet=!1,this._patternScale=1,this._patternScaleSet=!1,this._associative=!1,this._associativeSet=!1,this._backgroundColor=void 0,this._backgroundColorSet=!1,this._patternDouble=!1,this._patternDoubleSet=!1,this._hatchStyle=0,this._hatchStyleSet=!1,this._hatchObjectType=0,this._gradientAngle=0,this._gradientShift=0,this._shadeTintValue=0,this._gradientStartColor=void 0,this._gradientEndColor=void 0,this._gradientType=0,this._gradientName="",this._gradientOneColorMode=!1}get dxfTypeName(){return"HATCH"}get isGradient(){return this._hatchObjectType===1}get isHatch(){return this._hatchObjectType===0}get isSolidFill(){return this._isSolidFill||this.getEffectivePatternName().trim().toUpperCase()===Gt}set isSolidFill(t){this._isSolidFill=t}get color(){if(this.hasExplicitColor())return this.getEntityColor();const t=this.database,e=gt.instance().getVar(v.HPCOLOR,t);return e instanceof k&&e.colorMethod!==exports.AcCmColorMethod.None?e.clone():t.cecolor.clone()}set color(t){this.setEntityColor(t)}get definitionLines(){return this._definitionLines}get patternName(){return this._patternName}set patternName(t){this._patternName=t??"",this._isSolidFill=this._patternName.trim().toUpperCase()===Gt,this._patternNameSet=!0,this.updatePredefinedPatternDefinitionLines()}get patternType(){return this._patternType}set patternType(t){this._patternType=t,t!==1&&this._definitionLinesAutoGenerated&&(this._definitionLines=[],this._definitionLinesAutoGenerated=!1,this._definitionLinesPatternName="",this._definitionLinesPatternScale=1),this.updatePredefinedPatternDefinitionLines()}get patternAngle(){return this._patternAngle}set patternAngle(t){this._patternAngle=t,this._patternAngleSet=!0}get patternScale(){return this._patternScale}set patternScale(t){this._patternScale=t,this._patternScaleSet=!0,this.updatePredefinedPatternDefinitionLines()}get associative(){return this._associative}set associative(t){this._associative=!!t,this._associativeSet=!0}get backgroundColor(){return this._backgroundColor}set backgroundColor(t){this._backgroundColor=t==null?void 0:t.clone(),this._backgroundColorSet=!0}get patternDouble(){return this._patternDouble}set patternDouble(t){this._patternDouble=!!t,this._patternDoubleSet=!0}get hatchStyle(){return this._hatchStyle}set hatchStyle(t){this._hatchStyle=t,this._hatchStyleSet=!0}get elevation(){return this._elevation}set elevation(t){this._elevation=t}get hatchObjectType(){return this._hatchObjectType}set hatchObjectType(t){this._hatchObjectType=t}get gradientAngle(){return this._gradientAngle}set gradientAngle(t){this._gradientAngle=t}get gradientShift(){return this._gradientShift}set gradientShift(t){this._gradientShift=t}get gradientType(){return this._gradientType}set gradientType(t){this._gradientType=t}get gradientName(){return this.isGradient&&this._gradientName.trim()===""?To:this._gradientName}set gradientName(t){this._gradientName=t??""}get gradientOneColorMode(){return this._gradientOneColorMode}set gradientOneColorMode(t){this._gradientOneColorMode=t}get shadeTintValue(){return this._shadeTintValue}set shadeTintValue(t){this._shadeTintValue=t}get gradientStartColor(){return this._gradientStartColor}set gradientStartColor(t){this._gradientStartColor=t==null||!Number.isFinite(t)?void 0:t&16777215}get gradientEndColor(){return this._gradientEndColor}set gradientEndColor(t){this._gradientEndColor=t==null||!Number.isFinite(t)?void 0:t&16777215}applyPatternDefaultsFromSysVars(t){const e=gt.instance();if(!this.hasExplicitLayer()){const n=e.getVar(v.HPLAYER,t);this.shouldUseSysVarOverride(n)&&(this.layer=n)}if(!this.hasExplicitTransparency()){const n=this.parseHpTransparency(e.getVar(v.HPTRANSPARENCY,t));n&&(this.transparency=n)}if(this._backgroundColorSet||(this._backgroundColor=this.parseHpBackgroundColor(e.getVar(v.HPBACKGROUNDCOLOR,t)),this._backgroundColorSet=!0),!this._patternNameSet){const n=e.getVar(v.HPNAME,t);this._patternName=typeof n=="string"?n:"",this._patternNameSet=!0}if(!this._patternAngleSet){const n=e.getVar(v.HPANG,t);this._patternAngle=typeof n=="number"&&Number.isFinite(n)?n:0,this._patternAngleSet=!0}if(this._patternScaleSet||(this._patternScale=this.normalizePatternScale(e.getVar(v.HPSCALE,t)),this._patternScaleSet=!0),!this._associativeSet){const n=e.getVar(v.HPASSOC,t);this._associative=typeof n=="number"?n!==0:!1,this._associativeSet=!0}if(this._hatchStyleSet||(this._hatchStyle=this.normalizeHatchStyle(e.getVar(v.HPISLANDDETECTION,t)),this._hatchStyleSet=!0),!this._patternDoubleSet){const n=e.getVar(v.HPDOUBLE,t);this._patternDouble=typeof n=="number"?n!==0:!1,this._patternDoubleSet=!0}this.updatePredefinedPatternDefinitionLines()}getEffectivePatternName(){if(this._patternNameSet)return this._patternName;const t=this.database,e=gt.instance().getVar(v.HPNAME,t);return typeof e=="string"?e:this._patternName}shouldResolveColorFromCecolor(){return!1}getEffectivePatternAngle(){if(this._patternAngleSet)return this._patternAngle;const t=this.database,e=gt.instance().getVar(v.HPANG,t);return typeof e=="number"&&Number.isFinite(e)?e:this._patternAngle}getRenderablePatternAngle(){return!this._definitionLinesAutoGenerated&&this._definitionLines.length>0?0:this.getEffectivePatternAngle()}getEffectivePatternScale(){if(this._patternScaleSet)return this._patternScale;const t=this.database;return this.normalizePatternScale(gt.instance().getVar(v.HPSCALE,t))}getEffectiveAssociative(){if(this._associativeSet)return this._associative;const t=this.database,e=gt.instance().getVar(v.HPASSOC,t);return typeof e=="number"?e!==0:this._associative}normalizePatternScale(t){return typeof t=="number"&&Number.isFinite(t)&&t>0?t:1}normalizeHatchStyle(t){return typeof t!="number"||!Number.isFinite(t)?1:t===0?0:t===2?2:1}shouldUseSysVarOverride(t){if(typeof t!="string")return!1;const e=t.trim().toLowerCase();return e!==""&&e!=="."&&e!=="use current"}parseHpBackgroundColor(t){if(t instanceof k)return t.colorMethod===exports.AcCmColorMethod.None?void 0:t.clone();if(typeof t!="string")return;const e=t.trim().toLowerCase();if(!(!e||e==="."||e==="none"))return k.fromString(t)}parseHpTransparency(t){if(t instanceof U)return t.clone();if(!this.shouldUseSysVarOverride(t))return;const e=t.trim();if(/^bylayer$/i.test(e)||/^byblock$/i.test(e))return U.fromString(e);const n=Number(e);if(Number.isInteger(n)&&n>=0&&n<=90){const r=new U;return r.percentage=n,r}}updatePredefinedPatternDefinitionLines(t=this.getEffectivePatternName(),e=this.getEffectivePatternScale()){if(this.patternType!==1||!(this._definitionLinesAutoGenerated||this._definitionLines.length===0))return;const r=t.trim().toUpperCase();if(!r||r===Gt){this._definitionLines=[],this._definitionLinesAutoGenerated=!1,this._definitionLinesPatternName="",this._definitionLinesPatternScale=1;return}const s=this.normalizePatternScale(e);if(this._definitionLinesAutoGenerated&&this._definitionLinesPatternName===r&&this._definitionLinesPatternScale===s)return;const o=Wo.patterns.find(a=>a.name.trim().toUpperCase()===r);if(!o){this._definitionLinesAutoGenerated&&(this._definitionLines=[],this._definitionLinesAutoGenerated=!1,this._definitionLinesPatternName="",this._definitionLinesPatternScale=1);return}this._definitionLines=o.lines.map(a=>({angle:a.angle*Math.PI/180,base:{x:a.originX*s,y:a.originY*s},offset:{x:a.deltaX*s,y:a.deltaY*s},dashLengths:a.dashes.map(h=>h*s)})),this._definitionLinesAutoGenerated=!0,this._definitionLinesPatternName=r,this._definitionLinesPatternScale=s}add(t){this._geo.add(t)}buildAreasFromLoops(){const t=this._geo.loops;if(t.length===0)return[];if(t.length===1)return[this._geo];const e=this._geo.buildHierarchy(),n=[],r=(s,o)=>{if(s.index>=0&&o%2===0){const a=new Bt;a.add(t[s.index]),s.children.forEach(h=>{h.index>=0&&a.add(t[h.index])}),n.push(a)}s.children.forEach(a=>r(a,o+1))};return e.children.forEach(s=>r(s,0)),n.length>0?n:[this._geo]}getCalculatedAreaValue(){const t=this.buildAreasFromLoops();return t.length===0?0:t.reduce((e,n)=>e+n.area,0)}get area(){return this.getCalculatedAreaValue()}get geometricExtents(){const t=this.buildAreasFromLoops();if(t.length===0)return new C;const e=new C;return t.forEach(n=>{const r=n.box;e.union(new C({x:r.min.x,y:r.min.y,z:this._elevation},{x:r.max.x,y:r.max.y,z:this._elevation}))}),e}get properties(){return{type:this.type,groups:[this.getGeneralProperties(),{groupName:"pattern",properties:[{name:"patternType",type:"enum",editable:!0,options:[{label:we[0],value:0},{label:we[1],value:1},{label:we[2],value:2}],accessor:{get:()=>this.patternType,set:t=>{this.patternType=t}}},{name:"patternName",type:"string",editable:!0,accessor:{get:()=>this.patternName,set:t=>{this.patternName=t}}},{name:"patternAngle",type:"float",editable:!0,accessor:{get:()=>this.patternAngle,set:t=>{this.patternAngle=t}}},{name:"patternScale",type:"float",editable:!0,accessor:{get:()=>this.patternScale,set:t=>{this.patternScale=t}}},{name:"associative",type:"boolean",editable:!0,accessor:{get:()=>this.associative,set:t=>{this.associative=t}}},{name:"backgroundColor",type:"color",editable:!0,accessor:{get:()=>this.backgroundColor,set:t=>{this.backgroundColor=t}}},{name:"patternDouble",type:"boolean",editable:!0,accessor:{get:()=>this.patternDouble,set:t=>{this.patternDouble=t}}}]},{groupName:"geometry",properties:[{name:"elevation",type:"float",editable:!0,accessor:{get:()=>this.elevation,set:t=>{this.elevation=t}}},{name:"area",type:"float",editable:!1,accessor:{get:()=>this.area}}]}]}}subGetOsnapPoints(t,e,n,r){const s=this._elevation,o=[];if(this._geo.loops.forEach(a=>{var h;if(a instanceof H){const l=a,c=l.numberOfVertices;if(c===0)return;switch(t){case b.EndPoint:for(let u=0;u<c;u++){const g=l.getPointAt(u);r.push(new _(g.x,g.y,s))}break;case b.MidPoint:case b.Nearest:case b.Perpendicular:case b.Tangent:{const u=a.closed?c:c-1;for(let g=0;g<u;g++){const d=[];$e(l.getPointAt(g),l.getPointAt((g+1)%c),(h=l.vertices[g])==null?void 0:h.bulge,s,t,e,d),t===b.MidPoint?r.push(...d):o.push(...d)}break}}return}a.curves.forEach(l=>{if(l instanceof kt){const c=[];$e(l.startPoint,l.endPoint,void 0,s,t,e,c),t===b.MidPoint?r.push(...c):t===b.Nearest||t===b.Perpendicular||t===b.Tangent?o.push(...c):r.push(...c)}else if(l instanceof pt)switch(t){case b.EndPoint:r.push(new _(l.startPoint.x,l.startPoint.y,s),new _(l.endPoint.x,l.endPoint.y,s));break;case b.MidPoint:r.push(new _(l.midPoint.x,l.midPoint.y,s));break;case b.Nearest:{const c=l.nearestPoint({x:e.x,y:e.y});o.push(new _(c.x,c.y,s));break}case b.Perpendicular:{l.perpendicularPoints({x:e.x,y:e.y}).forEach(u=>o.push(new _(u.x,u.y,s)));break}case b.Tangent:{l.tangentPoints({x:e.x,y:e.y}).forEach(u=>o.push(new _(u.x,u.y,s)));break}}else if(l instanceof ve)switch(t){case b.EndPoint:r.push(new _(l.startPoint.x,l.startPoint.y,s),new _(l.endPoint.x,l.endPoint.y,s));break;case b.MidPoint:{const c=l.getPoint(.5);r.push(new _(c.x,c.y,s));break}case b.Nearest:{const c=l.nearestPoint({x:e.x,y:e.y});o.push(new _(c.x,c.y,s));break}case b.Perpendicular:{l.perpendicularPoints({x:e.x,y:e.y}).forEach(u=>o.push(new _(u.x,u.y,s)));break}case b.Tangent:{l.tangentPoints({x:e.x,y:e.y}).forEach(u=>o.push(new _(u.x,u.y,s)));break}}})}),(t===b.Nearest||t===b.Perpendicular||t===b.Tangent)&&o.length>0){const a=ht(e,o);r.length=0,a&&r.push(a)}}subWorldDraw(t){var s;this.updatePredefinedPatternDefinitionLines();const e=t.subEntityTraits;e.fillType={solidFill:this.isSolidFill,patternAngle:this.getRenderablePatternAngle(),definitionLines:this.definitionLines,backgroundColor:(s=this.backgroundColor)==null?void 0:s.clone(),gradient:this.isGradient?{name:this.gradientName,angle:this.gradientAngle,shift:this.gradientShift,oneColorMode:this.gradientOneColorMode,shadeTintValue:this.shadeTintValue,startColor:this.gradientStartColor,endColor:this.gradientEndColor}:void 0},e.drawOrder=-1;const n=this.buildAreasFromLoops();if(n.length===0)return t.area(this._geo);if(n.length===1)return t.area(n[0]);const r=n.map(o=>t.area(o));return t.group(r)}transformBy(t){const e=t.elements,n=new Ee(e[0],e[4],e[12],e[1],e[5],e[13],0,0,1);this._geo.transform(n),this._elevation=new _(0,0,this._elevation).applyMatrix4(t).z;const r=new _(1,0,0).applyMatrix4(t),s=new _().applyMatrix4(t),o=new _(r).sub(s);if(o.length()>0){const a=Math.atan2(o.y,o.x);this._patternAngle=this.getEffectivePatternAngle()+a,this._gradientAngle+=a,this._patternScale=this.getEffectivePatternScale()*o.length(),this._patternAngleSet=!0,this._patternScaleSet=!0,this.updatePredefinedPatternDefinitionLines()}return this}dxfOutFields(t){super.dxfOutFields(t);const e=this._geo.loops,n=this.getEffectivePatternName(),r=this.getEffectivePatternAngle(),s=this.getEffectivePatternScale();return this.updatePredefinedPatternDefinitionLines(n,s),t.writeSubclassMarker("AcDbHatch"),t.writePoint3d(10,{x:0,y:0,z:this.elevation}),t.writeVector3d(210,{x:0,y:0,z:1}),t.writeString(2,n||(this.isSolidFill?Gt:Io)),t.writeInt16(70,this.isSolidFill?1:0),t.writeInt16(71,this.getEffectiveAssociative()?1:0),t.writeInt16(91,e.length),e.forEach((o,a)=>{const h=a===0;if(o instanceof H){const l=o.vertices,c=l.some(g=>(g.bulge??0)!==0);t.writeInt16(92,2),t.writeInt16(72,c?1:0),t.writeInt16(73,o.closed?1:0),t.writeInt16(93,l.length);for(const g of l)t.writePoint2d(10,g),c&&t.writeDouble(42,g.bulge??0);t.writeInt16(97,0);return}if(o instanceof Xn){const l=h?1:0;t.writeInt16(92,l),t.writeInt16(93,o.numberOfEdges);for(const c of o.curves){if(c instanceof kt){t.writeInt16(72,1),t.writePoint2d(10,c.startPoint),t.writePoint2d(11,c.endPoint);continue}if(c instanceof pt){t.writeInt16(72,2),t.writePoint2d(10,c.center),t.writeDouble(40,c.radius),t.writeAngle(50,c.startAngle),t.writeAngle(51,c.endAngle),t.writeInt16(73,c.clockwise?0:1);continue}if(c instanceof ve){t.writeInt16(72,3),t.writePoint2d(10,c.center);const u=new P(c.majorAxisRadius*Math.cos(c.rotation),c.majorAxisRadius*Math.sin(c.rotation));t.writePoint2d(11,u);const g=c.majorAxisRadius===0?0:c.minorAxisRadius/c.majorAxisRadius;t.writeDouble(40,g),t.writeAngle(50,c.startAngle),t.writeAngle(51,c.endAngle),t.writeInt16(73,c.clockwise?0:1);continue}if(c instanceof Yt){const u=c.knots,g=c.controlPoints,d=c.weights,p=c.fitPoints,f=d.some(y=>y!==1);t.writeInt16(72,4),t.writeInt16(94,c.degree),t.writeInt16(73,f?1:0),t.writeInt16(74,c.closed?1:0),t.writeInt16(95,u.length),t.writeInt16(96,g.length),u.forEach(y=>t.writeDouble(40,y)),g.forEach((y,m)=>{t.writePoint2d(10,y),f&&t.writeDouble(42,d[m]??1)}),t.writeInt16(97,(p==null?void 0:p.length)??0),p==null||p.forEach(y=>t.writePoint2d(11,y))}}t.writeInt16(97,0)}}),t.writeInt16(75,this.hatchStyle),t.writeInt16(76,this.patternType),t.writeAngle(52,r),t.writeDouble(41,s),t.writeInt16(77,0),t.writeInt16(78,this.definitionLines.length),this.definitionLines.forEach(o=>{t.writeAngle(53,o.angle),t.writePoint2d(43,o.base),t.writePoint2d(45,o.offset),t.writeInt16(79,o.dashLengths.length),o.dashLengths.forEach(a=>t.writeDouble(49,a))}),this.isGradient&&(t.writeInt16(450,this._hatchObjectType),t.writeInt16(451,0),t.writeInt16(452,this._gradientOneColorMode?1:0),t.writeAngle(460,this._gradientAngle),t.writeDouble(461,this._gradientShift),t.writeString(470,this.gradientName)),t.writeInt16(98,0),this}};rr.typeName="Hatch";let qe=rr;var qo=(i=>(i[i.MText=0]="MText",i[i.Fcf=1]="Fcf",i[i.BlockReference=2]="BlockReference",i[i.NoAnnotation=3]="NoAnnotation",i))(qo||{});const sr=class sr extends q{get dxfTypeName(){return"LEADER"}constructor(){super(),this._isSplined=!1,this._updated=!1,this._hasArrowHead=!1,this._vertices=[],this._dimensionStyle="",this._hasHookLine=!1,this._isHookLineSameDirection=!1,this._annoType=3,this._textHeight=0,this._textWidth=0,this._associatedAnnotation="",this._normal=new w(0,0,1),this._horizontalDirection=new w(1,0,0)}get isSplined(){return this._isSplined}set isSplined(t){this._isSplined=t}get hasArrowHead(){return this._hasArrowHead}set hasArrowHead(t){this._hasArrowHead=t}get hasHookLine(){return this._hasHookLine}set hasHookLine(t){this._hasHookLine=t}get isHookLineSameDirection(){return this._isHookLineSameDirection}set isHookLineSameDirection(t){this._isHookLineSameDirection=t}get numVertices(){return this._vertices.length}get vertices(){return this._vertices.map(t=>t.clone())}get dimensionStyle(){return this._dimensionStyle}set dimensionStyle(t){this._dimensionStyle=t}get annoType(){return this._annoType}set annoType(t){this._annoType=t}get textHeight(){return this._textHeight}set textHeight(t){this._textHeight=t}get textWidth(){return this._textWidth}set textWidth(t){this._textWidth=t}get byBlockColor(){return this._byBlockColor}set byBlockColor(t){this._byBlockColor=t}get associatedAnnotation(){return this._associatedAnnotation}set associatedAnnotation(t){this._associatedAnnotation=t}get normal(){return this._normal}set normal(t){this._normal.copy(t)}get horizontalDirection(){return this._horizontalDirection}set horizontalDirection(t){this._horizontalDirection.copy(t)}get offsetFromBlock(){var t;return(t=this._offsetFromBlock)==null?void 0:t.clone()}set offsetFromBlock(t){this._offsetFromBlock=t?new w(t):void 0}get offsetFromAnnotation(){var t;return(t=this._offsetFromAnnotation)==null?void 0:t.clone()}set offsetFromAnnotation(t){this._offsetFromAnnotation=t?new w(t):void 0}appendVertex(t){this._vertices.push(new _().copy(t)),this._updated=!0}setVertexAt(t,e){if(t<0||t>=this._vertices.length)throw new Error("The vertex index is out of range!");return this._vertices[t].copy(e),this._updated=!0,this}vertexAt(t){if(t<0||t>=this._vertices.length)throw new Error("The vertex index is out of range!");return this._vertices[t].clone()}subGetGripPoints(){return this._vertices.map(t=>t.clone())}subGetOsnapPoints(t,e,n,r){if(this.numVertices===0)return;if(this.isSplined&&this.splineGeo){switch(t){case b.EndPoint:r.push(this._vertices[0]),r.push(this._vertices[this.numVertices-1]);break;case b.Nearest:r.push(this.splineGeo.nearestPoint(e));break}return}const s=this._vertices;switch(t){case b.EndPoint:r.push(...s);break;case b.MidPoint:case b.Nearest:case b.Perpendicular:{const o=[];for(let a=0;a<s.length-1;a++){const h=[];ge(s[a],s[a+1],t,e,h),o.push(...h)}if(t===b.MidPoint)r.push(...o);else{const a=ht(e,o);a&&r.push(a)}break}}}get geometricExtents(){return this._isSplined&&this.splineGeo?this.splineGeo.calculateBoundingBox():new C().setFromPoints(this._vertices)}get closed(){return!1}set closed(t){}get area(){return 0}transformBy(t){return this._vertices.forEach(e=>e.applyMatrix4(t)),this.transformVector(this._normal,t),this.transformVector(this._horizontalDirection,t),this._offsetFromBlock&&this.transformVector(this._offsetFromBlock,t),this._offsetFromAnnotation&&this.transformVector(this._offsetFromAnnotation,t),this._splineGeo?(this._splineGeo.transform(t),this._updated=!1):this._updated=!0,this}subWorldDraw(t){if(this.isSplined&&this.splineGeo){const e=this.splineGeo.getPoints(100);return t.lines(e)}else return t.lines(this._vertices)}get splineGeo(){return this.createSplineIfNeeded(),this._splineGeo}createSplineIfNeeded(){this.isSplined&&this.numVertices>=2&&(this._splineGeo==null||this._updated)&&(this._splineGeo=new Yt(this._vertices,"Uniform"),this._updated=!1)}dxfOutFields(t){super.dxfOutFields(t),t.writeSubclassMarker("AcDbLeader"),t.writeString(3,this.dimensionStyle),t.writeInt16(71,this.hasArrowHead?1:0),t.writeInt16(72,this.isSplined?1:0),t.writeInt16(73,this.annoType),t.writeInt16(74,this.isHookLineSameDirection?1:0),t.writeInt16(75,this.hasHookLine?1:0),t.writeInt16(76,this.numVertices),this.textHeight!==0&&t.writeDouble(40,this.textHeight),this.textWidth!==0&&t.writeDouble(41,this.textWidth),this.byBlockColor!=null&&t.writeInt16(77,this.byBlockColor),this.associatedAnnotation&&t.writeHandle(340,this.associatedAnnotation);for(const e of this.vertices)t.writePoint3d(10,e);return t.writeVector3d(210,this.normal),t.writeVector3d(211,this.horizontalDirection),this._offsetFromBlock&&t.writeVector3d(212,this._offsetFromBlock),this._offsetFromAnnotation&&t.writeVector3d(213,this._offsetFromAnnotation),this}getOffsetCurves(t){const e=this.createOffsetCurve(t);return e?[e]:[]}getOffsetSideAtPoint(t){const e=this.collectPath2d();return e.length<2?1:lt.from2dPoints(e,!1).getOffsetSideAtPoint(t)}createOffsetCurve(t){return fi(this.collectPath2d(),!1,t)}collectPath2d(){return this.isSplined&&this.splineGeo?this.splineGeo.getPoints(64).map(t=>new P(t.x,t.y)):this._vertices.map(t=>new P(t.x,t.y))}transformVector(t,e){const n=new _,r=new _(t.x,t.y,t.z);n.applyMatrix4(e),r.applyMatrix4(e),t.set(r.x-n.x,r.y-n.y,r.z-n.z)}};sr.typeName="Leader";let tn=sr;var b=(i=>(i[i.EndPoint=1]="EndPoint",i[i.MidPoint=2]="MidPoint",i[i.Center=3]="Center",i[i.Node=4]="Node",i[i.Quadrant=5]="Quadrant",i[i.Insertion=7]="Insertion",i[i.Perpendicular=8]="Perpendicular",i[i.Tangent=9]="Tangent",i[i.Nearest=10]="Nearest",i[i.Centroid=11]="Centroid",i))(b||{});function Jh(i){let t=0;for(const e of i)t|=1<<e-1;return t}function tc(i){const t=[];for(const e of Object.values(b)){if(typeof e!="number")continue;const n=1<<e-1;i&n&&t.push(e)}return t}function ec(i,t){return i^1<<t-1}function ic(i,t){return(i&1<<t-1)!==0}function nc(i,t){return i|1<<t-1}function rc(i,t){return i&~(1<<t-1)}const hi=class hi extends q{get dxfTypeName(){return"LINE"}constructor(t,e){super(),this._geo=new xt(t,e)}get startPoint(){return this._geo.startPoint}set startPoint(t){this._geo.startPoint=t}get endPoint(){return this._geo.endPoint}set endPoint(t){this._geo.endPoint=t}get midPoint(){return this._geo.midPoint}get geometricExtents(){return this._geo.box}get closed(){return!1}get area(){return 0}get properties(){return{type:this.type,groups:[this.getGeneralProperties(),{groupName:"geometry",properties:[{name:"startX",type:"float",editable:!0,accessor:{get:()=>this.startPoint.x,set:t=>{this.startPoint.x=t}}},{name:"startY",type:"float",editable:!0,accessor:{get:()=>this.startPoint.y,set:t=>{this.startPoint.y=t}}},{name:"startZ",type:"float",editable:!0,accessor:{get:()=>this.startPoint.z,set:t=>{this.startPoint.z=t}}},{name:"endX",type:"float",editable:!0,accessor:{get:()=>this.endPoint.x,set:t=>{this.endPoint.x=t}}},{name:"endY",type:"float",editable:!0,accessor:{get:()=>this.endPoint.y,set:t=>{this.endPoint.y=t}}},{name:"endZ",type:"float",editable:!0,accessor:{get:()=>this.endPoint.z,set:t=>{this.endPoint.z=t}}},{name:"length",type:"float",editable:!1,accessor:{get:()=>this._geo.length}}]}]}}subGetGripPoints(){const t=new Array;return t.push(this.midPoint),t.push(this.startPoint),t.push(this.endPoint),t}subGetOsnapPoints(t,e,n,r){const s=this.startPoint,o=this.endPoint;switch(t){case b.EndPoint:r.push(s),r.push(o);break;case b.MidPoint:r.push(this.midPoint);break;case b.Nearest:{const a=this._geo.project(e);r.push(a)}break;case b.Perpendicular:{const a=this._geo.perpPoint(e);r.push(a)}break;case b.Tangent:break}}transformBy(t){return this._geo.transform(t),this}subWorldDraw(t){const e=this.startPoint,n=this.endPoint,r=[new _(e.x,e.y,0),new _(n.x,n.y,0)];return t.lines(r)}dxfOutFields(t){return super.dxfOutFields(t),t.writeSubclassMarker("AcDbLine"),t.writePoint3d(10,this.startPoint),t.writePoint3d(11,this.endPoint),this}getOffsetCurves(t){const e=this._geo.offset(t);return[new hi(e.startPoint,e.endPoint)]}getOffsetSideAtPoint(t){const e=this.startPoint,n=this.endPoint;return(n.x-e.x)*(t.y-e.y)-(n.y-e.y)*(t.x-e.x)>=0?1:-1}};hi.typeName="Line";let Ze=hi;var Zo=(i=>(i[i.Top=0]="Top",i[i.Zero=1]="Zero",i[i.Bottom=2]="Bottom",i))(Zo||{}),Ko=(i=>(i[i.HasVertex=1]="HasVertex",i[i.Closed=2]="Closed",i[i.SuppressStartCaps=4]="SuppressStartCaps",i[i.SuppressEndCaps=8]="SuppressEndCaps",i))(Ko||{});const or=class or extends ${get dxfTypeName(){return"MLINE"}constructor(){super(),this._styleName="",this._styleObjectHandle="",this._scale=1,this._justification=1,this._flags=0,this._styleCount=0,this._startPosition=new _,this._normal=new w(0,0,1),this._segments=[]}get styleName(){return this._styleName||this.getDefaultStyleName()}set styleName(t){this._styleName=t}get styleObjectHandle(){return this._styleObjectHandle}set styleObjectHandle(t){this._styleObjectHandle=t}get scale(){return this._scale}set scale(t){this._scale=t}get justification(){return this._justification}set justification(t){this._justification=t}get flags(){return this._flags}set flags(t){this._flags=t}get styleCount(){return this._styleCount}set styleCount(t){this._styleCount=Math.max(0,t)}get startPosition(){return this._startPosition}set startPosition(t){this._startPosition.copy(t)}get normal(){return this._normal}set normal(t){this._normal.copy(t)}get segments(){return this._segments.map(t=>this.cloneSegment(t))}set segments(t){this._segments=t.map(e=>this.createSegment(e)),this.updateHasVertexFlag()}get vertexCount(){return this._segments.length}get closed(){return(this._flags&2)!==0}set closed(t){this.setFlag(2,t)}get suppressStartCaps(){return(this._flags&4)!==0}set suppressStartCaps(t){this.setFlag(4,t)}get suppressEndCaps(){return(this._flags&8)!==0}set suppressEndCaps(t){this.setFlag(8,t)}appendSegment(t){this._segments.push(this.createSegment(t)),this.updateHasVertexFlag()}clearSegments(){this._segments=[],this.updateHasVertexFlag()}get geometricExtents(){const t=this.collectGeometryPoints();return new C().setFromPoints(t)}transformBy(t){return this._startPosition.applyMatrix4(t),this._segments.forEach(e=>{e.position.applyMatrix4(t),this.transformVector(e.direction,t),this.transformVector(e.miterDirection,t)}),this.transformVector(this._normal,t),this}get properties(){return{type:this.type,groups:[this.getGeneralProperties(),{groupName:"mline",properties:[{name:"styleName",type:"string",editable:!0,accessor:{get:()=>this.styleName,set:t=>{this.styleName=t}}},{name:"scale",type:"float",editable:!0,accessor:{get:()=>this.scale,set:t=>{this.scale=t}}},{name:"justification",type:"int",editable:!0,accessor:{get:()=>this.justification,set:t=>{this.justification=t}}},{name:"closed",type:"boolean",editable:!0,accessor:{get:()=>this.closed,set:t=>{this.closed=t}}},{name:"vertexCount",type:"int",editable:!1,accessor:{get:()=>this.vertexCount}}]}]}}subGetOsnapPoints(t,e,n,r){const s=[this._startPosition,...this._segments.map(o=>o.position)];if(s.length!==0)switch(t){case b.EndPoint:r.push(...s);break;case b.MidPoint:case b.Nearest:case b.Perpendicular:{const o=[];for(let a=0;a<s.length-1;a++){const h=[];ge(s[a],s[a+1],t,e,h),o.push(...h)}if(t===b.MidPoint)r.push(...o);else{const a=ht(e,o);a&&r.push(a)}break}}}subWorldDraw(t){if(this._segments.length===0)return;const e=[],n=this.getMLineStyle(),r=this.getRenderableElementCount(n),s=t.subEntityTraits,o=s.color,a=s.rgbColor,h=s.lineType,l=s.fillType,c=s.drawOrder,u=this.createFillArea(n,r);if(u&&(s.color=o,s.rgbColor=a,this.applyFillTraits(n,s),s.fillType={solidFill:!0,patternAngle:0,definitionLines:[]},s.drawOrder=-1,e.push(t.area(u)),s.fillType=l,s.drawOrder=c),r<=0){const g=this.getReferencePath();g.length>=2&&e.push(t.lines(g))}else{for(let g=0;g<r;g++){s.color=o,s.rgbColor=a,s.lineType=h,this.applyStyleElementTraits(n,g,s);const d=this.getElementPath(g,n);d.length>=2&&e.push(t.lines(d))}this.appendStyleDrivenJointAndCapEntities(t,e,n,r,o,a,h)}if(s.color=o,s.rgbColor=a,s.lineType=h,s.fillType=l,s.drawOrder=c,e.length!==0)return e.length===1?e[0]:t.group(e)}dxfOutFields(t){return super.dxfOutFields(t),t.writeSubclassMarker("AcDbMline"),t.writeString(2,this.styleName),t.writeHandle(340,this._styleObjectHandle),t.writeDouble(40,this._scale),t.writeInt16(70,this._justification),t.writeInt16(71,this._flags),t.writeInt16(72,this.vertexCount),t.writeInt16(73,this._styleCount),t.writePoint3d(10,this._startPosition),t.writeVector3d(210,this._normal),this._segments.forEach(e=>{t.writePoint3d(11,e.position),t.writeVector3d(12,e.direction),t.writeVector3d(13,e.miterDirection),e.elements.forEach(n=>{t.writeInt16(74,n.parameterCount),n.parameters.forEach(r=>t.writeDouble(41,r)),t.writeInt16(75,n.fillCount),n.fillParameters.forEach(r=>t.writeDouble(42,r))})}),this}setFlag(t,e){e?this._flags|=t:this._flags&=~t}updateHasVertexFlag(){this.setFlag(1,this._segments.length>0)}createSegment(t){var e;return{position:new _().copy(t.position),direction:new w().copy(t.direction),miterDirection:new w().copy(t.miterDirection),elements:((e=t.elements)==null?void 0:e.map(n=>this.createElement(n)))??[]}}createElement(t){const e=t.parameters?[...t.parameters]:[],n=t.fillParameters?[...t.fillParameters]:[];return{parameterCount:t.parameterCount??e.length,parameters:e,fillCount:t.fillCount??n.length,fillParameters:n}}cloneSegment(t){return{position:t.position.clone(),direction:t.direction.clone(),miterDirection:t.miterDirection.clone(),elements:t.elements.map(e=>({parameterCount:e.parameterCount,parameters:[...e.parameters],fillCount:e.fillCount,fillParameters:[...e.fillParameters]}))}}collectGeometryPoints(){const t=[this._startPosition];if(this._segments.length===0)return t;const e=this.getMLineStyle(),n=this.getRenderableElementCount(e);if(n<=0)return this._segments.forEach(r=>t.push(r.position)),t;for(let r=0;r<n;r++)t.push(...this.getElementPath(r,e));return t}getRenderableElementCount(t){const e=(t==null?void 0:t.elementCount)??0;return Math.max(this._styleCount,e,...this._segments.map(n=>n.elements.length),0)}getReferencePath(){const t=[this._startPosition.clone(),...this._segments.map(e=>e.position.clone())];return this.closePathIfNeeded(t)}getElementPath(t,e){const n=[],r=this._segments[0];return n.push(this.getElementBoundaryPoint("start",r,t,e)),this._segments.forEach(s=>{n.push(this.offsetPoint(s.position,s.miterDirection,this.getElementMiterOffset(s,t,e)))}),n[n.length-1]=this.getElementBoundaryPoint("end",this._segments[this._segments.length-1],t,e),this.closePathIfNeeded(n)}getElementMiterOffset(t,e,n){var s;const r=t.elements[e];return(s=r==null?void 0:r.parameters)!=null&&s.length?r.parameters[0]:this.getStyleElementOffset(e,n)}getElementBoundaryPoint(t,e,n,r){const s=this.getElementMiterOffset(e,n,r),o=t==="start"?this._startPosition:e.position,a=this.offsetPoint(o,e.miterDirection,s);if(!this.shouldApplyCapCutAtSide(t,r))return a;const h=t==="start"?r==null?void 0:r.startAngle:r==null?void 0:r.endAngle,l=this.computeCapCutDistance(s,h,t);if(l===0)return a;const c=t==="start"?this.getStartSegmentDirection():this.getEndSegmentDirection();return c.lengthSq()===0?a:a.add(c.multiplyScalar(l))}shouldApplyCapCutAtSide(t,e){return!e||this.closed?!1:t==="start"?this.suppressStartCaps?!1:(e.flags&112)!==0:this.suppressEndCaps?!1:(e.flags&1792)!==0}computeCapCutDistance(t,e,n){const r=this.normalizeCapAngle(e),s=Math.tan(r);if(Math.abs(s)<1e-6)return 0;const o=t/s;return o}normalizeCapAngle(t){if(t==null||!Number.isFinite(t))return Math.PI/2;let e=t%180;return e<0&&(e+=180),(e<1||e>179)&&(e=90),e*Math.PI/180}getStartSegmentDirection(){const t=this._segments[0],e=new w;return t&&(e.subVectors(t.position,this._startPosition),e.lengthSq()===0&&e.copy(t.direction)),e.lengthSq()>0&&e.normalize(),e}getEndSegmentDirection(){const t=this._segments[this._segments.length-1];if(!t)return new w;const e=new w,n=this._segments.length>1?this._segments[this._segments.length-2].position:this._startPosition;return e.subVectors(t.position,n),e.lengthSq()===0&&e.copy(t.direction),e.lengthSq()>0&&e.normalize(),e}createFillArea(t,e){if(!t||!(t.flags&1)||e<2)return;const n=this.getFillBoundaryElementIndices(e,t);if(!n)return;const r=this.getElementPath(n.outerIndex,t),s=this.getElementPath(n.innerIndex,t),o=this.stripClosingPoint(r),a=this.stripClosingPoint(s);if(o.length<2||a.length<2)return;const h=new Bt;if(this.closed){if(o.length<3||a.length<3)return;h.add(new H(o.map(l=>({x:l.x,y:l.y})),!0)),h.add(new H(a.map(l=>({x:l.x,y:l.y})),!0))}else{const l=[...o,...a.slice().reverse()].map(c=>({x:c.x,y:c.y}));if(l.length<3)return;h.add(new H(l,!0))}return h}getFillBoundaryElementIndices(t,e){let n=Number.POSITIVE_INFINITY,r=Number.NEGATIVE_INFINITY,s=-1,o=-1;for(let a=0;a<t;a++){const h=this.getElementReferenceOffset(a,e);h<n&&(n=h,s=a),h>r&&(r=h,o=a)}if(!(s<0||o<0||s===o))return{outerIndex:o,innerIndex:s}}getElementReferenceOffset(t,e){var r;const n=this._segments[0];if(n){const s=n.elements[t];if((r=s==null?void 0:s.parameters)!=null&&r.length)return s.parameters[0]}return this.getStyleElementOffset(t,e)}getStyleElementOffset(t,e){const n=e==null?void 0:e.elements[t];if(!n)return 0;const r=this.getStyleJustificationShift(e);return(n.offset+r)*this._scale}getStyleJustificationShift(t){const e=(t==null?void 0:t.elements)??[];if(e.length<=0)return 0;let n=Number.POSITIVE_INFINITY,r=Number.NEGATIVE_INFINITY;for(const s of e){const o=s.offset;o<n&&(n=o),o>r&&(r=o)}return this._justification===0?-r:this._justification===2?-n:0}stripClosingPoint(t){if(t.length<2)return t;const e=t[0],n=t[t.length-1],r=1e-9;return Math.abs(e.x-n.x)<=r&&Math.abs(e.y-n.y)<=r&&Math.abs(e.z-n.z)<=r?t.slice(0,-1):t}offsetPoint(t,e,n){if(n===0||e.lengthSq()===0)return t.clone();const r=e.clone().normalize().multiplyScalar(n);return t.clone().add(r)}closePathIfNeeded(t){if(!this.closed||t.length<2)return t;const e=t[0],n=t[t.length-1],r=1e-9;return Math.abs(e.x-n.x)<=r&&Math.abs(e.y-n.y)<=r&&Math.abs(e.z-n.z)<=r||t.push(e.clone()),t}appendStyleDrivenJointAndCapEntities(t,e,n,r,s,o,a){!n||r<2||(e.push(...this.drawMiterJointEntities(t,n,r,s,o,a)),e.push(...this.drawCapEntities(t,n,r,s,o,a)))}drawMiterJointEntities(t,e,n,r,s,o){if(this.closed||this._segments.length<2||!(e.flags&2))return[];const a=[],h=t.subEntityTraits;for(let l=0;l<this._segments.length-1;l++){const c=this._segments[l],u=Array.from({length:n},(g,d)=>{const p=this.getElementMiterOffset(c,d,e);return{elementIndex:d,offset:p,point:this.offsetPoint(c.position,c.miterDirection,p)}}).sort((g,d)=>d.offset-g.offset);for(let g=0;g<u.length-1;g++)this.applyElementDrawTraits(h,r,s,o,e,u[g].elementIndex),a.push(t.lines([u[g].point,u[g+1].point]))}return a}drawCapEntities(t,e,n,r,s,o){if(this.closed||this._segments.length<=0)return[];const a=[];return a.push(...this.drawCapEntitiesForSide(t,"start",e,n,r,s,o)),a.push(...this.drawCapEntitiesForSide(t,"end",e,n,r,s,o)),a}drawCapEntitiesForSide(t,e,n,r,s,o,a){if(e==="start"&&this.suppressStartCaps)return[];if(e==="end"&&this.suppressEndCaps)return[];const h=n.flags,l=e==="start",c=l?(h&16)!==0:(h&256)!==0,u=l?(h&64)!==0:(h&1024)!==0,g=l?(h&32)!==0:(h&512)!==0;if(!c&&!u&&!g)return[];const d=this.getCapElementPoints(e,r,n);if(d.length<2)return[];const p=[],f=t.subEntityTraits;if(c)for(let m=0;m<d.length-1;m++)this.applyElementDrawTraits(f,s,o,a,n,d[m].elementIndex),p.push(t.lines([d[m].point,d[m+1].point]));const y=l?this.getStartSegmentDirection().multiplyScalar(-1):this.getEndSegmentDirection().clone();if(u){const m=this.drawCapArcBetweenElements(t,e,d[0],d[d.length-1],y,f,s,o,a,n);m&&p.push(m)}if(g)for(let m=1;m<Math.floor(d.length/2);m++){const x=d[m],S=d[d.length-1-m];if(!x||!S||x===S)continue;const A=this.drawCapArcBetweenElements(t,e,x,S,y,f,s,o,a,n);A&&p.push(A)}return p}getCapElementPoints(t,e,n){const r=t==="start"?this._segments[0]:this._segments[this._segments.length-1];return r?Array.from({length:e},(s,o)=>({elementIndex:o,offset:this.getElementMiterOffset(r,o,n),point:this.getElementBoundaryPoint(t,r,o,n)})).sort((s,o)=>o.offset-s.offset):[]}drawCapArcBetweenElements(t,e,n,r,s,o,a,h,l,c){const u=e==="end"?r.point:n.point,g=e==="end"?n.point:r.point,d=u.distanceTo(g);if(d<=1e-9||s.lengthSq()===0)return;const f=u.clone().add(new w().subVectors(g,u).multiplyScalar(.5)).add(s.clone().normalize().multiplyScalar(d/2)),y=gi.createByThreePoints(u,g,f);if(y)return this.applyElementDrawTraits(o,a,h,l,c,e==="end"?r.elementIndex:n.elementIndex),t.circularArc(y)}applyElementDrawTraits(t,e,n,r,s,o){t.color=e,t.rgbColor=n,t.lineType=r,this.applyStyleElementTraits(s,o,t)}transformVector(t,e){const n=new _,r=new _(t.x,t.y,t.z);n.applyMatrix4(e),r.applyMatrix4(e),t.set(r.x-n.x,r.y-n.y,r.z-n.z)}getMLineStyle(){var s;const t=this.database.objects.mlineStyle,e=this.styleObjectHandle?t.getIdAt(this.styleObjectHandle):void 0;if(e)return e;const n=this.styleName?t.getAt(this.styleName):void 0;if(n)return n;const r=(s=this.styleName)==null?void 0:s.toUpperCase();if(r)for(const[o,a]of t.entries()){const h=(a.styleName||o).toUpperCase();if(o.toUpperCase()===r||h===r)return a}}applyStyleElementTraits(t,e,n){const r=t==null?void 0:t.elements[e];if(!r)return;const s=this.resolveStyleElementLineType(r.lineType);s&&(n.lineType=s),!(r.color.isByBlock||r.color.isByLayer)&&(n.color=r.color.clone(),n.rgbColor=r.color.RGB??this.rgbColor)}applyFillTraits(t,e){const n=t==null?void 0:t.fillColor;!n||n.isByBlock||n.isByLayer||(e.color=n.clone(),e.rgbColor=n.RGB??this.rgbColor)}resolveStyleElementLineType(t){var l;const e=t==null?void 0:t.trim();if(!e)return;const n=e.toUpperCase(),r=tt.toUpperCase(),s=Ot.toUpperCase();let o="UserSpecified",a=e;if(n===r){o="ByLayer";const c=(l=this.database.tables.layerTable.getAt(this.layer))==null?void 0:l.linetype;a=c&&c.toUpperCase()!==r&&c.toUpperCase()!==s?c:Xt}else n===s&&(o="ByBlock",a=Xt);const h=this.database.tables.linetypeTable.getAt(a);return h?{type:o,...h.linetype}:{type:o,name:a,standardFlag:0,description:"",totalPatternLength:0}}resolveEffectiveProperties(){super.resolveEffectiveProperties(),this._styleName||(this._styleName=this.getDefaultStyleName())}getDefaultStyleName(){try{return this.database.cmlstyle||Tt}catch{return Tt}}};or.typeName="MLine";let en=or;var be=(i=>(i[i.InvisibleLeader=0]="InvisibleLeader",i[i.StraightLeader=1]="StraightLeader",i[i.SplineLeader=2]="SplineLeader",i))(be||{}),te=(i=>(i[i.NoneContent=0]="NoneContent",i[i.BlockContent=1]="BlockContent",i[i.MTextContent=2]="MTextContent",i[i.ToleranceContent=3]="ToleranceContent",i))(te||{}),Qo=(i=>(i[i.Horizontal=0]="Horizontal",i[i.Vertical=1]="Vertical",i))(Qo||{}),Jo=(i=>(i[i.Unknown=0]="Unknown",i[i.Left=1]="Left",i[i.Right=2]="Right",i[i.Top=3]="Top",i[i.Bottom=4]="Bottom",i))(Jo||{});const sc=1,oc=2,ac=4,lc=8,hc=64,cc=128,uc=32768,ar=class ar extends ${get dxfTypeName(){return"MULTILEADER"}constructor(){super(),this._leaders=[],this._leaderLineType=1,this._contentType=0,this._doglegEnabled=!1,this._doglegLength=0,this._doglegVector=new w(1,0,0),this._normal=new w(0,0,1),this._mleaderStyleId="",this._textHeight=2.5,this._textWidth=0,this._textRotation=0,this._textDirection=new w(1,0,0),this._textStyleName="",this._textAttachmentPoint=exports.AcGiMTextAttachmentPoint.MiddleLeft,this._textDrawingDirection=exports.AcGiMTextFlowDirection.LEFT_TO_RIGHT,this._textLineSpacingFactor=1,this._textAttachmentDirection=0,this._arrowheadOverrides=[],this._blockAttributes=[]}get leaders(){return this._leaders.map(t=>this.cloneLeader(t))}get numberOfLeaders(){return this._leaders.length}get leaderLineType(){return this._leaderLineType}set leaderLineType(t){this._leaderLineType=t}get contentType(){return this._contentType}set contentType(t){this._contentType=t}get doglegEnabled(){return this._doglegEnabled}set doglegEnabled(t){this._doglegEnabled=t}get doglegLength(){return this._doglegLength}set doglegLength(t){this._doglegLength=t}get doglegVector(){return this._doglegVector}set doglegVector(t){this._doglegVector.copy(t)}get landingPoint(){return this._landingPoint}set landingPoint(t){this._landingPoint=t?this.createPoint(t):void 0}get normal(){return this._normal}set normal(t){this._normal.copy(t)}get mleaderStyleId(){return this._mleaderStyleId}set mleaderStyleId(t){this._mleaderStyleId=t}get version(){return this._version}set version(t){this._version=t}get leaderStyleId(){return this._leaderStyleId}set leaderStyleId(t){this._leaderStyleId=t}get propertyOverrideFlag(){return this._propertyOverrideFlag}set propertyOverrideFlag(t){this._propertyOverrideFlag=t}get leaderLineColor(){return this._leaderLineColor}set leaderLineColor(t){this._leaderLineColor=t}get leaderLineTypeId(){return this._leaderLineTypeId}set leaderLineTypeId(t){this._leaderLineTypeId=t}get leaderLineWeight(){return this._leaderLineWeight}set leaderLineWeight(t){this._leaderLineWeight=t}get landingEnabled(){return this._landingEnabled}set landingEnabled(t){this._landingEnabled=t}get arrowheadId(){return this._arrowheadId}set arrowheadId(t){this._arrowheadId=t}get arrowheadSize(){return this._arrowheadSize}set arrowheadSize(t){this._arrowheadSize=t}get textStyleId(){return this._textStyleId}set textStyleId(t){this._textStyleId=t}get textLeftAttachmentType(){return this._textLeftAttachmentType}set textLeftAttachmentType(t){this._textLeftAttachmentType=t}get textRightAttachmentType(){return this._textRightAttachmentType}set textRightAttachmentType(t){this._textRightAttachmentType=t}get textAngleType(){return this._textAngleType}set textAngleType(t){this._textAngleType=t}get textAlignmentType(){return this._textAlignmentType}set textAlignmentType(t){this._textAlignmentType=t}get textColor(){return this._textColor}set textColor(t){this._textColor=t}get textFrameEnabled(){return this._textFrameEnabled}set textFrameEnabled(t){this._textFrameEnabled=t}get landingGap(){return this._landingGap}set landingGap(t){this._landingGap=t}get textAttachment(){return this._textAttachment}set textAttachment(t){this._textAttachment=t}get textFlowDirection(){return this._textFlowDirection}set textFlowDirection(t){this._textFlowDirection=t}get blockContentId(){return this._blockContentId}set blockContentId(t){this._blockContentId=t}get blockContentColor(){return this._blockContentColor}set blockContentColor(t){this._blockContentColor=t}get blockContentScale(){return this._blockContentScale}set blockContentScale(t){this._blockContentScale=t}get blockContentRotation(){return this._blockContentRotation}set blockContentRotation(t){this._blockContentRotation=t}get blockContentConnectionType(){return this._blockContentConnectionType}set blockContentConnectionType(t){this._blockContentConnectionType=t}get annotativeScaleEnabled(){return this._annotativeScaleEnabled}set annotativeScaleEnabled(t){this._annotativeScaleEnabled=t}get arrowheadOverrides(){return this._arrowheadOverrides}set arrowheadOverrides(t){this._arrowheadOverrides=t}get blockAttributes(){return this._blockAttributes}set blockAttributes(t){this._blockAttributes=t}get textDirectionNegative(){return this._textDirectionNegative}set textDirectionNegative(t){this._textDirectionNegative=t}get textAlignInIPE(){return this._textAlignInIPE}set textAlignInIPE(t){this._textAlignInIPE=t}get bottomTextAttachmentDirection(){return this._bottomTextAttachmentDirection}set bottomTextAttachmentDirection(t){this._bottomTextAttachmentDirection=t}get topTextAttachmentDirection(){return this._topTextAttachmentDirection}set topTextAttachmentDirection(t){this._topTextAttachmentDirection=t}get contentScale(){return this._contentScale}set contentScale(t){this._contentScale=t}get contentBasePosition(){return this._contentBasePosition}set contentBasePosition(t){this._contentBasePosition=t}get textAnchor(){return this._textAnchor}set textAnchor(t){this._textAnchor=t}get textLineSpacingStyle(){return this._textLineSpacingStyle}set textLineSpacingStyle(t){this._textLineSpacingStyle=t}get textBackgroundColor(){return this._textBackgroundColor}set textBackgroundColor(t){this._textBackgroundColor=t}get textBackgroundScaleFactor(){return this._textBackgroundScaleFactor}set textBackgroundScaleFactor(t){this._textBackgroundScaleFactor=t}get textBackgroundTransparency(){return this._textBackgroundTransparency}set textBackgroundTransparency(t){this._textBackgroundTransparency=t}get textBackgroundColorOn(){return this._textBackgroundColorOn}set textBackgroundColorOn(t){this._textBackgroundColorOn=t}get textFillOn(){return this._textFillOn}set textFillOn(t){this._textFillOn=t}get textColumnType(){return this._textColumnType}set textColumnType(t){this._textColumnType=t}get textUseAutoHeight(){return this._textUseAutoHeight}set textUseAutoHeight(t){this._textUseAutoHeight=t}get textColumnWidth(){return this._textColumnWidth}set textColumnWidth(t){this._textColumnWidth=t}get textColumnGutterWidth(){return this._textColumnGutterWidth}set textColumnGutterWidth(t){this._textColumnGutterWidth=t}get textColumnFlowReversed(){return this._textColumnFlowReversed}set textColumnFlowReversed(t){this._textColumnFlowReversed=t}get textColumnHeight(){return this._textColumnHeight}set textColumnHeight(t){this._textColumnHeight=t}get textUseWordBreak(){return this._textUseWordBreak}set textUseWordBreak(t){this._textUseWordBreak=t}get hasMText(){return this._hasMText}set hasMText(t){this._hasMText=t}get hasBlock(){return this._hasBlock}set hasBlock(t){this._hasBlock=t}get planeOrigin(){return this._planeOrigin}set planeOrigin(t){this._planeOrigin=t}get planeXAxisDirection(){return this._planeXAxisDirection}set planeXAxisDirection(t){this._planeXAxisDirection=t}get planeYAxisDirection(){return this._planeYAxisDirection}set planeYAxisDirection(t){this._planeYAxisDirection=t}get planeNormalReversed(){return this._planeNormalReversed}set planeNormalReversed(t){this._planeNormalReversed=t}get leaderSections(){return this.leaders}get blockContentData(){return this.blockContent}get mtextContent(){return this._mtextContent?{text:this._mtextContent.text,anchorPoint:this._mtextContent.anchorPoint.clone()}:void 0}set mtextContent(t){if(!t){this._mtextContent=void 0,this._contentType===2&&(this._contentType=0);return}this._mtextContent={text:t.text,anchorPoint:this.createPoint(t.anchorPoint)},this._contentType=2}get contents(){var t;return((t=this._mtextContent)==null?void 0:t.text)??""}set contents(t){this._mtextContent?this._mtextContent.text=t:this._mtextContent={text:t,anchorPoint:new _},this._contentType=2}get textLocation(){var t;return(t=this._mtextContent)==null?void 0:t.anchorPoint}set textLocation(t){if(!t){this._mtextContent=void 0;return}this._mtextContent?this._mtextContent.anchorPoint.copy(t):this._mtextContent={text:"",anchorPoint:this.createPoint(t)},this._contentType=2}get textHeight(){return this._textHeight}set textHeight(t){this._textHeight=t}get textWidth(){return this._textWidth}set textWidth(t){this._textWidth=t}get textRotation(){return this._textRotation}set textRotation(t){this._textRotation=t}get textDirection(){return this._textDirection}set textDirection(t){this._textDirection.copy(t)}get textStyleName(){return this._textStyleName}set textStyleName(t){this._textStyleName=t}get textAttachmentPoint(){return this._textAttachmentPoint}set textAttachmentPoint(t){this._textAttachmentPoint=t}get textDrawingDirection(){return this._textDrawingDirection}set textDrawingDirection(t){this._textDrawingDirection=t}get textLineSpacingFactor(){return this._textLineSpacingFactor}set textLineSpacingFactor(t){this._textLineSpacingFactor=t}get textAttachmentDirection(){return this._textAttachmentDirection}set textAttachmentDirection(t){this._textAttachmentDirection=t}get blockContent(){var t,e;return this._blockContent?{blockContentId:this._blockContent.blockContentId,blockHandle:this._blockContent.blockHandle,normal:(t=this._blockContent.normal)==null?void 0:t.clone(),position:(e=this._blockContent.position)==null?void 0:e.clone(),scale:this._blockContent.scale.clone(),rotation:this._blockContent.rotation,color:this._blockContent.color,transformationMatrix:[...this._blockContent.transformationMatrix]}:void 0}set blockContent(t){if(!t){this._blockContent=void 0,this._contentType===1&&(this._contentType=0);return}this._blockContent={blockContentId:t.blockContentId??t.blockHandle,blockHandle:t.blockHandle,normal:t.normal?new w(t.normal):void 0,position:t.position?this.createPoint(t.position):void 0,scale:new w(t.scale??{x:1,y:1,z:1}),rotation:t.rotation??0,color:t.color,transformationMatrix:t.transformationMatrix?[...t.transformationMatrix]:[]},this.blockContentId=this._blockContent.blockContentId,this._contentType=1}addLeader(t={}){var n,r;const e={lastLeaderLinePoint:t.lastLeaderLinePoint?this.createPoint(t.lastLeaderLinePoint):void 0,lastLeaderLinePointSet:t.lastLeaderLinePointSet,landingPoint:t.landingPoint?this.createPoint(t.landingPoint):void 0,doglegVector:t.doglegVector?new w(t.doglegVector):void 0,doglegVectorSet:t.doglegVectorSet,doglegLength:t.doglegLength,breaks:((n=t.breaks)==null?void 0:n.map(s=>({index:s.index,start:this.createPoint(s.start),end:this.createPoint(s.end)})))??[],leaderBranchIndex:t.leaderBranchIndex,directionType:t.directionType,leaderLines:[]};return(r=t.leaderLines)==null||r.forEach(s=>{e.leaderLines.push(this.createLeaderLine(s))}),this._leaders.push(e),this._leaders.length-1}removeLeader(t){return this.checkLeaderIndex(t),this._leaders.splice(t,1),this}addLeaderLine(t,e=[]){return this.checkLeaderIndex(t),this._leaders[t].leaderLines.push(this.createLeaderLine({vertices:e})),this._leaders[t].leaderLines.length-1}appendVertex(t,e,n){return this.getMutableLeaderLine(t,e).vertices.push(this.createPoint(n)),this}setLeaderLineVertices(t,e,n){return this.getMutableLeaderLine(t,e).vertices=n.map(r=>this.createPoint(r)),this}getLeaderLineVertices(t,e){return this.getMutableLeaderLine(t,e).vertices.map(n=>n.clone())}addBreak(t,e,n,r){return this.getMutableLeaderLine(t,e).breaks.push({start:this.createPoint(n),end:this.createPoint(r)}),this}setLandingPoint(t,e){return this.checkLeaderIndex(t),this._leaders[t].landingPoint=e?this.createPoint(e):void 0,this}setDoglegDirection(t,e){return this.checkLeaderIndex(t),this._leaders[t].doglegVector=new w(e),this}setDoglegLength(t,e){return this.checkLeaderIndex(t),this._leaders[t].doglegLength=e,this}get geometricExtents(){const t=this.collectGeometryPoints();return t.length>0?new C().setFromPoints(t):new C}subGetGripPoints(){return this.collectGeometryPoints().map(t=>t.clone())}subGetOsnapPoints(t,e,n,r){var s;if(t===b.Insertion){this.contentBasePosition?r.push(this.contentBasePosition):this._mtextContent?r.push(this._mtextContent.anchorPoint):(s=this._blockContent)!=null&&s.position&&r.push(this._blockContent.position);return}this._leaders.forEach(o=>{o.leaderLines.forEach(a=>{const h=this.getLeaderLineDrawPoints(o,a);if(h.length!==0)switch(t){case b.EndPoint:r.push(...h);break;case b.MidPoint:case b.Nearest:case b.Perpendicular:{const l=[];for(let c=0;c<h.length-1;c++){const u=[];ge(h[c],h[c+1],t,e,u),l.push(...u)}if(t===b.MidPoint)r.push(...l);else{const c=ht(e,l);c&&r.push(c)}break}}})})}transformBy(t){var e,n,r,s,o,a,h,l;return this._leaders.forEach(c=>{var u,g;(u=c.lastLeaderLinePoint)==null||u.applyMatrix4(t),(g=c.landingPoint)==null||g.applyMatrix4(t),c.doglegVector&&this.transformVector(c.doglegVector,t),c.breaks.forEach(d=>{d.start.applyMatrix4(t),d.end.applyMatrix4(t)}),c.leaderLines.forEach(d=>{d.vertices.forEach(p=>p.applyMatrix4(t)),d.breaks.forEach(p=>{p.start.applyMatrix4(t),p.end.applyMatrix4(t)})})}),(e=this._landingPoint)==null||e.applyMatrix4(t),(n=this.contentBasePosition)==null||n.applyMatrix4(t),this.transformVector(this._doglegVector,t),this.transformVector(this._normal,t),(r=this.textAnchor)==null||r.applyMatrix4(t),(s=this._mtextContent)==null||s.anchorPoint.applyMatrix4(t),this.transformVector(this._textDirection,t),(a=(o=this._blockContent)==null?void 0:o.position)==null||a.applyMatrix4(t),(h=this._blockContent)!=null&&h.normal&&this.transformVector(this._blockContent.normal,t),this.blockContentScale&&this.transformVector(this.blockContentScale,t),(l=this.planeOrigin)==null||l.applyMatrix4(t),this.planeXAxisDirection&&this.transformVector(this.planeXAxisDirection,t),this.planeYAxisDirection&&this.transformVector(this.planeYAxisDirection,t),this}get properties(){return{type:this.type,groups:[this.getGeneralProperties(),{groupName:"leader",properties:[{name:"contentType",type:"enum",editable:!0,options:[{label:te[0],value:0},{label:te[1],value:1},{label:te[2],value:2},{label:te[3],value:3}],accessor:{get:()=>this.contentType,set:t=>{this.contentType=t}}},{name:"leaderLineType",type:"enum",editable:!0,options:[{label:be[0],value:0},{label:be[1],value:1},{label:be[2],value:2}],accessor:{get:()=>this.leaderLineType,set:t=>{this.leaderLineType=t}}},{name:"doglegEnabled",type:"boolean",editable:!0,accessor:{get:()=>this.doglegEnabled,set:t=>{this.doglegEnabled=t}}},{name:"doglegLength",type:"float",editable:!0,accessor:{get:()=>this.doglegLength,set:t=>{this.doglegLength=t}}},{name:"leaderCount",type:"int",editable:!1,accessor:{get:()=>this.numberOfLeaders}}]},{groupName:"text",properties:[{name:"contents",type:"string",editable:!0,accessor:{get:()=>this.contents,set:t=>{this.contents=t}}},{name:"textHeight",type:"float",editable:!0,accessor:{get:()=>this.textHeight,set:t=>{this.textHeight=t}}},{name:"textWidth",type:"float",editable:!0,accessor:{get:()=>this.textWidth,set:t=>{this.textWidth=t}}},{name:"textStyleName",type:"string",editable:!0,accessor:{get:()=>this.textStyleName,set:t=>{this.textStyleName=t}}}]}]}}resolveEffectiveProperties(){if(super.resolveEffectiveProperties(),this._mleaderStyleId)return;const t=this.getDefaultMLeaderStyle();t&&(this._mleaderStyleId=t.objectId)}subWorldDraw(t){const e=[],n=t.subEntityTraits,r=n.color,s=n.rgbColor,o=n.lineType,a=n.lineWeight,h=this.getResolvedLeaderLineColor(),l=this.getResolvedLeaderLineStyle(),c=this.getResolvedLeaderLineWeight(),u=this.getResolvedTextColor();this.getResolvedLeaderLineType()!==0&&(this.applyColorTraits(n,h,r,s),this.applyLineTraits(n,l,c),this._leaders.forEach(d=>{d.leaderLines.forEach(f=>{const y=this.getLeaderLineDrawPoints(d,f);if(y.length>0){const m=this.drawLeaderLine(t,y);m&&e.push(m)}});const p=this.getDoglegPoints(d);p&&e.push(t.lines(p))}));const g=this.getRenderableMTextContent();if(this.contentType===2&&g){this.applyColorTraits(n,u,r,s);const d=this.getResolvedTextHeight(),p={text:g.text,height:d,width:this.getMTextRenderWidth(g.text,d),position:g.anchorPoint,rotation:this.textRotation,directionVector:this.textDirection,attachmentPoint:this.textAttachmentPoint,drawingDirection:this.textDrawingDirection,lineSpaceFactor:this.textLineSpacingFactor};e.push(t.mtext(p,this.getTextStyle(),!1))}if(n.color=r,n.rgbColor=s,n.lineType=o,n.lineWeight=a,e.length!==0)return e.length===1?e[0]:t.group(e)}dxfOutFields(t){return super.dxfOutFields(t),t.writeSubclassMarker("AcDbMLeader"),t.writeInt16(170,this.leaderLineType),t.writeBoolean(290,this.doglegEnabled),t.writeDouble(41,this.doglegLength),t.writeInt16(172,this.contentType),t.writeVector3d(210,this.normal),t.writeHandle(340,this.mleaderStyleId),this._landingPoint&&t.writePoint3d(10,this._landingPoint),t.writeVector3d(11,this.doglegVector),this._mtextContent&&(t.writeString(1,this._mtextContent.text),t.writePoint3d(12,this._mtextContent.anchorPoint),t.writeDouble(40,this.textHeight),t.writeDouble(42,this.textWidth),t.writeAngle(50,this.textRotation),t.writeString(7,this.textStyleName)),this._blockContent&&(t.writeHandle(341,this._blockContent.blockContentId??""),this._blockContent.position&&t.writePoint3d(15,this._blockContent.position),t.writeVector3d(16,this._blockContent.scale),t.writeAngle(52,this._blockContent.rotation)),this._leaders.forEach(e=>{e.landingPoint&&t.writePoint3d(110,e.landingPoint),e.doglegVector&&t.writeVector3d(111,e.doglegVector),t.writeDouble(140,e.doglegLength),t.writeInt16(171,e.leaderLines.length),e.leaderLines.forEach(n=>{t.writeInt16(90,n.vertices.length),n.vertices.forEach(r=>t.writePoint3d(10,r))})}),this}createPoint(t){return new _().copy(t)}createLeaderLine(t){var e,n;return{vertices:((e=t.vertices)==null?void 0:e.map(r=>this.createPoint(r)))??[],breakPointIndexes:t.breakPointIndexes?[...t.breakPointIndexes]:[],leaderLineIndex:t.leaderLineIndex,breaks:((n=t.breaks)==null?void 0:n.map(r=>({index:r.index,start:this.createPoint(r.start),end:this.createPoint(r.end)})))??[]}}cloneLeader(t){var e,n,r;return{lastLeaderLinePoint:(e=t.lastLeaderLinePoint)==null?void 0:e.clone(),lastLeaderLinePointSet:t.lastLeaderLinePointSet,landingPoint:(n=t.landingPoint)==null?void 0:n.clone(),doglegVector:(r=t.doglegVector)==null?void 0:r.clone(),doglegVectorSet:t.doglegVectorSet,doglegLength:t.doglegLength,breaks:t.breaks.map(s=>({index:s.index,start:s.start.clone(),end:s.end.clone()})),leaderBranchIndex:t.leaderBranchIndex,directionType:t.directionType,leaderLines:t.leaderLines.map(s=>({vertices:s.vertices.map(o=>o.clone()),breakPointIndexes:[...s.breakPointIndexes],leaderLineIndex:s.leaderLineIndex,breaks:s.breaks.map(o=>({index:o.index,start:o.start.clone(),end:o.end.clone()}))}))}}checkLeaderIndex(t){if(t<0||t>=this._leaders.length)throw new Error("The leader index is out of range!")}getMutableLeaderLine(t,e){this.checkLeaderIndex(t);const n=this._leaders[t].leaderLines[e];if(!n)throw new Error("The leader line index is out of range!");return n}collectGeometryPoints(){var e;const t=[];return this._leaders.forEach(n=>{n.lastLeaderLinePoint&&t.push(n.lastLeaderLinePoint),n.landingPoint&&t.push(n.landingPoint),n.breaks.forEach(s=>t.push(s.start,s.end)),n.leaderLines.forEach(s=>{t.push(...s.vertices),s.breaks.forEach(o=>t.push(o.start,o.end))});const r=this.getDoglegPoints(n);r&&t.push(...r),n.leaderLines.forEach(s=>{const o=this.getArrowheadPoints(this.getLeaderLineDrawPoints(n,s));o&&t.push(...o)})}),this._landingPoint&&t.push(this._landingPoint),this.contentBasePosition&&t.push(this.contentBasePosition),this.textAnchor&&t.push(this.textAnchor),this._mtextContent&&t.push(this._mtextContent.anchorPoint),(e=this._blockContent)!=null&&e.position&&t.push(this._blockContent.position),this.planeOrigin&&t.push(this.planeOrigin),t}getLeaderLineDrawPoints(t,e){if(e.vertices.length>=2)return e.vertices;if(e.vertices.length===0)return[];const n=t.lastLeaderLinePoint??t.landingPoint??this._landingPoint??this.contentBasePosition;return!n||e.vertices[0].equals(n)?e.vertices:[e.vertices[0],n]}getDoglegPoints(t){if(!this.getResolvedDoglegEnabled())return;const e=t.lastLeaderLinePoint??t.landingPoint??this._landingPoint,n=t.doglegVector??this._doglegVector,r=t.doglegLength??this.getResolvedDoglegLength();if(!e||r==null||r===0||n.lengthSq()===0)return;const s=e.clone().add(n.clone().normalize().multiplyScalar(r));return[e,s]}getArrowheadPoints(t){if(!this.isArrowheadVisible()||t.length<2)return;const e=this.getArrowheadFrame(t);if(!e)return;const n=this.getResolvedArrowheadSize(),{tip:r,unit:s}=e,o=r.clone().add(s.clone().multiplyScalar(n)),a=n/6,h=new w(-s.y,s.x,0),l=o.clone().add(h.clone().multiplyScalar(a)),c=o.clone().add(h.clone().multiplyScalar(-a));return[r,l,c,r]}isArrowheadVisible(){const t=this.getResolvedArrowheadId();return(t==null?void 0:t.toUpperCase())==="_NONE"?!1:this.getResolvedArrowheadSize()>0}drawLeaderLine(t,e){const n=[],r=this.getLeaderLinePointsForDraw(e);r.length>=2&&n.push(t.lines(r));const s=this.drawArrowhead(t,e);if(s&&n.push(s),n.length!==0)return n.length===1?n[0]:t.group(n)}getLeaderLinePointsForDraw(t){const e=this.getArrowheadLeaderLineTrimDistance();return e<=0?t:this.trimPolylineStart(t,e)}getArrowheadLeaderLineTrimDistance(){if(!this.isArrowheadVisible())return 0;const t=this.getResolvedArrowheadBlockTableRecord();if(!t)return 0;const e=this.getResolvedArrowheadSize();if(e<=0)return 0;const n=t.origin??_.ORIGIN;let r=n.x;for(const s of t.newIterator()){const o=s.geometricExtents;o.isEmpty()||o.max.x>r&&(r=o.max.x)}return Math.max(0,(r-n.x)*e)}trimPolylineStart(t,e){if(t.length<2||e<=0)return t;let n=e;for(let r=0;r<t.length-1;r++){const s=t[r],o=t[r+1],a=o.distanceTo(s);if(!(a<=0)){if(n<a){const h=new w().subVectors(o,s);return[s.clone().add(h.multiplyScalar(n/a)),...t.slice(r+1)]}n-=a}}return[t[t.length-1]]}drawArrowhead(t,e){if(!this.isArrowheadVisible())return;const n=this.drawArrowheadBlock(t,e);if(n)return n;const r=this.getArrowheadPoints(e);if(!r)return;const s=new Bt;s.add(new H(r,!0));const o=t.subEntityTraits,a=o.fillType;o.fillType={solidFill:!0,patternAngle:0,definitionLines:[]};const h=t.area(s);return o.fillType=a,h}drawArrowheadBlock(t,e){const n=this.getResolvedArrowheadBlockTableRecord();if(!n)return;const r=this.getArrowheadFrame(e);if(!r)return;const{tip:s,unit:o}=r,a=this.getResolvedArrowheadSize(),h=Math.atan2(o.y,o.x),l=n.origin??_.ORIGIN,c=new Y().makeTranslation(-l.x,-l.y,-l.z),u=new Y().makeScale(a,a,a),g=new Y().makeRotationZ(h),d=new Y().makeTranslation(s.x,s.y,s.z),p=new Y().multiplyMatrices(d,g).multiply(u).multiply(c);return Wt.instance.draw(t,n,this.rgbColor,[],!0,p,new w(this.normal))}getArrowheadFrame(t){if(t.length<2)return;const e=t[0],n=t.find(s=>!s.equals(e));if(!n)return;const r=new w().subVectors(n,e);if(r.lengthSq()!==0)return{tip:e,unit:r.normalize()}}getResolvedArrowheadId(){var e;const t=(e=this.getMLeaderStyle())==null?void 0:e.arrowSymbolId;return this.arrowheadId??t}getResolvedArrowheadBlockTableRecord(){const t=this.getResolvedArrowheadId();if(t)return this.database.tables.blockTable.getIdAt(t)}getResolvedArrowheadSize(){const t=this.getMLeaderStyle(),e=(t==null?void 0:t.arrowSize)??(t==null?void 0:t.scale);return this.arrowheadSize??this.contentScale??e??this.getResolvedTextHeight()}getResolvedTextHeight(){var e;const t=(e=this.getMLeaderStyle())==null?void 0:e.textHeight;return this.textHeight>0?this.textHeight:t!=null&&t>0?t:2.5}getRenderableMTextContent(){var n;if(this._mtextContent)return{text:this._mtextContent.text,anchorPoint:this._mtextContent.anchorPoint};const t=(n=this.getMLeaderStyle())==null?void 0:n.defaultMTextContents,e=this.textAnchor??this.contentBasePosition??this._landingPoint;if(!(!t||!e))return{text:t,anchorPoint:e}}getMTextRenderWidth(t,e){if(this._textWidth>0)return this._textWidth;if(!t)return this._textWidth;const n=t.replace(/\\[PpNn]/g,`
|
|
5
|
-
`).replace(/\\[A-Za-z][^;]*;/g,"").replace(/[{}]/g,""),r=Math.max(...n.split(/\r\n|\r|\n/g).map(s=>s.length),1);return Math.max(e,r*e)}transformVector(t,e){const n=new _,r=new _(t.x,t.y,t.z);n.applyMatrix4(e),r.applyMatrix4(e),t.set(r.x-n.x,r.y-n.y,r.z-n.z)}getMLeaderStyle(){const t=this.database.objects.mleaderStyle,e=this.mleaderStyleId||this.leaderStyleId;if(e){const n=t.getIdAt(e);if(n)return n}return this.getDefaultMLeaderStyle()}getDefaultMLeaderStyle(){const t=this.resolveMLeaderStyleByName(this.getDefaultMLeaderStyleName());return t||this.database.objects.mleaderStyle.newIterator().toArray()[0]}resolveMLeaderStyleByName(t){const e=t==null?void 0:t.trim();if(!e)return;const n=this.database.objects.mleaderStyle,r=n.getAt(e);if(r)return r;const s=n.getIdAt(e);if(s)return s;const o=e.toUpperCase();for(const[a,h]of n.entries())if(a.toUpperCase()===o)return h}getDefaultMLeaderStyleName(){try{return this.database.cmleaderstyle||Ct}catch{return Ct}}getResolvedTextStyleName(){var s,o;const t=this.database.tables.textStyleTable,e=(s=this.getMLeaderStyle())==null?void 0:s.textStyleId,n=e?(o=t.getIdAt(e))==null?void 0:o.name:void 0;if(this.textStyleName)return this.textStyleName;const r=this.textStyleId?t.getIdAt(this.textStyleId):void 0;return r!=null&&r.name?r.name:n}getTextStyle(){const t=this.database.tables.textStyleTable.resolveAt(this.getResolvedTextStyleName());if(!t)throw new Error("No valid text style found in text style table.");return t.textStyle}getResolvedLeaderLineColor(){var t;return this.getResolvedComponentColor(this.leaderLineColor,(t=this.getMLeaderStyle())==null?void 0:t.leaderLineColor,oc)}getResolvedLeaderLineType(){var e;const t=(e=this.getMLeaderStyle())==null?void 0:e.leaderLineType;return this.getResolvedStyleDrivenValue(this.leaderLineType,t,sc)}getResolvedLeaderLineTypeId(){var t;return this.getResolvedStyleDrivenValue(this.leaderLineTypeId,(t=this.getMLeaderStyle())==null?void 0:t.leaderLineTypeId,ac)}getResolvedLeaderLineStyle(){const t=this.getResolvedLeaderLineTypeId();if(!t)return;const e=this.database.tables.linetypeTable.getIdAt(t);if(e)return{type:"UserSpecified",...e.linetype}}getResolvedLeaderLineWeight(){var n;const t=(n=this.getMLeaderStyle())==null?void 0:n.leaderLineWeight,e=this.getResolvedStyleDrivenValue(this.leaderLineWeight,t,lc);if(e!=null)return e}getResolvedDoglegEnabled(){var e;const t=(e=this.getMLeaderStyle())==null?void 0:e.doglegEnabled;return this.getResolvedStyleDrivenValue(this.doglegEnabled,t,hc)}getResolvedDoglegLength(){var e;const t=(e=this.getMLeaderStyle())==null?void 0:e.doglegLength;return this.getResolvedStyleDrivenValue(this.doglegLength,t,cc)}getResolvedTextColor(){var t;return this.getResolvedComponentColor(this.textColor,(t=this.getMLeaderStyle())==null?void 0:t.textColor,uc)}getResolvedComponentColor(t,e,n){const r=t!=null?ha(t):void 0;if(!r)return e;const s=this.isPropertyOverrideEnabled(n);return s===!0?r:s===!1?e??r:!r.isByBlock&&!r.isByLayer?r:e??r}getResolvedStyleDrivenValue(t,e,n){const r=this.isPropertyOverrideEnabled(n);return r===!0?t??e:e??t}isPropertyOverrideEnabled(t){if(this.propertyOverrideFlag!=null)return(this.propertyOverrideFlag&t)!==0}applyColorTraits(t,e,n,r){t.color=n,t.rgbColor=r,e&&(t.color=e,t.rgbColor=this.resolveColorToRgb(e))}applyLineTraits(t,e,n){e&&(t.lineType=e),n!=null&&(t.lineWeight=n)}resolveColorToRgb(t){if(t.isByLayer){const e=this.getLayerColor();return(e==null?void 0:e.RGB)!=null?e.RGB:this.rgbColor}return t.isByBlock?this.rgbColor:t.RGB??this.rgbColor}};ar.typeName="MLeader";let nn=ar;const lr=class lr extends ${get dxfTypeName(){return"MTEXT"}constructor(){super(),this._contents="",this._height=0,this._width=0,this._lineSpacingFactor=.25,this._lineSpacingStyle=0,this._backgroundFill=!1,this._backgroundFillColor=13158600,this._backgroundFillTransparency=1,this._backgroundScaleFactor=1,this._rotation=0,this._styleName="",this._location=new _,this._attachmentPoint=exports.AcGiMTextAttachmentPoint.TopLeft,this._direction=new w(1,0,0),this._drawingDirection=exports.AcGiMTextFlowDirection.LEFT_TO_RIGHT}get contents(){return this._contents}set contents(t){this._contents=t}get height(){return this._height}set height(t){this._height=t}get width(){return this._width}set width(t){this._width=t}get rotation(){return this._rotation}set rotation(t){this._rotation=t}get lineSpacingFactor(){return this._lineSpacingFactor}set lineSpacingFactor(t){this._lineSpacingFactor=t}get lineSpacingStyle(){return this._lineSpacingStyle}set lineSpacingStyle(t){this._lineSpacingStyle=t}get backgroundFill(){return this._backgroundFill}set backgroundFill(t){this._backgroundFill=t,this._backgroundFillColor=13158600}get backgroundFillColor(){return this._backgroundFillColor}set backgroundFillColor(t){this._backgroundFillColor=t}get backgroundFillTransparency(){return this._backgroundFillTransparency}set backgroundFillTransparency(t){this._backgroundFillTransparency=t}get backgroundScaleFactor(){return this._backgroundScaleFactor}set backgroundScaleFactor(t){this._backgroundScaleFactor=t}get styleName(){return this._styleName}set styleName(t){this._styleName=t}get location(){return this._location}set location(t){this._location.copy(t)}get attachmentPoint(){return this._attachmentPoint}set attachmentPoint(t){this._attachmentPoint=t}get direction(){return this._direction}set direction(t){this._direction.copy(t)}get drawingDirection(){return this._drawingDirection}set drawingDirection(t){this._drawingDirection=t}get geometricExtents(){const t=new C,e=this.width>0?this.width:Vo(this.contents,this.height),n=$h(this.contents),r=qh(n,this.height,this.lineSpacingFactor);return jo(t,this._location,e,r,this.attachmentPoint,this.rotation,this.direction)}subGetGripPoints(){return[this._location]}subGetOsnapPoints(t,e,n,r){b.Insertion===t&&r.push(this._location)}transformBy(t){const e=this._location.clone(),n=this._direction.lengthSq()>0?this._direction.clone().normalize():new w(Math.cos(this._rotation),Math.sin(this._rotation),0),r=new w(-n.y,n.x,n.z);r.lengthSq()===0&&r.set(0,1,0),r.normalize();const s=e.clone().add(n),o=e.clone().add(r);e.applyMatrix4(t),s.applyMatrix4(t),o.applyMatrix4(t);const a=new w(s).sub(e),h=new w(o).sub(e),l=a.length(),c=h.length();return this._location.copy(e),l>0&&(this._direction.copy(a).normalize(),this._rotation=Math.atan2(this._direction.y,this._direction.x),this._width*=l),c>0&&(this._height*=c),this}get properties(){return{type:this.type,groups:[this.getGeneralProperties(),{groupName:"text",properties:[{name:"contents",type:"string",editable:!0,accessor:{get:()=>this.contents,set:t=>{this.contents=t}}},{name:"styleName",type:"string",editable:!0,accessor:{get:()=>this.styleName,set:t=>{this.styleName=t}}},{name:"attachmentPoint",type:"enum",editable:!0,options:[{label:exports.AcGiMTextAttachmentPoint[1],value:1},{label:exports.AcGiMTextAttachmentPoint[2],value:2},{label:exports.AcGiMTextAttachmentPoint[3],value:3},{label:exports.AcGiMTextAttachmentPoint[4],value:4},{label:exports.AcGiMTextAttachmentPoint[5],value:5},{label:exports.AcGiMTextAttachmentPoint[6],value:6},{label:exports.AcGiMTextAttachmentPoint[7],value:7},{label:exports.AcGiMTextAttachmentPoint[8],value:8},{label:exports.AcGiMTextAttachmentPoint[9],value:9}],accessor:{get:()=>this.attachmentPoint,set:t=>{this.attachmentPoint=t}}},{name:"drawingDirection",type:"enum",editable:!0,options:[{label:exports.AcGiMTextFlowDirection[1],value:1},{label:exports.AcGiMTextFlowDirection[2],value:2},{label:exports.AcGiMTextFlowDirection[3],value:3},{label:exports.AcGiMTextFlowDirection[4],value:4},{label:exports.AcGiMTextFlowDirection[5],value:5}],accessor:{get:()=>this.drawingDirection,set:t=>{this.drawingDirection=t}}},{name:"textHeight",type:"float",editable:!0,accessor:{get:()=>this.height,set:t=>{this.height=t}}},{name:"rotation",type:"float",editable:!0,accessor:{get:()=>this.rotation,set:t=>{this.rotation=t}}},{name:"lineSpacingFactor",type:"float",editable:!0,accessor:{get:()=>this.lineSpacingFactor,set:t=>{this.lineSpacingFactor=t}}},{name:"definedWidth",type:"float",editable:!0,accessor:{get:()=>this.width,set:t=>{this.width=t}}},{name:"directionX",type:"float",editable:!0,accessor:{get:()=>this.direction.x,set:t=>{this.direction.x=t}}},{name:"directionY",type:"float",editable:!0,accessor:{get:()=>this.direction.y,set:t=>{this.direction.y=t}}},{name:"directionZ",type:"float",editable:!0,accessor:{get:()=>this.direction.z,set:t=>{this.direction.z=t}}}]},{groupName:"geometry",properties:[{name:"locationX",type:"float",editable:!0,accessor:{get:()=>this.location.x,set:t=>{this.location.x=t}}},{name:"locationY",type:"float",editable:!0,accessor:{get:()=>this.location.y,set:t=>{this.location.y=t}}},{name:"locationZ",type:"float",editable:!0,accessor:{get:()=>this.location.z,set:t=>{this.location.z=t}}}]}]}}getTextStyle(){const t=this.database.tables.textStyleTable.resolveAt(this.styleName);if(!t)throw new Error("No valid text style found in text style table.");return t.textStyle}subWorldDraw(t,e){const n={text:this.contents,height:this.height,width:this.width,position:this.location,rotation:this.rotation,directionVector:this.direction,attachmentPoint:this.attachmentPoint,drawingDirection:this.drawingDirection,lineSpaceFactor:this.lineSpacingFactor};return t.mtext(n,this.getTextStyle(),e)}encodeMTextContentsForDxf(t){return t.replace(/\r\n|\r|\n/g,"\\P")}dxfOutFields(t){return super.dxfOutFields(t),t.writeSubclassMarker("AcDbMText"),t.writePoint3d(10,this.location),t.writeDouble(40,this.height),t.writeDouble(41,this.width),t.writeString(1,this.encodeMTextContentsForDxf(this.contents)),t.writeString(7,this.styleName),t.writeAngle(50,this.rotation),t.writeVector3d(11,this.direction),t.writeInt16(71,this.attachmentPoint),t.writeInt16(72,this.drawingDirection),t.writeInt16(73,this.lineSpacingStyle),t.writeDouble(44,this.lineSpacingFactor),this.backgroundFill&&(t.writeInt16(90,1),t.writeInt32(63,this.backgroundFillColor),t.writeInt32(441,this.backgroundFillTransparency),t.writeDouble(45,this.backgroundScaleFactor)),this}};lr.typeName="MText";let Ke=lr;const hr=class hr extends q{get dxfTypeName(){return"SPLINE"}constructor(t,e,n,r,s){super(),this.rebuild(t,e,n,r,s)}rebuild(t,e,n,r,s){const o=+(t!==void 0)+ +(e!==void 0)+ +(n!==void 0)+ +(r!==void 0)+ +(s!==void 0);if(o<2||o>5)throw st.ILLEGAL_PARAMETERS;!Array.isArray(e)?this._geo=new Yt(t,e,n,r):this._geo=new Yt(t,e,n,r,s)}get geometricExtents(){return this._geo.box}get closed(){return this._geo.closed}get area(){return this._geo.area}set closed(t){this._geo.closed=t}subGetGripPoints(){return this._geo.controlPoints.map(t=>new _(t.x,t.y,t.z??0))}subGetOsnapPoints(t,e,n,r){switch(t){case b.EndPoint:r.push(this._geo.startPoint),r.push(this._geo.endPoint);break;case b.Node:{const s=new Set;for(const o of this._geo.knots)s.has(o)||(s.add(o),r.push(this._geo.evaluateAt(o)));break}case b.Nearest:r.push(this._geo.nearestPoint(e));break}}transformBy(t){return this._geo.transform(t),this}subWorldDraw(t){const e=this._geo.getPoints(100);return t.lines(e)}dxfOutFields(t){var n;const e=this._geo;super.dxfOutFields(t),t.writeSubclassMarker("AcDbSpline"),t.writeInt16(70,this.closed?1:0),t.writeInt16(71,e.degree),t.writeInt16(72,e.knots.length),t.writeInt16(73,e.controlPoints.length),t.writeInt16(74,((n=e.fitPoints)==null?void 0:n.length)??0);for(const r of e.knots)t.writeDouble(40,r);for(const r of e.weights)t.writeDouble(41,r);for(const r of e.controlPoints)t.writePoint3d(10,r);for(const r of e.fitPoints??[])t.writePoint3d(11,r);return this}getOffsetCurves(t){const e=this.createOffsetCurve(t);return e?[e]:[]}getOffsetSideAtPoint(t){const e=this.collectPath2d(1);return e.length<2?1:lt.from2dPoints(e,this.closed).getOffsetSideAtPoint(t)}createOffsetCurve(t){const{points:e,tangents:n}=this._geo.getOffsetSamplePath2d(t),r=Bl(e,this.closed,t,n);return r?lt.fromGePolyline(r):null}collectPath2d(t){return this._geo.getOffsetSamplePath2d(t).points}};hr.typeName="Spline";let rn=hr;const dc=new w,cr=class cr extends he{get dxfTypeName(){return"ACAD_TABLE"}constructor(t,e,n){super(t),this._attachmentPoint=exports.AcGiMTextAttachmentPoint.TopLeft,this._numColumns=n,this._numRows=e,this._columnWidth=new Array(n),this._rowHeight=new Array(e),this._cells=new Array(e*n)}get attachmentPoint(){return this._attachmentPoint}set attachmentPoint(t){this._attachmentPoint=t}get numRows(){return this._numRows}set numRows(t){this._numRows=t}get numColumns(){return this._numColumns}set numColumns(t){this._numColumns=t}numContents(t,e){return 1}rowHeight(t){return this._rowHeight[t]}setRowHeight(t,e){this._rowHeight[t]=e}setUniformRowHeight(t){this._rowHeight.fill(t)}columnWidth(t){return this._columnWidth[t]}setUniformColumnWidth(t){this._columnWidth.fill(t)}setColumnWidth(t,e){this._columnWidth[t]=e}cell(t){if(!(t<0||t>=this._cells.length))return this._cells[t]}setCell(t,e){this._cells[t]=e}textString(t,e,n){var s;const r=t*this._numColumns+e;return(s=this._cells[r])==null?void 0:s.text}setTextString(t,e,n){const r=t*this._numColumns+e;if(!this._cells[r]){this._cells[r]={text:n,attachmentPoint:this._attachmentPoint,cellType:1,textHeight:0};return}this._cells[r].text=n}isEmpty(t,e){var r;const n=t*this._numColumns+e;return!((r=this._cells[n])!=null&&r.text)}get geometricExtents(){let t;try{t=this.blockTableRecord}catch{t=void 0}if(t&&t.newIterator().count>0){const a=new C;for(const h of t.newIterator())a.union(h.geometricExtents);return a.applyMatrix4(this.blockTransform),a}const e=this._columnWidth.reduce((a,h)=>a+h,0),n=this._rowHeight.reduce((a,h)=>a+h,0),r=new C;if(e===0&&n===0)return r.expandByPoint(this.position),r;const s=new ae;s.setFromAxisAngle(w.Z_AXIS,this.rotation),Kt.compose(this.position,s,this.scaleFactors);const o=[new _(0,0,0),new _(e,0,0),new _(e,-n,0),new _(0,-n,0)];for(const a of o)r.expandByPoint(a.applyMatrix4(Kt));return r}get properties(){return{type:this.type,groups:[this.getGeneralProperties(),{groupName:"table",properties:[{name:"numRows",type:"string",editable:!0,accessor:{get:()=>this.numRows,set:t=>{this.numRows=t}}},{name:"numColumns",type:"float",editable:!0,accessor:{get:()=>this.numColumns,set:t=>{this.numColumns=t}}},{name:"tableWidth",type:"float",editable:!1,accessor:{get:()=>this._columnWidth.reduce((t,e)=>t+e,0)}},{name:"tableHeight",type:"float",editable:!1,accessor:{get:()=>this._rowHeight.reduce((t,e)=>t+e,0)}}]},{groupName:"geometry",properties:[{name:"positionX",type:"float",editable:!0,accessor:{get:()=>this.position.x,set:t=>{this.position.x=t}}},{name:"positionY",type:"float",editable:!0,accessor:{get:()=>this.position.y,set:t=>{this.position.y=t}}},{name:"positionZ",type:"float",editable:!0,accessor:{get:()=>this.position.z,set:t=>{this.position.z=t}}}]}]}}subWorldDraw(t){const e=this.blockTableRecord;if(e&&e.newIterator().count>0){const d=this.drawAnonymousTableBlock(t,e);if(d)return d}let n=0,r=0;const s=new Uint16Array(this.numColumns*this.numRows*8),o=new Float32Array((this.numColumns+1)*(this.numRows+1)*3);let a=0;for(let d=0;d<=this.numRows;d++){n-=d>0?this.rowHeight(d-1):0,r=0;for(let p=0;p<=this.numColumns;p++)r+=p>0?this.columnWidth(p-1):0,o[a++]=r,o[a++]=n,o[a++]=0}const h=[],l=new Array(this.numRows*this.numColumns).fill(!1);r=0,a=0;let c=0;for(let d=0;d<this.numColumns;d++){r+=d>0?this.columnWidth(d-1):0,n=0;for(let p=0;p<this.numRows;p++){n+=p>0?this.rowHeight(p-1):0;const f=this.cell(p*this.numColumns+d);if(c=p*this.numColumns+d,f&&!l[c]){const y=f.borderWidth??1,m=f.borderHeight??1;this.fillVisited(l,c,this.numColumns,y,m),s[a++]=d+p*(this.numColumns+1),s[a++]=d+p*(this.numColumns+1)+y;const x=o[s[a-1]*3]-r,S=d+(p+m)*(this.numColumns+1)+y;d+y==this.numColumns&&(s[a++]=d+p*(this.numColumns+1)+y,s[a++]=S);const A=-o[S*3+1]-n;if(p+m==this.numRows&&(s[a++]=d+(p+m)*(this.numColumns+1)+m,s[a++]=d+(p+m)*(this.numColumns+1)),s[a++]=d+(p+m)*(this.numColumns+1),s[a++]=d+p*(this.numColumns+1),f.text){const L=f.attachmentPoint||this.attachmentPoint||exports.AcGiMTextAttachmentPoint.MiddleCenter,T=this.getTableTextOffset(L,x,A),M={text:f.text,height:this.getCellTextHeight(f,A),width:x,position:dc.set(r,-n,0).clone().add(T),rotation:this.rotation,attachmentPoint:L},X=this.getTextStyle(f);h.push(t.mtext(M,X))}}}}h.push(t.lineSegments(o,3,s));const u=t.group(h),g=new ae;return g.setFromAxisAngle(w.Z_AXIS,this.rotation),Kt.compose(this.position,g,this.scaleFactors),u.applyMatrix(Kt),u}drawAnonymousTableBlock(t,e){const n=[],r=e.newIterator();for(const a of r){let h;a.color.isByBlock&&this.rgbColor?(qr.copy(a.color),a.color.setRGBValue(this.rgbColor),h=a.worldDraw(t),a.color.copy(qr)):h=a.worldDraw(t),h&&(h.objectId=this.objectId,h.ownerId=this.ownerId,h.layerName=this.layer,h.visible=this.visibility&&a.visibility,n.push(h))}const s=t.group(n);s.applyMatrix(this.blockTransform);const o=this.normal;return o&&(o.x!==0||o.y!==0||o.z!==1)&&(Kt.setFromExtrusionDirection(o),s.applyMatrix(Kt)),s}fillVisited(t,e,n,r,s){if(s==1&&r==1)t[e]=!0;else for(let o=0;o<r;++o)for(let a=0;a<s;++a)t[e+o+a*n]=!0}getTextStyle(t){const e=this.database.tables.textStyleTable.resolveAt(t.textStyle);if(!e)throw new Error("No valid text style found in text style table.");return e.textStyle}getTableTextOffset(t,e,n){const r=new w;switch(t){case 1:break;case 2:r.setX(e/2);break;case 3:r.setX(e);break;case 4:r.setY(-n/2);break;case 5:r.set(e/2,-n/2,0);break;case 6:r.set(e,-n/2,0);break;case 7:r.setY(-n);break;case 8:r.set(e/2,-n,0);break;case 9:r.set(e,-n,0);break}return r}getCellTextHeight(t,e){return t.textHeight&&t.textHeight>0?t.textHeight:Math.max(e/2,1)}dxfOutFields(t){var s,o,a,h,l,c,u;super.dxfOutFields(t),t.writeSubclassMarker("AcDbTable");const e=t.version??((s=t.database)==null?void 0:s.version)??((o=this.database)==null?void 0:o.version),n=(e==null?void 0:e.value)!=null?e.value>=27:!1;t.writeInt16(280,this.tableDataVersion),t.writeObjectId(342,this.tableStyleId),t.writeObjectId(343,this.owningBlockRecordId),t.writeVector3d(11,this.horizontalDirection),t.writeUInt32(90,this.tableValueFlag),t.writeUInt32(93,this.tableOverrideFlag),t.writeUInt32(94,this.borderColorOverrideFlag),t.writeUInt32(95,this.borderLineweightOverrideFlag),t.writeUInt32(96,this.borderVisibilityOverrideFlag),t.writeInt16(71,this.attachmentPoint),t.writeInt32(91,this.numRows),t.writeInt32(92,this.numColumns);for(let g=0;g<this.numRows;++g)t.writeDouble(141,this.rowHeight(g));for(let g=0;g<this.numColumns;++g)t.writeDouble(142,this.columnWidth(g));const r=this._cells.length>0?this._cells.length:this.numRows*this.numColumns;for(let g=0;g<r;g++){const d=this._cells[g],p=(d==null?void 0:d.cellType)??(d!=null&&d.blockTableRecordId?2:1);if(t.writeInt16(171,p),t.writeInt16(172,(d==null?void 0:d.flagValue)??0),t.writeInt16(173,(d==null?void 0:d.mergedValue)??0),t.writeBoolean(174,d==null?void 0:d.autoFit),t.writeInt16(175,d==null?void 0:d.borderWidth),t.writeInt16(176,d==null?void 0:d.borderHeight),(d==null?void 0:d.overrideFlag)!=null&&(n?t.writeInt32(91,d.overrideFlag):t.writeInt16(177,d.overrideFlag)),t.writeInt16(178,d==null?void 0:d.virtualEdgeFlag),t.writeAngle(145,d==null?void 0:d.rotation),n&&t.writeInt16(92,d==null?void 0:d.extendedCellFlags),p===1)d!=null&&d.fieldObjetId?t.writeObjectId(344,d.fieldObjetId):this.writeCellText(t,(d==null?void 0:d.text)??"",n,d==null?void 0:d.cellValueBlockBegin);else if(p===2){if(t.writeObjectId(340,d==null?void 0:d.blockTableRecordId),t.writeDouble(144,d==null?void 0:d.blockScale),t.writeInt16(179,d==null?void 0:d.blockAttrNum),(a=d==null?void 0:d.attrDefineId)!=null&&a.length)for(const f of d.attrDefineId)t.writeObjectId(331,f);if((d==null?void 0:d.attrText)!=null)if(Array.isArray(d.attrText))for(const f of d.attrText)t.writeString(300,f);else t.writeString(300,d.attrText)}d!=null&&d.textStyle&&t.writeString(7,d.textStyle),(d==null?void 0:d.textHeight)!=null&&t.writeDouble(140,d.textHeight),(d==null?void 0:d.attachmentPoint)!=null&&t.writeInt16(170,d.attachmentPoint),(d==null?void 0:d.topBorderVisibility)!=null&&t.writeInt16(289,d.topBorderVisibility?1:0),(d==null?void 0:d.rightBorderVisibility)!=null&&t.writeInt16(285,d.rightBorderVisibility?1:0),(d==null?void 0:d.bottomBorderVisibility)!=null&&t.writeInt16(286,d.bottomBorderVisibility?1:0),(d==null?void 0:d.leftBorderVisibility)!=null&&t.writeInt16(288,d.leftBorderVisibility?1:0)}if(t.writeInt16(70,this.flowDirection),t.writeDouble(40,this.horizontalCellMargin),t.writeDouble(41,this.verticalCellMargin),this.suppressTitle!=null&&t.writeInt16(280,this.suppressTitle?1:0),this.suppressHeader!=null&&t.writeInt16(281,this.suppressHeader?1:0),(h=this.cellTypeOverrides)!=null&&h.length)for(const g of this.cellTypeOverrides){t.writeString(7,g.textStyle),t.writeDouble(140,g.textHeight),t.writeInt16(170,g.alignment),t.writeInt16(63,g.backgroundColor),t.writeInt16(64,g.contentColor),g.backgroundColorEnabled!=null&&t.writeInt16(283,g.backgroundColorEnabled?1:0);const d=g.borderLineweights;d&&(t.writeInt16(274,d.top),t.writeInt16(275,d.right),t.writeInt16(276,d.bottom),t.writeInt16(277,d.left),t.writeInt16(278,d.insideHorizontal),t.writeInt16(279,d.insideVertical));const p=g.borderVisibility;p&&(t.writeInt16(284,p.top?1:0),t.writeInt16(285,p.right?1:0),t.writeInt16(286,p.bottom?1:0),t.writeInt16(287,p.left?1:0),t.writeInt16(288,p.insideHorizontal?1:0),t.writeInt16(289,p.insideVertical?1:0))}if(this.tableBorderColors&&(t.writeInt16(63,this.tableBorderColors.left),t.writeInt16(64,this.tableBorderColors.top),t.writeInt16(65,this.tableBorderColors.insideHorizontal),t.writeInt16(66,this.tableBorderColors.bottom),t.writeInt16(68,this.tableBorderColors.insideVertical),t.writeInt16(69,this.tableBorderColors.right)),(l=this.rowDataTypes)!=null&&l.length)for(const g of this.rowDataTypes)t.writeInt16(97,g);if((c=this.rowUnitTypes)!=null&&c.length)for(const g of this.rowUnitTypes)t.writeInt16(98,g);if((u=this.rowFormats)!=null&&u.length)for(const g of this.rowFormats)t.writeString(4,g);return this}writeCellText(t,e,n,r){if(!n){if(e.length<=250){t.writeString(1,e);return}const a=Math.ceil(e.length/250);for(let h=0;h<a;h++){const l=h*250,c=l+250,u=e.slice(l,c);h===a-1?t.writeString(1,u):t.writeString(2,u)}return}if(t.writeString(301,r??"CELL_VALUE"),e.length<=250){t.writeString(302,e),t.writeString(304,"ACVALUE_END");return}const o=Math.ceil(e.length/250);for(let a=0;a<o;a++){const h=a*250,l=h+250,c=e.slice(h,l);a===o-1?t.writeString(302,c):t.writeString(303,c)}t.writeString(304,"ACVALUE_END")}};cr.typeName="Table";let sn=cr;const Kt=new Y,qr=new k,ne=class ne extends q{get dxfTypeName(){return"TRACE"}constructor(){super(),this._elevation=0,this._thickness=1,this._vertices=[new _,new _,new _,new _]}get elevation(){return this._elevation}set elevation(t){this._elevation=t}get closed(){return!0}get area(){return new H(ne.boundaryPointsFromVertices(this._vertices),!0).area}get thickness(){return this._thickness}set thickness(t){this._thickness=t}getPointAt(t){return t<0?this._vertices[0]:t>3?this._vertices[3]:this._vertices[t]}setPointAt(t,e){if(t<0&&this._vertices[0].copy(e),t>3)return this._vertices[3].copy(e);this._vertices[t].copy(e)}get geometricExtents(){return new C().setFromPoints(this._vertices)}subGetGripPoints(){const t=new Array;return t.push(...this._vertices),t}subGetOsnapPoints(t,e,n,r){const s=[this._vertices[0],this._vertices[1],this._vertices[3],this._vertices[2]];Hn(s,!0,t,e,r)}transformBy(t){return this._vertices.forEach(e=>e.applyMatrix4(t)),this._elevation=this._vertices[0].z,this}subWorldDraw(t){const e=new H(ne.boundaryPointsFromVertices(this._vertices),!0),n=new Bt;n.add(e);const r=t.subEntityTraits;return r.fillType={solidFill:!0,patternAngle:0,definitionLines:[]},t.area(n)}dxfOutFields(t){return super.dxfOutFields(t),t.writeSubclassMarker("AcDbTrace"),t.writeDouble(38,this.elevation),t.writeDouble(39,this.thickness),t.writePoint3d(10,this.getPointAt(0)),t.writePoint3d(11,this.getPointAt(1)),t.writePoint3d(12,this.getPointAt(2)),t.writePoint3d(13,this.getPointAt(3)),this}getOffsetCurves(t){const e=this.createOffsetCurve(t);return e?[e]:[]}getOffsetSideAtPoint(t){const e=this.collectBoundary2d();return e.length<2?1:lt.from2dPoints(e,!0).getOffsetSideAtPoint(t)}createOffsetCurve(t){return fi(this.collectBoundary2d(),!0,t)}collectBoundary2d(){return ne.boundaryPointsFromVertices(this._vertices)}static boundaryPointsFromVertices(t){const e=t[0],n=t[1],r=t[2],s=t[3];return[new P(e.x,e.y),new P(n.x,n.y),new P(s.x,s.y),new P(r.x,r.y)]}};ne.typeName="Trace";let on=ne;const ur=class ur extends ${get dxfTypeName(){return"POINT"}constructor(){super(),this._geo=new _}get position(){return this._geo}set position(t){this._geo.set(t.x,t.y,t.z||0)}get geometricExtents(){return new C().expandByPoint(this._geo)}subGetGripPoints(){return[this._geo]}subGetOsnapPoints(t,e,n,r){t===b.Node&&r.push(this._geo)}get properties(){return{type:this.type,groups:[this.getGeneralProperties(),{groupName:"geometry",properties:[{name:"positionX",type:"float",editable:!0,accessor:{get:()=>this.position.x,set:t=>{this.position.x=t}}},{name:"positionY",type:"float",editable:!0,accessor:{get:()=>this.position.y,set:t=>{this.position.y=t}}},{name:"positionZ",type:"float",editable:!0,accessor:{get:()=>this.position.z,set:t=>{this.position.z=t}}}]}]}}transformBy(t){return this._geo.applyMatrix4(t),this}subWorldDraw(t){return t.point(this._geo,{displayMode:this.database.pdmode,displaySize:this.database.pdsize})}dxfOutFields(t){return super.dxfOutFields(t),t.writeSubclassMarker("AcDbPoint"),t.writePoint3d(10,this.position),this}};ur.typeName="Point";let an=ur;var ta=(i=>(i[i.Invalid=0]="Invalid",i[i.Rect=1]="Rect",i[i.Poly=2]="Poly",i))(ta||{}),ea=(i=>(i[i.Show=1]="Show",i[i.ShowUnAligned=2]="ShowUnAligned",i[i.Clip=4]="Clip",i[i.Transparent=8]="Transparent",i))(ea||{});const dr=class dr extends ${get dxfTypeName(){return"IMAGE"}constructor(){super(),this._brightness=50,this._contrast=50,this._fade=0,this._width=0,this._height=0,this._position=new _,this._scale=new j(1,1),this._rotation=0,this._imageSize=new P,this._clipBoundaryType=1,this._clipBoundary=[],this._isClipped=!1,this._isShownClipped=!1,this._isImageShown=!0,this._isImageTransparent=!1,this._imageDefId=""}get brightness(){return this._brightness}set brightness(t){this._brightness=t}get contrast(){return this._contrast}set contrast(t){this._contrast=t}get fade(){return this._fade}set fade(t){this._fade=t}get height(){return this._height}set height(t){this._height=t}get width(){return this._width}set width(t){this._width=t}get position(){return this._position}set position(t){this._position=t}get rotation(){return this._rotation}set rotation(t){this._rotation=t}get scale(){return this._scale}set scale(t){this._scale.copy(t)}get imageSize(){return this._imageSize}set imageSize(t){this._imageSize.copy(t)}get clipBoundaryType(){return this._clipBoundaryType}set clipBoundaryType(t){this._clipBoundaryType=t}get clipBoundary(){return this._clipBoundary}set clipBoundary(t){this._clipBoundary=[],this._clipBoundary.push(...t)}get isClipped(){return this._isClipped}set isClipped(t){this._isClipped=t}get isShownClipped(){return this._isShownClipped}set isShownClipped(t){this._isShownClipped=t}get isImageShown(){return this._isImageShown}set isImageShown(t){this._isImageShown=t}get isImageTransparent(){return this._isImageTransparent}set isImageTransparent(t){this._isImageTransparent=t}get image(){return this._image}set image(t){this._image=t}get imageDefId(){return this._imageDefId}set imageDefId(t){this._imageDefId=t}get imageFileName(){if(this._imageDefId){const t=this.database.objects.imageDefinition.getIdAt(this._imageDefId);if(t)return t.sourceFileName}return""}get geometricExtents(){const t=new C;return t.min.copy(this._position),t.max.set(this._position.x+this._width,this._position.y+this._height,0),t}subGetGripPoints(){return this.boundaryPath()}subGetOsnapPoints(t,e,n,r){if(t===b.Insertion){r.push(this._position);return}const s=this.boundaryPath();if(s.length===0)return;let o=s;if(s.length>1){const a=s[0],h=s[s.length-1];a.x===h.x&&a.y===h.y&&(a.z||0)===(h.z||0)&&(o=s.slice(0,-1))}if(t===b.EndPoint){r.push(...o);return}Hn(o,!0,t,e,r)}subWorldDraw(t){const e=this.boundaryPath();return this._image?t.image(this._image,{boundary:e,roation:this._rotation}):t.lines(e)}transformBy(t){const e=this._width*this._scale.x,n=this._height*this._scale.y,r=new w(e*Math.cos(this._rotation),e*Math.sin(this._rotation),0),s=new w(-n*Math.sin(this._rotation),n*Math.cos(this._rotation),0),o=this._position.clone(),a=this._position.clone().add(r),h=this._position.clone().add(s);o.applyMatrix4(t),a.applyMatrix4(t),h.applyMatrix4(t);const l=new w(a).sub(o),c=new w(h).sub(o);return this._position.copy(o),this._rotation=Math.atan2(l.y,l.x),this._width=l.length(),this._height=c.length(),this._scale.set(1,1),this}boundaryPath(){const t=[];if(this.isClipped&&this._clipBoundary.length>3){const e=this._width,n=this._height,r=new et;r.setFromPoints(this._clipBoundary);const s=new P;s.setX(this._position.x-r.min.x*e),s.setY(this._position.y-r.min.y*n),this._clipBoundary.forEach(o=>{const a=o.x*e+s.x,h=o.y*n+s.y;t.push(new _(a,h,this._position.z))})}else{if(t.push(this._position),t.push(this._position.clone().setX(this._position.x+this._width)),t.push(this._position.clone().set(this._position.x+this._width,this._position.y+this._height,this._position.z)),t.push(this._position.clone().setY(this._position.y+this._height)),this._rotation>0){Zr.copy(t[1]);for(let e=1;e<4;e++)Fe.copy(t[e]),Fe.rotateAround(Zr,this._rotation),t[e].setX(Fe.x),t[e].setY(Fe.y)}t.push(t[0])}return t}dxfOutFields(t){super.dxfOutFields(t),t.writeSubclassMarker("AcDbRasterImage"),t.writePoint3d(10,this.position);const e=this.width*this.scale.x,n=this.height*this.scale.y,r=this._imageSize.x>0&&this._imageSize.y>0?this._imageSize:{x:e,y:n},s=r.x>0?e/r.x:e,o=r.y>0?n/r.y:n,a=Math.cos(this._rotation),h=Math.sin(this._rotation);t.writePoint3d(11,{x:s*a,y:s*h,z:0}),t.writePoint3d(12,{x:-o*h,y:o*a,z:0}),t.writePoint2d(13,r),t.writeObjectId(340,this.imageDefId);const l=(this.isImageShown?1:0)|(this.isShownClipped?4:0)|(this.isImageTransparent?8:0);if(t.writeInt16(70,l),t.writeInt16(280,this.isClipped?1:0),t.writeInt16(281,this.brightness),t.writeInt16(282,this.contrast),t.writeInt16(283,this.fade),t.writeInt16(71,this.clipBoundaryType),this.isClipped){t.writeInt16(91,this.clipBoundary.length);for(const c of this.clipBoundary)t.writePoint2d(14,c)}return this}};dr.typeName="RasterImage";let Qe=dr;const Zr=new P,Fe=new P,ci=class ci extends q{get dxfTypeName(){return"RAY"}constructor(){super(),this._basePoint=new _,this._unitDir=new w}get basePoint(){return this._basePoint}set basePoint(t){this._basePoint.copy(t)}get unitDir(){return this._unitDir}set unitDir(t){this._unitDir.copy(t)}get closed(){return!1}get area(){return 0}get geometricExtents(){const t=new C;return t.expandByPoint(this._unitDir.clone().multiplyScalar(10).add(this._basePoint)),t.expandByPoint(this._unitDir.clone().multiplyScalar(-10).add(this._basePoint)),t}get properties(){return{type:this.type,groups:[this.getGeneralProperties(),{groupName:"geometry",properties:[{name:"basePointX",type:"float",editable:!0,accessor:{get:()=>this.basePoint.x,set:t=>{this.basePoint.x=t}}},{name:"basePointY",type:"float",editable:!0,accessor:{get:()=>this.basePoint.y,set:t=>{this.basePoint.y=t}}},{name:"basePointZ",type:"float",editable:!0,accessor:{get:()=>this.basePoint.z,set:t=>{this.basePoint.z=t}}},{name:"unitDirX",type:"float",editable:!0,accessor:{get:()=>this.unitDir.x,set:t=>{this.unitDir.x=t}}},{name:"unitDirY",type:"float",editable:!0,accessor:{get:()=>this.unitDir.y,set:t=>{this.unitDir.y=t}}},{name:"unitDirZ",type:"float",editable:!0,accessor:{get:()=>this.unitDir.z,set:t=>{this.unitDir.z=t}}}]}]}}subGetGripPoints(){const t=new Array;return t.push(this.basePoint),t}subGetOsnapPoints(t,e,n,r){const s=this.basePoint;if(t===b.EndPoint){r.push(s);return}const o=this.unitDir.clone();if(o.lengthSq()===0)return;o.normalize();const a=new xt(s,s.clone().add(o));switch(t){case b.Nearest:{const h=a.project(e),c=new w(h).sub(s).dot(o);r.push(c<0?s:h);break}case b.Perpendicular:r.push(a.perpPoint(e));break}}transformBy(t){return this._basePoint.applyMatrix4(t),this._unitDir.transformDirection(t),this}subWorldDraw(t){const e=[];return e.push(this.basePoint),e.push(this._unitDir.clone().multiplyScalar(1e6).add(this._basePoint)),t.lines(e)}dxfOutFields(t){return super.dxfOutFields(t),t.writeSubclassMarker("AcDbRay"),t.writePoint3d(10,this.basePoint),t.writeVector3d(11,this.unitDir),this}getOffsetCurves(t){const e=this.createOffsetCurve(t);return e?[e]:[]}getOffsetSideAtPoint(t){const e=this.basePoint,n=this.unitDir,r=Math.hypot(n.x,n.y);return r<=1e-9||(n.x*(t.y-e.y)-n.y*(t.x-e.x))/r>=0?1:-1}createOffsetCurve(t){const e=js(this.basePoint,this.unitDir,t);if(!e)return null;const n=new ci;return n.basePoint=e,n.unitDir=this.unitDir.clone(),n}};ci.typeName="Ray";let ln=ci;const gr=class gr extends ${get dxfTypeName(){return"SHAPE"}constructor(){super(),this._position=new _,this._size=1,this._name="",this._rotation=0,this._widthFactor=1,this._oblique=0,this._thickness=0,this._normal=new w(0,0,1),this._shapeNumber=0,this._styleName=""}get position(){return this._position}set position(t){this._position.copy(t)}get size(){return this._size}set size(t){this._size=t}get name(){return this._name}set name(t){this._name=t}get rotation(){return this._rotation}set rotation(t){this._rotation=t}get widthFactor(){return this._widthFactor}set widthFactor(t){this._widthFactor=t}get oblique(){return this._oblique}set oblique(t){this._oblique=t}get thickness(){return this._thickness}set thickness(t){this._thickness=t}get normal(){return this._normal}set normal(t){this._normal.copy(t)}get shapeNumber(){return this._shapeNumber}set shapeNumber(t){this._shapeNumber=t}get styleId(){var e,n,r;const t=(r=(n=(e=this.database)==null?void 0:e.tables)==null?void 0:n.textStyleTable)==null?void 0:r.resolveAt(this._styleName);return(t==null?void 0:t.objectId)??""}set styleId(t){var n,r,s;const e=(s=(r=(n=this.database)==null?void 0:n.tables)==null?void 0:r.textStyleTable)==null?void 0:s.getIdAt(t);e&&(this._styleName=e.name)}get styleName(){return this._styleName}set styleName(t){this._styleName=t}get isPlanar(){return!0}get geometricExtents(){const t=Math.abs(this._size)/2,e=new C;return e.expandByPoint(this._position),t>0&&(e.expandByPoint(new _(this._position.x-t,this._position.y-t,this._position.z)),e.expandByPoint(new _(this._position.x+t,this._position.y+t,this._position.z))),e}subGetGripPoints(){return[this._position]}subGetOsnapPoints(t,e,n,r){t===b.Insertion&&r.push(this._position)}transformBy(t){const e=new Y().setFromExtrusionDirection(this._normal),n=new Y().makeRotationZ(this._rotation),r=new Y().multiplyMatrices(e,n),s=this._position.clone(),o=new _(this._widthFactor,0,0).applyMatrix4(r).add(s),a=new _(0,1,0).applyMatrix4(r).add(s),h=new _(0,0,1).applyMatrix4(r).add(s);s.applyMatrix4(t),o.applyMatrix4(t),a.applyMatrix4(t),h.applyMatrix4(t);const l=new w(o).sub(s),c=new w(a).sub(s),u=new w(h).sub(s);let g=new w().crossVectors(l,c);g.lengthSq()===0?g=this._normal.clone().transformDirection(t):g.normalize();const p=new Y().setFromExtrusionDirection(g).clone().invert(),f=l.clone().applyMatrix4(p),y=c.length(),m=l.length();this._position.copy(s),this._normal.copy(g),m>0&&(this._rotation=Math.atan2(f.y,f.x)),y>0&&(this._size*=y,m>0&&(this._widthFactor*=m/y));const x=u.length();return x>0&&(this._thickness*=x),this}get properties(){return{type:this.type,groups:[this.getGeneralProperties(),{groupName:"shape",properties:[{name:"name",type:"string",editable:!0,accessor:{get:()=>this.name,set:t=>{this.name=t}}},{name:"size",type:"float",editable:!0,accessor:{get:()=>this.size,set:t=>{this.size=t}}},{name:"rotation",type:"float",editable:!0,accessor:{get:()=>this.rotation,set:t=>{this.rotation=t}}},{name:"widthFactor",type:"float",editable:!0,accessor:{get:()=>this.widthFactor,set:t=>{this.widthFactor=t}}},{name:"oblique",type:"float",editable:!0,accessor:{get:()=>this.oblique,set:t=>{this.oblique=t}}},{name:"shapeNumber",type:"int",editable:!0,accessor:{get:()=>this.shapeNumber,set:t=>{this.shapeNumber=t}}}]},{groupName:"geometry",properties:[{name:"positionX",type:"float",editable:!0,accessor:{get:()=>this.position.x,set:t=>{this.position.x=t}}},{name:"positionY",type:"float",editable:!0,accessor:{get:()=>this.position.y,set:t=>{this.position.y=t}}},{name:"positionZ",type:"float",editable:!0,accessor:{get:()=>this.position.z,set:t=>{this.position.z=t}}}]}]}}subWorldDraw(t,e){const r={...this.getTextStyle(),widthFactor:this.widthFactor,obliqueAngle:this.oblique*180/Math.PI},s={name:this._name.trim()||void 0,shapeNumber:this._shapeNumber!==0?this._shapeNumber:void 0,size:this.size,position:this._position,rotation:this._rotation,directionVector:this._normal,widthFactor:this.widthFactor};return t.shape(s,r,e)}getTextStyle(){const t=this.database.tables.textStyleTable.resolveAt(this.styleName);if(!t)throw new Error("No valid text style found in text style table.");return t.textStyle}dxfOutFields(t){return super.dxfOutFields(t),t.writeSubclassMarker("AcDbShape"),t.writePoint3d(10,this.position),t.writeDouble(40,this.size),t.writeString(2,this.name),t.writeAngle(50,this.rotation),t.writeDouble(41,this.widthFactor),t.writeAngle(51,this.oblique),t.writeDouble(39,this.thickness),this._styleName&&t.writeString(3,this._styleName),t.writeVector3d(210,this.normal),this}};gr.typeName="Shape";let hn=gr;const pr=class pr extends ${get dxfTypeName(){return"VIEWPORT"}constructor(){super(),this._centerPoint=new _,this._height=0,this._width=0,this._viewCenter=new _,this._viewHeight=0,this._number=-1}get number(){return this._number}set number(t){this._number=t}get centerPoint(){return this._centerPoint}set centerPoint(t){this._centerPoint=t}get height(){return this._height}set height(t){this._height=t}get width(){return this._width}set width(t){this._width=t}get viewCenter(){return this._viewCenter}set viewCenter(t){this._viewCenter=t}get viewHeight(){return this._viewHeight}set viewHeight(t){this._viewHeight=t}get geometricExtents(){const t=this._width/2,e=this._height/2,n=new C;return n.expandByPoint(new _(this._centerPoint.x-t,this._centerPoint.y-e,this._centerPoint.z)),n.expandByPoint(new _(this._centerPoint.x+t,this._centerPoint.y+e,this._centerPoint.z)),n}transformBy(t){const e=this._centerPoint.clone(),n=this._centerPoint.clone().add(new w(this._width,0,0)),r=this._centerPoint.clone().add(new w(0,this._height,0));e.applyMatrix4(t),n.applyMatrix4(t),r.applyMatrix4(t);const s=new w(n).sub(e),o=new w(r).sub(e),a=this._height!==0?o.length()/this._height:1;return this._centerPoint.copy(e),this._width=s.length(),this._height=o.length(),this._viewHeight*=a,this}subWorldDraw(t){if(this._number>1&&this.ownerId!=this.database.tables.blockTable.modelSpace.objectId){const e=this.toGiViewport();return t.group(this.createViewportRect(e,t))}}toGiViewport(){const t=new Co;return t.id=this.objectId,t.groupId=this.ownerId,t.number=this.number,t.centerPoint=this.centerPoint,t.width=this.width,t.height=this.height,t.viewHeight=this.viewHeight,t.viewCenter=this.viewCenter,t}createViewportRect(t,e){const n=[];return n.push(e.lines([new _(t.centerPoint.x-t.width/2,t.centerPoint.y-t.height/2,0),new _(t.centerPoint.x+t.width/2,t.centerPoint.y-t.height/2,0)])),n.push(e.lines([new _(t.centerPoint.x+t.width/2,t.centerPoint.y-t.height/2,0),new _(t.centerPoint.x+t.width/2,t.centerPoint.y+t.height/2,0)])),n.push(e.lines([new _(t.centerPoint.x+t.width/2,t.centerPoint.y+t.height/2,0),new _(t.centerPoint.x-t.width/2,t.centerPoint.y+t.height/2,0)])),n.push(e.lines([new _(t.centerPoint.x-t.width/2,t.centerPoint.y+t.height/2,0),new _(t.centerPoint.x-t.width/2,t.centerPoint.y-t.height/2,0)])),n}dxfOutFields(t){return super.dxfOutFields(t),t.writeSubclassMarker("AcDbViewport"),t.writePoint3d(10,this.centerPoint),t.writeDouble(40,this.height),t.writeDouble(41,this.width),t.writePoint3d(12,this.viewCenter),t.writeDouble(45,this.viewHeight),t.writeInt32(69,this.number),this}};pr.typeName="Viewport";let cn=pr;const fr=class fr extends Qe{get dxfTypeName(){return"WIPEOUT"}subWorldDraw(t){const e=this.boundaryPath(),n=new Bt;return n.add(new H(e)),t.area(n)}dxfOutFields(t){return super.dxfOutFields(t),this}};fr.typeName="Wipeout";let un=fr;const ui=class ui extends q{get dxfTypeName(){return"XLINE"}constructor(){super(),this._basePoint=new _,this._unitDir=new w}get basePoint(){return this._basePoint}set basePoint(t){this._basePoint.copy(t)}get unitDir(){return this._unitDir}set unitDir(t){this._unitDir.copy(t)}get closed(){return!1}get area(){return 0}get geometricExtents(){const t=new C;return t.expandByPoint(this._unitDir.clone().multiplyScalar(10).add(this._basePoint)),t.expandByPoint(this._unitDir.clone().multiplyScalar(-10).add(this._basePoint)),t}get properties(){return{type:this.type,groups:[this.getGeneralProperties(),{groupName:"geometry",properties:[{name:"basePointX",type:"float",editable:!0,accessor:{get:()=>this.basePoint.x,set:t=>{this.basePoint.x=t}}},{name:"basePointY",type:"float",editable:!0,accessor:{get:()=>this.basePoint.y,set:t=>{this.basePoint.y=t}}},{name:"basePointZ",type:"float",editable:!0,accessor:{get:()=>this.basePoint.z,set:t=>{this.basePoint.z=t}}},{name:"unitDirX",type:"float",editable:!0,accessor:{get:()=>this.unitDir.x,set:t=>{this.unitDir.x=t}}},{name:"unitDirY",type:"float",editable:!0,accessor:{get:()=>this.unitDir.y,set:t=>{this.unitDir.y=t}}},{name:"unitDirZ",type:"float",editable:!0,accessor:{get:()=>this.unitDir.z,set:t=>{this.unitDir.z=t}}}]}]}}subGetGripPoints(){const t=new Array;return t.push(this.basePoint),t}subGetOsnapPoints(t,e,n,r){const s=this.basePoint;if(t===b.EndPoint){r.push(s);return}const o=this.unitDir.clone();if(o.lengthSq()===0)return;o.normalize();const a=new xt(s,s.clone().add(o));switch(t){case b.Nearest:r.push(a.project(e));break;case b.Perpendicular:r.push(a.perpPoint(e));break}}transformBy(t){return this._basePoint.applyMatrix4(t),this._unitDir.transformDirection(t),this}subWorldDraw(t){const e=[];return e.push(this._unitDir.clone().multiplyScalar(-1e6).add(this._basePoint)),e.push(this._unitDir.clone().multiplyScalar(1e6).add(this._basePoint)),t.lines(e)}dxfOutFields(t){return super.dxfOutFields(t),t.writeSubclassMarker("AcDbXline"),t.writePoint3d(10,this.basePoint),t.writeVector3d(11,this.unitDir),this}getOffsetCurves(t){const e=this.createOffsetCurve(t);return e?[e]:[]}getOffsetSideAtPoint(t){const e=this.basePoint,n=this.unitDir,r=Math.hypot(n.x,n.y);return r<=1e-9||(n.x*(t.y-e.y)-n.y*(t.x-e.x))/r>=0?1:-1}createOffsetCurve(t){const e=js(this.basePoint,this.unitDir,t);if(!e)return null;const n=new ui;return n.basePoint=e,n.unitDir=this.unitDir.clone(),n}};ui.typeName="Xline";let dn=ui;class ia{constructor(t){this.position=new _(t.x,t.y,t.z||0)}}const yr=class yr extends q{get dxfTypeName(){return"POLYLINE"}constructor(t,e,n,r=!1,s=!1){super(),this._mCount=t,this._nCount=e,this._closedM=r,this._closedN=s,this._vertices=n.map(o=>new ia(o))}get mCount(){return this._mCount}get nCount(){return this._nCount}get closedM(){return this._closedM}get closedN(){return this._closedN}get closed(){return this._closedM}get area(){return 0}set closed(t){this._closedM=t}get numberOfVertices(){return this._vertices.length}getVertexAt(t){if(t<0||t>=this._vertices.length)throw new Error("Vertex index out of bounds");return this._vertices[t]}getVertexAtMN(t,e){const n=t*this._nCount+e;return this.getVertexAt(n)}get geometricExtents(){if(this._vertices.length===0)return new C(new _(0,0,0),new _(0,0,0));let t=Number.MAX_VALUE,e=Number.MAX_VALUE,n=Number.MAX_VALUE,r=-Number.MAX_VALUE,s=-Number.MAX_VALUE,o=-Number.MAX_VALUE;return this._vertices.forEach(a=>{t=Math.min(t,a.position.x),e=Math.min(e,a.position.y),n=Math.min(n,a.position.z),r=Math.max(r,a.position.x),s=Math.max(s,a.position.y),o=Math.max(o,a.position.z)}),new C(new _(t,e,n),new _(r,s,o))}subGetGripPoints(){const t=new Array;return this._vertices.forEach(e=>{t.push(e.position)}),t}subGetOsnapPoints(t,e,n,r){switch(t){case b.EndPoint:this._vertices.forEach(s=>{r.push(s.position)});break}}transformBy(t){return this._vertices.forEach(e=>{e.position.applyMatrix4(t)}),this}get properties(){return{type:this.type,groups:[this.getGeneralProperties(),{groupName:"geometry",properties:[{name:"mCount",type:"float",editable:!1,accessor:{get:()=>this._mCount}},{name:"nCount",type:"float",editable:!1,accessor:{get:()=>this._nCount}},{name:"vertices",type:"array",editable:!1,itemSchema:{properties:[{name:"x",type:"float",editable:!0},{name:"y",type:"float",editable:!0},{name:"z",type:"float",editable:!0}]},accessor:{get:()=>this._vertices.map(t=>({x:t.position.x,y:t.position.y,z:t.position.z}))}}]},{groupName:"others",properties:[{name:"closedM",type:"boolean",editable:!0,accessor:{get:()=>this._closedM,set:t=>{this._closedM=t}}},{name:"closedN",type:"boolean",editable:!0,accessor:{get:()=>this._closedN,set:t=>{this._closedN=t}}}]}]}}subWorldDraw(t){const e=[];for(let n=0;n<this._mCount;n++)for(let r=0;r<this._nCount;r++){const s=this.getVertexAtMN(n,r);let o=r+1;if(o>=this._nCount)if(this._closedN)o=0;else continue;const a=this.getVertexAtMN(n,o);e.push(s.position),e.push(a.position)}for(let n=0;n<this._nCount;n++)for(let r=0;r<this._mCount;r++){const s=this.getVertexAtMN(r,n);let o=r+1;if(o>=this._mCount)if(this._closedM)o=0;else continue;const a=this.getVertexAtMN(o,n);e.push(s.position),e.push(a.position)}return t.lines(e)}dxfOutFields(t){super.dxfOutFields(t),t.writeSubclassMarker("AcDbPolygonMesh");let e=16;return this._closedM&&(e|=1),this._closedN&&(e|=32),t.writeInt16(66,1),t.writeInt16(70,e),t.writeInt32(71,this._mCount),t.writeInt32(72,this._nCount),this}dxfOut(t,e=!1){super.dxfOut(t,e);for(let n=0;n<this.numberOfVertices;n++){const r=this.getVertexAt(n);t.writeStart("VERTEX"),t.writeHandle(5,this.database.generateHandle()),t.writeObjectId(330,this.objectId),t.writeSubclassMarker("AcDbEntity"),t.writeSubclassMarker("AcDbVertex"),t.writeSubclassMarker("AcDbPolygonMeshVertex"),t.writePoint3d(10,r.position),t.writeInt16(70,16)}return t.writeStart("SEQEND"),t.writeHandle(5,this.database.generateHandle()),t.writeObjectId(330,this.objectId),t.writeSubclassMarker("AcDbEntity"),this}getOffsetCurves(t){const e=this.createOffsetCurve(t);return e?[e]:[]}getOffsetSideAtPoint(t){const e=this.collectBoundary2d();return e.length<2?1:lt.from2dPoints(e,this.isBoundaryClosed()).getOffsetSideAtPoint(t)}createOffsetCurve(t){return fi(this.collectBoundary2d(),this.isBoundaryClosed(),t)}isBoundaryClosed(){return this._closedM&&this._closedN&&this._mCount>1&&this._nCount>1}collectBoundary2d(){const t=this._mCount,e=this._nCount;if(t<1||e<1)return[];const n=[],r=(s,o)=>{const a=this.getVertexAtMN(s,o).position;n.push(new P(a.x,a.y))};if(t===1){for(let s=0;s<e;s++)r(0,s);return n}if(e===1){for(let s=0;s<t;s++)r(s,0);return n}for(let s=0;s<e;s++)r(0,s);for(let s=1;s<t;s++)r(s,e-1);for(let s=e-2;s>=0;s--)r(t-1,s);for(let s=t-2;s>=1;s--)r(s,0);return n}};yr.typeName="PolygonMesh";let gn=yr;class na{constructor(t){this.position=new _(t.x,t.y,t.z||0)}}class ra{constructor(t){this.vertexIndices=t}}const mr=class mr extends q{get dxfTypeName(){return"POLYLINE"}constructor(t,e){super(),this._vertices=t.map(n=>new na(n)),this._faces=e.map(n=>new ra(n))}get numberOfVertices(){return this._vertices.length}get numberOfFaces(){return this._faces.length}get closed(){return!1}get area(){return 0}set closed(t){}getVertexAt(t){if(t<0||t>=this._vertices.length)throw new Error("Vertex index out of bounds");return this._vertices[t]}getFaceAt(t){if(t<0||t>=this._faces.length)throw new Error("Face index out of bounds");return this._faces[t]}get geometricExtents(){if(this._vertices.length===0)return new C(new _(0,0,0),new _(0,0,0));let t=Number.MAX_VALUE,e=Number.MAX_VALUE,n=Number.MAX_VALUE,r=-Number.MAX_VALUE,s=-Number.MAX_VALUE,o=-Number.MAX_VALUE;return this._vertices.forEach(a=>{t=Math.min(t,a.position.x),e=Math.min(e,a.position.y),n=Math.min(n,a.position.z),r=Math.max(r,a.position.x),s=Math.max(s,a.position.y),o=Math.max(o,a.position.z)}),new C(new _(t,e,n),new _(r,s,o))}subGetGripPoints(){const t=new Array;return this._vertices.forEach(e=>{t.push(e.position)}),t}subGetOsnapPoints(t,e,n,r){switch(t){case b.EndPoint:this._vertices.forEach(s=>{r.push(s.position)});break}}transformBy(t){return this._vertices.forEach(e=>{e.position.applyMatrix4(t)}),this}get properties(){return{type:this.type,groups:[this.getGeneralProperties(),{groupName:"geometry",properties:[{name:"vertices",type:"array",editable:!1,itemSchema:{properties:[{name:"x",type:"float",editable:!0},{name:"y",type:"float",editable:!0},{name:"z",type:"float",editable:!0}]},accessor:{get:()=>this._vertices.map(t=>({x:t.position.x,y:t.position.y,z:t.position.z}))}},{name:"faces",type:"array",editable:!1,itemSchema:{properties:[{name:"vertexIndices",type:"array",editable:!1,itemSchema:{properties:[{name:"index",type:"int",editable:!1}]}}]},accessor:{get:()=>this._faces.map(t=>({vertexIndices:t.vertexIndices}))}}]}]}}subWorldDraw(t){const e=[];return this._faces.forEach(n=>{const r=[];if(n.vertexIndices.forEach(s=>{const o=Math.abs(s)-1;o>=0&&o<this._vertices.length&&r.push(this._vertices[o].position)}),r.length>=3)for(let s=0;s<r.length;s++){const o=r[s],a=r[(s+1)%r.length];e.push(o),e.push(a)}}),t.lines(e)}dxfOutFields(t){super.dxfOutFields(t),t.writeSubclassMarker("AcDbPolyFaceMesh");const e=64;return t.writeInt16(66,1),t.writeInt16(70,e),this}dxfOut(t,e=!1){super.dxfOut(t,e);for(let n=0;n<this.numberOfVertices;n++){const r=this.getVertexAt(n);t.writeStart("VERTEX"),t.writeHandle(5,this.database.generateHandle()),t.writeObjectId(330,this.objectId),t.writeSubclassMarker("AcDbEntity"),t.writeSubclassMarker("AcDbVertex"),t.writeSubclassMarker("AcDbPolyFaceMeshVertex"),t.writePoint3d(10,r.position),t.writeInt16(70,64)}for(let n=0;n<this.numberOfFaces;n++){const r=this.getFaceAt(n);t.writeStart("VERTEX"),t.writeHandle(5,this.database.generateHandle()),t.writeObjectId(330,this.objectId),t.writeSubclassMarker("AcDbEntity"),t.writeSubclassMarker("AcDbVertex"),t.writeSubclassMarker("AcDbPolyFaceMeshVertex"),t.writeInt16(70,128),r.vertexIndices.forEach((s,o)=>{t.writeInt32(10+o,s)})}return t.writeStart("SEQEND"),t.writeHandle(5,this.database.generateHandle()),t.writeObjectId(330,this.objectId),t.writeSubclassMarker("AcDbEntity"),this}getOffsetCurves(t){const e=this.createOffsetCurve(t);return e?[e]:[]}getOffsetSideAtPoint(t){const e=this.collectLargestFaceBoundary2d();return e.length<2?1:lt.from2dPoints(e,!0).getOffsetSideAtPoint(t)}createOffsetCurve(t){return fi(this.collectLargestFaceBoundary2d(),!0,t)}collectLargestFaceBoundary2d(){let t=[];for(const e of this._faces){const n=e.vertexIndices.filter(r=>r>=0);n.length>t.length&&(t=n)}return t.length<2?this._vertices.map(e=>new P(e.position.x,e.position.y)):t.map(e=>{const n=this.getVertexAt(e).position;return new P(n.x,n.y)})}};mr.typeName="PolyFaceMesh";let pn=mr;var Je=(i=>(i[i.AtLeast=1]="AtLeast",i[i.Exactly=2]="Exactly",i))(Je||{});const _r=class _r extends ${get dxfTypeName(){return"DIMENSION"}constructor(){super(),this._dimBlockId=null,this._dimBlockPosition=new _,this._dimensionStyleName=null,this._dimensionText=null,this._textLineSpacingFactor=1,this._textLineSpacingStyle=1,this._textPosition=new _,this._textRotation=0,this._normal=new w(0,0,1)}get dimBlockId(){return this._dimBlockId}set dimBlockId(t){this._dimBlockId=t}get dimBlockPosition(){return this._dimBlockPosition}set dimBlockPosition(t){this._dimBlockPosition.copy(t)}get dimensionStyleName(){return this._dimensionStyleName}set dimensionStyleName(t){this._dimensionStyleName=t,this._dimStyle=void 0}get dimensionStyle(){if(this._dimStyle==null){let t;this.dimensionStyleName&&(t=this.database.tables.dimStyleTable.getAt(this.dimensionStyleName)),t==null&&(t=new le),this._dimStyle=t}return this._dimStyle}get dimensionText(){return this._dimensionText}set dimensionText(t){this._dimensionText=t}get measurement(){return this._measurement}set measurement(t){this._measurement=t}get textLineSpacingFactor(){return this._textLineSpacingFactor}set textLineSpacingFactor(t){this._textLineSpacingFactor=t}get textLineSpacingStyle(){return this._textLineSpacingStyle}set textLineSpacingStyle(t){this._textLineSpacingStyle=t}get textPosition(){return this._textPosition}set textPosition(t){this._textPosition.copy(t)}get textRotation(){return this._textRotation}set textRotation(t){this._textRotation=t}get normal(){return this._normal}set normal(t){this._normal.copy(t).normalize()}get properties(){return this.getBaseProperties()}getBaseProperties(){return{type:this.type,groups:[this.getGeneralProperties(),this.getDimensionProperties()]}}transformBy(t){const e=this._textPosition.clone(),n=this._textPosition.clone().add(new w(Math.cos(this._textRotation),Math.sin(this._textRotation),0));this._dimBlockPosition.applyMatrix4(t),this._textPosition.applyMatrix4(t),this._normal.transformDirection(t),e.applyMatrix4(t),n.applyMatrix4(t);const r=new w(n).sub(e);return r.lengthSq()>0&&(this._textRotation=Math.atan2(r.y,r.x)),this.subTransformBy(t),this}subGetOsnapPoints(t,e,n,r,s){const o=this.getDimBlockTableRecord();if(!o)return;const a=this.getFullDimBlockTransform(),h=new _(e).applyMatrix4(a.clone().invert()),l=new _(n).applyMatrix4(a.clone().invert()),c=(u,g)=>{const d=[];u.subGetOsnapPoints(t,h,l,d,g,a),u instanceof he?d.forEach(p=>r.push(p.clone())):d.forEach(p=>r.push(new _(p).applyMatrix4(a)))};if(s){const u=o.getIdAt(s);if(u&&(c(u,s),r.length>0))return}for(const u of o.newIterator())c(u)}subWorldDraw(t){const e=this.getDimBlockTableRecord();if(e){const r=this.computeDimBlockTransform();return Wt.instance.draw(t,e,this.rgbColor,[],!1,r,this._normal)}return t.group([])}getDimBlockGeometricExtents(){const t=new C,e=this.getDimBlockTableRecord();if(!e)return t;for(const n of e.newIterator())t.union(n.geometricExtents);return t.applyMatrix4(this.getFullDimBlockTransform()),t}getGeometricExtentsFromDimBlockOrPoints(t){const e=this.getDimBlockGeometricExtents();if(!e.isEmpty())return e;const n=new C;for(const r of t)n.expandByPoint(r);return this.hasExplicitTextPosition()&&n.expandByPoint(this.textPosition),n}hasExplicitTextPosition(){const{x:t,y:e,z:n}=this.textPosition;return t!==0||e!==0||n!==0}getDimBlockTableRecord(){return this.dimBlockId?this.database.tables.blockTable.getAt(this.dimBlockId):void 0}getDimensionProperties(){return{groupName:"dimension",properties:[this.createProperty("dimensionStyleName","string",()=>this.dimensionStyleName??"",t=>{this.dimensionStyleName=t.trim()===""?null:t}),this.createProperty("dimensionText","string",()=>this.dimensionText??"",t=>{this.dimensionText=t}),this.createProperty("measurement","float",()=>this.getMeasurementPropertyValue()),this.createProperty("dimBlockId","string",()=>this.dimBlockId??""),...this.createPoint3dProperties("dimBlockPosition",()=>this.dimBlockPosition),...this.createPoint3dProperties("textPosition",()=>this.textPosition),this.createProperty("textRotation","float",()=>this.textRotation,t=>{this.textRotation=t}),this.createProperty("textLineSpacingFactor","float",()=>this.textLineSpacingFactor,t=>{this.textLineSpacingFactor=t}),this.createProperty("textLineSpacingStyle","enum",()=>this.textLineSpacingStyle,t=>{this.textLineSpacingStyle=t},[{label:Je[1],value:1},{label:Je[2],value:2}]),...this.createPoint3dProperties("normal",()=>this.normal)]}}createProperty(t,e,n,r,s){return{name:t,type:e,editable:r!=null,options:s,accessor:r?{get:n,set:r}:{get:n}}}createPoint3dProperties(t,e){return[this.createProperty(`${t}X`,"float",()=>e().x,n=>{e().x=n}),this.createProperty(`${t}Y`,"float",()=>e().y,n=>{e().y=n}),this.createProperty(`${t}Z`,"float",()=>e().z,n=>{e().z=n})]}getMeasurementPropertyValue(){return this.measurement}getFullDimBlockTransform(){const t=this.computeDimBlockTransform();if(this._normal.x===0&&this._normal.y===0&&this._normal.z===1)return t;const e=new Y().setFromExtrusionDirection(this._normal);return new Y().multiplyMatrices(e,t)}get arrowScaleFactor(){return this.dimensionStyle.dimasz}get firstArrowStyle(){return{type:this.firstArrowType,scale:this.arrowScaleFactor,appended:this.isAppendArrow,visible:this.dimensionStyle.dimse1==0}}get secondArrowStyle(){return{type:this.secondArrowType,scale:this.arrowScaleFactor,appended:this.isAppendArrow,visible:this.dimensionStyle.dimse2==0}}get isAppendArrow(){return!0}get firstArrowTypeBtrId(){const t=this.dimensionStyle;return t.dimsah==0?t.dimblk:t.dimblk1}get firstArrowType(){const t=this.firstArrowTypeBtrId;return this.getArrowName(t)}get secondArrowTypeBtrId(){const t=this.dimensionStyle;return t.dimsah==0?t.dimblk:t.dimblk2}get secondArrowType(){const t=this.secondArrowTypeBtrId;return this.getArrowName(t)}get arrowLineCount(){return 1}findPointOnLine1(t,e,n){const r=new _().subVectors(e,t).normalize();return new _(e).addScaledVector(r,n)}findPointOnLine2(t,e,n){const r=t.x+n*Math.cos(e),s=t.y+n*Math.sin(e);return{x:r,y:s}}adjustExtensionLine(t){const e=this.dimensionStyle;t.extend(e.dimexe),t.extend(-e.dimexo,!0)}getArrowName(t){const e=this.database.tables.blockTable.getIdAt(t);return e?e.name.toUpperCase():exports.AcGiArrowType.Closed}computeDimBlockTransform(){const t=this.dimBlockId?this.database.tables.blockTable.getAt(this.dimBlockId):void 0,e=(t==null?void 0:t.origin)??_.ORIGIN,n=new Y().makeTranslation(-e.x,-e.y,-e.z),r=new Y().makeTranslation(this._dimBlockPosition.x,this._dimBlockPosition.y,this._dimBlockPosition.z);return new Y().multiplyMatrices(r,n)}subTransformBy(t){}dxfOutFields(t){super.dxfOutFields(t);const e=this.dimensionStyleName!=null?this.database.tables.dimStyleTable.getAt(this.dimensionStyleName):void 0;return t.writeSubclassMarker("AcDbDimension"),t.writeInt16(280,0),t.writeString(2,this.dimBlockId??void 0),t.writeString(3,this.dimensionStyleName??this.dimensionStyle.name),t.writePoint3d(10,this.dimBlockPosition),t.writeString(1,this.dimensionText??""),t.writeAngle(53,this.textRotation),t.writePoint3d(11,this.textPosition),t.writeInt16(70,0),t.writeInt16(72,this.textLineSpacingStyle),t.writeDouble(41,this.textLineSpacingFactor),t.writeDouble(42,this.measurement),t.writeVector3d(210,this.normal),t.writeObjectId(340,e==null?void 0:e.objectId),this}};_r.typeName="Dimension";let vt=_r;const wr=class wr extends vt{constructor(t,e,n,r,s=null,o=null){super(),this._centerPoint=new _().copy(t),this._xLine1Point=new _().copy(e),this._xLine2Point=new _().copy(n),this._arcPoint=new _().copy(r),this.dimensionText=s,this.dimensionStyleName=o}get arcPoint(){return this._arcPoint}set arcPoint(t){this._arcPoint.copy(t)}get centerPoint(){return this._centerPoint}set centerPoint(t){this._centerPoint.copy(t)}get xLine1Point(){return this._xLine1Point}set xLine1Point(t){this._xLine1Point.copy(t)}get xLine2Point(){return this._xLine2Point}set xLine2Point(t){this._xLine2Point.copy(t)}get properties(){const t=this.getBaseProperties();return{type:this.type,groups:[...t.groups,{groupName:"geometry",properties:[...this.createPoint3dProperties("centerPoint",()=>this.centerPoint),...this.createPoint3dProperties("xLine1Point",()=>this.xLine1Point),...this.createPoint3dProperties("xLine2Point",()=>this.xLine2Point),...this.createPoint3dProperties("arcPoint",()=>this.arcPoint)]}]}}subTransformBy(t){this._arcPoint.applyMatrix4(t),this._centerPoint.applyMatrix4(t),this._xLine1Point.applyMatrix4(t),this._xLine2Point.applyMatrix4(t)}get geometricExtents(){return this.getGeometricExtentsFromDimBlockOrPoints([this.xLine1Point,this.xLine2Point,this.centerPoint,this.arcPoint])}dxfOutFields(t){return super.dxfOutFields(t),t.writeSubclassMarker("AcDb3PointAngularDimension"),t.writePoint3d(13,this.xLine1Point),t.writePoint3d(14,this.xLine2Point),t.writePoint3d(15,this.centerPoint),t.writePoint3d(16,this.arcPoint),this}};wr.typeName="3PointAngularDimension";let fn=wr;const br=class br extends vt{constructor(t,e,n,r=null,s=null){super(),this._dimLinePoint=new _().copy(n),this._xLine1Point=new _().copy(t),this._xLine2Point=new _().copy(e),this._oblique=0,this._rotation=0,this.calculateRotation(),r?this.dimensionText=r:this.dimensionText=this._xLine1Point.distanceTo(this._xLine2Point).toFixed(3),this.dimensionStyleName=s}get dimLinePoint(){return this._dimLinePoint}set dimLinePoint(t){this._dimLinePoint.copy(t)}get xLine1Point(){return this._xLine1Point}set xLine1Point(t){this._xLine1Point.copy(t)}get xLine2Point(){return this._xLine2Point}set xLine2Point(t){this._xLine2Point.copy(t)}get rotation(){return this._rotation}set rotation(t){this._rotation=t}get oblique(){return this._oblique}set oblique(t){this._oblique=t}get properties(){const t=this.getBaseProperties();return{type:this.type,groups:[...t.groups,{groupName:"geometry",properties:[...this.createPoint3dProperties("xLine1Point",()=>this.xLine1Point),...this.createPoint3dProperties("xLine2Point",()=>this.xLine2Point),...this.createPoint3dProperties("dimLinePoint",()=>this.dimLinePoint),this.createProperty("rotation","float",()=>this.rotation,e=>{this.rotation=e}),this.createProperty("oblique","float",()=>this.oblique,e=>{this.oblique=e})]}]}}subTransformBy(t){this._dimLinePoint.applyMatrix4(t),this._xLine1Point.applyMatrix4(t),this._xLine2Point.applyMatrix4(t),this.calculateRotation()}get geometricExtents(){return this.getGeometricExtentsFromDimBlockOrPoints([this.xLine1Point,this.xLine2Point,this.dimLinePoint])}get isAppendArrow(){return!1}createDimBlock(t){const e=new Q;e.name=t;const n=this.createLines();n.forEach(a=>e.appendEntity(new Ze(a.startPoint,a.endPoint))),this.createArrows(n[0]).forEach(a=>e.appendEntity(a));const s=n[0].midPoint,o=this.createMText(s,this._rotation);return o&&e.appendEntity(o),e}createMText(t,e){const n=r=>({x:Math.cos(r),y:Math.sin(r),z:0});if(this.dimensionText){const r=new Ke;return r.attachmentPoint=exports.AcGiMTextAttachmentPoint.MiddleLeft,r.layer="0",r.color=new k(exports.AcCmColorMethod.ByBlock),r.location=t,r.contents=this.dimensionText??"",r.height=10,r.direction=n(e),r.styleName=this.dimensionStyle.dimtxsty,r}}createArrows(t){const e=[];return e.push(this.createArrow(t.startPoint,this.rotation+Math.PI,10)),e.push(this.createArrow(t.endPoint,this.rotation,10)),e}createArrow(t,e,n){const r="_CAXARROW",s=new he(r);return s.position=t,s.rotation=e,s.scaleFactors={x:n,y:n,z:n},s}createLines(){const t=[],e=this.createExtensionLine(this._xLine1Point),n=this.createExtensionLine(this._xLine2Point),r=this.findIntersectionPoint(e,this._dimLinePoint),s=this.findIntersectionPoint(n,this._dimLinePoint),o=new xt(r,s);return t.push(o),e.endPoint=r,this.adjustExtensionLine(e),t.push(e),n.endPoint=s,this.adjustExtensionLine(n),t.push(n),t}createExtensionLine(t){const e=this.rotation+Math.PI/2,n=this.findPointOnLine2(t,e,100);return new xt(t,{...n,z:t.z})}findIntersectionPoint(t,e){const n=t.startPoint,r=t.endPoint,s=new w().subVectors(r,n).normalize(),a=new w().subVectors(e,n).dot(s),h=new w().copy(s).multiplyScalar(a);return new w().addVectors(n,h)}calculateRotation(){const t=this._xLine1Point,e=this._xLine2Point,n=e.x-t.x,r=e.y-t.y;this._rotation=Math.atan2(r,n)}get dxfSubclassMarker(){return"AcDbAlignedDimension"}getMeasurementPropertyValue(){return this.measurement??this.xLine1Point.distanceTo(this.xLine2Point)}dxfOutFields(t){return super.dxfOutFields(t),t.writeSubclassMarker(this.dxfSubclassMarker),t.writePoint3d(13,this.xLine1Point),t.writePoint3d(14,this.xLine2Point),t.writePoint3d(15,this.dimLinePoint),t.writeAngle(50,this.rotation),t.writeAngle(52,this.oblique),this}};br.typeName="AlignedDimension";let ti=br;const xr=class xr extends vt{constructor(t,e,n,r,s=null,o=null){super(),this._arcPoint=new _().copy(r),this._xLine1Point=new _().copy(e),this._xLine2Point=new _().copy(n),this._centerPoint=new _().copy(t),this.dimensionText=s,this.dimensionStyleName=o}get arcPoint(){return this._arcPoint}set arcPoint(t){this._arcPoint.copy(t)}get centerPoint(){return this._centerPoint}set centerPoint(t){this._centerPoint.copy(t)}get xLine1Point(){return this._xLine1Point}set xLine1Point(t){this._xLine1Point.copy(t)}get xLine2Point(){return this._xLine2Point}set xLine2Point(t){this._xLine2Point.copy(t)}get properties(){const t=this.getBaseProperties();return{type:this.type,groups:[...t.groups,{groupName:"geometry",properties:[...this.createPoint3dProperties("centerPoint",()=>this.centerPoint),...this.createPoint3dProperties("xLine1Point",()=>this.xLine1Point),...this.createPoint3dProperties("xLine2Point",()=>this.xLine2Point),...this.createPoint3dProperties("arcPoint",()=>this.arcPoint)]}]}}subTransformBy(t){this._arcPoint.applyMatrix4(t),this._centerPoint.applyMatrix4(t),this._xLine1Point.applyMatrix4(t),this._xLine2Point.applyMatrix4(t)}get geometricExtents(){return this.getGeometricExtentsFromDimBlockOrPoints([this.xLine1Point,this.xLine2Point,this.centerPoint,this.arcPoint])}dxfOutFields(t){return super.dxfOutFields(t),t.writeSubclassMarker("AcDbArcDimension"),t.writePoint3d(13,this.xLine1Point),t.writePoint3d(14,this.xLine2Point),t.writePoint3d(15,this.centerPoint),t.writePoint3d(16,this.arcPoint),this}};xr.typeName="ArcDimension";let yn=xr;const vr=class vr extends vt{constructor(t,e,n=0,r=null,s=null){super(),this._chordPoint=new _().copy(t),this._farChordPoint=new _().copy(e),this._extArcStartAngle=0,this._extArcEndAngle=0,this._leaderLength=n,this.dimensionText=r,this.dimensionStyleName=s}get chordPoint(){return this._chordPoint}set chordPoint(t){this._chordPoint.copy(t)}get farChordPoint(){return this._farChordPoint}set farChordPoint(t){this._farChordPoint.copy(t)}get extArcStartAngle(){return this._extArcStartAngle}set extArcStartAngle(t){this._extArcStartAngle=t}get extArcEndAngle(){return this._extArcEndAngle}set extArcEndAngle(t){this._extArcEndAngle=t}get leaderLength(){return this._leaderLength}set leaderLength(t){this._leaderLength=t}get properties(){const t=this.getBaseProperties();return{type:this.type,groups:[...t.groups,{groupName:"geometry",properties:[...this.createPoint3dProperties("chordPoint",()=>this.chordPoint),...this.createPoint3dProperties("farChordPoint",()=>this.farChordPoint),this.createProperty("leaderLength","float",()=>this.leaderLength,e=>{this.leaderLength=e}),this.createProperty("extArcStartAngle","float",()=>this.extArcStartAngle,e=>{this.extArcStartAngle=e}),this.createProperty("extArcEndAngle","float",()=>this.extArcEndAngle,e=>{this.extArcEndAngle=e})]}]}}subTransformBy(t){this._chordPoint.applyMatrix4(t),this._farChordPoint.applyMatrix4(t)}getMeasurementPropertyValue(){return this.measurement??this.chordPoint.distanceTo(this.farChordPoint)}get geometricExtents(){const t=[this.chordPoint,this.farChordPoint];if(this.leaderLength>0){const e=this.farChordPoint.clone().sub(this.chordPoint);e.lengthSq()>0&&(e.normalize().multiplyScalar(this.leaderLength),t.push(this.farChordPoint.clone().add(e)))}return this.getGeometricExtentsFromDimBlockOrPoints(t)}dxfOutFields(t){return super.dxfOutFields(t),t.writeSubclassMarker("AcDbDiametricDimension"),t.writePoint3d(15,this.chordPoint),t.writePoint3d(16,this.farChordPoint),t.writeDouble(40,this.leaderLength),t.writeAngle(52,this.extArcStartAngle),t.writeAngle(53,this.extArcEndAngle),this}};vr.typeName="DiametricDimension";let mn=vr;const Pr=class Pr extends vt{constructor(t,e,n=null,r=null){super(),this._definingPoint=new _().copy(t),this._leaderEndPoint=new _().copy(e),this.dimensionText=n,this.dimensionStyleName=r}get definingPoint(){return this._definingPoint}set definingPoint(t){this._definingPoint.copy(t)}get leaderEndPoint(){return this._leaderEndPoint}set leaderEndPoint(t){this._leaderEndPoint.copy(t)}get properties(){const t=this.getBaseProperties();return{type:this.type,groups:[...t.groups,{groupName:"geometry",properties:[...this.createPoint3dProperties("definingPoint",()=>this.definingPoint),...this.createPoint3dProperties("leaderEndPoint",()=>this.leaderEndPoint)]}]}}subTransformBy(t){this._definingPoint.applyMatrix4(t),this._leaderEndPoint.applyMatrix4(t)}get geometricExtents(){return this.getGeometricExtentsFromDimBlockOrPoints([this.definingPoint,this.leaderEndPoint])}get arrowLineCount(){return 0}dxfOutFields(t){return super.dxfOutFields(t),t.writeSubclassMarker("AcDbOrdinateDimension"),t.writePoint3d(13,this.definingPoint),t.writePoint3d(14,this.leaderEndPoint),this}};Pr.typeName="OrdinateDimension";let _n=Pr;const Ar=class Ar extends vt{constructor(t,e,n,r=null,s=null){super(),this._center=new _().copy(t),this._chordPoint=new _().copy(e),this._leaderLength=n,this._extArcStartAngle=0,this._extArcEndAngle=0,this.dimensionText=r,this.dimensionStyleName=s}get center(){return this._center}set center(t){this._center.copy(t)}get chordPoint(){return this._chordPoint}set chordPoint(t){this._chordPoint.copy(t)}get extArcStartAngle(){return this._extArcStartAngle}set extArcStartAngle(t){this._extArcStartAngle=t}get extArcEndAngle(){return this._extArcEndAngle}set extArcEndAngle(t){this._extArcEndAngle=t}get leaderLength(){return this._leaderLength}set leaderLength(t){this._leaderLength=t}set leaderLenght(t){this._leaderLength=t}get properties(){const t=this.getBaseProperties();return{type:this.type,groups:[...t.groups,{groupName:"geometry",properties:[...this.createPoint3dProperties("center",()=>this.center),...this.createPoint3dProperties("chordPoint",()=>this.chordPoint),this.createProperty("leaderLength","float",()=>this.leaderLength,e=>{this.leaderLength=e}),this.createProperty("extArcStartAngle","float",()=>this.extArcStartAngle,e=>{this.extArcStartAngle=e}),this.createProperty("extArcEndAngle","float",()=>this.extArcEndAngle,e=>{this.extArcEndAngle=e})]}]}}subTransformBy(t){this._center.applyMatrix4(t),this._chordPoint.applyMatrix4(t)}getMeasurementPropertyValue(){return this.measurement??this.center.distanceTo(this.chordPoint)}get geometricExtents(){const t=[this.center,this.chordPoint];if(this.leaderLength>0){const e=this.chordPoint.clone().sub(this.center);e.lengthSq()>0&&(e.normalize().multiplyScalar(this.leaderLength),t.push(this.chordPoint.clone().add(e)))}return this.getGeometricExtentsFromDimBlockOrPoints(t)}dxfOutFields(t){return super.dxfOutFields(t),t.writeSubclassMarker("AcDbRadialDimension"),t.writePoint3d(15,this.center),t.writePoint3d(13,this.chordPoint),t.writeDouble(40,this.leaderLength),t.writeAngle(52,this.extArcStartAngle),t.writeAngle(53,this.extArcEndAngle),this}};Ar.typeName="RadialDimension";let wn=Ar;const Sr=class Sr extends ti{get dxfSubclassMarker(){return"AcDbRotatedDimension"}};Sr.typeName="RotatedDimension";let bn=Sr;class gc extends ft{constructor(){super(),this._sourceFileName=""}get sourceFileName(){return this._sourceFileName}set sourceFileName(t){this._sourceFileName=t}dxfOutFields(t){return super.dxfOutFields(t),t.writeSubclassMarker("AcDbRasterImageDef"),t.writeString(1,this.sourceFileName),t.writeInt16(280,1),t.writeInt16(281,0),this}}var sa=(i=>(i[i.NotApplicable=0]="NotApplicable",i[i.Ignore=1]="Ignore",i[i.Replace=2]="Replace",i[i.XrefMangleName=3]="XrefMangleName",i[i.MangleName=4]="MangleName",i))(sa||{});class pc extends ft{constructor(){super(...arguments),this._data=null}get data(){return this._data}set data(t){this._data=t}clear(){var t;(t=this._data)==null||t.clear()}clone(){return super.clone()}getDuplicateRecordCloning(){return 0}dxfOutFields(t){return super.dxfOutFields(t),t.writeSubclassMarker("AcDbXrecord"),t.writeInt16(280,1),t.writeResultBuffer(this.data),this}}class oa{constructor(t){this.db=t}createDefaultLayer(){const t=new k;return t.colorIndex=7,this.db.tables.layerTable.add(new Fn({name:"0",standardFlags:0,linetype:"Continuous",lineWeight:0,isOff:!1,color:t,isPlottable:!0}))}createDefaultLineType(){this.db.tables.linetypeTable.add(new Ht({name:"ByBlock",standardFlag:0,description:"",totalPatternLength:0})),this.db.tables.linetypeTable.add(new Ht({name:"ByLayer",standardFlag:0,description:"",totalPatternLength:0})),this.db.tables.linetypeTable.add(new Ht({name:"Continuous",standardFlag:0,description:"Solid line",totalPatternLength:0}))}createDefaultTextStyle(){this.db.tables.textStyleTable.add(new Vn({name:K,standardFlag:0,fixedTextHeight:0,widthFactor:1,obliqueAngle:0,textGenerationFlag:0,lastHeight:.2,font:"SimKai",bigFont:"",extendedFont:"SimKai"}))}createDefaultDimStyle(){this.db.tables.dimStyleTable.add(new le({name:K,dimtxsty:K}))}createDefaultLayout(){const t=new pi;t.layoutName="Model",t.tabOrder=0,t.blockTableRecordId=this.db.tables.blockTable.modelSpace.objectId,t.limits.min.copy({x:0,y:0}),t.limits.max.copy({x:1e6,y:1e6}),t.extents.min.copy({x:0,y:0,z:0}),t.extents.max.copy({x:1e6,y:1e6,z:0}),this.db.objects.layout.setAt(t.layoutName,t),this.db.tables.blockTable.modelSpace.layoutId=t.objectId}createArrowBlock(){if(!this.db.tables.blockTable.getAt("_CAXARROW")){const e=new qe;e.patternName=Gt;const n=new Xn;n.add(new kt({x:0,y:0},{x:-1,y:.125})),n.add(new kt({x:-1,y:.125},{x:-1,y:-.125})),n.add(new kt({x:-1,y:-.125},{x:0,y:0})),e.add(n);const r=new Q;r.name="_CAXARROW",r.appendEntity(e),this.db.tables.blockTable.add(r)}}}var aa=(i=>(i.ClosedFilled="",i.Dot="_DOT",i.DotSmall="_DOTSMALL",i.DotBlank="_DOTBLANK",i.Origin="_ORIGIN",i.Origin2="_ORIGIN2",i.Open="_OPEN",i.Open90="_OPEN90",i.Open30="_OPEN30",i.Closed="_CLOSED",i.Small="_SMALL",i.None="_NONE",i.Oblique="_OBLIQUE",i.BoxFilled="_BOXFILLED",i.Box="_BOXBLANK",i.ClosedBlank="_CLOSEDBLANK",i.DatumBlank="_DATUMBLANK",i.DatumFilled="_DATUMFILLED",i.Integral="_INTEGRAL",i.ArchTick="_ARCHTICK",i))(aa||{});const Wn=192,ei=193,Dn=194,Un=195,la=200;function Ge(i){if(i.isByBlock)return ei<<24>>0;if(i.isByLayer)return Wn<<24>>0;const t=i.colorIndex;if(t!=null&&t>0&&t<256)return(Un<<24|t&255)>>0;const e=i.RGB;return e!=null?(Dn<<24|e&16777215)>>0:ei<<24>>0}function ha(i){const t=new k(exports.AcCmColorMethod.ByBlock);switch(i>>>24&255){case Wn:t.setByLayer();break;case ei:case la:t.setByBlock();break;case Un:t.colorIndex=i&255;break;case Dn:t.setRGBValue(i&16777215);break;default:i>=0&&i<=256&&(t.colorIndex=i);break}return t}class $n{parse(t){const n=this.normalizeLineEndings(t).split(`
|
|
6
|
-
`),r=[],s=[];let o=null;return n.forEach((a,h)=>{const l=h+1,c=this.stripInlineComment(a).trim();if(!c)return;if(c.startsWith("*")){this.flushCurrentPattern(o,r,s);const g=this.parseHeader(c.slice(1));if(!g){s.push({line:l,message:"Invalid pattern header.",source:a}),o=null;return}o={pattern:{name:g.name,description:g.description,lines:[]},headerLine:l};return}if(!o){s.push({line:l,message:"Line descriptor appears before any pattern header.",source:a});return}const u=this.parseLineDescriptor(c,l);if(!u){s.push({line:l,message:"Invalid line descriptor. Expect: angle,x-origin,y-origin,delta-x,delta-y[,dash-1,...].",source:a});return}o.pattern.lines.push(u)}),this.flushCurrentPattern(o,r,s),{patterns:r,issues:s}}static parse(t){return new $n().parse(t)}normalizeLineEndings(t){return t.replace(/\r\n/g,`
|
|
3
|
+
`}registerHandle(t){return this._handleMap.has(t)||(/^[0-9A-F]+$/i.test(t)?this._handleMap.set(t,t.toUpperCase()):(this._handleMap.set(t,this._nextHandle.toString(16).toUpperCase()),this._nextHandle+=1)),this._handleMap.get(t)}resolveHandle(t){if(t)return this.registerHandle(t)}writeGroup(t,e){if(e==null)return this;this._lines.push(String(Math.trunc(t)));const n=this.formatValue(e);return this._lines.push(n===""?"0":n),this}writeStart(t){return this.writeString(0,t)}writeSubclassMarker(t){return this.writeString(100,t)}writeString(t,e){return!e&&e!==""?this:this.writeGroup(t,e)}writeInt8(t,e){return e==null?this:this.writeGroup(t,Math.trunc(e))}writeInt16(t,e){return e==null?this:this.writeGroup(t,Math.trunc(e))}writeInt32(t,e){return e==null?this:this.writeGroup(t,Math.trunc(e))}writeInt64(t,e){return e==null?this:this.writeGroup(t,Math.trunc(e))}writeUInt16(t,e){return e==null?this:this.writeGroup(t,Math.max(0,e))}writeUInt32(t,e){return e==null?this:this.writeGroup(t,Math.max(0,e))}writeBoolean(t,e){return e==null?this:this.writeGroup(t,e?1:0)}writeBool(t,e){return this.writeBoolean(t,e)}writeDouble(t,e){return e==null||!Number.isFinite(e)?this:this.writeGroup(t,e)}writeAngle(t,e){return e==null||!Number.isFinite(e)?this:this.writeDouble(t,e*180/Math.PI)}writeHandle(t,e){const n=this.resolveHandle(e);return n?this.writeString(t,n):this}writeObjectId(t,e){return this.writeHandle(t,e)}writePoint2d(t,e){return e?(this.writeDouble(t,e.x),this.writeDouble(t+10,e.y),this):this}writePoint3d(t,e){return e?(this.writeDouble(t,e.x),this.writeDouble(t+10,e.y),this.writeDouble(t+20,e.z??0),this):this}writeVector3d(t,e){return e?(this.writeDouble(t,e.x),this.writeDouble(t+10,e.y),this.writeDouble(t+20,e.z??0),this):this}writeCmColor(t,e=62,n=420){if(!t)return this;const r=t.colorIndex;r!=null&&this.writeInt16(e,r);const s=t.RGB;return s!=null&&t.colorIndex==null&&this.writeInt32(n,s),this}writeTransparency(t,e=440){return!t||t.method===exports.AcCmTransparencyMethod.ErrorValue?this:this.writeInt32(e,t.serialize())}writeResultBuffer(t){if(!t)return this;for(const e of t)this.writeGroup(e.code,e.value);return this}startSection(t){return this.writeStart("SECTION"),this.writeString(2,t),this}endSection(){return this.writeStart("ENDSEC"),this}startTable(t){return this.writeStart("TABLE"),this.writeString(2,t),this}endTable(){return this.writeStart("ENDTAB"),this}formatValue(t){if(typeof t=="string")return this.sanitizeStringForDxfLine(t);if(typeof t=="boolean")return t?"1":"0";if(typeof t=="number"){if(!Number.isFinite(t))return"0";if(Number.isInteger(t))return String(t);const n=t.toFixed(this._precision).replace(/\.?0+$/,"");return n===""||n==="-"?"0":n}return String(t)}sanitizeStringForDxfLine(t){return t.replace(/\r\n|\r|\n/g," ").replace(/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F]/g,"")}}var jt=256,as=[],Mr=256,Ce;for(;jt--;)as[jt]=(jt+256).toString(16).substring(1);function Xa(i){var t=0,e=11;if(!Ce||jt+e>Mr*2)for(Ce="",jt=0;t<Mr;t++)Ce+=as[Math.random()*256|0];return Ce.substring(jt,jt+++e)}const je="TEMP_";let xe;function ls(i){xe=i}function Na(){if(xe)return xe().workingDatabase;throw new Error("The current working database must be set before using it!")}class ft{constructor(t,e){if(t=t||{},this._attrs=new es(t,e),this._xDataMap=new Map,!this._attrs.get("objectId"))try{this._attrs.set("objectId",this.database.generateHandle())}catch{this._attrs.set("objectId",this.generateTemporaryHandle())}}generateTemporaryHandle(){return je+Xa()}get attrs(){return this._attrs}getAttr(t){const e=this._attrs.get(t);if(e===void 0)throw new Error(`[AcDbObject] Attribute name '${t}' does't exist in this object!`);return e}getAttrWithoutException(t){return this._attrs.get(t)}setAttr(t,e){this._attrs.set(t,e)}get objectId(){return this.getAttr("objectId")}set objectId(t){this._attrs.set("objectId",t),t&&!t.startsWith(je)&&this.database.updateMaxHandle(t)}get isTemp(){const t=this.getAttrWithoutException("objectId");return!!t&&t.startsWith(je)}get ownerId(){return this.getAttr("ownerId")}set ownerId(t){this._attrs.set("ownerId",t)}get extensionDictionary(){return this.getAttrWithoutException("extensionDictionary")}set extensionDictionary(t){this._attrs.set("extensionDictionary",t)}get database(){if(this._database)return this._database;if(xe)return xe().workingDatabase;throw new Error("The current working database must be set before using it!")}set database(t){this._database=t}getXData(t){return this._xDataMap.get(t)}setXData(t){for(const e of t)e.code===vn.ExtendedDataRegAppName&&this._xDataMap.set(e.value,t)}removeXData(t){this._xDataMap.delete(t)}createExtensionDictionary(){}close(){}clone(){const t=Object.create(Object.getPrototypeOf(this)),e=this,n=t;for(const r of Object.keys(e))r!=="_database"&&(n[r]=this.cloneValue(e[r]));return t.objectId=this.generateTemporaryHandle(),t}cloneValue(t){if(t==null||typeof t!="object")return t;if(t instanceof Date)return new Date(t.getTime());if(t instanceof RegExp)return new RegExp(t.source,t.flags);if(Array.isArray(t))return t.map(r=>this.cloneValue(r));if(t instanceof Map){const r=new Map;for(const[s,o]of t.entries())r.set(this.cloneValue(s),this.cloneValue(o));return r}if(t instanceof Set){const r=new Set;for(const s of t.values())r.add(this.cloneValue(s));return r}if(ArrayBuffer.isView(t)){if(t instanceof DataView)return new DataView(t.buffer.slice(0));const r=t.constructor;return new r(t)}if(t instanceof ArrayBuffer)return t.slice(0);if("clone"in t&&typeof t.clone=="function")return t.clone();const e=Object.create(Object.getPrototypeOf(t)),n=t;for(const r of Object.keys(n))e[r]=this.cloneValue(n[r]);return e}dxfOut(...t){const[e,n=!1]=t;if(e.writeHandle(5,this.objectId),e.writeObjectId(330,this.ownerId),e.writeObjectId(360,this.extensionDictionary),this.dxfOutFields(e),n)for(const r of this._xDataMap.values())e.writeResultBuffer(r);return this}dxfOutFields(t){return this}}var Z=["00","01","02","03","04","05","06","07","08","09","0a","0b","0c","0d","0e","0f","10","11","12","13","14","15","16","17","18","19","1a","1b","1c","1d","1e","1f","20","21","22","23","24","25","26","27","28","29","2a","2b","2c","2d","2e","2f","30","31","32","33","34","35","36","37","38","39","3a","3b","3c","3d","3e","3f","40","41","42","43","44","45","46","47","48","49","4a","4b","4c","4d","4e","4f","50","51","52","53","54","55","56","57","58","59","5a","5b","5c","5d","5e","5f","60","61","62","63","64","65","66","67","68","69","6a","6b","6c","6d","6e","6f","70","71","72","73","74","75","76","77","78","79","7a","7b","7c","7d","7e","7f","80","81","82","83","84","85","86","87","88","89","8a","8b","8c","8d","8e","8f","90","91","92","93","94","95","96","97","98","99","9a","9b","9c","9d","9e","9f","a0","a1","a2","a3","a4","a5","a6","a7","a8","a9","aa","ab","ac","ad","ae","af","b0","b1","b2","b3","b4","b5","b6","b7","b8","b9","ba","bb","bc","bd","be","bf","c0","c1","c2","c3","c4","c5","c6","c7","c8","c9","ca","cb","cc","cd","ce","cf","d0","d1","d2","d3","d4","d5","d6","d7","d8","d9","da","db","dc","dd","de","df","e0","e1","e2","e3","e4","e5","e6","e7","e8","e9","ea","eb","ec","ed","ee","ef","f0","f1","f2","f3","f4","f5","f6","f7","f8","f9","fa","fb","fc","fd","fe","ff"],Ir=1234567,An=Math.PI/180,Sn=180/Math.PI;function hs(){var i=Math.random()*4294967295|0,t=Math.random()*4294967295|0,e=Math.random()*4294967295|0,n=Math.random()*4294967295|0,r=Z[i&255]+Z[i>>8&255]+Z[i>>16&255]+Z[i>>24&255]+"-"+Z[t&255]+Z[t>>8&255]+"-"+Z[t>>16&15|64]+Z[t>>24&255]+"-"+Z[e&63|128]+Z[e>>8&255]+"-"+Z[e>>16&255]+Z[e>>24&255]+Z[n&255]+Z[n>>8&255]+Z[n>>16&255]+Z[n>>24&255];return r.toLowerCase()}function bt(i,t,e){return Math.max(t,Math.min(e,i))}function Ln(i,t){return(i%t+t)%t}function cs(i,t,e,n,r){return n+(i-t)*(r-n)/(e-t)}function us(i,t,e){return i!==t?(e-i)/(t-i):0}function En(i,t,e){return(1-e)*i+e*t}function ds(i,t,e,n){return En(i,t,1-Math.exp(-e*n))}function gs(i,t){return t===void 0&&(t=1),t-Math.abs(Ln(i,t*2)-t)}function ps(i,t,e){return i<=t?0:i>=e?1:(i=(i-t)/(e-t),i*i*(3-2*i))}function fs(i,t,e){return i<=t?0:i>=e?1:(i=(i-t)/(e-t),i*i*i*(i*(i*6-15)+10))}function ys(i,t){return i+Math.floor(Math.random()*(t-i+1))}function ms(i,t){return i+Math.random()*(t-i)}function _s(i){return i*(.5-Math.random())}function ws(i){i!==void 0&&(Ir=i);var t=Ir+=1831565813;return t=Math.imul(t^t>>>15,t|1),t^=t+Math.imul(t^t>>>7,t|61),((t^t>>>14)>>>0)/4294967296}function bs(i){return i*An}function xs(i){return i*Sn}function vs(i){return(i&i-1)===0&&i!==0}function Ps(i){return Math.pow(2,Math.ceil(Math.log(i)/Math.LN2))}function As(i){return Math.pow(2,Math.floor(Math.log(i)/Math.LN2))}function ye(i){var t=Math.PI*2;return(i%t+t)%t}function Ss(i,t,e){return i>t&&i<e||i>e&&i<t}function Ls(i,t,e,n){return n===void 0&&(n=!1),i=ye(i),t=ye(t),e=ye(e),n?t>e?i<=t&&i>=e:i<=t||i>=e:t<e?i>=t&&i<=e:i>=t||i<=e}function Mn(i){return i=Math.abs(i),i<1?0:Math.ceil(Math.log10(Math.abs(i)+1))}function Es(i,t){t===void 0&&(t=1e-7);var e=Mn(i);return Math.max(Math.pow(10,e)*t,t)}var E={DEG2RAD:An,RAD2DEG:Sn,generateUUID:hs,clamp:bt,euclideanModulo:Ln,mapLinear:cs,inverseLerp:us,lerp:En,damp:ds,pingpong:gs,smoothstep:ps,smootherstep:fs,randInt:ys,randFloat:ms,randFloatSpread:_s,seededRandom:ws,degToRad:bs,radToDeg:xs,isPowerOfTwo:vs,ceilPowerOfTwo:Ps,floorPowerOfTwo:As,normalizeAngle:ye,isBetween:Ss,isBetweenAngle:Ls,intPartLength:Mn,relativeEps:Es},Ba=function(i,t){var e={label:0,sent:function(){if(s[0]&1)throw s[1];return s[1]},trys:[],ops:[]},n,r,s,o;return o={next:a(0),throw:a(1),return:a(2)},typeof Symbol=="function"&&(o[Symbol.iterator]=function(){return this}),o;function a(l){return function(c){return h([l,c])}}function h(l){if(n)throw new TypeError("Generator is already executing.");for(;o&&(o=0,l[0]&&(e=0)),e;)try{if(n=1,r&&(s=l[0]&2?r.return:l[0]?r.throw||((s=r.return)&&s.call(r),0):r.next)&&!(s=s.call(r,l[1])).done)return s;switch(r=0,s&&(l=[l[0]&2,s.value]),l[0]){case 0:case 1:s=l;break;case 4:return e.label++,{value:l[1],done:!1};case 5:e.label++,r=l[1],l=[0];continue;case 7:l=e.ops.pop(),e.trys.pop();continue;default:if(s=e.trys,!(s=s.length>0&&s[s.length-1])&&(l[0]===6||l[0]===2)){e=0;continue}if(l[0]===3&&(!s||l[1]>s[0]&&l[1]<s[3])){e.label=l[1];break}if(l[0]===6&&e.label<s[1]){e.label=s[1],s=l;break}if(s&&e.label<s[2]){e.label=s[2],e.ops.push(l);break}s[2]&&e.ops.pop(),e.trys.pop();continue}l=t.call(i,e)}catch(c){l=[6,c],r=0}finally{n=s=0}if(l[0]&5)throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}},j=function(){function i(t,e){this.x=0,this.y=0;var n=+(t!==void 0)+ +(e!==void 0);if(n!==0){if(n===1&&t instanceof Array){this.x=t[0],this.y=t[1];return}if(n===1){var r=t,s=r.x,o=r.y;this.x=s,this.y=o;return}if(n===2){this.x=t,this.y=e;return}throw st.ILLEGAL_PARAMETERS}}return Object.defineProperty(i.prototype,"width",{get:function(){return this.x},set:function(t){this.x=t},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"height",{get:function(){return this.y},set:function(t){this.y=t},enumerable:!1,configurable:!0}),i.prototype.set=function(t,e){return this.x=t,this.y=e,this},i.prototype.setScalar=function(t){return this.x=t,this.y=t,this},i.prototype.setX=function(t){return this.x=t,this},i.prototype.setY=function(t){return this.y=t,this},i.prototype.setComponent=function(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;default:throw new Error("index is out of range: "+t)}return this},i.prototype.getComponent=function(t){switch(t){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+t)}},i.prototype.clone=function(){return new i(this.x,this.y)},i.prototype.copy=function(t){return this.x=t.x,this.y=t.y,this},i.prototype.add=function(t){return this.x+=t.x,this.y+=t.y,this},i.prototype.addScalar=function(t){return this.x+=t,this.y+=t,this},i.prototype.addVectors=function(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this},i.prototype.addScaledVector=function(t,e){return this.x+=t.x*e,this.y+=t.y*e,this},i.prototype.sub=function(t){return this.x-=t.x,this.y-=t.y,this},i.prototype.subScalar=function(t){return this.x-=t,this.y-=t,this},i.prototype.subVectors=function(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this},i.prototype.multiply=function(t){return this.x*=t.x,this.y*=t.y,this},i.prototype.multiplyScalar=function(t){return this.x*=t,this.y*=t,this},i.prototype.divide=function(t){return this.x/=t.x,this.y/=t.y,this},i.prototype.divideScalar=function(t){return this.multiplyScalar(1/t)},i.prototype.applyMatrix2d=function(t){var e=this.x,n=this.y,r=t.elements;return this.x=r[0]*e+r[3]*n+r[6],this.y=r[1]*e+r[4]*n+r[7],this},i.prototype.min=function(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this},i.prototype.max=function(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this},i.prototype.clamp=function(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this},i.prototype.clampScalar=function(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this},i.prototype.clampLength=function(t,e){var n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))},i.prototype.floor=function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this},i.prototype.ceil=function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this},i.prototype.round=function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this},i.prototype.roundToZero=function(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this},i.prototype.negate=function(){return this.x=-this.x,this.y=-this.y,this},i.prototype.dot=function(t){return this.x*t.x+this.y*t.y},i.prototype.cross=function(t){return this.x*t.y-this.y*t.x},i.prototype.lengthSq=function(){return this.x*this.x+this.y*this.y},i.prototype.length=function(){return Math.sqrt(this.x*this.x+this.y*this.y)},i.prototype.manhattanLength=function(){return Math.abs(this.x)+Math.abs(this.y)},i.prototype.normalize=function(){return this.divideScalar(this.length()||1)},i.prototype.angle=function(){var t=Math.atan2(-this.y,-this.x)+Math.PI;return t},i.prototype.angleTo=function(t){var e=Math.sqrt(this.lengthSq()*t.lengthSq());if(e===0)return Math.PI/2;var n=this.dot(t)/e;return Math.acos(Math.max(-1,Math.min(1,n)))},i.prototype.distanceTo=function(t){return Math.sqrt(this.distanceToSquared(t))},i.prototype.distanceToSquared=function(t){var e=this.x-t.x,n=this.y-t.y;return e*e+n*n},i.prototype.manhattanDistanceTo=function(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)},i.prototype.setLength=function(t){return this.normalize().multiplyScalar(t)},i.prototype.lerp=function(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this},i.prototype.lerpVectors=function(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this},i.prototype.equals=function(t){return t.x===this.x&&t.y===this.y},i.prototype.fromArray=function(t,e){return e===void 0&&(e=0),this.x=t[e],this.y=t[e+1],this},i.prototype.toArray=function(t,e){return t===void 0&&(t=[]),e===void 0&&(e=0),t[e]=this.x,t[e+1]=this.y,t},i.prototype.rotateAround=function(t,e){var n=Math.cos(e),r=Math.sin(e),s=this.x-t.x,o=this.y-t.y;return this.x=s*n-o*r+t.x,this.y=s*r+o*n+t.y,this},i.prototype.random=function(){return this.x=Math.random(),this.y=Math.random(),this},i.prototype.relativeEps=function(t){return t===void 0&&(t=1e-7),Math.min(E.relativeEps(this.x,t),E.relativeEps(this.y,t))},i.prototype[Symbol.iterator]=function(){return Ba(this,function(t){switch(t.label){case 0:return[4,this.x];case 1:return t.sent(),[4,this.y];case 2:return t.sent(),[2]}})},i.EMPTY=Object.freeze(new i(0,0)),i}(),Me=function(){function i(t,e,n,r,s,o,a,h,l){this.elements=[1,0,0,0,1,0,0,0,1],t!=null&&e!=null&&n!=null&&r!=null&&s!=null&&o!=null&&a!=null&&h!=null&&l!=null&&this.set(t,e,n,r,s,o,a,h,l)}return i.prototype.set=function(t,e,n,r,s,o,a,h,l){var c=this.elements;return c[0]=t,c[1]=r,c[2]=a,c[3]=e,c[4]=s,c[5]=h,c[6]=n,c[7]=o,c[8]=l,this},i.prototype.identity=function(){return this.set(1,0,0,0,1,0,0,0,1),this},i.prototype.copy=function(t){var e=this.elements,n=t.elements;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],this},i.prototype.extractBasis=function(t,e,n){return t.setFromMatrix3Column(this,0),e.setFromMatrix3Column(this,1),n.setFromMatrix3Column(this,2),this},i.prototype.setFromMatrix4=function(t){var e=t.elements;return this.set(e[0],e[4],e[8],e[1],e[5],e[9],e[2],e[6],e[10]),this},i.prototype.multiply=function(t){return this.multiplyMatrices(this,t)},i.prototype.premultiply=function(t){return this.multiplyMatrices(t,this)},i.prototype.multiplyMatrices=function(t,e){var n=t.elements,r=e.elements,s=this.elements,o=n[0],a=n[3],h=n[6],l=n[1],c=n[4],u=n[7],g=n[2],d=n[5],p=n[8],f=r[0],y=r[3],m=r[6],x=r[1],S=r[4],A=r[7],L=r[2],T=r[5],M=r[8];return s[0]=o*f+a*x+h*L,s[3]=o*y+a*S+h*T,s[6]=o*m+a*A+h*M,s[1]=l*f+c*x+u*L,s[4]=l*y+c*S+u*T,s[7]=l*m+c*A+u*M,s[2]=g*f+d*x+p*L,s[5]=g*y+d*S+p*T,s[8]=g*m+d*A+p*M,this},i.prototype.multiplyScalar=function(t){var e=this.elements;return e[0]*=t,e[3]*=t,e[6]*=t,e[1]*=t,e[4]*=t,e[7]*=t,e[2]*=t,e[5]*=t,e[8]*=t,this},i.prototype.determinant=function(){var t=this.elements,e=t[0],n=t[1],r=t[2],s=t[3],o=t[4],a=t[5],h=t[6],l=t[7],c=t[8];return e*o*c-e*a*l-n*s*c+n*a*h+r*s*l-r*o*h},i.prototype.invert=function(){var t=this.elements,e=t[0],n=t[1],r=t[2],s=t[3],o=t[4],a=t[5],h=t[6],l=t[7],c=t[8],u=c*o-a*l,g=a*h-c*s,d=l*s-o*h,p=e*u+n*g+r*d;if(p===0)return this.set(0,0,0,0,0,0,0,0,0);var f=1/p;return t[0]=u*f,t[1]=(r*l-c*n)*f,t[2]=(a*n-r*o)*f,t[3]=g*f,t[4]=(c*e-r*h)*f,t[5]=(r*s-a*e)*f,t[6]=d*f,t[7]=(n*h-l*e)*f,t[8]=(o*e-n*s)*f,this},i.prototype.transpose=function(){var t,e=this.elements;return t=e[1],e[1]=e[3],e[3]=t,t=e[2],e[2]=e[6],e[6]=t,t=e[5],e[5]=e[7],e[7]=t,this},i.prototype.getNormalMatrix=function(t){return this.setFromMatrix4(t).invert().transpose()},i.prototype.transposeIntoArray=function(t){var e=this.elements;return t.elements[0]=e[0],t.elements[1]=e[3],t.elements[2]=e[6],t.elements[3]=e[1],t.elements[4]=e[4],t.elements[5]=e[7],t.elements[6]=e[2],t.elements[7]=e[5],t.elements[8]=e[8],this},i.prototype.setUvTransform=function(t,e,n,r,s,o,a){var h=Math.cos(s),l=Math.sin(s);return this.set(n*h,n*l,-n*(h*o+l*a)+o+t,-r*l,r*h,-r*(-l*o+h*a)+a+e,0,0,1),this},i.prototype.scale=function(t,e){return this.premultiply(wi.makeScale(t,e)),this},i.prototype.rotate=function(t){return this.premultiply(wi.makeRotation(-t)),this},i.prototype.translate=function(t,e){return this.premultiply(wi.makeTranslation(t,e)),this},i.prototype.makeTranslation=function(t,e){return t instanceof j?this.set(1,0,t.x,0,1,t.y,0,0,1):this.set(1,0,t,0,1,e,0,0,1),this},i.prototype.makeRotation=function(t){var e=Math.cos(t),n=Math.sin(t);return this.set(e,-n,0,n,e,0,0,0,1),this},i.prototype.makeScale=function(t,e){return this.set(t,0,0,0,e,0,0,0,1),this},i.prototype.equals=function(t){for(var e=this.elements,n=t.elements,r=0;r<9;r++)if(e[r]!==n[r])return!1;return!0},i.prototype.fromArray=function(t,e){e===void 0&&(e=0);for(var n=0;n<9;n++)this.elements[n]=t[n+e];return this},i.prototype.toArray=function(t,e){t===void 0&&(t=[]),e===void 0&&(e=0);var n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+3]=n[3],t[e+4]=n[4],t[e+5]=n[5],t[e+6]=n[6],t[e+7]=n[7],t[e+8]=n[8],t},i.prototype.clone=function(){return new i().fromArray(this.elements)},i.IDENTITY=Object.freeze(new i),i}(),wi=new Me,wt=1e-6,B=2*Math.PI,Ra={x:0,y:0},In={x:0,y:0,z:0},F=function(){function i(){this.equalPointTol=wt,this.equalVectorTol=wt}return i.prototype.clone=function(){var t=new i;return t.equalPointTol=this.equalPointTol,t.equalVectorTol=this.equalVectorTol,t},i.prototype.equalPoint2d=function(t,e){return new j(t).sub(e).length()<this.equalPointTol},i.prototype.equalPoint3d=function(t,e){return new w(t).sub(e).length()<this.equalPointTol},i.equalToZero=function(t,e){return e===void 0&&(e=wt),t<e&&t>-e},i.equal=function(t,e,n){return n===void 0&&(n=wt),Math.abs(t-e)<n},i.great=function(t,e,n){return n===void 0&&(n=wt),t-e>n},i.less=function(t,e,n){return n===void 0&&(n=wt),t-e<n},i.isPositive=function(t,e){return e===void 0&&(e=wt),t>e},i.isNonPositive=function(t,e){return e===void 0&&(e=wt),t<=e},i}(),gi=new F,za=function(i,t){var e={label:0,sent:function(){if(s[0]&1)throw s[1];return s[1]},trys:[],ops:[]},n,r,s,o;return o={next:a(0),throw:a(1),return:a(2)},typeof Symbol=="function"&&(o[Symbol.iterator]=function(){return this}),o;function a(l){return function(c){return h([l,c])}}function h(l){if(n)throw new TypeError("Generator is already executing.");for(;o&&(o=0,l[0]&&(e=0)),e;)try{if(n=1,r&&(s=l[0]&2?r.return:l[0]?r.throw||((s=r.return)&&s.call(r),0):r.next)&&!(s=s.call(r,l[1])).done)return s;switch(r=0,s&&(l=[l[0]&2,s.value]),l[0]){case 0:case 1:s=l;break;case 4:return e.label++,{value:l[1],done:!1};case 5:e.label++,r=l[1],l=[0];continue;case 7:l=e.ops.pop(),e.trys.pop();continue;default:if(s=e.trys,!(s=s.length>0&&s[s.length-1])&&(l[0]===6||l[0]===2)){e=0;continue}if(l[0]===3&&(!s||l[1]>s[0]&&l[1]<s[3])){e.label=l[1];break}if(l[0]===6&&e.label<s[1]){e.label=s[1],s=l;break}if(s&&e.label<s[2]){e.label=s[2],e.ops.push(l);break}s[2]&&e.ops.pop(),e.trys.pop();continue}l=t.call(i,e)}catch(c){l=[6,c],r=0}finally{n=s=0}if(l[0]&5)throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}},ae=function(){function i(t,e,n,r){t===void 0&&(t=0),e===void 0&&(e=0),n===void 0&&(n=0),r===void 0&&(r=1),this._x=t,this._y=e,this._z=n,this._w=r}return i.slerpFlat=function(t,e,n,r,s,o,a){var h=n[r+0],l=n[r+1],c=n[r+2],u=n[r+3],g=s[o+0],d=s[o+1],p=s[o+2],f=s[o+3];if(a===0){t[e+0]=h,t[e+1]=l,t[e+2]=c,t[e+3]=u;return}if(a===1){t[e+0]=g,t[e+1]=d,t[e+2]=p,t[e+3]=f;return}if(u!==f||h!==g||l!==d||c!==p){var y=1-a,m=h*g+l*d+c*p+u*f,x=m>=0?1:-1,S=1-m*m;if(S>Number.EPSILON){var A=Math.sqrt(S),L=Math.atan2(A,m*x);y=Math.sin(y*L)/A,a=Math.sin(a*L)/A}var T=a*x;if(h=h*y+g*T,l=l*y+d*T,c=c*y+p*T,u=u*y+f*T,y===1-a){var M=1/Math.sqrt(h*h+l*l+c*c+u*u);h*=M,l*=M,c*=M,u*=M}}t[e]=h,t[e+1]=l,t[e+2]=c,t[e+3]=u},i.multiplyQuaternionsFlat=function(t,e,n,r,s,o){var a=n[r],h=n[r+1],l=n[r+2],c=n[r+3],u=s[o],g=s[o+1],d=s[o+2],p=s[o+3];return t[e]=a*p+c*u+h*d-l*g,t[e+1]=h*p+c*g+l*u-a*d,t[e+2]=l*p+c*d+a*g-h*u,t[e+3]=c*p-a*u-h*g-l*d,t},Object.defineProperty(i.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._onChangeCallback()},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._onChangeCallback()},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"z",{get:function(){return this._z},set:function(t){this._z=t,this._onChangeCallback()},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"w",{get:function(){return this._w},set:function(t){this._w=t,this._onChangeCallback()},enumerable:!1,configurable:!0}),i.prototype.set=function(t,e,n,r){return this._x=t,this._y=e,this._z=n,this._w=r,this._onChangeCallback(),this},i.prototype.clone=function(){return new i(this._x,this._y,this._z,this._w)},i.prototype.copy=function(t){return this._x=t.x,this._y=t.y,this._z=t.z,this._w=t.w,this._onChangeCallback(),this},i.prototype.setFromEuler=function(t,e){e===void 0&&(e=!0);var n=t.x,r=t.y,s=t.z,o=t.order,a=Math.cos,h=Math.sin,l=a(n/2),c=a(r/2),u=a(s/2),g=h(n/2),d=h(r/2),p=h(s/2);switch(o){case"XYZ":this._x=g*c*u+l*d*p,this._y=l*d*u-g*c*p,this._z=l*c*p+g*d*u,this._w=l*c*u-g*d*p;break;case"YXZ":this._x=g*c*u+l*d*p,this._y=l*d*u-g*c*p,this._z=l*c*p-g*d*u,this._w=l*c*u+g*d*p;break;case"ZXY":this._x=g*c*u-l*d*p,this._y=l*d*u+g*c*p,this._z=l*c*p+g*d*u,this._w=l*c*u-g*d*p;break;case"ZYX":this._x=g*c*u-l*d*p,this._y=l*d*u+g*c*p,this._z=l*c*p-g*d*u,this._w=l*c*u+g*d*p;break;case"YZX":this._x=g*c*u+l*d*p,this._y=l*d*u+g*c*p,this._z=l*c*p-g*d*u,this._w=l*c*u-g*d*p;break;case"XZY":this._x=g*c*u-l*d*p,this._y=l*d*u-g*c*p,this._z=l*c*p+g*d*u,this._w=l*c*u+g*d*p;break;default:}return e===!0&&this._onChangeCallback(),this},i.prototype.setFromAxisAngle=function(t,e){var n=e/2,r=Math.sin(n);return this._x=t.x*r,this._y=t.y*r,this._z=t.z*r,this._w=Math.cos(n),this._onChangeCallback(),this},i.prototype.setFromRotationMatrix=function(t){var e=t.elements,n=e[0],r=e[4],s=e[8],o=e[1],a=e[5],h=e[9],l=e[2],c=e[6],u=e[10],g=n+a+u;if(g>0){var d=.5/Math.sqrt(g+1);this._w=.25/d,this._x=(c-h)*d,this._y=(s-l)*d,this._z=(o-r)*d}else if(n>a&&n>u){var d=2*Math.sqrt(1+n-a-u);this._w=(c-h)/d,this._x=.25*d,this._y=(r+o)/d,this._z=(s+l)/d}else if(a>u){var d=2*Math.sqrt(1+a-n-u);this._w=(s-l)/d,this._x=(r+o)/d,this._y=.25*d,this._z=(h+c)/d}else{var d=2*Math.sqrt(1+u-n-a);this._w=(o-r)/d,this._x=(s+l)/d,this._y=(h+c)/d,this._z=.25*d}return this._onChangeCallback(),this},i.prototype.setFromUnitVectors=function(t,e){var n=t.dot(e)+1;return n<Number.EPSILON?(n=0,Math.abs(t.x)>Math.abs(t.z)?(this._x=-t.y,this._y=t.x,this._z=0,this._w=n):(this._x=0,this._y=-t.z,this._z=t.y,this._w=n)):(this._x=t.y*e.z-t.z*e.y,this._y=t.z*e.x-t.x*e.z,this._z=t.x*e.y-t.y*e.x,this._w=n),this.normalize()},i.prototype.angleTo=function(t){return 2*Math.acos(Math.abs(bt(this.dot(t),-1,1)))},i.prototype.rotateTowards=function(t,e){var n=this.angleTo(t);if(n===0)return this;var r=Math.min(1,e/n);return this.slerp(t,r),this},i.prototype.identity=function(){return this.set(0,0,0,1)},i.prototype.invert=function(){return this.conjugate()},i.prototype.conjugate=function(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this},i.prototype.dot=function(t){return this._x*t._x+this._y*t._y+this._z*t._z+this._w*t._w},i.prototype.lengthSq=function(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w},i.prototype.length=function(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)},i.prototype.normalize=function(){var t=this.length();return t===0?(this._x=0,this._y=0,this._z=0,this._w=1):(t=1/t,this._x=this._x*t,this._y=this._y*t,this._z=this._z*t,this._w=this._w*t),this._onChangeCallback(),this},i.prototype.multiply=function(t){return this.multiplyQuaternions(this,t)},i.prototype.premultiply=function(t){return this.multiplyQuaternions(t,this)},i.prototype.multiplyQuaternions=function(t,e){var n=t._x,r=t._y,s=t._z,o=t._w,a=e._x,h=e._y,l=e._z,c=e._w;return this._x=n*c+o*a+r*l-s*h,this._y=r*c+o*h+s*a-n*l,this._z=s*c+o*l+n*h-r*a,this._w=o*c-n*a-r*h-s*l,this._onChangeCallback(),this},i.prototype.slerp=function(t,e){if(e===0)return this;if(e===1)return this.copy(t);var n=this._x,r=this._y,s=this._z,o=this._w,a=o*t._w+n*t._x+r*t._y+s*t._z;if(a<0?(this._w=-t._w,this._x=-t._x,this._y=-t._y,this._z=-t._z,a=-a):this.copy(t),a>=1)return this._w=o,this._x=n,this._y=r,this._z=s,this;var h=1-a*a;if(h<=Number.EPSILON){var l=1-e;return this._w=l*o+e*this._w,this._x=l*n+e*this._x,this._y=l*r+e*this._y,this._z=l*s+e*this._z,this.normalize(),this}var c=Math.sqrt(h),u=Math.atan2(c,a),g=Math.sin((1-e)*u)/c,d=Math.sin(e*u)/c;return this._w=o*g+this._w*d,this._x=n*g+this._x*d,this._y=r*g+this._y*d,this._z=s*g+this._z*d,this._onChangeCallback(),this},i.prototype.slerpQuaternions=function(t,e,n){return this.copy(t).slerp(e,n)},i.prototype.random=function(){var t=2*Math.PI*Math.random(),e=2*Math.PI*Math.random(),n=Math.random(),r=Math.sqrt(1-n),s=Math.sqrt(n);return this.set(r*Math.sin(t),r*Math.cos(t),s*Math.sin(e),s*Math.cos(e))},i.prototype.equals=function(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._w===this._w},i.prototype.fromArray=function(t,e){return e===void 0&&(e=0),this._x=t[e],this._y=t[e+1],this._z=t[e+2],this._w=t[e+3],this._onChangeCallback(),this},i.prototype.toArray=function(t,e){return t===void 0&&(t=[]),e===void 0&&(e=0),t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._w,t},i.prototype.toJSON=function(){return this.toArray()},i.prototype._onChange=function(t){return this._onChangeCallback=t,this},i.prototype._onChangeCallback=function(){},i.prototype[Symbol.iterator]=function(){return za(this,function(t){switch(t.label){case 0:return[4,this._x];case 1:return t.sent(),[4,this._y];case 2:return t.sent(),[4,this._z];case 3:return t.sent(),[4,this._w];case 4:return t.sent(),[2]}})},i}(),Fa=function(i,t){var e={label:0,sent:function(){if(s[0]&1)throw s[1];return s[1]},trys:[],ops:[]},n,r,s,o;return o={next:a(0),throw:a(1),return:a(2)},typeof Symbol=="function"&&(o[Symbol.iterator]=function(){return this}),o;function a(l){return function(c){return h([l,c])}}function h(l){if(n)throw new TypeError("Generator is already executing.");for(;o&&(o=0,l[0]&&(e=0)),e;)try{if(n=1,r&&(s=l[0]&2?r.return:l[0]?r.throw||((s=r.return)&&s.call(r),0):r.next)&&!(s=s.call(r,l[1])).done)return s;switch(r=0,s&&(l=[l[0]&2,s.value]),l[0]){case 0:case 1:s=l;break;case 4:return e.label++,{value:l[1],done:!1};case 5:e.label++,r=l[1],l=[0];continue;case 7:l=e.ops.pop(),e.trys.pop();continue;default:if(s=e.trys,!(s=s.length>0&&s[s.length-1])&&(l[0]===6||l[0]===2)){e=0;continue}if(l[0]===3&&(!s||l[1]>s[0]&&l[1]<s[3])){e.label=l[1];break}if(l[0]===6&&e.label<s[1]){e.label=s[1],s=l;break}if(s&&e.label<s[2]){e.label=s[2],e.ops.push(l);break}s[2]&&e.ops.pop(),e.trys.pop();continue}l=t.call(i,e)}catch(c){l=[6,c],r=0}finally{n=s=0}if(l[0]&5)throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}},w=function(){function i(t,e,n){this.x=0,this.y=0,this.z=0;var r=+(t!==void 0)+ +(e!==void 0)+ +(n!==void 0);if(r!==0){if(r===1&&t instanceof Array){this.x=t[0],this.y=t[1],this.z=t[2];return}if(r===1){var s=t,o=s.x,a=s.y,h=s.z;this.x=o,this.y=a,this.z=h||0;return}if(r===3){this.x=t,this.y=e,this.z=n;return}throw st.ILLEGAL_PARAMETERS}}return i.prototype.set=function(t,e,n){return n===void 0&&(n=this.z),this.x=t,this.y=e,this.z=n,this},i.prototype.setScalar=function(t){return this.x=t,this.y=t,this.z=t,this},i.prototype.setX=function(t){return this.x=t,this},i.prototype.setY=function(t){return this.y=t,this},i.prototype.setZ=function(t){return this.z=t,this},i.prototype.setComponent=function(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;default:throw new Error("index is out of range: "+t)}return this},i.prototype.getComponent=function(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+t)}},i.prototype.clone=function(){return new i(this.x,this.y,this.z)},i.prototype.copy=function(t){return this.x=t.x,this.y=t.y,this.z=t.z||0,this},i.prototype.add=function(t){return this.x+=t.x,this.y+=t.y,this.z+=t.z||0,this},i.prototype.addScalar=function(t){return this.x+=t,this.y+=t,this.z+=t,this},i.prototype.addVectors=function(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this},i.prototype.addScaledVector=function(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this},i.prototype.sub=function(t){return this.x-=t.x,this.y-=t.y,this.z-=t.z,this},i.prototype.subScalar=function(t){return this.x-=t,this.y-=t,this.z-=t,this},i.prototype.subVectors=function(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this},i.prototype.multiply=function(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this},i.prototype.multiplyScalar=function(t){return this.x*=t,this.y*=t,this.z*=t,this},i.prototype.multiplyVectors=function(t,e){return this.x=t.x*e.x,this.y=t.y*e.y,this.z=t.z*e.z,this},i.prototype.applyEuler=function(t){return this.applyQuaternion(Tr.setFromEuler(t))},i.prototype.applyAxisAngle=function(t,e){return this.applyQuaternion(Tr.setFromAxisAngle(t,e))},i.prototype.applyMatrix3=function(t){var e=this.x,n=this.y,r=this.z,s=t.elements;return this.x=s[0]*e+s[3]*n+s[6]*r,this.y=s[1]*e+s[4]*n+s[7]*r,this.z=s[2]*e+s[5]*n+s[8]*r,this},i.prototype.applyNormalMatrix=function(t){return this.applyMatrix3(t).normalize()},i.prototype.applyMatrix4=function(t){var e=this.x,n=this.y,r=this.z,s=t.elements,o=1/(s[3]*e+s[7]*n+s[11]*r+s[15]);return this.x=(s[0]*e+s[4]*n+s[8]*r+s[12])*o,this.y=(s[1]*e+s[5]*n+s[9]*r+s[13])*o,this.z=(s[2]*e+s[6]*n+s[10]*r+s[14])*o,this},i.prototype.applyQuaternion=function(t){var e=this.x,n=this.y,r=this.z,s=t.x,o=t.y,a=t.z,h=t.w,l=2*(o*r-a*n),c=2*(a*e-s*r),u=2*(s*n-o*e);return this.x=e+h*l+o*u-a*c,this.y=n+h*c+a*l-s*u,this.z=r+h*u+s*c-o*l,this},i.prototype.transformDirection=function(t){var e=this.x,n=this.y,r=this.z,s=t.elements;return this.x=s[0]*e+s[4]*n+s[8]*r,this.y=s[1]*e+s[5]*n+s[9]*r,this.z=s[2]*e+s[6]*n+s[10]*r,this.normalize()},i.prototype.divide=function(t){return this.x/=t.x,this.y/=t.y,this.z/=t.z,this},i.prototype.divideScalar=function(t){return this.multiplyScalar(1/t)},i.prototype.min=function(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this},i.prototype.max=function(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this},i.prototype.clamp=function(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this},i.prototype.clampScalar=function(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this.z=Math.max(t,Math.min(e,this.z)),this},i.prototype.clampLength=function(t,e){var n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))},i.prototype.floor=function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this},i.prototype.ceil=function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this},i.prototype.round=function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this},i.prototype.roundToZero=function(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this},i.prototype.negate=function(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this},i.prototype.dot=function(t){return this.x*t.x+this.y*t.y+this.z*t.z},i.prototype.isParallelTo=function(t){var e=this.dot(t),n=this.length(),r=t.length();return Math.abs(e)===n*r},i.prototype.lengthSq=function(){return this.x*this.x+this.y*this.y+this.z*this.z},i.prototype.length=function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)},i.prototype.manhattanLength=function(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)},i.prototype.normalize=function(){return this.divideScalar(this.length()||1)},i.prototype.setLength=function(t){return this.normalize().multiplyScalar(t)},i.prototype.lerp=function(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this},i.prototype.lerpVectors=function(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this.z=t.z+(e.z-t.z)*n,this},i.prototype.cross=function(t){return this.crossVectors(this,t)},i.prototype.crossVectors=function(t,e){var n=t.x,r=t.y,s=t.z,o=e.x,a=e.y,h=e.z;return this.x=r*h-s*a,this.y=s*o-n*h,this.z=n*a-r*o,this},i.prototype.projectOnVector=function(t){var e=t.lengthSq();if(e===0)return this.set(0,0,0);var n=t.dot(this)/e;return this.copy(t).multiplyScalar(n)},i.prototype.projectOnPlane=function(t){return bi.copy(this).projectOnVector(t),this.sub(bi)},i.prototype.reflect=function(t){return this.sub(bi.copy(t).multiplyScalar(2*this.dot(t)))},i.prototype.angleTo=function(t){var e=Math.sqrt(this.lengthSq()*t.lengthSq());if(e===0)return Math.PI/2;var n=this.dot(t)/e;return Math.acos(Math.max(-1,Math.min(1,n)))},i.prototype.distanceTo=function(t){return Math.sqrt(this.distanceToSquared(t))},i.prototype.distanceToSquared=function(t){var e=this.x-t.x,n=this.y-t.y,r=this.z-t.z;return e*e+n*n+r*r},i.prototype.manhattanDistanceTo=function(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)+Math.abs(this.z-t.z)},i.prototype.setFromMatrixPosition=function(t){var e=t.elements;return this.x=e[12],this.y=e[13],this.z=e[14],this},i.prototype.setFromMatrixScale=function(t){var e=this.setFromMatrixColumn(t,0).length(),n=this.setFromMatrixColumn(t,1).length(),r=this.setFromMatrixColumn(t,2).length();return this.x=e,this.y=n,this.z=r,this},i.prototype.setFromMatrixColumn=function(t,e){return this.fromArray(t.elements,e*4)},i.prototype.setFromMatrix3Column=function(t,e){return this.fromArray(t.elements,e*3)},i.prototype.equals=function(t){return t.x===this.x&&t.y===this.y&&t.z===this.z},i.prototype.fromArray=function(t,e){return e===void 0&&(e=0),this.x=t[e],this.y=t[e+1],this.z=t[e+2],this},i.prototype.toArray=function(t,e){return t===void 0&&(t=[]),e===void 0&&(e=0),t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t},i.prototype.random=function(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this},i.prototype.randomDirection=function(){var t=Math.random()*Math.PI*2,e=Math.random()*2-1,n=Math.sqrt(1-e*e);return this.x=n*Math.cos(t),this.y=e,this.z=n*Math.sin(t),this},i.prototype[Symbol.iterator]=function(){return Fa(this,function(t){switch(t.label){case 0:return[4,this.x];case 1:return t.sent(),[4,this.y];case 2:return t.sent(),[4,this.z];case 3:return t.sent(),[2]}})},i.ORIGIN=Object.freeze(new i(0,0,0)),i.X_AXIS=Object.freeze(new i(1,0,0)),i.NEGATIVE_X_AXIS=Object.freeze(new i(-1,0,0)),i.Y_AXIS=Object.freeze(new i(0,1,0)),i.NEGATIVE_Y_AXIS=Object.freeze(new i(0,-1,0)),i.Z_AXIS=Object.freeze(new i(0,0,1)),i.NEGATIVE_Z_AXIS=Object.freeze(new i(0,0,-1)),i}(),bi=new w,Tr=new ae,Y=function(){function i(t,e,n,r,s,o,a,h,l,c,u,g,d,p,f,y){this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],t!=null&&e!=null&&n!=null&&r!=null&&s!=null&&o!=null&&a!=null&&h!=null&&l!=null&&c!=null&&u!=null&&g!=null&&d!=null&&p!=null&&f!=null&&y!=null&&this.set(t,e,n,r,s,o,a,h,l,c,u,g,d,p,f,y)}return i.prototype.set=function(t,e,n,r,s,o,a,h,l,c,u,g,d,p,f,y){var m=this.elements;return m[0]=t,m[4]=e,m[8]=n,m[12]=r,m[1]=s,m[5]=o,m[9]=a,m[13]=h,m[2]=l,m[6]=c,m[10]=u,m[14]=g,m[3]=d,m[7]=p,m[11]=f,m[15]=y,this},i.prototype.identity=function(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this},i.prototype.clone=function(){return new i().fromArray(this.elements)},i.prototype.copy=function(t){var e=this.elements,n=t.elements;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],e[9]=n[9],e[10]=n[10],e[11]=n[11],e[12]=n[12],e[13]=n[13],e[14]=n[14],e[15]=n[15],this},i.prototype.copyPosition=function(t){var e=this.elements,n=t.elements;return e[12]=n[12],e[13]=n[13],e[14]=n[14],this},i.prototype.setFromMatrix3=function(t){var e=t.elements;return this.set(e[0],e[3],e[6],0,e[1],e[4],e[7],0,e[2],e[5],e[8],0,0,0,0,1),this},i.prototype.setFromExtrusionDirection=function(t){if(gi.equalPoint3d(t,w.Z_AXIS))this.identity();else{var e=new w(1,0,0);Math.abs(t.x)<1/64&&Math.abs(t.y)<1/64?e.crossVectors(w.Y_AXIS,t).normalize():e.crossVectors(w.Z_AXIS,t).normalize();var n=t.clone().cross(e).normalize();this.set(e.x,e.y,e.z,0,n.x,n.y,n.z,0,t.x,t.y,t.z,0,0,0,0,1)}return this},i.prototype.extractBasis=function(t,e,n){return t.setFromMatrixColumn(this,0),e.setFromMatrixColumn(this,1),n.setFromMatrixColumn(this,2),this},i.prototype.makeBasis=function(t,e,n){return this.set(t.x,e.x,n.x,0,t.y,e.y,n.y,0,t.z,e.z,n.z,0,0,0,0,1),this},i.prototype.extractRotation=function(t){var e=this.elements,n=t.elements,r=1/qt.setFromMatrixColumn(t,0).length(),s=1/qt.setFromMatrixColumn(t,1).length(),o=1/qt.setFromMatrixColumn(t,2).length();return e[0]=n[0]*r,e[1]=n[1]*r,e[2]=n[2]*r,e[3]=0,e[4]=n[4]*s,e[5]=n[5]*s,e[6]=n[6]*s,e[7]=0,e[8]=n[8]*o,e[9]=n[9]*o,e[10]=n[10]*o,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this},i.prototype.makeRotationFromQuaternion=function(t){return this.compose(Va,t,ja)},i.prototype.lookAt=function(t,e,n){var r=this.elements;return ot.subVectors(t,e),ot.lengthSq()===0&&(ot.z=1),ot.normalize(),Lt.crossVectors(n,ot),Lt.lengthSq()===0&&(Math.abs(n.z)===1?ot.x+=1e-4:ot.z+=1e-4,ot.normalize(),Lt.crossVectors(n,ot)),Lt.normalize(),Oe.crossVectors(ot,Lt),r[0]=Lt.x,r[4]=Oe.x,r[8]=ot.x,r[1]=Lt.y,r[5]=Oe.y,r[9]=ot.y,r[2]=Lt.z,r[6]=Oe.z,r[10]=ot.z,this},i.prototype.multiply=function(t){return this.multiplyMatrices(this,t)},i.prototype.premultiply=function(t){return this.multiplyMatrices(t,this)},i.prototype.multiplyMatrices=function(t,e){var n=t.elements,r=e.elements,s=this.elements,o=n[0],a=n[4],h=n[8],l=n[12],c=n[1],u=n[5],g=n[9],d=n[13],p=n[2],f=n[6],y=n[10],m=n[14],x=n[3],S=n[7],A=n[11],L=n[15],T=r[0],M=r[4],X=r[8],I=r[12],z=r[1],O=r[5],R=r[9],W=r[13],J=r[2],yt=r[6],Dt=r[10],Ut=r[14],zt=r[3],$t=r[7],At=r[11],St=r[15];return s[0]=o*T+a*z+h*J+l*zt,s[4]=o*M+a*O+h*yt+l*$t,s[8]=o*X+a*R+h*Dt+l*At,s[12]=o*I+a*W+h*Ut+l*St,s[1]=c*T+u*z+g*J+d*zt,s[5]=c*M+u*O+g*yt+d*$t,s[9]=c*X+u*R+g*Dt+d*At,s[13]=c*I+u*W+g*Ut+d*St,s[2]=p*T+f*z+y*J+m*zt,s[6]=p*M+f*O+y*yt+m*$t,s[10]=p*X+f*R+y*Dt+m*At,s[14]=p*I+f*W+y*Ut+m*St,s[3]=x*T+S*z+A*J+L*zt,s[7]=x*M+S*O+A*yt+L*$t,s[11]=x*X+S*R+A*Dt+L*At,s[15]=x*I+S*W+A*Ut+L*St,this},i.prototype.multiplyScalar=function(t){var e=this.elements;return e[0]*=t,e[4]*=t,e[8]*=t,e[12]*=t,e[1]*=t,e[5]*=t,e[9]*=t,e[13]*=t,e[2]*=t,e[6]*=t,e[10]*=t,e[14]*=t,e[3]*=t,e[7]*=t,e[11]*=t,e[15]*=t,this},i.prototype.determinant=function(){var t=this.elements,e=t[0],n=t[4],r=t[8],s=t[12],o=t[1],a=t[5],h=t[9],l=t[13],c=t[2],u=t[6],g=t[10],d=t[14],p=t[3],f=t[7],y=t[11],m=t[15];return p*(+s*h*u-r*l*u-s*a*g+n*l*g+r*a*d-n*h*d)+f*(+e*h*d-e*l*g+s*o*g-r*o*d+r*l*c-s*h*c)+y*(+e*l*u-e*a*d-s*o*u+n*o*d+s*a*c-n*l*c)+m*(-r*a*c-e*h*u+e*a*g+r*o*u-n*o*g+n*h*c)},i.prototype.transpose=function(){var t=this.elements,e;return e=t[1],t[1]=t[4],t[4]=e,e=t[2],t[2]=t[8],t[8]=e,e=t[6],t[6]=t[9],t[9]=e,e=t[3],t[3]=t[12],t[12]=e,e=t[7],t[7]=t[13],t[13]=e,e=t[11],t[11]=t[14],t[14]=e,this},i.prototype.setPosition=function(t,e,n){var r=this.elements;return t instanceof w?(r[12]=t.x,r[13]=t.y,r[14]=t.z):(r[12]=t,r[13]=e,r[14]=n),this},i.prototype.invert=function(){var t=this.elements,e=t[0],n=t[1],r=t[2],s=t[3],o=t[4],a=t[5],h=t[6],l=t[7],c=t[8],u=t[9],g=t[10],d=t[11],p=t[12],f=t[13],y=t[14],m=t[15],x=u*y*l-f*g*l+f*h*d-a*y*d-u*h*m+a*g*m,S=p*g*l-c*y*l-p*h*d+o*y*d+c*h*m-o*g*m,A=c*f*l-p*u*l+p*a*d-o*f*d-c*a*m+o*u*m,L=p*u*h-c*f*h-p*a*g+o*f*g+c*a*y-o*u*y,T=e*x+n*S+r*A+s*L;if(T===0)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);var M=1/T;return t[0]=x*M,t[1]=(f*g*s-u*y*s-f*r*d+n*y*d+u*r*m-n*g*m)*M,t[2]=(a*y*s-f*h*s+f*r*l-n*y*l-a*r*m+n*h*m)*M,t[3]=(u*h*s-a*g*s-u*r*l+n*g*l+a*r*d-n*h*d)*M,t[4]=S*M,t[5]=(c*y*s-p*g*s+p*r*d-e*y*d-c*r*m+e*g*m)*M,t[6]=(p*h*s-o*y*s-p*r*l+e*y*l+o*r*m-e*h*m)*M,t[7]=(o*g*s-c*h*s+c*r*l-e*g*l-o*r*d+e*h*d)*M,t[8]=A*M,t[9]=(p*u*s-c*f*s-p*n*d+e*f*d+c*n*m-e*u*m)*M,t[10]=(o*f*s-p*a*s+p*n*l-e*f*l-o*n*m+e*a*m)*M,t[11]=(c*a*s-o*u*s-c*n*l+e*u*l+o*n*d-e*a*d)*M,t[12]=L*M,t[13]=(c*f*r-p*u*r+p*n*g-e*f*g-c*n*y+e*u*y)*M,t[14]=(p*a*r-o*f*r-p*n*h+e*f*h+o*n*y-e*a*y)*M,t[15]=(o*u*r-c*a*r+c*n*h-e*u*h-o*n*g+e*a*g)*M,this},i.prototype.scale=function(t){var e=this.elements,n=t.x,r=t.y,s=t.z;return e[0]*=n,e[4]*=r,e[8]*=s,e[1]*=n,e[5]*=r,e[9]*=s,e[2]*=n,e[6]*=r,e[10]*=s,e[3]*=n,e[7]*=r,e[11]*=s,this},i.prototype.getMaxScaleOnAxis=function(){var t=this.elements,e=t[0]*t[0]+t[1]*t[1]+t[2]*t[2],n=t[4]*t[4]+t[5]*t[5]+t[6]*t[6],r=t[8]*t[8]+t[9]*t[9]+t[10]*t[10];return Math.sqrt(Math.max(e,n,r))},i.prototype.makeTranslation=function(t,e,n){return t instanceof w?this.set(1,0,0,t.x,0,1,0,t.y,0,0,1,t.z,0,0,0,1):this.set(1,0,0,t,0,1,0,e,0,0,1,n,0,0,0,1),this},i.prototype.makeRotationX=function(t){var e=Math.cos(t),n=Math.sin(t);return this.set(1,0,0,0,0,e,-n,0,0,n,e,0,0,0,0,1),this},i.prototype.makeRotationY=function(t){var e=Math.cos(t),n=Math.sin(t);return this.set(e,0,n,0,0,1,0,0,-n,0,e,0,0,0,0,1),this},i.prototype.makeRotationZ=function(t){var e=Math.cos(t),n=Math.sin(t);return this.set(e,-n,0,0,n,e,0,0,0,0,1,0,0,0,0,1),this},i.prototype.makeRotationAxis=function(t,e){var n=Math.cos(e),r=Math.sin(e),s=1-n,o=t.x,a=t.y,h=t.z,l=s*o,c=s*a;return this.set(l*o+n,l*a-r*h,l*h+r*a,0,l*a+r*h,c*a+n,c*h-r*o,0,l*h-r*a,c*h+r*o,s*h*h+n,0,0,0,0,1),this},i.prototype.makeScale=function(t,e,n){return this.set(t,0,0,0,0,e,0,0,0,0,n,0,0,0,0,1),this},i.prototype.makeShear=function(t,e,n,r,s,o){return this.set(1,n,s,0,t,1,o,0,e,r,1,0,0,0,0,1),this},i.prototype.compose=function(t,e,n){var r=this.elements,s=e.x,o=e.y,a=e.z,h=e.w,l=s+s,c=o+o,u=a+a,g=s*l,d=s*c,p=s*u,f=o*c,y=o*u,m=a*u,x=h*l,S=h*c,A=h*u,L=n.x,T=n.y,M=n.z;return r[0]=(1-(f+m))*L,r[1]=(d+A)*L,r[2]=(p-S)*L,r[3]=0,r[4]=(d-A)*T,r[5]=(1-(g+m))*T,r[6]=(y+x)*T,r[7]=0,r[8]=(p+S)*M,r[9]=(y-x)*M,r[10]=(1-(g+f))*M,r[11]=0,r[12]=t.x,r[13]=t.y,r[14]=t.z,r[15]=1,this},i.prototype.decompose=function(t,e,n){var r=this.elements,s=qt.set(r[0],r[1],r[2]).length(),o=qt.set(r[4],r[5],r[6]).length(),a=qt.set(r[8],r[9],r[10]).length(),h=this.determinant();h<0&&(s=-s),t.x=r[12],t.y=r[13],t.z=r[14],ct.copy(this);var l=1/s,c=1/o,u=1/a;return ct.elements[0]*=l,ct.elements[1]*=l,ct.elements[2]*=l,ct.elements[4]*=c,ct.elements[5]*=c,ct.elements[6]*=c,ct.elements[8]*=u,ct.elements[9]*=u,ct.elements[10]*=u,e.setFromRotationMatrix(ct),n.x=s,n.y=o,n.z=a,this},i.prototype.equals=function(t){for(var e=this.elements,n=t.elements,r=0;r<16;r++)if(e[r]!==n[r])return!1;return!0},i.prototype.fromArray=function(t,e){e===void 0&&(e=0);for(var n=0;n<16;n++)this.elements[n]=t[n+e];return this},i.prototype.toArray=function(t,e){t===void 0&&(t=[]),e===void 0&&(e=0);var n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+3]=n[3],t[e+4]=n[4],t[e+5]=n[5],t[e+6]=n[6],t[e+7]=n[7],t[e+8]=n[8],t[e+9]=n[9],t[e+10]=n[10],t[e+11]=n[11],t[e+12]=n[12],t[e+13]=n[13],t[e+14]=n[14],t[e+15]=n[15],t},i.IDENTITY=Object.freeze(new i),i}(),qt=new w,ct=new Y,Va=new w(0,0,0),ja=new w(1,1,1),Lt=new w,Oe=new w,ot=new w,C=function(){function i(t,e){t===void 0&&(t=void 0),e===void 0&&(e=void 0),this.min=t==null?new w(1/0,1/0,1/0):new w(t.x,t.y,t.z),this.max=e==null?new w(-1/0,-1/0,-1/0):new w(e.x,e.y,e.z)}return i.prototype.set=function(t,e){return this.min.copy(t),this.max.copy(e),this},i.prototype.setFromArray=function(t){this.makeEmpty();for(var e=0,n=t.length;e<n;e+=3)this.expandByPoint(xi.fromArray(t,e));return this},i.prototype.setFromPoints=function(t){this.makeEmpty();for(var e=0,n=t.length;e<n;e++)this.expandByPoint(t[e]);return this},i.prototype.setFromCenterAndSize=function(t,e){var n=xi.copy(e).multiplyScalar(.5);return this.min.copy(t).sub(n),this.max.copy(t).add(n),this},i.prototype.clone=function(){return new i().copy(this)},i.prototype.copy=function(t){return this.min.copy(t.min),this.max.copy(t.max),this},i.prototype.makeEmpty=function(){return this.min.x=this.min.y=this.min.z=1/0,this.max.x=this.max.y=this.max.z=-1/0,this},i.prototype.isEmpty=function(){return this.max.x<this.min.x||this.max.y<this.min.y||this.max.z<this.min.z},i.prototype.getCenter=function(t){return this.isEmpty()?t.set(0,0,0):t.addVectors(this.min,this.max).multiplyScalar(.5)},i.prototype.getSize=function(t){return this.isEmpty()?t.set(0,0,0):t.subVectors(this.max,this.min)},Object.defineProperty(i.prototype,"center",{get:function(){return this.isEmpty()?new w(0,0,0):new w(0,0,0).addVectors(this.min,this.max).multiplyScalar(.5)},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"size",{get:function(){return this.isEmpty()?new w(0,0,0):new w(0,0,0).subVectors(this.max,this.min)},enumerable:!1,configurable:!0}),i.prototype.expandByPoint=function(t){return this.min.min(t),this.max.max(t),this},i.prototype.expandByVector=function(t){return this.min.sub(t),this.max.add(t),this},i.prototype.expandByScalar=function(t){return this.min.addScalar(-t),this.max.addScalar(t),this},i.prototype.containsPoint=function(t){return!(t.x<this.min.x||t.x>this.max.x||t.y<this.min.y||t.y>this.max.y||t.z<this.min.z||t.z>this.max.z)},i.prototype.containsBox=function(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y&&this.min.z<=t.min.z&&t.max.z<=this.max.z},i.prototype.getParameter=function(t,e){return e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y),(t.z-this.min.z)/(this.max.z-this.min.z))},i.prototype.intersectsBox=function(t){return!(t.max.x<this.min.x||t.min.x>this.max.x||t.max.y<this.min.y||t.min.y>this.max.y||t.max.z<this.min.z||t.min.z>this.max.z)},i.prototype.intersectsPlane=function(t){var e,n;return t.normal.x>0?(e=t.normal.x*this.min.x,n=t.normal.x*this.max.x):(e=t.normal.x*this.max.x,n=t.normal.x*this.min.x),t.normal.y>0?(e+=t.normal.y*this.min.y,n+=t.normal.y*this.max.y):(e+=t.normal.y*this.max.y,n+=t.normal.y*this.min.y),t.normal.z>0?(e+=t.normal.z*this.min.z,n+=t.normal.z*this.max.z):(e+=t.normal.z*this.max.z,n+=t.normal.z*this.min.z),e<=-t.constant&&n>=-t.constant},i.prototype.clampPoint=function(t,e){return e.copy(t).clamp(this.min,this.max)},i.prototype.distanceToPoint=function(t){return this.clampPoint(t,xi).distanceTo(t)},i.prototype.intersect=function(t){return this.min.max(t.min),this.max.min(t.max),this.isEmpty()&&this.makeEmpty(),this},i.prototype.union=function(t){return this.min.min(t.min),this.max.max(t.max),this},i.prototype.applyMatrix4=function(t){return this.isEmpty()?this:(_t[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(t),_t[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(t),_t[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(t),_t[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(t),_t[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(t),_t[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(t),_t[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(t),_t[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(t),this.setFromPoints(_t),this)},i.prototype.translate=function(t){return this.min.add(t),this.max.add(t),this},i.prototype.equals=function(t){return t.min.equals(this.min)&&t.max.equals(this.max)},i}(),_t=[new w,new w,new w,new w,new w,new w,new w,new w],xi=new w,Cr=new j,et=function(){function i(t,e){t===void 0&&(t=void 0),e===void 0&&(e=void 0),this.min=t==null?new j(1/0,1/0):new j(t.x,t.y),this.max=e==null?new j(-1/0,-1/0):new j(e.x,e.y)}return i.prototype.set=function(t,e){return this.min.copy(t),this.max.copy(e),this},i.prototype.setFromPoints=function(t){this.makeEmpty();for(var e=0,n=t.length;e<n;e++)this.expandByPoint(t[e]);return this},i.prototype.setFromCenterAndSize=function(t,e){var n=Cr.copy(e).multiplyScalar(.5);return this.min.copy(t).sub(n),this.max.copy(t).add(n),this},i.prototype.clone=function(){return new i().copy(this)},i.prototype.copy=function(t){return this.min.copy(t.min),this.max.copy(t.max),this},i.prototype.makeEmpty=function(){return this.min.x=this.min.y=1/0,this.max.x=this.max.y=-1/0,this},i.prototype.isEmpty=function(){return this.max.x<this.min.x||this.max.y<this.min.y},i.prototype.getCenter=function(t){return this.isEmpty()?t.set(0,0):t.addVectors(this.min,this.max).multiplyScalar(.5)},i.prototype.getSize=function(t){return this.isEmpty()?t.set(0,0):t.subVectors(this.max,this.min)},Object.defineProperty(i.prototype,"center",{get:function(){return this.isEmpty()?new j(0,0):new j(0,0).addVectors(this.min,this.max).multiplyScalar(.5)},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"size",{get:function(){return this.isEmpty()?new j(0,0):new j(0,0).subVectors(this.max,this.min)},enumerable:!1,configurable:!0}),i.prototype.expandByPoint=function(t){return this.min.min(t),this.max.max(t),this},i.prototype.expandByVector=function(t){return this.min.sub(t),this.max.add(t),this},i.prototype.expandByScalar=function(t){return this.min.addScalar(-t),this.max.addScalar(t),this},i.prototype.containsPoint=function(t){return!(t.x<this.min.x||t.x>this.max.x||t.y<this.min.y||t.y>this.max.y)},i.prototype.containsBox=function(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y},i.prototype.getParameter=function(t,e){return e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y))},i.prototype.intersectsBox=function(t){return!(t.max.x<this.min.x||t.min.x>this.max.x||t.max.y<this.min.y||t.min.y>this.max.y)},i.prototype.clampPoint=function(t,e){return e.copy(t).clamp(this.min,this.max)},i.prototype.distanceToPoint=function(t){return this.clampPoint(t,Cr).distanceTo(t)},i.prototype.intersect=function(t){return this.min.max(t.min),this.max.min(t.max),this.isEmpty()&&this.makeEmpty(),this},i.prototype.union=function(t){return this.min.min(t.min),this.max.max(t.max),this},i.prototype.translate=function(t){return this.min.add(t),this.max.add(t),this},i.prototype.equals=function(t){return t.min.equals(this.min)&&t.max.equals(this.max)},i}(),Or=new w,Ga=new w,Ha=new Me,Tn=function(){function i(t,e){t===void 0&&(t=new w(1,0,0)),e===void 0&&(e=0),this.normal=t,this.constant=e}return i.prototype.set=function(t,e){return this.normal.copy(t),this.constant=e,this},i.prototype.setComponents=function(t,e,n,r){return this.normal.set(t,e,n),this.constant=r,this},i.prototype.setFromNormalAndCoplanarPoint=function(t,e){return this.normal.copy(t),this.constant=-e.dot(this.normal),this},i.prototype.setFromCoplanarPoints=function(t,e,n){var r=Or.subVectors(n,e).cross(Ga.subVectors(t,e)).normalize();return this.setFromNormalAndCoplanarPoint(r,t),this},i.prototype.copy=function(t){return this.normal.copy(t.normal),this.constant=t.constant,this},i.prototype.normalize=function(){var t=1/this.normal.length();return this.normal.multiplyScalar(t),this.constant*=t,this},i.prototype.negate=function(){return this.constant*=-1,this.normal.negate(),this},i.prototype.distanceToPoint=function(t){return this.normal.dot(t)+this.constant},i.prototype.projectPoint=function(t,e){return e.copy(t).addScaledVector(this.normal,-this.distanceToPoint(t))},i.prototype.intersectsBox=function(t){return t.intersectsPlane(this)},i.prototype.coplanarPoint=function(t){return t.copy(this.normal).multiplyScalar(-this.constant)},i.prototype.applyMatrix4=function(t,e){var n=e||Ha.getNormalMatrix(t),r=this.coplanarPoint(Or).applyMatrix4(t),s=this.normal.applyMatrix3(n).normalize();return this.constant=-r.dot(s),this},i.prototype.translate=function(t){return this.constant-=t.dot(this.normal),this},i.prototype.equals=function(t){return t.normal.equals(this.normal)&&t.constant===this.constant},i.prototype.clone=function(){return new i().copy(this)},i}(),Wa=function(){var i=function(t,e){return i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,r){n.__proto__=r}||function(n,r){for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&(n[s]=r[s])},i(t,e)};return function(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");i(t,e);function n(){this.constructor=t}t.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}}(),P=function(i){Wa(t,i);function t(){return i!==null&&i.apply(this,arguments)||this}return t.prototype.clone=function(){return new t(this.x,this.y)},t.pointArrayToNumberArray=function(e){var n=new Array(e.length*2);return e.forEach(function(r,s){r.toArray(n,s*2)}),n},t}(j),Da=function(){var i=function(t,e){return i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,r){n.__proto__=r}||function(n,r){for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&(n[s]=r[s])},i(t,e)};return function(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");i(t,e);function n(){this.constructor=t}t.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}}(),_=function(i){Da(t,i);function t(){return i!==null&&i.apply(this,arguments)||this}return t.prototype.clone=function(){return new t(this.x,this.y,this.z)},t.pointArrayToNumberArray=function(e,n){n===void 0&&(n=!0);var r=n?3:2,s=new Array(e.length*r);return e.forEach(function(o,a){o.toArray(s,a*r)}),s},t}(w),Ua=function(i,t){var e={label:0,sent:function(){if(s[0]&1)throw s[1];return s[1]},trys:[],ops:[]},n,r,s,o;return o={next:a(0),throw:a(1),return:a(2)},typeof Symbol=="function"&&(o[Symbol.iterator]=function(){return this}),o;function a(l){return function(c){return h([l,c])}}function h(l){if(n)throw new TypeError("Generator is already executing.");for(;o&&(o=0,l[0]&&(e=0)),e;)try{if(n=1,r&&(s=l[0]&2?r.return:l[0]?r.throw||((s=r.return)&&s.call(r),0):r.next)&&!(s=s.call(r,l[1])).done)return s;switch(r=0,s&&(l=[l[0]&2,s.value]),l[0]){case 0:case 1:s=l;break;case 4:return e.label++,{value:l[1],done:!1};case 5:e.label++,r=l[1],l=[0];continue;case 7:l=e.ops.pop(),e.trys.pop();continue;default:if(s=e.trys,!(s=s.length>0&&s[s.length-1])&&(l[0]===6||l[0]===2)){e=0;continue}if(l[0]===3&&(!s||l[1]>s[0]&&l[1]<s[3])){e.label=l[1];break}if(l[0]===6&&e.label<s[1]){e.label=s[1],s=l;break}if(s&&e.label<s[2]){e.label=s[2],e.ops.push(l);break}s[2]&&e.ops.pop(),e.trys.pop();continue}l=t.call(i,e)}catch(c){l=[6,c],r=0}finally{n=s=0}if(l[0]&5)throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}},kr=new Y,Yr=new ae,$a=function(){function i(t,e,n,r){t===void 0&&(t=0),e===void 0&&(e=0),n===void 0&&(n=0),r===void 0&&(r=i.DEFAULT_ORDER),this._x=t,this._y=e,this._z=n,this._order=r}return Object.defineProperty(i.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._onChangeCallback()},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._onChangeCallback()},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"z",{get:function(){return this._z},set:function(t){this._z=t,this._onChangeCallback()},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"order",{get:function(){return this._order},set:function(t){this._order=t,this._onChangeCallback()},enumerable:!1,configurable:!0}),i.prototype.set=function(t,e,n,r){return r===void 0&&(r=this._order),this._x=t,this._y=e,this._z=n,this._order=r,this._onChangeCallback(),this},i.prototype.clone=function(){return new i(this._x,this._y,this._z,this._order)},i.prototype.copy=function(t){return this._x=t._x,this._y=t._y,this._z=t._z,this._order=t._order,this._onChangeCallback(),this},i.prototype.setFromRotationMatrix=function(t,e,n){e===void 0&&(e=this._order),n===void 0&&(n=!0);var r=t.elements,s=r[0],o=r[4],a=r[8],h=r[1],l=r[5],c=r[9],u=r[2],g=r[6],d=r[10];switch(e){case"XYZ":this._y=Math.asin(bt(a,-1,1)),Math.abs(a)<.9999999?(this._x=Math.atan2(-c,d),this._z=Math.atan2(-o,s)):(this._x=Math.atan2(g,l),this._z=0);break;case"YXZ":this._x=Math.asin(-bt(c,-1,1)),Math.abs(c)<.9999999?(this._y=Math.atan2(a,d),this._z=Math.atan2(h,l)):(this._y=Math.atan2(-u,s),this._z=0);break;case"ZXY":this._x=Math.asin(bt(g,-1,1)),Math.abs(g)<.9999999?(this._y=Math.atan2(-u,d),this._z=Math.atan2(-o,l)):(this._y=0,this._z=Math.atan2(h,s));break;case"ZYX":this._y=Math.asin(-bt(u,-1,1)),Math.abs(u)<.9999999?(this._x=Math.atan2(g,d),this._z=Math.atan2(h,s)):(this._x=0,this._z=Math.atan2(-o,l));break;case"YZX":this._z=Math.asin(bt(h,-1,1)),Math.abs(h)<.9999999?(this._x=Math.atan2(-c,l),this._y=Math.atan2(-u,s)):(this._x=0,this._y=Math.atan2(a,d));break;case"XZY":this._z=Math.asin(-bt(o,-1,1)),Math.abs(o)<.9999999?(this._x=Math.atan2(g,l),this._y=Math.atan2(a,s)):(this._x=Math.atan2(-c,d),this._y=0);break;default:}return this._order=e,n===!0&&this._onChangeCallback(),this},i.prototype.setFromQuaternion=function(t,e,n){return n===void 0&&(n=!0),kr.makeRotationFromQuaternion(t),this.setFromRotationMatrix(kr,e,n)},i.prototype.setFromVector3=function(t,e){return e===void 0&&(e=this._order),this.set(t.x,t.y,t.z,e)},i.prototype.reorder=function(t){return Yr.setFromEuler(this),this.setFromQuaternion(Yr,t)},i.prototype.equals=function(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._order===this._order},i.prototype.fromArray=function(t){return this._x=t[0],this._y=t[1],this._z=t[2],t[3]!==void 0&&(this._order=t[3]),this._onChangeCallback(),this},i.prototype.toArray=function(t,e){return t===void 0&&(t=[]),e===void 0&&(e=0),t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._order,t},i.prototype._onChange=function(t){return this._onChangeCallback=t,this},i.prototype._onChangeCallback=function(){},i.prototype[Symbol.iterator]=function(){return Ua(this,function(t){switch(t.label){case 0:return[4,this._x];case 1:return t.sent(),[4,this._y];case 2:return t.sent(),[4,this._z];case 3:return t.sent(),[4,this._order];case 4:return t.sent(),[2]}})},i.DEFAULT_ORDER="XYZ",i}();function Cn(i,t,e){e===void 0&&(e=!1);for(var n=i.x,r=i.y,s=!1,o=t.length,a=0,h=o-1;a<o;h=a++){var l=t[a].x,c=t[a].y,u=t[h].x,g=t[h].y,d=c>r!=g>r;e&&(d=c>=r!=g>=r);var p=d&&n<(u-l)*(r-c)/(g-c)+l;p&&(s=!s)}return s}function Ms(i,t){if(i.length===0||t.length===0)return!1;var e=new et().setFromPoints(i),n=new et().setFromPoints(t);if(!e.intersectsBox(n))return!1;for(var r=0;r<i.length;){if(Cn(i[r],t,!0))return!0;r<i.length-1&&gi.equalPoint2d(i[r+1],i[r])&&++r,++r}return!1}var Is={isPointInPolygon:Cn,isPolygonIntersect:Ms},ke=function(i,t){var e=typeof Symbol=="function"&&i[Symbol.iterator];if(!e)return i;var n=e.call(i),r,s=[],o;try{for(;(t===void 0||t-- >0)&&!(r=n.next()).done;)s.push(r.value)}catch(a){o={error:a}}finally{try{r&&!r.done&&(e=n.return)&&e.call(n)}finally{if(o)throw o.error}}return s},Ye=function(i,t,e){if(e||arguments.length===2)for(var n=0,r=t.length,s;n<r;n++)(s||!(n in t))&&(s||(s=Array.prototype.slice.call(t,0,n)),s[n]=t[n]);return i.concat(s||Array.prototype.slice.call(t))};function qa(i,t){for(var e=[],n=t-1,r=i,s=0;s<=r;s++)e.push(0);for(var s=1;s<=n-r;s++)e.push(s);for(var s=0;s<=r;s++)e.push(n-r+1);return e}function Za(i,t){for(var e=t.length-1,n=i,r=[0],s=0,o=1;o<=e;o++){var a=t[o][0]-t[o-1][0],h=t[o][1]-t[o-1][1],l=t[o][2]-t[o-1][2],c=Math.sqrt(a*a+h*h+l*l);s+=c,r.push(s)}for(var u=[],o=0;o<=n;o++)u.push(0);for(var o=1;o<=e-n;o++){var g=r[o]/s;u.push(g*(e-n+1))}for(var o=0;o<=n;o++)u.push(e-n+1);return u}function Ts(i,t){t===void 0&&(t="Uniform");var e=i.length;if(e===0)return[];if(e===1)return[0];var n=e-1;if(t==="Uniform")return new Array(e).fill(0).map(function(g,d){return d/n});for(var r=[0],s=0,o=1;o<=n;o++){var a=i[o][0]-i[o-1][0],h=i[o][1]-i[o-1][1],l=i[o][2]-i[o-1][2],c=Math.sqrt(a*a+h*h+l*l),u=t==="SqrtChord"?Math.sqrt(c):c;s+=u,r.push(s)}return s<1e-12?new Array(e).fill(0).map(function(g,d){return d/n}):r.map(function(g){return g/s})}function Cs(i,t){for(var e=t.length-1,n=i,r=e+n+1,s=new Array(r+1).fill(0),o=t[t.length-1],a=r-n;a<=r;a++)s[a]=o;for(var h=1;h<=e-n;h++){for(var l=0,a=h;a<h+n;a++)l+=t[a];s[h+n]=l/n}return s}function Ka(i,t){for(var e=t.length-1,n=i,r=[0],s=0,o=1;o<=e;o++){var a=t[o][0]-t[o-1][0],h=t[o][1]-t[o-1][1],l=t[o][2]-t[o-1][2],c=Math.sqrt(a*a+h*h+l*l),u=Math.sqrt(c);s+=u,r.push(s)}for(var g=[],o=0;o<=n;o++)g.push(0);for(var o=1;o<=e-n;o++){var d=r[o]/s;g.push(d*(e-n+1))}for(var o=0;o<=n;o++)g.push(e-n+1);return g}function vi(i,t){for(var e=i.length,n=i.map(function(y){return y.slice()}),r=t.slice(),s=0;s<e;s++){for(var o=s,a=Math.abs(n[s][s]),h=s+1;h<e;h++){var l=Math.abs(n[h][s]);l>a&&(a=l,o=h)}if(a<1e-12)throw new Error("Interpolation matrix is singular.");if(o!==s){var c=n[s];n[s]=n[o],n[o]=c;var u=r[s];r[s]=r[o],r[o]=u}for(var h=s+1;h<e;h++){var g=n[h][s]/n[s][s];if(!(Math.abs(g)<1e-14)){for(var d=s;d<e;d++)n[h][d]-=g*n[s][d];r[h]-=g*r[s]}}}for(var p=new Array(e).fill(0),h=e-1;h>=0;h--){for(var f=r[h],d=h+1;d<e;d++)f-=n[h][d]*p[d];p[h]=f/n[h][h]}return p}function On(i,t,e,n,r){var s,o,a,h,l,c;if(e===void 0&&(e="Uniform"),i.length===0)return{controlPoints:[],knots:[],weights:[]};var u=i.map(function(At){var St;return[At[0],At[1],(St=At[2])!==null&&St!==void 0?St:0]}),g=!!n,d=!!r,p=(g?1:0)+(d?1:0),f=u.length-1,y=f+p;if(y<t)throw new Error("Not enough points to interpolate a curve of this degree.");var m=Ts(u,e),x=m.slice();g&&x.unshift(m[0]),d&&x.push(m[m.length-1]);var S=Cs(t,x),A=y+1,L=new Array(A),T=new Array(A),M=new Array(A),X=new Array(A),I=0;L[I]=new Array(A).fill(0),L[I][0]=1,T[I]=u[0][0],M[I]=u[0][1],X[I]=u[0][2],I++;for(var z=1;z<=f-1;z++){var O=m[z];L[I]=new Array(A).fill(0);for(var R=0;R<=y;R++)L[I][R]=Nt(R,t,O,S);T[I]=u[z][0],M[I]=u[z][1],X[I]=u[z][2],I++}if(L[I]=new Array(A).fill(0),L[I][y]=1,T[I]=u[f][0],M[I]=u[f][1],X[I]=u[f][2],I++,g){var W=S[t+1]-S[0],J=W!==0?t/W:0;L[I]=new Array(A).fill(0),L[I][0]=-J,L[I][1]=J,T[I]=(s=n==null?void 0:n[0])!==null&&s!==void 0?s:0,M[I]=(o=n==null?void 0:n[1])!==null&&o!==void 0?o:0,X[I]=(a=n==null?void 0:n[2])!==null&&a!==void 0?a:0,I++}if(d){var W=S[y+t+1]-S[y],J=W!==0?t/W:0;L[I]=new Array(A).fill(0),L[I][y-1]=-J,L[I][y]=J,T[I]=(h=r==null?void 0:r[0])!==null&&h!==void 0?h:0,M[I]=(l=r==null?void 0:r[1])!==null&&l!==void 0?l:0,X[I]=(c=r==null?void 0:r[2])!==null&&c!==void 0?c:0,I++}for(var yt=vi(L,T),Dt=vi(L,M),Ut=vi(L,X),zt=new Array(A),z=0;z<A;z++)zt[z]=[yt[z],Dt[z],Ut[z]];var $t=new Array(A).fill(1);return{controlPoints:zt,knots:S,weights:$t}}function Nt(i,t,e,n){if(t===0)return e>=n[i]&&e<n[i+1]?1:0;var r=n[i+t]-n[i],s=n[i+t+1]-n[i+1],o=r>1e-10?(e-n[i])/r:0,a=s>1e-10?(n[i+t+1]-e)/s:0;return o*Nt(i,t-1,e,n)+a*Nt(i+1,t-1,e,n)}function me(i,t,e,n,r){var s=n.length-1,o=t;if(i=Math.max(e[o],Math.min(e[s+1],i)),Math.abs(i-e[s+1])<1e-8)return Ye([],ke(n[s]),!1);if(Math.abs(i-e[o])<1e-8)return Ye([],ke(n[0]),!1);for(var a=[0,0,0],h=0,l=0;l<=s;l++){var c=Nt(l,o,i,e),u=r[l]*c;a[0]+=n[l][0]*u,a[1]+=n[l][1]*u,a[2]+=n[l][2]*u,h+=u}if(Math.abs(h)<1e-10){var g=e[e.length-o-1];if(Math.abs(i-g)<1e-8)return Ye([],ke(n[s]),!1);if(Math.abs(i-e[o])<1e-8)return Ye([],ke(n[0]),!1)}return Math.abs(h)>=1e-10&&(a[0]/=h,a[1]/=h,a[2]/=h),a}function Oi(i,t,e,n){if(t===0)return 0;var r=n[i+t]-n[i],s=n[i+t+1]-n[i+1],o=0;return r>1e-10&&(o+=t/r*Nt(i,t-1,e,n)),s>1e-10&&(o-=t/s*Nt(i+1,t-1,e,n)),o}function Qa(i,t,e,n){if(t<=1)return 0;var r=n[i+t]-n[i],s=n[i+t+1]-n[i+1],o=0;return r>1e-10&&(o+=t/r*Oi(i,t-1,e,n)),s>1e-10&&(o-=t/s*Oi(i+1,t-1,e,n)),o}function Ja(i,t,e,n,r){var s=n.length-1,o=t,a=e[o],h=e[s+1];i=Math.max(a,Math.min(h,i));for(var l=[0,0,0],c=[0,0,0],u=[0,0,0],g=0,d=0,p=0,f=0;f<=s;f++){var y=Nt(f,o,i,e),m=Oi(f,o,i,e),x=Qa(f,o,i,e),S=r[f],A=S*y,L=S*m,T=S*x,M=n[f];l[0]+=A*M[0],l[1]+=A*M[1],l[2]+=A*M[2],c[0]+=L*M[0],c[1]+=L*M[1],c[2]+=L*M[2],u[0]+=T*M[0],u[1]+=T*M[1],u[2]+=T*M[2],g+=A,d+=L,p+=T}if(Math.abs(g)<1e-10){var X=me(i,t,e,n,r);return{point:X,deriv1:[0,0,0],deriv2:[0,0,0]}}var I=g*g,z=[l[0]/g,l[1]/g,l[2]/g],O=[(c[0]*g-l[0]*d)/I,(c[1]*g-l[1]*d)/I,(c[2]*g-l[2]*d)/I],R=u[0]*g-l[0]*p,W=u[1]*g-l[1]*p,J=u[2]*g-l[2]*p,yt=[R/I-2*d*O[0]/g,W/I-2*d*O[1]/g,J/I-2*d*O[2]/g];return{point:z,deriv1:O,deriv2:yt}}function tl(i,t){var e=i[0],n=i[1],r=t[0],s=t[1],o=e*e+n*n;return o<1e-20?0:(e*s-n*r)/Math.pow(o,1.5)}function Os(i,t,e,n){for(var r=i,s=t[r],o=t[t.length-r-1],a=0,h=1e3,l=(o-s)/h,c=me(s,i,t,e,n),u=1;u<=h;u++){var g=s+u*l,d=me(g,i,t,e,n),p=d[0]-c[0],f=d[1]-c[1],y=d[2]-c[2];a+=Math.sqrt(p*p+f*f+y*y),c=d}var m=me(o,i,t,e,n),x=m[0]-c[0],S=m[1]-c[1],A=m[2]-c[2];return a+=Math.sqrt(x*x+S*S+A*A),a}function el(i,t,e,n,r){return t===void 0&&(t=3),e===void 0&&(e="Uniform"),i.length===0?[]:On(i,t,e,n,r).controlPoints}var Xr=new Y,Nr=new w,il=new w,nl=new w,Pi=new _;function ks(i){return new Y().setFromExtrusionDirection(new w(i.x,i.y,i.z))}function kn(i){return Xr.setFromExtrusionDirection(new w(i.x,i.y,i.z)),Xr.extractBasis(Nr,il,nl),Nr.clone()}function rl(i,t){var e;return new _(i.x,i.y,(e=i.z)!==null&&e!==void 0?e:0).applyMatrix4(ks(t))}function ve(i,t){var e;return new _(i.x,i.y,(e=i.z)!==null&&e!==void 0?e:0).applyMatrix4(ks(t).invert())}function ki(i,t,e){var n,r,s=ve(i,e),o=ve(t,e);return Pi.set(o.x-s.x,o.y-s.y,((n=o.z)!==null&&n!==void 0?n:0)-((r=s.z)!==null&&r!==void 0?r:0)),E.normalizeAngle(Math.atan2(Pi.y,Pi.x))}function Ys(i){var t=i.length;if(t<3)return 0;for(var e=0,n=0,r=t-1;n<t;r=n++){var s=i[r],o=i[n];e+=s.x*o.y-o.x*s.y}return e*.5}function sl(i){return Math.abs(Ys(i))}function ol(i){var t,e,n=i.length;if(n<3)return 0;for(var r=0,s=0,o=0,a=0,h=n-1;a<n;h=a++){var l=i[h],c=i[a],u=l.x,g=l.y,d=(t=l.z)!==null&&t!==void 0?t:0,p=c.x,f=c.y,y=(e=c.z)!==null&&e!==void 0?e:0;r+=(d+y)*(g-f),s+=(u+p)*(d-y),o+=(g+f)*(u-p)}return .5*Math.hypot(r,s,o)}function al(i){return i.length<3?0:sl(i)}function Xs(i){return i.length<3?0:ol(i)}var Ns=function(){function i(){this._boundingBoxNeedsUpdate=!1}return Object.defineProperty(i.prototype,"boundingBoxNeedUpdate",{get:function(){return this._boundingBoxNeedsUpdate},enumerable:!1,configurable:!0}),i}(),ll=function(){var i=function(t,e){return i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,r){n.__proto__=r}||function(n,r){for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&(n[s]=r[s])},i(t,e)};return function(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");i(t,e);function n(){this.constructor=t}t.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}}(),Yn=function(i){ll(t,i);function t(){return i!==null&&i.apply(this,arguments)||this}return t.prototype.translate=function(e){return this.transform(new Me().makeTranslation(e.x,e.y))},Object.defineProperty(t.prototype,"box",{get:function(){return(this._box==null||this._boundingBoxNeedsUpdate)&&(this._box=this.calculateBoundingBox(),this._boundingBoxNeedsUpdate=!1),this._box},enumerable:!1,configurable:!0}),t}(Ns),hl=function(){var i=function(t,e){return i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,r){n.__proto__=r}||function(n,r){for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&(n[s]=r[s])},i(t,e)};return function(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");i(t,e);function n(){this.constructor=t}t.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}}(),ce=function(i){hl(t,i);function t(){var e=i.call(this)||this;return e.arcLengthDivisions=100,e}return Object.defineProperty(t.prototype,"startPoint",{get:function(){return this.getPoint(0)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"endPoint",{get:function(){return this.getPoint(1)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"length",{get:function(){return this.getLength()},enumerable:!1,configurable:!0}),t.prototype.getPoint=function(e){throw new Error("AcGeCurve2d: .getPoint() not implemented.")},t.prototype.getPointAt=function(e){var n=this.getUtoTmapping(e);return this.getPoint(n)},t.prototype.getPoints=function(e){e===void 0&&(e=5);for(var n=[],r=0;r<=e;r++)n.push(this.getPoint(r/e));return n},t.prototype.getSpacedPoints=function(e){e===void 0&&(e=5);for(var n=[],r=0;r<=e;r++)n.push(this.getPointAt(r/e));return n},t.prototype.getLength=function(){var e=this.getLengths();return e[e.length-1]},t.prototype.getLengths=function(e){e===void 0&&(e=this.arcLengthDivisions);var n=[],r,s=this.getPoint(0),o=0;n.push(0);for(var a=1;a<=e;a++)r=this.getPoint(a/e),o+=r.distanceTo(s),n.push(o),s=r;return n},t.prototype.getUtoTmapping=function(e,n){var r=this.getLengths(),s=0,o=r.length,a;n?a=n:a=e*r[o-1];for(var h=0,l=o-1,c;h<=l;)if(s=Math.floor(h+(l-h)/2),c=r[s]-a,c<0)h=s+1;else if(c>0)l=s-1;else{l=s;break}if(s=l,r[s]===a)return s/(o-1);var u=r[s],g=r[s+1],d=g-u,p=(a-u)/d,f=(s+p)/(o-1);return f},t.prototype.getTangent=function(e){var n=1e-4,r=e-n,s=e+n;r<0&&(r=0),s>1&&(s=1);var o=this.getPoint(r),a=this.getPoint(s),h=new P;return h.copy(a).sub(o).normalize(),h},t.prototype.getTangentAt=function(e){var n=this.getUtoTmapping(e);return this.getTangent(n)},t}(Yn),cl=function(){var i=function(t,e){return i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,r){n.__proto__=r}||function(n,r){for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&(n[s]=r[s])},i(t,e)};return function(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");i(t,e);function n(){this.constructor=t}t.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}}(),Xe=function(i){var t=typeof Symbol=="function"&&Symbol.iterator,e=t&&i[t],n=0;if(e)return e.call(i);if(i&&typeof i.length=="number")return{next:function(){return i&&n>=i.length&&(i=void 0),{value:i&&i[n++],done:!i}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},Ne=function(i,t){var e=typeof Symbol=="function"&&i[Symbol.iterator];if(!e)return i;var n=e.call(i),r,s=[],o;try{for(;(t===void 0||t-- >0)&&!(r=n.next()).done;)s.push(r.value)}catch(a){o={error:a}}finally{try{r&&!r.done&&(e=n.return)&&e.call(n)}finally{if(o)throw o.error}}return s},Be=function(i,t,e){if(e||arguments.length===2)for(var n=0,r=t.length,s;n<r;n++)(s||!(n in t))&&(s||(s=Array.prototype.slice.call(t,0,n)),s[n]=t[n]);return i.concat(s||Array.prototype.slice.call(t))},pt=function(i){cl(t,i);function t(e,n,r,s,o){var a=i.call(this)||this,h=+(e!==void 0)+ +(n!==void 0)+ +(r!==void 0)+ +(s!==void 0)+ +(o!==void 0);if(h==3)typeof e=="object"&&typeof n=="object"&&typeof r=="object"?a.createByThreePoints(e,n,r):a.createByStartEndPointsAndBulge(e,n,r);else if(h==5){var l=e;a.center=new P(l.x,l.y),a.radius=n,a._clockwise=o,a._startAngle=a._clockwise?a._mirrorAngle(E.normalizeAngle(r)):E.normalizeAngle(r),a._endAngle=a._clockwise?a._mirrorAngle(E.normalizeAngle(s)):E.normalizeAngle(s)}else throw st.ILLEGAL_PARAMETERS;return a}return t.prototype.createByThreePoints=function(e,n,r){var s=function(X,I){return{x:(X.x+I.x)/2,y:(X.y+I.y)/2}},o=function(X,I){return(I.y-X.y)/(I.x-X.x)},a=function(X){return-1/X},h=s(e,n),l=s(n,r),c=o(e,n),u=o(n,r),g=a(c),d=a(u),p=function(X,I,z,O){var R=(O-I)/(X-z),W=X*R+I;return{x:R,y:W}},f=h.y-g*h.x,y=l.y-d*l.x,m=p(g,f,d,y),x=Math.sqrt(Math.pow(e.x-m.x,2)+Math.pow(e.y-m.y,2)),S=function(X,I){return Math.atan2(X.y-I.y,X.x-I.x)},A=S(e,m),L=S(n,m),T=S(r,m),M=T>A&&T<L||A>T&&A<L||L>T&&L<A;this.center=m,this.radius=x,this._clockwise=!M,this._startAngle=A,this._endAngle=T},t.prototype.createByStartEndPointsAndBulge=function(e,n,r){var s,o,a;r<0?(s=Math.atan(-r)*4,o=new j(e),a=new j(n)):(s=Math.atan(r)*4,o=new j(n),a=new j(e));var h=new j().subVectors(a,o),l=h.length(),c=new j().addVectors(o,h.multiplyScalar(.5)),u=Math.abs(l/2/Math.tan(s/2)),g=h.normalize(),d=r<0?-Math.PI/2:Math.PI/2,p=new j(g.x*Math.cos(d)-g.y*Math.sin(d),g.y*Math.cos(d)+g.x*Math.sin(d)),f;s<Math.PI?r<0?f=c.add(p.multiplyScalar(u)):f=c.add(p.multiplyScalar(-u)):r<0?f=c.add(p.multiplyScalar(-u)):f=c.add(p.multiplyScalar(u)),r<0?(this._startAngle=Math.atan2(o.y-f.y,o.x-f.x),this._endAngle=Math.atan2(a.y-f.y,a.x-f.x)):(this._startAngle=Math.atan2(a.y-f.y,a.x-f.x),this._endAngle=Math.atan2(o.y-f.y,o.x-f.x)),this._clockwise=r<0,this.center=f,this.radius=a.sub(f).length()},Object.defineProperty(t.prototype,"center",{get:function(){return this._center},set:function(e){this._center=new P(e.x,e.y),this._boundingBoxNeedsUpdate=!0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"radius",{get:function(){return this._radius},set:function(e){this._radius=e,this._boundingBoxNeedsUpdate=!0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"startAngle",{get:function(){return this._clockwise?this._mirrorAngle(this._startAngle):this._startAngle},set:function(e){this._startAngle=this._clockwise?this._mirrorAngle(E.normalizeAngle(e)):E.normalizeAngle(e),this._boundingBoxNeedsUpdate=!0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"endAngle",{get:function(){return this._clockwise?this._mirrorAngle(this._endAngle):this._endAngle},set:function(e){var n=this.startAngle==0&&e==B?e:E.normalizeAngle(e);this._endAngle=this._clockwise?this._mirrorAngle(n):n,this._boundingBoxNeedsUpdate=!0},enumerable:!1,configurable:!0}),t.prototype._mirrorAngle=function(e){var n=e*180/Math.PI,r=(360-n)%360;return r*Math.PI/180},t.prototype._getInternalAngle=function(e){return this._clockwise?this._mirrorAngle(e):e},Object.defineProperty(t.prototype,"deltaAngle",{get:function(){var e=this._getInternalAngle(this.startAngle),n=this._getInternalAngle(this.endAngle);return this.clockwise?E.normalizeAngle(e-n):E.normalizeAngle(n-e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"clockwise",{get:function(){return this._clockwise},set:function(e){this._clockwise=e,this._boundingBoxNeedsUpdate=!0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"startPoint",{get:function(){return this.getPointAtAngle(this.startAngle)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"endPoint",{get:function(){return this.getPointAtAngle(this.endAngle)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"midPoint",{get:function(){var e=this._getInternalAngle(this.startAngle),n=this._clockwise?E.normalizeAngle(e-this.deltaAngle/2):E.normalizeAngle(e+this.deltaAngle/2),r=this._clockwise?this._mirrorAngle(n):n;return this.getPointAtAngle(r)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"closed",{get:function(){var e=this._getInternalAngle(this.startAngle),n=this._getInternalAngle(this.endAngle);return Math.abs(n-e)/Math.PI%2==0},enumerable:!1,configurable:!0}),t.prototype.calculateBoundingBox=function(){var e,n,r=[this.startPoint,this.endPoint],s=[0,Math.PI/2,Math.PI,3*Math.PI/2];try{for(var o=Xe(s),a=o.next();!a.done;a=o.next()){var h=a.value,l=this._getInternalAngle(h);E.isBetweenAngle(l,this._getInternalAngle(this.startAngle),this._getInternalAngle(this.endAngle),this.clockwise)&&r.push(this.getPointAtAngle(h))}}catch(g){e={error:g}}finally{try{a&&!a.done&&(n=o.return)&&n.call(o)}finally{if(e)throw e.error}}var c=r.map(function(g){return g.x}),u=r.map(function(g){return g.y});return new et(new P(Math.min.apply(Math,Be([],Ne(c),!1)),Math.min.apply(Math,Be([],Ne(u),!1))),new P(Math.max.apply(Math,Be([],Ne(c),!1)),Math.max.apply(Math,Be([],Ne(u),!1))))},Object.defineProperty(t.prototype,"length",{get:function(){return Math.abs(this.deltaAngle*this.radius)},enumerable:!1,configurable:!0}),t.prototype.transform=function(e){var n=this,r=e,s=this.center.clone().applyMatrix2d(r),o=this.startPoint.clone().applyMatrix2d(r);if(this.closed)return this.center=s,this.radius=s.distanceTo(o),this._startAngle=Math.atan2(o.y-s.y,o.x-s.x),this._endAngle=this._startAngle,this._clockwise=r.determinant()<0?!this._clockwise:this._clockwise,this._boundingBoxNeedsUpdate=!0,this;var a=this.midPoint.clone().applyMatrix2d(r),h=this.endPoint.clone().applyMatrix2d(r),l=new t(o,a,h),c=r.determinant()<0?!this.clockwise:this.clockwise,u=function(g){var d=E.normalizeAngle(g);return c?n._mirrorAngle(d):d};return this.center=l.center,this.radius=l.radius,this.clockwise=c,this.startAngle=u(Math.atan2(o.y-l.center.y,o.x-l.center.x)),this.endAngle=u(Math.atan2(h.y-l.center.y,h.x-l.center.x)),this._boundingBoxNeedsUpdate=!0,this},t.prototype.clone=function(){return new t(this.center.clone(),this.radius,this._startAngle,this._endAngle,this.clockwise)},t.prototype.getPointAtAngle=function(e){var n=this._getInternalAngle(e),r=this.center.x+this.radius*Math.cos(n),s=this.center.y+this.radius*Math.sin(n);return new P(r,s)},t.prototype.getQuadrantPoints=function(){var e,n,r=[],s=this._getInternalAngle(this.startAngle),o=this._getInternalAngle(this.endAngle),a=[0,Math.PI/2,Math.PI,3*Math.PI/2];try{for(var h=Xe(a),l=h.next();!l.done;l=h.next()){var c=l.value,u=this._getInternalAngle(c);E.isBetweenAngle(u,s,o,this.clockwise)&&r.push(this.getPointAtAngle(c))}}catch(g){e={error:g}}finally{try{l&&!l.done&&(n=h.return)&&n.call(h)}finally{if(e)throw e.error}}return r},t.prototype.nearestPoint=function(e){var n=new P(e.x,e.y),r=n.x-this.center.x,s=n.y-this.center.y,o=Math.hypot(r,s);if(o<1e-12)return this.startPoint.clone();var a=Math.atan2(s,r),h=this.clockwise?this._mirrorAngle(E.normalizeAngle(a)):E.normalizeAngle(a),l=this._getInternalAngle(h),c=this._getInternalAngle(this.startAngle),u=this._getInternalAngle(this.endAngle);if(E.isBetweenAngle(l,c,u,this.clockwise))return this.getPointAtAngle(h);var g=n.distanceToSquared(this.startPoint),d=n.distanceToSquared(this.endPoint);return g<=d?this.startPoint.clone():this.endPoint.clone()},t.prototype.perpendicularPoints=function(e){var n,r,s=new P(e.x,e.y),o=s.x-this.center.x,a=s.y-this.center.y,h=Math.hypot(o,a);if(h<1e-12)return[];var l=o/h,c=a/h,u=[new P(this.center.x+l*this.radius,this.center.y+c*this.radius),new P(this.center.x-l*this.radius,this.center.y-c*this.radius)],g=[],d=this._getInternalAngle(this.startAngle),p=this._getInternalAngle(this.endAngle);try{for(var f=Xe(u),y=f.next();!y.done;y=f.next()){var m=y.value,x=Math.atan2(m.y-this.center.y,m.x-this.center.x),S=this.clockwise?this._mirrorAngle(E.normalizeAngle(x)):E.normalizeAngle(x),A=this._getInternalAngle(S);(this.closed||E.isBetweenAngle(A,d,p,this.clockwise))&&g.push(m)}}catch(L){n={error:L}}finally{try{y&&!y.done&&(r=f.return)&&r.call(f)}finally{if(n)throw n.error}}return g},t.prototype.tangentPoints=function(e){var n,r,s=[],o=e.x-this.center.x,a=e.y-this.center.y,h=Math.hypot(o,a),l=this.radius;if(h<l)return s;var c=Math.acos(l/h),u=Math.atan2(a,o),g=[u+c,u-c],d=this._getInternalAngle(this.startAngle),p=this._getInternalAngle(this.endAngle);try{for(var f=Xe(g),y=f.next();!y.done;y=f.next()){var m=y.value,x=this.clockwise?this._mirrorAngle(E.normalizeAngle(m)):E.normalizeAngle(m),S=this._getInternalAngle(x);(this.closed||E.isBetweenAngle(S,d,p,this.clockwise))&&s.push(this.getPointAtAngle(x))}}catch(A){n={error:A}}finally{try{y&&!y.done&&(r=f.return)&&r.call(f)}finally{if(n)throw n.error}}return s},t.prototype.getPoints=function(e){e===void 0&&(e=100);var n=[],r=this.deltaAngle,s=this._getInternalAngle(this.startAngle);if(this.closed&&(r=B,s=0),this.clockwise)for(var o=0;o<=e;o++){var a=s-r*(o/e),h=this._clockwise?this._mirrorAngle(a):a,l=this.getPointAtAngle(h);n.push(new P(l.x,l.y))}else for(var o=0;o<=e;o++){var a=s+r*(o/e),h=this._clockwise?this._mirrorAngle(a):a,l=this.getPointAtAngle(h);n.push(new P(l.x,l.y))}return n},t}(ce),Yi=function(){return Yi=Object.assign||function(i){for(var t,e=1,n=arguments.length;e<n;e++){t=arguments[e];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(i[r]=t[r])}return i},Yi.apply(this,arguments)},ul=function(i){var t=typeof Symbol=="function"&&Symbol.iterator,e=t&&i[t],n=0;if(e)return e.call(i);if(i&&typeof i.length=="number")return{next:function(){return i&&n>=i.length&&(i=void 0),{value:i&&i[n++],done:!i}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},Re=1e-6;function Bs(i,t){if(kl(i)){var e=gl(i,t);return e?[e]:[]}var n=Vs(i),r=n.numberOfVertices;if(r<2)return[];var s=Xl(n,t);return s?[s]:[]}function dl(i){return Vs(i)}function gl(i,t){var e,n,r=pl(i);if(r.length===0)return null;var s=[];try{for(var o=ul(r),a=o.next();!a.done;a=o.next()){var h=a.value,l=yl(h,t);if(!l)return null;s.push(l)}}catch(d){e={error:d}}finally{try{a&&!a.done&&(n=o.return)&&n.call(o)}finally{if(e)throw e.error}}var c=fl(i),u=bl(s,c,i.closed,t);if(u.length<2)return null;var g=new H;return u.forEach(function(d,p){g.addVertexAt(p,{x:d.x,y:d.y})}),g.closed=i.closed,g}function pl(i){for(var t,e=[],n=i.numberOfVertices,r=i.closed?n:n-1,s=0;s<r;s++){var o=i.vertices[s],a=i.vertices[(s+1)%n];F.isPositive(Math.abs((t=o.bulge)!==null&&t!==void 0?t:0))?e.push({kind:"arc",arc:new pt(o,a,o.bulge)}):e.push({kind:"line",start:new P(o.x,o.y),end:new P(a.x,a.y)})}return e}function fl(i){for(var t=[],e=0;e<i.numberOfVertices;e++)t.push(i.getPointAt(e));return t}function yl(i,t){if(i.kind==="line"){var e=wl(i.start,i.end,t);return e?Yi({kind:"line"},e):null}var n=ml(i.arc,i.arc.startPoint,i.arc.endPoint,t);return n?{kind:"arc",arc:n}:null}function ml(i,t,e,n){var r=_l(i,t,e,n),s=i.radius+r;return F.isNonPositive(s)?null:new pt(i.center,s,i.startAngle,i.endAngle,i.clockwise)}function _l(i,t,e,n){var r=e.x-t.x,s=e.y-t.y,o=Math.hypot(r,s);if(F.isNonPositive(o))return i.clockwise?-n:n;var a=-s/o,h=r/o,l=i.center.x-(t.x+e.x)/2,c=i.center.y-(t.y+e.y)/2,u=l*a+c*h>0;return u?-n:n}function wl(i,t,e){var n=t.x-i.x,r=t.y-i.y,s=Math.hypot(n,r);if(F.isNonPositive(s))return null;var o=-r/s*e,a=n/s*e;return{start:new P(i.x+o,i.y+a),end:new P(t.x+o,t.y+a),dx:n,dy:r}}function bl(i,t,e,n){var r,s,o,a=i.length;if(a===0)return[];for(var h=xl(i,t,e,n),l=[(s=(r=h[0].nextSegmentStart)===null||r===void 0?void 0:r.clone())!==null&&s!==void 0?s:h[0].point.clone()],c=0;c<a;c++){var u=i[c],g=c===a-1&&!e?{point:Ll(u)}:h[(c+1)%a];if(c>0&&h[c].filletPoints&&h[c].filletPoints.forEach(function(m){return l.push(m.clone())}),u.kind==="arc")for(var d=(o=h[c].nextSegmentStart)!==null&&o!==void 0?o:h[c].point,p=g.point,f=vl(u.arc,d,p,Math.max(16,32)),y=1;y<f.length;y++)l.push(f[y]);else l.push(g.point.clone())}return js(l)}function xl(i,t,e,n){for(var r=i.length,s=[],o=0;o<r;o++)o===0?s.push(e?Br(i[r-1],i[0],t[0],n):{point:Sl(i[0])}):s.push(Br(i[o-1],i[o],t[o],n));return s}function vl(i,t,e,n){for(var r=i.nearestPoint(t),s=i.nearestPoint(e),o=Xi(i,r),a=Xi(i,s),h=Al(i,o,a),l=[],c=0;c<=n;c++){var u=c/n,g=i.clockwise?o-h*u:o+h*u;l.push(i.getPointAtAngle(Pl(i,g)))}return l}function Xi(i,t){return Math.atan2(t.y-i.center.y,t.x-i.center.x)}function Pl(i,t){var e=E.normalizeAngle(t);return i.clockwise?Ni(e):e}function Ni(i){var t=i*180/Math.PI;return(360-t)%360*(Math.PI/180)}function Al(i,t,e){if(i.clockwise){var n=t-e;return F.isNonPositive(n)&&(n+=B),n}var r=e-t;return F.isNonPositive(r)&&(r+=B),r}function Sl(i){return i.kind==="line"?i.start.clone():i.arc.startPoint.clone()}function Ll(i){return i.kind==="line"?i.end.clone():i.arc.endPoint.clone()}function Br(i,t,e,n){return i.kind==="line"&&t.kind==="line"?{point:Bi({start:i.start,end:i.end,dx:i.dx,dy:i.dy},{start:t.start,end:t.end,dx:t.dx,dy:t.dy})}:i.kind==="line"&&t.kind==="arc"?Rr(i,t.arc,e,n,!0):i.kind==="arc"&&t.kind==="line"?Rr(t,i.arc,e,n,!1):i.kind==="arc"&&t.kind==="arc"?El(i.arc,t.arc,e,n):{point:e.clone()}}function El(i,t,e,n){var r=Fs(i.endPoint,t.startPoint),s=Ol(i,t),o=s.filter(function(c){return We(i,c)&&We(t,c)});if(o.length>0)return{point:zs(o,r)};var a=i.endPoint.clone(),h=t.startPoint.clone(),l=Rs(e,Math.abs(n),a,h);return{point:a,filletPoints:l,nextSegmentStart:h}}function Rr(i,t,e,n,r){var s=Fs(r?i.end:i.start,r?t.startPoint:t.endPoint),o=Cl(i,t,s);if(Il(i,o)&&We(t,o))return{point:o};var a=Ml(i,e,n),h=r?t.startPoint.clone():t.endPoint.clone(),l=Rs(e,Math.abs(n),r?a:h,r?h:a);return r?{point:a,filletPoints:l,nextSegmentStart:h}:{point:h,filletPoints:l,nextSegmentStart:a}}function Ml(i,t,e){var n=Math.hypot(i.dx,i.dy),r=-i.dy/n*e,s=i.dx/n*e;return new P(t.x+r,t.y+s)}function Il(i,t){var e=Math.hypot(i.dx,i.dy);if(F.isNonPositive(e))return!1;var n=i.dx/e,r=i.dy/e,s=t.x-i.start.x,o=t.y-i.start.y,a=Math.abs(s*r-o*n);return F.equalToZero(a)}function Rs(i,t,e,n){var r=Math.atan2(e.y-i.y,e.x-i.x),s=Math.atan2(n.y-i.y,n.x-i.x),o=Tl(r,s);if(F.equalToZero(Math.abs(o)))return[];for(var a=[],h=Math.max(2,Math.ceil(Math.abs(o)/Math.PI*16)),l=1;l<h;l++){var c=l/h,u=r+o*c;a.push(new P(i.x+t*Math.cos(u),i.y+t*Math.sin(u)))}return a}function Tl(i,t){for(var e=t-i;e>Math.PI;)e-=B;for(;e<=-Math.PI;)e+=B;return e}function Cl(i,t,e){var n=Math.hypot(i.dx,i.dy);if(F.isNonPositive(n))return e.clone();var r=i.dx/n,s=i.dy/n,o=i.start.x-t.center.x,a=i.start.y-t.center.y,h=2*(o*r+a*s),l=o*o+a*a-t.radius*t.radius,c=h*h-4*l;if(c<0)return e.clone();var u=Math.sqrt(c),g=[(-h-u)/2,(-h+u)/2].map(function(p){return new P(i.start.x+r*p,i.start.y+s*p)}),d=g.filter(function(p){return We(t,p)});return zs(d.length>0?d:g,e)}function We(i,t){var e=Math.abs(Math.hypot(t.x-i.center.x,t.y-i.center.y)-i.radius);if(F.isPositive(e))return!1;var n=Xi(i,t),r=i.clockwise?Ni(E.normalizeAngle(i.startAngle)):E.normalizeAngle(i.startAngle),s=i.clockwise?Ni(E.normalizeAngle(i.endAngle)):E.normalizeAngle(i.endAngle);return E.isBetweenAngle(n,r,s,i.clockwise)}function Ol(i,t){var e=t.center.x-i.center.x,n=t.center.y-i.center.y,r=Math.hypot(e,n);if(F.isNonPositive(r))return[];var s=i.radius+t.radius,o=Math.abs(i.radius-t.radius);if(r>s+Re)return[];if(r<o-Re)return[];var a=(i.radius*i.radius-t.radius*t.radius+r*r)/(2*r),h=i.radius*i.radius-a*a;if(h<-Re)return[];var l=i.center.x+a*e/r,c=i.center.y+a*n/r;if(h<=Re)return[new P(l,c)];var u=Math.sqrt(h),g=-n*u/r,d=e*u/r;return[new P(l+g,c+d),new P(l-g,c-d)]}function zs(i,t){for(var e=i[0],n=e.distanceToSquared(t),r=1;r<i.length;r++){var s=i[r].distanceToSquared(t);s<n&&(e=i[r],n=s)}return e.clone()}function Fs(i,t){return new P((i.x+t.x)/2,(i.y+t.y)/2)}function kl(i){for(var t,e=i.numberOfVertices,n=i.closed?e:e-1,r=0;r<n;r++){var s=i.vertices[r];if(F.isPositive(Math.abs((t=s.bulge)!==null&&t!==void 0?t:0)))return!0}return!1}function Vs(i){var t=Yl(i.vertices.map(function(e){return new P(e.x,e.y)}),i.closed);return t.length===i.numberOfVertices?i:new H(t.map(function(e){return{x:e.x,y:e.y}}),i.closed)}function Yl(i,t){var e=js(i);if(!t||e.length<2)return e;var n=e[0],r=e[e.length-1];return F.isNonPositive(Math.hypot(n.x-r.x,n.y-r.y))&&e.pop(),e}function js(i){var t=[];return i.forEach(function(e){var n=t[t.length-1];(!n||F.isPositive(Math.hypot(n.x-e.x,n.y-e.y)))&&t.push(new P(e.x,e.y))}),t}function Xl(i,t){for(var e=[],n=0;n<i.numberOfVertices;n++)e.push(i.getPointAt(n));var r=Nl(e,i.closed,t);if(r.length===0)return null;var s=[];if(i.closed){if(r.length<2)return null;for(var o=r.length,n=0;n<o;n++){var a=r[(n-1+o)%o],h=r[n];s.push(Bi(a,h))}}else{s.push(r[0].start);for(var n=1;n<r.length;n++)s.push(Bi(r[n-1],r[n]));s.push(r[r.length-1].end)}var l=new H;return s.forEach(function(c,u){l.addVertexAt(u,{x:c.x,y:c.y})}),l.closed=i.closed,l}function Nl(i,t,e){for(var n=[],r=t?i.length:i.length-1,s=0;s<r;s++){var o=i[s],a=i[t?(s+1)%i.length:s+1],h=a.x-o.x,l=a.y-o.y,c=Math.hypot(h,l);if(!F.isNonPositive(c)){var u=-l/c*e,g=h/c*e;n.push({start:new P(o.x+u,o.y+g),end:new P(a.x+u,a.y+g),dx:h,dy:l})}}return n}function Bi(i,t){var e=i.dx*t.dy-i.dy*t.dx;if(F.equalToZero(e))return new P((i.end.x+t.start.x)/2,(i.end.y+t.start.y)/2);var n=t.start.x-i.start.x,r=t.start.y-i.start.y,s=(n*t.dy-r*t.dx)/e;return new P(i.start.x+s*i.dx,i.start.y+s*i.dy)}var Bl=function(){var i=function(t,e){return i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,r){n.__proto__=r}||function(n,r){for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&(n[s]=r[s])},i(t,e)};return function(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");i(t,e);function n(){this.constructor=t}t.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}}(),Ri=function(){return Ri=Object.assign||function(i){for(var t,e=1,n=arguments.length;e<n;e++){t=arguments[e];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(i[r]=t[r])}return i},Ri.apply(this,arguments)},H=function(i){Bl(t,i);function t(e,n){e===void 0&&(e=null),n===void 0&&(n=!1);var r=i.call(this)||this;return r._vertices=e||new Array,r._closed=n,r}return Object.defineProperty(t.prototype,"vertices",{get:function(){return this._vertices},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"numberOfVertices",{get:function(){return this._vertices.length},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"closed",{get:function(){return this._closed},set:function(e){this._closed=e,this._boundingBoxNeedsUpdate=!0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"startPoint",{get:function(){if(this.numberOfVertices>0){var e=this._vertices[0];return new P(e.x,e.y)}throw new Error("Start point does not exist in an empty polyline.")},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"endPoint",{get:function(){var e=this.numberOfVertices;if(e>0)if(this.closed){var n=this._vertices[0];return new P(n.x,n.y)}else{var n=this._vertices[e-1];return new P(n.x,n.y)}throw new Error("End point does not exist in an empty polyline.")},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"length",{get:function(){for(var e=0,n=this._vertices.length,r=0;r<n;++r){var s=this._vertices[r],o=null;if(r<n-1?o=this._vertices[r+1]:r==n-1&&this.closed&&(o=this._vertices[0]),o)if(s.bulge){var a=new pt(s,o,s.bulge);e+=a.length}else e+=new P(s.x,s.y).distanceTo(o)}return e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"area",{get:function(){if(!this._closed||this._vertices.length<3)return 0;var e=this.getPoints(128);return al(e)},enumerable:!1,configurable:!0}),t.prototype.addVertexAt=function(e,n){e<=0?this._vertices.unshift(n):this._vertices.splice(e,0,n),this._boundingBoxNeedsUpdate=!0},t.prototype.removeVertexAt=function(e){if(e<0||e>=this._vertices.length)throw new Error("Index ".concat(e," is out of bounds. Valid range is 0 to ").concat(this._vertices.length-1,"."));this._vertices.splice(e,1),this._boundingBoxNeedsUpdate=!0},t.prototype.reset=function(e,n){e?n!==void 0&&n>=0&&n<this._vertices.length&&(this._vertices=this._vertices.slice(0,n),this._boundingBoxNeedsUpdate=!0):(this._vertices=new Array,this._boundingBoxNeedsUpdate=!0)},t.prototype.getPointAt=function(e){var n=this._vertices[e];return new P(n.x,n.y)},t.prototype.calculateBoundingBox=function(){var e=this.getPoints(100);return new et().setFromPoints(e)},t.prototype.transform=function(e){var n=e.determinant()<0;return this._vertices.forEach(function(r){var s=new P(r).applyMatrix2d(e);r.x=s.x,r.y=s.y,n&&r.bulge!=null&&(r.bulge=-r.bulge)}),this._boundingBoxNeedsUpdate=!0,this},t.prototype.clone=function(){return new t(this._vertices.map(function(e){return Ri({},e)}),this._closed)},t.prototype.getPoints3d=function(e,n){var r=[],s=this.getPoints(e);return s.forEach(function(o){return r.push(new _().set(o.x,o.y,n))}),r},t.prototype.getPoints=function(e){for(var n=[],r=this._vertices.length,s=0;s<r;++s){var o=this._vertices[s];if(o.bulge){var a=null;if(s<r-1?a=this._vertices[s+1]:s==r-1&&this.closed&&(a=this._vertices[0]),a)for(var h=new pt(o,a,o.bulge),l=h.getPoints(e),c=l.length,u=0;u<c;++u){var g=l[u];n.push(new P(g.x,g.y))}}else n.push(new P(o.x,o.y)),s==r-1&&this.closed&&n.push(n[0])}return n},t.prototype.offset=function(e){return Bs(this,e)},t}(ce);function Gs(i,t,e){var n=Math.hypot(t.x,t.y);if(F.isNonPositive(n))return null;var r=-t.y/n*e,s=t.x/n*e;return new _(i.x+r,i.y+s,i.z)}function Rl(i,t,e){var n;if(i.length<2)return null;var r=dl(new H(i.map(function(o){return{x:o.x,y:o.y}}),t)),s=Bs(r,e);return(n=s[0])!==null&&n!==void 0?n:null}var De=function(i,t){var e=typeof Symbol=="function"&&i[Symbol.iterator];if(!e)return i;var n=e.call(i),r,s=[],o;try{for(;(t===void 0||t-- >0)&&!(r=n.next()).done;)s.push(r.value)}catch(a){o={error:a}}finally{try{r&&!r.done&&(e=n.return)&&e.call(n)}finally{if(o)throw o.error}}return s},se=function(i,t,e){if(e||arguments.length===2)for(var n=0,r=t.length,s;n<r;n++)(s||!(n in t))&&(s||(s=Array.prototype.slice.call(t,0,n)),s[n]=t[n]);return i.concat(s||Array.prototype.slice.call(t))};function zl(i,t,e,n){if(i.length<2||F.equalToZero(e))return null;var r=Ws(i,n),s=r.points,o=r.tangents;if(s.length<2)return null;var a=o??Fl(s,t),h=Vl(s,a,e),l=t?Gl(h):jl(h);if(l.length<2)return null;var c=new H;return l.forEach(function(u,g){c.addVertexAt(g,{x:u.x,y:u.y})}),c.closed=t,c}function Fl(i,t){for(var e=i.length,n=new Array(e),r=0;r<e;r++){var s=0,o=0;if(t){var a=i[(r-1+e)%e],h=i[(r+1)%e];s=h.x-a.x,o=h.y-a.y}else r===0?(s=i[1].x-i[0].x,o=i[1].y-i[0].y):r===e-1?(s=i[e-1].x-i[e-2].x,o=i[e-1].y-i[e-2].y):(s=i[r+1].x-i[r-1].x,o=i[r+1].y-i[r-1].y);var l=Math.hypot(s,o);F.isNonPositive(l)?n[r]=new P(1,0):n[r]=new P(s/l,o/l)}return n}function Vl(i,t,e){return i.map(function(n,r){var s=t[r],o=-s.y*e,a=s.x*e;return new P(n.x+o,n.y+a)})}function jl(i){var t=Ue(i);if(t.length<3)return t;for(;;){var e=Hs(t,!1);if(!e||(t=Ue(se(se(se([],De(t.slice(0,e.segmentA+1)),!1),[e.point],!1),De(t.slice(e.segmentB+1)),!1)),t.length<2))break}return t}function Gl(i){var t=Ue(i);if(t.length<4)return t;for(;;){var e=Hs(t,!0);if(!e||(t=Ue(se(se(se([],De(t.slice(0,e.segmentA+1)),!1),[e.point],!1),De(t.slice(e.segmentB+1)),!1)),t.length<3))break}return t}function Hs(i,t){var e=t?i.length:i.length-1;if(e<2)return null;for(var n=0;n<e;n++)for(var r=i[n],s=i[(n+1)%i.length],o=n+1;o<e;o++)if(!Hl(n,o,e,t)){var a=i[o],h=i[(o+1)%i.length],l=Wl(r,s,a,h);if(l)return{point:l,segmentA:n,segmentB:o}}return null}function Hl(i,t,e,n){return!!(t===i||t===i+1||n&&i===0&&t===e-1)}function Wl(i,t,e,n){var r=t.x-i.x,s=t.y-i.y,o=n.x-e.x,a=n.y-e.y,h=r*a-s*o;if(F.equalToZero(h))return null;var l=e.x-i.x,c=e.y-i.y,u=(l*a-c*o)/h,g=(l*s-c*r)/h,d=gi.equalPointTol;return u<-d||u>1+d||g<-d||g>1+d?null:new P(i.x+u*r,i.y+u*s)}function Ws(i,t){var e=[],n=[],r=t!=null&&t.length===i.length;return i.forEach(function(s,o){var a=e[e.length-1];if((!a||F.isPositive(Math.hypot(a.x-s.x,a.y-s.y)))&&(e.push(new P(s.x,s.y)),r)){var h=t[o];n.push(new P(h.x,h.y))}}),{points:e,tangents:r?n:void 0}}function Ue(i){return Ws(i).points}var Dl=function(){var i=function(t,e){return i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,r){n.__proto__=r}||function(n,r){for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&(n[s]=r[s])},i(t,e)};return function(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");i(t,e);function n(){this.constructor=t}t.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}}(),Bt=function(i){Dl(t,i);function t(){var e=i.call(this)||this;return e._loops=[],e}return t.prototype.add=function(e){this._loops.push(e),this._boundingBoxNeedsUpdate=!0},Object.defineProperty(t.prototype,"loops",{get:function(){return this._loops},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"outter",{get:function(){if(this._loops.length>0)return this._loops[0]},enumerable:!1,configurable:!0}),t.prototype.calculateBoundingBox=function(){var e=this.outter;return e?e.box:new et},t.prototype.transform=function(e){return this._loops.forEach(function(n){n.transform(e)}),this._boundingBoxNeedsUpdate=!0,this},t.prototype.clone=function(){var e=new t;return this._loops.forEach(function(n){e.add(n.clone())}),e},t.prototype.getPoints=function(e){for(var n=[],r=0;r<this.loops.length;++r){var s=this.loops[r],o=s.getPoints(e);n.push(o)}return n},t.prototype.buildHierarchy=function(){for(var e,n=this.getPoints(100),r=this.calculateBoundaryBoxes(n),s=this.sortBoundaryBoxesByAreas(r),o=new Map,a=s.length,h=0;h<a;h++)o.set(s[h],{index:s[h],children:[]});for(var l={index:-1,children:[]},h=0;h<a;h++){for(var c=s[h],u=n[c],g=r[c],d=h+1;d<a;d++){var p=s[d],f=n[p],y=r[p];if(y.containsBox(g)&&Is.isPointInPolygon(u[E.randInt(0,u.length-1)],f)){(e=o.get(p))===null||e===void 0||e.children.push(o.get(c));break}}d===a&&l.children.push(o.get(c))}return l},Object.defineProperty(t.prototype,"area",{get:function(){if(this._loops.length===0)return 0;for(var e=0,n=0;n<this._loops.length;n++){var r=this._loops[n],s=r.getPoints(128),o=Ys(s);n===0?e+=Math.abs(o):e-=Math.abs(o)}return e},enumerable:!1,configurable:!0}),t.prototype.calculateBoundaryBoxes=function(e){var n=[];return e.forEach(function(r){n.push(new et().setFromPoints(r))}),n},t.prototype.sortBoundaryBoxesByAreas=function(e){var n=[];e.forEach(function(s,o){var a=s.size,h=a.width*a.height;n.push({area:h,index:o})}),n.sort(function(s,o){return s.area-o.area});var r=[];return n.forEach(function(s){r.push(s.index)}),r},t}(Yn),Ul=function(){var i=function(t,e){return i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,r){n.__proto__=r}||function(n,r){for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&(n[s]=r[s])},i(t,e)};return function(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");i(t,e);function n(){this.constructor=t}t.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}}(),$l=function(i){Ul(t,i);function t(){return i!==null&&i.apply(this,arguments)||this}return t.prototype.translate=function(e){return this.transform(new Y().makeTranslation(e.x,e.y,e.z))},Object.defineProperty(t.prototype,"box",{get:function(){return(this._box==null||this._boundingBoxNeedsUpdate)&&(this._box=this.calculateBoundingBox(),this._boundingBoxNeedsUpdate=!1),this._box},enumerable:!1,configurable:!0}),t}(Ns),ql=function(){var i=function(t,e){return i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,r){n.__proto__=r}||function(n,r){for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&(n[s]=r[s])},i(t,e)};return function(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");i(t,e);function n(){this.constructor=t}t.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}}(),Ie=function(i){ql(t,i);function t(){return i!==null&&i.apply(this,arguments)||this}return t}($l),Zl=function(){var i=function(t,e){return i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,r){n.__proto__=r}||function(n,r){for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&(n[s]=r[s])},i(t,e)};return function(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");i(t,e);function n(){this.constructor=t}t.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}}(),xt=function(i){Zl(t,i);function t(e,n){var r=i.call(this)||this;return r._start=new _(e),r._end=new _(n),r}return Object.defineProperty(t.prototype,"startPoint",{get:function(){return this._start},set:function(e){this._start.copy(e),this._boundingBoxNeedsUpdate=!0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"endPoint",{get:function(){return this._end},set:function(e){this._end.copy(e),this._boundingBoxNeedsUpdate=!0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"direction",{get:function(){return new w().subVectors(this.endPoint,this.startPoint).normalize()},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"midPoint",{get:function(){return new _((this._start.x+this._end.x)/2,(this._start.y+this._end.y)/2,(this._start.z+this._end.z)/2)},enumerable:!1,configurable:!0}),t.prototype.nearestPoint=function(e){return this.project(e)},Object.defineProperty(t.prototype,"length",{get:function(){return this.startPoint.distanceTo(this.endPoint)},enumerable:!1,configurable:!0}),t.prototype.isPointOnLine=function(e){var n=this.project(e),r=1e-6;return n.distanceTo(e)<r},t.prototype.at=function(e,n){return this.delta(n).multiplyScalar(e).add(this._start)},t.prototype.atLength=function(e,n){if(n===void 0&&(n=!1),n){var r=this.delta(Ft).normalize();return new _(this._start).addScaledVector(r,e)}else{var r=this.delta(Ft).normalize();return new _(this._end).addScaledVector(r,e)}},t.prototype.extend=function(e,n){if(n===void 0&&(n=!1),n){var r=Ft.subVectors(this._start,this._end).normalize();this._start=new _(this._start).addScaledVector(r,e)}else{var r=this.delta(Ft).normalize();this._end=new _(this._end).addScaledVector(r,e)}return this._boundingBoxNeedsUpdate=!0,this},t.prototype.closestPointToPointParameter=function(e,n){zr.subVectors(e,this._start),ze.subVectors(this.endPoint,this.startPoint);var r=ze.dot(ze),s=ze.dot(zr),o=s/r;return n&&(o=E.clamp(o,0,1)),o},t.prototype.closestPointToPoint=function(e,n,r){var s=this.closestPointToPointParameter(e,n);return this.delta(r).multiplyScalar(s).add(this._start)},t.prototype.delta=function(e){return e.subVectors(this._end,this._start)},t.prototype.distanceSq=function(){return this._start.distanceToSquared(this._end)},t.prototype.distance=function(){return this._start.distanceTo(this._end)},t.prototype.project=function(e){var n=this.direction,r=Ft.subVectors(e,this.startPoint),s=r.dot(n);return new _().copy(n).multiplyScalar(s).add(this.startPoint)},t.prototype.perpPoint=function(e){var n=this.direction,r=this.startPoint,s=Ft.subVectors(e,r),o=s.dot(n),a=Ft.copy(n).multiplyScalar(o);return new _().addVectors(r,a)},t.prototype.calculateBoundingBox=function(){var e=new _(Math.min(this._start.x,this._end.x),Math.min(this._start.y,this._end.y),Math.min(this._start.z,this._end.z)),n=new _(Math.max(this._start.x,this._end.x),Math.max(this._start.y,this._end.y),Math.max(this._start.z,this._end.z));return new C(e,n)},t.prototype.transform=function(e){return this._start.applyMatrix4(e),this._end.applyMatrix4(e),this._boundingBoxNeedsUpdate=!0,this},Object.defineProperty(t.prototype,"closed",{get:function(){return!1},enumerable:!1,configurable:!0}),t.prototype.copy=function(e){return this.startPoint=e.startPoint,this.endPoint=e.endPoint,this._boundingBoxNeedsUpdate=!0,this},t.prototype.clone=function(){return new t(this._start.clone(),this._end.clone())},t.prototype.offset=function(e){var n=this.startPoint,r=this.endPoint,s=Math.hypot(r.x-n.x,r.y-n.y);if(s===0)return this.clone();var o=new w(r.x-n.x,r.y-n.y,0).normalize(),a=new w(-o.y,o.x,0);return new t(new _(n.x+a.x*e,n.y+a.y*e,n.z),new _(r.x+a.x*e,r.y+a.y*e,r.z))},t}(Ie),Ft=new w,zr=new w,ze=new w,Kl=function(){var i=function(t,e){return i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,r){n.__proto__=r}||function(n,r){for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&(n[s]=r[s])},i(t,e)};return function(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");i(t,e);function n(){this.constructor=t}t.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}}(),Ai=function(i){var t=typeof Symbol=="function"&&Symbol.iterator,e=t&&i[t],n=0;if(e)return e.call(i);if(i&&typeof i.length=="number")return{next:function(){return i&&n>=i.length&&(i=void 0),{value:i&&i[n++],done:!i}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},pi=function(i){Kl(t,i);function t(e,n,r,s,o,a){a===void 0&&(a=w.X_AXIS);var h=i.call(this)||this;return h.center=e,h.radius=n,h.startAngle=r,h.endAngle=s,h.normal=o,h.refVec=a,(s-r)%B==0?(h.startAngle=0,h.endAngle=B):(h.startAngle=r,h.endAngle=s),h}return t.computeCenterPoint=function(e,n,r){var s=new w().addVectors(e,n).multiplyScalar(.5),o=new w().addVectors(e,r).multiplyScalar(.5),a=new w().subVectors(n,e),h=new w().subVectors(r,e),l=new w().crossVectors(a,h).normalize();if(l.lengthSq()===0)return null;var c=new w().crossVectors(a,l).normalize(),u=new w().crossVectors(h,l).normalize(),g=c.clone().multiplyScalar(Number.MAX_SAFE_INTEGER),d=u.clone().multiplyScalar(Number.MAX_SAFE_INTEGER),p=new xt(s,s.clone().add(g)),f=new xt(o,o.clone().add(d)),y=new w,m=p.closestPointToPoint(f.startPoint,!0,y);return m?y:null},t.createByThreePoints=function(e,n,r){var s=t.computeCenterPoint(e,n,r);if(s){var o=s.distanceTo(e),a=new w().subVectors(e,s),h=new w().subVectors(n,s),l=Math.atan2(a.y,a.x),c=Math.atan2(h.y,h.x);return new t(s,o,l,c,w.Z_AXIS)}},Object.defineProperty(t.prototype,"center",{get:function(){return this._center},set:function(e){this._center=new _(e.x,e.y,e.z||0),this._boundingBoxNeedsUpdate=!0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"radius",{get:function(){return this._radius},set:function(e){if(e<0)throw st.ILLEGAL_PARAMETERS;this._radius=e,this._boundingBoxNeedsUpdate=!0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"startAngle",{get:function(){return this._startAngle},set:function(e){this._startAngle=E.normalizeAngle(e),this._boundingBoxNeedsUpdate=!0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"endAngle",{get:function(){return this._endAngle},set:function(e){this._endAngle=this.startAngle==0&&e==B?e:E.normalizeAngle(e),this._boundingBoxNeedsUpdate=!0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"deltaAngle",{get:function(){return E.normalizeAngle(this.endAngle-this.startAngle)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"isLargeArc",{get:function(){return Math.abs(this.deltaAngle)>Math.PI?1:0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"clockwise",{get:function(){return this.deltaAngle<=0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"normal",{get:function(){return this._normal},set:function(e){this._normal=new w(e.x,e.y,e.z),this._normal.normalize(),this._boundingBoxNeedsUpdate=!0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"refVec",{get:function(){return this._refVec},set:function(e){this._refVec=new w(e.x,e.y,e.z),this._refVec.normalize(),this._boundingBoxNeedsUpdate=!0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"startPoint",{get:function(){return this.getPointAtAngle(this._startAngle)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"endPoint",{get:function(){return this.getPointAtAngle(this._endAngle)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"midPoint",{get:function(){var e=this.startAngle,n=this.deltaAngle;this.closed&&(e=0,n=B);var r=e+n*.5;return this.getPointAtAngle(r)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"length",{get:function(){return this.closed?2*Math.PI*this.radius:Math.abs(this.deltaAngle*this.radius)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"area",{get:function(){return this.closed?Math.PI*this.radius*this.radius:0},enumerable:!1,configurable:!0}),t.prototype.nearestPoint=function(e){var n=new w(e.x,e.y,e.z||0),r=this.center,s=this.normal,o=n.clone().sub(r),a=o.dot(s),h=n.clone().sub(s.clone().multiplyScalar(a)),l=h.clone().sub(r);if(l.lengthSq()===0)return this.startPoint.clone();l.normalize().multiplyScalar(this.radius);var c=r.clone().add(l),u=this.getAngle(c.clone()),g=this.startAngle,d=this.deltaAngle,p=E.normalizeAngle(u-g);p<0&&(p=0),p>d&&(p=d);var f=this.getPointAtAngle(g+p),y=f.distanceTo(n),m=this.startPoint.distanceTo(n),x=this.endPoint.distanceTo(n);return m<y&&m<=x?this.startPoint.clone():x<y&&x<m?this.endPoint.clone():f},t.prototype.tangentPoints=function(e){var n,r,s=[],o=new w(e.x,e.y,e.z||0),a=this.center,h=this.normal,l=this.radius,c=o.clone().sub(a),u=c.dot(h),g=o.clone().sub(h.clone().multiplyScalar(u)),d=a.clone(),p=g.clone().sub(d),f=p.length();if(f<l)return s;var y=Math.acos(l/f),m=this.getAngle(g.clone()),x=[m+y,m-y];try{for(var S=Ai(x),A=S.next();!A.done;A=S.next()){var L=A.value,T=E.normalizeAngle(L-this.startAngle);T>=0&&T<=this.deltaAngle&&s.push(this.getPointAtAngle(this.startAngle+T))}}catch(M){n={error:M}}finally{try{A&&!A.done&&(r=S.return)&&r.call(S)}finally{if(n)throw n.error}}return s},t.prototype.perpendicularPoints=function(e){var n,r,s=[],o=new w(e.x,e.y,e.z||0),a=this.center,h=this.normal,l=this.radius,c=o.clone().sub(a),u=c.dot(h),g=o.clone().sub(h.clone().multiplyScalar(u)),d=g.clone().sub(a);if(d.lengthSq()<1e-24)return s;d.normalize();var p=[a.clone().add(d.clone().multiplyScalar(l)),a.clone().sub(d.clone().multiplyScalar(l))];try{for(var f=Ai(p),y=f.next();!y.done;y=f.next()){var m=y.value,x=this.getAngle(m.clone()),S=E.normalizeAngle(x-this.startAngle);S>=0&&S<=this.deltaAngle&&s.push(new _(m.x,m.y,m.z||0))}}catch(A){n={error:A}}finally{try{y&&!y.done&&(r=f.return)&&r.call(f)}finally{if(n)throw n.error}}return s},t.prototype.nearestTangentPoint=function(e){var n=this.tangentPoints(e);if(n.length===0)return null;var r=new _(e.x,e.y,e.z||0);return n.length===1||n[0].distanceTo(r)<n[1].distanceTo(r)?n[0]:n[1]},t.prototype.calculateBoundingBox=function(){for(var e,n,r=[this.startAngle,this.endAngle],s=0;s<2*Math.PI;s+=Math.PI/2)E.isBetweenAngle(s,this.startAngle,this.endAngle)&&r.push(s);var o=1/0,a=1/0,h=1/0,l=-1/0,c=-1/0,u=-1/0;try{for(var g=Ai(r),d=g.next();!d.done;d=g.next()){var p=d.value,f=this.getPointAtAngle(p);f.x<o&&(o=f.x),f.y<a&&(a=f.y),f.z<h&&(h=f.z),f.x>l&&(l=f.x),f.y>c&&(c=f.y),f.z>u&&(u=f.z)}}catch(y){e={error:y}}finally{try{d&&!d.done&&(n=g.return)&&n.call(g)}finally{if(e)throw e.error}}return new C({x:o,y:a,z:h},{x:l,y:c,z:u})},Object.defineProperty(t.prototype,"closed",{get:function(){return Math.abs(this.endAngle-this.startAngle)/Math.PI%2==0},enumerable:!1,configurable:!0}),t.prototype.getPoints=function(e){var n=[],r=this.deltaAngle,s=this.startAngle;this.closed&&(r=B,s=0);for(var o=0;o<=e;o++){var a=s+r*(o/e),h=this.getPointAtAngle(a);n.push(h)}return n},t.prototype.transform=function(e){var n=this.center.clone().applyMatrix4(e),r=this.startPoint.clone().applyMatrix4(e),s=this.endPoint.clone().applyMatrix4(e),o=this.getPointAtAngle(this.closed?Math.PI/2:this.startAngle+this.deltaAngle/2).clone().applyMatrix4(e),a=new w(r).sub(n).normalize(),h=n.distanceTo(r),l=new w().crossVectors(new w(r).sub(n),new w(o).sub(n)).normalize();l.lengthSq()===0&&(l=this.normal.clone().transformDirection(e));var c=function(u){var g=new w(u).sub(n);return Math.atan2(g.dot(Fr.crossVectors(l,a)),g.dot(a))};return this.center=n,this.radius=h,this.normal=l,this.refVec=a,this.startAngle=0,this.endAngle=this.closed?B:c(s),this._boundingBoxNeedsUpdate=!0,this},t.prototype.copy=function(e){return this.center=e.center,this.radius=e.radius,this.startAngle=e.startAngle,this.endAngle=e.endAngle,this.normal=e.normal,this.refVec=e.refVec,this._boundingBoxNeedsUpdate=!0,this},t.prototype.clone=function(){return new t(this.center.clone(),this.radius,this.startAngle,this.endAngle,this.normal,this.refVec)},t.prototype.getAngle=function(e){return e.sub(this.center),Math.atan2(e.dot(Fr.crossVectors(this.refVec,this.normal)),e.dot(this.refVec))},t.prototype.getPointAtAngle=function(e){var n=this.normal,r=this.refVec,s={x:n.y*r.z-n.z*r.y,y:n.z*r.x-n.x*r.z,z:n.x*r.y-n.y*r.x},o=this.center,a=this.radius;return new _(o.x+a*(r.x*Math.cos(e)+s.x*Math.sin(e)),o.y+a*(r.y*Math.cos(e)+s.y*Math.sin(e)),o.z+a*(r.z*Math.cos(e)+s.z*Math.sin(e)))},Object.defineProperty(t.prototype,"plane",{get:function(){var e=new w(this.center).distanceTo(In);return new Tn(this.normal,e)},enumerable:!1,configurable:!0}),t.prototype.offset=function(e){var n=this.radius+e;return n<=0?null:new t(this.center,n,this.startAngle,this.endAngle,this.normal,this.refVec)},t}(Ie),Fr=new w,Ql=function(){var i=function(t,e){return i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,r){n.__proto__=r}||function(n,r){for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&(n[s]=r[s])},i(t,e)};return function(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");i(t,e);function n(){this.constructor=t}t.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}}(),Pe=function(i){Ql(t,i);function t(e,n,r,s,o,a,h){s===void 0&&(s=0),o===void 0&&(o=B),a===void 0&&(a=!1),h===void 0&&(h=0);var l=i.call(this)||this;return l.center=e,l.majorAxisRadius=n,l.minorAxisRadius=r,(o-s)%B==0?(l.startAngle=0,l.endAngle=B):(l.startAngle=s,l.endAngle=o),l.clockwise=a,l.rotation=h,l}return Object.defineProperty(t.prototype,"center",{get:function(){return this._center},set:function(e){this._center=new _(e.x,e.y,e.z||0),this._boundingBoxNeedsUpdate=!0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"majorAxisRadius",{get:function(){return this._majorAxisRadius},set:function(e){if(e<0)throw st.ILLEGAL_PARAMETERS;this._majorAxisRadius=e,this._boundingBoxNeedsUpdate=!0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"minorAxisRadius",{get:function(){return this._minorAxisRadius},set:function(e){if(e<0)throw st.ILLEGAL_PARAMETERS;this._minorAxisRadius=e,this._boundingBoxNeedsUpdate=!0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"startAngle",{get:function(){return this._startAngle},set:function(e){this._startAngle=E.normalizeAngle(e),this._boundingBoxNeedsUpdate=!0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"endAngle",{get:function(){return this._endAngle},set:function(e){this._endAngle=this.startAngle==0&&e==B?e:E.normalizeAngle(e),this._boundingBoxNeedsUpdate=!0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"clockwise",{get:function(){return this._clockwise},set:function(e){this._clockwise=e,this._boundingBoxNeedsUpdate=!0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"rotation",{get:function(){return this._rotation},set:function(e){this._rotation=e,this._boundingBoxNeedsUpdate=!0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"deltaAngle",{get:function(){return E.normalizeAngle(this.endAngle-this.startAngle)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"isLargeArc",{get:function(){return Math.abs(this.deltaAngle)>Math.PI?1:0},enumerable:!1,configurable:!0}),t.prototype.calculateBoundingBox=function(){for(var e=100,n=1/0,r=1/0,s=-1/0,o=-1/0,a=0;a<=e;a++){var h=this.getPoint(a/e);n=Math.min(n,h.x),r=Math.min(r,h.y),s=Math.max(s,h.x),o=Math.max(o,h.y)}return new et({x:n,y:r},{x:s,y:o})},Object.defineProperty(t.prototype,"closed",{get:function(){return this.deltaAngle==0},enumerable:!1,configurable:!0}),t.prototype.getPoint=function(e){for(var n=Math.PI*2,r=this.endAngle-this.startAngle,s=Math.abs(r)<Number.EPSILON;r<0;)r+=n;for(;r>n;)r-=n;r<Number.EPSILON&&(s?r=0:r=n),this.clockwise===!0&&!s&&(r===n?r=-n:r=r-n);var o=this.startAngle+e*r,a=this.center.x+this.majorAxisRadius*Math.cos(o),h=this.center.y+this.minorAxisRadius*Math.sin(o);if(this.rotation!==0){var l=Math.cos(this.rotation),c=Math.sin(this.rotation),u=a-this.center.x,g=h-this.center.y;a=u*l-g*c+this.center.x,h=u*c+g*l+this.center.y}return new P(a,h)},t.prototype.transform=function(e){var n=e,r=new P(this.center).applyMatrix2d(n),s=new _(r.x,r.y,this.center.z),o=this.getPointAtAngle(0).clone().applyMatrix2d(n),a=this.getPointAtAngle(Math.PI/2).clone().applyMatrix2d(n),h=new P(o).sub(r),l=new P(a).sub(r),c=h.length(),u=l.length(),g=Math.atan2(h.y,h.x),d=h.clone().normalize(),p=l.clone().normalize(),f=function(x){var S=new P(x).sub(r),A=S.dot(d),L=S.dot(p);return E.normalizeAngle(Math.atan2(L/u,A/c))},y=n.determinant()<0?!this.clockwise:this.clockwise,m=this.closed?new t(s,c,u,0,B,y,g):new t(s,c,u,f(this.startPoint.clone().applyMatrix2d(n)),f(this.endPoint.clone().applyMatrix2d(n)),y,g);return this.center=m.center,this.majorAxisRadius=m.majorAxisRadius,this.minorAxisRadius=m.minorAxisRadius,this._startAngle=m._startAngle,this._endAngle=m._endAngle,this._clockwise=m._clockwise,this.rotation=m.rotation,this._boundingBoxNeedsUpdate=!0,this},t.prototype.getPointAtAngle=function(e){return this.getPoint(this.closed?e/B:E.normalizeAngle(e-this.startAngle)/this.deltaAngle)},t.prototype.copy=function(e){return this.center=e.center,this.majorAxisRadius=e.majorAxisRadius,this.minorAxisRadius=e.minorAxisRadius,this.startAngle=e.startAngle,this.endAngle=e.endAngle,this.clockwise=e.clockwise,this.rotation=e.rotation,this},t.prototype.clone=function(){return new t(this.center,this.majorAxisRadius,this.minorAxisRadius,this.startAngle,this.endAngle,this.clockwise,this.rotation)},t.prototype.getFocusPoints=function(){var e=Math.max(this.majorAxisRadius,this.minorAxisRadius),n=Math.min(this.majorAxisRadius,this.minorAxisRadius);if(e-n<1e-9)return[];var r=Math.sqrt(e*e-n*n),s=Math.cos(this.rotation),o=Math.sin(this.rotation),a=this.majorAxisRadius>=this.minorAxisRadius,h=a?s:-o,l=a?o:s;return[new P(this.center.x-r*h,this.center.y-r*l),new P(this.center.x+r*h,this.center.y+r*l)]},t.prototype.getQuadrantPoints=function(){return this.closed?[this.getPoint(0),this.getPoint(.25),this.getPoint(.5),this.getPoint(.75)]:[]},t.prototype.nearestPoint=function(e){for(var n=new P(e.x,e.y),r=this.getPoint(0),s=n.distanceToSquared(r),o=72,a=1;a<=o;a++){var h=this.getPoint(a/o),l=n.distanceToSquared(h);l<s&&(s=l,r=h)}return r},t.prototype.tangentPoints=function(e){var n=this,r=this._projectPointToLocal(e),s=this._findSnapAngles(r,function(o,a,h,l){var c=-n.majorAxisRadius*l,u=n.minorAxisRadius*h;return(o-r.x)*u-(a-r.y)*c});return s.map(function(o){return n.getPointAtAngle(o)})},t.prototype.perpendicularPoints=function(e){var n=this,r=this._projectPointToLocal(e),s=this._findSnapAngles(r,function(o,a,h,l){var c=n.minorAxisRadius*h,u=n.majorAxisRadius*l;return(o-r.x)*u-(a-r.y)*c});return s.map(function(o){return n.getPointAtAngle(o)})},t.prototype._projectPointToLocal=function(e){var n=e.x-this.center.x,r=e.y-this.center.y,s=Math.cos(-this.rotation),o=Math.sin(-this.rotation);return{x:n*s-r*o,y:n*o+r*s}},t.prototype._findSnapAngles=function(e,n,r){r===void 0&&(r=144);for(var s=this.majorAxisRadius,o=this.minorAxisRadius,a=this.startAngle,h=this.deltaAngle,l=[],c=function(A){var L=Math.cos(A),T=Math.sin(A);return n(s*L,o*T,L,T)},u=a,g=c(u),d=1;d<=r;d++){var p=a+h*d/r,f=c(p);if(Math.abs(g)<1e-10&&l.push(u),g*f<0){for(var y=u,m=p,x=0;x<32;x++){var S=(y+m)/2;c(y)*c(S)<=0?m=S:y=S}l.push((y+m)/2)}u=p,g=f}return l},t}(ce),Jl=function(){var i=function(t,e){return i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,r){n.__proto__=r}||function(n,r){for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&(n[s]=r[s])},i(t,e)};return function(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");i(t,e);function n(){this.constructor=t}t.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}}(),th=function(i){var t=typeof Symbol=="function"&&Symbol.iterator,e=t&&i[t],n=0;if(e)return e.call(i);if(i&&typeof i.length=="number")return{next:function(){return i&&n>=i.length&&(i=void 0),{value:i&&i[n++],done:!i}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},Ds=function(i){Jl(t,i);function t(e,n,r,s,o,a,h){a===void 0&&(a=0),h===void 0&&(h=B);var l=i.call(this)||this;l.center=e,l.normal=n,l.majorAxis=r,l.majorAxisRadius=s,l.minorAxisRadius=o;var c=Math.abs(h-a);return Math.abs(c-B)<1e-10||Math.abs(c-2*B)<1e-10?(l.startAngle=0,l.endAngle=B):(l.startAngle=a,l.endAngle=h),l}return Object.defineProperty(t.prototype,"center",{get:function(){return this._center},set:function(e){this._center=new _(e.x,e.y,e.z||0),this._boundingBoxNeedsUpdate=!0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"majorAxisRadius",{get:function(){return this._majorAxisRadius},set:function(e){if(e<0)throw st.ILLEGAL_PARAMETERS;this._majorAxisRadius=e,this._boundingBoxNeedsUpdate=!0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"minorAxisRadius",{get:function(){return this._minorAxisRadius},set:function(e){if(e<0)throw st.ILLEGAL_PARAMETERS;this._minorAxisRadius=e,this._boundingBoxNeedsUpdate=!0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"startAngle",{get:function(){return this._startAngle},set:function(e){this._startAngle=E.normalizeAngle(e),this._boundingBoxNeedsUpdate=!0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"endAngle",{get:function(){return this._endAngle},set:function(e){this._endAngle=this.startAngle==0&&e==B?e:E.normalizeAngle(e),this._boundingBoxNeedsUpdate=!0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"deltaAngle",{get:function(){var e=this.endAngle-this.startAngle;return Math.abs(e-B)<1e-10?B:E.normalizeAngle(e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"isLargeArc",{get:function(){return Math.abs(this.deltaAngle)>Math.PI?1:0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"clockwise",{get:function(){return this.deltaAngle<=0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"normal",{get:function(){return this._normal},set:function(e){this._normal=new w(e.x,e.y,e.z),this._normal.normalize(),this._boundingBoxNeedsUpdate=!0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"majorAxis",{get:function(){return this._majorAxis},set:function(e){this._majorAxis=new w(e.x,e.y,e.z),this._majorAxis.normalize(),this._boundingBoxNeedsUpdate=!0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"minorAxis",{get:function(){return new w().crossVectors(this.normal,this.majorAxis).normalize()},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"startPoint",{get:function(){return this.getPointAtAngle(this._startAngle)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"endPoint",{get:function(){return this.getPointAtAngle(this._endAngle)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"midPoint",{get:function(){var e=this.startAngle,n=this.deltaAngle;(this.closed||Math.abs(n-B)<1e-10)&&(e=0,n=B);var r=e+n/2;return this.getPointAtAngle(r)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"isCircular",{get:function(){return F.equal(this.majorAxisRadius,this.minorAxisRadius)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"length",{get:function(){if(this.isCircular)return this.majorAxisRadius*Math.abs(this.deltaAngle);for(var e=1e3,n=this.deltaAngle/e,r=0,s=this.getPointAtAngle(this.startAngle),o=1;o<=e;o++){var a=this.startAngle+o*n,h=this.getPointAtAngle(a),l=h.x-s.x,c=h.y-s.y,u=h.z-s.z;r+=Math.sqrt(l*l+c*c+u*u),s=h}return r},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"area",{get:function(){return Math.abs(this.deltaAngle-B)>=1e-10?0:Math.PI*this.majorAxisRadius*this.minorAxisRadius},enumerable:!1,configurable:!0}),t.prototype.calculateBoundingBox=function(){var e,n;if(this.majorAxis.equals(w.X_AXIS)||this.majorAxis.equals(w.Y_AXIS)||this.majorAxis.isParallelTo(w.X_AXIS)||this.majorAxis.isParallelTo(w.Y_AXIS)){for(var r=[this.startAngle,this.endAngle],s=0;s<2*Math.PI;s+=Math.PI/2)E.isBetweenAngle(s,this.startAngle,this.endAngle)&&r.push(s);var o=1/0,a=1/0,h=1/0,l=-1/0,c=-1/0,u=-1/0;try{for(var g=th(r),d=g.next();!d.done;d=g.next()){var p=d.value,f=this.getPointAtAngle(p);f.x<o&&(o=f.x),f.y<a&&(a=f.y),f.z<h&&(h=f.z),f.x>l&&(l=f.x),f.y>c&&(c=f.y),f.z>u&&(u=f.z)}}catch(m){e={error:m}}finally{try{d&&!d.done&&(n=g.return)&&n.call(g)}finally{if(e)throw e.error}}return new C({x:o,y:a,z:h},{x:l,y:c,z:u})}else{for(var y=100,o=1/0,a=1/0,h=1/0,l=-1/0,c=-1/0,u=-1/0,s=0;s<=y;s++){var p=this.startAngle+this.deltaAngle*(s/y),f=this.getPointAtAngle(p);o=Math.min(o,f.x),a=Math.min(a,f.y),h=Math.min(h,f.z),l=Math.max(l,f.x),c=Math.max(c,f.y),u=Math.max(u,f.z)}return new C({x:o,y:a,z:h},{x:l,y:c,z:u})}},Object.defineProperty(t.prototype,"closed",{get:function(){return this.deltaAngle==0},enumerable:!1,configurable:!0}),t.prototype.getPoints=function(e){e===void 0&&(e=100);var n=[],r=this.deltaAngle,s=this.startAngle;this.closed&&(r=B,s=0);for(var o=0;o<=e;o++){var a=s+r*(o/e),h=this.getPointAtAngle(a);n.push(h)}return n},t.prototype.getPointAtAngle=function(e){var n=Math.cos(e),r=Math.sin(e),s=this.minorAxis.clone().multiplyScalar(this.minorAxisRadius).multiplyScalar(r),o=this.majorAxis.clone().multiplyScalar(n*this.majorAxisRadius).add(s);return new _(this.center.x+o.x,this.center.y+o.y,this.center.z+o.z)},t.prototype.nearestPoint=function(e,n){n===void 0&&(n=72);for(var r=new _(e.x,e.y,e.z||0),s=this.getPointAtAngle(this.startAngle),o=r.distanceToSquared(s),a=1;a<=n;a++){var h=this.startAngle+this.deltaAngle*a/n,l=this.getPointAtAngle(h),c=r.distanceToSquared(l);c<o&&(o=c,s=l)}var u=r.distanceToSquared(this.startPoint),g=r.distanceToSquared(this.endPoint);return u<o&&u<=g?this.startPoint.clone():g<o&&g<u?this.endPoint.clone():s.clone()},t.prototype.tangentPoints=function(e){var n=this,r=this._projectPointToLocalPlane(e),s=this._findSnapParameterAngles(function(o,a,h,l){var c=-n.majorAxisRadius*l,u=n.minorAxisRadius*h;return(o-r.x)*u-(a-r.y)*c});return s.map(function(o){return n.getPointAtAngle(o)})},t.prototype.perpendicularPoints=function(e){var n=this,r=this._projectPointToLocalPlane(e),s=this._findSnapParameterAngles(function(o,a,h,l){var c=n.minorAxisRadius*h,u=n.majorAxisRadius*l;return(o-r.x)*u-(a-r.y)*c});return s.map(function(o){return n.getPointAtAngle(o)})},t.prototype._projectPointToLocalPlane=function(e){var n=new _(e.x,e.y,e.z||0),r=new w(n).sub(this.center),s=r.dot(this.normal);return r.sub(this.normal.clone().multiplyScalar(s)),{x:r.dot(this.majorAxis),y:r.dot(this.minorAxis)}},t.prototype._findSnapParameterAngles=function(e,n){n===void 0&&(n=144);for(var r=this.majorAxisRadius,s=this.minorAxisRadius,o=this.startAngle,a=this.deltaAngle,h=[],l=function(S){var A=Math.cos(S),L=Math.sin(S);return e(r*A,s*L,A,L)},c=o,u=l(c),g=1;g<=n;g++){var d=o+a*g/n,p=l(d);if(Math.abs(u)<1e-10&&h.push(c),u*p<0){for(var f=c,y=d,m=0;m<32;m++){var x=(f+y)/2;l(f)*l(x)<=0?y=x:f=x}h.push((f+y)/2)}c=d,u=p}return h},t.prototype.contains=function(e){var n=new w(e).sub(this.center),r=n.dot(this.majorAxis),s=n.dot(this.minorAxis),o=r/this.majorAxisRadius,a=s/this.minorAxisRadius;return o*o+a*a<=1},t.prototype.transform=function(e){var n=e,r=this.center.clone().applyMatrix4(n),s=this.getPointAtAngle(0).clone().applyMatrix4(n),o=this.getPointAtAngle(Math.PI/2).clone().applyMatrix4(n),a=new w(s).sub(r),h=new w(o).sub(r),l=a.length(),c=h.length(),u=a.clone().normalize(),g=new w().crossVectors(a,h).normalize(),d=new w().crossVectors(g,u).normalize();d.dot(h)<0&&(g.negate(),d=new w().crossVectors(g,u).normalize());var p=function(y){var m=new w(y).sub(r),x=m.dot(u),S=m.dot(d);return E.normalizeAngle(Math.atan2(S/c,x/l))},f=this.closed?new t(r,g,u,l,c,0,B):new t(r,g,u,l,c,p(this.startPoint.clone().applyMatrix4(n)),p(this.endPoint.clone().applyMatrix4(n)));return this.center=f.center,this.normal=f.normal,this.majorAxis=f.majorAxis,this.majorAxisRadius=f.majorAxisRadius,this.minorAxisRadius=f.minorAxisRadius,this._startAngle=f._startAngle,this._endAngle=f._endAngle,this._boundingBoxNeedsUpdate=!0,this},t.prototype.copy=function(e){return this.center=e.center,this.normal=e.normal,this.majorAxis=e.majorAxis,this.majorAxisRadius=e.majorAxisRadius,this.minorAxisRadius=e.minorAxisRadius,this.startAngle=e.startAngle,this.endAngle=e.endAngle,this._boundingBoxNeedsUpdate=!0,this},t.prototype.clone=function(){return new t(this.center,this.normal,this.majorAxis,this.majorAxisRadius,this.minorAxisRadius,this.startAngle,this.endAngle)},Object.defineProperty(t.prototype,"plane",{get:function(){var e=new w(this.center).distanceTo(In);return new Tn(this.normal,e)},enumerable:!1,configurable:!0}),t.prototype.offset=function(e){var n=this.majorAxisRadius+e,r=this.minorAxisRadius+e;return n<=0||r<=0?null:new t(this.center,this.normal,this.majorAxis,n,r,this.startAngle,this.endAngle)},t}(Ie),eh=function(){var i=function(t,e){return i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,r){n.__proto__=r}||function(n,r){for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&(n[s]=r[s])},i(t,e)};return function(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");i(t,e);function n(){this.constructor=t}t.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}}(),kt=function(i){eh(t,i);function t(e,n){var r=i.call(this)||this;return r._start=new P(e),r._end=new P(n),r}return Object.defineProperty(t.prototype,"startPoint",{get:function(){return this._start},set:function(e){this._start.copy(e),this._boundingBoxNeedsUpdate=!0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"endPoint",{get:function(){return this._end},set:function(e){this._end.copy(e),this._boundingBoxNeedsUpdate=!0},enumerable:!1,configurable:!0}),t.prototype.getPoints=function(){return[this.startPoint,this.endPoint]},Object.defineProperty(t.prototype,"length",{get:function(){return this.startPoint.distanceTo(this.endPoint)},enumerable:!1,configurable:!0}),t.prototype.calculateBoundingBox=function(){var e=new P(Math.min(this._start.x,this._end.x),Math.min(this._start.y,this._end.y)),n=new P(Math.max(this._start.x,this._end.x),Math.max(this._start.y,this._end.y));return new et(e,n)},t.prototype.transform=function(e){return this._start.applyMatrix2d(e),this._end.applyMatrix2d(e),this._boundingBoxNeedsUpdate=!0,this},Object.defineProperty(t.prototype,"closed",{get:function(){return!1},enumerable:!1,configurable:!0}),t.prototype.copy=function(e){return this.startPoint=e.startPoint,this.endPoint=e.endPoint,this._boundingBoxNeedsUpdate=!0,this},t.prototype.clone=function(){return new t(this._start.clone(),this._end.clone())},t.prototype.project=function(e){var n=this._end.x-this._start.x,r=this._end.y-this._start.y,s=n*n+r*r;if(s<1e-18)return this._start.clone();var o=((e.x-this._start.x)*n+(e.y-this._start.y)*r)/s;return o=Math.max(0,Math.min(1,o)),new P(this._start.x+o*n,this._start.y+o*r)},t.prototype.nearestPoint=function(e){return this.project(e)},t}(ce),ih=function(){var i=function(t,e){return i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,r){n.__proto__=r}||function(n,r){for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&(n[s]=r[s])},i(t,e)};return function(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");i(t,e);function n(){this.constructor=t}t.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}}(),Si=function(i,t){var e=typeof Symbol=="function"&&i[Symbol.iterator];if(!e)return i;var n=e.call(i),r,s=[],o;try{for(;(t===void 0||t-- >0)&&!(r=n.next()).done;)s.push(r.value)}catch(a){o={error:a}}finally{try{r&&!r.done&&(e=n.return)&&e.call(n)}finally{if(o)throw o.error}}return s},Li=function(i,t,e){if(e||arguments.length===2)for(var n=0,r=t.length,s;n<r;n++)(s||!(n in t))&&(s||(s=Array.prototype.slice.call(t,0,n)),s[n]=t[n]);return i.concat(s||Array.prototype.slice.call(t))},Xn=function(i){ih(t,i);function t(e){e===void 0&&(e=[]);var n=i.call(this)||this;return n._curves=e,n}return Object.defineProperty(t.prototype,"curves",{get:function(){return this._curves},enumerable:!1,configurable:!0}),t.buildFromEdges=function(e,n){if(n===void 0&&(n=.001),e.length===0)return[];for(var r=Li([],Si(e),!1),s=[],o=n*n,a=function(p,f){var y=p.x-f.x,m=p.y-f.y;return y*y+m*m<=o};r.length>0;){var h=[],l=r.shift();h.push(l);var c=t.getEdgeStartPoint(l),u=t.getEdgeEndPoint(l);if(!a(c,u))for(;r.length>0;){var g=t.findConnectingEdge(r,u,o);if(g.index<0)break;var d=r.splice(g.index,1)[0];if(g.reverse&&(d=t.reverseEdge(d)),h.push(d),u=t.getEdgeEndPoint(d),a(u,c))break}s.push(new t(h))}return s},t.prototype.add=function(e){this._curves.push(e),this._boundingBoxNeedsUpdate=!0},Object.defineProperty(t.prototype,"numberOfEdges",{get:function(){return this._curves.length},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"startPoint",{get:function(){if(this._curves.length>0){var e=this._curves[0].startPoint;return new P(e.x,e.y)}throw new Error("Start point does not exist in an empty loop.")},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"endPoint",{get:function(){return this.startPoint},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"length",{get:function(){var e=0;return this._curves.forEach(function(n){e+=n.length}),e},enumerable:!1,configurable:!0}),t.prototype.calculateBoundingBox=function(){var e=this.getPoints(100),n=new et;return n.setFromPoints(e),n},t.prototype.transform=function(e){var n=new Y().set(e.elements[0],e.elements[3],0,e.elements[6],e.elements[1],e.elements[4],0,e.elements[7],0,0,1,0,0,0,0,1);return this._curves.forEach(function(r){r instanceof Yt?r.transform(n):r.transform(e)}),this._boundingBoxNeedsUpdate=!0,this},t.prototype.clone=function(){return new t(this._curves.map(function(e){return e.clone()}))},Object.defineProperty(t.prototype,"closed",{get:function(){return!0},enumerable:!1,configurable:!0}),t.prototype.getPoints=function(e){var n=[];return this.curves.forEach(function(r){r.getPoints(e).forEach(function(s){n.push(new P(s.x,s.y))})}),n},t.findConnectingEdge=function(e,n,r){for(var s=-1,o=!1,a=Number.POSITIVE_INFINITY,h=0;h<e.length;h++){var l=e[h],c=t.getEdgeStartPoint(l),u=t.getEdgeEndPoint(l),g=n.x-c.x,d=n.y-c.y,p=g*g+d*d;p<a&&(a=p,s=h,o=!1);var f=n.x-u.x,y=n.y-u.y,m=f*f+y*y;m<a&&(a=m,s=h,o=!0)}return a>r?{index:-1,reverse:!1}:{index:s,reverse:o}},t.getEdgeStartPoint=function(e){var n=e.startPoint;return new P(n.x,n.y)},t.getEdgeEndPoint=function(e){var n=e.endPoint;return new P(n.x,n.y)},t.reverseEdge=function(e){return e instanceof kt?new kt(e.endPoint,e.startPoint):e instanceof pt?new pt(e.center,e.radius,e.endAngle,e.startAngle,!e.clockwise):e instanceof Pe?new Pe(e.center,e.majorAxisRadius,e.minorAxisRadius,e.endAngle,e.startAngle,!e.clockwise,e.rotation):e instanceof Yt?t.reverseSplineEdge(e):e},t.reverseSplineEdge=function(e){var n=Li([],Si(e.controlPoints),!1).reverse(),r=e.knots,s=r[0],o=r[r.length-1],a=r.map(function(c){return s+o-c}).reverse(),h=e.weights,l=h.length>0?Li([],Si(h),!1).reverse():void 0;return new Yt(n,a,l,e.degree,e.closed)},t}(ce),nh=function(){var i=function(t,e){return i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,r){n.__proto__=r}||function(n,r){for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&(n[s]=r[s])},i(t,e)};return function(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");i(t,e);function n(){this.constructor=t}t.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}}(),Ei=function(){function i(){this.c0=0,this.c1=0,this.c2=0,this.c3=0}return i.prototype.init=function(t,e,n,r){this.c0=t,this.c1=n,this.c2=-3*t+3*e-2*n-r,this.c3=2*t-2*e+n+r},i.prototype.initCatmullRom=function(t,e,n,r,s){this.init(e,n,s*(n-t),s*(r-e))},i.prototype.initNonuniformCatmullRom=function(t,e,n,r,s,o,a){var h=(e-t)/s-(n-t)/(s+o)+(n-e)/o,l=(n-e)/o-(r-e)/(o+a)+(r-n)/a;h*=o,l*=o,this.init(e,n,h,l)},i.prototype.calc=function(t){var e=t*t,n=e*t;return this.c0+this.c1*t+this.c2*e+this.c3*n},i}(),Us=function(i){nh(t,i);function t(e,n,r,s){e===void 0&&(e=[]),n===void 0&&(n=!1),r===void 0&&(r="centripetal"),s===void 0&&(s=.5);var o=i.call(this)||this;return o.isCatmullRomCurve3d=!0,o.type="CatmullRomCurve3d",o._tmp=new w,o._px=new Ei,o._py=new Ei,o._pz=new Ei,o._points=e.map(function(a){return new _(a)}),o._closed=n,o._curveType=r,o._tension=s,o}return Object.defineProperty(t.prototype,"points",{get:function(){return this._points},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"closed",{get:function(){return this._closed},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"curveType",{get:function(){return this._curveType},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"tension",{get:function(){return this._tension},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"startPoint",{get:function(){return this._points.length>0?this._points[0]:new _},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"endPoint",{get:function(){return this._points.length>0?this._points[this._points.length-1]:new _},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"length",{get:function(){if(this._points.length<2)return 0;for(var e=0,n=1;n<this._points.length;n++)e+=this._points[n-1].distanceTo(this._points[n]);return this._closed&&this._points.length>2&&(e+=this._points[this._points.length-1].distanceTo(this._points[0])),e},enumerable:!1,configurable:!0}),t.prototype.getPoint=function(e,n){n===void 0&&(n=new _);var r=n,s=this._points,o=s.length;if(o===0)return r.set(0,0,0);if(o===1)return r.copy(s[0]);var a=(o-(this._closed?0:1))*e,h=Math.floor(a),l=a-h;this._closed?h+=h>0?0:(Math.floor(Math.abs(h)/o)+1)*o:l===0&&h===o-1&&(h=o-2,l=1);var c,u;this._closed||h>0?c=s[(h-1)%o]:(this._tmp.subVectors(s[0],s[1]).add(s[0]),c=new _(this._tmp.x,this._tmp.y,this._tmp.z));var g=s[h%o],d=s[(h+1)%o];if(this._closed||h+2<o?u=s[(h+2)%o]:(this._tmp.subVectors(s[o-1],s[o-2]).add(s[o-1]),u=new _(this._tmp.x,this._tmp.y,this._tmp.z)),this._curveType==="centripetal"||this._curveType==="chordal"){var p=this._curveType==="chordal"?.5:.25,f=Math.pow(c.distanceToSquared(g),p),y=Math.pow(g.distanceToSquared(d),p),m=Math.pow(d.distanceToSquared(u),p);y<1e-4&&(y=1),f<1e-4&&(f=y),m<1e-4&&(m=y),this._px.initNonuniformCatmullRom(c.x,g.x,d.x,u.x,f,y,m),this._py.initNonuniformCatmullRom(c.y,g.y,d.y,u.y,f,y,m),this._pz.initNonuniformCatmullRom(c.z,g.z,d.z,u.z,f,y,m)}else this._curveType==="catmullrom"&&(this._px.initCatmullRom(c.x,g.x,d.x,u.x,this._tension),this._py.initCatmullRom(c.y,g.y,d.y,u.y,this._tension),this._pz.initCatmullRom(c.z,g.z,d.z,u.z,this._tension));return r.set(this._px.calc(l),this._py.calc(l),this._pz.calc(l)),r},t.prototype.getPoints=function(e){for(var n=[],r=0;r<=e;r++)n.push(this.getPoint(r/e));return n},t.prototype.setPoints=function(e){this._points=e.map(function(n){return new _(n)}),this._boundingBoxNeedsUpdate=!0},t.prototype.setClosed=function(e){this._closed!==e&&(this._closed=e,this._boundingBoxNeedsUpdate=!0)},t.prototype.setCurveType=function(e){this._curveType=e},t.prototype.setTension=function(e){this._tension=e},t.prototype.clone=function(){return new t(this._points.map(function(e){return e.clone()}),this._closed,this._curveType,this._tension)},t.prototype.transform=function(e){return this._points=this._points.map(function(n){var r=new _;return r.copy(n),r.applyMatrix4(e),r}),this._boundingBoxNeedsUpdate=!0,this},t.prototype.calculateBoundingBox=function(){if(this._points.length===0)return new C;var e=new C;return this._points.forEach(function(n){e.expandByPoint(n)}),e},t}(Ie),Qt=function(i,t){var e=typeof Symbol=="function"&&i[Symbol.iterator];if(!e)return i;var n=e.call(i),r,s=[],o;try{for(;(t===void 0||t-- >0)&&!(r=n.next()).done;)s.push(r.value)}catch(a){o={error:a}}finally{try{r&&!r.done&&(e=n.return)&&e.call(n)}finally{if(o)throw o.error}}return s},Jt=function(i,t,e){if(e||arguments.length===2)for(var n=0,r=t.length,s;n<r;n++)(s||!(n in t))&&(s||(s=Array.prototype.slice.call(t,0,n)),s[n]=t[n]);return i.concat(s||Array.prototype.slice.call(t))};function Vr(i,t){var e,n,r=i.x-t[0],s=i.y-t[1],o=((e=i.z)!==null&&e!==void 0?e:0)-((n=t[2])!==null&&n!==void 0?n:0);return r*r+s*s+o*o}var ut=function(){function i(t,e,n,r){this._degree=t,this._knots=Jt([],Qt(e),!1),this._controlPoints=n.map(function(s){return{x:s.x,y:s.y,z:s.z}}),this._weights=r?Jt([],Qt(r),!1):new Array(n.length).fill(1)}return i.prototype.degree=function(){return this._degree},i.prototype.knots=function(){return Jt([],Qt(this._knots),!1)},i.prototype.controlPoints=function(){return this._controlPoints.map(function(t){return{x:t.x,y:t.y,z:t.z}})},i.prototype.weights=function(){return Jt([],Qt(this._weights),!1)},i.prototype.clone=function(){return new i(this._degree,this._knots,this._controlPoints,this._weights)},i.prototype.point=function(t){return this.evaluate(t).point},i.prototype.evaluate=function(t){var e=this._controlPoints.map(function(n){return[n.x,n.y,n.z]});return Ja(t,this._degree,this._knots,e,this._weights)},i.prototype.signedPlanarCurvatureAt=function(t){var e=this.evaluate(t);return tl(e.deriv1,e.deriv2)},i.prototype.getOffsetSamplePath2d=function(t,e){var n=this;e===void 0&&(e=512);for(var r=Math.abs(t),s=this.getParameterRange(),o=s.start,a=s.end,h=this.length(),l=Math.max(64,Math.ceil(h/Math.max(r*.2,1e-6))),c=rh(o,a,Math.min(l,e)),u=0;u<8&&c.length<e;u++){for(var g=[],d=0;d<c.length-1;d++){var p=c[d],f=c[d+1],y=(p+f)/2,m=Math.max(Math.abs(this.signedPlanarCurvatureAt(p)),Math.abs(this.signedPlanarCurvatureAt(f)),Math.abs(this.signedPlanarCurvatureAt(y)));r*m>.85&&g.push(y)}if(g.length===0)break;if(c=sh(c,g),c.length>e){c=c.slice(0,e);break}}var x=[],S=[];return c.forEach(function(A){var L=n.evaluate(A);x.push(new P(L.point[0],L.point[1]));var T=L.deriv1[0],M=L.deriv1[1],X=Math.hypot(T,M);S.push(X>1e-10?new P(T/X,M/X):new P(1,0))}),{points:x,tangents:S}},i.prototype.length=function(){var t=this._controlPoints.map(function(e){return[e.x,e.y,e.z]});return Os(this._degree,this._knots,t,this._weights)},i.byKnotsControlPointsWeights=function(t,e,n,r){return new i(t,e,n,r)},i.byPoints=function(t,e,n,r,s){n===void 0&&(n="Uniform");var o=On(t,e,n,r,s),a=o.controlPoints.map(function(h){return{x:h[0],y:h[1],z:h[2]}});return new i(e,o.knots,a,o.weights)},i.prototype.getParameterRange=function(){var t=this._knots[this._degree],e=this._knots[this._knots.length-this._degree-1];return{start:t,end:e}},i.prototype.getPoints=function(t){for(var e=[],n=this.getParameterRange(),r=n.start,s=n.end,o=0;o<=t;o++){var a=r+(s-r)*(o/t);e.push(this.point(a))}return e},i.prototype.isClosed=function(t){t===void 0&&(t=1e-6);var e=this.getParameterRange(),n=e.start,r=e.end,s=this.point(n),o=this.point(r),a=s[0]-o[0],h=s[1]-o[1],l=s[2]-o[2];return Math.sqrt(a*a+h*h+l*l)<t},i.createFitPointsForClosedCurve=function(t){if(t.length<4)throw new Error("At least 4 points are required for a closed NURBS curve");var e=new Us(t,!0,"centripetal"),n=Math.max(50,t.length*2);return e.getPoints(n)},i.prototype.nearestPoint=function(t,e){var n;e===void 0&&(e=64);for(var r=this.getParameterRange(),s=r.start,o=r.end,a=this.point(s),h=Vr(t,a),l=0;l<=e;l++){var c=s+(o-s)*l/e,u=this.point(c),g=Vr(t,u);g<h&&(h=g,a=u)}return{x:a[0],y:a[1],z:(n=a[2])!==null&&n!==void 0?n:0}},i.createClosedCurve=function(t,e,n){n===void 0&&(n="Chord");var r=this.createFitPointsForClosedCurve(t),s=r.map(function(o){return[o.x,o.y,o.z]});return i.byPoints(s,e,n)},i}();function rh(i,t,e){if(e<2)return[i,t];for(var n=[],r=0;r<e;r++)n.push(r===e-1?t:i+(t-i)*r/(e-1));return n}function sh(i,t){var e=Jt(Jt([],Qt(i),!1),Qt(t),!1).sort(function(r,s){return r-s}),n=[];return e.forEach(function(r){var s=n[n.length-1];(s===void 0||Math.abs(s-r)>1e-10)&&n.push(r)}),n}var oh=function(){var i=function(t,e){return i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,r){n.__proto__=r}||function(n,r){for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&(n[s]=r[s])},i(t,e)};return function(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");i(t,e);function n(){this.constructor=t}t.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}}(),jr=function(i,t){var e=typeof Symbol=="function"&&i[Symbol.iterator];if(!e)return i;var n=e.call(i),r,s=[],o;try{for(;(t===void 0||t-- >0)&&!(r=n.next()).done;)s.push(r.value)}catch(a){o={error:a}}finally{try{r&&!r.done&&(e=n.return)&&e.call(n)}finally{if(o)throw o.error}}return s},Gr=function(i,t,e){if(e||arguments.length===2)for(var n=0,r=t.length,s;n<r;n++)(s||!(n in t))&&(s||(s=Array.prototype.slice.call(t,0,n)),s[n]=t[n]);return i.concat(s||Array.prototype.slice.call(t))},Yt=function(i){oh(t,i);function t(e,n,r,s,o,a){var h=i.call(this)||this,l=arguments.length;if(h._degree=3,h._closed=!1,Array.isArray(n)){if(l<2||l>5)throw st.ILLEGAL_PARAMETERS;h._controlPoints=e;var d=void 0,p=3,f=!1;if(l>=3&&(Array.isArray(r)?(d=r,l>=4&&(p=s||3),l>=5&&(f=o)):r!==void 0&&(p=r||3,l>=4&&(f=s))),r===void 0&&l>=4&&(p=s||3,l>=5&&(f=o)),h._degree=p,h._closed=f,h._controlPoints.length<h._degree+1)throw st.ILLEGAL_PARAMETERS;h._nurbsCurve=ut.byKnotsControlPointsWeights(h._degree,n,h._controlPoints,d)}else{if(l<2||l>6)throw st.ILLEGAL_PARAMETERS;h._fitPoints=e,h._knotParameterization=n,l>=3&&(h._degree=r||3);var c=typeof s=="boolean";l>=4&&c&&(h._closed=s),c?(l>=5&&(h._startTangent=o),l>=6&&(h._endTangent=a)):(l>=4&&(h._startTangent=s),l>=5&&(h._endTangent=o)),h._closed&&(h._startTangent=void 0,h._endTangent=void 0);var u=(h._startTangent?1:0)+(h._endTangent?1:0);if(h._fitPoints.length+u<h._degree+1)throw st.ILLEGAL_PARAMETERS;if(h._closed)h._nurbsCurve=ut.createClosedCurve(h._fitPoints,h._degree,h._knotParameterization);else{var g=h.toNurbsPoints(h._fitPoints);h._nurbsCurve=ut.byPoints(g,h._degree,h._knotParameterization,h._startTangent?h.toNurbsPoint(h._startTangent):void 0,h._endTangent?h.toNurbsPoint(h._endTangent):void 0)}h._controlPoints=h.toGePoints(h._nurbsCurve.controlPoints().map(function(y){return[y.x,y.y,y.z||0]}))}return h}return t.prototype.buildCurve=function(){if(this._fitPoints&&this._knotParameterization){if(this._closed){var e=ut.createFitPointsForClosedCurve(this._fitPoints),n=this.toNurbsPoints(e);this._nurbsCurve=ut.byPoints(n,this._degree,this._knotParameterization)}else{var n=this.toNurbsPoints(this._fitPoints);this._nurbsCurve=ut.byPoints(n,this._degree,this._knotParameterization,this._startTangent?this.toNurbsPoint(this._startTangent):void 0,this._endTangent?this.toNurbsPoint(this._endTangent):void 0)}this._controlPoints=this.toGePoints(this._nurbsCurve.controlPoints().map(function(o){return[o.x,o.y,o.z||0]}))}else if(this._controlPoints)if(this._closed){var e=ut.createFitPointsForClosedCurve(this._controlPoints),n=this.toNurbsPoints(e);this._nurbsCurve=ut.byPoints(n,this._degree,this._knotParameterization),this._controlPoints=this.toGePoints(this._nurbsCurve.controlPoints().map(function(h){return[h.x,h.y,h.z||0]}))}else{var r=this._nurbsCurve.knots(),s=this._nurbsCurve.weights();this._nurbsCurve=ut.byKnotsControlPointsWeights(this._degree,r,this._controlPoints,s)}},t.prototype.setClosed=function(e){this._closed!==e&&(this._closed=e,this._boundingBoxNeedsUpdate=!0,this.buildCurve())},Object.defineProperty(t.prototype,"degree",{get:function(){return this._degree},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"knotParameterization",{get:function(){return this._knotParameterization},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"controlPoints",{get:function(){return this._controlPoints.map(function(e){return{x:e.x,y:e.y,z:e.z||0}})},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"fitPoints",{get:function(){var e;return(e=this._fitPoints)===null||e===void 0?void 0:e.map(function(n){return{x:n.x,y:n.y,z:n.z||0}})},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"knots",{get:function(){return Gr([],jr(this._nurbsCurve.knots()),!1)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"weights",{get:function(){return Gr([],jr(this._nurbsCurve.weights()),!1)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"startPoint",{get:function(){var e=this._nurbsCurve.knots(),n=this._nurbsCurve.degree(),r=e[n],s=this._nurbsCurve.point(r);return new _(s[0],s[1],s[2])},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"endPoint",{get:function(){var e=this._nurbsCurve.knots(),n=this._nurbsCurve.degree(),r=e[e.length-n-1],s=this._nurbsCurve.point(r);return new _(s[0],s[1],s[2])},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"length",{get:function(){return this._nurbsCurve.length()},enumerable:!1,configurable:!0}),t.prototype.nearestPoint=function(e,n){n===void 0&&(n=64);var r=this._nurbsCurve.nearestPoint(e,n);return new _(r.x,r.y,r.z||0)},t.prototype.evaluateAt=function(e){var n=this._nurbsCurve.point(e);return new _(n[0],n[1],n[2])},t.prototype.getFitPointAt=function(e){if(!this._fitPoints)throw new Error("No fit points in this spline");var n=this._fitPoints.length,r=e<0||e>=n?n-1:e,s=this._fitPoints[r];return{x:s.x,y:s.y,z:s.z||0}},t.prototype.getControlPointAt=function(e){var n=this._controlPoints.length,r=e<0||e>=n?n-1:e;return this._controlPoints[r]},t.prototype.getOffsetSamplePath2d=function(e){return this._nurbsCurve.getOffsetSamplePath2d(e)},t.prototype.getPoints=function(e){e===void 0&&(e=100);for(var n=this._nurbsCurve,r=[],s=n.knots(),o=this._nurbsCurve.degree(),a=s[o],h=s[s.length-o-1],l=(h-a)/(e-1),c=0;c<e;c++){var u=c===e-1?h:a+c*l,g=n.point(u);r.push(new _(g[0],g[1],g[2]))}return r},t.prototype.getCurvePoints=function(e,n){for(var r=[],s=e.knots(),o=e.degree(),a=s[o],h=s[s.length-o-1],l=(h-a)/(n-1),c=0;c<n;c++){var u=a+c*l;r.push(e.point(u))}return r},t.prototype.calculateBoundingBox=function(){var e=this.getPoints(100);return new C().setFromPoints(e)},Object.defineProperty(t.prototype,"closed",{get:function(){return this._closed},set:function(e){this.setClosed(e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"area",{get:function(){if(!this._closed)return 0;var e=this.getPoints(128);return Xs(e)},enumerable:!1,configurable:!0}),t.prototype.transform=function(e){if(this._fitPoints&&this._knotParameterization)this._fitPoints=this._fitPoints.map(function(s){return new _(s).applyMatrix4(e)}),this._startTangent&&(this._startTangent=new _(this._startTangent).transformDirection(e)),this._endTangent&&(this._endTangent=new _(this._endTangent).transformDirection(e)),this.buildCurve();else{var n=this._nurbsCurve.knots(),r=this._nurbsCurve.weights();this._controlPoints=this._controlPoints.map(function(s){return new _(s).applyMatrix4(e)}),this._nurbsCurve=ut.byKnotsControlPointsWeights(this._degree,n,this._controlPoints,r.length>0?r:void 0)}return this._boundingBoxNeedsUpdate=!0,this},t.prototype.clone=function(){return this._fitPoints&&this._knotParameterization?new t(this._fitPoints.map(function(e){return{x:e.x,y:e.y,z:e.z||0}}),this._knotParameterization,this._degree,this._closed,this._startTangent?{x:this._startTangent.x,y:this._startTangent.y,z:this._startTangent.z||0}:void 0,this._endTangent?{x:this._endTangent.x,y:this._endTangent.y,z:this._endTangent.z||0}:void 0):new t(this._controlPoints.map(function(e){return{x:e.x,y:e.y,z:e.z||0}}),this._nurbsCurve.knots(),this._nurbsCurve.weights(),this._degree,this._closed)},t.prototype.toNurbsPoints=function(e){var n=new Array(e.length);return e.forEach(function(r,s){n[s]=[r.x,r.y,r.z||0]}),n},t.prototype.toGePoints=function(e){var n=new Array(e.length);return e.forEach(function(r,s){n[s]={x:r[0],y:r[1],z:r[2]}}),n},t.prototype.toNurbsPoint=function(e){return[e.x,e.y,e.z||0]},t.createClosedSpline=function(e,n,r){if(n===void 0&&(n="Uniform"),r===void 0&&(r=3),e.length<r+1)throw new Error("At least ".concat(r+1," points are required for a degree ").concat(r," closed spline"));return new t(e,n,r,!0)},t}(Ie);class Te{constructor(t){this.i=0,this._records=t,this._keys=Array.from(t.keys())}get count(){return this._records.size}toArray(){return Array.from(this._records.values())}[Symbol.iterator](){return this}next(){for(;this.i<this._keys.length;){const t=this._records.get(this._keys[this.i]);return this.i+=1,{value:t,done:!1}}return{value:null,done:!0}}}class Rt extends ft{constructor(t,e){t=t||{},Ee(t,{name:""}),super(t,e)}get name(){return this.getAttr("name")}set name(t){this.setAttr("name",t)}dxfOutFields(t){return super.dxfOutFields(t),t.writeSubclassMarker("AcDbSymbolTableRecord"),this}}var $s=(i=>(i[i.Any=0]="Any",i[i.Uniform=1]="Uniform",i))($s||{});const It=class It extends Rt{static isModelSapceName(t){return t.toLowerCase()==It.MODEL_SPACE_NAME.toLowerCase()}static isPaperSapceName(t){return t.toLowerCase().startsWith(It.PAPER_SPACE_NAME_PREFIX.toLowerCase())}constructor(){super(),this._origin=new _,this._layoutId="",this._entities=new Map,this._blockInsertUnits=0,this._explodability=1,this._blockScaling=1,this._bmpPreview=void 0}get isModelSapce(){return It.isModelSapceName(this.name)}get isPaperSapce(){return It.isPaperSapceName(this.name)}get origin(){return this._origin}set origin(t){this._origin.copy(t)}get layoutId(){return this._layoutId}set layoutId(t){this._layoutId=t}get blockInsertUnits(){return this._blockInsertUnits}set blockInsertUnits(t){this._blockInsertUnits=t}get explodability(){return this._explodability}set explodability(t){this._explodability=t}get blockScaling(){return this._blockScaling}set blockScaling(t){this._blockScaling=t}get bmpPreview(){return this._bmpPreview}set bmpPreview(t){this._bmpPreview=t}appendEntity(t){const e=n=>{n.database=this.database,n.ownerId=this.objectId,this.database.ensureEntityStyleDefaults(n),this.database.commitObjectHandle(n,r=>this._entities.has(r)),n.resolveEffectiveProperties(),this._entities.set(n.objectId,n)};if(Array.isArray(t))for(let n=0;n<t.length;++n)e(t[n]);else e(t);(this.isModelSapce||this.isPaperSapce)&&this.database.events.entityAppended.dispatch({database:this.database,entity:t})}removeEntity(t){const e=Array.isArray(t)?t:[t],n=[];return e.forEach(r=>{const s=this._entities.get(r);s&&n.push(s),this._entities.delete(r)}),n.length>0&&this.database.events.entityErased.dispatch({database:this.database,entity:n}),n.length>0}newIterator(){return new Te(this._entities)}getIdAt(t){return this._entities.get(t)}dxfOutBlockRecord(t){return t.writeStart("BLOCK_RECORD"),this.dxfOut(t),this}dxfOutBlockBegin(t){return t.writeStart("BLOCK"),t.writeHandle(5,this.database.generateHandle()),t.writeObjectId(330,this.objectId),t.writeSubclassMarker("AcDbEntity"),t.writeString(8,"0"),t.writeSubclassMarker("AcDbBlockBegin"),t.writeString(2,this.name),t.writeInt16(70,0),t.writePoint3d(10,this.origin),t.writeString(3,this.name),this}dxfOutBlockEnd(t){return t.writeStart("ENDBLK"),t.writeHandle(5,this.database.generateHandle()),t.writeObjectId(330,this.objectId),t.writeSubclassMarker("AcDbEntity"),t.writeSubclassMarker("AcDbBlockEnd"),this}dxfOutFields(t){return super.dxfOutFields(t),t.writeSubclassMarker("AcDbBlockTableRecord"),t.writeString(2,this.name),t.writeInt16(70,this.blockInsertUnits),t.writeInt16(280,this.explodability),t.writeInt16(281,this.blockScaling),(this.isModelSapce||this.isPaperSapce)&&t.writeObjectId(340,this.layoutId),this}};It.MODEL_SPACE_NAME="*Model_Space",It.PAPER_SPACE_NAME_PREFIX="*Paper_Space";let Q=It;var qs=(i=>(i[i.kInches=0]="kInches",i[i.kMillimeters=1]="kMillimeters",i[i.kPixels=2]="kPixels",i))(qs||{}),Zs=(i=>(i[i.k0degrees=0]="k0degrees",i[i.k90degrees=1]="k90degrees",i[i.k180degrees=2]="k180degrees",i[i.k270degrees=3]="k270degrees",i))(Zs||{}),Ks=(i=>(i[i.kDisplay=0]="kDisplay",i[i.kExtents=1]="kExtents",i[i.kLimits=2]="kLimits",i[i.kView=3]="kView",i[i.kWindow=4]="kWindow",i[i.kLayout=5]="kLayout",i))(Ks||{}),Qs=(i=>(i[i.kDraft=0]="kDraft",i[i.kPreview=1]="kPreview",i[i.kNormal=2]="kNormal",i[i.kPresentation=3]="kPresentation",i[i.kMaximum=4]="kMaximum",i[i.kCustom=5]="kCustom",i))(Qs||{}),Js=(i=>(i[i.kAsDisplayed=0]="kAsDisplayed",i[i.kWireframe=1]="kWireframe",i[i.kHidden=2]="kHidden",i[i.kRendered=3]="kRendered",i[i.kVisualStyle=4]="kVisualStyle",i[i.kRenderPreset=5]="kRenderPreset",i))(Js||{}),to=(i=>(i[i.kScaleToFit=0]="kScaleToFit",i[i.k1_128in_1ft=1]="k1_128in_1ft",i[i.k1_64in_1ft=2]="k1_64in_1ft",i[i.k1_32in_1ft=3]="k1_32in_1ft",i[i.k1_16in_1ft=4]="k1_16in_1ft",i[i.k3_32in_1ft=5]="k3_32in_1ft",i[i.k1_8in_1ft=6]="k1_8in_1ft",i[i.k3_16in_1ft=7]="k3_16in_1ft",i[i.k1_4in_1ft=8]="k1_4in_1ft",i[i.k3_8in_1ft=9]="k3_8in_1ft",i[i.k1_2in_1ft=10]="k1_2in_1ft",i[i.k3_4in_1ft=11]="k3_4in_1ft",i[i.k1in_1ft=12]="k1in_1ft",i[i.k3in_1ft=13]="k3in_1ft",i[i.k6in_1ft=14]="k6in_1ft",i[i.k1ft_1ft=15]="k1ft_1ft",i[i.k1_1=16]="k1_1",i[i.k1_2=17]="k1_2",i[i.k1_4=18]="k1_4",i[i.k1_5=19]="k1_5",i[i.k1_8=20]="k1_8",i[i.k1_10=21]="k1_10",i[i.k1_16=22]="k1_16",i[i.k1_20=23]="k1_20",i[i.k1_30=24]="k1_30",i[i.k1_40=25]="k1_40",i[i.k1_50=26]="k1_50",i[i.k1_100=27]="k1_100",i[i.k2_1=28]="k2_1",i[i.k4_1=29]="k4_1",i[i.k8_1=30]="k8_1",i[i.k10_1=31]="k10_1",i[i.k100_1=32]="k100_1",i[i.k1000_1=33]="k1000_1",i[i.k1and1_2in_1ft=34]="k1and1_2in_1ft",i))(to||{});const ah={0:0,1:1/1536,2:1/768,3:1/384,4:1/192,5:1/128,6:1/96,7:1/64,8:1/48,9:1/32,10:1/24,11:1/16,12:1/12,13:1/4,14:1/2,15:1,16:1,17:1/2,18:1/4,19:1/5,20:1/8,21:1/10,22:1/16,23:1/20,24:1/30,25:1/40,26:1/50,27:1/100,28:2,29:4,30:8,31:10,32:100,33:1e3,34:1/8};class eo extends ft{constructor(t=!1){super(),this._plotSettingsName="",this._plotCfgName="",this._canonicalMediaName="",this._currentStyleSheet="",this._plotOrigin=new P,this._customPrintScale={numerator:1,denominator:1},this._plotPaperSize=new P,this._plotPaperMargins={left:0,right:0,top:0,bottom:0},this._plotViewName="",this._plotWindowArea=new et,this._modelType=t,this._plotCentered=!1,this._plotHidden=!1,this._plotPaperUnits=1,this._plotPlotStyles=!0,this._plotRotation=0,this._plotType=5,this._plotViewportBorders=!1,this._printLineweights=!0,this._scaleLineweights=!1,this._drawViewportsFirst=!1,this._showPlotStyles=!0,this._shadePlotType=0,this._shadePlotResLevel=2,this._shadePlotCustomDpi=300,this._shadePlotId=void 0,this._stdScaleType=0,this._useStandardScale=!0}get plotSettingsName(){return this._plotSettingsName}set plotSettingsName(t){this._plotSettingsName=t}getPlotSettingsName(){return this._plotSettingsName}setPlotSettingsName(t){this._plotSettingsName=t}get plotCfgName(){return this._plotCfgName}set plotCfgName(t){this._plotCfgName=t}getPlotCfgName(){return this._plotCfgName}get canonicalMediaName(){return this._canonicalMediaName}set canonicalMediaName(t){this._canonicalMediaName=t}getCanonicalMediaName(){return this._canonicalMediaName}get currentStyleSheet(){return this._currentStyleSheet}set currentStyleSheet(t){this._currentStyleSheet=t}getCurrentStyleSheet(){return this._currentStyleSheet}get plotOrigin(){return this._plotOrigin}set plotOrigin(t){this._plotOrigin=t}getPlotOrigin(){return this._plotOrigin}get customPrintScale(){return this._customPrintScale}set customPrintScale(t){this._customPrintScale=t}getCustomPrintScale(){return this._customPrintScale}get plotPaperSize(){return this._plotPaperSize}set plotPaperSize(t){this._plotPaperSize=t}getPlotPaperSize(){return this._plotPaperSize}get plotPaperMargins(){return this._plotPaperMargins}set plotPaperMargins(t){this._plotPaperMargins=t}getPlotPaperMargins(){return this._plotPaperMargins}get plotViewName(){return this._plotViewName}set plotViewName(t){this._plotViewName=t}getPlotViewName(){return this._plotViewName}get plotWindowArea(){return this._plotWindowArea}set plotWindowArea(t){this._plotWindowArea=t}getPlotWindowArea(){return this._plotWindowArea}get modelType(){return this._modelType}set modelType(t){this._modelType=t}getModelType(){return this._modelType}setModelType(t){this._modelType=t}get drawViewportsFirst(){return this._drawViewportsFirst}set drawViewportsFirst(t){this._drawViewportsFirst=t}setDrawViewportsFirst(t){this._drawViewportsFirst=t}get plotCentered(){return this._plotCentered}set plotCentered(t){this._plotCentered=t}setPlotCentered(t){this._plotCentered=t}get plotHidden(){return this._plotHidden}set plotHidden(t){this._plotHidden=t}setPlotHidden(t){this._plotHidden=t}get plotPaperUnits(){return this._plotPaperUnits}set plotPaperUnits(t){this._plotPaperUnits=t}get plotPlotStyles(){return this._plotPlotStyles}set plotPlotStyles(t){this._plotPlotStyles=t}setPlotPlotStyles(t){this._plotPlotStyles=t}get plotRotation(){return this._plotRotation}set plotRotation(t){this._plotRotation=t}get plotType(){return this._plotType}set plotType(t){this._plotType=t}get plotViewportBorders(){return this._plotViewportBorders}set plotViewportBorders(t){this._plotViewportBorders=t}setPlotViewportBorders(t){this._plotViewportBorders=t}get printLineweights(){return this._printLineweights}set printLineweights(t){this._printLineweights=t}setPrintLineweights(t){this._printLineweights=t}get scaleLineweights(){return this._scaleLineweights}set scaleLineweights(t){this._scaleLineweights=t}setScaleLineweights(t){this._scaleLineweights=t}get showPlotStyles(){return this._showPlotStyles}set showPlotStyles(t){this._showPlotStyles=t}setShowPlotStyles(t){this._showPlotStyles=t}get shadePlot(){return this._shadePlotType}set shadePlot(t){this._shadePlotType=t}setShadePlot(t){this._shadePlotType=t}get shadePlotResLevel(){return this._shadePlotResLevel}set shadePlotResLevel(t){this._shadePlotResLevel=t}setShadePlotResLevel(t){this._shadePlotResLevel=t}get shadePlotCustomDPI(){return this._shadePlotCustomDpi}set shadePlotCustomDPI(t){this._shadePlotCustomDpi=t}setShadePlotCustomDPI(t){this._shadePlotCustomDpi=t}get shadePlotId(){return this._shadePlotId}set shadePlotId(t){this._shadePlotId=t}get plotWireframe(){return this._shadePlotType===1}get plotAsRaster(){return this._shadePlotType===3||this._shadePlotType===4||this._shadePlotType===5}get stdScaleType(){return this._stdScaleType}set stdScaleType(t){this._stdScaleType=t}get stdScale(){return ah[this._stdScaleType]??1}get useStandardScale(){return this._useStandardScale}set useStandardScale(t){this._useStandardScale=t}dxfOutFields(t){super.dxfOutFields(t),t.writeSubclassMarker("AcDbPlotSettings"),t.writeString(1,this.plotSettingsName),t.writeString(2,this.plotCfgName),t.writeString(4,this.canonicalMediaName),t.writeString(6,this.plotViewName),t.writeDouble(40,this.plotPaperMargins.left),t.writeDouble(41,this.plotPaperMargins.bottom),t.writeDouble(42,this.plotPaperMargins.right),t.writeDouble(43,this.plotPaperMargins.top),t.writeDouble(44,this.plotPaperSize.x),t.writeDouble(45,this.plotPaperSize.y),t.writeDouble(46,this.plotOrigin.x),t.writeDouble(47,this.plotOrigin.y),t.writeDouble(48,this.plotWindowArea.min.x),t.writeDouble(49,this.plotWindowArea.min.y),t.writeDouble(140,this.plotWindowArea.max.x),t.writeDouble(141,this.plotWindowArea.max.y),t.writeDouble(142,this.customPrintScale.numerator),t.writeDouble(143,this.customPrintScale.denominator);let e=0;return this.plotViewportBorders&&(e|=1),this.showPlotStyles&&(e|=2),this.plotCentered&&(e|=4),this.plotHidden&&(e|=8),this.useStandardScale&&(e|=16),this.plotPlotStyles&&(e|=32),this.scaleLineweights&&(e|=64),this.printLineweights&&(e|=128),this.drawViewportsFirst&&(e|=512),this.modelType&&(e|=1024),t.writeInt16(70,e),t.writeInt16(72,this.plotPaperUnits),t.writeInt16(73,this.plotRotation),t.writeInt16(74,this.plotType),t.writeString(7,this.currentStyleSheet),t.writeInt16(75,this.stdScaleType),t.writeInt16(76,this.shadePlot),t.writeInt16(77,this.shadePlotResLevel),t.writeInt16(78,this.shadePlotCustomDPI),t.writeDouble(147,this.stdScale),t.writeObjectId(333,this.shadePlotId),this}}class fi extends eo{constructor(){super(),this._tabOrder=-1,this._tabSelected=!1,this._blockTableRecordId="",this._layoutName="",this._limits=new et,this._extents=new C,this._viewportArray=[]}get layoutName(){return this._layoutName}set layoutName(t){this._layoutName=t.length>256?t.slice(0,256):t}get tabOrder(){return this._tabOrder}set tabOrder(t){this._tabOrder=t}get tabSelected(){return this._tabSelected}set tabSelected(t){this._tabSelected=t}get blockTableRecordId(){return this._blockTableRecordId}set blockTableRecordId(t){this._blockTableRecordId=t}get limits(){return this._limits}set limits(t){this._limits.copy(t)}get extents(){return this._extents}set extents(t){this._extents.copy(t)}get viewportArray(){return this._viewportArray}set viewportArray(t){this._viewportArray=t.slice()}dxfOutFields(t){return super.dxfOutFields(t),t.writeSubclassMarker("AcDbLayout"),t.writeString(1,this.layoutName),t.writeInt16(70,this.tabSelected?1:0),t.writeInt16(71,this.tabOrder),t.writeObjectId(330,this.blockTableRecordId),t.writeObjectId(331,this._viewportArray.length>0?this._viewportArray[0]:"0"),t.writePoint2d(10,this.limits.min),t.writePoint2d(11,this.limits.max),t.writePoint3d(14,this.extents.min),t.writePoint3d(15,this.extents.max),this}}class io{constructor(){this.events={layoutCreated:new D,layoutRemoved:new D,layoutRenamed:new D,layoutSwitched:new D}}countLayouts(t){return this.getWorkingDatabase(t).objects.layout.numEntries}findLayoutNamed(t,e){return this.getWorkingDatabase(e).objects.layout.getAt(t)}findActiveLayout(){const t=this.getActiveLayout();return t?t.layoutName:"Model"}setCurrentLayoutId(t,e){const n=this.getWorkingDatabase(e),r=n.objects.layout.getIdAt(t);return this.setCurrentLayoutInternal(r,n)}setCurrentLayoutBtrId(t,e){const n=this.getWorkingDatabase(e),r=n.objects.layout.getBtrIdAt(t);return this.setCurrentLayoutInternal(r,n)}setCurrentLayout(t,e){const n=this.getWorkingDatabase(e),r=n.objects.layout.getAt(t);return this.setCurrentLayoutInternal(r,n)}renameLayout(t,e,n){const s=this.getWorkingDatabase(n).objects.layout.getAt(t);return s?(s.layoutName=e,this.events.layoutRenamed.dispatch({layout:s,oldName:t,newName:e}),!0):!1}layoutExists(t,e){return this.getWorkingDatabase(e).objects.layout.has(t)}deleteLayout(t,e){const n=this.getWorkingDatabase(e).objects.layout,r=n.getAt(t);let s=!1;return r&&(s=n.remove(t),s&&this.events.layoutRemoved.dispatch({layout:r})),s}createLayout(t,e){const n=this.getWorkingDatabase(e),r=new fi;r.layoutName=t,r.tabOrder=n.objects.layout.maxTabOrder;const s=new Q;return s.name=`*Paper_Space${r.tabOrder}`,n.tables.blockTable.add(s),n.objects.layout.setAt(t,r),this.events.layoutCreated.dispatch({layout:r}),{layout:r,btr:s}}getActiveLayout(t){const e=this.getWorkingDatabase(t);return e.objects.layout.getBtrIdAt(e.currentSpaceId)}getWorkingDatabase(t){return t||Na()}setCurrentLayoutInternal(t,e){return t?(this.events.layoutSwitched.dispatch({layout:t}),e.currentSpaceId=t.blockTableRecordId,!0):!1}}let Ge;function lh(i){Ge=i}function no(){return $e.instance}const ni=class ni{constructor(){this._workingDatabase=null}get workingDatabase(){if(this._workingDatabase==null)throw new Error("The current working database must be set before using it!");return this._workingDatabase}set workingDatabase(t){this._workingDatabase=t}get layoutManager(){return this._layoutManager||(Ge||(Ge=()=>new io),this._layoutManager=Ge()),this._layoutManager}};ni.instance=new ni;let $e=ni;ls(no);var ro=(i=>(i.kForRead="kForRead",i.kForWrite="kForWrite",i))(ro||{});class Nn{constructor(t){if(this._values=[],t)for(const e of t)this._values.push({...e})}get length(){return this._values.length}at(t){return this._values[t]}add(t){this._values.push(t)}addRange(t){for(const e of t)this._values.push(e)}clear(){this._values.length=0}toArray(){return this._values.map(t=>({...t}))}clone(){return new Nn(this._values)}[Symbol.iterator](){return this._values[Symbol.iterator]()}}class so{constructor(t,e,n){this._chunkSize=-1,this._minimumChunkSize=50,this._count=t,this._numerOfChunk=e<1?1:e,this._minimumChunkSize=n,this.calculateChunkSize()}get count(){return this._count}get numerOfChunk(){return this._numerOfChunk}get minimumChunkSize(){return this._minimumChunkSize}set minimumChunkSize(t){this._minimumChunkSize=t,this.calculateChunkSize()}get chunkSize(){return this._chunkSize}calculateChunkSize(){let t=this._count/this._numerOfChunk;t<this._minimumChunkSize&&(t=Math.min(this._minimumChunkSize,this._count)),this._chunkSize=t<1?this._count:Math.floor(t)}scheduleTask(t){return new Promise((e,n)=>{const r=()=>{Promise.resolve(t()).then(e).catch(n)};typeof window<"u"&&typeof window.requestAnimationFrame=="function"?window.requestAnimationFrame(r):setTimeout(r,0)})}async processChunk(t,e){if(this._count<=0){await(e==null?void 0:e());return}let n=0;const r=async()=>{const s=n,o=Math.min(n+this._chunkSize,this._count);await t(s,o),n=o,n<this._count&&await this.scheduleTask(r)};await r(),await(e==null?void 0:e())}}class Wt{static get instance(){return this._instance||(this._instance=new Wt),this._instance}constructor(){this._blocks=new Map}createKey(t,e){return`${t}_${e}`}set(t,e){return e=e.fastDeepClone(),this._blocks.set(t,e),e}get(t){let e=this._blocks.get(t);return e&&(e=e.fastDeepClone()),e}has(t){return this._blocks.has(t)}clear(){this._blocks.clear()}draw(t,e,n,r=[],s=!0,o,a){const h=[];if(e!=null){const l=this.createKey(e.name,n);let c;if(this.has(l))c=this.get(l);else{const u=e.newIterator();for(const g of u)g.visibility&&(g.color.isByBlock&&n?(Hr.copy(g.color),g.color.setRGBValue(n),this.addEntity(g,h,t),g.color.copy(Hr)):this.addEntity(g,h,t));c=t.group(h),c&&s&&Q.name&&!Q.name.startsWith("*U")&&this.set(l,c)}return c&&o&&(c.applyMatrix(o),a&&(a.x!=0||a.y!=0||a.z!=1)&&(o.setFromExtrusionDirection(a),c.applyMatrix(o))),c&&r&&r.length>0&&(c.bakeTransformToChildren(),r.forEach(u=>c.addChild(u))),c}else return t.group(h)}addEntity(t,e,n){if(!t.visibility)return;const r=t.worldDraw(n);r&&(this.attachEntityInfo(r,t),e.push(r))}attachEntityInfo(t,e){t.objectId=e.objectId,t.ownerId=e.ownerId,t.layerName=e.layer,t.visible=e.visibility}}const Hr=new k;exports.AcGiArrowType=void 0;(function(i){i.ClosedFilled="",i.Dot="_DOT",i.DotSmall="_DOTSMALL",i.DotBlank="_DOTBLANK",i.Origin="_ORIGIN",i.Origin2="_ORIGIN2",i.Open="_OPEN",i.Open90="_OPEN90",i.Open30="_OPEN30",i.Closed="_CLOSED",i.Small="_SMALL",i.None="_NONE",i.Oblique="_OBLIQUE",i.BoxFilled="_BOXFILLED",i.Box="_BOXBLANK",i.ClosedBlank="_CLOSEDBLANK",i.DatumBlank="_DATUMBLANK",i.DatumFilled="_DATUMFILLED",i.Integral="_INTEGRAL",i.ArchTick="_ARCHTICK"})(exports.AcGiArrowType||(exports.AcGiArrowType={}));exports.AcGiLineWeight=void 0;(function(i){i[i.ByBlock=-2]="ByBlock",i[i.ByDIPs=-4]="ByDIPs",i[i.ByLayer=-1]="ByLayer",i[i.ByLineWeightDefault=-3]="ByLineWeightDefault",i[i.LineWeight000=0]="LineWeight000",i[i.LineWeight005=5]="LineWeight005",i[i.LineWeight009=9]="LineWeight009",i[i.LineWeight013=13]="LineWeight013",i[i.LineWeight015=15]="LineWeight015",i[i.LineWeight018=18]="LineWeight018",i[i.LineWeight020=20]="LineWeight020",i[i.LineWeight025=25]="LineWeight025",i[i.LineWeight030=30]="LineWeight030",i[i.LineWeight035=35]="LineWeight035",i[i.LineWeight040=40]="LineWeight040",i[i.LineWeight050=50]="LineWeight050",i[i.LineWeight053=53]="LineWeight053",i[i.LineWeight060=60]="LineWeight060",i[i.LineWeight070=70]="LineWeight070",i[i.LineWeight080=80]="LineWeight080",i[i.LineWeight090=90]="LineWeight090",i[i.LineWeight100=100]="LineWeight100",i[i.LineWeight106=106]="LineWeight106",i[i.LineWeight120=120]="LineWeight120",i[i.LineWeight140=140]="LineWeight140",i[i.LineWeight158=158]="LineWeight158",i[i.LineWeight200=200]="LineWeight200",i[i.LineWeight211=211]="LineWeight211"})(exports.AcGiLineWeight||(exports.AcGiLineWeight={}));exports.AcGiMTextFlowDirection=void 0;(function(i){i[i.LEFT_TO_RIGHT=1]="LEFT_TO_RIGHT",i[i.RIGHT_TO_LEFT=2]="RIGHT_TO_LEFT",i[i.TOP_TO_BOTTOM=3]="TOP_TO_BOTTOM",i[i.BOTTOM_TO_TOP=4]="BOTTOM_TO_TOP",i[i.BY_STYLE=5]="BY_STYLE"})(exports.AcGiMTextFlowDirection||(exports.AcGiMTextFlowDirection={}));exports.AcGiMTextAttachmentPoint=void 0;(function(i){i[i.TopLeft=1]="TopLeft",i[i.TopCenter=2]="TopCenter",i[i.TopRight=3]="TopRight",i[i.MiddleLeft=4]="MiddleLeft",i[i.MiddleCenter=5]="MiddleCenter",i[i.MiddleRight=6]="MiddleRight",i[i.BottomLeft=7]="BottomLeft",i[i.BottomCenter=8]="BottomCenter",i[i.BottomRight=9]="BottomRight",i[i.BaselineLeft=10]="BaselineLeft",i[i.BaselineCenter=11]="BaselineCenter",i[i.BaselineRight=12]="BaselineRight"})(exports.AcGiMTextAttachmentPoint||(exports.AcGiMTextAttachmentPoint={}));exports.AcGiRenderMode=void 0;(function(i){i[i.OPTIMIZED_2D=0]="OPTIMIZED_2D",i[i.WIREFRAME=1]="WIREFRAME",i[i.HIDDEN_LINE=2]="HIDDEN_LINE",i[i.FLAT_SHADED=3]="FLAT_SHADED",i[i.GOURAUD_SHADED=4]="GOURAUD_SHADED",i[i.FLAT_SHADED_WITH_WIREFRAME=5]="FLAT_SHADED_WITH_WIREFRAME",i[i.GOURAUD_SHADED_WITH_WIREFRAME=6]="GOURAUD_SHADED_WITH_WIREFRAME"})(exports.AcGiRenderMode||(exports.AcGiRenderMode={}));exports.AcGiOrthographicType=void 0;(function(i){i[i.NON_ORTHOGRAPHIC=0]="NON_ORTHOGRAPHIC",i[i.TOP=1]="TOP",i[i.BOTTOM=2]="BOTTOM",i[i.FRONT=3]="FRONT",i[i.BACK=4]="BACK",i[i.LEFT=5]="LEFT",i[i.RIGHT=6]="RIGHT"})(exports.AcGiOrthographicType||(exports.AcGiOrthographicType={}));exports.AcGiDefaultLightingType=void 0;(function(i){i[i.ONE_DISTANT_LIGHT=0]="ONE_DISTANT_LIGHT",i[i.TWO_DISTANT_LIGHTS=1]="TWO_DISTANT_LIGHTS"})(exports.AcGiDefaultLightingType||(exports.AcGiDefaultLightingType={}));var oo=function(){function i(){this._number=-1,this._id="",this._groupId="",this._centerPoint=new _,this._height=0,this._width=0,this._viewCenter=new _,this._viewHeight=0}return Object.defineProperty(i.prototype,"number",{get:function(){return this._number},set:function(t){this._number=t},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"id",{get:function(){return this._id},set:function(t){this._id=t},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"groupId",{get:function(){return this._groupId},set:function(t){this._groupId=t},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"centerPoint",{get:function(){return this._centerPoint},set:function(t){this._centerPoint.copy(t)},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"height",{get:function(){return this._height},set:function(t){this._height=t},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"width",{get:function(){return this._width},set:function(t){this._width=t},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"box",{get:function(){var t=new et;return t.setFromCenterAndSize(this.centerPoint,{x:this.width,y:this.height}),t},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"viewCenter",{get:function(){return this._viewCenter},set:function(t){this._viewCenter.copy(t)},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"viewHeight",{get:function(){return this._viewHeight},set:function(t){this._viewHeight=t},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"viewWidth",{get:function(){return this.viewHeight*(this.width/this.height)},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"viewBox",{get:function(){var t=new et;return t.setFromCenterAndSize(this.viewCenter,{x:this.viewWidth,y:this.viewHeight}),t},enumerable:!1,configurable:!0}),i.prototype.clone=function(){var t=new i;return t.id=this.id,t.groupId=this.groupId,t.number=this.number,t.centerPoint.copy(this.centerPoint),t.height=this.height,t.width=this.width,t.viewCenter.copy(this.viewCenter),t.viewHeight=this.viewHeight,t},i.prototype.copy=function(t){return this.id=t.id,this.groupId=t.groupId,this.number=t.number,this.centerPoint.copy(t.centerPoint),this.height=t.height,this.width=t.width,this.viewCenter.copy(t.viewCenter),this.viewHeight=t.viewHeight,this},i}(),rt=(i=>(i[i.DecimalDegrees=0]="DecimalDegrees",i[i.DegreesMinutesSeconds=1]="DegreesMinutesSeconds",i[i.Gradians=2]="Gradians",i[i.Radians=3]="Radians",i[i.SurveyorsUnits=4]="SurveyorsUnits",i))(rt||{});const Xt="Continuous",K="Standard",Tt="Standard",Ct="Standard",hh="ANSI31",ao="ANGLE",Gt="SOLID",lo="USER",ho="LINEAR",tt="ByLayer",Ot="ByBlock",Ae="*Active",zi="mlightcad",Fi="ACAD",ch=Object.freeze({x:0,y:0}),uh=Object.freeze({x:0,y:0}),dh=Object.freeze({x:1,y:1}),gh=Object.freeze({x:0,y:0,z:1}),ph=Object.freeze({x:0,y:0,z:0});var G=(i=>(i[i.Scientific=1]="Scientific",i[i.Decimal=2]="Decimal",i[i.Engineering=3]="Engineering",i[i.Architectural=4]="Architectural",i[i.Fractional=5]="Fractional",i[i.WindowsDesktop=6]="WindowsDesktop",i))(G||{}),V=(i=>(i[i.Undefined=0]="Undefined",i[i.Inches=1]="Inches",i[i.Feet=2]="Feet",i[i.Miles=3]="Miles",i[i.Millimeters=4]="Millimeters",i[i.Centimeters=5]="Centimeters",i[i.Meters=6]="Meters",i[i.Kilometers=7]="Kilometers",i[i.Microinches=8]="Microinches",i[i.Mils=9]="Mils",i[i.Yards=10]="Yards",i[i.Angstroms=11]="Angstroms",i[i.Nanometers=12]="Nanometers",i[i.Microns=13]="Microns",i[i.Decimeters=14]="Decimeters",i[i.Dekameters=15]="Dekameters",i[i.Hectometers=16]="Hectometers",i[i.Gigameters=17]="Gigameters",i[i.Astronomical=18]="Astronomical",i[i.LightYears=19]="LightYears",i[i.Parsecs=20]="Parsecs",i[i.USSurveyFeet=21]="USSurveyFeet",i[i.USSurveyInch=22]="USSurveyInch",i[i.USSurveyYard=23]="USSurveyYard",i[i.USSurveyMile=24]="USSurveyMile",i[i.Max=24]="Max",i))(V||{});function co(i){return i==4||i==5||i==6||i==7||i==12||i==13||i==14||i==15||i==16||i==17}function uo(i){return i==1||i==2||i==3||i==8||i==9||i==10||i==21}const v={ACADVER:"ACADVER",ANGBASE:"ANGBASE",ANGDIR:"ANGDIR",AUNITS:"AUNITS",AUPREC:"AUPREC",CECOLOR:"CECOLOR",CELTSCALE:"CELTSCALE",CELTYPE:"CELTYPE",CELWEIGHT:"CELWEIGHT",CETRANSPARENCY:"CETRANSPARENCY",CLAYER:"CLAYER",CMLEADERSTYLE:"CMLEADERSTYLE",CMLSCALE:"CMLSCALE",CMLSTYLE:"CMLSTYLE",COLORTHEME:"COLORTHEME",DYNMODE:"DYNMODE",DYNPROMPT:"DYNPROMPT",EXTMAX:"EXTMAX",EXTMIN:"EXTMIN",HPANG:"HPANG",HPASSOC:"HPASSOC",HPBACKGROUNDCOLOR:"HPBACKGROUNDCOLOR",HPCOLOR:"HPCOLOR",HPDOUBLE:"HPDOUBLE",HPISLANDDETECTION:"HPISLANDDETECTION",HPLAYER:"HPLAYER",HPNAME:"HPNAME",HPSCALE:"HPSCALE",HPSEPARATE:"HPSEPARATE",HPTRANSPARENCY:"HPTRANSPARENCY",INSUNITS:"INSUNITS",LTSCALE:"LTSCALE",LUNITS:"LUNITS",LUPREC:"LUPREC",LWDISPLAY:"LWDISPLAY",MEASUREMENT:"MEASUREMENT",MEASUREMENTCOLOR:"MEASUREMENTCOLOR",MODELBKCOLOR:"MODELBKCOLOR",OSMODE:"OSMODE",ORTHOMODE:"ORTHOMODE",PAPERBKCOLOR:"PAPERBKCOLOR",PDMODE:"PDMODE",PDSIZE:"PDSIZE",PICKBOX:"PICKBOX",POLARADDANG:"POLARADDANG",POLARMODE:"POLARMODE",POLARANG:"POLARANG",SHORTCUTMENU:"SHORTCUTMENU",TEXTSTYLE:"TEXTSTYLE",UNITMODE:"UNITMODE"},fh=Object.freeze(Object.values(v)),ri=class ri{constructor(){this.registry=new Map,this.cache=new Map,this.events={sysVarChanged:new D},this.registerVar({name:v.ANGBASE,type:"number",isDbVar:!0,defaultValue:0}),this.registerVar({name:v.ANGDIR,type:"number",isDbVar:!0,defaultValue:0}),this.registerVar({name:v.AUNITS,type:"number",isDbVar:!0,defaultValue:rt.DecimalDegrees}),this.registerVar({name:v.AUPREC,type:"number",isDbVar:!0,defaultValue:0}),this.registerVar({name:v.CECOLOR,type:"color",isDbVar:!0,defaultValue:new k(exports.AcCmColorMethod.ByLayer)}),this.registerVar({name:v.CELTSCALE,type:"number",isDbVar:!0,defaultValue:-1}),this.registerVar({name:v.CELTYPE,type:"string",isDbVar:!0,defaultValue:tt}),this.registerVar({name:v.CELWEIGHT,type:"number",isDbVar:!0,defaultValue:exports.AcGiLineWeight.ByLayer}),this.registerVar({name:v.CETRANSPARENCY,type:"transparency",isDbVar:!0,defaultValue:new U}),this.registerVar({name:v.CLAYER,type:"string",isDbVar:!0,defaultValue:"0"}),this.registerVar({name:v.CMLEADERSTYLE,type:"string",isDbVar:!0,defaultValue:Ct}),this.registerVar({name:v.CMLSCALE,type:"number",isDbVar:!0,defaultValue:1}),this.registerVar({name:v.CMLSTYLE,type:"string",isDbVar:!0,defaultValue:Tt}),this.registerVar({name:v.COLORTHEME,type:"number",isDbVar:!1,defaultValue:0}),this.registerVar({name:v.DYNMODE,type:"number",isDbVar:!1,defaultValue:3}),this.registerVar({name:v.DYNPROMPT,type:"boolean",isDbVar:!1,defaultValue:!0}),this.registerVar({name:v.HPANG,type:"number",isDbVar:!1,defaultValue:0}),this.registerVar({name:v.HPASSOC,type:"number",isDbVar:!1,defaultValue:1}),this.registerVar({name:v.HPBACKGROUNDCOLOR,type:"color",isDbVar:!0,defaultValue:new k(exports.AcCmColorMethod.None)}),this.registerVar({name:v.HPCOLOR,type:"color",isDbVar:!0,defaultValue:new k(exports.AcCmColorMethod.ByLayer)}),this.registerVar({name:v.HPDOUBLE,type:"number",isDbVar:!1,defaultValue:0}),this.registerVar({name:v.HPISLANDDETECTION,type:"number",isDbVar:!1,defaultValue:1}),this.registerVar({name:v.HPLAYER,type:"string",isDbVar:!0,defaultValue:"."}),this.registerVar({name:v.HPNAME,type:"string",isDbVar:!1,defaultValue:ao}),this.registerVar({name:v.HPSCALE,type:"number",isDbVar:!1,defaultValue:1}),this.registerVar({name:v.HPSEPARATE,type:"number",isDbVar:!1,defaultValue:0}),this.registerVar({name:v.HPTRANSPARENCY,type:"transparency",isDbVar:!0,defaultValue:new U}),this.registerVar({name:v.INSUNITS,type:"number",isDbVar:!0,defaultValue:V.Millimeters}),this.registerVar({name:v.LUNITS,type:"number",isDbVar:!0,defaultValue:G.Decimal}),this.registerVar({name:v.LUPREC,type:"number",isDbVar:!0,defaultValue:4}),this.registerVar({name:v.LWDISPLAY,type:"boolean",isDbVar:!0,defaultValue:!1}),this.registerVar({name:v.MEASUREMENT,type:"number",isDbVar:!0,defaultValue:1}),this.registerVar({name:v.MEASUREMENTCOLOR,type:"color",isDbVar:!1,defaultValue:(()=>{const t=new k(exports.AcCmColorMethod.ByColor);return t.setRGB(96,165,250),t})()}),this.registerVar({name:v.MODELBKCOLOR,type:"color",isDbVar:!1,defaultValue:(()=>{const t=new k(exports.AcCmColorMethod.ByColor);return t.setRGB(0,0,0),t})()}),this.registerVar({name:v.OSMODE,type:"number",isDbVar:!0,defaultValue:0}),this.registerVar({name:v.ORTHOMODE,type:"number",isDbVar:!0,defaultValue:0}),this.registerVar({name:v.PAPERBKCOLOR,type:"color",isDbVar:!1,defaultValue:(()=>{const t=new k(exports.AcCmColorMethod.ByColor);return t.setRGB(255,255,255),t})()}),this.registerVar({name:v.PICKBOX,type:"number",isDbVar:!1,defaultValue:10}),this.registerVar({name:v.POLARADDANG,type:"string",isDbVar:!1,defaultValue:""}),this.registerVar({name:v.POLARMODE,type:"number",isDbVar:!1,defaultValue:0}),this.registerVar({name:v.POLARANG,type:"number",isDbVar:!1,defaultValue:90}),this.registerVar({name:v.SHORTCUTMENU,type:"number",isDbVar:!1,defaultValue:0}),this.registerVar({name:v.TEXTSTYLE,type:"string",isDbVar:!0,defaultValue:K}),this.registerVar({name:v.UNITMODE,type:"number",isDbVar:!0,defaultValue:0})}static instance(){return this._instance||(this._instance=new ri),this._instance}registerVar(t){const e=this.normalizeName(t.name);this.registry.set(e,{...t,name:e}),t.isDbVar||this.cache.set(e,t.defaultValue)}registerMany(t){t.forEach(e=>this.registerVar(e))}getVar(t,e){t=this.normalizeName(t);const n=this.getDescriptor(t);if(!n)throw new Error(`System variable ${t} not found!`);if(n.isDbVar)return e[t.toLowerCase()];if(this.cache.has(t))return this.cache.get(t)}getDefaultValue(t){t=this.normalizeName(t);const e=this.getDescriptor(t);if(!e)throw new Error(`System variable ${t} not found!`);return e.defaultValue}setVar(t,e,n){t=this.normalizeName(t);const r=this.getDescriptor(t);if(r){const s=this.getVar(t,n);if(r.type==="transparency"){const o=this.parseTransparency(e);if(o==null||o.isInvalid)throw new Error("Invalid transparency value!");e=o}else if(r.type!=="string"&&(typeof e=="string"||e instanceof String)){if(r.type==="number"){const o=Number(e);if(Number.isNaN(o))throw new Error("Invalid number input!");e=o}else if(r.type==="boolean")e=this.parseBoolean(e);else if(r.type==="color"){const o=this.parseColorSysVar(t,e,n);if(o==null)throw new Error("Invalid color value!");e=o}}r.isDbVar?n[t.toLowerCase()]=e:(this.cache.set(t,e),this.hasValueChanged(s,e)&&this.events.sysVarChanged.dispatch({database:n,name:t,newVal:e,oldVal:s}))}else throw new Error(`System variable ${t} not found!`)}getDescriptor(t){return this.registry.get(this.normalizeName(t))}getAllDescriptors(){return[...this.registry.values()]}parseBoolean(t){if(t==null)return!1;const e=String(t).trim().toLowerCase(),n=new Set(["true","t","1","yes","y"]),r=new Set(["false","f","0","no","n"]);return n.has(e)?!0:(r.has(e),!1)}parseColorSysVar(t,e,n){const r=e.trim().toLowerCase();return t===v.HPCOLOR.toLowerCase()&&(r==="."||r==="use current")?n.cecolor.clone():t===v.HPBACKGROUNDCOLOR.toLowerCase()&&(r===""||r==="."||r==="none")?new k(exports.AcCmColorMethod.None):k.fromString(e)}parseTransparency(t){if(t instanceof U)return t;if(typeof t=="number")return U.deserialize(t);if(!(typeof t!="string"&&!(t instanceof String)))return U.fromString(String(t))}hasValueChanged(t,e){return t instanceof k&&e instanceof k||t instanceof U&&e instanceof U?!t.equals(e):!Object.is(t,e)}normalizeName(t){return t.toLowerCase()}};ri._instance=null;let gt=ri;const go="Load Database",Wr=3e4,yh=12e4,mh=1024*1024;class it extends is{constructor(t,e){super(t.stage),this.data=t,this.progress=e}async run(t){const e=Pn.getInstance().getEntry(go),n=Date.now();this.progress&&await this.progress(this.data.progress.value,this.data.stage,"START");const r=await this.data.task(t);return this.progress&&(await this.progress(this.data.progress.value,this.data.stage,"END",r?r.data:null),this.data.progress.value+=this.data.step,this.data.progress.value>100&&(this.data.progress.value=100)),e&&(e.data[this.name]=Date.now()-n),r}}class po{constructor(t={}){this.config={useWorker:t.useWorker??!0,...t}}async read(t,e,n,r,s,o){const a={name:go,data:{total:0},format(){let u="";return Object.keys(this.data).forEach(g=>{g!=="total"&&(u+=`- ${g}: ${this.data[g]} ms
|
|
4
|
+
`)}),u+=`- total: ${this.data.total} ms`,u}};Pn.getInstance().collect(a),this.progress=r;const h={value:0},l=new ns;l.setCompleteCallback(()=>this.onFinished()),l.setErrorCallback(u=>this.onError(u)),l.addTask(new it({stage:"START",step:1,progress:h,task:async u=>u},r)),l.addTask(new it({stage:"PARSE",step:5,progress:h,task:async u=>await this.parse(u,s)},r)),l.addTask(new it({stage:"FONT",step:5,progress:h,task:async u=>{const g=this.getFonts(u.model);return{model:u.model,data:g}}},r)),l.addTask(new it({stage:"LTYPE",step:1,progress:h,task:async u=>(this.processLineTypes(u.model,e),u)},r)),l.addTask(new it({stage:"STYLE",step:1,progress:h,task:async u=>(this.processTextStyles(u.model,e),u)},r)),l.addTask(new it({stage:"DIMSTYLE",step:1,progress:h,task:async u=>(this.processDimStyles(u.model,e),u)},r)),l.addTask(new it({stage:"LAYER",step:1,progress:h,task:async u=>(this.processLayers(u.model,e),e.tables.layerTable.numEntries===0&&e.createDefaultData({layer:!0}),u)},r)),l.addTask(new it({stage:"VPORT",step:1,progress:h,task:async u=>(this.processViewports(u.model,e),u)},r)),l.addTask(new it({stage:"HEADER",step:1,progress:h,task:async u=>{if(this.processHeader(u.model,e),o){const g=gt.instance();for(const[d,p]of Object.entries(o))g.setVar(d,p,e)}return u}},r)),l.addTask(new it({stage:"BLOCK_RECORD",step:5,progress:h,task:async u=>(this.processBlockTables(u.model,e),u)},r)),l.addTask(new it({stage:"OBJECT",step:5,progress:h,task:async u=>(this.processObjects(u.model,e),e.objects.layout.numEntries===0&&e.createDefaultData({layout:!0}),u)},r)),l.addTask(new it({stage:"BLOCK",step:5,progress:h,task:async u=>(await this.processBlocks(u.model,e),u)},r)),l.addTask(new it({stage:"ENTITY",step:100,progress:h,task:async u=>(await this.processEntities(u.model,e,n,h,r),u)},r)),l.addTask(new it({stage:"END",step:0,progress:h,task:async u=>u},r));const c=Date.now();await l.run(t),a.data.total=Date.now()-c}onError(t){if(this.progress){const e=t.task;this.progress(e.data.progress.value,e.data.stage,"ERROR",void 0,t)}return t.task.name==="ENTITY"?!1:(this.onFinished(),!0)}onFinished(){this.progress&&(this.progress(100,"END","END"),Wt.instance.clear())}getParserWorkerTimeout(t,e){const n=e??this.config.timeout;if(n!=null)return n;const r=Math.ceil(t.byteLength/mh),s=Wr+r*1e3;return Math.min(yh,Math.max(Wr,s))}async parse(t,e){throw new Error("Not impelemented yet!")}getFonts(t){throw new Error("Not impelemented yet!")}processLineTypes(t,e){throw new Error("Not impelemented yet!")}processTextStyles(t,e){throw new Error("Not impelemented yet!")}processDimStyles(t,e){throw new Error("Not impelemented yet!")}processLayers(t,e){throw new Error("Not impelemented yet!")}processViewports(t,e){throw new Error("Not impelemented yet!")}processHeader(t,e){throw new Error("Not impelemented yet!")}processBlockTables(t,e){throw new Error("Not impelemented yet!")}processObjects(t,e){throw new Error("Not impelemented yet!")}processBlocks(t,e){throw new Error("Not impelemented yet!")}processEntities(t,e,n,r,s){throw new Error("Not impelemented yet!")}}class fo extends po{constructor(t){super({}),this._database=t}async parse(){return{model:this._database,data:{unknownEntityCount:0}}}getFonts(){return[]}async processEntities(t,e,n,r,s){let o=t.tables.blockTable.modelSpace.newIterator().toArray();const a=o.length,h=new so(a,100-r.value,n);this.config.convertByEntityType&&(o=this.groupAndFlattenByType(o));const l=e.tables.blockTable.modelSpace;await h.processChunk(async(c,u)=>{let g=[],d=c<u?o[c].type:"";for(let p=c;p<u;p++){const f=o[p];this.config.convertByEntityType&&f.type!==d&&(this.triggerEvents(l,g),g=[],d=f.type),g.push(f)}if(this.triggerEvents(l,g),s){let p=r.value+u/a*(100-r.value);p>100&&(p=100),await s(p,"ENTITY","IN-PROGRESS")}})}processBlocks(){const t=this._database.tables.blockTable.newIterator();for(const e of t){const n=e.newIterator().toArray();this.triggerEvents(e,n)}}processHeader(){}processBlockTables(){}processObjects(){const t=this._database.objects.layout.newIterator();for(const r of t)this._database.events.dictObjetSet.dispatch({database:this._database,object:r,key:r.layoutName});const e=this._database.objects.imageDefinition.newIterator();for(const r of e)this._database.events.dictObjetSet.dispatch({database:this._database,object:r,key:r.objectId});const n=this._database.objects.mleaderStyle.newIterator();for(const r of n)this._database.events.dictObjetSet.dispatch({database:this._database,object:r,key:r.objectId})}processViewports(){}processLayers(){this._database.tables.layerTable.newIterator().toArray().forEach(e=>{this._database.events.layerAppended.dispatch({database:this._database,layer:e})})}processLineTypes(){}processTextStyles(){}processDimStyles(){}groupAndFlattenByType(t){const e={},n=[];for(const r of t)e[r.type]||(e[r.type]=[],n.push(r.type)),e[r.type].push(r);return n.flatMap(r=>e[r])}triggerEvents(t,e){(t.isModelSapce||t.isPaperSapce)&&t.database.events.entityAppended.dispatch({database:t.database,entity:e})}}class yo{constructor(t){this.taskId=0,this.workers=new Map,this.pendingTasks=new Map,this.config={workerUrl:t.workerUrl,timeout:t.timeout??3e4,maxConcurrentWorkers:t.maxConcurrentWorkers??4}}async execute(t,e){const n=Date.now(),r=this.generateTaskId();try{return await this.executeInWorker(r,t,e||this.config.workerUrl)}catch(s){const o=Date.now()-n;return{success:!1,error:s instanceof Error?s.message:String(s),duration:o}}}async executeInWorker(t,e,n){const r=Date.now();return new Promise((s,o)=>{const a=this.getAvailableWorker(n),h=setTimeout(()=>{this.cleanupTask(t),this.releaseWorker(a),o(new Error(`Worker operation timed out after ${this.config.timeout}ms`))},this.config.timeout);this.pendingTasks.set(t,{resolve:u=>{clearTimeout(h),this.releaseWorker(a),s(u)},reject:u=>{clearTimeout(h),this.releaseWorker(a),o(u)},timeout:h});const l=u=>{const{id:g,success:d,data:p,error:f}=u.data;if(g!==t)return;this.cleanupTask(t);const y=Date.now()-r;s(d?{success:!0,data:p,duration:y}:{success:!1,error:f,duration:y})},c=u=>{this.cleanupTask(t),o(new Error(`Worker error: ${u.message}`))};a.addEventListener("message",l),a.addEventListener("error",c),a.postMessage({id:t,input:e})})}cleanupTask(t){const e=this.pendingTasks.get(t);e&&(clearTimeout(e.timeout),this.pendingTasks.delete(t))}generateTaskId(){return`task_${++this.taskId}_${Date.now()}`}detectWorkerSupport(){return typeof Worker<"u"}getAvailableWorker(t){for(const[n,r]of this.workers)if(!r.isBusy)return r.isBusy=!0,r.worker;if(this.workers.size<this.config.maxConcurrentWorkers){const n=new Worker(t,{type:"module"}),r=this.generateWorkerId(),s={worker:n,isBusy:!0,id:r,createdAt:new Date};return this.workers.set(r,s),n}const e=Array.from(this.workers.values()).sort((n,r)=>n.createdAt.getTime()-r.createdAt.getTime())[0];return e.isBusy=!0,e.worker}releaseWorker(t){for(const[e,n]of this.workers)if(n.worker===t){n.isBusy=!1;break}}generateWorkerId(){return`worker_${Date.now()}_${Math.random().toString(36).substr(2,9)}`}getStats(){return{totalWorkers:this.workers.size,busyWorkers:Array.from(this.workers.values()).filter(t=>t.isBusy).length,pendingTasks:this.pendingTasks.size,config:this.config}}destroy(){for(const[t,e]of this.pendingTasks)clearTimeout(e.timeout),e.reject(new Error("Framework destroyed"));this.pendingTasks.clear();for(const[t,e]of this.workers)e.worker.terminate();this.workers.clear()}}class mo{constructor(t){this.framework=new yo(t)}async execute(t,e){return this.framework.execute(t,e)}getStats(){return this.framework.getStats()}destroy(){this.framework.destroy()}}function _h(i){return new mo(i)}class wh{constructor(){this.setupMessageHandler()}setupMessageHandler(){self.onmessage=async t=>{const{id:e,input:n}=t.data;try{const r=await this.executeTask(n);this.sendResponse(e,!0,r)}catch(r){this.sendResponse(e,!1,void 0,r instanceof Error?r.message:String(r))}}}sendResponse(t,e,n,r){const s={id:t,success:e,data:n,error:r};self.postMessage(s)}}var _e=(i=>(i.DXF="dxf",i.DWG="dwg",i))(_e||{});class mt{constructor(){this.events={registered:new D,unregistered:new D},this._converters=new Map}static createInstance(){return mt._instance==null&&(mt._instance=new mt),this._instance}static get instance(){return mt._instance||(mt._instance=new mt),mt._instance}get fileTypes(){return this._converters.keys()}register(t,e){this._converters.set(t,e),this.events.registered.dispatch({fileType:t,converter:e})}get(t){return this._converters.get(t)}unregister(t){const e=this._converters.get(t);e&&(this._converters.delete(t),this.events.unregistered.dispatch({fileType:t,converter:e}))}}var _o=(i=>(i[i.Center=0]="Center",i[i.Left=1]="Left",i[i.Right=2]="Right",i[i.OverFirst=3]="OverFirst",i[i.OverSecond=4]="OverSecond",i))(_o||{}),wo=(i=>(i[i.Center=0]="Center",i[i.Above=1]="Above",i[i.Outside=2]="Outside",i[i.JIS=3]="JIS",i[i.Below=4]="Below",i))(wo||{}),bo=(i=>(i[i.Feet=0]="Feet",i[i.None=1]="None",i[i.Inch=2]="Inch",i[i.FeetAndInch=3]="FeetAndInch",i[i.Leading=4]="Leading",i[i.Trailing=8]="Trailing",i[i.LeadingAndTrailing=12]="LeadingAndTrailing",i))(bo||{}),xo=(i=>(i[i.None=0]="None",i[i.Leading=1]="Leading",i[i.Trailing=2]="Trailing",i[i.LeadingAndTrailing=3]="LeadingAndTrailing",i))(xo||{}),vo=(i=>(i[i.Bottom=0]="Bottom",i[i.Middle=1]="Middle",i[i.Top=2]="Top",i))(vo||{});const si=class si extends Rt{constructor(t,e){t=t||{},Ee(t,si.DEFAULT_DIM_VALUES),super(t,e)}get dimpost(){return this.getAttr("dimpost")}set dimpost(t){this.setAttr("dimpost",t)}get dimapost(){return this.getAttr("dimapost")}set dimapost(t){this.setAttr("dimapost",t)}get dimscale(){return this.getAttr("dimscale")}set dimscale(t){this.setAttr("dimscale",t)}get dimasz(){return this.getAttr("dimasz")}set dimasz(t){this.setAttr("dimasz",t)}get dimexo(){return this.getAttr("dimexo")}set dimexo(t){this.setAttr("dimexo",t)}get dimdli(){return this.getAttr("dimdli")}set dimdli(t){this.setAttr("dimdli",t)}get dimexe(){return this.getAttr("dimexe")}set dimexe(t){this.setAttr("dimexe",t)}get dimrnd(){return this.getAttr("dimrnd")}set dimrnd(t){this.setAttr("dimrnd",t)}get dimdle(){return this.getAttr("dimdle")}set dimdle(t){this.setAttr("dimdle",t)}get dimtp(){return this.getAttr("dimtp")}set dimtp(t){this.setAttr("dimtp",t)}get dimtm(){return this.getAttr("dimtm")}set dimtm(t){this.setAttr("dimtm",t)}get dimtxt(){return this.getAttr("dimtxt")}set dimtxt(t){this.setAttr("dimtxt",t)}get dimcen(){return this.getAttr("dimcen")}set dimcen(t){this.setAttr("dimcen",t)}get dimtsz(){return this.getAttr("dimtsz")}set dimtsz(t){this.setAttr("dimtsz",t)}get dimaltf(){return this.getAttr("dimaltf")}set dimaltf(t){this.setAttr("dimaltf",t)}get dimlfac(){return this.getAttr("dimlfac")}set dimlfac(t){this.setAttr("dimlfac",t)}get dimtvp(){return this.getAttr("dimtvp")}set dimtvp(t){this.setAttr("dimtvp",t)}get dimtfac(){return this.getAttr("dimtfac")}set dimtfac(t){this.setAttr("dimtfac",t)}get dimgap(){return this.getAttr("dimgap")}set dimgap(t){this.setAttr("dimgap",t)}get dimaltrnd(){return this.getAttr("dimaltrnd")}set dimaltrnd(t){this.setAttr("dimaltrnd",t)}get dimtol(){return this.getAttr("dimtol")}set dimtol(t){this.setAttr("dimtol",t)}get dimlim(){return this.getAttr("dimlim")}set dimlim(t){this.setAttr("dimlim",t)}get dimtih(){return this.getAttr("dimtih")}set dimtih(t){this.setAttr("dimtih",t)}get dimtoh(){return this.getAttr("dimtoh")}set dimtoh(t){this.setAttr("dimtoh",t)}get dimse1(){return this.getAttr("dimse1")}set dimse1(t){this.setAttr("dimse1",t)}get dimse2(){return this.getAttr("dimse2")}set dimse2(t){this.setAttr("dimse2",t)}get dimtad(){return this.getAttr("dimtad")}set dimtad(t){this.setAttr("dimtad",t)}get dimzin(){return this.getAttr("dimzin")}set dimzin(t){this.setAttr("dimzin",t)}get dimazin(){return this.getAttr("dimazin")}set dimazin(t){this.setAttr("dimazin",t)}get dimalt(){return this.getAttr("dimalt")}set dimalt(t){this.setAttr("dimalt",t)}get dimaltd(){return this.getAttr("dimaltd")}set dimaltd(t){this.setAttr("dimaltd",t)}get dimtofl(){return this.getAttr("dimtofl")}set dimtofl(t){this.setAttr("dimtofl",t)}get dimsah(){return this.getAttr("dimsah")}set dimsah(t){this.setAttr("dimsah",t)}get dimtix(){return this.getAttr("dimtix")}set dimtix(t){this.setAttr("dimtix",t)}get dimsoxd(){return this.getAttr("dimsoxd")}set dimsoxd(t){this.setAttr("dimsoxd",t)}get dimclrd(){return this.getAttr("dimclrd")}set dimclrd(t){this.setAttr("dimclrd",t)}get dimclre(){return this.getAttr("dimclre")}set dimclre(t){this.setAttr("dimclre",t)}get dimclrt(){return this.getAttr("dimclrt")}set dimclrt(t){this.setAttr("dimclrt",t)}get dimadec(){return this.getAttr("dimadec")}set dimadec(t){this.setAttr("dimadec",t)}get dimunit(){return this.getAttr("dimunit")}set dimunit(t){this.setAttr("dimunit",t)}get dimdec(){return this.getAttr("dimdec")}set dimdec(t){this.setAttr("dimdec",t)}get dimtdec(){return this.getAttr("dimtdec")}set dimtdec(t){this.setAttr("dimtdec",t)}get dimaltu(){return this.getAttr("dimaltu")}set dimaltu(t){this.setAttr("dimaltu",t)}get dimalttd(){return this.getAttr("dimalttd")}set dimalttd(t){this.setAttr("dimalttd",t)}get dimaunit(){return this.getAttr("dimaunit")}set dimaunit(t){this.setAttr("dimaunit",t)}get dimfrac(){return this.getAttr("dimfrac")}set dimfrac(t){this.setAttr("dimfrac",t)}get dimlunit(){return this.getAttr("dimlunit")}set dimlunit(t){this.setAttr("dimlunit",t)}get dimdsep(){return this.getAttr("dimdsep")}set dimdsep(t){this.setAttr("dimdsep",t)}get dimtmove(){return this.getAttr("dimtmove")}set dimtmove(t){this.setAttr("dimtmove",t)}get dimjust(){return this.getAttr("dimjust")}set dimjust(t){this.setAttr("dimjust",t)}get dimsd1(){return this.getAttr("dimsd1")}set dimsd1(t){this.setAttr("dimsd1",t)}get dimsd2(){return this.getAttr("dimsd2")}set dimsd2(t){this.setAttr("dimsd2",t)}get dimtolj(){return this.getAttr("dimtolj")}set dimtolj(t){this.setAttr("dimtolj",t)}get dimtzin(){return this.getAttr("dimtzin")}set dimtzin(t){this.setAttr("dimtzin",t)}get dimaltz(){return this.getAttr("dimaltz")}set dimaltz(t){this.setAttr("dimaltz",t)}get dimalttz(){return this.getAttr("dimalttz")}set dimalttz(t){this.setAttr("dimalttz",t)}get dimfit(){return this.getAttr("dimfit")}set dimfit(t){this.setAttr("dimfit",t)}get dimupt(){return this.getAttr("dimupt")}set dimupt(t){this.setAttr("dimupt",t)}get dimatfit(){return this.getAttr("dimatfit")}set dimatfit(t){this.setAttr("dimatfit",t)}get dimtxsty(){return this.getAttr("dimtxsty")}set dimtxsty(t){this.setAttr("dimtxsty",t)}get dimldrblk(){return this.getAttr("dimldrblk")}set dimldrblk(t){this.setAttr("dimldrblk",t)}get dimblk(){return this.getAttr("dimblk")}set dimblk(t){this.setAttr("dimblk",t)}get dimblk1(){return this.getAttr("dimblk1")}set dimblk1(t){this.setAttr("dimblk1",t)}get dimblk2(){return this.getAttr("dimblk2")}set dimblk2(t){this.setAttr("dimblk2",t)}get dimlwd(){return this.getAttr("dimlwd")}set dimlwd(t){this.setAttr("dimlwd",t)}get dimlwe(){return this.getAttr("dimlwe")}set dimlwe(t){this.setAttr("dimlwe",t)}dxfOutFields(t){super.dxfOutFields(t);const e=this.database.tables.textStyleTable.getAt(this.dimtxsty),n=this.database.tables.blockTable.getAt(this.dimldrblk),r=this.database.tables.blockTable.getAt(this.dimblk),s=this.database.tables.blockTable.getAt(this.dimblk1),o=this.database.tables.blockTable.getAt(this.dimblk2);return t.writeSubclassMarker("AcDbDimStyleTableRecord"),t.writeString(2,this.name),t.writeInt16(70,0),t.writeString(3,this.dimpost),t.writeString(4,this.dimapost),t.writeDouble(40,this.dimscale),t.writeDouble(41,this.dimasz),t.writeDouble(42,this.dimexo),t.writeDouble(43,this.dimdli),t.writeDouble(44,this.dimexe),t.writeDouble(140,this.dimtxt),t.writeDouble(147,this.dimgap),t.writeInt16(170,this.dimalt),t.writeInt16(171,this.dimtol),t.writeInt16(172,this.dimlim),t.writeInt16(173,this.dimtih),t.writeInt16(174,this.dimtoh),t.writeObjectId(340,e==null?void 0:e.objectId),t.writeObjectId(341,n==null?void 0:n.objectId),t.writeObjectId(342,r==null?void 0:r.objectId),t.writeObjectId(343,s==null?void 0:s.objectId),t.writeObjectId(344,o==null?void 0:o.objectId),t.writeInt16(371,this.dimlwd),t.writeInt16(372,this.dimlwe),this}};si.DEFAULT_DIM_VALUES={name:"",dimpost:"",dimapost:"",dimscale:1,dimasz:2.5,dimexo:.625,dimdli:.38,dimexe:.18,dimrnd:0,dimdle:0,dimtp:0,dimtm:0,dimtxt:2.5,dimcen:2.5,dimtsz:0,dimaltf:0,dimlfac:1,dimtvp:0,dimtfac:1,dimgap:1,dimaltrnd:0,dimtol:0,dimlim:0,dimtih:0,dimtoh:0,dimse1:0,dimse2:0,dimtad:0,dimzin:0,dimazin:0,dimalt:0,dimaltd:2,dimtofl:0,dimsah:0,dimtix:0,dimsoxd:0,dimclrd:0,dimclre:0,dimclrt:0,dimadec:0,dimunit:2,dimdec:4,dimtdec:4,dimaltu:2,dimalttd:2,dimaunit:0,dimfrac:0,dimlunit:2,dimdsep:".",dimtmove:0,dimjust:0,dimsd1:0,dimsd2:0,dimtolj:0,dimtzin:0,dimaltz:0,dimalttz:0,dimfit:0,dimupt:0,dimatfit:3,dimtxsty:K,dimldrblk:"",dimblk:"",dimblk1:"",dimblk2:"",dimlwd:-2,dimlwe:-2};let le=si;class Bn extends Rt{constructor(t,e){t=t||{},Ee(t,{color:new k,description:"",standardFlags:0,isHidden:!1,isInUse:!0,isOff:!1,isPlottable:!0,transparency:new U,linetype:"",lineWeight:1,materialId:-1}),super(t,e),this.attrs.events.attrChanged.addEventListener(n=>{this.database.events.layerModified.dispatch({database:this.database,layer:this,changes:n.object.changedAttributes()})})}get color(){return this.getAttr("color")}set color(t){this.setAttr("color",t.clone())}get description(){return this.getAttr("description")}set description(t){this.setAttr("description",t)}get standardFlags(){return this.getAttr("standardFlags")}set standardFlags(t){this.setAttr("standardFlags",t)}get isFrozen(){return(this.standardFlags&1)==1}set isFrozen(t){const e=t?1:0;this.standardFlags=this.standardFlags|e}get isHidden(){return this.getAttr("isHidden")}set isHidden(t){this.setAttr("isHidden",t)}get isInUse(){return this.getAttr("isInUse")}set isInUse(t){this.setAttr("isInUse",t)}get isLocked(){return(this.standardFlags&4)==4}set isLocked(t){const e=t?4:0;this.standardFlags=this.standardFlags|e}get isOff(){return this.getAttr("isOff")}set isOff(t){this.setAttr("isOff",t)}get isPlottable(){return this.getAttr("isPlottable")}set isPlottable(t){this.setAttr("isPlottable",t)}get transparency(){return this.getAttr("transparency")}set transparency(t){this.setAttr("transparency",t.clone())}get linetype(){return this.getAttr("linetype")}set linetype(t){this.setAttr("linetype",t)}get lineStyle(){var e;const t=(e=this.database)==null?void 0:e.tables.linetypeTable.getAt(this.linetype);if(t)return{type:"UserSpecified",...t.linetype}}get lineWeight(){return this.getAttr("lineWeight")}set lineWeight(t){this.setAttr("lineWeight",t)}get materialId(){return this.getAttr("materialId")}set materialId(t){this.setAttr("materialId",t)}dxfOutFields(t){return super.dxfOutFields(t),t.writeSubclassMarker("AcDbLayerTableRecord"),t.writeString(2,this.name),t.writeInt16(70,this.standardFlags),t.writeCmColor(this.color),t.writeString(6,this.linetype),t.writeInt16(290,this.isPlottable?1:0),t.writeInt16(370,this.lineWeight),t.writeTransparency(this.transparency),this.description&&t.writeString(4,this.description),this}}class Ht extends Rt{constructor(t){super(),this.name=t.name,this._linetype=t}get numDashes(){return this._linetype.pattern?this._linetype.pattern.length:0}get patternLength(){return this._linetype.totalPatternLength}get comments(){return this._linetype.description}get linetype(){return this._linetype}dashLengthAt(t){if(t<0||t>=this.numDashes)throw new Error('Index must be greater than or equal to zero, but less than the value of property "numDashes".');return this._linetype.pattern[t].elementLength}toPreviewSvgString(t){const e=Math.max((t==null?void 0:t.width)??220,1),n=Math.max((t==null?void 0:t.height)??36,1),r=Math.min(Math.max((t==null?void 0:t.padding)??8,0),Math.floor(e/2)),s=Math.max((t==null?void 0:t.strokeWidth)??2,.5),o=this.escapeSvgAttribute((t==null?void 0:t.stroke)??"currentColor"),a=Math.max((t==null?void 0:t.repeats)??4,1),h=n/2,l=r,c=Math.max(e-r,l+1),u=c-l,g=this._linetype.pattern??[];if(g.length===0||this.patternLength<=0||!g.some(S=>S.elementLength!==0))return this.buildSvgString({width:e,height:n,stroke:o,strokeWidth:s,lineSegments:[[l,c]],dots:[],y:h});const d=[],p=[],f=u/(this.patternLength*a),y=.5,m=Math.max(s*2,2);let x=l;for(;x<c;)for(const S of g){if(x>=c)break;const A=S.elementLength;if(A===0){p.push(x),x=Math.min(x+m,c);continue}const L=Math.max(Math.abs(A)*f,y),T=Math.min(x+L,c);A>0&&T>x&&d.push([x,T]),x=T}return this.buildSvgString({width:e,height:n,stroke:o,strokeWidth:s,lineSegments:d,dots:p,y:h})}buildSvgString(t){const{width:e,height:n,stroke:r,strokeWidth:s,lineSegments:o,dots:a,y:h}=t,l=o.map(([u,g])=>`<line x1="${u.toFixed(2)}" y1="${h.toFixed(2)}" x2="${g.toFixed(2)}" y2="${h.toFixed(2)}" stroke="${r}" stroke-width="${s.toFixed(2)}" stroke-linecap="round" />`).join(""),c=a.map(u=>`<circle cx="${u.toFixed(2)}" cy="${h.toFixed(2)}" r="${(s/2).toFixed(2)}" fill="${r}" />`).join("");return`<svg xmlns="http://www.w3.org/2000/svg" width="${e}" height="${n}" viewBox="0 0 ${e} ${n}" role="img" aria-label="${this.escapeSvgAttribute(this.name)} linetype preview">${l}${c}</svg>`}escapeSvgAttribute(t){return t.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">").replace(/'/g,"'")}dxfOutFields(t){super.dxfOutFields(t),t.writeSubclassMarker("AcDbLinetypeTableRecord"),t.writeString(2,this.name),t.writeInt16(70,this.linetype.standardFlag),t.writeString(3,this.comments),t.writeInt16(72,65),t.writeInt16(73,this.numDashes),t.writeDouble(40,this.patternLength);for(const e of this.linetype.pattern??[])t.writeDouble(49,e.elementLength),t.writeInt16(74,e.elementTypeFlag);return this}}class Rn extends Rt{constructor(t){super(),this.name=t.name,this._textStyle=t,this._textStyle.font=this.getFileNameWithoutExtension(this._textStyle.font||this._textStyle.extendedFont||this.name),this._isVertical=!1}get obliquingAngle(){return this._textStyle.obliqueAngle}set obliquingAngle(t){this._textStyle.obliqueAngle=t}get priorSize(){return this._textStyle.lastHeight}set priorSize(t){this._textStyle.lastHeight=t}get textSize(){return this._textStyle.fixedTextHeight}set textSize(t){this._textStyle.fixedTextHeight=t}get xScale(){return this._textStyle.widthFactor}set xScale(t){this._textStyle.widthFactor=t}get isVertical(){return this._isVertical}set isVertical(t){this._isVertical=t}get fileName(){return this._textStyle.font}set fileName(t){this._textStyle.font=t}get bigFontFileName(){return this._textStyle.bigFont}set bigFontFileName(t){this._textStyle.bigFont=t}get textStyle(){return this._textStyle}getFileNameWithoutExtension(t){const e=t.split("/").pop();if(e){const n=e.lastIndexOf(".");return n===-1?e:e.substring(0,n)}return t}dxfOutFields(t){return super.dxfOutFields(t),t.writeSubclassMarker("AcDbTextStyleTableRecord"),t.writeString(2,this.name),t.writeInt16(70,this.textStyle.standardFlag),t.writeDouble(40,this.textSize),t.writeDouble(41,this.xScale),t.writeAngle(50,this.obliquingAngle),t.writeInt16(71,this.isVertical?4:this.textStyle.textGenerationFlag),t.writeDouble(42,this.priorSize),t.writeString(3,this.fileName),t.writeString(4,this.bigFontFileName),this}}var b=(i=>(i[i.EndPoint=1]="EndPoint",i[i.MidPoint=2]="MidPoint",i[i.Center=3]="Center",i[i.Node=4]="Node",i[i.Quadrant=5]="Quadrant",i[i.Insertion=7]="Insertion",i[i.Perpendicular=8]="Perpendicular",i[i.Tangent=9]="Tangent",i[i.Nearest=10]="Nearest",i[i.Centroid=11]="Centroid",i))(b||{});function bh(i){let t=0;for(const e of i)t|=1<<e-1;return t}function xh(i){const t=[];for(const e of Object.values(b)){if(typeof e!="number")continue;const n=1<<e-1;i&n&&t.push(e)}return t}function vh(i,t){return i^1<<t-1}function Ph(i,t){return(i&1<<t-1)!==0}function Ah(i,t){return i|1<<t-1}function Sh(i,t){return i&~(1<<t-1)}const Lh={patterns:[{name:"SOLID",description:"",lines:[]},{name:"ANGLE",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:.275,dashes:[.2,-.075],sourceLine:23},{angle:90,originX:0,originY:0,deltaX:0,deltaY:.275,dashes:[.2,-.075],sourceLine:24}]},{name:"ANSI31",description:"",lines:[{angle:45,originX:0,originY:0,deltaX:0,deltaY:.125,dashes:[],sourceLine:26}]},{name:"ANSI32",description:"",lines:[{angle:45,originX:0,originY:0,deltaX:0,deltaY:.375,dashes:[],sourceLine:28},{angle:45,originX:.176776695,originY:0,deltaX:0,deltaY:.375,dashes:[],sourceLine:29}]},{name:"ANSI33",description:"",lines:[{angle:45,originX:0,originY:0,deltaX:0,deltaY:.25,dashes:[],sourceLine:31},{angle:45,originX:.176776695,originY:0,deltaX:0,deltaY:.25,dashes:[.125,-.0625],sourceLine:32}]},{name:"ANSI34",description:"",lines:[{angle:45,originX:0,originY:0,deltaX:0,deltaY:.75,dashes:[],sourceLine:34},{angle:45,originX:.176776695,originY:0,deltaX:0,deltaY:.75,dashes:[],sourceLine:35},{angle:45,originX:.353553391,originY:0,deltaX:0,deltaY:.75,dashes:[],sourceLine:36},{angle:45,originX:.530330086,originY:0,deltaX:0,deltaY:.75,dashes:[],sourceLine:37}]},{name:"ANSI35",description:"",lines:[{angle:45,originX:0,originY:0,deltaX:0,deltaY:.25,dashes:[],sourceLine:39},{angle:45,originX:.176776695,originY:0,deltaX:0,deltaY:.25,dashes:[.3125,-.0625,0,-.0625],sourceLine:40}]},{name:"ANSI36",description:"",lines:[{angle:45,originX:0,originY:0,deltaX:.21875,deltaY:.125,dashes:[.3125,-.0625,0,-.0625],sourceLine:42}]},{name:"ANSI37",description:"",lines:[{angle:45,originX:0,originY:0,deltaX:0,deltaY:.125,dashes:[],sourceLine:44},{angle:135,originX:0,originY:0,deltaX:0,deltaY:.125,dashes:[],sourceLine:45}]},{name:"ANSI38",description:"",lines:[{angle:45,originX:0,originY:0,deltaX:0,deltaY:.125,dashes:[],sourceLine:47},{angle:135,originX:0,originY:0,deltaX:.25,deltaY:.125,dashes:[.3125,-.1875],sourceLine:48}]},{name:"AR-B816",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:8,dashes:[],sourceLine:54},{angle:90,originX:0,originY:0,deltaX:8,deltaY:8,dashes:[8,-8],sourceLine:55}]},{name:"AR-B816C",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:8,deltaY:8,dashes:[15.625,-.375],sourceLine:57},{angle:0,originX:-8,originY:.375,deltaX:8,deltaY:8,dashes:[15.625,-.375],sourceLine:58},{angle:90,originX:0,originY:0,deltaX:8,deltaY:8,dashes:[-8.375,7.625],sourceLine:59},{angle:90,originX:-.375,originY:0,deltaX:8,deltaY:8,dashes:[-8.375,7.625],sourceLine:60}]},{name:"AR-B88",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:8,dashes:[],sourceLine:62},{angle:90,originX:0,originY:0,deltaX:8,deltaY:4,dashes:[8,-8],sourceLine:63}]},{name:"AR-BRELM",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:5.334,dashes:[7.625,-.375],sourceLine:65},{angle:0,originX:0,originY:2.25,deltaX:0,deltaY:5.334,dashes:[7.625,-.375],sourceLine:66},{angle:0,originX:2,originY:2.667,deltaX:0,deltaY:5.334,dashes:[3.625,-.375],sourceLine:67},{angle:0,originX:2,originY:4.917,deltaX:0,deltaY:5.334,dashes:[3.625,-.375],sourceLine:68},{angle:90,originX:0,originY:0,deltaX:0,deltaY:8,dashes:[2.25,-3.084],sourceLine:69},{angle:90,originX:-.375,originY:0,deltaX:0,deltaY:8,dashes:[2.25,-3.084],sourceLine:70},{angle:90,originX:2,originY:2.667,deltaX:0,deltaY:4,dashes:[2.25,-3.084],sourceLine:71},{angle:90,originX:1.625,originY:2.667,deltaX:0,deltaY:4,dashes:[2.25,-3.084],sourceLine:72}]},{name:"AR-BRSTD",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:2.667,dashes:[],sourceLine:74},{angle:90,originX:0,originY:0,deltaX:2.667,deltaY:4,dashes:[2.667,-2.667],sourceLine:75}]},{name:"AR-CONC",description:"",lines:[{angle:50,originX:0,originY:0,deltaX:4.12975034,deltaY:-5.89789472,dashes:[.75,-8.25],sourceLine:77},{angle:355,originX:0,originY:0,deltaX:-2.03781207,deltaY:7.3723684,dashes:[.6,-6.6],sourceLine:78},{angle:100.45144446,originX:.59771681,originY:-.05229344,deltaX:5.7305871,deltaY:-6.9397673,dashes:[.63740192,-7.01142112],sourceLine:79},{angle:46.1842,originX:0,originY:2,deltaX:6.19462554,deltaY:-8.84684596,dashes:[1.125,-12.375],sourceLine:80},{angle:96.63563549,originX:.88936745,originY:1.86206693,deltaX:8.59588239,deltaY:-10.40964966,dashes:[.95610342,-10.5171376],sourceLine:81},{angle:351.18416399,originX:0,originY:2,deltaX:7.74327494,deltaY:11.05855746,dashes:[.9,-9.90000001],sourceLine:82},{angle:21,originX:1,originY:1.5,deltaX:4.12975034,deltaY:-5.89789472,dashes:[.75,-8.25],sourceLine:83},{angle:326,originX:1,originY:1.5,deltaX:-2.03781207,deltaY:7.3723684,dashes:[.6,-6.6],sourceLine:84},{angle:71.45144474,originX:1.49742254,originY:1.16448426,deltaX:5.7305871,deltaY:-6.9397673,dashes:[.6374019,-7.01142112],sourceLine:85},{angle:37.5,originX:0,originY:0,deltaX:2.123,deltaY:2.567,dashes:[0,-6.52,0,-6.7,0,-6.625],sourceLine:86},{angle:7.5,originX:0,originY:0,deltaX:3.123,deltaY:3.567,dashes:[0,-3.82,0,-6.37,0,-2.525],sourceLine:87},{angle:-32.5,originX:-2.23,originY:0,deltaX:4.6234,deltaY:2.678,dashes:[0,-2.5,0,-7.8,0,-10.35],sourceLine:88},{angle:-42.5,originX:-3.23,originY:0,deltaX:3.6234,deltaY:4.678,dashes:[0,-3.25,0,-5.18,0,-7.35],sourceLine:89}]},{name:"AR-HBONE",description:"",lines:[{angle:45,originX:0,originY:0,deltaX:4,deltaY:4,dashes:[12,-4],sourceLine:91},{angle:135,originX:2.828427125,originY:2.828427125,deltaX:4,deltaY:-4,dashes:[12,-4],sourceLine:92}]},{name:"AR-PARQ1",description:"",lines:[{angle:90,originX:0,originY:0,deltaX:12,deltaY:12,dashes:[12,-12],sourceLine:94},{angle:90,originX:2,originY:0,deltaX:12,deltaY:12,dashes:[12,-12],sourceLine:95},{angle:90,originX:4,originY:0,deltaX:12,deltaY:12,dashes:[12,-12],sourceLine:96},{angle:90,originX:6,originY:0,deltaX:12,deltaY:12,dashes:[12,-12],sourceLine:97},{angle:90,originX:8,originY:0,deltaX:12,deltaY:12,dashes:[12,-12],sourceLine:98},{angle:90,originX:10,originY:0,deltaX:12,deltaY:12,dashes:[12,-12],sourceLine:99},{angle:90,originX:12,originY:0,deltaX:12,deltaY:12,dashes:[12,-12],sourceLine:100},{angle:0,originX:0,originY:12,deltaX:12,deltaY:-12,dashes:[12,-12],sourceLine:101},{angle:0,originX:0,originY:14,deltaX:12,deltaY:-12,dashes:[12,-12],sourceLine:102},{angle:0,originX:0,originY:16,deltaX:12,deltaY:-12,dashes:[12,-12],sourceLine:103},{angle:0,originX:0,originY:18,deltaX:12,deltaY:-12,dashes:[12,-12],sourceLine:104},{angle:0,originX:0,originY:20,deltaX:12,deltaY:-12,dashes:[12,-12],sourceLine:105},{angle:0,originX:0,originY:22,deltaX:12,deltaY:-12,dashes:[12,-12],sourceLine:106},{angle:0,originX:0,originY:24,deltaX:12,deltaY:-12,dashes:[12,-12],sourceLine:107}]},{name:"AR-RROOF",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:2.2,deltaY:1,dashes:[15,-2,5,-1],sourceLine:109},{angle:0,originX:1.33,originY:.5,deltaX:-1,deltaY:1.33,dashes:[3,-.33,6,-.75],sourceLine:110},{angle:0,originX:.5,originY:.85,deltaX:5.2,deltaY:.67,dashes:[8,-1.4,4,-1],sourceLine:111}]},{name:"AR-RSHKE",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:25.5,deltaY:12,dashes:[6,-5,7,-3,9,-4],sourceLine:113},{angle:0,originX:6,originY:.5,deltaX:25.5,deltaY:12,dashes:[5,-19,4,-6],sourceLine:114},{angle:0,originX:18,originY:-.75,deltaX:25.5,deltaY:12,dashes:[3,-31],sourceLine:115},{angle:90,originX:0,originY:0,deltaX:12,deltaY:8.5,dashes:[11.5,-36.5],sourceLine:116},{angle:90,originX:6,originY:0,deltaX:12,deltaY:8.5,dashes:[11.25,-36.75],sourceLine:117},{angle:90,originX:11,originY:0,deltaX:12,deltaY:8.5,dashes:[10.5,-37.5],sourceLine:118},{angle:90,originX:18,originY:-.75,deltaX:12,deltaY:8.5,dashes:[11.5,-36.5],sourceLine:119},{angle:90,originX:21,originY:-.75,deltaX:12,deltaY:8.5,dashes:[11.5,-36.5],sourceLine:120},{angle:90,originX:30,originY:0,deltaX:12,deltaY:8.5,dashes:[11,-37],sourceLine:121}]},{name:"AR-SAND",description:"",lines:[{angle:37.5,originX:0,originY:0,deltaX:1.123,deltaY:1.567,dashes:[0,-1.52,0,-1.7,0,-1.625],sourceLine:123},{angle:7.5,originX:0,originY:0,deltaX:2.123,deltaY:2.567,dashes:[0,-.82,0,-1.37,0,-.525],sourceLine:124},{angle:-32.5,originX:-1.23,originY:0,deltaX:2.6234,deltaY:1.678,dashes:[0,-.5,0,-1.8,0,-2.35],sourceLine:125},{angle:-42.5,originX:-1.23,originY:0,deltaX:1.6234,deltaY:2.678,dashes:[0,-.25,0,-1.18,0,-1.35],sourceLine:126}]},{name:"BOX",description:"",lines:[{angle:90,originX:0,originY:0,deltaX:0,deltaY:1,dashes:[],sourceLine:128},{angle:90,originX:.25,originY:0,deltaX:0,deltaY:1,dashes:[],sourceLine:129},{angle:0,originX:0,originY:0,deltaX:0,deltaY:1,dashes:[-.25,.25],sourceLine:130},{angle:0,originX:0,originY:.25,deltaX:0,deltaY:1,dashes:[-.25,.25],sourceLine:131},{angle:0,originX:0,originY:.5,deltaX:0,deltaY:1,dashes:[.25,-.25],sourceLine:132},{angle:0,originX:0,originY:.75,deltaX:0,deltaY:1,dashes:[.25,-.25],sourceLine:133},{angle:90,originX:.5,originY:0,deltaX:0,deltaY:1,dashes:[.25,-.25],sourceLine:134},{angle:90,originX:.75,originY:0,deltaX:0,deltaY:1,dashes:[.25,-.25],sourceLine:135}]},{name:"BRASS",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:.25,dashes:[],sourceLine:137},{angle:0,originX:0,originY:.125,deltaX:0,deltaY:.25,dashes:[.125,-.0625],sourceLine:138}]},{name:"BRICK",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:.25,dashes:[],sourceLine:140},{angle:90,originX:0,originY:0,deltaX:0,deltaY:.5,dashes:[.25,-.25],sourceLine:141},{angle:90,originX:.25,originY:0,deltaX:0,deltaY:.5,dashes:[-.25,.25],sourceLine:142}]},{name:"BRSTONE",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:.33,dashes:[],sourceLine:144},{angle:90,originX:.9,originY:0,deltaX:.33,deltaY:.5,dashes:[.33,-.33],sourceLine:145},{angle:90,originX:.8,originY:0,deltaX:.33,deltaY:.5,dashes:[.33,-.33],sourceLine:146},{angle:0,originX:.9,originY:.055,deltaX:.5,deltaY:.33,dashes:[-.9,.1],sourceLine:147},{angle:0,originX:.9,originY:.11,deltaX:.5,deltaY:.33,dashes:[-.9,.1],sourceLine:148},{angle:0,originX:.9,originY:.165,deltaX:.5,deltaY:.33,dashes:[-.9,.1],sourceLine:149},{angle:0,originX:.9,originY:.22,deltaX:.5,deltaY:.33,dashes:[-.9,.1],sourceLine:150},{angle:0,originX:.9,originY:.275,deltaX:.5,deltaY:.33,dashes:[-.9,.1],sourceLine:151}]},{name:"CLAY",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:.1875,dashes:[],sourceLine:153},{angle:0,originX:0,originY:.03125,deltaX:0,deltaY:.1875,dashes:[],sourceLine:154},{angle:0,originX:0,originY:.0625,deltaX:0,deltaY:.1875,dashes:[],sourceLine:155},{angle:0,originX:0,originY:.125,deltaX:0,deltaY:.1875,dashes:[.1875,-.125],sourceLine:156}]},{name:"CORK",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:.125,dashes:[],sourceLine:158},{angle:135,originX:.0625,originY:-.0625,deltaX:0,deltaY:.35355339,dashes:[.176776696,-.176776696],sourceLine:159},{angle:135,originX:.09375,originY:-.0625,deltaX:0,deltaY:.35355339,dashes:[.176776696,-.176776696],sourceLine:160},{angle:135,originX:.125,originY:-.0625,deltaX:0,deltaY:.35355339,dashes:[.176776696,-.176776696],sourceLine:161}]},{name:"CROSS",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:.25,deltaY:.25,dashes:[.125,-.375],sourceLine:163},{angle:90,originX:.0625,originY:-.0625,deltaX:.25,deltaY:.25,dashes:[.125,-.375],sourceLine:164}]},{name:"DASH",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:.125,deltaY:.125,dashes:[.125,-.125],sourceLine:166}]},{name:"DOLMIT",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:.25,dashes:[],sourceLine:168},{angle:45,originX:0,originY:0,deltaX:0,deltaY:.70710678,dashes:[.3535533905932738,-.7071067811865476],sourceLine:169}]},{name:"DOTS",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:.03125,deltaY:.0625,dashes:[0,-.0625],sourceLine:171}]},{name:"EARTH",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:.25,deltaY:.25,dashes:[.25,-.25],sourceLine:173},{angle:0,originX:0,originY:.09375,deltaX:.25,deltaY:.25,dashes:[.25,-.25],sourceLine:174},{angle:0,originX:0,originY:.1875,deltaX:.25,deltaY:.25,dashes:[.25,-.25],sourceLine:175},{angle:90,originX:.03125,originY:.21875,deltaX:.25,deltaY:.25,dashes:[.25,-.25],sourceLine:176},{angle:90,originX:.125,originY:.21875,deltaX:.25,deltaY:.25,dashes:[.25,-.25],sourceLine:177},{angle:90,originX:.21875,originY:.21875,deltaX:.25,deltaY:.25,dashes:[.25,-.25],sourceLine:178}]},{name:"ESCHER",description:"",lines:[{angle:60,originX:0,originY:0,deltaX:-.6,deltaY:1.039230484,dashes:[1.1,-.1],sourceLine:180},{angle:180,originX:0,originY:0,deltaX:-.6,deltaY:1.039230484,dashes:[1.1,-.1],sourceLine:181},{angle:300,originX:0,originY:0,deltaX:.6,deltaY:1.039230484,dashes:[1.1,-.1],sourceLine:182},{angle:60,originX:.1,originY:0,deltaX:-.6,deltaY:1.039230484,dashes:[.2,-1],sourceLine:183},{angle:300,originX:.1,originY:0,deltaX:.6,deltaY:1.039230484,dashes:[.2,-1],sourceLine:184},{angle:60,originX:-.05,originY:.08660254,deltaX:-.6,deltaY:1.039230484,dashes:[.2,-1],sourceLine:185},{angle:180,originX:-.05,originY:.08660254,deltaX:-.6,deltaY:1.039230484,dashes:[.2,-1],sourceLine:186},{angle:300,originX:-.05,originY:-.08660254,deltaX:.6,deltaY:1.039230484,dashes:[.2,-1],sourceLine:187},{angle:180,originX:-.05,originY:-.08660254,deltaX:-.6,deltaY:1.039230484,dashes:[.2,-1],sourceLine:188},{angle:60,originX:-.4,originY:0,deltaX:-.6,deltaY:1.039230484,dashes:[.2,-1],sourceLine:189},{angle:300,originX:-.4,originY:0,deltaX:.6,deltaY:1.039230484,dashes:[.2,-1],sourceLine:190},{angle:60,originX:.2,originY:-.346410161,deltaX:-.6,deltaY:1.039230484,dashes:[.2,-1],sourceLine:191},{angle:180,originX:.2,originY:-.346410161,deltaX:-.6,deltaY:1.039230484,dashes:[.2,-1],sourceLine:192},{angle:300,originX:.2,originY:.346410161,deltaX:.6,deltaY:1.039230484,dashes:[.2,-1],sourceLine:193},{angle:180,originX:.2,originY:.346410161,deltaX:-.6,deltaY:1.039230484,dashes:[.2,-1],sourceLine:194},{angle:0,originX:.2,originY:.173205081,deltaX:-.6,deltaY:1.039230484,dashes:[.7,-.5],sourceLine:195},{angle:0,originX:.2,originY:-.173205081,deltaX:-.6,deltaY:1.039230484,dashes:[.7,-.5],sourceLine:196},{angle:120,originX:.05,originY:.259807621,deltaX:.6,deltaY:1.039230484,dashes:[.7,-.5],sourceLine:197},{angle:120,originX:-.25,originY:.08660254,deltaX:.6,deltaY:1.039230484,dashes:[.7,-.5],sourceLine:198},{angle:240,originX:-.25,originY:-.08660254,deltaX:.6,deltaY:1.039230484,dashes:[.7,-.5],sourceLine:199},{angle:240,originX:.05,originY:-.259807621,deltaX:.6,deltaY:1.039230484,dashes:[.7,-.5],sourceLine:200}]},{name:"FLEX",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:.25,dashes:[.25,-.25],sourceLine:202},{angle:45,originX:.25,originY:0,deltaX:.176776695296,deltaY:.176776695296,dashes:[.0625,-.2285533906,.0625,-.353553390593],sourceLine:203}]},{name:"GOST_GLASS",description:"",lines:[{angle:45,originX:0,originY:0,deltaX:6,deltaY:-6,dashes:[5,-7],sourceLine:205},{angle:45,originX:2.12132,originY:0,deltaX:6,deltaY:-6,dashes:[2,-10],sourceLine:206},{angle:45,originX:0,originY:2.12132,deltaX:6,deltaY:-6,dashes:[2,-10],sourceLine:207}]},{name:"GOST_WOOD",description:"",lines:[{angle:90,originX:0,originY:0,deltaX:0,deltaY:-6,dashes:[10,-2],sourceLine:209},{angle:90,originX:2,originY:-2,deltaX:0,deltaY:-6,dashes:[6,-1.5,3,-1.5],sourceLine:210},{angle:90,originX:4,originY:-5,deltaX:0,deltaY:-6,dashes:[10,-2],sourceLine:211}]},{name:"GOST_GROUND",description:"",lines:[{angle:45,originX:0,originY:0,deltaX:10,deltaY:-10,dashes:[20],sourceLine:213},{angle:45,originX:3,originY:0,deltaX:10,deltaY:-10,dashes:[20],sourceLine:214},{angle:45,originX:6,originY:0,deltaX:10,deltaY:-10,dashes:[20],sourceLine:215}]},{name:"GRASS",description:"",lines:[{angle:90,originX:0,originY:0,deltaX:.707106781,deltaY:.707106781,dashes:[.1875,-1.226713563],sourceLine:217},{angle:45,originX:0,originY:0,deltaX:0,deltaY:1,dashes:[.1875,-.8125],sourceLine:218},{angle:135,originX:0,originY:0,deltaX:0,deltaY:1,dashes:[.1875,-.8125],sourceLine:219}]},{name:"GRATE",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:.03125,dashes:[],sourceLine:221},{angle:90,originX:0,originY:0,deltaX:0,deltaY:.125,dashes:[],sourceLine:222}]},{name:"GRAVEL",description:"",lines:[{angle:228.012787504,originX:.72,originY:1,deltaX:12.0413651692039,deltaY:.0743294146632,dashes:[.134536,-13.3190880470737],sourceLine:224},{angle:184.969740728,originX:.63,originY:.9,deltaX:-12.0415166747131,deltaY:.0433148081592,dashes:[.230868,-22.85592476123],sourceLine:225},{angle:132.510447078,originX:.4,originY:.88,deltaX:-14.8659418273816,deltaY:.061429511683,dashes:[.162788,-16.1160325960997],sourceLine:226},{angle:267.273689006,originX:.01,originY:.63,deltaX:-20.0249279039043,deltaY:.0475651493827,dashes:[.210238,-20.813558041629],sourceLine:227},{angle:292.833654178,originX:0,originY:.42,deltaX:-12.9999095019474,deltaY:.048507125026,dashes:[.206155,-20.4093731280883],sourceLine:228},{angle:357.273689006,originX:.08,originY:.23,deltaX:-20.0249279039043,deltaY:.0475651493827,dashes:[.210238,-20.813558041629],sourceLine:229},{angle:37.6942404667,originX:.29,originY:.22,deltaX:-16.4011800288558,deltaY:.0359675000664,dashes:[.278029,-27.524848548916],sourceLine:230},{angle:72.2553283749,originX:.51,originY:.39,deltaX:23.0867613281116,deltaY:.0380969659053,dashes:[.262488,-25.9863214968134],sourceLine:231},{angle:121.429565615,originX:.59,originY:.64,deltaX:15.2642639131074,deltaY:.047404546271,dashes:[.21095,-20.884073109729],sourceLine:232},{angle:175.236358309,originX:.48,originY:.82,deltaX:-11.0450488205478,deltaY:.083045479801,dashes:[.240832,-11.8007625787923],sourceLine:233},{angle:222.397437798,originX:.24,originY:.84,deltaX:16.2787889313724,deltaY:.0321080648114,dashes:[.311448,-30.8333750047949],sourceLine:234},{angle:138.814074834,originX:1,originY:.62,deltaX:9.2190645101588,deltaY:.0940720868851,dashes:[.106301,-10.5238448127347],sourceLine:235},{angle:171.46923439,originX:.92,originY:.69,deltaX:-13.1528534931484,deltaY:.0494468176315,dashes:[.202237,-20.021511416157],sourceLine:236},{angle:225,originX:.72,originY:.72,deltaX:.7071067811865,deltaY:.7071067811865,dashes:[.141421,-1.2727925623731],sourceLine:237},{angle:203.198590514,originX:.65,originY:.84,deltaX:-5.3835637472478,deltaY:.1313064328928,dashes:[.076158,-7.5396151058639],sourceLine:238},{angle:291.801409486,originX:.58,originY:.81,deltaX:-3.156820749011,deltaY:.185695338158,dashes:[.107703,-5.2774618071345],sourceLine:239},{angle:30.9637565321,originX:.62,originY:.71,deltaX:3.6014702879928,deltaY:.1714985851408,dashes:[.174929,-5.6560228948453],sourceLine:240},{angle:161.565051177,originX:.77,originY:.8,deltaX:-2.2135943621183,deltaY:.3162277660138,dashes:[.126491,-3.0357866601684],sourceLine:241},{angle:16.389540334,originX:0,originY:.81,deltaX:10.4401539876873,deltaY:.0564332648047,dashes:[.1772,-17.5428451466694],sourceLine:242},{angle:70.3461759419,originX:.17,originY:.86,deltaX:-11.7045066155395,deltaY:.0672672793901,dashes:[.148661,-14.717407747319],sourceLine:243},{angle:293.198590514,originX:.77,originY:1,deltaX:-5.3835637472478,deltaY:.1313064328928,dashes:[.152315,-7.4634581058639],sourceLine:244},{angle:343.610459666,originX:.83,originY:.86,deltaX:-10.4401539876873,deltaY:.0564332648047,dashes:[.1772,-17.542845146669],sourceLine:245},{angle:339.44395478,originX:0,originY:.19,deltaX:-5.3838927710229,deltaY:.117041147157,dashes:[.17088,-8.3731237453175],sourceLine:246},{angle:294.775140569,originX:.16,originY:.13,deltaX:-12.0828441168135,deltaY:.0698430296124,dashes:[.143178,-14.174643063276],sourceLine:247},{angle:66.8014094864,originX:.78,originY:0,deltaX:5.3835637472487,deltaY:.1313064328552,dashes:[.152315,-7.4634581058639],sourceLine:248},{angle:17.3540246363,originX:.84,originY:.14,deltaX:-13.6013396869991,deltaY:.0596549986364,dashes:[.167631,-16.59542361424],sourceLine:249},{angle:69.4439547804,originX:.29,originY:0,deltaX:-5.383892771022,deltaY:.1170411471946,dashes:[.08544,-8.4585637453175],sourceLine:250},{angle:101.309932474,originX:.72,originY:0,deltaX:4.1184388379018,deltaY:.1961161351396,dashes:[.05099,-5.0480295135928],sourceLine:251},{angle:165.963756532,originX:.71,originY:.05,deltaX:-3.1529631254726,deltaY:.2425356250323,dashes:[.206155,-3.9169506256177],sourceLine:252},{angle:186.009005957,originX:.51,originY:.1,deltaX:-10.0497393137326,deltaY:.0523423921723,dashes:[.19105,-18.9139231745428],sourceLine:253},{angle:303.690067526,originX:.62,originY:.62,deltaX:-2.2188007849008,deltaY:.2773500981134,dashes:[.144222,-3.461329275464],sourceLine:254},{angle:353.157226587,originX:.7,originY:.5,deltaX:17.1171966955143,deltaY:.0397150736497,dashes:[.251794,-24.9275626240283],sourceLine:255},{angle:60.9453959009,originX:.95,originY:.47,deltaX:-8.0616726575653,deltaY:.0971285862325,dashes:[.102956,-10.192674140987],sourceLine:256},{angle:90,originX:1,originY:.56,deltaX:1,deltaY:1,dashes:[.06,-.94],sourceLine:257},{angle:120.256437164,originX:.49,originY:.13,deltaX:-8.0619364083848,deltaY:.0719815751411,dashes:[.138924,-13.7535199894498],sourceLine:258},{angle:48.0127875042,originX:.42,originY:.25,deltaX:12.0413651692041,deltaY:.0743294146212,dashes:[.269072,-13.1845520470737],sourceLine:259},{angle:0,originX:.6,originY:.45,deltaX:1,deltaY:1,dashes:[.26,-.74],sourceLine:260},{angle:325.304846469,originX:.86,originY:.45,deltaX:12.2063917682497,deltaY:-.063245553253,dashes:[.158114,-15.653274300842],sourceLine:261},{angle:254.054604099,originX:.99,originY:.36,deltaX:4.1208169184605,deltaY:.1373605639542,dashes:[.145602,-7.1345078892805],sourceLine:262},{angle:207.645975364,originX:.95,originY:.22,deltaX:21.4708691170287,deltaY:.0421824539631,dashes:[.237065,-23.4694741822594],sourceLine:263},{angle:175.42607874,originX:.74,originY:.11,deltaX:13.0383438432524,deltaY:.039872611164,dashes:[.250799,-24.8290734079689],sourceLine:264}]},{name:"HEX",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:.21650635094610965,dashes:[.125,-.25],sourceLine:266},{angle:120,originX:0,originY:0,deltaX:0,deltaY:.21650635094610965,dashes:[.125,-.25],sourceLine:267},{angle:60,originX:.125,originY:0,deltaX:0,deltaY:.21650635094610965,dashes:[.125,-.25],sourceLine:268}]},{name:"HONEY",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:.1875,deltaY:.10825317547305482,dashes:[.125,-.25],sourceLine:270},{angle:120,originX:0,originY:0,deltaX:.1875,deltaY:.10825317547305482,dashes:[.125,-.25],sourceLine:271},{angle:60,originX:0,originY:0,deltaX:.1875,deltaY:.10825317547305482,dashes:[-.25,.125],sourceLine:272}]},{name:"HOUND",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:.25,deltaY:.0625,dashes:[1,-.5],sourceLine:274},{angle:90,originX:0,originY:0,deltaX:-.25,deltaY:.0625,dashes:[1,-.5],sourceLine:275}]},{name:"INSUL",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:.375,dashes:[],sourceLine:277},{angle:0,originX:0,originY:.125,deltaX:0,deltaY:.375,dashes:[.125,-.125],sourceLine:278},{angle:0,originX:0,originY:.25,deltaX:0,deltaY:.375,dashes:[.125,-.125],sourceLine:279}]},{name:"ACAD_ISO02W100",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:5,dashes:[12,-3],sourceLine:292}]},{name:"ACAD_ISO03W100",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:5,dashes:[12,-18],sourceLine:294}]},{name:"ACAD_ISO04W100",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:5,dashes:[24,-3,.5,-3],sourceLine:296}]},{name:"ACAD_ISO05W100",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:5,dashes:[24,-3,.5,-3,.5,-3],sourceLine:298}]},{name:"ACAD_ISO06W100",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:5,dashes:[24,-3,.5,-3,.5,-6.5],sourceLine:300},{angle:0,originX:0,originY:0,deltaX:0,deltaY:5,dashes:[-34,.5,-3],sourceLine:301}]},{name:"ACAD_ISO07W100",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:5,dashes:[.5,-3],sourceLine:303}]},{name:"ACAD_ISO08W100",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:5,dashes:[24,-3,6,-3],sourceLine:305}]},{name:"ACAD_ISO09W100",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:5,dashes:[24,-3,6,-3,6,-3],sourceLine:307}]},{name:"ACAD_ISO10W100",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:5,dashes:[12,-3,.5,-3],sourceLine:309}]},{name:"ACAD_ISO11W100",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:5,dashes:[12,-3,12,-3,.5,-3],sourceLine:311}]},{name:"ACAD_ISO12W100",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:5,dashes:[12,-3,.5,-3,.5,-3],sourceLine:313}]},{name:"ACAD_ISO13W100",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:5,dashes:[12,-3,12,-3,.5,-6.5],sourceLine:315},{angle:0,originX:0,originY:0,deltaX:0,deltaY:5,dashes:[-33.5,.5,-3],sourceLine:316}]},{name:"ACAD_ISO14W100",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:5,dashes:[12,-3,.5,-3,.5,-6.5],sourceLine:318},{angle:0,originX:0,originY:0,deltaX:0,deltaY:5,dashes:[-22,.5,-3],sourceLine:319}]},{name:"ACAD_ISO15W100",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:5,dashes:[12,-3,12,-3,.5,-10],sourceLine:321},{angle:0,originX:0,originY:0,deltaX:0,deltaY:5,dashes:[-33.5,.5,-3,.5,-3],sourceLine:322}]},{name:"LINE",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:.125,dashes:[],sourceLine:327}]},{name:"MUDST",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:.5,deltaY:.25,dashes:[.25,-.25,0,-.25,0,-.25],sourceLine:329}]},{name:"NET",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:.125,dashes:[],sourceLine:331},{angle:90,originX:0,originY:0,deltaX:0,deltaY:.125,dashes:[],sourceLine:332}]},{name:"NET3",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:.125,dashes:[],sourceLine:334},{angle:60,originX:0,originY:0,deltaX:0,deltaY:.125,dashes:[],sourceLine:335},{angle:120,originX:0,originY:0,deltaX:0,deltaY:.125,dashes:[],sourceLine:336}]},{name:"PLAST",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:.25,dashes:[],sourceLine:338},{angle:0,originX:0,originY:.03125,deltaX:0,deltaY:.25,dashes:[],sourceLine:339},{angle:0,originX:0,originY:.0625,deltaX:0,deltaY:.25,dashes:[],sourceLine:340}]},{name:"PLASTI",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:.25,dashes:[],sourceLine:342},{angle:0,originX:0,originY:.03125,deltaX:0,deltaY:.25,dashes:[],sourceLine:343},{angle:0,originX:0,originY:.0625,deltaX:0,deltaY:.25,dashes:[],sourceLine:344},{angle:0,originX:0,originY:.15625,deltaX:0,deltaY:.25,dashes:[],sourceLine:345}]},{name:"SACNCR",description:"",lines:[{angle:45,originX:0,originY:0,deltaX:0,deltaY:.09375,dashes:[],sourceLine:347},{angle:45,originX:.066291261,originY:0,deltaX:0,deltaY:.09375,dashes:[0,-.09375],sourceLine:348}]},{name:"SQUARE",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:.125,dashes:[.125,-.125],sourceLine:350},{angle:90,originX:0,originY:0,deltaX:0,deltaY:.125,dashes:[.125,-.125],sourceLine:351}]},{name:"STARS",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:.216506351,dashes:[.125,-.125],sourceLine:353},{angle:60,originX:0,originY:0,deltaX:0,deltaY:.216506351,dashes:[.125,-.125],sourceLine:354},{angle:120,originX:.0625,originY:.108253176,deltaX:0,deltaY:.216506351,dashes:[.125,-.125],sourceLine:355}]},{name:"STEEL",description:"",lines:[{angle:45,originX:0,originY:0,deltaX:0,deltaY:.125,dashes:[],sourceLine:357},{angle:45,originX:0,originY:.0625,deltaX:0,deltaY:.125,dashes:[],sourceLine:358}]},{name:"SWAMP",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:.5,deltaY:.866025403,dashes:[.125,-.875],sourceLine:360},{angle:90,originX:.0625,originY:0,deltaX:.866025403,deltaY:.5,dashes:[.0625,-1.669550806],sourceLine:361},{angle:90,originX:.078125,originY:0,deltaX:.866025403,deltaY:.5,dashes:[.05,-1.682050806],sourceLine:362},{angle:90,originX:.046875,originY:0,deltaX:.866025403,deltaY:.5,dashes:[.05,-1.682050806],sourceLine:363},{angle:60,originX:.09375,originY:0,deltaX:.5,deltaY:.866025403,dashes:[.04,-.96],sourceLine:364},{angle:120,originX:.03125,originY:0,deltaX:.5,deltaY:.866025403,dashes:[.04,-.96],sourceLine:365}]},{name:"TRANS",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:.25,dashes:[],sourceLine:367},{angle:0,originX:0,originY:.125,deltaX:0,deltaY:.25,dashes:[.125,-.125],sourceLine:368}]},{name:"TRIANG",description:"",lines:[{angle:60,originX:0,originY:0,deltaX:.1875,deltaY:.324759526,dashes:[.1875,-.1875],sourceLine:370},{angle:120,originX:0,originY:0,deltaX:.1875,deltaY:.324759526,dashes:[.1875,-.1875],sourceLine:371},{angle:0,originX:-.09375,originY:.162379763,deltaX:.1875,deltaY:.324759526,dashes:[.1875,-.1875],sourceLine:372}]},{name:"ZIGZAG",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:.125,deltaY:.125,dashes:[.125,-.125],sourceLine:374},{angle:90,originX:.125,originY:0,deltaX:.125,deltaY:.125,dashes:[.125,-.125],sourceLine:375}]}],issues:[]},Po={patterns:[{name:"SOLID",description:"",lines:[]},{name:"ANGLE",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:6.985,dashes:[5.08,-1.905],sourceLine:20},{angle:90,originX:0,originY:0,deltaX:0,deltaY:6.985,dashes:[5.08,-1.905],sourceLine:21}]},{name:"ANSI31",description:"",lines:[{angle:45,originX:0,originY:0,deltaX:0,deltaY:3.175,dashes:[],sourceLine:23}]},{name:"ANSI32",description:"",lines:[{angle:45,originX:0,originY:0,deltaX:0,deltaY:9.525,dashes:[],sourceLine:25},{angle:45,originX:4.49013,originY:0,deltaX:0,deltaY:9.525,dashes:[],sourceLine:26}]},{name:"ANSI33",description:"",lines:[{angle:45,originX:0,originY:0,deltaX:0,deltaY:6.35,dashes:[],sourceLine:28},{angle:45,originX:4.49013,originY:0,deltaX:0,deltaY:6.35,dashes:[3.175,-1.5875],sourceLine:29}]},{name:"ANSI34",description:"",lines:[{angle:45,originX:0,originY:0,deltaX:0,deltaY:19.05,dashes:[],sourceLine:31},{angle:45,originX:4.49013,originY:0,deltaX:0,deltaY:19.05,dashes:[],sourceLine:32},{angle:45,originX:8.98026,originY:0,deltaX:0,deltaY:19.05,dashes:[],sourceLine:33},{angle:45,originX:13.4704,originY:0,deltaX:0,deltaY:19.05,dashes:[],sourceLine:34}]},{name:"ANSI35",description:"",lines:[{angle:45,originX:0,originY:0,deltaX:0,deltaY:6.35,dashes:[],sourceLine:36},{angle:45,originX:4.49013,originY:0,deltaX:0,deltaY:6.35,dashes:[7.9375,-1.5875,0,-1.5875],sourceLine:37}]},{name:"ANSI36",description:"",lines:[{angle:45,originX:0,originY:0,deltaX:5.55625,deltaY:3.175,dashes:[7.9375,-1.5875,0,-1.5875],sourceLine:39}]},{name:"ANSI37",description:"",lines:[{angle:45,originX:0,originY:0,deltaX:0,deltaY:3.175,dashes:[],sourceLine:41},{angle:135,originX:0,originY:0,deltaX:0,deltaY:3.175,dashes:[],sourceLine:42}]},{name:"ANSI38",description:"",lines:[{angle:45,originX:0,originY:0,deltaX:0,deltaY:3.175,dashes:[],sourceLine:44},{angle:135,originX:0,originY:0,deltaX:6.35,deltaY:3.175,dashes:[7.9375,-4.7625],sourceLine:45}]},{name:"AR-B816",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:203.2,dashes:[],sourceLine:47},{angle:90,originX:0,originY:0,deltaX:203.2,deltaY:203.2,dashes:[203.2,-203.2],sourceLine:48}]},{name:"AR-B816C",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:203.2,deltaY:203.2,dashes:[396.875,-9.525],sourceLine:50},{angle:0,originX:-203.2,originY:9.525,deltaX:203.2,deltaY:203.2,dashes:[396.875,-9.525],sourceLine:51},{angle:90,originX:0,originY:0,deltaX:203.2,deltaY:203.2,dashes:[-212.725,193.675],sourceLine:52},{angle:90,originX:-9.525,originY:0,deltaX:203.2,deltaY:203.2,dashes:[-212.725,193.675],sourceLine:53}]},{name:"AR-B88",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:203.2,dashes:[],sourceLine:55},{angle:90,originX:0,originY:0,deltaX:203.2,deltaY:101.6,dashes:[203.2,-203.2],sourceLine:56}]},{name:"AR-BRELM",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:135.484,dashes:[193.675,-9.525],sourceLine:58},{angle:0,originX:0,originY:57.15,deltaX:0,deltaY:135.484,dashes:[193.675,-9.525],sourceLine:59},{angle:0,originX:50.8,originY:67.7418,deltaX:0,deltaY:135.484,dashes:[92.075,-9.525],sourceLine:60},{angle:0,originX:50.8,originY:124.892,deltaX:0,deltaY:135.484,dashes:[92.075,-9.525],sourceLine:61},{angle:90,originX:0,originY:0,deltaX:0,deltaY:203.2,dashes:[57.15,-78.334],sourceLine:62},{angle:90,originX:-9.525,originY:0,deltaX:0,deltaY:203.2,dashes:[57.15,-78.334],sourceLine:63},{angle:90,originX:50.8,originY:67.7418,deltaX:0,deltaY:101.6,dashes:[57.15,-78.334],sourceLine:64},{angle:90,originX:41.275,originY:67.7418,deltaX:0,deltaY:101.6,dashes:[57.15,-78.334],sourceLine:65}]},{name:"AR-BRSTD",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:67.7418,dashes:[],sourceLine:67},{angle:90,originX:0,originY:0,deltaX:67.7418,deltaY:101.6,dashes:[67.7418,-67.7418],sourceLine:68}]},{name:"AR-CONC",description:"",lines:[{angle:50,originX:0,originY:0,deltaX:104.896,deltaY:-149.807,dashes:[19.05,-209.55],sourceLine:70},{angle:355,originX:0,originY:0,deltaX:-51.76101082,deltaY:187.25814969,dashes:[15.24,-167.64058417],sourceLine:71},{angle:100.4514447,originX:15.182007,originY:-1.3282535,deltaX:145.5569059,deltaY:-176.270089,dashes:[16.1900088,-178.0902446],sourceLine:72},{angle:46.1842,originX:0,originY:50.8,deltaX:157.343,deltaY:-224.71,dashes:[28.575,-314.325],sourceLine:73},{angle:96.63555761,originX:22.5899,originY:47.2965,deltaX:218.33577212,deltaY:-264.40480444,dashes:[24.28502314,-267.13560816],sourceLine:74},{angle:351.18415117,originX:0,originY:50.8,deltaX:196.67912063,deltaY:280.88740361,dashes:[22.85996707,-251.45973192],sourceLine:75},{angle:21,originX:25.4,originY:38.1,deltaX:104.89565868,deltaY:-149.80652586,dashes:[19.05,-209.55],sourceLine:76},{angle:326,originX:25.4,originY:38.1,deltaX:-51.7604,deltaY:187.258,dashes:[15.24,-167.64],sourceLine:77},{angle:71.451445,originX:38.0345326,originY:29.5779001,deltaX:145.5567546,deltaY:-176.2700748,dashes:[16.1900088,-178.0899376],sourceLine:78},{angle:37.5,originX:0,originY:0,deltaX:53.9242,deltaY:65.2018,dashes:[0,-165.608,0,-170.18,0,-168.275],sourceLine:79},{angle:7.5,originX:0,originY:0,deltaX:79.3242,deltaY:90.6018,dashes:[0,-97.028,0,-161.798,0,-64.135],sourceLine:80},{angle:-32.5,originX:-56.642,originY:0,deltaX:117.434,deltaY:68.0212,dashes:[0,-63.5,0,-198.12,0,-262.89],sourceLine:81},{angle:-42.5,originX:-82.042,originY:0,deltaX:92.0344,deltaY:118.821,dashes:[0,-82.55,0,-131.572,0,-186.69],sourceLine:82}]},{name:"AR-HBONE",description:"",lines:[{angle:45,originX:0,originY:0,deltaX:101.6,deltaY:101.6,dashes:[304.8,-101.6],sourceLine:84},{angle:135,originX:71.842,originY:71.842,deltaX:101.6,deltaY:-101.6,dashes:[304.8,-101.6],sourceLine:85}]},{name:"AR-PARQ1",description:"",lines:[{angle:90,originX:0,originY:0,deltaX:304.8,deltaY:304.8,dashes:[304.8,-304.8],sourceLine:87},{angle:90,originX:50.8,originY:0,deltaX:304.8,deltaY:304.8,dashes:[304.8,-304.8],sourceLine:88},{angle:90,originX:101.6,originY:0,deltaX:304.8,deltaY:304.8,dashes:[304.8,-304.8],sourceLine:89},{angle:90,originX:152.4,originY:0,deltaX:304.8,deltaY:304.8,dashes:[304.8,-304.8],sourceLine:90},{angle:90,originX:203.2,originY:0,deltaX:304.8,deltaY:304.8,dashes:[304.8,-304.8],sourceLine:91},{angle:90,originX:254,originY:0,deltaX:304.8,deltaY:304.8,dashes:[304.8,-304.8],sourceLine:92},{angle:90,originX:304.8,originY:0,deltaX:304.8,deltaY:304.8,dashes:[304.8,-304.8],sourceLine:93},{angle:0,originX:0,originY:304.8,deltaX:304.8,deltaY:-304.8,dashes:[304.8,-304.8],sourceLine:94},{angle:0,originX:0,originY:355.6,deltaX:304.8,deltaY:-304.8,dashes:[304.8,-304.8],sourceLine:95},{angle:0,originX:0,originY:406.4,deltaX:304.8,deltaY:-304.8,dashes:[304.8,-304.8],sourceLine:96},{angle:0,originX:0,originY:457.2,deltaX:304.8,deltaY:-304.8,dashes:[304.8,-304.8],sourceLine:97},{angle:0,originX:0,originY:508,deltaX:304.8,deltaY:-304.8,dashes:[304.8,-304.8],sourceLine:98},{angle:0,originX:0,originY:558.8,deltaX:304.8,deltaY:-304.8,dashes:[304.8,-304.8],sourceLine:99},{angle:0,originX:0,originY:609.6,deltaX:304.8,deltaY:-304.8,dashes:[304.8,-304.8],sourceLine:100}]},{name:"AR-RROOF",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:55.88,deltaY:25.4,dashes:[381,-50.8,127,-25.4],sourceLine:102},{angle:0,originX:33.782,originY:12.7,deltaX:-25.4,deltaY:33.782,dashes:[76.2,-8.382,152.4,-19.05],sourceLine:103},{angle:0,originX:12.7,originY:21.59,deltaX:132.08,deltaY:17.018,dashes:[203.2,-35.56,101.6,-25.4],sourceLine:104}]},{name:"AR-RSHKE",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:647.7,deltaY:304.8,dashes:[152.4,-127,177.8,-76.2,228.6,-101.6],sourceLine:106},{angle:0,originX:152.4,originY:12.7,deltaX:647.7,deltaY:304.8,dashes:[127,-482.6,101.6,-152.4],sourceLine:107},{angle:0,originX:457.2,originY:-19.05,deltaX:647.7,deltaY:304.8,dashes:[76.2,-787.4],sourceLine:108},{angle:90,originX:0,originY:0,deltaX:304.8,deltaY:215.9,dashes:[292.1,-927.1],sourceLine:109},{angle:90,originX:152.4,originY:0,deltaX:304.8,deltaY:215.9,dashes:[285.75,-933.45],sourceLine:110},{angle:90,originX:279.4,originY:0,deltaX:304.8,deltaY:215.9,dashes:[266.7,-952.5],sourceLine:111},{angle:90,originX:457.2,originY:-19.05,deltaX:304.8,deltaY:215.9,dashes:[292.1,-927.1],sourceLine:112},{angle:90,originX:533.4,originY:-19.05,deltaX:304.8,deltaY:215.9,dashes:[292.1,-927.1],sourceLine:113},{angle:90,originX:762,originY:0,deltaX:304.8,deltaY:215.9,dashes:[279.4,-939.8],sourceLine:114}]},{name:"AR-SAND",description:"",lines:[{angle:37.5,originX:0,originY:0,deltaX:28.5242,deltaY:39.8018,dashes:[0,-38.608,0,-43.18,0,-41.275],sourceLine:116},{angle:7.5,originX:0,originY:0,deltaX:53.9242,deltaY:65.2018,dashes:[0,-20.828,0,-34.798,0,-13.335],sourceLine:117},{angle:-32.5,originX:-31.242,originY:0,deltaX:66.6344,deltaY:42.6212,dashes:[0,-12.7,0,-45.72,0,-59.69],sourceLine:118},{angle:-42.5,originX:-31.242,originY:0,deltaX:41.2344,deltaY:68.0212,dashes:[0,-6.35,0,-29.972,0,-34.29],sourceLine:119}]},{name:"BOX",description:"",lines:[{angle:90,originX:0,originY:0,deltaX:0,deltaY:25.4,dashes:[],sourceLine:121},{angle:90,originX:6.35,originY:0,deltaX:0,deltaY:25.4,dashes:[],sourceLine:122},{angle:0,originX:0,originY:0,deltaX:0,deltaY:25.4,dashes:[-6.35,6.35],sourceLine:123},{angle:0,originX:0,originY:6.35,deltaX:0,deltaY:25.4,dashes:[-6.35,6.35],sourceLine:124},{angle:0,originX:0,originY:12.7,deltaX:0,deltaY:25.4,dashes:[6.35,-6.35],sourceLine:125},{angle:0,originX:0,originY:19.05,deltaX:0,deltaY:25.4,dashes:[6.35,-6.35],sourceLine:126},{angle:90,originX:12.7,originY:0,deltaX:0,deltaY:25.4,dashes:[6.35,-6.35],sourceLine:127},{angle:90,originX:19.05,originY:0,deltaX:0,deltaY:25.4,dashes:[6.35,-6.35],sourceLine:128}]},{name:"BRASS",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:6.35,dashes:[],sourceLine:130},{angle:0,originX:0,originY:3.175,deltaX:0,deltaY:6.35,dashes:[3.175,-1.5875],sourceLine:131}]},{name:"BRICK",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:6.35,dashes:[],sourceLine:133},{angle:90,originX:0,originY:0,deltaX:0,deltaY:12.7,dashes:[6.35,-6.35],sourceLine:134},{angle:90,originX:6.35,originY:0,deltaX:0,deltaY:12.7,dashes:[-6.35,6.35],sourceLine:135}]},{name:"BRSTONE",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:8.382,dashes:[],sourceLine:137},{angle:90,originX:22.86,originY:0,deltaX:8.382,deltaY:12.7,dashes:[8.382,-8.382],sourceLine:138},{angle:90,originX:20.32,originY:0,deltaX:8.382,deltaY:12.7,dashes:[8.382,-8.382],sourceLine:139},{angle:0,originX:22.86,originY:1.397,deltaX:12.7,deltaY:8.382,dashes:[-22.86,2.54],sourceLine:140},{angle:0,originX:22.86,originY:2.794,deltaX:12.7,deltaY:8.382,dashes:[-22.86,2.54],sourceLine:141},{angle:0,originX:22.86,originY:4.191,deltaX:12.7,deltaY:8.382,dashes:[-22.86,2.54],sourceLine:142},{angle:0,originX:22.86,originY:5.588,deltaX:12.7,deltaY:8.382,dashes:[-22.86,2.54],sourceLine:143},{angle:0,originX:22.86,originY:6.985,deltaX:12.7,deltaY:8.382,dashes:[-22.86,2.54],sourceLine:144}]},{name:"CLAY",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:4.7625,dashes:[],sourceLine:146},{angle:0,originX:0,originY:.79375,deltaX:0,deltaY:4.7625,dashes:[],sourceLine:147},{angle:0,originX:0,originY:1.5875,deltaX:0,deltaY:4.7625,dashes:[],sourceLine:148},{angle:0,originX:0,originY:3.175,deltaX:0,deltaY:4.7625,dashes:[4.7625,-3.175],sourceLine:149}]},{name:"CORK",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:3.175,dashes:[],sourceLine:151},{angle:135,originX:1.5875,originY:-1.5875,deltaX:0,deltaY:8.98026,dashes:[4.49013,-4.49013],sourceLine:152},{angle:135,originX:2.38125,originY:-1.5875,deltaX:0,deltaY:8.98026,dashes:[4.49013,-4.49013],sourceLine:153},{angle:135,originX:3.175,originY:-1.5875,deltaX:0,deltaY:8.98026,dashes:[4.49013,-4.49013],sourceLine:154}]},{name:"CROSS",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:6.35,deltaY:6.35,dashes:[3.175,-9.525],sourceLine:156},{angle:90,originX:1.5875,originY:-1.5875,deltaX:6.35,deltaY:6.35,dashes:[3.175,-9.525],sourceLine:157}]},{name:"DASH",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:3.175,deltaY:3.175,dashes:[3.175,-3.175],sourceLine:159}]},{name:"DOLMIT",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:6.35,dashes:[],sourceLine:161},{angle:45,originX:0,originY:0,deltaX:0,deltaY:17.9605,dashes:[8.980256121069154,-17.960512242138307],sourceLine:162}]},{name:"DOTS",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:.79375,deltaY:1.5875,dashes:[0,-1.5875],sourceLine:164}]},{name:"EARTH",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:6.35,deltaY:6.35,dashes:[6.35,-6.35],sourceLine:166},{angle:0,originX:0,originY:2.38125,deltaX:6.35,deltaY:6.35,dashes:[6.35,-6.35],sourceLine:167},{angle:0,originX:0,originY:4.7625,deltaX:6.35,deltaY:6.35,dashes:[6.35,-6.35],sourceLine:168},{angle:90,originX:.79375,originY:5.55625,deltaX:6.35,deltaY:6.35,dashes:[6.35,-6.35],sourceLine:169},{angle:90,originX:3.175,originY:5.55625,deltaX:6.35,deltaY:6.35,dashes:[6.35,-6.35],sourceLine:170},{angle:90,originX:5.55625,originY:5.55625,deltaX:6.35,deltaY:6.35,dashes:[6.35,-6.35],sourceLine:171}]},{name:"ESCHER",description:"",lines:[{angle:60,originX:0,originY:0,deltaX:-15.24,deltaY:26.3964542936,dashes:[27.94,-2.54],sourceLine:173},{angle:180,originX:0,originY:0,deltaX:-15.24,deltaY:26.3964542936,dashes:[27.94,-2.54],sourceLine:174},{angle:300,originX:0,originY:0,deltaX:15.24,deltaY:26.3964542936,dashes:[27.94,-2.54],sourceLine:175},{angle:60,originX:2.54,originY:0,deltaX:-15.24,deltaY:26.3964542936,dashes:[5.08,-25.4],sourceLine:176},{angle:300,originX:2.54,originY:0,deltaX:15.24,deltaY:26.3964542936,dashes:[5.08,-25.4],sourceLine:177},{angle:60,originX:-1.27,originY:2.199704516,deltaX:-15.24,deltaY:26.3964542936,dashes:[5.08,-25.4],sourceLine:178},{angle:180,originX:-1.27,originY:2.199704516,deltaX:-15.24,deltaY:26.3964542936,dashes:[5.08,-25.4],sourceLine:179},{angle:300,originX:-1.27,originY:-2.199704516,deltaX:15.24,deltaY:26.3964542936,dashes:[5.08,-25.4],sourceLine:180},{angle:180,originX:-1.27,originY:-2.199704516,deltaX:-15.24,deltaY:26.3964542936,dashes:[5.08,-25.4],sourceLine:181},{angle:60,originX:-10.16,originY:0,deltaX:-15.24,deltaY:26.3964542936,dashes:[5.08,-25.4],sourceLine:182},{angle:300,originX:-10.16,originY:0,deltaX:15.24,deltaY:26.3964542936,dashes:[5.08,-25.4],sourceLine:183},{angle:60,originX:5.08,originY:-8.7988180894,deltaX:-15.24,deltaY:26.3964542936,dashes:[5.08,-25.4],sourceLine:184},{angle:180,originX:5.08,originY:-8.7988180894,deltaX:-15.24,deltaY:26.3964542936,dashes:[5.08,-25.4],sourceLine:185},{angle:300,originX:5.08,originY:8.7988180894,deltaX:15.24,deltaY:26.3964542936,dashes:[5.08,-25.4],sourceLine:186},{angle:180,originX:5.08,originY:8.7988180894,deltaX:-15.24,deltaY:26.3964542936,dashes:[5.08,-25.4],sourceLine:187},{angle:0,originX:5.08,originY:4.3994090574,deltaX:-15.24,deltaY:26.3964542936,dashes:[17.78,-12.7],sourceLine:188},{angle:0,originX:5.08,originY:-4.3994090574,deltaX:-15.24,deltaY:26.3964542936,dashes:[17.78,-12.7],sourceLine:189},{angle:120,originX:1.27,originY:6.5991135734,deltaX:15.24,deltaY:26.3964542936,dashes:[17.78,-12.7],sourceLine:190},{angle:120,originX:-6.35,originY:2.199704516,deltaX:15.24,deltaY:26.3964542936,dashes:[17.78,-12.7],sourceLine:191},{angle:240,originX:-6.35,originY:-2.199704516,deltaX:15.24,deltaY:26.3964542936,dashes:[17.78,-12.7],sourceLine:192},{angle:240,originX:1.27,originY:-6.5991135734,deltaX:15.24,deltaY:26.3964542936,dashes:[17.78,-12.7],sourceLine:193}]},{name:"FLEX",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:6.35,dashes:[6.35,-6.35],sourceLine:195},{angle:45,originX:6.35,originY:0,deltaX:4.490128053,deltaY:4.490128053,dashes:[1.5875,-5.8052561314,1.5875,-8.9802561314],sourceLine:196}]},{name:"GOST_GLASS",description:"",lines:[{angle:45,originX:0,originY:0,deltaX:6,deltaY:-6,dashes:[5,-7],sourceLine:198},{angle:45,originX:2.12132,originY:0,deltaX:6,deltaY:-6,dashes:[2,-10],sourceLine:199},{angle:45,originX:0,originY:2.12132,deltaX:6,deltaY:-6,dashes:[2,-10],sourceLine:200}]},{name:"GOST_WOOD",description:"",lines:[{angle:90,originX:0,originY:0,deltaX:0,deltaY:-6,dashes:[10,-2],sourceLine:202},{angle:90,originX:2,originY:-2,deltaX:0,deltaY:-6,dashes:[6,-1.5,3,-1.5],sourceLine:203},{angle:90,originX:4,originY:-5,deltaX:0,deltaY:-6,dashes:[10,-2],sourceLine:204}]},{name:"GOST_GROUND",description:"",lines:[{angle:45,originX:0,originY:0,deltaX:10,deltaY:-10,dashes:[20],sourceLine:206},{angle:45,originX:3,originY:0,deltaX:10,deltaY:-10,dashes:[20],sourceLine:207},{angle:45,originX:6,originY:0,deltaX:10,deltaY:-10,dashes:[20],sourceLine:208}]},{name:"GRASS",description:"",lines:[{angle:90,originX:0,originY:0,deltaX:17.96051224,deltaY:17.96051224,dashes:[4.7625,-31.15852448],sourceLine:210},{angle:45,originX:0,originY:0,deltaX:0,deltaY:25.4,dashes:[4.7625,-20.6375],sourceLine:211},{angle:135,originX:0,originY:0,deltaX:0,deltaY:25.4,dashes:[4.7625,-20.6375],sourceLine:212}]},{name:"GRATE",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:.79375,dashes:[],sourceLine:214},{angle:90,originX:0,originY:0,deltaX:0,deltaY:3.175,dashes:[],sourceLine:215}]},{name:"GRAVEL",description:"",lines:[{angle:228.0127875,originX:18.288,originY:25.4,deltaX:305.85067529778,deltaY:1.88796713245,dashes:[3.4172144,-338.30483639565],sourceLine:217},{angle:184.969741,originX:16.002,originY:22.86,deltaX:-305.8545235377,deltaY:1.10019612724,dashes:[5.8640472,-580.54048893524],sourceLine:218},{angle:132.5104471,originX:10.16,originY:22.352,deltaX:-377.59492241548,deltaY:1.56030959675,dashes:[4.1348152,-409.347227941],sourceLine:219},{angle:267.273689,originX:.254,originY:16.002,deltaX:-508.63316875916,deltaY:1.20815479432,dashes:[5.3400452,-528.66437425738],sourceLine:220},{angle:292.83365418,originX:0,originY:10.668,deltaX:-330.19770134945,deltaY:1.23208097566,dashes:[5.236337,-518.39807745344],sourceLine:221},{angle:357.273689,originX:2.032,originY:5.842,deltaX:-508.63316875916,deltaY:1.20815479432,dashes:[5.3400452,-528.66437425738],sourceLine:222},{angle:37.69424047,originX:7.366,originY:5.588,deltaX:-416.58997273292,deltaY:.91357450169,dashes:[7.0619366,-699.13115314247],sourceLine:223},{angle:72.25532837,originX:12.954,originY:9.906,deltaX:586.40373773403,deltaY:.96766293399,dashes:[6.6671952,-660.05256601905],sourceLine:224},{angle:121.42956562,originX:14.986,originY:16.256,deltaX:387.71230339293,deltaY:1.2040754753,dashes:[5.35813,-530.45545698712],sourceLine:225},{angle:175.2363583,originX:12.192,originY:20.828,deltaX:-280.5442400419,deltaY:2.10935518695,dashes:[6.1171328,-299.7393695],sourceLine:226},{angle:222.3974378,originX:6.096,originY:21.336,deltaX:413.48123885686,deltaY:.81554484621,dashes:[7.9107792,-783.16772512177],sourceLine:227},{angle:138.81407483,originX:25.4,originY:15.748,deltaX:234.164238558,deltaY:2.38943100688,dashes:[2.7000454,-267.30565824344],sourceLine:228},{angle:171.4692344,originX:23.368,originY:17.526,deltaX:-334.082478726,deltaY:1.25594916784,dashes:[5.1368198,-508.5463899704],sourceLine:229},{angle:225,originX:18.288,originY:18.288,deltaX:17.96051224214,deltaY:17.96051224214,dashes:[3.5920934,-32.32893108428],sourceLine:230},{angle:203.19859051,originX:16.51,originY:21.336,deltaX:-136.74251918,deltaY:3.33518339548,dashes:[1.9344132,-191.50622368894],sourceLine:231},{angle:291.80140949,originX:14.732,originY:20.574,deltaX:-80.18324702488,deltaY:4.71666158921,dashes:[2.7356562,-134.0475299],sourceLine:232},{angle:30.96375653,originX:15.748,originY:18.034,deltaX:91.47734531502,deltaY:4.35606406258,dashes:[4.4431966,-143.6629815291],sourceLine:233},{angle:161.56505118,originX:19.558,originY:20.32,deltaX:-56.2252967978,deltaY:8.03218525675,dashes:[3.2128714,-77.10898116828],sourceLine:234},{angle:16.389540334,originX:0,originY:20.574,deltaX:265.17991128726,deltaY:1.43340492604,dashes:[4.50088,-445.58826672539],sourceLine:235},{angle:70.34617594,originX:4.318,originY:21.844,deltaX:-297.29446803469,deltaY:1.70858889651,dashes:[3.7759894,-373.822156782],sourceLine:236},{angle:293.19859051,originX:19.558,originY:25.4,deltaX:-136.7425191801,deltaY:3.33518339548,dashes:[3.868801,-189.57183588894],sourceLine:237},{angle:343.61045967,originX:21.082,originY:21.844,deltaX:-265.17991128725,deltaY:1.433404926,dashes:[4.50088,-445.5882667254],sourceLine:238},{angle:339.44395478,originX:0,originY:4.826,deltaX:-136.75087638398,deltaY:2.97284513779,dashes:[4.340352,-212.67734313106],sourceLine:239},{angle:294.7751406,originX:4.064,originY:3.302,deltaX:-306.90424056705,deltaY:1.77401295215,dashes:[3.6367212,-360.0359338072],sourceLine:240},{angle:66.80140949,originX:19.812,originY:0,deltaX:136.74251918012,deltaY:3.33518339452,dashes:[3.868801,-189.57183588894],sourceLine:241},{angle:17.35402464,originX:21.336,originY:3.556,deltaX:-345.47402804977,deltaY:1.51523696536,dashes:[4.2578274,-421.523759802],sourceLine:242},{angle:69.44395478,originX:7.366,originY:0,deltaX:-136.75087638396,deltaY:2.97284513874,dashes:[2.170176,-214.84751913106],sourceLine:243},{angle:101.309932474,originX:18.288,originY:0,deltaX:104.60834648271,deltaY:4.98134983255,dashes:[1.295146,-128.21994964526],sourceLine:244},{angle:165.963756532,originX:18.034,originY:1.27,deltaX:-80.085263387,deltaY:6.16040487582,dashes:[5.236337,-99.49054589069],sourceLine:245},{angle:186.00900596,originX:12.954,originY:2.54,deltaX:-255.26337856879,deltaY:1.32949676118,dashes:[4.85267,-480.41364863337],sourceLine:246},{angle:303.69006753,originX:15.748,originY:15.748,deltaX:-56.35753993648,deltaY:7.0446924921,dashes:[3.6632388,-87.9177635968],sourceLine:247},{angle:353.15722659,originX:17.78,originY:12.7,deltaX:434.77679606606,deltaY:1.0087628707,dashes:[6.3955676,-633.16009065031],sourceLine:248},{angle:60.9453959,originX:24.13,originY:11.938,deltaX:-204.76648550216,deltaY:2.46706609031,dashes:[2.6150824,-258.8939231811],sourceLine:249},{angle:90,originX:25.4,originY:14.224,deltaX:25.4,deltaY:25.4,dashes:[1.524,-23.876],sourceLine:250},{angle:120.25643716,originX:12.446,originY:3.302,deltaX:-204.77318477297,deltaY:1.8283320086,dashes:[3.5286696,-349.339407732],sourceLine:251},{angle:48.0127875,originX:10.668,originY:6.35,deltaX:305.85067529778,deltaY:1.88796713138,dashes:[6.8344288,-334.88762199565],sourceLine:252},{angle:0,originX:15.24,originY:11.43,deltaX:25.4,deltaY:25.4,dashes:[6.604,-18.796],sourceLine:253},{angle:325.3048465,originX:21.844,originY:11.43,deltaX:310.04235091354,deltaY:-1.6064370526,dashes:[4.0160956,-397.5931672414],sourceLine:254},{angle:254.0546041,originX:25.146,originY:9.144,deltaX:104.6687497289,deltaY:3.48895832444,dashes:[3.6982908,-181.21650038772],sourceLine:255},{angle:207.64597536,originX:24.13,originY:5.588,deltaX:545.36007557253,deltaY:1.07143433066,dashes:[6.021451,-596.12464422938],sourceLine:256},{angle:175.42607874,originX:18.796,originY:2.794,deltaX:331.1739336186,deltaY:1.01276432357,dashes:[6.3702946,-630.6584645624],sourceLine:257}]},{name:"HEX",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:5.4992613154,dashes:[3.175,-6.35],sourceLine:259},{angle:120,originX:0,originY:0,deltaX:0,deltaY:5.4992613154,dashes:[3.175,-6.35],sourceLine:260},{angle:60,originX:3.175,originY:0,deltaX:0,deltaY:5.4992613154,dashes:[3.175,-6.35],sourceLine:261}]},{name:"HONEY",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:4.7625,deltaY:2.749630645,dashes:[3.175,-6.35],sourceLine:263},{angle:120,originX:0,originY:0,deltaX:4.7625,deltaY:2.749630645,dashes:[3.175,-6.35],sourceLine:264},{angle:60,originX:0,originY:0,deltaX:4.7625,deltaY:2.749630645,dashes:[-6.35,3.175],sourceLine:265}]},{name:"HOUND",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:6.35,deltaY:1.5875,dashes:[25.4,-12.7],sourceLine:267},{angle:90,originX:0,originY:0,deltaX:-6.35,deltaY:1.5875,dashes:[25.4,-12.7],sourceLine:268}]},{name:"INSUL",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:9.525,dashes:[],sourceLine:270},{angle:0,originX:0,originY:3.175,deltaX:0,deltaY:9.525,dashes:[3.175,-3.175],sourceLine:271},{angle:0,originX:0,originY:6.35,deltaX:0,deltaY:9.525,dashes:[3.175,-3.175],sourceLine:272}]},{name:"ACAD_ISO02W100",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:5,dashes:[12,-3],sourceLine:285}]},{name:"ACAD_ISO03W100",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:5,dashes:[12,-18],sourceLine:287}]},{name:"ACAD_ISO04W100",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:5,dashes:[24,-3,.5,-3],sourceLine:289}]},{name:"ACAD_ISO05W100",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:5,dashes:[24,-3,.5,-3,.5,-3],sourceLine:291}]},{name:"ACAD_ISO06W100",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:5,dashes:[24,-3,.5,-3,.5,-6.5],sourceLine:293},{angle:0,originX:0,originY:0,deltaX:0,deltaY:5,dashes:[-34,.5,-3],sourceLine:294}]},{name:"ACAD_ISO07W100",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:5,dashes:[.5,-3],sourceLine:296}]},{name:"ACAD_ISO08W100",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:5,dashes:[24,-3,6,-3],sourceLine:298}]},{name:"ACAD_ISO09W100",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:5,dashes:[24,-3,6,-3,6,-3],sourceLine:300}]},{name:"ACAD_ISO10W100",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:5,dashes:[12,-3,.5,-3],sourceLine:302}]},{name:"ACAD_ISO11W100",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:5,dashes:[12,-3,12,-3,.5,-3],sourceLine:304}]},{name:"ACAD_ISO12W100",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:5,dashes:[12,-3,.5,-3,.5,-3],sourceLine:306}]},{name:"ACAD_ISO13W100",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:5,dashes:[12,-3,12,-3,.5,-6.5],sourceLine:308},{angle:0,originX:0,originY:0,deltaX:0,deltaY:5,dashes:[-33.5,.5,-3],sourceLine:309}]},{name:"ACAD_ISO14W100",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:5,dashes:[12,-3,.5,-3,.5,-6.5],sourceLine:311},{angle:0,originX:0,originY:0,deltaX:0,deltaY:5,dashes:[-22,.5,-3],sourceLine:312}]},{name:"ACAD_ISO15W100",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:5,dashes:[12,-3,12,-3,.5,-10],sourceLine:314},{angle:0,originX:0,originY:0,deltaX:0,deltaY:5,dashes:[-33.5,.5,-3,.5,-3],sourceLine:315}]},{name:"JIS_LC_20",description:"",lines:[{angle:45,originX:0,originY:0,deltaX:0,deltaY:20,dashes:[],sourceLine:322},{angle:45,originX:.4,originY:0,deltaX:0,deltaY:20,dashes:[],sourceLine:323}]},{name:"JIS_LC_20A",description:"",lines:[{angle:45,originX:0,originY:0,deltaX:0,deltaY:20,dashes:[],sourceLine:325},{angle:45,originX:1,originY:0,deltaX:0,deltaY:20,dashes:[],sourceLine:326}]},{name:"JIS_LC_8",description:"",lines:[{angle:45,originX:0,originY:0,deltaX:0,deltaY:7.8,dashes:[],sourceLine:328},{angle:45,originX:.4,originY:0,deltaX:0,deltaY:7.8,dashes:[],sourceLine:329}]},{name:"JIS_LC_8A",description:"",lines:[{angle:45,originX:0,originY:0,deltaX:0,deltaY:7.8,dashes:[],sourceLine:331},{angle:45,originX:1,originY:0,deltaX:0,deltaY:7.8,dashes:[],sourceLine:332}]},{name:"JIS_RC_10",description:"",lines:[{angle:45,originX:0,originY:0,deltaX:0,deltaY:10,dashes:[],sourceLine:334},{angle:45,originX:.725,originY:0,deltaX:0,deltaY:10,dashes:[],sourceLine:335},{angle:45,originX:1.45,originY:0,deltaX:0,deltaY:10,dashes:[],sourceLine:336}]},{name:"JIS_RC_15",description:"",lines:[{angle:45,originX:0,originY:0,deltaX:0,deltaY:15,dashes:[],sourceLine:338},{angle:45,originX:.725,originY:0,deltaX:0,deltaY:15,dashes:[],sourceLine:339},{angle:45,originX:1.45,originY:0,deltaX:0,deltaY:15,dashes:[],sourceLine:340}]},{name:"JIS_RC_18",description:"",lines:[{angle:45,originX:0,originY:0,deltaX:0,deltaY:18,dashes:[],sourceLine:342},{angle:45,originX:1,originY:0,deltaX:0,deltaY:18,dashes:[],sourceLine:343},{angle:45,originX:2,originY:0,deltaX:0,deltaY:18,dashes:[],sourceLine:344}]},{name:"JIS_RC_30",description:"",lines:[{angle:45,originX:0,originY:0,deltaX:0,deltaY:30,dashes:[],sourceLine:346},{angle:45,originX:1,originY:0,deltaX:0,deltaY:30,dashes:[],sourceLine:347},{angle:45,originX:2,originY:0,deltaX:0,deltaY:30,dashes:[],sourceLine:348}]},{name:"JIS_STN_1E",description:"",lines:[{angle:45,originX:0,originY:0,deltaX:0,deltaY:1,dashes:[],sourceLine:350},{angle:45,originX:.705,originY:0,deltaX:0,deltaY:1,dashes:[1,-.5],sourceLine:351}]},{name:"JIS_STN_2.5",description:"",lines:[{angle:45,originX:0,originY:0,deltaX:0,deltaY:2.5,dashes:[],sourceLine:353},{angle:45,originX:1.765,originY:0,deltaX:0,deltaY:2.5,dashes:[1.2,-.5],sourceLine:354}]},{name:"JIS_WOOD",description:"",lines:[{angle:45,originX:0,originY:0,deltaX:0,deltaY:.70710678,dashes:[],sourceLine:356}]},{name:"LINE",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:3.175,dashes:[],sourceLine:359}]},{name:"MUDST",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:12.7,deltaY:6.35,dashes:[6.35,-6.35,0,-6.35,0,-6.35],sourceLine:361}]},{name:"NET",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:3.175,dashes:[],sourceLine:363},{angle:90,originX:0,originY:0,deltaX:0,deltaY:3.175,dashes:[],sourceLine:364}]},{name:"NET3",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:3.175,dashes:[],sourceLine:366},{angle:60,originX:0,originY:0,deltaX:0,deltaY:3.175,dashes:[],sourceLine:367},{angle:120,originX:0,originY:0,deltaX:0,deltaY:3.175,dashes:[],sourceLine:368}]},{name:"PLAST",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:6.35,dashes:[],sourceLine:370},{angle:0,originX:0,originY:.79375,deltaX:0,deltaY:6.35,dashes:[],sourceLine:371},{angle:0,originX:0,originY:1.5875,deltaX:0,deltaY:6.35,dashes:[],sourceLine:372}]},{name:"PLASTI",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:6.35,dashes:[],sourceLine:374},{angle:0,originX:0,originY:.79375,deltaX:0,deltaY:6.35,dashes:[],sourceLine:375},{angle:0,originX:0,originY:1.5875,deltaX:0,deltaY:6.35,dashes:[],sourceLine:376},{angle:0,originX:0,originY:3.96875,deltaX:0,deltaY:6.35,dashes:[],sourceLine:377}]},{name:"SACNCR",description:"",lines:[{angle:45,originX:0,originY:0,deltaX:0,deltaY:2.38125,dashes:[],sourceLine:379},{angle:45,originX:1.6838,originY:0,deltaX:0,deltaY:2.38125,dashes:[0,-2.38125],sourceLine:380}]},{name:"SQUARE",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:3.175,dashes:[3.175,-3.175],sourceLine:382},{angle:90,originX:0,originY:0,deltaX:0,deltaY:3.175,dashes:[3.175,-3.175],sourceLine:383}]},{name:"STARS",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:5.4992613154,dashes:[3.175,-3.175],sourceLine:385},{angle:60,originX:0,originY:0,deltaX:0,deltaY:5.4992613154,dashes:[3.175,-3.175],sourceLine:386},{angle:120,originX:1.5875,originY:2.7496306704,deltaX:0,deltaY:5.4992613154,dashes:[3.175,-3.175],sourceLine:387}]},{name:"STEEL",description:"",lines:[{angle:45,originX:0,originY:0,deltaX:0,deltaY:3.175,dashes:[],sourceLine:389},{angle:45,originX:0,originY:1.5875,deltaX:0,deltaY:3.175,dashes:[],sourceLine:390}]},{name:"SWAMP",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:12.7,deltaY:21.9970452362,dashes:[3.175,-22.225],sourceLine:392},{angle:90,originX:1.5875,originY:0,deltaX:21.9970452362,deltaY:12.7,dashes:[1.5875,-42.4065904724],sourceLine:393},{angle:90,originX:1.984375,originY:0,deltaX:21.9970452362,deltaY:12.7,dashes:[1.27,-42.7240904724],sourceLine:394},{angle:90,originX:1.190625,originY:0,deltaX:21.9970452362,deltaY:12.7,dashes:[1.27,-42.7240904724],sourceLine:395},{angle:60,originX:2.38125,originY:0,deltaX:12.7,deltaY:21.9970452362,dashes:[1.016,-24.384],sourceLine:396},{angle:120,originX:.79375,originY:0,deltaX:12.7,deltaY:21.9970452362,dashes:[1.016,-24.384],sourceLine:397}]},{name:"TRANS",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:0,deltaY:6.35,dashes:[],sourceLine:399},{angle:0,originX:0,originY:3.175,deltaX:0,deltaY:6.35,dashes:[3.175,-3.175],sourceLine:400}]},{name:"TRIANG",description:"",lines:[{angle:60,originX:0,originY:0,deltaX:4.7625,deltaY:8.2488919604,dashes:[4.7625,-4.7625],sourceLine:402},{angle:120,originX:0,originY:0,deltaX:4.7625,deltaY:8.2488919604,dashes:[4.7625,-4.7625],sourceLine:403},{angle:0,originX:-2.38125,originY:4.1244459802,deltaX:4.7625,deltaY:8.2488919604,dashes:[4.7625,-4.7625],sourceLine:404}]},{name:"ZIGZAG",description:"",lines:[{angle:0,originX:0,originY:0,deltaX:3.175,deltaY:3.175,dashes:[3.175,-3.175],sourceLine:406},{angle:90,originX:3.175,originY:0,deltaX:3.175,deltaY:3.175,dashes:[3.175,-3.175],sourceLine:407}]}],issues:[]},$n=class $n extends ft{constructor(){super(...arguments),this._visibility=!0,this._transparency=new U,this._transparencySet=!1}get type(){return this.constructor.typeName}get layer(){return this._layer==null&&(this._layer=this.database.clayer??"0"),this._layer}set layer(t){this._layer=t}get color(){return this.getEntityColor()}set color(t){this.setEntityColor(t)}get resolvedColor(){var e;let t=this.color;if(t.isByLayer){const n=this.getLayerColor();n&&n.RGB!=null&&(t=n)}else if(t.isByBlock){const n=this.database.cecolor;if(n&&(t=n,t.isByLayer)){const r=this.database.clayer||this.layer,s=this.database.tables.layerTable.getAt(r);((e=s==null?void 0:s.color)==null?void 0:e.RGB)!=null&&(t=s.color)}}return t}get rgbColor(){const e=this.resolvedColor.RGB;return e??16777215}get lineType(){var t;return this._lineType==null&&(this._lineType=((t=this.database)==null?void 0:t.celtype)??tt),this._lineType}set lineType(t){t?t.toUpperCase()==="BYLAYER"?this._lineType=tt:t.toUpperCase()==="BYBLOCK"?this._lineType=Ot:this._lineType=t:this._lineType=tt}get lineWeight(){return this._lineWeight==null&&(this._lineWeight=this.database.celweight??exports.AcGiLineWeight.ByLayer),this._lineWeight}set lineWeight(t){this._lineWeight=t}get linetypeScale(){return this._linetypeScale==null&&(this._linetypeScale=this.database.celtscale??-1),this._linetypeScale}set linetypeScale(t){this._linetypeScale=t}get visibility(){return this._visibility}set visibility(t){this._visibility=t}get transparency(){return this._transparency}set transparency(t){this._transparency=t.clone(),this._transparencySet=!0}hasExplicitLayer(){return this._layer!=null}hasExplicitColor(){return this._color!=null}getEntityColor(){return this._color==null&&(this._color=new k,this.database.cecolor&&this._color.copy(this.database.cecolor)),this._color}setEntityColor(t){this._color==null&&(this._color=new k),this._color.copy(t)}shouldResolveColorFromCecolor(){return!0}hasExplicitTransparency(){return this._transparencySet}dxfOutFields(t){t.writeSubclassMarker("AcDbEntity"),t.writeString(8,this.layer),t.writeString(6,this.lineType),t.writeDouble(48,this.linetypeScale),t.writeInt16(60,this.visibility?0:1),t.writeCmColor(this.color),t.writeInt16(370,this.lineWeight),t.writeTransparency(this.transparency);const e=this.database.tables.blockTable.getIdAt(this.ownerId);return e!=null&&e.isPaperSapce&&t.writeInt16(67,1),this}resolveEffectiveProperties(){this._layer==null&&(this._layer=this.database.clayer??"0"),this._color==null&&this.shouldResolveColorFromCecolor()&&(this._color=new k,this.database.cecolor&&this._color.copy(this.database.cecolor)),this._lineType==null&&(this._lineType=this.database.celtype??tt),this._linetypeScale==null&&(this._linetypeScale=this.database.celtscale??-1),this._lineWeight==null&&(this._lineWeight=this.database.celweight??exports.AcGiLineWeight.ByLayer)}get properties(){return{type:this.type,groups:[this.getGeneralProperties()]}}subGetGripPoints(){return new Array}subGetOsnapPoints(t,e,n,r,s,o){}transformBy(t){return this}erase(){return this.database.tables.blockTable.removeEntity(this.objectId)}worldDraw(t,e){if(!this.database.isLayerDrawable(this.layer))return;const n=t.subEntityTraits;n.color=this.resolvedColor,n.rgbColor=this.rgbColor,n.lineType=this.lineStyle,n.lineTypeScale=this.linetypeScale,n.lineWeight=this.lineWeight,n.transparency=this.transparency,n.layer=this.layer,n.drawOrder=0,"thickness"in this&&(n.thickness=this.thickness);const r=this.subWorldDraw(t,e);return this.attachEntityInfo(r),r}triggerModifiedEvent(){this.database.events.entityModified.dispatch({database:this.database,entity:this})}getGeneralProperties(){return{groupName:"general",properties:[{name:"handle",type:"int",editable:!1,accessor:{get:()=>this.objectId}},{name:"color",type:"color",editable:!0,accessor:{get:()=>this.color,set:t=>{this.color=t}}},{name:"layer",type:"string",editable:!0,accessor:{get:()=>this.layer,set:t=>{this.layer=t}}},{name:"linetype",type:"linetype",editable:!0,accessor:{get:()=>this.lineType,set:t=>{this.lineType=t}}},{name:"linetypeScale",type:"float",editable:!0,accessor:{get:()=>this.linetypeScale,set:t=>{this.linetypeScale=t}}},{name:"lineWeight",type:"lineweight",editable:!0,accessor:{get:()=>this.lineWeight,set:t=>{this.lineWeight=t}}},{name:"transparency",type:"transparency",editable:!0,accessor:{get:()=>this.transparency,set:t=>{this.transparency=t}}}]}}get lineStyle(){var r;const{type:t,name:e}=this.getLineType(),n=(r=this.database)==null?void 0:r.tables.linetypeTable.getAt(e);return n?{type:t,...n.linetype}:{type:t,name:e,standardFlag:0,description:"",totalPatternLength:0}}getLineType(){if(this.lineType==tt){const t=this.database.tables.layerTable.getAt(this.layer);if(t&&t.linetype)return{type:"ByLayer",name:t.linetype}}else return this.lineType==Ot?{type:"ByBlock",name:Xt}:{type:"UserSpecified",name:this.lineType};return{type:"UserSpecified",name:Xt}}getLayerColor(){const t=this.database.tables.layerTable.getAt(this.layer);return t!=null?t.color:null}attachEntityInfo(t){t&&(t.objectId=this.objectId,this.attrs.has("ownerId")&&(t.ownerId=this.ownerId),t.layerName=this.layer,t.visible=this.visibility)}};$n.typeName="Entity";let $=$n;function Dr(i,t){const e=i.x-t.x,n=i.y-t.y,r=(i.z||0)-(t.z||0);return e*e+n*n+r*r}function ht(i,t){if(t.length===0)return;let e=new _(t[0].x,t[0].y,t[0].z||0),n=Dr(i,e);for(let r=1;r<t.length;r++){const s=t[r],o=new _(s.x,s.y,s.z||0),a=Dr(i,o);a<n&&(e=o,n=a)}return e}function ue(i,t,e,n,r){const s=new _(i.x,i.y,i.z||0),o=new _(t.x,t.y,t.z||0),a=new xt(s,o);switch(e){case b.EndPoint:r.push(s,o);break;case b.MidPoint:r.push(a.midPoint);break;case b.Nearest:r.push(a.nearestPoint(n));break;case b.Perpendicular:r.push(a.perpPoint(n));break}}function qe(i,t,e,n,r,s,o){if(e){const a=new pt(i,t,e);switch(r){case b.EndPoint:o.push(new _(a.startPoint.x,a.startPoint.y,n),new _(a.endPoint.x,a.endPoint.y,n));break;case b.MidPoint:o.push(new _(a.midPoint.x,a.midPoint.y,n));break;case b.Nearest:{const h=a.nearestPoint({x:s.x,y:s.y});o.push(new _(h.x,h.y,n));break}case b.Perpendicular:{a.perpendicularPoints({x:s.x,y:s.y}).forEach(l=>o.push(new _(l.x,l.y,n)));break}case b.Tangent:{a.tangentPoints({x:s.x,y:s.y}).forEach(l=>o.push(new _(l.x,l.y,n)));break}}return}ue(new _(i.x,i.y,n),new _(t.x,t.y,n),r,s,o)}function zn(i,t,e,n,r){if(i.length!==0)switch(e){case b.EndPoint:i.forEach(s=>r.push(new _(s.x,s.y,s.z||0)));break;case b.MidPoint:case b.Nearest:case b.Perpendicular:{const s=i.length,o=[];for(let a=0;a<s;a++){const h=[];ue(i[a],i[(a+1)%i.length],e,n,h),o.push(...h)}if(e===b.MidPoint)r.push(...o);else{const a=ht(n,o);a&&r.push(a)}break}}}var we=(i=>(i[i.UserDefined=0]="UserDefined",i[i.Predefined=1]="Predefined",i[i.Custom=2]="Custom",i))(we||{}),Ao=(i=>(i[i.Normal=0]="Normal",i[i.Outer=1]="Outer",i[i.Ignore=2]="Ignore",i))(Ao||{}),So=(i=>(i[i.HatchObject=0]="HatchObject",i[i.GradientObject=1]="GradientObject",i))(So||{}),Lo=(i=>(i[i.PreDefinedGradient=0]="PreDefinedGradient",i[i.UserDefinedGradient=1]="UserDefinedGradient",i))(Lo||{});const qn=class qn extends ${constructor(){super(),this._gradientAngle=0,this._elevation=0,this._geo=new Bt,this._isSolidFill=!1,this._definitionLines=[],this._definitionLinesAutoGenerated=!1,this._definitionLinesPatternName="",this._definitionLinesPatternScale=1,this._patternName="",this._patternNameSet=!1,this._patternType=1,this._patternAngle=0,this._patternAngleSet=!1,this._patternScale=1,this._patternScaleSet=!1,this._associative=!1,this._associativeSet=!1,this._backgroundColor=void 0,this._backgroundColorSet=!1,this._patternDouble=!1,this._patternDoubleSet=!1,this._hatchStyle=0,this._hatchStyleSet=!1,this._hatchObjectType=0,this._gradientAngle=0,this._gradientShift=0,this._shadeTintValue=0,this._gradientStartColor=void 0,this._gradientEndColor=void 0,this._gradientType=0,this._gradientName="",this._gradientOneColorMode=!1}get dxfTypeName(){return"HATCH"}get isGradient(){return this._hatchObjectType===1}get isHatch(){return this._hatchObjectType===0}get isSolidFill(){return this._isSolidFill||this.getEffectivePatternName().trim().toUpperCase()===Gt}set isSolidFill(t){this._isSolidFill=t}get color(){if(this.hasExplicitColor())return this.getEntityColor();const t=this.database,e=gt.instance().getVar(v.HPCOLOR,t);return e instanceof k&&e.colorMethod!==exports.AcCmColorMethod.None?e.clone():t.cecolor.clone()}set color(t){this.setEntityColor(t)}get definitionLines(){return this._definitionLines}get patternName(){return this._patternName}set patternName(t){this._patternName=t??"",this._isSolidFill=this._patternName.trim().toUpperCase()===Gt,this._patternNameSet=!0,this.updatePredefinedPatternDefinitionLines()}get patternType(){return this._patternType}set patternType(t){this._patternType=t,t!==1&&this._definitionLinesAutoGenerated&&(this._definitionLines=[],this._definitionLinesAutoGenerated=!1,this._definitionLinesPatternName="",this._definitionLinesPatternScale=1),this.updatePredefinedPatternDefinitionLines()}get patternAngle(){return this._patternAngle}set patternAngle(t){this._patternAngle=t,this._patternAngleSet=!0}get patternScale(){return this._patternScale}set patternScale(t){this._patternScale=t,this._patternScaleSet=!0,this.updatePredefinedPatternDefinitionLines()}get associative(){return this._associative}set associative(t){this._associative=!!t,this._associativeSet=!0}get backgroundColor(){return this._backgroundColor}set backgroundColor(t){this._backgroundColor=t==null?void 0:t.clone(),this._backgroundColorSet=!0}get patternDouble(){return this._patternDouble}set patternDouble(t){this._patternDouble=!!t,this._patternDoubleSet=!0}get hatchStyle(){return this._hatchStyle}set hatchStyle(t){this._hatchStyle=t,this._hatchStyleSet=!0}get elevation(){return this._elevation}set elevation(t){this._elevation=t}get hatchObjectType(){return this._hatchObjectType}set hatchObjectType(t){this._hatchObjectType=t}get gradientAngle(){return this._gradientAngle}set gradientAngle(t){this._gradientAngle=t}get gradientShift(){return this._gradientShift}set gradientShift(t){this._gradientShift=t}get gradientType(){return this._gradientType}set gradientType(t){this._gradientType=t}get gradientName(){return this.isGradient&&this._gradientName.trim()===""?ho:this._gradientName}set gradientName(t){this._gradientName=t??""}get gradientOneColorMode(){return this._gradientOneColorMode}set gradientOneColorMode(t){this._gradientOneColorMode=t}get shadeTintValue(){return this._shadeTintValue}set shadeTintValue(t){this._shadeTintValue=t}get gradientStartColor(){return this._gradientStartColor}set gradientStartColor(t){this._gradientStartColor=t==null||!Number.isFinite(t)?void 0:t&16777215}get gradientEndColor(){return this._gradientEndColor}set gradientEndColor(t){this._gradientEndColor=t==null||!Number.isFinite(t)?void 0:t&16777215}applyPatternDefaultsFromSysVars(t){const e=gt.instance();if(!this.hasExplicitLayer()){const n=e.getVar(v.HPLAYER,t);this.shouldUseSysVarOverride(n)&&(this.layer=n)}if(!this.hasExplicitTransparency()){const n=this.parseHpTransparency(e.getVar(v.HPTRANSPARENCY,t));n&&(this.transparency=n)}if(this._backgroundColorSet||(this._backgroundColor=this.parseHpBackgroundColor(e.getVar(v.HPBACKGROUNDCOLOR,t)),this._backgroundColorSet=!0),!this._patternNameSet){const n=e.getVar(v.HPNAME,t);this._patternName=typeof n=="string"?n:"",this._patternNameSet=!0}if(!this._patternAngleSet){const n=e.getVar(v.HPANG,t);this._patternAngle=typeof n=="number"&&Number.isFinite(n)?n:0,this._patternAngleSet=!0}if(this._patternScaleSet||(this._patternScale=this.normalizePatternScale(e.getVar(v.HPSCALE,t)),this._patternScaleSet=!0),!this._associativeSet){const n=e.getVar(v.HPASSOC,t);this._associative=typeof n=="number"?n!==0:!1,this._associativeSet=!0}if(this._hatchStyleSet||(this._hatchStyle=this.normalizeHatchStyle(e.getVar(v.HPISLANDDETECTION,t)),this._hatchStyleSet=!0),!this._patternDoubleSet){const n=e.getVar(v.HPDOUBLE,t);this._patternDouble=typeof n=="number"?n!==0:!1,this._patternDoubleSet=!0}this.updatePredefinedPatternDefinitionLines()}getEffectivePatternName(){if(this._patternNameSet)return this._patternName;const t=this.database,e=gt.instance().getVar(v.HPNAME,t);return typeof e=="string"?e:this._patternName}shouldResolveColorFromCecolor(){return!1}getEffectivePatternAngle(){if(this._patternAngleSet)return this._patternAngle;const t=this.database,e=gt.instance().getVar(v.HPANG,t);return typeof e=="number"&&Number.isFinite(e)?e:this._patternAngle}getRenderablePatternAngle(){return!this._definitionLinesAutoGenerated&&this._definitionLines.length>0?0:this.getEffectivePatternAngle()}getEffectivePatternScale(){if(this._patternScaleSet)return this._patternScale;const t=this.database;return this.normalizePatternScale(gt.instance().getVar(v.HPSCALE,t))}getEffectiveAssociative(){if(this._associativeSet)return this._associative;const t=this.database,e=gt.instance().getVar(v.HPASSOC,t);return typeof e=="number"?e!==0:this._associative}normalizePatternScale(t){return typeof t=="number"&&Number.isFinite(t)&&t>0?t:1}normalizeHatchStyle(t){return typeof t!="number"||!Number.isFinite(t)?1:t===0?0:t===2?2:1}shouldUseSysVarOverride(t){if(typeof t!="string")return!1;const e=t.trim().toLowerCase();return e!==""&&e!=="."&&e!=="use current"}parseHpBackgroundColor(t){if(t instanceof k)return t.colorMethod===exports.AcCmColorMethod.None?void 0:t.clone();if(typeof t!="string")return;const e=t.trim().toLowerCase();if(!(!e||e==="."||e==="none"))return k.fromString(t)}parseHpTransparency(t){if(t instanceof U)return t.clone();if(!this.shouldUseSysVarOverride(t))return;const e=t.trim();if(/^bylayer$/i.test(e)||/^byblock$/i.test(e))return U.fromString(e);const n=Number(e);if(Number.isInteger(n)&&n>=0&&n<=90){const r=new U;return r.percentage=n,r}}updatePredefinedPatternDefinitionLines(t=this.getEffectivePatternName(),e=this.getEffectivePatternScale()){if(this.patternType!==1||!(this._definitionLinesAutoGenerated||this._definitionLines.length===0))return;const r=t.trim().toUpperCase();if(!r||r===Gt){this._definitionLines=[],this._definitionLinesAutoGenerated=!1,this._definitionLinesPatternName="",this._definitionLinesPatternScale=1;return}const s=this.normalizePatternScale(e);if(this._definitionLinesAutoGenerated&&this._definitionLinesPatternName===r&&this._definitionLinesPatternScale===s)return;const o=Po.patterns.find(a=>a.name.trim().toUpperCase()===r);if(!o){this._definitionLinesAutoGenerated&&(this._definitionLines=[],this._definitionLinesAutoGenerated=!1,this._definitionLinesPatternName="",this._definitionLinesPatternScale=1);return}this._definitionLines=o.lines.map(a=>({angle:a.angle*Math.PI/180,base:{x:a.originX*s,y:a.originY*s},offset:{x:a.deltaX*s,y:a.deltaY*s},dashLengths:a.dashes.map(h=>h*s)})),this._definitionLinesAutoGenerated=!0,this._definitionLinesPatternName=r,this._definitionLinesPatternScale=s}add(t){this._geo.add(t)}buildAreasFromLoops(){const t=this._geo.loops;if(t.length===0)return[];if(t.length===1)return[this._geo];const e=this._geo.buildHierarchy(),n=[],r=(s,o)=>{if(s.index>=0&&o%2===0){const a=new Bt;a.add(t[s.index]),s.children.forEach(h=>{h.index>=0&&a.add(t[h.index])}),n.push(a)}s.children.forEach(a=>r(a,o+1))};return e.children.forEach(s=>r(s,0)),n.length>0?n:[this._geo]}getCalculatedAreaValue(){const t=this.buildAreasFromLoops();return t.length===0?0:t.reduce((e,n)=>e+n.area,0)}get area(){return this.getCalculatedAreaValue()}get geometricExtents(){const t=this.buildAreasFromLoops();if(t.length===0)return new C;const e=new C;return t.forEach(n=>{const r=n.box;e.union(new C({x:r.min.x,y:r.min.y,z:this._elevation},{x:r.max.x,y:r.max.y,z:this._elevation}))}),e}get properties(){return{type:this.type,groups:[this.getGeneralProperties(),{groupName:"pattern",properties:[{name:"patternType",type:"enum",editable:!0,options:[{label:we[0],value:0},{label:we[1],value:1},{label:we[2],value:2}],accessor:{get:()=>this.patternType,set:t=>{this.patternType=t}}},{name:"patternName",type:"string",editable:!0,accessor:{get:()=>this.patternName,set:t=>{this.patternName=t}}},{name:"patternAngle",type:"float",editable:!0,accessor:{get:()=>this.patternAngle,set:t=>{this.patternAngle=t}}},{name:"patternScale",type:"float",editable:!0,accessor:{get:()=>this.patternScale,set:t=>{this.patternScale=t}}},{name:"associative",type:"boolean",editable:!0,accessor:{get:()=>this.associative,set:t=>{this.associative=t}}},{name:"backgroundColor",type:"color",editable:!0,accessor:{get:()=>this.backgroundColor,set:t=>{this.backgroundColor=t}}},{name:"patternDouble",type:"boolean",editable:!0,accessor:{get:()=>this.patternDouble,set:t=>{this.patternDouble=t}}}]},{groupName:"geometry",properties:[{name:"elevation",type:"float",editable:!0,accessor:{get:()=>this.elevation,set:t=>{this.elevation=t}}},{name:"area",type:"float",editable:!1,accessor:{get:()=>this.area}}]}]}}subGetOsnapPoints(t,e,n,r){const s=this._elevation,o=[];if(this._geo.loops.forEach(a=>{var h;if(a instanceof H){const l=a,c=l.numberOfVertices;if(c===0)return;switch(t){case b.EndPoint:for(let u=0;u<c;u++){const g=l.getPointAt(u);r.push(new _(g.x,g.y,s))}break;case b.MidPoint:case b.Nearest:case b.Perpendicular:case b.Tangent:{const u=a.closed?c:c-1;for(let g=0;g<u;g++){const d=[];qe(l.getPointAt(g),l.getPointAt((g+1)%c),(h=l.vertices[g])==null?void 0:h.bulge,s,t,e,d),t===b.MidPoint?r.push(...d):o.push(...d)}break}}return}a.curves.forEach(l=>{if(l instanceof kt){const c=[];qe(l.startPoint,l.endPoint,void 0,s,t,e,c),t===b.MidPoint?r.push(...c):t===b.Nearest||t===b.Perpendicular||t===b.Tangent?o.push(...c):r.push(...c)}else if(l instanceof pt)switch(t){case b.EndPoint:r.push(new _(l.startPoint.x,l.startPoint.y,s),new _(l.endPoint.x,l.endPoint.y,s));break;case b.MidPoint:r.push(new _(l.midPoint.x,l.midPoint.y,s));break;case b.Nearest:{const c=l.nearestPoint({x:e.x,y:e.y});o.push(new _(c.x,c.y,s));break}case b.Perpendicular:{l.perpendicularPoints({x:e.x,y:e.y}).forEach(u=>o.push(new _(u.x,u.y,s)));break}case b.Tangent:{l.tangentPoints({x:e.x,y:e.y}).forEach(u=>o.push(new _(u.x,u.y,s)));break}}else if(l instanceof Pe)switch(t){case b.EndPoint:r.push(new _(l.startPoint.x,l.startPoint.y,s),new _(l.endPoint.x,l.endPoint.y,s));break;case b.MidPoint:{const c=l.getPoint(.5);r.push(new _(c.x,c.y,s));break}case b.Nearest:{const c=l.nearestPoint({x:e.x,y:e.y});o.push(new _(c.x,c.y,s));break}case b.Perpendicular:{l.perpendicularPoints({x:e.x,y:e.y}).forEach(u=>o.push(new _(u.x,u.y,s)));break}case b.Tangent:{l.tangentPoints({x:e.x,y:e.y}).forEach(u=>o.push(new _(u.x,u.y,s)));break}}})}),(t===b.Nearest||t===b.Perpendicular||t===b.Tangent)&&o.length>0){const a=ht(e,o);r.length=0,a&&r.push(a)}}subWorldDraw(t){var s;this.updatePredefinedPatternDefinitionLines();const e=t.subEntityTraits;e.fillType={solidFill:this.isSolidFill,patternAngle:this.getRenderablePatternAngle(),definitionLines:this.definitionLines,backgroundColor:(s=this.backgroundColor)==null?void 0:s.clone(),gradient:this.isGradient?{name:this.gradientName,angle:this.gradientAngle,shift:this.gradientShift,oneColorMode:this.gradientOneColorMode,shadeTintValue:this.shadeTintValue,startColor:this.gradientStartColor,endColor:this.gradientEndColor}:void 0},e.drawOrder=-1;const n=this.buildAreasFromLoops();if(n.length===0)return t.area(this._geo);if(n.length===1)return t.area(n[0]);const r=n.map(o=>t.area(o));return t.group(r)}transformBy(t){const e=t.elements,n=new Me(e[0],e[4],e[12],e[1],e[5],e[13],0,0,1);this._geo.transform(n),this._elevation=new _(0,0,this._elevation).applyMatrix4(t).z;const r=new _(1,0,0).applyMatrix4(t),s=new _().applyMatrix4(t),o=new _(r).sub(s);if(o.length()>0){const a=Math.atan2(o.y,o.x);this._patternAngle=this.getEffectivePatternAngle()+a,this._gradientAngle+=a,this._patternScale=this.getEffectivePatternScale()*o.length(),this._patternAngleSet=!0,this._patternScaleSet=!0,this.updatePredefinedPatternDefinitionLines()}return this}dxfOutFields(t){super.dxfOutFields(t);const e=this._geo.loops,n=this.getEffectivePatternName(),r=this.getEffectivePatternAngle(),s=this.getEffectivePatternScale();return this.updatePredefinedPatternDefinitionLines(n,s),t.writeSubclassMarker("AcDbHatch"),t.writePoint3d(10,{x:0,y:0,z:this.elevation}),t.writeVector3d(210,{x:0,y:0,z:1}),t.writeString(2,n||(this.isSolidFill?Gt:lo)),t.writeInt16(70,this.isSolidFill?1:0),t.writeInt16(71,this.getEffectiveAssociative()?1:0),t.writeInt16(91,e.length),e.forEach((o,a)=>{const h=a===0;if(o instanceof H){const l=o.vertices,c=l.some(g=>(g.bulge??0)!==0);t.writeInt16(92,2),t.writeInt16(72,c?1:0),t.writeInt16(73,o.closed?1:0),t.writeInt16(93,l.length);for(const g of l)t.writePoint2d(10,g),c&&t.writeDouble(42,g.bulge??0);t.writeInt16(97,0);return}if(o instanceof Xn){const l=h?1:0;t.writeInt16(92,l),t.writeInt16(93,o.numberOfEdges);for(const c of o.curves){if(c instanceof kt){t.writeInt16(72,1),t.writePoint2d(10,c.startPoint),t.writePoint2d(11,c.endPoint);continue}if(c instanceof pt){t.writeInt16(72,2),t.writePoint2d(10,c.center),t.writeDouble(40,c.radius),t.writeAngle(50,c.startAngle),t.writeAngle(51,c.endAngle),t.writeInt16(73,c.clockwise?0:1);continue}if(c instanceof Pe){t.writeInt16(72,3),t.writePoint2d(10,c.center);const u=new P(c.majorAxisRadius*Math.cos(c.rotation),c.majorAxisRadius*Math.sin(c.rotation));t.writePoint2d(11,u);const g=c.majorAxisRadius===0?0:c.minorAxisRadius/c.majorAxisRadius;t.writeDouble(40,g),t.writeAngle(50,c.startAngle),t.writeAngle(51,c.endAngle),t.writeInt16(73,c.clockwise?0:1);continue}if(c instanceof Yt){const u=c.knots,g=c.controlPoints,d=c.weights,p=c.fitPoints,f=d.some(y=>y!==1);t.writeInt16(72,4),t.writeInt16(94,c.degree),t.writeInt16(73,f?1:0),t.writeInt16(74,c.closed?1:0),t.writeInt16(95,u.length),t.writeInt16(96,g.length),u.forEach(y=>t.writeDouble(40,y)),g.forEach((y,m)=>{t.writePoint2d(10,y),f&&t.writeDouble(42,d[m]??1)}),t.writeInt16(97,(p==null?void 0:p.length)??0),p==null||p.forEach(y=>t.writePoint2d(11,y))}}t.writeInt16(97,0)}}),t.writeInt16(75,this.hatchStyle),t.writeInt16(76,this.patternType),t.writeAngle(52,r),t.writeDouble(41,s),t.writeInt16(77,0),t.writeInt16(78,this.definitionLines.length),this.definitionLines.forEach(o=>{t.writeAngle(53,o.angle),t.writePoint2d(43,o.base),t.writePoint2d(45,o.offset),t.writeInt16(79,o.dashLengths.length),o.dashLengths.forEach(a=>t.writeDouble(49,a))}),this.isGradient&&(t.writeInt16(450,this._hatchObjectType),t.writeInt16(451,0),t.writeInt16(452,this._gradientOneColorMode?1:0),t.writeAngle(460,this._gradientAngle),t.writeDouble(461,this._gradientShift),t.writeString(470,this.gradientName)),t.writeInt16(98,0),this}};qn.typeName="Hatch";let Ze=qn;class Eo{constructor(t){this.db=t}createDefaultLayer(){const t=new k;return t.colorIndex=7,this.db.tables.layerTable.add(new Bn({name:"0",standardFlags:0,linetype:"Continuous",lineWeight:0,isOff:!1,color:t,isPlottable:!0}))}createDefaultLineType(){this.db.tables.linetypeTable.add(new Ht({name:"ByBlock",standardFlag:0,description:"",totalPatternLength:0})),this.db.tables.linetypeTable.add(new Ht({name:"ByLayer",standardFlag:0,description:"",totalPatternLength:0})),this.db.tables.linetypeTable.add(new Ht({name:"Continuous",standardFlag:0,description:"Solid line",totalPatternLength:0}))}createDefaultTextStyle(){this.db.tables.textStyleTable.add(new Rn({name:K,standardFlag:0,fixedTextHeight:0,widthFactor:1,obliqueAngle:0,textGenerationFlag:0,lastHeight:.2,font:"SimKai",bigFont:"",extendedFont:"SimKai"}))}createDefaultDimStyle(){this.db.tables.dimStyleTable.add(new le({name:K,dimtxsty:K}))}createDefaultLayout(){const t=new fi;t.layoutName="Model",t.tabOrder=0,t.blockTableRecordId=this.db.tables.blockTable.modelSpace.objectId,t.limits.min.copy({x:0,y:0}),t.limits.max.copy({x:1e6,y:1e6}),t.extents.min.copy({x:0,y:0,z:0}),t.extents.max.copy({x:1e6,y:1e6,z:0}),this.db.objects.layout.setAt(t.layoutName,t),this.db.tables.blockTable.modelSpace.layoutId=t.objectId}createArrowBlock(){if(!this.db.tables.blockTable.getAt("_CAXARROW")){const e=new Ze;e.patternName=Gt;const n=new Xn;n.add(new kt({x:0,y:0},{x:-1,y:.125})),n.add(new kt({x:-1,y:.125},{x:-1,y:-.125})),n.add(new kt({x:-1,y:-.125},{x:0,y:0})),e.add(n);const r=new Q;r.name="_CAXARROW",r.appendEntity(e),this.db.tables.blockTable.add(r)}}}const Vi=Math.PI/200;class Mo{constructor(t){this.database=t}formatLength(t,e){const n=this.createContext(e);return Zt(t,n)}formatPoint2d(t,e){const n=this.createContext(e);return`${Zt(t.x,n)}, ${Zt(t.y,n)}`}formatPoint3d(t,e){const n=this.createContext(e);return`${Zt(t.x,n)}, ${Zt(t.y,n)}, ${Zt(t.z,n)}`}formatAngle(t,e){const n=this.createContext(e),s=(e==null?void 0:e.applyAngbaseAngdir)??!0?Mh(t,this.database.angbase,this.database.angdir):E.normalizeAngle(t);return Eh(s,n)}createContext(t){return{lunits:this.database.lunits,luprec:Se(this.database.luprec),insunits:this.database.insunits,unitmode:this.database.unitmode,measurement:this.database.measurement,aunits:this.database.aunits,auprec:Se(this.database.auprec),showUnits:(t==null?void 0:t.showUnits)??!1,showApproximate:(t==null?void 0:t.showApproximate)??!1}}}function Zt(i,t){let e;switch(t.lunits){case G.Scientific:e=Mi(Bh(i,t.luprec),t);break;case G.Engineering:e=Rh(i,t);break;case G.Architectural:e=zh(i,t);break;case G.Fractional:e=Mi(Fh(i,t),t);break;case G.WindowsDesktop:case G.Decimal:default:e=Mi(ge(i,t.luprec),t)}return Io(e,Ih(i,t),t)}function Eh(i,t){let e;switch(t.aunits){case rt.DegreesMinutesSeconds:e=Oo(i,t);break;case rt.Gradians:e=Gh(i,t);break;case rt.Radians:e=jh(i,t);break;case rt.SurveyorsUnits:e=Hh(i,t);break;case rt.DecimalDegrees:default:e=Vh(i,t)}return Io(e,Th(i,t),t)}function Mh(i,t,e){let n=i-t;return e===1&&(n=-n),E.normalizeAngle(n)}function Fn(i){const t=i.showUnits?'"':"";return i.unitmode===1?{feetInchSeparator:"",fractionSeparator:"-",inchSuffix:t}:{feetInchSeparator:"-",fractionSeparator:" ",inchSuffix:t}}function Se(i,t=0,e=8){return Number.isFinite(i)?Math.max(t,Math.min(e,Math.round(i))):t}function de(i){return Object.is(i,-0)?0:i}function Io(i,t,e){return!e.showApproximate||!t?i:`~ ${i}`}function Ih(i,t){if(!Number.isFinite(i))return!1;const e=Oh(i,t);return Vn(i,e)}function Th(i,t){if(!Number.isFinite(i))return!1;if(t.aunits===rt.SurveyorsUnits)return Ch(i,t.auprec);const e=kh(i,t);return Vn(i,e)}function Ch(i,t){const n=((90-E.radToDeg(i))%360+360)%360,r=ko(n),s=Math.min(Math.abs(n-r.base),Math.abs(r.base+90-n)),o=E.degToRad(s),a=To(o,t);return Vn(o,a)}function Oh(i,t){const e=de(i);switch(t.lunits){case G.Scientific:return Yh(e,t.luprec);case G.Engineering:case G.Architectural:case G.Fractional:return Xh(e,t);case G.WindowsDesktop:case G.Decimal:default:return oe(e,t.luprec)}}function kh(i,t){const e=de(i);switch(t.aunits){case rt.DegreesMinutesSeconds:return To(e,t.auprec);case rt.Gradians:return oe(e/Vi,t.auprec)*Vi;case rt.Radians:return oe(e,t.auprec);case rt.DecimalDegrees:default:return E.degToRad(oe(E.radToDeg(e),t.auprec))}}function oe(i,t){if(!Number.isFinite(i))return 0;const e=10**t;return Math.round(de(i)*e)/e}function Yh(i,t){if(!Number.isFinite(i))return 0;const e=de(i);if(e===0)return 0;const n=e.toExponential(t);return Number(n)}function Xh(i,t){if(!Number.isFinite(i))return 0;const e=i<0?-1:1,n=Math.abs(i),r=Math.floor(n/12),s=n-r*12;if(t.lunits===G.Architectural||t.lunits===G.Fractional){const o=1<<Se(t.luprec,0,8),a=Nh(s,o);return e*(r*12+a)}return e*(r*12+oe(s,t.luprec))}function Nh(i,t){const e=Math.floor(i),n=i-e,r=Math.round(n*t);return r>=t?e+1:e+r/t}function To(i,t){const e=E.radToDeg(i),n=e<0?-1:1,r=Math.abs(e),s=Math.floor(r),o=(r-s)*60,a=Math.floor(o),h=oe((o-a)*60,t),l=s+a/60+h/3600;return E.degToRad(n*l)}function Vn(i,t){if(i===t)return!1;const e=Math.max(Math.abs(i),Math.abs(t),1);return Math.abs(i-t)>e*Number.EPSILON*8}function ge(i,t){if(!Number.isFinite(i))return"0";const e=de(i);if(Number.isInteger(e)&&t===0)return String(e);const r=e.toFixed(t).replace(/\.?0+$/,"");return r===""||r==="-"?"0":r}function Bh(i,t){if(!Number.isFinite(i))return"0";const e=de(i);if(e===0)return"0";const n=e.toExponential(t).match(/^(.+)e([+-])(\d+)$/i);if(!n)return"0";const[,r,s,o]=n,a=o.length<2?o.padStart(2,"0"):o;return`${r}E${s}${a}`.toUpperCase()}function Rh(i,t){if(!Number.isFinite(i))return"0";const e=Fn(t),n=i<0?"-":"",r=Math.abs(i),s=Math.floor(r/12),o=r-s*12,a=ge(o,t.luprec);return s===0?`${n}${a}${e.inchSuffix}`:`${n}${s}'${e.feetInchSeparator}${a}${e.inchSuffix}`}function zh(i,t){if(!Number.isFinite(i))return"0";const e=Fn(t),n=i<0?"-":"",r=Math.abs(i),s=Math.floor(r/12),o=r-s*12,a=1<<Se(t.luprec,0,8),h=Co(o,a,e.fractionSeparator);return s===0?`${n}${h}${e.inchSuffix}`:`${n}${s}'${e.feetInchSeparator}${h}${e.inchSuffix}`}function Fh(i,t){if(!Number.isFinite(i))return"0";const e=Fn(t),n=i<0?"-":"",r=Math.abs(i),s=1<<Se(t.luprec,0,8);return`${n}${Co(r,s,e.fractionSeparator)}`}function Co(i,t,e){const n=Math.floor(i),r=i-n;let s=Math.round(r*t);if(s>=t)return String(n+1);if(s===0)return String(n);const o=$h(s,t);s/=o;const a=t/o,h=`${s}/${a}`;return n===0?h:`${n}${e}${h}`}function Vh(i,t){const e=E.radToDeg(i);return`${ge(e,t.auprec)}${t.showUnits?"°":""}`}function jh(i,t){return`${ge(i,t.auprec)}${t.showUnits?" rad":""}`}function Gh(i,t){const e=i/Vi;return`${ge(e,t.auprec)}${t.showUnits?"g":""}`}function Oo(i,t){const e=E.radToDeg(i),n=e<0?"-":"",r=Math.abs(e),s=Math.floor(r),o=(r-s)*60,a=Math.floor(o),h=(o-a)*60,l=ge(h,t.auprec),c=t.showUnits?'"':"";return`${n}${s}d${a}'${l}${c}`}function Hh(i,t){const n=((90-E.radToDeg(i))%360+360)%360,r=ko(n),s=Math.min(Math.abs(n-r.base),Math.abs(r.base+90-n)),a=Oo(E.degToRad(s),t).replace(/^-/,"");return`${r.prefix} ${a} ${r.suffix}`.trim()}function ko(i){return i<90?{prefix:"N",suffix:"E",base:0}:i<180?{prefix:"S",suffix:"E",base:90}:i<270?{prefix:"S",suffix:"W",base:180}:{prefix:"N",suffix:"W",base:270}}function Mi(i,t){if(!t.showUnits||t.lunits===G.Engineering||t.lunits===G.Architectural)return i;const e=Wh(t.insunits,t.measurement);return e?`${i}${e}`:i}function Wh(i,t){return i===V.Undefined?t===0?'"':" mm":co(i)?Dh(i):uo(i)?Uh(i):""}function Dh(i){switch(i){case V.Millimeters:return" mm";case V.Centimeters:return" cm";case V.Meters:return" m";case V.Kilometers:return" km";case V.Decimeters:return" dm";case V.Microns:return" µm";case V.Nanometers:return" nm";default:return""}}function Uh(i){switch(i){case V.Inches:case V.Microinches:case V.Mils:case V.USSurveyInch:return'"';case V.Feet:case V.USSurveyFeet:return"'";case V.Miles:case V.USSurveyMile:return" mi";case V.Yards:case V.USSurveyYard:return" yd";default:return""}}function $h(i,t){let e=Math.abs(i),n=Math.abs(t);for(;n!==0;){const r=n;n=e%n,e=r}return e||1}class Vt extends ft{constructor(t){super(),this.database=t,this.objectId=t.generateHandle(),this._recordsByName=new Map,this._recordsById=new Map}get numEntries(){return this._recordsByName.size}setAt(t,e){e.database=this.database,e.ownerId=this.objectId,this.database.commitObjectHandle(e,n=>this.hasId(n)),this._recordsByName.set(t,e),this._recordsById.set(e.objectId,e),this.database.events.dictObjetSet.dispatch({database:this.database,object:e,key:t})}remove(t){const e=this.getAt(t);return e?(this._recordsByName.delete(t.toUpperCase()),this._recordsById.delete(this.objectId),this.database.events.dictObjectErased.dispatch({database:this.database,object:e,key:t}),!0):!1}removeId(t){const e=this.getIdAt(t);return e?(this._recordsById.delete(this.objectId),this._recordsByName.forEach((n,r)=>{n===e&&(this._recordsByName.delete(r),this.database.events.dictObjectErased.dispatch({database:this.database,object:e,key:r}))}),!0):!1}removeAll(){this._recordsByName.forEach((t,e)=>{this.database.events.dictObjectErased.dispatch({database:this.database,object:t,key:e})}),this._recordsByName.clear(),this._recordsById.clear()}has(t){return this._recordsByName.has(t.toUpperCase())}hasId(t){return this._recordsById.has(t)}getAt(t){return this._recordsByName.get(t)}getIdAt(t){return this._recordsById.get(t)}newIterator(){return new Te(this._recordsByName)}entries(){return this._recordsByName.entries()}dxfOutFields(t){super.dxfOutFields(t),t.writeSubclassMarker("AcDbDictionary"),t.writeInt16(280,1),t.writeInt16(281,1);for(const[e,n]of this._recordsByName)t.writeString(3,e),t.writeObjectId(350,n.objectId);return this}}const jn=192,Ke=193,Gn=194,Hn=195,Yo=200;function He(i){if(i.isByBlock)return Ke<<24>>0;if(i.isByLayer)return jn<<24>>0;const t=i.colorIndex;if(t!=null&&t>0&&t<256)return(Hn<<24|t&255)>>0;const e=i.RGB;return e!=null?(Gn<<24|e&16777215)>>0:Ke<<24>>0}function Xo(i){const t=new k(exports.AcCmColorMethod.ByBlock);switch(i>>>24&255){case jn:t.setByLayer();break;case Ke:case Yo:t.setByBlock();break;case Hn:t.colorIndex=i&255;break;case Gn:t.setRGBValue(i&16777215);break;default:i>=0&&i<=256&&(t.colorIndex=i);break}return t}class No extends ft{constructor(){super(),this._contentType=2,this._drawMLeaderOrderType=1,this._drawLeaderOrderType=0,this._bitFlags=0,this._maxLeaderSegmentsPoints=-1,this._firstSegmentAngleConstraint=0,this._secondSegmentAngleConstraint=0,this._leaderLineType=1,this._leaderLineColor=new k(exports.AcCmColorMethod.ByLayer),this._leaderLineWeight=-2,this._enableLanding=!0,this._landingGap=2,this._enableDogleg=!0,this._doglegLength=8,this._description="",this._arrowSize=4,this._defaultMTextContents="",this._textLeftAttachmentType=1,this._textAngleType=1,this._textAlignmentType=0,this._textRightAttachmentType=1,this._textColor=new k(exports.AcCmColorMethod.ByLayer),this._textHeight=4,this._enableFrameText=!1,this._textAlignAlwaysLeft=!1,this._alignSpace=0,this._blockColor=new k(exports.AcCmColorMethod.ByBlock),this._blockScale=new w(1,1,1),this._enableBlockScale=!0,this._blockRotation=0,this._enableBlockRotation=!1,this._blockConnectionType=0,this._scale=1,this._overwritePropChanged=!1,this._annotative=!1,this._breakSize=0,this._textAttachmentDirection=0,this._bottomTextAttachmentType=9,this._topTextAttachmentType=9,this._extendLeaderToText=!1}get unknown1(){return this._unknown1}set unknown1(t){this._unknown1=t}get contentType(){return this._contentType}set contentType(t){this._contentType=t}get drawMLeaderOrderType(){return this._drawMLeaderOrderType}set drawMLeaderOrderType(t){this._drawMLeaderOrderType=t}get drawLeaderOrderType(){return this._drawLeaderOrderType}set drawLeaderOrderType(t){this._drawLeaderOrderType=t}get bitFlags(){return this._bitFlags}set bitFlags(t){this._bitFlags=t}get maxLeaderSegmentsPoints(){return this._maxLeaderSegmentsPoints}set maxLeaderSegmentsPoints(t){this._maxLeaderSegmentsPoints=t}get maxLeaderSegmentPoints(){return this.maxLeaderSegmentsPoints}set maxLeaderSegmentPoints(t){this.maxLeaderSegmentsPoints=t}get firstSegmentAngleConstraint(){return this._firstSegmentAngleConstraint}set firstSegmentAngleConstraint(t){this._firstSegmentAngleConstraint=t}get secondSegmentAngleConstraint(){return this._secondSegmentAngleConstraint}set secondSegmentAngleConstraint(t){this._secondSegmentAngleConstraint=t}get leaderLineType(){return this._leaderLineType}set leaderLineType(t){this._leaderLineType=t}get leaderLineColor(){return this._leaderLineColor}set leaderLineColor(t){this._leaderLineColor.copy(t)}get leaderLineTypeId(){return this._leaderLineTypeId}set leaderLineTypeId(t){this._leaderLineTypeId=t}get leaderLineWeight(){return this._leaderLineWeight}set leaderLineWeight(t){this._leaderLineWeight=t}get enableLanding(){return this._enableLanding}set enableLanding(t){this._enableLanding=t}get landingEnabled(){return this.enableLanding}set landingEnabled(t){this.enableLanding=t}get landingGap(){return this._landingGap}set landingGap(t){this._landingGap=t}get enableDogleg(){return this._enableDogleg}set enableDogleg(t){this._enableDogleg=t}get doglegEnabled(){return this.enableDogleg}set doglegEnabled(t){this.enableDogleg=t}get doglegLength(){return this._doglegLength}set doglegLength(t){this._doglegLength=t}get description(){return this._description}set description(t){this._description=t}get arrowSymbolId(){return this._arrowSymbolId}set arrowSymbolId(t){this._arrowSymbolId=t}get arrowheadId(){return this.arrowSymbolId}set arrowheadId(t){this.arrowSymbolId=t}get arrowSize(){return this._arrowSize}set arrowSize(t){this._arrowSize=t}get arrowheadSize(){return this.arrowSize}set arrowheadSize(t){this.arrowSize=t}get defaultMTextContents(){return this._defaultMTextContents}set defaultMTextContents(t){this._defaultMTextContents=t}get defaultMText(){return this.defaultMTextContents}set defaultMText(t){this.defaultMTextContents=t}get textString(){return this.defaultMTextContents}set textString(t){this.defaultMTextContents=t}get textStyleId(){return this._textStyleId}set textStyleId(t){this._textStyleId=t}get textStyle(){return this.textStyleId}set textStyle(t){this.textStyleId=t}get textLeftAttachmentType(){return this._textLeftAttachmentType}set textLeftAttachmentType(t){this._textLeftAttachmentType=t}get textAngleType(){return this._textAngleType}set textAngleType(t){this._textAngleType=t}get textAlignmentType(){return this._textAlignmentType}set textAlignmentType(t){this._textAlignmentType=t}get textRightAttachmentType(){return this._textRightAttachmentType}set textRightAttachmentType(t){this._textRightAttachmentType=t}get textColor(){return this._textColor}set textColor(t){this._textColor.copy(t)}get textHeight(){return this._textHeight}set textHeight(t){this._textHeight=t}get enableFrameText(){return this._enableFrameText}set enableFrameText(t){this._enableFrameText=t}get textFrameEnabled(){return this.enableFrameText}set textFrameEnabled(t){this.enableFrameText=t}get textAlignAlwaysLeft(){return this._textAlignAlwaysLeft}set textAlignAlwaysLeft(t){this._textAlignAlwaysLeft=t}get alignSpace(){return this._alignSpace}set alignSpace(t){this._alignSpace=t}get blockId(){return this._blockId}set blockId(t){this._blockId=t}get blockContentId(){return this.blockId}set blockContentId(t){this.blockId=t}get blockColor(){return this._blockColor}set blockColor(t){this._blockColor.copy(t)}get blockContentColor(){return this.blockColor}set blockContentColor(t){this.blockColor=t}get blockScale(){return this._blockScale.clone()}set blockScale(t){this._blockScale.copy(t)}get blockContentScale(){return this.blockScale}set blockContentScale(t){this.blockScale=t}get enableBlockScale(){return this._enableBlockScale}set enableBlockScale(t){this._enableBlockScale=t}get blockContentScaleEnabled(){return this.enableBlockScale}set blockContentScaleEnabled(t){this.enableBlockScale=t}get blockRotation(){return this._blockRotation}set blockRotation(t){this._blockRotation=t}get blockContentRotation(){return this.blockRotation}set blockContentRotation(t){this.blockRotation=t}get enableBlockRotation(){return this._enableBlockRotation}set enableBlockRotation(t){this._enableBlockRotation=t}get blockContentRotationEnabled(){return this.enableBlockRotation}set blockContentRotationEnabled(t){this.enableBlockRotation=t}get blockConnectionType(){return this._blockConnectionType}set blockConnectionType(t){this._blockConnectionType=t}get blockContentConnectionType(){return this.blockConnectionType}set blockContentConnectionType(t){this.blockConnectionType=t}get scale(){return this._scale}set scale(t){this._scale=t}get scaleFactor(){return this.scale}set scaleFactor(t){this.scale=t}get overwritePropChanged(){return this._overwritePropChanged}set overwritePropChanged(t){this._overwritePropChanged=t}get overwritePropertyValue(){return this.overwritePropChanged}set overwritePropertyValue(t){this.overwritePropChanged=t}get annotative(){return this._annotative}set annotative(t){this._annotative=t}get breakSize(){return this._breakSize}set breakSize(t){this._breakSize=t}get breakGapSize(){return this.breakSize}set breakGapSize(t){this.breakSize=t}get textAttachmentDirection(){return this._textAttachmentDirection}set textAttachmentDirection(t){this._textAttachmentDirection=t}get bottomTextAttachmentType(){return this._bottomTextAttachmentType}set bottomTextAttachmentType(t){this._bottomTextAttachmentType=t}get bottomTextAttachmentDirection(){return this.bottomTextAttachmentType}set bottomTextAttachmentDirection(t){this.bottomTextAttachmentType=t}get topTextAttachmentType(){return this._topTextAttachmentType}set topTextAttachmentType(t){this._topTextAttachmentType=t}get topTextAttachmentDirection(){return this.topTextAttachmentType}set topTextAttachmentDirection(t){this.topTextAttachmentType=t}get extendLeaderToText(){return this._extendLeaderToText}set extendLeaderToText(t){this._extendLeaderToText=t}get unknown2(){return this._unknown2}set unknown2(t){this._unknown2=t}dxfOutFields(t){return super.dxfOutFields(t),t.writeSubclassMarker("AcDbMLeaderStyle"),t.writeInt16(179,this.unknown1),t.writeInt16(170,this.contentType),t.writeInt16(171,this.drawMLeaderOrderType),t.writeInt16(172,this.drawLeaderOrderType),t.writeInt32(90,this.maxLeaderSegmentsPoints),t.writeDouble(40,this.firstSegmentAngleConstraint),t.writeDouble(41,this.secondSegmentAngleConstraint),t.writeInt16(173,this.leaderLineType),t.writeInt32(91,He(this.leaderLineColor)),t.writeHandle(340,this.leaderLineTypeId),t.writeInt32(92,this.leaderLineWeight),t.writeBoolean(290,this.enableLanding),t.writeDouble(42,this.landingGap),t.writeBoolean(291,this.enableDogleg),t.writeDouble(43,this.doglegLength),t.writeString(3,this.description),t.writeHandle(341,this.arrowSymbolId),t.writeDouble(44,this.arrowSize),t.writeString(300,this.defaultMTextContents),t.writeHandle(342,this.textStyleId),t.writeInt16(174,this.textLeftAttachmentType),t.writeInt16(175,this.textAngleType),t.writeInt16(176,this.textAlignmentType),t.writeInt16(178,this.textRightAttachmentType),t.writeInt32(93,He(this.textColor)),t.writeDouble(45,this.textHeight),t.writeBoolean(292,this.enableFrameText),t.writeBoolean(297,this.textAlignAlwaysLeft),t.writeDouble(46,this.alignSpace),t.writeHandle(343,this.blockId),t.writeInt32(94,He(this.blockColor)),t.writeDouble(47,this._blockScale.x),t.writeDouble(49,this._blockScale.y),t.writeDouble(140,this._blockScale.z),t.writeBoolean(293,this.enableBlockScale),t.writeDouble(141,this.blockRotation),t.writeBoolean(294,this.enableBlockRotation),t.writeInt16(177,this.blockConnectionType),t.writeDouble(142,this.scale),t.writeBoolean(295,this.overwritePropChanged),t.writeBoolean(296,this.annotative),t.writeDouble(143,this.breakSize),t.writeInt16(271,this.textAttachmentDirection),t.writeInt16(272,this.bottomTextAttachmentType),t.writeInt16(273,this.topTextAttachmentType),t.writeBoolean(298,this.unknown2),this}}class Bo extends ft{constructor(){super(),this._styleName="STANDARD",this._flags=0,this._description="",this._fillColor=new k,this._startAngle=90,this._endAngle=90,this._elements=[]}get styleName(){return this._styleName}set styleName(t){this._styleName=t}get flags(){return this._flags}set flags(t){this._flags=t}get description(){return this._description}set description(t){this._description=t}get fillColor(){return this._fillColor}set fillColor(t){this._fillColor.copy(t)}get startAngle(){return this._startAngle}set startAngle(t){this._startAngle=t}get endAngle(){return this._endAngle}set endAngle(t){this._endAngle=t}get elementCount(){return this._elements.length}get elements(){return this._elements.map(t=>({offset:t.offset,color:t.color.clone(),lineType:t.lineType}))}set elements(t){this._elements=t.map(e=>({offset:e.offset,color:e.color.clone(),lineType:e.lineType}))}addElement(t){this._elements.push({offset:t.offset,color:t.color.clone(),lineType:t.lineType})}removeElementAt(t){if(t<0||t>=this._elements.length)throw new Error("The element index is out of range!");this._elements.splice(t,1)}dxfOutFields(t){return super.dxfOutFields(t),t.writeSubclassMarker("AcDbMlineStyle"),t.writeString(2,this.styleName),t.writeInt16(70,this.flags),t.writeString(3,this.description),t.writeCmColor(this.fillColor),t.writeDouble(51,this.startAngle),t.writeDouble(52,this.endAngle),t.writeInt16(71,this.elementCount),this._elements.forEach(e=>{t.writeDouble(49,e.offset),t.writeCmColor(e.color),t.writeString(6,e.lineType)}),this}}class Pt extends ft{constructor(t){super(),this.database=t,this.objectId=t.generateHandle(),this.ownerId=t.objectId,this._recordsByName=new Map,this._recordsById=new Map}get numEntries(){return this._recordsByName.size}add(t){t.database=this.database,t.ownerId=this.objectId,this.database.commitObjectHandle(t,n=>this.hasId(n));const e=this.normalizeName(t.name);this._recordsByName.set(e,t),this._recordsById.set(t.objectId,t)}remove(t){const e=this.normalizeName(t),n=this._recordsByName.get(e);return n?(this._recordsById.delete(n.objectId),this._recordsByName.delete(e),!0):!1}removeId(t){const e=this._recordsById.get(t);return e?(this._recordsByName.delete(this.normalizeName(e.name)),this._recordsById.delete(t),!0):!1}removeAll(){this._recordsByName.clear(),this._recordsById.clear()}has(t){const e=this.normalizeName(t);return this._recordsByName.has(e)}hasId(t){return this._recordsById.has(t)}getAt(t){const e=this.normalizeName(t);return this._recordsByName.get(e)}getIdAt(t){return this._recordsById.get(t)}getOwnerIdAt(t){return this._recordsById.get(t)}newIterator(){return new Te(this._recordsByName)}normalizeName(t){return t}dxfOutFields(t){return super.dxfOutFields(t),t.writeSubclassMarker("AcDbSymbolTable"),t.writeInt16(70,this.numEntries),this}}class Ro extends Pt{constructor(t){super(t)}get modelSpace(){let t=this.getAt(Q.MODEL_SPACE_NAME);return t||(t=new Q,t.name=Q.MODEL_SPACE_NAME,this.add(t)),t}getEntityById(t){for(const e of this.database.tables.blockTable.newIterator()){const n=e.getIdAt(t);if(n)return n}}removeEntity(t){let e=!1;for(const n of this.database.tables.blockTable.newIterator())if(n.removeEntity(t)){e=!0;break}return e}normalizeName(t){let e=t;if(Q.isModelSapceName(t))e=Q.MODEL_SPACE_NAME;else if(Q.isPaperSapceName(t)){const n=Q.PAPER_SPACE_NAME_PREFIX,r=t.substring(n.length);e=n+r}return e}}class zo extends Pt{constructor(t){super(t)}}class Fo extends Pt{constructor(t){super(t)}add(t){super.add(t),this.database.events.layerAppended.dispatch({database:this.database,layer:t})}}class Vo extends Pt{constructor(t){super(t)}}class jo extends Pt{constructor(t){super(t)}resolveAt(t){this.database.ensureTextStyleDefaults();const e=[],n=r=>{const s=r==null?void 0:r.trim();s&&!e.includes(s)&&e.push(s)};n(t),n(this.database.textstyle),n(K),n("STANDARD");for(const r of e){const s=this.getAt(r);if(s)return s;const o=r.toUpperCase();for(const a of this.newIterator())if(a.name.toUpperCase()===o)return a}return this.newIterator().next().value??void 0}get fonts(){const t=new Set,e=r=>{if(r){const s=r.lastIndexOf(".");if(s>=0){const o=r.substring(0,s).toLowerCase();t.add(o)}else t.add(r.toLowerCase())}},n=this.newIterator();for(const r of n)e(r.fileName),e(r.bigFontFileName);return Array.from(t)}}class Go extends Pt{constructor(t){super(t)}}const qh=()=>({center:new P,viewDirectionFromTarget:new _(0,0,1),viewTarget:new _(0,0,0),lensLength:500,frontClippingPlane:0,backClippingPlane:0,viewHeight:1e3,viewTwistAngle:0,frozenLayers:[],styleSheet:"",renderMode:exports.AcGiRenderMode.OPTIMIZED_2D,viewMode:0,ucsIconSetting:0,ucsOrigin:new _(0,0,0),ucsXAxis:new _(1,0,0),ucsYAxis:new _(0,1,0),orthographicType:exports.AcGiOrthographicType.TOP,shadePlotSetting:0,shadePlotObjectId:void 0,visualStyleObjectId:void 0,isDefaultLightingOn:!1,defaultLightingType:exports.AcGiDefaultLightingType.ONE_DISTANT_LIGHT,brightness:0,contrast:0,ambientColor:void 0,aspectRatio:void 0});class Wn extends Rt{constructor(){super(),this._gsView=qh(),this._centerPoint=this._gsView.center}get gsView(){return this._gsView}get centerPoint(){return this._centerPoint}set centerPoint(t){this._centerPoint.copy(t)}get viewDirectionFromTarget(){return this._gsView.viewDirectionFromTarget}set viewDirectionFromTarget(t){this._gsView.viewDirectionFromTarget.copy(t)}get viewTarget(){return this._gsView.viewTarget}set viewTarget(t){this._gsView.viewTarget.copy(t)}get viewHeight(){return this._gsView.viewHeight}set viewHeight(t){this._gsView.viewHeight=t}get viewTwistAngle(){return this._gsView.viewTwistAngle}set viewTwistAngle(t){this._gsView.viewTwistAngle=t}get lensLength(){return this._gsView.lensLength}set lensLength(t){this._gsView.lensLength=t}get frontClippingPlane(){return this._gsView.frontClippingPlane}set frontClippingPlane(t){this._gsView.frontClippingPlane=t}get backClippingPlane(){return this._gsView.backClippingPlane}set backClippingPlane(t){this._gsView.backClippingPlane=t}get renderMode(){return this._gsView.renderMode}set renderMode(t){this._gsView.renderMode=t}get viewMode(){return this._gsView.viewMode}set viewMode(t){this._gsView.viewMode=t}get ucsIconSetting(){return this._gsView.ucsIconSetting}set ucsIconSetting(t){this._gsView.ucsIconSetting=t}get ucsOrigin(){return this._gsView.ucsOrigin}set ucsOrigin(t){this._gsView.ucsOrigin.copy(t)}get ucsXAxis(){return this._gsView.ucsXAxis}set ucsXAxis(t){this._gsView.ucsXAxis.copy(t)}get ucsYAxis(){return this._gsView.ucsYAxis}set ucsYAxis(t){this._gsView.ucsYAxis.copy(t)}get orthographicType(){return this._gsView.orthographicType}set orthographicType(t){this._gsView.orthographicType=t}get shadePlotSetting(){return this._gsView.shadePlotSetting}set shadePlotSetting(t){this._gsView.shadePlotSetting=t}get shadePlotObjectId(){return this._gsView.shadePlotObjectId}set shadePlotObjectId(t){this._gsView.shadePlotObjectId=t}get visualStyleObjectId(){return this._gsView.visualStyleObjectId}set visualStyleObjectId(t){this._gsView.visualStyleObjectId=t}get isDefaultLightingOn(){return this._gsView.isDefaultLightingOn}set isDefaultLightingOn(t){this._gsView.isDefaultLightingOn=t}get defaultLightingType(){return this._gsView.defaultLightingType}set defaultLightingType(t){this._gsView.defaultLightingType=t}get brightness(){return this._gsView.brightness}set brightness(t){this._gsView.brightness=t}get contrast(){return this._gsView.contrast}set contrast(t){this._gsView.contrast=t}get ambientColor(){return this._gsView.ambientColor}set ambientColor(t){this._gsView.ambientColor=t}get aspectRatio(){return this._gsView.aspectRatio}set aspectRatio(t){this._gsView.aspectRatio=t}}class Dn extends Wn{static isActiveVportName(t){return t.toLowerCase()===Ae.toLowerCase()}constructor(){super(),this._circleSides=100,this._lowerLeftCorner=new P(0,0),this._upperRightCorner=new P(1,1),this._snapBase=new P(0,0),this._snapAngle=0,this._snapSpacing=new P(0,0),this._standardFlag=0,this._gridSpacing=new P,this._gridMajor=10}get circleSides(){return this._circleSides}set circleSides(t){this._circleSides=t}get center(){return this.centerPoint}set center(t){this.centerPoint=t}get lowerLeftCorner(){return this._lowerLeftCorner}set lowerLeftCorner(t){this._lowerLeftCorner.copy(t)}get upperRightCorner(){return this._upperRightCorner}set upperRightCorner(t){this._upperRightCorner.copy(t)}get snapBase(){return this._snapBase}set snapBase(t){this._snapBase.copy(t)}get snapAngle(){return this._snapAngle}set snapAngle(t){this._snapAngle=t}get snapIncrements(){return this._snapSpacing}set snapIncrements(t){this._snapSpacing.copy(t)}get gridMajor(){return this._gridMajor}set gridMajor(t){this._gridMajor=t}get gridIncrements(){return this._gridSpacing}set gridIncrements(t){this._gridSpacing.copy(t)}get standardFlag(){return this._standardFlag}set standardFlag(t){this._standardFlag=t}get snapEnabled(){return!!(this._standardFlag&256)}get backgroundObjectId(){return this._backgroundObjectId}set backgroundObjectId(t){this._backgroundObjectId=t}dxfOutFields(t){return super.dxfOutFields(t),t.writeSubclassMarker("AcDbViewportTableRecord"),t.writeString(2,this.name),t.writeDouble(40,this.gsView.viewHeight),this.gsView.aspectRatio!=null&&Number.isFinite(this.gsView.aspectRatio)&&t.writeDouble(41,this.gsView.aspectRatio),t.writeDouble(45,this.gsView.viewHeight),t.writePoint2d(10,this.lowerLeftCorner),t.writePoint2d(11,this.upperRightCorner),t.writePoint2d(12,this.center),t.writePoint2d(13,this.snapBase),t.writePoint2d(14,this.snapIncrements),t.writePoint2d(15,this.gridIncrements),t.writeInt16(70,this.standardFlag),t.writeInt16(71,this.circleSides),t.writeDouble(42,this.gsView.lensLength),t.writePoint3d(16,this.gsView.viewDirectionFromTarget),t.writePoint3d(17,this.gsView.viewTarget),t.writeAngle(50,this.snapAngle),t.writeAngle(51,this.gsView.viewTwistAngle),t.writeInt16(61,this.gridMajor),t.writeInt16(281,this.backgroundObjectId?1:0),t.writeObjectId(332,this.backgroundObjectId),this}}class Ho extends Pt{constructor(t){super(t)}normalizeName(t){return Dn.isActiveVportName(t)?Ae:t.toUpperCase()}}class Wo extends Pt{constructor(t){super(t)}}class ji extends Rt{constructor(t){super(),this.name=t}dxfOutFields(t){return super.dxfOutFields(t),t.writeSubclassMarker("AcDbRegAppTableRecord"),t.writeString(2,this.name),t.writeInt16(70,0),this}}class Do extends Vt{getBtrIdAt(t){for(const[e,n]of this._recordsByName)if(n.blockTableRecordId==t)return n}get maxTabOrder(){let t=-1;return this._recordsByName.forEach(e=>{e.tabOrder>t&&(t=e.tabOrder)}),t}}class Zh extends ft{constructor(){super({objectId:"0"}),this._drawNoPlotLayers=!0,this.events={dictObjetSet:new D,dictObjectErased:new D,entityAppended:new D,entityModified:new D,entityErased:new D,layerAppended:new D,layerModified:new D,layerErased:new D,openProgress:new D},this._version=new dt("AC1014"),this._angbase=0,this._angdir=0,this._aunits=rt.DecimalDegrees,this._auprec=0,this._lunits=G.Decimal,this._luprec=4,this._celtscale=1,this._cecolor=new k,this._celtype=tt,this._celweight=exports.AcGiLineWeight.ByLayer,this._cetransparency=new U,this._clayer="0",this._cmlstyle=Tt,this._cmlscale=1,this._cmleaderstyle=Ct,this._hpbackgroundcolor=new k(exports.AcCmColorMethod.None),this._hpcolor=this._cecolor.clone(),this._hplayer=".",this._hptransparency=new U,this._textstyle=K,this._extents=new C,this._insunits=V.Millimeters,this._unitmode=0,this._measurement=1,this._ltscale=1,this._lwdisplay=!1,this._pdmode=0,this._pdsize=0,this._osmode=0,this._orthomode=0,this._maxHandle=0,this._tables={appIdTable:new Wo(this),blockTable:new Ro(this),dimStyleTable:new zo(this),linetypeTable:new Vo(this),textStyleTable:new jo(this),viewTable:new Go(this),layerTable:new Fo(this),viewportTable:new Ho(this)},this._objects={dictionary:new Vt(this),imageDefinition:new Vt(this),layout:new Do(this),mleaderStyle:new Vt(this),mlineStyle:new Vt(this),xrecord:new Vt(this)}}get tables(){return this._tables}get objects(){return this._objects}get formatter(){return this._formatter??(this._formatter=new Mo(this))}generateHandle(){return this._maxHandle++,this._maxHandle.toString(16).toUpperCase()}updateMaxHandle(t){const e=parseInt(t,16);!isNaN(e)&&e>this._maxHandle&&(this._maxHandle=e)}commitObjectHandle(t,e){const n=t.getAttrWithoutException("objectId");!n||t.isTemp||e&&e(n)?t.objectId=this.generateHandle():this.updateMaxHandle(n)}get currentSpaceId(){return this._currentSpace||(this._currentSpace=this._tables.blockTable.modelSpace),this._currentSpace.objectId}set currentSpaceId(t){const e=this.tables.blockTable.getIdAt(t);if(e==null)throw new Error(`[AcDbDatabase] The specified block table record id '${t}' doesn't exist in the drawing database!`);this._currentSpace=e}get aunits(){return this._aunits}set aunits(t){this.updateSysVar(v.AUNITS,this._aunits,t??0,e=>{this._aunits=e})}get auprec(){return this._auprec}set auprec(t){this.updateSysVar(v.AUPREC,this._auprec,t??0,e=>{this._auprec=e})}get lunits(){return this._lunits}set lunits(t){this.updateSysVar(v.LUNITS,this._lunits,t??G.Decimal,e=>{this._lunits=e})}get luprec(){return this._luprec}set luprec(t){this.updateSysVar(v.LUPREC,this._luprec,t??4,e=>{this._luprec=e})}get version(){return this._version}set version(t){this.updateSysVar(v.ACADVER,this._version,new dt(t),e=>{this._version=e})}get insunits(){return this._insunits}set insunits(t){this.updateSysVar(v.INSUNITS,this._insunits,t??4,e=>{this._insunits=e})}get unitmode(){return this._unitmode}set unitmode(t){this.updateSysVar(v.UNITMODE,this._unitmode,t??0,e=>{this._unitmode=e})}get measurement(){return this._measurement}set measurement(t){this.updateSysVar(v.MEASUREMENT,this._measurement,t??1,e=>{this._measurement=e})}get ltscale(){return this._ltscale}set ltscale(t){this.updateSysVar(v.LTSCALE,this._ltscale,t??1,e=>{this._ltscale=e})}get lwdisplay(){return this._lwdisplay}get drawNoPlotLayers(){return this._drawNoPlotLayers}isLayerDrawable(t){if(this._drawNoPlotLayers)return!0;const e=this.tables.layerTable.getAt(t);return e==null||e.isPlottable}set lwdisplay(t){this.updateSysVar(v.LWDISPLAY,this._lwdisplay,t??!1,e=>{this._lwdisplay=e})}get cecolor(){return this._cecolor}set cecolor(t){this.updateSysVar(v.CECOLOR,this._cecolor,t||0,e=>{this._cecolor=e.clone()})}get celtscale(){return this._celtscale}set celtscale(t){this.updateSysVar(v.CELTSCALE,this._celtscale,t??1,e=>{this._celtscale=e})}get celtype(){return this._celtype}set celtype(t){const e=this.normalizeLinetypeName(t??tt);this.updateSysVar(v.CELTYPE,this._celtype,e,n=>{this._celtype=n})}get celweight(){return this._celweight}set celweight(t){this.updateSysVar(v.CELWEIGHT,this._celweight,t??exports.AcGiLineWeight.ByLayer,e=>{this._celweight=e})}get cetransparency(){return this._cetransparency}set cetransparency(t){this.updateSysVar(v.CETRANSPARENCY,this._cetransparency,t??new U,e=>{this._cetransparency=e.clone()})}get clayer(){return this._clayer}set clayer(t){this.updateSysVar(v.CLAYER,this._clayer,t??"0",e=>{this._clayer=e})}get cmlstyle(){return this._cmlstyle}set cmlstyle(t){this.updateSysVar(v.CMLSTYLE,this._cmlstyle,t??Tt,e=>{this._cmlstyle=e})}get cmlscale(){return this._cmlscale}set cmlscale(t){this.updateSysVar(v.CMLSCALE,this._cmlscale,t??1,e=>{this._cmlscale=e})}get cmleaderstyle(){return this._cmleaderstyle}set cmleaderstyle(t){this.updateSysVar(v.CMLEADERSTYLE,this._cmleaderstyle,t??Ct,e=>{this._cmleaderstyle=e})}get hpbackgroundcolor(){return this._hpbackgroundcolor}set hpbackgroundcolor(t){this.updateSysVar(v.HPBACKGROUNDCOLOR,this._hpbackgroundcolor,t??new k(exports.AcCmColorMethod.None),e=>{this._hpbackgroundcolor=e.clone()})}get hpcolor(){return this._hpcolor}set hpcolor(t){this.updateSysVar(v.HPCOLOR,this._hpcolor,t??this._cecolor,e=>{this._hpcolor=e.clone()})}get hplayer(){return this._hplayer}set hplayer(t){this.updateSysVar(v.HPLAYER,this._hplayer,t??".",e=>{this._hplayer=e})}get hptransparency(){return this._hptransparency}set hptransparency(t){this.updateSysVar(v.HPTRANSPARENCY,this._hptransparency,t??new U,e=>{this._hptransparency=e.clone()})}get textstyle(){return this._textstyle}set textstyle(t){this.updateSysVar(v.TEXTSTYLE,this._textstyle,t??K,e=>{this._textstyle=e})}get angbase(){return this._angbase}set angbase(t){this.updateSysVar(v.ANGBASE,this._angbase,t??0,e=>{this._angbase=e})}get angdir(){return this._angdir}set angdir(t){this.updateSysVar(v.ANGDIR,this._angdir,t??0,e=>{this._angdir=e})}get extmax(){return this._extents.max}set extmax(t){if(t){const e=this._extents.max.clone();this._extents.expandByPoint(t),this._extents.max.equals(e)||this.triggerSysVarChangedEvent(v.EXTMAX,e,this._extents.max)}}get extmin(){return this._extents.min}set extmin(t){if(t){const e=this._extents.min.clone();this._extents.expandByPoint(t),this._extents.min.equals(e)||this.triggerSysVarChangedEvent(v.EXTMIN,e,this._extents.min)}}get extents(){return this._extents}get pdmode(){return this._pdmode}set pdmode(t){this.updateSysVar(v.PDMODE,this._pdmode,t??0,e=>{this._pdmode=e})}get pdsize(){return this._pdsize}set pdsize(t){this.updateSysVar(v.PDSIZE,this._pdsize,t??0,e=>{this._pdsize=e})}get osmode(){return this._osmode}set osmode(t){this.updateSysVar(v.OSMODE,this._osmode,t??0,e=>{this._osmode=e})}get orthomode(){return this._orthomode}set orthomode(t){this.updateSysVar(v.ORTHOMODE,this._orthomode,t??0,e=>{this._orthomode=e})}async read(t,e,n=_e.DXF){const r=mt.instance.get(n);if(r==null)throw new Error(`Database converter for file type '${n}' isn't registered and can can't read this file!`);this.clear(),this._drawNoPlotLayers=(e==null?void 0:e.drawNoPlotLayers)??!0,await r.read(t,this,e&&e.minimumChunkSize||10,async(s,o,a,h)=>{if(this.events.openProgress.dispatch({database:this,percentage:s,stage:"CONVERSION",subStage:o,subStageStatus:a,data:h}),e&&e.fontLoader&&o=="FONT"&&a=="END"){const l=h||this.tables.textStyleTable.fonts;await e.fontLoader.load(l)}},e==null?void 0:e.timeout,e==null?void 0:e.sysVars),this.ensureDatabaseDefaults()}async openUri(t,e){var d;this.events.openProgress.dispatch({database:this,percentage:0,stage:"FETCH_FILE",subStageStatus:"START"});const n=await fetch(t);if(!n.ok)throw this.events.openProgress.dispatch({database:this,percentage:100,stage:"FETCH_FILE",subStageStatus:"ERROR"}),new Error(`Failed to fetch file '${t}' with HTTP status code '${n.status}'!`);const r=n.headers.get("content-length"),s=r?parseInt(r,10):null;let o=0;const a=(d=n.body)==null?void 0:d.getReader();if(!a)throw new Error("Failed to get response reader");const h=[];for(;;){const{done:p,value:f}=await a.read();if(p)break;if(h.push(f),o+=f.length,s!==null){const y=Math.round(o/s*100);this.events.openProgress.dispatch({database:this,percentage:y,stage:"FETCH_FILE",subStageStatus:"IN-PROGRESS"})}}const l=new Uint8Array(o);let c=0;for(const p of h)l.set(p,c),c+=p.length;const g=this.getFileNameFromUri(t).toLowerCase().split(".").pop();g==="dwg"?await this.read(l.buffer,e,_e.DWG):g==="dxf"?await this.read(l.buffer,e,_e.DXF):await this.read(l.buffer,e,g),this.events.openProgress.dispatch({database:this,percentage:100,stage:"FETCH_FILE",subStageStatus:"END"})}dxfOut(t,e=16,n=this.version.name,r=!1){this.ensureDatabaseDefaults();const s=n instanceof dt?n:new dt(n),o=new os({database:this,precision:e,version:s});return this.writeDxfHeaderSection(o),this.writeDxfTablesSection(o,s),this.writeDxfBlocksSection(o),this.writeDxfEntitiesSection(o),this.writeDxfObjectsSection(o),o.writeStart("EOF"),o.toString()}async regen(){await new fo(this).read(null,this,500,async(e,n,r,s)=>{this.events.openProgress.dispatch({database:this,percentage:e,stage:"CONVERSION",subStage:n,subStageStatus:r,data:s})})}createDefaultData(t={layer:!0,lineType:!0,textStyle:!0,dimStyle:!0,layout:!0}){const e=new Eo(this);t.layer&&e.createDefaultLayer(),t.lineType&&e.createDefaultLineType(),t.textStyle&&e.createDefaultTextStyle(),t.dimStyle&&e.createDefaultDimStyle(),t.layout&&e.createDefaultLayout()}ensureEntityStyleDefaults(t){var e;if(t.dxfTypeName==="MLINE"){this.ensureMLineStyle(this._cmlstyle||Tt);return}if(t.dxfTypeName==="MULTILEADER"){this.ensureMLeaderStyle(this._cmleaderstyle||Ct);return}if(t.dxfTypeName==="HATCH"){const n=t;(e=n.applyPatternDefaultsFromSysVars)==null||e.call(n,this)}}ensureTextStyleDefaults(){this.hasDefaultTextStyle()||this.tables.textStyleTable.add(new Rn({name:K,standardFlag:0,fixedTextHeight:0,widthFactor:1,obliqueAngle:0,textGenerationFlag:0,lastHeight:.2,font:"SimKai",bigFont:"",extendedFont:"SimKai"}))}hasDefaultTextStyle(){const t=[K,"STANDARD"];for(const e of t)if(this.tables.textStyleTable.has(e))return!0;for(const e of this.tables.textStyleTable.newIterator())if(e.name.toUpperCase()===K.toUpperCase())return!0;return!1}ensureDatabaseDefaults(){if(!this.tables.layerTable.has("0")){const e=new k;e.colorIndex=7,this.tables.layerTable.add(new Bn({name:"0",standardFlags:0,linetype:Xt,lineWeight:0,isOff:!1,color:e,isPlottable:!0}))}if(this.tables.linetypeTable.has(Ot)||this.tables.linetypeTable.add(new Ht({name:Ot,standardFlag:0,description:"",totalPatternLength:0})),this.tables.linetypeTable.has(tt)||this.tables.linetypeTable.add(new Ht({name:tt,standardFlag:0,description:"",totalPatternLength:0})),this.tables.linetypeTable.has(Xt)||this.tables.linetypeTable.add(new Ht({name:Xt,standardFlag:0,description:"Solid line",totalPatternLength:0})),this.ensureTextStyleDefaults(),this.tables.dimStyleTable.has(K)||this.tables.dimStyleTable.add(new le({name:K,dimtxsty:K})),!this.tables.viewportTable.has(Ae)){const e=new Dn;e.name=Ae,this.tables.viewportTable.add(e)}this.ensureMLineStyle(this._cmlstyle||Tt),this.ensureMLeaderStyle(this._cmleaderstyle||Ct);const t=this.tables.blockTable.modelSpace;if(!this.objects.layout.getAt("Model")){const e=new fi;e.layoutName="Model",e.tabOrder=0,e.blockTableRecordId=t.objectId,e.limits.min.copy({x:0,y:0}),e.limits.max.copy({x:1e6,y:1e6}),e.extents.min.copy({x:0,y:0,z:0}),e.extents.max.copy({x:1e6,y:1e6,z:0}),this.objects.layout.setAt(e.layoutName,e),t.layoutId=e.objectId}this.tables.appIdTable.has(Fi)||this.tables.appIdTable.add(new ji(Fi)),this.tables.appIdTable.has(zi)||this.tables.appIdTable.add(new ji(zi))}ensureMLineStyle(t){const e=this.objects.mlineStyle,n=t.trim();if(!n||e.getAt(n))return;for(const[s,o]of e.entries())if(s.toUpperCase()===n.toUpperCase()||o.styleName.toUpperCase()===n.toUpperCase())return;const r=new Bo;r.styleName=n,r.elements=[{offset:.5,color:new k().setByLayer(),lineType:tt},{offset:-.5,color:new k().setByLayer(),lineType:tt}],e.setAt(n,r)}ensureMLeaderStyle(t){const e=this.objects.mleaderStyle,n=t.trim();if(!n||e.getAt(n))return;for(const[a]of e.entries())if(a.toUpperCase()===n.toUpperCase())return;const r=new No;r.unknown1=2,r.maxLeaderSegmentsPoints=2,r.leaderLineColor=new k().setByBlock(),r.textColor=new k().setByBlock(),r.blockColor=new k().setByBlock(),r.alignSpace=4,r.breakSize=3.75,r.enableBlockRotation=!0,r.unknown2=!1;const s=this.tables.linetypeTable.getAt(Ot);r.leaderLineTypeId=s==null?void 0:s.objectId;const o=this.tables.textStyleTable.getAt(K);r.textStyleId=o==null?void 0:o.objectId,e.setAt(n,r)}writeDxfHeaderSection(t){var e;t.startSection("HEADER"),t.writeString(9,"$ACADVER"),t.writeString(1,((e=t.version)==null?void 0:e.name)??this.version.name),t.writeString(9,"$HANDSEED"),t.writeString(5,t.nextHandle.toString(16).toUpperCase()),t.version!=null&&t.version.value>=27&&(t.writeString(9,"$DWGCODEPAGE"),t.writeString(3,"UTF-8")),t.writeString(9,"$INSUNITS"),t.writeInt16(70,this.insunits),t.writeString(9,"$LUNITS"),t.writeInt16(70,this.lunits),t.writeString(9,"$LUPREC"),t.writeInt16(70,this.luprec),t.writeString(9,"$UNITMODE"),t.writeInt16(70,this.unitmode),t.writeString(9,"$MEASUREMENT"),t.writeInt16(70,this.measurement),t.writeString(9,"$LTSCALE"),t.writeDouble(40,this.ltscale),t.writeString(9,"$LWDISPLAY"),t.writeInt16(70,this.lwdisplay?1:0),t.writeString(9,"$CLAYER"),t.writeString(8,this.clayer),t.writeString(9,"$CELTYPE"),t.writeString(6,this.celtype),this.cetransparency.isInvalid||(t.writeString(9,"$CETRANSPARENCY"),t.writeTransparency(this.cetransparency)),t.writeString(9,"$CMLSTYLE"),t.writeString(2,this.cmlstyle),t.writeString(9,"$CMLSCALE"),t.writeDouble(40,this.cmlscale),t.writeString(9,"$CMLEADERSTYLE"),t.writeString(2,this.cmleaderstyle),this.hpcolor.colorMethod!==exports.AcCmColorMethod.None&&(t.writeString(9,"$HPCOLOR"),t.writeCmColor(this.hpcolor,2)),this.hpbackgroundcolor.colorMethod!==exports.AcCmColorMethod.None&&(t.writeString(9,"$HPBACKGROUNDCOLOR"),t.writeCmColor(this.hpbackgroundcolor,2)),t.writeString(9,"$HPLAYER"),t.writeString(8,this.hplayer),this.hptransparency.isInvalid||(t.writeString(9,"$HPTRANSPARENCY"),t.writeTransparency(this.hptransparency)),t.writeString(9,"$TEXTSTYLE"),t.writeString(7,this.textstyle),t.writeString(9,"$ANGBASE"),t.writeAngle(50,this.angbase),t.writeString(9,"$ANGDIR"),t.writeInt16(70,this.angdir),t.writeString(9,"$AUNITS"),t.writeInt16(70,this.aunits),t.writeString(9,"$AUPREC"),t.writeInt16(70,this.auprec),t.writeString(9,"$EXTMIN"),t.writePoint3d(10,this.extmin),t.writeString(9,"$EXTMAX"),t.writePoint3d(10,this.extmax),t.writeString(9,"$PDMODE"),t.writeInt32(70,this.pdmode),t.writeString(9,"$PDSIZE"),t.writeDouble(40,this.pdsize),t.writeString(9,"$OSMODE"),t.writeInt32(70,this.osmode),t.writeString(9,"$ORTHOMODE"),t.writeInt16(70,this.orthomode),t.endSection()}writeDxfTablesSection(t,e){t.startSection("TABLES"),this.writeDxfTable(t,"VPORT",this.tables.viewportTable,this.tables.viewportTable.newIterator(),"VPORT"),this.writeDxfTable(t,"VIEW",this.tables.viewTable,this.tables.viewTable.newIterator(),"VIEW"),this.writeDxfTable(t,"LTYPE",this.tables.linetypeTable,this.tables.linetypeTable.newIterator(),"LTYPE"),this.writeDxfTable(t,"LAYER",this.tables.layerTable,this.tables.layerTable.newIterator(),"LAYER"),this.writeDxfTable(t,"STYLE",this.tables.textStyleTable,this.tables.textStyleTable.newIterator(),"STYLE"),this.writeDxfTable(t,"APPID",this.tables.appIdTable,this.tables.appIdTable.newIterator(),"APPID"),this.writeDxfTable(t,"DIMSTYLE",this.tables.dimStyleTable,this.tables.dimStyleTable.newIterator(),"DIMSTYLE"),e.value>=19&&this.writeDxfTable(t,"BLOCK_RECORD",this.tables.blockTable,this.tables.blockTable.newIterator(),"BLOCK_RECORD"),t.endSection()}writeDxfBlocksSection(t){t.startSection("BLOCKS");for(const e of this.tables.blockTable.newIterator()){if(e.dxfOutBlockBegin(t),!e.isModelSapce&&!e.isPaperSapce)for(const n of e.newIterator())this.writeDxfEntity(t,n);e.dxfOutBlockEnd(t)}t.endSection()}writeDxfEntitiesSection(t){t.startSection("ENTITIES");for(const e of this.tables.blockTable.newIterator())if(!(!e.isModelSapce&&!e.isPaperSapce))for(const n of e.newIterator())this.writeDxfEntity(t,n);t.endSection()}writeDxfObjectsSection(t){t.startSection("OBJECTS");const e=this.objects.dictionary;e.ownerId="0";const n=o=>{t.writeStart("DICTIONARY"),o.dxfOut(t)},r=(o,a)=>{e.getAt(o)!==a&&e.setAt(o,a)},s=o=>{e.getAt(o)&&e.remove(o)};r("ACAD_LAYOUT",this.objects.layout),this.objects.mleaderStyle.numEntries>0?r("ACAD_MLEADERSTYLE",this.objects.mleaderStyle):s("ACAD_MLEADERSTYLE"),this.objects.mlineStyle.numEntries>0?r("ACAD_MLINESTYLE",this.objects.mlineStyle):s("ACAD_MLINESTYLE"),this.objects.imageDefinition.numEntries>0?r("ISM_RASTER_IMAGE_DICT",this.objects.imageDefinition):s("ISM_RASTER_IMAGE_DICT"),this.objects.xrecord.numEntries>0?r("MLIGHT_XRECORD",this.objects.xrecord):s("MLIGHT_XRECORD"),n(e),n(this.objects.layout),this.objects.mleaderStyle.numEntries>0&&n(this.objects.mleaderStyle),this.objects.mlineStyle.numEntries>0&&n(this.objects.mlineStyle),this.objects.imageDefinition.numEntries>0&&n(this.objects.imageDefinition),this.objects.xrecord.numEntries>0&&n(this.objects.xrecord);for(const[o,a]of this.objects.layout.entries())t.writeStart("LAYOUT"),a.dxfOut(t);for(const[o,a]of this.objects.imageDefinition.entries())t.writeStart("IMAGEDEF"),a.dxfOut(t);for(const[o,a]of this.objects.mleaderStyle.entries())t.writeStart("MLEADERSTYLE"),a.dxfOut(t);for(const[o,a]of this.objects.mlineStyle.entries())t.writeStart("MLINESTYLE"),a.dxfOut(t);for(const[o,a]of this.objects.xrecord.entries())t.writeStart("XRECORD"),a.dxfOut(t);t.endSection()}writeDxfTable(t,e,n,r,s){const o=[...r];t.startTable(e),n.dxfOut(t);for(const a of o){if(s==="BLOCK_RECORD"&&a instanceof Q){a.dxfOutBlockRecord(t);continue}t.writeStart(s),a.dxfOut(t)}t.endTable()}writeDxfEntity(t,e){t.writeStart(e.dxfTypeName),e.dxfOut(t)}clear(){this._tables.blockTable.removeAll(),this._tables.dimStyleTable.removeAll(),this._tables.linetypeTable.removeAll(),this._tables.textStyleTable.removeAll(),this._tables.viewTable.removeAll(),this._tables.layerTable.removeAll(),this._tables.viewportTable.removeAll(),this._objects.layout.removeAll(),this._objects.imageDefinition.removeAll(),this._objects.mleaderStyle.removeAll(),this._objects.mlineStyle.removeAll(),this._objects.xrecord.removeAll(),this._currentSpace=void 0,this._extents.makeEmpty()}updateSysVar(t,e,n,r){this.hasSysVarValueChanged(e,n)&&(r(n),this.triggerSysVarChangedEvent(t,e,n))}hasSysVarValueChanged(t,e){return t instanceof k&&e instanceof k||t instanceof U&&e instanceof U?!t.equals(e):t instanceof dt&&e instanceof dt?t.value!==e.value:!Object.is(t,e)}normalizeLinetypeName(t){const e=t.trim();return e.toUpperCase()==="BYLAYER"?tt:e.toUpperCase()==="BYBLOCK"?Ot:e}triggerSysVarChangedEvent(t,e,n){const r=gt.instance(),s=t.toLowerCase();r.getDescriptor(s)!=null&&r.events.sysVarChanged.dispatch({database:this,name:s,oldVal:e,newVal:n})}getFileNameFromUri(t){try{const n=new URL(t).pathname.split("/");return n[n.length-1]||""}catch{return""}}}class Kh extends Wn{constructor(){super(),this._standardFlags=0,this._viewWidth=this.viewHeight,this._ucsAssociated=!1,this._cameraPlottable=!1,this._ucsElevation=0}get standardFlags(){return this._standardFlags}set standardFlags(t){this._standardFlags=t}get viewWidth(){return this._viewWidth}set viewWidth(t){this._viewWidth=t}get ucsAssociated(){return this._ucsAssociated}set ucsAssociated(t){this._ucsAssociated=t}get cameraPlottable(){return this._cameraPlottable}set cameraPlottable(t){this._cameraPlottable=t}get ucsElevation(){return this._ucsElevation}set ucsElevation(t){this._ucsElevation=t}get ucsObjectId(){return this._ucsObjectId}set ucsObjectId(t){this._ucsObjectId=t}get ucsBaseObjectId(){return this._ucsBaseObjectId}set ucsBaseObjectId(t){this._ucsBaseObjectId=t}get backgroundObjectId(){return this._backgroundObjectId}set backgroundObjectId(t){this._backgroundObjectId=t}get liveSectionObjectId(){return this._liveSectionObjectId}set liveSectionObjectId(t){this._liveSectionObjectId=t}dxfOutFields(t){return super.dxfOutFields(t),t.writeSubclassMarker("AcDbViewTableRecord"),t.writeString(2,this.name),t.writeInt16(70,this.standardFlags),t.writeDouble(40,this.gsView.viewHeight),t.writePoint2d(10,this.centerPoint),t.writeDouble(41,this.viewWidth),t.writePoint3d(11,this.gsView.viewDirectionFromTarget),t.writePoint3d(12,this.gsView.viewTarget),t.writeDouble(42,this.gsView.lensLength),t.writeDouble(43,this.gsView.frontClippingPlane),t.writeDouble(44,this.gsView.backClippingPlane),t.writeAngle(50,this.gsView.viewTwistAngle),t.writeInt16(71,this.gsView.viewMode),t.writeInt16(281,this.gsView.renderMode),t.writeInt16(72,this.ucsAssociated?1:0),t.writeInt16(73,this.cameraPlottable?1:0),t.writeObjectId(332,this.backgroundObjectId),t.writeObjectId(334,this.liveSectionObjectId),t.writeObjectId(348,this.gsView.visualStyleObjectId),this.ucsAssociated&&(t.writePoint3d(110,this.gsView.ucsOrigin),t.writePoint3d(111,this.gsView.ucsXAxis),t.writePoint3d(112,this.gsView.ucsYAxis),t.writeInt16(79,this.gsView.orthographicType),t.writeDouble(146,this.ucsElevation),t.writeObjectId(345,this.ucsObjectId),t.writeObjectId(346,this.ucsBaseObjectId)),this}}const Zn=class Zn extends ${getOffsetSideAtPoint(t){return 1}};Zn.typeName="Curve";let q=Zn;const ee=class ee extends q{get dxfTypeName(){return"LWPOLYLINE"}constructor(){super(),this._elevation=0,this._geo=new H}get numberOfVertices(){return this._geo.numberOfVertices}get elevation(){return this._elevation}set elevation(t){this._elevation=t}get closed(){return this._geo.closed}get area(){return this._geo.area}set closed(t){this._geo.closed=t}addVertexAt(t,e,n=0,r=-1,s=-1){const o=r<0?void 0:r,a=s<0?void 0:s,h={x:e.x,y:e.y,bulge:n,startWidth:o,endWidth:a};this._geo.addVertexAt(t,h)}removeVertexAt(t){this._geo.removeVertexAt(t)}reset(t,e){this._geo.reset(t,e)}getPoint2dAt(t){return this._geo.getPointAt(t)}getPoint3dAt(t){const e=this.getPoint2dAt(t);return new _(e.x,e.y,this._elevation)}get geometricExtents(){const t=this._geo.box;return new C({x:t.min.x,y:t.min.y,z:this._elevation},{x:t.max.x,y:t.max.y,z:this._elevation})}subGetGripPoints(){const t=new Array;for(let e=0;e<this.numberOfVertices;++e)t.push(this.getPoint3dAt(e));return t}subGetOsnapPoints(t,e,n,r){var h;const s=this._geo,o=this._elevation,a=s.numberOfVertices;if(a!==0)switch(t){case b.EndPoint:for(let l=0;l<a;l++){const c=s.getPointAt(l);r.push(new _(c.x,c.y,o))}break;case b.MidPoint:case b.Nearest:case b.Perpendicular:case b.Tangent:{const l=this.closed?a:a-1,c=[];for(let u=0;u<l;u++){const g=[];qe(s.getPointAt(u),s.getPointAt((u+1)%a),(h=s.vertices[u])==null?void 0:h.bulge,o,t,e,g),c.push(...g)}if(t===b.MidPoint)r.push(...c);else{const u=ht(e,c);u&&r.push(u)}break}}}transformBy(t){const e=t.determinant()<0;let n=this._elevation;return this._geo.vertices.forEach(r=>{const s=new _(r.x,r.y,this._elevation).applyMatrix4(t);r.x=s.x,r.y=s.y,n=s.z,e&&r.bulge!=null&&(r.bulge=-r.bulge)}),this._elevation=n,this._geo._boundingBoxNeedsUpdate=!0,this}get properties(){return{type:this.type,groups:[this.getGeneralProperties(),{groupName:"geometry",properties:[{name:"vertices",type:"array",editable:!1,itemSchema:{properties:[{name:"x",type:"float",editable:!0},{name:"y",type:"float",editable:!0}]},accessor:{get:()=>this._geo.vertices}},{name:"elevation",type:"float",editable:!0,accessor:{get:()=>this.elevation,set:t=>{this.elevation=t}}},{name:"length",type:"float",editable:!1,accessor:{get:()=>this._geo.length}}]},{groupName:"others",properties:[{name:"closed",type:"float",editable:!0,accessor:{get:()=>this.closed,set:t=>{this.closed=t}}}]}]}}subWorldDraw(t){const e=this._geo.getPoints(100),n=this.createWidthProfile();if(n!=null){const s=Qh(n,this.closed);if(s!=null){const o=t.subEntityTraits;return o.fillType={solidFill:!0,patternAngle:0,definitionLines:[]},t.area(s)}}const r=[];return e.forEach(s=>r.push(new _().set(s.x,s.y,this.elevation))),t.lines(r)}dxfOutFields(t){super.dxfOutFields(t),t.writeSubclassMarker("AcDbPolyline"),t.writeInt32(90,this.numberOfVertices),t.writeInt16(70,this.closed?1:0),t.writeDouble(38,this.elevation);for(let e=0;e<this.numberOfVertices;++e)t.writePoint2d(10,this.getPoint2dAt(e));return this}createWidthProfile(){const t=this._geo.vertices,e=t.length;if(e<2)return null;const n=this.closed?e:e-1,r=[];let s=!1;for(let o=0;o<n;o++){const a=t[o],h=t[(o+1)%e],l=Math.max(0,a.startWidth??0),c=Math.max(0,a.endWidth??0);(l>at||c>at)&&(s=!0);const u=this.sampleSegment(a,h),g=u.length-1;for(let d=0;d<=g;d++){if(d===0&&r.length>0||this.closed&&o===n-1&&d===g)continue;const p=g>0?d/g:0;r.push({x:u[d].x,y:u[d].y,width:ic(l,c,p)})}}return s&&r.length>=2?r:null}sampleSegment(t,e){if(t.bulge&&Math.abs(t.bulge)>at){const r=new pt(t,e,t.bulge).getPoints(32);if(r.length>1)return r.map(s=>new P(s.x,s.y))}return[new P(t.x,t.y),new P(e.x,e.y)]}static from2dPoints(t,e){const n=new ee;return t.forEach((r,s)=>n.addVertexAt(s,r)),n.closed=e,n}static fromGePolyline(t){const e=new ee;return t.vertices.forEach((n,r)=>{e.addVertexAt(r,new P(n.x,n.y),n.bulge??0)}),e.closed=t.closed,e}getOffsetCurves(t){const e=this.createOffsetCurve(t);return e?[e]:[]}getOffsetSideAtPoint(t){const e=this.numberOfVertices;let n=1/0,r=1;const s=this.closed?e:e-1;for(let o=0;o<s;o++){const a=this.getPoint2dAt(o),h=this.getPoint2dAt((o+1)%e),l=h.x-a.x,c=h.y-a.y,u=l*l+c*c;if(u===0)continue;const g=Math.max(0,Math.min(1,((t.x-a.x)*l+(t.y-a.y)*c)/u)),d=(t.x-a.x-g*l)**2+(t.y-a.y-g*c)**2;d<n&&(n=d,r=l*(t.y-a.y)-c*(t.x-a.x)>=0?1:-1)}return r}createOffsetCurve(t){const e=this._geo.offset(t);return e.length===0?null:ee.fromGePolyline(e[0])}};ee.typeName="Polyline";let lt=ee;function yi(i,t,e){const n=Rl(i,t,e);return n?lt.fromGePolyline(n):null}const at=1e-6,Ur=4;function Qh(i,t){if(i.length<2)return null;const e=tc(i,t);if(e.length<2)return null;const{left:n,right:r}=Jh(e,t);if(n.length<2||r.length<2)return null;const s=new Bt;if(t){if(!Ii(n)||!Ii(r))return null;const a=Math.abs(Gi(n)),h=Math.abs(Gi(r)),[l,c]=a>=h?[n,r]:[r,n];return s.add(new H(l,!0)),s.add(new H(c,!0)),s}const o=[...n,...r.reverse()];return Ii(o)?(s.add(new H(o,!0)),s):null}function Jh(i,t){const e=[],n=[];for(let r=0;r<i.length;r++){const s=i[r],o=Math.max(0,s.width)/2;if(o<=at)continue;const a=ec(i,r,t);a!=null&&(e.push({x:s.x+a.x*o,y:s.y+a.y*o}),n.push({x:s.x-a.x*o,y:s.y-a.y*o}))}return{left:e,right:n}}function tc(i,t){const e=[];if(i.forEach(n=>{const r=e[e.length-1];(!r||Math.abs(r.x-n.x)>at||Math.abs(r.y-n.y)>at||Math.abs(r.width-n.width)>at)&&e.push(n)}),t&&e.length>1){const n=e[0],r=e[e.length-1];Math.abs(n.x-r.x)<=at&&Math.abs(n.y-r.y)<=at&&e.pop()}return e}function ec(i,t,e){const n=i.length,r=i[t],s=i[(t-1+n)%n],o=i[(t+1)%n];let a=$r(r.x-s.x,r.y-s.y),h=$r(o.x-r.x,o.y-r.y);if(e||(t===0&&(a=h),t===n-1&&(h=a)),a==null&&h==null)return null;if(a==null)return Fe(h);if(h==null)return Fe(a);const l=Fe(a),c=Fe(h),u=l.x+c.x,g=l.y+c.y,d=Math.hypot(u,g);if(d<=at)return c;const p={x:u/d,y:g/d},f=Math.abs(p.x*c.x+p.y*c.y),y=f<=at?Ur:Math.min(1/f,Ur);return{x:p.x*y,y:p.y*y}}function $r(i,t){const e=Math.hypot(i,t);return e<=at?null:{x:i/e,y:t/e}}function Fe(i){return{x:-i.y,y:i.x}}function Gi(i){let t=0;const e=i.length;for(let n=0;n<e;n++){const r=i[n],s=i[(n+1)%e];t+=r.x*s.y-s.x*r.y}return t/2}function Ii(i){return i.length>=3&&Math.abs(Gi(i))>at}function ic(i,t,e){return i+(t-i)*e}var Uo=(i=>(i[i.SimplePoly=0]="SimplePoly",i[i.FitCurvePoly=1]="FitCurvePoly",i[i.QuadSplinePoly=2]="QuadSplinePoly",i[i.CubicSplinePoly=3]="CubicSplinePoly",i))(Uo||{});const Kn=class Kn extends q{get dxfTypeName(){return"POLYLINE"}constructor(t,e,n=0,r=!1,s=0,o=0,a=null){super(),this._polyType=t,this._elevation=n;const h=a&&(a==null?void 0:a.length)===e.length,l=e.map((c,u)=>({x:c.x,y:c.y,bulge:h?a[u]:void 0}));this._geo=new H(l,r)}get polyType(){return this._polyType}set polyType(t){this._polyType=t}get elevation(){return this._elevation}set elevation(t){this._elevation=t}get closed(){return this._geo.closed}get area(){return this._geo.area}set closed(t){this._geo.closed=t}get numberOfVertices(){return this._geo.numberOfVertices}getPointAt(t){return this._geo.getPointAt(t)}getBulgeAt(t){const e=this._geo.vertices[t];return(e==null?void 0:e.bulge)||0}get geometricExtents(){const t=this._geo.box;return new C({x:t.min.x,y:t.min.y,z:this._elevation},{x:t.max.x,y:t.max.y,z:this._elevation})}subGetGripPoints(){const t=new Array;for(let e=0;e<this._geo.numberOfVertices;++e){const n=this._geo.getPointAt(e);t.push(new _(n.x,n.y,this._elevation))}return t}subGetOsnapPoints(t,e,n,r){var h;const s=this._geo,o=this._elevation,a=s.numberOfVertices;if(a!==0)switch(t){case b.EndPoint:for(let l=0;l<a;l++){const c=s.getPointAt(l);r.push(new _(c.x,c.y,o))}break;case b.MidPoint:case b.Nearest:case b.Perpendicular:case b.Tangent:{const l=this.closed?a:a-1,c=[];for(let u=0;u<l;u++){const g=[];qe(s.getPointAt(u),s.getPointAt((u+1)%a),(h=s.vertices[u])==null?void 0:h.bulge,o,t,e,g),c.push(...g)}if(t===b.MidPoint)r.push(...c);else{const u=ht(e,c);u&&r.push(u)}break}}}transformBy(t){const e=t.determinant()<0;let n=this._elevation;return this._geo.vertices.forEach(r=>{const s=new _(r.x,r.y,this._elevation).applyMatrix4(t);r.x=s.x,r.y=s.y,n=s.z,e&&r.bulge!=null&&(r.bulge=-r.bulge)}),this._elevation=n,this._geo._boundingBoxNeedsUpdate=!0,this}get properties(){return{type:this.type,groups:[this.getGeneralProperties(),{groupName:"geometry",properties:[{name:"vertices",type:"array",editable:!1,itemSchema:{properties:[{name:"x",type:"float",editable:!0},{name:"y",type:"float",editable:!0}]},accessor:{get:()=>this._geo.vertices}},{name:"elevation",type:"float",editable:!0,accessor:{get:()=>this.elevation,set:t=>{this.elevation=t}}},{name:"length",type:"float",editable:!1,accessor:{get:()=>this._geo.length}}]},{groupName:"others",properties:[{name:"closed",type:"float",editable:!0,accessor:{get:()=>this.closed,set:t=>{this.closed=t}}}]}]}}subWorldDraw(t){const e=[];return this._geo.getPoints(100).forEach(r=>e.push(new _().set(r.x,r.y,this.elevation))),t.lines(e)}dxfOut(t,e=!1){super.dxfOut(t,e);for(let n=0;n<this.numberOfVertices;++n)t.writeStart("VERTEX"),t.writeHandle(5,this.database.generateHandle()),t.writeObjectId(330,this.objectId),t.writeSubclassMarker("AcDbEntity"),t.writeSubclassMarker("AcDbVertex"),t.writeSubclassMarker("AcDb2dVertex"),t.writePoint3d(10,{x:this.getPointAt(n).x,y:this.getPointAt(n).y,z:this.elevation}),t.writeDouble(42,this.getBulgeAt(n)),t.writeInt16(70,0);return t.writeStart("SEQEND"),t.writeHandle(5,this.database.generateHandle()),t.writeObjectId(330,this.objectId),t.writeSubclassMarker("AcDbEntity"),this}dxfOutFields(t){super.dxfOutFields(t),t.writeSubclassMarker("AcDb2dPolyline");let e=this.closed?1:0;return this.polyType===1&&(e|=2),this.polyType===2&&(e|=4),this.polyType===3&&(e|=8),t.writeInt16(66,this.numberOfVertices>0?1:0),t.writeInt16(70,e),t.writeDouble(10,0),t.writeDouble(20,0),t.writeDouble(30,this.elevation),this}getOffsetCurves(t){const e=this.createOffsetCurve(t);return e?[e]:[]}getOffsetSideAtPoint(t){const e=this.collectPath2d();return e.length<2?1:lt.from2dPoints(e,this.closed).getOffsetSideAtPoint(t)}createOffsetCurve(t){const e=this._geo.offset(t);return e.length===0?null:lt.fromGePolyline(e[0])}collectPath2d(){const t=Math.max(32,this.numberOfVertices*4);return this._geo.getPoints(t)}};Kn.typeName="2dPolyline";let Hi=Kn;var $o=(i=>(i[i.Vertex=0]="Vertex",i[i.CurveFitVertex=1]="CurveFitVertex",i[i.SplineFitVertex=8]="SplineFitVertex",i[i.SplineCtlVertex=9]="SplineCtlVertex",i))($o||{});const Qn=class Qn extends ${get dxfTypeName(){return"VERTEX"}constructor(){super(),this._position=new _,this._bulge=0,this._startWidth=0,this._endWidth=0,this._vertexType=0}get position(){return this._position}set position(t){this._position.copy(t)}get bulge(){return this._bulge}set bulge(t){this._bulge=t}get startWidth(){return this._startWidth}set startWidth(t){this._startWidth=t}get endWidth(){return this._endWidth}set endWidth(t){this._endWidth=t}get vertexType(){return this._vertexType}set vertexType(t){this._vertexType=t}get geometricExtents(){return new C().expandByPoint(this._position)}subGetGripPoints(){const t=new Array;return t.push(this._position),t}subGetOsnapPoints(t,e,n,r){(t===b.EndPoint||t===b.Node)&&r.push(this._position)}transformBy(t){return this._position.applyMatrix4(t),this}subWorldDraw(t){}dxfOutFields(t){return super.dxfOutFields(t),t.writeSubclassMarker("AcDbVertex"),t.writeSubclassMarker("AcDb2dVertex"),t.writePoint2d(10,this.position),t.writeDouble(40,this.startWidth),t.writeDouble(41,this.endWidth),t.writeDouble(42,this.bulge),t.writeInt16(70,this.vertexType),this}};Qn.typeName="2dVertex";let Wi=Qn;var qo=(i=>(i[i.SimplePoly=0]="SimplePoly",i[i.QuadSplinePoly=1]="QuadSplinePoly",i[i.CubicSplinePoly=2]="CubicSplinePoly",i))(qo||{});const oi=class oi extends q{get dxfTypeName(){return"POLYLINE"}constructor(t,e,n=!1){super(),this._polyType=t,this._geo=new H(e,n)}get polyType(){return this._polyType}set polyType(t){this._polyType=t}get closed(){return this._geo.closed}get area(){return 0}set closed(t){this._geo.closed=t}get numberOfVertices(){return this._geo.numberOfVertices}getPointAt(t){const e=this._geo.vertices[t];return new _(e.x,e.y,e.z||0)}get geometricExtents(){const t=this._geo.vertices.map(e=>new _(e.x,e.y,e.z||0));return new C().setFromPoints(t)}subGetGripPoints(){const t=new Array;for(let e=0;e<this._geo.numberOfVertices;++e)t.push(this.getPointAt(e));return t}subGetOsnapPoints(t,e,n,r){const s=Array.from({length:this._geo.numberOfVertices},(o,a)=>this.getPointAt(a));if(s.length!==0)switch(t){case b.EndPoint:r.push(...s);break;case b.MidPoint:case b.Nearest:case b.Perpendicular:{const o=[];for(let a=0;a<s.length-1;a++){const h=[];ue(s[a],s[a+1],t,e,h),o.push(...h)}if(t===b.MidPoint)r.push(...o);else{const a=ht(e,o);a&&r.push(a)}break}}}transformBy(t){return this._geo.vertices.forEach(e=>{const n=new _(e.x,e.y,e.z||0).applyMatrix4(t);e.x=n.x,e.y=n.y,e.z=n.z}),this._geo._boundingBoxNeedsUpdate=!0,this}get properties(){return{type:this.type,groups:[this.getGeneralProperties(),{groupName:"geometry",properties:[{name:"vertices",type:"array",editable:!1,itemSchema:{properties:[{name:"x",type:"float",editable:!0},{name:"y",type:"float",editable:!0},{name:"z",type:"float",editable:!0}]},accessor:{get:()=>this._geo.vertices}},{name:"length",type:"float",editable:!1,accessor:{get:()=>this._geo.length}}]},{groupName:"others",properties:[{name:"closed",type:"float",editable:!0,accessor:{get:()=>this.closed,set:t=>{this.closed=t}}}]}]}}subWorldDraw(t){const e=this._geo.vertices.map(n=>new _(n.x,n.y,n.z||0));return t.lines(e)}dxfOut(t,e=!1){super.dxfOut(t,e);for(let n=0;n<this.numberOfVertices;++n){const r=this.getPointAt(n);t.writeStart("VERTEX"),t.writeHandle(5,this.database.generateHandle()),t.writeObjectId(330,this.objectId),t.writeSubclassMarker("AcDbEntity"),t.writeSubclassMarker("AcDbVertex"),t.writeSubclassMarker("AcDb3dPolylineVertex"),t.writePoint3d(10,{x:r.x,y:r.y,z:r.z}),t.writeInt16(70,32)}return t.writeStart("SEQEND"),t.writeHandle(5,this.database.generateHandle()),t.writeObjectId(330,this.objectId),t.writeSubclassMarker("AcDbEntity"),this}dxfOutFields(t){super.dxfOutFields(t),t.writeSubclassMarker("AcDb3dPolyline");let e=this.closed?1:0;return e|=8,this.polyType===1&&(e|=16),this.polyType===2&&(e|=32),t.writeInt16(66,this.numberOfVertices>0?1:0),t.writeInt16(70,e),this}getOffsetCurves(t){const e=this.createOffsetCurve(t);return e?[e]:[]}getOffsetSideAtPoint(t){const e=this.collectPath2d();return e.length<2?1:lt.from2dPoints(e,this.closed).getOffsetSideAtPoint(t)}createOffsetCurve(t){const e=this._geo.offset(t);if(e.length===0)return null;const n=e[0],r=[];for(let s=0;s<n.numberOfVertices;s++){const o=n.getPointAt(s);r.push(new _(o.x,o.y,this.interpolateZ(o.x,o.y)))}return new oi(this.polyType,r,this.closed)}collectPath2d(){const t=Math.max(32,this.numberOfVertices*4);return this._geo.getPoints(t)}interpolateZ(t,e){const n=this.numberOfVertices;if(n<=0)return 0;let r=1/0,s=this.getPointAt(0).z;const o=this.closed?n:n-1;for(let a=0;a<o;a++){const h=this.getPointAt(a),l=this.getPointAt((a+1)%n),c=l.x-h.x,u=l.y-h.y,g=c*c+u*u;if(g===0)continue;const d=Math.max(0,Math.min(1,((t-h.x)*c+(e-h.y)*u)/g)),p=h.x+c*d,f=h.y+u*d,y=(t-p)**2+(e-f)**2;y<r&&(r=y,s=h.z+(l.z-h.z)*d)}return s}};oi.typeName="3dPolyline";let Di=oi;var Zo=(i=>(i[i.SimpleVertex=0]="SimpleVertex",i[i.ControlVertex=1]="ControlVertex",i[i.FitVertex=2]="FitVertex",i))(Zo||{});const Jn=class Jn extends ${get dxfTypeName(){return"VERTEX"}constructor(){super(),this._position=new _,this._vertexType=0}get position(){return this._position}set position(t){this._position.copy(t)}get vertexType(){return this._vertexType}set vertexType(t){this._vertexType=t}get geometricExtents(){return new C().expandByPoint(this._position)}subGetGripPoints(){const t=new Array;return t.push(this._position),t}subGetOsnapPoints(t,e,n,r){(t===b.EndPoint||t===b.Node)&&r.push(this._position)}transformBy(t){return this._position.applyMatrix4(t),this}subWorldDraw(t){}dxfOutFields(t){return super.dxfOutFields(t),t.writeSubclassMarker("AcDbVertex"),t.writeSubclassMarker("AcDb3dPolylineVertex"),t.writePoint3d(10,this.position),t.writeInt16(70,this.vertexType|32),this}};Jn.typeName="3dVertex";let Ui=Jn;const ai=class ai extends q{get dxfTypeName(){return"ARC"}constructor(t,e,n,r,s=w.Z_AXIS){super();const o=kn(s);this._geo=new pi(t,e,n,r,s,o)}get center(){return this._geo.center}set center(t){this._geo.center=t}get radius(){return this._geo.radius}set radius(t){this._geo.radius=t}get startAngle(){return this._geo.startAngle}set startAngle(t){this._geo.startAngle=t}get endAngle(){return this._geo.endAngle}set endAngle(t){this._geo.endAngle=t}get normal(){return this._geo.normal}set normal(t){this._geo.normal=t}get startPoint(){return this._geo.startPoint}get endPoint(){return this._geo.endPoint}get midPoint(){return this._geo.midPoint}get geometricExtents(){return this._geo.box}get closed(){return this._geo.closed}get area(){return this._geo.area}get properties(){return{type:this.type,groups:[this.getGeneralProperties(),{groupName:"geometry",properties:[{name:"centerX",type:"float",editable:!0,accessor:{get:()=>this.center.x,set:t=>{this.center.x=t}}},{name:"centerY",type:"float",editable:!0,accessor:{get:()=>this.center.y,set:t=>{this.center.y=t}}},{name:"centerZ",type:"float",editable:!0,accessor:{get:()=>this.center.z,set:t=>{this.center.z=t}}},{name:"radius",type:"float",editable:!0,accessor:{get:()=>this.radius,set:t=>{this.radius=t}}},{name:"startAngle",type:"float",editable:!0,accessor:{get:()=>this.startAngle,set:t=>{this.startAngle=t}}},{name:"endAngle",type:"float",editable:!0,accessor:{get:()=>this.endAngle,set:t=>{this.endAngle=t}}},{name:"normalX",type:"float",editable:!0,accessor:{get:()=>this.normal.x,set:t=>{this.normal.x=t}}},{name:"normalY",type:"float",editable:!0,accessor:{get:()=>this.normal.y,set:t=>{this.normal.y=t}}},{name:"normalZ",type:"float",editable:!0,accessor:{get:()=>this.normal.z,set:t=>{this.normal.z=t}}},{name:"arcLength",type:"float",editable:!1,accessor:{get:()=>this._geo.length}},{name:"totalAngle",type:"float",editable:!1,accessor:{get:()=>E.radToDeg(Math.abs(this._geo.deltaAngle))}},{name:"area",type:"float",editable:!1,accessor:{get:()=>this.area}}]}]}}subGetGripPoints(){const t=new Array;return t.push(this.center),t.push(this.startPoint),t.push(this.endPoint),t}subGetOsnapPoints(t,e,n,r){const s=this.startPoint,o=this.endPoint;switch(t){case b.EndPoint:r.push(s),r.push(o);break;case b.MidPoint:r.push(this.midPoint);break;case b.Center:case b.Centroid:r.push(this._geo.center);break;case b.Quadrant:{const a=[0,Math.PI/2,Math.PI,3*Math.PI/2];for(const h of a)E.isBetweenAngle(h,this.startAngle,this.endAngle)&&r.push(this._geo.getPointAtAngle(h));break}case b.Nearest:{const a=this._geo.nearestPoint(e);r.push(a)}break;case b.Perpendicular:{const a=this._geo.perpendicularPoints(e),h=ht(e,a);h&&r.push(h);break}case b.Tangent:{const a=this._geo.tangentPoints(e);r.push(...a);break}}}transformBy(t){return this._geo.transform(t),this}subWorldDraw(t){return t.circularArc(this._geo)}dxfOutFields(t){super.dxfOutFields(t);const e=ve(this.center,this.normal);return t.writeSubclassMarker("AcDbArc"),t.writePoint3d(10,e),t.writeDouble(40,this.radius),t.writeAngle(50,ki(this.center,this.startPoint,this.normal)),t.writeAngle(51,ki(this.center,this.endPoint,this.normal)),t.writeVector3d(210,this.normal),this}getOffsetCurves(t){const e=this.createOffsetCurve(t);return e?[e]:[]}getOffsetSideAtPoint(t){const e=this.center,n=this.radius;return Math.sqrt((t.x-e.x)**2+(t.y-e.y)**2)>=n?1:-1}createOffsetCurve(t){const e=this._geo.offset(t);return e?new ai(e.center,e.radius,e.startAngle,e.endAngle,e.normal):null}};ai.typeName="Arc";let $i=ai;const nc=1;function Ko(i){return i.replace(/\\[PpNn]/g,`
|
|
5
|
+
`).replace(/\\[A-Za-z][^;]*;/g,"").replace(/[{}]/g,"")}function Qo(i,t,e=1){if(!i||t<=0)return 0;const n=Ko(i),r=Math.max(...n.split(/\r\n|\r|\n/g).map(s=>s.length),0);return r===0?0:Math.max(t,r*t*nc*e)}function rc(i){const t=Ko(i);return Math.max(t.split(/\r\n|\r|\n/g).length,1)}function sc(i,t,e){if(t<=0||i<=0)return 0;if(i===1)return t;const n=Math.max(e,0);return t+(i-1)*t*n}function oc(i,t,e){switch(e){case exports.AcGiMTextAttachmentPoint.TopCenter:return{minX:-i/2,minY:-t,maxX:i/2,maxY:0};case exports.AcGiMTextAttachmentPoint.TopRight:return{minX:-i,minY:-t,maxX:0,maxY:0};case exports.AcGiMTextAttachmentPoint.MiddleLeft:return{minX:0,minY:-t/2,maxX:i,maxY:t/2};case exports.AcGiMTextAttachmentPoint.MiddleCenter:return{minX:-i/2,minY:-t/2,maxX:i/2,maxY:t/2};case exports.AcGiMTextAttachmentPoint.MiddleRight:return{minX:-i,minY:-t/2,maxX:0,maxY:t/2};case exports.AcGiMTextAttachmentPoint.BottomLeft:case exports.AcGiMTextAttachmentPoint.BaselineLeft:return{minX:0,minY:0,maxX:i,maxY:t};case exports.AcGiMTextAttachmentPoint.BottomCenter:case exports.AcGiMTextAttachmentPoint.BaselineCenter:return{minX:-i/2,minY:0,maxX:i/2,maxY:t};case exports.AcGiMTextAttachmentPoint.BottomRight:case exports.AcGiMTextAttachmentPoint.BaselineRight:return{minX:-i,minY:0,maxX:0,maxY:t};case exports.AcGiMTextAttachmentPoint.TopLeft:default:return{minX:0,minY:-t,maxX:i,maxY:0}}}function ac(i,t){let e;t&&t.lengthSq()>0?e=t.clone().normalize():e=new w(Math.cos(i),Math.sin(i),0);const n=new w(-e.y,e.x,e.z);return n.lengthSq()===0?n.set(0,1,0):n.normalize(),{xAxis:e,yAxis:n}}function Jo(i,t,e,n,r,s=0,o){if(e<=0&&n<=0)return i.expandByPoint(t),i;const a=oc(e,n,r),{xAxis:h,yAxis:l}=ac(s,o?new w(o.x,o.y,o.z||0):void 0),c=[[a.minX,a.minY],[a.maxX,a.minY],[a.maxX,a.maxY],[a.minX,a.maxY]];for(const[u,g]of c)i.expandByPoint(new _(t.x+h.x*u+l.x*g,t.y+h.y*u+l.y*g,t.z+h.z*u+l.z*g));return i}var ta=(i=>(i[i.LEFT=0]="LEFT",i[i.CENTER=1]="CENTER",i[i.RIGHT=2]="RIGHT",i[i.ALIGNED=3]="ALIGNED",i[i.MIDDLE=4]="MIDDLE",i[i.FIT=5]="FIT",i))(ta||{}),ea=(i=>(i[i.BASELINE=0]="BASELINE",i[i.BOTTOM=1]="BOTTOM",i[i.MIDDLE=2]="MIDDLE",i[i.TOP=3]="TOP",i))(ea||{});const tr=class tr extends ${get dxfTypeName(){return"TEXT"}constructor(){super(),this._textString="",this._height=0,this._thickness=1,this._position=new _,this._alignmentPoint=new _,this._rotation=0,this._oblique=0,this._horizontalMode=0,this._verticalModel=2,this._styleName="",this._widthFactor=1}get textString(){return this._textString}set textString(t){this._textString=t}get thickness(){return this._thickness}set thickness(t){this._thickness=t}get height(){return this._height}set height(t){this._height=t}get position(){return this._position}set position(t){this._position.copy(t)}get alignmentPoint(){return this._alignmentPoint}set alignmentPoint(t){this._alignmentPoint.copy(t)}get rotation(){return this._rotation}set rotation(t){this._rotation=t}get oblique(){return this._oblique}set oblique(t){this._oblique=t}get horizontalMode(){return this._horizontalMode}set horizontalMode(t){this._horizontalMode=t}get verticalMode(){return this._verticalModel}set verticalMode(t){this._verticalModel=t}get styleName(){return this._styleName}set styleName(t){this._styleName=t}get widthFactor(){return this._widthFactor}set widthFactor(t){this._widthFactor=t}get geometricExtents(){const t=new C,{anchor:e,attachmentPoint:n}=this.resolveTextAnchor(),r=Qo(this.textString,this.height,this.widthFactor);return Jo(t,e,r,this.height,n,this.rotation)}subGetGripPoints(){return[this._position]}subGetOsnapPoints(t,e,n,r){b.Insertion===t&&r.push(this._position)}transformBy(t){const e=this._position.clone(),n=this._position.clone().add(new w(Math.cos(this._rotation),Math.sin(this._rotation),0)),r=this._position.clone().add(new w(-Math.sin(this._rotation),Math.cos(this._rotation),0)),s=this._position.clone().add(new w(0,0,1));e.applyMatrix4(t),n.applyMatrix4(t),r.applyMatrix4(t),s.applyMatrix4(t);const o=new w(n).sub(e),a=new w(r).sub(e),h=new w(s).sub(e),l=a.length(),c=o.length(),u=h.length();return this._position.copy(e),c>0&&(this._rotation=Math.atan2(o.y,o.x)),l>0&&(this._height*=l,c>0&&(this._widthFactor*=c/l)),u>0&&(this._thickness*=u),this}get properties(){return{type:this.type,groups:[this.getGeneralProperties(),{groupName:"text",properties:[{name:"contents",type:"string",editable:!0,accessor:{get:()=>this.textString,set:t=>{this.textString=t}}},{name:"styleName",type:"string",editable:!0,accessor:{get:()=>this.styleName,set:t=>{this.styleName=t}}},{name:"textHeight",type:"float",editable:!0,accessor:{get:()=>this.height,set:t=>{this.height=t}}},{name:"rotation",type:"float",editable:!0,accessor:{get:()=>this.rotation,set:t=>{this.rotation=t}}},{name:"widthFactor",type:"float",editable:!0,accessor:{get:()=>this.widthFactor,set:t=>{this.widthFactor=t}}},{name:"oblique",type:"float",editable:!0,accessor:{get:()=>this.oblique,set:t=>{this.oblique=t}}}]},{groupName:"geometry",properties:[{name:"positionX",type:"float",editable:!0,accessor:{get:()=>this.position.x,set:t=>{this.position.x=t}}},{name:"positionY",type:"float",editable:!0,accessor:{get:()=>this.position.y,set:t=>{this.position.y=t}}},{name:"positionZ",type:"float",editable:!0,accessor:{get:()=>this.position.z,set:t=>{this.position.z=t}}}]}]}}getTextStyle(){const t=this.database.tables.textStyleTable.resolveAt(this.styleName);if(!t)throw new Error("No valid text style found in text style table.");return t.textStyle}subWorldDraw(t,e){const{anchor:n,attachmentPoint:r}=this.resolveTextAnchor(),s={text:this.textString,height:this.height,width:1/0,widthFactor:this.widthFactor,position:n,rotation:this.rotation,drawingDirection:exports.AcGiMTextFlowDirection.BOTTOM_TO_TOP,attachmentPoint:r};return t.mtext(s,this.getTextStyle(),e)}resolveTextAnchor(){const t=this.resolveAttachmentPoint();if(t===exports.AcGiMTextAttachmentPoint.BaselineLeft)return{anchor:this._position,attachmentPoint:t};const e=this._alignmentPoint;return e.x===0&&e.y===0&&e.z===0||e.x===this._position.x&&e.y===this._position.y&&e.z===this._position.z?{anchor:this._position,attachmentPoint:exports.AcGiMTextAttachmentPoint.BaselineLeft}:{anchor:e,attachmentPoint:t}}resolveAttachmentPoint(){const t=this._horizontalMode,e=this._verticalModel;if(t===4)return exports.AcGiMTextAttachmentPoint.MiddleCenter;if(t===3||t===5)return exports.AcGiMTextAttachmentPoint.BaselineLeft;switch(e){case 3:return t===1?exports.AcGiMTextAttachmentPoint.TopCenter:t===2?exports.AcGiMTextAttachmentPoint.TopRight:exports.AcGiMTextAttachmentPoint.TopLeft;case 2:return t===1?exports.AcGiMTextAttachmentPoint.MiddleCenter:t===2?exports.AcGiMTextAttachmentPoint.MiddleRight:exports.AcGiMTextAttachmentPoint.MiddleLeft;case 1:return t===1?exports.AcGiMTextAttachmentPoint.BottomCenter:t===2?exports.AcGiMTextAttachmentPoint.BottomRight:exports.AcGiMTextAttachmentPoint.BottomLeft;case 0:default:return t===1?exports.AcGiMTextAttachmentPoint.BaselineCenter:t===2?exports.AcGiMTextAttachmentPoint.BaselineRight:exports.AcGiMTextAttachmentPoint.BaselineLeft}}dxfOutFields(t){return super.dxfOutFields(t),t.writeSubclassMarker("AcDbText"),t.writePoint3d(10,this.position),t.writeDouble(39,this.thickness),t.writeDouble(40,this.height),t.writeString(1,this.textString),t.writeAngle(50,this.rotation),t.writeDouble(41,this.widthFactor),t.writeAngle(51,this.oblique),t.writeString(7,this.styleName),t.writeInt16(72,this.horizontalMode),t.writeInt16(73,this.verticalMode),t.writePoint3d(11,this.alignmentPoint),this}};tr.typeName="Text";let Le=tr;var nt=(i=>(i[i.Invisible=1]="Invisible",i[i.Const=2]="Const",i[i.Verifiable=4]="Verifiable",i[i.Preset=8]="Preset",i))(nt||{}),Mt=(i=>(i[i.MultiLine=2]="MultiLine",i[i.ConstMultiLine=4]="ConstMultiLine",i))(Mt||{});const er=class er extends Le{get dxfTypeName(){return"ATTDEF"}constructor(){super(),this._flags=0,this._prompt="",this._mtextFlag=0,this._tag="",this._fieldLength=0,this._lockPositionInBlock=!1,this._isReallyLocked=!1}get isInvisible(){return(this._flags&1)!==0}set isInvisible(t){t?this._flags|=1:this._flags&=-2}get prompt(){return this._prompt}set prompt(t){this._prompt=t}get isConst(){return(this._flags&2)!==0}set isConst(t){t?this._flags|=2:this._flags&=-3}get isVerifiable(){return(this._flags&4)!==0}set isVerifiable(t){t?this._flags|=4:this._flags&=-5}get isPreset(){return(this._flags&8)!==0}set isPreset(t){t?this._flags|=8:this._flags&=-9}get isMTextAttribute(){return(this._mtextFlag&2)!==0}set isMTextAttribute(t){t?this._mtextFlag|=2:this._mtextFlag&=-3}get isConstMTextAttribute(){return(this._mtextFlag&4)!==0}set isConstMTextAttribute(t){t?this._mtextFlag|=4:this._mtextFlag&=-5}get tag(){return this._tag}set tag(t){this._tag=t}get fieldLength(){return this._fieldLength}set fieldLength(t){this._fieldLength=t}get lockPositionInBlock(){return this._lockPositionInBlock}set lockPositionInBlock(t){this._lockPositionInBlock=t}get isReallyLocked(){return this._isReallyLocked}set isReallyLocked(t){this._isReallyLocked=t}get mtext(){return this._mtext}set mtext(t){this._mtext=t,this.isMTextAttribute=t!=null}subWorldDraw(t){}dxfOutFields(t){return super.dxfOutFields(t),t.writeSubclassMarker("AcDbAttributeDefinition"),t.writeString(3,this.prompt),t.writeString(2,this.tag),t.writeInt16(70,this.isInvisible?1:0),t.writeInt16(73,this.fieldLength),t.writeInt16(74,this.isReallyLocked?1:0),this}};er.typeName="AttDef";let qi=er;const ir=class ir extends Le{get dxfTypeName(){return"ATTRIB"}constructor(){super(),this._flags=0,this._mtextFlag=0,this._tag="",this._fieldLength=0,this._lockPositionInBlock=!1,this._isReallyLocked=!1}get isInvisible(){return(this._flags&nt.Invisible)!==0}set isInvisible(t){t?this._flags|=nt.Invisible:this._flags&=~nt.Invisible}get isConst(){return(this._flags&nt.Const)!==0}set isConst(t){t?this._flags|=nt.Const:this._flags&=~nt.Const}get isVerifiable(){return(this._flags&nt.Verifiable)!==0}set isVerifiable(t){t?this._flags|=nt.Verifiable:this._flags&=~nt.Verifiable}get isPreset(){return(this._flags&nt.Preset)!==0}set isPreset(t){t?this._flags|=nt.Preset:this._flags&=~nt.Preset}get isMTextAttribute(){return(this._mtextFlag&Mt.MultiLine)!==0}set isMTextAttribute(t){t?this._mtextFlag|=Mt.MultiLine:this._mtextFlag&=~Mt.MultiLine}get isConstMTextAttribute(){return(this._mtextFlag&Mt.ConstMultiLine)!==0}set isConstMTextAttribute(t){t?this._mtextFlag|=Mt.ConstMultiLine:this._mtextFlag&=~Mt.ConstMultiLine}get tag(){return this._tag}set tag(t){this._tag=t}get fieldLength(){return this._fieldLength}set fieldLength(t){this._fieldLength=t}get lockPositionInBlock(){return this._lockPositionInBlock}set lockPositionInBlock(t){this._lockPositionInBlock=t}get isReallyLocked(){return this._isReallyLocked}set isReallyLocked(t){this._isReallyLocked=t}get mtext(){return this._mtext}set mtext(t){this._mtext=t,this.isMTextAttribute=t!=null}dxfOutFields(t){return super.dxfOutFields(t),t.writeSubclassMarker("AcDbAttribute"),t.writeInt16(70,this.isInvisible?1:0),t.writeInt16(73,this.fieldLength),t.writeString(2,this.tag),t.writeInt16(74,this.isReallyLocked?1:0),this.mtext&&t.writeInt16(71,this.isMTextAttribute?1:0),this}};ir.typeName="Attrib";let Zi=ir;const ie=class ie extends ${get dxfTypeName(){return"INSERT"}constructor(t){super(),this._blockName=t,this._position=new _,this._rotation=0,this._normal=new w(0,0,1),this._scaleFactors=new _(1,1,1),this._attribs=new Map}get position(){return this._position}set position(t){this._position.copy(t)}get rotation(){return this._rotation}set rotation(t){this._rotation=t}get scaleFactors(){return this._scaleFactors}set scaleFactors(t){this._scaleFactors.copy(t)}get normal(){return this._normal}set normal(t){this._normal.copy(t).normalize()}get blockName(){return this._blockName}get blockTableRecord(){return this.database.tables.blockTable.getAt(this._blockName)}appendAttributes(t){this._attribs.set(t.objectId,t),t.ownerId=this.objectId}attributeIterator(){return new Te(this._attribs)}get blockTransform(){const t=this.blockTableRecord,e=(t==null?void 0:t.origin)??_.ORIGIN,n=new Y().makeTranslation(-e.x,-e.y,-e.z),r=new Y().makeScale(this._scaleFactors.x,this._scaleFactors.y,this._scaleFactors.z),s=new ae().setFromAxisAngle(w.Z_AXIS,this._rotation),o=new Y().makeRotationFromQuaternion(s),a=new Y().makeTranslation(this._position.x,this._position.y,this._position.z);return new Y().multiplyMatrices(a,o).multiply(r).multiply(n)}subGetGripPoints(){return[this._position]}subGetOsnapPoints(t,e,n,r,s,o){const a=o??new Y;b.Insertion===t?r.push(this.getInsertionPoint(a)):s?this.subEntityGetOsnapPoints(t,e,n,r,s,a):this.collectBlockOsnapPoints(t,e,n,r,a)}transformBy(t){const e=new Y().setFromExtrusionDirection(this._normal),n=new Y().makeRotationZ(this._rotation),r=new Y().multiplyMatrices(e,n),s=this._position.clone(),o=new _(this._scaleFactors.x,0,0).applyMatrix4(r).add(s),a=new _(0,this._scaleFactors.y,0).applyMatrix4(r).add(s),h=new _(0,0,this._scaleFactors.z).applyMatrix4(r).add(s);s.applyMatrix4(t),o.applyMatrix4(t),a.applyMatrix4(t),h.applyMatrix4(t);const l=new w(o).sub(s),c=new w(a).sub(s),u=new w(h).sub(s);let g=new w().crossVectors(l,c);g.lengthSq()===0?g=this._normal.clone().transformDirection(t):g.normalize();const p=new Y().setFromExtrusionDirection(g).clone().invert(),f=l.clone().applyMatrix4(p);return this._position.copy(s),this._normal.copy(g),this._rotation=Math.atan2(f.y,f.x),this._scaleFactors.set(l.length(),c.length(),u.length()),this._attribs.forEach(y=>y.transformBy(t)),this}get properties(){const t={type:this.type,groups:[this.getGeneralProperties(),{groupName:"geometry",properties:[{name:"blockName",type:"float",editable:!1,accessor:{get:()=>this._blockName}},{name:"positionX",type:"float",editable:!0,accessor:{get:()=>this.position.x,set:e=>{this.position.x=e}}},{name:"positionY",type:"float",editable:!0,accessor:{get:()=>this.position.y,set:e=>{this.position.y=e}}},{name:"positionZ",type:"float",editable:!0,accessor:{get:()=>this.position.z,set:e=>{this.position.z=e}}},{name:"rotation",type:"float",editable:!0,accessor:{get:()=>this.rotation,set:e=>{this.rotation=e}}},{name:"scaleFactorsX",type:"float",editable:!0,accessor:{get:()=>this.scaleFactors.x,set:e=>{this.scaleFactors.x=e}}},{name:"scaleFactorsY",type:"float",editable:!0,accessor:{get:()=>this.scaleFactors.y,set:e=>{this.scaleFactors.y=e}}},{name:"scaleFactorsZ",type:"float",editable:!0,accessor:{get:()=>this.scaleFactors.z,set:e=>{this.scaleFactors.z=e}}},{name:"normalX",type:"float",editable:!0,accessor:{get:()=>this.normal.x,set:e=>{this.normal.x=e}}},{name:"normalY",type:"float",editable:!0,accessor:{get:()=>this.normal.y,set:e=>{this.normal.y=e}}},{name:"normalZ",type:"float",editable:!0,accessor:{get:()=>this.normal.z,set:e=>{this.normal.z=e}}}]}]};if(this._attribs.size>0){const e={groupName:"attribute",properties:[]};t.groups.push(e),this._attribs.forEach(n=>{e.properties.push({name:n.tag,type:"string",editable:!n.isConst,skipTranslation:!0,accessor:{get:()=>n.textString,set:r=>{n.textString=r}}})})}return t}get geometricExtents(){const t=new C,e=this.blockTableRecord;if(e!=null){const r=e.newIterator();for(const s of r)t.union(s.geometricExtents)}const n=this.blockTransform;return t.applyMatrix4(n),t}subWorldDraw(t){const e=this.blockTableRecord;if(e!=null){const n=this.blockTransform,r=[];return this._attribs.forEach(o=>{if(!o.isInvisible){const a=o.worldDraw(t);a&&r.push(a)}}),Wt.instance.draw(t,e,this.rgbColor,r,!0,n,this._normal)}else return t.group([])}dxfOut(t,e=!1){super.dxfOut(t,e);let n=!1;for(const r of this.attributeIterator())n=!0,t.writeStart("ATTRIB"),r.dxfOut(t);return n&&(t.writeStart("SEQEND"),t.writeHandle(5,this.database.generateHandle()),t.writeObjectId(330,this.objectId),t.writeSubclassMarker("AcDbEntity")),this}collectBlockOsnapPoints(t,e,n,r,s){const o=this.blockTableRecord;if(!o)return;const a=new Y().multiplyMatrices(s,this.getFullInsertionTransform()),h=a.clone().invert(),l=new _(e).applyMatrix4(h),c=new _(n).applyMatrix4(h),u=[];for(const g of o.newIterator()){const d=[];if(g instanceof ie){g.subGetOsnapPoints(t,e,n,d,void 0,a),u.push(...d);continue}g.subGetOsnapPoints(t,l,c,d,void 0,a),d.forEach(p=>u.push(new _(p).applyMatrix4(a)))}if(u.length!==0)if(t===b.Nearest||t===b.Perpendicular||t===b.Tangent){const g=ht(e,u);g&&r.push(g)}else r.push(...u)}subEntityGetOsnapPoints(t,e,n,r,s,o,a=new Set){if(s===this.objectId||a.has(this.objectId))return!1;a.add(this.objectId);try{const h=this.blockTableRecord;if(h==null)return!1;const l=new Y().multiplyMatrices(o,this.getFullInsertionTransform());for(const c of h.newIterator()){if(c.objectId===s){const u=new _(e).applyMatrix4(l.clone().invert()),g=new _(n).applyMatrix4(l.clone().invert()),d=[];return c.subGetOsnapPoints(t,u,g,d,s,l),c instanceof ie?d.forEach(p=>{r.push(p.clone())}):d.forEach(p=>{r.push(new _(p).applyMatrix4(l))}),!0}if(c instanceof ie&&c.subEntityGetOsnapPoints(t,e,n,r,s,l,a))return!0}return!1}finally{a.delete(this.objectId)}}getInsertionPoint(t){var r;const e=((r=this.blockTableRecord)==null?void 0:r.origin)??_.ORIGIN,n=new Y().multiplyMatrices(t,this.getFullInsertionTransform());return new _(e).applyMatrix4(n)}getFullInsertionTransform(){const t=new Y().setFromExtrusionDirection(this._normal);return new Y().multiplyMatrices(t,this.blockTransform)}dxfOutFields(t){return super.dxfOutFields(t),t.writeSubclassMarker("AcDbBlockReference"),t.writePoint3d(10,this.position),t.writeString(2,this.blockName),t.writeDouble(41,this.scaleFactors.x),t.writeDouble(42,this.scaleFactors.y),t.writeDouble(43,this.scaleFactors.z),t.writeAngle(50,this.rotation),t.writeVector3d(210,this.normal),this}};ie.typeName="BlockReference";let he=ie;const li=class li extends q{get dxfTypeName(){return"CIRCLE"}constructor(t,e,n=w.Z_AXIS){super();const r=kn(n);this._geo=new pi(t,e,0,B,n,r)}get center(){return this._geo.center}set center(t){this._geo.center=t}get radius(){return this._geo.radius}set radius(t){this._geo.radius=t}get normal(){return this._geo.normal}get geometricExtents(){return this._geo.box}get closed(){return this._geo.closed}get area(){return this._geo.area}subGetOsnapPoints(t,e,n,r){switch(t){case b.Center:case b.Centroid:r.push(this._geo.center);break;case b.Quadrant:r.push(this._geo.getPointAtAngle(0)),r.push(this._geo.getPointAtAngle(Math.PI/2)),r.push(this._geo.getPointAtAngle(Math.PI)),r.push(this._geo.getPointAtAngle(Math.PI/2*3));break;case b.Nearest:{const s=this._geo.nearestPoint(e);r.push(s)}break;case b.Tangent:{const s=this._geo.tangentPoints(e);r.push(...s);break}case b.Perpendicular:{const s=this._geo.perpendicularPoints(e),o=ht(e,s);o&&r.push(o);break}}}get properties(){return{type:this.type,groups:[this.getGeneralProperties(),{groupName:"geometry",properties:[{name:"centerX",type:"float",editable:!0,accessor:{get:()=>this.center.x,set:t=>{this.center.x=t}}},{name:"centerY",type:"float",editable:!0,accessor:{get:()=>this.center.y,set:t=>{this.center.y=t}}},{name:"centerZ",type:"float",editable:!0,accessor:{get:()=>this.center.z,set:t=>{this.center.z=t}}},{name:"radius",type:"float",editable:!0,accessor:{get:()=>this.radius,set:t=>{this.radius=t}}},{name:"normalX",type:"float",editable:!0,accessor:{get:()=>this.normal.x,set:t=>{this.normal.x=t}}},{name:"normalY",type:"float",editable:!0,accessor:{get:()=>this.normal.y,set:t=>{this.normal.y=t}}},{name:"normalZ",type:"float",editable:!0,accessor:{get:()=>this.normal.z,set:t=>{this.normal.z=t}}},{name:"diameter",type:"float",editable:!1,accessor:{get:()=>this._geo.radius*2}},{name:"perimeter",type:"float",editable:!1,accessor:{get:()=>this._geo.length}},{name:"area",type:"float",editable:!1,accessor:{get:()=>this.area}}]}]}}subGetGripPoints(){const t=new Array;return t.push(this.center),t}transformBy(t){return this._geo.transform(t),this}subWorldDraw(t){return t.circularArc(this._geo)}dxfOutFields(t){super.dxfOutFields(t);const e=ve(this.center,this.normal);return t.writeSubclassMarker("AcDbCircle"),t.writePoint3d(10,e),t.writeDouble(40,this.radius),t.writeVector3d(210,this.normal),this}getOffsetCurves(t){const e=this.createOffsetCurve(t);return e?[e]:[]}getOffsetSideAtPoint(t){const e=this.center,n=this.radius;return Math.sqrt((t.x-e.x)**2+(t.y-e.y)**2)>=n?1:-1}createOffsetCurve(t){const e=this._geo.offset(t);return e?new li(e.center,e.radius,e.normal):null}};li.typeName="Circle";let Ki=li;const hi=class hi extends q{get dxfTypeName(){return"ELLIPSE"}constructor(t,e,n,r,s,o,a){super(),this._geo=new Ds(t,e,n,r,s,o,a)}get center(){return this._geo.center}set center(t){this._geo.center=t}get majorAxis(){return this._geo.majorAxis}get majorAxisRadius(){return this._geo.majorAxisRadius}set majorAxisRadius(t){this._geo.majorAxisRadius=t}get minorAxisRadius(){return this._geo.minorAxisRadius}set minorAxisRadius(t){this._geo.minorAxisRadius=t}get startAngle(){return this._geo.startAngle}set startAngle(t){this._geo.startAngle=t}get endAngle(){return this._geo.endAngle}set endAngle(t){this._geo.endAngle=t}get normal(){return this._geo.normal}set normal(t){this._geo.normal=t}get geometricExtents(){return this._geo.box}get closed(){return this._geo.closed}get area(){return this._geo.area}subGetGripPoints(){const t=new Array;return t.push(this._geo.center),t.push(this._geo.startPoint),t.push(this._geo.endPoint),t}subGetOsnapPoints(t,e,n,r){switch(t){case b.EndPoint:this.closed||(r.push(this._geo.startPoint),r.push(this._geo.endPoint));break;case b.MidPoint:this.closed||r.push(this._geo.midPoint);break;case b.Center:case b.Centroid:r.push(this._geo.center);break;case b.Quadrant:this.closed&&(r.push(this._geo.getPointAtAngle(0)),r.push(this._geo.getPointAtAngle(Math.PI/2)),r.push(this._geo.getPointAtAngle(Math.PI)),r.push(this._geo.getPointAtAngle(Math.PI/2*3)));break;case b.Nearest:r.push(this._geo.nearestPoint(e));break;case b.Tangent:r.push(...this._geo.tangentPoints(e));break;case b.Perpendicular:{const s=this._geo.perpendicularPoints(e),o=ht(e,s);o&&r.push(o);break}}}transformBy(t){return this._geo.transform(t),this}get properties(){return{type:this.type,groups:[this.getGeneralProperties(),{groupName:"geometry",properties:[{name:"centerX",type:"float",editable:!0,accessor:{get:()=>this.center.x,set:t=>{this.center.x=t}}},{name:"centerY",type:"float",editable:!0,accessor:{get:()=>this.center.y,set:t=>{this.center.y=t}}},{name:"centerZ",type:"float",editable:!0,accessor:{get:()=>this.center.z,set:t=>{this.center.z=t}}},{name:"majorAxisRadius",type:"float",editable:!0,accessor:{get:()=>this.majorAxisRadius,set:t=>{this.center.x=t}}},{name:"minorAxisRadius",type:"float",editable:!0,accessor:{get:()=>this.minorAxisRadius,set:t=>{this.minorAxisRadius=t}}},{name:"startAngle",type:"float",editable:!0,accessor:{get:()=>this.startAngle,set:t=>{this.startAngle=t}}},{name:"endAngle",type:"float",editable:!0,accessor:{get:()=>this.endAngle,set:t=>{this.endAngle=t}}},{name:"normalX",type:"float",editable:!0,accessor:{get:()=>this.normal.x,set:t=>{this.normal.x=t}}},{name:"normalY",type:"float",editable:!0,accessor:{get:()=>this.normal.y,set:t=>{this.normal.y=t}}},{name:"normalZ",type:"float",editable:!0,accessor:{get:()=>this.normal.z,set:t=>{this.normal.z=t}}},{name:"length",type:"float",editable:!1,accessor:{get:()=>this._geo.length}},{name:"area",type:"float",editable:!1,accessor:{get:()=>this.area}}]}]}}subWorldDraw(t){return t.ellipticalArc(this._geo)}dxfOutFields(t){super.dxfOutFields(t),t.writeSubclassMarker("AcDbEllipse"),t.writePoint3d(10,this.center);const e=this._geo.majorAxis,n=this.majorAxisRadius;return t.writePoint3d(11,{x:e.x*n,y:e.y*n,z:e.z*n}),t.writeVector3d(210,this.normal),t.writeDouble(40,this.minorAxisRadius/this.majorAxisRadius),t.writeDouble(41,this.startAngle),t.writeDouble(42,this.endAngle),this}getOffsetCurves(t){const e=this.createOffsetCurve(t);return e?[e]:[]}getOffsetSideAtPoint(t){const e=this.center,n=t.x-e.x,r=t.y-e.y,s=this.majorAxis,o=Math.hypot(s.x,s.y)||1,a=this.minorAxisRadius/this.majorAxisRadius*o||1,h=s.x/o,l=s.y/o,c=-l,u=h,g=n*h+r*l,d=n*c+r*u;return(g/o)**2+(d/a)**2>=1?1:-1}createOffsetCurve(t){const e=this._geo.offset(t);return e?new hi(e.center,e.normal,e.majorAxis,e.majorAxisRadius,e.minorAxisRadius,e.startAngle,e.endAngle):null}};hi.typeName="Ellipse";let Qi=hi;const nr=class nr extends ${get dxfTypeName(){return"3DFACE"}constructor(){super(),this._vertices=[new _,new _,new _],this._edgeInvisibilities=0}getVertexAt(t){return t<0?this._vertices[0]:t>this._vertices.length?this._vertices[this._vertices.length-1]:this._vertices[t]}setVertexAt(t,e){if(t<0&&this._vertices[0].copy(e),t>=3)return this._vertices.length===3&&this._vertices.push(new _),this._vertices[3].copy(e);this._vertices[t].copy(e)}setEdgeInvisibilities(t){this._edgeInvisibilities=t}isEdgeVisibleAt(t){if(t<0||t>3)throw new Error("Index out of range");return(this._edgeInvisibilities&1<<t)===0}makeEdgeInvisibleAt(t){if(t<0||t>3)throw new Error("Index out of range");this._edgeInvisibilities=this._edgeInvisibilities|1<<t}get geometricExtents(){return new C().setFromPoints(this._vertices)}get area(){const t=[this.getVertexAt(0),this.getVertexAt(1),this.getVertexAt(2)],e=this.getVertexAt(3);return(e.x!==t[2].x||e.y!==t[2].y||e.z!==t[2].z)&&t.push(e),Xs(t)}subGetGripPoints(){const t=new Array;return t.push(...this._vertices),t}subGetOsnapPoints(t,e,n,r){zn(this._vertices,!0,t,e,r)}transformBy(t){return this._vertices.forEach(e=>e.applyMatrix4(t)),this}subWorldDraw(t){const e=this._vertices.length,n=new Float32Array(e*3),r=new Uint16Array(e*2);for(let s=0;s<e;s++)n[s*3]=this._vertices[s].x,n[s*3+1]=this._vertices[s].y,n[s*3+2]=this._vertices[s].z,this.isEdgeVisibleAt(s)&&(r[s*2]=s,r[s*2+1]=(s+1)%4);return t.lineSegments(n,3,r)}dxfOutFields(t){super.dxfOutFields(t);const e=this.getVertexAt(0),n=this.getVertexAt(1),r=this.getVertexAt(2),s=this.getVertexAt(3);t.writeSubclassMarker("AcDbFace"),t.writePoint3d(10,e),t.writePoint3d(11,n),t.writePoint3d(12,r),t.writePoint3d(13,s);let o=0;for(let a=0;a<4;++a)this.isEdgeVisibleAt(a)||(o|=1<<a);return t.writeInt16(70,o),this}};nr.typeName="Face";let Ji=nr;var ia=(i=>(i[i.MText=0]="MText",i[i.Fcf=1]="Fcf",i[i.BlockReference=2]="BlockReference",i[i.NoAnnotation=3]="NoAnnotation",i))(ia||{});const rr=class rr extends q{get dxfTypeName(){return"LEADER"}constructor(){super(),this._isSplined=!1,this._updated=!1,this._hasArrowHead=!1,this._vertices=[],this._dimensionStyle="",this._hasHookLine=!1,this._isHookLineSameDirection=!1,this._annoType=3,this._textHeight=0,this._textWidth=0,this._associatedAnnotation="",this._normal=new w(0,0,1),this._horizontalDirection=new w(1,0,0)}get isSplined(){return this._isSplined}set isSplined(t){this._isSplined=t}get hasArrowHead(){return this._hasArrowHead}set hasArrowHead(t){this._hasArrowHead=t}get hasHookLine(){return this._hasHookLine}set hasHookLine(t){this._hasHookLine=t}get isHookLineSameDirection(){return this._isHookLineSameDirection}set isHookLineSameDirection(t){this._isHookLineSameDirection=t}get numVertices(){return this._vertices.length}get vertices(){return this._vertices.map(t=>t.clone())}get dimensionStyle(){return this._dimensionStyle}set dimensionStyle(t){this._dimensionStyle=t}get annoType(){return this._annoType}set annoType(t){this._annoType=t}get textHeight(){return this._textHeight}set textHeight(t){this._textHeight=t}get textWidth(){return this._textWidth}set textWidth(t){this._textWidth=t}get byBlockColor(){return this._byBlockColor}set byBlockColor(t){this._byBlockColor=t}get associatedAnnotation(){return this._associatedAnnotation}set associatedAnnotation(t){this._associatedAnnotation=t}get normal(){return this._normal}set normal(t){this._normal.copy(t)}get horizontalDirection(){return this._horizontalDirection}set horizontalDirection(t){this._horizontalDirection.copy(t)}get offsetFromBlock(){var t;return(t=this._offsetFromBlock)==null?void 0:t.clone()}set offsetFromBlock(t){this._offsetFromBlock=t?new w(t):void 0}get offsetFromAnnotation(){var t;return(t=this._offsetFromAnnotation)==null?void 0:t.clone()}set offsetFromAnnotation(t){this._offsetFromAnnotation=t?new w(t):void 0}appendVertex(t){this._vertices.push(new _().copy(t)),this._updated=!0}setVertexAt(t,e){if(t<0||t>=this._vertices.length)throw new Error("The vertex index is out of range!");return this._vertices[t].copy(e),this._updated=!0,this}vertexAt(t){if(t<0||t>=this._vertices.length)throw new Error("The vertex index is out of range!");return this._vertices[t].clone()}subGetGripPoints(){return this._vertices.map(t=>t.clone())}subGetOsnapPoints(t,e,n,r){if(this.numVertices===0)return;if(this.isSplined&&this.splineGeo){switch(t){case b.EndPoint:r.push(this._vertices[0]),r.push(this._vertices[this.numVertices-1]);break;case b.Nearest:r.push(this.splineGeo.nearestPoint(e));break}return}const s=this._vertices;switch(t){case b.EndPoint:r.push(...s);break;case b.MidPoint:case b.Nearest:case b.Perpendicular:{const o=[];for(let a=0;a<s.length-1;a++){const h=[];ue(s[a],s[a+1],t,e,h),o.push(...h)}if(t===b.MidPoint)r.push(...o);else{const a=ht(e,o);a&&r.push(a)}break}}}get geometricExtents(){return this._isSplined&&this.splineGeo?this.splineGeo.calculateBoundingBox():new C().setFromPoints(this._vertices)}get closed(){return!1}set closed(t){}get area(){return 0}transformBy(t){return this._vertices.forEach(e=>e.applyMatrix4(t)),this.transformVector(this._normal,t),this.transformVector(this._horizontalDirection,t),this._offsetFromBlock&&this.transformVector(this._offsetFromBlock,t),this._offsetFromAnnotation&&this.transformVector(this._offsetFromAnnotation,t),this._splineGeo?(this._splineGeo.transform(t),this._updated=!1):this._updated=!0,this}subWorldDraw(t){if(this.isSplined&&this.splineGeo){const e=this.splineGeo.getPoints(100);return t.lines(e)}else return t.lines(this._vertices)}get splineGeo(){return this.createSplineIfNeeded(),this._splineGeo}createSplineIfNeeded(){this.isSplined&&this.numVertices>=2&&(this._splineGeo==null||this._updated)&&(this._splineGeo=new Yt(this._vertices,"Uniform"),this._updated=!1)}dxfOutFields(t){super.dxfOutFields(t),t.writeSubclassMarker("AcDbLeader"),t.writeString(3,this.dimensionStyle),t.writeInt16(71,this.hasArrowHead?1:0),t.writeInt16(72,this.isSplined?1:0),t.writeInt16(73,this.annoType),t.writeInt16(74,this.isHookLineSameDirection?1:0),t.writeInt16(75,this.hasHookLine?1:0),t.writeInt16(76,this.numVertices),this.textHeight!==0&&t.writeDouble(40,this.textHeight),this.textWidth!==0&&t.writeDouble(41,this.textWidth),this.byBlockColor!=null&&t.writeInt16(77,this.byBlockColor),this.associatedAnnotation&&t.writeHandle(340,this.associatedAnnotation);for(const e of this.vertices)t.writePoint3d(10,e);return t.writeVector3d(210,this.normal),t.writeVector3d(211,this.horizontalDirection),this._offsetFromBlock&&t.writeVector3d(212,this._offsetFromBlock),this._offsetFromAnnotation&&t.writeVector3d(213,this._offsetFromAnnotation),this}getOffsetCurves(t){const e=this.createOffsetCurve(t);return e?[e]:[]}getOffsetSideAtPoint(t){const e=this.collectPath2d();return e.length<2?1:lt.from2dPoints(e,!1).getOffsetSideAtPoint(t)}createOffsetCurve(t){return yi(this.collectPath2d(),!1,t)}collectPath2d(){return this.isSplined&&this.splineGeo?this.splineGeo.getPoints(64).map(t=>new P(t.x,t.y)):this._vertices.map(t=>new P(t.x,t.y))}transformVector(t,e){const n=new _,r=new _(t.x,t.y,t.z);n.applyMatrix4(e),r.applyMatrix4(e),t.set(r.x-n.x,r.y-n.y,r.z-n.z)}};rr.typeName="Leader";let tn=rr;const ci=class ci extends q{get dxfTypeName(){return"LINE"}constructor(t,e){super(),this._geo=new xt(t,e)}get startPoint(){return this._geo.startPoint}set startPoint(t){this._geo.startPoint=t}get endPoint(){return this._geo.endPoint}set endPoint(t){this._geo.endPoint=t}get midPoint(){return this._geo.midPoint}get geometricExtents(){return this._geo.box}get closed(){return!1}get area(){return 0}get properties(){return{type:this.type,groups:[this.getGeneralProperties(),{groupName:"geometry",properties:[{name:"startX",type:"float",editable:!0,accessor:{get:()=>this.startPoint.x,set:t=>{this.startPoint.x=t}}},{name:"startY",type:"float",editable:!0,accessor:{get:()=>this.startPoint.y,set:t=>{this.startPoint.y=t}}},{name:"startZ",type:"float",editable:!0,accessor:{get:()=>this.startPoint.z,set:t=>{this.startPoint.z=t}}},{name:"endX",type:"float",editable:!0,accessor:{get:()=>this.endPoint.x,set:t=>{this.endPoint.x=t}}},{name:"endY",type:"float",editable:!0,accessor:{get:()=>this.endPoint.y,set:t=>{this.endPoint.y=t}}},{name:"endZ",type:"float",editable:!0,accessor:{get:()=>this.endPoint.z,set:t=>{this.endPoint.z=t}}},{name:"length",type:"float",editable:!1,accessor:{get:()=>this._geo.length}}]}]}}subGetGripPoints(){const t=new Array;return t.push(this.midPoint),t.push(this.startPoint),t.push(this.endPoint),t}subGetOsnapPoints(t,e,n,r){const s=this.startPoint,o=this.endPoint;switch(t){case b.EndPoint:r.push(s),r.push(o);break;case b.MidPoint:r.push(this.midPoint);break;case b.Nearest:{const a=this._geo.project(e);r.push(a)}break;case b.Perpendicular:{const a=this._geo.perpPoint(e);r.push(a)}break;case b.Tangent:break}}transformBy(t){return this._geo.transform(t),this}subWorldDraw(t){const e=this.startPoint,n=this.endPoint,r=[new _(e.x,e.y,0),new _(n.x,n.y,0)];return t.lines(r)}dxfOutFields(t){return super.dxfOutFields(t),t.writeSubclassMarker("AcDbLine"),t.writePoint3d(10,this.startPoint),t.writePoint3d(11,this.endPoint),this}getOffsetCurves(t){const e=this._geo.offset(t);return[new ci(e.startPoint,e.endPoint)]}getOffsetSideAtPoint(t){const e=this.startPoint,n=this.endPoint;return(n.x-e.x)*(t.y-e.y)-(n.y-e.y)*(t.x-e.x)>=0?1:-1}};ci.typeName="Line";let Qe=ci;var na=(i=>(i[i.Top=0]="Top",i[i.Zero=1]="Zero",i[i.Bottom=2]="Bottom",i))(na||{}),ra=(i=>(i[i.HasVertex=1]="HasVertex",i[i.Closed=2]="Closed",i[i.SuppressStartCaps=4]="SuppressStartCaps",i[i.SuppressEndCaps=8]="SuppressEndCaps",i))(ra||{});const sr=class sr extends ${get dxfTypeName(){return"MLINE"}constructor(){super(),this._styleName="",this._styleObjectHandle="",this._scale=1,this._justification=1,this._flags=0,this._styleCount=0,this._startPosition=new _,this._normal=new w(0,0,1),this._segments=[]}get styleName(){return this._styleName||this.getDefaultStyleName()}set styleName(t){this._styleName=t}get styleObjectHandle(){return this._styleObjectHandle}set styleObjectHandle(t){this._styleObjectHandle=t}get scale(){return this._scale}set scale(t){this._scale=t}get justification(){return this._justification}set justification(t){this._justification=t}get flags(){return this._flags}set flags(t){this._flags=t}get styleCount(){return this._styleCount}set styleCount(t){this._styleCount=Math.max(0,t)}get startPosition(){return this._startPosition}set startPosition(t){this._startPosition.copy(t)}get normal(){return this._normal}set normal(t){this._normal.copy(t)}get segments(){return this._segments.map(t=>this.cloneSegment(t))}set segments(t){this._segments=t.map(e=>this.createSegment(e)),this.updateHasVertexFlag()}get vertexCount(){return this._segments.length}get closed(){return(this._flags&2)!==0}set closed(t){this.setFlag(2,t)}get suppressStartCaps(){return(this._flags&4)!==0}set suppressStartCaps(t){this.setFlag(4,t)}get suppressEndCaps(){return(this._flags&8)!==0}set suppressEndCaps(t){this.setFlag(8,t)}appendSegment(t){this._segments.push(this.createSegment(t)),this.updateHasVertexFlag()}clearSegments(){this._segments=[],this.updateHasVertexFlag()}get geometricExtents(){const t=this.collectGeometryPoints();return new C().setFromPoints(t)}transformBy(t){return this._startPosition.applyMatrix4(t),this._segments.forEach(e=>{e.position.applyMatrix4(t),this.transformVector(e.direction,t),this.transformVector(e.miterDirection,t)}),this.transformVector(this._normal,t),this}get properties(){return{type:this.type,groups:[this.getGeneralProperties(),{groupName:"mline",properties:[{name:"styleName",type:"string",editable:!0,accessor:{get:()=>this.styleName,set:t=>{this.styleName=t}}},{name:"scale",type:"float",editable:!0,accessor:{get:()=>this.scale,set:t=>{this.scale=t}}},{name:"justification",type:"int",editable:!0,accessor:{get:()=>this.justification,set:t=>{this.justification=t}}},{name:"closed",type:"boolean",editable:!0,accessor:{get:()=>this.closed,set:t=>{this.closed=t}}},{name:"vertexCount",type:"int",editable:!1,accessor:{get:()=>this.vertexCount}}]}]}}subGetOsnapPoints(t,e,n,r){const s=[this._startPosition,...this._segments.map(o=>o.position)];if(s.length!==0)switch(t){case b.EndPoint:r.push(...s);break;case b.MidPoint:case b.Nearest:case b.Perpendicular:{const o=[];for(let a=0;a<s.length-1;a++){const h=[];ue(s[a],s[a+1],t,e,h),o.push(...h)}if(t===b.MidPoint)r.push(...o);else{const a=ht(e,o);a&&r.push(a)}break}}}subWorldDraw(t){if(this._segments.length===0)return;const e=[],n=this.getMLineStyle(),r=this.getRenderableElementCount(n),s=t.subEntityTraits,o=s.color,a=s.rgbColor,h=s.lineType,l=s.fillType,c=s.drawOrder,u=this.createFillArea(n,r);if(u&&(s.color=o,s.rgbColor=a,this.applyFillTraits(n,s),s.fillType={solidFill:!0,patternAngle:0,definitionLines:[]},s.drawOrder=-1,e.push(t.area(u)),s.fillType=l,s.drawOrder=c),r<=0){const g=this.getReferencePath();g.length>=2&&e.push(t.lines(g))}else{for(let g=0;g<r;g++){s.color=o,s.rgbColor=a,s.lineType=h,this.applyStyleElementTraits(n,g,s);const d=this.getElementPath(g,n);d.length>=2&&e.push(t.lines(d))}this.appendStyleDrivenJointAndCapEntities(t,e,n,r,o,a,h)}if(s.color=o,s.rgbColor=a,s.lineType=h,s.fillType=l,s.drawOrder=c,e.length!==0)return e.length===1?e[0]:t.group(e)}dxfOutFields(t){return super.dxfOutFields(t),t.writeSubclassMarker("AcDbMline"),t.writeString(2,this.styleName),t.writeHandle(340,this._styleObjectHandle),t.writeDouble(40,this._scale),t.writeInt16(70,this._justification),t.writeInt16(71,this._flags),t.writeInt16(72,this.vertexCount),t.writeInt16(73,this._styleCount),t.writePoint3d(10,this._startPosition),t.writeVector3d(210,this._normal),this._segments.forEach(e=>{t.writePoint3d(11,e.position),t.writeVector3d(12,e.direction),t.writeVector3d(13,e.miterDirection),e.elements.forEach(n=>{t.writeInt16(74,n.parameterCount),n.parameters.forEach(r=>t.writeDouble(41,r)),t.writeInt16(75,n.fillCount),n.fillParameters.forEach(r=>t.writeDouble(42,r))})}),this}setFlag(t,e){e?this._flags|=t:this._flags&=~t}updateHasVertexFlag(){this.setFlag(1,this._segments.length>0)}createSegment(t){var e;return{position:new _().copy(t.position),direction:new w().copy(t.direction),miterDirection:new w().copy(t.miterDirection),elements:((e=t.elements)==null?void 0:e.map(n=>this.createElement(n)))??[]}}createElement(t){const e=t.parameters?[...t.parameters]:[],n=t.fillParameters?[...t.fillParameters]:[];return{parameterCount:t.parameterCount??e.length,parameters:e,fillCount:t.fillCount??n.length,fillParameters:n}}cloneSegment(t){return{position:t.position.clone(),direction:t.direction.clone(),miterDirection:t.miterDirection.clone(),elements:t.elements.map(e=>({parameterCount:e.parameterCount,parameters:[...e.parameters],fillCount:e.fillCount,fillParameters:[...e.fillParameters]}))}}collectGeometryPoints(){const t=[this._startPosition];if(this._segments.length===0)return t;const e=this.getMLineStyle(),n=this.getRenderableElementCount(e);if(n<=0)return this._segments.forEach(r=>t.push(r.position)),t;for(let r=0;r<n;r++)t.push(...this.getElementPath(r,e));return t}getRenderableElementCount(t){const e=(t==null?void 0:t.elementCount)??0;return Math.max(this._styleCount,e,...this._segments.map(n=>n.elements.length),0)}getReferencePath(){const t=[this._startPosition.clone(),...this._segments.map(e=>e.position.clone())];return this.closePathIfNeeded(t)}getElementPath(t,e){const n=[],r=this._segments[0];return n.push(this.getElementBoundaryPoint("start",r,t,e)),this._segments.forEach(s=>{n.push(this.offsetPoint(s.position,s.miterDirection,this.getElementMiterOffset(s,t,e)))}),n[n.length-1]=this.getElementBoundaryPoint("end",this._segments[this._segments.length-1],t,e),this.closePathIfNeeded(n)}getElementMiterOffset(t,e,n){var s;const r=t.elements[e];return(s=r==null?void 0:r.parameters)!=null&&s.length?r.parameters[0]:this.getStyleElementOffset(e,n)}getElementBoundaryPoint(t,e,n,r){const s=this.getElementMiterOffset(e,n,r),o=t==="start"?this._startPosition:e.position,a=this.offsetPoint(o,e.miterDirection,s);if(!this.shouldApplyCapCutAtSide(t,r))return a;const h=t==="start"?r==null?void 0:r.startAngle:r==null?void 0:r.endAngle,l=this.computeCapCutDistance(s,h,t);if(l===0)return a;const c=t==="start"?this.getStartSegmentDirection():this.getEndSegmentDirection();return c.lengthSq()===0?a:a.add(c.multiplyScalar(l))}shouldApplyCapCutAtSide(t,e){return!e||this.closed?!1:t==="start"?this.suppressStartCaps?!1:(e.flags&112)!==0:this.suppressEndCaps?!1:(e.flags&1792)!==0}computeCapCutDistance(t,e,n){const r=this.normalizeCapAngle(e),s=Math.tan(r);if(Math.abs(s)<1e-6)return 0;const o=t/s;return o}normalizeCapAngle(t){if(t==null||!Number.isFinite(t))return Math.PI/2;let e=t%180;return e<0&&(e+=180),(e<1||e>179)&&(e=90),e*Math.PI/180}getStartSegmentDirection(){const t=this._segments[0],e=new w;return t&&(e.subVectors(t.position,this._startPosition),e.lengthSq()===0&&e.copy(t.direction)),e.lengthSq()>0&&e.normalize(),e}getEndSegmentDirection(){const t=this._segments[this._segments.length-1];if(!t)return new w;const e=new w,n=this._segments.length>1?this._segments[this._segments.length-2].position:this._startPosition;return e.subVectors(t.position,n),e.lengthSq()===0&&e.copy(t.direction),e.lengthSq()>0&&e.normalize(),e}createFillArea(t,e){if(!t||!(t.flags&1)||e<2)return;const n=this.getFillBoundaryElementIndices(e,t);if(!n)return;const r=this.getElementPath(n.outerIndex,t),s=this.getElementPath(n.innerIndex,t),o=this.stripClosingPoint(r),a=this.stripClosingPoint(s);if(o.length<2||a.length<2)return;const h=new Bt;if(this.closed){if(o.length<3||a.length<3)return;h.add(new H(o.map(l=>({x:l.x,y:l.y})),!0)),h.add(new H(a.map(l=>({x:l.x,y:l.y})),!0))}else{const l=[...o,...a.slice().reverse()].map(c=>({x:c.x,y:c.y}));if(l.length<3)return;h.add(new H(l,!0))}return h}getFillBoundaryElementIndices(t,e){let n=Number.POSITIVE_INFINITY,r=Number.NEGATIVE_INFINITY,s=-1,o=-1;for(let a=0;a<t;a++){const h=this.getElementReferenceOffset(a,e);h<n&&(n=h,s=a),h>r&&(r=h,o=a)}if(!(s<0||o<0||s===o))return{outerIndex:o,innerIndex:s}}getElementReferenceOffset(t,e){var r;const n=this._segments[0];if(n){const s=n.elements[t];if((r=s==null?void 0:s.parameters)!=null&&r.length)return s.parameters[0]}return this.getStyleElementOffset(t,e)}getStyleElementOffset(t,e){const n=e==null?void 0:e.elements[t];if(!n)return 0;const r=this.getStyleJustificationShift(e);return(n.offset+r)*this._scale}getStyleJustificationShift(t){const e=(t==null?void 0:t.elements)??[];if(e.length<=0)return 0;let n=Number.POSITIVE_INFINITY,r=Number.NEGATIVE_INFINITY;for(const s of e){const o=s.offset;o<n&&(n=o),o>r&&(r=o)}return this._justification===0?-r:this._justification===2?-n:0}stripClosingPoint(t){if(t.length<2)return t;const e=t[0],n=t[t.length-1],r=1e-9;return Math.abs(e.x-n.x)<=r&&Math.abs(e.y-n.y)<=r&&Math.abs(e.z-n.z)<=r?t.slice(0,-1):t}offsetPoint(t,e,n){if(n===0||e.lengthSq()===0)return t.clone();const r=e.clone().normalize().multiplyScalar(n);return t.clone().add(r)}closePathIfNeeded(t){if(!this.closed||t.length<2)return t;const e=t[0],n=t[t.length-1],r=1e-9;return Math.abs(e.x-n.x)<=r&&Math.abs(e.y-n.y)<=r&&Math.abs(e.z-n.z)<=r||t.push(e.clone()),t}appendStyleDrivenJointAndCapEntities(t,e,n,r,s,o,a){!n||r<2||(e.push(...this.drawMiterJointEntities(t,n,r,s,o,a)),e.push(...this.drawCapEntities(t,n,r,s,o,a)))}drawMiterJointEntities(t,e,n,r,s,o){if(this.closed||this._segments.length<2||!(e.flags&2))return[];const a=[],h=t.subEntityTraits;for(let l=0;l<this._segments.length-1;l++){const c=this._segments[l],u=Array.from({length:n},(g,d)=>{const p=this.getElementMiterOffset(c,d,e);return{elementIndex:d,offset:p,point:this.offsetPoint(c.position,c.miterDirection,p)}}).sort((g,d)=>d.offset-g.offset);for(let g=0;g<u.length-1;g++)this.applyElementDrawTraits(h,r,s,o,e,u[g].elementIndex),a.push(t.lines([u[g].point,u[g+1].point]))}return a}drawCapEntities(t,e,n,r,s,o){if(this.closed||this._segments.length<=0)return[];const a=[];return a.push(...this.drawCapEntitiesForSide(t,"start",e,n,r,s,o)),a.push(...this.drawCapEntitiesForSide(t,"end",e,n,r,s,o)),a}drawCapEntitiesForSide(t,e,n,r,s,o,a){if(e==="start"&&this.suppressStartCaps)return[];if(e==="end"&&this.suppressEndCaps)return[];const h=n.flags,l=e==="start",c=l?(h&16)!==0:(h&256)!==0,u=l?(h&64)!==0:(h&1024)!==0,g=l?(h&32)!==0:(h&512)!==0;if(!c&&!u&&!g)return[];const d=this.getCapElementPoints(e,r,n);if(d.length<2)return[];const p=[],f=t.subEntityTraits;if(c)for(let m=0;m<d.length-1;m++)this.applyElementDrawTraits(f,s,o,a,n,d[m].elementIndex),p.push(t.lines([d[m].point,d[m+1].point]));const y=l?this.getStartSegmentDirection().multiplyScalar(-1):this.getEndSegmentDirection().clone();if(u){const m=this.drawCapArcBetweenElements(t,e,d[0],d[d.length-1],y,f,s,o,a,n);m&&p.push(m)}if(g)for(let m=1;m<Math.floor(d.length/2);m++){const x=d[m],S=d[d.length-1-m];if(!x||!S||x===S)continue;const A=this.drawCapArcBetweenElements(t,e,x,S,y,f,s,o,a,n);A&&p.push(A)}return p}getCapElementPoints(t,e,n){const r=t==="start"?this._segments[0]:this._segments[this._segments.length-1];return r?Array.from({length:e},(s,o)=>({elementIndex:o,offset:this.getElementMiterOffset(r,o,n),point:this.getElementBoundaryPoint(t,r,o,n)})).sort((s,o)=>o.offset-s.offset):[]}drawCapArcBetweenElements(t,e,n,r,s,o,a,h,l,c){const u=e==="end"?r.point:n.point,g=e==="end"?n.point:r.point,d=u.distanceTo(g);if(d<=1e-9||s.lengthSq()===0)return;const f=u.clone().add(new w().subVectors(g,u).multiplyScalar(.5)).add(s.clone().normalize().multiplyScalar(d/2)),y=pi.createByThreePoints(u,g,f);if(y)return this.applyElementDrawTraits(o,a,h,l,c,e==="end"?r.elementIndex:n.elementIndex),t.circularArc(y)}applyElementDrawTraits(t,e,n,r,s,o){t.color=e,t.rgbColor=n,t.lineType=r,this.applyStyleElementTraits(s,o,t)}transformVector(t,e){const n=new _,r=new _(t.x,t.y,t.z);n.applyMatrix4(e),r.applyMatrix4(e),t.set(r.x-n.x,r.y-n.y,r.z-n.z)}getMLineStyle(){var s;const t=this.database.objects.mlineStyle,e=this.styleObjectHandle?t.getIdAt(this.styleObjectHandle):void 0;if(e)return e;const n=this.styleName?t.getAt(this.styleName):void 0;if(n)return n;const r=(s=this.styleName)==null?void 0:s.toUpperCase();if(r)for(const[o,a]of t.entries()){const h=(a.styleName||o).toUpperCase();if(o.toUpperCase()===r||h===r)return a}}applyStyleElementTraits(t,e,n){const r=t==null?void 0:t.elements[e];if(!r)return;const s=this.resolveStyleElementLineType(r.lineType);s&&(n.lineType=s),!(r.color.isByBlock||r.color.isByLayer)&&(n.color=r.color.clone(),n.rgbColor=r.color.RGB??this.rgbColor)}applyFillTraits(t,e){const n=t==null?void 0:t.fillColor;!n||n.isByBlock||n.isByLayer||(e.color=n.clone(),e.rgbColor=n.RGB??this.rgbColor)}resolveStyleElementLineType(t){var l;const e=t==null?void 0:t.trim();if(!e)return;const n=e.toUpperCase(),r=tt.toUpperCase(),s=Ot.toUpperCase();let o="UserSpecified",a=e;if(n===r){o="ByLayer";const c=(l=this.database.tables.layerTable.getAt(this.layer))==null?void 0:l.linetype;a=c&&c.toUpperCase()!==r&&c.toUpperCase()!==s?c:Xt}else n===s&&(o="ByBlock",a=Xt);const h=this.database.tables.linetypeTable.getAt(a);return h?{type:o,...h.linetype}:{type:o,name:a,standardFlag:0,description:"",totalPatternLength:0}}resolveEffectiveProperties(){super.resolveEffectiveProperties(),this._styleName||(this._styleName=this.getDefaultStyleName())}getDefaultStyleName(){try{return this.database.cmlstyle||Tt}catch{return Tt}}};sr.typeName="MLine";let en=sr;var be=(i=>(i[i.InvisibleLeader=0]="InvisibleLeader",i[i.StraightLeader=1]="StraightLeader",i[i.SplineLeader=2]="SplineLeader",i))(be||{}),te=(i=>(i[i.NoneContent=0]="NoneContent",i[i.BlockContent=1]="BlockContent",i[i.MTextContent=2]="MTextContent",i[i.ToleranceContent=3]="ToleranceContent",i))(te||{}),sa=(i=>(i[i.Horizontal=0]="Horizontal",i[i.Vertical=1]="Vertical",i))(sa||{}),oa=(i=>(i[i.Unknown=0]="Unknown",i[i.Left=1]="Left",i[i.Right=2]="Right",i[i.Top=3]="Top",i[i.Bottom=4]="Bottom",i))(oa||{});const lc=1,hc=2,cc=4,uc=8,dc=64,gc=128,pc=32768,or=class or extends ${get dxfTypeName(){return"MULTILEADER"}constructor(){super(),this._leaders=[],this._leaderLineType=1,this._contentType=0,this._doglegEnabled=!1,this._doglegLength=0,this._doglegVector=new w(1,0,0),this._normal=new w(0,0,1),this._mleaderStyleId="",this._textHeight=2.5,this._textWidth=0,this._textRotation=0,this._textDirection=new w(1,0,0),this._textStyleName="",this._textAttachmentPoint=exports.AcGiMTextAttachmentPoint.MiddleLeft,this._textDrawingDirection=exports.AcGiMTextFlowDirection.LEFT_TO_RIGHT,this._textLineSpacingFactor=1,this._textAttachmentDirection=0,this._arrowheadOverrides=[],this._blockAttributes=[]}get leaders(){return this._leaders.map(t=>this.cloneLeader(t))}get numberOfLeaders(){return this._leaders.length}get leaderLineType(){return this._leaderLineType}set leaderLineType(t){this._leaderLineType=t}get contentType(){return this._contentType}set contentType(t){this._contentType=t}get doglegEnabled(){return this._doglegEnabled}set doglegEnabled(t){this._doglegEnabled=t}get doglegLength(){return this._doglegLength}set doglegLength(t){this._doglegLength=t}get doglegVector(){return this._doglegVector}set doglegVector(t){this._doglegVector.copy(t)}get landingPoint(){return this._landingPoint}set landingPoint(t){this._landingPoint=t?this.createPoint(t):void 0}get normal(){return this._normal}set normal(t){this._normal.copy(t)}get mleaderStyleId(){return this._mleaderStyleId}set mleaderStyleId(t){this._mleaderStyleId=t}get version(){return this._version}set version(t){this._version=t}get leaderStyleId(){return this._leaderStyleId}set leaderStyleId(t){this._leaderStyleId=t}get propertyOverrideFlag(){return this._propertyOverrideFlag}set propertyOverrideFlag(t){this._propertyOverrideFlag=t}get leaderLineColor(){return this._leaderLineColor}set leaderLineColor(t){this._leaderLineColor=t}get leaderLineTypeId(){return this._leaderLineTypeId}set leaderLineTypeId(t){this._leaderLineTypeId=t}get leaderLineWeight(){return this._leaderLineWeight}set leaderLineWeight(t){this._leaderLineWeight=t}get landingEnabled(){return this._landingEnabled}set landingEnabled(t){this._landingEnabled=t}get arrowheadId(){return this._arrowheadId}set arrowheadId(t){this._arrowheadId=t}get arrowheadSize(){return this._arrowheadSize}set arrowheadSize(t){this._arrowheadSize=t}get textStyleId(){return this._textStyleId}set textStyleId(t){this._textStyleId=t}get textLeftAttachmentType(){return this._textLeftAttachmentType}set textLeftAttachmentType(t){this._textLeftAttachmentType=t}get textRightAttachmentType(){return this._textRightAttachmentType}set textRightAttachmentType(t){this._textRightAttachmentType=t}get textAngleType(){return this._textAngleType}set textAngleType(t){this._textAngleType=t}get textAlignmentType(){return this._textAlignmentType}set textAlignmentType(t){this._textAlignmentType=t}get textColor(){return this._textColor}set textColor(t){this._textColor=t}get textFrameEnabled(){return this._textFrameEnabled}set textFrameEnabled(t){this._textFrameEnabled=t}get landingGap(){return this._landingGap}set landingGap(t){this._landingGap=t}get textAttachment(){return this._textAttachment}set textAttachment(t){this._textAttachment=t}get textFlowDirection(){return this._textFlowDirection}set textFlowDirection(t){this._textFlowDirection=t}get blockContentId(){return this._blockContentId}set blockContentId(t){this._blockContentId=t}get blockContentColor(){return this._blockContentColor}set blockContentColor(t){this._blockContentColor=t}get blockContentScale(){return this._blockContentScale}set blockContentScale(t){this._blockContentScale=t}get blockContentRotation(){return this._blockContentRotation}set blockContentRotation(t){this._blockContentRotation=t}get blockContentConnectionType(){return this._blockContentConnectionType}set blockContentConnectionType(t){this._blockContentConnectionType=t}get annotativeScaleEnabled(){return this._annotativeScaleEnabled}set annotativeScaleEnabled(t){this._annotativeScaleEnabled=t}get arrowheadOverrides(){return this._arrowheadOverrides}set arrowheadOverrides(t){this._arrowheadOverrides=t}get blockAttributes(){return this._blockAttributes}set blockAttributes(t){this._blockAttributes=t}get textDirectionNegative(){return this._textDirectionNegative}set textDirectionNegative(t){this._textDirectionNegative=t}get textAlignInIPE(){return this._textAlignInIPE}set textAlignInIPE(t){this._textAlignInIPE=t}get bottomTextAttachmentDirection(){return this._bottomTextAttachmentDirection}set bottomTextAttachmentDirection(t){this._bottomTextAttachmentDirection=t}get topTextAttachmentDirection(){return this._topTextAttachmentDirection}set topTextAttachmentDirection(t){this._topTextAttachmentDirection=t}get contentScale(){return this._contentScale}set contentScale(t){this._contentScale=t}get contentBasePosition(){return this._contentBasePosition}set contentBasePosition(t){this._contentBasePosition=t}get textAnchor(){return this._textAnchor}set textAnchor(t){this._textAnchor=t}get textLineSpacingStyle(){return this._textLineSpacingStyle}set textLineSpacingStyle(t){this._textLineSpacingStyle=t}get textBackgroundColor(){return this._textBackgroundColor}set textBackgroundColor(t){this._textBackgroundColor=t}get textBackgroundScaleFactor(){return this._textBackgroundScaleFactor}set textBackgroundScaleFactor(t){this._textBackgroundScaleFactor=t}get textBackgroundTransparency(){return this._textBackgroundTransparency}set textBackgroundTransparency(t){this._textBackgroundTransparency=t}get textBackgroundColorOn(){return this._textBackgroundColorOn}set textBackgroundColorOn(t){this._textBackgroundColorOn=t}get textFillOn(){return this._textFillOn}set textFillOn(t){this._textFillOn=t}get textColumnType(){return this._textColumnType}set textColumnType(t){this._textColumnType=t}get textUseAutoHeight(){return this._textUseAutoHeight}set textUseAutoHeight(t){this._textUseAutoHeight=t}get textColumnWidth(){return this._textColumnWidth}set textColumnWidth(t){this._textColumnWidth=t}get textColumnGutterWidth(){return this._textColumnGutterWidth}set textColumnGutterWidth(t){this._textColumnGutterWidth=t}get textColumnFlowReversed(){return this._textColumnFlowReversed}set textColumnFlowReversed(t){this._textColumnFlowReversed=t}get textColumnHeight(){return this._textColumnHeight}set textColumnHeight(t){this._textColumnHeight=t}get textUseWordBreak(){return this._textUseWordBreak}set textUseWordBreak(t){this._textUseWordBreak=t}get hasMText(){return this._hasMText}set hasMText(t){this._hasMText=t}get hasBlock(){return this._hasBlock}set hasBlock(t){this._hasBlock=t}get planeOrigin(){return this._planeOrigin}set planeOrigin(t){this._planeOrigin=t}get planeXAxisDirection(){return this._planeXAxisDirection}set planeXAxisDirection(t){this._planeXAxisDirection=t}get planeYAxisDirection(){return this._planeYAxisDirection}set planeYAxisDirection(t){this._planeYAxisDirection=t}get planeNormalReversed(){return this._planeNormalReversed}set planeNormalReversed(t){this._planeNormalReversed=t}get leaderSections(){return this.leaders}get blockContentData(){return this.blockContent}get mtextContent(){return this._mtextContent?{text:this._mtextContent.text,anchorPoint:this._mtextContent.anchorPoint.clone()}:void 0}set mtextContent(t){if(!t){this._mtextContent=void 0,this._contentType===2&&(this._contentType=0);return}this._mtextContent={text:t.text,anchorPoint:this.createPoint(t.anchorPoint)},this._contentType=2}get contents(){var t;return((t=this._mtextContent)==null?void 0:t.text)??""}set contents(t){this._mtextContent?this._mtextContent.text=t:this._mtextContent={text:t,anchorPoint:new _},this._contentType=2}get textLocation(){var t;return(t=this._mtextContent)==null?void 0:t.anchorPoint}set textLocation(t){if(!t){this._mtextContent=void 0;return}this._mtextContent?this._mtextContent.anchorPoint.copy(t):this._mtextContent={text:"",anchorPoint:this.createPoint(t)},this._contentType=2}get textHeight(){return this._textHeight}set textHeight(t){this._textHeight=t}get textWidth(){return this._textWidth}set textWidth(t){this._textWidth=t}get textRotation(){return this._textRotation}set textRotation(t){this._textRotation=t}get textDirection(){return this._textDirection}set textDirection(t){this._textDirection.copy(t)}get textStyleName(){return this._textStyleName}set textStyleName(t){this._textStyleName=t}get textAttachmentPoint(){return this._textAttachmentPoint}set textAttachmentPoint(t){this._textAttachmentPoint=t}get textDrawingDirection(){return this._textDrawingDirection}set textDrawingDirection(t){this._textDrawingDirection=t}get textLineSpacingFactor(){return this._textLineSpacingFactor}set textLineSpacingFactor(t){this._textLineSpacingFactor=t}get textAttachmentDirection(){return this._textAttachmentDirection}set textAttachmentDirection(t){this._textAttachmentDirection=t}get blockContent(){var t,e;return this._blockContent?{blockContentId:this._blockContent.blockContentId,blockHandle:this._blockContent.blockHandle,normal:(t=this._blockContent.normal)==null?void 0:t.clone(),position:(e=this._blockContent.position)==null?void 0:e.clone(),scale:this._blockContent.scale.clone(),rotation:this._blockContent.rotation,color:this._blockContent.color,transformationMatrix:[...this._blockContent.transformationMatrix]}:void 0}set blockContent(t){if(!t){this._blockContent=void 0,this._contentType===1&&(this._contentType=0);return}this._blockContent={blockContentId:t.blockContentId??t.blockHandle,blockHandle:t.blockHandle,normal:t.normal?new w(t.normal):void 0,position:t.position?this.createPoint(t.position):void 0,scale:new w(t.scale??{x:1,y:1,z:1}),rotation:t.rotation??0,color:t.color,transformationMatrix:t.transformationMatrix?[...t.transformationMatrix]:[]},this.blockContentId=this._blockContent.blockContentId,this._contentType=1}addLeader(t={}){var n,r;const e={lastLeaderLinePoint:t.lastLeaderLinePoint?this.createPoint(t.lastLeaderLinePoint):void 0,lastLeaderLinePointSet:t.lastLeaderLinePointSet,landingPoint:t.landingPoint?this.createPoint(t.landingPoint):void 0,doglegVector:t.doglegVector?new w(t.doglegVector):void 0,doglegVectorSet:t.doglegVectorSet,doglegLength:t.doglegLength,breaks:((n=t.breaks)==null?void 0:n.map(s=>({index:s.index,start:this.createPoint(s.start),end:this.createPoint(s.end)})))??[],leaderBranchIndex:t.leaderBranchIndex,directionType:t.directionType,leaderLines:[]};return(r=t.leaderLines)==null||r.forEach(s=>{e.leaderLines.push(this.createLeaderLine(s))}),this._leaders.push(e),this._leaders.length-1}removeLeader(t){return this.checkLeaderIndex(t),this._leaders.splice(t,1),this}addLeaderLine(t,e=[]){return this.checkLeaderIndex(t),this._leaders[t].leaderLines.push(this.createLeaderLine({vertices:e})),this._leaders[t].leaderLines.length-1}appendVertex(t,e,n){return this.getMutableLeaderLine(t,e).vertices.push(this.createPoint(n)),this}setLeaderLineVertices(t,e,n){return this.getMutableLeaderLine(t,e).vertices=n.map(r=>this.createPoint(r)),this}getLeaderLineVertices(t,e){return this.getMutableLeaderLine(t,e).vertices.map(n=>n.clone())}addBreak(t,e,n,r){return this.getMutableLeaderLine(t,e).breaks.push({start:this.createPoint(n),end:this.createPoint(r)}),this}setLandingPoint(t,e){return this.checkLeaderIndex(t),this._leaders[t].landingPoint=e?this.createPoint(e):void 0,this}setDoglegDirection(t,e){return this.checkLeaderIndex(t),this._leaders[t].doglegVector=new w(e),this}setDoglegLength(t,e){return this.checkLeaderIndex(t),this._leaders[t].doglegLength=e,this}get geometricExtents(){const t=this.collectGeometryPoints();return t.length>0?new C().setFromPoints(t):new C}subGetGripPoints(){return this.collectGeometryPoints().map(t=>t.clone())}subGetOsnapPoints(t,e,n,r){var s;if(t===b.Insertion){this.contentBasePosition?r.push(this.contentBasePosition):this._mtextContent?r.push(this._mtextContent.anchorPoint):(s=this._blockContent)!=null&&s.position&&r.push(this._blockContent.position);return}this._leaders.forEach(o=>{o.leaderLines.forEach(a=>{const h=this.getLeaderLineDrawPoints(o,a);if(h.length!==0)switch(t){case b.EndPoint:r.push(...h);break;case b.MidPoint:case b.Nearest:case b.Perpendicular:{const l=[];for(let c=0;c<h.length-1;c++){const u=[];ue(h[c],h[c+1],t,e,u),l.push(...u)}if(t===b.MidPoint)r.push(...l);else{const c=ht(e,l);c&&r.push(c)}break}}})})}transformBy(t){var e,n,r,s,o,a,h,l;return this._leaders.forEach(c=>{var u,g;(u=c.lastLeaderLinePoint)==null||u.applyMatrix4(t),(g=c.landingPoint)==null||g.applyMatrix4(t),c.doglegVector&&this.transformVector(c.doglegVector,t),c.breaks.forEach(d=>{d.start.applyMatrix4(t),d.end.applyMatrix4(t)}),c.leaderLines.forEach(d=>{d.vertices.forEach(p=>p.applyMatrix4(t)),d.breaks.forEach(p=>{p.start.applyMatrix4(t),p.end.applyMatrix4(t)})})}),(e=this._landingPoint)==null||e.applyMatrix4(t),(n=this.contentBasePosition)==null||n.applyMatrix4(t),this.transformVector(this._doglegVector,t),this.transformVector(this._normal,t),(r=this.textAnchor)==null||r.applyMatrix4(t),(s=this._mtextContent)==null||s.anchorPoint.applyMatrix4(t),this.transformVector(this._textDirection,t),(a=(o=this._blockContent)==null?void 0:o.position)==null||a.applyMatrix4(t),(h=this._blockContent)!=null&&h.normal&&this.transformVector(this._blockContent.normal,t),this.blockContentScale&&this.transformVector(this.blockContentScale,t),(l=this.planeOrigin)==null||l.applyMatrix4(t),this.planeXAxisDirection&&this.transformVector(this.planeXAxisDirection,t),this.planeYAxisDirection&&this.transformVector(this.planeYAxisDirection,t),this}get properties(){return{type:this.type,groups:[this.getGeneralProperties(),{groupName:"leader",properties:[{name:"contentType",type:"enum",editable:!0,options:[{label:te[0],value:0},{label:te[1],value:1},{label:te[2],value:2},{label:te[3],value:3}],accessor:{get:()=>this.contentType,set:t=>{this.contentType=t}}},{name:"leaderLineType",type:"enum",editable:!0,options:[{label:be[0],value:0},{label:be[1],value:1},{label:be[2],value:2}],accessor:{get:()=>this.leaderLineType,set:t=>{this.leaderLineType=t}}},{name:"doglegEnabled",type:"boolean",editable:!0,accessor:{get:()=>this.doglegEnabled,set:t=>{this.doglegEnabled=t}}},{name:"doglegLength",type:"float",editable:!0,accessor:{get:()=>this.doglegLength,set:t=>{this.doglegLength=t}}},{name:"leaderCount",type:"int",editable:!1,accessor:{get:()=>this.numberOfLeaders}}]},{groupName:"text",properties:[{name:"contents",type:"string",editable:!0,accessor:{get:()=>this.contents,set:t=>{this.contents=t}}},{name:"textHeight",type:"float",editable:!0,accessor:{get:()=>this.textHeight,set:t=>{this.textHeight=t}}},{name:"textWidth",type:"float",editable:!0,accessor:{get:()=>this.textWidth,set:t=>{this.textWidth=t}}},{name:"textStyleName",type:"string",editable:!0,accessor:{get:()=>this.textStyleName,set:t=>{this.textStyleName=t}}}]}]}}resolveEffectiveProperties(){if(super.resolveEffectiveProperties(),this._mleaderStyleId)return;const t=this.getDefaultMLeaderStyle();t&&(this._mleaderStyleId=t.objectId)}subWorldDraw(t){const e=[],n=t.subEntityTraits,r=n.color,s=n.rgbColor,o=n.lineType,a=n.lineWeight,h=this.getResolvedLeaderLineColor(),l=this.getResolvedLeaderLineStyle(),c=this.getResolvedLeaderLineWeight(),u=this.getResolvedTextColor();this.getResolvedLeaderLineType()!==0&&(this.applyColorTraits(n,h,r,s),this.applyLineTraits(n,l,c),this._leaders.forEach(d=>{d.leaderLines.forEach(f=>{const y=this.getLeaderLineDrawPoints(d,f);if(y.length>0){const m=this.drawLeaderLine(t,y);m&&e.push(m)}});const p=this.getDoglegPoints(d);p&&e.push(t.lines(p))}));const g=this.getRenderableMTextContent();if(this.contentType===2&&g){this.applyColorTraits(n,u,r,s);const d=this.getResolvedTextHeight(),p={text:g.text,height:d,width:this.getMTextRenderWidth(g.text,d),position:g.anchorPoint,rotation:this.textRotation,directionVector:this.textDirection,attachmentPoint:this.textAttachmentPoint,drawingDirection:this.textDrawingDirection,lineSpaceFactor:this.textLineSpacingFactor};e.push(t.mtext(p,this.getTextStyle(),!1))}if(n.color=r,n.rgbColor=s,n.lineType=o,n.lineWeight=a,e.length!==0)return e.length===1?e[0]:t.group(e)}dxfOutFields(t){return super.dxfOutFields(t),t.writeSubclassMarker("AcDbMLeader"),t.writeInt16(170,this.leaderLineType),t.writeBoolean(290,this.doglegEnabled),t.writeDouble(41,this.doglegLength),t.writeInt16(172,this.contentType),t.writeVector3d(210,this.normal),t.writeHandle(340,this.mleaderStyleId),this._landingPoint&&t.writePoint3d(10,this._landingPoint),t.writeVector3d(11,this.doglegVector),this._mtextContent&&(t.writeString(1,this._mtextContent.text),t.writePoint3d(12,this._mtextContent.anchorPoint),t.writeDouble(40,this.textHeight),t.writeDouble(42,this.textWidth),t.writeAngle(50,this.textRotation),t.writeString(7,this.textStyleName)),this._blockContent&&(t.writeHandle(341,this._blockContent.blockContentId??""),this._blockContent.position&&t.writePoint3d(15,this._blockContent.position),t.writeVector3d(16,this._blockContent.scale),t.writeAngle(52,this._blockContent.rotation)),this._leaders.forEach(e=>{e.landingPoint&&t.writePoint3d(110,e.landingPoint),e.doglegVector&&t.writeVector3d(111,e.doglegVector),t.writeDouble(140,e.doglegLength),t.writeInt16(171,e.leaderLines.length),e.leaderLines.forEach(n=>{t.writeInt16(90,n.vertices.length),n.vertices.forEach(r=>t.writePoint3d(10,r))})}),this}createPoint(t){return new _().copy(t)}createLeaderLine(t){var e,n;return{vertices:((e=t.vertices)==null?void 0:e.map(r=>this.createPoint(r)))??[],breakPointIndexes:t.breakPointIndexes?[...t.breakPointIndexes]:[],leaderLineIndex:t.leaderLineIndex,breaks:((n=t.breaks)==null?void 0:n.map(r=>({index:r.index,start:this.createPoint(r.start),end:this.createPoint(r.end)})))??[]}}cloneLeader(t){var e,n,r;return{lastLeaderLinePoint:(e=t.lastLeaderLinePoint)==null?void 0:e.clone(),lastLeaderLinePointSet:t.lastLeaderLinePointSet,landingPoint:(n=t.landingPoint)==null?void 0:n.clone(),doglegVector:(r=t.doglegVector)==null?void 0:r.clone(),doglegVectorSet:t.doglegVectorSet,doglegLength:t.doglegLength,breaks:t.breaks.map(s=>({index:s.index,start:s.start.clone(),end:s.end.clone()})),leaderBranchIndex:t.leaderBranchIndex,directionType:t.directionType,leaderLines:t.leaderLines.map(s=>({vertices:s.vertices.map(o=>o.clone()),breakPointIndexes:[...s.breakPointIndexes],leaderLineIndex:s.leaderLineIndex,breaks:s.breaks.map(o=>({index:o.index,start:o.start.clone(),end:o.end.clone()}))}))}}checkLeaderIndex(t){if(t<0||t>=this._leaders.length)throw new Error("The leader index is out of range!")}getMutableLeaderLine(t,e){this.checkLeaderIndex(t);const n=this._leaders[t].leaderLines[e];if(!n)throw new Error("The leader line index is out of range!");return n}collectGeometryPoints(){var e;const t=[];return this._leaders.forEach(n=>{n.lastLeaderLinePoint&&t.push(n.lastLeaderLinePoint),n.landingPoint&&t.push(n.landingPoint),n.breaks.forEach(s=>t.push(s.start,s.end)),n.leaderLines.forEach(s=>{t.push(...s.vertices),s.breaks.forEach(o=>t.push(o.start,o.end))});const r=this.getDoglegPoints(n);r&&t.push(...r),n.leaderLines.forEach(s=>{const o=this.getArrowheadPoints(this.getLeaderLineDrawPoints(n,s));o&&t.push(...o)})}),this._landingPoint&&t.push(this._landingPoint),this.contentBasePosition&&t.push(this.contentBasePosition),this.textAnchor&&t.push(this.textAnchor),this._mtextContent&&t.push(this._mtextContent.anchorPoint),(e=this._blockContent)!=null&&e.position&&t.push(this._blockContent.position),this.planeOrigin&&t.push(this.planeOrigin),t}getLeaderLineDrawPoints(t,e){if(e.vertices.length>=2)return e.vertices;if(e.vertices.length===0)return[];const n=t.lastLeaderLinePoint??t.landingPoint??this._landingPoint??this.contentBasePosition;return!n||e.vertices[0].equals(n)?e.vertices:[e.vertices[0],n]}getDoglegPoints(t){if(!this.getResolvedDoglegEnabled())return;const e=t.lastLeaderLinePoint??t.landingPoint??this._landingPoint,n=t.doglegVector??this._doglegVector,r=t.doglegLength??this.getResolvedDoglegLength();if(!e||r==null||r===0||n.lengthSq()===0)return;const s=e.clone().add(n.clone().normalize().multiplyScalar(r));return[e,s]}getArrowheadPoints(t){if(!this.isArrowheadVisible()||t.length<2)return;const e=this.getArrowheadFrame(t);if(!e)return;const n=this.getResolvedArrowheadSize(),{tip:r,unit:s}=e,o=r.clone().add(s.clone().multiplyScalar(n)),a=n/6,h=new w(-s.y,s.x,0),l=o.clone().add(h.clone().multiplyScalar(a)),c=o.clone().add(h.clone().multiplyScalar(-a));return[r,l,c,r]}isArrowheadVisible(){const t=this.getResolvedArrowheadId();return(t==null?void 0:t.toUpperCase())==="_NONE"?!1:this.getResolvedArrowheadSize()>0}drawLeaderLine(t,e){const n=[],r=this.getLeaderLinePointsForDraw(e);r.length>=2&&n.push(t.lines(r));const s=this.drawArrowhead(t,e);if(s&&n.push(s),n.length!==0)return n.length===1?n[0]:t.group(n)}getLeaderLinePointsForDraw(t){const e=this.getArrowheadLeaderLineTrimDistance();return e<=0?t:this.trimPolylineStart(t,e)}getArrowheadLeaderLineTrimDistance(){if(!this.isArrowheadVisible())return 0;const t=this.getResolvedArrowheadBlockTableRecord();if(!t)return 0;const e=this.getResolvedArrowheadSize();if(e<=0)return 0;const n=t.origin??_.ORIGIN;let r=n.x;for(const s of t.newIterator()){const o=s.geometricExtents;o.isEmpty()||o.max.x>r&&(r=o.max.x)}return Math.max(0,(r-n.x)*e)}trimPolylineStart(t,e){if(t.length<2||e<=0)return t;let n=e;for(let r=0;r<t.length-1;r++){const s=t[r],o=t[r+1],a=o.distanceTo(s);if(!(a<=0)){if(n<a){const h=new w().subVectors(o,s);return[s.clone().add(h.multiplyScalar(n/a)),...t.slice(r+1)]}n-=a}}return[t[t.length-1]]}drawArrowhead(t,e){if(!this.isArrowheadVisible())return;const n=this.drawArrowheadBlock(t,e);if(n)return n;const r=this.getArrowheadPoints(e);if(!r)return;const s=new Bt;s.add(new H(r,!0));const o=t.subEntityTraits,a=o.fillType;o.fillType={solidFill:!0,patternAngle:0,definitionLines:[]};const h=t.area(s);return o.fillType=a,h}drawArrowheadBlock(t,e){const n=this.getResolvedArrowheadBlockTableRecord();if(!n)return;const r=this.getArrowheadFrame(e);if(!r)return;const{tip:s,unit:o}=r,a=this.getResolvedArrowheadSize(),h=Math.atan2(o.y,o.x),l=n.origin??_.ORIGIN,c=new Y().makeTranslation(-l.x,-l.y,-l.z),u=new Y().makeScale(a,a,a),g=new Y().makeRotationZ(h),d=new Y().makeTranslation(s.x,s.y,s.z),p=new Y().multiplyMatrices(d,g).multiply(u).multiply(c);return Wt.instance.draw(t,n,this.rgbColor,[],!0,p,new w(this.normal))}getArrowheadFrame(t){if(t.length<2)return;const e=t[0],n=t.find(s=>!s.equals(e));if(!n)return;const r=new w().subVectors(n,e);if(r.lengthSq()!==0)return{tip:e,unit:r.normalize()}}getResolvedArrowheadId(){var e;const t=(e=this.getMLeaderStyle())==null?void 0:e.arrowSymbolId;return this.arrowheadId??t}getResolvedArrowheadBlockTableRecord(){const t=this.getResolvedArrowheadId();if(t)return this.database.tables.blockTable.getIdAt(t)}getResolvedArrowheadSize(){const t=this.getMLeaderStyle(),e=(t==null?void 0:t.arrowSize)??(t==null?void 0:t.scale);return this.arrowheadSize??this.contentScale??e??this.getResolvedTextHeight()}getResolvedTextHeight(){var e;const t=(e=this.getMLeaderStyle())==null?void 0:e.textHeight;return this.textHeight>0?this.textHeight:t!=null&&t>0?t:2.5}getRenderableMTextContent(){var n;if(this._mtextContent)return{text:this._mtextContent.text,anchorPoint:this._mtextContent.anchorPoint};const t=(n=this.getMLeaderStyle())==null?void 0:n.defaultMTextContents,e=this.textAnchor??this.contentBasePosition??this._landingPoint;if(!(!t||!e))return{text:t,anchorPoint:e}}getMTextRenderWidth(t,e){if(this._textWidth>0)return this._textWidth;if(!t)return this._textWidth;const n=t.replace(/\\[PpNn]/g,`
|
|
6
|
+
`).replace(/\\[A-Za-z][^;]*;/g,"").replace(/[{}]/g,""),r=Math.max(...n.split(/\r\n|\r|\n/g).map(s=>s.length),1);return Math.max(e,r*e)}transformVector(t,e){const n=new _,r=new _(t.x,t.y,t.z);n.applyMatrix4(e),r.applyMatrix4(e),t.set(r.x-n.x,r.y-n.y,r.z-n.z)}getMLeaderStyle(){const t=this.database.objects.mleaderStyle,e=this.mleaderStyleId||this.leaderStyleId;if(e){const n=t.getIdAt(e);if(n)return n}return this.getDefaultMLeaderStyle()}getDefaultMLeaderStyle(){const t=this.resolveMLeaderStyleByName(this.getDefaultMLeaderStyleName());return t||this.database.objects.mleaderStyle.newIterator().toArray()[0]}resolveMLeaderStyleByName(t){const e=t==null?void 0:t.trim();if(!e)return;const n=this.database.objects.mleaderStyle,r=n.getAt(e);if(r)return r;const s=n.getIdAt(e);if(s)return s;const o=e.toUpperCase();for(const[a,h]of n.entries())if(a.toUpperCase()===o)return h}getDefaultMLeaderStyleName(){try{return this.database.cmleaderstyle||Ct}catch{return Ct}}getResolvedTextStyleName(){var s,o;const t=this.database.tables.textStyleTable,e=(s=this.getMLeaderStyle())==null?void 0:s.textStyleId,n=e?(o=t.getIdAt(e))==null?void 0:o.name:void 0;if(this.textStyleName)return this.textStyleName;const r=this.textStyleId?t.getIdAt(this.textStyleId):void 0;return r!=null&&r.name?r.name:n}getTextStyle(){const t=this.database.tables.textStyleTable.resolveAt(this.getResolvedTextStyleName());if(!t)throw new Error("No valid text style found in text style table.");return t.textStyle}getResolvedLeaderLineColor(){var t;return this.getResolvedComponentColor(this.leaderLineColor,(t=this.getMLeaderStyle())==null?void 0:t.leaderLineColor,hc)}getResolvedLeaderLineType(){var e;const t=(e=this.getMLeaderStyle())==null?void 0:e.leaderLineType;return this.getResolvedStyleDrivenValue(this.leaderLineType,t,lc)}getResolvedLeaderLineTypeId(){var t;return this.getResolvedStyleDrivenValue(this.leaderLineTypeId,(t=this.getMLeaderStyle())==null?void 0:t.leaderLineTypeId,cc)}getResolvedLeaderLineStyle(){const t=this.getResolvedLeaderLineTypeId();if(!t)return;const e=this.database.tables.linetypeTable.getIdAt(t);if(e)return{type:"UserSpecified",...e.linetype}}getResolvedLeaderLineWeight(){var n;const t=(n=this.getMLeaderStyle())==null?void 0:n.leaderLineWeight,e=this.getResolvedStyleDrivenValue(this.leaderLineWeight,t,uc);if(e!=null)return e}getResolvedDoglegEnabled(){var e;const t=(e=this.getMLeaderStyle())==null?void 0:e.doglegEnabled;return this.getResolvedStyleDrivenValue(this.doglegEnabled,t,dc)}getResolvedDoglegLength(){var e;const t=(e=this.getMLeaderStyle())==null?void 0:e.doglegLength;return this.getResolvedStyleDrivenValue(this.doglegLength,t,gc)}getResolvedTextColor(){var t;return this.getResolvedComponentColor(this.textColor,(t=this.getMLeaderStyle())==null?void 0:t.textColor,pc)}getResolvedComponentColor(t,e,n){const r=t!=null?Xo(t):void 0;if(!r)return e;const s=this.isPropertyOverrideEnabled(n);return s===!0?r:s===!1?e??r:!r.isByBlock&&!r.isByLayer?r:e??r}getResolvedStyleDrivenValue(t,e,n){const r=this.isPropertyOverrideEnabled(n);return r===!0?t??e:e??t}isPropertyOverrideEnabled(t){if(this.propertyOverrideFlag!=null)return(this.propertyOverrideFlag&t)!==0}applyColorTraits(t,e,n,r){t.color=n,t.rgbColor=r,e&&(t.color=e,t.rgbColor=this.resolveColorToRgb(e))}applyLineTraits(t,e,n){e&&(t.lineType=e),n!=null&&(t.lineWeight=n)}resolveColorToRgb(t){if(t.isByLayer){const e=this.getLayerColor();return(e==null?void 0:e.RGB)!=null?e.RGB:this.rgbColor}return t.isByBlock?this.rgbColor:t.RGB??this.rgbColor}};or.typeName="MLeader";let nn=or;const ar=class ar extends ${get dxfTypeName(){return"MTEXT"}constructor(){super(),this._contents="",this._height=0,this._width=0,this._lineSpacingFactor=.25,this._lineSpacingStyle=0,this._backgroundFill=!1,this._backgroundFillColor=13158600,this._backgroundFillTransparency=1,this._backgroundScaleFactor=1,this._rotation=0,this._styleName="",this._location=new _,this._attachmentPoint=exports.AcGiMTextAttachmentPoint.TopLeft,this._direction=new w(1,0,0),this._drawingDirection=exports.AcGiMTextFlowDirection.LEFT_TO_RIGHT}get contents(){return this._contents}set contents(t){this._contents=t}get height(){return this._height}set height(t){this._height=t}get width(){return this._width}set width(t){this._width=t}get rotation(){return this._rotation}set rotation(t){this._rotation=t}get lineSpacingFactor(){return this._lineSpacingFactor}set lineSpacingFactor(t){this._lineSpacingFactor=t}get lineSpacingStyle(){return this._lineSpacingStyle}set lineSpacingStyle(t){this._lineSpacingStyle=t}get backgroundFill(){return this._backgroundFill}set backgroundFill(t){this._backgroundFill=t,this._backgroundFillColor=13158600}get backgroundFillColor(){return this._backgroundFillColor}set backgroundFillColor(t){this._backgroundFillColor=t}get backgroundFillTransparency(){return this._backgroundFillTransparency}set backgroundFillTransparency(t){this._backgroundFillTransparency=t}get backgroundScaleFactor(){return this._backgroundScaleFactor}set backgroundScaleFactor(t){this._backgroundScaleFactor=t}get styleName(){return this._styleName}set styleName(t){this._styleName=t}get location(){return this._location}set location(t){this._location.copy(t)}get attachmentPoint(){return this._attachmentPoint}set attachmentPoint(t){this._attachmentPoint=t}get direction(){return this._direction}set direction(t){this._direction.copy(t)}get drawingDirection(){return this._drawingDirection}set drawingDirection(t){this._drawingDirection=t}get geometricExtents(){const t=new C,e=this.width>0?this.width:Qo(this.contents,this.height),n=rc(this.contents),r=sc(n,this.height,this.lineSpacingFactor);return Jo(t,this._location,e,r,this.attachmentPoint,this.rotation,this.direction)}subGetGripPoints(){return[this._location]}subGetOsnapPoints(t,e,n,r){b.Insertion===t&&r.push(this._location)}transformBy(t){const e=this._location.clone(),n=this._direction.lengthSq()>0?this._direction.clone().normalize():new w(Math.cos(this._rotation),Math.sin(this._rotation),0),r=new w(-n.y,n.x,n.z);r.lengthSq()===0&&r.set(0,1,0),r.normalize();const s=e.clone().add(n),o=e.clone().add(r);e.applyMatrix4(t),s.applyMatrix4(t),o.applyMatrix4(t);const a=new w(s).sub(e),h=new w(o).sub(e),l=a.length(),c=h.length();return this._location.copy(e),l>0&&(this._direction.copy(a).normalize(),this._rotation=Math.atan2(this._direction.y,this._direction.x),this._width*=l),c>0&&(this._height*=c),this}get properties(){return{type:this.type,groups:[this.getGeneralProperties(),{groupName:"text",properties:[{name:"contents",type:"string",editable:!0,accessor:{get:()=>this.contents,set:t=>{this.contents=t}}},{name:"styleName",type:"string",editable:!0,accessor:{get:()=>this.styleName,set:t=>{this.styleName=t}}},{name:"attachmentPoint",type:"enum",editable:!0,options:[{label:exports.AcGiMTextAttachmentPoint[1],value:1},{label:exports.AcGiMTextAttachmentPoint[2],value:2},{label:exports.AcGiMTextAttachmentPoint[3],value:3},{label:exports.AcGiMTextAttachmentPoint[4],value:4},{label:exports.AcGiMTextAttachmentPoint[5],value:5},{label:exports.AcGiMTextAttachmentPoint[6],value:6},{label:exports.AcGiMTextAttachmentPoint[7],value:7},{label:exports.AcGiMTextAttachmentPoint[8],value:8},{label:exports.AcGiMTextAttachmentPoint[9],value:9}],accessor:{get:()=>this.attachmentPoint,set:t=>{this.attachmentPoint=t}}},{name:"drawingDirection",type:"enum",editable:!0,options:[{label:exports.AcGiMTextFlowDirection[1],value:1},{label:exports.AcGiMTextFlowDirection[2],value:2},{label:exports.AcGiMTextFlowDirection[3],value:3},{label:exports.AcGiMTextFlowDirection[4],value:4},{label:exports.AcGiMTextFlowDirection[5],value:5}],accessor:{get:()=>this.drawingDirection,set:t=>{this.drawingDirection=t}}},{name:"textHeight",type:"float",editable:!0,accessor:{get:()=>this.height,set:t=>{this.height=t}}},{name:"rotation",type:"float",editable:!0,accessor:{get:()=>this.rotation,set:t=>{this.rotation=t}}},{name:"lineSpacingFactor",type:"float",editable:!0,accessor:{get:()=>this.lineSpacingFactor,set:t=>{this.lineSpacingFactor=t}}},{name:"definedWidth",type:"float",editable:!0,accessor:{get:()=>this.width,set:t=>{this.width=t}}},{name:"directionX",type:"float",editable:!0,accessor:{get:()=>this.direction.x,set:t=>{this.direction.x=t}}},{name:"directionY",type:"float",editable:!0,accessor:{get:()=>this.direction.y,set:t=>{this.direction.y=t}}},{name:"directionZ",type:"float",editable:!0,accessor:{get:()=>this.direction.z,set:t=>{this.direction.z=t}}}]},{groupName:"geometry",properties:[{name:"locationX",type:"float",editable:!0,accessor:{get:()=>this.location.x,set:t=>{this.location.x=t}}},{name:"locationY",type:"float",editable:!0,accessor:{get:()=>this.location.y,set:t=>{this.location.y=t}}},{name:"locationZ",type:"float",editable:!0,accessor:{get:()=>this.location.z,set:t=>{this.location.z=t}}}]}]}}getTextStyle(){const t=this.database.tables.textStyleTable.resolveAt(this.styleName);if(!t)throw new Error("No valid text style found in text style table.");return t.textStyle}subWorldDraw(t,e){const n={text:this.contents,height:this.height,width:this.width,position:this.location,rotation:this.rotation,directionVector:this.direction,attachmentPoint:this.attachmentPoint,drawingDirection:this.drawingDirection,lineSpaceFactor:this.lineSpacingFactor};return t.mtext(n,this.getTextStyle(),e)}encodeMTextContentsForDxf(t){return t.replace(/\r\n|\r|\n/g,"\\P")}dxfOutFields(t){return super.dxfOutFields(t),t.writeSubclassMarker("AcDbMText"),t.writePoint3d(10,this.location),t.writeDouble(40,this.height),t.writeDouble(41,this.width),t.writeString(1,this.encodeMTextContentsForDxf(this.contents)),t.writeString(7,this.styleName),t.writeAngle(50,this.rotation),t.writeVector3d(11,this.direction),t.writeInt16(71,this.attachmentPoint),t.writeInt16(72,this.drawingDirection),t.writeInt16(73,this.lineSpacingStyle),t.writeDouble(44,this.lineSpacingFactor),this.backgroundFill&&(t.writeInt16(90,1),t.writeInt32(63,this.backgroundFillColor),t.writeInt32(441,this.backgroundFillTransparency),t.writeDouble(45,this.backgroundScaleFactor)),this}};ar.typeName="MText";let Je=ar;const lr=class lr extends q{get dxfTypeName(){return"SPLINE"}constructor(t,e,n,r,s){super(),this.rebuild(t,e,n,r,s)}rebuild(t,e,n,r,s){const o=+(t!==void 0)+ +(e!==void 0)+ +(n!==void 0)+ +(r!==void 0)+ +(s!==void 0);if(o<2||o>5)throw st.ILLEGAL_PARAMETERS;!Array.isArray(e)?this._geo=new Yt(t,e,n,r):this._geo=new Yt(t,e,n,r,s)}get geometricExtents(){return this._geo.box}get closed(){return this._geo.closed}get area(){return this._geo.area}set closed(t){this._geo.closed=t}subGetGripPoints(){return this._geo.controlPoints.map(t=>new _(t.x,t.y,t.z??0))}subGetOsnapPoints(t,e,n,r){switch(t){case b.EndPoint:r.push(this._geo.startPoint),r.push(this._geo.endPoint);break;case b.Node:{const s=new Set;for(const o of this._geo.knots)s.has(o)||(s.add(o),r.push(this._geo.evaluateAt(o)));break}case b.Nearest:r.push(this._geo.nearestPoint(e));break}}transformBy(t){return this._geo.transform(t),this}subWorldDraw(t){const e=this._geo.getPoints(100);return t.lines(e)}dxfOutFields(t){var n;const e=this._geo;super.dxfOutFields(t),t.writeSubclassMarker("AcDbSpline"),t.writeInt16(70,this.closed?1:0),t.writeInt16(71,e.degree),t.writeInt16(72,e.knots.length),t.writeInt16(73,e.controlPoints.length),t.writeInt16(74,((n=e.fitPoints)==null?void 0:n.length)??0);for(const r of e.knots)t.writeDouble(40,r);for(const r of e.weights)t.writeDouble(41,r);for(const r of e.controlPoints)t.writePoint3d(10,r);for(const r of e.fitPoints??[])t.writePoint3d(11,r);return this}getOffsetCurves(t){const e=this.createOffsetCurve(t);return e?[e]:[]}getOffsetSideAtPoint(t){const e=this.collectPath2d(1);return e.length<2?1:lt.from2dPoints(e,this.closed).getOffsetSideAtPoint(t)}createOffsetCurve(t){const{points:e,tangents:n}=this._geo.getOffsetSamplePath2d(t),r=zl(e,this.closed,t,n);return r?lt.fromGePolyline(r):null}collectPath2d(t){return this._geo.getOffsetSamplePath2d(t).points}};lr.typeName="Spline";let rn=lr;const fc=new w,hr=class hr extends he{get dxfTypeName(){return"ACAD_TABLE"}constructor(t,e,n){super(t),this._attachmentPoint=exports.AcGiMTextAttachmentPoint.TopLeft,this._numColumns=n,this._numRows=e,this._columnWidth=new Array(n),this._rowHeight=new Array(e),this._cells=new Array(e*n)}get attachmentPoint(){return this._attachmentPoint}set attachmentPoint(t){this._attachmentPoint=t}get numRows(){return this._numRows}set numRows(t){this._numRows=t}get numColumns(){return this._numColumns}set numColumns(t){this._numColumns=t}numContents(t,e){return 1}rowHeight(t){return this._rowHeight[t]}setRowHeight(t,e){this._rowHeight[t]=e}setUniformRowHeight(t){this._rowHeight.fill(t)}columnWidth(t){return this._columnWidth[t]}setUniformColumnWidth(t){this._columnWidth.fill(t)}setColumnWidth(t,e){this._columnWidth[t]=e}cell(t){if(!(t<0||t>=this._cells.length))return this._cells[t]}setCell(t,e){this._cells[t]=e}textString(t,e,n){var s;const r=t*this._numColumns+e;return(s=this._cells[r])==null?void 0:s.text}setTextString(t,e,n){const r=t*this._numColumns+e;if(!this._cells[r]){this._cells[r]={text:n,attachmentPoint:this._attachmentPoint,cellType:1,textHeight:0};return}this._cells[r].text=n}isEmpty(t,e){var r;const n=t*this._numColumns+e;return!((r=this._cells[n])!=null&&r.text)}get geometricExtents(){let t;try{t=this.blockTableRecord}catch{t=void 0}if(t&&t.newIterator().count>0){const a=new C;for(const h of t.newIterator())a.union(h.geometricExtents);return a.applyMatrix4(this.blockTransform),a}const e=this._columnWidth.reduce((a,h)=>a+h,0),n=this._rowHeight.reduce((a,h)=>a+h,0),r=new C;if(e===0&&n===0)return r.expandByPoint(this.position),r;const s=new ae;s.setFromAxisAngle(w.Z_AXIS,this.rotation),Kt.compose(this.position,s,this.scaleFactors);const o=[new _(0,0,0),new _(e,0,0),new _(e,-n,0),new _(0,-n,0)];for(const a of o)r.expandByPoint(a.applyMatrix4(Kt));return r}get properties(){return{type:this.type,groups:[this.getGeneralProperties(),{groupName:"table",properties:[{name:"numRows",type:"string",editable:!0,accessor:{get:()=>this.numRows,set:t=>{this.numRows=t}}},{name:"numColumns",type:"float",editable:!0,accessor:{get:()=>this.numColumns,set:t=>{this.numColumns=t}}},{name:"tableWidth",type:"float",editable:!1,accessor:{get:()=>this._columnWidth.reduce((t,e)=>t+e,0)}},{name:"tableHeight",type:"float",editable:!1,accessor:{get:()=>this._rowHeight.reduce((t,e)=>t+e,0)}}]},{groupName:"geometry",properties:[{name:"positionX",type:"float",editable:!0,accessor:{get:()=>this.position.x,set:t=>{this.position.x=t}}},{name:"positionY",type:"float",editable:!0,accessor:{get:()=>this.position.y,set:t=>{this.position.y=t}}},{name:"positionZ",type:"float",editable:!0,accessor:{get:()=>this.position.z,set:t=>{this.position.z=t}}}]}]}}subWorldDraw(t){const e=this.blockTableRecord;if(e&&e.newIterator().count>0){const d=this.drawAnonymousTableBlock(t,e);if(d)return d}let n=0,r=0;const s=new Uint16Array(this.numColumns*this.numRows*8),o=new Float32Array((this.numColumns+1)*(this.numRows+1)*3);let a=0;for(let d=0;d<=this.numRows;d++){n-=d>0?this.rowHeight(d-1):0,r=0;for(let p=0;p<=this.numColumns;p++)r+=p>0?this.columnWidth(p-1):0,o[a++]=r,o[a++]=n,o[a++]=0}const h=[],l=new Array(this.numRows*this.numColumns).fill(!1);r=0,a=0;let c=0;for(let d=0;d<this.numColumns;d++){r+=d>0?this.columnWidth(d-1):0,n=0;for(let p=0;p<this.numRows;p++){n+=p>0?this.rowHeight(p-1):0;const f=this.cell(p*this.numColumns+d);if(c=p*this.numColumns+d,f&&!l[c]){const y=f.borderWidth??1,m=f.borderHeight??1;this.fillVisited(l,c,this.numColumns,y,m),s[a++]=d+p*(this.numColumns+1),s[a++]=d+p*(this.numColumns+1)+y;const x=o[s[a-1]*3]-r,S=d+(p+m)*(this.numColumns+1)+y;d+y==this.numColumns&&(s[a++]=d+p*(this.numColumns+1)+y,s[a++]=S);const A=-o[S*3+1]-n;if(p+m==this.numRows&&(s[a++]=d+(p+m)*(this.numColumns+1)+m,s[a++]=d+(p+m)*(this.numColumns+1)),s[a++]=d+(p+m)*(this.numColumns+1),s[a++]=d+p*(this.numColumns+1),f.text){const L=f.attachmentPoint||this.attachmentPoint||exports.AcGiMTextAttachmentPoint.MiddleCenter,T=this.getTableTextOffset(L,x,A),M={text:f.text,height:this.getCellTextHeight(f,A),width:x,position:fc.set(r,-n,0).clone().add(T),rotation:this.rotation,attachmentPoint:L},X=this.getTextStyle(f);h.push(t.mtext(M,X))}}}}h.push(t.lineSegments(o,3,s));const u=t.group(h),g=new ae;return g.setFromAxisAngle(w.Z_AXIS,this.rotation),Kt.compose(this.position,g,this.scaleFactors),u.applyMatrix(Kt),u}drawAnonymousTableBlock(t,e){const n=[],r=e.newIterator();for(const a of r){let h;a.color.isByBlock&&this.rgbColor?(qr.copy(a.color),a.color.setRGBValue(this.rgbColor),h=a.worldDraw(t),a.color.copy(qr)):h=a.worldDraw(t),h&&(h.objectId=this.objectId,h.ownerId=this.ownerId,h.layerName=this.layer,h.visible=this.visibility&&a.visibility,n.push(h))}const s=t.group(n);s.applyMatrix(this.blockTransform);const o=this.normal;return o&&(o.x!==0||o.y!==0||o.z!==1)&&(Kt.setFromExtrusionDirection(o),s.applyMatrix(Kt)),s}fillVisited(t,e,n,r,s){if(s==1&&r==1)t[e]=!0;else for(let o=0;o<r;++o)for(let a=0;a<s;++a)t[e+o+a*n]=!0}getTextStyle(t){const e=this.database.tables.textStyleTable.resolveAt(t.textStyle);if(!e)throw new Error("No valid text style found in text style table.");return e.textStyle}getTableTextOffset(t,e,n){const r=new w;switch(t){case 1:break;case 2:r.setX(e/2);break;case 3:r.setX(e);break;case 4:r.setY(-n/2);break;case 5:r.set(e/2,-n/2,0);break;case 6:r.set(e,-n/2,0);break;case 7:r.setY(-n);break;case 8:r.set(e/2,-n,0);break;case 9:r.set(e,-n,0);break}return r}getCellTextHeight(t,e){return t.textHeight&&t.textHeight>0?t.textHeight:Math.max(e/2,1)}dxfOutFields(t){var s,o,a,h,l,c,u;super.dxfOutFields(t),t.writeSubclassMarker("AcDbTable");const e=t.version??((s=t.database)==null?void 0:s.version)??((o=this.database)==null?void 0:o.version),n=(e==null?void 0:e.value)!=null?e.value>=27:!1;t.writeInt16(280,this.tableDataVersion),t.writeObjectId(342,this.tableStyleId),t.writeObjectId(343,this.owningBlockRecordId),t.writeVector3d(11,this.horizontalDirection),t.writeUInt32(90,this.tableValueFlag),t.writeUInt32(93,this.tableOverrideFlag),t.writeUInt32(94,this.borderColorOverrideFlag),t.writeUInt32(95,this.borderLineweightOverrideFlag),t.writeUInt32(96,this.borderVisibilityOverrideFlag),t.writeInt16(71,this.attachmentPoint),t.writeInt32(91,this.numRows),t.writeInt32(92,this.numColumns);for(let g=0;g<this.numRows;++g)t.writeDouble(141,this.rowHeight(g));for(let g=0;g<this.numColumns;++g)t.writeDouble(142,this.columnWidth(g));const r=this._cells.length>0?this._cells.length:this.numRows*this.numColumns;for(let g=0;g<r;g++){const d=this._cells[g],p=(d==null?void 0:d.cellType)??(d!=null&&d.blockTableRecordId?2:1);if(t.writeInt16(171,p),t.writeInt16(172,(d==null?void 0:d.flagValue)??0),t.writeInt16(173,(d==null?void 0:d.mergedValue)??0),t.writeBoolean(174,d==null?void 0:d.autoFit),t.writeInt16(175,d==null?void 0:d.borderWidth),t.writeInt16(176,d==null?void 0:d.borderHeight),(d==null?void 0:d.overrideFlag)!=null&&(n?t.writeInt32(91,d.overrideFlag):t.writeInt16(177,d.overrideFlag)),t.writeInt16(178,d==null?void 0:d.virtualEdgeFlag),t.writeAngle(145,d==null?void 0:d.rotation),n&&t.writeInt16(92,d==null?void 0:d.extendedCellFlags),p===1)d!=null&&d.fieldObjetId?t.writeObjectId(344,d.fieldObjetId):this.writeCellText(t,(d==null?void 0:d.text)??"",n,d==null?void 0:d.cellValueBlockBegin);else if(p===2){if(t.writeObjectId(340,d==null?void 0:d.blockTableRecordId),t.writeDouble(144,d==null?void 0:d.blockScale),t.writeInt16(179,d==null?void 0:d.blockAttrNum),(a=d==null?void 0:d.attrDefineId)!=null&&a.length)for(const f of d.attrDefineId)t.writeObjectId(331,f);if((d==null?void 0:d.attrText)!=null)if(Array.isArray(d.attrText))for(const f of d.attrText)t.writeString(300,f);else t.writeString(300,d.attrText)}d!=null&&d.textStyle&&t.writeString(7,d.textStyle),(d==null?void 0:d.textHeight)!=null&&t.writeDouble(140,d.textHeight),(d==null?void 0:d.attachmentPoint)!=null&&t.writeInt16(170,d.attachmentPoint),(d==null?void 0:d.topBorderVisibility)!=null&&t.writeInt16(289,d.topBorderVisibility?1:0),(d==null?void 0:d.rightBorderVisibility)!=null&&t.writeInt16(285,d.rightBorderVisibility?1:0),(d==null?void 0:d.bottomBorderVisibility)!=null&&t.writeInt16(286,d.bottomBorderVisibility?1:0),(d==null?void 0:d.leftBorderVisibility)!=null&&t.writeInt16(288,d.leftBorderVisibility?1:0)}if(t.writeInt16(70,this.flowDirection),t.writeDouble(40,this.horizontalCellMargin),t.writeDouble(41,this.verticalCellMargin),this.suppressTitle!=null&&t.writeInt16(280,this.suppressTitle?1:0),this.suppressHeader!=null&&t.writeInt16(281,this.suppressHeader?1:0),(h=this.cellTypeOverrides)!=null&&h.length)for(const g of this.cellTypeOverrides){t.writeString(7,g.textStyle),t.writeDouble(140,g.textHeight),t.writeInt16(170,g.alignment),t.writeInt16(63,g.backgroundColor),t.writeInt16(64,g.contentColor),g.backgroundColorEnabled!=null&&t.writeInt16(283,g.backgroundColorEnabled?1:0);const d=g.borderLineweights;d&&(t.writeInt16(274,d.top),t.writeInt16(275,d.right),t.writeInt16(276,d.bottom),t.writeInt16(277,d.left),t.writeInt16(278,d.insideHorizontal),t.writeInt16(279,d.insideVertical));const p=g.borderVisibility;p&&(t.writeInt16(284,p.top?1:0),t.writeInt16(285,p.right?1:0),t.writeInt16(286,p.bottom?1:0),t.writeInt16(287,p.left?1:0),t.writeInt16(288,p.insideHorizontal?1:0),t.writeInt16(289,p.insideVertical?1:0))}if(this.tableBorderColors&&(t.writeInt16(63,this.tableBorderColors.left),t.writeInt16(64,this.tableBorderColors.top),t.writeInt16(65,this.tableBorderColors.insideHorizontal),t.writeInt16(66,this.tableBorderColors.bottom),t.writeInt16(68,this.tableBorderColors.insideVertical),t.writeInt16(69,this.tableBorderColors.right)),(l=this.rowDataTypes)!=null&&l.length)for(const g of this.rowDataTypes)t.writeInt16(97,g);if((c=this.rowUnitTypes)!=null&&c.length)for(const g of this.rowUnitTypes)t.writeInt16(98,g);if((u=this.rowFormats)!=null&&u.length)for(const g of this.rowFormats)t.writeString(4,g);return this}writeCellText(t,e,n,r){if(!n){if(e.length<=250){t.writeString(1,e);return}const a=Math.ceil(e.length/250);for(let h=0;h<a;h++){const l=h*250,c=l+250,u=e.slice(l,c);h===a-1?t.writeString(1,u):t.writeString(2,u)}return}if(t.writeString(301,r??"CELL_VALUE"),e.length<=250){t.writeString(302,e),t.writeString(304,"ACVALUE_END");return}const o=Math.ceil(e.length/250);for(let a=0;a<o;a++){const h=a*250,l=h+250,c=e.slice(h,l);a===o-1?t.writeString(302,c):t.writeString(303,c)}t.writeString(304,"ACVALUE_END")}};hr.typeName="Table";let sn=hr;const Kt=new Y,qr=new k,ne=class ne extends q{get dxfTypeName(){return"TRACE"}constructor(){super(),this._elevation=0,this._thickness=1,this._vertices=[new _,new _,new _,new _]}get elevation(){return this._elevation}set elevation(t){this._elevation=t}get closed(){return!0}get area(){return new H(ne.boundaryPointsFromVertices(this._vertices),!0).area}get thickness(){return this._thickness}set thickness(t){this._thickness=t}getPointAt(t){return t<0?this._vertices[0]:t>3?this._vertices[3]:this._vertices[t]}setPointAt(t,e){if(t<0&&this._vertices[0].copy(e),t>3)return this._vertices[3].copy(e);this._vertices[t].copy(e)}get geometricExtents(){return new C().setFromPoints(this._vertices)}subGetGripPoints(){const t=new Array;return t.push(...this._vertices),t}subGetOsnapPoints(t,e,n,r){const s=[this._vertices[0],this._vertices[1],this._vertices[3],this._vertices[2]];zn(s,!0,t,e,r)}transformBy(t){return this._vertices.forEach(e=>e.applyMatrix4(t)),this._elevation=this._vertices[0].z,this}subWorldDraw(t){const e=new H(ne.boundaryPointsFromVertices(this._vertices),!0),n=new Bt;n.add(e);const r=t.subEntityTraits;return r.fillType={solidFill:!0,patternAngle:0,definitionLines:[]},t.area(n)}dxfOutFields(t){return super.dxfOutFields(t),t.writeSubclassMarker("AcDbTrace"),t.writeDouble(38,this.elevation),t.writeDouble(39,this.thickness),t.writePoint3d(10,this.getPointAt(0)),t.writePoint3d(11,this.getPointAt(1)),t.writePoint3d(12,this.getPointAt(2)),t.writePoint3d(13,this.getPointAt(3)),this}getOffsetCurves(t){const e=this.createOffsetCurve(t);return e?[e]:[]}getOffsetSideAtPoint(t){const e=this.collectBoundary2d();return e.length<2?1:lt.from2dPoints(e,!0).getOffsetSideAtPoint(t)}createOffsetCurve(t){return yi(this.collectBoundary2d(),!0,t)}collectBoundary2d(){return ne.boundaryPointsFromVertices(this._vertices)}static boundaryPointsFromVertices(t){const e=t[0],n=t[1],r=t[2],s=t[3];return[new P(e.x,e.y),new P(n.x,n.y),new P(s.x,s.y),new P(r.x,r.y)]}};ne.typeName="Trace";let on=ne;const cr=class cr extends ${get dxfTypeName(){return"POINT"}constructor(){super(),this._geo=new _}get position(){return this._geo}set position(t){this._geo.set(t.x,t.y,t.z||0)}get geometricExtents(){return new C().expandByPoint(this._geo)}subGetGripPoints(){return[this._geo]}subGetOsnapPoints(t,e,n,r){t===b.Node&&r.push(this._geo)}get properties(){return{type:this.type,groups:[this.getGeneralProperties(),{groupName:"geometry",properties:[{name:"positionX",type:"float",editable:!0,accessor:{get:()=>this.position.x,set:t=>{this.position.x=t}}},{name:"positionY",type:"float",editable:!0,accessor:{get:()=>this.position.y,set:t=>{this.position.y=t}}},{name:"positionZ",type:"float",editable:!0,accessor:{get:()=>this.position.z,set:t=>{this.position.z=t}}}]}]}}transformBy(t){return this._geo.applyMatrix4(t),this}subWorldDraw(t){return t.point(this._geo,{displayMode:this.database.pdmode,displaySize:this.database.pdsize})}dxfOutFields(t){return super.dxfOutFields(t),t.writeSubclassMarker("AcDbPoint"),t.writePoint3d(10,this.position),this}};cr.typeName="Point";let an=cr;var aa=(i=>(i[i.Invalid=0]="Invalid",i[i.Rect=1]="Rect",i[i.Poly=2]="Poly",i))(aa||{}),la=(i=>(i[i.Show=1]="Show",i[i.ShowUnAligned=2]="ShowUnAligned",i[i.Clip=4]="Clip",i[i.Transparent=8]="Transparent",i))(la||{});const ur=class ur extends ${get dxfTypeName(){return"IMAGE"}constructor(){super(),this._brightness=50,this._contrast=50,this._fade=0,this._width=0,this._height=0,this._position=new _,this._scale=new j(1,1),this._rotation=0,this._imageSize=new P,this._clipBoundaryType=1,this._clipBoundary=[],this._isClipped=!1,this._isShownClipped=!1,this._isImageShown=!0,this._isImageTransparent=!1,this._imageDefId=""}get brightness(){return this._brightness}set brightness(t){this._brightness=t}get contrast(){return this._contrast}set contrast(t){this._contrast=t}get fade(){return this._fade}set fade(t){this._fade=t}get height(){return this._height}set height(t){this._height=t}get width(){return this._width}set width(t){this._width=t}get position(){return this._position}set position(t){this._position=t}get rotation(){return this._rotation}set rotation(t){this._rotation=t}get scale(){return this._scale}set scale(t){this._scale.copy(t)}get imageSize(){return this._imageSize}set imageSize(t){this._imageSize.copy(t)}get clipBoundaryType(){return this._clipBoundaryType}set clipBoundaryType(t){this._clipBoundaryType=t}get clipBoundary(){return this._clipBoundary}set clipBoundary(t){this._clipBoundary=[],this._clipBoundary.push(...t)}get isClipped(){return this._isClipped}set isClipped(t){this._isClipped=t}get isShownClipped(){return this._isShownClipped}set isShownClipped(t){this._isShownClipped=t}get isImageShown(){return this._isImageShown}set isImageShown(t){this._isImageShown=t}get isImageTransparent(){return this._isImageTransparent}set isImageTransparent(t){this._isImageTransparent=t}get image(){return this._image}set image(t){this._image=t}get imageDefId(){return this._imageDefId}set imageDefId(t){this._imageDefId=t}get imageFileName(){if(this._imageDefId){const t=this.database.objects.imageDefinition.getIdAt(this._imageDefId);if(t)return t.sourceFileName}return""}get geometricExtents(){const t=new C;return t.min.copy(this._position),t.max.set(this._position.x+this._width,this._position.y+this._height,0),t}subGetGripPoints(){return this.boundaryPath()}subGetOsnapPoints(t,e,n,r){if(t===b.Insertion){r.push(this._position);return}const s=this.boundaryPath();if(s.length===0)return;let o=s;if(s.length>1){const a=s[0],h=s[s.length-1];a.x===h.x&&a.y===h.y&&(a.z||0)===(h.z||0)&&(o=s.slice(0,-1))}if(t===b.EndPoint){r.push(...o);return}zn(o,!0,t,e,r)}subWorldDraw(t){const e=this.boundaryPath();return this._image?t.image(this._image,{boundary:e,roation:this._rotation}):t.lines(e)}transformBy(t){const e=this._width*this._scale.x,n=this._height*this._scale.y,r=new w(e*Math.cos(this._rotation),e*Math.sin(this._rotation),0),s=new w(-n*Math.sin(this._rotation),n*Math.cos(this._rotation),0),o=this._position.clone(),a=this._position.clone().add(r),h=this._position.clone().add(s);o.applyMatrix4(t),a.applyMatrix4(t),h.applyMatrix4(t);const l=new w(a).sub(o),c=new w(h).sub(o);return this._position.copy(o),this._rotation=Math.atan2(l.y,l.x),this._width=l.length(),this._height=c.length(),this._scale.set(1,1),this}boundaryPath(){const t=[];if(this.isClipped&&this._clipBoundary.length>3){const e=this._width,n=this._height,r=new et;r.setFromPoints(this._clipBoundary);const s=new P;s.setX(this._position.x-r.min.x*e),s.setY(this._position.y-r.min.y*n),this._clipBoundary.forEach(o=>{const a=o.x*e+s.x,h=o.y*n+s.y;t.push(new _(a,h,this._position.z))})}else{if(t.push(this._position),t.push(this._position.clone().setX(this._position.x+this._width)),t.push(this._position.clone().set(this._position.x+this._width,this._position.y+this._height,this._position.z)),t.push(this._position.clone().setY(this._position.y+this._height)),this._rotation>0){Zr.copy(t[1]);for(let e=1;e<4;e++)Ve.copy(t[e]),Ve.rotateAround(Zr,this._rotation),t[e].setX(Ve.x),t[e].setY(Ve.y)}t.push(t[0])}return t}dxfOutFields(t){super.dxfOutFields(t),t.writeSubclassMarker("AcDbRasterImage"),t.writePoint3d(10,this.position);const e=this.width*this.scale.x,n=this.height*this.scale.y,r=this._imageSize.x>0&&this._imageSize.y>0?this._imageSize:{x:e,y:n},s=r.x>0?e/r.x:e,o=r.y>0?n/r.y:n,a=Math.cos(this._rotation),h=Math.sin(this._rotation);t.writePoint3d(11,{x:s*a,y:s*h,z:0}),t.writePoint3d(12,{x:-o*h,y:o*a,z:0}),t.writePoint2d(13,r),t.writeObjectId(340,this.imageDefId);const l=(this.isImageShown?1:0)|(this.isShownClipped?4:0)|(this.isImageTransparent?8:0);if(t.writeInt16(70,l),t.writeInt16(280,this.isClipped?1:0),t.writeInt16(281,this.brightness),t.writeInt16(282,this.contrast),t.writeInt16(283,this.fade),t.writeInt16(71,this.clipBoundaryType),this.isClipped){t.writeInt16(91,this.clipBoundary.length);for(const c of this.clipBoundary)t.writePoint2d(14,c)}return this}};ur.typeName="RasterImage";let ti=ur;const Zr=new P,Ve=new P,ui=class ui extends q{get dxfTypeName(){return"RAY"}constructor(){super(),this._basePoint=new _,this._unitDir=new w}get basePoint(){return this._basePoint}set basePoint(t){this._basePoint.copy(t)}get unitDir(){return this._unitDir}set unitDir(t){this._unitDir.copy(t)}get closed(){return!1}get area(){return 0}get geometricExtents(){const t=new C;return t.expandByPoint(this._unitDir.clone().multiplyScalar(10).add(this._basePoint)),t.expandByPoint(this._unitDir.clone().multiplyScalar(-10).add(this._basePoint)),t}get properties(){return{type:this.type,groups:[this.getGeneralProperties(),{groupName:"geometry",properties:[{name:"basePointX",type:"float",editable:!0,accessor:{get:()=>this.basePoint.x,set:t=>{this.basePoint.x=t}}},{name:"basePointY",type:"float",editable:!0,accessor:{get:()=>this.basePoint.y,set:t=>{this.basePoint.y=t}}},{name:"basePointZ",type:"float",editable:!0,accessor:{get:()=>this.basePoint.z,set:t=>{this.basePoint.z=t}}},{name:"unitDirX",type:"float",editable:!0,accessor:{get:()=>this.unitDir.x,set:t=>{this.unitDir.x=t}}},{name:"unitDirY",type:"float",editable:!0,accessor:{get:()=>this.unitDir.y,set:t=>{this.unitDir.y=t}}},{name:"unitDirZ",type:"float",editable:!0,accessor:{get:()=>this.unitDir.z,set:t=>{this.unitDir.z=t}}}]}]}}subGetGripPoints(){const t=new Array;return t.push(this.basePoint),t}subGetOsnapPoints(t,e,n,r){const s=this.basePoint;if(t===b.EndPoint){r.push(s);return}const o=this.unitDir.clone();if(o.lengthSq()===0)return;o.normalize();const a=new xt(s,s.clone().add(o));switch(t){case b.Nearest:{const h=a.project(e),c=new w(h).sub(s).dot(o);r.push(c<0?s:h);break}case b.Perpendicular:r.push(a.perpPoint(e));break}}transformBy(t){return this._basePoint.applyMatrix4(t),this._unitDir.transformDirection(t),this}subWorldDraw(t){const e=[];return e.push(this.basePoint),e.push(this._unitDir.clone().multiplyScalar(1e6).add(this._basePoint)),t.lines(e)}dxfOutFields(t){return super.dxfOutFields(t),t.writeSubclassMarker("AcDbRay"),t.writePoint3d(10,this.basePoint),t.writeVector3d(11,this.unitDir),this}getOffsetCurves(t){const e=this.createOffsetCurve(t);return e?[e]:[]}getOffsetSideAtPoint(t){const e=this.basePoint,n=this.unitDir,r=Math.hypot(n.x,n.y);return r<=1e-9||(n.x*(t.y-e.y)-n.y*(t.x-e.x))/r>=0?1:-1}createOffsetCurve(t){const e=Gs(this.basePoint,this.unitDir,t);if(!e)return null;const n=new ui;return n.basePoint=e,n.unitDir=this.unitDir.clone(),n}};ui.typeName="Ray";let ln=ui;const dr=class dr extends ${get dxfTypeName(){return"SHAPE"}constructor(){super(),this._position=new _,this._size=1,this._name="",this._rotation=0,this._widthFactor=1,this._oblique=0,this._thickness=0,this._normal=new w(0,0,1),this._shapeNumber=0,this._styleName=""}get position(){return this._position}set position(t){this._position.copy(t)}get size(){return this._size}set size(t){this._size=t}get name(){return this._name}set name(t){this._name=t}get rotation(){return this._rotation}set rotation(t){this._rotation=t}get widthFactor(){return this._widthFactor}set widthFactor(t){this._widthFactor=t}get oblique(){return this._oblique}set oblique(t){this._oblique=t}get thickness(){return this._thickness}set thickness(t){this._thickness=t}get normal(){return this._normal}set normal(t){this._normal.copy(t)}get shapeNumber(){return this._shapeNumber}set shapeNumber(t){this._shapeNumber=t}get styleId(){var e,n,r;const t=(r=(n=(e=this.database)==null?void 0:e.tables)==null?void 0:n.textStyleTable)==null?void 0:r.resolveAt(this._styleName);return(t==null?void 0:t.objectId)??""}set styleId(t){var n,r,s;const e=(s=(r=(n=this.database)==null?void 0:n.tables)==null?void 0:r.textStyleTable)==null?void 0:s.getIdAt(t);e&&(this._styleName=e.name)}get styleName(){return this._styleName}set styleName(t){this._styleName=t}get isPlanar(){return!0}get geometricExtents(){const t=Math.abs(this._size)/2,e=new C;return e.expandByPoint(this._position),t>0&&(e.expandByPoint(new _(this._position.x-t,this._position.y-t,this._position.z)),e.expandByPoint(new _(this._position.x+t,this._position.y+t,this._position.z))),e}subGetGripPoints(){return[this._position]}subGetOsnapPoints(t,e,n,r){t===b.Insertion&&r.push(this._position)}transformBy(t){const e=new Y().setFromExtrusionDirection(this._normal),n=new Y().makeRotationZ(this._rotation),r=new Y().multiplyMatrices(e,n),s=this._position.clone(),o=new _(this._widthFactor,0,0).applyMatrix4(r).add(s),a=new _(0,1,0).applyMatrix4(r).add(s),h=new _(0,0,1).applyMatrix4(r).add(s);s.applyMatrix4(t),o.applyMatrix4(t),a.applyMatrix4(t),h.applyMatrix4(t);const l=new w(o).sub(s),c=new w(a).sub(s),u=new w(h).sub(s);let g=new w().crossVectors(l,c);g.lengthSq()===0?g=this._normal.clone().transformDirection(t):g.normalize();const p=new Y().setFromExtrusionDirection(g).clone().invert(),f=l.clone().applyMatrix4(p),y=c.length(),m=l.length();this._position.copy(s),this._normal.copy(g),m>0&&(this._rotation=Math.atan2(f.y,f.x)),y>0&&(this._size*=y,m>0&&(this._widthFactor*=m/y));const x=u.length();return x>0&&(this._thickness*=x),this}get properties(){return{type:this.type,groups:[this.getGeneralProperties(),{groupName:"shape",properties:[{name:"name",type:"string",editable:!0,accessor:{get:()=>this.name,set:t=>{this.name=t}}},{name:"size",type:"float",editable:!0,accessor:{get:()=>this.size,set:t=>{this.size=t}}},{name:"rotation",type:"float",editable:!0,accessor:{get:()=>this.rotation,set:t=>{this.rotation=t}}},{name:"widthFactor",type:"float",editable:!0,accessor:{get:()=>this.widthFactor,set:t=>{this.widthFactor=t}}},{name:"oblique",type:"float",editable:!0,accessor:{get:()=>this.oblique,set:t=>{this.oblique=t}}},{name:"shapeNumber",type:"int",editable:!0,accessor:{get:()=>this.shapeNumber,set:t=>{this.shapeNumber=t}}}]},{groupName:"geometry",properties:[{name:"positionX",type:"float",editable:!0,accessor:{get:()=>this.position.x,set:t=>{this.position.x=t}}},{name:"positionY",type:"float",editable:!0,accessor:{get:()=>this.position.y,set:t=>{this.position.y=t}}},{name:"positionZ",type:"float",editable:!0,accessor:{get:()=>this.position.z,set:t=>{this.position.z=t}}}]}]}}subWorldDraw(t,e){const r={...this.getTextStyle(),widthFactor:this.widthFactor,obliqueAngle:this.oblique*180/Math.PI},s={name:this._name.trim()||void 0,shapeNumber:this._shapeNumber!==0?this._shapeNumber:void 0,size:this.size,position:this._position,rotation:this._rotation,directionVector:this._normal,widthFactor:this.widthFactor};return t.shape(s,r,e)}getTextStyle(){const t=this.database.tables.textStyleTable.resolveAt(this.styleName);if(!t)throw new Error("No valid text style found in text style table.");return t.textStyle}dxfOutFields(t){return super.dxfOutFields(t),t.writeSubclassMarker("AcDbShape"),t.writePoint3d(10,this.position),t.writeDouble(40,this.size),t.writeString(2,this.name),t.writeAngle(50,this.rotation),t.writeDouble(41,this.widthFactor),t.writeAngle(51,this.oblique),t.writeDouble(39,this.thickness),this._styleName&&t.writeString(3,this._styleName),t.writeVector3d(210,this.normal),this}};dr.typeName="Shape";let hn=dr;const gr=class gr extends ${get dxfTypeName(){return"VIEWPORT"}constructor(){super(),this._centerPoint=new _,this._height=0,this._width=0,this._viewCenter=new _,this._viewHeight=0,this._number=-1}get number(){return this._number}set number(t){this._number=t}get centerPoint(){return this._centerPoint}set centerPoint(t){this._centerPoint=t}get height(){return this._height}set height(t){this._height=t}get width(){return this._width}set width(t){this._width=t}get viewCenter(){return this._viewCenter}set viewCenter(t){this._viewCenter=t}get viewHeight(){return this._viewHeight}set viewHeight(t){this._viewHeight=t}get geometricExtents(){const t=this._width/2,e=this._height/2,n=new C;return n.expandByPoint(new _(this._centerPoint.x-t,this._centerPoint.y-e,this._centerPoint.z)),n.expandByPoint(new _(this._centerPoint.x+t,this._centerPoint.y+e,this._centerPoint.z)),n}transformBy(t){const e=this._centerPoint.clone(),n=this._centerPoint.clone().add(new w(this._width,0,0)),r=this._centerPoint.clone().add(new w(0,this._height,0));e.applyMatrix4(t),n.applyMatrix4(t),r.applyMatrix4(t);const s=new w(n).sub(e),o=new w(r).sub(e),a=this._height!==0?o.length()/this._height:1;return this._centerPoint.copy(e),this._width=s.length(),this._height=o.length(),this._viewHeight*=a,this}subWorldDraw(t){if(this._number>1&&this.ownerId!=this.database.tables.blockTable.modelSpace.objectId){const e=this.toGiViewport();return t.group(this.createViewportRect(e,t))}}toGiViewport(){const t=new oo;return t.id=this.objectId,t.groupId=this.ownerId,t.number=this.number,t.centerPoint=this.centerPoint,t.width=this.width,t.height=this.height,t.viewHeight=this.viewHeight,t.viewCenter=this.viewCenter,t}createViewportRect(t,e){const n=[];return n.push(e.lines([new _(t.centerPoint.x-t.width/2,t.centerPoint.y-t.height/2,0),new _(t.centerPoint.x+t.width/2,t.centerPoint.y-t.height/2,0)])),n.push(e.lines([new _(t.centerPoint.x+t.width/2,t.centerPoint.y-t.height/2,0),new _(t.centerPoint.x+t.width/2,t.centerPoint.y+t.height/2,0)])),n.push(e.lines([new _(t.centerPoint.x+t.width/2,t.centerPoint.y+t.height/2,0),new _(t.centerPoint.x-t.width/2,t.centerPoint.y+t.height/2,0)])),n.push(e.lines([new _(t.centerPoint.x-t.width/2,t.centerPoint.y+t.height/2,0),new _(t.centerPoint.x-t.width/2,t.centerPoint.y-t.height/2,0)])),n}dxfOutFields(t){return super.dxfOutFields(t),t.writeSubclassMarker("AcDbViewport"),t.writePoint3d(10,this.centerPoint),t.writeDouble(40,this.height),t.writeDouble(41,this.width),t.writePoint3d(12,this.viewCenter),t.writeDouble(45,this.viewHeight),t.writeInt32(69,this.number),this}};gr.typeName="Viewport";let cn=gr;const pr=class pr extends ti{get dxfTypeName(){return"WIPEOUT"}subWorldDraw(t){const e=this.boundaryPath(),n=new Bt;return n.add(new H(e)),t.area(n)}dxfOutFields(t){return super.dxfOutFields(t),this}};pr.typeName="Wipeout";let un=pr;const di=class di extends q{get dxfTypeName(){return"XLINE"}constructor(){super(),this._basePoint=new _,this._unitDir=new w}get basePoint(){return this._basePoint}set basePoint(t){this._basePoint.copy(t)}get unitDir(){return this._unitDir}set unitDir(t){this._unitDir.copy(t)}get closed(){return!1}get area(){return 0}get geometricExtents(){const t=new C;return t.expandByPoint(this._unitDir.clone().multiplyScalar(10).add(this._basePoint)),t.expandByPoint(this._unitDir.clone().multiplyScalar(-10).add(this._basePoint)),t}get properties(){return{type:this.type,groups:[this.getGeneralProperties(),{groupName:"geometry",properties:[{name:"basePointX",type:"float",editable:!0,accessor:{get:()=>this.basePoint.x,set:t=>{this.basePoint.x=t}}},{name:"basePointY",type:"float",editable:!0,accessor:{get:()=>this.basePoint.y,set:t=>{this.basePoint.y=t}}},{name:"basePointZ",type:"float",editable:!0,accessor:{get:()=>this.basePoint.z,set:t=>{this.basePoint.z=t}}},{name:"unitDirX",type:"float",editable:!0,accessor:{get:()=>this.unitDir.x,set:t=>{this.unitDir.x=t}}},{name:"unitDirY",type:"float",editable:!0,accessor:{get:()=>this.unitDir.y,set:t=>{this.unitDir.y=t}}},{name:"unitDirZ",type:"float",editable:!0,accessor:{get:()=>this.unitDir.z,set:t=>{this.unitDir.z=t}}}]}]}}subGetGripPoints(){const t=new Array;return t.push(this.basePoint),t}subGetOsnapPoints(t,e,n,r){const s=this.basePoint;if(t===b.EndPoint){r.push(s);return}const o=this.unitDir.clone();if(o.lengthSq()===0)return;o.normalize();const a=new xt(s,s.clone().add(o));switch(t){case b.Nearest:r.push(a.project(e));break;case b.Perpendicular:r.push(a.perpPoint(e));break}}transformBy(t){return this._basePoint.applyMatrix4(t),this._unitDir.transformDirection(t),this}subWorldDraw(t){const e=[];return e.push(this._unitDir.clone().multiplyScalar(-1e6).add(this._basePoint)),e.push(this._unitDir.clone().multiplyScalar(1e6).add(this._basePoint)),t.lines(e)}dxfOutFields(t){return super.dxfOutFields(t),t.writeSubclassMarker("AcDbXline"),t.writePoint3d(10,this.basePoint),t.writeVector3d(11,this.unitDir),this}getOffsetCurves(t){const e=this.createOffsetCurve(t);return e?[e]:[]}getOffsetSideAtPoint(t){const e=this.basePoint,n=this.unitDir,r=Math.hypot(n.x,n.y);return r<=1e-9||(n.x*(t.y-e.y)-n.y*(t.x-e.x))/r>=0?1:-1}createOffsetCurve(t){const e=Gs(this.basePoint,this.unitDir,t);if(!e)return null;const n=new di;return n.basePoint=e,n.unitDir=this.unitDir.clone(),n}};di.typeName="Xline";let dn=di;class ha{constructor(t){this.position=new _(t.x,t.y,t.z||0)}}const fr=class fr extends q{get dxfTypeName(){return"POLYLINE"}constructor(t,e,n,r=!1,s=!1){super(),this._mCount=t,this._nCount=e,this._closedM=r,this._closedN=s,this._vertices=n.map(o=>new ha(o))}get mCount(){return this._mCount}get nCount(){return this._nCount}get closedM(){return this._closedM}get closedN(){return this._closedN}get closed(){return this._closedM}get area(){return 0}set closed(t){this._closedM=t}get numberOfVertices(){return this._vertices.length}getVertexAt(t){if(t<0||t>=this._vertices.length)throw new Error("Vertex index out of bounds");return this._vertices[t]}getVertexAtMN(t,e){const n=t*this._nCount+e;return this.getVertexAt(n)}get geometricExtents(){if(this._vertices.length===0)return new C(new _(0,0,0),new _(0,0,0));let t=Number.MAX_VALUE,e=Number.MAX_VALUE,n=Number.MAX_VALUE,r=-Number.MAX_VALUE,s=-Number.MAX_VALUE,o=-Number.MAX_VALUE;return this._vertices.forEach(a=>{t=Math.min(t,a.position.x),e=Math.min(e,a.position.y),n=Math.min(n,a.position.z),r=Math.max(r,a.position.x),s=Math.max(s,a.position.y),o=Math.max(o,a.position.z)}),new C(new _(t,e,n),new _(r,s,o))}subGetGripPoints(){const t=new Array;return this._vertices.forEach(e=>{t.push(e.position)}),t}subGetOsnapPoints(t,e,n,r){switch(t){case b.EndPoint:this._vertices.forEach(s=>{r.push(s.position)});break}}transformBy(t){return this._vertices.forEach(e=>{e.position.applyMatrix4(t)}),this}get properties(){return{type:this.type,groups:[this.getGeneralProperties(),{groupName:"geometry",properties:[{name:"mCount",type:"float",editable:!1,accessor:{get:()=>this._mCount}},{name:"nCount",type:"float",editable:!1,accessor:{get:()=>this._nCount}},{name:"vertices",type:"array",editable:!1,itemSchema:{properties:[{name:"x",type:"float",editable:!0},{name:"y",type:"float",editable:!0},{name:"z",type:"float",editable:!0}]},accessor:{get:()=>this._vertices.map(t=>({x:t.position.x,y:t.position.y,z:t.position.z}))}}]},{groupName:"others",properties:[{name:"closedM",type:"boolean",editable:!0,accessor:{get:()=>this._closedM,set:t=>{this._closedM=t}}},{name:"closedN",type:"boolean",editable:!0,accessor:{get:()=>this._closedN,set:t=>{this._closedN=t}}}]}]}}subWorldDraw(t){const e=[];for(let n=0;n<this._mCount;n++)for(let r=0;r<this._nCount;r++){const s=this.getVertexAtMN(n,r);let o=r+1;if(o>=this._nCount)if(this._closedN)o=0;else continue;const a=this.getVertexAtMN(n,o);e.push(s.position),e.push(a.position)}for(let n=0;n<this._nCount;n++)for(let r=0;r<this._mCount;r++){const s=this.getVertexAtMN(r,n);let o=r+1;if(o>=this._mCount)if(this._closedM)o=0;else continue;const a=this.getVertexAtMN(o,n);e.push(s.position),e.push(a.position)}return t.lines(e)}dxfOutFields(t){super.dxfOutFields(t),t.writeSubclassMarker("AcDbPolygonMesh");let e=16;return this._closedM&&(e|=1),this._closedN&&(e|=32),t.writeInt16(66,1),t.writeInt16(70,e),t.writeInt32(71,this._mCount),t.writeInt32(72,this._nCount),this}dxfOut(t,e=!1){super.dxfOut(t,e);for(let n=0;n<this.numberOfVertices;n++){const r=this.getVertexAt(n);t.writeStart("VERTEX"),t.writeHandle(5,this.database.generateHandle()),t.writeObjectId(330,this.objectId),t.writeSubclassMarker("AcDbEntity"),t.writeSubclassMarker("AcDbVertex"),t.writeSubclassMarker("AcDbPolygonMeshVertex"),t.writePoint3d(10,r.position),t.writeInt16(70,16)}return t.writeStart("SEQEND"),t.writeHandle(5,this.database.generateHandle()),t.writeObjectId(330,this.objectId),t.writeSubclassMarker("AcDbEntity"),this}getOffsetCurves(t){const e=this.createOffsetCurve(t);return e?[e]:[]}getOffsetSideAtPoint(t){const e=this.collectBoundary2d();return e.length<2?1:lt.from2dPoints(e,this.isBoundaryClosed()).getOffsetSideAtPoint(t)}createOffsetCurve(t){return yi(this.collectBoundary2d(),this.isBoundaryClosed(),t)}isBoundaryClosed(){return this._closedM&&this._closedN&&this._mCount>1&&this._nCount>1}collectBoundary2d(){const t=this._mCount,e=this._nCount;if(t<1||e<1)return[];const n=[],r=(s,o)=>{const a=this.getVertexAtMN(s,o).position;n.push(new P(a.x,a.y))};if(t===1){for(let s=0;s<e;s++)r(0,s);return n}if(e===1){for(let s=0;s<t;s++)r(s,0);return n}for(let s=0;s<e;s++)r(0,s);for(let s=1;s<t;s++)r(s,e-1);for(let s=e-2;s>=0;s--)r(t-1,s);for(let s=t-2;s>=1;s--)r(s,0);return n}};fr.typeName="PolygonMesh";let gn=fr;class ca{constructor(t){this.position=new _(t.x,t.y,t.z||0)}}class ua{constructor(t){this.vertexIndices=t}}const yr=class yr extends q{get dxfTypeName(){return"POLYLINE"}constructor(t,e){super(),this._vertices=t.map(n=>new ca(n)),this._faces=e.map(n=>new ua(n))}get numberOfVertices(){return this._vertices.length}get numberOfFaces(){return this._faces.length}get closed(){return!1}get area(){return 0}set closed(t){}getVertexAt(t){if(t<0||t>=this._vertices.length)throw new Error("Vertex index out of bounds");return this._vertices[t]}getFaceAt(t){if(t<0||t>=this._faces.length)throw new Error("Face index out of bounds");return this._faces[t]}get geometricExtents(){if(this._vertices.length===0)return new C(new _(0,0,0),new _(0,0,0));let t=Number.MAX_VALUE,e=Number.MAX_VALUE,n=Number.MAX_VALUE,r=-Number.MAX_VALUE,s=-Number.MAX_VALUE,o=-Number.MAX_VALUE;return this._vertices.forEach(a=>{t=Math.min(t,a.position.x),e=Math.min(e,a.position.y),n=Math.min(n,a.position.z),r=Math.max(r,a.position.x),s=Math.max(s,a.position.y),o=Math.max(o,a.position.z)}),new C(new _(t,e,n),new _(r,s,o))}subGetGripPoints(){const t=new Array;return this._vertices.forEach(e=>{t.push(e.position)}),t}subGetOsnapPoints(t,e,n,r){switch(t){case b.EndPoint:this._vertices.forEach(s=>{r.push(s.position)});break}}transformBy(t){return this._vertices.forEach(e=>{e.position.applyMatrix4(t)}),this}get properties(){return{type:this.type,groups:[this.getGeneralProperties(),{groupName:"geometry",properties:[{name:"vertices",type:"array",editable:!1,itemSchema:{properties:[{name:"x",type:"float",editable:!0},{name:"y",type:"float",editable:!0},{name:"z",type:"float",editable:!0}]},accessor:{get:()=>this._vertices.map(t=>({x:t.position.x,y:t.position.y,z:t.position.z}))}},{name:"faces",type:"array",editable:!1,itemSchema:{properties:[{name:"vertexIndices",type:"array",editable:!1,itemSchema:{properties:[{name:"index",type:"int",editable:!1}]}}]},accessor:{get:()=>this._faces.map(t=>({vertexIndices:t.vertexIndices}))}}]}]}}subWorldDraw(t){const e=[];return this._faces.forEach(n=>{const r=[];if(n.vertexIndices.forEach(s=>{const o=Math.abs(s)-1;o>=0&&o<this._vertices.length&&r.push(this._vertices[o].position)}),r.length>=3)for(let s=0;s<r.length;s++){const o=r[s],a=r[(s+1)%r.length];e.push(o),e.push(a)}}),t.lines(e)}dxfOutFields(t){super.dxfOutFields(t),t.writeSubclassMarker("AcDbPolyFaceMesh");const e=64;return t.writeInt16(66,1),t.writeInt16(70,e),this}dxfOut(t,e=!1){super.dxfOut(t,e);for(let n=0;n<this.numberOfVertices;n++){const r=this.getVertexAt(n);t.writeStart("VERTEX"),t.writeHandle(5,this.database.generateHandle()),t.writeObjectId(330,this.objectId),t.writeSubclassMarker("AcDbEntity"),t.writeSubclassMarker("AcDbVertex"),t.writeSubclassMarker("AcDbPolyFaceMeshVertex"),t.writePoint3d(10,r.position),t.writeInt16(70,64)}for(let n=0;n<this.numberOfFaces;n++){const r=this.getFaceAt(n);t.writeStart("VERTEX"),t.writeHandle(5,this.database.generateHandle()),t.writeObjectId(330,this.objectId),t.writeSubclassMarker("AcDbEntity"),t.writeSubclassMarker("AcDbVertex"),t.writeSubclassMarker("AcDbPolyFaceMeshVertex"),t.writeInt16(70,128),r.vertexIndices.forEach((s,o)=>{t.writeInt32(10+o,s)})}return t.writeStart("SEQEND"),t.writeHandle(5,this.database.generateHandle()),t.writeObjectId(330,this.objectId),t.writeSubclassMarker("AcDbEntity"),this}getOffsetCurves(t){const e=this.createOffsetCurve(t);return e?[e]:[]}getOffsetSideAtPoint(t){const e=this.collectLargestFaceBoundary2d();return e.length<2?1:lt.from2dPoints(e,!0).getOffsetSideAtPoint(t)}createOffsetCurve(t){return yi(this.collectLargestFaceBoundary2d(),!0,t)}collectLargestFaceBoundary2d(){let t=[];for(const e of this._faces){const n=e.vertexIndices.filter(r=>r>=0);n.length>t.length&&(t=n)}return t.length<2?this._vertices.map(e=>new P(e.position.x,e.position.y)):t.map(e=>{const n=this.getVertexAt(e).position;return new P(n.x,n.y)})}};yr.typeName="PolyFaceMesh";let pn=yr;var da=(i=>(i[i.UTF8=0]="UTF8",i[i.US_ASCII=1]="US_ASCII",i[i.ISO_8859_1=2]="ISO_8859_1",i[i.ISO_8859_2=3]="ISO_8859_2",i[i.ISO_8859_3=4]="ISO_8859_3",i[i.ISO_8859_4=5]="ISO_8859_4",i[i.ISO_8859_5=6]="ISO_8859_5",i[i.ISO_8859_6=7]="ISO_8859_6",i[i.ISO_8859_7=8]="ISO_8859_7",i[i.ISO_8859_8=9]="ISO_8859_8",i[i.ISO_8859_9=10]="ISO_8859_9",i[i.CP437=11]="CP437",i[i.CP850=12]="CP850",i[i.CP852=13]="CP852",i[i.CP855=14]="CP855",i[i.CP857=15]="CP857",i[i.CP860=16]="CP860",i[i.CP861=17]="CP861",i[i.CP863=18]="CP863",i[i.CP864=19]="CP864",i[i.CP865=20]="CP865",i[i.CP869=21]="CP869",i[i.CP932=22]="CP932",i[i.MACINTOSH=23]="MACINTOSH",i[i.BIG5=24]="BIG5",i[i.CP949=25]="CP949",i[i.JOHAB=26]="JOHAB",i[i.CP866=27]="CP866",i[i.ANSI_1250=28]="ANSI_1250",i[i.ANSI_1251=29]="ANSI_1251",i[i.ANSI_1252=30]="ANSI_1252",i[i.GB2312=31]="GB2312",i[i.ANSI_1253=32]="ANSI_1253",i[i.ANSI_1254=33]="ANSI_1254",i[i.ANSI_1255=34]="ANSI_1255",i[i.ANSI_1256=35]="ANSI_1256",i[i.ANSI_1257=36]="ANSI_1257",i[i.ANSI_874=37]="ANSI_874",i[i.ANSI_932=38]="ANSI_932",i[i.ANSI_936=39]="ANSI_936",i[i.ANSI_949=40]="ANSI_949",i[i.ANSI_950=41]="ANSI_950",i[i.ANSI_1361=42]="ANSI_1361",i[i.UTF16=43]="UTF16",i[i.ANSI_1258=44]="ANSI_1258",i[i.UNDEFINED=255]="UNDEFINED",i))(da||{});const yc=["utf-8","utf-8","iso-8859-1","iso-8859-2","iso-8859-3","iso-8859-4","iso-8859-5","iso-8859-6","iso-8859-7","iso-8859-8","iso-8859-9","utf-8","utf-8","utf-8","utf-8","utf-8","utf-8","utf-8","utf-8","utf-8","utf-8","utf-8","shift-jis","macintosh","big5","utf-8","utf-8","ibm866","windows-1250","windows-1251","windows-1252","gbk","windows-1253","windows-1254","windows-1255","windows-1256","windows-1257","windows-874","shift-jis","gbk","euc-kr","big5","utf-8","utf-16le","windows-1258"],mc=i=>yc[i];var ga=(i=>(i.ClosedFilled="",i.Dot="_DOT",i.DotSmall="_DOTSMALL",i.DotBlank="_DOTBLANK",i.Origin="_ORIGIN",i.Origin2="_ORIGIN2",i.Open="_OPEN",i.Open90="_OPEN90",i.Open30="_OPEN30",i.Closed="_CLOSED",i.Small="_SMALL",i.None="_NONE",i.Oblique="_OBLIQUE",i.BoxFilled="_BOXFILLED",i.Box="_BOXBLANK",i.ClosedBlank="_CLOSEDBLANK",i.DatumBlank="_DATUMBLANK",i.DatumFilled="_DATUMFILLED",i.Integral="_INTEGRAL",i.ArchTick="_ARCHTICK",i))(ga||{});class Un{parse(t){const n=this.normalizeLineEndings(t).split(`
|
|
7
|
+
`),r=[],s=[];let o=null;return n.forEach((a,h)=>{const l=h+1,c=this.stripInlineComment(a).trim();if(!c)return;if(c.startsWith("*")){this.flushCurrentPattern(o,r,s);const g=this.parseHeader(c.slice(1));if(!g){s.push({line:l,message:"Invalid pattern header.",source:a}),o=null;return}o={pattern:{name:g.name,description:g.description,lines:[]},headerLine:l};return}if(!o){s.push({line:l,message:"Line descriptor appears before any pattern header.",source:a});return}const u=this.parseLineDescriptor(c,l);if(!u){s.push({line:l,message:"Invalid line descriptor. Expect: angle,x-origin,y-origin,delta-x,delta-y[,dash-1,...].",source:a});return}o.pattern.lines.push(u)}),this.flushCurrentPattern(o,r,s),{patterns:r,issues:s}}static parse(t){return new Un().parse(t)}normalizeLineEndings(t){return t.replace(/\r\n/g,`
|
|
7
8
|
`).replace(/\r/g,`
|
|
8
|
-
`)}stripInlineComment(t){const e=t.indexOf(";");return e<0?t:t.slice(0,e)}parseHeader(t){const e=t.indexOf(",");if(e<0){const s=t.trim();return s?{name:s,description:""}:null}const n=t.slice(0,e).trim(),r=t.slice(e+1).trim();return n?{name:n,description:r}:null}parseNumber(t){const e=Number(t.trim());return Number.isFinite(e)?e:null}parseLineDescriptor(t,e){const n=t.split(",").map(u=>u.trim()).filter(u=>u.length>0);if(n.length<5)return null;const r=this.parseNumber(n[0]),s=this.parseNumber(n[1]),o=this.parseNumber(n[2]),a=this.parseNumber(n[3]),h=this.parseNumber(n[4]);if(r==null||s==null||o==null||a==null||h==null)return null;const l=n.slice(5),c=[];for(const u of l){const g=this.parseNumber(u);if(g==null)return null;c.push(g)}return{angle:r,originX:s,originY:o,deltaX:a,deltaY:h,dashes:c,sourceLine:e}}flushCurrentPattern(t,e,n){t&&(t.pattern.lines.length===0&&n.push({line:t.headerLine,message:`Pattern "${t.pattern.name}" has no line descriptor.`,source:""}),e.push(t.pattern))}}const N=class N{static nextGradientId(t){return N.gradientIdCounter+=1,`acdb-pat-gradient-${t.toLowerCase()}-${N.gradientIdCounter}`}static packedRgbToCss(t){return`#${(t&16777215).toString(16).padStart(6,"0")}`}static gradientColorToCss(t,e){return typeof t=="number"?N.packedRgbToCss(t):t??e}static applyShadeTint(t,e){const n=E.clamp(e,0,1),r=n<.5?0:16777215,s=n<.5?1-n*2:n*2-1,o=t>>16&255,a=t>>8&255,h=t&255,l=r>>16&255,c=r>>8&255,u=r&255;return Math.round(o+(l-o)*s)*65536+Math.round(a+(c-a)*s)*256+Math.round(h+(u-h)*s)}static resolveGradientColors(t){const e="#2563eb",n="#f8fafc",r=N.gradientColorToCss(t.startColor,e);if(t.oneColorMode&&t.endColor==null){if(typeof t.startColor=="number"){const s=N.applyShadeTint(t.startColor,t.shadeTintValue??.5);return{start:r,end:N.packedRgbToCss(s)}}return{start:r,end:(t.shadeTintValue??.5)<.5?"#000000":"#ffffff"}}return{start:r,end:N.gradientColorToCss(t.endColor,n)}}static renderGradientStops(t){return t.map(e=>`<stop offset="${(E.clamp(e.offset,0,1)*100).toFixed(2)}%" stop-color="${e.color}" />`).join("")}static getGradientVector(t){return{x:Math.cos(t),y:-Math.sin(t)}}static isSolidPattern(t){return t.name.trim().toUpperCase()===Gt}static renderBackground(t,e,n){return`<rect x="${-t/2}" y="${-e/2}" width="${t}" height="${e}" fill="${n}" />`}static estimateUnitScale(t){const e=[];for(const s of t.lines){e.push(Math.abs(s.deltaX),Math.abs(s.deltaY));for(const o of s.dashes)e.push(Math.abs(o))}const n=e.filter(s=>s>N.EPSILON);if(n.length===0)return 1;const r=n.sort((s,o)=>s-o);return r[Math.floor(r.length/2)]||1}static segmentToSvgPath(t){return`M ${t.x1.toFixed(2)} ${(-t.y1).toFixed(2)} L ${t.x2.toFixed(2)} ${(-t.y2).toFixed(2)}`}static buildDashSegments(t,e,n,r,s,o,a){const h=t.dashes;if(h.length===0)return[{x1:r+o*e,y1:s+a*e,x2:r+o*n,y2:s+a*n}];const l=h.reduce((d,p)=>d+Math.abs(p),0);if(l<=N.EPSILON)return[{x1:r+o*e,y1:s+a*e,x2:r+o*n,y2:s+a*n}];const c=[],u=Math.ceil((n-e)/l)+2;let g=e-l;for(let d=0;d<u;d++){let p=g;for(const f of h){const y=Math.abs(f),m=p+y;if(f>0||f===0){const x=E.clamp(p,e,n),S=E.clamp(m,e,n);S>x?c.push({x1:r+o*x,y1:s+a*x,x2:r+o*S,y2:s+a*S}):f===0&&x>=e&&x<=n&&c.push({x1:r+o*(x-.35),y1:s+a*(x-.35),x2:r+o*(x+.35),y2:s+a*(x+.35)})}p=m}g+=l}return c}static renderFamily(t,e){const n=E.degToRad(t.angle),r=Math.cos(n),s=Math.sin(n),o=-s,a=r,h=r*t.deltaX+o*t.deltaY,l=s*t.deltaX+a*t.deltaY,c=Math.hypot(h,l),u=c<=N.EPSILON?1:Math.max(1,Math.ceil(e*2/c)+1),g=Math.floor(u/2),d=-e*1.5,p=e*1.5,f=[];for(let y=-g;y<=g;y++){const m=t.originX+h*y,x=t.originY+l*y,S=N.buildDashSegments(t,d,p,m,x,r,s);for(const A of S)f.push(N.segmentToSvgPath(A))}return`<path d="${f.join(" ")}" fill="none" />`}static renderLinearGradientDef(t,e,n,r,s){const o=N.getGradientVector(e),a=E.clamp(n,-1,1)*r*.5,h=o.x*a,l=o.y*a;return[`<linearGradient id="${t}" gradientUnits="userSpaceOnUse"`,` x1="${(-o.x*r+h).toFixed(2)}"`,` y1="${(-o.y*r+l).toFixed(2)}"`,` x2="${(o.x*r+h).toFixed(2)}"`,` y2="${(o.y*r+l).toFixed(2)}">`,N.renderGradientStops(s),"</linearGradient>"].join("")}static renderRadialGradientDef(t,e,n,r,s){return[`<radialGradient id="${t}" gradientUnits="userSpaceOnUse"`,` cx="${e.toFixed(2)}" cy="${n.toFixed(2)}" r="${r.toFixed(2)}"`,` fx="${e.toFixed(2)}" fy="${n.toFixed(2)}">`,N.renderGradientStops(s),"</radialGradient>"].join("")}static renderGradientDef(t,e,n,r,s,o,a){const h=e.toUpperCase(),l=h.startsWith("INV"),c=h.replace(/^INV/,""),u=l?n.end:n.start,g=l?n.start:n.end,d=Math.hypot(o,a)/2,p=N.getGradientVector(r),f=E.clamp(s,-1,1),y=p.x*f*o*.25,m=p.y*f*a*.25;switch(c){case"CYLINDER":{const x=E.clamp(.5+f*.45,.05,.95);return N.renderLinearGradientDef(t,r,0,d,[{offset:0,color:u},{offset:x,color:g},{offset:1,color:u}])}case"SPHERICAL":return N.renderRadialGradientDef(t,y,m,d,[{offset:0,color:g},{offset:1,color:u}]);case"HEMISPHERICAL":return N.renderRadialGradientDef(t,y+p.x*o*.18,m+p.y*a*.18,d*.92,[{offset:0,color:g},{offset:.72,color:u},{offset:1,color:u}]);case"CURVED":return N.renderRadialGradientDef(t,-p.x*o*.95+y,-p.y*a*.95+m,d*1.65,[{offset:0,color:u},{offset:.55,color:u},{offset:1,color:g}]);case"LINEAR":default:return N.renderLinearGradientDef(t,r,s,d,[{offset:0,color:u},{offset:1,color:g}])}}renderPattern(t,e={}){const n=e.width??260,r=e.height??160,s=e.stroke??"#1f2937",o=e.strokeWidth??1.3,a=e.background??"#ffffff",h=`${-n/2} ${-r/2} ${n} ${r}`;if(N.isSolidPattern(t))return[`<svg xmlns="http://www.w3.org/2000/svg" viewBox="${h}" width="${n}" height="${r}">`,N.renderBackground(n,r,a),`<rect x="${-n/2}" y="${-r/2}" width="${n}" height="${r}" fill="${s}" />`,"</svg>"].join("");const l=N.estimateUnitScale(t),u=Math.min(n,r)*.18/Math.max(l,N.EPSILON),g={...t,lines:t.lines.map(f=>({...f,originX:f.originX*u,originY:f.originY*u,deltaX:f.deltaX*u,deltaY:f.deltaY*u,dashes:f.dashes.map(y=>y*u)}))},d=Math.hypot(n,r)*.75,p=g.lines.map(f=>N.renderFamily(f,d)).join("");return[`<svg xmlns="http://www.w3.org/2000/svg" viewBox="${h}" width="${n}" height="${r}">`,N.renderBackground(n,r,a),`<g stroke="${s}" stroke-width="${o.toFixed(2)}" stroke-linecap="round">`,p,"</g>","</svg>"].join("")}renderGradient(t,e={}){const n=e.width??260,r=e.height??160,s=e.background??"#ffffff",o=e.angle??0,a=e.shift??0,h=`${-n/2} ${-r/2} ${n} ${r}`,l=N.nextGradientId(t),c=N.resolveGradientColors(e),u=N.renderGradientDef(l,t,c,o,a,n,r);return[`<svg xmlns="http://www.w3.org/2000/svg" viewBox="${h}" width="${n}" height="${r}">`,N.renderBackground(n,r,s),"<defs>",u,"</defs>",`<rect x="${-n/2}" y="${-r/2}" width="${n}" height="${r}" fill="url(#${l})" />`,"</svg>"].join("")}};N.EPSILON=1e-9,N.gradientIdCounter=0;let xn=N;const ca="Load Database",Kr=3e4,fc=12e4,yc=1024*1024;class it extends ns{constructor(t,e){super(t.stage),this.data=t,this.progress=e}async run(t){const e=Pn.getInstance().getEntry(ca),n=Date.now();this.progress&&await this.progress(this.data.progress.value,this.data.stage,"START");const r=await this.data.task(t);return this.progress&&(await this.progress(this.data.progress.value,this.data.stage,"END",r?r.data:null),this.data.progress.value+=this.data.step,this.data.progress.value>100&&(this.data.progress.value=100)),e&&(e.data[this.name]=Date.now()-n),r}}class ua{constructor(t={}){this.config={useWorker:t.useWorker??!0,...t}}async read(t,e,n,r,s,o){const a={name:ca,data:{total:0},format(){let u="";return Object.keys(this.data).forEach(g=>{g!=="total"&&(u+=`- ${g}: ${this.data[g]} ms
|
|
9
|
-
`)}),u+=`- total: ${this.data.total} ms`,u}};Pn.getInstance().collect(a),this.progress=r;const h={value:0},l=new rs;l.setCompleteCallback(()=>this.onFinished()),l.setErrorCallback(u=>this.onError(u)),l.addTask(new it({stage:"START",step:1,progress:h,task:async u=>u},r)),l.addTask(new it({stage:"PARSE",step:5,progress:h,task:async u=>await this.parse(u,s)},r)),l.addTask(new it({stage:"FONT",step:5,progress:h,task:async u=>{const g=this.getFonts(u.model);return{model:u.model,data:g}}},r)),l.addTask(new it({stage:"LTYPE",step:1,progress:h,task:async u=>(this.processLineTypes(u.model,e),u)},r)),l.addTask(new it({stage:"STYLE",step:1,progress:h,task:async u=>(this.processTextStyles(u.model,e),u)},r)),l.addTask(new it({stage:"DIMSTYLE",step:1,progress:h,task:async u=>(this.processDimStyles(u.model,e),u)},r)),l.addTask(new it({stage:"LAYER",step:1,progress:h,task:async u=>(this.processLayers(u.model,e),e.tables.layerTable.numEntries===0&&e.createDefaultData({layer:!0}),u)},r)),l.addTask(new it({stage:"VPORT",step:1,progress:h,task:async u=>(this.processViewports(u.model,e),u)},r)),l.addTask(new it({stage:"HEADER",step:1,progress:h,task:async u=>{if(this.processHeader(u.model,e),o){const g=gt.instance();for(const[d,p]of Object.entries(o))g.setVar(d,p,e)}return u}},r)),l.addTask(new it({stage:"BLOCK_RECORD",step:5,progress:h,task:async u=>(this.processBlockTables(u.model,e),u)},r)),l.addTask(new it({stage:"OBJECT",step:5,progress:h,task:async u=>(this.processObjects(u.model,e),e.objects.layout.numEntries===0&&e.createDefaultData({layout:!0}),u)},r)),l.addTask(new it({stage:"BLOCK",step:5,progress:h,task:async u=>(await this.processBlocks(u.model,e),u)},r)),l.addTask(new it({stage:"ENTITY",step:100,progress:h,task:async u=>(await this.processEntities(u.model,e,n,h,r),u)},r)),l.addTask(new it({stage:"END",step:0,progress:h,task:async u=>u},r));const c=Date.now();await l.run(t),a.data.total=Date.now()-c}onError(t){if(this.progress){const e=t.task;this.progress(e.data.progress.value,e.data.stage,"ERROR",void 0,t)}return t.task.name==="ENTITY"?!1:(this.onFinished(),!0)}onFinished(){this.progress&&(this.progress(100,"END","END"),Wt.instance.clear())}getParserWorkerTimeout(t,e){const n=e??this.config.timeout;if(n!=null)return n;const r=Math.ceil(t.byteLength/yc),s=Kr+r*1e3;return Math.min(fc,Math.max(Kr,s))}async parse(t,e){throw new Error("Not impelemented yet!")}getFonts(t){throw new Error("Not impelemented yet!")}processLineTypes(t,e){throw new Error("Not impelemented yet!")}processTextStyles(t,e){throw new Error("Not impelemented yet!")}processDimStyles(t,e){throw new Error("Not impelemented yet!")}processLayers(t,e){throw new Error("Not impelemented yet!")}processViewports(t,e){throw new Error("Not impelemented yet!")}processHeader(t,e){throw new Error("Not impelemented yet!")}processBlockTables(t,e){throw new Error("Not impelemented yet!")}processObjects(t,e){throw new Error("Not impelemented yet!")}processBlocks(t,e){throw new Error("Not impelemented yet!")}processEntities(t,e,n,r,s){throw new Error("Not impelemented yet!")}}class da extends ua{constructor(t){super({}),this._database=t}async parse(){return{model:this._database,data:{unknownEntityCount:0}}}getFonts(){return[]}async processEntities(t,e,n,r,s){let o=t.tables.blockTable.modelSpace.newIterator().toArray();const a=o.length,h=new so(a,100-r.value,n);this.config.convertByEntityType&&(o=this.groupAndFlattenByType(o));const l=e.tables.blockTable.modelSpace;await h.processChunk(async(c,u)=>{let g=[],d=c<u?o[c].type:"";for(let p=c;p<u;p++){const f=o[p];this.config.convertByEntityType&&f.type!==d&&(this.triggerEvents(l,g),g=[],d=f.type),g.push(f)}if(this.triggerEvents(l,g),s){let p=r.value+u/a*(100-r.value);p>100&&(p=100),await s(p,"ENTITY","IN-PROGRESS")}})}processBlocks(){const t=this._database.tables.blockTable.newIterator();for(const e of t){const n=e.newIterator().toArray();this.triggerEvents(e,n)}}processHeader(){}processBlockTables(){}processObjects(){const t=this._database.objects.layout.newIterator();for(const r of t)this._database.events.dictObjetSet.dispatch({database:this._database,object:r,key:r.layoutName});const e=this._database.objects.imageDefinition.newIterator();for(const r of e)this._database.events.dictObjetSet.dispatch({database:this._database,object:r,key:r.objectId});const n=this._database.objects.mleaderStyle.newIterator();for(const r of n)this._database.events.dictObjetSet.dispatch({database:this._database,object:r,key:r.objectId})}processViewports(){}processLayers(){this._database.tables.layerTable.newIterator().toArray().forEach(e=>{this._database.events.layerAppended.dispatch({database:this._database,layer:e})})}processLineTypes(){}processTextStyles(){}processDimStyles(){}groupAndFlattenByType(t){const e={},n=[];for(const r of t)e[r.type]||(e[r.type]=[],n.push(r.type)),e[r.type].push(r);return n.flatMap(r=>e[r])}triggerEvents(t,e){(t.isModelSapce||t.isPaperSapce)&&t.database.events.entityAppended.dispatch({database:t.database,entity:e})}}class ga{constructor(t){this.taskId=0,this.workers=new Map,this.pendingTasks=new Map,this.config={workerUrl:t.workerUrl,timeout:t.timeout??3e4,maxConcurrentWorkers:t.maxConcurrentWorkers??4}}async execute(t,e){const n=Date.now(),r=this.generateTaskId();try{return await this.executeInWorker(r,t,e||this.config.workerUrl)}catch(s){const o=Date.now()-n;return{success:!1,error:s instanceof Error?s.message:String(s),duration:o}}}async executeInWorker(t,e,n){const r=Date.now();return new Promise((s,o)=>{const a=this.getAvailableWorker(n),h=setTimeout(()=>{this.cleanupTask(t),this.releaseWorker(a),o(new Error(`Worker operation timed out after ${this.config.timeout}ms`))},this.config.timeout);this.pendingTasks.set(t,{resolve:u=>{clearTimeout(h),this.releaseWorker(a),s(u)},reject:u=>{clearTimeout(h),this.releaseWorker(a),o(u)},timeout:h});const l=u=>{const{id:g,success:d,data:p,error:f}=u.data;if(g!==t)return;this.cleanupTask(t);const y=Date.now()-r;s(d?{success:!0,data:p,duration:y}:{success:!1,error:f,duration:y})},c=u=>{this.cleanupTask(t),o(new Error(`Worker error: ${u.message}`))};a.addEventListener("message",l),a.addEventListener("error",c),a.postMessage({id:t,input:e})})}cleanupTask(t){const e=this.pendingTasks.get(t);e&&(clearTimeout(e.timeout),this.pendingTasks.delete(t))}generateTaskId(){return`task_${++this.taskId}_${Date.now()}`}detectWorkerSupport(){return typeof Worker<"u"}getAvailableWorker(t){for(const[n,r]of this.workers)if(!r.isBusy)return r.isBusy=!0,r.worker;if(this.workers.size<this.config.maxConcurrentWorkers){const n=new Worker(t,{type:"module"}),r=this.generateWorkerId(),s={worker:n,isBusy:!0,id:r,createdAt:new Date};return this.workers.set(r,s),n}const e=Array.from(this.workers.values()).sort((n,r)=>n.createdAt.getTime()-r.createdAt.getTime())[0];return e.isBusy=!0,e.worker}releaseWorker(t){for(const[e,n]of this.workers)if(n.worker===t){n.isBusy=!1;break}}generateWorkerId(){return`worker_${Date.now()}_${Math.random().toString(36).substr(2,9)}`}getStats(){return{totalWorkers:this.workers.size,busyWorkers:Array.from(this.workers.values()).filter(t=>t.isBusy).length,pendingTasks:this.pendingTasks.size,config:this.config}}destroy(){for(const[t,e]of this.pendingTasks)clearTimeout(e.timeout),e.reject(new Error("Framework destroyed"));this.pendingTasks.clear();for(const[t,e]of this.workers)e.worker.terminate();this.workers.clear()}}class pa{constructor(t){this.framework=new ga(t)}async execute(t,e){return this.framework.execute(t,e)}getStats(){return this.framework.getStats()}destroy(){this.framework.destroy()}}function mc(i){return new pa(i)}class _c{constructor(){this.setupMessageHandler()}setupMessageHandler(){self.onmessage=async t=>{const{id:e,input:n}=t.data;try{const r=await this.executeTask(n);this.sendResponse(e,!0,r)}catch(r){this.sendResponse(e,!1,void 0,r instanceof Error?r.message:String(r))}}}sendResponse(t,e,n,r){const s={id:t,success:e,data:n,error:r};self.postMessage(s)}}exports.ACAD_APPID=Vi;exports.ACTIVE_VPORT_NAME=Ae;exports.AC_DB_SYSTEM_VARIABLE_NAMES=Bh;exports.AcCmColor=k;exports.AcCmColorUtil=Et;exports.AcCmEntityColor=_a;exports.AcCmErrors=st;exports.AcCmEventDispatcher=wa;exports.AcCmEventManager=D;exports.AcCmLoader=Ya;exports.AcCmLoadingManager=ss;exports.AcCmObject=is;exports.AcCmPerformanceCollector=Pn;exports.AcCmTask=ns;exports.AcCmTaskScheduler=rs;exports.AcCmTransparency=U;exports.AcDb2dPolyline=Hi;exports.AcDb2dVertex=Wi;exports.AcDb2dVertexType=Bo;exports.AcDb3PointAngularDimension=fn;exports.AcDb3dPolyline=Di;exports.AcDb3dVertex=Ui;exports.AcDb3dVertexType=zo;exports.AcDbAbstractViewTableRecord=jn;exports.AcDbAlignedDimension=ti;exports.AcDbAngleUnits=rt;exports.AcDbArc=$i;exports.AcDbArcDimension=yn;exports.AcDbAttribute=Zi;exports.AcDbAttributeDefinition=qi;exports.AcDbAttributeFlags=nt;exports.AcDbAttributeMTextFlag=Mt;exports.AcDbBaseWorker=_c;exports.AcDbBatchProcessing=so;exports.AcDbBlockReference=he;exports.AcDbBlockScaling=qs;exports.AcDbBlockTable=mo;exports.AcDbBlockTableRecord=Q;exports.AcDbCircle=Ki;exports.AcDbCodePage=Xo;exports.AcDbCurve=q;exports.AcDbDataGenerator=oa;exports.AcDbDatabase=Rh;exports.AcDbDatabaseConverter=ua;exports.AcDbDatabaseConverterManager=mt;exports.AcDbDiametricDimension=mn;exports.AcDbDictionary=Vt;exports.AcDbDimArrowType=aa;exports.AcDbDimStyleTable=_o;exports.AcDbDimStyleTableRecord=le;exports.AcDbDimTextHorizontal=wo;exports.AcDbDimTextVertical=bo;exports.AcDbDimVerticalJustification=Po;exports.AcDbDimZeroSuppression=xo;exports.AcDbDimZeroSuppressionAngular=vo;exports.AcDbDimension=vt;exports.AcDbDuplicateRecordCloning=sa;exports.AcDbDwgVersion=dt;exports.AcDbDxfCode=vn;exports.AcDbDxfFiler=as;exports.AcDbEllipse=Qi;exports.AcDbEntity=$;exports.AcDbFace=Ji;exports.AcDbFileType=_e;exports.AcDbFormatter=lo;exports.AcDbGradientPatternType=$o;exports.AcDbHatch=qe;exports.AcDbHatchObjectType=Uo;exports.AcDbHatchPatternType=we;exports.AcDbHatchStyle=Do;exports.AcDbHostApplicationServices=Ue;exports.AcDbLayerTable=Ao;exports.AcDbLayerTableRecord=Fn;exports.AcDbLayout=pi;exports.AcDbLayoutDictionary=Yo;exports.AcDbLayoutManager=no;exports.AcDbLeader=tn;exports.AcDbLeaderAnnotationType=qo;exports.AcDbLine=Ze;exports.AcDbLineSpacingStyle=Je;exports.AcDbLinearUnits=G;exports.AcDbLinetypeTable=So;exports.AcDbLinetypeTableRecord=Ht;exports.AcDbMLeader=nn;exports.AcDbMLeaderContentType=te;exports.AcDbMLeaderDirectionType=Jo;exports.AcDbMLeaderLineType=be;exports.AcDbMLeaderStyle=fo;exports.AcDbMLeaderTextAttachmentDirection=Qo;exports.AcDbMLine=en;exports.AcDbMLineFlags=Ko;exports.AcDbMLineJustification=Zo;exports.AcDbMText=Ke;exports.AcDbMlineStyle=yo;exports.AcDbObject=ft;exports.AcDbObjectIterator=Ie;exports.AcDbOpenMode=ro;exports.AcDbOrdinateDimension=_n;exports.AcDbOsnapMode=b;exports.AcDbPatParser=$n;exports.AcDbPatSvgRenderer=xn;exports.AcDbPlotPaperUnits=Zs;exports.AcDbPlotRotation=Ks;exports.AcDbPlotSettings=io;exports.AcDbPlotShadePlotResLevel=Js;exports.AcDbPlotShadePlotType=to;exports.AcDbPlotStdScaleType=eo;exports.AcDbPlotType=Qs;exports.AcDbPoint=an;exports.AcDbPoly2dType=No;exports.AcDbPoly3dType=Ro;exports.AcDbPolyFaceMesh=pn;exports.AcDbPolyFaceMeshFace=ra;exports.AcDbPolyFaceMeshVertex=na;exports.AcDbPolygonMesh=gn;exports.AcDbPolygonMeshVertex=ia;exports.AcDbPolyline=lt;exports.AcDbPredefinedAcadIsoPat=Wo;exports.AcDbPredefinedAcadPat=Qh;exports.AcDbRadialDimension=wn;exports.AcDbRasterImage=Qe;exports.AcDbRasterImageClipBoundaryType=ta;exports.AcDbRasterImageDef=gc;exports.AcDbRasterImageImageDisplayOpt=ea;exports.AcDbRay=ln;exports.AcDbRegAppTable=ko;exports.AcDbRegAppTableRecord=ji;exports.AcDbRegenerator=da;exports.AcDbRenderingCache=Wt;exports.AcDbResultBuffer=Bn;exports.AcDbRotatedDimension=bn;exports.AcDbShape=hn;exports.AcDbSpline=rn;exports.AcDbSymbolTable=Pt;exports.AcDbSymbolTableRecord=Rt;exports.AcDbSysVarManager=gt;exports.AcDbSystemVariables=v;exports.AcDbTable=sn;exports.AcDbText=Se;exports.AcDbTextHorizontalMode=Go;exports.AcDbTextStyleTable=Lo;exports.AcDbTextStyleTableRecord=Vn;exports.AcDbTextVerticalMode=Ho;exports.AcDbTrace=on;exports.AcDbUnitsValue=V;exports.AcDbViewTable=Eo;exports.AcDbViewTableRecord=zh;exports.AcDbViewport=cn;exports.AcDbViewportTable=Oo;exports.AcDbViewportTableRecord=Gn;exports.AcDbWipeout=un;exports.AcDbWorkerApi=pa;exports.AcDbWorkerManager=ga;exports.AcDbXline=dn;exports.AcDbXrecord=pc;exports.AcGeArea2d=Bt;exports.AcGeBox2d=et;exports.AcGeBox3d=C;exports.AcGeCatmullRomCurve3d=Ds;exports.AcGeCircArc2d=pt;exports.AcGeCircArc3d=gi;exports.AcGeCurve2d=ce;exports.AcGeEllipseArc2d=ve;exports.AcGeEllipseArc3d=Ws;exports.AcGeEuler=Da;exports.AcGeGeometryUtil=Ms;exports.AcGeLine2d=kt;exports.AcGeLine3d=xt;exports.AcGeLoop2d=Xn;exports.AcGeMathUtil=E;exports.AcGeMatrix2d=Ee;exports.AcGeMatrix3d=Y;exports.AcGeNurbsCurve=ut;exports.AcGePlane=Tn;exports.AcGePoint2d=P;exports.AcGePoint3d=_;exports.AcGePolyline2d=H;exports.AcGeQuaternion=ae;exports.AcGeShape2d=Yn;exports.AcGeSpline3d=Yt;exports.AcGeTol=F;exports.AcGeVector2d=j;exports.AcGeVector3d=w;exports.AcGiViewport=Co;exports.AcTrStringUtil=ka;exports.ByBlock=Ot;exports.ByLayer=tt;exports.DEBUG_MODE=Ia;exports.DEFAULT_GRADIENT_HATCH_NAME=To;exports.DEFAULT_HATCH_PATTERN_IMPERIAL=Th;exports.DEFAULT_HATCH_PATTERN_METRIC=Mo;exports.DEFAULT_LINE_TYPE=Xt;exports.DEFAULT_MLEADER_STYLE=Ct;exports.DEFAULT_MLINE_STYLE=Tt;exports.DEFAULT_TEXT_STYLE=K;exports.DEFAULT_TOL=di;exports.DEG2RAD=An;exports.DefaultLoadingManager=os;exports.FLOAT_TOL=wt;exports.HATCH_PATTERN_SOLID=Gt;exports.HATCH_PATTERN_USER=Io;exports.MLIGHTCAD_APPID=Fi;exports.ORIGIN_POINT_2D=Na;exports.ORIGIN_POINT_3D=In;exports.RAD2DEG=Sn;exports.RAW_COLOR_TYPE_ACI=Un;exports.RAW_COLOR_TYPE_BY_BLOCK=ei;exports.RAW_COLOR_TYPE_BY_LAYER=Wn;exports.RAW_COLOR_TYPE_RGB=Dn;exports.RAW_COLOR_TYPE_WINDOW_BG=la;exports.TAU=B;exports.TEMP_OBJECT_ID_PREFIX=Ve;exports.VPORT_FALLBACK_CENTER_2D=Ch;exports.VPORT_FALLBACK_LLC=Oh;exports.VPORT_FALLBACK_URC=kh;exports.VPORT_FALLBACK_VIEW_DIR=Yh;exports.VPORT_FALLBACK_VIEW_TARGET=Xh;exports.acdbDisableOsnapMode=rc;exports.acdbEnableOsnapMode=nc;exports.acdbHasOsnapMode=ic;exports.acdbHostApplicationServices=Nn;exports.acdbMaskToOsnapModes=tc;exports.acdbOsnapModesToMask=Jh;exports.acdbToggleOsnapMode=ec;exports.basisFunction=Nt;exports.calculateCurveLength=Cs;exports.ceilPowerOfTwo=vs;exports.clamp=bt;exports.clone=pe;exports.computeParameterValues=Is;exports.createWorkerApi=mc;exports.damp=us;exports.decodeMLeaderStyleRawColor=ha;exports.deepClone=Ti;exports.defaults=Le;exports.degToRad=ws;exports.dwgCodePageToEncoding=Vh;exports.encodeMLeaderStyleRawColor=Ge;exports.euclideanModulo=Ln;exports.evaluateNurbsPoint=me;exports.floorPowerOfTwo=Ps;exports.generateAveragedKnots=Ts;exports.generateChordKnots=$a;exports.generateSqrtChordKnots=qa;exports.generateUUID=ls;exports.generateUniformKnots=Ua;exports.getOcsAngle=Oi;exports.getOcsReferenceVector=kn;exports.has=Jr;exports.intPartLength=Mn;exports.interpolateControlPoints=Ja;exports.interpolateNurbsCurve=On;exports.inverseLerp=cs;exports.isBetween=As;exports.isBetweenAngle=Ss;exports.isEmpty=ts;exports.isEqual=re;exports.isImperialUnits=ao;exports.isMetricUnits=oo;exports.isPointInPolygon=Cn;exports.isPolygonIntersect=Es;exports.isPowerOfTwo=xs;exports.lerp=En;exports.log=fe;exports.mapLinear=hs;exports.normalizeAngle=ye;exports.pingpong=ds;exports.radToDeg=bs;exports.randFloat=ys;exports.randFloatSpread=ms;exports.randInt=fs;exports.relativeEps=Ls;exports.seededRandom=_s;exports.setAcDbHostApplicationServicesProvider=$s;exports.setAcDbLayoutManagerFactory=ah;exports.setLogLevel=Ta;exports.smootherstep=ps;exports.smoothstep=gs;exports.transformOcsPointToWcs=il;exports.transformWcsPointToOcs=xe;
|
|
9
|
+
`)}stripInlineComment(t){const e=t.indexOf(";");return e<0?t:t.slice(0,e)}parseHeader(t){const e=t.indexOf(",");if(e<0){const s=t.trim();return s?{name:s,description:""}:null}const n=t.slice(0,e).trim(),r=t.slice(e+1).trim();return n?{name:n,description:r}:null}parseNumber(t){const e=Number(t.trim());return Number.isFinite(e)?e:null}parseLineDescriptor(t,e){const n=t.split(",").map(u=>u.trim()).filter(u=>u.length>0);if(n.length<5)return null;const r=this.parseNumber(n[0]),s=this.parseNumber(n[1]),o=this.parseNumber(n[2]),a=this.parseNumber(n[3]),h=this.parseNumber(n[4]);if(r==null||s==null||o==null||a==null||h==null)return null;const l=n.slice(5),c=[];for(const u of l){const g=this.parseNumber(u);if(g==null)return null;c.push(g)}return{angle:r,originX:s,originY:o,deltaX:a,deltaY:h,dashes:c,sourceLine:e}}flushCurrentPattern(t,e,n){t&&(t.pattern.lines.length===0&&n.push({line:t.headerLine,message:`Pattern "${t.pattern.name}" has no line descriptor.`,source:""}),e.push(t.pattern))}}const N=class N{static nextGradientId(t){return N.gradientIdCounter+=1,`acdb-pat-gradient-${t.toLowerCase()}-${N.gradientIdCounter}`}static packedRgbToCss(t){return`#${(t&16777215).toString(16).padStart(6,"0")}`}static gradientColorToCss(t,e){return typeof t=="number"?N.packedRgbToCss(t):t??e}static applyShadeTint(t,e){const n=E.clamp(e,0,1),r=n<.5?0:16777215,s=n<.5?1-n*2:n*2-1,o=t>>16&255,a=t>>8&255,h=t&255,l=r>>16&255,c=r>>8&255,u=r&255;return Math.round(o+(l-o)*s)*65536+Math.round(a+(c-a)*s)*256+Math.round(h+(u-h)*s)}static resolveGradientColors(t){const e="#2563eb",n="#f8fafc",r=N.gradientColorToCss(t.startColor,e);if(t.oneColorMode&&t.endColor==null){if(typeof t.startColor=="number"){const s=N.applyShadeTint(t.startColor,t.shadeTintValue??.5);return{start:r,end:N.packedRgbToCss(s)}}return{start:r,end:(t.shadeTintValue??.5)<.5?"#000000":"#ffffff"}}return{start:r,end:N.gradientColorToCss(t.endColor,n)}}static renderGradientStops(t){return t.map(e=>`<stop offset="${(E.clamp(e.offset,0,1)*100).toFixed(2)}%" stop-color="${e.color}" />`).join("")}static getGradientVector(t){return{x:Math.cos(t),y:-Math.sin(t)}}static isSolidPattern(t){return t.name.trim().toUpperCase()===Gt}static renderBackground(t,e,n){return`<rect x="${-t/2}" y="${-e/2}" width="${t}" height="${e}" fill="${n}" />`}static estimateUnitScale(t){const e=[];for(const s of t.lines){e.push(Math.abs(s.deltaX),Math.abs(s.deltaY));for(const o of s.dashes)e.push(Math.abs(o))}const n=e.filter(s=>s>N.EPSILON);if(n.length===0)return 1;const r=n.sort((s,o)=>s-o);return r[Math.floor(r.length/2)]||1}static segmentToSvgPath(t){return`M ${t.x1.toFixed(2)} ${(-t.y1).toFixed(2)} L ${t.x2.toFixed(2)} ${(-t.y2).toFixed(2)}`}static buildDashSegments(t,e,n,r,s,o,a){const h=t.dashes;if(h.length===0)return[{x1:r+o*e,y1:s+a*e,x2:r+o*n,y2:s+a*n}];const l=h.reduce((d,p)=>d+Math.abs(p),0);if(l<=N.EPSILON)return[{x1:r+o*e,y1:s+a*e,x2:r+o*n,y2:s+a*n}];const c=[],u=Math.ceil((n-e)/l)+2;let g=e-l;for(let d=0;d<u;d++){let p=g;for(const f of h){const y=Math.abs(f),m=p+y;if(f>0||f===0){const x=E.clamp(p,e,n),S=E.clamp(m,e,n);S>x?c.push({x1:r+o*x,y1:s+a*x,x2:r+o*S,y2:s+a*S}):f===0&&x>=e&&x<=n&&c.push({x1:r+o*(x-.35),y1:s+a*(x-.35),x2:r+o*(x+.35),y2:s+a*(x+.35)})}p=m}g+=l}return c}static renderFamily(t,e){const n=E.degToRad(t.angle),r=Math.cos(n),s=Math.sin(n),o=-s,a=r,h=r*t.deltaX+o*t.deltaY,l=s*t.deltaX+a*t.deltaY,c=Math.hypot(h,l),u=c<=N.EPSILON?1:Math.max(1,Math.ceil(e*2/c)+1),g=Math.floor(u/2),d=-e*1.5,p=e*1.5,f=[];for(let y=-g;y<=g;y++){const m=t.originX+h*y,x=t.originY+l*y,S=N.buildDashSegments(t,d,p,m,x,r,s);for(const A of S)f.push(N.segmentToSvgPath(A))}return`<path d="${f.join(" ")}" fill="none" />`}static renderLinearGradientDef(t,e,n,r,s){const o=N.getGradientVector(e),a=E.clamp(n,-1,1)*r*.5,h=o.x*a,l=o.y*a;return[`<linearGradient id="${t}" gradientUnits="userSpaceOnUse"`,` x1="${(-o.x*r+h).toFixed(2)}"`,` y1="${(-o.y*r+l).toFixed(2)}"`,` x2="${(o.x*r+h).toFixed(2)}"`,` y2="${(o.y*r+l).toFixed(2)}">`,N.renderGradientStops(s),"</linearGradient>"].join("")}static renderRadialGradientDef(t,e,n,r,s){return[`<radialGradient id="${t}" gradientUnits="userSpaceOnUse"`,` cx="${e.toFixed(2)}" cy="${n.toFixed(2)}" r="${r.toFixed(2)}"`,` fx="${e.toFixed(2)}" fy="${n.toFixed(2)}">`,N.renderGradientStops(s),"</radialGradient>"].join("")}static renderGradientDef(t,e,n,r,s,o,a){const h=e.toUpperCase(),l=h.startsWith("INV"),c=h.replace(/^INV/,""),u=l?n.end:n.start,g=l?n.start:n.end,d=Math.hypot(o,a)/2,p=N.getGradientVector(r),f=E.clamp(s,-1,1),y=p.x*f*o*.25,m=p.y*f*a*.25;switch(c){case"CYLINDER":{const x=E.clamp(.5+f*.45,.05,.95);return N.renderLinearGradientDef(t,r,0,d,[{offset:0,color:u},{offset:x,color:g},{offset:1,color:u}])}case"SPHERICAL":return N.renderRadialGradientDef(t,y,m,d,[{offset:0,color:g},{offset:1,color:u}]);case"HEMISPHERICAL":return N.renderRadialGradientDef(t,y+p.x*o*.18,m+p.y*a*.18,d*.92,[{offset:0,color:g},{offset:.72,color:u},{offset:1,color:u}]);case"CURVED":return N.renderRadialGradientDef(t,-p.x*o*.95+y,-p.y*a*.95+m,d*1.65,[{offset:0,color:u},{offset:.55,color:u},{offset:1,color:g}]);case"LINEAR":default:return N.renderLinearGradientDef(t,r,s,d,[{offset:0,color:u},{offset:1,color:g}])}}renderPattern(t,e={}){const n=e.width??260,r=e.height??160,s=e.stroke??"#1f2937",o=e.strokeWidth??1.3,a=e.background??"#ffffff",h=`${-n/2} ${-r/2} ${n} ${r}`;if(N.isSolidPattern(t))return[`<svg xmlns="http://www.w3.org/2000/svg" viewBox="${h}" width="${n}" height="${r}">`,N.renderBackground(n,r,a),`<rect x="${-n/2}" y="${-r/2}" width="${n}" height="${r}" fill="${s}" />`,"</svg>"].join("");const l=N.estimateUnitScale(t),u=Math.min(n,r)*.18/Math.max(l,N.EPSILON),g={...t,lines:t.lines.map(f=>({...f,originX:f.originX*u,originY:f.originY*u,deltaX:f.deltaX*u,deltaY:f.deltaY*u,dashes:f.dashes.map(y=>y*u)}))},d=Math.hypot(n,r)*.75,p=g.lines.map(f=>N.renderFamily(f,d)).join("");return[`<svg xmlns="http://www.w3.org/2000/svg" viewBox="${h}" width="${n}" height="${r}">`,N.renderBackground(n,r,a),`<g stroke="${s}" stroke-width="${o.toFixed(2)}" stroke-linecap="round">`,p,"</g>","</svg>"].join("")}renderGradient(t,e={}){const n=e.width??260,r=e.height??160,s=e.background??"#ffffff",o=e.angle??0,a=e.shift??0,h=`${-n/2} ${-r/2} ${n} ${r}`,l=N.nextGradientId(t),c=N.resolveGradientColors(e),u=N.renderGradientDef(l,t,c,o,a,n,r);return[`<svg xmlns="http://www.w3.org/2000/svg" viewBox="${h}" width="${n}" height="${r}">`,N.renderBackground(n,r,s),"<defs>",u,"</defs>",`<rect x="${-n/2}" y="${-r/2}" width="${n}" height="${r}" fill="url(#${l})" />`,"</svg>"].join("")}};N.EPSILON=1e-9,N.gradientIdCounter=0;let fn=N;var ei=(i=>(i[i.AtLeast=1]="AtLeast",i[i.Exactly=2]="Exactly",i))(ei||{});const mr=class mr extends ${get dxfTypeName(){return"DIMENSION"}constructor(){super(),this._dimBlockId=null,this._dimBlockPosition=new _,this._dimensionStyleName=null,this._dimensionText=null,this._textLineSpacingFactor=1,this._textLineSpacingStyle=1,this._textPosition=new _,this._textRotation=0,this._normal=new w(0,0,1)}get dimBlockId(){return this._dimBlockId}set dimBlockId(t){this._dimBlockId=t}get dimBlockPosition(){return this._dimBlockPosition}set dimBlockPosition(t){this._dimBlockPosition.copy(t)}get dimensionStyleName(){return this._dimensionStyleName}set dimensionStyleName(t){this._dimensionStyleName=t,this._dimStyle=void 0}get dimensionStyle(){if(this._dimStyle==null){let t;this.dimensionStyleName&&(t=this.database.tables.dimStyleTable.getAt(this.dimensionStyleName)),t==null&&(t=new le),this._dimStyle=t}return this._dimStyle}get dimensionText(){return this._dimensionText}set dimensionText(t){this._dimensionText=t}get measurement(){return this._measurement}set measurement(t){this._measurement=t}get textLineSpacingFactor(){return this._textLineSpacingFactor}set textLineSpacingFactor(t){this._textLineSpacingFactor=t}get textLineSpacingStyle(){return this._textLineSpacingStyle}set textLineSpacingStyle(t){this._textLineSpacingStyle=t}get textPosition(){return this._textPosition}set textPosition(t){this._textPosition.copy(t)}get textRotation(){return this._textRotation}set textRotation(t){this._textRotation=t}get normal(){return this._normal}set normal(t){this._normal.copy(t).normalize()}get properties(){return this.getBaseProperties()}getBaseProperties(){return{type:this.type,groups:[this.getGeneralProperties(),this.getDimensionProperties()]}}transformBy(t){const e=this._textPosition.clone(),n=this._textPosition.clone().add(new w(Math.cos(this._textRotation),Math.sin(this._textRotation),0));this._dimBlockPosition.applyMatrix4(t),this._textPosition.applyMatrix4(t),this._normal.transformDirection(t),e.applyMatrix4(t),n.applyMatrix4(t);const r=new w(n).sub(e);return r.lengthSq()>0&&(this._textRotation=Math.atan2(r.y,r.x)),this.subTransformBy(t),this}subGetOsnapPoints(t,e,n,r,s){const o=this.getDimBlockTableRecord();if(!o)return;const a=this.getFullDimBlockTransform(),h=new _(e).applyMatrix4(a.clone().invert()),l=new _(n).applyMatrix4(a.clone().invert()),c=(u,g)=>{const d=[];u.subGetOsnapPoints(t,h,l,d,g,a),u instanceof he?d.forEach(p=>r.push(p.clone())):d.forEach(p=>r.push(new _(p).applyMatrix4(a)))};if(s){const u=o.getIdAt(s);if(u&&(c(u,s),r.length>0))return}for(const u of o.newIterator())c(u)}subWorldDraw(t){const e=this.getDimBlockTableRecord();if(e){const r=this.computeDimBlockTransform();return Wt.instance.draw(t,e,this.rgbColor,[],!1,r,this._normal)}return t.group([])}getDimBlockGeometricExtents(){const t=new C,e=this.getDimBlockTableRecord();if(!e)return t;for(const n of e.newIterator())t.union(n.geometricExtents);return t.applyMatrix4(this.getFullDimBlockTransform()),t}getGeometricExtentsFromDimBlockOrPoints(t){const e=this.getDimBlockGeometricExtents();if(!e.isEmpty())return e;const n=new C;for(const r of t)n.expandByPoint(r);return this.hasExplicitTextPosition()&&n.expandByPoint(this.textPosition),n}hasExplicitTextPosition(){const{x:t,y:e,z:n}=this.textPosition;return t!==0||e!==0||n!==0}getDimBlockTableRecord(){return this.dimBlockId?this.database.tables.blockTable.getAt(this.dimBlockId):void 0}getDimensionProperties(){return{groupName:"dimension",properties:[this.createProperty("dimensionStyleName","string",()=>this.dimensionStyleName??"",t=>{this.dimensionStyleName=t.trim()===""?null:t}),this.createProperty("dimensionText","string",()=>this.dimensionText??"",t=>{this.dimensionText=t}),this.createProperty("measurement","float",()=>this.getMeasurementPropertyValue()),this.createProperty("dimBlockId","string",()=>this.dimBlockId??""),...this.createPoint3dProperties("dimBlockPosition",()=>this.dimBlockPosition),...this.createPoint3dProperties("textPosition",()=>this.textPosition),this.createProperty("textRotation","float",()=>this.textRotation,t=>{this.textRotation=t}),this.createProperty("textLineSpacingFactor","float",()=>this.textLineSpacingFactor,t=>{this.textLineSpacingFactor=t}),this.createProperty("textLineSpacingStyle","enum",()=>this.textLineSpacingStyle,t=>{this.textLineSpacingStyle=t},[{label:ei[1],value:1},{label:ei[2],value:2}]),...this.createPoint3dProperties("normal",()=>this.normal)]}}createProperty(t,e,n,r,s){return{name:t,type:e,editable:r!=null,options:s,accessor:r?{get:n,set:r}:{get:n}}}createPoint3dProperties(t,e){return[this.createProperty(`${t}X`,"float",()=>e().x,n=>{e().x=n}),this.createProperty(`${t}Y`,"float",()=>e().y,n=>{e().y=n}),this.createProperty(`${t}Z`,"float",()=>e().z,n=>{e().z=n})]}getMeasurementPropertyValue(){return this.measurement}getFullDimBlockTransform(){const t=this.computeDimBlockTransform();if(this._normal.x===0&&this._normal.y===0&&this._normal.z===1)return t;const e=new Y().setFromExtrusionDirection(this._normal);return new Y().multiplyMatrices(e,t)}get arrowScaleFactor(){return this.dimensionStyle.dimasz}get firstArrowStyle(){return{type:this.firstArrowType,scale:this.arrowScaleFactor,appended:this.isAppendArrow,visible:this.dimensionStyle.dimse1==0}}get secondArrowStyle(){return{type:this.secondArrowType,scale:this.arrowScaleFactor,appended:this.isAppendArrow,visible:this.dimensionStyle.dimse2==0}}get isAppendArrow(){return!0}get firstArrowTypeBtrId(){const t=this.dimensionStyle;return t.dimsah==0?t.dimblk:t.dimblk1}get firstArrowType(){const t=this.firstArrowTypeBtrId;return this.getArrowName(t)}get secondArrowTypeBtrId(){const t=this.dimensionStyle;return t.dimsah==0?t.dimblk:t.dimblk2}get secondArrowType(){const t=this.secondArrowTypeBtrId;return this.getArrowName(t)}get arrowLineCount(){return 1}findPointOnLine1(t,e,n){const r=new _().subVectors(e,t).normalize();return new _(e).addScaledVector(r,n)}findPointOnLine2(t,e,n){const r=t.x+n*Math.cos(e),s=t.y+n*Math.sin(e);return{x:r,y:s}}adjustExtensionLine(t){const e=this.dimensionStyle;t.extend(e.dimexe),t.extend(-e.dimexo,!0)}getArrowName(t){const e=this.database.tables.blockTable.getIdAt(t);return e?e.name.toUpperCase():exports.AcGiArrowType.Closed}computeDimBlockTransform(){const t=this.dimBlockId?this.database.tables.blockTable.getAt(this.dimBlockId):void 0,e=(t==null?void 0:t.origin)??_.ORIGIN,n=new Y().makeTranslation(-e.x,-e.y,-e.z),r=new Y().makeTranslation(this._dimBlockPosition.x,this._dimBlockPosition.y,this._dimBlockPosition.z);return new Y().multiplyMatrices(r,n)}subTransformBy(t){}dxfOutFields(t){super.dxfOutFields(t);const e=this.dimensionStyleName!=null?this.database.tables.dimStyleTable.getAt(this.dimensionStyleName):void 0;return t.writeSubclassMarker("AcDbDimension"),t.writeInt16(280,0),t.writeString(2,this.dimBlockId??void 0),t.writeString(3,this.dimensionStyleName??this.dimensionStyle.name),t.writePoint3d(10,this.dimBlockPosition),t.writeString(1,this.dimensionText??""),t.writeAngle(53,this.textRotation),t.writePoint3d(11,this.textPosition),t.writeInt16(70,0),t.writeInt16(72,this.textLineSpacingStyle),t.writeDouble(41,this.textLineSpacingFactor),t.writeDouble(42,this.measurement),t.writeVector3d(210,this.normal),t.writeObjectId(340,e==null?void 0:e.objectId),this}};mr.typeName="Dimension";let vt=mr;const _r=class _r extends vt{constructor(t,e,n,r,s=null,o=null){super(),this._centerPoint=new _().copy(t),this._xLine1Point=new _().copy(e),this._xLine2Point=new _().copy(n),this._arcPoint=new _().copy(r),this.dimensionText=s,this.dimensionStyleName=o}get arcPoint(){return this._arcPoint}set arcPoint(t){this._arcPoint.copy(t)}get centerPoint(){return this._centerPoint}set centerPoint(t){this._centerPoint.copy(t)}get xLine1Point(){return this._xLine1Point}set xLine1Point(t){this._xLine1Point.copy(t)}get xLine2Point(){return this._xLine2Point}set xLine2Point(t){this._xLine2Point.copy(t)}get properties(){const t=this.getBaseProperties();return{type:this.type,groups:[...t.groups,{groupName:"geometry",properties:[...this.createPoint3dProperties("centerPoint",()=>this.centerPoint),...this.createPoint3dProperties("xLine1Point",()=>this.xLine1Point),...this.createPoint3dProperties("xLine2Point",()=>this.xLine2Point),...this.createPoint3dProperties("arcPoint",()=>this.arcPoint)]}]}}subTransformBy(t){this._arcPoint.applyMatrix4(t),this._centerPoint.applyMatrix4(t),this._xLine1Point.applyMatrix4(t),this._xLine2Point.applyMatrix4(t)}get geometricExtents(){return this.getGeometricExtentsFromDimBlockOrPoints([this.xLine1Point,this.xLine2Point,this.centerPoint,this.arcPoint])}dxfOutFields(t){return super.dxfOutFields(t),t.writeSubclassMarker("AcDb3PointAngularDimension"),t.writePoint3d(13,this.xLine1Point),t.writePoint3d(14,this.xLine2Point),t.writePoint3d(15,this.centerPoint),t.writePoint3d(16,this.arcPoint),this}};_r.typeName="3PointAngularDimension";let yn=_r;const wr=class wr extends vt{constructor(t,e,n,r=null,s=null){super(),this._dimLinePoint=new _().copy(n),this._xLine1Point=new _().copy(t),this._xLine2Point=new _().copy(e),this._oblique=0,this._rotation=0,this.calculateRotation(),r?this.dimensionText=r:this.dimensionText=this._xLine1Point.distanceTo(this._xLine2Point).toFixed(3),this.dimensionStyleName=s}get dimLinePoint(){return this._dimLinePoint}set dimLinePoint(t){this._dimLinePoint.copy(t)}get xLine1Point(){return this._xLine1Point}set xLine1Point(t){this._xLine1Point.copy(t)}get xLine2Point(){return this._xLine2Point}set xLine2Point(t){this._xLine2Point.copy(t)}get rotation(){return this._rotation}set rotation(t){this._rotation=t}get oblique(){return this._oblique}set oblique(t){this._oblique=t}get properties(){const t=this.getBaseProperties();return{type:this.type,groups:[...t.groups,{groupName:"geometry",properties:[...this.createPoint3dProperties("xLine1Point",()=>this.xLine1Point),...this.createPoint3dProperties("xLine2Point",()=>this.xLine2Point),...this.createPoint3dProperties("dimLinePoint",()=>this.dimLinePoint),this.createProperty("rotation","float",()=>this.rotation,e=>{this.rotation=e}),this.createProperty("oblique","float",()=>this.oblique,e=>{this.oblique=e})]}]}}subTransformBy(t){this._dimLinePoint.applyMatrix4(t),this._xLine1Point.applyMatrix4(t),this._xLine2Point.applyMatrix4(t),this.calculateRotation()}get geometricExtents(){return this.getGeometricExtentsFromDimBlockOrPoints([this.xLine1Point,this.xLine2Point,this.dimLinePoint])}get isAppendArrow(){return!1}createDimBlock(t){const e=new Q;e.name=t;const n=this.createLines();n.forEach(a=>e.appendEntity(new Qe(a.startPoint,a.endPoint))),this.createArrows(n[0]).forEach(a=>e.appendEntity(a));const s=n[0].midPoint,o=this.createMText(s,this._rotation);return o&&e.appendEntity(o),e}createMText(t,e){const n=r=>({x:Math.cos(r),y:Math.sin(r),z:0});if(this.dimensionText){const r=new Je;return r.attachmentPoint=exports.AcGiMTextAttachmentPoint.MiddleLeft,r.layer="0",r.color=new k(exports.AcCmColorMethod.ByBlock),r.location=t,r.contents=this.dimensionText??"",r.height=10,r.direction=n(e),r.styleName=this.dimensionStyle.dimtxsty,r}}createArrows(t){const e=[];return e.push(this.createArrow(t.startPoint,this.rotation+Math.PI,10)),e.push(this.createArrow(t.endPoint,this.rotation,10)),e}createArrow(t,e,n){const r="_CAXARROW",s=new he(r);return s.position=t,s.rotation=e,s.scaleFactors={x:n,y:n,z:n},s}createLines(){const t=[],e=this.createExtensionLine(this._xLine1Point),n=this.createExtensionLine(this._xLine2Point),r=this.findIntersectionPoint(e,this._dimLinePoint),s=this.findIntersectionPoint(n,this._dimLinePoint),o=new xt(r,s);return t.push(o),e.endPoint=r,this.adjustExtensionLine(e),t.push(e),n.endPoint=s,this.adjustExtensionLine(n),t.push(n),t}createExtensionLine(t){const e=this.rotation+Math.PI/2,n=this.findPointOnLine2(t,e,100);return new xt(t,{...n,z:t.z})}findIntersectionPoint(t,e){const n=t.startPoint,r=t.endPoint,s=new w().subVectors(r,n).normalize(),a=new w().subVectors(e,n).dot(s),h=new w().copy(s).multiplyScalar(a);return new w().addVectors(n,h)}calculateRotation(){const t=this._xLine1Point,e=this._xLine2Point,n=e.x-t.x,r=e.y-t.y;this._rotation=Math.atan2(r,n)}get dxfSubclassMarker(){return"AcDbAlignedDimension"}getMeasurementPropertyValue(){return this.measurement??this.xLine1Point.distanceTo(this.xLine2Point)}dxfOutFields(t){return super.dxfOutFields(t),t.writeSubclassMarker(this.dxfSubclassMarker),t.writePoint3d(13,this.xLine1Point),t.writePoint3d(14,this.xLine2Point),t.writePoint3d(15,this.dimLinePoint),t.writeAngle(50,this.rotation),t.writeAngle(52,this.oblique),this}};wr.typeName="AlignedDimension";let ii=wr;const br=class br extends vt{constructor(t,e,n,r,s=null,o=null){super(),this._arcPoint=new _().copy(r),this._xLine1Point=new _().copy(e),this._xLine2Point=new _().copy(n),this._centerPoint=new _().copy(t),this.dimensionText=s,this.dimensionStyleName=o}get arcPoint(){return this._arcPoint}set arcPoint(t){this._arcPoint.copy(t)}get centerPoint(){return this._centerPoint}set centerPoint(t){this._centerPoint.copy(t)}get xLine1Point(){return this._xLine1Point}set xLine1Point(t){this._xLine1Point.copy(t)}get xLine2Point(){return this._xLine2Point}set xLine2Point(t){this._xLine2Point.copy(t)}get properties(){const t=this.getBaseProperties();return{type:this.type,groups:[...t.groups,{groupName:"geometry",properties:[...this.createPoint3dProperties("centerPoint",()=>this.centerPoint),...this.createPoint3dProperties("xLine1Point",()=>this.xLine1Point),...this.createPoint3dProperties("xLine2Point",()=>this.xLine2Point),...this.createPoint3dProperties("arcPoint",()=>this.arcPoint)]}]}}subTransformBy(t){this._arcPoint.applyMatrix4(t),this._centerPoint.applyMatrix4(t),this._xLine1Point.applyMatrix4(t),this._xLine2Point.applyMatrix4(t)}get geometricExtents(){return this.getGeometricExtentsFromDimBlockOrPoints([this.xLine1Point,this.xLine2Point,this.centerPoint,this.arcPoint])}dxfOutFields(t){return super.dxfOutFields(t),t.writeSubclassMarker("AcDbArcDimension"),t.writePoint3d(13,this.xLine1Point),t.writePoint3d(14,this.xLine2Point),t.writePoint3d(15,this.centerPoint),t.writePoint3d(16,this.arcPoint),this}};br.typeName="ArcDimension";let mn=br;const xr=class xr extends vt{constructor(t,e,n=0,r=null,s=null){super(),this._chordPoint=new _().copy(t),this._farChordPoint=new _().copy(e),this._extArcStartAngle=0,this._extArcEndAngle=0,this._leaderLength=n,this.dimensionText=r,this.dimensionStyleName=s}get chordPoint(){return this._chordPoint}set chordPoint(t){this._chordPoint.copy(t)}get farChordPoint(){return this._farChordPoint}set farChordPoint(t){this._farChordPoint.copy(t)}get extArcStartAngle(){return this._extArcStartAngle}set extArcStartAngle(t){this._extArcStartAngle=t}get extArcEndAngle(){return this._extArcEndAngle}set extArcEndAngle(t){this._extArcEndAngle=t}get leaderLength(){return this._leaderLength}set leaderLength(t){this._leaderLength=t}get properties(){const t=this.getBaseProperties();return{type:this.type,groups:[...t.groups,{groupName:"geometry",properties:[...this.createPoint3dProperties("chordPoint",()=>this.chordPoint),...this.createPoint3dProperties("farChordPoint",()=>this.farChordPoint),this.createProperty("leaderLength","float",()=>this.leaderLength,e=>{this.leaderLength=e}),this.createProperty("extArcStartAngle","float",()=>this.extArcStartAngle,e=>{this.extArcStartAngle=e}),this.createProperty("extArcEndAngle","float",()=>this.extArcEndAngle,e=>{this.extArcEndAngle=e})]}]}}subTransformBy(t){this._chordPoint.applyMatrix4(t),this._farChordPoint.applyMatrix4(t)}getMeasurementPropertyValue(){return this.measurement??this.chordPoint.distanceTo(this.farChordPoint)}get geometricExtents(){const t=[this.chordPoint,this.farChordPoint];if(this.leaderLength>0){const e=this.farChordPoint.clone().sub(this.chordPoint);e.lengthSq()>0&&(e.normalize().multiplyScalar(this.leaderLength),t.push(this.farChordPoint.clone().add(e)))}return this.getGeometricExtentsFromDimBlockOrPoints(t)}dxfOutFields(t){return super.dxfOutFields(t),t.writeSubclassMarker("AcDbDiametricDimension"),t.writePoint3d(15,this.chordPoint),t.writePoint3d(16,this.farChordPoint),t.writeDouble(40,this.leaderLength),t.writeAngle(52,this.extArcStartAngle),t.writeAngle(53,this.extArcEndAngle),this}};xr.typeName="DiametricDimension";let _n=xr;const vr=class vr extends vt{constructor(t,e,n=null,r=null){super(),this._definingPoint=new _().copy(t),this._leaderEndPoint=new _().copy(e),this.dimensionText=n,this.dimensionStyleName=r}get definingPoint(){return this._definingPoint}set definingPoint(t){this._definingPoint.copy(t)}get leaderEndPoint(){return this._leaderEndPoint}set leaderEndPoint(t){this._leaderEndPoint.copy(t)}get properties(){const t=this.getBaseProperties();return{type:this.type,groups:[...t.groups,{groupName:"geometry",properties:[...this.createPoint3dProperties("definingPoint",()=>this.definingPoint),...this.createPoint3dProperties("leaderEndPoint",()=>this.leaderEndPoint)]}]}}subTransformBy(t){this._definingPoint.applyMatrix4(t),this._leaderEndPoint.applyMatrix4(t)}get geometricExtents(){return this.getGeometricExtentsFromDimBlockOrPoints([this.definingPoint,this.leaderEndPoint])}get arrowLineCount(){return 0}dxfOutFields(t){return super.dxfOutFields(t),t.writeSubclassMarker("AcDbOrdinateDimension"),t.writePoint3d(13,this.definingPoint),t.writePoint3d(14,this.leaderEndPoint),this}};vr.typeName="OrdinateDimension";let wn=vr;const Pr=class Pr extends vt{constructor(t,e,n,r=null,s=null){super(),this._center=new _().copy(t),this._chordPoint=new _().copy(e),this._leaderLength=n,this._extArcStartAngle=0,this._extArcEndAngle=0,this.dimensionText=r,this.dimensionStyleName=s}get center(){return this._center}set center(t){this._center.copy(t)}get chordPoint(){return this._chordPoint}set chordPoint(t){this._chordPoint.copy(t)}get extArcStartAngle(){return this._extArcStartAngle}set extArcStartAngle(t){this._extArcStartAngle=t}get extArcEndAngle(){return this._extArcEndAngle}set extArcEndAngle(t){this._extArcEndAngle=t}get leaderLength(){return this._leaderLength}set leaderLength(t){this._leaderLength=t}set leaderLenght(t){this._leaderLength=t}get properties(){const t=this.getBaseProperties();return{type:this.type,groups:[...t.groups,{groupName:"geometry",properties:[...this.createPoint3dProperties("center",()=>this.center),...this.createPoint3dProperties("chordPoint",()=>this.chordPoint),this.createProperty("leaderLength","float",()=>this.leaderLength,e=>{this.leaderLength=e}),this.createProperty("extArcStartAngle","float",()=>this.extArcStartAngle,e=>{this.extArcStartAngle=e}),this.createProperty("extArcEndAngle","float",()=>this.extArcEndAngle,e=>{this.extArcEndAngle=e})]}]}}subTransformBy(t){this._center.applyMatrix4(t),this._chordPoint.applyMatrix4(t)}getMeasurementPropertyValue(){return this.measurement??this.center.distanceTo(this.chordPoint)}get geometricExtents(){const t=[this.center,this.chordPoint];if(this.leaderLength>0){const e=this.chordPoint.clone().sub(this.center);e.lengthSq()>0&&(e.normalize().multiplyScalar(this.leaderLength),t.push(this.chordPoint.clone().add(e)))}return this.getGeometricExtentsFromDimBlockOrPoints(t)}dxfOutFields(t){return super.dxfOutFields(t),t.writeSubclassMarker("AcDbRadialDimension"),t.writePoint3d(15,this.center),t.writePoint3d(13,this.chordPoint),t.writeDouble(40,this.leaderLength),t.writeAngle(52,this.extArcStartAngle),t.writeAngle(53,this.extArcEndAngle),this}};Pr.typeName="RadialDimension";let bn=Pr;const Ar=class Ar extends ii{get dxfSubclassMarker(){return"AcDbRotatedDimension"}};Ar.typeName="RotatedDimension";let xn=Ar;class _c extends ft{constructor(){super(),this._sourceFileName=""}get sourceFileName(){return this._sourceFileName}set sourceFileName(t){this._sourceFileName=t}dxfOutFields(t){return super.dxfOutFields(t),t.writeSubclassMarker("AcDbRasterImageDef"),t.writeString(1,this.sourceFileName),t.writeInt16(280,1),t.writeInt16(281,0),this}}var pa=(i=>(i[i.NotApplicable=0]="NotApplicable",i[i.Ignore=1]="Ignore",i[i.Replace=2]="Replace",i[i.XrefMangleName=3]="XrefMangleName",i[i.MangleName=4]="MangleName",i))(pa||{});class wc extends ft{constructor(){super(...arguments),this._data=null}get data(){return this._data}set data(t){this._data=t}clear(){var t;(t=this._data)==null||t.clear()}clone(){return super.clone()}getDuplicateRecordCloning(){return 0}dxfOutFields(t){return super.dxfOutFields(t),t.writeSubclassMarker("AcDbXrecord"),t.writeInt16(280,1),t.writeResultBuffer(this.data),this}}exports.ACAD_APPID=Fi;exports.ACTIVE_VPORT_NAME=Ae;exports.AC_DB_SYSTEM_VARIABLE_NAMES=fh;exports.AcCmColor=k;exports.AcCmColorUtil=Et;exports.AcCmEntityColor=_a;exports.AcCmErrors=st;exports.AcCmEventDispatcher=wa;exports.AcCmEventManager=D;exports.AcCmLoader=Ya;exports.AcCmLoadingManager=rs;exports.AcCmObject=es;exports.AcCmPerformanceCollector=Pn;exports.AcCmTask=is;exports.AcCmTaskScheduler=ns;exports.AcCmTransparency=U;exports.AcDb2dPolyline=Hi;exports.AcDb2dVertex=Wi;exports.AcDb2dVertexType=$o;exports.AcDb3PointAngularDimension=yn;exports.AcDb3dPolyline=Di;exports.AcDb3dVertex=Ui;exports.AcDb3dVertexType=Zo;exports.AcDbAbstractViewTableRecord=Wn;exports.AcDbAlignedDimension=ii;exports.AcDbAngleUnits=rt;exports.AcDbArc=$i;exports.AcDbArcDimension=mn;exports.AcDbAttribute=Zi;exports.AcDbAttributeDefinition=qi;exports.AcDbAttributeFlags=nt;exports.AcDbAttributeMTextFlag=Mt;exports.AcDbBaseWorker=wh;exports.AcDbBatchProcessing=so;exports.AcDbBlockReference=he;exports.AcDbBlockScaling=$s;exports.AcDbBlockTable=Ro;exports.AcDbBlockTableRecord=Q;exports.AcDbCircle=Ki;exports.AcDbCodePage=da;exports.AcDbCurve=q;exports.AcDbDataGenerator=Eo;exports.AcDbDatabase=Zh;exports.AcDbDatabaseConverter=po;exports.AcDbDatabaseConverterManager=mt;exports.AcDbDiametricDimension=_n;exports.AcDbDictionary=Vt;exports.AcDbDimArrowType=ga;exports.AcDbDimStyleTable=zo;exports.AcDbDimStyleTableRecord=le;exports.AcDbDimTextHorizontal=_o;exports.AcDbDimTextVertical=wo;exports.AcDbDimVerticalJustification=vo;exports.AcDbDimZeroSuppression=bo;exports.AcDbDimZeroSuppressionAngular=xo;exports.AcDbDimension=vt;exports.AcDbDuplicateRecordCloning=pa;exports.AcDbDwgVersion=dt;exports.AcDbDxfCode=vn;exports.AcDbDxfFiler=os;exports.AcDbEllipse=Qi;exports.AcDbEntity=$;exports.AcDbFace=Ji;exports.AcDbFileType=_e;exports.AcDbFormatter=Mo;exports.AcDbGradientPatternType=Lo;exports.AcDbHatch=Ze;exports.AcDbHatchObjectType=So;exports.AcDbHatchPatternType=we;exports.AcDbHatchStyle=Ao;exports.AcDbHostApplicationServices=$e;exports.AcDbLayerTable=Fo;exports.AcDbLayerTableRecord=Bn;exports.AcDbLayout=fi;exports.AcDbLayoutDictionary=Do;exports.AcDbLayoutManager=io;exports.AcDbLeader=tn;exports.AcDbLeaderAnnotationType=ia;exports.AcDbLine=Qe;exports.AcDbLineSpacingStyle=ei;exports.AcDbLinearUnits=G;exports.AcDbLinetypeTable=Vo;exports.AcDbLinetypeTableRecord=Ht;exports.AcDbMLeader=nn;exports.AcDbMLeaderContentType=te;exports.AcDbMLeaderDirectionType=oa;exports.AcDbMLeaderLineType=be;exports.AcDbMLeaderStyle=No;exports.AcDbMLeaderTextAttachmentDirection=sa;exports.AcDbMLine=en;exports.AcDbMLineFlags=ra;exports.AcDbMLineJustification=na;exports.AcDbMText=Je;exports.AcDbMlineStyle=Bo;exports.AcDbObject=ft;exports.AcDbObjectIterator=Te;exports.AcDbOpenMode=ro;exports.AcDbOrdinateDimension=wn;exports.AcDbOsnapMode=b;exports.AcDbPatParser=Un;exports.AcDbPatSvgRenderer=fn;exports.AcDbPlotPaperUnits=qs;exports.AcDbPlotRotation=Zs;exports.AcDbPlotSettings=eo;exports.AcDbPlotShadePlotResLevel=Qs;exports.AcDbPlotShadePlotType=Js;exports.AcDbPlotStdScaleType=to;exports.AcDbPlotType=Ks;exports.AcDbPoint=an;exports.AcDbPoly2dType=Uo;exports.AcDbPoly3dType=qo;exports.AcDbPolyFaceMesh=pn;exports.AcDbPolyFaceMeshFace=ua;exports.AcDbPolyFaceMeshVertex=ca;exports.AcDbPolygonMesh=gn;exports.AcDbPolygonMeshVertex=ha;exports.AcDbPolyline=lt;exports.AcDbPredefinedAcadIsoPat=Po;exports.AcDbPredefinedAcadPat=Lh;exports.AcDbRadialDimension=bn;exports.AcDbRasterImage=ti;exports.AcDbRasterImageClipBoundaryType=aa;exports.AcDbRasterImageDef=_c;exports.AcDbRasterImageImageDisplayOpt=la;exports.AcDbRay=ln;exports.AcDbRegAppTable=Wo;exports.AcDbRegAppTableRecord=ji;exports.AcDbRegenerator=fo;exports.AcDbRenderingCache=Wt;exports.AcDbResultBuffer=Nn;exports.AcDbRotatedDimension=xn;exports.AcDbShape=hn;exports.AcDbSpline=rn;exports.AcDbSymbolTable=Pt;exports.AcDbSymbolTableRecord=Rt;exports.AcDbSysVarManager=gt;exports.AcDbSystemVariables=v;exports.AcDbTable=sn;exports.AcDbText=Le;exports.AcDbTextHorizontalMode=ta;exports.AcDbTextStyleTable=jo;exports.AcDbTextStyleTableRecord=Rn;exports.AcDbTextVerticalMode=ea;exports.AcDbTrace=on;exports.AcDbUnitsValue=V;exports.AcDbViewTable=Go;exports.AcDbViewTableRecord=Kh;exports.AcDbViewport=cn;exports.AcDbViewportTable=Ho;exports.AcDbViewportTableRecord=Dn;exports.AcDbWipeout=un;exports.AcDbWorkerApi=mo;exports.AcDbWorkerManager=yo;exports.AcDbXline=dn;exports.AcDbXrecord=wc;exports.AcGeArea2d=Bt;exports.AcGeBox2d=et;exports.AcGeBox3d=C;exports.AcGeCatmullRomCurve3d=Us;exports.AcGeCircArc2d=pt;exports.AcGeCircArc3d=pi;exports.AcGeCurve2d=ce;exports.AcGeEllipseArc2d=Pe;exports.AcGeEllipseArc3d=Ds;exports.AcGeEuler=$a;exports.AcGeGeometryUtil=Is;exports.AcGeLine2d=kt;exports.AcGeLine3d=xt;exports.AcGeLoop2d=Xn;exports.AcGeMathUtil=E;exports.AcGeMatrix2d=Me;exports.AcGeMatrix3d=Y;exports.AcGeNurbsCurve=ut;exports.AcGePlane=Tn;exports.AcGePoint2d=P;exports.AcGePoint3d=_;exports.AcGePolyline2d=H;exports.AcGeQuaternion=ae;exports.AcGeShape2d=Yn;exports.AcGeSpline3d=Yt;exports.AcGeTol=F;exports.AcGeVector2d=j;exports.AcGeVector3d=w;exports.AcGiViewport=oo;exports.AcTrStringUtil=ka;exports.ByBlock=Ot;exports.ByLayer=tt;exports.DEBUG_MODE=Ia;exports.DEFAULT_GRADIENT_HATCH_NAME=ho;exports.DEFAULT_HATCH_PATTERN_IMPERIAL=hh;exports.DEFAULT_HATCH_PATTERN_METRIC=ao;exports.DEFAULT_LINE_TYPE=Xt;exports.DEFAULT_MLEADER_STYLE=Ct;exports.DEFAULT_MLINE_STYLE=Tt;exports.DEFAULT_TEXT_STYLE=K;exports.DEFAULT_TOL=gi;exports.DEG2RAD=An;exports.DefaultLoadingManager=ss;exports.FLOAT_TOL=wt;exports.HATCH_PATTERN_SOLID=Gt;exports.HATCH_PATTERN_USER=lo;exports.MLIGHTCAD_APPID=zi;exports.ORIGIN_POINT_2D=Ra;exports.ORIGIN_POINT_3D=In;exports.RAD2DEG=Sn;exports.RAW_COLOR_TYPE_ACI=Hn;exports.RAW_COLOR_TYPE_BY_BLOCK=Ke;exports.RAW_COLOR_TYPE_BY_LAYER=jn;exports.RAW_COLOR_TYPE_RGB=Gn;exports.RAW_COLOR_TYPE_WINDOW_BG=Yo;exports.TAU=B;exports.TEMP_OBJECT_ID_PREFIX=je;exports.VPORT_FALLBACK_CENTER_2D=ch;exports.VPORT_FALLBACK_LLC=uh;exports.VPORT_FALLBACK_URC=dh;exports.VPORT_FALLBACK_VIEW_DIR=gh;exports.VPORT_FALLBACK_VIEW_TARGET=ph;exports.acdbDisableOsnapMode=Sh;exports.acdbEnableOsnapMode=Ah;exports.acdbHasOsnapMode=Ph;exports.acdbHostApplicationServices=no;exports.acdbMaskToOsnapModes=xh;exports.acdbOsnapModesToMask=bh;exports.acdbToggleOsnapMode=vh;exports.basisFunction=Nt;exports.calculateCurveLength=Os;exports.ceilPowerOfTwo=Ps;exports.clamp=bt;exports.clone=pe;exports.computeParameterValues=Ts;exports.createWorkerApi=_h;exports.damp=ds;exports.decodeMLeaderStyleRawColor=Xo;exports.deepClone=Ci;exports.defaults=Ee;exports.degToRad=bs;exports.dwgCodePageToEncoding=mc;exports.encodeMLeaderStyleRawColor=He;exports.euclideanModulo=Ln;exports.evaluateNurbsPoint=me;exports.floorPowerOfTwo=As;exports.generateAveragedKnots=Cs;exports.generateChordKnots=Za;exports.generateSqrtChordKnots=Ka;exports.generateUUID=hs;exports.generateUniformKnots=qa;exports.getOcsAngle=ki;exports.getOcsReferenceVector=kn;exports.has=Qr;exports.intPartLength=Mn;exports.interpolateControlPoints=el;exports.interpolateNurbsCurve=On;exports.inverseLerp=us;exports.isBetween=Ss;exports.isBetweenAngle=Ls;exports.isEmpty=Jr;exports.isEqual=re;exports.isImperialUnits=uo;exports.isMetricUnits=co;exports.isPointInPolygon=Cn;exports.isPolygonIntersect=Ms;exports.isPowerOfTwo=vs;exports.lerp=En;exports.log=fe;exports.mapLinear=cs;exports.normalizeAngle=ye;exports.pingpong=gs;exports.radToDeg=xs;exports.randFloat=ms;exports.randFloatSpread=_s;exports.randInt=ys;exports.relativeEps=Es;exports.seededRandom=ws;exports.setAcDbHostApplicationServicesProvider=ls;exports.setAcDbLayoutManagerFactory=lh;exports.setLogLevel=Ta;exports.smootherstep=fs;exports.smoothstep=ps;exports.transformOcsPointToWcs=rl;exports.transformWcsPointToOcs=ve;
|