dxf-json 0.2.0 → 0.3.0
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/bundle.cjs +2 -2
- package/dist/bundle.mjs +2 -2
- package/dist/parser/entities/image/consts.d.ts +14 -0
- package/dist/parser/entities/image/index.d.ts +3 -0
- package/dist/parser/entities/image/parser.d.ts +8 -0
- package/dist/parser/entities/image/types.d.ts +54 -0
- package/dist/parser/entities/types.d.ts +1 -0
- package/dist/parser/shared/parserGenerator.d.ts +3 -0
- package/package.json +1 -1
package/dist/bundle.cjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.BlockTypeFlag=void 0,(F=exports.BlockTypeFlag||(exports.BlockTypeFlag={}))[F.None=0]="None",F[F.Anonymous=1]="Anonymous",F[F.NonConstant=2]="NonConstant",F[F.Xref=4]="Xref",F[F.XrefOverlay=8]="XrefOverlay",F[F.ExternallyDependent=16]="ExternallyDependent",F[F.ResolvedOrDependent=32]="ResolvedOrDependent",F[F.ReferencedXref=64]="ReferencedXref",exports.ColorCode=void 0,(R=exports.ColorCode||(exports.ColorCode={}))[R.BYBLOCK=0]="BYBLOCK",R[R.BYLAYER=256]="BYLAYER",exports.DimensionType=void 0,(k=exports.DimensionType||(exports.DimensionType={}))[k.Rotated=0]="Rotated",k[k.Aligned=1]="Aligned",k[k.Angular=2]="Angular",k[k.Diameter=3]="Diameter",k[k.Radius=4]="Radius",k[k.Angular3Point=5]="Angular3Point",k[k.Ordinate=6]="Ordinate",k[k.ReferenceIsExclusive=32]="ReferenceIsExclusive",k[k.IsOrdinateXTypeFlag=64]="IsOrdinateXTypeFlag",k[k.IsCustomTextPositionFlag=128]="IsCustomTextPositionFlag",exports.AttachmentPoint=void 0,(V=exports.AttachmentPoint||(exports.AttachmentPoint={}))[V.TopLeft=1]="TopLeft",V[V.TopCenter=2]="TopCenter",V[V.TopRight=3]="TopRight",V[V.MiddleLeft=4]="MiddleLeft",V[V.MiddleCenter=5]="MiddleCenter",V[V.MiddleRight=6]="MiddleRight",V[V.BottomLeft=7]="BottomLeft",V[V.BottomCenter=8]="BottomCenter",V[V.BottomRight=9]="BottomRight",exports.DimensionTextLineSpacing=void 0,(w=exports.DimensionTextLineSpacing||(exports.DimensionTextLineSpacing={}))[w.AtLeast=1]="AtLeast",w[w.Exact=2]="Exact",exports.DimensionTextVertical=void 0,(B=exports.DimensionTextVertical||(exports.DimensionTextVertical={}))[B.Center=0]="Center",B[B.Above=1]="Above",B[B.Outside=2]="Outside",B[B.JIS=3]="JIS",B[B.Below=4]="Below",exports.DimensionZeroSuppression=void 0,(H=exports.DimensionZeroSuppression||(exports.DimensionZeroSuppression={}))[H.Feet=0]="Feet",H[H.None=1]="None",H[H.Inch=2]="Inch",H[H.FeetAndInch=3]="FeetAndInch",H[H.Leading=4]="Leading",H[H.Trailing=8]="Trailing",H[H.LeadingAndTrailing=12]="LeadingAndTrailing",exports.DimensionZeroSuppressionAngular=void 0,(G=exports.DimensionZeroSuppressionAngular||(exports.DimensionZeroSuppressionAngular={}))[G.None=0]="None",G[G.Leading=1]="Leading",G[G.Trailing=2]="Trailing",G[G.LeadingAndTrailing=3]="LeadingAndTrailing",exports.DimensionTextHorizontal=void 0,(U=exports.DimensionTextHorizontal||(exports.DimensionTextHorizontal={}))[U.Center=0]="Center",U[U.Left=1]="Left",U[U.Right=2]="Right",U[U.OverFirst=3]="OverFirst",U[U.OverSecond=4]="OverSecond",exports.DimensionToleranceTextVertical=void 0,(W=exports.DimensionToleranceTextVertical||(exports.DimensionToleranceTextVertical={}))[W.Bottom=0]="Bottom",W[W.Center=1]="Center",W[W.Top=2]="Top",exports.HatchSolidFill=void 0,(Y=exports.HatchSolidFill||(exports.HatchSolidFill={}))[Y.PatternFill=0]="PatternFill",Y[Y.SolidFill=1]="SolidFill",exports.HatchAssociativity=void 0,(j=exports.HatchAssociativity||(exports.HatchAssociativity={}))[j.NonAssociative=0]="NonAssociative",j[j.Associative=1]="Associative",exports.HatchStyle=void 0,(z=exports.HatchStyle||(exports.HatchStyle={}))[z.Normal=0]="Normal",z[z.Outer=1]="Outer",z[z.Ignore=2]="Ignore",exports.HatchPatternType=void 0,(X=exports.HatchPatternType||(exports.HatchPatternType={}))[X.UserDefined=0]="UserDefined",X[X.Predefined=1]="Predefined",X[X.Custom=2]="Custom",exports.HatchBoundaryAnnotation=void 0,(K=exports.HatchBoundaryAnnotation||(exports.HatchBoundaryAnnotation={}))[K.NotAnnotated=0]="NotAnnotated",K[K.Annotated=1]="Annotated",exports.HatchGradientFlag=void 0,(Z=exports.HatchGradientFlag||(exports.HatchGradientFlag={}))[Z.Solid=0]="Solid",Z[Z.Gradient=1]="Gradient",exports.HatchGradientColorFlag=void 0,(J=exports.HatchGradientColorFlag||(exports.HatchGradientColorFlag={}))[J.TwoColor=0]="TwoColor",J[J.OneColor=1]="OneColor",exports.BoundaryPathTypeFlag=void 0,($=exports.BoundaryPathTypeFlag||(exports.BoundaryPathTypeFlag={}))[$.Default=0]="Default",$[$.External=1]="External",$[$.Polyline=2]="Polyline",$[$.Derived=4]="Derived",$[$.Textbox=8]="Textbox",$[$.Outermost=16]="Outermost",exports.BoundaryPathEdgeType=void 0,(q=exports.BoundaryPathEdgeType||(exports.BoundaryPathEdgeType={}))[q.Line=1]="Line",q[q.Circular=2]="Circular",q[q.Elliptic=3]="Elliptic",q[q.Spline=4]="Spline",exports.ObscuredLineTypes=void 0,(Q=exports.ObscuredLineTypes||(exports.ObscuredLineTypes={}))[Q.Off=0]="Off",Q[Q.Solid=1]="Solid",Q[Q.Dashed=2]="Dashed",Q[Q.Dotted=3]="Dotted",Q[Q.ShotDash=4]="ShotDash",Q[Q.MediumDash=5]="MediumDash",Q[Q.LongDash=6]="LongDash",Q[Q.DoubleShortDash=7]="DoubleShortDash",Q[Q.DoubleMediumDash=8]="DoubleMediumDash",Q[Q.DoubleLongDash=9]="DoubleLongDash",Q[Q.DoubleMediumLongDash=10]="DoubleMediumLongDash",Q[Q.SparseDot=11]="SparseDot";const e={DRAGVS:"NULL",INTERFERECOLOR:1,INTERFEREOBJVS:"Conceptual",INTERFEREVPVS:"3d Wireframe",OBSLTYPE:exports.ObscuredLineTypes.Off,SHADEDIF:70};function r(e,r,a){return e.code===r&&(null==a||e.value===a)}function a(e){let r={};e.rewind();let a=e.next(),t=a.code;if(r.x=a.value,(a=e.next()).code!==t+10)throw Error("Expected code for point value to be 20 but got "+a.code+".");return(r.y=a.value,(a=e.next()).code!==t+20)?e.rewind():r.z=a.value,r}exports.ReservedLineweight=void 0,(ee=exports.ReservedLineweight||(exports.ReservedLineweight={}))[ee.Standard=-3]="Standard",ee[ee.ByLayer=-2]="ByLayer",ee[ee.ByBlock=-1]="ByBlock",exports.Measurement=void 0,(er=exports.Measurement||(exports.Measurement={}))[er.English=0]="English",er[er.Metric=1]="Metric",exports.ViewportStatusFlag=void 0,(ea=exports.ViewportStatusFlag||(exports.ViewportStatusFlag={}))[ea.PERSPECTIVE_MODE=1]="PERSPECTIVE_MODE",ea[ea.FRONT_CLIPPING=2]="FRONT_CLIPPING",ea[ea.BACK_CLIPPING=4]="BACK_CLIPPING",ea[ea.UCS_FOLLOW=8]="UCS_FOLLOW",ea[ea.FRONT_CLIP_NOT_AT_EYE=16]="FRONT_CLIP_NOT_AT_EYE",ea[ea.UCS_ICON_VISIBILITY=32]="UCS_ICON_VISIBILITY",ea[ea.UCS_ICON_AT_ORIGIN=64]="UCS_ICON_AT_ORIGIN",ea[ea.FAST_ZOOM=128]="FAST_ZOOM",ea[ea.SNAP_MODE=256]="SNAP_MODE",ea[ea.GRID_MODE=512]="GRID_MODE",ea[ea.ISOMETRIC_SNAP_STYLE=1024]="ISOMETRIC_SNAP_STYLE",ea[ea.HIDE_PLOT_MODE=2048]="HIDE_PLOT_MODE",ea[ea.K_ISO_PAIR_TOP=4096]="K_ISO_PAIR_TOP",ea[ea.K_ISO_PAIR_RIGHT=8192]="K_ISO_PAIR_RIGHT",ea[ea.VIEWPORT_ZOOM_LOCKING=16384]="VIEWPORT_ZOOM_LOCKING",ea[ea.UNUSED=32768]="UNUSED",ea[ea.NON_RECTANGULAR_CLIPPING=65536]="NON_RECTANGULAR_CLIPPING",ea[ea.VIEWPORT_OFF=131072]="VIEWPORT_OFF",ea[ea.GRID_BEYOND_DRAWING_LIMITS=262144]="GRID_BEYOND_DRAWING_LIMITS",ea[ea.ADAPTIVE_GRID_DISPLAY=524288]="ADAPTIVE_GRID_DISPLAY",ea[ea.SUBDIVISION_BELOW_SPACING=1048576]="SUBDIVISION_BELOW_SPACING",ea[ea.GRID_FOLLOWS_WORKPLANE=2097152]="GRID_FOLLOWS_WORKPLANE",exports.RenderMode=void 0,(et=exports.RenderMode||(exports.RenderMode={}))[et.OPTIMIZED_2D=0]="OPTIMIZED_2D",et[et.WIREFRAME=1]="WIREFRAME",et[et.HIDDEN_LINE=2]="HIDDEN_LINE",et[et.FLAT_SHADED=3]="FLAT_SHADED",et[et.GOURAUD_SHADED=4]="GOURAUD_SHADED",et[et.FLAT_SHADED_WITH_WIREFRAME=5]="FLAT_SHADED_WITH_WIREFRAME",et[et.GOURAUD_SHADED_WITH_WIREFRAME=6]="GOURAUD_SHADED_WITH_WIREFRAME",exports.UCSPerViewport=void 0,(en=exports.UCSPerViewport||(exports.UCSPerViewport={}))[en.UCS_UNCHANGED=0]="UCS_UNCHANGED",en[en.HAS_OWN_UCS=1]="HAS_OWN_UCS",exports.OrthographicType=void 0,(eo=exports.OrthographicType||(exports.OrthographicType={}))[eo.NON_ORTHOGRAPHIC=0]="NON_ORTHOGRAPHIC",eo[eo.TOP=1]="TOP",eo[eo.BOTTOM=2]="BOTTOM",eo[eo.FRONT=3]="FRONT",eo[eo.BACK=4]="BACK",eo[eo.LEFT=5]="LEFT",eo[eo.RIGHT=6]="RIGHT",exports.ShadePlotMode=void 0,(es=exports.ShadePlotMode||(exports.ShadePlotMode={}))[es.AS_DISPLAYED=0]="AS_DISPLAYED",es[es.WIREFRAME=1]="WIREFRAME",es[es.HIDDEN=2]="HIDDEN",es[es.RENDERED=3]="RENDERED",exports.DefaultLightingType=void 0,(ei=exports.DefaultLightingType||(exports.DefaultLightingType={}))[ei.ONE_DISTANT_LIGHT=0]="ONE_DISTANT_LIGHT",ei[ei.TWO_DISTANT_LIGHTS=1]="TWO_DISTANT_LIGHTS";const t=Symbol();function n(e,a){return(n,o,s)=>{let i=e.reduce((e,r)=>{r.pushContext&&e.push({});let a=e[e.length-1];for(let e of"number"==typeof r.code?[r.code]:r.code){let t=a[e]??(a[e]=[]);r.isMultiple&&t.length&&console.warn(`Snippet ${t.at(-1).name} for code(${e}) is shadowed by ${r.name}`),t.push(r)}return e},[{}]),c=!1,d=i.length-1;for(;!r(n,0,"EOF");){let e=function(e,r,a){return e.find((e,t)=>t>=a&&e[r]?.length)}(i,n.code,d),r=e?.[n.code].at(-1);if(!e||!r){o.rewind();break}r.isMultiple||e[n.code].pop();let{name:a,parser:l,isMultiple:p}=r,u=l?.(n,o,s);if(u===t){o.rewind();break}if(a){let[e,r]=function(e,r){let a=r.split("."),t=e;for(let e=0;e<a.length-1;++e){let r=a[e];Object.hasOwn(t,r)||(t[r]={}),t=t[r]}return[t,a.at(-1)]}(s,a);p?(Object.hasOwn(e,r)||(e[r]=[]),e[r].push(u)):e[r]=u}r.pushContext&&(d-=1),c=!0,n=o.next()}return a&&Object.setPrototypeOf(s,a),c}}function o({value:e}){return e}function s(e,r){return a(r)}function i({value:e}){return!!e}var c,d,l,p,u,m,E,I,h,T,f,x,D,b,O,g,S,y,N,A,L,_,P,v,C,M,F,R,k,V,w,B,H,G,U,W,Y,j,z,X,K,Z,J,$,q,Q,ee,er,ea,et,en,eo,es,ei,ec,ed,el,ep,eu,em,eE,eI=[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];function eh(e,t){if(!r(e,1001))throw Error("XData must starts with code 1001");let n={appName:e.value,value:[]};e=t.next();let o=[n.value];for(;!r(e,0,"EOF")&&e.code>=1e3;){let r=o.at(-1);switch(e.code){case 1002:"{"===e.value?o.push([]):(o.pop(),o.at(-1)?.push(r));break;case 1e3:case 1004:case 1040:case 1070:case 1071:r.push({type:eT(e.code),value:e.value});break;case 1003:r.push({name:"layer",type:eT(e.code),value:e.value});break;case 1005:r.push({name:"handle",type:eT(e.code),value:e.value});break;case 1010:r.push({type:eT(e.code),value:a(t)});break;case 1011:r.push({name:"worldSpacePosition",type:eT(e.code),value:a(t)});break;case 1012:r.push({name:"worldSpaceDisplacement",type:eT(e.code),value:a(t)});break;case 1013:r.push({name:"worldSpaceDirection",type:eT(e.code),value:a(t)});break;case 1041:r.push({name:"distance",type:eT(e.code),value:e.value});break;case 1042:r.push({name:"scale",type:eT(e.code),value:e.value})}e=t.next()}return t.rewind(),n}function eT(e){switch(e){case 1e3:case 1003:case 1005:return"string";case 1004:return"hex";case 1040:case 1041:case 1042:return"real";case 1070:return"integer";case 1071:return"long";case 1010:case 1011:case 1012:case 1013:return"point";default:return""}}function ef(e,a,t){if(r(a,102))return eO(a,t),!0;switch(a.code){case 0:e.type=a.value;break;case 5:e.handle=a.value;break;case 330:e.ownerDictionarySoftId?e.ownerBlockRecordSoftId=a.value:e.ownerDictionarySoftId=a.value;break;case 360:e.ownerdictionaryHardId=a.value;break;case 67:e.isInPaperSpace=!!a.value;break;case 8:e.layer=a.value;break;case 6:e.lineType=a.value;break;case 347:e.materialObjectHardId=a.value;break;case 62:e.colorIndex=a.value,e.color=eI[Math.abs(a.value)];break;case 370:e.lineweight=a.value;break;case 48:e.lineTypeScale=a.value;break;case 60:e.isVisible=!!a.value;break;case 92:e.proxyByte=a.value;break;case 310:e.proxyEntity=a.value;break;case 100:break;case 420:e.color=a.value;break;case 430:e.transparency=a.value;break;case 390:e.plotStyleHardId=a.value;break;case 284:e.shadowMode=a.value;break;case 1001:e.xdata=eh(a,t);break;default:return!1}return!0}let ex=0;function eD(e){if(!e)throw TypeError("entity cannot be undefined or null");e.handle||(e.handle=ex++)}exports.ShadowMode=void 0,(c=exports.ShadowMode||(exports.ShadowMode={}))[c.CAST_AND_RECEIVE=0]="CAST_AND_RECEIVE",c[c.CAST=1]="CAST",c[c.RECEIVE=2]="RECEIVE",c[c.IGNORE=3]="IGNORE";const eb=[{code:1001,name:"xdata",parser:eh},{code:284,name:"shadowMode",parser:o},{code:390,name:"plotStyleHardId",parser:o},{code:440,name:"transparency",parser:o},{code:430,name:"colorName",parser:o},{code:420,name:"color",parser:o},{code:310,name:"proxyEntity",parser:o},{code:92,name:"proxyByte",parser:o},{code:60,name:"isVisible",parser:i},{code:48,name:"lineTypeScale",parser:o},{code:370,name:"lineweight",parser:o},{code:62,name:"colorIndex",parser(e,r,a){let t=e.value;return a.color=eI[Math.abs(t)],t}},{code:347,name:"materialObjectHardId",parser:o},{code:6,name:"lineType",parser:o},{code:8,name:"layer",parser:o},{code:410,name:"layoutTabName",parser:o},{code:67,name:"isInPaperSpace",parser:i},{code:100},{code:330,name:"ownerBlockRecordSoftId",parser:o},{code:102,parser:eO},{code:102,parser:eO},{code:102,parser:eO},{code:5,name:"handle",parser:o}];function eO(e,a){for(e=a.next();!r(e,102)&&!r(e,0,"EOF");)e=a.next()}function eg(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}const eS={extrusionDirection:{x:0,y:0,z:1}},ey=[{code:210,name:"extrusionDirection",parser:s},{code:51,name:"endAngle",parser:o},{code:50,name:"startAngle",parser:o},{code:100,name:"subclassMarker",parser:o},{code:40,name:"radius",parser:o},{code:10,name:"center",parser:s},{code:39,name:"thickness",parser:o},{code:100},...eb];class eN{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){eg(this,"parser",n(ey,eS))}}function eA(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}eg(eN,"ForEntityName","ARC"),exports.AttributeFlag=void 0,(d=exports.AttributeFlag||(exports.AttributeFlag={}))[d.NONE=0]="NONE",d[d.INVISIBLE=1]="INVISIBLE",d[d.CONSTANT=2]="CONSTANT",d[d.VERIFICATION_REQUIRED=4]="VERIFICATION_REQUIRED",d[d.PRESET=8]="PRESET",exports.AttDefMTextFlag=void 0,(l=exports.AttDefMTextFlag||(exports.AttDefMTextFlag={}))[l.MULTILINE=2]="MULTILINE",l[l.CONSTANT_MULTILINE=4]="CONSTANT_MULTILINE",exports.TextGenerationFlag=void 0,(p=exports.TextGenerationFlag||(exports.TextGenerationFlag={}))[p.NONE=0]="NONE",p[p.MIRRORED_X=2]="MIRRORED_X",p[p.MIRRORED_Y=4]="MIRRORED_Y",exports.TextHorizontalAlign=void 0,(u=exports.TextHorizontalAlign||(exports.TextHorizontalAlign={}))[u.LEFT=0]="LEFT",u[u.CENTER=1]="CENTER",u[u.RIGHT=2]="RIGHT",u[u.ALIGNED=3]="ALIGNED",u[u.MIDDLE=4]="MIDDLE",u[u.FIT=5]="FIT",exports.TextVerticalAlign=void 0,(m=exports.TextVerticalAlign||(exports.TextVerticalAlign={}))[m.BASELINE=0]="BASELINE",m[m.BOTTOM=1]="BOTTOM",m[m.MIDDLE=2]="MIDDLE",m[m.TOP=3]="TOP";const eL={thickness:0,rotation:0,xScale:1,obliqueAngle:0,styleName:"STANDARD",generationFlag:0,halign:exports.TextHorizontalAlign.LEFT,valign:exports.TextVerticalAlign.BASELINE,extrusionDirection:{x:0,y:0,z:1}},e_=[{code:73,name:"valign",parser:o},{code:100},{code:210,name:"extrusionDirection",parser:s},{code:11,name:"endPoint",parser:s},{code:72,name:"valign",parser:o},{code:72,name:"halign",parser:o},{code:71,name:"generationFlag",parser:o},{code:7,name:"styleName",parser:o},{code:51,name:"obliqueAngle",parser:o},{code:41,name:"xScale",parser:o},{code:50,name:"rotation",parser:o},{code:1,name:"text",parser:o},{code:40,name:"textHeight",parser:o},{code:10,name:"startPoint",parser:s},{code:39,name:"thickness",parser:o},{code:100,name:"subclassMarker",parser:o},...eb];class eP{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){eA(this,"parser",n(e_,eL))}}function ev(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}eA(eP,"ForEntityName","TEXT");const eC={...eL},eM=[{code:2},{code:40,name:"annotationScale",parser:o},{code:10,name:"alignmentPoint",parser:s},{code:340,name:"secondaryAttributesHardIds",isMultiple:!0,parser:o},{code:70,name:"numberOfSecondaryAttributes",parser:o},{code:70,name:"isReallyLocked",parser:i},{code:70,name:"mtextFlag",parser:o},{code:280,name:"isDuplicatedRecord",parser:i},{code:100},{code:280,name:"isLocked",parser:i},{code:74,name:"valign",parser:o},{code:73},{code:70,name:"attributeFlag",parser:o},{code:2,name:"tag",parser:o},{code:3,name:"prompt",parser:o},{code:280},{code:100,name:"subclassMarker",parser:o},...e_.slice(2)];class eF{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){ev(this,"parser",n(eM,eC))}}function eR(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}ev(eF,"ForEntityName","ATTDEF");const ek={thickness:0,extrusionDirection:{x:0,y:0,z:1}},eV=[{code:210,name:"extrusionDirection",parser:s},{code:40,name:"radius",parser:o},{code:10,name:"center",parser:s},{code:39,name:"thickness",parser:o},{code:100,name:"subclassMarker",parser:o},...eb];class ew{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){eR(this,"parser",n(eV,ek))}}eR(ew,"ForEntityName","CIRCLE");class eB{parseEntity(e,t){let n={};for(;!r(t,0,"EOF");){if(0===t.code){e.rewind();break}!function(e,r,t){switch(r.code){case 100:e.subclassMarker=r.value;break;case 280:e.version=r.value;break;case 2:e.name=r.value;break;case 10:e.definitionPoint=a(t);break;case 11:e.textPoint=a(t);break;case 12:e.insertionPoint=a(t);break;case 13:e.subDefinitionPoint1=a(t);break;case 14:e.subDefinitionPoint2=a(t);break;case 15:e.centerPoint=a(t);break;case 16:e.arcPoint=a(t);break;case 70:e.dimensionType=r.value;break;case 71:e.attachmentPoint=r.value;break;case 72:e.textLineSpacingStyle=r.value;break;case 40:e.leaderLength=r.value;break;case 41:e.textLineSpacingFactor=r.value;break;case 42:e.measurement=r.value;break;case 1:e.text=r.value;break;case 50:e.rotationAngle=r.value;break;case 52:e.obliqueAngle=r.value;break;case 53:e.textRotation=r.value;break;case 51:e.ocsRotation=r.value;break;case 210:e.extrusionDirection=a(t);break;case 3:e.styleName=r.value;break;default:ef(e,r,t)}}(n,t,e),t=e.next()}return n}}function eH(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}I="DIMENSION",(E="ForEntityName")in eB?Object.defineProperty(eB,E,{value:I,enumerable:!0,configurable:!0,writable:!0}):eB[E]=I;const eG={extrusionDirection:{x:0,y:0,z:1}},eU=[{code:42,name:"endAngle",parser:o},{code:41,name:"startAngle",parser:o},{code:40,name:"axisRatio",parser:o},{code:210,name:"extrusionDirection",parser:s},{code:11,name:"majorAxisEndPoint",parser:s},{code:10,name:"center",parser:s},{code:100,name:"subclassMarker",parser:o},...eb];class eW{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){eH(this,"parser",n(eU,eG))}}eH(eW,"ForEntityName","ELLIPSE");const eY=[{code:330,name:"sourceBoundaryObjects",parser:o,isMultiple:!0},{code:97,name:"numberOfSourceBoundaryObjects",parser:o}],ej=[{code:11,name:"end",parser:s},{code:10,name:"start",parser:s}],ez=[{code:73,name:"isCCW",parser:i},{code:51,name:"endAngle",parser:o},{code:50,name:"startAngle",parser:o},{code:40,name:"radius",parser:o},{code:10,name:"center",parser:s}],eX=[{code:73,name:"isCCW",parser:i},{code:51,name:"endAngle",parser:o},{code:50,name:"startAngle",parser:o},{code:40,name:"lengthOfMinorAxis",parser:o},{code:11,name:"end",parser:s},{code:10,name:"center",parser:s}],eK=[{code:13,name:"endTangent",parser:s},{code:12,name:"startTangent",parser:s},{code:11,name:"fitDatum",isMultiple:!0,parser:s},{code:97,name:"numberOfFitData",parser:o},{code:10,name:"controlPoints",isMultiple:!0,parser(e,r){let t={...a(r),weight:1};return 42===(e=r.next()).code?t.weight=e.value:r.rewind(),t}},{code:40,name:"knots",isMultiple:!0,parser:o},{code:96,name:"numberOfControlPoints",parser:o},{code:95,name:"numberOfKnots",parser:o},{code:74,name:"isPeriodic",parser:i},{code:73,name:"splineFlag",parser:o},{code:94,name:"degree",parser:o}],eZ={[exports.BoundaryPathEdgeType.Line]:ej,[exports.BoundaryPathEdgeType.Circular]:ez,[exports.BoundaryPathEdgeType.Elliptic]:eX,[exports.BoundaryPathEdgeType.Spline]:eK},eJ=[...eY,{code:72,name:"edges",parser(e,r){let a={type:e.value},t=n(eZ[a.type]);if(!t)throw Error(`Invalid edge type ${a.type}`);return t(e=r.next(),r,a),a},isMultiple:!0},{code:93,name:"numberOfEdges",parser:o}],e$=[...eY,{code:10,name:"vertices",parser(e,r){let t={...a(r),bulge:0};return 42===(e=r.next()).code?t.bulge=e.value:r.rewind(),t},isMultiple:!0},{code:93,name:"numberOfVertices",parser:o},{code:73,name:"isClosed",parser:i},{code:72,name:"hasBulge",parser:i}],eq=[{code:49,name:"dashLengths",parser:o,isMultiple:!0},{code:79,name:"numberOfDashLengths",parser:o},{code:45,name:"offset",parser:eQ},{code:43,name:"base",parser:eQ},{code:53,name:"angle",parser:o}];function eQ(e,r){let a=e.code+1,t={x:e.value,y:1};return(e=r.next()).code===a?t.y=e.value:r.rewind(),t}function e0(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}const e1={extrusionDirection:{x:0,y:0,z:1},gradientRotation:0,colorTint:0},e4=[{code:470},{code:463},{code:462,name:"colorTint",parser:o},{code:461,name:"gradientDefinition",parser:o},{code:460,name:"gradientRotation",parser:o},{code:453,name:"numberOfColors",parser:o},{code:452,name:"gradientColorFlag",parser:o},{code:451},{code:450,name:"gradientFlag",parser:o},{code:10,name:"seedPoints",parser:s,isMultiple:!0},{code:99},{code:11,name:"offsetVector",parser:s},{code:98,name:"numberOfSeedPoints",parser:o},{code:47,name:"pixelSize",parser:o},{code:53,name:"definitionLines",parser:function(e,r){let a={};return n(eq)(e,r,a),a},isMultiple:!0},{code:78,name:"numberOfDefinitionLines",parser:o},{code:77,name:"isDouble",parser:i},{code:73,name:"isAnnotated",parser:i},{code:41,name:"patternScale",parser:o},{code:52,name:"patternAngle",parser:o},{code:76,name:"patternType",parser:o},{code:75,name:"hatchStyle",parser:o},{code:92,name:"boundaryPaths",parser:function(e,r){let a={boundaryPathTypeFlag:e.value},t=a.boundaryPathTypeFlag&exports.BoundaryPathTypeFlag.Polyline;return(e=r.next(),t)?n(e$)(e,r,a):n(eJ)(e,r,a),a},isMultiple:!0},{code:91,name:"numberOfBoundaryPaths",parser:o},{code:71,name:"associativity",parser:o},{code:63,name:"patternFillColor",parser:o},{code:70,name:"solidFill",parser:o},{code:2,name:"patternName",parser:o},{code:210,name:"extrusionDirection",parser:s},{code:10,name:"elevationPoint",parser:s},{code:100,name:"subclassMarker",parser:o,pushContext:!0},...eb];class e2{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){e0(this,"parser",n(e4,e1))}}function e3(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}e0(e2,"ForEntityName","HATCH");const e7={xScale:1,yScale:1,zScale:1,rotation:0,columnCount:0,rowCount:0,columnSpacing:0,rowSpacing:0,extrusionDirection:{x:0,y:0,z:1}},e5=[{code:210,name:"extrusionDirection",parser:s},{code:45,name:"rowSpacing",parser:o},{code:44,name:"columnSpacing",parser:o},{code:71,name:"rowCount",parser:o},{code:70,name:"columnCount",parser:o},{code:50,name:"rotation",parser:o},{code:43,name:"zScale",parser:o},{code:42,name:"yScale",parser:o},{code:41,name:"xScale",parser:o},{code:10,name:"insertionPoint",parser:s},{code:2,name:"name",parser:o},{code:66,name:"isVariableAttributes",parser:i},{code:100,name:"subclassMarker",parser:o},...eb];class e6{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){e3(this,"parser",n(e5,e7))}}function e9(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}e3(e6,"ForEntityName","INSERT");const e8={isArrowheadEnabled:!0},re=[{code:213,name:"offsetFromAnnotation",parser:s},{code:212,name:"offsetFromBlock",parser:s},{code:211,name:"horizontalDirection",parser:s},{code:210,name:"normal",parser:s},{code:340,name:"associatedAnnotation",parser:o},{code:77,name:"byBlockColor",parser:o},{code:10,name:"vertices",parser:s,isMultiple:!0},{code:76,name:"numberOfVertices",parser:o},{code:41,name:"textWidth",parser:o},{code:40,name:"textHeight",parser:o},{code:75,name:"isHooklineExists",parser:i},{code:74,name:"isHooklineSameDirection",parser:i},{code:73,name:"leaderCreationFlag",parser:o},{code:72,name:"isSpline",parser:i},{code:71,name:"isArrowheadEnabled",parser:i},{code:3,name:"styleName",parser:o},{code:100,name:"subclassMarker",parser:o},...eb];class rr{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){e9(this,"parser",n(re,e8))}}function ra(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}e9(rr,"ForEntityName","LEADER"),exports.LeaderCreationFlag=void 0,(h=exports.LeaderCreationFlag||(exports.LeaderCreationFlag={}))[h.TextAnnotation=0]="TextAnnotation",h[h.ToleranceAnnotation=1]="ToleranceAnnotation",h[h.BlockReferenceAnnotation=2]="BlockReferenceAnnotation",h[h.NoAnnotation=3]="NoAnnotation";const rt={thickness:0,extrusionDirection:{x:0,y:0,z:1}},rn=[{code:210,name:"extrusionDirection",parser:s},{code:11,name:"endPoint",parser:s},{code:10,name:"startPoint",parser:s},{code:39,name:"thickness",parser:o},{code:100,name:"subclassMarker",parser:o},...eb];class ro{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){ra(this,"parser",n(rn,rt))}}ra(ro,"ForEntityName","LINE"),exports.LWPolylineFlag=void 0,(T=exports.LWPolylineFlag||(exports.LWPolylineFlag={}))[T.IS_CLOSED=1]="IS_CLOSED",T[T.PLINE_GEN=128]="PLINE_GEN";const rs={flag:0,elevation:0,thickness:0,extrusionDirection:{x:0,y:0,z:1},vertices:[]},ri={bulge:0},rc=[{code:42,name:"bulge",parser:o},{code:41,name:"endWidth",parser:o},{code:40,name:"startWidth",parser:o},{code:91,name:"id",parser:o},{code:20,name:"y",parser:o},{code:10,name:"x",parser:o}],rd=[{code:210,name:"extrusionDirection",parser:s},{code:10,name:"vertices",isMultiple:!0,parser(e,r){let a={};return n(rc,ri)(e,r,a),a}},{code:39,name:"thickness",parser:o},{code:38,name:"elevation",parser:o},{code:43,name:"constantWidth",parser:o},{code:70,name:"flag",parser:o},{code:90,name:"numberOfVertices",parser:o},{code:100,name:"subclassMarker",parser:o},...eb];class rl{parseEntity(e,r){let a={};return n(rd,rs)(r,e,a),a}}function rp(e,r){let a={};for(let t of e){let e=r(t);null!=e&&(a[e]??(a[e]=[]),a[e].push(t))}return a}function*ru(e,r=1/0,a=1){for(let t=e;t!==r;t+=a)yield t}function rm(e){return{x:e.x??0,y:e.y??0,z:e.z??0}}function rE(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}x="LWPOLYLINE",(f="ForEntityName")in rl?Object.defineProperty(rl,f,{value:x,enumerable:!0,configurable:!0,writable:!0}):rl[f]=x,exports.MTextDrawingDirection=void 0,(D=exports.MTextDrawingDirection||(exports.MTextDrawingDirection={}))[D.LEFT_TO_RIGHT=1]="LEFT_TO_RIGHT",D[D.TOP_TO_BOTTOM=3]="TOP_TO_BOTTOM",D[D.BY_STYLE=5]="BY_STYLE";const rI={textStyle:"STANDARD",extrusionDirection:{x:0,y:0,z:1},rotation:0},rh=[{code:46,name:"annotationHeight",parser:o},{code:101,parser(e,r){!function(e){e.rewind();let r=e.next();if(101!==r.code)throw Error("Bad call for skipEmbeddedObject()");do r=e.next();while(0!==r.code);e.rewind()}(r)}},{code:50,name:"columnHeight",parser:o},{code:49,name:"columnGutter",parser:o},{code:48,name:"columnWidth",parser:o},{code:79,name:"columnAutoHeight",parser:o},{code:78,name:"columnFlowReversed",parser:o},{code:76,name:"columnCount",parser:o},{code:75,name:"columnType",parser:o},{code:441,name:"backgroundFillTransparency",parser:o},{code:63,name:"backgroundFillColor",parser:o},{code:45,name:"fillBoxScale",parser:o},{code:[...ru(430,440)],name:"backgroundColor",parser:o},{code:[...ru(420,430)],name:"backgroundColor",parser:o},{code:90,name:"backgroundFill",parser:o},{code:44,name:"lineSpacing",parser:o},{code:73,name:"lineSpacingStyle",parser:o},{code:50,name:"rotation",parser:o},{code:43},{code:42},{code:11,name:"direction",parser:s},{code:210,name:"extrusionDirection",parser:s},{code:7,name:"styleName",parser:o},{code:3,name:"text",parser:(e,r,a)=>(a.text??"")+e.value},{code:1,name:"text",parser:(e,r,a)=>e.value+(a.text??"")},{code:72,name:"drawingDirection",parser:o},{code:71,name:"attachmentPoint",parser:o},{code:41,name:"width",parser:o},{code:40,name:"height",parser:o},{code:10,name:"insertionPoint",parser:s},{code:100,name:"subclassMarker",parser:o},...eb];class rT{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){rE(this,"parser",n(rh,rI))}}function rf(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}rE(rT,"ForEntityName","MTEXT");const rx={thickness:0,extrusionDirection:{x:0,y:0,z:1},angle:0},rD=[{code:50,name:"angle",parser:o},{code:210,name:"extrusionDirection",parser:s},{code:39,name:"thickness",parser:o},{code:10,name:"position",parser:s},{code:100,name:"subclassMarker",parser:o},...eb];class rb{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){rf(this,"parser",n(rD,rx))}}function rO(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}rf(rb,"ForEntityName","POINT"),exports.PolylineFlag=void 0,(b=exports.PolylineFlag||(exports.PolylineFlag={}))[b.CLOSED_POLYLINE=1]="CLOSED_POLYLINE",b[b.CURVE_FIT=2]="CURVE_FIT",b[b.SPLINE_FIT=4]="SPLINE_FIT",b[b.POLYLINE_3D=8]="POLYLINE_3D",b[b.POLYGON_3D=16]="POLYGON_3D",b[b.CLOSED_POLYGON=32]="CLOSED_POLYGON",b[b.POLYFACE=64]="POLYFACE",b[b.CONTINUOUS=128]="CONTINUOUS",exports.SmoothType=void 0,(O=exports.SmoothType||(exports.SmoothType={}))[O.NONE=0]="NONE",O[O.QUADRATIC=5]="QUADRATIC",O[O.CUBIC=6]="CUBIC",O[O.BEZIER=8]="BEZIER",exports.VertexFlag=void 0,(g=exports.VertexFlag||(exports.VertexFlag={}))[g.CREATED_BY_CURVE_FIT=1]="CREATED_BY_CURVE_FIT",g[g.TANGENT_DEFINED=2]="TANGENT_DEFINED",g[g.NOT_USED=4]="NOT_USED",g[g.CREATED_BY_SPLINE_FIT=8]="CREATED_BY_SPLINE_FIT",g[g.SPLINE_CONTROL_POINT=16]="SPLINE_CONTROL_POINT",g[g.FOR_POLYLINE=32]="FOR_POLYLINE",g[g.FOR_POLYGON=64]="FOR_POLYGON",g[g.POLYFACE=128]="POLYFACE";const rg={startWidth:0,endWidth:0,bulge:0},rS=[{code:91,name:"id",parser:o},{code:[...ru(71,75)],name:"faces",isMultiple:!0,parser:o},{code:50,name:"tangentDirection",parser:o},{code:70,name:"flag",parser:o},{code:42,name:"bulge",parser:o},{code:41,name:"endWidth",parser:o},{code:40,name:"startWidth",parser:o},{code:30,name:"z",parser:o},{code:20,name:"y",parser:o},{code:10,name:"x",parser:o},{code:100,name:"subclassMarker",parser:o},{code:100},...eb];class ry{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){rO(this,"parser",n(rS,rg))}}function rN(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}rO(ry,"ForEntityName","VERTEX");const rA={thickness:0,flag:0,startWidth:0,endWidth:0,meshMVertexCount:0,meshNVertexCount:0,surfaceMDensity:0,surfaceNDensity:0,smoothType:0,extrusionDirection:{x:0,y:0,z:1},vertices:[]},rL=[{code:0,name:"vertices",isMultiple:!0,parser:(e,a)=>r(e,0,"VERTEX")?(e=a.next(),new ry().parseEntity(a,e)):t},{code:210,name:"extrusionDirection",parser:s},{code:75,name:"smoothType",parser:o},{code:74,name:"surfaceNDensity",parser:o},{code:73,name:"surfaceMDensity",parser:o},{code:72,name:"meshNVertexCount",parser:o},{code:71,name:"meshMVertexCount",parser:o},{code:41,name:"endWidth",parser:o},{code:40,name:"startWidth",parser:o},{code:70,name:"flag",parser:o},{code:39,name:"thickness",parser:o},{code:30,name:"elevation",parser:o},{code:20},{code:10},{code:66},{code:100,name:"subclassMarker",parser:o},...eb];class r_{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){rN(this,"parser",n(rL,rA))}}function rP(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}rN(r_,"ForEntityName","POLYLINE");const rv={vertices:[],backLineVertices:[]},rC=[{code:360,name:"geometrySettingHardId",parser:o},{code:12,name:"backLineVertices",isMultiple:!0,parser:s},{code:93,name:"numberOfBackLineVertices",parser:o},{code:11,name:"vertices",isMultiple:!0,parser:s},{code:92,name:"verticesCount",parser:o},{code:[63,411],name:"indicatorColor",parser:o},{code:70,name:"indicatorTransparency",parser:o},{code:41,name:"bottomHeight",parser:o},{code:40,name:"topHeight",parser:o},{code:10,name:"verticalDirection",parser:s},{code:1,name:"name",parser:o},{code:91,name:"flag",parser:o},{code:90,name:"state",parser:o},{code:100,name:"subclassMarker",parser:o},...eb];class rM{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){rP(this,"parser",n(rC,rv))}}function rF(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}rP(rM,"ForEntityName","SECTION");const rR={points:[],thickness:0,extrusionDirection:{x:0,y:0,z:1}},rk=[{code:210,name:"extrusionDirection",parser:s},{code:39,name:"thickness",parser:o},{code:[...ru(10,14)],name:"points",isMultiple:!0,parser:s},{code:100,name:"subclassMarker",parser:o},...eb];class rV{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){rF(this,"parser",n(rk,rR))}}function rw(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}rF(rV,"ForEntityName","SOLID"),exports.SplineFlag=void 0,(S=exports.SplineFlag||(exports.SplineFlag={}))[S.NONE=0]="NONE",S[S.CLOSED=1]="CLOSED",S[S.PERIODIC=2]="PERIODIC",S[S.RATIONAL=4]="RATIONAL",S[S.PLANAR=8]="PLANAR",S[S.LINEAR=16]="LINEAR";const rB={knotTolerance:1e-6,controlTolerance:1e-6,fitTolerance:1e-9,knotValues:[],controlPoints:[],fitPoints:[]},rH=[{code:11,name:"fitPoints",isMultiple:!0,parser:s},{code:10,name:"controlPoints",isMultiple:!0,parser:s},{code:41,name:"weights",isMultiple:!0,parser:o},{code:40,name:"knots",isMultiple:!0,parser:o},{code:13,name:"endTangent",parser:s},{code:12,name:"startTangent",parser:s},{code:44,name:"fitTolerance",parser:o},{code:43,name:"controlTolerance",parser:o},{code:42,name:"knotTolerance",parser:o},{code:74,name:"numberOfFitPoints",parser:o},{code:73,name:"numberOfControlPoints",parser:o},{code:72,name:"numberOfKnots",parser:o},{code:71,name:"degree",parser:o},{code:70,name:"flag",parser:o},{code:210,name:"normal",parser:s},{code:100,name:"subclassMarker",parser:o},...eb];class rG{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){rw(this,"parser",n(rH,rB))}}rw(rG,"ForEntityName","SPLINE");class rU{parseEntity(e,r){let t={};for(;"EOF"!==r;){if(0===r.code){e.rewind();break}!function(e,r,t){if("EOF"===t)return!1;switch(t.code){case 0:return!1;case 100:e.subclassMarker=t.value;break;case 10:e.viewportCenter=rm(a(r));break;case 40:e.width=t.value;break;case 41:e.height=t.value;break;case 68:e.status=t.value;break;case 69:e.viewportId=t.value;break;case 12:e.displayCenter=a(r);break;case 13:e.snapBase=a(r);break;case 14:e.snapSpacing=a(r);break;case 15:e.gridSpacing=a(r);break;case 16:e.viewDirection=rm(a(r));break;case 17:e.targetPoint=rm(a(r));break;case 42:e.perspectiveLensLength=t.value;break;case 43:e.frontClipZ=t.value;break;case 44:e.backClipZ=t.value;break;case 45:e.viewHeight=t.value;break;case 50:e.snapAngle=t.value;break;case 51:e.viewTwistAngle=t.value;break;case 72:e.circleZoomPercent=t.value;break;case 331:e.frozenLayerIds??(e.frozenLayerIds=[]),e.frozenLayerIds.push(t.value);break;case 90:e.statusBitFlags=t.value;break;case 340:e.clippingBoundaryId=t.value;break;case 1:e.sheetName=t.value;break;case 281:e.renderMode=t.value;break;case 71:e.ucsPerViewport=t.value;break;case 110:e.ucsOrigin=rm(a(r));break;case 111:e.ucsXAxis=rm(a(r));break;case 112:e.ucsYAxis=rm(a(r));break;case 345:e.ucsId=t.value;break;case 346:e.ucsBaseId=t.value;break;case 79:e.orthographicType=t.value;break;case 146:e.elevation=t.value;break;case 170:e.shadePlotMode=t.value;break;case 61:e.majorGridFrequency=t.value;break;case 332:e.backgroundId=t.value;break;case 333:e.shadePlotId=t.value;break;case 348:e.visualStyleId=t.value;break;case 292:e.isDefaultLighting=!!t.value;break;case 282:e.defaultLightingType=t.value;break;case 141:e.brightness=t.value;break;case 142:e.contrast=t.value;break;case 63:case 421:case 431:e.ambientLightColor=t.value;break;case 361:e.sunId=t.value;break;case 335:case 343:case 344:case 91:e.softPointer=t.value}return!0}(t,e,r)&&ef(t,r,e),r=e.next()}return t}}function rW(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}N="VIEWPORT",(y="ForEntityName")in rU?Object.defineProperty(rU,y,{value:N,enumerable:!0,configurable:!0,writable:!0}):rU[y]=N,(A=ec||(ec={}))[A.INVISIBLE=1]="INVISIBLE",A[A.CONSTANT=2]="CONSTANT",A[A.REQUIRE_VERIFICATION=4]="REQUIRE_VERIFICATION",A[A.PRESET=8]="PRESET";const rY={thickness:0,rotation:0,scale:1,obliqueAngle:0,textStyle:"STANDARD",textGenerationFlag:0,horizontalJustification:0,verticalJustification:0,extrusionDirection:{x:0,y:0,z:1}},rj=[...rh.slice(rh.findIndex(({name:e})=>"columnType"===e),rh.findIndex(({name:e})=>"subclassMarker"===e)+1),{code:100},{code:0,parser(e){if(!r(e,0,"MTEXT"))return t}},{code:2,name:"definitionTag",parser:o},{code:40,name:"annotationScale",parser:o},{code:10,name:"alignmentPoint",parser:s},{code:340,name:"secondaryAttributesHardId",parser:o},{code:70,name:"numberOfSecondaryAttributes",parser:o},{code:70,name:"isReallyLocked",parser:i},{code:70,name:"mtextFlag",parser:o},{code:280,name:"isDuplicatedEntriesKeep",parser:i},{code:100},{code:280,name:"lockPositionFlag",parser:i},{code:210,name:"extrusionDirection",parser:s},{code:11,name:"alignmentPoint",parser:s},{code:74,name:"verticalJustification",parser:o},{code:72,name:"horizontalJustification",parser:o},{code:71,name:"textGenerationFlag",parser:o},{code:7,name:"textStyle",parser:o},{code:51,name:"obliqueAngle",parser:o},{code:41,name:"scale",parser:o},{code:50,name:"rotation",parser:o},{code:73},{code:70,name:"attributeFlag",parser:o},{code:2,name:"tag",parser:o},{code:280},{code:100,name:"subclassMarker",parser:o},{code:1,name:"text",parser:o},{code:40,name:"textHeight",parser:o},{code:10,name:"startPoint",parser:s},{code:39,name:"thickness",parser:o},{code:100},...eb];class rz{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){rW(this,"parser",n(rj,rY))}}rW(rz,"ForEntityName","ATTRIB");const rX=Object.fromEntries([eN,eF,rz,ew,eB,eW,e6,rr,ro,rl,rT,rb,r_,rM,rV,rG,eP,e2,rU].map(e=>[e.ForEntityName,new e]));function rK(e,a){let t=[];for(;!r(e,0,"EOF");){if(0===e.code){if("ENDBLK"===e.value||"ENDSEC"===e.value){a.rewind();break}let r=rX[e.value];if(r){let n=e.value;e=a.next();let o=r.parseEntity(a,e);o.type=n,eD(o),t.push(o)}else console.warn(`Unsupported ENTITY type: ${e.value}`)}e=a.next()}return t}function rZ(e,a){let t={};for(;!r(e,0,"EOF")&&!r(e,0,"ENDSEC");){if(r(e,0,"BLOCK")){let r=rJ(e=a.next(),a);eD(r),r.name&&(t[r.name]=r)}e=a.next()}return t}function rJ(e,t){let n={};for(;!r(e,0,"EOF");){if(r(e,0,"ENDBLK")){for(e=t.next();!r(e,0,"EOF");){if(r(e,100,"AcDbBlockEnd"))return n;e=t.next()}break}switch(e.code){case 1:n.xrefPath=e.value;break;case 2:n.name=e.value;break;case 3:n.name2=e.value;break;case 5:n.handle=e.value;break;case 8:n.layer=e.value;break;case 10:n.position=a(t);break;case 67:n.paperSpace=!!e.value&&1==e.value;break;case 70:0!==e.value&&(n.type=e.value);break;case 100:break;case 330:n.ownerHandle=e.value;break;case 0:n.entities=rK(e,t)}e=t.next()}return n}function r$(e,t){let n=null,o={};for(;!r(e,0,"EOF")&&!r(e,0,"ENDSEC");)9===e.code?n=e.value:10===e.code?o[n]=a(t):o[n]=e.value,e=t.next();return o}const rq=[{code:333,name:"shadePlotId",parser:o},{code:149,name:"imageOriginY",parser:o},{code:148,name:"imageOriginX",parser:o},{code:147,name:"scaleFactor",parser:o},{code:78,name:"shadePlotCustomDPI",parser:o},{code:77,name:"shadePlotResolution",parser:o},{code:76,name:"shadePlotMode",parser:o},{code:75,name:"standardScaleType",parser:o},{code:7,name:"currentStyleSheet",parser:o},{code:74,name:"plotType",parser:o},{code:73,name:"plotRotation",parser:o},{code:72,name:"paperUnit",parser:o},{code:70,name:"layoutFlag",parser:o},{code:143,name:"printScaleDenominator",parser:o},{code:142,name:"printScaleNominator",parser:o},{code:141,name:"windowAreaYMax",parser:o},{code:140,name:"windowAreaYMin",parser:o},{code:49,name:"windowAreaXMax",parser:o},{code:48,name:"windowAreaXMin",parser:o},{code:47,name:"plotOriginY",parser:o},{code:46,name:"plotOriginX",parser:o},{code:45,name:"paperHeight",parser:o},{code:44,name:"paperWidth",parser:o},{code:43,name:"marginTop",parser:o},{code:42,name:"marginRight",parser:o},{code:41,name:"marginBottom",parser:o},{code:40,name:"marginLeft",parser:o},{code:6,name:"plotViewName",parser:o},{code:4,name:"paperSize",parser:o},{code:2,name:"configName",parser:o},{code:1,name:"pageSetupName",parser:o},{code:100,name:"subclassMarker",parser:o}];(L=ed||(ed={}))[L.INCHES=0]="INCHES",L[L.MILLIMETERS=1]="MILLIMETERS",L[L.PIXELS=2]="PIXELS",(_=el||(el={}))[_.LAST_SCREEN_DISPLAY=0]="LAST_SCREEN_DISPLAY",_[_.DRAWING_EXTENTS=1]="DRAWING_EXTENTS",_[_.DRAWING_LIMITS=2]="DRAWING_LIMITS",_[_.VIEW_SPECIFIED=3]="VIEW_SPECIFIED",_[_.WINDOW_SPECIFIED=4]="WINDOW_SPECIFIED",_[_.LAYOUT_INFORMATION=5]="LAYOUT_INFORMATION",(P=ep||(ep={}))[P.AS_DISPLAYED=0]="AS_DISPLAYED",P[P.WIREFRAME=1]="WIREFRAME",P[P.HIDDEN=2]="HIDDEN",P[P.RENDERED=3]="RENDERED",(v=eu||(eu={}))[v.DRAFT=0]="DRAFT",v[v.PREVIEW=1]="PREVIEW",v[v.NORMAL=2]="NORMAL",v[v.PRESENTATION=3]="PRESENTATION",v[v.MAXIMUM=4]="MAXIMUM",v[v.CUSTOM=5]="CUSTOM";const rQ=[{code:333,name:"shadePlotId",parser:o},{code:346,name:"orthographicUcsId",parser:o},{code:345,name:"namedUcsId",parser:o},{code:331,name:"viewportId",parser:o},{code:330,name:"paperSpaceTableId",parser:o},{code:76,name:"orthographicType",parser:o},{code:17,name:"ucsYAxis",parser:s},{code:16,name:"ucsXAxis",parser:s},{code:13,name:"ucsOrigin",parser:s},{code:146,name:"elevation",parser:o},{code:15,name:"maxExtent",parser:s},{code:14,name:"minExtent",parser:s},{code:12,name:"insertionBase",parser:s},{code:11,name:"maxLimit",parser:s},{code:10,name:"minLimit",parser:s},{code:71,name:"tabOrder",parser:o},{code:70,name:"controlFlag",parser:o},{code:1,name:"layoutName",parser:o},{code:100,name:"subclassMarker",parser:o},...rq];(C=em||(em={}))[C.PSLTSCALE=1]="PSLTSCALE",C[C.LIMCHECK=2]="LIMCHECK";const r0=[{code:330,name:"ownerObjectId",parser:o},{code:102},{code:360,name:"ownerDictionaryIdHard",parser:o},{code:102},{code:102},{code:330,name:"ownerDictionaryIdSoft",parser:o},{code:102},{code:102},{code:102},{code:5,name:"handle",parser:o}],r1=[{code:3,name:"entries",parser:(e,r)=>{let a={name:e.value};return 350===(e=r.next()).code?a.objectId=e.value:r.rewind(),a},isMultiple:!0},{code:281,name:"recordCloneFlag",parser:o},{code:280,name:"isHardOwned",parser:i},{code:100,name:"subclassMarker",parser:o}];function r4(e){return"AcDbDictionary"===e.subclassMarker}(M=eE||(eE={}))[M.NOT_APPLICABLE=0]="NOT_APPLICABLE",M[M.KEEP_EXISTING=1]="KEEP_EXISTING",M[M.USE_CLONE=2]="USE_CLONE",M[M.XREF_VALUE_NAME=3]="XREF_VALUE_NAME",M[M.VALUE_NAME=4]="VALUE_NAME",M[M.UNMANGLE_NAME=5]="UNMANGLE_NAME";const r2={LAYOUT:rQ,PLOTSETTINGS:rq,DICTIONARY:r1};function r3(e,r){let a=[];for(;0!==e.code||!["EOF","ENDSEC"].includes(e.value);){let t=e.value,o=r2[t];if(0===e.code&&o?.length){let s=n([...r0,...o]),i={name:t};s(e=r.next(),r,i)?(a.push(i),e=r.peek()):e=r.next()}else e=r.next()}return{byName:rp(a,({name:e})=>e),byTree:function(e){let r=Object.fromEntries(e.map(e=>[e.handle,e]));for(let a of e)(!r4(a)||"0"!==a.ownerDictionaryIdSoft)&&(a.ownerDictionaryIdSoft&&(a.ownerDictionarySoft=r[a.ownerDictionaryIdSoft]),a.ownerDictionaryIdHard&&(a.ownerDictionaryHard=r[a.ownerDictionaryIdHard]),a.ownerObjectId&&(a.ownerObject=r[a.ownerObjectId])),function(e,r){r4(e)&&e.entries&&(e.entries=Object.fromEntries(e.entries.map(({name:e,objectId:a})=>[e,r[a]])))}(a,r);return e[0]}(a)}}const r7=[{code:100,name:"subclassMarker",parser:o},{code:330,name:"ownerObjectId",parser:o},{code:102,parser(e,a){for(;!r(e,0,"EOF")&&!r(e,102,"}");)e=a.next()}},{code:5,name:"handle",parser:o}],r5=n([{code:310,name:"bmpPreview",parser:o},{code:281,name:"scalability",parser:o},{code:280,name:"explodability",parser:o},{code:70,name:"insertionUnits",parser:o},{code:340,name:"layoutObjects",parser:o},{code:2,name:"name",parser:o},{code:100,name:"subclassMarker",parser:o},...r7]),r6=n([...[{name:"DIMPOST",code:3},{name:"DIMAPOST",code:4},{name:"DIMBLK_OBSOLETE",code:5},{name:"DIMBLK1_OBSOLETE",code:6},{name:"DIMBLK2_OBSOLETE",code:7},{name:"DIMSCALE",code:40,defaultValue:1},{name:"DIMASZ",code:41,defaultValue:.25},{name:"DIMEXO",code:42,defaultValue:.625,defaultValueImperial:.0625},{name:"DIMDLI",code:43,defaultValue:3.75,defaultValueImperial:.38},{name:"DIMEXE",code:44,defaultValue:2.25,defaultValueImperial:.28},{name:"DIMRND",code:45,defaultValue:0},{name:"DIMDLE",code:46,defaultValue:0},{name:"DIMTP",code:47,defaultValue:0},{name:"DIMTM",code:48,defaultValue:0},{name:"DIMTXT",code:140,defaultValue:2.5,defaultValueImperial:.28},{name:"DIMCEN",code:141,defaultValue:2.5,defaultValueImperial:.09},{name:"DIMTSZ",code:142,defaultValue:0},{name:"DIMALTF",code:143,defaultValue:25.4},{name:"DIMLFAC",code:144,defaultValue:1},{name:"DIMTVP",code:145,defaultValue:0},{name:"DIMTFAC",code:146,defaultValue:1},{name:"DIMGAP",code:147,defaultValue:.625,defaultValueImperial:.09},{name:"DIMALTRND",code:148,defaultValue:0},{name:"DIMTOL",code:71,defaultValue:0,defaultValueImperial:1},{name:"DIMLIM",code:72,defaultValue:0},{name:"DIMTIH",code:73,defaultValue:0,defaultValueImperial:1},{name:"DIMTOH",code:74,defaultValue:0,defaultValueImperial:1},{name:"DIMSE1",code:75,defaultValue:0},{name:"DIMSE2",code:76,defaultValue:0},{name:"DIMTAD",code:77,defaultValue:exports.DimensionTextVertical.Above,defaultValueImperial:exports.DimensionTextVertical.Center},{name:"DIMZIN",code:78,defaultValue:exports.DimensionZeroSuppression.Trailing,defaultValueImperial:exports.DimensionZeroSuppression.Feet},{name:"DIMAZIN",code:79,defaultValue:exports.DimensionZeroSuppressionAngular.None},{name:"DIMALT",code:170,defaultValue:0},{name:"DIMALTD",code:171,defaultValue:3,defaultValueImperial:2},{name:"DIMTOFL",code:172,defaultValue:1,defaultValueImperial:0},{name:"DIMSAH",code:173,defaultValue:0},{name:"DIMTIX",code:174,defaultValue:0},{name:"DIMSOXD",code:175,defaultValue:0},{name:"DIMCLRD",code:176,defaultValue:0},{name:"DIMCLRE",code:177,defaultValue:0},{name:"DIMCLRT",code:178,defaultValue:0},{name:"DIMADEC",code:179},{name:"DIMUNIT",code:270},{name:"DIMDEC",code:271,defaultValue:2,defaultValueImperial:4},{name:"DIMTDEC",code:272,defaultValue:2,defaultValueImperial:4},{name:"DIMALTU",code:273,defaultValue:2},{name:"DIMALTTD",code:274,defaultValue:2,defaultValueImperial:4},{name:"DIMAUNIT",code:275,defaultValue:0},{name:"DIMFRAC",code:276,defaultValue:0},{name:"DIMLUNIT",code:277,defaultValue:2},{name:"DIMDSEP",code:278,defaultValue:",",defaultValueImperial:"."},{name:"DIMJUST",code:280,defaultValue:exports.DimensionTextHorizontal.Center},{name:"DIMSD1",code:281,defaultValue:0},{name:"DIMSD2",code:282,defaultValue:0},{name:"DIMTOLJ",code:283,defaultValue:exports.DimensionToleranceTextVertical.Center},{name:"DIMTZIN",code:284,defaultValue:exports.DimensionZeroSuppression.Trailing,defaultValueImperial:exports.DimensionZeroSuppression.Feet},{name:"DIMALTZ",code:285,defaultValue:exports.DimensionZeroSuppression.Trailing},{name:"DIMALTTZ",code:286,defaultValue:exports.DimensionZeroSuppression.Trailing},{name:"DIMFIT",code:287},{name:"DIMUPT",code:288,defaultValue:0},{name:"DIMATFIT",code:289,defaultValue:3},{name:"DIMTXSTY",code:340},{name:"DIMLDRBLK",code:341},{name:"DIMBLK",code:342},{name:"DIMBLK1",code:343},{name:"DIMBLK2",code:344},{name:"DIMLWD",code:371,defaultValue:-2},{name:"DIMLWD",code:372,defaultValue:-2}].map(e=>({...e,parser:o})),{code:70,name:"standardFlag",parser:o},{code:2,name:"name",parser:o},{code:100,name:"subclassMarker",parser:o},{code:105,name:"handle",parser:o},...r7.filter(e=>5!==e.code)]),r9=n([{code:347,name:"materialObjectId",parser:o},{code:390,name:"plotStyleNameObjectId",parser:o},{code:370,name:"lineweight",parser:o},{code:290,name:"isPlotting",parser:i},{code:6,name:"lineType",parser:o},{code:62,name:"colorIndex",parser:o},{code:70,name:"standardFlag",parser:o},{code:2,name:"name",parser:o},{code:100,name:"subclassMarker",parser:o},...r7]),r8=n([{code:9,name:"text",parser:o},{code:45,name:"offsetY",parser:o},{code:44,name:"offsetX",parser:o},{code:50,name:"rotation",parser:o},{code:46,name:"scale",parser:o},{code:340,name:"styleObjectId",parser:o},{code:75,name:"shapeNumber",parser:o},{code:74,name:"elementTypeFlag",parser:o},{code:49,name:"elementLength",parser:o}],{elementTypeFlag:0,elementLength:0}),ae={BLOCK_RECORD:r5,DIMSTYLE:r6,LAYER:r9,LTYPE:n([{code:49,name:"pattern",parser(e,r){let a={};return r8(e,r,a),a},isMultiple:!0},{code:40,name:"totalPatternLength",parser:o},{code:73,name:"numberOfLineTypes",parser:o},{code:72,parser:o},{code:3,name:"description",parser:o},{code:70,name:"standardFlag",parser:o},{code:2,name:"name",parser:o},{code:100,name:"subclassMarker",parser:o},...r7]),STYLE:n([{code:1e3,name:"extendedFont",parser:o},{code:1001},{code:4,name:"bigFont",parser:o},{code:3,name:"font",parser:o},{code:42,name:"lastHeight",parser:o},{code:71,name:"textGenerationFlag",parser:o},{code:50,name:"obliqueAngle",parser:o},{code:41,name:"widthFactor",parser:o},{code:40,name:"fixedTextHeight",parser:o},{code:70,name:"standardFlag",parser:o},{code:2,name:"name",parser:o},{code:100,name:"subclassMarker",parser:o},...r7]),VPORT:n([{code:[63,421,431],name:"ambientColor",parser:o},{code:142,name:"contrast",parser:o},{code:141,name:"brightness",parser:o},{code:282,name:"defaultLightingType",parser:o},{code:292,name:"isDefaultLightingOn",parser:i},{code:348,name:"visualStyleObjectId",parser:o},{code:333,name:"shadePlotObjectId",parser:o},{code:332,name:"backgroundObjectId",parser:o},{code:61,name:"majorGridLines",parser:o},{code:170,name:"shadePlotSetting",parser:o},{code:146,name:"elevation",parser:o},{code:79,name:"orthographicType",parser:o},{code:112,name:"ucsYAxis",parser:s},{code:111,name:"ucsXAxis",parser:s},{code:110,name:"ucsOrigin",parser:s},{code:74,name:"ucsIconSetting",parser:o},{code:71,name:"viewMode",parser:o},{code:281,name:"renderMode",parser:o},{code:1,name:"styleSheet",parser:o},{code:[331,441],name:"frozenLayers",parser:o,isMultiple:!0},{code:72,name:"circleSides",parser:o},{code:51,name:"viewTwistAngle",parser:o},{code:50,name:"snapRotationAngle",parser:o},{code:45,name:"viewHeight",parser:o},{code:44,name:"backClippingPlane",parser:o},{code:43,name:"frontClippingPlane",parser:o},{code:42,name:"lensLength",parser:o},{code:17,name:"viewTarget",parser:s},{code:16,name:"viewDirectionFromTarget",parser:s},{code:15,name:"gridSpacing",parser:s},{code:14,name:"snapSpacing",parser:s},{code:13,name:"snapBasePoint",parser:s},{code:12,name:"center",parser:s},{code:11,name:"upperRightCorner",parser:s},{code:10,name:"lowerLeftCorner",parser:s},{code:70,name:"standardFlag",parser:o},{code:2,name:"name",parser:o},{code:100,name:"subclassMarker",parser:o},...r7])},ar=n([{code:70,name:"maxNumberOfEntries",parser:o},{code:100,name:"subclassMarker",parser:o},{code:330,name:"ownerObjectId",parser:o},{code:102},{code:360,isMultiple:!0},{code:102},{code:5,name:"handle",parser:o},{code:2,name:"name",parser:o}]);function aa(e,a){let t={};for(;!r(e,0,"EOF")&&!r(e,0,"ENDSEC");){if(r(e,0,"TABLE")){e=a.next();let r={entries:[]};ar(e,a,r),t[r.name]=r}if(r(e,0)&&!r(e,0,"ENDTAB")){let r=e.value;e=a.next();let n=ae[r];if(!n){console.warn(`parseTable: Invalid table name '${r}'`),e=a.next();continue}let o={};n(e,a,o),t[r]?.entries.push(o)}e=a.next()}return t}function at(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}class an{next(){if(!this.hasNext())return this._eof?console.warn("Cannot call 'next' after EOF group has been read"):console.warn("Unexpected end of input: EOF group not read before end of file. Ended on code "+this._data[this._pointer]),{code:0,value:"EOF"};let e=parseInt(this._data[this._pointer++],10),a=ao(e,this._data[this._pointer++]),t={code:e,value:a};return r(t,0,"EOF")&&(this._eof=!0),this.lastReadGroup=t,t}peek(){if(!this.hasNext()){if(this._eof)throw Error("Cannot call 'next' after EOF group has been read");throw Error("Unexpected end of input: EOF group not read before end of file. Ended on code "+this._data[this._pointer])}let e={code:parseInt(this._data[this._pointer]),value:0};return e.value=ao(e.code,this._data[this._pointer+1]),e}rewind(e){e=e||1,this._pointer=this._pointer-2*e}hasNext(){return!this._eof&&!(this._pointer>this._data.length-2)}isEOF(){return this._eof}constructor(e){at(this,"_pointer",void 0),at(this,"_data",void 0),at(this,"_eof",void 0),at(this,"lastReadGroup",{code:0,value:0}),this._pointer=0,this._data=e,this._eof=!1}}function ao(e,r){return e<=9?r:e>=10&&e<=59?parseFloat(r.trim()):e>=60&&e<=99?parseInt(r.trim()):e>=100&&e<=109?r:e>=110&&e<=149?parseFloat(r.trim()):e>=160&&e<=179?parseInt(r.trim()):e>=210&&e<=239?parseFloat(r.trim()):e>=270&&e<=289?parseInt(r.trim()):e>=290&&e<=299?function(e){if("0"===e)return!1;if("1"===e)return!0;throw TypeError("String '"+e+"' cannot be cast to Boolean type")}(r.trim()):e>=300&&e<=369?r:e>=370&&e<=389?parseInt(r.trim()):e>=390&&e<=399?r:e>=400&&e<=409?parseInt(r.trim()):e>=410&&e<=419?r:e>=420&&e<=429?parseInt(r.trim()):e>=430&&e<=439?r:e>=440&&e<=459?parseInt(r.trim()):e>=460&&e<=469?parseFloat(r.trim()):e>=470&&e<=481||999===e||e>=1e3&&e<=1009?r:e>=1010&&e<=1059?parseFloat(r.trim()):e>=1060&&e<=1071?parseInt(r.trim()):(console.log("WARNING: Group code does not have a defined type: %j",{code:e,value:r}),r)}function as(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}class ai{parseStart(e){this.startCode=e.code}setPoint(e){if(this.code=e.code,this.value=e.value,this.startCode===this.code&&(this.x=this.value),this.startCode===this.code+10)this.y=this.value;else{let e={x:this.x??0,y:this.y??0,z:this.z??0};return this.reset(),e}if(this.startCode===this.code+20)this.z=this.value;else{let e={x:this.x??0,y:this.y??0,z:this.z??0};return this.reset(),e}}reset(){this.x=void 0,this.y=void 0,this.z=void 0}constructor(){as(this,"point",{}),as(this,"startCode",0),as(this,"code",0),as(this,"value",0),as(this,"x",void 0),as(this,"y",void 0),as(this,"z",void 0)}}function ac(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}class ad{constructor(){ac(this,"encoding","utf-8"),ac(this,"encodingFailureFatal",!1)}}class al extends Error{constructor(e,r,a){let t=`[Line ${r}]: ${e}`;a?.cause&&(t+=`
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.BlockTypeFlag=void 0,(w=exports.BlockTypeFlag||(exports.BlockTypeFlag={}))[w.None=0]="None",w[w.Anonymous=1]="Anonymous",w[w.NonConstant=2]="NonConstant",w[w.Xref=4]="Xref",w[w.XrefOverlay=8]="XrefOverlay",w[w.ExternallyDependent=16]="ExternallyDependent",w[w.ResolvedOrDependent=32]="ResolvedOrDependent",w[w.ReferencedXref=64]="ReferencedXref",exports.ColorCode=void 0,(V=exports.ColorCode||(exports.ColorCode={}))[V.BYBLOCK=0]="BYBLOCK",V[V.BYLAYER=256]="BYLAYER",exports.DimensionType=void 0,(B=exports.DimensionType||(exports.DimensionType={}))[B.Rotated=0]="Rotated",B[B.Aligned=1]="Aligned",B[B.Angular=2]="Angular",B[B.Diameter=3]="Diameter",B[B.Radius=4]="Radius",B[B.Angular3Point=5]="Angular3Point",B[B.Ordinate=6]="Ordinate",B[B.ReferenceIsExclusive=32]="ReferenceIsExclusive",B[B.IsOrdinateXTypeFlag=64]="IsOrdinateXTypeFlag",B[B.IsCustomTextPositionFlag=128]="IsCustomTextPositionFlag",exports.AttachmentPoint=void 0,(H=exports.AttachmentPoint||(exports.AttachmentPoint={}))[H.TopLeft=1]="TopLeft",H[H.TopCenter=2]="TopCenter",H[H.TopRight=3]="TopRight",H[H.MiddleLeft=4]="MiddleLeft",H[H.MiddleCenter=5]="MiddleCenter",H[H.MiddleRight=6]="MiddleRight",H[H.BottomLeft=7]="BottomLeft",H[H.BottomCenter=8]="BottomCenter",H[H.BottomRight=9]="BottomRight",exports.DimensionTextLineSpacing=void 0,(G=exports.DimensionTextLineSpacing||(exports.DimensionTextLineSpacing={}))[G.AtLeast=1]="AtLeast",G[G.Exact=2]="Exact",exports.DimensionTextVertical=void 0,(U=exports.DimensionTextVertical||(exports.DimensionTextVertical={}))[U.Center=0]="Center",U[U.Above=1]="Above",U[U.Outside=2]="Outside",U[U.JIS=3]="JIS",U[U.Below=4]="Below",exports.DimensionZeroSuppression=void 0,(W=exports.DimensionZeroSuppression||(exports.DimensionZeroSuppression={}))[W.Feet=0]="Feet",W[W.None=1]="None",W[W.Inch=2]="Inch",W[W.FeetAndInch=3]="FeetAndInch",W[W.Leading=4]="Leading",W[W.Trailing=8]="Trailing",W[W.LeadingAndTrailing=12]="LeadingAndTrailing",exports.DimensionZeroSuppressionAngular=void 0,(Y=exports.DimensionZeroSuppressionAngular||(exports.DimensionZeroSuppressionAngular={}))[Y.None=0]="None",Y[Y.Leading=1]="Leading",Y[Y.Trailing=2]="Trailing",Y[Y.LeadingAndTrailing=3]="LeadingAndTrailing",exports.DimensionTextHorizontal=void 0,(j=exports.DimensionTextHorizontal||(exports.DimensionTextHorizontal={}))[j.Center=0]="Center",j[j.Left=1]="Left",j[j.Right=2]="Right",j[j.OverFirst=3]="OverFirst",j[j.OverSecond=4]="OverSecond",exports.DimensionToleranceTextVertical=void 0,(z=exports.DimensionToleranceTextVertical||(exports.DimensionToleranceTextVertical={}))[z.Bottom=0]="Bottom",z[z.Center=1]="Center",z[z.Top=2]="Top",exports.HatchSolidFill=void 0,(X=exports.HatchSolidFill||(exports.HatchSolidFill={}))[X.PatternFill=0]="PatternFill",X[X.SolidFill=1]="SolidFill",exports.HatchAssociativity=void 0,(K=exports.HatchAssociativity||(exports.HatchAssociativity={}))[K.NonAssociative=0]="NonAssociative",K[K.Associative=1]="Associative",exports.HatchStyle=void 0,(Z=exports.HatchStyle||(exports.HatchStyle={}))[Z.Normal=0]="Normal",Z[Z.Outer=1]="Outer",Z[Z.Ignore=2]="Ignore",exports.HatchPatternType=void 0,(J=exports.HatchPatternType||(exports.HatchPatternType={}))[J.UserDefined=0]="UserDefined",J[J.Predefined=1]="Predefined",J[J.Custom=2]="Custom",exports.HatchBoundaryAnnotation=void 0,($=exports.HatchBoundaryAnnotation||(exports.HatchBoundaryAnnotation={}))[$.NotAnnotated=0]="NotAnnotated",$[$.Annotated=1]="Annotated",exports.HatchGradientFlag=void 0,(q=exports.HatchGradientFlag||(exports.HatchGradientFlag={}))[q.Solid=0]="Solid",q[q.Gradient=1]="Gradient",exports.HatchGradientColorFlag=void 0,(Q=exports.HatchGradientColorFlag||(exports.HatchGradientColorFlag={}))[Q.TwoColor=0]="TwoColor",Q[Q.OneColor=1]="OneColor",exports.BoundaryPathTypeFlag=void 0,(ee=exports.BoundaryPathTypeFlag||(exports.BoundaryPathTypeFlag={}))[ee.Default=0]="Default",ee[ee.External=1]="External",ee[ee.Polyline=2]="Polyline",ee[ee.Derived=4]="Derived",ee[ee.Textbox=8]="Textbox",ee[ee.Outermost=16]="Outermost",exports.BoundaryPathEdgeType=void 0,(er=exports.BoundaryPathEdgeType||(exports.BoundaryPathEdgeType={}))[er.Line=1]="Line",er[er.Circular=2]="Circular",er[er.Elliptic=3]="Elliptic",er[er.Spline=4]="Spline",exports.ObscuredLineTypes=void 0,(ea=exports.ObscuredLineTypes||(exports.ObscuredLineTypes={}))[ea.Off=0]="Off",ea[ea.Solid=1]="Solid",ea[ea.Dashed=2]="Dashed",ea[ea.Dotted=3]="Dotted",ea[ea.ShotDash=4]="ShotDash",ea[ea.MediumDash=5]="MediumDash",ea[ea.LongDash=6]="LongDash",ea[ea.DoubleShortDash=7]="DoubleShortDash",ea[ea.DoubleMediumDash=8]="DoubleMediumDash",ea[ea.DoubleLongDash=9]="DoubleLongDash",ea[ea.DoubleMediumLongDash=10]="DoubleMediumLongDash",ea[ea.SparseDot=11]="SparseDot";const e={DRAGVS:"NULL",INTERFERECOLOR:1,INTERFEREOBJVS:"Conceptual",INTERFEREVPVS:"3d Wireframe",OBSLTYPE:exports.ObscuredLineTypes.Off,SHADEDIF:70};function r(e,r,a){return e.code===r&&(null==a||e.value===a)}function a(e){let r={};e.rewind();let a=e.next(),t=a.code;if(r.x=a.value,(a=e.next()).code!==t+10)throw Error("Expected code for point value to be 20 but got "+a.code+".");return(r.y=a.value,(a=e.next()).code!==t+20)?e.rewind():r.z=a.value,r}exports.ReservedLineweight=void 0,(et=exports.ReservedLineweight||(exports.ReservedLineweight={}))[et.Standard=-3]="Standard",et[et.ByLayer=-2]="ByLayer",et[et.ByBlock=-1]="ByBlock",exports.Measurement=void 0,(en=exports.Measurement||(exports.Measurement={}))[en.English=0]="English",en[en.Metric=1]="Metric",exports.ViewportStatusFlag=void 0,(eo=exports.ViewportStatusFlag||(exports.ViewportStatusFlag={}))[eo.PERSPECTIVE_MODE=1]="PERSPECTIVE_MODE",eo[eo.FRONT_CLIPPING=2]="FRONT_CLIPPING",eo[eo.BACK_CLIPPING=4]="BACK_CLIPPING",eo[eo.UCS_FOLLOW=8]="UCS_FOLLOW",eo[eo.FRONT_CLIP_NOT_AT_EYE=16]="FRONT_CLIP_NOT_AT_EYE",eo[eo.UCS_ICON_VISIBILITY=32]="UCS_ICON_VISIBILITY",eo[eo.UCS_ICON_AT_ORIGIN=64]="UCS_ICON_AT_ORIGIN",eo[eo.FAST_ZOOM=128]="FAST_ZOOM",eo[eo.SNAP_MODE=256]="SNAP_MODE",eo[eo.GRID_MODE=512]="GRID_MODE",eo[eo.ISOMETRIC_SNAP_STYLE=1024]="ISOMETRIC_SNAP_STYLE",eo[eo.HIDE_PLOT_MODE=2048]="HIDE_PLOT_MODE",eo[eo.K_ISO_PAIR_TOP=4096]="K_ISO_PAIR_TOP",eo[eo.K_ISO_PAIR_RIGHT=8192]="K_ISO_PAIR_RIGHT",eo[eo.VIEWPORT_ZOOM_LOCKING=16384]="VIEWPORT_ZOOM_LOCKING",eo[eo.UNUSED=32768]="UNUSED",eo[eo.NON_RECTANGULAR_CLIPPING=65536]="NON_RECTANGULAR_CLIPPING",eo[eo.VIEWPORT_OFF=131072]="VIEWPORT_OFF",eo[eo.GRID_BEYOND_DRAWING_LIMITS=262144]="GRID_BEYOND_DRAWING_LIMITS",eo[eo.ADAPTIVE_GRID_DISPLAY=524288]="ADAPTIVE_GRID_DISPLAY",eo[eo.SUBDIVISION_BELOW_SPACING=1048576]="SUBDIVISION_BELOW_SPACING",eo[eo.GRID_FOLLOWS_WORKPLANE=2097152]="GRID_FOLLOWS_WORKPLANE",exports.RenderMode=void 0,(es=exports.RenderMode||(exports.RenderMode={}))[es.OPTIMIZED_2D=0]="OPTIMIZED_2D",es[es.WIREFRAME=1]="WIREFRAME",es[es.HIDDEN_LINE=2]="HIDDEN_LINE",es[es.FLAT_SHADED=3]="FLAT_SHADED",es[es.GOURAUD_SHADED=4]="GOURAUD_SHADED",es[es.FLAT_SHADED_WITH_WIREFRAME=5]="FLAT_SHADED_WITH_WIREFRAME",es[es.GOURAUD_SHADED_WITH_WIREFRAME=6]="GOURAUD_SHADED_WITH_WIREFRAME",exports.UCSPerViewport=void 0,(ei=exports.UCSPerViewport||(exports.UCSPerViewport={}))[ei.UCS_UNCHANGED=0]="UCS_UNCHANGED",ei[ei.HAS_OWN_UCS=1]="HAS_OWN_UCS",exports.OrthographicType=void 0,(ec=exports.OrthographicType||(exports.OrthographicType={}))[ec.NON_ORTHOGRAPHIC=0]="NON_ORTHOGRAPHIC",ec[ec.TOP=1]="TOP",ec[ec.BOTTOM=2]="BOTTOM",ec[ec.FRONT=3]="FRONT",ec[ec.BACK=4]="BACK",ec[ec.LEFT=5]="LEFT",ec[ec.RIGHT=6]="RIGHT",exports.ShadePlotMode=void 0,(ed=exports.ShadePlotMode||(exports.ShadePlotMode={}))[ed.AS_DISPLAYED=0]="AS_DISPLAYED",ed[ed.WIREFRAME=1]="WIREFRAME",ed[ed.HIDDEN=2]="HIDDEN",ed[ed.RENDERED=3]="RENDERED",exports.DefaultLightingType=void 0,(el=exports.DefaultLightingType||(exports.DefaultLightingType={}))[el.ONE_DISTANT_LIGHT=0]="ONE_DISTANT_LIGHT",el[el.TWO_DISTANT_LIGHTS=1]="TWO_DISTANT_LIGHTS";const t=Symbol();function n(e,a){return(n,o,s)=>{let i=e.reduce((e,r)=>{r.pushContext&&e.push({});let a=e[e.length-1];for(let e of"number"==typeof r.code?[r.code]:r.code){let t=a[e]??(a[e]=[]);r.isMultiple&&t.length&&console.warn(`Snippet ${t.at(-1).name} for code(${e}) is shadowed by ${r.name}`),t.push(r)}return e},[{}]),c=!1,d=i.length-1;for(;!r(n,0,"EOF");){let e=function(e,r,a){return e.find((e,t)=>t>=a&&e[r]?.length)}(i,n.code,d),r=e?.[n.code].at(-1);if(!e||!r){o.rewind();break}r.isMultiple||e[n.code].pop();let{name:a,parser:l,isMultiple:p,isReducible:u}=r,m=l?.(n,o,s);if(m===t){o.rewind();break}if(a){let[e,r]=function(e,r){let a=r.split("."),t=e;for(let e=0;e<a.length-1;++e){let r=a[e];Object.prototype.hasOwnProperty.call(t,r)||(t[r]={}),t=t[r]}return[t,a.at(-1)]}(s,a);p&&!u?(Object.prototype.hasOwnProperty.call(e,r)||(e[r]=[]),e[r].push(m)):e[r]=m}r.pushContext&&(d-=1),c=!0,n=o.next()}return a&&Object.setPrototypeOf(s,a),c}}function o({value:e}){return e}function s(e,r){return a(r)}function i({value:e}){return!!e}var c,d,l,p,u,m,E,h,I,T,f,x,D,b,g,O,S,y,N,A,_,L,P,v,C,M,F,R,k,w,V,B,H,G,U,W,Y,j,z,X,K,Z,J,$,q,Q,ee,er,ea,et,en,eo,es,ei,ec,ed,el,ep,eu,em,eE,eh,eI,eT,ef,ex,eD,eb=[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];function eg(e,t){if(!r(e,1001))throw Error("XData must starts with code 1001");let n={appName:e.value,value:[]};e=t.next();let o=[n.value];for(;!r(e,0,"EOF")&&e.code>=1e3;){let r=o.at(-1);switch(e.code){case 1002:"{"===e.value?o.push([]):(o.pop(),o.at(-1)?.push(r));break;case 1e3:case 1004:case 1040:case 1070:case 1071:r.push({type:eO(e.code),value:e.value});break;case 1003:r.push({name:"layer",type:eO(e.code),value:e.value});break;case 1005:r.push({name:"handle",type:eO(e.code),value:e.value});break;case 1010:r.push({type:eO(e.code),value:a(t)});break;case 1011:r.push({name:"worldSpacePosition",type:eO(e.code),value:a(t)});break;case 1012:r.push({name:"worldSpaceDisplacement",type:eO(e.code),value:a(t)});break;case 1013:r.push({name:"worldSpaceDirection",type:eO(e.code),value:a(t)});break;case 1041:r.push({name:"distance",type:eO(e.code),value:e.value});break;case 1042:r.push({name:"scale",type:eO(e.code),value:e.value})}e=t.next()}return t.rewind(),n}function eO(e){switch(e){case 1e3:case 1003:case 1005:return"string";case 1004:return"hex";case 1040:case 1041:case 1042:return"real";case 1070:return"integer";case 1071:return"long";case 1010:case 1011:case 1012:case 1013:return"point";default:return""}}function eS(e,a,t){if(r(a,102))return e_(a,t),!0;switch(a.code){case 0:e.type=a.value;break;case 5:e.handle=a.value;break;case 330:e.ownerDictionarySoftId?e.ownerBlockRecordSoftId=a.value:e.ownerDictionarySoftId=a.value;break;case 360:e.ownerdictionaryHardId=a.value;break;case 67:e.isInPaperSpace=!!a.value;break;case 8:e.layer=a.value;break;case 6:e.lineType=a.value;break;case 347:e.materialObjectHardId=a.value;break;case 62:e.colorIndex=a.value,e.color=eb[Math.abs(a.value)];break;case 370:e.lineweight=a.value;break;case 48:e.lineTypeScale=a.value;break;case 60:e.isVisible=!!a.value;break;case 92:e.proxyByte=a.value;break;case 310:e.proxyEntity=a.value;break;case 100:break;case 420:e.color=a.value;break;case 430:e.transparency=a.value;break;case 390:e.plotStyleHardId=a.value;break;case 284:e.shadowMode=a.value;break;case 1001:e.xdata=eg(a,t);break;default:return!1}return!0}let ey=0;function eN(e){if(!e)throw TypeError("entity cannot be undefined or null");e.handle||(e.handle=ey++)}exports.ShadowMode=void 0,(c=exports.ShadowMode||(exports.ShadowMode={}))[c.CAST_AND_RECEIVE=0]="CAST_AND_RECEIVE",c[c.CAST=1]="CAST",c[c.RECEIVE=2]="RECEIVE",c[c.IGNORE=3]="IGNORE";const eA=[{code:1001,name:"xdata",parser:eg},{code:284,name:"shadowMode",parser:o},{code:390,name:"plotStyleHardId",parser:o},{code:440,name:"transparency",parser:o},{code:430,name:"colorName",parser:o},{code:420,name:"color",parser:o},{code:310,name:"proxyEntity",parser:o},{code:92,name:"proxyByte",parser:o},{code:60,name:"isVisible",parser:i},{code:48,name:"lineTypeScale",parser:o},{code:370,name:"lineweight",parser:o},{code:62,name:"colorIndex",parser(e,r,a){let t=e.value;return a.color=eb[Math.abs(t)],t}},{code:347,name:"materialObjectHardId",parser:o},{code:6,name:"lineType",parser:o},{code:8,name:"layer",parser:o},{code:410,name:"layoutTabName",parser:o},{code:67,name:"isInPaperSpace",parser:i},{code:100},{code:330,name:"ownerBlockRecordSoftId",parser:o},{code:102,parser:e_},{code:102,parser:e_},{code:102,parser:e_},{code:5,name:"handle",parser:o}];function e_(e,a){for(e=a.next();!r(e,102)&&!r(e,0,"EOF");)e=a.next()}function eL(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}const eP={extrusionDirection:{x:0,y:0,z:1}},ev=[{code:210,name:"extrusionDirection",parser:s},{code:51,name:"endAngle",parser:o},{code:50,name:"startAngle",parser:o},{code:100,name:"subclassMarker",parser:o},{code:40,name:"radius",parser:o},{code:10,name:"center",parser:s},{code:39,name:"thickness",parser:o},{code:100},...eA];class eC{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){eL(this,"parser",n(ev,eP))}}function eM(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}eL(eC,"ForEntityName","ARC"),exports.AttributeFlag=void 0,(d=exports.AttributeFlag||(exports.AttributeFlag={}))[d.NONE=0]="NONE",d[d.INVISIBLE=1]="INVISIBLE",d[d.CONSTANT=2]="CONSTANT",d[d.VERIFICATION_REQUIRED=4]="VERIFICATION_REQUIRED",d[d.PRESET=8]="PRESET",exports.AttDefMTextFlag=void 0,(l=exports.AttDefMTextFlag||(exports.AttDefMTextFlag={}))[l.MULTILINE=2]="MULTILINE",l[l.CONSTANT_MULTILINE=4]="CONSTANT_MULTILINE",exports.TextGenerationFlag=void 0,(p=exports.TextGenerationFlag||(exports.TextGenerationFlag={}))[p.NONE=0]="NONE",p[p.MIRRORED_X=2]="MIRRORED_X",p[p.MIRRORED_Y=4]="MIRRORED_Y",exports.TextHorizontalAlign=void 0,(u=exports.TextHorizontalAlign||(exports.TextHorizontalAlign={}))[u.LEFT=0]="LEFT",u[u.CENTER=1]="CENTER",u[u.RIGHT=2]="RIGHT",u[u.ALIGNED=3]="ALIGNED",u[u.MIDDLE=4]="MIDDLE",u[u.FIT=5]="FIT",exports.TextVerticalAlign=void 0,(m=exports.TextVerticalAlign||(exports.TextVerticalAlign={}))[m.BASELINE=0]="BASELINE",m[m.BOTTOM=1]="BOTTOM",m[m.MIDDLE=2]="MIDDLE",m[m.TOP=3]="TOP";const eF={thickness:0,rotation:0,xScale:1,obliqueAngle:0,styleName:"STANDARD",generationFlag:0,halign:exports.TextHorizontalAlign.LEFT,valign:exports.TextVerticalAlign.BASELINE,extrusionDirection:{x:0,y:0,z:1}},eR=[{code:73,name:"valign",parser:o},{code:100},{code:210,name:"extrusionDirection",parser:s},{code:11,name:"endPoint",parser:s},{code:72,name:"valign",parser:o},{code:72,name:"halign",parser:o},{code:71,name:"generationFlag",parser:o},{code:7,name:"styleName",parser:o},{code:51,name:"obliqueAngle",parser:o},{code:41,name:"xScale",parser:o},{code:50,name:"rotation",parser:o},{code:1,name:"text",parser:o},{code:40,name:"textHeight",parser:o},{code:10,name:"startPoint",parser:s},{code:39,name:"thickness",parser:o},{code:100,name:"subclassMarker",parser:o},...eA];class ek{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){eM(this,"parser",n(eR,eF))}}function ew(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}eM(ek,"ForEntityName","TEXT");const eV={...eF},eB=[{code:2},{code:40,name:"annotationScale",parser:o},{code:10,name:"alignmentPoint",parser:s},{code:340,name:"secondaryAttributesHardIds",isMultiple:!0,parser:o},{code:70,name:"numberOfSecondaryAttributes",parser:o},{code:70,name:"isReallyLocked",parser:i},{code:70,name:"mtextFlag",parser:o},{code:280,name:"isDuplicatedRecord",parser:i},{code:100},{code:280,name:"isLocked",parser:i},{code:74,name:"valign",parser:o},{code:73},{code:70,name:"attributeFlag",parser:o},{code:2,name:"tag",parser:o},{code:3,name:"prompt",parser:o},{code:280},{code:100,name:"subclassMarker",parser:o},...eR.slice(2)];class eH{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){ew(this,"parser",n(eB,eV))}}function eG(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}ew(eH,"ForEntityName","ATTDEF");const eU={thickness:0,extrusionDirection:{x:0,y:0,z:1}},eW=[{code:210,name:"extrusionDirection",parser:s},{code:40,name:"radius",parser:o},{code:10,name:"center",parser:s},{code:39,name:"thickness",parser:o},{code:100,name:"subclassMarker",parser:o},...eA];class eY{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){eG(this,"parser",n(eW,eU))}}eG(eY,"ForEntityName","CIRCLE");class ej{parseEntity(e,t){let n={};for(;!r(t,0,"EOF");){if(0===t.code){e.rewind();break}!function(e,r,t){switch(r.code){case 100:e.subclassMarker=r.value;break;case 280:e.version=r.value;break;case 2:e.name=r.value;break;case 10:e.definitionPoint=a(t);break;case 11:e.textPoint=a(t);break;case 12:e.insertionPoint=a(t);break;case 13:e.subDefinitionPoint1=a(t);break;case 14:e.subDefinitionPoint2=a(t);break;case 15:e.centerPoint=a(t);break;case 16:e.arcPoint=a(t);break;case 70:e.dimensionType=r.value;break;case 71:e.attachmentPoint=r.value;break;case 72:e.textLineSpacingStyle=r.value;break;case 40:e.leaderLength=r.value;break;case 41:e.textLineSpacingFactor=r.value;break;case 42:e.measurement=r.value;break;case 1:e.text=r.value;break;case 50:e.rotationAngle=r.value;break;case 52:e.obliqueAngle=r.value;break;case 53:e.textRotation=r.value;break;case 51:e.ocsRotation=r.value;break;case 210:e.extrusionDirection=a(t);break;case 3:e.styleName=r.value;break;default:eS(e,r,t)}}(n,t,e),t=e.next()}return n}}function ez(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}h="DIMENSION",(E="ForEntityName")in ej?Object.defineProperty(ej,E,{value:h,enumerable:!0,configurable:!0,writable:!0}):ej[E]=h;const eX={extrusionDirection:{x:0,y:0,z:1}},eK=[{code:42,name:"endAngle",parser:o},{code:41,name:"startAngle",parser:o},{code:40,name:"axisRatio",parser:o},{code:210,name:"extrusionDirection",parser:s},{code:11,name:"majorAxisEndPoint",parser:s},{code:10,name:"center",parser:s},{code:100,name:"subclassMarker",parser:o},...eA];class eZ{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){ez(this,"parser",n(eK,eX))}}ez(eZ,"ForEntityName","ELLIPSE");const eJ=[{code:330,name:"sourceBoundaryObjects",parser:o,isMultiple:!0},{code:97,name:"numberOfSourceBoundaryObjects",parser:o}],e$=[{code:11,name:"end",parser:s},{code:10,name:"start",parser:s}],eq=[{code:73,name:"isCCW",parser:i},{code:51,name:"endAngle",parser:o},{code:50,name:"startAngle",parser:o},{code:40,name:"radius",parser:o},{code:10,name:"center",parser:s}],eQ=[{code:73,name:"isCCW",parser:i},{code:51,name:"endAngle",parser:o},{code:50,name:"startAngle",parser:o},{code:40,name:"lengthOfMinorAxis",parser:o},{code:11,name:"end",parser:s},{code:10,name:"center",parser:s}],e0=[{code:13,name:"endTangent",parser:s},{code:12,name:"startTangent",parser:s},{code:11,name:"fitDatum",isMultiple:!0,parser:s},{code:97,name:"numberOfFitData",parser:o},{code:10,name:"controlPoints",isMultiple:!0,parser(e,r){let t={...a(r),weight:1};return 42===(e=r.next()).code?t.weight=e.value:r.rewind(),t}},{code:40,name:"knots",isMultiple:!0,parser:o},{code:96,name:"numberOfControlPoints",parser:o},{code:95,name:"numberOfKnots",parser:o},{code:74,name:"isPeriodic",parser:i},{code:73,name:"splineFlag",parser:o},{code:94,name:"degree",parser:o}],e1={[exports.BoundaryPathEdgeType.Line]:e$,[exports.BoundaryPathEdgeType.Circular]:eq,[exports.BoundaryPathEdgeType.Elliptic]:eQ,[exports.BoundaryPathEdgeType.Spline]:e0},e4=[...eJ,{code:72,name:"edges",parser(e,r){let a={type:e.value},t=n(e1[a.type]);if(!t)throw Error(`Invalid edge type ${a.type}`);return t(e=r.next(),r,a),a},isMultiple:!0},{code:93,name:"numberOfEdges",parser:o}],e2=[...eJ,{code:10,name:"vertices",parser(e,r){let t={...a(r),bulge:0};return 42===(e=r.next()).code?t.bulge=e.value:r.rewind(),t},isMultiple:!0},{code:93,name:"numberOfVertices",parser:o},{code:73,name:"isClosed",parser:i},{code:72,name:"hasBulge",parser:i}],e3=[{code:49,name:"dashLengths",parser:o,isMultiple:!0},{code:79,name:"numberOfDashLengths",parser:o},{code:45,name:"offset",parser:e7},{code:43,name:"base",parser:e7},{code:53,name:"angle",parser:o}];function e7(e,r){let a=e.code+1,t={x:e.value,y:1};return(e=r.next()).code===a?t.y=e.value:r.rewind(),t}function e5(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}const e6={extrusionDirection:{x:0,y:0,z:1},gradientRotation:0,colorTint:0},e9=[{code:470},{code:463},{code:462,name:"colorTint",parser:o},{code:461,name:"gradientDefinition",parser:o},{code:460,name:"gradientRotation",parser:o},{code:453,name:"numberOfColors",parser:o},{code:452,name:"gradientColorFlag",parser:o},{code:451},{code:450,name:"gradientFlag",parser:o},{code:10,name:"seedPoints",parser:s,isMultiple:!0},{code:99},{code:11,name:"offsetVector",parser:s},{code:98,name:"numberOfSeedPoints",parser:o},{code:47,name:"pixelSize",parser:o},{code:53,name:"definitionLines",parser:function(e,r){let a={};return n(e3)(e,r,a),a},isMultiple:!0},{code:78,name:"numberOfDefinitionLines",parser:o},{code:77,name:"isDouble",parser:i},{code:73,name:"isAnnotated",parser:i},{code:41,name:"patternScale",parser:o},{code:52,name:"patternAngle",parser:o},{code:76,name:"patternType",parser:o},{code:75,name:"hatchStyle",parser:o},{code:92,name:"boundaryPaths",parser:function(e,r){let a={boundaryPathTypeFlag:e.value},t=a.boundaryPathTypeFlag&exports.BoundaryPathTypeFlag.Polyline;return(e=r.next(),t)?n(e2)(e,r,a):n(e4)(e,r,a),a},isMultiple:!0},{code:91,name:"numberOfBoundaryPaths",parser:o},{code:71,name:"associativity",parser:o},{code:63,name:"patternFillColor",parser:o},{code:70,name:"solidFill",parser:o},{code:2,name:"patternName",parser:o},{code:210,name:"extrusionDirection",parser:s},{code:10,name:"elevationPoint",parser:s},{code:100,name:"subclassMarker",parser:o,pushContext:!0},...eA];class e8{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){e5(this,"parser",n(e9,e6))}}function re(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}e5(e8,"ForEntityName","HATCH");const rr={xScale:1,yScale:1,zScale:1,rotation:0,columnCount:0,rowCount:0,columnSpacing:0,rowSpacing:0,extrusionDirection:{x:0,y:0,z:1}},ra=[{code:210,name:"extrusionDirection",parser:s},{code:45,name:"rowSpacing",parser:o},{code:44,name:"columnSpacing",parser:o},{code:71,name:"rowCount",parser:o},{code:70,name:"columnCount",parser:o},{code:50,name:"rotation",parser:o},{code:43,name:"zScale",parser:o},{code:42,name:"yScale",parser:o},{code:41,name:"xScale",parser:o},{code:10,name:"insertionPoint",parser:s},{code:2,name:"name",parser:o},{code:66,name:"isVariableAttributes",parser:i},{code:100,name:"subclassMarker",parser:o},...eA];class rt{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){re(this,"parser",n(ra,rr))}}function rn(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}re(rt,"ForEntityName","INSERT");const ro={isArrowheadEnabled:!0},rs=[{code:213,name:"offsetFromAnnotation",parser:s},{code:212,name:"offsetFromBlock",parser:s},{code:211,name:"horizontalDirection",parser:s},{code:210,name:"normal",parser:s},{code:340,name:"associatedAnnotation",parser:o},{code:77,name:"byBlockColor",parser:o},{code:10,name:"vertices",parser:s,isMultiple:!0},{code:76,name:"numberOfVertices",parser:o},{code:41,name:"textWidth",parser:o},{code:40,name:"textHeight",parser:o},{code:75,name:"isHooklineExists",parser:i},{code:74,name:"isHooklineSameDirection",parser:i},{code:73,name:"leaderCreationFlag",parser:o},{code:72,name:"isSpline",parser:i},{code:71,name:"isArrowheadEnabled",parser:i},{code:3,name:"styleName",parser:o},{code:100,name:"subclassMarker",parser:o},...eA];class ri{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){rn(this,"parser",n(rs,ro))}}function rc(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}rn(ri,"ForEntityName","LEADER"),exports.LeaderCreationFlag=void 0,(I=exports.LeaderCreationFlag||(exports.LeaderCreationFlag={}))[I.TextAnnotation=0]="TextAnnotation",I[I.ToleranceAnnotation=1]="ToleranceAnnotation",I[I.BlockReferenceAnnotation=2]="BlockReferenceAnnotation",I[I.NoAnnotation=3]="NoAnnotation";const rd={thickness:0,extrusionDirection:{x:0,y:0,z:1}},rl=[{code:210,name:"extrusionDirection",parser:s},{code:11,name:"endPoint",parser:s},{code:10,name:"startPoint",parser:s},{code:39,name:"thickness",parser:o},{code:100,name:"subclassMarker",parser:o},...eA];class rp{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){rc(this,"parser",n(rl,rd))}}rc(rp,"ForEntityName","LINE"),exports.LWPolylineFlag=void 0,(T=exports.LWPolylineFlag||(exports.LWPolylineFlag={}))[T.IS_CLOSED=1]="IS_CLOSED",T[T.PLINE_GEN=128]="PLINE_GEN";const ru={flag:0,elevation:0,thickness:0,extrusionDirection:{x:0,y:0,z:1},vertices:[]},rm={bulge:0},rE=[{code:42,name:"bulge",parser:o},{code:41,name:"endWidth",parser:o},{code:40,name:"startWidth",parser:o},{code:91,name:"id",parser:o},{code:20,name:"y",parser:o},{code:10,name:"x",parser:o}],rh=[{code:210,name:"extrusionDirection",parser:s},{code:10,name:"vertices",isMultiple:!0,parser(e,r){let a={};return n(rE,rm)(e,r,a),a}},{code:39,name:"thickness",parser:o},{code:38,name:"elevation",parser:o},{code:43,name:"constantWidth",parser:o},{code:70,name:"flag",parser:o},{code:90,name:"numberOfVertices",parser:o},{code:100,name:"subclassMarker",parser:o},...eA];class rI{parseEntity(e,r){let a={};return n(rh,ru)(r,e,a),a}}function rT(e,r){let a={};for(let t of e){let e=r(t);null!=e&&(a[e]??(a[e]=[]),a[e].push(t))}return a}function*rf(e,r=1/0,a=1){for(let t=e;t!==r;t+=a)yield t}function rx(e){return{x:e.x??0,y:e.y??0,z:e.z??0}}function rD(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}x="LWPOLYLINE",(f="ForEntityName")in rI?Object.defineProperty(rI,f,{value:x,enumerable:!0,configurable:!0,writable:!0}):rI[f]=x,exports.MTextDrawingDirection=void 0,(D=exports.MTextDrawingDirection||(exports.MTextDrawingDirection={}))[D.LEFT_TO_RIGHT=1]="LEFT_TO_RIGHT",D[D.TOP_TO_BOTTOM=3]="TOP_TO_BOTTOM",D[D.BY_STYLE=5]="BY_STYLE";const rb={textStyle:"STANDARD",extrusionDirection:{x:0,y:0,z:1},rotation:0},rg=[{code:46,name:"annotationHeight",parser:o},{code:101,parser(e,r){!function(e){e.rewind();let r=e.next();if(101!==r.code)throw Error("Bad call for skipEmbeddedObject()");do r=e.next();while(0!==r.code);e.rewind()}(r)}},{code:50,name:"columnHeight",parser:o},{code:49,name:"columnGutter",parser:o},{code:48,name:"columnWidth",parser:o},{code:79,name:"columnAutoHeight",parser:o},{code:78,name:"columnFlowReversed",parser:o},{code:76,name:"columnCount",parser:o},{code:75,name:"columnType",parser:o},{code:441,name:"backgroundFillTransparency",parser:o},{code:63,name:"backgroundFillColor",parser:o},{code:45,name:"fillBoxScale",parser:o},{code:[...rf(430,440)],name:"backgroundColor",parser:o},{code:[...rf(420,430)],name:"backgroundColor",parser:o},{code:90,name:"backgroundFill",parser:o},{code:44,name:"lineSpacing",parser:o},{code:73,name:"lineSpacingStyle",parser:o},{code:50,name:"rotation",parser:o},{code:43},{code:42},{code:11,name:"direction",parser:s},{code:210,name:"extrusionDirection",parser:s},{code:7,name:"styleName",parser:o},{code:3,name:"text",parser:(e,r,a)=>(a._code3text=(a._code3text??"")+e.value,a._code3text+(a._code1text??"")),isMultiple:!0,isReducible:!0},{code:1,name:"text",parser:(e,r,a)=>(a._code1text=e.value,(a._code3text??"")+a._code1text)},{code:72,name:"drawingDirection",parser:o},{code:71,name:"attachmentPoint",parser:o},{code:41,name:"width",parser:o},{code:40,name:"height",parser:o},{code:10,name:"insertionPoint",parser:s},{code:100,name:"subclassMarker",parser:o},...eA];class rO{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){rD(this,"parser",n(rg,rb))}}function rS(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}rD(rO,"ForEntityName","MTEXT");const ry={thickness:0,extrusionDirection:{x:0,y:0,z:1},angle:0},rN=[{code:50,name:"angle",parser:o},{code:210,name:"extrusionDirection",parser:s},{code:39,name:"thickness",parser:o},{code:10,name:"position",parser:s},{code:100,name:"subclassMarker",parser:o},...eA];class rA{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){rS(this,"parser",n(rN,ry))}}function r_(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}rS(rA,"ForEntityName","POINT"),exports.PolylineFlag=void 0,(b=exports.PolylineFlag||(exports.PolylineFlag={}))[b.CLOSED_POLYLINE=1]="CLOSED_POLYLINE",b[b.CURVE_FIT=2]="CURVE_FIT",b[b.SPLINE_FIT=4]="SPLINE_FIT",b[b.POLYLINE_3D=8]="POLYLINE_3D",b[b.POLYGON_3D=16]="POLYGON_3D",b[b.CLOSED_POLYGON=32]="CLOSED_POLYGON",b[b.POLYFACE=64]="POLYFACE",b[b.CONTINUOUS=128]="CONTINUOUS",exports.SmoothType=void 0,(g=exports.SmoothType||(exports.SmoothType={}))[g.NONE=0]="NONE",g[g.QUADRATIC=5]="QUADRATIC",g[g.CUBIC=6]="CUBIC",g[g.BEZIER=8]="BEZIER",exports.VertexFlag=void 0,(O=exports.VertexFlag||(exports.VertexFlag={}))[O.CREATED_BY_CURVE_FIT=1]="CREATED_BY_CURVE_FIT",O[O.TANGENT_DEFINED=2]="TANGENT_DEFINED",O[O.NOT_USED=4]="NOT_USED",O[O.CREATED_BY_SPLINE_FIT=8]="CREATED_BY_SPLINE_FIT",O[O.SPLINE_CONTROL_POINT=16]="SPLINE_CONTROL_POINT",O[O.FOR_POLYLINE=32]="FOR_POLYLINE",O[O.FOR_POLYGON=64]="FOR_POLYGON",O[O.POLYFACE=128]="POLYFACE";const rL={startWidth:0,endWidth:0,bulge:0},rP=[{code:91,name:"id",parser:o},{code:[...rf(71,75)],name:"faces",isMultiple:!0,parser:o},{code:50,name:"tangentDirection",parser:o},{code:70,name:"flag",parser:o},{code:42,name:"bulge",parser:o},{code:41,name:"endWidth",parser:o},{code:40,name:"startWidth",parser:o},{code:30,name:"z",parser:o},{code:20,name:"y",parser:o},{code:10,name:"x",parser:o},{code:100,name:"subclassMarker",parser:o},{code:100},...eA];class rv{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){r_(this,"parser",n(rP,rL))}}function rC(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}r_(rv,"ForEntityName","VERTEX");const rM={thickness:0,flag:0,startWidth:0,endWidth:0,meshMVertexCount:0,meshNVertexCount:0,surfaceMDensity:0,surfaceNDensity:0,smoothType:0,extrusionDirection:{x:0,y:0,z:1},vertices:[]},rF=[{code:0,name:"vertices",isMultiple:!0,parser:(e,a)=>r(e,0,"VERTEX")?(e=a.next(),new rv().parseEntity(a,e)):t},{code:210,name:"extrusionDirection",parser:s},{code:75,name:"smoothType",parser:o},{code:74,name:"surfaceNDensity",parser:o},{code:73,name:"surfaceMDensity",parser:o},{code:72,name:"meshNVertexCount",parser:o},{code:71,name:"meshMVertexCount",parser:o},{code:41,name:"endWidth",parser:o},{code:40,name:"startWidth",parser:o},{code:70,name:"flag",parser:o},{code:39,name:"thickness",parser:o},{code:30,name:"elevation",parser:o},{code:20},{code:10},{code:66},{code:100,name:"subclassMarker",parser:o},...eA];class rR{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){rC(this,"parser",n(rF,rM))}}function rk(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}rC(rR,"ForEntityName","POLYLINE");const rw={vertices:[],backLineVertices:[]},rV=[{code:360,name:"geometrySettingHardId",parser:o},{code:12,name:"backLineVertices",isMultiple:!0,parser:s},{code:93,name:"numberOfBackLineVertices",parser:o},{code:11,name:"vertices",isMultiple:!0,parser:s},{code:92,name:"verticesCount",parser:o},{code:[63,411],name:"indicatorColor",parser:o},{code:70,name:"indicatorTransparency",parser:o},{code:41,name:"bottomHeight",parser:o},{code:40,name:"topHeight",parser:o},{code:10,name:"verticalDirection",parser:s},{code:1,name:"name",parser:o},{code:91,name:"flag",parser:o},{code:90,name:"state",parser:o},{code:100,name:"subclassMarker",parser:o},...eA];class rB{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){rk(this,"parser",n(rV,rw))}}function rH(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}rk(rB,"ForEntityName","SECTION");const rG={points:[],thickness:0,extrusionDirection:{x:0,y:0,z:1}},rU=[{code:210,name:"extrusionDirection",parser:s},{code:39,name:"thickness",parser:o},{code:[...rf(10,14)],name:"points",isMultiple:!0,parser:s},{code:100,name:"subclassMarker",parser:o},...eA];class rW{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){rH(this,"parser",n(rU,rG))}}function rY(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}rH(rW,"ForEntityName","SOLID"),exports.SplineFlag=void 0,(S=exports.SplineFlag||(exports.SplineFlag={}))[S.NONE=0]="NONE",S[S.CLOSED=1]="CLOSED",S[S.PERIODIC=2]="PERIODIC",S[S.RATIONAL=4]="RATIONAL",S[S.PLANAR=8]="PLANAR",S[S.LINEAR=16]="LINEAR";const rj={knotTolerance:1e-6,controlTolerance:1e-6,fitTolerance:1e-9,knotValues:[],controlPoints:[],fitPoints:[]},rz=[{code:11,name:"fitPoints",isMultiple:!0,parser:s},{code:10,name:"controlPoints",isMultiple:!0,parser:s},{code:41,name:"weights",isMultiple:!0,parser:o},{code:40,name:"knots",isMultiple:!0,parser:o},{code:13,name:"endTangent",parser:s},{code:12,name:"startTangent",parser:s},{code:44,name:"fitTolerance",parser:o},{code:43,name:"controlTolerance",parser:o},{code:42,name:"knotTolerance",parser:o},{code:74,name:"numberOfFitPoints",parser:o},{code:73,name:"numberOfControlPoints",parser:o},{code:72,name:"numberOfKnots",parser:o},{code:71,name:"degree",parser:o},{code:70,name:"flag",parser:o},{code:210,name:"normal",parser:s},{code:100,name:"subclassMarker",parser:o},...eA];class rX{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){rY(this,"parser",n(rz,rj))}}rY(rX,"ForEntityName","SPLINE");class rK{parseEntity(e,r){let t={};for(;"EOF"!==r;){if(0===r.code){e.rewind();break}!function(e,r,t){if("EOF"===t)return!1;switch(t.code){case 0:return!1;case 100:e.subclassMarker=t.value;break;case 10:e.viewportCenter=rx(a(r));break;case 40:e.width=t.value;break;case 41:e.height=t.value;break;case 68:e.status=t.value;break;case 69:e.viewportId=t.value;break;case 12:e.displayCenter=a(r);break;case 13:e.snapBase=a(r);break;case 14:e.snapSpacing=a(r);break;case 15:e.gridSpacing=a(r);break;case 16:e.viewDirection=rx(a(r));break;case 17:e.targetPoint=rx(a(r));break;case 42:e.perspectiveLensLength=t.value;break;case 43:e.frontClipZ=t.value;break;case 44:e.backClipZ=t.value;break;case 45:e.viewHeight=t.value;break;case 50:e.snapAngle=t.value;break;case 51:e.viewTwistAngle=t.value;break;case 72:e.circleZoomPercent=t.value;break;case 331:e.frozenLayerIds??(e.frozenLayerIds=[]),e.frozenLayerIds.push(t.value);break;case 90:e.statusBitFlags=t.value;break;case 340:e.clippingBoundaryId=t.value;break;case 1:e.sheetName=t.value;break;case 281:e.renderMode=t.value;break;case 71:e.ucsPerViewport=t.value;break;case 110:e.ucsOrigin=rx(a(r));break;case 111:e.ucsXAxis=rx(a(r));break;case 112:e.ucsYAxis=rx(a(r));break;case 345:e.ucsId=t.value;break;case 346:e.ucsBaseId=t.value;break;case 79:e.orthographicType=t.value;break;case 146:e.elevation=t.value;break;case 170:e.shadePlotMode=t.value;break;case 61:e.majorGridFrequency=t.value;break;case 332:e.backgroundId=t.value;break;case 333:e.shadePlotId=t.value;break;case 348:e.visualStyleId=t.value;break;case 292:e.isDefaultLighting=!!t.value;break;case 282:e.defaultLightingType=t.value;break;case 141:e.brightness=t.value;break;case 142:e.contrast=t.value;break;case 63:case 421:case 431:e.ambientLightColor=t.value;break;case 361:e.sunId=t.value;break;case 335:case 343:case 344:case 91:e.softPointer=t.value}return!0}(t,e,r)&&eS(t,r,e),r=e.next()}return t}}function rZ(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}N="VIEWPORT",(y="ForEntityName")in rK?Object.defineProperty(rK,y,{value:N,enumerable:!0,configurable:!0,writable:!0}):rK[y]=N,(A=ep||(ep={}))[A.INVISIBLE=1]="INVISIBLE",A[A.CONSTANT=2]="CONSTANT",A[A.REQUIRE_VERIFICATION=4]="REQUIRE_VERIFICATION",A[A.PRESET=8]="PRESET";const rJ={thickness:0,rotation:0,scale:1,obliqueAngle:0,textStyle:"STANDARD",textGenerationFlag:0,horizontalJustification:0,verticalJustification:0,extrusionDirection:{x:0,y:0,z:1}},r$=[...rg.slice(rg.findIndex(({name:e})=>"columnType"===e),rg.findIndex(({name:e})=>"subclassMarker"===e)+1),{code:100},{code:0,parser(e){if(!r(e,0,"MTEXT"))return t}},{code:2,name:"definitionTag",parser:o},{code:40,name:"annotationScale",parser:o},{code:10,name:"alignmentPoint",parser:s},{code:340,name:"secondaryAttributesHardId",parser:o},{code:70,name:"numberOfSecondaryAttributes",parser:o},{code:70,name:"isReallyLocked",parser:i},{code:70,name:"mtextFlag",parser:o},{code:280,name:"isDuplicatedEntriesKeep",parser:i},{code:100},{code:280,name:"lockPositionFlag",parser:i},{code:210,name:"extrusionDirection",parser:s},{code:11,name:"alignmentPoint",parser:s},{code:74,name:"verticalJustification",parser:o},{code:72,name:"horizontalJustification",parser:o},{code:71,name:"textGenerationFlag",parser:o},{code:7,name:"textStyle",parser:o},{code:51,name:"obliqueAngle",parser:o},{code:41,name:"scale",parser:o},{code:50,name:"rotation",parser:o},{code:73},{code:70,name:"attributeFlag",parser:o},{code:2,name:"tag",parser:o},{code:280},{code:100,name:"subclassMarker",parser:o},{code:1,name:"text",parser:o},{code:40,name:"textHeight",parser:o},{code:10,name:"startPoint",parser:s},{code:39,name:"thickness",parser:o},{code:100},...eA];class rq{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){rZ(this,"parser",n(r$,rJ))}}function rQ(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}rZ(rq,"ForEntityName","ATTRIB"),(_=eu||(eu={}))[_.ShowImage=1]="ShowImage",_[_.ShowImageWhenNotAlignedWithScreen=2]="ShowImageWhenNotAlignedWithScreen",_[_.UseClippingBoundary=4]="UseClippingBoundary",_[_.TransparencyIsOn=8]="TransparencyIsOn",(L=em||(em={}))[L.Rectangular=1]="Rectangular",L[L.Polygonal=2]="Polygonal",(P=eE||(eE={}))[P.Outside=0]="Outside",P[P.Inside=1]="Inside";const r0={brightness:50,contrast:50,fade:0,clippingBoundaryPath:[]},r1=[{code:290,name:"clipMode",parser:o},{code:14,name:"clippingBoundaryPath",isMultiple:!0,parser:s},{code:91,name:"countBoundaryPoints",parser:o},{code:71,name:"clippingBoundaryType",parser:o},{code:360,name:"imageDefReactorHandle",parser:o},{code:283,name:"fade",parser:o},{code:282,name:"contrast",parser:o},{code:281,name:"brightness",parser:o},{code:280,name:"isClipped",parser:i},{code:70,name:"flags",parser:o},{code:340,name:"imageDefHandle",parser:o},{code:13,name:"imageSize",parser:s},{code:12,name:"vPixel",parser:s},{code:11,name:"uPixel",parser:s},{code:10,name:"position",parser:s},{code:90,name:"version",parser:o},{code:100,name:"subclassMarker",parser:o},...eA];class r4{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){rQ(this,"parser",n(r1,r0))}}rQ(r4,"ForEntityName","IMAGE");const r2=Object.fromEntries([eC,eH,rq,eY,ej,eZ,r4,rt,ri,rp,rI,rO,rA,rR,rB,rW,rX,ek,e8,rK].map(e=>[e.ForEntityName,new e]));function r3(e,a){let t=[];for(;!r(e,0,"EOF");){if(0===e.code){if("ENDBLK"===e.value||"ENDSEC"===e.value){a.rewind();break}let r=r2[e.value];if(r){let n=e.value;e=a.next();let o=r.parseEntity(a,e);o.type=n,eN(o),t.push(o)}else console.warn(`Unsupported ENTITY type: ${e.value}`)}e=a.next()}return t}function r7(e,a){let t={};for(;!r(e,0,"EOF")&&!r(e,0,"ENDSEC");){if(r(e,0,"BLOCK")){let r=r5(e=a.next(),a);eN(r),r.name&&(t[r.name]=r)}e=a.next()}return t}function r5(e,t){let n={};for(;!r(e,0,"EOF");){if(r(e,0,"ENDBLK")){for(e=t.next();!r(e,0,"EOF");){if(r(e,100,"AcDbBlockEnd"))return n;e=t.next()}break}switch(e.code){case 1:n.xrefPath=e.value;break;case 2:n.name=e.value;break;case 3:n.name2=e.value;break;case 5:n.handle=e.value;break;case 8:n.layer=e.value;break;case 10:n.position=a(t);break;case 67:n.paperSpace=!!e.value&&1==e.value;break;case 70:0!==e.value&&(n.type=e.value);break;case 100:break;case 330:n.ownerHandle=e.value;break;case 0:n.entities=r3(e,t)}e=t.next()}return n}function r6(e,t){let n=null,o={};for(;!r(e,0,"EOF")&&!r(e,0,"ENDSEC");)9===e.code?n=e.value:10===e.code?o[n]=a(t):o[n]=e.value,e=t.next();return o}const r9=[{code:333,name:"shadePlotId",parser:o},{code:149,name:"imageOriginY",parser:o},{code:148,name:"imageOriginX",parser:o},{code:147,name:"scaleFactor",parser:o},{code:78,name:"shadePlotCustomDPI",parser:o},{code:77,name:"shadePlotResolution",parser:o},{code:76,name:"shadePlotMode",parser:o},{code:75,name:"standardScaleType",parser:o},{code:7,name:"currentStyleSheet",parser:o},{code:74,name:"plotType",parser:o},{code:73,name:"plotRotation",parser:o},{code:72,name:"paperUnit",parser:o},{code:70,name:"layoutFlag",parser:o},{code:143,name:"printScaleDenominator",parser:o},{code:142,name:"printScaleNominator",parser:o},{code:141,name:"windowAreaYMax",parser:o},{code:140,name:"windowAreaYMin",parser:o},{code:49,name:"windowAreaXMax",parser:o},{code:48,name:"windowAreaXMin",parser:o},{code:47,name:"plotOriginY",parser:o},{code:46,name:"plotOriginX",parser:o},{code:45,name:"paperHeight",parser:o},{code:44,name:"paperWidth",parser:o},{code:43,name:"marginTop",parser:o},{code:42,name:"marginRight",parser:o},{code:41,name:"marginBottom",parser:o},{code:40,name:"marginLeft",parser:o},{code:6,name:"plotViewName",parser:o},{code:4,name:"paperSize",parser:o},{code:2,name:"configName",parser:o},{code:1,name:"pageSetupName",parser:o},{code:100,name:"subclassMarker",parser:o}];(v=eh||(eh={}))[v.INCHES=0]="INCHES",v[v.MILLIMETERS=1]="MILLIMETERS",v[v.PIXELS=2]="PIXELS",(C=eI||(eI={}))[C.LAST_SCREEN_DISPLAY=0]="LAST_SCREEN_DISPLAY",C[C.DRAWING_EXTENTS=1]="DRAWING_EXTENTS",C[C.DRAWING_LIMITS=2]="DRAWING_LIMITS",C[C.VIEW_SPECIFIED=3]="VIEW_SPECIFIED",C[C.WINDOW_SPECIFIED=4]="WINDOW_SPECIFIED",C[C.LAYOUT_INFORMATION=5]="LAYOUT_INFORMATION",(M=eT||(eT={}))[M.AS_DISPLAYED=0]="AS_DISPLAYED",M[M.WIREFRAME=1]="WIREFRAME",M[M.HIDDEN=2]="HIDDEN",M[M.RENDERED=3]="RENDERED",(F=ef||(ef={}))[F.DRAFT=0]="DRAFT",F[F.PREVIEW=1]="PREVIEW",F[F.NORMAL=2]="NORMAL",F[F.PRESENTATION=3]="PRESENTATION",F[F.MAXIMUM=4]="MAXIMUM",F[F.CUSTOM=5]="CUSTOM";const r8=[{code:333,name:"shadePlotId",parser:o},{code:346,name:"orthographicUcsId",parser:o},{code:345,name:"namedUcsId",parser:o},{code:331,name:"viewportId",parser:o},{code:330,name:"paperSpaceTableId",parser:o},{code:76,name:"orthographicType",parser:o},{code:17,name:"ucsYAxis",parser:s},{code:16,name:"ucsXAxis",parser:s},{code:13,name:"ucsOrigin",parser:s},{code:146,name:"elevation",parser:o},{code:15,name:"maxExtent",parser:s},{code:14,name:"minExtent",parser:s},{code:12,name:"insertionBase",parser:s},{code:11,name:"maxLimit",parser:s},{code:10,name:"minLimit",parser:s},{code:71,name:"tabOrder",parser:o},{code:70,name:"controlFlag",parser:o},{code:1,name:"layoutName",parser:o},{code:100,name:"subclassMarker",parser:o},...r9];(R=ex||(ex={}))[R.PSLTSCALE=1]="PSLTSCALE",R[R.LIMCHECK=2]="LIMCHECK";const ae=[{code:330,name:"ownerObjectId",parser:o},{code:102},{code:360,name:"ownerDictionaryIdHard",parser:o},{code:102},{code:102},{code:330,name:"ownerDictionaryIdSoft",parser:o},{code:102},{code:102},{code:102},{code:5,name:"handle",parser:o}],ar=[{code:3,name:"entries",parser:(e,r)=>{let a={name:e.value};return 350===(e=r.next()).code?a.objectId=e.value:r.rewind(),a},isMultiple:!0},{code:281,name:"recordCloneFlag",parser:o},{code:280,name:"isHardOwned",parser:i},{code:100,name:"subclassMarker",parser:o}];function aa(e){return"AcDbDictionary"===e.subclassMarker}(k=eD||(eD={}))[k.NOT_APPLICABLE=0]="NOT_APPLICABLE",k[k.KEEP_EXISTING=1]="KEEP_EXISTING",k[k.USE_CLONE=2]="USE_CLONE",k[k.XREF_VALUE_NAME=3]="XREF_VALUE_NAME",k[k.VALUE_NAME=4]="VALUE_NAME",k[k.UNMANGLE_NAME=5]="UNMANGLE_NAME";const at={LAYOUT:r8,PLOTSETTINGS:r9,DICTIONARY:ar};function an(e,r){let a=[];for(;0!==e.code||!["EOF","ENDSEC"].includes(e.value);){let t=e.value,o=at[t];if(0===e.code&&o?.length){let s=n([...ae,...o]),i={name:t};s(e=r.next(),r,i)?(a.push(i),e=r.peek()):e=r.next()}else e=r.next()}return{byName:rT(a,({name:e})=>e),byTree:function(e){let r=Object.fromEntries(e.map(e=>[e.handle,e]));for(let a of e)(!aa(a)||"0"!==a.ownerDictionaryIdSoft)&&(a.ownerDictionaryIdSoft&&(a.ownerDictionarySoft=r[a.ownerDictionaryIdSoft]),a.ownerDictionaryIdHard&&(a.ownerDictionaryHard=r[a.ownerDictionaryIdHard]),a.ownerObjectId&&(a.ownerObject=r[a.ownerObjectId])),function(e,r){aa(e)&&e.entries&&(e.entries=Object.fromEntries(e.entries.map(({name:e,objectId:a})=>[e,r[a]])))}(a,r);return e[0]}(a)}}const ao=[{code:100,name:"subclassMarker",parser:o},{code:330,name:"ownerObjectId",parser:o},{code:102,parser(e,a){for(;!r(e,0,"EOF")&&!r(e,102,"}");)e=a.next()}},{code:5,name:"handle",parser:o}],as=n([{code:310,name:"bmpPreview",parser:o},{code:281,name:"scalability",parser:o},{code:280,name:"explodability",parser:o},{code:70,name:"insertionUnits",parser:o},{code:340,name:"layoutObjects",parser:o},{code:2,name:"name",parser:o},{code:100,name:"subclassMarker",parser:o},...ao]),ai=n([...[{name:"DIMPOST",code:3},{name:"DIMAPOST",code:4},{name:"DIMBLK_OBSOLETE",code:5},{name:"DIMBLK1_OBSOLETE",code:6},{name:"DIMBLK2_OBSOLETE",code:7},{name:"DIMSCALE",code:40,defaultValue:1},{name:"DIMASZ",code:41,defaultValue:.25},{name:"DIMEXO",code:42,defaultValue:.625,defaultValueImperial:.0625},{name:"DIMDLI",code:43,defaultValue:3.75,defaultValueImperial:.38},{name:"DIMEXE",code:44,defaultValue:2.25,defaultValueImperial:.28},{name:"DIMRND",code:45,defaultValue:0},{name:"DIMDLE",code:46,defaultValue:0},{name:"DIMTP",code:47,defaultValue:0},{name:"DIMTM",code:48,defaultValue:0},{name:"DIMTXT",code:140,defaultValue:2.5,defaultValueImperial:.28},{name:"DIMCEN",code:141,defaultValue:2.5,defaultValueImperial:.09},{name:"DIMTSZ",code:142,defaultValue:0},{name:"DIMALTF",code:143,defaultValue:25.4},{name:"DIMLFAC",code:144,defaultValue:1},{name:"DIMTVP",code:145,defaultValue:0},{name:"DIMTFAC",code:146,defaultValue:1},{name:"DIMGAP",code:147,defaultValue:.625,defaultValueImperial:.09},{name:"DIMALTRND",code:148,defaultValue:0},{name:"DIMTOL",code:71,defaultValue:0,defaultValueImperial:1},{name:"DIMLIM",code:72,defaultValue:0},{name:"DIMTIH",code:73,defaultValue:0,defaultValueImperial:1},{name:"DIMTOH",code:74,defaultValue:0,defaultValueImperial:1},{name:"DIMSE1",code:75,defaultValue:0},{name:"DIMSE2",code:76,defaultValue:0},{name:"DIMTAD",code:77,defaultValue:exports.DimensionTextVertical.Above,defaultValueImperial:exports.DimensionTextVertical.Center},{name:"DIMZIN",code:78,defaultValue:exports.DimensionZeroSuppression.Trailing,defaultValueImperial:exports.DimensionZeroSuppression.Feet},{name:"DIMAZIN",code:79,defaultValue:exports.DimensionZeroSuppressionAngular.None},{name:"DIMALT",code:170,defaultValue:0},{name:"DIMALTD",code:171,defaultValue:3,defaultValueImperial:2},{name:"DIMTOFL",code:172,defaultValue:1,defaultValueImperial:0},{name:"DIMSAH",code:173,defaultValue:0},{name:"DIMTIX",code:174,defaultValue:0},{name:"DIMSOXD",code:175,defaultValue:0},{name:"DIMCLRD",code:176,defaultValue:0},{name:"DIMCLRE",code:177,defaultValue:0},{name:"DIMCLRT",code:178,defaultValue:0},{name:"DIMADEC",code:179},{name:"DIMUNIT",code:270},{name:"DIMDEC",code:271,defaultValue:2,defaultValueImperial:4},{name:"DIMTDEC",code:272,defaultValue:2,defaultValueImperial:4},{name:"DIMALTU",code:273,defaultValue:2},{name:"DIMALTTD",code:274,defaultValue:2,defaultValueImperial:4},{name:"DIMAUNIT",code:275,defaultValue:0},{name:"DIMFRAC",code:276,defaultValue:0},{name:"DIMLUNIT",code:277,defaultValue:2},{name:"DIMDSEP",code:278,defaultValue:",",defaultValueImperial:"."},{name:"DIMJUST",code:280,defaultValue:exports.DimensionTextHorizontal.Center},{name:"DIMSD1",code:281,defaultValue:0},{name:"DIMSD2",code:282,defaultValue:0},{name:"DIMTOLJ",code:283,defaultValue:exports.DimensionToleranceTextVertical.Center},{name:"DIMTZIN",code:284,defaultValue:exports.DimensionZeroSuppression.Trailing,defaultValueImperial:exports.DimensionZeroSuppression.Feet},{name:"DIMALTZ",code:285,defaultValue:exports.DimensionZeroSuppression.Trailing},{name:"DIMALTTZ",code:286,defaultValue:exports.DimensionZeroSuppression.Trailing},{name:"DIMFIT",code:287},{name:"DIMUPT",code:288,defaultValue:0},{name:"DIMATFIT",code:289,defaultValue:3},{name:"DIMTXSTY",code:340},{name:"DIMLDRBLK",code:341},{name:"DIMBLK",code:342},{name:"DIMBLK1",code:343},{name:"DIMBLK2",code:344},{name:"DIMLWD",code:371,defaultValue:-2},{name:"DIMLWD",code:372,defaultValue:-2}].map(e=>({...e,parser:o})),{code:70,name:"standardFlag",parser:o},{code:2,name:"name",parser:o},{code:100,name:"subclassMarker",parser:o},{code:105,name:"handle",parser:o},...ao.filter(e=>5!==e.code)]),ac=n([{code:347,name:"materialObjectId",parser:o},{code:390,name:"plotStyleNameObjectId",parser:o},{code:370,name:"lineweight",parser:o},{code:290,name:"isPlotting",parser:i},{code:6,name:"lineType",parser:o},{code:62,name:"colorIndex",parser:o},{code:70,name:"standardFlag",parser:o},{code:2,name:"name",parser:o},{code:100,name:"subclassMarker",parser:o},...ao]),ad=n([{code:9,name:"text",parser:o},{code:45,name:"offsetY",parser:o},{code:44,name:"offsetX",parser:o},{code:50,name:"rotation",parser:o},{code:46,name:"scale",parser:o},{code:340,name:"styleObjectId",parser:o},{code:75,name:"shapeNumber",parser:o},{code:74,name:"elementTypeFlag",parser:o},{code:49,name:"elementLength",parser:o}],{elementTypeFlag:0,elementLength:0}),al={BLOCK_RECORD:as,DIMSTYLE:ai,LAYER:ac,LTYPE:n([{code:49,name:"pattern",parser(e,r){let a={};return ad(e,r,a),a},isMultiple:!0},{code:40,name:"totalPatternLength",parser:o},{code:73,name:"numberOfLineTypes",parser:o},{code:72,parser:o},{code:3,name:"description",parser:o},{code:70,name:"standardFlag",parser:o},{code:2,name:"name",parser:o},{code:100,name:"subclassMarker",parser:o},...ao]),STYLE:n([{code:1e3,name:"extendedFont",parser:o},{code:1001},{code:4,name:"bigFont",parser:o},{code:3,name:"font",parser:o},{code:42,name:"lastHeight",parser:o},{code:71,name:"textGenerationFlag",parser:o},{code:50,name:"obliqueAngle",parser:o},{code:41,name:"widthFactor",parser:o},{code:40,name:"fixedTextHeight",parser:o},{code:70,name:"standardFlag",parser:o},{code:2,name:"name",parser:o},{code:100,name:"subclassMarker",parser:o},...ao]),VPORT:n([{code:[63,421,431],name:"ambientColor",parser:o},{code:142,name:"contrast",parser:o},{code:141,name:"brightness",parser:o},{code:282,name:"defaultLightingType",parser:o},{code:292,name:"isDefaultLightingOn",parser:i},{code:348,name:"visualStyleObjectId",parser:o},{code:333,name:"shadePlotObjectId",parser:o},{code:332,name:"backgroundObjectId",parser:o},{code:61,name:"majorGridLines",parser:o},{code:170,name:"shadePlotSetting",parser:o},{code:146,name:"elevation",parser:o},{code:79,name:"orthographicType",parser:o},{code:112,name:"ucsYAxis",parser:s},{code:111,name:"ucsXAxis",parser:s},{code:110,name:"ucsOrigin",parser:s},{code:74,name:"ucsIconSetting",parser:o},{code:71,name:"viewMode",parser:o},{code:281,name:"renderMode",parser:o},{code:1,name:"styleSheet",parser:o},{code:[331,441],name:"frozenLayers",parser:o,isMultiple:!0},{code:72,name:"circleSides",parser:o},{code:51,name:"viewTwistAngle",parser:o},{code:50,name:"snapRotationAngle",parser:o},{code:45,name:"viewHeight",parser:o},{code:44,name:"backClippingPlane",parser:o},{code:43,name:"frontClippingPlane",parser:o},{code:42,name:"lensLength",parser:o},{code:17,name:"viewTarget",parser:s},{code:16,name:"viewDirectionFromTarget",parser:s},{code:15,name:"gridSpacing",parser:s},{code:14,name:"snapSpacing",parser:s},{code:13,name:"snapBasePoint",parser:s},{code:12,name:"center",parser:s},{code:11,name:"upperRightCorner",parser:s},{code:10,name:"lowerLeftCorner",parser:s},{code:70,name:"standardFlag",parser:o},{code:2,name:"name",parser:o},{code:100,name:"subclassMarker",parser:o},...ao])},ap=n([{code:70,name:"maxNumberOfEntries",parser:o},{code:100,name:"subclassMarker",parser:o},{code:330,name:"ownerObjectId",parser:o},{code:102},{code:360,isMultiple:!0},{code:102},{code:5,name:"handle",parser:o},{code:2,name:"name",parser:o}]);function au(e,a){let t={};for(;!r(e,0,"EOF")&&!r(e,0,"ENDSEC");){if(r(e,0,"TABLE")){e=a.next();let r={entries:[]};ap(e,a,r),t[r.name]=r}if(r(e,0)&&!r(e,0,"ENDTAB")){let r=e.value;e=a.next();let n=al[r];if(!n){console.warn(`parseTable: Invalid table name '${r}'`),e=a.next();continue}let o={};n(e,a,o),t[r]?.entries.push(o)}e=a.next()}return t}function am(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}class aE{next(){if(!this.hasNext())return this._eof?console.warn("Cannot call 'next' after EOF group has been read"):console.warn("Unexpected end of input: EOF group not read before end of file. Ended on code "+this._data[this._pointer]),{code:0,value:"EOF"};let e=parseInt(this._data[this._pointer++],10),a=ah(e,this._data[this._pointer++]),t={code:e,value:a};return r(t,0,"EOF")&&(this._eof=!0),this.lastReadGroup=t,t}peek(){if(!this.hasNext()){if(this._eof)throw Error("Cannot call 'next' after EOF group has been read");throw Error("Unexpected end of input: EOF group not read before end of file. Ended on code "+this._data[this._pointer])}let e={code:parseInt(this._data[this._pointer]),value:0};return e.value=ah(e.code,this._data[this._pointer+1]),e}rewind(e){e=e||1,this._pointer=this._pointer-2*e}hasNext(){return!this._eof&&!(this._pointer>this._data.length-2)}isEOF(){return this._eof}constructor(e){am(this,"_pointer",void 0),am(this,"_data",void 0),am(this,"_eof",void 0),am(this,"lastReadGroup",{code:0,value:0}),this._pointer=0,this._data=e,this._eof=!1}}function ah(e,r){return e<=9?r:e>=10&&e<=59?parseFloat(r.trim()):e>=60&&e<=99?parseInt(r.trim()):e>=100&&e<=109?r:e>=110&&e<=149?parseFloat(r.trim()):e>=160&&e<=179?parseInt(r.trim()):e>=210&&e<=239?parseFloat(r.trim()):e>=270&&e<=289?parseInt(r.trim()):e>=290&&e<=299?function(e){if("0"===e)return!1;if("1"===e)return!0;throw TypeError("String '"+e+"' cannot be cast to Boolean type")}(r.trim()):e>=300&&e<=369?r:e>=370&&e<=389?parseInt(r.trim()):e>=390&&e<=399?r:e>=400&&e<=409?parseInt(r.trim()):e>=410&&e<=419?r:e>=420&&e<=429?parseInt(r.trim()):e>=430&&e<=439?r:e>=440&&e<=459?parseInt(r.trim()):e>=460&&e<=469?parseFloat(r.trim()):e>=470&&e<=481||999===e||e>=1e3&&e<=1009?r:e>=1010&&e<=1059?parseFloat(r.trim()):e>=1060&&e<=1071?parseInt(r.trim()):(console.log("WARNING: Group code does not have a defined type: %j",{code:e,value:r}),r)}function aI(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}class aT{parseStart(e){this.startCode=e.code}setPoint(e){if(this.code=e.code,this.value=e.value,this.startCode===this.code&&(this.x=this.value),this.startCode===this.code+10)this.y=this.value;else{let e={x:this.x??0,y:this.y??0,z:this.z??0};return this.reset(),e}if(this.startCode===this.code+20)this.z=this.value;else{let e={x:this.x??0,y:this.y??0,z:this.z??0};return this.reset(),e}}reset(){this.x=void 0,this.y=void 0,this.z=void 0}constructor(){aI(this,"point",{}),aI(this,"startCode",0),aI(this,"code",0),aI(this,"value",0),aI(this,"x",void 0),aI(this,"y",void 0),aI(this,"z",void 0)}}function af(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}class ax{constructor(){af(this,"encoding","utf-8"),af(this,"encodingFailureFatal",!1)}}class aD extends Error{constructor(e,r,a){let t=`[Line ${r}]: ${e}`;a?.cause&&(t+=`
|
|
2
2
|
Caused by ${a.cause.toString()}
|
|
3
|
-
${a.cause.stack}`),super(t),
|
|
3
|
+
${a.cause.stack}`),super(t),af(this,"line",void 0),this.line=r}}class ab extends EventTarget{Feed(e,r=!1){let a=this._decoder.decode(e??void 0,{stream:!r});this.FeedString(a,r)}FeedString(e,r=!1){if(this._finalChunkSeen)throw Error("Data fed after final chunk processed");r&&(this._finalChunkSeen=!0),this._curChunk+=e,this._ProcessCurChunk(),r&&this._Finalize()}_Finalize(){}async FeedFile(e,r){let a=e.byteLength;for(let t=0;t<a;t+=65536){r?.throwIfAborted();let n=Math.min(a-t,65536),o=await e.slice(t,t+n);this.Feed(o,t+n>=a)}}_ProcessCurChunk(){for(let e of this._ConsumeCurChunkLines())if(this._ProcessLine(e),this._curLineNum++,!this._eof&&"HEADER"===this._curSection){let e=this._curValue.value;9===this._curValue.code?this._currVarName=e:10===this._curValue.code?this._pointParser.parseStart(this._curValue):this._pointParser.startCode===this._curValue.code||this._pointParser.startCode+10===this._curValue.code||this._pointParser.startCode+20===this._curValue.code?e=this._pointParser.setPoint(this._curValue):this._currVarName&&(this.dxf.header[this._currVarName]=e)}}*_ConsumeCurChunkLines(){let e=0,r=this._curChunk.length;for(;e<r;){let a=this._curChunk.indexOf("\r",e),t=0;if(a>=0?(t=a+1)<r&&"\n"==this._curChunk.charAt(t)&&t++:(a=this._curChunk.indexOf("\n",e))>=0&&(t=a+1),a<0)break;yield this._curChunk.substring(e,a),e=t}0!=e&&(this._curChunk=this._curChunk.substring(e))}_ProcessLine(e){if(null===this._curGroupCode){let r=e.trim();this._curGroupCode=parseInt(r),isNaN(this._curGroupCode)&&this._Error("Bad group code: "+r);return}let a=new ag(this._curGroupCode,e);if(!r(a,0,"EOF")){switch(a.value){case"SECTION":this._curSection="SECTION";break;case"HEADER":this._curSection="HEADER";break;case"BLOCKS":this._curSection="BLOCKS";break;case"ENTITIES":this._curSection="ENTITIES";break;case"TABLES":this._curSection="TABLES";break;case"OBJECTS":this._curSection="OBJECTS"}this._eof=!1}r(a,0,"EOF")&&(this._eof=!0),this._curValue=a,this._curGroupCode=null}_Error(e,r=null){let a;throw r&&(a={cause:r}),new aD(e,this._curLineNum,a)}constructor(e=new ax){super(),af(this,"dxf",{header:{},blocks:{},entities:[],tables:{},objects:{byName:{},byTree:void 0}}),af(this,"_decoder",void 0),af(this,"_pointParser",void 0),af(this,"_finalChunkSeen",!1),af(this,"_curChunk",""),af(this,"_curGroupCode",null),af(this,"_curLineNum",1),af(this,"_eof",!1),af(this,"_curValue",{code:0,value:0}),af(this,"_curSection",""),af(this,"_currVarName",""),this._decoder=new TextDecoder(e.encoding,{fatal:e.encodingFailureFatal}),this._pointParser=new aT}}class ag{constructor(e,r){af(this,"code",void 0),af(this,"value",void 0),this.code=e,this.value=ah(e,r)}}function aO(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}class aS{constructor(){aO(this,"encoding","utf-8"),aO(this,"encodingFailureFatal",!1)}}class ay extends EventTarget{parseSync(e){let r=new aE(e.split(/\r\n|\r|\n/g));if(!r.hasNext())throw Error("Empty file");return this.parseAll(r)}parseStream(e){let r="",a=this;return new Promise((t,n)=>{e.on("data",e=>{r+=e}),e.on("end",()=>{try{let e=r.split(/\r\n|\r|\n/g),n=new aE(e);if(!n.hasNext())throw Error("Empty file");t(a.parseAll(n))}catch(e){n(e)}}),e.on("error",e=>{n(e)})})}async parseFromUrl(e,r){let a=await fetch(e,r);if(!a.body)return null;let t=a.body.getReader(),n="";for(;;){let{done:e,value:r}=await t.read();if(e){n+=this._decoder.decode(new ArrayBuffer(0),{stream:!1});break}n+=this._decoder.decode(r,{stream:!0})}return this.parseSync(n)}parseAll(e){let a={header:{},blocks:{},entities:[],tables:{},objects:{byName:{},byTree:void 0}},t=e.next();for(;!r(t,0,"EOF");)r(t,0,"SECTION")&&(r(t=e.next(),2,"HEADER")?(t=e.next(),a.header=r6(t,e)):r(t,2,"BLOCKS")?(t=e.next(),a.blocks=r7(t,e)):r(t,2,"ENTITIES")?(t=e.next(),a.entities=r3(t,e)):r(t,2,"TABLES")?(t=e.next(),a.tables=au(t,e)):r(t,2,"OBJECTS")&&(t=e.next(),a.objects=an(t,e))),t=e.next();return a}constructor(e=new aS){super(),aO(this,"_decoder",void 0),this._decoder=new TextDecoder(e.encoding,{fatal:e.encodingFailureFatal})}}exports.ArcEntityParser=eC,exports.AttDefEntityParser=eH,exports.CircleEntityParser=eY,exports.CommonEntitySnippets=eA,exports.DefaultDxfHeaderVariables=e,exports.DefaultTextEntity=eF,exports.DxfParsingError=aD,exports.DxfStreamParser=ab,exports.DxfStreamParserOptions=ax,exports.EllipseEntityParser=eZ,exports.HatchEntityParser=e8,exports.INDEXED_CHUNK_SIZE=65536,exports.InsertEntityParser=rt,exports.LWPolylineParser=rI,exports.LeaderEntityParser=ri,exports.LineEntityParser=rp,exports.MTextEntityParser=rO,exports.MTextEntityParserSnippets=rg,exports.PointEntityParser=rA,exports.PolylineParser=rR,exports.SPLINE_SUBDIVISION=4,exports.SectionEntityParser=rB,exports.SolidEntityParser=rW,exports.SplineEntityParser=rX,exports.TESSELLATION_ANGLE=Math.PI/24,exports.TextEntityParser=ek,exports.TextEntityParserSnippets=eR,exports.UndeterminedBlockColor=-1,exports.VertexParser=rv,exports.classify=rT,exports.default=ay,exports.ensureHandle=eN,exports.ensurePoint3D=rx,exports.generateIntegers=rf,exports.isMatched=r,exports.parseBlock=r5,exports.parseBlocks=r7,exports.parseEntities=r3,exports.parseHeader=r6,exports.parseObjects=an,exports.parseTables=au,exports.skipApplicationGroups=e_;
|
package/dist/bundle.mjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
(V=ep||(ep={}))[V.None=0]="None",V[V.Anonymous=1]="Anonymous",V[V.NonConstant=2]="NonConstant",V[V.Xref=4]="Xref",V[V.XrefOverlay=8]="XrefOverlay",V[V.ExternallyDependent=16]="ExternallyDependent",V[V.ResolvedOrDependent=32]="ResolvedOrDependent",V[V.ReferencedXref=64]="ReferencedXref",(B=em||(em={}))[B.BYBLOCK=0]="BYBLOCK",B[B.BYLAYER=256]="BYLAYER";let e=-1,a=4,r=Math.PI/24;(H=eE||(eE={}))[H.Rotated=0]="Rotated",H[H.Aligned=1]="Aligned",H[H.Angular=2]="Angular",H[H.Diameter=3]="Diameter",H[H.Radius=4]="Radius",H[H.Angular3Point=5]="Angular3Point",H[H.Ordinate=6]="Ordinate",H[H.ReferenceIsExclusive=32]="ReferenceIsExclusive",H[H.IsOrdinateXTypeFlag=64]="IsOrdinateXTypeFlag",H[H.IsCustomTextPositionFlag=128]="IsCustomTextPositionFlag",(G=eI||(eI={}))[G.TopLeft=1]="TopLeft",G[G.TopCenter=2]="TopCenter",G[G.TopRight=3]="TopRight",G[G.MiddleLeft=4]="MiddleLeft",G[G.MiddleCenter=5]="MiddleCenter",G[G.MiddleRight=6]="MiddleRight",G[G.BottomLeft=7]="BottomLeft",G[G.BottomCenter=8]="BottomCenter",G[G.BottomRight=9]="BottomRight",(U=eh||(eh={}))[U.AtLeast=1]="AtLeast",U[U.Exact=2]="Exact",(Y=ef||(ef={}))[Y.Center=0]="Center",Y[Y.Above=1]="Above",Y[Y.Outside=2]="Outside",Y[Y.JIS=3]="JIS",Y[Y.Below=4]="Below",(W=eb||(eb={}))[W.Feet=0]="Feet",W[W.None=1]="None",W[W.Inch=2]="Inch",W[W.FeetAndInch=3]="FeetAndInch",W[W.Leading=4]="Leading",W[W.Trailing=8]="Trailing",W[W.LeadingAndTrailing=12]="LeadingAndTrailing",(j=eT||(eT={}))[j.None=0]="None",j[j.Leading=1]="Leading",j[j.Trailing=2]="Trailing",j[j.LeadingAndTrailing=3]="LeadingAndTrailing",(X=eD||(eD={}))[X.Center=0]="Center",X[X.Left=1]="Left",X[X.Right=2]="Right",X[X.OverFirst=3]="OverFirst",X[X.OverSecond=4]="OverSecond",(z=eO||(eO={}))[z.Bottom=0]="Bottom",z[z.Center=1]="Center",z[z.Top=2]="Top",(K=eS||(eS={}))[K.PatternFill=0]="PatternFill",K[K.SolidFill=1]="SolidFill",(Z=eN||(eN={}))[Z.NonAssociative=0]="NonAssociative",Z[Z.Associative=1]="Associative",(J=eg||(eg={}))[J.Normal=0]="Normal",J[J.Outer=1]="Outer",J[J.Ignore=2]="Ignore",($=e_||(e_={}))[$.UserDefined=0]="UserDefined",$[$.Predefined=1]="Predefined",$[$.Custom=2]="Custom",(q=eL||(eL={}))[q.NotAnnotated=0]="NotAnnotated",q[q.Annotated=1]="Annotated",(Q=eA||(eA={}))[Q.Solid=0]="Solid",Q[Q.Gradient=1]="Gradient",(ee=ey||(ey={}))[ee.TwoColor=0]="TwoColor",ee[ee.OneColor=1]="OneColor",(ea=eP||(eP={}))[ea.Default=0]="Default",ea[ea.External=1]="External",ea[ea.Polyline=2]="Polyline",ea[ea.Derived=4]="Derived",ea[ea.Textbox=8]="Textbox",ea[ea.Outermost=16]="Outermost",(er=eC||(eC={}))[er.Line=1]="Line",er[er.Circular=2]="Circular",er[er.Elliptic=3]="Elliptic",er[er.Spline=4]="Spline",(et=eM||(eM={}))[et.Off=0]="Off",et[et.Solid=1]="Solid",et[et.Dashed=2]="Dashed",et[et.Dotted=3]="Dotted",et[et.ShotDash=4]="ShotDash",et[et.MediumDash=5]="MediumDash",et[et.LongDash=6]="LongDash",et[et.DoubleShortDash=7]="DoubleShortDash",et[et.DoubleMediumDash=8]="DoubleMediumDash",et[et.DoubleLongDash=9]="DoubleLongDash",et[et.DoubleMediumLongDash=10]="DoubleMediumLongDash",et[et.SparseDot=11]="SparseDot";let t={DRAGVS:"NULL",INTERFERECOLOR:1,INTERFEREOBJVS:"Conceptual",INTERFEREVPVS:"3d Wireframe",OBSLTYPE:eM.Off,SHADEDIF:70};(en=ev||(ev={}))[en.Standard=-3]="Standard",en[en.ByLayer=-2]="ByLayer",en[en.ByBlock=-1]="ByBlock",(eo=eR||(eR={}))[eo.English=0]="English",eo[eo.Metric=1]="Metric";let n=65536;function o(e,a,r){return e.code===a&&(null==r||e.value===r)}function s(e){let a={};e.rewind();let r=e.next(),t=r.code;if(a.x=r.value,(r=e.next()).code!==t+10)throw Error("Expected code for point value to be 20 but got "+r.code+".");return(a.y=r.value,(r=e.next()).code!==t+20)?e.rewind():a.z=r.value,a}(es=ek||(ek={}))[es.PERSPECTIVE_MODE=1]="PERSPECTIVE_MODE",es[es.FRONT_CLIPPING=2]="FRONT_CLIPPING",es[es.BACK_CLIPPING=4]="BACK_CLIPPING",es[es.UCS_FOLLOW=8]="UCS_FOLLOW",es[es.FRONT_CLIP_NOT_AT_EYE=16]="FRONT_CLIP_NOT_AT_EYE",es[es.UCS_ICON_VISIBILITY=32]="UCS_ICON_VISIBILITY",es[es.UCS_ICON_AT_ORIGIN=64]="UCS_ICON_AT_ORIGIN",es[es.FAST_ZOOM=128]="FAST_ZOOM",es[es.SNAP_MODE=256]="SNAP_MODE",es[es.GRID_MODE=512]="GRID_MODE",es[es.ISOMETRIC_SNAP_STYLE=1024]="ISOMETRIC_SNAP_STYLE",es[es.HIDE_PLOT_MODE=2048]="HIDE_PLOT_MODE",es[es.K_ISO_PAIR_TOP=4096]="K_ISO_PAIR_TOP",es[es.K_ISO_PAIR_RIGHT=8192]="K_ISO_PAIR_RIGHT",es[es.VIEWPORT_ZOOM_LOCKING=16384]="VIEWPORT_ZOOM_LOCKING",es[es.UNUSED=32768]="UNUSED",es[es.NON_RECTANGULAR_CLIPPING=65536]="NON_RECTANGULAR_CLIPPING",es[es.VIEWPORT_OFF=131072]="VIEWPORT_OFF",es[es.GRID_BEYOND_DRAWING_LIMITS=262144]="GRID_BEYOND_DRAWING_LIMITS",es[es.ADAPTIVE_GRID_DISPLAY=524288]="ADAPTIVE_GRID_DISPLAY",es[es.SUBDIVISION_BELOW_SPACING=1048576]="SUBDIVISION_BELOW_SPACING",es[es.GRID_FOLLOWS_WORKPLANE=2097152]="GRID_FOLLOWS_WORKPLANE",(ei=ex||(ex={}))[ei.OPTIMIZED_2D=0]="OPTIMIZED_2D",ei[ei.WIREFRAME=1]="WIREFRAME",ei[ei.HIDDEN_LINE=2]="HIDDEN_LINE",ei[ei.FLAT_SHADED=3]="FLAT_SHADED",ei[ei.GOURAUD_SHADED=4]="GOURAUD_SHADED",ei[ei.FLAT_SHADED_WITH_WIREFRAME=5]="FLAT_SHADED_WITH_WIREFRAME",ei[ei.GOURAUD_SHADED_WITH_WIREFRAME=6]="GOURAUD_SHADED_WITH_WIREFRAME",(ec=eF||(eF={}))[ec.UCS_UNCHANGED=0]="UCS_UNCHANGED",ec[ec.HAS_OWN_UCS=1]="HAS_OWN_UCS",(el=ew||(ew={}))[el.NON_ORTHOGRAPHIC=0]="NON_ORTHOGRAPHIC",el[el.TOP=1]="TOP",el[el.BOTTOM=2]="BOTTOM",el[el.FRONT=3]="FRONT",el[el.BACK=4]="BACK",el[el.LEFT=5]="LEFT",el[el.RIGHT=6]="RIGHT",(ed=eV||(eV={}))[ed.AS_DISPLAYED=0]="AS_DISPLAYED",ed[ed.WIREFRAME=1]="WIREFRAME",ed[ed.HIDDEN=2]="HIDDEN",ed[ed.RENDERED=3]="RENDERED",(eu=eB||(eB={}))[eu.ONE_DISTANT_LIGHT=0]="ONE_DISTANT_LIGHT",eu[eu.TWO_DISTANT_LIGHTS=1]="TWO_DISTANT_LIGHTS";let i=Symbol();function c(e,a){return(r,t,n)=>{let s=e.reduce((e,a)=>{a.pushContext&&e.push({});let r=e[e.length-1];for(let e of"number"==typeof a.code?[a.code]:a.code){let t=r[e]??(r[e]=[]);a.isMultiple&&t.length&&console.warn(`Snippet ${t.at(-1).name} for code(${e}) is shadowed by ${a.name}`),t.push(a)}return e},[{}]),c=!1,l=s.length-1;for(;!o(r,0,"EOF");){let e=function(e,a,r){return e.find((e,t)=>t>=r&&e[a]?.length)}(s,r.code,l),a=e?.[r.code].at(-1);if(!e||!a){t.rewind();break}a.isMultiple||e[r.code].pop();let{name:o,parser:d,isMultiple:u}=a,p=d?.(r,t,n);if(p===i){t.rewind();break}if(o){let[e,a]=function(e,a){let r=a.split("."),t=e;for(let e=0;e<r.length-1;++e){let a=r[e];Object.hasOwn(t,a)||(t[a]={}),t=t[a]}return[t,r.at(-1)]}(n,o);u?(Object.hasOwn(e,a)||(e[a]=[]),e[a].push(p)):e[a]=p}a.pushContext&&(l-=1),c=!0,r=t.next()}return a&&Object.setPrototypeOf(n,a),c}}function l({value:e}){return e}function d(e,a){return s(a)}function u({value:e}){return!!e}var p,m,E,I,h,f,b,T,D,O,S,N,g,_,L,A,y,P,C,M,v,R,k,x,F,w,V,B,H,G,U,Y,W,j,X,z,K,Z,J,$,q,Q,ee,ea,er,et,en,eo,es,ei,ec,el,ed,eu,ep,em,eE,eI,eh,ef,eb,eT,eD,eO,eS,eN,eg,e_,eL,eA,ey,eP,eC,eM,ev,eR,ek,ex,eF,ew,eV,eB,eH,eG,eU,eY,eW,ej,eX,ez,eK,eZ,eJ,e$,eq,eQ,e0,e1,e4,e2,e3,e7,e5=[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];function e6(e,a){if(!o(e,1001))throw Error("XData must starts with code 1001");let r={appName:e.value,value:[]};e=a.next();let t=[r.value];for(;!o(e,0,"EOF")&&e.code>=1e3;){let r=t.at(-1);switch(e.code){case 1002:"{"===e.value?t.push([]):(t.pop(),t.at(-1)?.push(r));break;case 1e3:case 1004:case 1040:case 1070:case 1071:r.push({type:e9(e.code),value:e.value});break;case 1003:r.push({name:"layer",type:e9(e.code),value:e.value});break;case 1005:r.push({name:"handle",type:e9(e.code),value:e.value});break;case 1010:r.push({type:e9(e.code),value:s(a)});break;case 1011:r.push({name:"worldSpacePosition",type:e9(e.code),value:s(a)});break;case 1012:r.push({name:"worldSpaceDisplacement",type:e9(e.code),value:s(a)});break;case 1013:r.push({name:"worldSpaceDirection",type:e9(e.code),value:s(a)});break;case 1041:r.push({name:"distance",type:e9(e.code),value:e.value});break;case 1042:r.push({name:"scale",type:e9(e.code),value:e.value})}e=a.next()}return a.rewind(),r}function e9(e){switch(e){case 1e3:case 1003:case 1005:return"string";case 1004:return"hex";case 1040:case 1041:case 1042:return"real";case 1070:return"integer";case 1071:return"long";case 1010:case 1011:case 1012:case 1013:return"point";default:return""}}function e8(e,a,r){if(o(a,102))return at(a,r),!0;switch(a.code){case 0:e.type=a.value;break;case 5:e.handle=a.value;break;case 330:e.ownerDictionarySoftId?e.ownerBlockRecordSoftId=a.value:e.ownerDictionarySoftId=a.value;break;case 360:e.ownerdictionaryHardId=a.value;break;case 67:e.isInPaperSpace=!!a.value;break;case 8:e.layer=a.value;break;case 6:e.lineType=a.value;break;case 347:e.materialObjectHardId=a.value;break;case 62:e.colorIndex=a.value,e.color=e5[Math.abs(a.value)];break;case 370:e.lineweight=a.value;break;case 48:e.lineTypeScale=a.value;break;case 60:e.isVisible=!!a.value;break;case 92:e.proxyByte=a.value;break;case 310:e.proxyEntity=a.value;break;case 100:break;case 420:e.color=a.value;break;case 430:e.transparency=a.value;break;case 390:e.plotStyleHardId=a.value;break;case 284:e.shadowMode=a.value;break;case 1001:e.xdata=e6(a,r);break;default:return!1}return!0}let ae=0;function aa(e){if(!e)throw TypeError("entity cannot be undefined or null");e.handle||(e.handle=ae++)}(p=eH||(eH={}))[p.CAST_AND_RECEIVE=0]="CAST_AND_RECEIVE",p[p.CAST=1]="CAST",p[p.RECEIVE=2]="RECEIVE",p[p.IGNORE=3]="IGNORE";let ar=[{code:1001,name:"xdata",parser:e6},{code:284,name:"shadowMode",parser:l},{code:390,name:"plotStyleHardId",parser:l},{code:440,name:"transparency",parser:l},{code:430,name:"colorName",parser:l},{code:420,name:"color",parser:l},{code:310,name:"proxyEntity",parser:l},{code:92,name:"proxyByte",parser:l},{code:60,name:"isVisible",parser:u},{code:48,name:"lineTypeScale",parser:l},{code:370,name:"lineweight",parser:l},{code:62,name:"colorIndex",parser(e,a,r){let t=e.value;return r.color=e5[Math.abs(t)],t}},{code:347,name:"materialObjectHardId",parser:l},{code:6,name:"lineType",parser:l},{code:8,name:"layer",parser:l},{code:410,name:"layoutTabName",parser:l},{code:67,name:"isInPaperSpace",parser:u},{code:100},{code:330,name:"ownerBlockRecordSoftId",parser:l},{code:102,parser:at},{code:102,parser:at},{code:102,parser:at},{code:5,name:"handle",parser:l}];function at(e,a){for(e=a.next();!o(e,102)&&!o(e,0,"EOF");)e=a.next()}function an(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}let ao={extrusionDirection:{x:0,y:0,z:1}},as=[{code:210,name:"extrusionDirection",parser:d},{code:51,name:"endAngle",parser:l},{code:50,name:"startAngle",parser:l},{code:100,name:"subclassMarker",parser:l},{code:40,name:"radius",parser:l},{code:10,name:"center",parser:d},{code:39,name:"thickness",parser:l},{code:100},...ar];class ai{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){an(this,"parser",c(as,ao))}}function ac(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}an(ai,"ForEntityName","ARC"),(m=eG||(eG={}))[m.NONE=0]="NONE",m[m.INVISIBLE=1]="INVISIBLE",m[m.CONSTANT=2]="CONSTANT",m[m.VERIFICATION_REQUIRED=4]="VERIFICATION_REQUIRED",m[m.PRESET=8]="PRESET",(E=eU||(eU={}))[E.MULTILINE=2]="MULTILINE",E[E.CONSTANT_MULTILINE=4]="CONSTANT_MULTILINE",(I=eY||(eY={}))[I.NONE=0]="NONE",I[I.MIRRORED_X=2]="MIRRORED_X",I[I.MIRRORED_Y=4]="MIRRORED_Y",(h=eW||(eW={}))[h.LEFT=0]="LEFT",h[h.CENTER=1]="CENTER",h[h.RIGHT=2]="RIGHT",h[h.ALIGNED=3]="ALIGNED",h[h.MIDDLE=4]="MIDDLE",h[h.FIT=5]="FIT",(f=ej||(ej={}))[f.BASELINE=0]="BASELINE",f[f.BOTTOM=1]="BOTTOM",f[f.MIDDLE=2]="MIDDLE",f[f.TOP=3]="TOP";let al={thickness:0,rotation:0,xScale:1,obliqueAngle:0,styleName:"STANDARD",generationFlag:0,halign:eW.LEFT,valign:ej.BASELINE,extrusionDirection:{x:0,y:0,z:1}},ad=[{code:73,name:"valign",parser:l},{code:100},{code:210,name:"extrusionDirection",parser:d},{code:11,name:"endPoint",parser:d},{code:72,name:"valign",parser:l},{code:72,name:"halign",parser:l},{code:71,name:"generationFlag",parser:l},{code:7,name:"styleName",parser:l},{code:51,name:"obliqueAngle",parser:l},{code:41,name:"xScale",parser:l},{code:50,name:"rotation",parser:l},{code:1,name:"text",parser:l},{code:40,name:"textHeight",parser:l},{code:10,name:"startPoint",parser:d},{code:39,name:"thickness",parser:l},{code:100,name:"subclassMarker",parser:l},...ar];class au{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){ac(this,"parser",c(ad,al))}}function ap(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}ac(au,"ForEntityName","TEXT");let am={...al},aE=[{code:2},{code:40,name:"annotationScale",parser:l},{code:10,name:"alignmentPoint",parser:d},{code:340,name:"secondaryAttributesHardIds",isMultiple:!0,parser:l},{code:70,name:"numberOfSecondaryAttributes",parser:l},{code:70,name:"isReallyLocked",parser:u},{code:70,name:"mtextFlag",parser:l},{code:280,name:"isDuplicatedRecord",parser:u},{code:100},{code:280,name:"isLocked",parser:u},{code:74,name:"valign",parser:l},{code:73},{code:70,name:"attributeFlag",parser:l},{code:2,name:"tag",parser:l},{code:3,name:"prompt",parser:l},{code:280},{code:100,name:"subclassMarker",parser:l},...ad.slice(2)];class aI{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){ap(this,"parser",c(aE,am))}}function ah(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}ap(aI,"ForEntityName","ATTDEF");let af={thickness:0,extrusionDirection:{x:0,y:0,z:1}},ab=[{code:210,name:"extrusionDirection",parser:d},{code:40,name:"radius",parser:l},{code:10,name:"center",parser:d},{code:39,name:"thickness",parser:l},{code:100,name:"subclassMarker",parser:l},...ar];class aT{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){ah(this,"parser",c(ab,af))}}ah(aT,"ForEntityName","CIRCLE");class aD{parseEntity(e,a){let r={};for(;!o(a,0,"EOF");){if(0===a.code){e.rewind();break}!function(e,a,r){switch(a.code){case 100:e.subclassMarker=a.value;break;case 280:e.version=a.value;break;case 2:e.name=a.value;break;case 10:e.definitionPoint=s(r);break;case 11:e.textPoint=s(r);break;case 12:e.insertionPoint=s(r);break;case 13:e.subDefinitionPoint1=s(r);break;case 14:e.subDefinitionPoint2=s(r);break;case 15:e.centerPoint=s(r);break;case 16:e.arcPoint=s(r);break;case 70:e.dimensionType=a.value;break;case 71:e.attachmentPoint=a.value;break;case 72:e.textLineSpacingStyle=a.value;break;case 40:e.leaderLength=a.value;break;case 41:e.textLineSpacingFactor=a.value;break;case 42:e.measurement=a.value;break;case 1:e.text=a.value;break;case 50:e.rotationAngle=a.value;break;case 52:e.obliqueAngle=a.value;break;case 53:e.textRotation=a.value;break;case 51:e.ocsRotation=a.value;break;case 210:e.extrusionDirection=s(r);break;case 3:e.styleName=a.value;break;default:e8(e,a,r)}}(r,a,e),a=e.next()}return r}}function aO(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}T="DIMENSION",(b="ForEntityName")in aD?Object.defineProperty(aD,b,{value:T,enumerable:!0,configurable:!0,writable:!0}):aD[b]=T;let aS={extrusionDirection:{x:0,y:0,z:1}},aN=[{code:42,name:"endAngle",parser:l},{code:41,name:"startAngle",parser:l},{code:40,name:"axisRatio",parser:l},{code:210,name:"extrusionDirection",parser:d},{code:11,name:"majorAxisEndPoint",parser:d},{code:10,name:"center",parser:d},{code:100,name:"subclassMarker",parser:l},...ar];class ag{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){aO(this,"parser",c(aN,aS))}}aO(ag,"ForEntityName","ELLIPSE");let a_=[{code:330,name:"sourceBoundaryObjects",parser:l,isMultiple:!0},{code:97,name:"numberOfSourceBoundaryObjects",parser:l}],aL=[{code:11,name:"end",parser:d},{code:10,name:"start",parser:d}],aA=[{code:73,name:"isCCW",parser:u},{code:51,name:"endAngle",parser:l},{code:50,name:"startAngle",parser:l},{code:40,name:"radius",parser:l},{code:10,name:"center",parser:d}],ay=[{code:73,name:"isCCW",parser:u},{code:51,name:"endAngle",parser:l},{code:50,name:"startAngle",parser:l},{code:40,name:"lengthOfMinorAxis",parser:l},{code:11,name:"end",parser:d},{code:10,name:"center",parser:d}],aP=[{code:13,name:"endTangent",parser:d},{code:12,name:"startTangent",parser:d},{code:11,name:"fitDatum",isMultiple:!0,parser:d},{code:97,name:"numberOfFitData",parser:l},{code:10,name:"controlPoints",isMultiple:!0,parser(e,a){let r={...s(a),weight:1};return 42===(e=a.next()).code?r.weight=e.value:a.rewind(),r}},{code:40,name:"knots",isMultiple:!0,parser:l},{code:96,name:"numberOfControlPoints",parser:l},{code:95,name:"numberOfKnots",parser:l},{code:74,name:"isPeriodic",parser:u},{code:73,name:"splineFlag",parser:l},{code:94,name:"degree",parser:l}],aC={[eC.Line]:aL,[eC.Circular]:aA,[eC.Elliptic]:ay,[eC.Spline]:aP},aM=[...a_,{code:72,name:"edges",parser(e,a){let r={type:e.value},t=c(aC[r.type]);if(!t)throw Error(`Invalid edge type ${r.type}`);return t(e=a.next(),a,r),r},isMultiple:!0},{code:93,name:"numberOfEdges",parser:l}],av=[...a_,{code:10,name:"vertices",parser(e,a){let r={...s(a),bulge:0};return 42===(e=a.next()).code?r.bulge=e.value:a.rewind(),r},isMultiple:!0},{code:93,name:"numberOfVertices",parser:l},{code:73,name:"isClosed",parser:u},{code:72,name:"hasBulge",parser:u}],aR=[{code:49,name:"dashLengths",parser:l,isMultiple:!0},{code:79,name:"numberOfDashLengths",parser:l},{code:45,name:"offset",parser:ak},{code:43,name:"base",parser:ak},{code:53,name:"angle",parser:l}];function ak(e,a){let r=e.code+1,t={x:e.value,y:1};return(e=a.next()).code===r?t.y=e.value:a.rewind(),t}function ax(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}let aF={extrusionDirection:{x:0,y:0,z:1},gradientRotation:0,colorTint:0},aw=[{code:470},{code:463},{code:462,name:"colorTint",parser:l},{code:461,name:"gradientDefinition",parser:l},{code:460,name:"gradientRotation",parser:l},{code:453,name:"numberOfColors",parser:l},{code:452,name:"gradientColorFlag",parser:l},{code:451},{code:450,name:"gradientFlag",parser:l},{code:10,name:"seedPoints",parser:d,isMultiple:!0},{code:99},{code:11,name:"offsetVector",parser:d},{code:98,name:"numberOfSeedPoints",parser:l},{code:47,name:"pixelSize",parser:l},{code:53,name:"definitionLines",parser:function(e,a){let r={};return c(aR)(e,a,r),r},isMultiple:!0},{code:78,name:"numberOfDefinitionLines",parser:l},{code:77,name:"isDouble",parser:u},{code:73,name:"isAnnotated",parser:u},{code:41,name:"patternScale",parser:l},{code:52,name:"patternAngle",parser:l},{code:76,name:"patternType",parser:l},{code:75,name:"hatchStyle",parser:l},{code:92,name:"boundaryPaths",parser:function(e,a){let r={boundaryPathTypeFlag:e.value},t=r.boundaryPathTypeFlag&eP.Polyline;return(e=a.next(),t)?c(av)(e,a,r):c(aM)(e,a,r),r},isMultiple:!0},{code:91,name:"numberOfBoundaryPaths",parser:l},{code:71,name:"associativity",parser:l},{code:63,name:"patternFillColor",parser:l},{code:70,name:"solidFill",parser:l},{code:2,name:"patternName",parser:l},{code:210,name:"extrusionDirection",parser:d},{code:10,name:"elevationPoint",parser:d},{code:100,name:"subclassMarker",parser:l,pushContext:!0},...ar];class aV{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){ax(this,"parser",c(aw,aF))}}function aB(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}ax(aV,"ForEntityName","HATCH");let aH={xScale:1,yScale:1,zScale:1,rotation:0,columnCount:0,rowCount:0,columnSpacing:0,rowSpacing:0,extrusionDirection:{x:0,y:0,z:1}},aG=[{code:210,name:"extrusionDirection",parser:d},{code:45,name:"rowSpacing",parser:l},{code:44,name:"columnSpacing",parser:l},{code:71,name:"rowCount",parser:l},{code:70,name:"columnCount",parser:l},{code:50,name:"rotation",parser:l},{code:43,name:"zScale",parser:l},{code:42,name:"yScale",parser:l},{code:41,name:"xScale",parser:l},{code:10,name:"insertionPoint",parser:d},{code:2,name:"name",parser:l},{code:66,name:"isVariableAttributes",parser:u},{code:100,name:"subclassMarker",parser:l},...ar];class aU{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){aB(this,"parser",c(aG,aH))}}function aY(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}aB(aU,"ForEntityName","INSERT");let aW={isArrowheadEnabled:!0},aj=[{code:213,name:"offsetFromAnnotation",parser:d},{code:212,name:"offsetFromBlock",parser:d},{code:211,name:"horizontalDirection",parser:d},{code:210,name:"normal",parser:d},{code:340,name:"associatedAnnotation",parser:l},{code:77,name:"byBlockColor",parser:l},{code:10,name:"vertices",parser:d,isMultiple:!0},{code:76,name:"numberOfVertices",parser:l},{code:41,name:"textWidth",parser:l},{code:40,name:"textHeight",parser:l},{code:75,name:"isHooklineExists",parser:u},{code:74,name:"isHooklineSameDirection",parser:u},{code:73,name:"leaderCreationFlag",parser:l},{code:72,name:"isSpline",parser:u},{code:71,name:"isArrowheadEnabled",parser:u},{code:3,name:"styleName",parser:l},{code:100,name:"subclassMarker",parser:l},...ar];class aX{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){aY(this,"parser",c(aj,aW))}}function az(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}aY(aX,"ForEntityName","LEADER"),(D=eX||(eX={}))[D.TextAnnotation=0]="TextAnnotation",D[D.ToleranceAnnotation=1]="ToleranceAnnotation",D[D.BlockReferenceAnnotation=2]="BlockReferenceAnnotation",D[D.NoAnnotation=3]="NoAnnotation";let aK={thickness:0,extrusionDirection:{x:0,y:0,z:1}},aZ=[{code:210,name:"extrusionDirection",parser:d},{code:11,name:"endPoint",parser:d},{code:10,name:"startPoint",parser:d},{code:39,name:"thickness",parser:l},{code:100,name:"subclassMarker",parser:l},...ar];class aJ{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){az(this,"parser",c(aZ,aK))}}az(aJ,"ForEntityName","LINE"),(O=ez||(ez={}))[O.IS_CLOSED=1]="IS_CLOSED",O[O.PLINE_GEN=128]="PLINE_GEN";let a$={flag:0,elevation:0,thickness:0,extrusionDirection:{x:0,y:0,z:1},vertices:[]},aq={bulge:0},aQ=[{code:42,name:"bulge",parser:l},{code:41,name:"endWidth",parser:l},{code:40,name:"startWidth",parser:l},{code:91,name:"id",parser:l},{code:20,name:"y",parser:l},{code:10,name:"x",parser:l}],a0=[{code:210,name:"extrusionDirection",parser:d},{code:10,name:"vertices",isMultiple:!0,parser(e,a){let r={};return c(aQ,aq)(e,a,r),r}},{code:39,name:"thickness",parser:l},{code:38,name:"elevation",parser:l},{code:43,name:"constantWidth",parser:l},{code:70,name:"flag",parser:l},{code:90,name:"numberOfVertices",parser:l},{code:100,name:"subclassMarker",parser:l},...ar];class a1{parseEntity(e,a){let r={};return c(a0,a$)(a,e,r),r}}function a4(e,a){let r={};for(let t of e){let e=a(t);null!=e&&(r[e]??(r[e]=[]),r[e].push(t))}return r}function*a2(e,a=1/0,r=1){for(let t=e;t!==a;t+=r)yield t}function a3(e){return{x:e.x??0,y:e.y??0,z:e.z??0}}function a7(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}N="LWPOLYLINE",(S="ForEntityName")in a1?Object.defineProperty(a1,S,{value:N,enumerable:!0,configurable:!0,writable:!0}):a1[S]=N,(g=eK||(eK={}))[g.LEFT_TO_RIGHT=1]="LEFT_TO_RIGHT",g[g.TOP_TO_BOTTOM=3]="TOP_TO_BOTTOM",g[g.BY_STYLE=5]="BY_STYLE";let a5={textStyle:"STANDARD",extrusionDirection:{x:0,y:0,z:1},rotation:0},a6=[{code:46,name:"annotationHeight",parser:l},{code:101,parser(e,a){!function(e){e.rewind();let a=e.next();if(101!==a.code)throw Error("Bad call for skipEmbeddedObject()");do a=e.next();while(0!==a.code);e.rewind()}(a)}},{code:50,name:"columnHeight",parser:l},{code:49,name:"columnGutter",parser:l},{code:48,name:"columnWidth",parser:l},{code:79,name:"columnAutoHeight",parser:l},{code:78,name:"columnFlowReversed",parser:l},{code:76,name:"columnCount",parser:l},{code:75,name:"columnType",parser:l},{code:441,name:"backgroundFillTransparency",parser:l},{code:63,name:"backgroundFillColor",parser:l},{code:45,name:"fillBoxScale",parser:l},{code:[...a2(430,440)],name:"backgroundColor",parser:l},{code:[...a2(420,430)],name:"backgroundColor",parser:l},{code:90,name:"backgroundFill",parser:l},{code:44,name:"lineSpacing",parser:l},{code:73,name:"lineSpacingStyle",parser:l},{code:50,name:"rotation",parser:l},{code:43},{code:42},{code:11,name:"direction",parser:d},{code:210,name:"extrusionDirection",parser:d},{code:7,name:"styleName",parser:l},{code:3,name:"text",parser:(e,a,r)=>(r.text??"")+e.value},{code:1,name:"text",parser:(e,a,r)=>e.value+(r.text??"")},{code:72,name:"drawingDirection",parser:l},{code:71,name:"attachmentPoint",parser:l},{code:41,name:"width",parser:l},{code:40,name:"height",parser:l},{code:10,name:"insertionPoint",parser:d},{code:100,name:"subclassMarker",parser:l},...ar];class a9{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){a7(this,"parser",c(a6,a5))}}function a8(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}a7(a9,"ForEntityName","MTEXT");let re={thickness:0,extrusionDirection:{x:0,y:0,z:1},angle:0},ra=[{code:50,name:"angle",parser:l},{code:210,name:"extrusionDirection",parser:d},{code:39,name:"thickness",parser:l},{code:10,name:"position",parser:d},{code:100,name:"subclassMarker",parser:l},...ar];class rr{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){a8(this,"parser",c(ra,re))}}function rt(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}a8(rr,"ForEntityName","POINT"),(_=eZ||(eZ={}))[_.CLOSED_POLYLINE=1]="CLOSED_POLYLINE",_[_.CURVE_FIT=2]="CURVE_FIT",_[_.SPLINE_FIT=4]="SPLINE_FIT",_[_.POLYLINE_3D=8]="POLYLINE_3D",_[_.POLYGON_3D=16]="POLYGON_3D",_[_.CLOSED_POLYGON=32]="CLOSED_POLYGON",_[_.POLYFACE=64]="POLYFACE",_[_.CONTINUOUS=128]="CONTINUOUS",(L=eJ||(eJ={}))[L.NONE=0]="NONE",L[L.QUADRATIC=5]="QUADRATIC",L[L.CUBIC=6]="CUBIC",L[L.BEZIER=8]="BEZIER",(A=e$||(e$={}))[A.CREATED_BY_CURVE_FIT=1]="CREATED_BY_CURVE_FIT",A[A.TANGENT_DEFINED=2]="TANGENT_DEFINED",A[A.NOT_USED=4]="NOT_USED",A[A.CREATED_BY_SPLINE_FIT=8]="CREATED_BY_SPLINE_FIT",A[A.SPLINE_CONTROL_POINT=16]="SPLINE_CONTROL_POINT",A[A.FOR_POLYLINE=32]="FOR_POLYLINE",A[A.FOR_POLYGON=64]="FOR_POLYGON",A[A.POLYFACE=128]="POLYFACE";let rn={startWidth:0,endWidth:0,bulge:0},ro=[{code:91,name:"id",parser:l},{code:[...a2(71,75)],name:"faces",isMultiple:!0,parser:l},{code:50,name:"tangentDirection",parser:l},{code:70,name:"flag",parser:l},{code:42,name:"bulge",parser:l},{code:41,name:"endWidth",parser:l},{code:40,name:"startWidth",parser:l},{code:30,name:"z",parser:l},{code:20,name:"y",parser:l},{code:10,name:"x",parser:l},{code:100,name:"subclassMarker",parser:l},{code:100},...ar];class rs{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){rt(this,"parser",c(ro,rn))}}function ri(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}rt(rs,"ForEntityName","VERTEX");let rc={thickness:0,flag:0,startWidth:0,endWidth:0,meshMVertexCount:0,meshNVertexCount:0,surfaceMDensity:0,surfaceNDensity:0,smoothType:0,extrusionDirection:{x:0,y:0,z:1},vertices:[]},rl=[{code:0,name:"vertices",isMultiple:!0,parser:(e,a)=>o(e,0,"VERTEX")?(e=a.next(),new rs().parseEntity(a,e)):i},{code:210,name:"extrusionDirection",parser:d},{code:75,name:"smoothType",parser:l},{code:74,name:"surfaceNDensity",parser:l},{code:73,name:"surfaceMDensity",parser:l},{code:72,name:"meshNVertexCount",parser:l},{code:71,name:"meshMVertexCount",parser:l},{code:41,name:"endWidth",parser:l},{code:40,name:"startWidth",parser:l},{code:70,name:"flag",parser:l},{code:39,name:"thickness",parser:l},{code:30,name:"elevation",parser:l},{code:20},{code:10},{code:66},{code:100,name:"subclassMarker",parser:l},...ar];class rd{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){ri(this,"parser",c(rl,rc))}}function ru(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}ri(rd,"ForEntityName","POLYLINE");let rp={vertices:[],backLineVertices:[]},rm=[{code:360,name:"geometrySettingHardId",parser:l},{code:12,name:"backLineVertices",isMultiple:!0,parser:d},{code:93,name:"numberOfBackLineVertices",parser:l},{code:11,name:"vertices",isMultiple:!0,parser:d},{code:92,name:"verticesCount",parser:l},{code:[63,411],name:"indicatorColor",parser:l},{code:70,name:"indicatorTransparency",parser:l},{code:41,name:"bottomHeight",parser:l},{code:40,name:"topHeight",parser:l},{code:10,name:"verticalDirection",parser:d},{code:1,name:"name",parser:l},{code:91,name:"flag",parser:l},{code:90,name:"state",parser:l},{code:100,name:"subclassMarker",parser:l},...ar];class rE{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){ru(this,"parser",c(rm,rp))}}function rI(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}ru(rE,"ForEntityName","SECTION");let rh={points:[],thickness:0,extrusionDirection:{x:0,y:0,z:1}},rf=[{code:210,name:"extrusionDirection",parser:d},{code:39,name:"thickness",parser:l},{code:[...a2(10,14)],name:"points",isMultiple:!0,parser:d},{code:100,name:"subclassMarker",parser:l},...ar];class rb{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){rI(this,"parser",c(rf,rh))}}function rT(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}rI(rb,"ForEntityName","SOLID"),(y=eq||(eq={}))[y.NONE=0]="NONE",y[y.CLOSED=1]="CLOSED",y[y.PERIODIC=2]="PERIODIC",y[y.RATIONAL=4]="RATIONAL",y[y.PLANAR=8]="PLANAR",y[y.LINEAR=16]="LINEAR";let rD={knotTolerance:1e-6,controlTolerance:1e-6,fitTolerance:1e-9,knotValues:[],controlPoints:[],fitPoints:[]},rO=[{code:11,name:"fitPoints",isMultiple:!0,parser:d},{code:10,name:"controlPoints",isMultiple:!0,parser:d},{code:41,name:"weights",isMultiple:!0,parser:l},{code:40,name:"knots",isMultiple:!0,parser:l},{code:13,name:"endTangent",parser:d},{code:12,name:"startTangent",parser:d},{code:44,name:"fitTolerance",parser:l},{code:43,name:"controlTolerance",parser:l},{code:42,name:"knotTolerance",parser:l},{code:74,name:"numberOfFitPoints",parser:l},{code:73,name:"numberOfControlPoints",parser:l},{code:72,name:"numberOfKnots",parser:l},{code:71,name:"degree",parser:l},{code:70,name:"flag",parser:l},{code:210,name:"normal",parser:d},{code:100,name:"subclassMarker",parser:l},...ar];class rS{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){rT(this,"parser",c(rO,rD))}}rT(rS,"ForEntityName","SPLINE");class rN{parseEntity(e,a){let r={};for(;"EOF"!==a;){if(0===a.code){e.rewind();break}!function(e,a,r){if("EOF"===r)return!1;switch(r.code){case 0:return!1;case 100:e.subclassMarker=r.value;break;case 10:e.viewportCenter=a3(s(a));break;case 40:e.width=r.value;break;case 41:e.height=r.value;break;case 68:e.status=r.value;break;case 69:e.viewportId=r.value;break;case 12:e.displayCenter=s(a);break;case 13:e.snapBase=s(a);break;case 14:e.snapSpacing=s(a);break;case 15:e.gridSpacing=s(a);break;case 16:e.viewDirection=a3(s(a));break;case 17:e.targetPoint=a3(s(a));break;case 42:e.perspectiveLensLength=r.value;break;case 43:e.frontClipZ=r.value;break;case 44:e.backClipZ=r.value;break;case 45:e.viewHeight=r.value;break;case 50:e.snapAngle=r.value;break;case 51:e.viewTwistAngle=r.value;break;case 72:e.circleZoomPercent=r.value;break;case 331:e.frozenLayerIds??(e.frozenLayerIds=[]),e.frozenLayerIds.push(r.value);break;case 90:e.statusBitFlags=r.value;break;case 340:e.clippingBoundaryId=r.value;break;case 1:e.sheetName=r.value;break;case 281:e.renderMode=r.value;break;case 71:e.ucsPerViewport=r.value;break;case 110:e.ucsOrigin=a3(s(a));break;case 111:e.ucsXAxis=a3(s(a));break;case 112:e.ucsYAxis=a3(s(a));break;case 345:e.ucsId=r.value;break;case 346:e.ucsBaseId=r.value;break;case 79:e.orthographicType=r.value;break;case 146:e.elevation=r.value;break;case 170:e.shadePlotMode=r.value;break;case 61:e.majorGridFrequency=r.value;break;case 332:e.backgroundId=r.value;break;case 333:e.shadePlotId=r.value;break;case 348:e.visualStyleId=r.value;break;case 292:e.isDefaultLighting=!!r.value;break;case 282:e.defaultLightingType=r.value;break;case 141:e.brightness=r.value;break;case 142:e.contrast=r.value;break;case 63:case 421:case 431:e.ambientLightColor=r.value;break;case 361:e.sunId=r.value;break;case 335:case 343:case 344:case 91:e.softPointer=r.value}return!0}(r,e,a)&&e8(r,a,e),a=e.next()}return r}}function rg(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}C="VIEWPORT",(P="ForEntityName")in rN?Object.defineProperty(rN,P,{value:C,enumerable:!0,configurable:!0,writable:!0}):rN[P]=C,(M=eQ||(eQ={}))[M.INVISIBLE=1]="INVISIBLE",M[M.CONSTANT=2]="CONSTANT",M[M.REQUIRE_VERIFICATION=4]="REQUIRE_VERIFICATION",M[M.PRESET=8]="PRESET";let r_={thickness:0,rotation:0,scale:1,obliqueAngle:0,textStyle:"STANDARD",textGenerationFlag:0,horizontalJustification:0,verticalJustification:0,extrusionDirection:{x:0,y:0,z:1}},rL=[...a6.slice(a6.findIndex(({name:e})=>"columnType"===e),a6.findIndex(({name:e})=>"subclassMarker"===e)+1),{code:100},{code:0,parser(e){if(!o(e,0,"MTEXT"))return i}},{code:2,name:"definitionTag",parser:l},{code:40,name:"annotationScale",parser:l},{code:10,name:"alignmentPoint",parser:d},{code:340,name:"secondaryAttributesHardId",parser:l},{code:70,name:"numberOfSecondaryAttributes",parser:l},{code:70,name:"isReallyLocked",parser:u},{code:70,name:"mtextFlag",parser:l},{code:280,name:"isDuplicatedEntriesKeep",parser:u},{code:100},{code:280,name:"lockPositionFlag",parser:u},{code:210,name:"extrusionDirection",parser:d},{code:11,name:"alignmentPoint",parser:d},{code:74,name:"verticalJustification",parser:l},{code:72,name:"horizontalJustification",parser:l},{code:71,name:"textGenerationFlag",parser:l},{code:7,name:"textStyle",parser:l},{code:51,name:"obliqueAngle",parser:l},{code:41,name:"scale",parser:l},{code:50,name:"rotation",parser:l},{code:73},{code:70,name:"attributeFlag",parser:l},{code:2,name:"tag",parser:l},{code:280},{code:100,name:"subclassMarker",parser:l},{code:1,name:"text",parser:l},{code:40,name:"textHeight",parser:l},{code:10,name:"startPoint",parser:d},{code:39,name:"thickness",parser:l},{code:100},...ar];class rA{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){rg(this,"parser",c(rL,r_))}}rg(rA,"ForEntityName","ATTRIB");let ry=Object.fromEntries([ai,aI,rA,aT,aD,ag,aU,aX,aJ,a1,a9,rr,rd,rE,rb,rS,au,aV,rN].map(e=>[e.ForEntityName,new e]));function rP(e,a){let r=[];for(;!o(e,0,"EOF");){if(0===e.code){if("ENDBLK"===e.value||"ENDSEC"===e.value){a.rewind();break}let t=ry[e.value];if(t){let n=e.value;e=a.next();let o=t.parseEntity(a,e);o.type=n,aa(o),r.push(o)}else console.warn(`Unsupported ENTITY type: ${e.value}`)}e=a.next()}return r}function rC(e,a){let r={};for(;!o(e,0,"EOF")&&!o(e,0,"ENDSEC");){if(o(e,0,"BLOCK")){let t=rM(e=a.next(),a);aa(t),t.name&&(r[t.name]=t)}e=a.next()}return r}function rM(e,a){let r={};for(;!o(e,0,"EOF");){if(o(e,0,"ENDBLK")){for(e=a.next();!o(e,0,"EOF");){if(o(e,100,"AcDbBlockEnd"))return r;e=a.next()}break}switch(e.code){case 1:r.xrefPath=e.value;break;case 2:r.name=e.value;break;case 3:r.name2=e.value;break;case 5:r.handle=e.value;break;case 8:r.layer=e.value;break;case 10:r.position=s(a);break;case 67:r.paperSpace=!!e.value&&1==e.value;break;case 70:0!==e.value&&(r.type=e.value);break;case 100:break;case 330:r.ownerHandle=e.value;break;case 0:r.entities=rP(e,a)}e=a.next()}return r}function rv(e,a){let r=null,t={};for(;!o(e,0,"EOF")&&!o(e,0,"ENDSEC");)9===e.code?r=e.value:10===e.code?t[r]=s(a):t[r]=e.value,e=a.next();return t}let rR=[{code:333,name:"shadePlotId",parser:l},{code:149,name:"imageOriginY",parser:l},{code:148,name:"imageOriginX",parser:l},{code:147,name:"scaleFactor",parser:l},{code:78,name:"shadePlotCustomDPI",parser:l},{code:77,name:"shadePlotResolution",parser:l},{code:76,name:"shadePlotMode",parser:l},{code:75,name:"standardScaleType",parser:l},{code:7,name:"currentStyleSheet",parser:l},{code:74,name:"plotType",parser:l},{code:73,name:"plotRotation",parser:l},{code:72,name:"paperUnit",parser:l},{code:70,name:"layoutFlag",parser:l},{code:143,name:"printScaleDenominator",parser:l},{code:142,name:"printScaleNominator",parser:l},{code:141,name:"windowAreaYMax",parser:l},{code:140,name:"windowAreaYMin",parser:l},{code:49,name:"windowAreaXMax",parser:l},{code:48,name:"windowAreaXMin",parser:l},{code:47,name:"plotOriginY",parser:l},{code:46,name:"plotOriginX",parser:l},{code:45,name:"paperHeight",parser:l},{code:44,name:"paperWidth",parser:l},{code:43,name:"marginTop",parser:l},{code:42,name:"marginRight",parser:l},{code:41,name:"marginBottom",parser:l},{code:40,name:"marginLeft",parser:l},{code:6,name:"plotViewName",parser:l},{code:4,name:"paperSize",parser:l},{code:2,name:"configName",parser:l},{code:1,name:"pageSetupName",parser:l},{code:100,name:"subclassMarker",parser:l}];(v=e0||(e0={}))[v.INCHES=0]="INCHES",v[v.MILLIMETERS=1]="MILLIMETERS",v[v.PIXELS=2]="PIXELS",(R=e1||(e1={}))[R.LAST_SCREEN_DISPLAY=0]="LAST_SCREEN_DISPLAY",R[R.DRAWING_EXTENTS=1]="DRAWING_EXTENTS",R[R.DRAWING_LIMITS=2]="DRAWING_LIMITS",R[R.VIEW_SPECIFIED=3]="VIEW_SPECIFIED",R[R.WINDOW_SPECIFIED=4]="WINDOW_SPECIFIED",R[R.LAYOUT_INFORMATION=5]="LAYOUT_INFORMATION",(k=e4||(e4={}))[k.AS_DISPLAYED=0]="AS_DISPLAYED",k[k.WIREFRAME=1]="WIREFRAME",k[k.HIDDEN=2]="HIDDEN",k[k.RENDERED=3]="RENDERED",(x=e2||(e2={}))[x.DRAFT=0]="DRAFT",x[x.PREVIEW=1]="PREVIEW",x[x.NORMAL=2]="NORMAL",x[x.PRESENTATION=3]="PRESENTATION",x[x.MAXIMUM=4]="MAXIMUM",x[x.CUSTOM=5]="CUSTOM";let rk=[{code:333,name:"shadePlotId",parser:l},{code:346,name:"orthographicUcsId",parser:l},{code:345,name:"namedUcsId",parser:l},{code:331,name:"viewportId",parser:l},{code:330,name:"paperSpaceTableId",parser:l},{code:76,name:"orthographicType",parser:l},{code:17,name:"ucsYAxis",parser:d},{code:16,name:"ucsXAxis",parser:d},{code:13,name:"ucsOrigin",parser:d},{code:146,name:"elevation",parser:l},{code:15,name:"maxExtent",parser:d},{code:14,name:"minExtent",parser:d},{code:12,name:"insertionBase",parser:d},{code:11,name:"maxLimit",parser:d},{code:10,name:"minLimit",parser:d},{code:71,name:"tabOrder",parser:l},{code:70,name:"controlFlag",parser:l},{code:1,name:"layoutName",parser:l},{code:100,name:"subclassMarker",parser:l},...rR];(F=e3||(e3={}))[F.PSLTSCALE=1]="PSLTSCALE",F[F.LIMCHECK=2]="LIMCHECK";let rx=[{code:330,name:"ownerObjectId",parser:l},{code:102},{code:360,name:"ownerDictionaryIdHard",parser:l},{code:102},{code:102},{code:330,name:"ownerDictionaryIdSoft",parser:l},{code:102},{code:102},{code:102},{code:5,name:"handle",parser:l}],rF=[{code:3,name:"entries",parser:(e,a)=>{let r={name:e.value};return 350===(e=a.next()).code?r.objectId=e.value:a.rewind(),r},isMultiple:!0},{code:281,name:"recordCloneFlag",parser:l},{code:280,name:"isHardOwned",parser:u},{code:100,name:"subclassMarker",parser:l}];function rw(e){return"AcDbDictionary"===e.subclassMarker}(w=e7||(e7={}))[w.NOT_APPLICABLE=0]="NOT_APPLICABLE",w[w.KEEP_EXISTING=1]="KEEP_EXISTING",w[w.USE_CLONE=2]="USE_CLONE",w[w.XREF_VALUE_NAME=3]="XREF_VALUE_NAME",w[w.VALUE_NAME=4]="VALUE_NAME",w[w.UNMANGLE_NAME=5]="UNMANGLE_NAME";let rV={LAYOUT:rk,PLOTSETTINGS:rR,DICTIONARY:rF};function rB(e,a){let r=[];for(;0!==e.code||!["EOF","ENDSEC"].includes(e.value);){let t=e.value,n=rV[t];if(0===e.code&&n?.length){let o=c([...rx,...n]),s={name:t};o(e=a.next(),a,s)?(r.push(s),e=a.peek()):e=a.next()}else e=a.next()}return{byName:a4(r,({name:e})=>e),byTree:function(e){let a=Object.fromEntries(e.map(e=>[e.handle,e]));for(let r of e)(!rw(r)||"0"!==r.ownerDictionaryIdSoft)&&(r.ownerDictionaryIdSoft&&(r.ownerDictionarySoft=a[r.ownerDictionaryIdSoft]),r.ownerDictionaryIdHard&&(r.ownerDictionaryHard=a[r.ownerDictionaryIdHard]),r.ownerObjectId&&(r.ownerObject=a[r.ownerObjectId])),function(e,a){rw(e)&&e.entries&&(e.entries=Object.fromEntries(e.entries.map(({name:e,objectId:r})=>[e,a[r]])))}(r,a);return e[0]}(r)}}let rH=[{code:100,name:"subclassMarker",parser:l},{code:330,name:"ownerObjectId",parser:l},{code:102,parser(e,a){for(;!o(e,0,"EOF")&&!o(e,102,"}");)e=a.next()}},{code:5,name:"handle",parser:l}],rG=c([{code:310,name:"bmpPreview",parser:l},{code:281,name:"scalability",parser:l},{code:280,name:"explodability",parser:l},{code:70,name:"insertionUnits",parser:l},{code:340,name:"layoutObjects",parser:l},{code:2,name:"name",parser:l},{code:100,name:"subclassMarker",parser:l},...rH]),rU=c([...[{name:"DIMPOST",code:3},{name:"DIMAPOST",code:4},{name:"DIMBLK_OBSOLETE",code:5},{name:"DIMBLK1_OBSOLETE",code:6},{name:"DIMBLK2_OBSOLETE",code:7},{name:"DIMSCALE",code:40,defaultValue:1},{name:"DIMASZ",code:41,defaultValue:.25},{name:"DIMEXO",code:42,defaultValue:.625,defaultValueImperial:.0625},{name:"DIMDLI",code:43,defaultValue:3.75,defaultValueImperial:.38},{name:"DIMEXE",code:44,defaultValue:2.25,defaultValueImperial:.28},{name:"DIMRND",code:45,defaultValue:0},{name:"DIMDLE",code:46,defaultValue:0},{name:"DIMTP",code:47,defaultValue:0},{name:"DIMTM",code:48,defaultValue:0},{name:"DIMTXT",code:140,defaultValue:2.5,defaultValueImperial:.28},{name:"DIMCEN",code:141,defaultValue:2.5,defaultValueImperial:.09},{name:"DIMTSZ",code:142,defaultValue:0},{name:"DIMALTF",code:143,defaultValue:25.4},{name:"DIMLFAC",code:144,defaultValue:1},{name:"DIMTVP",code:145,defaultValue:0},{name:"DIMTFAC",code:146,defaultValue:1},{name:"DIMGAP",code:147,defaultValue:.625,defaultValueImperial:.09},{name:"DIMALTRND",code:148,defaultValue:0},{name:"DIMTOL",code:71,defaultValue:0,defaultValueImperial:1},{name:"DIMLIM",code:72,defaultValue:0},{name:"DIMTIH",code:73,defaultValue:0,defaultValueImperial:1},{name:"DIMTOH",code:74,defaultValue:0,defaultValueImperial:1},{name:"DIMSE1",code:75,defaultValue:0},{name:"DIMSE2",code:76,defaultValue:0},{name:"DIMTAD",code:77,defaultValue:ef.Above,defaultValueImperial:ef.Center},{name:"DIMZIN",code:78,defaultValue:eb.Trailing,defaultValueImperial:eb.Feet},{name:"DIMAZIN",code:79,defaultValue:eT.None},{name:"DIMALT",code:170,defaultValue:0},{name:"DIMALTD",code:171,defaultValue:3,defaultValueImperial:2},{name:"DIMTOFL",code:172,defaultValue:1,defaultValueImperial:0},{name:"DIMSAH",code:173,defaultValue:0},{name:"DIMTIX",code:174,defaultValue:0},{name:"DIMSOXD",code:175,defaultValue:0},{name:"DIMCLRD",code:176,defaultValue:0},{name:"DIMCLRE",code:177,defaultValue:0},{name:"DIMCLRT",code:178,defaultValue:0},{name:"DIMADEC",code:179},{name:"DIMUNIT",code:270},{name:"DIMDEC",code:271,defaultValue:2,defaultValueImperial:4},{name:"DIMTDEC",code:272,defaultValue:2,defaultValueImperial:4},{name:"DIMALTU",code:273,defaultValue:2},{name:"DIMALTTD",code:274,defaultValue:2,defaultValueImperial:4},{name:"DIMAUNIT",code:275,defaultValue:0},{name:"DIMFRAC",code:276,defaultValue:0},{name:"DIMLUNIT",code:277,defaultValue:2},{name:"DIMDSEP",code:278,defaultValue:",",defaultValueImperial:"."},{name:"DIMJUST",code:280,defaultValue:eD.Center},{name:"DIMSD1",code:281,defaultValue:0},{name:"DIMSD2",code:282,defaultValue:0},{name:"DIMTOLJ",code:283,defaultValue:eO.Center},{name:"DIMTZIN",code:284,defaultValue:eb.Trailing,defaultValueImperial:eb.Feet},{name:"DIMALTZ",code:285,defaultValue:eb.Trailing},{name:"DIMALTTZ",code:286,defaultValue:eb.Trailing},{name:"DIMFIT",code:287},{name:"DIMUPT",code:288,defaultValue:0},{name:"DIMATFIT",code:289,defaultValue:3},{name:"DIMTXSTY",code:340},{name:"DIMLDRBLK",code:341},{name:"DIMBLK",code:342},{name:"DIMBLK1",code:343},{name:"DIMBLK2",code:344},{name:"DIMLWD",code:371,defaultValue:-2},{name:"DIMLWD",code:372,defaultValue:-2}].map(e=>({...e,parser:l})),{code:70,name:"standardFlag",parser:l},{code:2,name:"name",parser:l},{code:100,name:"subclassMarker",parser:l},{code:105,name:"handle",parser:l},...rH.filter(e=>5!==e.code)]),rY=c([{code:347,name:"materialObjectId",parser:l},{code:390,name:"plotStyleNameObjectId",parser:l},{code:370,name:"lineweight",parser:l},{code:290,name:"isPlotting",parser:u},{code:6,name:"lineType",parser:l},{code:62,name:"colorIndex",parser:l},{code:70,name:"standardFlag",parser:l},{code:2,name:"name",parser:l},{code:100,name:"subclassMarker",parser:l},...rH]),rW=c([{code:9,name:"text",parser:l},{code:45,name:"offsetY",parser:l},{code:44,name:"offsetX",parser:l},{code:50,name:"rotation",parser:l},{code:46,name:"scale",parser:l},{code:340,name:"styleObjectId",parser:l},{code:75,name:"shapeNumber",parser:l},{code:74,name:"elementTypeFlag",parser:l},{code:49,name:"elementLength",parser:l}],{elementTypeFlag:0,elementLength:0}),rj={BLOCK_RECORD:rG,DIMSTYLE:rU,LAYER:rY,LTYPE:c([{code:49,name:"pattern",parser(e,a){let r={};return rW(e,a,r),r},isMultiple:!0},{code:40,name:"totalPatternLength",parser:l},{code:73,name:"numberOfLineTypes",parser:l},{code:72,parser:l},{code:3,name:"description",parser:l},{code:70,name:"standardFlag",parser:l},{code:2,name:"name",parser:l},{code:100,name:"subclassMarker",parser:l},...rH]),STYLE:c([{code:1e3,name:"extendedFont",parser:l},{code:1001},{code:4,name:"bigFont",parser:l},{code:3,name:"font",parser:l},{code:42,name:"lastHeight",parser:l},{code:71,name:"textGenerationFlag",parser:l},{code:50,name:"obliqueAngle",parser:l},{code:41,name:"widthFactor",parser:l},{code:40,name:"fixedTextHeight",parser:l},{code:70,name:"standardFlag",parser:l},{code:2,name:"name",parser:l},{code:100,name:"subclassMarker",parser:l},...rH]),VPORT:c([{code:[63,421,431],name:"ambientColor",parser:l},{code:142,name:"contrast",parser:l},{code:141,name:"brightness",parser:l},{code:282,name:"defaultLightingType",parser:l},{code:292,name:"isDefaultLightingOn",parser:u},{code:348,name:"visualStyleObjectId",parser:l},{code:333,name:"shadePlotObjectId",parser:l},{code:332,name:"backgroundObjectId",parser:l},{code:61,name:"majorGridLines",parser:l},{code:170,name:"shadePlotSetting",parser:l},{code:146,name:"elevation",parser:l},{code:79,name:"orthographicType",parser:l},{code:112,name:"ucsYAxis",parser:d},{code:111,name:"ucsXAxis",parser:d},{code:110,name:"ucsOrigin",parser:d},{code:74,name:"ucsIconSetting",parser:l},{code:71,name:"viewMode",parser:l},{code:281,name:"renderMode",parser:l},{code:1,name:"styleSheet",parser:l},{code:[331,441],name:"frozenLayers",parser:l,isMultiple:!0},{code:72,name:"circleSides",parser:l},{code:51,name:"viewTwistAngle",parser:l},{code:50,name:"snapRotationAngle",parser:l},{code:45,name:"viewHeight",parser:l},{code:44,name:"backClippingPlane",parser:l},{code:43,name:"frontClippingPlane",parser:l},{code:42,name:"lensLength",parser:l},{code:17,name:"viewTarget",parser:d},{code:16,name:"viewDirectionFromTarget",parser:d},{code:15,name:"gridSpacing",parser:d},{code:14,name:"snapSpacing",parser:d},{code:13,name:"snapBasePoint",parser:d},{code:12,name:"center",parser:d},{code:11,name:"upperRightCorner",parser:d},{code:10,name:"lowerLeftCorner",parser:d},{code:70,name:"standardFlag",parser:l},{code:2,name:"name",parser:l},{code:100,name:"subclassMarker",parser:l},...rH])},rX=c([{code:70,name:"maxNumberOfEntries",parser:l},{code:100,name:"subclassMarker",parser:l},{code:330,name:"ownerObjectId",parser:l},{code:102},{code:360,isMultiple:!0},{code:102},{code:5,name:"handle",parser:l},{code:2,name:"name",parser:l}]);function rz(e,a){let r={};for(;!o(e,0,"EOF")&&!o(e,0,"ENDSEC");){if(o(e,0,"TABLE")){e=a.next();let t={entries:[]};rX(e,a,t),r[t.name]=t}if(o(e,0)&&!o(e,0,"ENDTAB")){let t=e.value;e=a.next();let n=rj[t];if(!n){console.warn(`parseTable: Invalid table name '${t}'`),e=a.next();continue}let o={};n(e,a,o),r[t]?.entries.push(o)}e=a.next()}return r}function rK(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}class rZ{next(){if(!this.hasNext())return this._eof?console.warn("Cannot call 'next' after EOF group has been read"):console.warn("Unexpected end of input: EOF group not read before end of file. Ended on code "+this._data[this._pointer]),{code:0,value:"EOF"};let e=parseInt(this._data[this._pointer++],10),a=rJ(e,this._data[this._pointer++]),r={code:e,value:a};return o(r,0,"EOF")&&(this._eof=!0),this.lastReadGroup=r,r}peek(){if(!this.hasNext()){if(this._eof)throw Error("Cannot call 'next' after EOF group has been read");throw Error("Unexpected end of input: EOF group not read before end of file. Ended on code "+this._data[this._pointer])}let e={code:parseInt(this._data[this._pointer]),value:0};return e.value=rJ(e.code,this._data[this._pointer+1]),e}rewind(e){e=e||1,this._pointer=this._pointer-2*e}hasNext(){return!this._eof&&!(this._pointer>this._data.length-2)}isEOF(){return this._eof}constructor(e){rK(this,"_pointer",void 0),rK(this,"_data",void 0),rK(this,"_eof",void 0),rK(this,"lastReadGroup",{code:0,value:0}),this._pointer=0,this._data=e,this._eof=!1}}function rJ(e,a){return e<=9?a:e>=10&&e<=59?parseFloat(a.trim()):e>=60&&e<=99?parseInt(a.trim()):e>=100&&e<=109?a:e>=110&&e<=149?parseFloat(a.trim()):e>=160&&e<=179?parseInt(a.trim()):e>=210&&e<=239?parseFloat(a.trim()):e>=270&&e<=289?parseInt(a.trim()):e>=290&&e<=299?function(e){if("0"===e)return!1;if("1"===e)return!0;throw TypeError("String '"+e+"' cannot be cast to Boolean type")}(a.trim()):e>=300&&e<=369?a:e>=370&&e<=389?parseInt(a.trim()):e>=390&&e<=399?a:e>=400&&e<=409?parseInt(a.trim()):e>=410&&e<=419?a:e>=420&&e<=429?parseInt(a.trim()):e>=430&&e<=439?a:e>=440&&e<=459?parseInt(a.trim()):e>=460&&e<=469?parseFloat(a.trim()):e>=470&&e<=481||999===e||e>=1e3&&e<=1009?a:e>=1010&&e<=1059?parseFloat(a.trim()):e>=1060&&e<=1071?parseInt(a.trim()):(console.log("WARNING: Group code does not have a defined type: %j",{code:e,value:a}),a)}function r$(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}class rq{parseStart(e){this.startCode=e.code}setPoint(e){if(this.code=e.code,this.value=e.value,this.startCode===this.code&&(this.x=this.value),this.startCode===this.code+10)this.y=this.value;else{let e={x:this.x??0,y:this.y??0,z:this.z??0};return this.reset(),e}if(this.startCode===this.code+20)this.z=this.value;else{let e={x:this.x??0,y:this.y??0,z:this.z??0};return this.reset(),e}}reset(){this.x=void 0,this.y=void 0,this.z=void 0}constructor(){r$(this,"point",{}),r$(this,"startCode",0),r$(this,"code",0),r$(this,"value",0),r$(this,"x",void 0),r$(this,"y",void 0),r$(this,"z",void 0)}}function rQ(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}class r0{constructor(){rQ(this,"encoding","utf-8"),rQ(this,"encodingFailureFatal",!1)}}class r1 extends Error{constructor(e,a,r){let t=`[Line ${a}]: ${e}`;r?.cause&&(t+=`
|
|
1
|
+
(G=eI||(eI={}))[G.None=0]="None",G[G.Anonymous=1]="Anonymous",G[G.NonConstant=2]="NonConstant",G[G.Xref=4]="Xref",G[G.XrefOverlay=8]="XrefOverlay",G[G.ExternallyDependent=16]="ExternallyDependent",G[G.ResolvedOrDependent=32]="ResolvedOrDependent",G[G.ReferencedXref=64]="ReferencedXref",(U=eh||(eh={}))[U.BYBLOCK=0]="BYBLOCK",U[U.BYLAYER=256]="BYLAYER";let e=-1,a=4,r=Math.PI/24;(W=ef||(ef={}))[W.Rotated=0]="Rotated",W[W.Aligned=1]="Aligned",W[W.Angular=2]="Angular",W[W.Diameter=3]="Diameter",W[W.Radius=4]="Radius",W[W.Angular3Point=5]="Angular3Point",W[W.Ordinate=6]="Ordinate",W[W.ReferenceIsExclusive=32]="ReferenceIsExclusive",W[W.IsOrdinateXTypeFlag=64]="IsOrdinateXTypeFlag",W[W.IsCustomTextPositionFlag=128]="IsCustomTextPositionFlag",(Y=eb||(eb={}))[Y.TopLeft=1]="TopLeft",Y[Y.TopCenter=2]="TopCenter",Y[Y.TopRight=3]="TopRight",Y[Y.MiddleLeft=4]="MiddleLeft",Y[Y.MiddleCenter=5]="MiddleCenter",Y[Y.MiddleRight=6]="MiddleRight",Y[Y.BottomLeft=7]="BottomLeft",Y[Y.BottomCenter=8]="BottomCenter",Y[Y.BottomRight=9]="BottomRight",(j=eT||(eT={}))[j.AtLeast=1]="AtLeast",j[j.Exact=2]="Exact",(X=eD||(eD={}))[X.Center=0]="Center",X[X.Above=1]="Above",X[X.Outside=2]="Outside",X[X.JIS=3]="JIS",X[X.Below=4]="Below",(z=eO||(eO={}))[z.Feet=0]="Feet",z[z.None=1]="None",z[z.Inch=2]="Inch",z[z.FeetAndInch=3]="FeetAndInch",z[z.Leading=4]="Leading",z[z.Trailing=8]="Trailing",z[z.LeadingAndTrailing=12]="LeadingAndTrailing",(K=eg||(eg={}))[K.None=0]="None",K[K.Leading=1]="Leading",K[K.Trailing=2]="Trailing",K[K.LeadingAndTrailing=3]="LeadingAndTrailing",(Z=eS||(eS={}))[Z.Center=0]="Center",Z[Z.Left=1]="Left",Z[Z.Right=2]="Right",Z[Z.OverFirst=3]="OverFirst",Z[Z.OverSecond=4]="OverSecond",(J=eN||(eN={}))[J.Bottom=0]="Bottom",J[J.Center=1]="Center",J[J.Top=2]="Top",($=e_||(e_={}))[$.PatternFill=0]="PatternFill",$[$.SolidFill=1]="SolidFill",(q=ey||(ey={}))[q.NonAssociative=0]="NonAssociative",q[q.Associative=1]="Associative",(Q=eA||(eA={}))[Q.Normal=0]="Normal",Q[Q.Outer=1]="Outer",Q[Q.Ignore=2]="Ignore",(ee=eL||(eL={}))[ee.UserDefined=0]="UserDefined",ee[ee.Predefined=1]="Predefined",ee[ee.Custom=2]="Custom",(ea=eP||(eP={}))[ea.NotAnnotated=0]="NotAnnotated",ea[ea.Annotated=1]="Annotated",(er=eC||(eC={}))[er.Solid=0]="Solid",er[er.Gradient=1]="Gradient",(et=eM||(eM={}))[et.TwoColor=0]="TwoColor",et[et.OneColor=1]="OneColor",(en=ev||(ev={}))[en.Default=0]="Default",en[en.External=1]="External",en[en.Polyline=2]="Polyline",en[en.Derived=4]="Derived",en[en.Textbox=8]="Textbox",en[en.Outermost=16]="Outermost",(eo=eR||(eR={}))[eo.Line=1]="Line",eo[eo.Circular=2]="Circular",eo[eo.Elliptic=3]="Elliptic",eo[eo.Spline=4]="Spline",(es=ex||(ex={}))[es.Off=0]="Off",es[es.Solid=1]="Solid",es[es.Dashed=2]="Dashed",es[es.Dotted=3]="Dotted",es[es.ShotDash=4]="ShotDash",es[es.MediumDash=5]="MediumDash",es[es.LongDash=6]="LongDash",es[es.DoubleShortDash=7]="DoubleShortDash",es[es.DoubleMediumDash=8]="DoubleMediumDash",es[es.DoubleLongDash=9]="DoubleLongDash",es[es.DoubleMediumLongDash=10]="DoubleMediumLongDash",es[es.SparseDot=11]="SparseDot";let t={DRAGVS:"NULL",INTERFERECOLOR:1,INTERFEREOBJVS:"Conceptual",INTERFEREVPVS:"3d Wireframe",OBSLTYPE:ex.Off,SHADEDIF:70};(ei=ek||(ek={}))[ei.Standard=-3]="Standard",ei[ei.ByLayer=-2]="ByLayer",ei[ei.ByBlock=-1]="ByBlock",(ec=eF||(eF={}))[ec.English=0]="English",ec[ec.Metric=1]="Metric";let n=65536;function o(e,a,r){return e.code===a&&(null==r||e.value===r)}function s(e){let a={};e.rewind();let r=e.next(),t=r.code;if(a.x=r.value,(r=e.next()).code!==t+10)throw Error("Expected code for point value to be 20 but got "+r.code+".");return(a.y=r.value,(r=e.next()).code!==t+20)?e.rewind():a.z=r.value,a}(ed=ew||(ew={}))[ed.PERSPECTIVE_MODE=1]="PERSPECTIVE_MODE",ed[ed.FRONT_CLIPPING=2]="FRONT_CLIPPING",ed[ed.BACK_CLIPPING=4]="BACK_CLIPPING",ed[ed.UCS_FOLLOW=8]="UCS_FOLLOW",ed[ed.FRONT_CLIP_NOT_AT_EYE=16]="FRONT_CLIP_NOT_AT_EYE",ed[ed.UCS_ICON_VISIBILITY=32]="UCS_ICON_VISIBILITY",ed[ed.UCS_ICON_AT_ORIGIN=64]="UCS_ICON_AT_ORIGIN",ed[ed.FAST_ZOOM=128]="FAST_ZOOM",ed[ed.SNAP_MODE=256]="SNAP_MODE",ed[ed.GRID_MODE=512]="GRID_MODE",ed[ed.ISOMETRIC_SNAP_STYLE=1024]="ISOMETRIC_SNAP_STYLE",ed[ed.HIDE_PLOT_MODE=2048]="HIDE_PLOT_MODE",ed[ed.K_ISO_PAIR_TOP=4096]="K_ISO_PAIR_TOP",ed[ed.K_ISO_PAIR_RIGHT=8192]="K_ISO_PAIR_RIGHT",ed[ed.VIEWPORT_ZOOM_LOCKING=16384]="VIEWPORT_ZOOM_LOCKING",ed[ed.UNUSED=32768]="UNUSED",ed[ed.NON_RECTANGULAR_CLIPPING=65536]="NON_RECTANGULAR_CLIPPING",ed[ed.VIEWPORT_OFF=131072]="VIEWPORT_OFF",ed[ed.GRID_BEYOND_DRAWING_LIMITS=262144]="GRID_BEYOND_DRAWING_LIMITS",ed[ed.ADAPTIVE_GRID_DISPLAY=524288]="ADAPTIVE_GRID_DISPLAY",ed[ed.SUBDIVISION_BELOW_SPACING=1048576]="SUBDIVISION_BELOW_SPACING",ed[ed.GRID_FOLLOWS_WORKPLANE=2097152]="GRID_FOLLOWS_WORKPLANE",(el=eV||(eV={}))[el.OPTIMIZED_2D=0]="OPTIMIZED_2D",el[el.WIREFRAME=1]="WIREFRAME",el[el.HIDDEN_LINE=2]="HIDDEN_LINE",el[el.FLAT_SHADED=3]="FLAT_SHADED",el[el.GOURAUD_SHADED=4]="GOURAUD_SHADED",el[el.FLAT_SHADED_WITH_WIREFRAME=5]="FLAT_SHADED_WITH_WIREFRAME",el[el.GOURAUD_SHADED_WITH_WIREFRAME=6]="GOURAUD_SHADED_WITH_WIREFRAME",(eu=eB||(eB={}))[eu.UCS_UNCHANGED=0]="UCS_UNCHANGED",eu[eu.HAS_OWN_UCS=1]="HAS_OWN_UCS",(ep=eH||(eH={}))[ep.NON_ORTHOGRAPHIC=0]="NON_ORTHOGRAPHIC",ep[ep.TOP=1]="TOP",ep[ep.BOTTOM=2]="BOTTOM",ep[ep.FRONT=3]="FRONT",ep[ep.BACK=4]="BACK",ep[ep.LEFT=5]="LEFT",ep[ep.RIGHT=6]="RIGHT",(em=eG||(eG={}))[em.AS_DISPLAYED=0]="AS_DISPLAYED",em[em.WIREFRAME=1]="WIREFRAME",em[em.HIDDEN=2]="HIDDEN",em[em.RENDERED=3]="RENDERED",(eE=eU||(eU={}))[eE.ONE_DISTANT_LIGHT=0]="ONE_DISTANT_LIGHT",eE[eE.TWO_DISTANT_LIGHTS=1]="TWO_DISTANT_LIGHTS";let i=Symbol();function c(e,a){return(r,t,n)=>{let s=e.reduce((e,a)=>{a.pushContext&&e.push({});let r=e[e.length-1];for(let e of"number"==typeof a.code?[a.code]:a.code){let t=r[e]??(r[e]=[]);a.isMultiple&&t.length&&console.warn(`Snippet ${t.at(-1).name} for code(${e}) is shadowed by ${a.name}`),t.push(a)}return e},[{}]),c=!1,d=s.length-1;for(;!o(r,0,"EOF");){let e=function(e,a,r){return e.find((e,t)=>t>=r&&e[a]?.length)}(s,r.code,d),a=e?.[r.code].at(-1);if(!e||!a){t.rewind();break}a.isMultiple||e[r.code].pop();let{name:o,parser:l,isMultiple:u,isReducible:p}=a,m=l?.(r,t,n);if(m===i){t.rewind();break}if(o){let[e,a]=function(e,a){let r=a.split("."),t=e;for(let e=0;e<r.length-1;++e){let a=r[e];Object.prototype.hasOwnProperty.call(t,a)||(t[a]={}),t=t[a]}return[t,r.at(-1)]}(n,o);u&&!p?(Object.prototype.hasOwnProperty.call(e,a)||(e[a]=[]),e[a].push(m)):e[a]=m}a.pushContext&&(d-=1),c=!0,r=t.next()}return a&&Object.setPrototypeOf(n,a),c}}function d({value:e}){return e}function l(e,a){return s(a)}function u({value:e}){return!!e}var p,m,E,I,h,f,b,T,D,O,g,S,N,_,y,A,L,P,C,M,v,R,x,k,F,w,V,B,H,G,U,W,Y,j,X,z,K,Z,J,$,q,Q,ee,ea,er,et,en,eo,es,ei,ec,ed,el,eu,ep,em,eE,eI,eh,ef,eb,eT,eD,eO,eg,eS,eN,e_,ey,eA,eL,eP,eC,eM,ev,eR,ex,ek,eF,ew,eV,eB,eH,eG,eU,eW,eY,ej,eX,ez,eK,eZ,eJ,e$,eq,eQ,e0,e1,e4,e2,e3,e7,e5,e6,e9,e8,ae,aa,ar=[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];function at(e,a){if(!o(e,1001))throw Error("XData must starts with code 1001");let r={appName:e.value,value:[]};e=a.next();let t=[r.value];for(;!o(e,0,"EOF")&&e.code>=1e3;){let r=t.at(-1);switch(e.code){case 1002:"{"===e.value?t.push([]):(t.pop(),t.at(-1)?.push(r));break;case 1e3:case 1004:case 1040:case 1070:case 1071:r.push({type:an(e.code),value:e.value});break;case 1003:r.push({name:"layer",type:an(e.code),value:e.value});break;case 1005:r.push({name:"handle",type:an(e.code),value:e.value});break;case 1010:r.push({type:an(e.code),value:s(a)});break;case 1011:r.push({name:"worldSpacePosition",type:an(e.code),value:s(a)});break;case 1012:r.push({name:"worldSpaceDisplacement",type:an(e.code),value:s(a)});break;case 1013:r.push({name:"worldSpaceDirection",type:an(e.code),value:s(a)});break;case 1041:r.push({name:"distance",type:an(e.code),value:e.value});break;case 1042:r.push({name:"scale",type:an(e.code),value:e.value})}e=a.next()}return a.rewind(),r}function an(e){switch(e){case 1e3:case 1003:case 1005:return"string";case 1004:return"hex";case 1040:case 1041:case 1042:return"real";case 1070:return"integer";case 1071:return"long";case 1010:case 1011:case 1012:case 1013:return"point";default:return""}}function ao(e,a,r){if(o(a,102))return ad(a,r),!0;switch(a.code){case 0:e.type=a.value;break;case 5:e.handle=a.value;break;case 330:e.ownerDictionarySoftId?e.ownerBlockRecordSoftId=a.value:e.ownerDictionarySoftId=a.value;break;case 360:e.ownerdictionaryHardId=a.value;break;case 67:e.isInPaperSpace=!!a.value;break;case 8:e.layer=a.value;break;case 6:e.lineType=a.value;break;case 347:e.materialObjectHardId=a.value;break;case 62:e.colorIndex=a.value,e.color=ar[Math.abs(a.value)];break;case 370:e.lineweight=a.value;break;case 48:e.lineTypeScale=a.value;break;case 60:e.isVisible=!!a.value;break;case 92:e.proxyByte=a.value;break;case 310:e.proxyEntity=a.value;break;case 100:break;case 420:e.color=a.value;break;case 430:e.transparency=a.value;break;case 390:e.plotStyleHardId=a.value;break;case 284:e.shadowMode=a.value;break;case 1001:e.xdata=at(a,r);break;default:return!1}return!0}let as=0;function ai(e){if(!e)throw TypeError("entity cannot be undefined or null");e.handle||(e.handle=as++)}(p=eW||(eW={}))[p.CAST_AND_RECEIVE=0]="CAST_AND_RECEIVE",p[p.CAST=1]="CAST",p[p.RECEIVE=2]="RECEIVE",p[p.IGNORE=3]="IGNORE";let ac=[{code:1001,name:"xdata",parser:at},{code:284,name:"shadowMode",parser:d},{code:390,name:"plotStyleHardId",parser:d},{code:440,name:"transparency",parser:d},{code:430,name:"colorName",parser:d},{code:420,name:"color",parser:d},{code:310,name:"proxyEntity",parser:d},{code:92,name:"proxyByte",parser:d},{code:60,name:"isVisible",parser:u},{code:48,name:"lineTypeScale",parser:d},{code:370,name:"lineweight",parser:d},{code:62,name:"colorIndex",parser(e,a,r){let t=e.value;return r.color=ar[Math.abs(t)],t}},{code:347,name:"materialObjectHardId",parser:d},{code:6,name:"lineType",parser:d},{code:8,name:"layer",parser:d},{code:410,name:"layoutTabName",parser:d},{code:67,name:"isInPaperSpace",parser:u},{code:100},{code:330,name:"ownerBlockRecordSoftId",parser:d},{code:102,parser:ad},{code:102,parser:ad},{code:102,parser:ad},{code:5,name:"handle",parser:d}];function ad(e,a){for(e=a.next();!o(e,102)&&!o(e,0,"EOF");)e=a.next()}function al(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}let au={extrusionDirection:{x:0,y:0,z:1}},ap=[{code:210,name:"extrusionDirection",parser:l},{code:51,name:"endAngle",parser:d},{code:50,name:"startAngle",parser:d},{code:100,name:"subclassMarker",parser:d},{code:40,name:"radius",parser:d},{code:10,name:"center",parser:l},{code:39,name:"thickness",parser:d},{code:100},...ac];class am{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){al(this,"parser",c(ap,au))}}function aE(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}al(am,"ForEntityName","ARC"),(m=eY||(eY={}))[m.NONE=0]="NONE",m[m.INVISIBLE=1]="INVISIBLE",m[m.CONSTANT=2]="CONSTANT",m[m.VERIFICATION_REQUIRED=4]="VERIFICATION_REQUIRED",m[m.PRESET=8]="PRESET",(E=ej||(ej={}))[E.MULTILINE=2]="MULTILINE",E[E.CONSTANT_MULTILINE=4]="CONSTANT_MULTILINE",(I=eX||(eX={}))[I.NONE=0]="NONE",I[I.MIRRORED_X=2]="MIRRORED_X",I[I.MIRRORED_Y=4]="MIRRORED_Y",(h=ez||(ez={}))[h.LEFT=0]="LEFT",h[h.CENTER=1]="CENTER",h[h.RIGHT=2]="RIGHT",h[h.ALIGNED=3]="ALIGNED",h[h.MIDDLE=4]="MIDDLE",h[h.FIT=5]="FIT",(f=eK||(eK={}))[f.BASELINE=0]="BASELINE",f[f.BOTTOM=1]="BOTTOM",f[f.MIDDLE=2]="MIDDLE",f[f.TOP=3]="TOP";let aI={thickness:0,rotation:0,xScale:1,obliqueAngle:0,styleName:"STANDARD",generationFlag:0,halign:ez.LEFT,valign:eK.BASELINE,extrusionDirection:{x:0,y:0,z:1}},ah=[{code:73,name:"valign",parser:d},{code:100},{code:210,name:"extrusionDirection",parser:l},{code:11,name:"endPoint",parser:l},{code:72,name:"valign",parser:d},{code:72,name:"halign",parser:d},{code:71,name:"generationFlag",parser:d},{code:7,name:"styleName",parser:d},{code:51,name:"obliqueAngle",parser:d},{code:41,name:"xScale",parser:d},{code:50,name:"rotation",parser:d},{code:1,name:"text",parser:d},{code:40,name:"textHeight",parser:d},{code:10,name:"startPoint",parser:l},{code:39,name:"thickness",parser:d},{code:100,name:"subclassMarker",parser:d},...ac];class af{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){aE(this,"parser",c(ah,aI))}}function ab(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}aE(af,"ForEntityName","TEXT");let aT={...aI},aD=[{code:2},{code:40,name:"annotationScale",parser:d},{code:10,name:"alignmentPoint",parser:l},{code:340,name:"secondaryAttributesHardIds",isMultiple:!0,parser:d},{code:70,name:"numberOfSecondaryAttributes",parser:d},{code:70,name:"isReallyLocked",parser:u},{code:70,name:"mtextFlag",parser:d},{code:280,name:"isDuplicatedRecord",parser:u},{code:100},{code:280,name:"isLocked",parser:u},{code:74,name:"valign",parser:d},{code:73},{code:70,name:"attributeFlag",parser:d},{code:2,name:"tag",parser:d},{code:3,name:"prompt",parser:d},{code:280},{code:100,name:"subclassMarker",parser:d},...ah.slice(2)];class aO{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){ab(this,"parser",c(aD,aT))}}function ag(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}ab(aO,"ForEntityName","ATTDEF");let aS={thickness:0,extrusionDirection:{x:0,y:0,z:1}},aN=[{code:210,name:"extrusionDirection",parser:l},{code:40,name:"radius",parser:d},{code:10,name:"center",parser:l},{code:39,name:"thickness",parser:d},{code:100,name:"subclassMarker",parser:d},...ac];class a_{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){ag(this,"parser",c(aN,aS))}}ag(a_,"ForEntityName","CIRCLE");class ay{parseEntity(e,a){let r={};for(;!o(a,0,"EOF");){if(0===a.code){e.rewind();break}!function(e,a,r){switch(a.code){case 100:e.subclassMarker=a.value;break;case 280:e.version=a.value;break;case 2:e.name=a.value;break;case 10:e.definitionPoint=s(r);break;case 11:e.textPoint=s(r);break;case 12:e.insertionPoint=s(r);break;case 13:e.subDefinitionPoint1=s(r);break;case 14:e.subDefinitionPoint2=s(r);break;case 15:e.centerPoint=s(r);break;case 16:e.arcPoint=s(r);break;case 70:e.dimensionType=a.value;break;case 71:e.attachmentPoint=a.value;break;case 72:e.textLineSpacingStyle=a.value;break;case 40:e.leaderLength=a.value;break;case 41:e.textLineSpacingFactor=a.value;break;case 42:e.measurement=a.value;break;case 1:e.text=a.value;break;case 50:e.rotationAngle=a.value;break;case 52:e.obliqueAngle=a.value;break;case 53:e.textRotation=a.value;break;case 51:e.ocsRotation=a.value;break;case 210:e.extrusionDirection=s(r);break;case 3:e.styleName=a.value;break;default:ao(e,a,r)}}(r,a,e),a=e.next()}return r}}function aA(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}T="DIMENSION",(b="ForEntityName")in ay?Object.defineProperty(ay,b,{value:T,enumerable:!0,configurable:!0,writable:!0}):ay[b]=T;let aL={extrusionDirection:{x:0,y:0,z:1}},aP=[{code:42,name:"endAngle",parser:d},{code:41,name:"startAngle",parser:d},{code:40,name:"axisRatio",parser:d},{code:210,name:"extrusionDirection",parser:l},{code:11,name:"majorAxisEndPoint",parser:l},{code:10,name:"center",parser:l},{code:100,name:"subclassMarker",parser:d},...ac];class aC{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){aA(this,"parser",c(aP,aL))}}aA(aC,"ForEntityName","ELLIPSE");let aM=[{code:330,name:"sourceBoundaryObjects",parser:d,isMultiple:!0},{code:97,name:"numberOfSourceBoundaryObjects",parser:d}],av=[{code:11,name:"end",parser:l},{code:10,name:"start",parser:l}],aR=[{code:73,name:"isCCW",parser:u},{code:51,name:"endAngle",parser:d},{code:50,name:"startAngle",parser:d},{code:40,name:"radius",parser:d},{code:10,name:"center",parser:l}],ax=[{code:73,name:"isCCW",parser:u},{code:51,name:"endAngle",parser:d},{code:50,name:"startAngle",parser:d},{code:40,name:"lengthOfMinorAxis",parser:d},{code:11,name:"end",parser:l},{code:10,name:"center",parser:l}],ak=[{code:13,name:"endTangent",parser:l},{code:12,name:"startTangent",parser:l},{code:11,name:"fitDatum",isMultiple:!0,parser:l},{code:97,name:"numberOfFitData",parser:d},{code:10,name:"controlPoints",isMultiple:!0,parser(e,a){let r={...s(a),weight:1};return 42===(e=a.next()).code?r.weight=e.value:a.rewind(),r}},{code:40,name:"knots",isMultiple:!0,parser:d},{code:96,name:"numberOfControlPoints",parser:d},{code:95,name:"numberOfKnots",parser:d},{code:74,name:"isPeriodic",parser:u},{code:73,name:"splineFlag",parser:d},{code:94,name:"degree",parser:d}],aF={[eR.Line]:av,[eR.Circular]:aR,[eR.Elliptic]:ax,[eR.Spline]:ak},aw=[...aM,{code:72,name:"edges",parser(e,a){let r={type:e.value},t=c(aF[r.type]);if(!t)throw Error(`Invalid edge type ${r.type}`);return t(e=a.next(),a,r),r},isMultiple:!0},{code:93,name:"numberOfEdges",parser:d}],aV=[...aM,{code:10,name:"vertices",parser(e,a){let r={...s(a),bulge:0};return 42===(e=a.next()).code?r.bulge=e.value:a.rewind(),r},isMultiple:!0},{code:93,name:"numberOfVertices",parser:d},{code:73,name:"isClosed",parser:u},{code:72,name:"hasBulge",parser:u}],aB=[{code:49,name:"dashLengths",parser:d,isMultiple:!0},{code:79,name:"numberOfDashLengths",parser:d},{code:45,name:"offset",parser:aH},{code:43,name:"base",parser:aH},{code:53,name:"angle",parser:d}];function aH(e,a){let r=e.code+1,t={x:e.value,y:1};return(e=a.next()).code===r?t.y=e.value:a.rewind(),t}function aG(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}let aU={extrusionDirection:{x:0,y:0,z:1},gradientRotation:0,colorTint:0},aW=[{code:470},{code:463},{code:462,name:"colorTint",parser:d},{code:461,name:"gradientDefinition",parser:d},{code:460,name:"gradientRotation",parser:d},{code:453,name:"numberOfColors",parser:d},{code:452,name:"gradientColorFlag",parser:d},{code:451},{code:450,name:"gradientFlag",parser:d},{code:10,name:"seedPoints",parser:l,isMultiple:!0},{code:99},{code:11,name:"offsetVector",parser:l},{code:98,name:"numberOfSeedPoints",parser:d},{code:47,name:"pixelSize",parser:d},{code:53,name:"definitionLines",parser:function(e,a){let r={};return c(aB)(e,a,r),r},isMultiple:!0},{code:78,name:"numberOfDefinitionLines",parser:d},{code:77,name:"isDouble",parser:u},{code:73,name:"isAnnotated",parser:u},{code:41,name:"patternScale",parser:d},{code:52,name:"patternAngle",parser:d},{code:76,name:"patternType",parser:d},{code:75,name:"hatchStyle",parser:d},{code:92,name:"boundaryPaths",parser:function(e,a){let r={boundaryPathTypeFlag:e.value},t=r.boundaryPathTypeFlag&ev.Polyline;return(e=a.next(),t)?c(aV)(e,a,r):c(aw)(e,a,r),r},isMultiple:!0},{code:91,name:"numberOfBoundaryPaths",parser:d},{code:71,name:"associativity",parser:d},{code:63,name:"patternFillColor",parser:d},{code:70,name:"solidFill",parser:d},{code:2,name:"patternName",parser:d},{code:210,name:"extrusionDirection",parser:l},{code:10,name:"elevationPoint",parser:l},{code:100,name:"subclassMarker",parser:d,pushContext:!0},...ac];class aY{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){aG(this,"parser",c(aW,aU))}}function aj(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}aG(aY,"ForEntityName","HATCH");let aX={xScale:1,yScale:1,zScale:1,rotation:0,columnCount:0,rowCount:0,columnSpacing:0,rowSpacing:0,extrusionDirection:{x:0,y:0,z:1}},az=[{code:210,name:"extrusionDirection",parser:l},{code:45,name:"rowSpacing",parser:d},{code:44,name:"columnSpacing",parser:d},{code:71,name:"rowCount",parser:d},{code:70,name:"columnCount",parser:d},{code:50,name:"rotation",parser:d},{code:43,name:"zScale",parser:d},{code:42,name:"yScale",parser:d},{code:41,name:"xScale",parser:d},{code:10,name:"insertionPoint",parser:l},{code:2,name:"name",parser:d},{code:66,name:"isVariableAttributes",parser:u},{code:100,name:"subclassMarker",parser:d},...ac];class aK{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){aj(this,"parser",c(az,aX))}}function aZ(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}aj(aK,"ForEntityName","INSERT");let aJ={isArrowheadEnabled:!0},a$=[{code:213,name:"offsetFromAnnotation",parser:l},{code:212,name:"offsetFromBlock",parser:l},{code:211,name:"horizontalDirection",parser:l},{code:210,name:"normal",parser:l},{code:340,name:"associatedAnnotation",parser:d},{code:77,name:"byBlockColor",parser:d},{code:10,name:"vertices",parser:l,isMultiple:!0},{code:76,name:"numberOfVertices",parser:d},{code:41,name:"textWidth",parser:d},{code:40,name:"textHeight",parser:d},{code:75,name:"isHooklineExists",parser:u},{code:74,name:"isHooklineSameDirection",parser:u},{code:73,name:"leaderCreationFlag",parser:d},{code:72,name:"isSpline",parser:u},{code:71,name:"isArrowheadEnabled",parser:u},{code:3,name:"styleName",parser:d},{code:100,name:"subclassMarker",parser:d},...ac];class aq{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){aZ(this,"parser",c(a$,aJ))}}function aQ(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}aZ(aq,"ForEntityName","LEADER"),(D=eZ||(eZ={}))[D.TextAnnotation=0]="TextAnnotation",D[D.ToleranceAnnotation=1]="ToleranceAnnotation",D[D.BlockReferenceAnnotation=2]="BlockReferenceAnnotation",D[D.NoAnnotation=3]="NoAnnotation";let a0={thickness:0,extrusionDirection:{x:0,y:0,z:1}},a1=[{code:210,name:"extrusionDirection",parser:l},{code:11,name:"endPoint",parser:l},{code:10,name:"startPoint",parser:l},{code:39,name:"thickness",parser:d},{code:100,name:"subclassMarker",parser:d},...ac];class a4{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){aQ(this,"parser",c(a1,a0))}}aQ(a4,"ForEntityName","LINE"),(O=eJ||(eJ={}))[O.IS_CLOSED=1]="IS_CLOSED",O[O.PLINE_GEN=128]="PLINE_GEN";let a2={flag:0,elevation:0,thickness:0,extrusionDirection:{x:0,y:0,z:1},vertices:[]},a3={bulge:0},a7=[{code:42,name:"bulge",parser:d},{code:41,name:"endWidth",parser:d},{code:40,name:"startWidth",parser:d},{code:91,name:"id",parser:d},{code:20,name:"y",parser:d},{code:10,name:"x",parser:d}],a5=[{code:210,name:"extrusionDirection",parser:l},{code:10,name:"vertices",isMultiple:!0,parser(e,a){let r={};return c(a7,a3)(e,a,r),r}},{code:39,name:"thickness",parser:d},{code:38,name:"elevation",parser:d},{code:43,name:"constantWidth",parser:d},{code:70,name:"flag",parser:d},{code:90,name:"numberOfVertices",parser:d},{code:100,name:"subclassMarker",parser:d},...ac];class a6{parseEntity(e,a){let r={};return c(a5,a2)(a,e,r),r}}function a9(e,a){let r={};for(let t of e){let e=a(t);null!=e&&(r[e]??(r[e]=[]),r[e].push(t))}return r}function*a8(e,a=1/0,r=1){for(let t=e;t!==a;t+=r)yield t}function re(e){return{x:e.x??0,y:e.y??0,z:e.z??0}}function ra(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}S="LWPOLYLINE",(g="ForEntityName")in a6?Object.defineProperty(a6,g,{value:S,enumerable:!0,configurable:!0,writable:!0}):a6[g]=S,(N=e$||(e$={}))[N.LEFT_TO_RIGHT=1]="LEFT_TO_RIGHT",N[N.TOP_TO_BOTTOM=3]="TOP_TO_BOTTOM",N[N.BY_STYLE=5]="BY_STYLE";let rr={textStyle:"STANDARD",extrusionDirection:{x:0,y:0,z:1},rotation:0},rt=[{code:46,name:"annotationHeight",parser:d},{code:101,parser(e,a){!function(e){e.rewind();let a=e.next();if(101!==a.code)throw Error("Bad call for skipEmbeddedObject()");do a=e.next();while(0!==a.code);e.rewind()}(a)}},{code:50,name:"columnHeight",parser:d},{code:49,name:"columnGutter",parser:d},{code:48,name:"columnWidth",parser:d},{code:79,name:"columnAutoHeight",parser:d},{code:78,name:"columnFlowReversed",parser:d},{code:76,name:"columnCount",parser:d},{code:75,name:"columnType",parser:d},{code:441,name:"backgroundFillTransparency",parser:d},{code:63,name:"backgroundFillColor",parser:d},{code:45,name:"fillBoxScale",parser:d},{code:[...a8(430,440)],name:"backgroundColor",parser:d},{code:[...a8(420,430)],name:"backgroundColor",parser:d},{code:90,name:"backgroundFill",parser:d},{code:44,name:"lineSpacing",parser:d},{code:73,name:"lineSpacingStyle",parser:d},{code:50,name:"rotation",parser:d},{code:43},{code:42},{code:11,name:"direction",parser:l},{code:210,name:"extrusionDirection",parser:l},{code:7,name:"styleName",parser:d},{code:3,name:"text",parser:(e,a,r)=>(r._code3text=(r._code3text??"")+e.value,r._code3text+(r._code1text??"")),isMultiple:!0,isReducible:!0},{code:1,name:"text",parser:(e,a,r)=>(r._code1text=e.value,(r._code3text??"")+r._code1text)},{code:72,name:"drawingDirection",parser:d},{code:71,name:"attachmentPoint",parser:d},{code:41,name:"width",parser:d},{code:40,name:"height",parser:d},{code:10,name:"insertionPoint",parser:l},{code:100,name:"subclassMarker",parser:d},...ac];class rn{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){ra(this,"parser",c(rt,rr))}}function ro(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}ra(rn,"ForEntityName","MTEXT");let rs={thickness:0,extrusionDirection:{x:0,y:0,z:1},angle:0},ri=[{code:50,name:"angle",parser:d},{code:210,name:"extrusionDirection",parser:l},{code:39,name:"thickness",parser:d},{code:10,name:"position",parser:l},{code:100,name:"subclassMarker",parser:d},...ac];class rc{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){ro(this,"parser",c(ri,rs))}}function rd(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}ro(rc,"ForEntityName","POINT"),(_=eq||(eq={}))[_.CLOSED_POLYLINE=1]="CLOSED_POLYLINE",_[_.CURVE_FIT=2]="CURVE_FIT",_[_.SPLINE_FIT=4]="SPLINE_FIT",_[_.POLYLINE_3D=8]="POLYLINE_3D",_[_.POLYGON_3D=16]="POLYGON_3D",_[_.CLOSED_POLYGON=32]="CLOSED_POLYGON",_[_.POLYFACE=64]="POLYFACE",_[_.CONTINUOUS=128]="CONTINUOUS",(y=eQ||(eQ={}))[y.NONE=0]="NONE",y[y.QUADRATIC=5]="QUADRATIC",y[y.CUBIC=6]="CUBIC",y[y.BEZIER=8]="BEZIER",(A=e0||(e0={}))[A.CREATED_BY_CURVE_FIT=1]="CREATED_BY_CURVE_FIT",A[A.TANGENT_DEFINED=2]="TANGENT_DEFINED",A[A.NOT_USED=4]="NOT_USED",A[A.CREATED_BY_SPLINE_FIT=8]="CREATED_BY_SPLINE_FIT",A[A.SPLINE_CONTROL_POINT=16]="SPLINE_CONTROL_POINT",A[A.FOR_POLYLINE=32]="FOR_POLYLINE",A[A.FOR_POLYGON=64]="FOR_POLYGON",A[A.POLYFACE=128]="POLYFACE";let rl={startWidth:0,endWidth:0,bulge:0},ru=[{code:91,name:"id",parser:d},{code:[...a8(71,75)],name:"faces",isMultiple:!0,parser:d},{code:50,name:"tangentDirection",parser:d},{code:70,name:"flag",parser:d},{code:42,name:"bulge",parser:d},{code:41,name:"endWidth",parser:d},{code:40,name:"startWidth",parser:d},{code:30,name:"z",parser:d},{code:20,name:"y",parser:d},{code:10,name:"x",parser:d},{code:100,name:"subclassMarker",parser:d},{code:100},...ac];class rp{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){rd(this,"parser",c(ru,rl))}}function rm(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}rd(rp,"ForEntityName","VERTEX");let rE={thickness:0,flag:0,startWidth:0,endWidth:0,meshMVertexCount:0,meshNVertexCount:0,surfaceMDensity:0,surfaceNDensity:0,smoothType:0,extrusionDirection:{x:0,y:0,z:1},vertices:[]},rI=[{code:0,name:"vertices",isMultiple:!0,parser:(e,a)=>o(e,0,"VERTEX")?(e=a.next(),new rp().parseEntity(a,e)):i},{code:210,name:"extrusionDirection",parser:l},{code:75,name:"smoothType",parser:d},{code:74,name:"surfaceNDensity",parser:d},{code:73,name:"surfaceMDensity",parser:d},{code:72,name:"meshNVertexCount",parser:d},{code:71,name:"meshMVertexCount",parser:d},{code:41,name:"endWidth",parser:d},{code:40,name:"startWidth",parser:d},{code:70,name:"flag",parser:d},{code:39,name:"thickness",parser:d},{code:30,name:"elevation",parser:d},{code:20},{code:10},{code:66},{code:100,name:"subclassMarker",parser:d},...ac];class rh{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){rm(this,"parser",c(rI,rE))}}function rf(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}rm(rh,"ForEntityName","POLYLINE");let rb={vertices:[],backLineVertices:[]},rT=[{code:360,name:"geometrySettingHardId",parser:d},{code:12,name:"backLineVertices",isMultiple:!0,parser:l},{code:93,name:"numberOfBackLineVertices",parser:d},{code:11,name:"vertices",isMultiple:!0,parser:l},{code:92,name:"verticesCount",parser:d},{code:[63,411],name:"indicatorColor",parser:d},{code:70,name:"indicatorTransparency",parser:d},{code:41,name:"bottomHeight",parser:d},{code:40,name:"topHeight",parser:d},{code:10,name:"verticalDirection",parser:l},{code:1,name:"name",parser:d},{code:91,name:"flag",parser:d},{code:90,name:"state",parser:d},{code:100,name:"subclassMarker",parser:d},...ac];class rD{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){rf(this,"parser",c(rT,rb))}}function rO(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}rf(rD,"ForEntityName","SECTION");let rg={points:[],thickness:0,extrusionDirection:{x:0,y:0,z:1}},rS=[{code:210,name:"extrusionDirection",parser:l},{code:39,name:"thickness",parser:d},{code:[...a8(10,14)],name:"points",isMultiple:!0,parser:l},{code:100,name:"subclassMarker",parser:d},...ac];class rN{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){rO(this,"parser",c(rS,rg))}}function r_(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}rO(rN,"ForEntityName","SOLID"),(L=e1||(e1={}))[L.NONE=0]="NONE",L[L.CLOSED=1]="CLOSED",L[L.PERIODIC=2]="PERIODIC",L[L.RATIONAL=4]="RATIONAL",L[L.PLANAR=8]="PLANAR",L[L.LINEAR=16]="LINEAR";let ry={knotTolerance:1e-6,controlTolerance:1e-6,fitTolerance:1e-9,knotValues:[],controlPoints:[],fitPoints:[]},rA=[{code:11,name:"fitPoints",isMultiple:!0,parser:l},{code:10,name:"controlPoints",isMultiple:!0,parser:l},{code:41,name:"weights",isMultiple:!0,parser:d},{code:40,name:"knots",isMultiple:!0,parser:d},{code:13,name:"endTangent",parser:l},{code:12,name:"startTangent",parser:l},{code:44,name:"fitTolerance",parser:d},{code:43,name:"controlTolerance",parser:d},{code:42,name:"knotTolerance",parser:d},{code:74,name:"numberOfFitPoints",parser:d},{code:73,name:"numberOfControlPoints",parser:d},{code:72,name:"numberOfKnots",parser:d},{code:71,name:"degree",parser:d},{code:70,name:"flag",parser:d},{code:210,name:"normal",parser:l},{code:100,name:"subclassMarker",parser:d},...ac];class rL{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){r_(this,"parser",c(rA,ry))}}r_(rL,"ForEntityName","SPLINE");class rP{parseEntity(e,a){let r={};for(;"EOF"!==a;){if(0===a.code){e.rewind();break}!function(e,a,r){if("EOF"===r)return!1;switch(r.code){case 0:return!1;case 100:e.subclassMarker=r.value;break;case 10:e.viewportCenter=re(s(a));break;case 40:e.width=r.value;break;case 41:e.height=r.value;break;case 68:e.status=r.value;break;case 69:e.viewportId=r.value;break;case 12:e.displayCenter=s(a);break;case 13:e.snapBase=s(a);break;case 14:e.snapSpacing=s(a);break;case 15:e.gridSpacing=s(a);break;case 16:e.viewDirection=re(s(a));break;case 17:e.targetPoint=re(s(a));break;case 42:e.perspectiveLensLength=r.value;break;case 43:e.frontClipZ=r.value;break;case 44:e.backClipZ=r.value;break;case 45:e.viewHeight=r.value;break;case 50:e.snapAngle=r.value;break;case 51:e.viewTwistAngle=r.value;break;case 72:e.circleZoomPercent=r.value;break;case 331:e.frozenLayerIds??(e.frozenLayerIds=[]),e.frozenLayerIds.push(r.value);break;case 90:e.statusBitFlags=r.value;break;case 340:e.clippingBoundaryId=r.value;break;case 1:e.sheetName=r.value;break;case 281:e.renderMode=r.value;break;case 71:e.ucsPerViewport=r.value;break;case 110:e.ucsOrigin=re(s(a));break;case 111:e.ucsXAxis=re(s(a));break;case 112:e.ucsYAxis=re(s(a));break;case 345:e.ucsId=r.value;break;case 346:e.ucsBaseId=r.value;break;case 79:e.orthographicType=r.value;break;case 146:e.elevation=r.value;break;case 170:e.shadePlotMode=r.value;break;case 61:e.majorGridFrequency=r.value;break;case 332:e.backgroundId=r.value;break;case 333:e.shadePlotId=r.value;break;case 348:e.visualStyleId=r.value;break;case 292:e.isDefaultLighting=!!r.value;break;case 282:e.defaultLightingType=r.value;break;case 141:e.brightness=r.value;break;case 142:e.contrast=r.value;break;case 63:case 421:case 431:e.ambientLightColor=r.value;break;case 361:e.sunId=r.value;break;case 335:case 343:case 344:case 91:e.softPointer=r.value}return!0}(r,e,a)&&ao(r,a,e),a=e.next()}return r}}function rC(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}C="VIEWPORT",(P="ForEntityName")in rP?Object.defineProperty(rP,P,{value:C,enumerable:!0,configurable:!0,writable:!0}):rP[P]=C,(M=e4||(e4={}))[M.INVISIBLE=1]="INVISIBLE",M[M.CONSTANT=2]="CONSTANT",M[M.REQUIRE_VERIFICATION=4]="REQUIRE_VERIFICATION",M[M.PRESET=8]="PRESET";let rM={thickness:0,rotation:0,scale:1,obliqueAngle:0,textStyle:"STANDARD",textGenerationFlag:0,horizontalJustification:0,verticalJustification:0,extrusionDirection:{x:0,y:0,z:1}},rv=[...rt.slice(rt.findIndex(({name:e})=>"columnType"===e),rt.findIndex(({name:e})=>"subclassMarker"===e)+1),{code:100},{code:0,parser(e){if(!o(e,0,"MTEXT"))return i}},{code:2,name:"definitionTag",parser:d},{code:40,name:"annotationScale",parser:d},{code:10,name:"alignmentPoint",parser:l},{code:340,name:"secondaryAttributesHardId",parser:d},{code:70,name:"numberOfSecondaryAttributes",parser:d},{code:70,name:"isReallyLocked",parser:u},{code:70,name:"mtextFlag",parser:d},{code:280,name:"isDuplicatedEntriesKeep",parser:u},{code:100},{code:280,name:"lockPositionFlag",parser:u},{code:210,name:"extrusionDirection",parser:l},{code:11,name:"alignmentPoint",parser:l},{code:74,name:"verticalJustification",parser:d},{code:72,name:"horizontalJustification",parser:d},{code:71,name:"textGenerationFlag",parser:d},{code:7,name:"textStyle",parser:d},{code:51,name:"obliqueAngle",parser:d},{code:41,name:"scale",parser:d},{code:50,name:"rotation",parser:d},{code:73},{code:70,name:"attributeFlag",parser:d},{code:2,name:"tag",parser:d},{code:280},{code:100,name:"subclassMarker",parser:d},{code:1,name:"text",parser:d},{code:40,name:"textHeight",parser:d},{code:10,name:"startPoint",parser:l},{code:39,name:"thickness",parser:d},{code:100},...ac];class rR{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){rC(this,"parser",c(rv,rM))}}function rx(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}rC(rR,"ForEntityName","ATTRIB"),(v=e2||(e2={}))[v.ShowImage=1]="ShowImage",v[v.ShowImageWhenNotAlignedWithScreen=2]="ShowImageWhenNotAlignedWithScreen",v[v.UseClippingBoundary=4]="UseClippingBoundary",v[v.TransparencyIsOn=8]="TransparencyIsOn",(R=e3||(e3={}))[R.Rectangular=1]="Rectangular",R[R.Polygonal=2]="Polygonal",(x=e7||(e7={}))[x.Outside=0]="Outside",x[x.Inside=1]="Inside";let rk={brightness:50,contrast:50,fade:0,clippingBoundaryPath:[]},rF=[{code:290,name:"clipMode",parser:d},{code:14,name:"clippingBoundaryPath",isMultiple:!0,parser:l},{code:91,name:"countBoundaryPoints",parser:d},{code:71,name:"clippingBoundaryType",parser:d},{code:360,name:"imageDefReactorHandle",parser:d},{code:283,name:"fade",parser:d},{code:282,name:"contrast",parser:d},{code:281,name:"brightness",parser:d},{code:280,name:"isClipped",parser:u},{code:70,name:"flags",parser:d},{code:340,name:"imageDefHandle",parser:d},{code:13,name:"imageSize",parser:l},{code:12,name:"vPixel",parser:l},{code:11,name:"uPixel",parser:l},{code:10,name:"position",parser:l},{code:90,name:"version",parser:d},{code:100,name:"subclassMarker",parser:d},...ac];class rw{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){rx(this,"parser",c(rF,rk))}}rx(rw,"ForEntityName","IMAGE");let rV=Object.fromEntries([am,aO,rR,a_,ay,aC,rw,aK,aq,a4,a6,rn,rc,rh,rD,rN,rL,af,aY,rP].map(e=>[e.ForEntityName,new e]));function rB(e,a){let r=[];for(;!o(e,0,"EOF");){if(0===e.code){if("ENDBLK"===e.value||"ENDSEC"===e.value){a.rewind();break}let t=rV[e.value];if(t){let n=e.value;e=a.next();let o=t.parseEntity(a,e);o.type=n,ai(o),r.push(o)}else console.warn(`Unsupported ENTITY type: ${e.value}`)}e=a.next()}return r}function rH(e,a){let r={};for(;!o(e,0,"EOF")&&!o(e,0,"ENDSEC");){if(o(e,0,"BLOCK")){let t=rG(e=a.next(),a);ai(t),t.name&&(r[t.name]=t)}e=a.next()}return r}function rG(e,a){let r={};for(;!o(e,0,"EOF");){if(o(e,0,"ENDBLK")){for(e=a.next();!o(e,0,"EOF");){if(o(e,100,"AcDbBlockEnd"))return r;e=a.next()}break}switch(e.code){case 1:r.xrefPath=e.value;break;case 2:r.name=e.value;break;case 3:r.name2=e.value;break;case 5:r.handle=e.value;break;case 8:r.layer=e.value;break;case 10:r.position=s(a);break;case 67:r.paperSpace=!!e.value&&1==e.value;break;case 70:0!==e.value&&(r.type=e.value);break;case 100:break;case 330:r.ownerHandle=e.value;break;case 0:r.entities=rB(e,a)}e=a.next()}return r}function rU(e,a){let r=null,t={};for(;!o(e,0,"EOF")&&!o(e,0,"ENDSEC");)9===e.code?r=e.value:10===e.code?t[r]=s(a):t[r]=e.value,e=a.next();return t}let rW=[{code:333,name:"shadePlotId",parser:d},{code:149,name:"imageOriginY",parser:d},{code:148,name:"imageOriginX",parser:d},{code:147,name:"scaleFactor",parser:d},{code:78,name:"shadePlotCustomDPI",parser:d},{code:77,name:"shadePlotResolution",parser:d},{code:76,name:"shadePlotMode",parser:d},{code:75,name:"standardScaleType",parser:d},{code:7,name:"currentStyleSheet",parser:d},{code:74,name:"plotType",parser:d},{code:73,name:"plotRotation",parser:d},{code:72,name:"paperUnit",parser:d},{code:70,name:"layoutFlag",parser:d},{code:143,name:"printScaleDenominator",parser:d},{code:142,name:"printScaleNominator",parser:d},{code:141,name:"windowAreaYMax",parser:d},{code:140,name:"windowAreaYMin",parser:d},{code:49,name:"windowAreaXMax",parser:d},{code:48,name:"windowAreaXMin",parser:d},{code:47,name:"plotOriginY",parser:d},{code:46,name:"plotOriginX",parser:d},{code:45,name:"paperHeight",parser:d},{code:44,name:"paperWidth",parser:d},{code:43,name:"marginTop",parser:d},{code:42,name:"marginRight",parser:d},{code:41,name:"marginBottom",parser:d},{code:40,name:"marginLeft",parser:d},{code:6,name:"plotViewName",parser:d},{code:4,name:"paperSize",parser:d},{code:2,name:"configName",parser:d},{code:1,name:"pageSetupName",parser:d},{code:100,name:"subclassMarker",parser:d}];(k=e5||(e5={}))[k.INCHES=0]="INCHES",k[k.MILLIMETERS=1]="MILLIMETERS",k[k.PIXELS=2]="PIXELS",(F=e6||(e6={}))[F.LAST_SCREEN_DISPLAY=0]="LAST_SCREEN_DISPLAY",F[F.DRAWING_EXTENTS=1]="DRAWING_EXTENTS",F[F.DRAWING_LIMITS=2]="DRAWING_LIMITS",F[F.VIEW_SPECIFIED=3]="VIEW_SPECIFIED",F[F.WINDOW_SPECIFIED=4]="WINDOW_SPECIFIED",F[F.LAYOUT_INFORMATION=5]="LAYOUT_INFORMATION",(w=e9||(e9={}))[w.AS_DISPLAYED=0]="AS_DISPLAYED",w[w.WIREFRAME=1]="WIREFRAME",w[w.HIDDEN=2]="HIDDEN",w[w.RENDERED=3]="RENDERED",(V=e8||(e8={}))[V.DRAFT=0]="DRAFT",V[V.PREVIEW=1]="PREVIEW",V[V.NORMAL=2]="NORMAL",V[V.PRESENTATION=3]="PRESENTATION",V[V.MAXIMUM=4]="MAXIMUM",V[V.CUSTOM=5]="CUSTOM";let rY=[{code:333,name:"shadePlotId",parser:d},{code:346,name:"orthographicUcsId",parser:d},{code:345,name:"namedUcsId",parser:d},{code:331,name:"viewportId",parser:d},{code:330,name:"paperSpaceTableId",parser:d},{code:76,name:"orthographicType",parser:d},{code:17,name:"ucsYAxis",parser:l},{code:16,name:"ucsXAxis",parser:l},{code:13,name:"ucsOrigin",parser:l},{code:146,name:"elevation",parser:d},{code:15,name:"maxExtent",parser:l},{code:14,name:"minExtent",parser:l},{code:12,name:"insertionBase",parser:l},{code:11,name:"maxLimit",parser:l},{code:10,name:"minLimit",parser:l},{code:71,name:"tabOrder",parser:d},{code:70,name:"controlFlag",parser:d},{code:1,name:"layoutName",parser:d},{code:100,name:"subclassMarker",parser:d},...rW];(B=ae||(ae={}))[B.PSLTSCALE=1]="PSLTSCALE",B[B.LIMCHECK=2]="LIMCHECK";let rj=[{code:330,name:"ownerObjectId",parser:d},{code:102},{code:360,name:"ownerDictionaryIdHard",parser:d},{code:102},{code:102},{code:330,name:"ownerDictionaryIdSoft",parser:d},{code:102},{code:102},{code:102},{code:5,name:"handle",parser:d}],rX=[{code:3,name:"entries",parser:(e,a)=>{let r={name:e.value};return 350===(e=a.next()).code?r.objectId=e.value:a.rewind(),r},isMultiple:!0},{code:281,name:"recordCloneFlag",parser:d},{code:280,name:"isHardOwned",parser:u},{code:100,name:"subclassMarker",parser:d}];function rz(e){return"AcDbDictionary"===e.subclassMarker}(H=aa||(aa={}))[H.NOT_APPLICABLE=0]="NOT_APPLICABLE",H[H.KEEP_EXISTING=1]="KEEP_EXISTING",H[H.USE_CLONE=2]="USE_CLONE",H[H.XREF_VALUE_NAME=3]="XREF_VALUE_NAME",H[H.VALUE_NAME=4]="VALUE_NAME",H[H.UNMANGLE_NAME=5]="UNMANGLE_NAME";let rK={LAYOUT:rY,PLOTSETTINGS:rW,DICTIONARY:rX};function rZ(e,a){let r=[];for(;0!==e.code||!["EOF","ENDSEC"].includes(e.value);){let t=e.value,n=rK[t];if(0===e.code&&n?.length){let o=c([...rj,...n]),s={name:t};o(e=a.next(),a,s)?(r.push(s),e=a.peek()):e=a.next()}else e=a.next()}return{byName:a9(r,({name:e})=>e),byTree:function(e){let a=Object.fromEntries(e.map(e=>[e.handle,e]));for(let r of e)(!rz(r)||"0"!==r.ownerDictionaryIdSoft)&&(r.ownerDictionaryIdSoft&&(r.ownerDictionarySoft=a[r.ownerDictionaryIdSoft]),r.ownerDictionaryIdHard&&(r.ownerDictionaryHard=a[r.ownerDictionaryIdHard]),r.ownerObjectId&&(r.ownerObject=a[r.ownerObjectId])),function(e,a){rz(e)&&e.entries&&(e.entries=Object.fromEntries(e.entries.map(({name:e,objectId:r})=>[e,a[r]])))}(r,a);return e[0]}(r)}}let rJ=[{code:100,name:"subclassMarker",parser:d},{code:330,name:"ownerObjectId",parser:d},{code:102,parser(e,a){for(;!o(e,0,"EOF")&&!o(e,102,"}");)e=a.next()}},{code:5,name:"handle",parser:d}],r$=c([{code:310,name:"bmpPreview",parser:d},{code:281,name:"scalability",parser:d},{code:280,name:"explodability",parser:d},{code:70,name:"insertionUnits",parser:d},{code:340,name:"layoutObjects",parser:d},{code:2,name:"name",parser:d},{code:100,name:"subclassMarker",parser:d},...rJ]),rq=c([...[{name:"DIMPOST",code:3},{name:"DIMAPOST",code:4},{name:"DIMBLK_OBSOLETE",code:5},{name:"DIMBLK1_OBSOLETE",code:6},{name:"DIMBLK2_OBSOLETE",code:7},{name:"DIMSCALE",code:40,defaultValue:1},{name:"DIMASZ",code:41,defaultValue:.25},{name:"DIMEXO",code:42,defaultValue:.625,defaultValueImperial:.0625},{name:"DIMDLI",code:43,defaultValue:3.75,defaultValueImperial:.38},{name:"DIMEXE",code:44,defaultValue:2.25,defaultValueImperial:.28},{name:"DIMRND",code:45,defaultValue:0},{name:"DIMDLE",code:46,defaultValue:0},{name:"DIMTP",code:47,defaultValue:0},{name:"DIMTM",code:48,defaultValue:0},{name:"DIMTXT",code:140,defaultValue:2.5,defaultValueImperial:.28},{name:"DIMCEN",code:141,defaultValue:2.5,defaultValueImperial:.09},{name:"DIMTSZ",code:142,defaultValue:0},{name:"DIMALTF",code:143,defaultValue:25.4},{name:"DIMLFAC",code:144,defaultValue:1},{name:"DIMTVP",code:145,defaultValue:0},{name:"DIMTFAC",code:146,defaultValue:1},{name:"DIMGAP",code:147,defaultValue:.625,defaultValueImperial:.09},{name:"DIMALTRND",code:148,defaultValue:0},{name:"DIMTOL",code:71,defaultValue:0,defaultValueImperial:1},{name:"DIMLIM",code:72,defaultValue:0},{name:"DIMTIH",code:73,defaultValue:0,defaultValueImperial:1},{name:"DIMTOH",code:74,defaultValue:0,defaultValueImperial:1},{name:"DIMSE1",code:75,defaultValue:0},{name:"DIMSE2",code:76,defaultValue:0},{name:"DIMTAD",code:77,defaultValue:eD.Above,defaultValueImperial:eD.Center},{name:"DIMZIN",code:78,defaultValue:eO.Trailing,defaultValueImperial:eO.Feet},{name:"DIMAZIN",code:79,defaultValue:eg.None},{name:"DIMALT",code:170,defaultValue:0},{name:"DIMALTD",code:171,defaultValue:3,defaultValueImperial:2},{name:"DIMTOFL",code:172,defaultValue:1,defaultValueImperial:0},{name:"DIMSAH",code:173,defaultValue:0},{name:"DIMTIX",code:174,defaultValue:0},{name:"DIMSOXD",code:175,defaultValue:0},{name:"DIMCLRD",code:176,defaultValue:0},{name:"DIMCLRE",code:177,defaultValue:0},{name:"DIMCLRT",code:178,defaultValue:0},{name:"DIMADEC",code:179},{name:"DIMUNIT",code:270},{name:"DIMDEC",code:271,defaultValue:2,defaultValueImperial:4},{name:"DIMTDEC",code:272,defaultValue:2,defaultValueImperial:4},{name:"DIMALTU",code:273,defaultValue:2},{name:"DIMALTTD",code:274,defaultValue:2,defaultValueImperial:4},{name:"DIMAUNIT",code:275,defaultValue:0},{name:"DIMFRAC",code:276,defaultValue:0},{name:"DIMLUNIT",code:277,defaultValue:2},{name:"DIMDSEP",code:278,defaultValue:",",defaultValueImperial:"."},{name:"DIMJUST",code:280,defaultValue:eS.Center},{name:"DIMSD1",code:281,defaultValue:0},{name:"DIMSD2",code:282,defaultValue:0},{name:"DIMTOLJ",code:283,defaultValue:eN.Center},{name:"DIMTZIN",code:284,defaultValue:eO.Trailing,defaultValueImperial:eO.Feet},{name:"DIMALTZ",code:285,defaultValue:eO.Trailing},{name:"DIMALTTZ",code:286,defaultValue:eO.Trailing},{name:"DIMFIT",code:287},{name:"DIMUPT",code:288,defaultValue:0},{name:"DIMATFIT",code:289,defaultValue:3},{name:"DIMTXSTY",code:340},{name:"DIMLDRBLK",code:341},{name:"DIMBLK",code:342},{name:"DIMBLK1",code:343},{name:"DIMBLK2",code:344},{name:"DIMLWD",code:371,defaultValue:-2},{name:"DIMLWD",code:372,defaultValue:-2}].map(e=>({...e,parser:d})),{code:70,name:"standardFlag",parser:d},{code:2,name:"name",parser:d},{code:100,name:"subclassMarker",parser:d},{code:105,name:"handle",parser:d},...rJ.filter(e=>5!==e.code)]),rQ=c([{code:347,name:"materialObjectId",parser:d},{code:390,name:"plotStyleNameObjectId",parser:d},{code:370,name:"lineweight",parser:d},{code:290,name:"isPlotting",parser:u},{code:6,name:"lineType",parser:d},{code:62,name:"colorIndex",parser:d},{code:70,name:"standardFlag",parser:d},{code:2,name:"name",parser:d},{code:100,name:"subclassMarker",parser:d},...rJ]),r0=c([{code:9,name:"text",parser:d},{code:45,name:"offsetY",parser:d},{code:44,name:"offsetX",parser:d},{code:50,name:"rotation",parser:d},{code:46,name:"scale",parser:d},{code:340,name:"styleObjectId",parser:d},{code:75,name:"shapeNumber",parser:d},{code:74,name:"elementTypeFlag",parser:d},{code:49,name:"elementLength",parser:d}],{elementTypeFlag:0,elementLength:0}),r1={BLOCK_RECORD:r$,DIMSTYLE:rq,LAYER:rQ,LTYPE:c([{code:49,name:"pattern",parser(e,a){let r={};return r0(e,a,r),r},isMultiple:!0},{code:40,name:"totalPatternLength",parser:d},{code:73,name:"numberOfLineTypes",parser:d},{code:72,parser:d},{code:3,name:"description",parser:d},{code:70,name:"standardFlag",parser:d},{code:2,name:"name",parser:d},{code:100,name:"subclassMarker",parser:d},...rJ]),STYLE:c([{code:1e3,name:"extendedFont",parser:d},{code:1001},{code:4,name:"bigFont",parser:d},{code:3,name:"font",parser:d},{code:42,name:"lastHeight",parser:d},{code:71,name:"textGenerationFlag",parser:d},{code:50,name:"obliqueAngle",parser:d},{code:41,name:"widthFactor",parser:d},{code:40,name:"fixedTextHeight",parser:d},{code:70,name:"standardFlag",parser:d},{code:2,name:"name",parser:d},{code:100,name:"subclassMarker",parser:d},...rJ]),VPORT:c([{code:[63,421,431],name:"ambientColor",parser:d},{code:142,name:"contrast",parser:d},{code:141,name:"brightness",parser:d},{code:282,name:"defaultLightingType",parser:d},{code:292,name:"isDefaultLightingOn",parser:u},{code:348,name:"visualStyleObjectId",parser:d},{code:333,name:"shadePlotObjectId",parser:d},{code:332,name:"backgroundObjectId",parser:d},{code:61,name:"majorGridLines",parser:d},{code:170,name:"shadePlotSetting",parser:d},{code:146,name:"elevation",parser:d},{code:79,name:"orthographicType",parser:d},{code:112,name:"ucsYAxis",parser:l},{code:111,name:"ucsXAxis",parser:l},{code:110,name:"ucsOrigin",parser:l},{code:74,name:"ucsIconSetting",parser:d},{code:71,name:"viewMode",parser:d},{code:281,name:"renderMode",parser:d},{code:1,name:"styleSheet",parser:d},{code:[331,441],name:"frozenLayers",parser:d,isMultiple:!0},{code:72,name:"circleSides",parser:d},{code:51,name:"viewTwistAngle",parser:d},{code:50,name:"snapRotationAngle",parser:d},{code:45,name:"viewHeight",parser:d},{code:44,name:"backClippingPlane",parser:d},{code:43,name:"frontClippingPlane",parser:d},{code:42,name:"lensLength",parser:d},{code:17,name:"viewTarget",parser:l},{code:16,name:"viewDirectionFromTarget",parser:l},{code:15,name:"gridSpacing",parser:l},{code:14,name:"snapSpacing",parser:l},{code:13,name:"snapBasePoint",parser:l},{code:12,name:"center",parser:l},{code:11,name:"upperRightCorner",parser:l},{code:10,name:"lowerLeftCorner",parser:l},{code:70,name:"standardFlag",parser:d},{code:2,name:"name",parser:d},{code:100,name:"subclassMarker",parser:d},...rJ])},r4=c([{code:70,name:"maxNumberOfEntries",parser:d},{code:100,name:"subclassMarker",parser:d},{code:330,name:"ownerObjectId",parser:d},{code:102},{code:360,isMultiple:!0},{code:102},{code:5,name:"handle",parser:d},{code:2,name:"name",parser:d}]);function r2(e,a){let r={};for(;!o(e,0,"EOF")&&!o(e,0,"ENDSEC");){if(o(e,0,"TABLE")){e=a.next();let t={entries:[]};r4(e,a,t),r[t.name]=t}if(o(e,0)&&!o(e,0,"ENDTAB")){let t=e.value;e=a.next();let n=r1[t];if(!n){console.warn(`parseTable: Invalid table name '${t}'`),e=a.next();continue}let o={};n(e,a,o),r[t]?.entries.push(o)}e=a.next()}return r}function r3(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}class r7{next(){if(!this.hasNext())return this._eof?console.warn("Cannot call 'next' after EOF group has been read"):console.warn("Unexpected end of input: EOF group not read before end of file. Ended on code "+this._data[this._pointer]),{code:0,value:"EOF"};let e=parseInt(this._data[this._pointer++],10),a=r5(e,this._data[this._pointer++]),r={code:e,value:a};return o(r,0,"EOF")&&(this._eof=!0),this.lastReadGroup=r,r}peek(){if(!this.hasNext()){if(this._eof)throw Error("Cannot call 'next' after EOF group has been read");throw Error("Unexpected end of input: EOF group not read before end of file. Ended on code "+this._data[this._pointer])}let e={code:parseInt(this._data[this._pointer]),value:0};return e.value=r5(e.code,this._data[this._pointer+1]),e}rewind(e){e=e||1,this._pointer=this._pointer-2*e}hasNext(){return!this._eof&&!(this._pointer>this._data.length-2)}isEOF(){return this._eof}constructor(e){r3(this,"_pointer",void 0),r3(this,"_data",void 0),r3(this,"_eof",void 0),r3(this,"lastReadGroup",{code:0,value:0}),this._pointer=0,this._data=e,this._eof=!1}}function r5(e,a){return e<=9?a:e>=10&&e<=59?parseFloat(a.trim()):e>=60&&e<=99?parseInt(a.trim()):e>=100&&e<=109?a:e>=110&&e<=149?parseFloat(a.trim()):e>=160&&e<=179?parseInt(a.trim()):e>=210&&e<=239?parseFloat(a.trim()):e>=270&&e<=289?parseInt(a.trim()):e>=290&&e<=299?function(e){if("0"===e)return!1;if("1"===e)return!0;throw TypeError("String '"+e+"' cannot be cast to Boolean type")}(a.trim()):e>=300&&e<=369?a:e>=370&&e<=389?parseInt(a.trim()):e>=390&&e<=399?a:e>=400&&e<=409?parseInt(a.trim()):e>=410&&e<=419?a:e>=420&&e<=429?parseInt(a.trim()):e>=430&&e<=439?a:e>=440&&e<=459?parseInt(a.trim()):e>=460&&e<=469?parseFloat(a.trim()):e>=470&&e<=481||999===e||e>=1e3&&e<=1009?a:e>=1010&&e<=1059?parseFloat(a.trim()):e>=1060&&e<=1071?parseInt(a.trim()):(console.log("WARNING: Group code does not have a defined type: %j",{code:e,value:a}),a)}function r6(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}class r9{parseStart(e){this.startCode=e.code}setPoint(e){if(this.code=e.code,this.value=e.value,this.startCode===this.code&&(this.x=this.value),this.startCode===this.code+10)this.y=this.value;else{let e={x:this.x??0,y:this.y??0,z:this.z??0};return this.reset(),e}if(this.startCode===this.code+20)this.z=this.value;else{let e={x:this.x??0,y:this.y??0,z:this.z??0};return this.reset(),e}}reset(){this.x=void 0,this.y=void 0,this.z=void 0}constructor(){r6(this,"point",{}),r6(this,"startCode",0),r6(this,"code",0),r6(this,"value",0),r6(this,"x",void 0),r6(this,"y",void 0),r6(this,"z",void 0)}}function r8(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}class te{constructor(){r8(this,"encoding","utf-8"),r8(this,"encodingFailureFatal",!1)}}class ta extends Error{constructor(e,a,r){let t=`[Line ${a}]: ${e}`;r?.cause&&(t+=`
|
|
2
2
|
Caused by ${r.cause.toString()}
|
|
3
|
-
${r.cause.stack}`),super(t),
|
|
3
|
+
${r.cause.stack}`),super(t),r8(this,"line",void 0),this.line=a}}class tr extends EventTarget{Feed(e,a=!1){let r=this._decoder.decode(e??void 0,{stream:!a});this.FeedString(r,a)}FeedString(e,a=!1){if(this._finalChunkSeen)throw Error("Data fed after final chunk processed");a&&(this._finalChunkSeen=!0),this._curChunk+=e,this._ProcessCurChunk(),a&&this._Finalize()}_Finalize(){}async FeedFile(e,a){let r=e.byteLength;for(let t=0;t<r;t+=65536){a?.throwIfAborted();let n=Math.min(r-t,65536),o=await e.slice(t,t+n);this.Feed(o,t+n>=r)}}_ProcessCurChunk(){for(let e of this._ConsumeCurChunkLines())if(this._ProcessLine(e),this._curLineNum++,!this._eof&&"HEADER"===this._curSection){let e=this._curValue.value;9===this._curValue.code?this._currVarName=e:10===this._curValue.code?this._pointParser.parseStart(this._curValue):this._pointParser.startCode===this._curValue.code||this._pointParser.startCode+10===this._curValue.code||this._pointParser.startCode+20===this._curValue.code?e=this._pointParser.setPoint(this._curValue):this._currVarName&&(this.dxf.header[this._currVarName]=e)}}*_ConsumeCurChunkLines(){let e=0,a=this._curChunk.length;for(;e<a;){let r=this._curChunk.indexOf("\r",e),t=0;if(r>=0?(t=r+1)<a&&"\n"==this._curChunk.charAt(t)&&t++:(r=this._curChunk.indexOf("\n",e))>=0&&(t=r+1),r<0)break;yield this._curChunk.substring(e,r),e=t}0!=e&&(this._curChunk=this._curChunk.substring(e))}_ProcessLine(e){if(null===this._curGroupCode){let a=e.trim();this._curGroupCode=parseInt(a),isNaN(this._curGroupCode)&&this._Error("Bad group code: "+a);return}let a=new tt(this._curGroupCode,e);if(!o(a,0,"EOF")){switch(a.value){case"SECTION":this._curSection="SECTION";break;case"HEADER":this._curSection="HEADER";break;case"BLOCKS":this._curSection="BLOCKS";break;case"ENTITIES":this._curSection="ENTITIES";break;case"TABLES":this._curSection="TABLES";break;case"OBJECTS":this._curSection="OBJECTS"}this._eof=!1}o(a,0,"EOF")&&(this._eof=!0),this._curValue=a,this._curGroupCode=null}_Error(e,a=null){let r;throw a&&(r={cause:a}),new ta(e,this._curLineNum,r)}constructor(e=new te){super(),r8(this,"dxf",{header:{},blocks:{},entities:[],tables:{},objects:{byName:{},byTree:void 0}}),r8(this,"_decoder",void 0),r8(this,"_pointParser",void 0),r8(this,"_finalChunkSeen",!1),r8(this,"_curChunk",""),r8(this,"_curGroupCode",null),r8(this,"_curLineNum",1),r8(this,"_eof",!1),r8(this,"_curValue",{code:0,value:0}),r8(this,"_curSection",""),r8(this,"_currVarName",""),this._decoder=new TextDecoder(e.encoding,{fatal:e.encodingFailureFatal}),this._pointParser=new r9}}class tt{constructor(e,a){r8(this,"code",void 0),r8(this,"value",void 0),this.code=e,this.value=r5(e,a)}}function tn(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}class to{constructor(){tn(this,"encoding","utf-8"),tn(this,"encodingFailureFatal",!1)}}class ts extends EventTarget{parseSync(e){let a=new r7(e.split(/\r\n|\r|\n/g));if(!a.hasNext())throw Error("Empty file");return this.parseAll(a)}parseStream(e){let a="",r=this;return new Promise((t,n)=>{e.on("data",e=>{a+=e}),e.on("end",()=>{try{let e=a.split(/\r\n|\r|\n/g),n=new r7(e);if(!n.hasNext())throw Error("Empty file");t(r.parseAll(n))}catch(e){n(e)}}),e.on("error",e=>{n(e)})})}async parseFromUrl(e,a){let r=await fetch(e,a);if(!r.body)return null;let t=r.body.getReader(),n="";for(;;){let{done:e,value:a}=await t.read();if(e){n+=this._decoder.decode(new ArrayBuffer(0),{stream:!1});break}n+=this._decoder.decode(a,{stream:!0})}return this.parseSync(n)}parseAll(e){let a={header:{},blocks:{},entities:[],tables:{},objects:{byName:{},byTree:void 0}},r=e.next();for(;!o(r,0,"EOF");)o(r,0,"SECTION")&&(o(r=e.next(),2,"HEADER")?(r=e.next(),a.header=rU(r,e)):o(r,2,"BLOCKS")?(r=e.next(),a.blocks=rH(r,e)):o(r,2,"ENTITIES")?(r=e.next(),a.entities=rB(r,e)):o(r,2,"TABLES")?(r=e.next(),a.tables=r2(r,e)):o(r,2,"OBJECTS")&&(r=e.next(),a.objects=rZ(r,e))),r=e.next();return a}constructor(e=new to){super(),tn(this,"_decoder",void 0),this._decoder=new TextDecoder(e.encoding,{fatal:e.encodingFailureFatal})}}export{am as ArcEntityParser,aO as AttDefEntityParser,ej as AttDefMTextFlag,eb as AttachmentPoint,eY as AttributeFlag,eI as BlockTypeFlag,eR as BoundaryPathEdgeType,ev as BoundaryPathTypeFlag,a_ as CircleEntityParser,eh as ColorCode,ac as CommonEntitySnippets,t as DefaultDxfHeaderVariables,eU as DefaultLightingType,aI as DefaultTextEntity,eS as DimensionTextHorizontal,eT as DimensionTextLineSpacing,eD as DimensionTextVertical,eN as DimensionToleranceTextVertical,ef as DimensionType,eO as DimensionZeroSuppression,eg as DimensionZeroSuppressionAngular,ta as DxfParsingError,tr as DxfStreamParser,te as DxfStreamParserOptions,aC as EllipseEntityParser,ey as HatchAssociativity,eP as HatchBoundaryAnnotation,aY as HatchEntityParser,eM as HatchGradientColorFlag,eC as HatchGradientFlag,eL as HatchPatternType,e_ as HatchSolidFill,eA as HatchStyle,n as INDEXED_CHUNK_SIZE,aK as InsertEntityParser,eJ as LWPolylineFlag,a6 as LWPolylineParser,eZ as LeaderCreationFlag,aq as LeaderEntityParser,a4 as LineEntityParser,e$ as MTextDrawingDirection,rn as MTextEntityParser,rt as MTextEntityParserSnippets,eF as Measurement,ex as ObscuredLineTypes,eH as OrthographicType,rc as PointEntityParser,eq as PolylineFlag,rh as PolylineParser,eV as RenderMode,ek as ReservedLineweight,a as SPLINE_SUBDIVISION,rD as SectionEntityParser,eG as ShadePlotMode,eW as ShadowMode,eQ as SmoothType,rN as SolidEntityParser,rL as SplineEntityParser,e1 as SplineFlag,r as TESSELLATION_ANGLE,af as TextEntityParser,ah as TextEntityParserSnippets,eX as TextGenerationFlag,ez as TextHorizontalAlign,eK as TextVerticalAlign,eB as UCSPerViewport,e as UndeterminedBlockColor,e0 as VertexFlag,rp as VertexParser,ew as ViewportStatusFlag,a9 as classify,ts as default,ai as ensureHandle,re as ensurePoint3D,a8 as generateIntegers,o as isMatched,rG as parseBlock,rH as parseBlocks,rB as parseEntities,rU as parseHeader,rZ as parseObjects,r2 as parseTables,ad as skipApplicationGroups};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export declare enum ImageFlags {
|
|
2
|
+
ShowImage = 1,
|
|
3
|
+
ShowImageWhenNotAlignedWithScreen = 2,
|
|
4
|
+
UseClippingBoundary = 4,
|
|
5
|
+
TransparencyIsOn = 8
|
|
6
|
+
}
|
|
7
|
+
export declare enum ImageClippingBoundaryType {
|
|
8
|
+
Rectangular = 1,
|
|
9
|
+
Polygonal = 2
|
|
10
|
+
}
|
|
11
|
+
export declare enum ImageClipMode {
|
|
12
|
+
Outside = 0,
|
|
13
|
+
Inside = 1
|
|
14
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type DxfArrayScanner from '../../DxfArrayScanner';
|
|
2
|
+
import type { ScannerGroup } from '../../DxfArrayScanner';
|
|
3
|
+
import type { ImageEntity } from './types';
|
|
4
|
+
export declare class ImageEntityParser {
|
|
5
|
+
static ForEntityName: string;
|
|
6
|
+
private parser;
|
|
7
|
+
parseEntity(scanner: DxfArrayScanner, curr: ScannerGroup): ImageEntity;
|
|
8
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import type { Point2D, Point3D } from '../../../types';
|
|
2
|
+
import type { CommonDxfEntity } from '../shared';
|
|
3
|
+
import type { ImageClipMode, ImageClippingBoundaryType } from './consts';
|
|
4
|
+
export interface ImageEntity extends CommonDxfEntity {
|
|
5
|
+
type: 'IMAGE';
|
|
6
|
+
subclassMarker: 'AcDbRasterImage';
|
|
7
|
+
/** Class version */
|
|
8
|
+
version: number;
|
|
9
|
+
/** Insertion point (in WCS) */
|
|
10
|
+
position: Point3D;
|
|
11
|
+
/**
|
|
12
|
+
* U-vector of a single pixel (points along the visual bottom of the image,
|
|
13
|
+
* starting at the insertion point) (in WCS)
|
|
14
|
+
* */
|
|
15
|
+
uPixel: Point3D;
|
|
16
|
+
/**
|
|
17
|
+
* V-vector of a single pixel (points along the visual left side of the image,
|
|
18
|
+
* starting at the insertion point) (in WCS)
|
|
19
|
+
* */
|
|
20
|
+
vPixel: Point3D;
|
|
21
|
+
/** Image size in pixels */
|
|
22
|
+
imageSize: Point2D;
|
|
23
|
+
/** Hard reference to imagedef object */
|
|
24
|
+
imageDefHandle: string;
|
|
25
|
+
/**
|
|
26
|
+
* Image display properties
|
|
27
|
+
* @see {import("./consts").ImageFlags}
|
|
28
|
+
* */
|
|
29
|
+
flags: number;
|
|
30
|
+
/** Clipping state. `true` if it's clipping state is ON, `false` when OFF */
|
|
31
|
+
isClipped: boolean;
|
|
32
|
+
/** Brightness value (0-100; default = 50) */
|
|
33
|
+
brightness: number;
|
|
34
|
+
/** Contrast value (0-100; default = 50) */
|
|
35
|
+
contrast: number;
|
|
36
|
+
/** Fade value (0-100; default = 0) */
|
|
37
|
+
fade: number;
|
|
38
|
+
/** Hard reference to imagedef_reactor object */
|
|
39
|
+
imageDefReactorHandle: string;
|
|
40
|
+
/** Clipping boundary type */
|
|
41
|
+
clippingBoundaryType: ImageClippingBoundaryType;
|
|
42
|
+
/** Number of clip boundary vertices that follow */
|
|
43
|
+
countBoundaryPoints: number;
|
|
44
|
+
/**
|
|
45
|
+
* Clip boundary vertex (in OCS)
|
|
46
|
+
* @note
|
|
47
|
+
* 1. For rectangular clip boundary type, two opposite corners must be specified.
|
|
48
|
+
* Default is (-0.5,-0.5), (size.x-0.5, size.y-0.5).
|
|
49
|
+
* 2. For polygonal clip boundary type, three or more vertices must be specified.
|
|
50
|
+
* Polygonal vertices must be listed sequentially
|
|
51
|
+
* */
|
|
52
|
+
clippingBoundaryPath: Point2D[];
|
|
53
|
+
clipMode: ImageClipMode;
|
|
54
|
+
}
|
|
@@ -5,7 +5,10 @@ export interface DXFParserSnippet {
|
|
|
5
5
|
code: number | number[];
|
|
6
6
|
name?: string;
|
|
7
7
|
parser?(curr: ScannerGroup, scanner: DxfArrayScanner, entity: any): any;
|
|
8
|
+
/** When specific group code can be read multiple times, set this `true` */
|
|
8
9
|
isMultiple?: boolean;
|
|
10
|
+
/** When isMultiple is `true`, save array when `false`, replace as is when `true` */
|
|
11
|
+
isReducible?: boolean;
|
|
9
12
|
pushContext?: boolean;
|
|
10
13
|
}
|
|
11
14
|
export type DXFParser = (curr: ScannerGroup, scanner: DxfArrayScanner, target: any) => boolean;
|