@mlightcad/data-model 1.9.7 → 1.9.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/data-model.cjs +7 -7
- package/lib/entity/AcDbSpline.d.ts +105 -0
- package/lib/entity/AcDbSpline.d.ts.map +1 -1
- package/lib/entity/AcDbSpline.js +133 -0
- package/lib/entity/AcDbSpline.js.map +1 -1
- package/lib/misc/proxyGraphic/AcDbProxyGraphic.d.ts.map +1 -1
- package/lib/misc/proxyGraphic/AcDbProxyGraphic.js +15 -1
- package/lib/misc/proxyGraphic/AcDbProxyGraphic.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 Bn=(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))(Bn||{});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 Na=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.")},Ba=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},Br={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],Ct=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 Br[t.toLowerCase()]},i.getNameByColor=function(t){var e,n;try{for(var r=Na(Object.entries(Br)),s=r.next();!s.done;s=r.next()){var o=Ba(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}(),Ra=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},O=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?Ct.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=Ct.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?Ct.getNameByColor(this._value):"";case exports.AcCmColorMethod.ByACI:return this._value?Ct.getNameByIndex(this._value):"";default:return}},set:function(t){if(t){var e=Ct.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=Ra(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=Ct.getColorByName(c);return u!=null?new i(exports.AcCmColorMethod.ByColor,u):void 0}var g=Ct.getColorByName(e);if(g!=null)return new i(exports.AcCmColorMethod.ByColor,g)}},i}(),za=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")}},Fa=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}(),Va=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.")},ja=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},Ga=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))},U=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=Va(this.listeners),a=o.next();!a.done;a=o.next()){var h=a.value,l=h;l.call.apply(l,Ga([null,t],ja(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}(),Gi=function(){return Gi=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},Gi.apply(this,arguments)},Ha=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},Da=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))},gs=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 be(i){return i===null||typeof i!="object"?i:Array.isArray(i)?Da([],Ha(i),!1):Gi({},i)}function Hi(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(Hi);var t={};for(var e in i)Object.prototype.hasOwnProperty.call(i,e)&&(t[e]=Hi(i[e]));return t}function Ne(i){for(var t,e,n=[],r=1;r<arguments.length;r++)n[r-1]=arguments[r];try{for(var s=gs(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 ps(i,t){return i!=null&&Object.prototype.hasOwnProperty.call(i,t)}function fs(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 he(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(!he(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=gs(s),h=a.next();!h.done;h=a.next()){var l=h.value;if(!Object.prototype.hasOwnProperty.call(t,l)||!he(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 Ua=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Wa(i){return i&&i.__esModule&&Object.prototype.hasOwnProperty.call(i,"default")?i.default:i}var ys={exports:{}};(function(i){(function(t,e){i.exports?i.exports=e():t.log=e()})(Ua,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 _=f[y];if(typeof _.bind=="function")return _.bind(f);try{return Function.prototype.bind.call(_,f)}catch{return function(){return Function.prototype.apply.apply(_,[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 _=r[y];this[_]=y<f?t:this.methodFactory(_,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,_){return l(f)||u.apply(this,arguments)}function d(f,y){var _=this,b,S,A,L="loglevel";typeof f=="string"?L+=":"+f:typeof f=="symbol"&&(L=void 0);function T(k){var R=(r[k]||"silent").toUpperCase();if(!(typeof window===e||!L)){try{window.localStorage[L]=R;return}catch{}try{window.document.cookie=encodeURIComponent(L)+"="+R+";"}catch{}}}function E(){var k;if(!(typeof window===e||!L)){try{k=window.localStorage[L]}catch{}if(typeof k===e)try{var R=window.document.cookie,D=encodeURIComponent(L),et=R.indexOf(D+"=");et!==-1&&(k=/^([^;]+)/.exec(R.slice(et+D.length+1))[1])}catch{}return _.levels[k]===void 0&&(k=void 0),k}}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 M(k){var R=k;if(typeof R=="string"&&_.levels[R.toUpperCase()]!==void 0&&(R=_.levels[R.toUpperCase()]),typeof R=="number"&&R>=0&&R<=_.levels.SILENT)return R;throw new TypeError("log.setLevel() called with invalid level: "+k)}_.name=f,_.levels={TRACE:0,DEBUG:1,INFO:2,WARN:3,ERROR:4,SILENT:5},_.methodFactory=y||g,_.getLevel=function(){return A??S??b},_.setLevel=function(k,R){return A=M(k),R!==!1&&T(A),c.call(_)},_.setDefaultLevel=function(k){S=M(k),E()||_.setLevel(k,!1)},_.resetLevel=function(){A=null,X(),c.call(_)},_.enableAll=function(k){_.setLevel(_.levels.TRACE,k)},_.disableAll=function(k){_.setLevel(_.levels.SILENT,k)},_.rebuild=function(){if(o!==_&&(b=M(o.getLevel())),c.call(_),o===_)for(var k in s)s[k].rebuild()},b=M(o?o.getLevel():"WARN");var z=E();z!=null&&(A=M(z)),c.call(_)}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 _=s[y];return _||(_=s[y]=new d(y,o.methodFactory)),_};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})})(ys);var $a=ys.exports;const qa=Wa($a);var Ka=!0,ve=qa;ve.setLevel("debug");var Za=function(i){try{ve.setLevel(i)}catch(t){ve.setLevel("error"),ve.error(t)}},ms=function(){function i(t,e){this.events={attrChanged:new U,modelChanged:new U},this._changing=!1,this._previousAttributes={},this._pending=!1;var n=t||{};e&&Ne(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=be(this.attributes),this.changed={});var l=this.attributes,c=this.changed,u=this._previousAttributes;for(var g in r)e=r[g],he(l[g],e)||a.push(g),he(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?!fs(this.changed):ps(this.changed,t)},i.prototype.changedAttributes=function(t){if(!t)return this.hasChanged()?be(this.changed):{};var e=this._changing?this._previousAttributes:this.attributes,n={};for(var r in t){var s=t[r];he(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 be(this._previousAttributes)},i.prototype.clone=function(){var t=be(this.attributes);return new i(t)},i}(),Qa=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.")},Ja=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},Rn=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=Qa(this.entries),r=n.next();!r.done;r=n.next())var s=Ja(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}(),tl=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 W=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}(),Rr=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())})},Ti=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}}},_s=function(){function i(t){this.name=t}return i.prototype.run=function(t){throw new Error("run() must be implemented by subclass")},i}(),ws=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 Rr(this,void 0,void 0,function(){var e,n,r,s,o,a,h=this;return Ti(this,function(l){switch(l.label){case 0:e=this.tasks.length,n=t,r=function(c){var u,g,d;return Ti(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 Rr(h,void 0,void 0,function(){var f;return Ti(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}(),xs=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}(),bs=new xs,el=function(){function i(t){this.manager=t!==void 0?t:bs,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 zr=[{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 gt{constructor(t){if(typeof t=="string"){const e=zr.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=zr.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 vs{constructor(t={}){this._database=t.database,this._precision=Math.max(0,Math.min(16,t.precision??16)),this._version=t.version instanceof gt?t.version:t.version!=null?new gt(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 gt?t:new gt(t),this}toString(){return this._lines.join(`
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});var zn=(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))(zn||{});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 Ra=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.")},za=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},Rr={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},Ci=[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],Ot=function(){function i(){}return i.getColorByIndex=function(t){return Ci[t]},i.getIndexByColor=function(t){for(var e=Ci.length-1,n=1;n<e;++n)if(Ci[n]===t)return n},i.getColorByName=function(t){return Rr[t.toLowerCase()]},i.getNameByColor=function(t){var e,n;try{for(var r=Ra(Object.entries(Rr)),s=r.next();!s.done;s=r.next()){var o=za(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}(),Fa=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},O=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?Ot.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=Ot.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?Ot.getNameByColor(this._value):"";case exports.AcCmColorMethod.ByACI:return this._value?Ot.getNameByIndex(this._value):"";default:return}},set:function(t){if(t){var e=Ot.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=Fa(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=Ot.getColorByName(c);return u!=null?new i(exports.AcCmColorMethod.ByColor,u):void 0}var g=Ot.getColorByName(e);if(g!=null)return new i(exports.AcCmColorMethod.ByColor,g)}},i}(),Va=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")}},ja=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}(),Ga=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.")},Ha=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},Da=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))},U=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=Ga(this.listeners),a=o.next();!a.done;a=o.next()){var h=a.value,l=h;l.call.apply(l,Da([null,t],Ha(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}(),Ui=function(){return Ui=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},Ui.apply(this,arguments)},Ua=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},Wa=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))},fs=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 be(i){return i===null||typeof i!="object"?i:Array.isArray(i)?Wa([],Ua(i),!1):Ui({},i)}function Wi(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(Wi);var t={};for(var e in i)Object.prototype.hasOwnProperty.call(i,e)&&(t[e]=Wi(i[e]));return t}function Re(i){for(var t,e,n=[],r=1;r<arguments.length;r++)n[r-1]=arguments[r];try{for(var s=fs(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 ys(i,t){return i!=null&&Object.prototype.hasOwnProperty.call(i,t)}function ms(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 he(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(!he(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=fs(s),h=a.next();!h.done;h=a.next()){var l=h.value;if(!Object.prototype.hasOwnProperty.call(t,l)||!he(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 $a=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function qa(i){return i&&i.__esModule&&Object.prototype.hasOwnProperty.call(i,"default")?i.default:i}var _s={exports:{}};(function(i){(function(t,e){i.exports?i.exports=e():t.log=e()})($a,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 _=f[y];if(typeof _.bind=="function")return _.bind(f);try{return Function.prototype.bind.call(_,f)}catch{return function(){return Function.prototype.apply.apply(_,[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 _=r[y];this[_]=y<f?t:this.methodFactory(_,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,_){return l(f)||u.apply(this,arguments)}function d(f,y){var _=this,b,S,A,L="loglevel";typeof f=="string"?L+=":"+f:typeof f=="symbol"&&(L=void 0);function T(k){var R=(r[k]||"silent").toUpperCase();if(!(typeof window===e||!L)){try{window.localStorage[L]=R;return}catch{}try{window.document.cookie=encodeURIComponent(L)+"="+R+";"}catch{}}}function E(){var k;if(!(typeof window===e||!L)){try{k=window.localStorage[L]}catch{}if(typeof k===e)try{var R=window.document.cookie,D=encodeURIComponent(L),et=R.indexOf(D+"=");et!==-1&&(k=/^([^;]+)/.exec(R.slice(et+D.length+1))[1])}catch{}return _.levels[k]===void 0&&(k=void 0),k}}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 M(k){var R=k;if(typeof R=="string"&&_.levels[R.toUpperCase()]!==void 0&&(R=_.levels[R.toUpperCase()]),typeof R=="number"&&R>=0&&R<=_.levels.SILENT)return R;throw new TypeError("log.setLevel() called with invalid level: "+k)}_.name=f,_.levels={TRACE:0,DEBUG:1,INFO:2,WARN:3,ERROR:4,SILENT:5},_.methodFactory=y||g,_.getLevel=function(){return A??S??b},_.setLevel=function(k,R){return A=M(k),R!==!1&&T(A),c.call(_)},_.setDefaultLevel=function(k){S=M(k),E()||_.setLevel(k,!1)},_.resetLevel=function(){A=null,X(),c.call(_)},_.enableAll=function(k){_.setLevel(_.levels.TRACE,k)},_.disableAll=function(k){_.setLevel(_.levels.SILENT,k)},_.rebuild=function(){if(o!==_&&(b=M(o.getLevel())),c.call(_),o===_)for(var k in s)s[k].rebuild()},b=M(o?o.getLevel():"WARN");var z=E();z!=null&&(A=M(z)),c.call(_)}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 _=s[y];return _||(_=s[y]=new d(y,o.methodFactory)),_};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})})(_s);var Ka=_s.exports;const Za=qa(Ka);var Qa=!0,ve=Za;ve.setLevel("debug");var Ja=function(i){try{ve.setLevel(i)}catch(t){ve.setLevel("error"),ve.error(t)}},ws=function(){function i(t,e){this.events={attrChanged:new U,modelChanged:new U},this._changing=!1,this._previousAttributes={},this._pending=!1;var n=t||{};e&&Re(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=be(this.attributes),this.changed={});var l=this.attributes,c=this.changed,u=this._previousAttributes;for(var g in r)e=r[g],he(l[g],e)||a.push(g),he(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?!ms(this.changed):ys(this.changed,t)},i.prototype.changedAttributes=function(t){if(!t)return this.hasChanged()?be(this.changed):{};var e=this._changing?this._previousAttributes:this.attributes,n={};for(var r in t){var s=t[r];he(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 be(this._previousAttributes)},i.prototype.clone=function(){var t=be(this.attributes);return new i(t)},i}(),tl=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.")},el=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},Fn=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=tl(this.entries),r=n.next();!r.done;r=n.next())var s=el(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}(),il=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 W=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}(),zr=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())})},Oi=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}}},xs=function(){function i(t){this.name=t}return i.prototype.run=function(t){throw new Error("run() must be implemented by subclass")},i}(),bs=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 zr(this,void 0,void 0,function(){var e,n,r,s,o,a,h=this;return Oi(this,function(l){switch(l.label){case 0:e=this.tasks.length,n=t,r=function(c){var u,g,d;return Oi(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 zr(h,void 0,void 0,function(){var f;return Oi(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}(),vs=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}(),Ps=new vs,nl=function(){function i(t){this.manager=t!==void 0?t:Ps,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 Fr=[{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 gt{constructor(t){if(typeof t=="string"){const e=Fr.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=Fr.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 gt?t.version:t.version!=null?new gt(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 gt?t:new gt(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 Dt=256,Ps=[],Fr=256,Fe;for(;Dt--;)Ps[Dt]=(Dt+256).toString(16).substring(1);function il(i){var t=0,e=11;if(!Fe||Dt+e>Fr*2)for(Fe="",Dt=0;t<Fr;t++)Fe+=Ps[Math.random()*256|0];return Fe.substring(Dt,Dt+++e)}const Ze="TEMP_";let Ee;function As(i){Ee=i}function nl(){if(Ee)return Ee().workingDatabase;throw new Error("The current working database must be set before using it!")}class yt{constructor(t,e){if(t=t||{},this._attrs=new ms(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 Ze+il()}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(Ze)&&this.database.updateMaxHandle(t)}get isTemp(){const t=this.getAttrWithoutException("objectId");return!!t&&t.startsWith(Ze)}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(Ee)return Ee().workingDatabase;throw new Error("The current working database must be set before using it!")}set database(t){this.assignDatabase(t)}assignDatabase(t){this._database=t}getXData(t){return this._xDataMap.get(t)}setXData(t){for(const e of t)e.code===Bn.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 Q=["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"],Vr=1234567,zn=Math.PI/180,Fn=180/Math.PI;function Ss(){var i=Math.random()*4294967295|0,t=Math.random()*4294967295|0,e=Math.random()*4294967295|0,n=Math.random()*4294967295|0,r=Q[i&255]+Q[i>>8&255]+Q[i>>16&255]+Q[i>>24&255]+"-"+Q[t&255]+Q[t>>8&255]+"-"+Q[t>>16&15|64]+Q[t>>24&255]+"-"+Q[e&63|128]+Q[e>>8&255]+"-"+Q[e>>16&255]+Q[e>>24&255]+Q[n&255]+Q[n>>8&255]+Q[n>>16&255]+Q[n>>24&255];return r.toLowerCase()}function Pt(i,t,e){return Math.max(t,Math.min(e,i))}function Vn(i,t){return(i%t+t)%t}function Ls(i,t,e,n,r){return n+(i-t)*(r-n)/(e-t)}function Is(i,t,e){return i!==t?(e-i)/(t-i):0}function jn(i,t,e){return(1-e)*i+e*t}function Es(i,t,e,n){return jn(i,t,1-Math.exp(-e*n))}function Ms(i,t){return t===void 0&&(t=1),t-Math.abs(Vn(i,t*2)-t)}function Ts(i,t,e){return i<=t?0:i>=e?1:(i=(i-t)/(e-t),i*i*(3-2*i))}function Cs(i,t,e){return i<=t?0:i>=e?1:(i=(i-t)/(e-t),i*i*i*(i*(i*6-15)+10))}function Os(i,t){return i+Math.floor(Math.random()*(t-i+1))}function ks(i,t){return i+Math.random()*(t-i)}function Ys(i){return i*(.5-Math.random())}function Xs(i){i!==void 0&&(Vr=i);var t=Vr+=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 Ns(i){return i*zn}function Bs(i){return i*Fn}function Rs(i){return(i&i-1)===0&&i!==0}function zs(i){return Math.pow(2,Math.ceil(Math.log(i)/Math.LN2))}function Fs(i){return Math.pow(2,Math.floor(Math.log(i)/Math.LN2))}function Pe(i){var t=Math.PI*2;return(i%t+t)%t}function Vs(i,t,e){return i>t&&i<e||i>e&&i<t}function js(i,t,e,n){return n===void 0&&(n=!1),i=Pe(i),t=Pe(t),e=Pe(e),n?t>e?i<=t&&i>=e:i<=t||i>=e:t<e?i>=t&&i<=e:i>=t||i<=e}function Gn(i){return i=Math.abs(i),i<1?0:Math.ceil(Math.log10(Math.abs(i)+1))}function Gs(i,t){t===void 0&&(t=1e-7);var e=Gn(i);return Math.max(Math.pow(10,e)*t,t)}var I={DEG2RAD:zn,RAD2DEG:Fn,generateUUID:Ss,clamp:Pt,euclideanModulo:Vn,mapLinear:Ls,inverseLerp:Is,lerp:jn,damp:Es,pingpong:Ms,smoothstep:Ts,smootherstep:Cs,randInt:Os,randFloat:ks,randFloatSpread:Ys,seededRandom:Xs,degToRad:Ns,radToDeg:Bs,isPowerOfTwo:Rs,ceilPowerOfTwo:zs,floorPowerOfTwo:Fs,normalizeAngle:Pe,isBetween:Vs,isBetweenAngle:js,intPartLength:Gn,relativeEps:Gs},rl=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}}},G=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(I.relativeEps(this.x,t),I.relativeEps(this.y,t))},i.prototype[Symbol.iterator]=function(){return rl(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}(),Be=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],_=r[6],b=r[1],S=r[4],A=r[7],L=r[2],T=r[5],E=r[8];return s[0]=o*f+a*b+h*L,s[3]=o*y+a*S+h*T,s[6]=o*_+a*A+h*E,s[1]=l*f+c*b+u*L,s[4]=l*y+c*S+u*T,s[7]=l*_+c*A+u*E,s[2]=g*f+d*b+p*L,s[5]=g*y+d*S+p*T,s[8]=g*_+d*A+p*E,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(Ci.makeScale(t,e)),this},i.prototype.rotate=function(t){return this.premultiply(Ci.makeRotation(-t)),this},i.prototype.translate=function(t,e){return this.premultiply(Ci.makeTranslation(t,e)),this},i.prototype.makeTranslation=function(t,e){return t instanceof G?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}(),Ci=new Be,vt=1e-6,B=2*Math.PI,sl={x:0,y:0},Hn={x:0,y:0,z:0},F=function(){function i(){this.equalPointTol=vt,this.equalVectorTol=vt}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 G(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=vt),t<e&&t>-e},i.equal=function(t,e,n){return n===void 0&&(n=vt),Math.abs(t-e)<n},i.great=function(t,e,n){return n===void 0&&(n=vt),t-e>n},i.less=function(t,e,n){return n===void 0&&(n=vt),t-e<n},i.isPositive=function(t,e){return e===void 0&&(e=vt),t>e},i.isNonPositive=function(t,e){return e===void 0&&(e=vt),t<=e},i}(),bi=new F,ol=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}}},de=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,_=h*g+l*d+c*p+u*f,b=_>=0?1:-1,S=1-_*_;if(S>Number.EPSILON){var A=Math.sqrt(S),L=Math.atan2(A,_*b);y=Math.sin(y*L)/A,a=Math.sin(a*L)/A}var T=a*b;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 E=1/Math.sqrt(h*h+l*l+c*c+u*u);h*=E,l*=E,c*=E,u*=E}}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(Pt(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 ol(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}(),al=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(jr.setFromEuler(t))},i.prototype.applyAxisAngle=function(t,e){return this.applyQuaternion(jr.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 Oi.copy(this).projectOnVector(t),this.sub(Oi)},i.prototype.reflect=function(t){return this.sub(Oi.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 al(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}(),Oi=new w,jr=new de,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 _=this.elements;return _[0]=t,_[4]=e,_[8]=n,_[12]=r,_[1]=s,_[5]=o,_[9]=a,_[13]=h,_[2]=l,_[6]=c,_[10]=u,_[14]=g,_[3]=d,_[7]=p,_[11]=f,_[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(bi.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/Jt.setFromMatrixColumn(t,0).length(),s=1/Jt.setFromMatrixColumn(t,1).length(),o=1/Jt.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(ll,t,hl)},i.prototype.lookAt=function(t,e,n){var r=this.elements;return ot.subVectors(t,e),ot.lengthSq()===0&&(ot.z=1),ot.normalize(),Tt.crossVectors(n,ot),Tt.lengthSq()===0&&(Math.abs(n.z)===1?ot.x+=1e-4:ot.z+=1e-4,ot.normalize(),Tt.crossVectors(n,ot)),Tt.normalize(),Ve.crossVectors(ot,Tt),r[0]=Tt.x,r[4]=Ve.x,r[8]=ot.x,r[1]=Tt.y,r[5]=Ve.y,r[9]=ot.y,r[2]=Tt.z,r[6]=Ve.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],_=n[14],b=n[3],S=n[7],A=n[11],L=n[15],T=r[0],E=r[4],X=r[8],M=r[12],z=r[1],k=r[5],R=r[9],D=r[13],et=r[2],mt=r[6],Kt=r[10],Zt=r[14],jt=r[3],Qt=r[7],Et=r[11],Mt=r[15];return s[0]=o*T+a*z+h*et+l*jt,s[4]=o*E+a*k+h*mt+l*Qt,s[8]=o*X+a*R+h*Kt+l*Et,s[12]=o*M+a*D+h*Zt+l*Mt,s[1]=c*T+u*z+g*et+d*jt,s[5]=c*E+u*k+g*mt+d*Qt,s[9]=c*X+u*R+g*Kt+d*Et,s[13]=c*M+u*D+g*Zt+d*Mt,s[2]=p*T+f*z+y*et+_*jt,s[6]=p*E+f*k+y*mt+_*Qt,s[10]=p*X+f*R+y*Kt+_*Et,s[14]=p*M+f*D+y*Zt+_*Mt,s[3]=b*T+S*z+A*et+L*jt,s[7]=b*E+S*k+A*mt+L*Qt,s[11]=b*X+S*R+A*Kt+L*Et,s[15]=b*M+S*D+A*Zt+L*Mt,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],_=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)+_*(-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],_=t[15],b=u*y*l-f*g*l+f*h*d-a*y*d-u*h*_+a*g*_,S=p*g*l-c*y*l-p*h*d+o*y*d+c*h*_-o*g*_,A=c*f*l-p*u*l+p*a*d-o*f*d-c*a*_+o*u*_,L=p*u*h-c*f*h-p*a*g+o*f*g+c*a*y-o*u*y,T=e*b+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 E=1/T;return t[0]=b*E,t[1]=(f*g*s-u*y*s-f*r*d+n*y*d+u*r*_-n*g*_)*E,t[2]=(a*y*s-f*h*s+f*r*l-n*y*l-a*r*_+n*h*_)*E,t[3]=(u*h*s-a*g*s-u*r*l+n*g*l+a*r*d-n*h*d)*E,t[4]=S*E,t[5]=(c*y*s-p*g*s+p*r*d-e*y*d-c*r*_+e*g*_)*E,t[6]=(p*h*s-o*y*s-p*r*l+e*y*l+o*r*_-e*h*_)*E,t[7]=(o*g*s-c*h*s+c*r*l-e*g*l-o*r*d+e*h*d)*E,t[8]=A*E,t[9]=(p*u*s-c*f*s-p*n*d+e*f*d+c*n*_-e*u*_)*E,t[10]=(o*f*s-p*a*s+p*n*l-e*f*l-o*n*_+e*a*_)*E,t[11]=(c*a*s-o*u*s-c*n*l+e*u*l+o*n*d-e*a*d)*E,t[12]=L*E,t[13]=(c*f*r-p*u*r+p*n*g-e*f*g-c*n*y+e*u*y)*E,t[14]=(p*a*r-o*f*r-p*n*h+e*f*h+o*n*y-e*a*y)*E,t[15]=(o*u*r-c*a*r+c*n*h-e*u*h-o*n*g+e*a*g)*E,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,_=a*u,b=h*l,S=h*c,A=h*u,L=n.x,T=n.y,E=n.z;return r[0]=(1-(f+_))*L,r[1]=(d+A)*L,r[2]=(p-S)*L,r[3]=0,r[4]=(d-A)*T,r[5]=(1-(g+_))*T,r[6]=(y+b)*T,r[7]=0,r[8]=(p+S)*E,r[9]=(y-b)*E,r[10]=(1-(g+f))*E,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=Jt.set(r[0],r[1],r[2]).length(),o=Jt.set(r[4],r[5],r[6]).length(),a=Jt.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],ut.copy(this);var l=1/s,c=1/o,u=1/a;return ut.elements[0]*=l,ut.elements[1]*=l,ut.elements[2]*=l,ut.elements[4]*=c,ut.elements[5]*=c,ut.elements[6]*=c,ut.elements[8]*=u,ut.elements[9]*=u,ut.elements[10]*=u,e.setFromRotationMatrix(ut),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}(),Jt=new w,ut=new Y,ll=new w(0,0,0),hl=new w(1,1,1),Tt=new w,Ve=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(ki.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=ki.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,ki).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:(bt[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(t),bt[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(t),bt[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(t),bt[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(t),bt[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(t),bt[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(t),bt[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(t),bt[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(t),this.setFromPoints(bt),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}(),bt=[new w,new w,new w,new w,new w,new w,new w,new w],ki=new w,Gr=new G,tt=function(){function i(t,e){t===void 0&&(t=void 0),e===void 0&&(e=void 0),this.min=t==null?new G(1/0,1/0):new G(t.x,t.y),this.max=e==null?new G(-1/0,-1/0):new G(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=Gr.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 G(0,0):new G(0,0).addVectors(this.min,this.max).multiplyScalar(.5)},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"size",{get:function(){return this.isEmpty()?new G(0,0):new G(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,Gr).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}(),Hr=new w,cl=new w,ul=new Be,Dn=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=Hr.subVectors(n,e).cross(cl.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||ul.getNormalMatrix(t),r=this.coplanarPoint(Hr).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}(),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)}}(),P=function(i){dl(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}(G),gl=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)}}(),m=function(i){gl(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),pl=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}}},Dr=new Y,Ur=new de,fl=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(Pt(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(-Pt(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(Pt(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(-Pt(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(Pt(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(-Pt(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),Dr.makeRotationFromQuaternion(t),this.setFromRotationMatrix(Dr,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 Ur.setFromEuler(this),this.setFromQuaternion(Ur,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 pl(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 Un(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 Hs(i,t){if(i.length===0||t.length===0)return!1;var e=new tt().setFromPoints(i),n=new tt().setFromPoints(t);if(!e.intersectsBox(n))return!1;for(var r=0;r<i.length;){if(Un(i[r],t,!0))return!0;r<i.length-1&&bi.equalPoint2d(i[r+1],i[r])&&++r,++r}return!1}var Ds={isPointInPolygon:Un,isPolygonIntersect:Hs},je=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},Ge=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 yl(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 ml(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 Us(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 Ws(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 _l(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 Yi(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 Wn(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(Et){var Mt;return[Et[0],Et[1],(Mt=Et[2])!==null&&Mt!==void 0?Mt: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 _=Us(u,e),b=_.slice();g&&b.unshift(_[0]),d&&b.push(_[_.length-1]);var S=Ws(t,b),A=y+1,L=new Array(A),T=new Array(A),E=new Array(A),X=new Array(A),M=0;L[M]=new Array(A).fill(0),L[M][0]=1,T[M]=u[0][0],E[M]=u[0][1],X[M]=u[0][2],M++;for(var z=1;z<=f-1;z++){var k=_[z];L[M]=new Array(A).fill(0);for(var R=0;R<=y;R++)L[M][R]=Ft(R,t,k,S);T[M]=u[z][0],E[M]=u[z][1],X[M]=u[z][2],M++}if(L[M]=new Array(A).fill(0),L[M][y]=1,T[M]=u[f][0],E[M]=u[f][1],X[M]=u[f][2],M++,g){var D=S[t+1]-S[0],et=D!==0?t/D:0;L[M]=new Array(A).fill(0),L[M][0]=-et,L[M][1]=et,T[M]=(s=n==null?void 0:n[0])!==null&&s!==void 0?s:0,E[M]=(o=n==null?void 0:n[1])!==null&&o!==void 0?o:0,X[M]=(a=n==null?void 0:n[2])!==null&&a!==void 0?a:0,M++}if(d){var D=S[y+t+1]-S[y],et=D!==0?t/D:0;L[M]=new Array(A).fill(0),L[M][y-1]=-et,L[M][y]=et,T[M]=(h=r==null?void 0:r[0])!==null&&h!==void 0?h:0,E[M]=(l=r==null?void 0:r[1])!==null&&l!==void 0?l:0,X[M]=(c=r==null?void 0:r[2])!==null&&c!==void 0?c:0,M++}for(var mt=Yi(L,T),Kt=Yi(L,E),Zt=Yi(L,X),jt=new Array(A),z=0;z<A;z++)jt[z]=[mt[z],Kt[z],Zt[z]];var Qt=new Array(A).fill(1);return{controlPoints:jt,knots:S,weights:Qt}}function Ft(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*Ft(i,t-1,e,n)+a*Ft(i+1,t-1,e,n)}function Ae(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 Ge([],je(n[s]),!1);if(Math.abs(i-e[o])<1e-8)return Ge([],je(n[0]),!1);for(var a=[0,0,0],h=0,l=0;l<=s;l++){var c=Ft(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 Ge([],je(n[s]),!1);if(Math.abs(i-e[o])<1e-8)return Ge([],je(n[0]),!1)}return Math.abs(h)>=1e-10&&(a[0]/=h,a[1]/=h,a[2]/=h),a}function Di(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*Ft(i,t-1,e,n)),s>1e-10&&(o-=t/s*Ft(i+1,t-1,e,n)),o}function wl(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*Di(i,t-1,e,n)),s>1e-10&&(o-=t/s*Di(i+1,t-1,e,n)),o}function xl(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=Ft(f,o,i,e),_=Di(f,o,i,e),b=wl(f,o,i,e),S=r[f],A=S*y,L=S*_,T=S*b,E=n[f];l[0]+=A*E[0],l[1]+=A*E[1],l[2]+=A*E[2],c[0]+=L*E[0],c[1]+=L*E[1],c[2]+=L*E[2],u[0]+=T*E[0],u[1]+=T*E[1],u[2]+=T*E[2],g+=A,d+=L,p+=T}if(Math.abs(g)<1e-10){var X=Ae(i,t,e,n,r);return{point:X,deriv1:[0,0,0],deriv2:[0,0,0]}}var M=g*g,z=[l[0]/g,l[1]/g,l[2]/g],k=[(c[0]*g-l[0]*d)/M,(c[1]*g-l[1]*d)/M,(c[2]*g-l[2]*d)/M],R=u[0]*g-l[0]*p,D=u[1]*g-l[1]*p,et=u[2]*g-l[2]*p,mt=[R/M-2*d*k[0]/g,D/M-2*d*k[1]/g,et/M-2*d*k[2]/g];return{point:z,deriv1:k,deriv2:mt}}function bl(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 $s(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=Ae(s,i,t,e,n),u=1;u<=h;u++){var g=s+u*l,d=Ae(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 _=Ae(o,i,t,e,n),b=_[0]-c[0],S=_[1]-c[1],A=_[2]-c[2];return a+=Math.sqrt(b*b+S*S+A*A),a}function vl(i,t,e,n,r){return t===void 0&&(t=3),e===void 0&&(e="Uniform"),i.length===0?[]:Wn(i,t,e,n,r).controlPoints}var Wr=new Y,$r=new w,Pl=new w,Al=new w,Xi=new m;function qs(i){return new Y().setFromExtrusionDirection(new w(i.x,i.y,i.z))}function vi(i){return Wr.setFromExtrusionDirection(new w(i.x,i.y,i.z)),Wr.extractBasis($r,Pl,Al),$r.clone()}function Ui(i,t){var e;return new m(i.x,i.y,(e=i.z)!==null&&e!==void 0?e:0).applyMatrix4(qs(t))}function ge(i,t){var e;return new m(i.x,i.y,(e=i.z)!==null&&e!==void 0?e:0).applyMatrix4(qs(t).invert())}function Me(i,t,e){var n,r,s=ge(i,e),o=ge(t,e);return Xi.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)),I.normalizeAngle(Math.atan2(Xi.y,Xi.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 Sl(i){return Math.abs(Ks(i))}function Ll(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 Il(i){return i.length<3?0:Sl(i)}function Zs(i){return i.length<3?0:Ll(i)}var Qs=function(){function i(){this._boundingBoxNeedsUpdate=!1}return Object.defineProperty(i.prototype,"boundingBoxNeedUpdate",{get:function(){return this._boundingBoxNeedsUpdate},enumerable:!1,configurable:!0}),i}(),El=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)}}(),$n=function(i){El(t,i);function t(){return i!==null&&i.apply(this,arguments)||this}return t.prototype.translate=function(e){return this.transform(new Be().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}(Qs),Ml=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){Ml(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}($n),Tl=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)}}(),He=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.")},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},Ue=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))},ft=function(i){Tl(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(I.normalizeAngle(r)):I.normalizeAngle(r),a._endAngle=a._clockwise?a._mirrorAngle(I.normalizeAngle(s)):I.normalizeAngle(s)}else throw st.ILLEGAL_PARAMETERS;return a}return t.prototype.createByThreePoints=function(e,n,r){var s=function(X,M){return{x:(X.x+M.x)/2,y:(X.y+M.y)/2}},o=function(X,M){return(M.y-X.y)/(M.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,M,z,k){var R=(k-M)/(X-z),D=X*R+M;return{x:R,y:D}},f=h.y-g*h.x,y=l.y-d*l.x,_=p(g,f,d,y),b=Math.sqrt(Math.pow(e.x-_.x,2)+Math.pow(e.y-_.y,2)),S=function(X,M){return Math.atan2(X.y-M.y,X.x-M.x)},A=S(e,_),L=S(n,_),T=S(r,_),E=T>A&&T<L||A>T&&A<L||L>T&&L<A;this.center=_,this.radius=b,this._clockwise=!E,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 G(e),a=new G(n)):(s=Math.atan(r)*4,o=new G(n),a=new G(e));var h=new G().subVectors(a,o),l=h.length(),c=new G().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 G(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(I.normalizeAngle(e)):I.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:I.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?I.normalizeAngle(e-n):I.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?I.normalizeAngle(e-this.deltaAngle/2):I.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=He(s),a=o.next();!a.done;a=o.next()){var h=a.value,l=this._getInternalAngle(h);I.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 tt(new P(Math.min.apply(Math,Ue([],De(c),!1)),Math.min.apply(Math,Ue([],De(u),!1))),new P(Math.max.apply(Math,Ue([],De(c),!1)),Math.max.apply(Math,Ue([],De(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=I.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=He(a),l=h.next();!l.done;l=h.next()){var c=l.value,u=this._getInternalAngle(c);I.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(I.normalizeAngle(a)):I.normalizeAngle(a),l=this._getInternalAngle(h),c=this._getInternalAngle(this.startAngle),u=this._getInternalAngle(this.endAngle);if(I.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=He(u),y=f.next();!y.done;y=f.next()){var _=y.value,b=Math.atan2(_.y-this.center.y,_.x-this.center.x),S=this.clockwise?this._mirrorAngle(I.normalizeAngle(b)):I.normalizeAngle(b),A=this._getInternalAngle(S);(this.closed||I.isBetweenAngle(A,d,p,this.clockwise))&&g.push(_)}}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=He(g),y=f.next();!y.done;y=f.next()){var _=y.value,b=this.clockwise?this._mirrorAngle(I.normalizeAngle(_)):I.normalizeAngle(_),S=this._getInternalAngle(b);(this.closed||I.isBetweenAngle(S,d,p,this.clockwise))&&s.push(this.getPointAtAngle(b))}}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}(me),Wi=function(){return Wi=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},Wi.apply(this,arguments)},Cl=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.")},We=1e-6;function Js(i,t){if(Jl(i)){var e=kl(i,t);return e?[e]:[]}var n=no(i),r=n.numberOfVertices;if(r<2)return[];var s=eh(n,t);return s?[s]:[]}function Ol(i){return no(i)}function kl(i,t){var e,n,r=Yl(i);if(r.length===0)return null;var s=[];try{for(var o=Cl(r),a=o.next();!a.done;a=o.next()){var h=a.value,l=Nl(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=Xl(i),u=Fl(s,c,i.closed,t);if(u.length<2)return null;var g=new j;return u.forEach(function(d,p){g.addVertexAt(p,{x:d.x,y:d.y})}),g.closed=i.closed,g}function Yl(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 ft(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 Xl(i){for(var t=[],e=0;e<i.numberOfVertices;e++)t.push(i.getPointAt(e));return t}function Nl(i,t){if(i.kind==="line"){var e=zl(i.start,i.end,t);return e?Wi({kind:"line"},e):null}var n=Bl(i.arc,i.arc.startPoint,i.arc.endPoint,t);return n?{kind:"arc",arc:n}:null}function Bl(i,t,e,n){var r=Rl(i,t,e,n),s=i.radius+r;return F.isNonPositive(s)?null:new ft(i.center,s,i.startAngle,i.endAngle,i.clockwise)}function Rl(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 zl(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 Fl(i,t,e,n){var r,s,o,a=i.length;if(a===0)return[];for(var h=Vl(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:Ul(u)}:h[(c+1)%a];if(c>0&&h[c].filletPoints&&h[c].filletPoints.forEach(function(_){return l.push(_.clone())}),u.kind==="arc")for(var d=(o=h[c].nextSegmentStart)!==null&&o!==void 0?o:h[c].point,p=g.point,f=jl(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 ro(l)}function Vl(i,t,e,n){for(var r=i.length,s=[],o=0;o<r;o++)o===0?s.push(e?qr(i[r-1],i[0],t[0],n):{point:Dl(i[0])}):s.push(qr(i[o-1],i[o],t[o],n));return s}function jl(i,t,e,n){for(var r=i.nearestPoint(t),s=i.nearestPoint(e),o=$i(i,r),a=$i(i,s),h=Hl(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(Gl(i,g)))}return l}function $i(i,t){return Math.atan2(t.y-i.center.y,t.x-i.center.x)}function Gl(i,t){var e=I.normalizeAngle(t);return i.clockwise?qi(e):e}function qi(i){var t=i*180/Math.PI;return(360-t)%360*(Math.PI/180)}function Hl(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 Dl(i){return i.kind==="line"?i.start.clone():i.arc.startPoint.clone()}function Ul(i){return i.kind==="line"?i.end.clone():i.arc.endPoint.clone()}function qr(i,t,e,n){return i.kind==="line"&&t.kind==="line"?{point:Ki({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"?Kr(i,t.arc,e,n,!0):i.kind==="arc"&&t.kind==="line"?Kr(t,i.arc,e,n,!1):i.kind==="arc"&&t.kind==="arc"?Wl(i.arc,t.arc,e,n):{point:e.clone()}}function Wl(i,t,e,n){var r=io(i.endPoint,t.startPoint),s=Ql(i,t),o=s.filter(function(c){return ti(i,c)&&ti(t,c)});if(o.length>0)return{point:eo(o,r)};var a=i.endPoint.clone(),h=t.startPoint.clone(),l=to(e,Math.abs(n),a,h);return{point:a,filletPoints:l,nextSegmentStart:h}}function Kr(i,t,e,n,r){var s=io(r?i.end:i.start,r?t.startPoint:t.endPoint),o=Zl(i,t,s);if(ql(i,o)&&ti(t,o))return{point:o};var a=$l(i,e,n),h=r?t.startPoint.clone():t.endPoint.clone(),l=to(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 $l(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 ql(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 to(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=Kl(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 Kl(i,t){for(var e=t-i;e>Math.PI;)e-=B;for(;e<=-Math.PI;)e+=B;return e}function Zl(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 ti(t,p)});return eo(d.length>0?d:g,e)}function ti(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=$i(i,t),r=i.clockwise?qi(I.normalizeAngle(i.startAngle)):I.normalizeAngle(i.startAngle),s=i.clockwise?qi(I.normalizeAngle(i.endAngle)):I.normalizeAngle(i.endAngle);return I.isBetweenAngle(n,r,s,i.clockwise)}function Ql(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+We)return[];if(r<o-We)return[];var a=(i.radius*i.radius-t.radius*t.radius+r*r)/(2*r),h=i.radius*i.radius-a*a;if(h<-We)return[];var l=i.center.x+a*e/r,c=i.center.y+a*n/r;if(h<=We)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 eo(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 io(i,t){return new P((i.x+t.x)/2,(i.y+t.y)/2)}function Jl(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 no(i){var t=th(i.vertices.map(function(e){return new P(e.x,e.y)}),i.closed);return t.length===i.numberOfVertices?i:new j(t.map(function(e){return{x:e.x,y:e.y}}),i.closed)}function th(i,t){var e=ro(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 ro(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 eh(i,t){for(var e=[],n=0;n<i.numberOfVertices;n++)e.push(i.getPointAt(n));var r=ih(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(Ki(a,h))}}else{s.push(r[0].start);for(var n=1;n<r.length;n++)s.push(Ki(r[n-1],r[n]));s.push(r[r.length-1].end)}var l=new j;return s.forEach(function(c,u){l.addVertexAt(u,{x:c.x,y:c.y})}),l.closed=i.closed,l}function ih(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 Ki(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 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)}}(),Zi=function(){return Zi=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},Zi.apply(this,arguments)},j=function(i){nh(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 ft(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 Il(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 tt().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 Zi({},e)}),this._closed)},t.prototype.getPoints3d=function(e,n){var r=[],s=this.getPoints(e);return s.forEach(function(o){return r.push(new m().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 ft(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 Js(this,e)},t}(me);function so(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 m(i.x+r,i.y+s,i.z)}function rh(i,t,e){var n;if(i.length<2)return null;var r=Ol(new j(i.map(function(o){return{x:o.x,y:o.y}}),t)),s=Js(r,e);return(n=s[0])!==null&&n!==void 0?n:null}var ei=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},ce=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 sh(i,t,e,n){if(i.length<2||F.equalToZero(e))return null;var r=ao(i,n),s=r.points,o=r.tangents;if(s.length<2)return null;var a=o??oh(s,t),h=ah(s,a,e),l=t?hh(h):lh(h);if(l.length<2)return null;var c=new j;return l.forEach(function(u,g){c.addVertexAt(g,{x:u.x,y:u.y})}),c.closed=t,c}function oh(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 ah(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 lh(i){var t=ii(i);if(t.length<3)return t;for(;;){var e=oo(t,!1);if(!e||(t=ii(ce(ce(ce([],ei(t.slice(0,e.segmentA+1)),!1),[e.point],!1),ei(t.slice(e.segmentB+1)),!1)),t.length<2))break}return t}function hh(i){var t=ii(i);if(t.length<4)return t;for(;;){var e=oo(t,!0);if(!e||(t=ii(ce(ce(ce([],ei(t.slice(0,e.segmentA+1)),!1),[e.point],!1),ei(t.slice(e.segmentB+1)),!1)),t.length<3))break}return t}function oo(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(!ch(n,o,e,t)){var a=i[o],h=i[(o+1)%i.length],l=uh(r,s,a,h);if(l)return{point:l,segmentA:n,segmentB:o}}return null}function ch(i,t,e,n){return!!(t===i||t===i+1||n&&i===0&&t===e-1)}function uh(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=bi.equalPointTol;return u<-d||u>1+d||g<-d||g>1+d?null:new P(i.x+u*r,i.y+u*s)}function ao(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 ii(i){return ao(i).points}var dh=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)}}(),At=function(i){dh(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 tt},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)&&Ds.isPointInPolygon(u[I.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 tt().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}($n),gh=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)}}(),ph=function(i){gh(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}(Qs),fh=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)}}(),Re=function(i){fh(t,i);function t(){return i!==null&&i.apply(this,arguments)||this}return t}(ph),yh=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)}}(),St=function(i){yh(t,i);function t(e,n){var r=i.call(this)||this;return r._start=new m(e),r._end=new m(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 m((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(Gt).normalize();return new m(this._start).addScaledVector(r,e)}else{var r=this.delta(Gt).normalize();return new m(this._end).addScaledVector(r,e)}},t.prototype.extend=function(e,n){if(n===void 0&&(n=!1),n){var r=Gt.subVectors(this._start,this._end).normalize();this._start=new m(this._start).addScaledVector(r,e)}else{var r=this.delta(Gt).normalize();this._end=new m(this._end).addScaledVector(r,e)}return this._boundingBoxNeedsUpdate=!0,this},t.prototype.closestPointToPointParameter=function(e,n){Zr.subVectors(e,this._start),$e.subVectors(this.endPoint,this.startPoint);var r=$e.dot($e),s=$e.dot(Zr),o=s/r;return n&&(o=I.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=Gt.subVectors(e,this.startPoint),s=r.dot(n);return new m().copy(n).multiplyScalar(s).add(this.startPoint)},t.prototype.perpPoint=function(e){var n=this.direction,r=this.startPoint,s=Gt.subVectors(e,r),o=s.dot(n),a=Gt.copy(n).multiplyScalar(o);return new m().addVectors(r,a)},t.prototype.calculateBoundingBox=function(){var e=new m(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 m(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 m(n.x+a.x*e,n.y+a.y*e,n.z),new m(r.x+a.x*e,r.y+a.y*e,r.z))},t}(Re),Gt=new w,Zr=new w,$e=new w,mh=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)}}(),Ni=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.")},wt=function(i){mh(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 St(s,s.clone().add(g)),f=new St(o,o.clone().add(d)),y=new w,_=p.closestPointToPoint(f.startPoint,!0,y);return _?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 m(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=I.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:I.normalizeAngle(e),this._boundingBoxNeedsUpdate=!0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"deltaAngle",{get:function(){return I.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=I.normalizeAngle(u-g);p<0&&(p=0),p>d&&(p=d);var f=this.getPointAtAngle(g+p),y=f.distanceTo(n),_=this.startPoint.distanceTo(n),b=this.endPoint.distanceTo(n);return _<y&&_<=b?this.startPoint.clone():b<y&&b<_?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),_=this.getAngle(g.clone()),b=[_+y,_-y];try{for(var S=Ni(b),A=S.next();!A.done;A=S.next()){var L=A.value,T=I.normalizeAngle(L-this.startAngle);T>=0&&T<=this.deltaAngle&&s.push(this.getPointAtAngle(this.startAngle+T))}}catch(E){n={error:E}}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=Ni(p),y=f.next();!y.done;y=f.next()){var _=y.value,b=this.getAngle(_.clone()),S=I.normalizeAngle(b-this.startAngle);S>=0&&S<=this.deltaAngle&&s.push(new m(_.x,_.y,_.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 m(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)I.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=Ni(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(Qr.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(Qr.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 m(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(Hn);return new Dn(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}(Re),Qr=new w,_h=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)}}(),Te=function(i){_h(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 m(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=I.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:I.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 I.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 tt({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 m(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(b){var S=new P(b).sub(r),A=S.dot(d),L=S.dot(p);return I.normalizeAngle(Math.atan2(L/u,A/c))},y=n.determinant()<0?!this.clockwise:this.clockwise,_=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=_.center,this.majorAxisRadius=_.majorAxisRadius,this.minorAxisRadius=_.minorAxisRadius,this._startAngle=_._startAngle,this._endAngle=_._endAngle,this._clockwise=_._clockwise,this.rotation=_.rotation,this._boundingBoxNeedsUpdate=!0,this},t.prototype.getPointAtAngle=function(e){return this.getPoint(this.closed?e/B:I.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,_=p,b=0;b<32;b++){var S=(y+_)/2;c(y)*c(S)<=0?_=S:y=S}l.push((y+_)/2)}u=p,g=f}return l},t}(me),wh=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)}}(),xh=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.")},qn=function(i){wh(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 m(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=I.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:I.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:I.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)I.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=xh(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(_){e={error:_}}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 m(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 m(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 m(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,_=0;_<32;_++){var b=(f+y)/2;l(f)*l(b)<=0?y=b:f=b}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 _=new w(y).sub(r),b=_.dot(u),S=_.dot(d);return I.normalizeAngle(Math.atan2(S/c,b/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(Hn);return new Dn(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}(Re),bh=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){bh(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 tt(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}(me),vh=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(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},Ri=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))},Kn=function(i){vh(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=Ri([],Bi(e),!1),s=[],o=n*n,a=function(p,f){var y=p.x-f.x,_=p.y-f.y;return y*y+_*_<=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 tt;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 Rt?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,_=f*f+y*y;_<a&&(a=_,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 Bt?new Bt(e.endPoint,e.startPoint):e instanceof ft?new ft(e.center,e.radius,e.endAngle,e.startAngle,!e.clockwise):e instanceof Te?new Te(e.center,e.majorAxisRadius,e.minorAxisRadius,e.endAngle,e.startAngle,!e.clockwise,e.rotation):e instanceof Rt?t.reverseSplineEdge(e):e},t.reverseSplineEdge=function(e){var n=Ri([],Bi(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?Ri([],Bi(h),!1).reverse():void 0;return new Rt(n,a,l,e.degree,e.closed)},t}(me),Ph=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)}}(),zi=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}(),lo=function(i){Ph(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 zi,o._py=new zi,o._pz=new zi,o._points=e.map(function(a){return new m(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 m},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"endPoint",{get:function(){return this._points.length>0?this._points[this._points.length-1]:new m},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 m);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 m(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 m(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),_=Math.pow(d.distanceToSquared(u),p);y<1e-4&&(y=1),f<1e-4&&(f=y),_<1e-4&&(_=y),this._px.initNonuniformCatmullRom(c.x,g.x,d.x,u.x,f,y,_),this._py.initNonuniformCatmullRom(c.y,g.y,d.y,u.y,f,y,_),this._pz.initNonuniformCatmullRom(c.z,g.z,d.z,u.z,f,y,_)}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 m(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 m;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}(Re),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},re=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 Jr(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 dt=function(){function i(t,e,n,r){this._degree=t,this._knots=re([],ne(e),!1),this._controlPoints=n.map(function(s){return{x:s.x,y:s.y,z:s.z}}),this._weights=r?re([],ne(r),!1):new Array(n.length).fill(1)}return i.prototype.degree=function(){return this._degree},i.prototype.knots=function(){return re([],ne(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 re([],ne(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 xl(t,this._degree,this._knots,e,this._weights)},i.prototype.signedPlanarCurvatureAt=function(t){var e=this.evaluate(t);return bl(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=Ah(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,_=Math.max(Math.abs(this.signedPlanarCurvatureAt(p)),Math.abs(this.signedPlanarCurvatureAt(f)),Math.abs(this.signedPlanarCurvatureAt(y)));r*_>.85&&g.push(y)}if(g.length===0)break;if(c=Sh(c,g),c.length>e){c=c.slice(0,e);break}}var b=[],S=[];return c.forEach(function(A){var L=n.evaluate(A);b.push(new P(L.point[0],L.point[1]));var T=L.deriv1[0],E=L.deriv1[1],X=Math.hypot(T,E);S.push(X>1e-10?new P(T/X,E/X):new P(1,0))}),{points:b,tangents:S}},i.prototype.length=function(){var t=this._controlPoints.map(function(e){return[e.x,e.y,e.z]});return $s(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=Wn(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 lo(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=Jr(t,a),l=0;l<=e;l++){var c=s+(o-s)*l/e,u=this.point(c),g=Jr(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 Ah(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=re(re([],ne(i),!1),ne(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 Lh=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)}}(),ts=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},es=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))},Rt=function(i){Lh(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=dt.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=dt.createClosedCurve(h._fitPoints,h._degree,h._knotParameterization);else{var g=h.toNurbsPoints(h._fitPoints);h._nurbsCurve=dt.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=dt.createFitPointsForClosedCurve(this._fitPoints),n=this.toNurbsPoints(e);this._nurbsCurve=dt.byPoints(n,this._degree,this._knotParameterization)}else{var n=this.toNurbsPoints(this._fitPoints);this._nurbsCurve=dt.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=dt.createFitPointsForClosedCurve(this._controlPoints),n=this.toNurbsPoints(e);this._nurbsCurve=dt.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=dt.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 es([],ts(this._nurbsCurve.knots()),!1)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"weights",{get:function(){return es([],ts(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 m(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 m(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 m(r.x,r.y,r.z||0)},t.prototype.evaluateAt=function(e){var n=this._nurbsCurve.point(e);return new m(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 m(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 Zs(e)},enumerable:!1,configurable:!0}),t.prototype.transform=function(e){if(this._fitPoints&&this._knotParameterization)this._fitPoints=this._fitPoints.map(function(s){return new m(s).applyMatrix4(e)}),this._startTangent&&(this._startTangent=new m(this._startTangent).transformDirection(e)),this._endTangent&&(this._endTangent=new m(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 m(s).applyMatrix4(e)}),this._nurbsCurve=dt.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}(Re);class ze{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 Vt extends yt{constructor(t,e){t=t||{},Ne(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 ho=(i=>(i[i.Any=0]="Any",i[i.Uniform=1]="Uniform",i))(ho||{});const kt=class kt extends Vt{static isModelSapceName(t){return t.toLowerCase()==kt.MODEL_SPACE_NAME.toLowerCase()}static isPaperSapceName(t){return t.toLowerCase().startsWith(kt.PAPER_SPACE_NAME_PREFIX.toLowerCase())}constructor(){super(),this._origin=new m,this._layoutId="",this._entities=new Map,this._blockInsertUnits=0,this._explodability=1,this._blockScaling=1,this._bmpPreview=void 0}get isModelSapce(){return kt.isModelSapceName(this.name)}get isPaperSapce(){return kt.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),n.dxfTypeName==="INSERT"&&"syncAttributeDatabases"in n&&typeof n.syncAttributeDatabases=="function"&&n.syncAttributeDatabases()};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 ze(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}};kt.MODEL_SPACE_NAME="*Model_Space",kt.PAPER_SPACE_NAME_PREFIX="*Paper_Space";let J=kt;var co=(i=>(i[i.kInches=0]="kInches",i[i.kMillimeters=1]="kMillimeters",i[i.kPixels=2]="kPixels",i))(co||{}),uo=(i=>(i[i.k0degrees=0]="k0degrees",i[i.k90degrees=1]="k90degrees",i[i.k180degrees=2]="k180degrees",i[i.k270degrees=3]="k270degrees",i))(uo||{}),go=(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))(go||{}),po=(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))(po||{}),fo=(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))(fo||{}),yo=(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))(yo||{});const Ih={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 mo extends yt{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 tt,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 Ih[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 mo{constructor(){super(),this._tabOrder=-1,this._tabSelected=!1,this._blockTableRecordId="",this._layoutName="",this._limits=new tt,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 _o{constructor(){this.events={layoutCreated:new U,layoutRemoved:new U,layoutRenamed:new U,layoutSwitched:new U}}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 J;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||nl()}setCurrentLayoutInternal(t,e){return t?(this.events.layoutSwitched.dispatch({layout:t}),e.currentSpaceId=t.blockTableRecordId,!0):!1}}let Qe;function Eh(i){Qe=i}function wo(){return ni.instance}const ui=class ui{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||(Qe||(Qe=()=>new _o),this._layoutManager=Qe()),this._layoutManager}};ui.instance=new ui;let ni=ui;As(wo);var xo=(i=>(i.kForRead="kForRead",i.kForWrite="kForWrite",i))(xo||{});class Zn{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 Zn(this._values)}[Symbol.iterator](){return this._values[Symbol.iterator]()}}class bo{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 qt{static get instance(){return this._instance||(this._instance=new qt),this._instance}constructor(){this._blocks=new Map}createKey(t,e){let n=e.toString();return!n&&e.isByColor&&(n=`RGB:${e.red},${e.green},${e.blue}`),`${t}_${n}`}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=n.RGB??0,c=this.createKey(e.name,n);let u;if(this.has(c))u=this.get(c);else{const g=e.newIterator();for(const d of g)d.visibility&&(d.color.isByBlock?(is.copy(d.color),n.isForeground?d.color.setForeground():d.color.setRGBValue(l),this.addEntity(d,h,t),d.color.copy(is)):this.addEntity(d,h,t));u=t.group(h),u&&s&&J.name&&!J.name.startsWith("*U")&&this.set(c,u)}return u&&o&&(u.applyMatrix(o),a&&(a.x!=0||a.y!=0||a.z!=1)&&(o.setFromExtrusionDirection(a),u.applyMatrix(o))),u&&r&&r.length>0&&(u.bakeTransformToChildren(),r.forEach(g=>u.addChild(g))),u}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 is=new O;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={}));var Ai=function(){function i(t){t===void 0&&(t={});var e,n,r,s;this.database=t.database,this.foregroundOnDark=(e=t.foregroundOnDark)!==null&&e!==void 0?e:Ce,this.foregroundOnLight=(n=t.foregroundOnLight)!==null&&n!==void 0?n:Oe,this.backgroundIsDark=(r=t.backgroundIsDark)!==null&&r!==void 0?r:!0,this.fallbackRgb=(s=t.fallbackRgb)!==null&&s!==void 0?s:16777215}return i.prototype.resolveSubEntityTraitsRgb=function(t){var e,n,r,s=t.color;return s.isForeground?this.backgroundIsDark?this.foregroundOnDark:this.foregroundOnLight:s.isByLayer||s.isByBlock?(e=this.fallbackRgb)!==null&&e!==void 0?e:16777215:(r=(n=s.RGB)!==null&&n!==void 0?n:this.fallbackRgb)!==null&&r!==void 0?r:16777215},i.fromBackgroundColor=function(t,e){return t===void 0&&(t=vo),new i({database:e,foregroundOnDark:Ce,foregroundOnLight:Oe,backgroundIsDark:!Po(t),fallbackRgb:16777215})},i}(),vo=0,Ce=16777215,Oe=0,Mh=16777215,Th=128,Ch=new Ai({database:void 0,foregroundOnDark:Ce,foregroundOnLight:Oe,backgroundIsDark:!0,fallbackRgb:16777215});function Po(i){var t=i>>16&255,e=i>>8&255,n=i&255;return .299*t+.587*e+.114*n>Th}function Oh(i){var t=Ai.fromBackgroundColor(i);return t.backgroundIsDark?t.foregroundOnDark:t.foregroundOnLight}function kh(i){return i?Oe:Ce}function Yh(i,t){return Ai.fromBackgroundColor(t).resolveSubEntityTraitsRgb(i)}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 Ao=function(){function i(){this._number=-1,this._id="",this._groupId="",this._centerPoint=new m,this._height=0,this._width=0,this._viewCenter=new m,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 tt;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 tt;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 zt="Continuous",K="Standard",Yt="Standard",Xt="Standard",Xh="ANSI31",So="ANGLE",Ut="SOLID",Lo="USER",Io="LINEAR",q="ByLayer",xt="ByBlock",pe="*Active",Qi="mlightcad",Ji="ACAD",Nh=Object.freeze({x:0,y:0}),Bh=Object.freeze({x:0,y:0}),Rh=Object.freeze({x:1,y:1}),zh=Object.freeze({x:0,y:0,z:1}),Fh=Object.freeze({x:0,y:0,z:0});var H=(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))(H||{}),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 Eo(i){return i==4||i==5||i==6||i==7||i==12||i==13||i==14||i==15||i==16||i==17}function Mo(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"},Vh=Object.freeze(Object.values(v)),di=class di{constructor(){this.registry=new Map,this.cache=new Map,this.events={sysVarChanged:new U},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 O(exports.AcCmColorMethod.ByLayer)}),this.registerVar({name:v.CELTSCALE,type:"number",isDbVar:!0,defaultValue:-1}),this.registerVar({name:v.CELTYPE,type:"string",isDbVar:!0,defaultValue:q}),this.registerVar({name:v.CELWEIGHT,type:"number",isDbVar:!0,defaultValue:exports.AcGiLineWeight.ByLayer}),this.registerVar({name:v.CETRANSPARENCY,type:"transparency",isDbVar:!0,defaultValue:new W}),this.registerVar({name:v.CLAYER,type:"string",isDbVar:!0,defaultValue:"0"}),this.registerVar({name:v.CMLEADERSTYLE,type:"string",isDbVar:!0,defaultValue:Xt}),this.registerVar({name:v.CMLSCALE,type:"number",isDbVar:!0,defaultValue:1}),this.registerVar({name:v.CMLSTYLE,type:"string",isDbVar:!0,defaultValue:Yt}),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 O(exports.AcCmColorMethod.None)}),this.registerVar({name:v.HPCOLOR,type:"color",isDbVar:!0,defaultValue:new O(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:So}),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 W}),this.registerVar({name:v.INSUNITS,type:"number",isDbVar:!0,defaultValue:V.Millimeters}),this.registerVar({name:v.LUNITS,type:"number",isDbVar:!0,defaultValue:H.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 O(exports.AcCmColorMethod.ByColor);return t.setRGB(96,165,250),t})()}),this.registerVar({name:v.MODELBKCOLOR,type:"color",isDbVar:!1,defaultValue:(()=>{const t=new O(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 O(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 di),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 O(exports.AcCmColorMethod.None):O.fromString(e)}parseTransparency(t){if(t instanceof W)return t;if(typeof t=="number")return W.deserialize(t);if(!(typeof t!="string"&&!(t instanceof String)))return W.fromString(String(t))}hasValueChanged(t,e){return t instanceof O&&e instanceof O||t instanceof W&&e instanceof W?!t.equals(e):!Object.is(t,e)}normalizeName(t){return t.toLowerCase()}};di._instance=null;let pt=di;const To="Load Database",ns=3e4,jh=12e4,Gh=1024*1024;class it extends _s{constructor(t,e){super(t.stage),this.data=t,this.progress=e}async run(t){const e=Rn.getInstance().getEntry(To),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 Co{constructor(t={}){this.config={useWorker:t.useWorker??!0,...t}}async read(t,e,n,r,s,o){const a={name:To,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}};Rn.getInstance().collect(a),this.progress=r;const h={value:0},l=new ws;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=pt.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"),qt.instance.clear())}getParserWorkerTimeout(t,e){const n=e??this.config.timeout;if(n!=null)return n;const r=Math.ceil(t.byteLength/Gh),s=ns+r*1e3;return Math.min(jh,Math.max(ns,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 Oo extends Co{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 bo(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 ko{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 Yo{constructor(t){this.framework=new ko(t)}async execute(t,e){return this.framework.execute(t,e)}getStats(){return this.framework.getStats()}destroy(){this.framework.destroy()}}function Hh(i){return new Yo(i)}class Dh{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 Se=(i=>(i.DXF="dxf",i.DWG="dwg",i))(Se||{});class _t{constructor(){this.events={registered:new U,unregistered:new U},this._converters=new Map}static createInstance(){return _t._instance==null&&(_t._instance=new _t),this._instance}static get instance(){return _t._instance||(_t._instance=new _t),_t._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 Xo=(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))(Xo||{}),No=(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))(No||{}),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||{}),Ro=(i=>(i[i.None=0]="None",i[i.Leading=1]="Leading",i[i.Trailing=2]="Trailing",i[i.LeadingAndTrailing=3]="LeadingAndTrailing",i))(Ro||{}),zo=(i=>(i[i.Bottom=0]="Bottom",i[i.Middle=1]="Middle",i[i.Top=2]="Top",i))(zo||{});const gi=class gi extends Vt{constructor(t,e){t=t||{},Ne(t,gi.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}};gi.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 fe=gi;class Qn extends Vt{constructor(t,e){t=t||{},Ne(t,{color:new O,description:"",standardFlags:0,isHidden:!1,isInUse:!0,isOff:!1,isPlottable:!0,transparency:new W,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 Wt extends Vt{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,_=Math.max(s*2,2);let b=l;for(;b<c;)for(const S of g){if(b>=c)break;const A=S.elementLength;if(A===0){p.push(b),b=Math.min(b+_,c);continue}const L=Math.max(Math.abs(A)*f,y),T=Math.min(b+L,c);A>0&&T>b&&d.push([b,T]),b=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 Jn extends Vt{constructor(t){super(),this.name=t.name,this._textStyle=t,this._textStyle.font=this.getFileNameWithoutExtension(this._textStyle.font||this._textStyle.extendedFont||this.name)}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._textStyle.standardFlag&4)===4}set isVertical(t){t?this._textStyle.standardFlag|=4:this._textStyle.standardFlag&=-5}get isShapeFile(){return(this._textStyle.standardFlag&1)===1}set isShapeFile(t){t?this._textStyle.standardFlag|=1:this._textStyle.standardFlag&=-2}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.textStyle.textGenerationFlag),t.writeDouble(42,this.priorSize),t.writeString(3,this.fileName),t.writeString(4,this.bigFontFileName),this}}var x=(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))(x||{});function Uh(i){let t=0;for(const e of i)t|=1<<e-1;return t}function Wh(i){const t=[];for(const e of Object.values(x)){if(typeof e!="number")continue;const n=1<<e-1;i&n&&t.push(e)}return t}function $h(i,t){return i^1<<t-1}function qh(i,t){return(i&1<<t-1)!==0}function Kh(i,t){return i|1<<t-1}function Zh(i,t){return i&~(1<<t-1)}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:[]},Fo={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:[]},sr=class sr extends yt{constructor(){super(...arguments),this._visibility=!0,this._transparency=new W,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(){return this.resolveStandardColor()}resolveStandardColor(){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 lineType(){var t;return this._lineType==null&&(this._lineType=((t=this.database)==null?void 0:t.celtype)??q),this._lineType}set lineType(t){t?t.toUpperCase()==="BYLAYER"?this._lineType=q:t.toUpperCase()==="BYBLOCK"?this._lineType=xt:this._lineType=t:this._lineType=q}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 O,this.database.cecolor&&this._color.copy(this.database.cecolor)),this._color}setEntityColor(t){this._color==null&&(this._color=new O),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 O,this.database.cecolor&&this._color.copy(this.database.cecolor)),this._lineType==null&&(this._lineType=this.database.celtype??q),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.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),t.context.database=this.database;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==q){const t=this.database.tables.layerTable.getAt(this.layer);if(t&&t.linetype)return{type:"ByLayer",name:t.linetype}}else return this.lineType==xt?{type:"ByBlock",name:zt}:{type:"UserSpecified",name:this.lineType};return{type:"UserSpecified",name:zt}}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)}};sr.typeName="Entity";let $=sr;function rs(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 ct(i,t){if(t.length===0)return;let e=new m(t[0].x,t[0].y,t[0].z||0),n=rs(i,e);for(let r=1;r<t.length;r++){const s=t[r],o=new m(s.x,s.y,s.z||0),a=rs(i,o);a<n&&(e=o,n=a)}return e}function _e(i,t,e,n,r){const s=new m(i.x,i.y,i.z||0),o=new m(t.x,t.y,t.z||0),a=new St(s,o);switch(e){case x.EndPoint:r.push(s,o);break;case x.MidPoint:r.push(a.midPoint);break;case x.Nearest:r.push(a.nearestPoint(n));break;case x.Perpendicular:r.push(a.perpPoint(n));break}}function ri(i,t,e,n,r,s,o){if(e){const a=new ft(i,t,e);switch(r){case x.EndPoint:o.push(new m(a.startPoint.x,a.startPoint.y,n),new m(a.endPoint.x,a.endPoint.y,n));break;case x.MidPoint:o.push(new m(a.midPoint.x,a.midPoint.y,n));break;case x.Nearest:{const h=a.nearestPoint({x:s.x,y:s.y});o.push(new m(h.x,h.y,n));break}case x.Perpendicular:{a.perpendicularPoints({x:s.x,y:s.y}).forEach(l=>o.push(new m(l.x,l.y,n)));break}case x.Tangent:{a.tangentPoints({x:s.x,y:s.y}).forEach(l=>o.push(new m(l.x,l.y,n)));break}}return}_e(new m(i.x,i.y,n),new m(t.x,t.y,n),r,s,o)}function tr(i,t,e,n,r){if(i.length!==0)switch(e){case x.EndPoint:i.forEach(s=>r.push(new m(s.x,s.y,s.z||0)));break;case x.MidPoint:case x.Nearest:case x.Perpendicular:{const s=i.length,o=[];for(let a=0;a<s;a++){const h=[];_e(i[a],i[(a+1)%i.length],e,n,h),o.push(...h)}if(e===x.MidPoint)r.push(...o);else{const a=ct(n,o);a&&r.push(a)}break}}}var Le=(i=>(i[i.UserDefined=0]="UserDefined",i[i.Predefined=1]="Predefined",i[i.Custom=2]="Custom",i))(Le||{}),Vo=(i=>(i[i.Normal=0]="Normal",i[i.Outer=1]="Outer",i[i.Ignore=2]="Ignore",i))(Vo||{}),jo=(i=>(i[i.HatchObject=0]="HatchObject",i[i.GradientObject=1]="GradientObject",i))(jo||{}),Go=(i=>(i[i.PreDefinedGradient=0]="PreDefinedGradient",i[i.UserDefinedGradient=1]="UserDefinedGradient",i))(Go||{});const or=class or extends ${constructor(){super(),this._gradientAngle=0,this._elevation=0,this._geo=new At,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()===Ut}set isSolidFill(t){this._isSolidFill=t}get color(){if(this.hasExplicitColor())return this.getEntityColor();const t=this.database,e=pt.instance().getVar(v.HPCOLOR,t);return e instanceof O&&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()===Ut,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()===""?Io: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=pt.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=pt.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=pt.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(pt.instance().getVar(v.HPSCALE,t))}getEffectiveAssociative(){if(this._associativeSet)return this._associative;const t=this.database,e=pt.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 O)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 O.fromString(t)}parseHpTransparency(t){if(t instanceof W)return t.clone();if(!this.shouldUseSysVarOverride(t))return;const e=t.trim();if(/^bylayer$/i.test(e)||/^byblock$/i.test(e))return W.fromString(e);const n=Number(e);if(Number.isInteger(n)&&n>=0&&n<=90){const r=new W;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===Ut){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=Fo.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 At;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:Le[0],value:0},{label:Le[1],value:1},{label:Le[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 j){const l=a,c=l.numberOfVertices;if(c===0)return;switch(t){case x.EndPoint:for(let u=0;u<c;u++){const g=l.getPointAt(u);r.push(new m(g.x,g.y,s))}break;case x.MidPoint:case x.Nearest:case x.Perpendicular:case x.Tangent:{const u=a.closed?c:c-1;for(let g=0;g<u;g++){const d=[];ri(l.getPointAt(g),l.getPointAt((g+1)%c),(h=l.vertices[g])==null?void 0:h.bulge,s,t,e,d),t===x.MidPoint?r.push(...d):o.push(...d)}break}}return}a.curves.forEach(l=>{if(l instanceof Bt){const c=[];ri(l.startPoint,l.endPoint,void 0,s,t,e,c),t===x.MidPoint?r.push(...c):t===x.Nearest||t===x.Perpendicular||t===x.Tangent?o.push(...c):r.push(...c)}else if(l instanceof ft)switch(t){case x.EndPoint:r.push(new m(l.startPoint.x,l.startPoint.y,s),new m(l.endPoint.x,l.endPoint.y,s));break;case x.MidPoint:r.push(new m(l.midPoint.x,l.midPoint.y,s));break;case x.Nearest:{const c=l.nearestPoint({x:e.x,y:e.y});o.push(new m(c.x,c.y,s));break}case x.Perpendicular:{l.perpendicularPoints({x:e.x,y:e.y}).forEach(u=>o.push(new m(u.x,u.y,s)));break}case x.Tangent:{l.tangentPoints({x:e.x,y:e.y}).forEach(u=>o.push(new m(u.x,u.y,s)));break}}else if(l instanceof Te)switch(t){case x.EndPoint:r.push(new m(l.startPoint.x,l.startPoint.y,s),new m(l.endPoint.x,l.endPoint.y,s));break;case x.MidPoint:{const c=l.getPoint(.5);r.push(new m(c.x,c.y,s));break}case x.Nearest:{const c=l.nearestPoint({x:e.x,y:e.y});o.push(new m(c.x,c.y,s));break}case x.Perpendicular:{l.perpendicularPoints({x:e.x,y:e.y}).forEach(u=>o.push(new m(u.x,u.y,s)));break}case x.Tangent:{l.tangentPoints({x:e.x,y:e.y}).forEach(u=>o.push(new m(u.x,u.y,s)));break}}})}),(t===x.Nearest||t===x.Perpendicular||t===x.Tangent)&&o.length>0){const a=ct(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 Be(e[0],e[4],e[12],e[1],e[5],e[13],0,0,1);this._geo.transform(n),this._elevation=new m(0,0,this._elevation).applyMatrix4(t).z;const r=new m(1,0,0).applyMatrix4(t),s=new m().applyMatrix4(t),o=new m(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?Ut: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 j){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 Kn){const l=h?1:0;t.writeInt16(92,l),t.writeInt16(93,o.numberOfEdges);for(const c of o.curves){if(c instanceof Bt){t.writeInt16(72,1),t.writePoint2d(10,c.startPoint),t.writePoint2d(11,c.endPoint);continue}if(c instanceof ft){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 Te){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 Rt){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,_)=>{t.writePoint2d(10,y),f&&t.writeDouble(42,d[_]??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}};or.typeName="Hatch";let si=or;class Ho{constructor(t){this.db=t}createDefaultLayer(){const t=new O;return t.colorIndex=7,this.db.tables.layerTable.add(new Qn({name:"0",standardFlags:0,linetype:"Continuous",lineWeight:0,isOff:!1,color:t,isPlottable:!0}))}createDefaultLineType(){this.db.tables.linetypeTable.add(new Wt({name:"ByBlock",standardFlag:0,description:"",totalPatternLength:0})),this.db.tables.linetypeTable.add(new Wt({name:"ByLayer",standardFlag:0,description:"",totalPatternLength:0})),this.db.tables.linetypeTable.add(new Wt({name:"Continuous",standardFlag:0,description:"Solid line",totalPatternLength:0}))}createDefaultTextStyle(){this.db.tables.textStyleTable.add(new Jn({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 fe({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 si;e.patternName=Ut;const n=new Kn;n.add(new Bt({x:0,y:0},{x:-1,y:.125})),n.add(new Bt({x:-1,y:.125},{x:-1,y:-.125})),n.add(new Bt({x:-1,y:-.125},{x:0,y:0})),e.add(n);const r=new J;r.name="_CAXARROW",r.appendEntity(e),this.db.tables.blockTable.add(r)}}}const tn=Math.PI/200;class Do{constructor(t){this.database=t}formatLength(t,e){const n=this.createContext(e);return te(t,n)}formatPoint2d(t,e){const n=this.createContext(e);return`${te(t.x,n)}, ${te(t.y,n)}`}formatPoint3d(t,e){const n=this.createContext(e);return`${te(t.x,n)}, ${te(t.y,n)}, ${te(t.z,n)}`}formatAngle(t,e){const n=this.createContext(e),s=(e==null?void 0:e.applyAngbaseAngdir)??!0?tc(t,this.database.angbase,this.database.angdir):I.normalizeAngle(t);return Jh(s,n)}createContext(t){return{lunits:this.database.lunits,luprec:ke(this.database.luprec),insunits:this.database.insunits,unitmode:this.database.unitmode,measurement:this.database.measurement,aunits:this.database.aunits,auprec:ke(this.database.auprec),showUnits:(t==null?void 0:t.showUnits)??!1,showApproximate:(t==null?void 0:t.showApproximate)??!1}}}function te(i,t){let e;switch(t.lunits){case H.Scientific:e=Fi(hc(i,t.luprec),t);break;case H.Engineering:e=cc(i,t);break;case H.Architectural:e=uc(i,t);break;case H.Fractional:e=Fi(dc(i,t),t);break;case H.WindowsDesktop:case H.Decimal:default:e=Fi(xe(i,t.luprec),t)}return Uo(e,ec(i,t),t)}function Jh(i,t){let e;switch(t.aunits){case rt.DegreesMinutesSeconds:e=qo(i,t);break;case rt.Gradians:e=fc(i,t);break;case rt.Radians:e=pc(i,t);break;case rt.SurveyorsUnits:e=yc(i,t);break;case rt.DecimalDegrees:default:e=gc(i,t)}return Uo(e,ic(i,t),t)}function tc(i,t,e){let n=i-t;return e===1&&(n=-n),I.normalizeAngle(n)}function er(i){const t=i.showUnits?'"':"";return i.unitmode===1?{feetInchSeparator:"",fractionSeparator:"-",inchSuffix:t}:{feetInchSeparator:"-",fractionSeparator:" ",inchSuffix:t}}function ke(i,t=0,e=8){return Number.isFinite(i)?Math.max(t,Math.min(e,Math.round(i))):t}function we(i){return Object.is(i,-0)?0:i}function Uo(i,t,e){return!e.showApproximate||!t?i:`~ ${i}`}function ec(i,t){if(!Number.isFinite(i))return!1;const e=rc(i,t);return ir(i,e)}function ic(i,t){if(!Number.isFinite(i))return!1;if(t.aunits===rt.SurveyorsUnits)return nc(i,t.auprec);const e=sc(i,t);return ir(i,e)}function nc(i,t){const n=((90-I.radToDeg(i))%360+360)%360,r=Ko(n),s=Math.min(Math.abs(n-r.base),Math.abs(r.base+90-n)),o=I.degToRad(s),a=Wo(o,t);return ir(o,a)}function rc(i,t){const e=we(i);switch(t.lunits){case H.Scientific:return oc(e,t.luprec);case H.Engineering:case H.Architectural:case H.Fractional:return ac(e,t);case H.WindowsDesktop:case H.Decimal:default:return ue(e,t.luprec)}}function sc(i,t){const e=we(i);switch(t.aunits){case rt.DegreesMinutesSeconds:return Wo(e,t.auprec);case rt.Gradians:return ue(e/tn,t.auprec)*tn;case rt.Radians:return ue(e,t.auprec);case rt.DecimalDegrees:default:return I.degToRad(ue(I.radToDeg(e),t.auprec))}}function ue(i,t){if(!Number.isFinite(i))return 0;const e=10**t;return Math.round(we(i)*e)/e}function oc(i,t){if(!Number.isFinite(i))return 0;const e=we(i);if(e===0)return 0;const n=e.toExponential(t);return Number(n)}function ac(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===H.Architectural||t.lunits===H.Fractional){const o=1<<ke(t.luprec,0,8),a=lc(s,o);return e*(r*12+a)}return e*(r*12+ue(s,t.luprec))}function lc(i,t){const e=Math.floor(i),n=i-e,r=Math.round(n*t);return r>=t?e+1:e+r/t}function Wo(i,t){const e=I.radToDeg(i),n=e<0?-1:1,r=Math.abs(e),s=Math.floor(r),o=(r-s)*60,a=Math.floor(o),h=ue((o-a)*60,t),l=s+a/60+h/3600;return I.degToRad(n*l)}function ir(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 xe(i,t){if(!Number.isFinite(i))return"0";const e=we(i);if(Number.isInteger(e)&&t===0)return String(e);const r=e.toFixed(t).replace(/\.?0+$/,"");return r===""||r==="-"?"0":r}function hc(i,t){if(!Number.isFinite(i))return"0";const e=we(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 cc(i,t){if(!Number.isFinite(i))return"0";const e=er(t),n=i<0?"-":"",r=Math.abs(i),s=Math.floor(r/12),o=r-s*12,a=xe(o,t.luprec);return s===0?`${n}${a}${e.inchSuffix}`:`${n}${s}'${e.feetInchSeparator}${a}${e.inchSuffix}`}function uc(i,t){if(!Number.isFinite(i))return"0";const e=er(t),n=i<0?"-":"",r=Math.abs(i),s=Math.floor(r/12),o=r-s*12,a=1<<ke(t.luprec,0,8),h=$o(o,a,e.fractionSeparator);return s===0?`${n}${h}${e.inchSuffix}`:`${n}${s}'${e.feetInchSeparator}${h}${e.inchSuffix}`}function dc(i,t){if(!Number.isFinite(i))return"0";const e=er(t),n=i<0?"-":"",r=Math.abs(i),s=1<<ke(t.luprec,0,8);return`${n}${$o(r,s,e.fractionSeparator)}`}function $o(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=xc(s,t);s/=o;const a=t/o,h=`${s}/${a}`;return n===0?h:`${n}${e}${h}`}function gc(i,t){const e=I.radToDeg(i);return`${xe(e,t.auprec)}${t.showUnits?"°":""}`}function pc(i,t){return`${xe(i,t.auprec)}${t.showUnits?" rad":""}`}function fc(i,t){const e=i/tn;return`${xe(e,t.auprec)}${t.showUnits?"g":""}`}function qo(i,t){const e=I.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=xe(h,t.auprec),c=t.showUnits?'"':"";return`${n}${s}d${a}'${l}${c}`}function yc(i,t){const n=((90-I.radToDeg(i))%360+360)%360,r=Ko(n),s=Math.min(Math.abs(n-r.base),Math.abs(r.base+90-n)),a=qo(I.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 Fi(i,t){if(!t.showUnits||t.lunits===H.Engineering||t.lunits===H.Architectural)return i;const e=mc(t.insunits,t.measurement);return e?`${i}${e}`:i}function mc(i,t){return i===V.Undefined?t===0?'"':" mm":Eo(i)?_c(i):Mo(i)?wc(i):""}function _c(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 wc(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 xc(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 Ht extends yt{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 ze(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 Si=192,Ye=193,Li=194,Ii=195,Zo=200;function Je(i){if(i.isByBlock)return Ye<<24>>0;if(i.isByLayer)return Si<<24>>0;const t=i.colorIndex;if(t!=null&&t>0&&t<256)return(Ii<<24|t&255)>>0;const e=i.RGB;return e!=null?(Li<<24|e&16777215)>>0:Ye<<24>>0}function bc(i){const t=new O(exports.AcCmColorMethod.ByBlock);switch(i>>>24&255){case Si:t.setByLayer();break;case Ye:case Zo:t.setByBlock();break;case Ii:t.colorIndex=i&255;break;case Li:t.setRGBValue(i&16777215);break;default:i===256?t.setByLayer():i===0?t.setByBlock():i>0&&i<256&&(t.colorIndex=i);break}return t}class Qo extends yt{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 O(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 O(exports.AcCmColorMethod.ByLayer),this._textHeight=4,this._enableFrameText=!1,this._textAlignAlwaysLeft=!1,this._alignSpace=0,this._blockColor=new O(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,Je(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,Je(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,Je(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 Jo extends yt{constructor(){super(),this._styleName="STANDARD",this._flags=0,this._description="",this._fillColor=new O,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 It extends yt{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);e&&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(t=!1){return new ze(t?this._recordsById:this._recordsByName)}normalizeName(t){return t}get dxfEntryCount(){return this.numEntries}dxfOutFields(t){return super.dxfOutFields(t),t.writeSubclassMarker("AcDbSymbolTable"),t.writeInt16(70,this.dxfEntryCount),this}}class ta extends It{constructor(t){super(t)}get modelSpace(){let t=this.getAt(J.MODEL_SPACE_NAME);return t||(t=new J,t.name=J.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(J.isModelSapceName(t))e=J.MODEL_SPACE_NAME;else if(J.isPaperSapceName(t)){const n=J.PAPER_SPACE_NAME_PREFIX,r=t.substring(n.length);e=n+r}return e}}class ea extends It{constructor(t){super(t)}}class ia extends It{constructor(t){super(t)}add(t){super.add(t),this.database.events.layerAppended.dispatch({database:this.database,layer:t})}}class na extends It{constructor(t){super(t)}}class ra extends It{constructor(t){super(t)}get dxfEntryCount(){return this._recordsById.size}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 shapeFiles(){return this.newIterator(!0).toArray().filter(t=>t.isShapeFile)}get fonts(){const t=new Set,e=n=>{if(n){const r=n.lastIndexOf(".");if(r>=0){const s=n.substring(0,r).toLowerCase();t.add(s)}else t.add(n.toLowerCase())}};for(const n of this.newIterator())e(n.fileName),e(n.bigFontFileName);return Array.from(t)}}class sa extends It{constructor(t){super(t)}}const vc=()=>({center:new P,viewDirectionFromTarget:new m(0,0,1),viewTarget:new m(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 m(0,0,0),ucsXAxis:new m(1,0,0),ucsYAxis:new m(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 nr extends Vt{constructor(){super(),this._gsView=vc(),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}}const ss=2,Pc=.45,Ac=1e5;function Sc(i){var n;const t=i,e=t.aspectRatio??((n=t.gsView)==null?void 0:n.aspectRatio);return Number.isFinite(e)?e:void 0}function Lc(i,t){if(Number.isFinite(t)&&t>0)return t;const e=Sc(i);return e!=null&&e>0?e:1}function Ic(i,t){const e=Math.max(i.min.x,t.min.x),n=Math.max(i.min.y,t.min.y),r=Math.min(i.max.x,t.max.x),s=Math.min(i.max.y,t.max.y);return e>=r||n>=s?0:(r-e)*(s-n)}function os(i){return{x:(i.min.x+i.max.x)/2,y:(i.min.y+i.max.y)/2}}function Ec(i){if(!i||i.isEmpty())return!1;const t=i.max.x-i.min.x,e=i.max.y-i.min.y;return t>0&&e>0}class $t extends nr{static isActiveVportName(t){return t.toLowerCase()===pe.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}modelViewBox(t){const e=this.centerPoint,n=this.viewHeight;if(!Number.isFinite(e.x)||!Number.isFinite(e.y)||!Number.isFinite(n)||n<=0)return;const r=Lc(this,t),s=n*r,o=n/2,a=s/2;return new tt().expandByPoint({x:e.x-a,y:e.y-o}).expandByPoint({x:e.x+a,y:e.y+o})}static isModelViewBoxUsable(t,e){if(t.isEmpty()||e.isEmpty())return!1;const n=t.max.x-t.min.x,r=t.max.y-t.min.y,s=e.max.x-e.min.x,o=e.max.y-e.min.y;if(n<=0||r<=0||s<=0||o<=0||n>s*ss||r>o*ss)return!1;const a=Math.max(s,o)*Pc,h=os(t),l=os(e);if(Math.hypot(h.x-l.x,h.y-l.y)>a)return!1;const u=n*r,g=Ic(t,e);return!(g<=0||g/u<.25)}resolveModelViewBox(t,e){const n=this.modelViewBox(t);if(!(!n||!$t.isModelViewBoxStructurallyValid(n))){if(Ec(e)){if(!$t.isModelViewBoxUsable(n,e))return}else if(!$t.isModelViewBoxPlausibleWithoutExtents(n))return;return n}}static isModelViewBoxStructurallyValid(t){if(t.isEmpty())return!1;const e=t.max.x-t.min.x,n=t.max.y-t.min.y;return Number.isFinite(e)&&Number.isFinite(n)&&e>0&&n>0}static isModelViewBoxPlausibleWithoutExtents(t){const e=t.max.x-t.min.x,n=t.max.y-t.min.y;return Math.max(e,n)<=Ac}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 oa extends It{constructor(t){super(t)}normalizeName(t){return $t.isActiveVportName(t)?pe:t.toUpperCase()}getActiveVport(){return this.getAt(pe)}getActiveVportBox(t,e){const n=this.getActiveVport();return n==null?void 0:n.resolveModelViewBox(t,e)}}class aa extends It{constructor(t){super(t)}}class en extends Vt{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 la extends Ht{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 Mc extends yt{constructor(){super({objectId:"0"}),this._drawNoPlotLayers=!0,this.events={dictObjetSet:new U,dictObjectErased:new U,entityAppended:new U,entityModified:new U,entityErased:new U,layerAppended:new U,layerModified:new U,layerErased:new U,openProgress:new U},this._version=new gt("AC1014"),this._angbase=0,this._angdir=0,this._aunits=rt.DecimalDegrees,this._auprec=0,this._lunits=H.Decimal,this._luprec=4,this._celtscale=1,this._cecolor=new O,this._celtype=q,this._celweight=exports.AcGiLineWeight.ByLayer,this._cetransparency=new W,this._clayer="0",this._cmlstyle=Yt,this._cmlscale=1,this._cmleaderstyle=Xt,this._hpbackgroundcolor=new O(exports.AcCmColorMethod.None),this._hpcolor=this._cecolor.clone(),this._hplayer=".",this._hptransparency=new W,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 aa(this),blockTable:new ta(this),dimStyleTable:new ea(this),linetypeTable:new na(this),textStyleTable:new ra(this),viewTable:new sa(this),layerTable:new ia(this),viewportTable:new oa(this)},this._objects={dictionary:new Ht(this),imageDefinition:new Ht(this),layout:new la(this),mleaderStyle:new Ht(this),mlineStyle:new Ht(this),xrecord:new Ht(this)}}get tables(){return this._tables}get objects(){return this._objects}get formatter(){return this._formatter??(this._formatter=new Do(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??H.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 gt(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??q);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 W,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??Yt,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??Xt,e=>{this._cmleaderstyle=e})}get hpbackgroundcolor(){return this._hpbackgroundcolor}set hpbackgroundcolor(t){this.updateSysVar(v.HPBACKGROUNDCOLOR,this._hpbackgroundcolor,t??new O(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 W,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=Se.DXF){const r=_t.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,Se.DWG):g==="dxf"?await this.read(l.buffer,e,Se.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 gt?n:new gt(n),o=new vs({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 Oo(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 Ho(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||Yt);return}if(t.dxfTypeName==="MULTILEADER"){this.ensureMLeaderStyle(this._cmleaderstyle||Xt);return}if(t.dxfTypeName==="HATCH"){const n=t;(e=n.applyPatternDefaultsFromSysVars)==null||e.call(n,this)}}ensureTextStyleDefaults(){this.hasDefaultTextStyle()||this.tables.textStyleTable.add(new Jn({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 O;e.colorIndex=7,this.tables.layerTable.add(new Qn({name:"0",standardFlags:0,linetype:zt,lineWeight:0,isOff:!1,color:e,isPlottable:!0}))}if(this.tables.linetypeTable.has(xt)||this.tables.linetypeTable.add(new Wt({name:xt,standardFlag:0,description:"",totalPatternLength:0})),this.tables.linetypeTable.has(q)||this.tables.linetypeTable.add(new Wt({name:q,standardFlag:0,description:"",totalPatternLength:0})),this.tables.linetypeTable.has(zt)||this.tables.linetypeTable.add(new Wt({name:zt,standardFlag:0,description:"Solid line",totalPatternLength:0})),this.ensureTextStyleDefaults(),this.tables.dimStyleTable.has(K)||this.tables.dimStyleTable.add(new fe({name:K,dimtxsty:K})),!this.tables.viewportTable.has(pe)){const e=new $t;e.name=pe,this.tables.viewportTable.add(e)}this.ensureMLineStyle(this._cmlstyle||Yt),this.ensureMLeaderStyle(this._cmleaderstyle||Xt);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(Ji)||this.tables.appIdTable.add(new en(Ji)),this.tables.appIdTable.has(Qi)||this.tables.appIdTable.add(new en(Qi))}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 Jo;r.styleName=n,r.elements=[{offset:.5,color:new O().setByLayer(),lineType:q},{offset:-.5,color:new O().setByLayer(),lineType:q}],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 Qo;r.unknown1=2,r.maxLeaderSegmentsPoints=2,r.leaderLineColor=new O().setByBlock(),r.textColor=new O().setByBlock(),r.blockColor=new O().setByBlock(),r.alignSpace=4,r.breakSize=3.75,r.enableBlockRotation=!0,r.unknown2=!1;const s=this.tables.linetypeTable.getAt(xt);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(!0),"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 J){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 O&&e instanceof O||t instanceof W&&e instanceof W?!t.equals(e):t instanceof gt&&e instanceof gt?t.value!==e.value:!Object.is(t,e)}normalizeLinetypeName(t){const e=t.trim();return e.toUpperCase()==="BYLAYER"?q:e.toUpperCase()==="BYBLOCK"?xt:e}triggerSysVarChangedEvent(t,e,n){const r=pt.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 Tc extends nr{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 ar=class ar extends ${getOffsetSideAtPoint(t){return 1}};ar.typeName="Curve";let Z=ar;const oe=class oe extends Z{get dxfTypeName(){return"LWPOLYLINE"}constructor(){super(),this._elevation=0,this._geo=new j}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 m(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 x.EndPoint:for(let l=0;l<a;l++){const c=s.getPointAt(l);r.push(new m(c.x,c.y,o))}break;case x.MidPoint:case x.Nearest:case x.Perpendicular:case x.Tangent:{const l=this.closed?a:a-1,c=[];for(let u=0;u<l;u++){const g=[];ri(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===x.MidPoint)r.push(...c);else{const u=ct(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 m(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=Cc(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 m().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:Xc(l,c,p)})}}return s&&r.length>=2?r:null}sampleSegment(t,e){if(t.bulge&&Math.abs(t.bulge)>at){const r=new ft(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 oe;return t.forEach((r,s)=>n.addVertexAt(s,r)),n.closed=e,n}static fromGePolyline(t){const e=new oe;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:oe.fromGePolyline(e[0])}};oe.typeName="Polyline";let lt=oe;function Ei(i,t,e){const n=rh(i,t,e);return n?lt.fromGePolyline(n):null}const at=1e-6,as=4;function Cc(i,t){if(i.length<2)return null;const e=kc(i,t);if(e.length<2)return null;const{left:n,right:r}=Oc(e,t);if(n.length<2||r.length<2)return null;const s=new At;if(t){if(!Vi(n)||!Vi(r))return null;const a=Math.abs(nn(n)),h=Math.abs(nn(r)),[l,c]=a>=h?[n,r]:[r,n];return s.add(new j(l,!0)),s.add(new j(c,!0)),s}const o=[...n,...r.reverse()];return Vi(o)?(s.add(new j(o,!0)),s):null}function Oc(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=Yc(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 kc(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 Yc(i,t,e){const n=i.length,r=i[t],s=i[(t-1+n)%n],o=i[(t+1)%n];let a=ls(r.x-s.x,r.y-s.y),h=ls(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 qe(h);if(h==null)return qe(a);const l=qe(a),c=qe(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?as:Math.min(1/f,as);return{x:p.x*y,y:p.y*y}}function ls(i,t){const e=Math.hypot(i,t);return e<=at?null:{x:i/e,y:t/e}}function qe(i){return{x:-i.y,y:i.x}}function nn(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 Vi(i){return i.length>=3&&Math.abs(nn(i))>at}function Xc(i,t,e){return i+(t-i)*e}var ha=(i=>(i[i.SimplePoly=0]="SimplePoly",i[i.FitCurvePoly=1]="FitCurvePoly",i[i.QuadSplinePoly=2]="QuadSplinePoly",i[i.CubicSplinePoly=3]="CubicSplinePoly",i))(ha||{});const lr=class lr extends Z{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 j(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 m(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 x.EndPoint:for(let l=0;l<a;l++){const c=s.getPointAt(l);r.push(new m(c.x,c.y,o))}break;case x.MidPoint:case x.Nearest:case x.Perpendicular:case x.Tangent:{const l=this.closed?a:a-1,c=[];for(let u=0;u<l;u++){const g=[];ri(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===x.MidPoint)r.push(...c);else{const u=ct(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 m(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 m().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)}};lr.typeName="2dPolyline";let rn=lr;var ca=(i=>(i[i.Vertex=0]="Vertex",i[i.CurveFitVertex=1]="CurveFitVertex",i[i.SplineFitVertex=8]="SplineFitVertex",i[i.SplineCtlVertex=9]="SplineCtlVertex",i))(ca||{});const hr=class hr extends ${get dxfTypeName(){return"VERTEX"}constructor(){super(),this._position=new m,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===x.EndPoint||t===x.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}};hr.typeName="2dVertex";let sn=hr;var ua=(i=>(i[i.SimplePoly=0]="SimplePoly",i[i.QuadSplinePoly=1]="QuadSplinePoly",i[i.CubicSplinePoly=2]="CubicSplinePoly",i))(ua||{});const pi=class pi extends Z{get dxfTypeName(){return"POLYLINE"}constructor(t,e,n=!1){super(),this._polyType=t,this._geo=new j(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 m(e.x,e.y,e.z||0)}get geometricExtents(){const t=this._geo.vertices.map(e=>new m(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 x.EndPoint:r.push(...s);break;case x.MidPoint:case x.Nearest:case x.Perpendicular:{const o=[];for(let a=0;a<s.length-1;a++){const h=[];_e(s[a],s[a+1],t,e,h),o.push(...h)}if(t===x.MidPoint)r.push(...o);else{const a=ct(e,o);a&&r.push(a)}break}}}transformBy(t){return this._geo.vertices.forEach(e=>{const n=new m(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 m(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 m(o.x,o.y,this.interpolateZ(o.x,o.y)))}return new pi(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}};pi.typeName="3dPolyline";let on=pi;var da=(i=>(i[i.SimpleVertex=0]="SimpleVertex",i[i.ControlVertex=1]="ControlVertex",i[i.FitVertex=2]="FitVertex",i))(da||{});const cr=class cr extends ${get dxfTypeName(){return"VERTEX"}constructor(){super(),this._position=new m,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===x.EndPoint||t===x.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}};cr.typeName="3dVertex";let an=cr;const fi=class fi extends Z{get dxfTypeName(){return"ARC"}constructor(t,e,n,r,s=w.Z_AXIS){super();const o=vi(s);this._geo=new wt(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:()=>I.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 x.EndPoint:r.push(s),r.push(o);break;case x.MidPoint:r.push(this.midPoint);break;case x.Center:case x.Centroid:r.push(this._geo.center);break;case x.Quadrant:{const a=[0,Math.PI/2,Math.PI,3*Math.PI/2];for(const h of a)I.isBetweenAngle(h,this.startAngle,this.endAngle)&&r.push(this._geo.getPointAtAngle(h));break}case x.Nearest:{const a=this._geo.nearestPoint(e);r.push(a)}break;case x.Perpendicular:{const a=this._geo.perpendicularPoints(e),h=ct(e,a);h&&r.push(h);break}case x.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=ge(this.center,this.normal);return t.writeSubclassMarker("AcDbArc"),t.writePoint3d(10,e),t.writeDouble(40,this.radius),t.writeAngle(50,Me(this.center,this.startPoint,this.normal)),t.writeAngle(51,Me(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 fi(e.center,e.radius,e.startAngle,e.endAngle,e.normal):null}};fi.typeName="Arc";let ln=fi;const Nc=1;function ga(i){return i.replace(/\\[PpNn]/g,`
|
|
5
|
-
`).replace(/\\[A-Za-z][^;]*;/g,"").replace(/[{}]/g,"")}function pa(i,t,e=1){if(!i||t<=0)return 0;const n=ga(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 Bc(i){const t=ga(i);return Math.max(t.split(/\r\n|\r|\n/g).length,1)}function Rc(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 zc(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 Fc(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 fa(i,t,e,n,r,s=0,o){if(e<=0&&n<=0)return i.expandByPoint(t),i;const a=zc(e,n,r),{xAxis:h,yAxis:l}=Fc(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 m(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 ya=(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))(ya||{}),ma=(i=>(i[i.BASELINE=0]="BASELINE",i[i.BOTTOM=1]="BOTTOM",i[i.MIDDLE=2]="MIDDLE",i[i.TOP=3]="TOP",i))(ma||{});const ur=class ur extends ${get dxfTypeName(){return"TEXT"}constructor(){super(),this._textString="",this._height=0,this._thickness=1,this._position=new m,this._alignmentPoint=new m,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=pa(this.textString,this.height,this.widthFactor);return fa(t,e,r,this.height,n,this.rotation)}subGetGripPoints(){return[this._position]}subGetOsnapPoints(t,e,n,r){x.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}};ur.typeName="Text";let Xe=ur;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||{}),Ot=(i=>(i[i.MultiLine=2]="MultiLine",i[i.ConstMultiLine=4]="ConstMultiLine",i))(Ot||{});const dr=class dr extends Xe{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}};dr.typeName="AttDef";let hn=dr;function Vc(i){return i!=null&&typeof i=="object"&&"blockTableRecord"in i}const gr=class gr extends Xe{get dxfTypeName(){return"ATTRIB"}get resolvedColor(){var t;if(this.color.isByBlock){const e=(t=this.database)==null?void 0:t.tables.blockTable.getEntityById(this.ownerId);if(Vc(e))return e.resolvedColor}return this.resolveStandardColor()}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&Ot.MultiLine)!==0}set isMTextAttribute(t){t?this._mtextFlag|=Ot.MultiLine:this._mtextFlag&=~Ot.MultiLine}get isConstMTextAttribute(){return(this._mtextFlag&Ot.ConstMultiLine)!==0}set isConstMTextAttribute(t){t?this._mtextFlag|=Ot.ConstMultiLine:this._mtextFlag&=~Ot.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}};gr.typeName="Attrib";let cn=gr;const ae=class ae extends ${get dxfTypeName(){return"INSERT"}constructor(t){super(),this._blockName=t,this._position=new m,this._rotation=0,this._normal=new w(0,0,1),this._scaleFactors=new m(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,this.syncAttributeDatabases()}syncAttributeDatabases(){try{const t=this.database;this._attribs.forEach(e=>{e.database=t})}catch{}}attributeIterator(){return new ze(this._attribs)}get blockTransform(){const t=this.blockTableRecord,e=(t==null?void 0:t.origin)??m.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 de().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;x.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 m(this._scaleFactors.x,0,0).applyMatrix4(r).add(s),a=new m(0,this._scaleFactors.y,0).applyMatrix4(r).add(s),h=new m(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)}}),qt.instance.draw(t,e,this.resolvedColor,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 m(e).applyMatrix4(h),c=new m(n).applyMatrix4(h),u=[];for(const g of o.newIterator()){const d=[];if(g instanceof ae){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 m(p).applyMatrix4(a)))}if(u.length!==0)if(t===x.Nearest||t===x.Perpendicular||t===x.Tangent){const g=ct(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 m(e).applyMatrix4(l.clone().invert()),g=new m(n).applyMatrix4(l.clone().invert()),d=[];return c.subGetOsnapPoints(t,u,g,d,s,l),c instanceof ae?d.forEach(p=>{r.push(p.clone())}):d.forEach(p=>{r.push(new m(p).applyMatrix4(l))}),!0}if(c instanceof ae&&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)??m.ORIGIN,n=new Y().multiplyMatrices(t,this.getFullInsertionTransform());return new m(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}};ae.typeName="BlockReference";let ye=ae;const yi=class yi extends Z{get dxfTypeName(){return"CIRCLE"}constructor(t,e,n=w.Z_AXIS){super();const r=vi(n);this._geo=new wt(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 x.Center:case x.Centroid:r.push(this._geo.center);break;case x.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 x.Nearest:{const s=this._geo.nearestPoint(e);r.push(s)}break;case x.Tangent:{const s=this._geo.tangentPoints(e);r.push(...s);break}case x.Perpendicular:{const s=this._geo.perpendicularPoints(e),o=ct(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=ge(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 yi(e.center,e.radius,e.normal):null}};yi.typeName="Circle";let un=yi;const mi=class mi extends Z{get dxfTypeName(){return"ELLIPSE"}constructor(t,e,n,r,s,o,a){super(),this._geo=new qn(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 x.EndPoint:this.closed||(r.push(this._geo.startPoint),r.push(this._geo.endPoint));break;case x.MidPoint:this.closed||r.push(this._geo.midPoint);break;case x.Center:case x.Centroid:r.push(this._geo.center);break;case x.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 x.Nearest:r.push(this._geo.nearestPoint(e));break;case x.Tangent:r.push(...this._geo.tangentPoints(e));break;case x.Perpendicular:{const s=this._geo.perpendicularPoints(e),o=ct(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 mi(e.center,e.normal,e.majorAxis,e.majorAxisRadius,e.minorAxisRadius,e.startAngle,e.endAngle):null}};mi.typeName="Ellipse";let dn=mi;const pr=class pr extends ${get dxfTypeName(){return"3DFACE"}constructor(){super(),this._vertices=[new m,new m,new m],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 m),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),Zs(t)}subGetGripPoints(){const t=new Array;return t.push(...this._vertices),t}subGetOsnapPoints(t,e,n,r){tr(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}};pr.typeName="Face";let gn=pr;var _a=(i=>(i[i.MText=0]="MText",i[i.Fcf=1]="Fcf",i[i.BlockReference=2]="BlockReference",i[i.NoAnnotation=3]="NoAnnotation",i))(_a||{});const fr=class fr extends Z{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 m().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 x.EndPoint:r.push(this._vertices[0]),r.push(this._vertices[this.numVertices-1]);break;case x.Nearest:r.push(this.splineGeo.nearestPoint(e));break}return}const s=this._vertices;switch(t){case x.EndPoint:r.push(...s);break;case x.MidPoint:case x.Nearest:case x.Perpendicular:{const o=[];for(let a=0;a<s.length-1;a++){const h=[];_e(s[a],s[a+1],t,e,h),o.push(...h)}if(t===x.MidPoint)r.push(...o);else{const a=ct(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 Rt(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 Ei(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 m,r=new m(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)}};fr.typeName="Leader";let pn=fr;const _i=class _i extends Z{get dxfTypeName(){return"LINE"}constructor(t,e){super(),this._geo=new St(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 x.EndPoint:r.push(s),r.push(o);break;case x.MidPoint:r.push(this.midPoint);break;case x.Nearest:{const a=this._geo.project(e);r.push(a)}break;case x.Perpendicular:{const a=this._geo.perpPoint(e);r.push(a)}break;case x.Tangent:break}}transformBy(t){return this._geo.transform(t),this}subWorldDraw(t){const e=this.startPoint,n=this.endPoint,r=[new m(e.x,e.y,0),new m(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 _i(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}};_i.typeName="Line";let oi=_i;var wa=(i=>(i[i.Top=0]="Top",i[i.Zero=1]="Zero",i[i.Bottom=2]="Bottom",i))(wa||{}),xa=(i=>(i[i.HasVertex=1]="HasVertex",i[i.Closed=2]="Closed",i[i.SuppressStartCaps=4]="SuppressStartCaps",i[i.SuppressEndCaps=8]="SuppressEndCaps",i))(xa||{});const yr=class yr 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 m,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 x.EndPoint:r.push(...s);break;case x.MidPoint:case x.Nearest:case x.Perpendicular:{const o=[];for(let a=0;a<s.length-1;a++){const h=[];_e(s[a],s[a+1],t,e,h),o.push(...h)}if(t===x.MidPoint)r.push(...o);else{const a=ct(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.lineType,h=s.fillType,l=s.drawOrder,c=this.createFillArea(n,r);if(c&&(s.color=o,this.applyFillTraits(n,s),s.fillType={solidFill:!0,patternAngle:0,definitionLines:[]},s.drawOrder=-1,e.push(t.area(c)),s.fillType=h,s.drawOrder=l),r<=0){const u=this.getReferencePath();u.length>=2&&e.push(t.lines(u))}else{for(let u=0;u<r;u++){s.color=o,s.lineType=a,this.applyStyleElementTraits(n,u,s);const g=this.getElementPath(u,n);g.length>=2&&e.push(t.lines(g))}this.appendStyleDrivenJointAndCapEntities(t,e,n,r,o,a)}if(s.color=o,s.lineType=a,s.fillType=h,s.drawOrder=l,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 m().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 At;if(this.closed){if(o.length<3||a.length<3)return;h.add(new j(o.map(l=>({x:l.x,y:l.y})),!0)),h.add(new j(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 j(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){!n||r<2||(e.push(...this.drawMiterJointEntities(t,n,r,s,o)),e.push(...this.drawCapEntities(t,n,r,s,o)))}drawMiterJointEntities(t,e,n,r,s){if(this.closed||this._segments.length<2||!(e.flags&2))return[];const o=[],a=t.subEntityTraits;for(let h=0;h<this._segments.length-1;h++){const l=this._segments[h],c=Array.from({length:n},(u,g)=>{const d=this.getElementMiterOffset(l,g,e);return{elementIndex:g,offset:d,point:this.offsetPoint(l.position,l.miterDirection,d)}}).sort((u,g)=>g.offset-u.offset);for(let u=0;u<c.length-1;u++)this.applyElementDrawTraits(a,r,s,e,c[u].elementIndex),o.push(t.lines([c[u].point,c[u+1].point]))}return o}drawCapEntities(t,e,n,r,s){if(this.closed||this._segments.length<=0)return[];const o=[];return o.push(...this.drawCapEntitiesForSide(t,"start",e,n,r,s)),o.push(...this.drawCapEntitiesForSide(t,"end",e,n,r,s)),o}drawCapEntitiesForSide(t,e,n,r,s,o){if(e==="start"&&this.suppressStartCaps)return[];if(e==="end"&&this.suppressEndCaps)return[];const a=n.flags,h=e==="start",l=h?(a&16)!==0:(a&256)!==0,c=h?(a&64)!==0:(a&1024)!==0,u=h?(a&32)!==0:(a&512)!==0;if(!l&&!c&&!u)return[];const g=this.getCapElementPoints(e,r,n);if(g.length<2)return[];const d=[],p=t.subEntityTraits;if(l)for(let y=0;y<g.length-1;y++)this.applyElementDrawTraits(p,s,o,n,g[y].elementIndex),d.push(t.lines([g[y].point,g[y+1].point]));const f=h?this.getStartSegmentDirection().multiplyScalar(-1):this.getEndSegmentDirection().clone();if(c){const y=this.drawCapArcBetweenElements(t,e,g[0],g[g.length-1],f,p,s,o,n);y&&d.push(y)}if(u)for(let y=1;y<Math.floor(g.length/2);y++){const _=g[y],b=g[g.length-1-y];if(!_||!b||_===b)continue;const S=this.drawCapArcBetweenElements(t,e,_,b,f,p,s,o,n);S&&d.push(S)}return d}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){const c=e==="end"?r.point:n.point,u=e==="end"?n.point:r.point,g=c.distanceTo(u);if(g<=1e-9||s.lengthSq()===0)return;const p=c.clone().add(new w().subVectors(u,c).multiplyScalar(.5)).add(s.clone().normalize().multiplyScalar(g/2)),f=wt.createByThreePoints(c,u,p);if(f)return this.applyElementDrawTraits(o,a,h,l,e==="end"?r.elementIndex:n.elementIndex),t.circularArc(f)}applyElementDrawTraits(t,e,n,r,s){t.color=e,t.lineType=n,this.applyStyleElementTraits(r,s,t)}transformVector(t,e){const n=new m,r=new m(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())}applyFillTraits(t,e){const n=t==null?void 0:t.fillColor;!n||n.isByBlock||n.isByLayer||(e.color=n.clone())}resolveStyleElementLineType(t){var l;const e=t==null?void 0:t.trim();if(!e)return;const n=e.toUpperCase(),r=q.toUpperCase(),s=xt.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:zt}else n===s&&(o="ByBlock",a=zt);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||Yt}catch{return Yt}}};yr.typeName="MLine";let fn=yr;var Ie=(i=>(i[i.InvisibleLeader=0]="InvisibleLeader",i[i.StraightLeader=1]="StraightLeader",i[i.SplineLeader=2]="SplineLeader",i))(Ie||{}),se=(i=>(i[i.NoneContent=0]="NoneContent",i[i.BlockContent=1]="BlockContent",i[i.MTextContent=2]="MTextContent",i[i.ToleranceContent=3]="ToleranceContent",i))(se||{}),ba=(i=>(i[i.Horizontal=0]="Horizontal",i[i.Vertical=1]="Vertical",i))(ba||{}),va=(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))(va||{});const jc=1,Gc=2,Hc=4,Dc=8,Uc=64,Wc=128,$c=32768,mr=class mr 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==null?void 0:t.clone()}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==null?void 0:t.clone()}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==null?void 0:t.clone()}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==null?void 0:t.clone()}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 m},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,n;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:(n=this._blockContent.color)==null?void 0:n.clone(),transformationMatrix:[...this._blockContent.transformationMatrix]}:void 0}set blockContent(t){var e;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:(e=t.color)==null?void 0:e.clone(),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===x.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 x.EndPoint:r.push(...h);break;case x.MidPoint:case x.Nearest:case x.Perpendicular:{const l=[];for(let c=0;c<h.length-1;c++){const u=[];_e(h[c],h[c+1],t,e,u),l.push(...u)}if(t===x.MidPoint)r.push(...l);else{const c=ct(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:se[0],value:0},{label:se[1],value:1},{label:se[2],value:2},{label:se[3],value:3}],accessor:{get:()=>this.contentType,set:t=>{this.contentType=t}}},{name:"leaderLineType",type:"enum",editable:!0,options:[{label:Ie[0],value:0},{label:Ie[1],value:1},{label:Ie[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,e){const n=[],r=t.subEntityTraits,s=r.color,o=r.lineType,a=r.lineWeight,h=this.getResolvedLeaderLineColor(),l=this.getResolvedLeaderLineStyle(),c=this.getResolvedLeaderLineWeight(),u=this.getResolvedTextColor();this.getResolvedLeaderLineType()!==0&&(this.applyColorTraits(r,h,s),this.applyLineTraits(r,l,c),this._leaders.forEach(d=>{d.leaderLines.forEach(f=>{const y=this.getLeaderLineDrawPoints(d,f);if(y.length>0){const _=this.drawLeaderLine(t,y);_&&n.push(_)}});const p=this.getDoglegPoints(d);p&&n.push(t.lines(p))}));const g=this.getRenderableMTextContent();if(this.contentType===2&&g){this.applyColorTraits(r,u,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};n.push(t.mtext(p,this.getTextStyle(),e))}if(r.color=s,r.lineType=o,r.lineWeight=a,n.length!==0)return n.length===1?n[0]:t.group(n)}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 m().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??m.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 At;s.add(new j(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??m.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 qt.instance.draw(t,n,this.resolvedColor,[],!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 m,r=new m(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||Xt}catch{return Xt}}getResolvedTextStyleName(){var s,o,a;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,r=this.textStyleId?(a=t.getIdAt(this.textStyleId))==null?void 0:a.name:void 0;if(this.textStyleName){const h=t.getAt(this.textStyleName);if(h!=null&&h.name)return h.name;const l=t.getIdAt(this.textStyleName);if(l!=null&&l.name)return l.name}return r||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,Gc)}getResolvedLeaderLineType(){var e;const t=(e=this.getMLeaderStyle())==null?void 0:e.leaderLineType;return this.getResolvedStyleDrivenValue(this.leaderLineType,t,jc)}getResolvedLeaderLineTypeId(){var t;return this.getResolvedStyleDrivenValue(this.leaderLineTypeId,(t=this.getMLeaderStyle())==null?void 0:t.leaderLineTypeId,Hc)}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,Dc);if(e!=null)return e}getResolvedDoglegEnabled(){var e;const t=(e=this.getMLeaderStyle())==null?void 0:e.doglegEnabled;return this.getResolvedStyleDrivenValue(this.doglegEnabled,t,Uc)}getResolvedDoglegLength(){var e;const t=(e=this.getMLeaderStyle())==null?void 0:e.doglegLength;return this.getResolvedStyleDrivenValue(this.doglegLength,t,Wc)}getResolvedTextColor(){var t;return this.getResolvedComponentColor(this.textColor,(t=this.getMLeaderStyle())==null?void 0:t.textColor,$c)}getResolvedComponentColor(t,e,n){if(!t)return e;const r=this.isPropertyOverrideEnabled(n);return r===!0?t:r===!1?e??t:!t.isByBlock&&!t.isByLayer?t:e??t}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){t.color=n,e&&(t.color=e)}applyLineTraits(t,e,n){e&&(t.lineType=e),n!=null&&(t.lineWeight=n)}};mr.typeName="MLeader";let yn=mr;const _r=class _r 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 m,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:pa(this.contents,this.height),n=Bc(this.contents),r=Rc(n,this.height,this.lineSpacingFactor);return fa(t,this._location,e,r,this.attachmentPoint,this.rotation,this.direction)}subGetGripPoints(){return[this._location]}subGetOsnapPoints(t,e,n,r){x.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}};_r.typeName="MText";let ai=_r;const wr=class wr extends Z{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 Rt(t,e,n,r):this._geo=new Rt(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 m(t.x,t.y,t.z??0))}subGetOsnapPoints(t,e,n,r){switch(t){case x.EndPoint:r.push(this._geo.startPoint),r.push(this._geo.endPoint);break;case x.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 x.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=sh(e,this.closed,t,n);return r?lt.fromGePolyline(r):null}collectPath2d(t){return this._geo.getOffsetSamplePath2d(t).points}};wr.typeName="Spline";let mn=wr;const qc=new w,xr=class xr extends ye{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 de;s.setFromAxisAngle(w.Z_AXIS,this.rotation),ee.compose(this.position,s,this.scaleFactors);const o=[new m(0,0,0),new m(e,0,0),new m(e,-n,0),new m(0,-n,0)];for(const a of o)r.expandByPoint(a.applyMatrix4(ee));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,_=f.borderHeight??1;this.fillVisited(l,c,this.numColumns,y,_),s[a++]=d+p*(this.numColumns+1),s[a++]=d+p*(this.numColumns+1)+y;const b=o[s[a-1]*3]-r,S=d+(p+_)*(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+_==this.numRows&&(s[a++]=d+(p+_)*(this.numColumns+1)+_,s[a++]=d+(p+_)*(this.numColumns+1)),s[a++]=d+(p+_)*(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,b,A),E={text:f.text,height:this.getCellTextHeight(f,A),width:b,position:qc.set(r,-n,0).clone().add(T),rotation:this.rotation,attachmentPoint:L},X=this.getTextStyle(f);h.push(t.mtext(E,X))}}}}h.push(t.lineSegments(o,3,s));const u=t.group(h),g=new de;return g.setFromAxisAngle(w.Z_AXIS,this.rotation),ee.compose(this.position,g,this.scaleFactors),u.applyMatrix(ee),u}drawAnonymousTableBlock(t,e){const n=[],r=e.newIterator();for(const a of r){let h;if(a.color.isByBlock){hs.copy(a.color);const l=this.resolvedColor;l.isForeground?a.color.setForeground():l.RGB!=null&&a.color.setRGBValue(l.RGB),h=a.worldDraw(t),a.color.copy(hs)}else 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)&&(ee.setFromExtrusionDirection(o),s.applyMatrix(ee)),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")}};xr.typeName="Table";let _n=xr;const ee=new Y,hs=new O,le=class le extends Z{get dxfTypeName(){return"TRACE"}constructor(){super(),this._elevation=0,this._thickness=1,this._vertices=[new m,new m,new m,new m]}get elevation(){return this._elevation}set elevation(t){this._elevation=t}get closed(){return!0}get area(){return new j(le.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]];tr(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 j(le.boundaryPointsFromVertices(this._vertices),!0),n=new At;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 Ei(this.collectBoundary2d(),!0,t)}collectBoundary2d(){return le.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)]}};le.typeName="Trace";let wn=le;class Nt extends Error{constructor(t="Unexpected end of buffer."){super(t),this.name="AcDbProxyGraphicEndOfBufferError"}}function Pa(i){return i instanceof ArrayBuffer?new Uint8Array(i):i}class ht{constructor(t,e=4){this._index=0,this._buffer=Pa(t),this._align=e}get index(){return this._index}get hasData(){return this._index<this._buffer.length}alignIndex(t){const e=t%this._align;return e?t+this._align-e:t}readStruct(t){if(!this.hasData)throw new Nt;const e=[];let n=0;for(const r of t){const s=new DataView(this._buffer.buffer,this._buffer.byteOffset+this._index+n,r);if(r===8)e.push(s.getFloat64(0,!0));else if(r===4)e.push(s.getUint32(0,!0));else throw new Error(`Unsupported struct size: ${r}`);n+=r}return this._index=this.alignIndex(this._index+n),e}readFloat(){return this.readStruct([8])[0]}readLong(){return this.readStruct([4])[0]}readSignedLong(){if(!this.hasData)throw new Nt;const e=new DataView(this._buffer.buffer,this._buffer.byteOffset+this._index,4).getInt32(0,!0);return this._index=this.alignIndex(this._index+4),e}readVertex(){return this.readStruct([8,8,8])}readPaddedString(t="utf-8"){const e=this._buffer;for(let n=this._index;n<e.length;n++)if(e[n]===0){const r=this._index;this._index=this.alignIndex(n+1);const s=e.subarray(r,n);return new TextDecoder(t).decode(s)}throw new Nt("Did not detect terminating zero byte.")}readPaddedUnicodeString(){const t=this._buffer;for(let e=this._index;e<t.length;e+=2)if(e+1<t.length&&t[e]===0&&t[e+1]===0){const n=this._index;this._index=this.alignIndex(e+2);const r=t.subarray(n,e);return new TextDecoder("utf-16le").decode(r)}throw new Nt("Did not detect terminating zero bytes.")}}class Aa{constructor(t,e="AC1015",n="cp1252"){this._bitIndex=0,this._buffer=Pa(t),this.dxfversion=e,this.encoding=n}get hasData(){return this._bitIndex>>3<this._buffer.length}readBit(){const t=this._bitIndex;this._bitIndex+=1;const e=t>>3;if(e>=this._buffer.length)throw new Nt;return this._buffer[e]&128>>(t&7)?1:0}readBits(t){const e=this._bitIndex,n=e+t;if(n-1>>3>=this._buffer.length)throw new Nt;this._bitIndex=n;let r=128>>(e&7),s=e>>3,o=0,a=this._buffer[s];for(;t>0;)o<<=1,a&r&&(o|=1),t-=1,r>>=1,!r&&t&&(r=128,s+=1,a=this._buffer[s]);return o}readUnsignedByte(){return this.readBits(8)}readSignedByte(){const t=this.readBits(8);return t&128?-((~t&255)+1):t}readAlignedBytes(t){const e=this._bitIndex>>3,n=e+t;if(n>this._buffer.length)throw new Nt;return this._bitIndex+=t<<3,this._buffer.subarray(e,n)}readUnsignedShort(){if(this._bitIndex&7){const e=this.readBits(8);return(this.readBits(8)<<8)+e}const t=this.readAlignedBytes(2);return t[1]<<8|t[0]}readSignedShort(){const t=this.readUnsignedShort();return t&32768?-((~t&65535)+1):t}readUnsignedLong(){if(this._bitIndex&7){const e=this.readBits(8),n=this.readBits(8),r=this.readBits(8);return(this.readBits(8)<<24)+(r<<16)+(n<<8)+e}const t=this.readAlignedBytes(4);return(t[3]<<24)+(t[2]<<16)+(t[1]<<8)+t[0]}readSignedLong(){const t=this.readUnsignedLong();return t&2147483648?-((~t&4294967295)+1):t}readFloat(){if(this._bitIndex&7){const n=new Uint8Array(8);for(let r=0;r<8;r++)n[r]=this.readBits(8);return new DataView(n.buffer).getFloat64(0,!0)}const t=this.readAlignedBytes(8),e=new Uint8Array(t);return new DataView(e.buffer).getFloat64(0,!0)}readRawDouble(t=1){return t===1?this.readFloat():Array.from({length:t},()=>this.readFloat())}readBitShort(t=1){const e=()=>{const n=this.readBits(2);return n===0?this.readSignedShort():n===1?this.readUnsignedByte():n===2?0:256};return t===1?e():Array.from({length:t},()=>e())}readBitLong(t=1){const e=()=>{const n=this.readBits(2);return n===0?this.readSignedLong():n===1?this.readUnsignedByte():n===2?0:256};return t===1?e():Array.from({length:t},()=>e())}readBitDouble(t=1){const e=()=>{const n=this.readBits(2);return n===0?this.readFloat():n===1?1:0};return t===1?e():Array.from({length:t},()=>e())}readBitDoubleDefault(t=1,e=0){const n=new Uint8Array(8);new DataView(n.buffer).setFloat64(0,e,!0);const r=()=>{const s=this.readBits(2);if(s===0)return e;if(s===1){const o=new Uint8Array(n);return o[0]=this.readUnsignedByte(),o[1]=this.readUnsignedByte(),o[2]=this.readUnsignedByte(),o[3]=this.readUnsignedByte(),new DataView(o.buffer).getFloat64(0,!0)}if(s===2){const o=new Uint8Array(n);return o[4]=this.readUnsignedByte(),o[5]=this.readUnsignedByte(),o[0]=this.readUnsignedByte(),o[1]=this.readUnsignedByte(),o[2]=this.readUnsignedByte(),o[3]=this.readUnsignedByte(),new DataView(o.buffer).getFloat64(0,!0)}return this.readFloat()};return t===1?r():Array.from({length:t},()=>r())}}function Sa(i){return Array.from(i,t=>t.toString(16).padStart(2,"0")).join("").toUpperCase()}function Kc(i){const t=i.reduce((r,s)=>r+Math.floor(s.length/2),0),e=new Uint8Array(t);let n=0;for(const r of i)for(let s=0;s<r.length;s+=2)e[n++]=parseInt(r.slice(s,s+2),16);return e}const Zc=127;var La=(i=>(i[i.Extents=1]="Extents",i[i.Circle=2]="Circle",i[i.Circle3P=3]="Circle3P",i[i.CircularArc=4]="CircularArc",i[i.CircularArc3P=5]="CircularArc3P",i[i.Polyline=6]="Polyline",i[i.Polygon=7]="Polygon",i[i.Mesh=8]="Mesh",i[i.Shell=9]="Shell",i[i.Text=10]="Text",i[i.Text2=11]="Text2",i[i.Xline=12]="Xline",i[i.Ray=13]="Ray",i[i.AttributeColor=14]="AttributeColor",i[i.AttributeLayer=16]="AttributeLayer",i[i.AttributeLinetype=18]="AttributeLinetype",i[i.AttributeMarker=19]="AttributeMarker",i[i.AttributeFill=20]="AttributeFill",i[i.AttributeTrueColor=22]="AttributeTrueColor",i[i.AttributeLineweight=23]="AttributeLineweight",i[i.AttributeLtscale=24]="AttributeLtscale",i[i.AttributeThickness=25]="AttributeThickness",i[i.PushMatrix=29]="PushMatrix",i[i.PopMatrix=31]="PopMatrix",i[i.PolylineWithNormals=32]="PolylineWithNormals",i[i.LwPolyline=33]="LwPolyline",i[i.UnicodeText=36]="UnicodeText",i[i.UnicodeText2=38]="UnicodeText2",i[i.EllipticArc=44]="EllipticArc",i))(La||{});const ie=w.Z_AXIS,Qc=529;function Jc(i){const t=i>>24&255;return t===Li?{rgb:i&16777215}:t===Si?{colorIndex:256}:t===Ye?{colorIndex:0}:t===Ii?{colorIndex:i&255}:{colorIndex:i&255}}function cs(i){return new w(i.x,i.y,i.z??0)}function ji(i){return new m(i.x,i.y,i.z??0)}function us(i){return{x:i[0],y:i[1],z:i[2]}}class xn{constructor(t,e={}){this._index=8,this._colorIndex=256,this._layer="0",this._linetype=q,this._lineweight=exports.AcGiLineWeight.ByLineWeightDefault,this._ltscale=1,this._thickness=0,this._fill=!1,this._layers=[],this._linetypes=[],this._matrices=[],this._buffer=t,this._database=e.database,this._dxfversion=e.dxfversion??"AC1015",this._encoding=e.encoding??(this._dxfversion<"AC1024"?"windows-1252":"utf-8"),this._layer=e.defaultLayer??"0",this._database&&(this._database.tables.layerTable.newIterator().toArray().forEach(n=>this._layers.push(n.name)),this._database.tables.linetypeTable.newIterator().toArray().forEach(n=>this._linetypes.push(n.name)))}get extents(){return this._extents}scanExtents(){var n;const t=this._buffer;let e=this._index;for(;e<t.length;){const r=new DataView(t.buffer,t.byteOffset+e,8),s=r.getUint32(0,!0),o=r.getUint32(4,!0);if(s<8)break;if(o===1){const a=t.subarray(e+8,e+s);return this.readExtents(a),((n=this._extents)==null?void 0:n.length)===2?[this._extents[0],this._extents[1]]:void 0}e+=s}}worldDraw(t){const e=[],n=t.subEntityTraits,r={color:n.color.clone(),lineType:n.lineType,lineTypeScale:n.lineTypeScale,lineWeight:n.lineWeight,layer:n.layer,thickness:n.thickness},s=this._buffer;let o=this._index;for(;o<s.length;){const a=new DataView(s.buffer,s.byteOffset+o,8),h=a.getUint32(0,!0),l=a.getUint32(4,!0);if(h<8)break;const c=s.subarray(o+8,o+h);this.dispatchChunk(t,e,l,c),l!==20&&(this._fill=!1),o+=h}if(n.color=r.color,n.lineType=r.lineType,n.lineTypeScale=r.lineTypeScale,n.lineWeight=r.lineWeight,n.layer=r.layer,n.thickness=r.thickness,e.length!==0)return t.group(e)}dispatchChunk(t,e,n,r){switch(n){case 1:this.readExtents(r);break;case 2:this.drawCircle(t,e,r);break;case 3:this.drawCircle3P(t,e,r);break;case 4:this.drawCircularArc(t,e,r);break;case 5:this.drawCircularArc3P(t,e,r);break;case 44:this.drawEllipticArc(t,e,r);break;case 6:this.drawPolyline(t,e,r,!1);break;case 32:this.drawPolyline(t,e,r,!0);break;case 7:this.drawPolygon(t,e,r);break;case 33:this.drawLwPolyline(t,e,r);break;case 9:this.drawShell(t,e,r);break;case 10:this.drawText(t,e,r,!1);break;case 36:this.drawText(t,e,r,!0);break;case 11:this.drawText2(t,e,r,!1);break;case 38:this.drawText2(t,e,r,!0);break;case 12:this.drawXline(t,e,r,!1);break;case 13:this.drawXline(t,e,r,!0);break;case 14:this.readAttributeColor(r);break;case 16:this.readAttributeLayer(r);break;case 18:this.readAttributeLinetype(r);break;case 20:this.readAttributeFill(r);break;case 22:this.readAttributeTrueColor(r);break;case 23:this.readAttributeLineweight(r);break;case 24:this.readAttributeLtscale(r);break;case 25:this.readAttributeThickness(r);break;case 29:this.pushMatrix(r);break;case 31:this.popMatrix();break}}applyTraits(t){const e=t.subEntityTraits;e.layer=this._layer,e.lineTypeScale=this._ltscale,e.thickness=this._thickness,e.lineWeight=this._lineweight,this._rgbColor!=null?e.color=new O(exports.AcCmColorMethod.ByColor,this._rgbColor):this._colorIndex===256?e.color=new O(exports.AcCmColorMethod.ByLayer):this._colorIndex===0?e.color=new O(exports.AcCmColorMethod.ByBlock):this._colorIndex===7?e.color=new O(exports.AcCmColorMethod.ByACI,7):e.color=new O(exports.AcCmColorMethod.ByACI,this._colorIndex),e.lineType={name:this._linetype,type:this.resolveLineStyleType(),standardFlag:0,description:"",totalPatternLength:0}}resolveLineStyleType(){return this._linetype===q?"ByLayer":this._linetype===xt?"ByBlock":"UserSpecified"}transformPoint(t){const e=Array.isArray(t)?us(t):t,n=ji(e);return this._matrices.length>0&&n.applyMatrix4(this._matrices[this._matrices.length-1]),n}transformVector(t){const e=Array.isArray(t)?us(t):t,n=cs(e);return this._matrices.length>0&&n.transformDirection(this._matrices[this._matrices.length-1]),n.normalize()}pushEntity(t,e){e&&t.push(e)}readExtents(t){const e=new ht(t),n=e.readVertex(),r=e.readVertex();this._extents=[new m(n[0],n[1],n[2]),new m(r[0],r[1],r[2])]}readAttributeColor(t){const e=new DataView(t.buffer,t.byteOffset,4).getUint32(0,!0);this._rgbColor=void 0,this._colorIndex=e>256||e<0?256:e}readAttributeLayer(t){const e=new DataView(t.buffer,t.byteOffset,4).getUint32(0,!0);e<this._layers.length&&(this._layer=this._layers[e])}readAttributeLinetype(t){const e=new DataView(t.buffer,t.byteOffset,4).getUint32(0,!0);e+2<this._linetypes.length?this._linetype=this._linetypes[e+2]:e===32766?this._linetype=xt:this._linetype=q}readAttributeFill(t){this._fill=new DataView(t.buffer,t.byteOffset,4).getUint32(0,!0)!==0}readAttributeTrueColor(t){const e=new DataView(t.buffer,t.byteOffset,4).getUint32(0,!0),n=Jc(e);this._rgbColor=n.rgb,n.colorIndex!=null&&(this._colorIndex=n.colorIndex)}readAttributeLineweight(t){const e=new DataView(t.buffer,t.byteOffset,4).getUint32(0,!0);e>Qc?this._lineweight=e-4294967296:this._lineweight=e}readAttributeLtscale(t){this._ltscale=new DataView(t.buffer,t.byteOffset,8).getFloat64(0,!0)}readAttributeThickness(t){this._thickness=new DataView(t.buffer,t.byteOffset,8).getFloat64(0,!0)}pushMatrix(t){const e=new Float64Array(t.buffer,t.byteOffset,16),n=new Y().fromArray(Array.from(e));n.transpose(),this._matrices.push(n)}popMatrix(){this._matrices.length>0&&this._matrices.pop()}loadVertices(t,e){const n=new ht(t);let r=n.readLong();e&&(r+=1);const s=[];for(;r>0;){const[a,h,l]=n.readVertex();s.push(this.transformPoint({x:a,y:h,z:l})),r-=1}let o=ie;return e&&s.length>0&&(o=cs(s.pop())),{vertices:s,normal:o}}drawCircle(t,e,n){const r=new ht(n),s=r.readVertex(),o=r.readFloat(),a=this.transformVector(r.readVertex());let h=ji({x:s[0],y:s[1],z:s[2]});a.equals(ie)||(h=ge(h,a)),h=this.transformPoint(h);const l=vi(a),c=new wt(Ui(h,a),o,0,B,a,l);this.applyTraits(t),this.pushEntity(e,t.circularArc(c))}drawCircle3P(t,e,n){const r=new ht(n),s=this.transformPoint(r.readVertex()),o=this.transformPoint(r.readVertex()),a=this.transformPoint(r.readVertex()),h=wt.computeCenterPoint(s,o,a);if(!h)return;const l=h.distanceTo(s),c=new wt(h,l,0,B,ie);this.applyTraits(t),this.pushEntity(e,t.circularArc(c))}drawCircularArc(t,e,n){const r=new ht(n),s=r.readVertex(),o=r.readFloat(),a=r.readVertex(),h=r.readVertex(),l=r.readFloat(),c=this.transformVector(a),u=ji({x:s[0],y:s[1],z:s[2]}),g=this.transformVector(h).normalize(),d=0,p=l,f=new wt(this.transformPoint(u),o,d,p,c,g);this.applyTraits(t),this.pushEntity(e,t.circularArc(f))}drawCircularArc3P(t,e,n){const r=new ht(n),s=this.transformPoint(r.readVertex()),o=this.transformPoint(r.readVertex()),a=this.transformPoint(r.readVertex()),h=wt.computeCenterPoint(s,a,o);if(!h)return;const l=h.distanceTo(s),c=Me(h,s,ie),u=Me(h,a,ie),g=new wt(h,l,c,u,ie);this.applyTraits(t),this.pushEntity(e,t.circularArc(g))}drawEllipticArc(t,e,n){const r=new ht(n),s=this.transformPoint(r.readVertex()),o=this.transformVector(r.readVertex()),a=r.readFloat(),h=r.readFloat(),l=r.readFloat(),c=r.readFloat(),u=r.readFloat(),g=Ui({x:Math.cos(u)*a,y:Math.sin(u)*a,z:0},o),d=new qn(s,o,g,a,h,l,c);this.applyTraits(t),this.pushEntity(e,t.ellipticalArc(d))}drawPolyline(t,e,n,r){var o,a;const{vertices:s}=this.loadVertices(n,r);if(s.length!==0){if(s.length===1){this.applyTraits(t);const h=((o=this._database)==null?void 0:o.pdmode)??0,l=((a=this._database)==null?void 0:a.pdsize)??0;this.pushEntity(e,t.point(s[0],{displayMode:h,displaySize:l}));return}this.applyTraits(t),this.pushEntity(e,t.lines(s))}}drawPolygon(t,e,n){const{vertices:r}=this.loadVertices(n,!1);if(r.length<2)return;if(this._fill){const o=new j(r.map(l=>({x:l.x,y:l.y})),!0),a=new At;a.add(o);const h=t.subEntityTraits;h.fillType={solidFill:!0,patternAngle:0,definitionLines:[]},h.drawOrder=-1,this.applyTraits(t),this.pushEntity(e,t.area(a));return}const s=[...r,r[0]];this.applyTraits(t),this.pushEntity(e,t.lines(s))}drawLwPolyline(t,e,n){const r=new Aa(n,this._dxfversion,this._encoding);let s=0,o=!1;r.readUnsignedLong();const a=r.readBitShort();a&8&&(s=r.readBitDouble()),a&512&&(o=!0);const h=r.readBitLong();if(h<=0)return;const l=a&16?r.readBitLong():0;this._dxfversion>="AC1024"&&(a&1024&&r.readBitLong(),a&32&&r.readBitLong());const c=r.readRawDouble(2),u=[this.transformPoint({x:c[0],y:c[1],z:s})];let g=c;for(let d=1;d<h;d++){const p=r.readBitDoubleDefault(1,g[0]),f=r.readBitDoubleDefault(1,g[1]);g=[p,f],u.push(this.transformPoint({x:p,y:f,z:s}))}for(let d=0;d<l;d++)r.readBitDouble();o&&u.length>1&&u.push(u[0].clone()),this.applyTraits(t),this.pushEntity(e,t.lines(u))}drawShell(t,e,n){const r=new ht(n),s=r.readLong(),o=[];for(let c=0;c<s;c++){const[u,g,d]=r.readVertex();o.push(this.transformPoint({x:u,y:g,z:d}))}const a=r.readLong(),h=[];let l=0;for(;l<a;){const c=Math.abs(r.readSignedLong());l+=1+c;const u=[];for(let d=0;d<c;d++)u.push(r.readLong());const g=u.map(d=>o[d]).filter(Boolean);if(g.length>=3)for(let d=0;d<g.length;d++)h.push(g[d]),h.push(g[(d+1)%g.length])}h.length!==0&&(this.applyTraits(t),this.pushEntity(e,t.lines(h)))}drawText(t,e,n,r){const s=new ht(n),o=this.transformPoint(s.readVertex()),a=this.transformVector(s.readVertex()),h=this.transformVector(s.readVertex()),[l,c,u]=s.readStruct([8,8,8]),g=r?s.readPaddedUnicodeString():s.readPaddedString(this._encoding);this.drawTextPrimitive(t,e,{insert:o,normal:a,textDirection:h,text:g,height:l,widthFactor:c,obliqueAngle:u})}drawText2(t,e,n,r){const s=new ht(n),o=this.transformPoint(s.readVertex()),a=this.transformVector(s.readVertex()),h=this.transformVector(s.readVertex()),l=r?s.readPaddedUnicodeString():s.readPaddedString(this._encoding);s.readSignedLong(),s.readSignedLong();const[c,u,g]=s.readStruct([8,8,8]);s.readFloat(),this.drawTextPrimitive(t,e,{insert:o,normal:a,textDirection:h,text:l,height:c,widthFactor:u,obliqueAngle:g})}drawTextPrimitive(t,e,n){const r=Math.atan2(n.textDirection.y,n.textDirection.x),s={text:n.text,height:n.height,width:1/0,widthFactor:n.widthFactor,position:n.insert,rotation:r*180/Math.PI,drawingDirection:exports.AcGiMTextFlowDirection.BOTTOM_TO_TOP,attachmentPoint:exports.AcGiMTextAttachmentPoint.BaselineLeft},o={name:K,standardFlag:0,fixedTextHeight:0,widthFactor:n.widthFactor,obliqueAngle:n.obliqueAngle*180/Math.PI,textGenerationFlag:0,lastHeight:n.height,font:"txt",bigFont:""};this.applyTraits(t),this.pushEntity(e,t.mtext(s,o))}drawXline(t,e,n,r){const s=new ht(n),o=this.transformPoint(s.readVertex()),a=this.transformPoint(s.readVertex()),h=new w().subVectors(a,o);if(h.lengthSq()===0)return;const l=1e6,c=r?o.clone().add(h.normalize().multiplyScalar(l)):o.clone().sub(h.normalize().multiplyScalar(l)),u=a.clone().add(h.normalize().multiplyScalar(l));this.applyTraits(t),this.pushEntity(e,t.lines([c,u]))}}function Ia(i,t){if(!(t!=null&&t.length))return;const e=new Uint8Array(t.reduce((r,s)=>r+Math.floor(s.length/2),0));let n=0;for(const r of t)for(let s=0;s<r.length;s+=2)e[n++]=parseInt(r.slice(s,s+2),16);return i!=null&&i>0&&e.length>=i?e.subarray(0,i):e}const br=class br extends ${constructor(){super(...arguments),this._originalDxfName="",this._originalClassName="",this._applicationName="",this._proxyEntityClassId=0,this._graphicsMetafileType=0,this._entityOrigins=[]}get dxfTypeName(){return"ACAD_PROXY_ENTITY"}get originalDxfName(){return this._originalDxfName}set originalDxfName(t){this._originalDxfName=t}get originalClassName(){return this._originalClassName}set originalClassName(t){this._originalClassName=t}get applicationName(){return this._applicationName}set applicationName(t){this._applicationName=t}get proxyEntityClassId(){return this._proxyEntityClassId}set proxyEntityClassId(t){this._proxyEntityClassId=t}get graphicsMetafileType(){return this._graphicsMetafileType}set graphicsMetafileType(t){this._graphicsMetafileType=t}get proxyGraphic(){return this._proxyGraphic}setProxyGraphic(t){this._proxyGraphic=t?new Uint8Array(t):void 0}get entityOrigins(){return this._entityOrigins}setEntityOrigins(t){this._entityOrigins=t.map(e=>new m(e.x,e.y,e.z))}get geometricExtents(){const t=this._proxyGraphic;if(!(t!=null&&t.length))return new C;const n=new xn(t,{database:this.database,defaultLayer:this.layer}).scanExtents();return n?new C().setFromPoints(n):new C}transformBy(t){return this._entityOrigins.forEach(e=>e.applyMatrix4(t)),this}subWorldDraw(t){const e=this._proxyGraphic;return e!=null&&e.length?new xn(e,{database:this.database,defaultLayer:this.layer}).worldDraw(t):void 0}dxfOutFields(t){var e;if(super.dxfOutFields(t),t.writeSubclassMarker("AcDbProxyEntity"),t.writeString(1,this._originalDxfName),this._originalClassName&&t.writeString(3,this._originalClassName),this._applicationName&&t.writeString(1001,this._applicationName),t.writeInt32(90,this._proxyEntityClassId),t.writeInt32(91,this._graphicsMetafileType),this._entityOrigins.length>0&&(t.writeInt32(92,this._entityOrigins.length),this._entityOrigins.forEach(n=>{t.writePoint3d(10,n)})),(e=this._proxyGraphic)!=null&&e.length){t.writeInt32(160,this._proxyGraphic.length);let n=0;for(;n<this._proxyGraphic.length;){const r=this._proxyGraphic.subarray(n,n+127);t.writeString(310,Sa(r)),n+=127}}return this}loadProxyGraphicFromDxf(t,e){const n=Ia(t,e);n&&this.setProxyGraphic(n)}};br.typeName="ProxyEntity";let bn=br;const vr=class vr extends ${get dxfTypeName(){return"POINT"}constructor(){super(),this._geo=new m}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===x.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}};vr.typeName="Point";let vn=vr;var Ea=(i=>(i[i.Invalid=0]="Invalid",i[i.Rect=1]="Rect",i[i.Poly=2]="Poly",i))(Ea||{}),Ma=(i=>(i[i.Show=1]="Show",i[i.ShowUnAligned=2]="ShowUnAligned",i[i.Clip=4]="Clip",i[i.Transparent=8]="Transparent",i))(Ma||{});const Pr=class Pr 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 m,this._scale=new G(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===x.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===x.EndPoint){r.push(...o);return}tr(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 tt;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 m(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){ds.copy(t[1]);for(let e=1;e<4;e++)Ke.copy(t[e]),Ke.rotateAround(ds,this._rotation),t[e].setX(Ke.x),t[e].setY(Ke.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}};Pr.typeName="RasterImage";let li=Pr;const ds=new P,Ke=new P,wi=class wi extends Z{get dxfTypeName(){return"RAY"}constructor(){super(),this._basePoint=new m,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===x.EndPoint){r.push(s);return}const o=this.unitDir.clone();if(o.lengthSq()===0)return;o.normalize();const a=new St(s,s.clone().add(o));switch(t){case x.Nearest:{const h=a.project(e),c=new w(h).sub(s).dot(o);r.push(c<0?s:h);break}case x.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=so(this.basePoint,this.unitDir,t);if(!e)return null;const n=new wi;return n.basePoint=e,n.unitDir=this.unitDir.clone(),n}};wi.typeName="Ray";let Pn=wi;const Ar=class Ar extends ${get dxfTypeName(){return"SHAPE"}constructor(){super(),this._position=new m,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 m(this._position.x-t,this._position.y-t,this._position.z)),e.expandByPoint(new m(this._position.x+t,this._position.y+t,this._position.z))),e}subGetGripPoints(){return[this._position]}subGetOsnapPoints(t,e,n,r){t===x.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 m(this._widthFactor,0,0).applyMatrix4(r).add(s),a=new m(0,1,0).applyMatrix4(r).add(s),h=new m(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(),_=l.length();this._position.copy(s),this._normal.copy(g),_>0&&(this._rotation=Math.atan2(f.y,f.x)),y>0&&(this._size*=y,_>0&&(this._widthFactor*=_/y));const b=u.length();return b>0&&(this._thickness*=b),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 n=this.getTextStyle(),r=n?{...n,widthFactor:this.widthFactor,obliqueAngle:this.oblique*180/Math.PI}:void 0,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.styleName.trim();if(!t)return;const e=this.database.tables.textStyleTable.resolveAt(t);return e==null?void 0:e.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}};Ar.typeName="Shape";let An=Ar;const Sr=class Sr extends ${get dxfTypeName(){return"VIEWPORT"}constructor(){super(),this._centerPoint=new m,this._height=0,this._width=0,this._viewCenter=new m,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 m(this._centerPoint.x-t,this._centerPoint.y-e,this._centerPoint.z)),n.expandByPoint(new m(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 Ao;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 m(t.centerPoint.x-t.width/2,t.centerPoint.y-t.height/2,0),new m(t.centerPoint.x+t.width/2,t.centerPoint.y-t.height/2,0)])),n.push(e.lines([new m(t.centerPoint.x+t.width/2,t.centerPoint.y-t.height/2,0),new m(t.centerPoint.x+t.width/2,t.centerPoint.y+t.height/2,0)])),n.push(e.lines([new m(t.centerPoint.x+t.width/2,t.centerPoint.y+t.height/2,0),new m(t.centerPoint.x-t.width/2,t.centerPoint.y+t.height/2,0)])),n.push(e.lines([new m(t.centerPoint.x-t.width/2,t.centerPoint.y+t.height/2,0),new m(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}};Sr.typeName="Viewport";let Sn=Sr;const Lr=class Lr extends li{get dxfTypeName(){return"WIPEOUT"}subWorldDraw(t){const e=this.boundaryPath(),n=new At;return n.add(new j(e)),t.area(n)}dxfOutFields(t){return super.dxfOutFields(t),this}};Lr.typeName="Wipeout";let Ln=Lr;const xi=class xi extends Z{get dxfTypeName(){return"XLINE"}constructor(){super(),this._basePoint=new m,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===x.EndPoint){r.push(s);return}const o=this.unitDir.clone();if(o.lengthSq()===0)return;o.normalize();const a=new St(s,s.clone().add(o));switch(t){case x.Nearest:r.push(a.project(e));break;case x.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=so(this.basePoint,this.unitDir,t);if(!e)return null;const n=new xi;return n.basePoint=e,n.unitDir=this.unitDir.clone(),n}};xi.typeName="Xline";let In=xi;class Ta{constructor(t){this.position=new m(t.x,t.y,t.z||0)}}const Ir=class Ir extends Z{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 Ta(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 m(0,0,0),new m(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 m(t,e,n),new m(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 x.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 Ei(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}};Ir.typeName="PolygonMesh";let En=Ir;class Ca{constructor(t){this.position=new m(t.x,t.y,t.z||0)}}class Oa{constructor(t){this.vertexIndices=t}}const Er=class Er extends Z{get dxfTypeName(){return"POLYLINE"}constructor(t,e){super(),this._vertices=t.map(n=>new Ca(n)),this._faces=e.map(n=>new Oa(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 m(0,0,0),new m(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 m(t,e,n),new m(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 x.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 Ei(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)})}};Er.typeName="PolyFaceMesh";let Mn=Er;var ka=(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))(ka||{});const tu=["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"],eu=i=>tu[i];var Ya=(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))(Ya||{});class rr{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
|
|
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 Ut=256,Ss=[],Vr=256,je;for(;Ut--;)Ss[Ut]=(Ut+256).toString(16).substring(1);function rl(i){var t=0,e=11;if(!je||Ut+e>Vr*2)for(je="",Ut=0;t<Vr;t++)je+=Ss[Math.random()*256|0];return je.substring(Ut,Ut+++e)}const Je="TEMP_";let Me;function Ls(i){Me=i}function sl(){if(Me)return Me().workingDatabase;throw new Error("The current working database must be set before using it!")}class yt{constructor(t,e){if(t=t||{},this._attrs=new ws(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+rl()}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(Me)return Me().workingDatabase;throw new Error("The current working database must be set before using it!")}set database(t){this.assignDatabase(t)}assignDatabase(t){this._database=t}getXData(t){return this._xDataMap.get(t)}setXData(t){for(const e of t)e.code===zn.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 Q=["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"],jr=1234567,Vn=Math.PI/180,jn=180/Math.PI;function Is(){var i=Math.random()*4294967295|0,t=Math.random()*4294967295|0,e=Math.random()*4294967295|0,n=Math.random()*4294967295|0,r=Q[i&255]+Q[i>>8&255]+Q[i>>16&255]+Q[i>>24&255]+"-"+Q[t&255]+Q[t>>8&255]+"-"+Q[t>>16&15|64]+Q[t>>24&255]+"-"+Q[e&63|128]+Q[e>>8&255]+"-"+Q[e>>16&255]+Q[e>>24&255]+Q[n&255]+Q[n>>8&255]+Q[n>>16&255]+Q[n>>24&255];return r.toLowerCase()}function At(i,t,e){return Math.max(t,Math.min(e,i))}function Gn(i,t){return(i%t+t)%t}function Es(i,t,e,n,r){return n+(i-t)*(r-n)/(e-t)}function Ms(i,t,e){return i!==t?(e-i)/(t-i):0}function Hn(i,t,e){return(1-e)*i+e*t}function Ts(i,t,e,n){return Hn(i,t,1-Math.exp(-e*n))}function Cs(i,t){return t===void 0&&(t=1),t-Math.abs(Gn(i,t*2)-t)}function Os(i,t,e){return i<=t?0:i>=e?1:(i=(i-t)/(e-t),i*i*(3-2*i))}function ks(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 Xs(i,t){return i+Math.random()*(t-i)}function Ns(i){return i*(.5-Math.random())}function Bs(i){i!==void 0&&(jr=i);var t=jr+=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 Rs(i){return i*Vn}function zs(i){return i*jn}function Fs(i){return(i&i-1)===0&&i!==0}function Vs(i){return Math.pow(2,Math.ceil(Math.log(i)/Math.LN2))}function js(i){return Math.pow(2,Math.floor(Math.log(i)/Math.LN2))}function Pe(i){var t=Math.PI*2;return(i%t+t)%t}function Gs(i,t,e){return i>t&&i<e||i>e&&i<t}function Hs(i,t,e,n){return n===void 0&&(n=!1),i=Pe(i),t=Pe(t),e=Pe(e),n?t>e?i<=t&&i>=e:i<=t||i>=e:t<e?i>=t&&i<=e:i>=t||i<=e}function Dn(i){return i=Math.abs(i),i<1?0:Math.ceil(Math.log10(Math.abs(i)+1))}function Ds(i,t){t===void 0&&(t=1e-7);var e=Dn(i);return Math.max(Math.pow(10,e)*t,t)}var I={DEG2RAD:Vn,RAD2DEG:jn,generateUUID:Is,clamp:At,euclideanModulo:Gn,mapLinear:Es,inverseLerp:Ms,lerp:Hn,damp:Ts,pingpong:Cs,smoothstep:Os,smootherstep:ks,randInt:Ys,randFloat:Xs,randFloatSpread:Ns,seededRandom:Bs,degToRad:Rs,radToDeg:zs,isPowerOfTwo:Fs,ceilPowerOfTwo:Vs,floorPowerOfTwo:js,normalizeAngle:Pe,isBetween:Gs,isBetweenAngle:Hs,intPartLength:Dn,relativeEps:Ds},ol=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}}},G=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(I.relativeEps(this.x,t),I.relativeEps(this.y,t))},i.prototype[Symbol.iterator]=function(){return ol(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}(),ze=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],_=r[6],b=r[1],S=r[4],A=r[7],L=r[2],T=r[5],E=r[8];return s[0]=o*f+a*b+h*L,s[3]=o*y+a*S+h*T,s[6]=o*_+a*A+h*E,s[1]=l*f+c*b+u*L,s[4]=l*y+c*S+u*T,s[7]=l*_+c*A+u*E,s[2]=g*f+d*b+p*L,s[5]=g*y+d*S+p*T,s[8]=g*_+d*A+p*E,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(ki.makeScale(t,e)),this},i.prototype.rotate=function(t){return this.premultiply(ki.makeRotation(-t)),this},i.prototype.translate=function(t,e){return this.premultiply(ki.makeTranslation(t,e)),this},i.prototype.makeTranslation=function(t,e){return t instanceof G?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}(),ki=new ze,Pt=1e-6,B=2*Math.PI,al={x:0,y:0},Un={x:0,y:0,z:0},F=function(){function i(){this.equalPointTol=Pt,this.equalVectorTol=Pt}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 G(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=Pt),t<e&&t>-e},i.equal=function(t,e,n){return n===void 0&&(n=Pt),Math.abs(t-e)<n},i.great=function(t,e,n){return n===void 0&&(n=Pt),t-e>n},i.less=function(t,e,n){return n===void 0&&(n=Pt),t-e<n},i.isPositive=function(t,e){return e===void 0&&(e=Pt),t>e},i.isNonPositive=function(t,e){return e===void 0&&(e=Pt),t<=e},i}(),Ai=new F,ll=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}}},de=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,_=h*g+l*d+c*p+u*f,b=_>=0?1:-1,S=1-_*_;if(S>Number.EPSILON){var A=Math.sqrt(S),L=Math.atan2(A,_*b);y=Math.sin(y*L)/A,a=Math.sin(a*L)/A}var T=a*b;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 E=1/Math.sqrt(h*h+l*l+c*c+u*u);h*=E,l*=E,c*=E,u*=E}}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(At(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 ll(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}(),hl=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(Gr.setFromEuler(t))},i.prototype.applyAxisAngle=function(t,e){return this.applyQuaternion(Gr.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 Yi.copy(this).projectOnVector(t),this.sub(Yi)},i.prototype.reflect=function(t){return this.sub(Yi.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 hl(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}(),Yi=new w,Gr=new de,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 _=this.elements;return _[0]=t,_[4]=e,_[8]=n,_[12]=r,_[1]=s,_[5]=o,_[9]=a,_[13]=h,_[2]=l,_[6]=c,_[10]=u,_[14]=g,_[3]=d,_[7]=p,_[11]=f,_[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){var e=Math.hypot(t.x,t.y,t.z);if(!Number.isFinite(e)||e<1e-12)return this.identity(),this;var n=Math.abs(e-1)>1e-6?t.clone().multiplyScalar(1/e):t;if(Ai.equalPoint3d(n,w.Z_AXIS))this.identity();else{var r=new w(1,0,0);Math.abs(n.x)<1/64&&Math.abs(n.y)<1/64?r.crossVectors(w.Y_AXIS,n).normalize():r.crossVectors(w.Z_AXIS,n).normalize();var s=n.clone().cross(r).normalize();this.set(r.x,r.y,r.z,0,s.x,s.y,s.z,0,n.x,n.y,n.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/te.setFromMatrixColumn(t,0).length(),s=1/te.setFromMatrixColumn(t,1).length(),o=1/te.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(cl,t,ul)},i.prototype.lookAt=function(t,e,n){var r=this.elements;return ot.subVectors(t,e),ot.lengthSq()===0&&(ot.z=1),ot.normalize(),Ct.crossVectors(n,ot),Ct.lengthSq()===0&&(Math.abs(n.z)===1?ot.x+=1e-4:ot.z+=1e-4,ot.normalize(),Ct.crossVectors(n,ot)),Ct.normalize(),Ge.crossVectors(ot,Ct),r[0]=Ct.x,r[4]=Ge.x,r[8]=ot.x,r[1]=Ct.y,r[5]=Ge.y,r[9]=ot.y,r[2]=Ct.z,r[6]=Ge.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],_=n[14],b=n[3],S=n[7],A=n[11],L=n[15],T=r[0],E=r[4],X=r[8],M=r[12],z=r[1],k=r[5],R=r[9],D=r[13],et=r[2],mt=r[6],Zt=r[10],Qt=r[14],jt=r[3],Jt=r[7],Mt=r[11],Tt=r[15];return s[0]=o*T+a*z+h*et+l*jt,s[4]=o*E+a*k+h*mt+l*Jt,s[8]=o*X+a*R+h*Zt+l*Mt,s[12]=o*M+a*D+h*Qt+l*Tt,s[1]=c*T+u*z+g*et+d*jt,s[5]=c*E+u*k+g*mt+d*Jt,s[9]=c*X+u*R+g*Zt+d*Mt,s[13]=c*M+u*D+g*Qt+d*Tt,s[2]=p*T+f*z+y*et+_*jt,s[6]=p*E+f*k+y*mt+_*Jt,s[10]=p*X+f*R+y*Zt+_*Mt,s[14]=p*M+f*D+y*Qt+_*Tt,s[3]=b*T+S*z+A*et+L*jt,s[7]=b*E+S*k+A*mt+L*Jt,s[11]=b*X+S*R+A*Zt+L*Mt,s[15]=b*M+S*D+A*Qt+L*Tt,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],_=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)+_*(-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],_=t[15],b=u*y*l-f*g*l+f*h*d-a*y*d-u*h*_+a*g*_,S=p*g*l-c*y*l-p*h*d+o*y*d+c*h*_-o*g*_,A=c*f*l-p*u*l+p*a*d-o*f*d-c*a*_+o*u*_,L=p*u*h-c*f*h-p*a*g+o*f*g+c*a*y-o*u*y,T=e*b+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 E=1/T;return t[0]=b*E,t[1]=(f*g*s-u*y*s-f*r*d+n*y*d+u*r*_-n*g*_)*E,t[2]=(a*y*s-f*h*s+f*r*l-n*y*l-a*r*_+n*h*_)*E,t[3]=(u*h*s-a*g*s-u*r*l+n*g*l+a*r*d-n*h*d)*E,t[4]=S*E,t[5]=(c*y*s-p*g*s+p*r*d-e*y*d-c*r*_+e*g*_)*E,t[6]=(p*h*s-o*y*s-p*r*l+e*y*l+o*r*_-e*h*_)*E,t[7]=(o*g*s-c*h*s+c*r*l-e*g*l-o*r*d+e*h*d)*E,t[8]=A*E,t[9]=(p*u*s-c*f*s-p*n*d+e*f*d+c*n*_-e*u*_)*E,t[10]=(o*f*s-p*a*s+p*n*l-e*f*l-o*n*_+e*a*_)*E,t[11]=(c*a*s-o*u*s-c*n*l+e*u*l+o*n*d-e*a*d)*E,t[12]=L*E,t[13]=(c*f*r-p*u*r+p*n*g-e*f*g-c*n*y+e*u*y)*E,t[14]=(p*a*r-o*f*r-p*n*h+e*f*h+o*n*y-e*a*y)*E,t[15]=(o*u*r-c*a*r+c*n*h-e*u*h-o*n*g+e*a*g)*E,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,_=a*u,b=h*l,S=h*c,A=h*u,L=n.x,T=n.y,E=n.z;return r[0]=(1-(f+_))*L,r[1]=(d+A)*L,r[2]=(p-S)*L,r[3]=0,r[4]=(d-A)*T,r[5]=(1-(g+_))*T,r[6]=(y+b)*T,r[7]=0,r[8]=(p+S)*E,r[9]=(y-b)*E,r[10]=(1-(g+f))*E,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=te.set(r[0],r[1],r[2]).length(),o=te.set(r[4],r[5],r[6]).length(),a=te.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],ut.copy(this);var l=1/s,c=1/o,u=1/a;return ut.elements[0]*=l,ut.elements[1]*=l,ut.elements[2]*=l,ut.elements[4]*=c,ut.elements[5]*=c,ut.elements[6]*=c,ut.elements[8]*=u,ut.elements[9]*=u,ut.elements[10]*=u,e.setFromRotationMatrix(ut),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}(),te=new w,ut=new Y,cl=new w(0,0,0),ul=new w(1,1,1),Ct=new w,Ge=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:(vt[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(t),vt[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(t),vt[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(t),vt[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(t),vt[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(t),vt[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(t),vt[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(t),vt[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(t),this.setFromPoints(vt),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}(),vt=[new w,new w,new w,new w,new w,new w,new w,new w],Xi=new w,Hr=new G,tt=function(){function i(t,e){t===void 0&&(t=void 0),e===void 0&&(e=void 0),this.min=t==null?new G(1/0,1/0):new G(t.x,t.y),this.max=e==null?new G(-1/0,-1/0):new G(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=Hr.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 G(0,0):new G(0,0).addVectors(this.min,this.max).multiplyScalar(.5)},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"size",{get:function(){return this.isEmpty()?new G(0,0):new G(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,Hr).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}(),Dr=new w,dl=new w,gl=new ze,Wn=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=Dr.subVectors(n,e).cross(dl.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||gl.getNormalMatrix(t),r=this.coplanarPoint(Dr).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}(),pl=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){pl(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}(G),fl=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)}}(),m=function(i){fl(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),yl=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}}},Ur=new Y,Wr=new de,ml=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(At(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(-At(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(At(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(-At(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(At(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(-At(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),Ur.makeRotationFromQuaternion(t),this.setFromRotationMatrix(Ur,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 Wr.setFromEuler(this),this.setFromQuaternion(Wr,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 yl(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 $n(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 Us(i,t){if(i.length===0||t.length===0)return!1;var e=new tt().setFromPoints(i),n=new tt().setFromPoints(t);if(!e.intersectsBox(n))return!1;for(var r=0;r<i.length;){if($n(i[r],t,!0))return!0;r<i.length-1&&Ai.equalPoint2d(i[r+1],i[r])&&++r,++r}return!1}var Ws={isPointInPolygon:$n,isPolygonIntersect:Us},He=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},De=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 _l(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 wl(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 $s(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 qs(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 xl(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 Ni(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 qn(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(Mt){var Tt;return[Mt[0],Mt[1],(Tt=Mt[2])!==null&&Tt!==void 0?Tt: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 _=$s(u,e),b=_.slice();g&&b.unshift(_[0]),d&&b.push(_[_.length-1]);var S=qs(t,b),A=y+1,L=new Array(A),T=new Array(A),E=new Array(A),X=new Array(A),M=0;L[M]=new Array(A).fill(0),L[M][0]=1,T[M]=u[0][0],E[M]=u[0][1],X[M]=u[0][2],M++;for(var z=1;z<=f-1;z++){var k=_[z];L[M]=new Array(A).fill(0);for(var R=0;R<=y;R++)L[M][R]=Ft(R,t,k,S);T[M]=u[z][0],E[M]=u[z][1],X[M]=u[z][2],M++}if(L[M]=new Array(A).fill(0),L[M][y]=1,T[M]=u[f][0],E[M]=u[f][1],X[M]=u[f][2],M++,g){var D=S[t+1]-S[0],et=D!==0?t/D:0;L[M]=new Array(A).fill(0),L[M][0]=-et,L[M][1]=et,T[M]=(s=n==null?void 0:n[0])!==null&&s!==void 0?s:0,E[M]=(o=n==null?void 0:n[1])!==null&&o!==void 0?o:0,X[M]=(a=n==null?void 0:n[2])!==null&&a!==void 0?a:0,M++}if(d){var D=S[y+t+1]-S[y],et=D!==0?t/D:0;L[M]=new Array(A).fill(0),L[M][y-1]=-et,L[M][y]=et,T[M]=(h=r==null?void 0:r[0])!==null&&h!==void 0?h:0,E[M]=(l=r==null?void 0:r[1])!==null&&l!==void 0?l:0,X[M]=(c=r==null?void 0:r[2])!==null&&c!==void 0?c:0,M++}for(var mt=Ni(L,T),Zt=Ni(L,E),Qt=Ni(L,X),jt=new Array(A),z=0;z<A;z++)jt[z]=[mt[z],Zt[z],Qt[z]];var Jt=new Array(A).fill(1);return{controlPoints:jt,knots:S,weights:Jt}}function Ft(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*Ft(i,t-1,e,n)+a*Ft(i+1,t-1,e,n)}function Ae(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 De([],He(n[s]),!1);if(Math.abs(i-e[o])<1e-8)return De([],He(n[0]),!1);for(var a=[0,0,0],h=0,l=0;l<=s;l++){var c=Ft(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 De([],He(n[s]),!1);if(Math.abs(i-e[o])<1e-8)return De([],He(n[0]),!1)}return Math.abs(h)>=1e-10&&(a[0]/=h,a[1]/=h,a[2]/=h),a}function $i(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*Ft(i,t-1,e,n)),s>1e-10&&(o-=t/s*Ft(i+1,t-1,e,n)),o}function bl(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*$i(i,t-1,e,n)),s>1e-10&&(o-=t/s*$i(i+1,t-1,e,n)),o}function vl(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=Ft(f,o,i,e),_=$i(f,o,i,e),b=bl(f,o,i,e),S=r[f],A=S*y,L=S*_,T=S*b,E=n[f];l[0]+=A*E[0],l[1]+=A*E[1],l[2]+=A*E[2],c[0]+=L*E[0],c[1]+=L*E[1],c[2]+=L*E[2],u[0]+=T*E[0],u[1]+=T*E[1],u[2]+=T*E[2],g+=A,d+=L,p+=T}if(Math.abs(g)<1e-10){var X=Ae(i,t,e,n,r);return{point:X,deriv1:[0,0,0],deriv2:[0,0,0]}}var M=g*g,z=[l[0]/g,l[1]/g,l[2]/g],k=[(c[0]*g-l[0]*d)/M,(c[1]*g-l[1]*d)/M,(c[2]*g-l[2]*d)/M],R=u[0]*g-l[0]*p,D=u[1]*g-l[1]*p,et=u[2]*g-l[2]*p,mt=[R/M-2*d*k[0]/g,D/M-2*d*k[1]/g,et/M-2*d*k[2]/g];return{point:z,deriv1:k,deriv2:mt}}function Pl(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 Ks(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=Ae(s,i,t,e,n),u=1;u<=h;u++){var g=s+u*l,d=Ae(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 _=Ae(o,i,t,e,n),b=_[0]-c[0],S=_[1]-c[1],A=_[2]-c[2];return a+=Math.sqrt(b*b+S*S+A*A),a}function Al(i,t,e,n,r){return t===void 0&&(t=3),e===void 0&&(e="Uniform"),i.length===0?[]:qn(i,t,e,n,r).controlPoints}var $r=new Y,qr=new w,Sl=new w,Ll=new w,Bi=new m;function Zs(i){return new Y().setFromExtrusionDirection(new w(i.x,i.y,i.z))}function Te(i){return $r.setFromExtrusionDirection(new w(i.x,i.y,i.z)),$r.extractBasis(qr,Sl,Ll),qr.clone()}function qi(i,t){var e;return new m(i.x,i.y,(e=i.z)!==null&&e!==void 0?e:0).applyMatrix4(Zs(t))}function ge(i,t){var e;return new m(i.x,i.y,(e=i.z)!==null&&e!==void 0?e:0).applyMatrix4(Zs(t).invert())}function Ce(i,t,e){var n,r,s=ge(i,e),o=ge(t,e);return Bi.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)),I.normalizeAngle(Math.atan2(Bi.y,Bi.x))}function Qs(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 Il(i){return Math.abs(Qs(i))}function El(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 Ml(i){return i.length<3?0:Il(i)}function Js(i){return i.length<3?0:El(i)}var to=function(){function i(){this._boundingBoxNeedsUpdate=!1}return Object.defineProperty(i.prototype,"boundingBoxNeedUpdate",{get:function(){return this._boundingBoxNeedsUpdate},enumerable:!1,configurable:!0}),i}(),Tl=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)}}(),Kn=function(i){Tl(t,i);function t(){return i!==null&&i.apply(this,arguments)||this}return t.prototype.translate=function(e){return this.transform(new ze().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}(to),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)}}(),me=function(i){Cl(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}(Kn),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)}}(),Ue=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.")},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},$e=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))},ft=function(i){Ol(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(I.normalizeAngle(r)):I.normalizeAngle(r),a._endAngle=a._clockwise?a._mirrorAngle(I.normalizeAngle(s)):I.normalizeAngle(s)}else throw st.ILLEGAL_PARAMETERS;return a}return t.prototype.createByThreePoints=function(e,n,r){var s=function(X,M){return{x:(X.x+M.x)/2,y:(X.y+M.y)/2}},o=function(X,M){return(M.y-X.y)/(M.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,M,z,k){var R=(k-M)/(X-z),D=X*R+M;return{x:R,y:D}},f=h.y-g*h.x,y=l.y-d*l.x,_=p(g,f,d,y),b=Math.sqrt(Math.pow(e.x-_.x,2)+Math.pow(e.y-_.y,2)),S=function(X,M){return Math.atan2(X.y-M.y,X.x-M.x)},A=S(e,_),L=S(n,_),T=S(r,_),E=T>A&&T<L||A>T&&A<L||L>T&&L<A;this.center=_,this.radius=b,this._clockwise=!E,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 G(e),a=new G(n)):(s=Math.atan(r)*4,o=new G(n),a=new G(e));var h=new G().subVectors(a,o),l=h.length(),c=new G().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 G(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(I.normalizeAngle(e)):I.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:I.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?I.normalizeAngle(e-n):I.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?I.normalizeAngle(e-this.deltaAngle/2):I.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=Ue(s),a=o.next();!a.done;a=o.next()){var h=a.value,l=this._getInternalAngle(h);I.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 tt(new P(Math.min.apply(Math,$e([],We(c),!1)),Math.min.apply(Math,$e([],We(u),!1))),new P(Math.max.apply(Math,$e([],We(c),!1)),Math.max.apply(Math,$e([],We(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=I.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=Ue(a),l=h.next();!l.done;l=h.next()){var c=l.value,u=this._getInternalAngle(c);I.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(I.normalizeAngle(a)):I.normalizeAngle(a),l=this._getInternalAngle(h),c=this._getInternalAngle(this.startAngle),u=this._getInternalAngle(this.endAngle);if(I.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=Ue(u),y=f.next();!y.done;y=f.next()){var _=y.value,b=Math.atan2(_.y-this.center.y,_.x-this.center.x),S=this.clockwise?this._mirrorAngle(I.normalizeAngle(b)):I.normalizeAngle(b),A=this._getInternalAngle(S);(this.closed||I.isBetweenAngle(A,d,p,this.clockwise))&&g.push(_)}}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=Ue(g),y=f.next();!y.done;y=f.next()){var _=y.value,b=this.clockwise?this._mirrorAngle(I.normalizeAngle(_)):I.normalizeAngle(_),S=this._getInternalAngle(b);(this.closed||I.isBetweenAngle(S,d,p,this.clockwise))&&s.push(this.getPointAtAngle(b))}}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}(me),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)},kl=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.")},qe=1e-6;function eo(i,t){if(eh(i)){var e=Xl(i,t);return e?[e]:[]}var n=so(i),r=n.numberOfVertices;if(r<2)return[];var s=nh(n,t);return s?[s]:[]}function Yl(i){return so(i)}function Xl(i,t){var e,n,r=Nl(i);if(r.length===0)return null;var s=[];try{for(var o=kl(r),a=o.next();!a.done;a=o.next()){var h=a.value,l=Rl(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=Bl(i),u=jl(s,c,i.closed,t);if(u.length<2)return null;var g=new j;return u.forEach(function(d,p){g.addVertexAt(p,{x:d.x,y:d.y})}),g.closed=i.closed,g}function Nl(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 ft(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 Bl(i){for(var t=[],e=0;e<i.numberOfVertices;e++)t.push(i.getPointAt(e));return t}function Rl(i,t){if(i.kind==="line"){var e=Vl(i.start,i.end,t);return e?Ki({kind:"line"},e):null}var n=zl(i.arc,i.arc.startPoint,i.arc.endPoint,t);return n?{kind:"arc",arc:n}:null}function zl(i,t,e,n){var r=Fl(i,t,e,n),s=i.radius+r;return F.isNonPositive(s)?null:new ft(i.center,s,i.startAngle,i.endAngle,i.clockwise)}function Fl(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 Vl(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 jl(i,t,e,n){var r,s,o,a=i.length;if(a===0)return[];for(var h=Gl(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:$l(u)}:h[(c+1)%a];if(c>0&&h[c].filletPoints&&h[c].filletPoints.forEach(function(_){return l.push(_.clone())}),u.kind==="arc")for(var d=(o=h[c].nextSegmentStart)!==null&&o!==void 0?o:h[c].point,p=g.point,f=Hl(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 oo(l)}function Gl(i,t,e,n){for(var r=i.length,s=[],o=0;o<r;o++)o===0?s.push(e?Kr(i[r-1],i[0],t[0],n):{point:Wl(i[0])}):s.push(Kr(i[o-1],i[o],t[o],n));return s}function Hl(i,t,e,n){for(var r=i.nearestPoint(t),s=i.nearestPoint(e),o=Zi(i,r),a=Zi(i,s),h=Ul(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(Dl(i,g)))}return l}function Zi(i,t){return Math.atan2(t.y-i.center.y,t.x-i.center.x)}function Dl(i,t){var e=I.normalizeAngle(t);return i.clockwise?Qi(e):e}function Qi(i){var t=i*180/Math.PI;return(360-t)%360*(Math.PI/180)}function Ul(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 Wl(i){return i.kind==="line"?i.start.clone():i.arc.startPoint.clone()}function $l(i){return i.kind==="line"?i.end.clone():i.arc.endPoint.clone()}function Kr(i,t,e,n){return i.kind==="line"&&t.kind==="line"?{point:Ji({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"?Zr(i,t.arc,e,n,!0):i.kind==="arc"&&t.kind==="line"?Zr(t,i.arc,e,n,!1):i.kind==="arc"&&t.kind==="arc"?ql(i.arc,t.arc,e,n):{point:e.clone()}}function ql(i,t,e,n){var r=ro(i.endPoint,t.startPoint),s=th(i,t),o=s.filter(function(c){return ii(i,c)&&ii(t,c)});if(o.length>0)return{point:no(o,r)};var a=i.endPoint.clone(),h=t.startPoint.clone(),l=io(e,Math.abs(n),a,h);return{point:a,filletPoints:l,nextSegmentStart:h}}function Zr(i,t,e,n,r){var s=ro(r?i.end:i.start,r?t.startPoint:t.endPoint),o=Jl(i,t,s);if(Zl(i,o)&&ii(t,o))return{point:o};var a=Kl(i,e,n),h=r?t.startPoint.clone():t.endPoint.clone(),l=io(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 Kl(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 Zl(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 io(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=Ql(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 Ql(i,t){for(var e=t-i;e>Math.PI;)e-=B;for(;e<=-Math.PI;)e+=B;return e}function Jl(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 ii(t,p)});return no(d.length>0?d:g,e)}function ii(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=Zi(i,t),r=i.clockwise?Qi(I.normalizeAngle(i.startAngle)):I.normalizeAngle(i.startAngle),s=i.clockwise?Qi(I.normalizeAngle(i.endAngle)):I.normalizeAngle(i.endAngle);return I.isBetweenAngle(n,r,s,i.clockwise)}function th(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+qe)return[];if(r<o-qe)return[];var a=(i.radius*i.radius-t.radius*t.radius+r*r)/(2*r),h=i.radius*i.radius-a*a;if(h<-qe)return[];var l=i.center.x+a*e/r,c=i.center.y+a*n/r;if(h<=qe)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 no(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 ro(i,t){return new P((i.x+t.x)/2,(i.y+t.y)/2)}function eh(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 so(i){var t=ih(i.vertices.map(function(e){return new P(e.x,e.y)}),i.closed);return t.length===i.numberOfVertices?i:new j(t.map(function(e){return{x:e.x,y:e.y}}),i.closed)}function ih(i,t){var e=oo(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 oo(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 nh(i,t){for(var e=[],n=0;n<i.numberOfVertices;n++)e.push(i.getPointAt(n));var r=rh(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(Ji(a,h))}}else{s.push(r[0].start);for(var n=1;n<r.length;n++)s.push(Ji(r[n-1],r[n]));s.push(r[r.length-1].end)}var l=new j;return s.forEach(function(c,u){l.addVertexAt(u,{x:c.x,y:c.y})}),l.closed=i.closed,l}function rh(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 Ji(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 sh=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)}}(),tn=function(){return tn=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},tn.apply(this,arguments)},j=function(i){sh(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 ft(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 Ml(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 tt().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 tn({},e)}),this._closed)},t.prototype.getPoints3d=function(e,n){var r=[],s=this.getPoints(e);return s.forEach(function(o){return r.push(new m().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 ft(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 eo(this,e)},t}(me);function ao(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 m(i.x+r,i.y+s,i.z)}function oh(i,t,e){var n;if(i.length<2)return null;var r=Yl(new j(i.map(function(o){return{x:o.x,y:o.y}}),t)),s=eo(r,e);return(n=s[0])!==null&&n!==void 0?n:null}var ni=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},ce=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 ah(i,t,e,n){if(i.length<2||F.equalToZero(e))return null;var r=ho(i,n),s=r.points,o=r.tangents;if(s.length<2)return null;var a=o??lh(s,t),h=hh(s,a,e),l=t?uh(h):ch(h);if(l.length<2)return null;var c=new j;return l.forEach(function(u,g){c.addVertexAt(g,{x:u.x,y:u.y})}),c.closed=t,c}function lh(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 hh(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 ch(i){var t=ri(i);if(t.length<3)return t;for(;;){var e=lo(t,!1);if(!e||(t=ri(ce(ce(ce([],ni(t.slice(0,e.segmentA+1)),!1),[e.point],!1),ni(t.slice(e.segmentB+1)),!1)),t.length<2))break}return t}function uh(i){var t=ri(i);if(t.length<4)return t;for(;;){var e=lo(t,!0);if(!e||(t=ri(ce(ce(ce([],ni(t.slice(0,e.segmentA+1)),!1),[e.point],!1),ni(t.slice(e.segmentB+1)),!1)),t.length<3))break}return t}function lo(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(!dh(n,o,e,t)){var a=i[o],h=i[(o+1)%i.length],l=gh(r,s,a,h);if(l)return{point:l,segmentA:n,segmentB:o}}return null}function dh(i,t,e,n){return!!(t===i||t===i+1||n&&i===0&&t===e-1)}function gh(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=Ai.equalPointTol;return u<-d||u>1+d||g<-d||g>1+d?null:new P(i.x+u*r,i.y+u*s)}function ho(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 ri(i){return ho(i).points}var ph=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)}}(),St=function(i){ph(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 tt},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)&&Ws.isPointInPolygon(u[I.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=Qs(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 tt().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}(Kn),fh=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)}}(),yh=function(i){fh(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}(to),mh=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)}}(),Fe=function(i){mh(t,i);function t(){return i!==null&&i.apply(this,arguments)||this}return t}(yh),_h=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)}}(),Lt=function(i){_h(t,i);function t(e,n){var r=i.call(this)||this;return r._start=new m(e),r._end=new m(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 m((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(Gt).normalize();return new m(this._start).addScaledVector(r,e)}else{var r=this.delta(Gt).normalize();return new m(this._end).addScaledVector(r,e)}},t.prototype.extend=function(e,n){if(n===void 0&&(n=!1),n){var r=Gt.subVectors(this._start,this._end).normalize();this._start=new m(this._start).addScaledVector(r,e)}else{var r=this.delta(Gt).normalize();this._end=new m(this._end).addScaledVector(r,e)}return this._boundingBoxNeedsUpdate=!0,this},t.prototype.closestPointToPointParameter=function(e,n){Qr.subVectors(e,this._start),Ke.subVectors(this.endPoint,this.startPoint);var r=Ke.dot(Ke),s=Ke.dot(Qr),o=s/r;return n&&(o=I.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=Gt.subVectors(e,this.startPoint),s=r.dot(n);return new m().copy(n).multiplyScalar(s).add(this.startPoint)},t.prototype.perpPoint=function(e){var n=this.direction,r=this.startPoint,s=Gt.subVectors(e,r),o=s.dot(n),a=Gt.copy(n).multiplyScalar(o);return new m().addVectors(r,a)},t.prototype.calculateBoundingBox=function(){var e=new m(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 m(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 m(n.x+a.x*e,n.y+a.y*e,n.z),new m(r.x+a.x*e,r.y+a.y*e,r.z))},t}(Fe),Gt=new w,Qr=new w,Ke=new w,wh=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(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.")},wt=function(i){wh(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 Lt(s,s.clone().add(g)),f=new Lt(o,o.clone().add(d)),y=new w,_=p.closestPointToPoint(f.startPoint,!0,y);return _?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 m(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=I.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:I.normalizeAngle(e),this._boundingBoxNeedsUpdate=!0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"deltaAngle",{get:function(){return I.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=I.normalizeAngle(u-g);p<0&&(p=0),p>d&&(p=d);var f=this.getPointAtAngle(g+p),y=f.distanceTo(n),_=this.startPoint.distanceTo(n),b=this.endPoint.distanceTo(n);return _<y&&_<=b?this.startPoint.clone():b<y&&b<_?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),_=this.getAngle(g.clone()),b=[_+y,_-y];try{for(var S=Ri(b),A=S.next();!A.done;A=S.next()){var L=A.value,T=I.normalizeAngle(L-this.startAngle);T>=0&&T<=this.deltaAngle&&s.push(this.getPointAtAngle(this.startAngle+T))}}catch(E){n={error:E}}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=Ri(p),y=f.next();!y.done;y=f.next()){var _=y.value,b=this.getAngle(_.clone()),S=I.normalizeAngle(b-this.startAngle);S>=0&&S<=this.deltaAngle&&s.push(new m(_.x,_.y,_.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 m(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)I.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=Ri(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(Jr.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(Jr.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 m(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(Un);return new Wn(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}(Fe),Jr=new w,xh=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)}}(),Oe=function(i){xh(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 m(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=I.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:I.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 I.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 tt({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 m(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(b){var S=new P(b).sub(r),A=S.dot(d),L=S.dot(p);return I.normalizeAngle(Math.atan2(L/u,A/c))},y=n.determinant()<0?!this.clockwise:this.clockwise,_=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=_.center,this.majorAxisRadius=_.majorAxisRadius,this.minorAxisRadius=_.minorAxisRadius,this._startAngle=_._startAngle,this._endAngle=_._endAngle,this._clockwise=_._clockwise,this.rotation=_.rotation,this._boundingBoxNeedsUpdate=!0,this},t.prototype.getPointAtAngle=function(e){return this.getPoint(this.closed?e/B:I.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,_=p,b=0;b<32;b++){var S=(y+_)/2;c(y)*c(S)<=0?_=S:y=S}l.push((y+_)/2)}u=p,g=f}return l},t}(me),bh=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)}}(),vh=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.")},Zn=function(i){bh(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 m(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=I.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:I.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:I.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)I.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=vh(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(_){e={error:_}}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 m(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 m(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 m(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,_=0;_<32;_++){var b=(f+y)/2;l(f)*l(b)<=0?y=b:f=b}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 _=new w(y).sub(r),b=_.dot(u),S=_.dot(d);return I.normalizeAngle(Math.atan2(S/c,b/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(Un);return new Wn(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}(Fe),Ph=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)}}(),Rt=function(i){Ph(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 tt(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}(me),Ah=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)}}(),zi=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},Fi=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))},Qn=function(i){Ah(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=Fi([],zi(e),!1),s=[],o=n*n,a=function(p,f){var y=p.x-f.x,_=p.y-f.y;return y*y+_*_<=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 tt;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 xt?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,_=f*f+y*y;_<a&&(a=_,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 Rt?new Rt(e.endPoint,e.startPoint):e instanceof ft?new ft(e.center,e.radius,e.endAngle,e.startAngle,!e.clockwise):e instanceof Oe?new Oe(e.center,e.majorAxisRadius,e.minorAxisRadius,e.endAngle,e.startAngle,!e.clockwise,e.rotation):e instanceof xt?t.reverseSplineEdge(e):e},t.reverseSplineEdge=function(e){var n=Fi([],zi(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?Fi([],zi(h),!1).reverse():void 0;return new xt(n,a,l,e.degree,e.closed)},t}(me),Sh=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)}}(),Vi=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}(),co=function(i){Sh(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 Vi,o._py=new Vi,o._pz=new Vi,o._points=e.map(function(a){return new m(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 m},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"endPoint",{get:function(){return this._points.length>0?this._points[this._points.length-1]:new m},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 m);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 m(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 m(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),_=Math.pow(d.distanceToSquared(u),p);y<1e-4&&(y=1),f<1e-4&&(f=y),_<1e-4&&(_=y),this._px.initNonuniformCatmullRom(c.x,g.x,d.x,u.x,f,y,_),this._py.initNonuniformCatmullRom(c.y,g.y,d.y,u.y,f,y,_),this._pz.initNonuniformCatmullRom(c.z,g.z,d.z,u.z,f,y,_)}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 m(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 m;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}(Fe),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},re=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 ts(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 dt=function(){function i(t,e,n,r){this._degree=t,this._knots=re([],ne(e),!1),this._controlPoints=n.map(function(s){return{x:s.x,y:s.y,z:s.z}}),this._weights=r?re([],ne(r),!1):new Array(n.length).fill(1)}return i.prototype.degree=function(){return this._degree},i.prototype.knots=function(){return re([],ne(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 re([],ne(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 vl(t,this._degree,this._knots,e,this._weights)},i.prototype.signedPlanarCurvatureAt=function(t){var e=this.evaluate(t);return Pl(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=Lh(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,_=Math.max(Math.abs(this.signedPlanarCurvatureAt(p)),Math.abs(this.signedPlanarCurvatureAt(f)),Math.abs(this.signedPlanarCurvatureAt(y)));r*_>.85&&g.push(y)}if(g.length===0)break;if(c=Ih(c,g),c.length>e){c=c.slice(0,e);break}}var b=[],S=[];return c.forEach(function(A){var L=n.evaluate(A);b.push(new P(L.point[0],L.point[1]));var T=L.deriv1[0],E=L.deriv1[1],X=Math.hypot(T,E);S.push(X>1e-10?new P(T/X,E/X):new P(1,0))}),{points:b,tangents:S}},i.prototype.length=function(){var t=this._controlPoints.map(function(e){return[e.x,e.y,e.z]});return Ks(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=qn(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 co(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=ts(t,a),l=0;l<=e;l++){var c=s+(o-s)*l/e,u=this.point(c),g=ts(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 Lh(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 Ih(i,t){var e=re(re([],ne(i),!1),ne(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}function es(i){var t,e,n;if(!i)return!1;var r=(t=i.x)!==null&&t!==void 0?t:0,s=(e=i.y)!==null&&e!==void 0?e:0,o=(n=i.z)!==null&&n!==void 0?n:0;return r*r+s*s+o*o>1e-20}function Eh(i,t,e){var n=i??0;return n<1&&e>0&&t>0&&(n=e-t-1),n<1&&(n=3),n=Math.min(n,t-1),Math.max(1,n)}function Mh(i,t,e){var n=i??0;n<1&&(n=3);var r=t+e-1;return n=Math.min(n,r),Math.max(1,n)}function Th(i,t){if(!(!i||i.length!==t))return i}var Ch=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)}}(),is=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},ns=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))},xt=function(i){Ch(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=dt.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=dt.createClosedCurve(h._fitPoints,h._degree,h._knotParameterization);else{var g=h.toNurbsPoints(h._fitPoints);h._nurbsCurve=dt.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=dt.createFitPointsForClosedCurve(this._fitPoints),n=this.toNurbsPoints(e);this._nurbsCurve=dt.byPoints(n,this._degree,this._knotParameterization)}else{var n=this.toNurbsPoints(this._fitPoints);this._nurbsCurve=dt.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=dt.createFitPointsForClosedCurve(this._controlPoints),n=this.toNurbsPoints(e);this._nurbsCurve=dt.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=dt.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 ns([],is(this._nurbsCurve.knots()),!1)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"weights",{get:function(){return ns([],is(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 m(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 m(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 m(r.x,r.y,r.z||0)},t.prototype.evaluateAt=function(e){var n=this._nurbsCurve.point(e);return new m(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 m(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 Js(e)},enumerable:!1,configurable:!0}),t.prototype.transform=function(e){if(this._fitPoints&&this._knotParameterization)this._fitPoints=this._fitPoints.map(function(s){return new m(s).applyMatrix4(e)}),this._startTangent&&(this._startTangent=new m(this._startTangent).transformDirection(e)),this._endTangent&&(this._endTangent=new m(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 m(s).applyMatrix4(e)}),this._nurbsCurve=dt.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.fromControlPoints=function(e,n,r,s,o){if(e.length<2||n.length<2)return null;var a=Eh(s,e.length,n.length);if(e.length<a+1)return null;try{return new t(e,n,Th(r,e.length),a,o)}catch{return null}},t.fromFitPoints=function(e,n,r,s,o,a){if(e.length<2)return null;var h=es(o),l=es(a),c=(h?1:0)+(l?1:0),u=Mh(r,e.length,c);if(e.length+c<u+1)return null;try{return h||l?new t(e,n,u,s,h?o:void 0,l?a:void 0):new t(e,n,u,s)}catch{return null}},t.fromDwgSplineEdge=function(e){if(e.numberOfControlPoints>0&&e.numberOfKnots>0){var n=e.controlPoints.map(function(a){var h;return{x:a.x,y:a.y,z:(h=a.z)!==null&&h!==void 0?h:0}}),r=!0,s=e.controlPoints.map(function(a){return a.weight==null&&(r=!1),a.weight||1});return t.fromControlPoints(n,e.knots,r?s:void 0,e.degree,!1)}if(e.numberOfFitData>0){var o=e.fitDatum.map(function(a){var h;return{x:a.x,y:a.y,z:(h=a.z)!==null&&h!==void 0?h:0}});return t.fromFitPoints(o,"Uniform",e.degree,!1,t.toPoint3dLike(e.startTangent),t.toPoint3dLike(e.endTangent))}return null},t.toPoint3dLike=function(e){var n;if(e)return{x:e.x,y:e.y,z:(n=e.z)!==null&&n!==void 0?n:0}},t}(Fe);class Ve{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 Vt extends yt{constructor(t,e){t=t||{},Re(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 uo=(i=>(i[i.Any=0]="Any",i[i.Uniform=1]="Uniform",i))(uo||{});const Yt=class Yt extends Vt{static isModelSapceName(t){return t.toLowerCase()==Yt.MODEL_SPACE_NAME.toLowerCase()}static isPaperSapceName(t){return t.toLowerCase().startsWith(Yt.PAPER_SPACE_NAME_PREFIX.toLowerCase())}constructor(){super(),this._origin=new m,this._layoutId="",this._entities=new Map,this._blockInsertUnits=0,this._explodability=1,this._blockScaling=1,this._bmpPreview=void 0}get isModelSapce(){return Yt.isModelSapceName(this.name)}get isPaperSapce(){return Yt.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),n.dxfTypeName==="INSERT"&&"syncAttributeDatabases"in n&&typeof n.syncAttributeDatabases=="function"&&n.syncAttributeDatabases()};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 Ve(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}};Yt.MODEL_SPACE_NAME="*Model_Space",Yt.PAPER_SPACE_NAME_PREFIX="*Paper_Space";let J=Yt;var go=(i=>(i[i.kInches=0]="kInches",i[i.kMillimeters=1]="kMillimeters",i[i.kPixels=2]="kPixels",i))(go||{}),po=(i=>(i[i.k0degrees=0]="k0degrees",i[i.k90degrees=1]="k90degrees",i[i.k180degrees=2]="k180degrees",i[i.k270degrees=3]="k270degrees",i))(po||{}),fo=(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))(fo||{}),yo=(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))(yo||{}),mo=(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))(mo||{}),_o=(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))(_o||{});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 wo extends yt{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 tt,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 Si extends wo{constructor(){super(),this._tabOrder=-1,this._tabSelected=!1,this._blockTableRecordId="",this._layoutName="",this._limits=new tt,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 xo{constructor(){this.events={layoutCreated:new U,layoutRemoved:new U,layoutRenamed:new U,layoutSwitched:new U}}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 Si;r.layoutName=t,r.tabOrder=n.objects.layout.maxTabOrder;const s=new J;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||sl()}setCurrentLayoutInternal(t,e){return t?(this.events.layoutSwitched.dispatch({layout:t}),e.currentSpaceId=t.blockTableRecordId,!0):!1}}let ti;function kh(i){ti=i}function bo(){return si.instance}const pi=class pi{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||(ti||(ti=()=>new xo),this._layoutManager=ti()),this._layoutManager}};pi.instance=new pi;let si=pi;Ls(bo);var vo=(i=>(i.kForRead="kForRead",i.kForWrite="kForWrite",i))(vo||{});class Jn{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 Jn(this._values)}[Symbol.iterator](){return this._values[Symbol.iterator]()}}class Po{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 Kt{static get instance(){return this._instance||(this._instance=new Kt),this._instance}constructor(){this._blocks=new Map}createKey(t,e){let n=e.toString();return!n&&e.isByColor&&(n=`RGB:${e.red},${e.green},${e.blue}`),`${t}_${n}`}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=n.RGB??0,c=this.createKey(e.name,n);let u;if(this.has(c))u=this.get(c);else{const g=e.newIterator();for(const d of g)d.visibility&&(d.color.isByBlock?(rs.copy(d.color),n.isForeground?d.color.setForeground():d.color.setRGBValue(l),this.addEntity(d,h,t),d.color.copy(rs)):this.addEntity(d,h,t));u=t.group(h),u&&s&&J.name&&!J.name.startsWith("*U")&&this.set(c,u)}return u&&o&&(u.applyMatrix(o),a&&(a.x!=0||a.y!=0||a.z!=1)&&(o.setFromExtrusionDirection(a),u.applyMatrix(o))),u&&r&&r.length>0&&(u.bakeTransformToChildren(),r.forEach(g=>u.addChild(g))),u}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 rs=new O;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={}));var Li=function(){function i(t){t===void 0&&(t={});var e,n,r,s;this.database=t.database,this.foregroundOnDark=(e=t.foregroundOnDark)!==null&&e!==void 0?e:ke,this.foregroundOnLight=(n=t.foregroundOnLight)!==null&&n!==void 0?n:Ye,this.backgroundIsDark=(r=t.backgroundIsDark)!==null&&r!==void 0?r:!0,this.fallbackRgb=(s=t.fallbackRgb)!==null&&s!==void 0?s:16777215}return i.prototype.resolveSubEntityTraitsRgb=function(t){var e,n,r,s=t.color;return s.isForeground?this.backgroundIsDark?this.foregroundOnDark:this.foregroundOnLight:s.isByLayer||s.isByBlock?(e=this.fallbackRgb)!==null&&e!==void 0?e:16777215:(r=(n=s.RGB)!==null&&n!==void 0?n:this.fallbackRgb)!==null&&r!==void 0?r:16777215},i.fromBackgroundColor=function(t,e){return t===void 0&&(t=Ao),new i({database:e,foregroundOnDark:ke,foregroundOnLight:Ye,backgroundIsDark:!So(t),fallbackRgb:16777215})},i}(),Ao=0,ke=16777215,Ye=0,Yh=16777215,Xh=128,Nh=new Li({database:void 0,foregroundOnDark:ke,foregroundOnLight:Ye,backgroundIsDark:!0,fallbackRgb:16777215});function So(i){var t=i>>16&255,e=i>>8&255,n=i&255;return .299*t+.587*e+.114*n>Xh}function Bh(i){var t=Li.fromBackgroundColor(i);return t.backgroundIsDark?t.foregroundOnDark:t.foregroundOnLight}function Rh(i){return i?Ye:ke}function zh(i,t){return Li.fromBackgroundColor(t).resolveSubEntityTraitsRgb(i)}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 Lo=function(){function i(){this._number=-1,this._id="",this._groupId="",this._centerPoint=new m,this._height=0,this._width=0,this._viewCenter=new m,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 tt;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 tt;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 zt="Continuous",K="Standard",Xt="Standard",Nt="Standard",Fh="ANSI31",Io="ANGLE",Wt="SOLID",Eo="USER",Mo="LINEAR",q="ByLayer",bt="ByBlock",pe="*Active",en="mlightcad",nn="ACAD",Vh=Object.freeze({x:0,y:0}),jh=Object.freeze({x:0,y:0}),Gh=Object.freeze({x:1,y:1}),Hh=Object.freeze({x:0,y:0,z:1}),Dh=Object.freeze({x:0,y:0,z:0});var H=(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))(H||{}),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 To(i){return i==4||i==5||i==6||i==7||i==12||i==13||i==14||i==15||i==16||i==17}function Co(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"},Uh=Object.freeze(Object.values(v)),fi=class fi{constructor(){this.registry=new Map,this.cache=new Map,this.events={sysVarChanged:new U},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 O(exports.AcCmColorMethod.ByLayer)}),this.registerVar({name:v.CELTSCALE,type:"number",isDbVar:!0,defaultValue:-1}),this.registerVar({name:v.CELTYPE,type:"string",isDbVar:!0,defaultValue:q}),this.registerVar({name:v.CELWEIGHT,type:"number",isDbVar:!0,defaultValue:exports.AcGiLineWeight.ByLayer}),this.registerVar({name:v.CETRANSPARENCY,type:"transparency",isDbVar:!0,defaultValue:new W}),this.registerVar({name:v.CLAYER,type:"string",isDbVar:!0,defaultValue:"0"}),this.registerVar({name:v.CMLEADERSTYLE,type:"string",isDbVar:!0,defaultValue:Nt}),this.registerVar({name:v.CMLSCALE,type:"number",isDbVar:!0,defaultValue:1}),this.registerVar({name:v.CMLSTYLE,type:"string",isDbVar:!0,defaultValue:Xt}),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 O(exports.AcCmColorMethod.None)}),this.registerVar({name:v.HPCOLOR,type:"color",isDbVar:!0,defaultValue:new O(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:Io}),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 W}),this.registerVar({name:v.INSUNITS,type:"number",isDbVar:!0,defaultValue:V.Millimeters}),this.registerVar({name:v.LUNITS,type:"number",isDbVar:!0,defaultValue:H.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 O(exports.AcCmColorMethod.ByColor);return t.setRGB(96,165,250),t})()}),this.registerVar({name:v.MODELBKCOLOR,type:"color",isDbVar:!1,defaultValue:(()=>{const t=new O(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 O(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 fi),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 O(exports.AcCmColorMethod.None):O.fromString(e)}parseTransparency(t){if(t instanceof W)return t;if(typeof t=="number")return W.deserialize(t);if(!(typeof t!="string"&&!(t instanceof String)))return W.fromString(String(t))}hasValueChanged(t,e){return t instanceof O&&e instanceof O||t instanceof W&&e instanceof W?!t.equals(e):!Object.is(t,e)}normalizeName(t){return t.toLowerCase()}};fi._instance=null;let pt=fi;const Oo="Load Database",ss=3e4,Wh=12e4,$h=1024*1024;class it extends xs{constructor(t,e){super(t.stage),this.data=t,this.progress=e}async run(t){const e=Fn.getInstance().getEntry(Oo),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 ko{constructor(t={}){this.config={useWorker:t.useWorker??!0,...t}}async read(t,e,n,r,s,o){const a={name:Oo,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}};Fn.getInstance().collect(a),this.progress=r;const h={value:0},l=new bs;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=pt.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"),Kt.instance.clear())}getParserWorkerTimeout(t,e){const n=e??this.config.timeout;if(n!=null)return n;const r=Math.ceil(t.byteLength/$h),s=ss+r*1e3;return Math.min(Wh,Math.max(ss,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 Yo extends ko{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 Po(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 Xo{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 No{constructor(t){this.framework=new Xo(t)}async execute(t,e){return this.framework.execute(t,e)}getStats(){return this.framework.getStats()}destroy(){this.framework.destroy()}}function qh(i){return new No(i)}class Kh{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 Se=(i=>(i.DXF="dxf",i.DWG="dwg",i))(Se||{});class _t{constructor(){this.events={registered:new U,unregistered:new U},this._converters=new Map}static createInstance(){return _t._instance==null&&(_t._instance=new _t),this._instance}static get instance(){return _t._instance||(_t._instance=new _t),_t._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 Bo=(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))(Bo||{}),Ro=(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))(Ro||{}),zo=(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))(zo||{}),Fo=(i=>(i[i.None=0]="None",i[i.Leading=1]="Leading",i[i.Trailing=2]="Trailing",i[i.LeadingAndTrailing=3]="LeadingAndTrailing",i))(Fo||{}),Vo=(i=>(i[i.Bottom=0]="Bottom",i[i.Middle=1]="Middle",i[i.Top=2]="Top",i))(Vo||{});const yi=class yi extends Vt{constructor(t,e){t=t||{},Re(t,yi.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}};yi.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 fe=yi;class tr extends Vt{constructor(t,e){t=t||{},Re(t,{color:new O,description:"",standardFlags:0,isHidden:!1,isInUse:!0,isOff:!1,isPlottable:!0,transparency:new W,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 $t extends Vt{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,_=Math.max(s*2,2);let b=l;for(;b<c;)for(const S of g){if(b>=c)break;const A=S.elementLength;if(A===0){p.push(b),b=Math.min(b+_,c);continue}const L=Math.max(Math.abs(A)*f,y),T=Math.min(b+L,c);A>0&&T>b&&d.push([b,T]),b=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 er extends Vt{constructor(t){super(),this.name=t.name,this._textStyle=t,this._textStyle.font=this.getFileNameWithoutExtension(this._textStyle.font||this._textStyle.extendedFont||this.name)}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._textStyle.standardFlag&4)===4}set isVertical(t){t?this._textStyle.standardFlag|=4:this._textStyle.standardFlag&=-5}get isShapeFile(){return(this._textStyle.standardFlag&1)===1}set isShapeFile(t){t?this._textStyle.standardFlag|=1:this._textStyle.standardFlag&=-2}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.textStyle.textGenerationFlag),t.writeDouble(42,this.priorSize),t.writeString(3,this.fileName),t.writeString(4,this.bigFontFileName),this}}var x=(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))(x||{});function Zh(i){let t=0;for(const e of i)t|=1<<e-1;return t}function Qh(i){const t=[];for(const e of Object.values(x)){if(typeof e!="number")continue;const n=1<<e-1;i&n&&t.push(e)}return t}function Jh(i,t){return i^1<<t-1}function tc(i,t){return(i&1<<t-1)!==0}function ec(i,t){return i|1<<t-1}function ic(i,t){return i&~(1<<t-1)}const nc={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:[]},jo={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:[]},ar=class ar extends yt{constructor(){super(...arguments),this._visibility=!0,this._transparency=new W,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(){return this.resolveStandardColor()}resolveStandardColor(){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 lineType(){var t;return this._lineType==null&&(this._lineType=((t=this.database)==null?void 0:t.celtype)??q),this._lineType}set lineType(t){t?t.toUpperCase()==="BYLAYER"?this._lineType=q:t.toUpperCase()==="BYBLOCK"?this._lineType=bt:this._lineType=t:this._lineType=q}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 O,this.database.cecolor&&this._color.copy(this.database.cecolor)),this._color}setEntityColor(t){this._color==null&&(this._color=new O),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 O,this.database.cecolor&&this._color.copy(this.database.cecolor)),this._lineType==null&&(this._lineType=this.database.celtype??q),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.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),t.context.database=this.database;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==q){const t=this.database.tables.layerTable.getAt(this.layer);if(t&&t.linetype)return{type:"ByLayer",name:t.linetype}}else return this.lineType==bt?{type:"ByBlock",name:zt}:{type:"UserSpecified",name:this.lineType};return{type:"UserSpecified",name:zt}}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)}};ar.typeName="Entity";let $=ar;function os(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 ct(i,t){if(t.length===0)return;let e=new m(t[0].x,t[0].y,t[0].z||0),n=os(i,e);for(let r=1;r<t.length;r++){const s=t[r],o=new m(s.x,s.y,s.z||0),a=os(i,o);a<n&&(e=o,n=a)}return e}function _e(i,t,e,n,r){const s=new m(i.x,i.y,i.z||0),o=new m(t.x,t.y,t.z||0),a=new Lt(s,o);switch(e){case x.EndPoint:r.push(s,o);break;case x.MidPoint:r.push(a.midPoint);break;case x.Nearest:r.push(a.nearestPoint(n));break;case x.Perpendicular:r.push(a.perpPoint(n));break}}function oi(i,t,e,n,r,s,o){if(e){const a=new ft(i,t,e);switch(r){case x.EndPoint:o.push(new m(a.startPoint.x,a.startPoint.y,n),new m(a.endPoint.x,a.endPoint.y,n));break;case x.MidPoint:o.push(new m(a.midPoint.x,a.midPoint.y,n));break;case x.Nearest:{const h=a.nearestPoint({x:s.x,y:s.y});o.push(new m(h.x,h.y,n));break}case x.Perpendicular:{a.perpendicularPoints({x:s.x,y:s.y}).forEach(l=>o.push(new m(l.x,l.y,n)));break}case x.Tangent:{a.tangentPoints({x:s.x,y:s.y}).forEach(l=>o.push(new m(l.x,l.y,n)));break}}return}_e(new m(i.x,i.y,n),new m(t.x,t.y,n),r,s,o)}function ir(i,t,e,n,r){if(i.length!==0)switch(e){case x.EndPoint:i.forEach(s=>r.push(new m(s.x,s.y,s.z||0)));break;case x.MidPoint:case x.Nearest:case x.Perpendicular:{const s=i.length,o=[];for(let a=0;a<s;a++){const h=[];_e(i[a],i[(a+1)%i.length],e,n,h),o.push(...h)}if(e===x.MidPoint)r.push(...o);else{const a=ct(n,o);a&&r.push(a)}break}}}var Le=(i=>(i[i.UserDefined=0]="UserDefined",i[i.Predefined=1]="Predefined",i[i.Custom=2]="Custom",i))(Le||{}),Go=(i=>(i[i.Normal=0]="Normal",i[i.Outer=1]="Outer",i[i.Ignore=2]="Ignore",i))(Go||{}),Ho=(i=>(i[i.HatchObject=0]="HatchObject",i[i.GradientObject=1]="GradientObject",i))(Ho||{}),Do=(i=>(i[i.PreDefinedGradient=0]="PreDefinedGradient",i[i.UserDefinedGradient=1]="UserDefinedGradient",i))(Do||{});const lr=class lr extends ${constructor(){super(),this._gradientAngle=0,this._elevation=0,this._geo=new St,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()===Wt}set isSolidFill(t){this._isSolidFill=t}get color(){if(this.hasExplicitColor())return this.getEntityColor();const t=this.database,e=pt.instance().getVar(v.HPCOLOR,t);return e instanceof O&&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()===Wt,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()===""?Mo: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=pt.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=pt.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=pt.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(pt.instance().getVar(v.HPSCALE,t))}getEffectiveAssociative(){if(this._associativeSet)return this._associative;const t=this.database,e=pt.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 O)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 O.fromString(t)}parseHpTransparency(t){if(t instanceof W)return t.clone();if(!this.shouldUseSysVarOverride(t))return;const e=t.trim();if(/^bylayer$/i.test(e)||/^byblock$/i.test(e))return W.fromString(e);const n=Number(e);if(Number.isInteger(n)&&n>=0&&n<=90){const r=new W;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===Wt){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=jo.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 St;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:Le[0],value:0},{label:Le[1],value:1},{label:Le[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 j){const l=a,c=l.numberOfVertices;if(c===0)return;switch(t){case x.EndPoint:for(let u=0;u<c;u++){const g=l.getPointAt(u);r.push(new m(g.x,g.y,s))}break;case x.MidPoint:case x.Nearest:case x.Perpendicular:case x.Tangent:{const u=a.closed?c:c-1;for(let g=0;g<u;g++){const d=[];oi(l.getPointAt(g),l.getPointAt((g+1)%c),(h=l.vertices[g])==null?void 0:h.bulge,s,t,e,d),t===x.MidPoint?r.push(...d):o.push(...d)}break}}return}a.curves.forEach(l=>{if(l instanceof Rt){const c=[];oi(l.startPoint,l.endPoint,void 0,s,t,e,c),t===x.MidPoint?r.push(...c):t===x.Nearest||t===x.Perpendicular||t===x.Tangent?o.push(...c):r.push(...c)}else if(l instanceof ft)switch(t){case x.EndPoint:r.push(new m(l.startPoint.x,l.startPoint.y,s),new m(l.endPoint.x,l.endPoint.y,s));break;case x.MidPoint:r.push(new m(l.midPoint.x,l.midPoint.y,s));break;case x.Nearest:{const c=l.nearestPoint({x:e.x,y:e.y});o.push(new m(c.x,c.y,s));break}case x.Perpendicular:{l.perpendicularPoints({x:e.x,y:e.y}).forEach(u=>o.push(new m(u.x,u.y,s)));break}case x.Tangent:{l.tangentPoints({x:e.x,y:e.y}).forEach(u=>o.push(new m(u.x,u.y,s)));break}}else if(l instanceof Oe)switch(t){case x.EndPoint:r.push(new m(l.startPoint.x,l.startPoint.y,s),new m(l.endPoint.x,l.endPoint.y,s));break;case x.MidPoint:{const c=l.getPoint(.5);r.push(new m(c.x,c.y,s));break}case x.Nearest:{const c=l.nearestPoint({x:e.x,y:e.y});o.push(new m(c.x,c.y,s));break}case x.Perpendicular:{l.perpendicularPoints({x:e.x,y:e.y}).forEach(u=>o.push(new m(u.x,u.y,s)));break}case x.Tangent:{l.tangentPoints({x:e.x,y:e.y}).forEach(u=>o.push(new m(u.x,u.y,s)));break}}})}),(t===x.Nearest||t===x.Perpendicular||t===x.Tangent)&&o.length>0){const a=ct(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 ze(e[0],e[4],e[12],e[1],e[5],e[13],0,0,1);this._geo.transform(n),this._elevation=new m(0,0,this._elevation).applyMatrix4(t).z;const r=new m(1,0,0).applyMatrix4(t),s=new m().applyMatrix4(t),o=new m(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?Wt:Eo)),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 j){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 Qn){const l=h?1:0;t.writeInt16(92,l),t.writeInt16(93,o.numberOfEdges);for(const c of o.curves){if(c instanceof Rt){t.writeInt16(72,1),t.writePoint2d(10,c.startPoint),t.writePoint2d(11,c.endPoint);continue}if(c instanceof ft){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 Oe){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 xt){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,_)=>{t.writePoint2d(10,y),f&&t.writeDouble(42,d[_]??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}};lr.typeName="Hatch";let ai=lr;class Uo{constructor(t){this.db=t}createDefaultLayer(){const t=new O;return t.colorIndex=7,this.db.tables.layerTable.add(new tr({name:"0",standardFlags:0,linetype:"Continuous",lineWeight:0,isOff:!1,color:t,isPlottable:!0}))}createDefaultLineType(){this.db.tables.linetypeTable.add(new $t({name:"ByBlock",standardFlag:0,description:"",totalPatternLength:0})),this.db.tables.linetypeTable.add(new $t({name:"ByLayer",standardFlag:0,description:"",totalPatternLength:0})),this.db.tables.linetypeTable.add(new $t({name:"Continuous",standardFlag:0,description:"Solid line",totalPatternLength:0}))}createDefaultTextStyle(){this.db.tables.textStyleTable.add(new er({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 fe({name:K,dimtxsty:K}))}createDefaultLayout(){const t=new Si;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 ai;e.patternName=Wt;const n=new Qn;n.add(new Rt({x:0,y:0},{x:-1,y:.125})),n.add(new Rt({x:-1,y:.125},{x:-1,y:-.125})),n.add(new Rt({x:-1,y:-.125},{x:0,y:0})),e.add(n);const r=new J;r.name="_CAXARROW",r.appendEntity(e),this.db.tables.blockTable.add(r)}}}const rn=Math.PI/200;class Wo{constructor(t){this.database=t}formatLength(t,e){const n=this.createContext(e);return ee(t,n)}formatPoint2d(t,e){const n=this.createContext(e);return`${ee(t.x,n)}, ${ee(t.y,n)}`}formatPoint3d(t,e){const n=this.createContext(e);return`${ee(t.x,n)}, ${ee(t.y,n)}, ${ee(t.z,n)}`}formatAngle(t,e){const n=this.createContext(e),s=(e==null?void 0:e.applyAngbaseAngdir)??!0?sc(t,this.database.angbase,this.database.angdir):I.normalizeAngle(t);return rc(s,n)}createContext(t){return{lunits:this.database.lunits,luprec:Xe(this.database.luprec),insunits:this.database.insunits,unitmode:this.database.unitmode,measurement:this.database.measurement,aunits:this.database.aunits,auprec:Xe(this.database.auprec),showUnits:(t==null?void 0:t.showUnits)??!1,showApproximate:(t==null?void 0:t.showApproximate)??!1}}}function ee(i,t){let e;switch(t.lunits){case H.Scientific:e=ji(pc(i,t.luprec),t);break;case H.Engineering:e=fc(i,t);break;case H.Architectural:e=yc(i,t);break;case H.Fractional:e=ji(mc(i,t),t);break;case H.WindowsDesktop:case H.Decimal:default:e=ji(xe(i,t.luprec),t)}return $o(e,oc(i,t),t)}function rc(i,t){let e;switch(t.aunits){case rt.DegreesMinutesSeconds:e=Zo(i,t);break;case rt.Gradians:e=xc(i,t);break;case rt.Radians:e=wc(i,t);break;case rt.SurveyorsUnits:e=bc(i,t);break;case rt.DecimalDegrees:default:e=_c(i,t)}return $o(e,ac(i,t),t)}function sc(i,t,e){let n=i-t;return e===1&&(n=-n),I.normalizeAngle(n)}function nr(i){const t=i.showUnits?'"':"";return i.unitmode===1?{feetInchSeparator:"",fractionSeparator:"-",inchSuffix:t}:{feetInchSeparator:"-",fractionSeparator:" ",inchSuffix:t}}function Xe(i,t=0,e=8){return Number.isFinite(i)?Math.max(t,Math.min(e,Math.round(i))):t}function we(i){return Object.is(i,-0)?0:i}function $o(i,t,e){return!e.showApproximate||!t?i:`~ ${i}`}function oc(i,t){if(!Number.isFinite(i))return!1;const e=hc(i,t);return rr(i,e)}function ac(i,t){if(!Number.isFinite(i))return!1;if(t.aunits===rt.SurveyorsUnits)return lc(i,t.auprec);const e=cc(i,t);return rr(i,e)}function lc(i,t){const n=((90-I.radToDeg(i))%360+360)%360,r=Qo(n),s=Math.min(Math.abs(n-r.base),Math.abs(r.base+90-n)),o=I.degToRad(s),a=qo(o,t);return rr(o,a)}function hc(i,t){const e=we(i);switch(t.lunits){case H.Scientific:return uc(e,t.luprec);case H.Engineering:case H.Architectural:case H.Fractional:return dc(e,t);case H.WindowsDesktop:case H.Decimal:default:return ue(e,t.luprec)}}function cc(i,t){const e=we(i);switch(t.aunits){case rt.DegreesMinutesSeconds:return qo(e,t.auprec);case rt.Gradians:return ue(e/rn,t.auprec)*rn;case rt.Radians:return ue(e,t.auprec);case rt.DecimalDegrees:default:return I.degToRad(ue(I.radToDeg(e),t.auprec))}}function ue(i,t){if(!Number.isFinite(i))return 0;const e=10**t;return Math.round(we(i)*e)/e}function uc(i,t){if(!Number.isFinite(i))return 0;const e=we(i);if(e===0)return 0;const n=e.toExponential(t);return Number(n)}function dc(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===H.Architectural||t.lunits===H.Fractional){const o=1<<Xe(t.luprec,0,8),a=gc(s,o);return e*(r*12+a)}return e*(r*12+ue(s,t.luprec))}function gc(i,t){const e=Math.floor(i),n=i-e,r=Math.round(n*t);return r>=t?e+1:e+r/t}function qo(i,t){const e=I.radToDeg(i),n=e<0?-1:1,r=Math.abs(e),s=Math.floor(r),o=(r-s)*60,a=Math.floor(o),h=ue((o-a)*60,t),l=s+a/60+h/3600;return I.degToRad(n*l)}function rr(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 xe(i,t){if(!Number.isFinite(i))return"0";const e=we(i);if(Number.isInteger(e)&&t===0)return String(e);const r=e.toFixed(t).replace(/\.?0+$/,"");return r===""||r==="-"?"0":r}function pc(i,t){if(!Number.isFinite(i))return"0";const e=we(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 fc(i,t){if(!Number.isFinite(i))return"0";const e=nr(t),n=i<0?"-":"",r=Math.abs(i),s=Math.floor(r/12),o=r-s*12,a=xe(o,t.luprec);return s===0?`${n}${a}${e.inchSuffix}`:`${n}${s}'${e.feetInchSeparator}${a}${e.inchSuffix}`}function yc(i,t){if(!Number.isFinite(i))return"0";const e=nr(t),n=i<0?"-":"",r=Math.abs(i),s=Math.floor(r/12),o=r-s*12,a=1<<Xe(t.luprec,0,8),h=Ko(o,a,e.fractionSeparator);return s===0?`${n}${h}${e.inchSuffix}`:`${n}${s}'${e.feetInchSeparator}${h}${e.inchSuffix}`}function mc(i,t){if(!Number.isFinite(i))return"0";const e=nr(t),n=i<0?"-":"",r=Math.abs(i),s=1<<Xe(t.luprec,0,8);return`${n}${Ko(r,s,e.fractionSeparator)}`}function Ko(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=Sc(s,t);s/=o;const a=t/o,h=`${s}/${a}`;return n===0?h:`${n}${e}${h}`}function _c(i,t){const e=I.radToDeg(i);return`${xe(e,t.auprec)}${t.showUnits?"°":""}`}function wc(i,t){return`${xe(i,t.auprec)}${t.showUnits?" rad":""}`}function xc(i,t){const e=i/rn;return`${xe(e,t.auprec)}${t.showUnits?"g":""}`}function Zo(i,t){const e=I.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=xe(h,t.auprec),c=t.showUnits?'"':"";return`${n}${s}d${a}'${l}${c}`}function bc(i,t){const n=((90-I.radToDeg(i))%360+360)%360,r=Qo(n),s=Math.min(Math.abs(n-r.base),Math.abs(r.base+90-n)),a=Zo(I.degToRad(s),t).replace(/^-/,"");return`${r.prefix} ${a} ${r.suffix}`.trim()}function Qo(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 ji(i,t){if(!t.showUnits||t.lunits===H.Engineering||t.lunits===H.Architectural)return i;const e=vc(t.insunits,t.measurement);return e?`${i}${e}`:i}function vc(i,t){return i===V.Undefined?t===0?'"':" mm":To(i)?Pc(i):Co(i)?Ac(i):""}function Pc(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 Ac(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 Sc(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 Dt extends yt{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 Ve(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 Ii=192,Ne=193,Ei=194,Mi=195,Jo=200;function ei(i){if(i.isByBlock)return Ne<<24>>0;if(i.isByLayer)return Ii<<24>>0;const t=i.colorIndex;if(t!=null&&t>0&&t<256)return(Mi<<24|t&255)>>0;const e=i.RGB;return e!=null?(Ei<<24|e&16777215)>>0:Ne<<24>>0}function Lc(i){const t=new O(exports.AcCmColorMethod.ByBlock);switch(i>>>24&255){case Ii:t.setByLayer();break;case Ne:case Jo:t.setByBlock();break;case Mi:t.colorIndex=i&255;break;case Ei:t.setRGBValue(i&16777215);break;default:i===256?t.setByLayer():i===0?t.setByBlock():i>0&&i<256&&(t.colorIndex=i);break}return t}class ta extends yt{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 O(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 O(exports.AcCmColorMethod.ByLayer),this._textHeight=4,this._enableFrameText=!1,this._textAlignAlwaysLeft=!1,this._alignSpace=0,this._blockColor=new O(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,ei(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,ei(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,ei(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 ea extends yt{constructor(){super(),this._styleName="STANDARD",this._flags=0,this._description="",this._fillColor=new O,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 Et extends yt{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);e&&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(t=!1){return new Ve(t?this._recordsById:this._recordsByName)}normalizeName(t){return t}get dxfEntryCount(){return this.numEntries}dxfOutFields(t){return super.dxfOutFields(t),t.writeSubclassMarker("AcDbSymbolTable"),t.writeInt16(70,this.dxfEntryCount),this}}class ia extends Et{constructor(t){super(t)}get modelSpace(){let t=this.getAt(J.MODEL_SPACE_NAME);return t||(t=new J,t.name=J.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(J.isModelSapceName(t))e=J.MODEL_SPACE_NAME;else if(J.isPaperSapceName(t)){const n=J.PAPER_SPACE_NAME_PREFIX,r=t.substring(n.length);e=n+r}return e}}class na extends Et{constructor(t){super(t)}}class ra extends Et{constructor(t){super(t)}add(t){super.add(t),this.database.events.layerAppended.dispatch({database:this.database,layer:t})}}class sa extends Et{constructor(t){super(t)}}class oa extends Et{constructor(t){super(t)}get dxfEntryCount(){return this._recordsById.size}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 shapeFiles(){return this.newIterator(!0).toArray().filter(t=>t.isShapeFile)}get fonts(){const t=new Set,e=n=>{if(n){const r=n.lastIndexOf(".");if(r>=0){const s=n.substring(0,r).toLowerCase();t.add(s)}else t.add(n.toLowerCase())}};for(const n of this.newIterator())e(n.fileName),e(n.bigFontFileName);return Array.from(t)}}class aa extends Et{constructor(t){super(t)}}const Ic=()=>({center:new P,viewDirectionFromTarget:new m(0,0,1),viewTarget:new m(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 m(0,0,0),ucsXAxis:new m(1,0,0),ucsYAxis:new m(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 sr extends Vt{constructor(){super(),this._gsView=Ic(),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}}const as=2,Ec=.45,Mc=1e5;function Tc(i){var n;const t=i,e=t.aspectRatio??((n=t.gsView)==null?void 0:n.aspectRatio);return Number.isFinite(e)?e:void 0}function Cc(i,t){if(Number.isFinite(t)&&t>0)return t;const e=Tc(i);return e!=null&&e>0?e:1}function Oc(i,t){const e=Math.max(i.min.x,t.min.x),n=Math.max(i.min.y,t.min.y),r=Math.min(i.max.x,t.max.x),s=Math.min(i.max.y,t.max.y);return e>=r||n>=s?0:(r-e)*(s-n)}function ls(i){return{x:(i.min.x+i.max.x)/2,y:(i.min.y+i.max.y)/2}}function kc(i){if(!i||i.isEmpty())return!1;const t=i.max.x-i.min.x,e=i.max.y-i.min.y;return t>0&&e>0}class qt extends sr{static isActiveVportName(t){return t.toLowerCase()===pe.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}modelViewBox(t){const e=this.centerPoint,n=this.viewHeight;if(!Number.isFinite(e.x)||!Number.isFinite(e.y)||!Number.isFinite(n)||n<=0)return;const r=Cc(this,t),s=n*r,o=n/2,a=s/2;return new tt().expandByPoint({x:e.x-a,y:e.y-o}).expandByPoint({x:e.x+a,y:e.y+o})}static isModelViewBoxUsable(t,e){if(t.isEmpty()||e.isEmpty())return!1;const n=t.max.x-t.min.x,r=t.max.y-t.min.y,s=e.max.x-e.min.x,o=e.max.y-e.min.y;if(n<=0||r<=0||s<=0||o<=0||n>s*as||r>o*as)return!1;const a=Math.max(s,o)*Ec,h=ls(t),l=ls(e);if(Math.hypot(h.x-l.x,h.y-l.y)>a)return!1;const u=n*r,g=Oc(t,e);return!(g<=0||g/u<.25)}resolveModelViewBox(t,e){const n=this.modelViewBox(t);if(!(!n||!qt.isModelViewBoxStructurallyValid(n))){if(kc(e)){if(!qt.isModelViewBoxUsable(n,e))return}else if(!qt.isModelViewBoxPlausibleWithoutExtents(n))return;return n}}static isModelViewBoxStructurallyValid(t){if(t.isEmpty())return!1;const e=t.max.x-t.min.x,n=t.max.y-t.min.y;return Number.isFinite(e)&&Number.isFinite(n)&&e>0&&n>0}static isModelViewBoxPlausibleWithoutExtents(t){const e=t.max.x-t.min.x,n=t.max.y-t.min.y;return Math.max(e,n)<=Mc}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 la extends Et{constructor(t){super(t)}normalizeName(t){return qt.isActiveVportName(t)?pe:t.toUpperCase()}getActiveVport(){return this.getAt(pe)}getActiveVportBox(t,e){const n=this.getActiveVport();return n==null?void 0:n.resolveModelViewBox(t,e)}}class ha extends Et{constructor(t){super(t)}}class sn extends Vt{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 ca extends Dt{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 Yc extends yt{constructor(){super({objectId:"0"}),this._drawNoPlotLayers=!0,this.events={dictObjetSet:new U,dictObjectErased:new U,entityAppended:new U,entityModified:new U,entityErased:new U,layerAppended:new U,layerModified:new U,layerErased:new U,openProgress:new U},this._version=new gt("AC1014"),this._angbase=0,this._angdir=0,this._aunits=rt.DecimalDegrees,this._auprec=0,this._lunits=H.Decimal,this._luprec=4,this._celtscale=1,this._cecolor=new O,this._celtype=q,this._celweight=exports.AcGiLineWeight.ByLayer,this._cetransparency=new W,this._clayer="0",this._cmlstyle=Xt,this._cmlscale=1,this._cmleaderstyle=Nt,this._hpbackgroundcolor=new O(exports.AcCmColorMethod.None),this._hpcolor=this._cecolor.clone(),this._hplayer=".",this._hptransparency=new W,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 ha(this),blockTable:new ia(this),dimStyleTable:new na(this),linetypeTable:new sa(this),textStyleTable:new oa(this),viewTable:new aa(this),layerTable:new ra(this),viewportTable:new la(this)},this._objects={dictionary:new Dt(this),imageDefinition:new Dt(this),layout:new ca(this),mleaderStyle:new Dt(this),mlineStyle:new Dt(this),xrecord:new Dt(this)}}get tables(){return this._tables}get objects(){return this._objects}get formatter(){return this._formatter??(this._formatter=new Wo(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??H.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 gt(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??q);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 W,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??Xt,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??Nt,e=>{this._cmleaderstyle=e})}get hpbackgroundcolor(){return this._hpbackgroundcolor}set hpbackgroundcolor(t){this.updateSysVar(v.HPBACKGROUNDCOLOR,this._hpbackgroundcolor,t??new O(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 W,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=Se.DXF){const r=_t.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,Se.DWG):g==="dxf"?await this.read(l.buffer,e,Se.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 gt?n:new gt(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 Yo(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 Uo(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||Xt);return}if(t.dxfTypeName==="MULTILEADER"){this.ensureMLeaderStyle(this._cmleaderstyle||Nt);return}if(t.dxfTypeName==="HATCH"){const n=t;(e=n.applyPatternDefaultsFromSysVars)==null||e.call(n,this)}}ensureTextStyleDefaults(){this.hasDefaultTextStyle()||this.tables.textStyleTable.add(new er({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 O;e.colorIndex=7,this.tables.layerTable.add(new tr({name:"0",standardFlags:0,linetype:zt,lineWeight:0,isOff:!1,color:e,isPlottable:!0}))}if(this.tables.linetypeTable.has(bt)||this.tables.linetypeTable.add(new $t({name:bt,standardFlag:0,description:"",totalPatternLength:0})),this.tables.linetypeTable.has(q)||this.tables.linetypeTable.add(new $t({name:q,standardFlag:0,description:"",totalPatternLength:0})),this.tables.linetypeTable.has(zt)||this.tables.linetypeTable.add(new $t({name:zt,standardFlag:0,description:"Solid line",totalPatternLength:0})),this.ensureTextStyleDefaults(),this.tables.dimStyleTable.has(K)||this.tables.dimStyleTable.add(new fe({name:K,dimtxsty:K})),!this.tables.viewportTable.has(pe)){const e=new qt;e.name=pe,this.tables.viewportTable.add(e)}this.ensureMLineStyle(this._cmlstyle||Xt),this.ensureMLeaderStyle(this._cmleaderstyle||Nt);const t=this.tables.blockTable.modelSpace;if(!this.objects.layout.getAt("Model")){const e=new Si;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(nn)||this.tables.appIdTable.add(new sn(nn)),this.tables.appIdTable.has(en)||this.tables.appIdTable.add(new sn(en))}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 ea;r.styleName=n,r.elements=[{offset:.5,color:new O().setByLayer(),lineType:q},{offset:-.5,color:new O().setByLayer(),lineType:q}],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 ta;r.unknown1=2,r.maxLeaderSegmentsPoints=2,r.leaderLineColor=new O().setByBlock(),r.textColor=new O().setByBlock(),r.blockColor=new O().setByBlock(),r.alignSpace=4,r.breakSize=3.75,r.enableBlockRotation=!0,r.unknown2=!1;const s=this.tables.linetypeTable.getAt(bt);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(!0),"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 J){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 O&&e instanceof O||t instanceof W&&e instanceof W?!t.equals(e):t instanceof gt&&e instanceof gt?t.value!==e.value:!Object.is(t,e)}normalizeLinetypeName(t){const e=t.trim();return e.toUpperCase()==="BYLAYER"?q:e.toUpperCase()==="BYBLOCK"?bt:e}triggerSysVarChangedEvent(t,e,n){const r=pt.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 Xc extends sr{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 hr=class hr extends ${getOffsetSideAtPoint(t){return 1}};hr.typeName="Curve";let Z=hr;const oe=class oe extends Z{get dxfTypeName(){return"LWPOLYLINE"}constructor(){super(),this._elevation=0,this._geo=new j}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 m(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 x.EndPoint:for(let l=0;l<a;l++){const c=s.getPointAt(l);r.push(new m(c.x,c.y,o))}break;case x.MidPoint:case x.Nearest:case x.Perpendicular:case x.Tangent:{const l=this.closed?a:a-1,c=[];for(let u=0;u<l;u++){const g=[];oi(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===x.MidPoint)r.push(...c);else{const u=ct(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 m(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=Nc(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 m().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:Fc(l,c,p)})}}return s&&r.length>=2?r:null}sampleSegment(t,e){if(t.bulge&&Math.abs(t.bulge)>at){const r=new ft(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 oe;return t.forEach((r,s)=>n.addVertexAt(s,r)),n.closed=e,n}static fromGePolyline(t){const e=new oe;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:oe.fromGePolyline(e[0])}};oe.typeName="Polyline";let lt=oe;function Ti(i,t,e){const n=oh(i,t,e);return n?lt.fromGePolyline(n):null}const at=1e-6,hs=4;function Nc(i,t){if(i.length<2)return null;const e=Rc(i,t);if(e.length<2)return null;const{left:n,right:r}=Bc(e,t);if(n.length<2||r.length<2)return null;const s=new St;if(t){if(!Gi(n)||!Gi(r))return null;const a=Math.abs(on(n)),h=Math.abs(on(r)),[l,c]=a>=h?[n,r]:[r,n];return s.add(new j(l,!0)),s.add(new j(c,!0)),s}const o=[...n,...r.reverse()];return Gi(o)?(s.add(new j(o,!0)),s):null}function Bc(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=zc(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 Rc(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 zc(i,t,e){const n=i.length,r=i[t],s=i[(t-1+n)%n],o=i[(t+1)%n];let a=cs(r.x-s.x,r.y-s.y),h=cs(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?hs:Math.min(1/f,hs);return{x:p.x*y,y:p.y*y}}function cs(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 on(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 Gi(i){return i.length>=3&&Math.abs(on(i))>at}function Fc(i,t,e){return i+(t-i)*e}var ua=(i=>(i[i.SimplePoly=0]="SimplePoly",i[i.FitCurvePoly=1]="FitCurvePoly",i[i.QuadSplinePoly=2]="QuadSplinePoly",i[i.CubicSplinePoly=3]="CubicSplinePoly",i))(ua||{});const cr=class cr extends Z{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 j(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 m(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 x.EndPoint:for(let l=0;l<a;l++){const c=s.getPointAt(l);r.push(new m(c.x,c.y,o))}break;case x.MidPoint:case x.Nearest:case x.Perpendicular:case x.Tangent:{const l=this.closed?a:a-1,c=[];for(let u=0;u<l;u++){const g=[];oi(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===x.MidPoint)r.push(...c);else{const u=ct(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 m(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 m().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)}};cr.typeName="2dPolyline";let an=cr;var da=(i=>(i[i.Vertex=0]="Vertex",i[i.CurveFitVertex=1]="CurveFitVertex",i[i.SplineFitVertex=8]="SplineFitVertex",i[i.SplineCtlVertex=9]="SplineCtlVertex",i))(da||{});const ur=class ur extends ${get dxfTypeName(){return"VERTEX"}constructor(){super(),this._position=new m,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===x.EndPoint||t===x.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}};ur.typeName="2dVertex";let ln=ur;var ga=(i=>(i[i.SimplePoly=0]="SimplePoly",i[i.QuadSplinePoly=1]="QuadSplinePoly",i[i.CubicSplinePoly=2]="CubicSplinePoly",i))(ga||{});const mi=class mi extends Z{get dxfTypeName(){return"POLYLINE"}constructor(t,e,n=!1){super(),this._polyType=t,this._geo=new j(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 m(e.x,e.y,e.z||0)}get geometricExtents(){const t=this._geo.vertices.map(e=>new m(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 x.EndPoint:r.push(...s);break;case x.MidPoint:case x.Nearest:case x.Perpendicular:{const o=[];for(let a=0;a<s.length-1;a++){const h=[];_e(s[a],s[a+1],t,e,h),o.push(...h)}if(t===x.MidPoint)r.push(...o);else{const a=ct(e,o);a&&r.push(a)}break}}}transformBy(t){return this._geo.vertices.forEach(e=>{const n=new m(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 m(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 m(o.x,o.y,this.interpolateZ(o.x,o.y)))}return new mi(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}};mi.typeName="3dPolyline";let hn=mi;var pa=(i=>(i[i.SimpleVertex=0]="SimpleVertex",i[i.ControlVertex=1]="ControlVertex",i[i.FitVertex=2]="FitVertex",i))(pa||{});const dr=class dr extends ${get dxfTypeName(){return"VERTEX"}constructor(){super(),this._position=new m,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===x.EndPoint||t===x.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}};dr.typeName="3dVertex";let cn=dr;const _i=class _i extends Z{get dxfTypeName(){return"ARC"}constructor(t,e,n,r,s=w.Z_AXIS){super();const o=Te(s);this._geo=new wt(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:()=>I.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 x.EndPoint:r.push(s),r.push(o);break;case x.MidPoint:r.push(this.midPoint);break;case x.Center:case x.Centroid:r.push(this._geo.center);break;case x.Quadrant:{const a=[0,Math.PI/2,Math.PI,3*Math.PI/2];for(const h of a)I.isBetweenAngle(h,this.startAngle,this.endAngle)&&r.push(this._geo.getPointAtAngle(h));break}case x.Nearest:{const a=this._geo.nearestPoint(e);r.push(a)}break;case x.Perpendicular:{const a=this._geo.perpendicularPoints(e),h=ct(e,a);h&&r.push(h);break}case x.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=ge(this.center,this.normal);return t.writeSubclassMarker("AcDbArc"),t.writePoint3d(10,e),t.writeDouble(40,this.radius),t.writeAngle(50,Ce(this.center,this.startPoint,this.normal)),t.writeAngle(51,Ce(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 _i(e.center,e.radius,e.startAngle,e.endAngle,e.normal):null}};_i.typeName="Arc";let un=_i;const Vc=1;function fa(i){return i.replace(/\\[PpNn]/g,`
|
|
5
|
+
`).replace(/\\[A-Za-z][^;]*;/g,"").replace(/[{}]/g,"")}function ya(i,t,e=1){if(!i||t<=0)return 0;const n=fa(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*Vc*e)}function jc(i){const t=fa(i);return Math.max(t.split(/\r\n|\r|\n/g).length,1)}function Gc(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 Hc(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 Dc(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 ma(i,t,e,n,r,s=0,o){if(e<=0&&n<=0)return i.expandByPoint(t),i;const a=Hc(e,n,r),{xAxis:h,yAxis:l}=Dc(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 m(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 _a=(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))(_a||{}),wa=(i=>(i[i.BASELINE=0]="BASELINE",i[i.BOTTOM=1]="BOTTOM",i[i.MIDDLE=2]="MIDDLE",i[i.TOP=3]="TOP",i))(wa||{});const gr=class gr extends ${get dxfTypeName(){return"TEXT"}constructor(){super(),this._textString="",this._height=0,this._thickness=1,this._position=new m,this._alignmentPoint=new m,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=ya(this.textString,this.height,this.widthFactor);return ma(t,e,r,this.height,n,this.rotation)}subGetGripPoints(){return[this._position]}subGetOsnapPoints(t,e,n,r){x.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}};gr.typeName="Text";let Be=gr;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||{}),kt=(i=>(i[i.MultiLine=2]="MultiLine",i[i.ConstMultiLine=4]="ConstMultiLine",i))(kt||{});const pr=class pr extends Be{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}};pr.typeName="AttDef";let dn=pr;function Uc(i){return i!=null&&typeof i=="object"&&"blockTableRecord"in i}const fr=class fr extends Be{get dxfTypeName(){return"ATTRIB"}get resolvedColor(){var t;if(this.color.isByBlock){const e=(t=this.database)==null?void 0:t.tables.blockTable.getEntityById(this.ownerId);if(Uc(e))return e.resolvedColor}return this.resolveStandardColor()}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&kt.MultiLine)!==0}set isMTextAttribute(t){t?this._mtextFlag|=kt.MultiLine:this._mtextFlag&=~kt.MultiLine}get isConstMTextAttribute(){return(this._mtextFlag&kt.ConstMultiLine)!==0}set isConstMTextAttribute(t){t?this._mtextFlag|=kt.ConstMultiLine:this._mtextFlag&=~kt.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}};fr.typeName="Attrib";let gn=fr;const ae=class ae extends ${get dxfTypeName(){return"INSERT"}constructor(t){super(),this._blockName=t,this._position=new m,this._rotation=0,this._normal=new w(0,0,1),this._scaleFactors=new m(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,this.syncAttributeDatabases()}syncAttributeDatabases(){try{const t=this.database;this._attribs.forEach(e=>{e.database=t})}catch{}}attributeIterator(){return new Ve(this._attribs)}get blockTransform(){const t=this.blockTableRecord,e=(t==null?void 0:t.origin)??m.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 de().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;x.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 m(this._scaleFactors.x,0,0).applyMatrix4(r).add(s),a=new m(0,this._scaleFactors.y,0).applyMatrix4(r).add(s),h=new m(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)}}),Kt.instance.draw(t,e,this.resolvedColor,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 m(e).applyMatrix4(h),c=new m(n).applyMatrix4(h),u=[];for(const g of o.newIterator()){const d=[];if(g instanceof ae){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 m(p).applyMatrix4(a)))}if(u.length!==0)if(t===x.Nearest||t===x.Perpendicular||t===x.Tangent){const g=ct(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 m(e).applyMatrix4(l.clone().invert()),g=new m(n).applyMatrix4(l.clone().invert()),d=[];return c.subGetOsnapPoints(t,u,g,d,s,l),c instanceof ae?d.forEach(p=>{r.push(p.clone())}):d.forEach(p=>{r.push(new m(p).applyMatrix4(l))}),!0}if(c instanceof ae&&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)??m.ORIGIN,n=new Y().multiplyMatrices(t,this.getFullInsertionTransform());return new m(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}};ae.typeName="BlockReference";let ye=ae;const wi=class wi extends Z{get dxfTypeName(){return"CIRCLE"}constructor(t,e,n=w.Z_AXIS){super();const r=Te(n);this._geo=new wt(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 x.Center:case x.Centroid:r.push(this._geo.center);break;case x.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 x.Nearest:{const s=this._geo.nearestPoint(e);r.push(s)}break;case x.Tangent:{const s=this._geo.tangentPoints(e);r.push(...s);break}case x.Perpendicular:{const s=this._geo.perpendicularPoints(e),o=ct(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=ge(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 wi(e.center,e.radius,e.normal):null}};wi.typeName="Circle";let pn=wi;const xi=class xi extends Z{get dxfTypeName(){return"ELLIPSE"}constructor(t,e,n,r,s,o,a){super(),this._geo=new Zn(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 x.EndPoint:this.closed||(r.push(this._geo.startPoint),r.push(this._geo.endPoint));break;case x.MidPoint:this.closed||r.push(this._geo.midPoint);break;case x.Center:case x.Centroid:r.push(this._geo.center);break;case x.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 x.Nearest:r.push(this._geo.nearestPoint(e));break;case x.Tangent:r.push(...this._geo.tangentPoints(e));break;case x.Perpendicular:{const s=this._geo.perpendicularPoints(e),o=ct(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 xi(e.center,e.normal,e.majorAxis,e.majorAxisRadius,e.minorAxisRadius,e.startAngle,e.endAngle):null}};xi.typeName="Ellipse";let fn=xi;const yr=class yr extends ${get dxfTypeName(){return"3DFACE"}constructor(){super(),this._vertices=[new m,new m,new m],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 m),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),Js(t)}subGetGripPoints(){const t=new Array;return t.push(...this._vertices),t}subGetOsnapPoints(t,e,n,r){ir(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}};yr.typeName="Face";let yn=yr;var xa=(i=>(i[i.MText=0]="MText",i[i.Fcf=1]="Fcf",i[i.BlockReference=2]="BlockReference",i[i.NoAnnotation=3]="NoAnnotation",i))(xa||{});const mr=class mr extends Z{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 m().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 x.EndPoint:r.push(this._vertices[0]),r.push(this._vertices[this.numVertices-1]);break;case x.Nearest:r.push(this.splineGeo.nearestPoint(e));break}return}const s=this._vertices;switch(t){case x.EndPoint:r.push(...s);break;case x.MidPoint:case x.Nearest:case x.Perpendicular:{const o=[];for(let a=0;a<s.length-1;a++){const h=[];_e(s[a],s[a+1],t,e,h),o.push(...h)}if(t===x.MidPoint)r.push(...o);else{const a=ct(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 xt(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 Ti(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 m,r=new m(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)}};mr.typeName="Leader";let mn=mr;const bi=class bi extends Z{get dxfTypeName(){return"LINE"}constructor(t,e){super(),this._geo=new Lt(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 x.EndPoint:r.push(s),r.push(o);break;case x.MidPoint:r.push(this.midPoint);break;case x.Nearest:{const a=this._geo.project(e);r.push(a)}break;case x.Perpendicular:{const a=this._geo.perpPoint(e);r.push(a)}break;case x.Tangent:break}}transformBy(t){return this._geo.transform(t),this}subWorldDraw(t){const e=this.startPoint,n=this.endPoint,r=[new m(e.x,e.y,0),new m(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 bi(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}};bi.typeName="Line";let li=bi;var ba=(i=>(i[i.Top=0]="Top",i[i.Zero=1]="Zero",i[i.Bottom=2]="Bottom",i))(ba||{}),va=(i=>(i[i.HasVertex=1]="HasVertex",i[i.Closed=2]="Closed",i[i.SuppressStartCaps=4]="SuppressStartCaps",i[i.SuppressEndCaps=8]="SuppressEndCaps",i))(va||{});const _r=class _r 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 m,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 x.EndPoint:r.push(...s);break;case x.MidPoint:case x.Nearest:case x.Perpendicular:{const o=[];for(let a=0;a<s.length-1;a++){const h=[];_e(s[a],s[a+1],t,e,h),o.push(...h)}if(t===x.MidPoint)r.push(...o);else{const a=ct(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.lineType,h=s.fillType,l=s.drawOrder,c=this.createFillArea(n,r);if(c&&(s.color=o,this.applyFillTraits(n,s),s.fillType={solidFill:!0,patternAngle:0,definitionLines:[]},s.drawOrder=-1,e.push(t.area(c)),s.fillType=h,s.drawOrder=l),r<=0){const u=this.getReferencePath();u.length>=2&&e.push(t.lines(u))}else{for(let u=0;u<r;u++){s.color=o,s.lineType=a,this.applyStyleElementTraits(n,u,s);const g=this.getElementPath(u,n);g.length>=2&&e.push(t.lines(g))}this.appendStyleDrivenJointAndCapEntities(t,e,n,r,o,a)}if(s.color=o,s.lineType=a,s.fillType=h,s.drawOrder=l,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 m().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 St;if(this.closed){if(o.length<3||a.length<3)return;h.add(new j(o.map(l=>({x:l.x,y:l.y})),!0)),h.add(new j(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 j(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){!n||r<2||(e.push(...this.drawMiterJointEntities(t,n,r,s,o)),e.push(...this.drawCapEntities(t,n,r,s,o)))}drawMiterJointEntities(t,e,n,r,s){if(this.closed||this._segments.length<2||!(e.flags&2))return[];const o=[],a=t.subEntityTraits;for(let h=0;h<this._segments.length-1;h++){const l=this._segments[h],c=Array.from({length:n},(u,g)=>{const d=this.getElementMiterOffset(l,g,e);return{elementIndex:g,offset:d,point:this.offsetPoint(l.position,l.miterDirection,d)}}).sort((u,g)=>g.offset-u.offset);for(let u=0;u<c.length-1;u++)this.applyElementDrawTraits(a,r,s,e,c[u].elementIndex),o.push(t.lines([c[u].point,c[u+1].point]))}return o}drawCapEntities(t,e,n,r,s){if(this.closed||this._segments.length<=0)return[];const o=[];return o.push(...this.drawCapEntitiesForSide(t,"start",e,n,r,s)),o.push(...this.drawCapEntitiesForSide(t,"end",e,n,r,s)),o}drawCapEntitiesForSide(t,e,n,r,s,o){if(e==="start"&&this.suppressStartCaps)return[];if(e==="end"&&this.suppressEndCaps)return[];const a=n.flags,h=e==="start",l=h?(a&16)!==0:(a&256)!==0,c=h?(a&64)!==0:(a&1024)!==0,u=h?(a&32)!==0:(a&512)!==0;if(!l&&!c&&!u)return[];const g=this.getCapElementPoints(e,r,n);if(g.length<2)return[];const d=[],p=t.subEntityTraits;if(l)for(let y=0;y<g.length-1;y++)this.applyElementDrawTraits(p,s,o,n,g[y].elementIndex),d.push(t.lines([g[y].point,g[y+1].point]));const f=h?this.getStartSegmentDirection().multiplyScalar(-1):this.getEndSegmentDirection().clone();if(c){const y=this.drawCapArcBetweenElements(t,e,g[0],g[g.length-1],f,p,s,o,n);y&&d.push(y)}if(u)for(let y=1;y<Math.floor(g.length/2);y++){const _=g[y],b=g[g.length-1-y];if(!_||!b||_===b)continue;const S=this.drawCapArcBetweenElements(t,e,_,b,f,p,s,o,n);S&&d.push(S)}return d}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){const c=e==="end"?r.point:n.point,u=e==="end"?n.point:r.point,g=c.distanceTo(u);if(g<=1e-9||s.lengthSq()===0)return;const p=c.clone().add(new w().subVectors(u,c).multiplyScalar(.5)).add(s.clone().normalize().multiplyScalar(g/2)),f=wt.createByThreePoints(c,u,p);if(f)return this.applyElementDrawTraits(o,a,h,l,e==="end"?r.elementIndex:n.elementIndex),t.circularArc(f)}applyElementDrawTraits(t,e,n,r,s){t.color=e,t.lineType=n,this.applyStyleElementTraits(r,s,t)}transformVector(t,e){const n=new m,r=new m(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())}applyFillTraits(t,e){const n=t==null?void 0:t.fillColor;!n||n.isByBlock||n.isByLayer||(e.color=n.clone())}resolveStyleElementLineType(t){var l;const e=t==null?void 0:t.trim();if(!e)return;const n=e.toUpperCase(),r=q.toUpperCase(),s=bt.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:zt}else n===s&&(o="ByBlock",a=zt);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||Xt}catch{return Xt}}};_r.typeName="MLine";let _n=_r;var Ie=(i=>(i[i.InvisibleLeader=0]="InvisibleLeader",i[i.StraightLeader=1]="StraightLeader",i[i.SplineLeader=2]="SplineLeader",i))(Ie||{}),se=(i=>(i[i.NoneContent=0]="NoneContent",i[i.BlockContent=1]="BlockContent",i[i.MTextContent=2]="MTextContent",i[i.ToleranceContent=3]="ToleranceContent",i))(se||{}),Pa=(i=>(i[i.Horizontal=0]="Horizontal",i[i.Vertical=1]="Vertical",i))(Pa||{}),Aa=(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))(Aa||{});const Wc=1,$c=2,qc=4,Kc=8,Zc=64,Qc=128,Jc=32768,wr=class wr 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==null?void 0:t.clone()}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==null?void 0:t.clone()}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==null?void 0:t.clone()}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==null?void 0:t.clone()}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 m},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,n;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:(n=this._blockContent.color)==null?void 0:n.clone(),transformationMatrix:[...this._blockContent.transformationMatrix]}:void 0}set blockContent(t){var e;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:(e=t.color)==null?void 0:e.clone(),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===x.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 x.EndPoint:r.push(...h);break;case x.MidPoint:case x.Nearest:case x.Perpendicular:{const l=[];for(let c=0;c<h.length-1;c++){const u=[];_e(h[c],h[c+1],t,e,u),l.push(...u)}if(t===x.MidPoint)r.push(...l);else{const c=ct(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:se[0],value:0},{label:se[1],value:1},{label:se[2],value:2},{label:se[3],value:3}],accessor:{get:()=>this.contentType,set:t=>{this.contentType=t}}},{name:"leaderLineType",type:"enum",editable:!0,options:[{label:Ie[0],value:0},{label:Ie[1],value:1},{label:Ie[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,e){const n=[],r=t.subEntityTraits,s=r.color,o=r.lineType,a=r.lineWeight,h=this.getResolvedLeaderLineColor(),l=this.getResolvedLeaderLineStyle(),c=this.getResolvedLeaderLineWeight(),u=this.getResolvedTextColor();this.getResolvedLeaderLineType()!==0&&(this.applyColorTraits(r,h,s),this.applyLineTraits(r,l,c),this._leaders.forEach(d=>{d.leaderLines.forEach(f=>{const y=this.getLeaderLineDrawPoints(d,f);if(y.length>0){const _=this.drawLeaderLine(t,y);_&&n.push(_)}});const p=this.getDoglegPoints(d);p&&n.push(t.lines(p))}));const g=this.getRenderableMTextContent();if(this.contentType===2&&g){this.applyColorTraits(r,u,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};n.push(t.mtext(p,this.getTextStyle(),e))}if(r.color=s,r.lineType=o,r.lineWeight=a,n.length!==0)return n.length===1?n[0]:t.group(n)}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 m().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??m.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 St;s.add(new j(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??m.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 Kt.instance.draw(t,n,this.resolvedColor,[],!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 m,r=new m(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||Nt}catch{return Nt}}getResolvedTextStyleName(){var s,o,a;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,r=this.textStyleId?(a=t.getIdAt(this.textStyleId))==null?void 0:a.name:void 0;if(this.textStyleName){const h=t.getAt(this.textStyleName);if(h!=null&&h.name)return h.name;const l=t.getIdAt(this.textStyleName);if(l!=null&&l.name)return l.name}return r||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,$c)}getResolvedLeaderLineType(){var e;const t=(e=this.getMLeaderStyle())==null?void 0:e.leaderLineType;return this.getResolvedStyleDrivenValue(this.leaderLineType,t,Wc)}getResolvedLeaderLineTypeId(){var t;return this.getResolvedStyleDrivenValue(this.leaderLineTypeId,(t=this.getMLeaderStyle())==null?void 0:t.leaderLineTypeId,qc)}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,Kc);if(e!=null)return e}getResolvedDoglegEnabled(){var e;const t=(e=this.getMLeaderStyle())==null?void 0:e.doglegEnabled;return this.getResolvedStyleDrivenValue(this.doglegEnabled,t,Zc)}getResolvedDoglegLength(){var e;const t=(e=this.getMLeaderStyle())==null?void 0:e.doglegLength;return this.getResolvedStyleDrivenValue(this.doglegLength,t,Qc)}getResolvedTextColor(){var t;return this.getResolvedComponentColor(this.textColor,(t=this.getMLeaderStyle())==null?void 0:t.textColor,Jc)}getResolvedComponentColor(t,e,n){if(!t)return e;const r=this.isPropertyOverrideEnabled(n);return r===!0?t:r===!1?e??t:!t.isByBlock&&!t.isByLayer?t:e??t}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){t.color=n,e&&(t.color=e)}applyLineTraits(t,e,n){e&&(t.lineType=e),n!=null&&(t.lineWeight=n)}};wr.typeName="MLeader";let wn=wr;const xr=class xr 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 m,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:ya(this.contents,this.height),n=jc(this.contents),r=Gc(n,this.height,this.lineSpacingFactor);return ma(t,this._location,e,r,this.attachmentPoint,this.rotation,this.direction)}subGetGripPoints(){return[this._location]}subGetOsnapPoints(t,e,n,r){x.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}};xr.typeName="MText";let hi=xr;function tu(i){return i&2048?"SqrtChord":i&1024?"Chord":"Uniform"}function us(i,t){try{return new ci(i.controlPoints,i.knots,eu(i.weights,i.controlPoints.length),i.degree,t)}catch{return null}}function eu(i,t){if(!(!i||i.length!==t))return i}const Ee=class Ee extends Z{get dxfTypeName(){return"SPLINE"}static fromControlPoints(t,e,n,r,s){const o=xt.fromControlPoints(t,e,n,r,s);return o?us(o,s):null}static fromFitPoints(t,e,n,r,s,o){const a=xt.fromFitPoints(t,e,n,r,s,o);return a?us(a,r):null}static fromDwgSpline(t){const e=!!(t.flag&1),n=tu(t.flag);if(t.numberOfControlPoints>0&&t.numberOfKnots>0){const r=Ee.fromControlPoints(t.controlPoints,t.knots,t.weights,t.degree,e);if(r)return r}return t.numberOfFitPoints>0?Ee.fromFitPoints(t.fitPoints,n,t.degree,e,t.startTangent,t.endTangent):null}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 xt(t,e,n,r):this._geo=new xt(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 m(t.x,t.y,t.z??0))}subGetOsnapPoints(t,e,n,r){switch(t){case x.EndPoint:r.push(this._geo.startPoint),r.push(this._geo.endPoint);break;case x.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 x.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=ah(e,this.closed,t,n);return r?lt.fromGePolyline(r):null}collectPath2d(t){return this._geo.getOffsetSamplePath2d(t).points}};Ee.typeName="Spline";let ci=Ee;const iu=new w,br=class br extends ye{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 de;s.setFromAxisAngle(w.Z_AXIS,this.rotation),ie.compose(this.position,s,this.scaleFactors);const o=[new m(0,0,0),new m(e,0,0),new m(e,-n,0),new m(0,-n,0)];for(const a of o)r.expandByPoint(a.applyMatrix4(ie));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,_=f.borderHeight??1;this.fillVisited(l,c,this.numColumns,y,_),s[a++]=d+p*(this.numColumns+1),s[a++]=d+p*(this.numColumns+1)+y;const b=o[s[a-1]*3]-r,S=d+(p+_)*(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+_==this.numRows&&(s[a++]=d+(p+_)*(this.numColumns+1)+_,s[a++]=d+(p+_)*(this.numColumns+1)),s[a++]=d+(p+_)*(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,b,A),E={text:f.text,height:this.getCellTextHeight(f,A),width:b,position:iu.set(r,-n,0).clone().add(T),rotation:this.rotation,attachmentPoint:L},X=this.getTextStyle(f);h.push(t.mtext(E,X))}}}}h.push(t.lineSegments(o,3,s));const u=t.group(h),g=new de;return g.setFromAxisAngle(w.Z_AXIS,this.rotation),ie.compose(this.position,g,this.scaleFactors),u.applyMatrix(ie),u}drawAnonymousTableBlock(t,e){const n=[],r=e.newIterator();for(const a of r){let h;if(a.color.isByBlock){ds.copy(a.color);const l=this.resolvedColor;l.isForeground?a.color.setForeground():l.RGB!=null&&a.color.setRGBValue(l.RGB),h=a.worldDraw(t),a.color.copy(ds)}else 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)&&(ie.setFromExtrusionDirection(o),s.applyMatrix(ie)),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")}};br.typeName="Table";let xn=br;const ie=new Y,ds=new O,le=class le extends Z{get dxfTypeName(){return"TRACE"}constructor(){super(),this._elevation=0,this._thickness=1,this._vertices=[new m,new m,new m,new m]}get elevation(){return this._elevation}set elevation(t){this._elevation=t}get closed(){return!0}get area(){return new j(le.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]];ir(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 j(le.boundaryPointsFromVertices(this._vertices),!0),n=new St;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 Ti(this.collectBoundary2d(),!0,t)}collectBoundary2d(){return le.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)]}};le.typeName="Trace";let bn=le;class Bt extends Error{constructor(t="Unexpected end of buffer."){super(t),this.name="AcDbProxyGraphicEndOfBufferError"}}function Sa(i){return i instanceof ArrayBuffer?new Uint8Array(i):i}class ht{constructor(t,e=4){this._index=0,this._buffer=Sa(t),this._align=e}get index(){return this._index}get hasData(){return this._index<this._buffer.length}alignIndex(t){const e=t%this._align;return e?t+this._align-e:t}readStruct(t){if(!this.hasData)throw new Bt;const e=[];let n=0;for(const r of t){const s=new DataView(this._buffer.buffer,this._buffer.byteOffset+this._index+n,r);if(r===8)e.push(s.getFloat64(0,!0));else if(r===4)e.push(s.getUint32(0,!0));else throw new Error(`Unsupported struct size: ${r}`);n+=r}return this._index=this.alignIndex(this._index+n),e}readFloat(){return this.readStruct([8])[0]}readLong(){return this.readStruct([4])[0]}readSignedLong(){if(!this.hasData)throw new Bt;const e=new DataView(this._buffer.buffer,this._buffer.byteOffset+this._index,4).getInt32(0,!0);return this._index=this.alignIndex(this._index+4),e}readVertex(){return this.readStruct([8,8,8])}readPaddedString(t="utf-8"){const e=this._buffer;for(let n=this._index;n<e.length;n++)if(e[n]===0){const r=this._index;this._index=this.alignIndex(n+1);const s=e.subarray(r,n);return new TextDecoder(t).decode(s)}throw new Bt("Did not detect terminating zero byte.")}readPaddedUnicodeString(){const t=this._buffer;for(let e=this._index;e<t.length;e+=2)if(e+1<t.length&&t[e]===0&&t[e+1]===0){const n=this._index;this._index=this.alignIndex(e+2);const r=t.subarray(n,e);return new TextDecoder("utf-16le").decode(r)}throw new Bt("Did not detect terminating zero bytes.")}}class La{constructor(t,e="AC1015",n="cp1252"){this._bitIndex=0,this._buffer=Sa(t),this.dxfversion=e,this.encoding=n}get hasData(){return this._bitIndex>>3<this._buffer.length}readBit(){const t=this._bitIndex;this._bitIndex+=1;const e=t>>3;if(e>=this._buffer.length)throw new Bt;return this._buffer[e]&128>>(t&7)?1:0}readBits(t){const e=this._bitIndex,n=e+t;if(n-1>>3>=this._buffer.length)throw new Bt;this._bitIndex=n;let r=128>>(e&7),s=e>>3,o=0,a=this._buffer[s];for(;t>0;)o<<=1,a&r&&(o|=1),t-=1,r>>=1,!r&&t&&(r=128,s+=1,a=this._buffer[s]);return o}readUnsignedByte(){return this.readBits(8)}readSignedByte(){const t=this.readBits(8);return t&128?-((~t&255)+1):t}readAlignedBytes(t){const e=this._bitIndex>>3,n=e+t;if(n>this._buffer.length)throw new Bt;return this._bitIndex+=t<<3,this._buffer.subarray(e,n)}readUnsignedShort(){if(this._bitIndex&7){const e=this.readBits(8);return(this.readBits(8)<<8)+e}const t=this.readAlignedBytes(2);return t[1]<<8|t[0]}readSignedShort(){const t=this.readUnsignedShort();return t&32768?-((~t&65535)+1):t}readUnsignedLong(){if(this._bitIndex&7){const e=this.readBits(8),n=this.readBits(8),r=this.readBits(8);return(this.readBits(8)<<24)+(r<<16)+(n<<8)+e}const t=this.readAlignedBytes(4);return(t[3]<<24)+(t[2]<<16)+(t[1]<<8)+t[0]}readSignedLong(){const t=this.readUnsignedLong();return t&2147483648?-((~t&4294967295)+1):t}readFloat(){if(this._bitIndex&7){const n=new Uint8Array(8);for(let r=0;r<8;r++)n[r]=this.readBits(8);return new DataView(n.buffer).getFloat64(0,!0)}const t=this.readAlignedBytes(8),e=new Uint8Array(t);return new DataView(e.buffer).getFloat64(0,!0)}readRawDouble(t=1){return t===1?this.readFloat():Array.from({length:t},()=>this.readFloat())}readBitShort(t=1){const e=()=>{const n=this.readBits(2);return n===0?this.readSignedShort():n===1?this.readUnsignedByte():n===2?0:256};return t===1?e():Array.from({length:t},()=>e())}readBitLong(t=1){const e=()=>{const n=this.readBits(2);return n===0?this.readSignedLong():n===1?this.readUnsignedByte():n===2?0:256};return t===1?e():Array.from({length:t},()=>e())}readBitDouble(t=1){const e=()=>{const n=this.readBits(2);return n===0?this.readFloat():n===1?1:0};return t===1?e():Array.from({length:t},()=>e())}readBitDoubleDefault(t=1,e=0){const n=new Uint8Array(8);new DataView(n.buffer).setFloat64(0,e,!0);const r=()=>{const s=this.readBits(2);if(s===0)return e;if(s===1){const o=new Uint8Array(n);return o[0]=this.readUnsignedByte(),o[1]=this.readUnsignedByte(),o[2]=this.readUnsignedByte(),o[3]=this.readUnsignedByte(),new DataView(o.buffer).getFloat64(0,!0)}if(s===2){const o=new Uint8Array(n);return o[4]=this.readUnsignedByte(),o[5]=this.readUnsignedByte(),o[0]=this.readUnsignedByte(),o[1]=this.readUnsignedByte(),o[2]=this.readUnsignedByte(),o[3]=this.readUnsignedByte(),new DataView(o.buffer).getFloat64(0,!0)}return this.readFloat()};return t===1?r():Array.from({length:t},()=>r())}}function Ia(i){return Array.from(i,t=>t.toString(16).padStart(2,"0")).join("").toUpperCase()}function nu(i){const t=i.reduce((r,s)=>r+Math.floor(s.length/2),0),e=new Uint8Array(t);let n=0;for(const r of i)for(let s=0;s<r.length;s+=2)e[n++]=parseInt(r.slice(s,s+2),16);return e}const ru=127;var Ea=(i=>(i[i.Extents=1]="Extents",i[i.Circle=2]="Circle",i[i.Circle3P=3]="Circle3P",i[i.CircularArc=4]="CircularArc",i[i.CircularArc3P=5]="CircularArc3P",i[i.Polyline=6]="Polyline",i[i.Polygon=7]="Polygon",i[i.Mesh=8]="Mesh",i[i.Shell=9]="Shell",i[i.Text=10]="Text",i[i.Text2=11]="Text2",i[i.Xline=12]="Xline",i[i.Ray=13]="Ray",i[i.AttributeColor=14]="AttributeColor",i[i.AttributeLayer=16]="AttributeLayer",i[i.AttributeLinetype=18]="AttributeLinetype",i[i.AttributeMarker=19]="AttributeMarker",i[i.AttributeFill=20]="AttributeFill",i[i.AttributeTrueColor=22]="AttributeTrueColor",i[i.AttributeLineweight=23]="AttributeLineweight",i[i.AttributeLtscale=24]="AttributeLtscale",i[i.AttributeThickness=25]="AttributeThickness",i[i.PushMatrix=29]="PushMatrix",i[i.PopMatrix=31]="PopMatrix",i[i.PolylineWithNormals=32]="PolylineWithNormals",i[i.LwPolyline=33]="LwPolyline",i[i.UnicodeText=36]="UnicodeText",i[i.UnicodeText2=38]="UnicodeText2",i[i.EllipticArc=44]="EllipticArc",i))(Ea||{});const Ht=w.Z_AXIS,su=529;function ou(i){const t=i>>24&255;return t===Ei?{rgb:i&16777215}:t===Ii?{colorIndex:256}:t===Ne?{colorIndex:0}:t===Mi?{colorIndex:i&255}:{colorIndex:i&255}}function Hi(i){return new w(i.x,i.y,i.z??0)}function Di(i){return new m(i.x,i.y,i.z??0)}function gs(i){return{x:i[0],y:i[1],z:i[2]}}class vn{constructor(t,e={}){this._index=8,this._colorIndex=256,this._layer="0",this._linetype=q,this._lineweight=exports.AcGiLineWeight.ByLineWeightDefault,this._ltscale=1,this._thickness=0,this._fill=!1,this._layers=[],this._linetypes=[],this._matrices=[],this._buffer=t,this._database=e.database,this._dxfversion=e.dxfversion??"AC1015",this._encoding=e.encoding??(this._dxfversion<"AC1024"?"windows-1252":"utf-8"),this._layer=e.defaultLayer??"0",this._database&&(this._database.tables.layerTable.newIterator().toArray().forEach(n=>this._layers.push(n.name)),this._database.tables.linetypeTable.newIterator().toArray().forEach(n=>this._linetypes.push(n.name)))}get extents(){return this._extents}scanExtents(){var n;const t=this._buffer;let e=this._index;for(;e<t.length;){const r=new DataView(t.buffer,t.byteOffset+e,8),s=r.getUint32(0,!0),o=r.getUint32(4,!0);if(s<8)break;if(o===1){const a=t.subarray(e+8,e+s);return this.readExtents(a),((n=this._extents)==null?void 0:n.length)===2?[this._extents[0],this._extents[1]]:void 0}e+=s}}worldDraw(t){const e=[],n=t.subEntityTraits,r={color:n.color.clone(),lineType:n.lineType,lineTypeScale:n.lineTypeScale,lineWeight:n.lineWeight,layer:n.layer,thickness:n.thickness},s=this._buffer;let o=this._index;for(;o<s.length;){const a=new DataView(s.buffer,s.byteOffset+o,8),h=a.getUint32(0,!0),l=a.getUint32(4,!0);if(h<8)break;const c=s.subarray(o+8,o+h);this.dispatchChunk(t,e,l,c),l!==20&&(this._fill=!1),o+=h}if(n.color=r.color,n.lineType=r.lineType,n.lineTypeScale=r.lineTypeScale,n.lineWeight=r.lineWeight,n.layer=r.layer,n.thickness=r.thickness,e.length!==0)return t.group(e)}dispatchChunk(t,e,n,r){switch(n){case 1:this.readExtents(r);break;case 2:this.drawCircle(t,e,r);break;case 3:this.drawCircle3P(t,e,r);break;case 4:this.drawCircularArc(t,e,r);break;case 5:this.drawCircularArc3P(t,e,r);break;case 44:this.drawEllipticArc(t,e,r);break;case 6:this.drawPolyline(t,e,r,!1);break;case 32:this.drawPolyline(t,e,r,!0);break;case 7:this.drawPolygon(t,e,r);break;case 33:this.drawLwPolyline(t,e,r);break;case 9:this.drawShell(t,e,r);break;case 10:this.drawText(t,e,r,!1);break;case 36:this.drawText(t,e,r,!0);break;case 11:this.drawText2(t,e,r,!1);break;case 38:this.drawText2(t,e,r,!0);break;case 12:this.drawXline(t,e,r,!1);break;case 13:this.drawXline(t,e,r,!0);break;case 14:this.readAttributeColor(r);break;case 16:this.readAttributeLayer(r);break;case 18:this.readAttributeLinetype(r);break;case 20:this.readAttributeFill(r);break;case 22:this.readAttributeTrueColor(r);break;case 23:this.readAttributeLineweight(r);break;case 24:this.readAttributeLtscale(r);break;case 25:this.readAttributeThickness(r);break;case 29:this.pushMatrix(r);break;case 31:this.popMatrix();break}}applyTraits(t){const e=t.subEntityTraits;e.layer=this._layer,e.lineTypeScale=this._ltscale,e.thickness=this._thickness,e.lineWeight=this._lineweight,this._rgbColor!=null?e.color=new O(exports.AcCmColorMethod.ByColor,this._rgbColor):this._colorIndex===256?e.color=new O(exports.AcCmColorMethod.ByLayer):this._colorIndex===0?e.color=new O(exports.AcCmColorMethod.ByBlock):this._colorIndex===7?e.color=new O(exports.AcCmColorMethod.ByACI,7):e.color=new O(exports.AcCmColorMethod.ByACI,this._colorIndex),e.lineType={name:this._linetype,type:this.resolveLineStyleType(),standardFlag:0,description:"",totalPatternLength:0}}resolveLineStyleType(){return this._linetype===q?"ByLayer":this._linetype===bt?"ByBlock":"UserSpecified"}transformPoint(t){const e=Array.isArray(t)?gs(t):t,n=Di(e);return this._matrices.length>0&&n.applyMatrix4(this._matrices[this._matrices.length-1]),n}transformVector(t){const e=Array.isArray(t)?gs(t):t,n=Hi(e);return this._matrices.length>0&&n.transformDirection(this._matrices[this._matrices.length-1]),!Number.isFinite(n.lengthSq())||n.lengthSq()<1e-24?Ht.clone():n.normalize()}pushEntity(t,e){e&&t.push(e)}readExtents(t){const e=new ht(t),n=e.readVertex(),r=e.readVertex();this._extents=[new m(n[0],n[1],n[2]),new m(r[0],r[1],r[2])]}readAttributeColor(t){const e=new DataView(t.buffer,t.byteOffset,4).getUint32(0,!0);this._rgbColor=void 0,this._colorIndex=e>256||e<0?256:e}readAttributeLayer(t){const e=new DataView(t.buffer,t.byteOffset,4).getUint32(0,!0);e<this._layers.length&&(this._layer=this._layers[e])}readAttributeLinetype(t){const e=new DataView(t.buffer,t.byteOffset,4).getUint32(0,!0);e+2<this._linetypes.length?this._linetype=this._linetypes[e+2]:e===32766?this._linetype=bt:this._linetype=q}readAttributeFill(t){this._fill=new DataView(t.buffer,t.byteOffset,4).getUint32(0,!0)!==0}readAttributeTrueColor(t){const e=new DataView(t.buffer,t.byteOffset,4).getUint32(0,!0),n=ou(e);this._rgbColor=n.rgb,n.colorIndex!=null&&(this._colorIndex=n.colorIndex)}readAttributeLineweight(t){const e=new DataView(t.buffer,t.byteOffset,4).getUint32(0,!0);e>su?this._lineweight=e-4294967296:this._lineweight=e}readAttributeLtscale(t){this._ltscale=new DataView(t.buffer,t.byteOffset,8).getFloat64(0,!0)}readAttributeThickness(t){this._thickness=new DataView(t.buffer,t.byteOffset,8).getFloat64(0,!0)}pushMatrix(t){const e=new Float64Array(t.buffer,t.byteOffset,16),n=new Y().fromArray(Array.from(e));n.transpose(),this._matrices.push(n)}popMatrix(){this._matrices.length>0&&this._matrices.pop()}loadVertices(t,e){const n=new ht(t);let r=n.readLong();e&&(r+=1);const s=[];for(;r>0;){const[a,h,l]=n.readVertex();s.push(this.transformPoint({x:a,y:h,z:l})),r-=1}let o=Ht;return e&&s.length>0&&(o=Hi(s.pop())),{vertices:s,normal:o}}drawCircle(t,e,n){const r=new ht(n),s=r.readVertex(),o=r.readFloat(),a=this.transformVector(r.readVertex());let h=Di({x:s[0],y:s[1],z:s[2]});a.equals(Ht)||(h=ge(h,a)),h=this.transformPoint(h);const l=Te(a),c=new wt(qi(h,a),o,0,B,a,l);this.applyTraits(t),this.pushEntity(e,t.circularArc(c))}drawCircle3P(t,e,n){const r=new ht(n),s=this.transformPoint(r.readVertex()),o=this.transformPoint(r.readVertex()),a=this.transformPoint(r.readVertex()),h=wt.computeCenterPoint(s,o,a);if(!h)return;const l=h.distanceTo(s),c=new wt(h,l,0,B,Ht);this.applyTraits(t),this.pushEntity(e,t.circularArc(c))}drawCircularArc(t,e,n){const r=new ht(n),s=r.readVertex(),o=r.readFloat(),a=r.readVertex(),h=r.readVertex(),l=r.readFloat(),c=this.transformVector(a),u=Di({x:s[0],y:s[1],z:s[2]}),g=Hi({x:h[0],y:h[1],z:h[2]});this._matrices.length>0&&g.transformDirection(this._matrices[this._matrices.length-1]);const d=Number.isFinite(g.lengthSq())&&g.lengthSq()>=1e-24?g.normalize():Te(c),p=0,f=l,y=new wt(this.transformPoint(u),o,p,f,c,d);this.applyTraits(t),this.pushEntity(e,t.circularArc(y))}drawCircularArc3P(t,e,n){const r=new ht(n),s=this.transformPoint(r.readVertex()),o=this.transformPoint(r.readVertex()),a=this.transformPoint(r.readVertex()),h=wt.computeCenterPoint(s,a,o);if(!h)return;const l=h.distanceTo(s),c=Ce(h,s,Ht),u=Ce(h,a,Ht),g=new wt(h,l,c,u,Ht);this.applyTraits(t),this.pushEntity(e,t.circularArc(g))}drawEllipticArc(t,e,n){const r=new ht(n),s=this.transformPoint(r.readVertex()),o=this.transformVector(r.readVertex()),a=r.readFloat(),h=r.readFloat(),l=r.readFloat(),c=r.readFloat(),u=r.readFloat(),g=qi({x:Math.cos(u)*a,y:Math.sin(u)*a,z:0},o),d=new Zn(s,o,g,a,h,l,c);this.applyTraits(t),this.pushEntity(e,t.ellipticalArc(d))}drawPolyline(t,e,n,r){var o,a;const{vertices:s}=this.loadVertices(n,r);if(s.length!==0){if(s.length===1){this.applyTraits(t);const h=((o=this._database)==null?void 0:o.pdmode)??0,l=((a=this._database)==null?void 0:a.pdsize)??0;this.pushEntity(e,t.point(s[0],{displayMode:h,displaySize:l}));return}this.applyTraits(t),this.pushEntity(e,t.lines(s))}}drawPolygon(t,e,n){const{vertices:r}=this.loadVertices(n,!1);if(r.length<2)return;if(this._fill){const o=new j(r.map(l=>({x:l.x,y:l.y})),!0),a=new St;a.add(o);const h=t.subEntityTraits;h.fillType={solidFill:!0,patternAngle:0,definitionLines:[]},h.drawOrder=-1,this.applyTraits(t),this.pushEntity(e,t.area(a));return}const s=[...r,r[0]];this.applyTraits(t),this.pushEntity(e,t.lines(s))}drawLwPolyline(t,e,n){const r=new La(n,this._dxfversion,this._encoding);let s=0,o=!1;r.readUnsignedLong();const a=r.readBitShort();a&8&&(s=r.readBitDouble()),a&512&&(o=!0);const h=r.readBitLong();if(h<=0)return;const l=a&16?r.readBitLong():0;this._dxfversion>="AC1024"&&(a&1024&&r.readBitLong(),a&32&&r.readBitLong());const c=r.readRawDouble(2),u=[this.transformPoint({x:c[0],y:c[1],z:s})];let g=c;for(let d=1;d<h;d++){const p=r.readBitDoubleDefault(1,g[0]),f=r.readBitDoubleDefault(1,g[1]);g=[p,f],u.push(this.transformPoint({x:p,y:f,z:s}))}for(let d=0;d<l;d++)r.readBitDouble();o&&u.length>1&&u.push(u[0].clone()),this.applyTraits(t),this.pushEntity(e,t.lines(u))}drawShell(t,e,n){const r=new ht(n),s=r.readLong(),o=[];for(let c=0;c<s;c++){const[u,g,d]=r.readVertex();o.push(this.transformPoint({x:u,y:g,z:d}))}const a=r.readLong(),h=[];let l=0;for(;l<a;){const c=Math.abs(r.readSignedLong());l+=1+c;const u=[];for(let d=0;d<c;d++)u.push(r.readLong());const g=u.map(d=>o[d]).filter(Boolean);if(g.length>=3)for(let d=0;d<g.length;d++)h.push(g[d]),h.push(g[(d+1)%g.length])}h.length!==0&&(this.applyTraits(t),this.pushEntity(e,t.lines(h)))}drawText(t,e,n,r){const s=new ht(n),o=this.transformPoint(s.readVertex()),a=this.transformVector(s.readVertex()),h=this.transformVector(s.readVertex()),[l,c,u]=s.readStruct([8,8,8]),g=r?s.readPaddedUnicodeString():s.readPaddedString(this._encoding);this.drawTextPrimitive(t,e,{insert:o,normal:a,textDirection:h,text:g,height:l,widthFactor:c,obliqueAngle:u})}drawText2(t,e,n,r){const s=new ht(n),o=this.transformPoint(s.readVertex()),a=this.transformVector(s.readVertex()),h=this.transformVector(s.readVertex()),l=r?s.readPaddedUnicodeString():s.readPaddedString(this._encoding);s.readSignedLong(),s.readSignedLong();const[c,u,g]=s.readStruct([8,8,8]);s.readFloat(),this.drawTextPrimitive(t,e,{insert:o,normal:a,textDirection:h,text:l,height:c,widthFactor:u,obliqueAngle:g})}drawTextPrimitive(t,e,n){const r=Math.atan2(n.textDirection.y,n.textDirection.x),s={text:n.text,height:n.height,width:1/0,widthFactor:n.widthFactor,position:n.insert,rotation:r*180/Math.PI,drawingDirection:exports.AcGiMTextFlowDirection.BOTTOM_TO_TOP,attachmentPoint:exports.AcGiMTextAttachmentPoint.BaselineLeft},o={name:K,standardFlag:0,fixedTextHeight:0,widthFactor:n.widthFactor,obliqueAngle:n.obliqueAngle*180/Math.PI,textGenerationFlag:0,lastHeight:n.height,font:"txt",bigFont:""};this.applyTraits(t),this.pushEntity(e,t.mtext(s,o))}drawXline(t,e,n,r){const s=new ht(n),o=this.transformPoint(s.readVertex()),a=this.transformPoint(s.readVertex()),h=new w().subVectors(a,o);if(h.lengthSq()===0)return;const l=1e6,c=r?o.clone().add(h.normalize().multiplyScalar(l)):o.clone().sub(h.normalize().multiplyScalar(l)),u=a.clone().add(h.normalize().multiplyScalar(l));this.applyTraits(t),this.pushEntity(e,t.lines([c,u]))}}function Ma(i,t){if(!(t!=null&&t.length))return;const e=new Uint8Array(t.reduce((r,s)=>r+Math.floor(s.length/2),0));let n=0;for(const r of t)for(let s=0;s<r.length;s+=2)e[n++]=parseInt(r.slice(s,s+2),16);return i!=null&&i>0&&e.length>=i?e.subarray(0,i):e}const vr=class vr extends ${constructor(){super(...arguments),this._originalDxfName="",this._originalClassName="",this._applicationName="",this._proxyEntityClassId=0,this._graphicsMetafileType=0,this._entityOrigins=[]}get dxfTypeName(){return"ACAD_PROXY_ENTITY"}get originalDxfName(){return this._originalDxfName}set originalDxfName(t){this._originalDxfName=t}get originalClassName(){return this._originalClassName}set originalClassName(t){this._originalClassName=t}get applicationName(){return this._applicationName}set applicationName(t){this._applicationName=t}get proxyEntityClassId(){return this._proxyEntityClassId}set proxyEntityClassId(t){this._proxyEntityClassId=t}get graphicsMetafileType(){return this._graphicsMetafileType}set graphicsMetafileType(t){this._graphicsMetafileType=t}get proxyGraphic(){return this._proxyGraphic}setProxyGraphic(t){this._proxyGraphic=t?new Uint8Array(t):void 0}get entityOrigins(){return this._entityOrigins}setEntityOrigins(t){this._entityOrigins=t.map(e=>new m(e.x,e.y,e.z))}get geometricExtents(){const t=this._proxyGraphic;if(!(t!=null&&t.length))return new C;const n=new vn(t,{database:this.database,defaultLayer:this.layer}).scanExtents();return n?new C().setFromPoints(n):new C}transformBy(t){return this._entityOrigins.forEach(e=>e.applyMatrix4(t)),this}subWorldDraw(t){const e=this._proxyGraphic;return e!=null&&e.length?new vn(e,{database:this.database,defaultLayer:this.layer}).worldDraw(t):void 0}dxfOutFields(t){var e;if(super.dxfOutFields(t),t.writeSubclassMarker("AcDbProxyEntity"),t.writeString(1,this._originalDxfName),this._originalClassName&&t.writeString(3,this._originalClassName),this._applicationName&&t.writeString(1001,this._applicationName),t.writeInt32(90,this._proxyEntityClassId),t.writeInt32(91,this._graphicsMetafileType),this._entityOrigins.length>0&&(t.writeInt32(92,this._entityOrigins.length),this._entityOrigins.forEach(n=>{t.writePoint3d(10,n)})),(e=this._proxyGraphic)!=null&&e.length){t.writeInt32(160,this._proxyGraphic.length);let n=0;for(;n<this._proxyGraphic.length;){const r=this._proxyGraphic.subarray(n,n+127);t.writeString(310,Ia(r)),n+=127}}return this}loadProxyGraphicFromDxf(t,e){const n=Ma(t,e);n&&this.setProxyGraphic(n)}};vr.typeName="ProxyEntity";let Pn=vr;const Pr=class Pr extends ${get dxfTypeName(){return"POINT"}constructor(){super(),this._geo=new m}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===x.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}};Pr.typeName="Point";let An=Pr;var Ta=(i=>(i[i.Invalid=0]="Invalid",i[i.Rect=1]="Rect",i[i.Poly=2]="Poly",i))(Ta||{}),Ca=(i=>(i[i.Show=1]="Show",i[i.ShowUnAligned=2]="ShowUnAligned",i[i.Clip=4]="Clip",i[i.Transparent=8]="Transparent",i))(Ca||{});const Ar=class Ar 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 m,this._scale=new G(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===x.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===x.EndPoint){r.push(...o);return}ir(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 tt;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 m(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){ps.copy(t[1]);for(let e=1;e<4;e++)Qe.copy(t[e]),Qe.rotateAround(ps,this._rotation),t[e].setX(Qe.x),t[e].setY(Qe.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}};Ar.typeName="RasterImage";let ui=Ar;const ps=new P,Qe=new P,vi=class vi extends Z{get dxfTypeName(){return"RAY"}constructor(){super(),this._basePoint=new m,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===x.EndPoint){r.push(s);return}const o=this.unitDir.clone();if(o.lengthSq()===0)return;o.normalize();const a=new Lt(s,s.clone().add(o));switch(t){case x.Nearest:{const h=a.project(e),c=new w(h).sub(s).dot(o);r.push(c<0?s:h);break}case x.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=ao(this.basePoint,this.unitDir,t);if(!e)return null;const n=new vi;return n.basePoint=e,n.unitDir=this.unitDir.clone(),n}};vi.typeName="Ray";let Sn=vi;const Sr=class Sr extends ${get dxfTypeName(){return"SHAPE"}constructor(){super(),this._position=new m,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 m(this._position.x-t,this._position.y-t,this._position.z)),e.expandByPoint(new m(this._position.x+t,this._position.y+t,this._position.z))),e}subGetGripPoints(){return[this._position]}subGetOsnapPoints(t,e,n,r){t===x.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 m(this._widthFactor,0,0).applyMatrix4(r).add(s),a=new m(0,1,0).applyMatrix4(r).add(s),h=new m(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(),_=l.length();this._position.copy(s),this._normal.copy(g),_>0&&(this._rotation=Math.atan2(f.y,f.x)),y>0&&(this._size*=y,_>0&&(this._widthFactor*=_/y));const b=u.length();return b>0&&(this._thickness*=b),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 n=this.getTextStyle(),r=n?{...n,widthFactor:this.widthFactor,obliqueAngle:this.oblique*180/Math.PI}:void 0,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.styleName.trim();if(!t)return;const e=this.database.tables.textStyleTable.resolveAt(t);return e==null?void 0:e.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}};Sr.typeName="Shape";let Ln=Sr;const Lr=class Lr extends ${get dxfTypeName(){return"VIEWPORT"}constructor(){super(),this._centerPoint=new m,this._height=0,this._width=0,this._viewCenter=new m,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 m(this._centerPoint.x-t,this._centerPoint.y-e,this._centerPoint.z)),n.expandByPoint(new m(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 Lo;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 m(t.centerPoint.x-t.width/2,t.centerPoint.y-t.height/2,0),new m(t.centerPoint.x+t.width/2,t.centerPoint.y-t.height/2,0)])),n.push(e.lines([new m(t.centerPoint.x+t.width/2,t.centerPoint.y-t.height/2,0),new m(t.centerPoint.x+t.width/2,t.centerPoint.y+t.height/2,0)])),n.push(e.lines([new m(t.centerPoint.x+t.width/2,t.centerPoint.y+t.height/2,0),new m(t.centerPoint.x-t.width/2,t.centerPoint.y+t.height/2,0)])),n.push(e.lines([new m(t.centerPoint.x-t.width/2,t.centerPoint.y+t.height/2,0),new m(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}};Lr.typeName="Viewport";let In=Lr;const Ir=class Ir extends ui{get dxfTypeName(){return"WIPEOUT"}subWorldDraw(t){const e=this.boundaryPath(),n=new St;return n.add(new j(e)),t.area(n)}dxfOutFields(t){return super.dxfOutFields(t),this}};Ir.typeName="Wipeout";let En=Ir;const Pi=class Pi extends Z{get dxfTypeName(){return"XLINE"}constructor(){super(),this._basePoint=new m,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===x.EndPoint){r.push(s);return}const o=this.unitDir.clone();if(o.lengthSq()===0)return;o.normalize();const a=new Lt(s,s.clone().add(o));switch(t){case x.Nearest:r.push(a.project(e));break;case x.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=ao(this.basePoint,this.unitDir,t);if(!e)return null;const n=new Pi;return n.basePoint=e,n.unitDir=this.unitDir.clone(),n}};Pi.typeName="Xline";let Mn=Pi;class Oa{constructor(t){this.position=new m(t.x,t.y,t.z||0)}}const Er=class Er extends Z{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 Oa(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 m(0,0,0),new m(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 m(t,e,n),new m(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 x.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 Ti(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}};Er.typeName="PolygonMesh";let Tn=Er;class ka{constructor(t){this.position=new m(t.x,t.y,t.z||0)}}class Ya{constructor(t){this.vertexIndices=t}}const Mr=class Mr extends Z{get dxfTypeName(){return"POLYLINE"}constructor(t,e){super(),this._vertices=t.map(n=>new ka(n)),this._faces=e.map(n=>new Ya(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 m(0,0,0),new m(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 m(t,e,n),new m(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 x.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 Ti(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 Cn=Mr;var Xa=(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))(Xa||{});const au=["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"],lu=i=>au[i];var Na=(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))(Na||{});class or{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 or().parse(t)}normalizeLineEndings(t){return t.replace(/\r\n/g,`
|
|
8
8
|
`).replace(/\r/g,`
|
|
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=I.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="${(I.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()===Ut}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),_=p+y;if(f>0||f===0){const b=I.clamp(p,e,n),S=I.clamp(_,e,n);S>b?c.push({x1:r+o*b,y1:s+a*b,x2:r+o*S,y2:s+a*S}):f===0&&b>=e&&b<=n&&c.push({x1:r+o*(b-.35),y1:s+a*(b-.35),x2:r+o*(b+.35),y2:s+a*(b+.35)})}p=_}g+=l}return c}static renderFamily(t,e){const n=I.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 _=t.originX+h*y,b=t.originY+l*y,S=N.buildDashSegments(t,d,p,_,b,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=I.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=I.clamp(s,-1,1),y=p.x*f*o*.25,_=p.y*f*a*.25;switch(c){case"CYLINDER":{const b=I.clamp(.5+f*.45,.05,.95);return N.renderLinearGradientDef(t,r,0,d,[{offset:0,color:u},{offset:b,color:g},{offset:1,color:u}])}case"SPHERICAL":return N.renderRadialGradientDef(t,y,_,d,[{offset:0,color:g},{offset:1,color:u}]);case"HEMISPHERICAL":return N.renderRadialGradientDef(t,y+p.x*o*.18,_+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+_,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 Tn=N;var hi=(i=>(i[i.AtLeast=1]="AtLeast",i[i.Exactly=2]="Exactly",i))(hi||{});const Mr=class Mr extends ${get dxfTypeName(){return"DIMENSION"}constructor(){super(),this._dimBlockId=null,this._dimBlockPosition=new m,this._dimensionStyleName=null,this._dimensionText=null,this._textLineSpacingFactor=1,this._textLineSpacingStyle=1,this._textPosition=new m,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 fe),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 m(e).applyMatrix4(a.clone().invert()),l=new m(n).applyMatrix4(a.clone().invert()),c=(u,g)=>{const d=[];u.subGetOsnapPoints(t,h,l,d,g,a),u instanceof ye?d.forEach(p=>r.push(p.clone())):d.forEach(p=>r.push(new m(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 qt.instance.draw(t,e,this.resolvedColor,[],!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:hi[1],value:1},{label:hi[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 m().subVectors(e,t).normalize();return new m(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)??m.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 Lt=Mr;const Tr=class Tr extends Lt{constructor(t,e,n,r,s=null,o=null){super(),this._centerPoint=new m().copy(t),this._xLine1Point=new m().copy(e),this._xLine2Point=new m().copy(n),this._arcPoint=new m().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}};Tr.typeName="3PointAngularDimension";let Cn=Tr;const Cr=class Cr extends Lt{constructor(t,e,n,r=null,s=null){super(),this._dimLinePoint=new m().copy(n),this._xLine1Point=new m().copy(t),this._xLine2Point=new m().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 J;e.name=t;const n=this.createLines();n.forEach(a=>e.appendEntity(new oi(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 ai;return r.attachmentPoint=exports.AcGiMTextAttachmentPoint.MiddleLeft,r.layer="0",r.color=new O(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 ye(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 St(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 St(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}};Cr.typeName="AlignedDimension";let ci=Cr;const Or=class Or extends Lt{constructor(t,e,n,r,s=null,o=null){super(),this._arcPoint=new m().copy(r),this._xLine1Point=new m().copy(e),this._xLine2Point=new m().copy(n),this._centerPoint=new m().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}};Or.typeName="ArcDimension";let On=Or;const kr=class kr extends Lt{constructor(t,e,n=0,r=null,s=null){super(),this._chordPoint=new m().copy(t),this._farChordPoint=new m().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}};kr.typeName="DiametricDimension";let kn=kr;const Yr=class Yr extends Lt{constructor(t,e,n=null,r=null){super(),this._definingPoint=new m().copy(t),this._leaderEndPoint=new m().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}};Yr.typeName="OrdinateDimension";let Yn=Yr;const Xr=class Xr extends Lt{constructor(t,e,n,r=null,s=null){super(),this._center=new m().copy(t),this._chordPoint=new m().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}};Xr.typeName="RadialDimension";let Xn=Xr;const Nr=class Nr extends ci{get dxfSubclassMarker(){return"AcDbRotatedDimension"}};Nr.typeName="RotatedDimension";let Nn=Nr;class iu extends yt{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 Xa=(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))(Xa||{});class nu extends yt{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=Ji;exports.ACDB_PROXY_GRAPHIC_CHUNK_SIZE=Zc;exports.ACGI_DARK_THEME_FOREGROUND=Ce;exports.ACGI_LIGHT_THEME_FOREGROUND=Oe;exports.ACGI_MODEL_SPACE_BACKGROUND=vo;exports.ACGI_PAPER_SPACE_BACKGROUND=Mh;exports.ACTIVE_VPORT_NAME=pe;exports.AC_DB_SYSTEM_VARIABLE_NAMES=Vh;exports.AcCmColor=O;exports.AcCmColorUtil=Ct;exports.AcCmEntityColor=za;exports.AcCmErrors=st;exports.AcCmEventDispatcher=Fa;exports.AcCmEventManager=U;exports.AcCmLoader=el;exports.AcCmLoadingManager=xs;exports.AcCmObject=ms;exports.AcCmPerformanceCollector=Rn;exports.AcCmTask=_s;exports.AcCmTaskScheduler=ws;exports.AcCmTransparency=W;exports.AcDb2dPolyline=rn;exports.AcDb2dVertex=sn;exports.AcDb2dVertexType=ca;exports.AcDb3PointAngularDimension=Cn;exports.AcDb3dPolyline=on;exports.AcDb3dVertex=an;exports.AcDb3dVertexType=da;exports.AcDbAbstractViewTableRecord=nr;exports.AcDbAlignedDimension=ci;exports.AcDbAngleUnits=rt;exports.AcDbArc=ln;exports.AcDbArcDimension=On;exports.AcDbAttribute=cn;exports.AcDbAttributeDefinition=hn;exports.AcDbAttributeFlags=nt;exports.AcDbAttributeMTextFlag=Ot;exports.AcDbBaseWorker=Dh;exports.AcDbBatchProcessing=bo;exports.AcDbBlockReference=ye;exports.AcDbBlockScaling=ho;exports.AcDbBlockTable=ta;exports.AcDbBlockTableRecord=J;exports.AcDbCircle=un;exports.AcDbCodePage=ka;exports.AcDbCurve=Z;exports.AcDbDataGenerator=Ho;exports.AcDbDatabase=Mc;exports.AcDbDatabaseConverter=Co;exports.AcDbDatabaseConverterManager=_t;exports.AcDbDiametricDimension=kn;exports.AcDbDictionary=Ht;exports.AcDbDimArrowType=Ya;exports.AcDbDimStyleTable=ea;exports.AcDbDimStyleTableRecord=fe;exports.AcDbDimTextHorizontal=Xo;exports.AcDbDimTextVertical=No;exports.AcDbDimVerticalJustification=zo;exports.AcDbDimZeroSuppression=Bo;exports.AcDbDimZeroSuppressionAngular=Ro;exports.AcDbDimension=Lt;exports.AcDbDuplicateRecordCloning=Xa;exports.AcDbDwgVersion=gt;exports.AcDbDxfCode=Bn;exports.AcDbDxfFiler=vs;exports.AcDbEllipse=dn;exports.AcDbEntity=$;exports.AcDbFace=gn;exports.AcDbFileType=Se;exports.AcDbFormatter=Do;exports.AcDbGradientPatternType=Go;exports.AcDbHatch=si;exports.AcDbHatchObjectType=jo;exports.AcDbHatchPatternType=Le;exports.AcDbHatchStyle=Vo;exports.AcDbHostApplicationServices=ni;exports.AcDbLayerTable=ia;exports.AcDbLayerTableRecord=Qn;exports.AcDbLayout=Pi;exports.AcDbLayoutDictionary=la;exports.AcDbLayoutManager=_o;exports.AcDbLeader=pn;exports.AcDbLeaderAnnotationType=_a;exports.AcDbLine=oi;exports.AcDbLineSpacingStyle=hi;exports.AcDbLinearUnits=H;exports.AcDbLinetypeTable=na;exports.AcDbLinetypeTableRecord=Wt;exports.AcDbMLeader=yn;exports.AcDbMLeaderContentType=se;exports.AcDbMLeaderDirectionType=va;exports.AcDbMLeaderLineType=Ie;exports.AcDbMLeaderStyle=Qo;exports.AcDbMLeaderTextAttachmentDirection=ba;exports.AcDbMLine=fn;exports.AcDbMLineFlags=xa;exports.AcDbMLineJustification=wa;exports.AcDbMText=ai;exports.AcDbMlineStyle=Jo;exports.AcDbObject=yt;exports.AcDbObjectIterator=ze;exports.AcDbOpenMode=xo;exports.AcDbOrdinateDimension=Yn;exports.AcDbOsnapMode=x;exports.AcDbPatParser=rr;exports.AcDbPatSvgRenderer=Tn;exports.AcDbPlotPaperUnits=co;exports.AcDbPlotRotation=uo;exports.AcDbPlotSettings=mo;exports.AcDbPlotShadePlotResLevel=po;exports.AcDbPlotShadePlotType=fo;exports.AcDbPlotStdScaleType=yo;exports.AcDbPlotType=go;exports.AcDbPoint=vn;exports.AcDbPoly2dType=ha;exports.AcDbPoly3dType=ua;exports.AcDbPolyFaceMesh=Mn;exports.AcDbPolyFaceMeshFace=Oa;exports.AcDbPolyFaceMeshVertex=Ca;exports.AcDbPolygonMesh=En;exports.AcDbPolygonMeshVertex=Ta;exports.AcDbPolyline=lt;exports.AcDbPredefinedAcadIsoPat=Fo;exports.AcDbPredefinedAcadPat=Qh;exports.AcDbProxyEntity=bn;exports.AcDbProxyGraphic=xn;exports.AcDbProxyGraphicBitStream=Aa;exports.AcDbProxyGraphicByteStream=ht;exports.AcDbProxyGraphicEndOfBufferError=Nt;exports.AcDbProxyGraphicType=La;exports.AcDbRadialDimension=Xn;exports.AcDbRasterImage=li;exports.AcDbRasterImageClipBoundaryType=Ea;exports.AcDbRasterImageDef=iu;exports.AcDbRasterImageImageDisplayOpt=Ma;exports.AcDbRay=Pn;exports.AcDbRegAppTable=aa;exports.AcDbRegAppTableRecord=en;exports.AcDbRegenerator=Oo;exports.AcDbRenderingCache=qt;exports.AcDbResultBuffer=Zn;exports.AcDbRotatedDimension=Nn;exports.AcDbShape=An;exports.AcDbSpline=mn;exports.AcDbSymbolTable=It;exports.AcDbSymbolTableRecord=Vt;exports.AcDbSysVarManager=pt;exports.AcDbSystemVariables=v;exports.AcDbTable=_n;exports.AcDbText=Xe;exports.AcDbTextHorizontalMode=ya;exports.AcDbTextStyleTable=ra;exports.AcDbTextStyleTableRecord=Jn;exports.AcDbTextVerticalMode=ma;exports.AcDbTrace=wn;exports.AcDbUnitsValue=V;exports.AcDbViewTable=sa;exports.AcDbViewTableRecord=Tc;exports.AcDbViewport=Sn;exports.AcDbViewportTable=oa;exports.AcDbViewportTableRecord=$t;exports.AcDbWipeout=Ln;exports.AcDbWorkerApi=Yo;exports.AcDbWorkerManager=ko;exports.AcDbXline=In;exports.AcDbXrecord=nu;exports.AcGeArea2d=At;exports.AcGeBox2d=tt;exports.AcGeBox3d=C;exports.AcGeCatmullRomCurve3d=lo;exports.AcGeCircArc2d=ft;exports.AcGeCircArc3d=wt;exports.AcGeCurve2d=me;exports.AcGeEllipseArc2d=Te;exports.AcGeEllipseArc3d=qn;exports.AcGeEuler=fl;exports.AcGeGeometryUtil=Ds;exports.AcGeLine2d=Bt;exports.AcGeLine3d=St;exports.AcGeLoop2d=Kn;exports.AcGeMathUtil=I;exports.AcGeMatrix2d=Be;exports.AcGeMatrix3d=Y;exports.AcGeNurbsCurve=dt;exports.AcGePlane=Dn;exports.AcGePoint2d=P;exports.AcGePoint3d=m;exports.AcGePolyline2d=j;exports.AcGeQuaternion=de;exports.AcGeShape2d=$n;exports.AcGeSpline3d=Rt;exports.AcGeTol=F;exports.AcGeVector2d=G;exports.AcGeVector3d=w;exports.AcGiContext=Ai;exports.AcGiViewport=Ao;exports.AcTrStringUtil=tl;exports.ByBlock=xt;exports.ByLayer=q;exports.DEBUG_MODE=Ka;exports.DEFAULT_ACGI_CONTEXT=Ch;exports.DEFAULT_GRADIENT_HATCH_NAME=Io;exports.DEFAULT_HATCH_PATTERN_IMPERIAL=Xh;exports.DEFAULT_HATCH_PATTERN_METRIC=So;exports.DEFAULT_LINE_TYPE=zt;exports.DEFAULT_MLEADER_STYLE=Xt;exports.DEFAULT_MLINE_STYLE=Yt;exports.DEFAULT_TEXT_STYLE=K;exports.DEFAULT_TOL=bi;exports.DEG2RAD=zn;exports.DefaultLoadingManager=bs;exports.FLOAT_TOL=vt;exports.HATCH_PATTERN_SOLID=Ut;exports.HATCH_PATTERN_USER=Lo;exports.MLIGHTCAD_APPID=Qi;exports.ORIGIN_POINT_2D=sl;exports.ORIGIN_POINT_3D=Hn;exports.RAD2DEG=Fn;exports.RAW_COLOR_TYPE_ACI=Ii;exports.RAW_COLOR_TYPE_BY_BLOCK=Ye;exports.RAW_COLOR_TYPE_BY_LAYER=Si;exports.RAW_COLOR_TYPE_RGB=Li;exports.RAW_COLOR_TYPE_WINDOW_BG=Zo;exports.TAU=B;exports.TEMP_OBJECT_ID_PREFIX=Ze;exports.VPORT_FALLBACK_CENTER_2D=Nh;exports.VPORT_FALLBACK_LLC=Bh;exports.VPORT_FALLBACK_URC=Rh;exports.VPORT_FALLBACK_VIEW_DIR=zh;exports.VPORT_FALLBACK_VIEW_TARGET=Fh;exports.acdbDisableOsnapMode=Zh;exports.acdbEnableOsnapMode=Kh;exports.acdbHasOsnapMode=qh;exports.acdbHostApplicationServices=wo;exports.acdbMaskToOsnapModes=Wh;exports.acdbOsnapModesToMask=Uh;exports.acdbToggleOsnapMode=$h;exports.acgiContrastingForegroundColor=kh;exports.acgiForegroundColorForBackground=Oh;exports.acgiIsLightBackground=Po;exports.acgiResolveSubEntityTraitsRgbFromBackground=Yh;exports.basisFunction=Ft;exports.bytesToHexString=Sa;exports.calculateCurveLength=$s;exports.ceilPowerOfTwo=zs;exports.clamp=Pt;exports.clone=be;exports.computeParameterValues=Us;exports.createWorkerApi=Hh;exports.damp=Es;exports.decodeMLeaderStyleRawColor=bc;exports.deepClone=Hi;exports.defaults=Ne;exports.degToRad=Ns;exports.dwgCodePageToEncoding=eu;exports.encodeMLeaderStyleRawColor=Je;exports.euclideanModulo=Vn;exports.evaluateNurbsPoint=Ae;exports.floorPowerOfTwo=Fs;exports.generateAveragedKnots=Ws;exports.generateChordKnots=ml;exports.generateSqrtChordKnots=_l;exports.generateUUID=Ss;exports.generateUniformKnots=yl;exports.getOcsAngle=Me;exports.getOcsReferenceVector=vi;exports.has=ps;exports.hexStringsToBytes=Kc;exports.intPartLength=Gn;exports.interpolateControlPoints=vl;exports.interpolateNurbsCurve=Wn;exports.inverseLerp=Is;exports.isBetween=Vs;exports.isBetweenAngle=js;exports.isEmpty=fs;exports.isEqual=he;exports.isImperialUnits=Mo;exports.isMetricUnits=Eo;exports.isPointInPolygon=Un;exports.isPolygonIntersect=Hs;exports.isPowerOfTwo=Rs;exports.lerp=jn;exports.loadAcDbProxyGraphicFromDxf=Ia;exports.log=ve;exports.mapLinear=Ls;exports.normalizeAngle=Pe;exports.pingpong=Ms;exports.radToDeg=Bs;exports.randFloat=ks;exports.randFloatSpread=Ys;exports.randInt=Os;exports.relativeEps=Gs;exports.seededRandom=Xs;exports.setAcDbHostApplicationServicesProvider=As;exports.setAcDbLayoutManagerFactory=Eh;exports.setLogLevel=Za;exports.smootherstep=Cs;exports.smoothstep=Ts;exports.transformOcsPointToWcs=Ui;exports.transformWcsPointToOcs=ge;
|
|
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=I.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="${(I.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()===Wt}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),_=p+y;if(f>0||f===0){const b=I.clamp(p,e,n),S=I.clamp(_,e,n);S>b?c.push({x1:r+o*b,y1:s+a*b,x2:r+o*S,y2:s+a*S}):f===0&&b>=e&&b<=n&&c.push({x1:r+o*(b-.35),y1:s+a*(b-.35),x2:r+o*(b+.35),y2:s+a*(b+.35)})}p=_}g+=l}return c}static renderFamily(t,e){const n=I.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 _=t.originX+h*y,b=t.originY+l*y,S=N.buildDashSegments(t,d,p,_,b,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=I.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=I.clamp(s,-1,1),y=p.x*f*o*.25,_=p.y*f*a*.25;switch(c){case"CYLINDER":{const b=I.clamp(.5+f*.45,.05,.95);return N.renderLinearGradientDef(t,r,0,d,[{offset:0,color:u},{offset:b,color:g},{offset:1,color:u}])}case"SPHERICAL":return N.renderRadialGradientDef(t,y,_,d,[{offset:0,color:g},{offset:1,color:u}]);case"HEMISPHERICAL":return N.renderRadialGradientDef(t,y+p.x*o*.18,_+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+_,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 On=N;var di=(i=>(i[i.AtLeast=1]="AtLeast",i[i.Exactly=2]="Exactly",i))(di||{});const Tr=class Tr extends ${get dxfTypeName(){return"DIMENSION"}constructor(){super(),this._dimBlockId=null,this._dimBlockPosition=new m,this._dimensionStyleName=null,this._dimensionText=null,this._textLineSpacingFactor=1,this._textLineSpacingStyle=1,this._textPosition=new m,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 fe),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 m(e).applyMatrix4(a.clone().invert()),l=new m(n).applyMatrix4(a.clone().invert()),c=(u,g)=>{const d=[];u.subGetOsnapPoints(t,h,l,d,g,a),u instanceof ye?d.forEach(p=>r.push(p.clone())):d.forEach(p=>r.push(new m(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 Kt.instance.draw(t,e,this.resolvedColor,[],!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:di[1],value:1},{label:di[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 m().subVectors(e,t).normalize();return new m(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)??m.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}};Tr.typeName="Dimension";let It=Tr;const Cr=class Cr extends It{constructor(t,e,n,r,s=null,o=null){super(),this._centerPoint=new m().copy(t),this._xLine1Point=new m().copy(e),this._xLine2Point=new m().copy(n),this._arcPoint=new m().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}};Cr.typeName="3PointAngularDimension";let kn=Cr;const Or=class Or extends It{constructor(t,e,n,r=null,s=null){super(),this._dimLinePoint=new m().copy(n),this._xLine1Point=new m().copy(t),this._xLine2Point=new m().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 J;e.name=t;const n=this.createLines();n.forEach(a=>e.appendEntity(new li(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 hi;return r.attachmentPoint=exports.AcGiMTextAttachmentPoint.MiddleLeft,r.layer="0",r.color=new O(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 ye(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 Lt(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 Lt(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}};Or.typeName="AlignedDimension";let gi=Or;const kr=class kr extends It{constructor(t,e,n,r,s=null,o=null){super(),this._arcPoint=new m().copy(r),this._xLine1Point=new m().copy(e),this._xLine2Point=new m().copy(n),this._centerPoint=new m().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}};kr.typeName="ArcDimension";let Yn=kr;const Yr=class Yr extends It{constructor(t,e,n=0,r=null,s=null){super(),this._chordPoint=new m().copy(t),this._farChordPoint=new m().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}};Yr.typeName="DiametricDimension";let Xn=Yr;const Xr=class Xr extends It{constructor(t,e,n=null,r=null){super(),this._definingPoint=new m().copy(t),this._leaderEndPoint=new m().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}};Xr.typeName="OrdinateDimension";let Nn=Xr;const Nr=class Nr extends It{constructor(t,e,n,r=null,s=null){super(),this._center=new m().copy(t),this._chordPoint=new m().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}};Nr.typeName="RadialDimension";let Bn=Nr;const Br=class Br extends gi{get dxfSubclassMarker(){return"AcDbRotatedDimension"}};Br.typeName="RotatedDimension";let Rn=Br;class hu extends yt{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 Ba=(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))(Ba||{});class cu extends yt{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=nn;exports.ACDB_PROXY_GRAPHIC_CHUNK_SIZE=ru;exports.ACGI_DARK_THEME_FOREGROUND=ke;exports.ACGI_LIGHT_THEME_FOREGROUND=Ye;exports.ACGI_MODEL_SPACE_BACKGROUND=Ao;exports.ACGI_PAPER_SPACE_BACKGROUND=Yh;exports.ACTIVE_VPORT_NAME=pe;exports.AC_DB_SYSTEM_VARIABLE_NAMES=Uh;exports.AcCmColor=O;exports.AcCmColorUtil=Ot;exports.AcCmEntityColor=Va;exports.AcCmErrors=st;exports.AcCmEventDispatcher=ja;exports.AcCmEventManager=U;exports.AcCmLoader=nl;exports.AcCmLoadingManager=vs;exports.AcCmObject=ws;exports.AcCmPerformanceCollector=Fn;exports.AcCmTask=xs;exports.AcCmTaskScheduler=bs;exports.AcCmTransparency=W;exports.AcDb2dPolyline=an;exports.AcDb2dVertex=ln;exports.AcDb2dVertexType=da;exports.AcDb3PointAngularDimension=kn;exports.AcDb3dPolyline=hn;exports.AcDb3dVertex=cn;exports.AcDb3dVertexType=pa;exports.AcDbAbstractViewTableRecord=sr;exports.AcDbAlignedDimension=gi;exports.AcDbAngleUnits=rt;exports.AcDbArc=un;exports.AcDbArcDimension=Yn;exports.AcDbAttribute=gn;exports.AcDbAttributeDefinition=dn;exports.AcDbAttributeFlags=nt;exports.AcDbAttributeMTextFlag=kt;exports.AcDbBaseWorker=Kh;exports.AcDbBatchProcessing=Po;exports.AcDbBlockReference=ye;exports.AcDbBlockScaling=uo;exports.AcDbBlockTable=ia;exports.AcDbBlockTableRecord=J;exports.AcDbCircle=pn;exports.AcDbCodePage=Xa;exports.AcDbCurve=Z;exports.AcDbDataGenerator=Uo;exports.AcDbDatabase=Yc;exports.AcDbDatabaseConverter=ko;exports.AcDbDatabaseConverterManager=_t;exports.AcDbDiametricDimension=Xn;exports.AcDbDictionary=Dt;exports.AcDbDimArrowType=Na;exports.AcDbDimStyleTable=na;exports.AcDbDimStyleTableRecord=fe;exports.AcDbDimTextHorizontal=Bo;exports.AcDbDimTextVertical=Ro;exports.AcDbDimVerticalJustification=Vo;exports.AcDbDimZeroSuppression=zo;exports.AcDbDimZeroSuppressionAngular=Fo;exports.AcDbDimension=It;exports.AcDbDuplicateRecordCloning=Ba;exports.AcDbDwgVersion=gt;exports.AcDbDxfCode=zn;exports.AcDbDxfFiler=As;exports.AcDbEllipse=fn;exports.AcDbEntity=$;exports.AcDbFace=yn;exports.AcDbFileType=Se;exports.AcDbFormatter=Wo;exports.AcDbGradientPatternType=Do;exports.AcDbHatch=ai;exports.AcDbHatchObjectType=Ho;exports.AcDbHatchPatternType=Le;exports.AcDbHatchStyle=Go;exports.AcDbHostApplicationServices=si;exports.AcDbLayerTable=ra;exports.AcDbLayerTableRecord=tr;exports.AcDbLayout=Si;exports.AcDbLayoutDictionary=ca;exports.AcDbLayoutManager=xo;exports.AcDbLeader=mn;exports.AcDbLeaderAnnotationType=xa;exports.AcDbLine=li;exports.AcDbLineSpacingStyle=di;exports.AcDbLinearUnits=H;exports.AcDbLinetypeTable=sa;exports.AcDbLinetypeTableRecord=$t;exports.AcDbMLeader=wn;exports.AcDbMLeaderContentType=se;exports.AcDbMLeaderDirectionType=Aa;exports.AcDbMLeaderLineType=Ie;exports.AcDbMLeaderStyle=ta;exports.AcDbMLeaderTextAttachmentDirection=Pa;exports.AcDbMLine=_n;exports.AcDbMLineFlags=va;exports.AcDbMLineJustification=ba;exports.AcDbMText=hi;exports.AcDbMlineStyle=ea;exports.AcDbObject=yt;exports.AcDbObjectIterator=Ve;exports.AcDbOpenMode=vo;exports.AcDbOrdinateDimension=Nn;exports.AcDbOsnapMode=x;exports.AcDbPatParser=or;exports.AcDbPatSvgRenderer=On;exports.AcDbPlotPaperUnits=go;exports.AcDbPlotRotation=po;exports.AcDbPlotSettings=wo;exports.AcDbPlotShadePlotResLevel=yo;exports.AcDbPlotShadePlotType=mo;exports.AcDbPlotStdScaleType=_o;exports.AcDbPlotType=fo;exports.AcDbPoint=An;exports.AcDbPoly2dType=ua;exports.AcDbPoly3dType=ga;exports.AcDbPolyFaceMesh=Cn;exports.AcDbPolyFaceMeshFace=Ya;exports.AcDbPolyFaceMeshVertex=ka;exports.AcDbPolygonMesh=Tn;exports.AcDbPolygonMeshVertex=Oa;exports.AcDbPolyline=lt;exports.AcDbPredefinedAcadIsoPat=jo;exports.AcDbPredefinedAcadPat=nc;exports.AcDbProxyEntity=Pn;exports.AcDbProxyGraphic=vn;exports.AcDbProxyGraphicBitStream=La;exports.AcDbProxyGraphicByteStream=ht;exports.AcDbProxyGraphicEndOfBufferError=Bt;exports.AcDbProxyGraphicType=Ea;exports.AcDbRadialDimension=Bn;exports.AcDbRasterImage=ui;exports.AcDbRasterImageClipBoundaryType=Ta;exports.AcDbRasterImageDef=hu;exports.AcDbRasterImageImageDisplayOpt=Ca;exports.AcDbRay=Sn;exports.AcDbRegAppTable=ha;exports.AcDbRegAppTableRecord=sn;exports.AcDbRegenerator=Yo;exports.AcDbRenderingCache=Kt;exports.AcDbResultBuffer=Jn;exports.AcDbRotatedDimension=Rn;exports.AcDbShape=Ln;exports.AcDbSpline=ci;exports.AcDbSymbolTable=Et;exports.AcDbSymbolTableRecord=Vt;exports.AcDbSysVarManager=pt;exports.AcDbSystemVariables=v;exports.AcDbTable=xn;exports.AcDbText=Be;exports.AcDbTextHorizontalMode=_a;exports.AcDbTextStyleTable=oa;exports.AcDbTextStyleTableRecord=er;exports.AcDbTextVerticalMode=wa;exports.AcDbTrace=bn;exports.AcDbUnitsValue=V;exports.AcDbViewTable=aa;exports.AcDbViewTableRecord=Xc;exports.AcDbViewport=In;exports.AcDbViewportTable=la;exports.AcDbViewportTableRecord=qt;exports.AcDbWipeout=En;exports.AcDbWorkerApi=No;exports.AcDbWorkerManager=Xo;exports.AcDbXline=Mn;exports.AcDbXrecord=cu;exports.AcGeArea2d=St;exports.AcGeBox2d=tt;exports.AcGeBox3d=C;exports.AcGeCatmullRomCurve3d=co;exports.AcGeCircArc2d=ft;exports.AcGeCircArc3d=wt;exports.AcGeCurve2d=me;exports.AcGeEllipseArc2d=Oe;exports.AcGeEllipseArc3d=Zn;exports.AcGeEuler=ml;exports.AcGeGeometryUtil=Ws;exports.AcGeLine2d=Rt;exports.AcGeLine3d=Lt;exports.AcGeLoop2d=Qn;exports.AcGeMathUtil=I;exports.AcGeMatrix2d=ze;exports.AcGeMatrix3d=Y;exports.AcGeNurbsCurve=dt;exports.AcGePlane=Wn;exports.AcGePoint2d=P;exports.AcGePoint3d=m;exports.AcGePolyline2d=j;exports.AcGeQuaternion=de;exports.AcGeShape2d=Kn;exports.AcGeSpline3d=xt;exports.AcGeTol=F;exports.AcGeVector2d=G;exports.AcGeVector3d=w;exports.AcGiContext=Li;exports.AcGiViewport=Lo;exports.AcTrStringUtil=il;exports.ByBlock=bt;exports.ByLayer=q;exports.DEBUG_MODE=Qa;exports.DEFAULT_ACGI_CONTEXT=Nh;exports.DEFAULT_GRADIENT_HATCH_NAME=Mo;exports.DEFAULT_HATCH_PATTERN_IMPERIAL=Fh;exports.DEFAULT_HATCH_PATTERN_METRIC=Io;exports.DEFAULT_LINE_TYPE=zt;exports.DEFAULT_MLEADER_STYLE=Nt;exports.DEFAULT_MLINE_STYLE=Xt;exports.DEFAULT_TEXT_STYLE=K;exports.DEFAULT_TOL=Ai;exports.DEG2RAD=Vn;exports.DefaultLoadingManager=Ps;exports.FLOAT_TOL=Pt;exports.HATCH_PATTERN_SOLID=Wt;exports.HATCH_PATTERN_USER=Eo;exports.MLIGHTCAD_APPID=en;exports.ORIGIN_POINT_2D=al;exports.ORIGIN_POINT_3D=Un;exports.RAD2DEG=jn;exports.RAW_COLOR_TYPE_ACI=Mi;exports.RAW_COLOR_TYPE_BY_BLOCK=Ne;exports.RAW_COLOR_TYPE_BY_LAYER=Ii;exports.RAW_COLOR_TYPE_RGB=Ei;exports.RAW_COLOR_TYPE_WINDOW_BG=Jo;exports.TAU=B;exports.TEMP_OBJECT_ID_PREFIX=Je;exports.VPORT_FALLBACK_CENTER_2D=Vh;exports.VPORT_FALLBACK_LLC=jh;exports.VPORT_FALLBACK_URC=Gh;exports.VPORT_FALLBACK_VIEW_DIR=Hh;exports.VPORT_FALLBACK_VIEW_TARGET=Dh;exports.acdbDisableOsnapMode=ic;exports.acdbEnableOsnapMode=ec;exports.acdbHasOsnapMode=tc;exports.acdbHostApplicationServices=bo;exports.acdbMaskToOsnapModes=Qh;exports.acdbOsnapModesToMask=Zh;exports.acdbToggleOsnapMode=Jh;exports.acgiContrastingForegroundColor=Rh;exports.acgiForegroundColorForBackground=Bh;exports.acgiIsLightBackground=So;exports.acgiResolveSubEntityTraitsRgbFromBackground=zh;exports.basisFunction=Ft;exports.bytesToHexString=Ia;exports.calculateCurveLength=Ks;exports.ceilPowerOfTwo=Vs;exports.clamp=At;exports.clone=be;exports.computeParameterValues=$s;exports.createWorkerApi=qh;exports.damp=Ts;exports.decodeMLeaderStyleRawColor=Lc;exports.deepClone=Wi;exports.defaults=Re;exports.degToRad=Rs;exports.dwgCodePageToEncoding=lu;exports.encodeMLeaderStyleRawColor=ei;exports.euclideanModulo=Gn;exports.evaluateNurbsPoint=Ae;exports.floorPowerOfTwo=js;exports.generateAveragedKnots=qs;exports.generateChordKnots=wl;exports.generateSqrtChordKnots=xl;exports.generateUUID=Is;exports.generateUniformKnots=_l;exports.getOcsAngle=Ce;exports.getOcsReferenceVector=Te;exports.has=ys;exports.hexStringsToBytes=nu;exports.intPartLength=Dn;exports.interpolateControlPoints=Al;exports.interpolateNurbsCurve=qn;exports.inverseLerp=Ms;exports.isBetween=Gs;exports.isBetweenAngle=Hs;exports.isEmpty=ms;exports.isEqual=he;exports.isImperialUnits=Co;exports.isMetricUnits=To;exports.isPointInPolygon=$n;exports.isPolygonIntersect=Us;exports.isPowerOfTwo=Fs;exports.lerp=Hn;exports.loadAcDbProxyGraphicFromDxf=Ma;exports.log=ve;exports.mapLinear=Es;exports.normalizeAngle=Pe;exports.pingpong=Cs;exports.radToDeg=zs;exports.randFloat=Xs;exports.randFloatSpread=Ns;exports.randInt=Ys;exports.relativeEps=Ds;exports.seededRandom=Bs;exports.setAcDbHostApplicationServicesProvider=Ls;exports.setAcDbLayoutManagerFactory=kh;exports.setLogLevel=Ja;exports.smootherstep=ks;exports.smoothstep=Os;exports.transformOcsPointToWcs=qi;exports.transformWcsPointToOcs=ge;
|