UNPKG

@mlightcad/libredwg-web

Version:

A DWG/DXF JavaScript parser based on libredwg

962 lines 9.17 MB
var __defProp = Object.defineProperty; var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); const MODEL_SPACE = "*MODEL_SPACE"; const MODEL_SPACE_PREFIX = "*PAPER_SPACE"; const isModelSpace = (name) => { return name && name.toUpperCase() == MODEL_SPACE; }; const isPaperSpace = (name) => { return name && name.toUpperCase().startsWith(MODEL_SPACE_PREFIX); }; var DwgCodePage = /* @__PURE__ */ ((DwgCodePage2) => { DwgCodePage2[DwgCodePage2["CP_UTF8"] = 0] = "CP_UTF8"; DwgCodePage2[DwgCodePage2["CP_US_ASCII"] = 1] = "CP_US_ASCII"; DwgCodePage2[DwgCodePage2["CP_ISO_8859_1"] = 2] = "CP_ISO_8859_1"; DwgCodePage2[DwgCodePage2["CP_ISO_8859_2"] = 3] = "CP_ISO_8859_2"; DwgCodePage2[DwgCodePage2["CP_ISO_8859_3"] = 4] = "CP_ISO_8859_3"; DwgCodePage2[DwgCodePage2["CP_ISO_8859_4"] = 5] = "CP_ISO_8859_4"; DwgCodePage2[DwgCodePage2["CP_ISO_8859_5"] = 6] = "CP_ISO_8859_5"; DwgCodePage2[DwgCodePage2["CP_ISO_8859_6"] = 7] = "CP_ISO_8859_6"; DwgCodePage2[DwgCodePage2["CP_ISO_8859_7"] = 8] = "CP_ISO_8859_7"; DwgCodePage2[DwgCodePage2["CP_ISO_8859_8"] = 9] = "CP_ISO_8859_8"; DwgCodePage2[DwgCodePage2["CP_ISO_8859_9"] = 10] = "CP_ISO_8859_9"; DwgCodePage2[DwgCodePage2["CP_CP437"] = 11] = "CP_CP437"; DwgCodePage2[DwgCodePage2["CP_CP850"] = 12] = "CP_CP850"; DwgCodePage2[DwgCodePage2["CP_CP852"] = 13] = "CP_CP852"; DwgCodePage2[DwgCodePage2["CP_CP855"] = 14] = "CP_CP855"; DwgCodePage2[DwgCodePage2["CP_CP857"] = 15] = "CP_CP857"; DwgCodePage2[DwgCodePage2["CP_CP860"] = 16] = "CP_CP860"; DwgCodePage2[DwgCodePage2["CP_CP861"] = 17] = "CP_CP861"; DwgCodePage2[DwgCodePage2["CP_CP863"] = 18] = "CP_CP863"; DwgCodePage2[DwgCodePage2["CP_CP864"] = 19] = "CP_CP864"; DwgCodePage2[DwgCodePage2["CP_CP865"] = 20] = "CP_CP865"; DwgCodePage2[DwgCodePage2["CP_CP869"] = 21] = "CP_CP869"; DwgCodePage2[DwgCodePage2["CP_CP932"] = 22] = "CP_CP932"; DwgCodePage2[DwgCodePage2["CP_MACINTOSH"] = 23] = "CP_MACINTOSH"; DwgCodePage2[DwgCodePage2["CP_BIG5"] = 24] = "CP_BIG5"; DwgCodePage2[DwgCodePage2["CP_CP949"] = 25] = "CP_CP949"; DwgCodePage2[DwgCodePage2["CP_JOHAB"] = 26] = "CP_JOHAB"; DwgCodePage2[DwgCodePage2["CP_CP866"] = 27] = "CP_CP866"; DwgCodePage2[DwgCodePage2["CP_ANSI_1250"] = 28] = "CP_ANSI_1250"; DwgCodePage2[DwgCodePage2["CP_ANSI_1251"] = 29] = "CP_ANSI_1251"; DwgCodePage2[DwgCodePage2["CP_ANSI_1252"] = 30] = "CP_ANSI_1252"; DwgCodePage2[DwgCodePage2["CP_GB2312"] = 31] = "CP_GB2312"; DwgCodePage2[DwgCodePage2["CP_ANSI_1253"] = 32] = "CP_ANSI_1253"; DwgCodePage2[DwgCodePage2["CP_ANSI_1254"] = 33] = "CP_ANSI_1254"; DwgCodePage2[DwgCodePage2["CP_ANSI_1255"] = 34] = "CP_ANSI_1255"; DwgCodePage2[DwgCodePage2["CP_ANSI_1256"] = 35] = "CP_ANSI_1256"; DwgCodePage2[DwgCodePage2["CP_ANSI_1257"] = 36] = "CP_ANSI_1257"; DwgCodePage2[DwgCodePage2["CP_ANSI_874"] = 37] = "CP_ANSI_874"; DwgCodePage2[DwgCodePage2["CP_ANSI_932"] = 38] = "CP_ANSI_932"; DwgCodePage2[DwgCodePage2["CP_ANSI_936"] = 39] = "CP_ANSI_936"; DwgCodePage2[DwgCodePage2["CP_ANSI_949"] = 40] = "CP_ANSI_949"; DwgCodePage2[DwgCodePage2["CP_ANSI_950"] = 41] = "CP_ANSI_950"; DwgCodePage2[DwgCodePage2["CP_ANSI_1361"] = 42] = "CP_ANSI_1361"; DwgCodePage2[DwgCodePage2["CP_UTF16"] = 43] = "CP_UTF16"; DwgCodePage2[DwgCodePage2["CP_ANSI_1258"] = 44] = "CP_ANSI_1258"; DwgCodePage2[DwgCodePage2["CP_UNDEFINED"] = 255] = "CP_UNDEFINED"; return DwgCodePage2; })(DwgCodePage || {}); const encodings = [ "utf-8", // 0 "utf-8", // US ASCII "iso-8859-1", "iso-8859-2", "iso-8859-3", "iso-8859-4", "iso-8859-5", "iso-8859-6", "iso-8859-7", "iso-8859-8", "iso-8859-9", // 10 "utf-8", // DOS English "utf-8", // 12 DOS Latin-1 "utf-8", // DOS Central European "utf-8", // DOS Cyrillic "utf-8", // DOS Turkish "utf-8", // DOS Portoguese "utf-8", // DOS Icelandic "utf-8", // DOS Hebrew "utf-8", // DOS Arabic (IBM) "utf-8", // DOS Nordic "utf-8", // DOS Greek "shift-jis", // DOS Japanese (shiftjis) "macintosh", // 23 "big5", "utf-8", // Korean (Wansung + Johab) "utf-8", // Johab? "ibm866", // Russian "windows-1250", // Central + Eastern European "windows-1251", // Cyrillic "windows-1252", // Western European "gbk", // EUC-CN Chinese "windows-1253", // Greek "windows-1254", // Turkish "windows-1255", // Hebrew "windows-1256", // Arabic "windows-1257", // Baltic "windows-874", // Thai "shift-jis", // 38 Japanese (extended shiftjis, windows-31j) "gbk", // 39 Simplified Chinese "euc-kr", // 40 Korean Wansung "big5", // 41 Trad Chinese "utf-8", // 42 Korean Wansung "utf-16le", "windows-1258" // Vietnamese ]; const dwgCodePageToEncoding = (codepage) => { return encodings[codepage]; }; var DwgDimensionType = /* @__PURE__ */ ((DwgDimensionType2) => { DwgDimensionType2[DwgDimensionType2["Rotated"] = 0] = "Rotated"; DwgDimensionType2[DwgDimensionType2["Aligned"] = 1] = "Aligned"; DwgDimensionType2[DwgDimensionType2["Angular"] = 2] = "Angular"; DwgDimensionType2[DwgDimensionType2["Diameter"] = 3] = "Diameter"; DwgDimensionType2[DwgDimensionType2["Radius"] = 4] = "Radius"; DwgDimensionType2[DwgDimensionType2["Angular3Point"] = 5] = "Angular3Point"; DwgDimensionType2[DwgDimensionType2["Ordinate"] = 6] = "Ordinate"; DwgDimensionType2[DwgDimensionType2["ReferenceIsExclusive"] = 32] = "ReferenceIsExclusive"; DwgDimensionType2[DwgDimensionType2["IsOrdinateXTypeFlag"] = 64] = "IsOrdinateXTypeFlag"; DwgDimensionType2[DwgDimensionType2["IsCustomTextPositionFlag"] = 128] = "IsCustomTextPositionFlag"; return DwgDimensionType2; })(DwgDimensionType || {}); var DwgAttachmentPoint = /* @__PURE__ */ ((DwgAttachmentPoint2) => { DwgAttachmentPoint2[DwgAttachmentPoint2["TopLeft"] = 1] = "TopLeft"; DwgAttachmentPoint2[DwgAttachmentPoint2["TopCenter"] = 2] = "TopCenter"; DwgAttachmentPoint2[DwgAttachmentPoint2["TopRight"] = 3] = "TopRight"; DwgAttachmentPoint2[DwgAttachmentPoint2["MiddleLeft"] = 4] = "MiddleLeft"; DwgAttachmentPoint2[DwgAttachmentPoint2["MiddleCenter"] = 5] = "MiddleCenter"; DwgAttachmentPoint2[DwgAttachmentPoint2["MiddleRight"] = 6] = "MiddleRight"; DwgAttachmentPoint2[DwgAttachmentPoint2["BottomLeft"] = 7] = "BottomLeft"; DwgAttachmentPoint2[DwgAttachmentPoint2["BottomCenter"] = 8] = "BottomCenter"; DwgAttachmentPoint2[DwgAttachmentPoint2["BottomRight"] = 9] = "BottomRight"; return DwgAttachmentPoint2; })(DwgAttachmentPoint || {}); var DwgDimensionTextLineSpacing = /* @__PURE__ */ ((DwgDimensionTextLineSpacing2) => { DwgDimensionTextLineSpacing2[DwgDimensionTextLineSpacing2["AtLeast"] = 1] = "AtLeast"; DwgDimensionTextLineSpacing2[DwgDimensionTextLineSpacing2["Exact"] = 2] = "Exact"; return DwgDimensionTextLineSpacing2; })(DwgDimensionTextLineSpacing || {}); var DwgDimensionTextVertical = /* @__PURE__ */ ((DwgDimensionTextVertical2) => { DwgDimensionTextVertical2[DwgDimensionTextVertical2["Center"] = 0] = "Center"; DwgDimensionTextVertical2[DwgDimensionTextVertical2["Above"] = 1] = "Above"; DwgDimensionTextVertical2[DwgDimensionTextVertical2["Outside"] = 2] = "Outside"; DwgDimensionTextVertical2[DwgDimensionTextVertical2["JIS"] = 3] = "JIS"; DwgDimensionTextVertical2[DwgDimensionTextVertical2["Below"] = 4] = "Below"; return DwgDimensionTextVertical2; })(DwgDimensionTextVertical || {}); var DwgDimensionZeroSuppression = /* @__PURE__ */ ((DwgDimensionZeroSuppression2) => { DwgDimensionZeroSuppression2[DwgDimensionZeroSuppression2["Feet"] = 0] = "Feet"; DwgDimensionZeroSuppression2[DwgDimensionZeroSuppression2["None"] = 1] = "None"; DwgDimensionZeroSuppression2[DwgDimensionZeroSuppression2["Inch"] = 2] = "Inch"; DwgDimensionZeroSuppression2[DwgDimensionZeroSuppression2["FeetAndInch"] = 3] = "FeetAndInch"; DwgDimensionZeroSuppression2[DwgDimensionZeroSuppression2["Leading"] = 4] = "Leading"; DwgDimensionZeroSuppression2[DwgDimensionZeroSuppression2["Trailing"] = 8] = "Trailing"; DwgDimensionZeroSuppression2[DwgDimensionZeroSuppression2["LeadingAndTrailing"] = 12] = "LeadingAndTrailing"; return DwgDimensionZeroSuppression2; })(DwgDimensionZeroSuppression || {}); var DwgDimensionZeroSuppressionAngular = /* @__PURE__ */ ((DwgDimensionZeroSuppressionAngular2) => { DwgDimensionZeroSuppressionAngular2[DwgDimensionZeroSuppressionAngular2["None"] = 0] = "None"; DwgDimensionZeroSuppressionAngular2[DwgDimensionZeroSuppressionAngular2["Leading"] = 1] = "Leading"; DwgDimensionZeroSuppressionAngular2[DwgDimensionZeroSuppressionAngular2["Trailing"] = 2] = "Trailing"; DwgDimensionZeroSuppressionAngular2[DwgDimensionZeroSuppressionAngular2["LeadingAndTrailing"] = 3] = "LeadingAndTrailing"; return DwgDimensionZeroSuppressionAngular2; })(DwgDimensionZeroSuppressionAngular || {}); var DwgDimensionTextHorizontal = /* @__PURE__ */ ((DwgDimensionTextHorizontal2) => { DwgDimensionTextHorizontal2[DwgDimensionTextHorizontal2["Center"] = 0] = "Center"; DwgDimensionTextHorizontal2[DwgDimensionTextHorizontal2["Left"] = 1] = "Left"; DwgDimensionTextHorizontal2[DwgDimensionTextHorizontal2["Right"] = 2] = "Right"; DwgDimensionTextHorizontal2[DwgDimensionTextHorizontal2["OverFirst"] = 3] = "OverFirst"; DwgDimensionTextHorizontal2[DwgDimensionTextHorizontal2["OverSecond"] = 4] = "OverSecond"; return DwgDimensionTextHorizontal2; })(DwgDimensionTextHorizontal || {}); var DwgDimensionToleranceTextVertical = /* @__PURE__ */ ((DwgDimensionToleranceTextVertical2) => { DwgDimensionToleranceTextVertical2[DwgDimensionToleranceTextVertical2["Bottom"] = 0] = "Bottom"; DwgDimensionToleranceTextVertical2[DwgDimensionToleranceTextVertical2["Center"] = 1] = "Center"; DwgDimensionToleranceTextVertical2[DwgDimensionToleranceTextVertical2["Top"] = 2] = "Top"; return DwgDimensionToleranceTextVertical2; })(DwgDimensionToleranceTextVertical || {}); var DwgHatchSolidFill = /* @__PURE__ */ ((DwgHatchSolidFill2) => { DwgHatchSolidFill2[DwgHatchSolidFill2["PatternFill"] = 0] = "PatternFill"; DwgHatchSolidFill2[DwgHatchSolidFill2["SolidFill"] = 1] = "SolidFill"; return DwgHatchSolidFill2; })(DwgHatchSolidFill || {}); var DwgHatchAssociativity = /* @__PURE__ */ ((DwgHatchAssociativity2) => { DwgHatchAssociativity2[DwgHatchAssociativity2["NonAssociative"] = 0] = "NonAssociative"; DwgHatchAssociativity2[DwgHatchAssociativity2["Associative"] = 1] = "Associative"; return DwgHatchAssociativity2; })(DwgHatchAssociativity || {}); var DwgHatchStyle = /* @__PURE__ */ ((DwgHatchStyle2) => { DwgHatchStyle2[DwgHatchStyle2["Normal"] = 0] = "Normal"; DwgHatchStyle2[DwgHatchStyle2["Outer"] = 1] = "Outer"; DwgHatchStyle2[DwgHatchStyle2["Ignore"] = 2] = "Ignore"; return DwgHatchStyle2; })(DwgHatchStyle || {}); var DwgHatchPatternType = /* @__PURE__ */ ((DwgHatchPatternType2) => { DwgHatchPatternType2[DwgHatchPatternType2["UserDefined"] = 0] = "UserDefined"; DwgHatchPatternType2[DwgHatchPatternType2["Predefined"] = 1] = "Predefined"; DwgHatchPatternType2[DwgHatchPatternType2["Custom"] = 2] = "Custom"; return DwgHatchPatternType2; })(DwgHatchPatternType || {}); var DwgHatchBoundaryAnnotation = /* @__PURE__ */ ((DwgHatchBoundaryAnnotation2) => { DwgHatchBoundaryAnnotation2[DwgHatchBoundaryAnnotation2["NotAnnotated"] = 0] = "NotAnnotated"; DwgHatchBoundaryAnnotation2[DwgHatchBoundaryAnnotation2["Annotated"] = 1] = "Annotated"; return DwgHatchBoundaryAnnotation2; })(DwgHatchBoundaryAnnotation || {}); var DwgHatchGradientFlag = /* @__PURE__ */ ((DwgHatchGradientFlag2) => { DwgHatchGradientFlag2[DwgHatchGradientFlag2["Solid"] = 0] = "Solid"; DwgHatchGradientFlag2[DwgHatchGradientFlag2["Gradient"] = 1] = "Gradient"; return DwgHatchGradientFlag2; })(DwgHatchGradientFlag || {}); var DwgHatchGradientColorFlag = /* @__PURE__ */ ((DwgHatchGradientColorFlag2) => { DwgHatchGradientColorFlag2[DwgHatchGradientColorFlag2["TwoColor"] = 0] = "TwoColor"; DwgHatchGradientColorFlag2[DwgHatchGradientColorFlag2["OneColor"] = 1] = "OneColor"; return DwgHatchGradientColorFlag2; })(DwgHatchGradientColorFlag || {}); var DwgBoundaryPathTypeFlag = /* @__PURE__ */ ((DwgBoundaryPathTypeFlag2) => { DwgBoundaryPathTypeFlag2[DwgBoundaryPathTypeFlag2["Default"] = 0] = "Default"; DwgBoundaryPathTypeFlag2[DwgBoundaryPathTypeFlag2["External"] = 1] = "External"; DwgBoundaryPathTypeFlag2[DwgBoundaryPathTypeFlag2["Polyline"] = 2] = "Polyline"; DwgBoundaryPathTypeFlag2[DwgBoundaryPathTypeFlag2["Derived"] = 4] = "Derived"; DwgBoundaryPathTypeFlag2[DwgBoundaryPathTypeFlag2["Textbox"] = 8] = "Textbox"; DwgBoundaryPathTypeFlag2[DwgBoundaryPathTypeFlag2["Outermost"] = 16] = "Outermost"; return DwgBoundaryPathTypeFlag2; })(DwgBoundaryPathTypeFlag || {}); var DwgBoundaryPathEdgeType = /* @__PURE__ */ ((DwgBoundaryPathEdgeType2) => { DwgBoundaryPathEdgeType2[DwgBoundaryPathEdgeType2["Line"] = 1] = "Line"; DwgBoundaryPathEdgeType2[DwgBoundaryPathEdgeType2["Circular"] = 2] = "Circular"; DwgBoundaryPathEdgeType2[DwgBoundaryPathEdgeType2["Elliptic"] = 3] = "Elliptic"; DwgBoundaryPathEdgeType2[DwgBoundaryPathEdgeType2["Spline"] = 4] = "Spline"; return DwgBoundaryPathEdgeType2; })(DwgBoundaryPathEdgeType || {}); var DwgPolylineFlag = /* @__PURE__ */ ((DwgPolylineFlag2) => { DwgPolylineFlag2[DwgPolylineFlag2["CLOSED_POLYLINE"] = 1] = "CLOSED_POLYLINE"; DwgPolylineFlag2[DwgPolylineFlag2["CURVE_FIT"] = 2] = "CURVE_FIT"; DwgPolylineFlag2[DwgPolylineFlag2["SPLINE_FIT"] = 4] = "SPLINE_FIT"; DwgPolylineFlag2[DwgPolylineFlag2["POLYLINE_3D"] = 8] = "POLYLINE_3D"; DwgPolylineFlag2[DwgPolylineFlag2["POLYGON_3D"] = 16] = "POLYGON_3D"; DwgPolylineFlag2[DwgPolylineFlag2["CLOSED_POLYGON"] = 32] = "CLOSED_POLYGON"; DwgPolylineFlag2[DwgPolylineFlag2["POLYFACE"] = 64] = "POLYFACE"; DwgPolylineFlag2[DwgPolylineFlag2["CONTINUOUS"] = 128] = "CONTINUOUS"; return DwgPolylineFlag2; })(DwgPolylineFlag || {}); var DwgSmoothType = /* @__PURE__ */ ((DwgSmoothType2) => { DwgSmoothType2[DwgSmoothType2["NONE"] = 0] = "NONE"; DwgSmoothType2[DwgSmoothType2["QUADRATIC"] = 5] = "QUADRATIC"; DwgSmoothType2[DwgSmoothType2["CUBIC"] = 6] = "CUBIC"; DwgSmoothType2[DwgSmoothType2["BEZIER"] = 8] = "BEZIER"; return DwgSmoothType2; })(DwgSmoothType || {}); var DwgTextGenerationFlag = /* @__PURE__ */ ((DwgTextGenerationFlag2) => { DwgTextGenerationFlag2[DwgTextGenerationFlag2["NONE"] = 0] = "NONE"; DwgTextGenerationFlag2[DwgTextGenerationFlag2["MIRRORED_X"] = 2] = "MIRRORED_X"; DwgTextGenerationFlag2[DwgTextGenerationFlag2["MIRRORED_Y"] = 4] = "MIRRORED_Y"; return DwgTextGenerationFlag2; })(DwgTextGenerationFlag || {}); var DwgTextHorizontalAlign = /* @__PURE__ */ ((DwgTextHorizontalAlign2) => { DwgTextHorizontalAlign2[DwgTextHorizontalAlign2["LEFT"] = 0] = "LEFT"; DwgTextHorizontalAlign2[DwgTextHorizontalAlign2["CENTER"] = 1] = "CENTER"; DwgTextHorizontalAlign2[DwgTextHorizontalAlign2["RIGHT"] = 2] = "RIGHT"; DwgTextHorizontalAlign2[DwgTextHorizontalAlign2["ALIGNED"] = 3] = "ALIGNED"; DwgTextHorizontalAlign2[DwgTextHorizontalAlign2["MIDDLE"] = 4] = "MIDDLE"; DwgTextHorizontalAlign2[DwgTextHorizontalAlign2["FIT"] = 5] = "FIT"; return DwgTextHorizontalAlign2; })(DwgTextHorizontalAlign || {}); var DwgTextVerticalAlign = /* @__PURE__ */ ((DwgTextVerticalAlign2) => { DwgTextVerticalAlign2[DwgTextVerticalAlign2["BASELINE"] = 0] = "BASELINE"; DwgTextVerticalAlign2[DwgTextVerticalAlign2["BOTTOM"] = 1] = "BOTTOM"; DwgTextVerticalAlign2[DwgTextVerticalAlign2["MIDDLE"] = 2] = "MIDDLE"; DwgTextVerticalAlign2[DwgTextVerticalAlign2["TOP"] = 3] = "TOP"; return DwgTextVerticalAlign2; })(DwgTextVerticalAlign || {}); const HEADER_VARIABLES = Object.freeze([ "ACADMAINTVER", "ACADVER", "ANGBASE", "ANGDIR", "ATTMODE", "AUNITS", "AUPREC", "CECOLOR", "CELTSCALE", "CELTYPE", "CELWEIGHT", "CEPSNID", "CEPSNTYPE", "CHAMFERA", "CHAMFERB", "CHAMFERC", "CHAMFERD", "CLAYER", "CMLJUST", "CMLSCALE", "CMLSTYLE", "CSHADOW", "DIMADEC", "DIMALT", "DIMALTD", "DIMALTF", "DIMALTRND", "DIMALTTD", "DIMALTTZ", "DIMALTU", "DIMALTZ", "DIMAPOST", "DIMASO", "DIMASSOC", "DIMASZ", "DIMATFIT", "DIMAUNIT", "DIMAZIN", "DIMBLK", "DIMBLK1", "DIMBLK2", "DIMCEN", "DIMCLRD", "DIMCLRE", "DIMCLRT", "DIMDEC", "DIMDLE", "DIMDLI", "DIMDSEP", "DIMEXE", "DIMEXO", "DIMFAC", "DIMGAP", "DIMJUST", "DIMLDRBLK", "DIMLFAC", "DIMLIM", "DIMLUNIT", "DIMLWD", "DIMLWE", "DIMPOST", "DIMRND", "DIMSAH", "DIMSCALE", "DIMSD1", "DIMSD2", "DIMSE1", "DIMSE2", "DIMSHO", "DIMSOXD", "DIMSTYLE", "DIMTAD", "DIMTDEC", "DIMTFAC", "DIMTIH", "DIMTIX", "DIMTM", "DIMTMOVE", "DIMTOFL", "DIMTOH", "DIMTOL", "DIMTOLJ", "DIMTP", "DIMTSZ", "DIMTVP", "DIMTXSTY", "DIMTXT", "DIMTZIN", "DIMUPT", "DIMZIN", "DISPSILH", "DRAGVS", "DWGCODEPAGE", "ELEVATION", "ENDCAPS", "EXTMAX", "EXTMIN", "EXTNAMES", "FILLETRAD", "FILLMODE", "FINGERPRINTGUID", "HALOGAP", "HANDSEED", "HIDETEXT", "HYPERLINKBASE", "INDEXCTL", "INSBASE", "INSUNITS", "INTERFERECOLOR", "INTERFEREOBJVS", "INTERFEREVPVS", "INTERSECTIONCOLOR", "INTERSECTIONDISPLAY", "JOINSTYLE", "LIMCHECK", "LIMMAX", "LIMMIN", "LTSCALE", "LUNITS", "LUPREC", "LWDISPLAY", "MAXACTVP", "MEASUREMENT", "MENU", "MIRRTEXT", "OBSCOLOR", "OBSLTYPE", "ORTHOMODE", "PDMODE", "PDSIZE", "PELEVATION", "PEXTMAX", "PEXTMIN", "PINSBASE", "PLIMCHECK", "PLIMMAX", "PLIMMIN", "PLINEGEN", "PLINEWID", "PROJECTNAME", "PROXYGRAPHICS", "PSLTSCALE", "PSTYLEMODE", "PSVPSCALE", "PUCSBASE", "PUCSNAME", "PUCSORG", "PUCSORGBACK", "PUCSORGBOTTOM", "PUCSORGFRONT", "PUCSORGLEFT", "PUCSORGRIGHT", "PUCSORGTOP", "PUCSORTHOREF", "PUCSORTHOVIEW", "PUCSXDIR", "PUCSYDIR", "QTEXTMODE", "REGENMODE", "SHADEDGE", "SHADEDIF", "SHADOWPLANELOCATION", "SKETCHINC", "SKPOLY", "SORTENTS", "SPLINESEGS", "SPLINETYPE", "SURFTAB1", "SURFTAB2", "SURFTYPE", "SURFU", "SURFV", "TDCREATE", "TDINDWG", "TDUCREATE", "TDUPDATE", "TDUSRTIMER", "TDUUPDATE", "TEXTSIZE", "TEXTSTYLE", "THICKNESS", "TILEMODE", "TRACEWID", "TREEDEPTH", "UCSBASE", "UCSNAME", "UCSORG", "UCSORGBACK", "UCSORGBOTTOM", "UCSORGFRONT", "UCSORGLEFT", "UCSORGRIGHT", "UCSORGTOP", "UCSORTHOREF", "UCSORTHOVIEW", "UCSXDIR", "UCSYDIR", "UNITMODE", "USERI1", "USERI2", "USERI3", "USERI4", "USERI5", "USERR1", "USERR2", "USERR3", "USERR4", "USERR5", "USRTIMER", "VERSIONGUID", "VISRETAIN", "WORLDVIEW", "XCLIPFRAME", "XEDIT" ]); const dwgVersions = [ { type: "invalid", hdr: "INVALI", description: "No DWG", version: 0 }, { type: "r1.1", hdr: "MC0.0", description: "MicroCAD Release 1.1", version: 0 }, { type: "r1.2", hdr: "AC1.2", description: "AutoCAD Release 1.2", version: 0 }, { type: "r1.3", hdr: "AC1.3", description: "AutoCAD Release 1.3", version: 1 }, { type: "r1.4", hdr: "AC1.40", description: "AutoCAD Release 1.4", version: 2 }, { type: "r2.0b", hdr: "AC1.50", description: "AutoCAD 2.0 beta", version: 3 }, // not seen { type: "r2.0", hdr: "AC1.50", description: "AutoCAD Release 2.0", version: 4 }, { type: "r2.10", hdr: "AC2.10", description: "AutoCAD Release 2.10", version: 5 }, { type: "r2.21", hdr: "AC2.21", description: "AutoCAD Release 2.21", version: 6 }, { type: "r2.22", hdr: "AC2.22", description: "AutoCAD Release 2.22", version: 7 }, { type: "r2.4", hdr: "AC1001", description: "AutoCAD Release 2.4", version: 8 }, { type: "r2.5", hdr: "AC1002", description: "AutoCAD Release 2.5", version: 9 }, { type: "r2.6", hdr: "AC1003", description: "AutoCAD Release 2.6", version: 10 }, { type: "r9", hdr: "AC1004", description: "AutoCAD Release 9", version: 11 }, { type: "r9c1", hdr: "AC1005", description: "AutoCAD Release 9c1", version: 12 }, { type: "r10", hdr: "AC1006", description: "AutoCAD Release 10", version: 13 }, { type: "r11b1", hdr: "AC1007", description: "AutoCAD 11 beta 1", version: 14 }, { type: "r11b2", hdr: "AC1008", description: "AutoCAD 11 beta 2", version: 15 }, { type: "r11", hdr: "AC1009", description: "AutoCAD Release 11/12 (LT R1/R2)", version: 16 }, { type: "r13b1", hdr: "AC1010", description: "AutoCAD pre-R13 a", version: 17 }, { type: "r13b2", hdr: "AC1011", description: "AutoCAD pre-R13 b", version: 18 }, { type: "r13", hdr: "AC1012", description: "AutoCAD Release 13", version: 19 }, { type: "r13c3", hdr: "AC1013", description: "AutoCAD Release 13c3", version: 20 }, { type: "r14", hdr: "AC1014", description: "AutoCAD Release 14", version: 21 }, { type: "r2000b", hdr: "AC1500", description: "AutoCAD 2000 beta", version: 22 }, { type: "r2000", hdr: "AC1015", description: "AutoCAD Release 2000", version: 23 }, { type: "r2000i", hdr: "AC1016", description: "AutoCAD Release 2000i", version: 23 }, { type: "r2002", hdr: "AC1017", description: "AutoCAD Release 2002", version: 23 }, { type: "r2004a", hdr: "AC402a", description: "AutoCAD 2004 alpha a", version: 24 }, { type: "r2004b", hdr: "AC402b", description: "AutoCAD 2004 alpha b", version: 24 }, { type: "r2004c", hdr: "AC1018", description: "AutoCAD 2004 beta", version: 24 }, // (includes versions AC1019/0x19 and AC1020/0x1a) { type: "r2004", hdr: "AC1018", description: "AutoCAD Release 2004", version: 25 }, //{ type: "r2005", hdr: "AC1019", description: "AutoCAD 2005", version: 0x19 }, // not seen //{ type: "r2006", hdr: "AC1020", description: "AutoCAD 2006", version: 0x19 }, // not seen { type: "r2007a", hdr: "AC701a", description: "AutoCAD 2007 alpha", version: 26 }, { type: "r2007b", hdr: "AC1021", description: "AutoCAD 2007 beta", version: 26 }, { type: "r2007", hdr: "AC1021", description: "AutoCAD Release 2007", version: 27 }, //{ type: "r2008", hdr: "AC1022", description: "AutoCAD 2008", version: 0x1b }, // not seen //{ type: "r2009", hdr: "AC1023", description: "AutoCAD 2009", version: 0x1b }, // not seen { type: "r2010b", hdr: "AC1024", description: "AutoCAD 2010 beta", version: 28 }, { type: "r2010", hdr: "AC1024", description: "AutoCAD Release 2010", version: 29 }, //{ type: "r2011", hdr: "AC1025", description: "AutoCAD 2011", version: 0x1d }, // not seen //{ type: "r2012", hdr: "AC1026", description: "AutoCAD 2012", version: 0x1e }, // not seen { type: "r2013b", hdr: "AC1027", description: "AutoCAD 2013 beta", version: 30 }, { type: "r2013", hdr: "AC1027", description: "AutoCAD Release 2013", version: 31 }, //{ type: "r2014", hdr: "AC1028", description: "AutoCAD 2014", version: 0x1f }, // not seen //{ type: "r2015", hdr: "AC1029", description: "AutoCAD 2015", version: 0x1f }, // not seen //{ type: "r2016", hdr: "AC1030", description: "AutoCAD 2016", version: 0x1f }, // not seen //{ type: "r2017", hdr: "AC1031", description: "AutoCAD 2017", version: 0x20 }, // not seen { type: "r2018b", hdr: "AC1032", description: "AutoCAD 2018 beta", version: 32 }, { type: "r2018", hdr: "AC1032", description: "AutoCAD Release 2018", version: 33 }, //{ type: "r2019", "AC1033", description: "AutoCAD Release 2019", version: 0x22 }, // not seen //{ type: "r2020", "AC1034", description: "AutoCAD Release 2020", version: 0x23 }, // not seen //{ type: "r2021", "AC1035", description: "AutoCAD Release 2021", version: 0x23 }, // not seen { type: "r2022b", hdr: "AC103-4", description: "AutoCAD 2022 beta", version: 36 }, { type: "r>2022", hdr: "", description: "AutoCAD Release >2022", version: 0 } ]; var createModule = (() => { var _scriptName = import.meta.url; return async function(moduleArg = {}) { var moduleRtn; var Module = moduleArg; var readyPromiseResolve, readyPromiseReject; var readyPromise = new Promise((resolve, reject) => { readyPromiseResolve = resolve; readyPromiseReject = reject; }); var ENVIRONMENT_IS_WEB = typeof window == "object"; var ENVIRONMENT_IS_WORKER = typeof WorkerGlobalScope != "undefined"; var ENVIRONMENT_IS_NODE = typeof process == "object" && typeof process.versions == "object" && typeof process.versions.node == "string" && process.type != "renderer"; if (ENVIRONMENT_IS_NODE) { const { createRequire } = await import("module"); var require2 = createRequire(import.meta.url); } var moduleOverrides = Object.assign({}, Module); var thisProgram = "./this.program"; var scriptDirectory = ""; function locateFile(path) { if (Module["locateFile"]) { return Module["locateFile"](path, scriptDirectory); } return scriptDirectory + path; } var readAsync, readBinary; if (ENVIRONMENT_IS_NODE) { var fs = require2("fs"); var nodePath = require2("path"); if (!import.meta.url.startsWith("data:")) { scriptDirectory = nodePath.dirname(require2("url").fileURLToPath(import.meta.url)) + "/"; } readBinary = (filename) => { filename = isFileURI(filename) ? new URL(filename) : filename; var ret = fs.readFileSync(filename); return ret; }; readAsync = async (filename, binary = true) => { filename = isFileURI(filename) ? new URL(filename) : filename; var ret = fs.readFileSync(filename, binary ? void 0 : "utf8"); return ret; }; if (!Module["thisProgram"] && process.argv.length > 1) { thisProgram = process.argv[1].replace(/\\/g, "/"); } process.argv.slice(2); } else if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) { if (ENVIRONMENT_IS_WORKER) { scriptDirectory = self.location.href; } else if (typeof document != "undefined" && document.currentScript) { scriptDirectory = document.currentScript.src; } if (_scriptName) { scriptDirectory = _scriptName; } if (scriptDirectory.startsWith("blob:")) { scriptDirectory = ""; } else { scriptDirectory = scriptDirectory.slice(0, scriptDirectory.replace(/[?#].*/, "").lastIndexOf("/") + 1); } { if (ENVIRONMENT_IS_WORKER) { readBinary = (url) => { var xhr = new XMLHttpRequest(); xhr.open("GET", url, false); xhr.responseType = "arraybuffer"; xhr.send(null); return new Uint8Array(xhr.response); }; } readAsync = async (url) => { if (isFileURI(url)) { return new Promise((resolve, reject) => { var xhr = new XMLHttpRequest(); xhr.open("GET", url, true); xhr.responseType = "arraybuffer"; xhr.onload = () => { if (xhr.status == 200 || xhr.status == 0 && xhr.response) { resolve(xhr.response); return; } reject(xhr.status); }; xhr.onerror = reject; xhr.send(null); }); } var response = await fetch(url, { credentials: "same-origin" }); if (response.ok) { return response.arrayBuffer(); } throw new Error(response.status + " : " + response.url); }; } } else ; var out = Module["print"] || console.log.bind(console); var err = Module["printErr"] || console.error.bind(console); Object.assign(Module, moduleOverrides); moduleOverrides = null; if (Module["arguments"]) Module["arguments"]; if (Module["thisProgram"]) thisProgram = Module["thisProgram"]; var wasmBinary = Module["wasmBinary"]; var wasmMemory; var ABORT = false; var HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAP64, HEAPU64, HEAPF64; var isFileURI = (filename) => filename.startsWith("file://"); function updateMemoryViews() { var b = wasmMemory.buffer; Module["HEAP8"] = HEAP8 = new Int8Array(b); Module["HEAP16"] = HEAP16 = new Int16Array(b); Module["HEAPU8"] = HEAPU8 = new Uint8Array(b); Module["HEAPU16"] = HEAPU16 = new Uint16Array(b); Module["HEAP32"] = HEAP32 = new Int32Array(b); Module["HEAPU32"] = HEAPU32 = new Uint32Array(b); Module["HEAPF32"] = HEAPF32 = new Float32Array(b); Module["HEAPF64"] = HEAPF64 = new Float64Array(b); Module["HEAP64"] = HEAP64 = new BigInt64Array(b); Module["HEAPU64"] = HEAPU64 = new BigUint64Array(b); } function preRun() { if (Module["preRun"]) { if (typeof Module["preRun"] == "function") Module["preRun"] = [Module["preRun"]]; while (Module["preRun"].length) { addOnPreRun(Module["preRun"].shift()); } } callRuntimeCallbacks(onPreRuns); } function initRuntime() { if (!Module["noFSInit"] && !FS.initialized) FS.init(); wasmExports["__wasm_call_ctors"](); FS.ignorePermissions = false; } function postRun() { if (Module["postRun"]) { if (typeof Module["postRun"] == "function") Module["postRun"] = [Module["postRun"]]; while (Module["postRun"].length) { addOnPostRun(Module["postRun"].shift()); } } callRuntimeCallbacks(onPostRuns); } var runDependencies = 0; var dependenciesFulfilled = null; function addRunDependency(id) { var _a; runDependencies++; (_a = Module["monitorRunDependencies"]) == null ? void 0 : _a.call(Module, runDependencies); } function removeRunDependency(id) { var _a; runDependencies--; (_a = Module["monitorRunDependencies"]) == null ? void 0 : _a.call(Module, runDependencies); if (runDependencies == 0) { if (dependenciesFulfilled) { var callback = dependenciesFulfilled; dependenciesFulfilled = null; callback(); } } } function abort(what) { var _a; (_a = Module["onAbort"]) == null ? void 0 : _a.call(Module, what); what = "Aborted(" + what + ")"; err(what); ABORT = true; what += ". Build with -sASSERTIONS for more info."; var e = new WebAssembly.RuntimeError(what); readyPromiseReject(e); throw e; } var wasmBinaryFile; function findWasmBinary() { if (Module["locateFile"]) { return locateFile("libredwg-web.wasm"); } return new URL("data:application/wasm;base64,AGFzbQEAAAABvwRKYAF/AX9gBH9/f38Bf2ABfwBgAn9/AX9gAn9/AGADf39/AX9gA39/fwBgBn9/f39/fwF/YAR/f39/AGAFf39/f38Bf2AAAGABfwF8YAV/f39/fwBgBn9/f39/fwBgAX8BfmAIf39/f39/f38Bf2AHf39/f39/fwF/YAJ/fgF/YAV/fn5+fgBgAAF/YAR/f35/AX9gAn9/AXxgB39/f39/f38AYAV/f39/fgF/YAh/f39/f39/fwBgCn9/f39/f39/f38AYAJ/fgBgA39+fwF+YAR/fn5/AGAFf39+f38AYAN/f34Bf2ADf398AX9gAn9/AX5gA39/fwF8YAZ/fH9/f38Bf2ADf39/AX5gCn9/f39/f39/f38Bf2AEf39/fwF+YAx/f39/f39/f39/f38Bf2AFf39/f3wBf2AGf39/f35+AX9gC39/f39/f39/f39/AX9gB39/f39/fn4Bf2APf39/f39/f39/f39/f39/AGAEf39/fwF8YAV/f39/fwF8YA1/f39/f39/f39/f39/AGAFf39/fn4AYAABfGAEf35/fwF/YAJ+fwBgBX9/f35/AX9gA39/fABgBH9/f3wBf2ABfAF/YAJ/fAF8YAV/f35+fgF/YAR/f39+AX9gAX4Bf2ACf34BfmADf35+AGABfAF8YAABfmAEf35+fgBgBH9/f34BfmACfH8BfGACfn8Bf2ADf39+AGAEfn5+fgF/YAN+fn4Bf2ACf3wAYAJ+fgF8YAJ+fgF9YAN/f38BfQL2CS8DZW52EV9lbXZhbF9uZXdfb2JqZWN0ABMDZW52El9lbXZhbF9uZXdfY3N0cmluZwAAA2VudhNfZW12YWxfc2V0X3Byb3BlcnR5AAYDZW52DV9lbXZhbF9kZWNyZWYAAgNlbnYRX2VtdmFsX3Rha2VfdmFsdWUAAwNlbnYRX2VtdmFsX2dldF9nbG9iYWwAAANlbnYYX2VtdmFsX2dldF9tZXRob2RfY2FsbGVyAAUDZW52C19lbXZhbF9jYWxsACwDZW52Fl9lbXZhbF9ydW5fZGVzdHJ1Y3RvcnMAAgNlbnYNX2VtdmFsX2luY3JlZgACA2VudhJfZW12YWxfY2FsbF9tZXRob2QALQNlbnYQX2VtdmFsX25ld19hcnJheQATA2VudhlfZW1iaW5kX3JlZ2lzdGVyX2Z1bmN0aW9uABgDZW52C19fY3hhX3Rocm93AAYDZW52FV9lbWJpbmRfcmVnaXN0ZXJfZW51bQAIA2VudhtfZW1iaW5kX3JlZ2lzdGVyX2VudW1fdmFsdWUABgNlbnYWX2VtYmluZF9yZWdpc3Rlcl9jbGFzcwAuA2Vudh9fZW1iaW5kX3JlZ2lzdGVyX2NsYXNzX3Byb3BlcnR5ABkDZW52DV9fYXNzZXJ0X2ZhaWwACANlbnYVX2VtYmluZF9yZWdpc3Rlcl92b2lkAAQDZW52FV9lbWJpbmRfcmVnaXN0ZXJfYm9vbAAIA2VudhhfZW1iaW5kX3JlZ2lzdGVyX2ludGVnZXIADANlbnYXX2VtYmluZF9yZWdpc3Rlcl9iaWdpbnQALwNlbnYWX2VtYmluZF9yZWdpc3Rlcl9mbG9hdAAGA2VudhtfZW1iaW5kX3JlZ2lzdGVyX3N0ZF9zdHJpbmcABANlbnYcX2VtYmluZF9yZWdpc3Rlcl9zdGRfd3N0cmluZwAGA2VudhZfZW1iaW5kX3JlZ2lzdGVyX2VtdmFsAAIDZW52HF9lbWJpbmRfcmVnaXN0ZXJfbWVtb3J5X3ZpZXcABgNlbnYTZW1zY3JpcHRlbl9kYXRlX25vdwAwA2VudhBfX3N5c2NhbGxfb3BlbmF0AAEDZW52EV9fc3lzY2FsbF9mY250bDY0AAUDZW52D19fc3lzY2FsbF9pb2N0bAAFFndhc2lfc25hcHNob3RfcHJldmlldzEIZmRfd3JpdGUAARZ3YXNpX3NuYXBzaG90X3ByZXZpZXcxB2ZkX3JlYWQAARZ3YXNpX3NuYXBzaG90X3ByZXZpZXcxCGZkX2Nsb3NlAAADZW52EV9fc3lzY2FsbF9mc3RhdDY0AAMDZW52EF9fc3lzY2FsbF9zdGF0NjQAAwNlbnYUX19zeXNjYWxsX25ld2ZzdGF0YXQAAQNlbnYRX19zeXNjYWxsX2xzdGF0NjQAAxZ3YXNpX3NuYXBzaG90X3ByZXZpZXcxB2ZkX3NlZWsAMQNlbnYJX3R6c2V0X2pzAAgDZW52Cl9ta3RpbWVfanMADgNlbnYKX2dtdGltZV9qcwAyA2VudhZlbXNjcmlwdGVuX3Jlc2l6ZV9oZWFwAAADZW52CV9hYm9ydF9qcwAKFndhc2lfc25hcHNob3RfcHJldmll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oQgZX2Vtc2NyaXB0ZW5fc3RhY2tfcmVzdG9yZQD5DBdfZW1zY3JpcHRlbl9zdGFja19hbGxvYwD6DBxlbXNjcmlwdGVuX3N0YWNrX2dldF9jdXJyZW50APsMCfEIAQBBAQvaBH44OYABQUI7PD0+P0A6Q0RFRkdISUqCAUuCAUxOTU+DAVBRUlNUVVZXWFlaW1xdXl9OYGFiY2RlZocBZ2iCAWlqggFrbG1ub3BxggFyc0t0dXaKAXeLAXh5jAF6e4oBfPcMfX+BAYQBhQGGAYgBiQGdAY0BjgGeAY8BlQGWAZ8BlwGgAZgBoQGZAZoBogGbAZwBowGkAaYBpwGoAakBjgKqAasBrAGtAa4BgAGvAY8CsAGQArEBkQKyAZICswG0AZACtQG2AZMCtwGUArgBuQG6AbsBvAG9Ab4BvwHAAcEBwgHDAcQBxQHGAccByAHJAcoBywHMAc0BzgHPAdAB0QHSAdMB1AHVAdYB1wGVAtgB2QHaAdsB3AHdAd4B3wHgAeEBigHiAYsB4wHkAZ0B5QGTAuYBggHgBZYC5wHoAekBlwLqAZcC6wHsAYwB7QGDAe4BnQHvAfAB8QHyAZYC7gWiAfMBggHsBYIB7QX0AZgC9QH2AZIC9wH4AfkBmQKaApsCnAKdApoCmwKcApIC+gGeAvsBkgL8AZ4C/QH+AY8C/wGAAoECnwKCAqACgwKSAoQCngKFApIChgKeAocCiAKJAooCigGLAowCjQLlAuYC4gWSBqMIqwisCK0IrgjHCNEI9Qj2CPkI/AiWCZcJmQmaCZsJnQnHCMcIngmiCaMJpQmmCaUJswm1CbQJtgnfCeAJ3AnhCdYJ1wnZCeIJ4wnkCeUJ/wmACoEJuwLkC50MnwyiDKQMpgyoDKoMrAyuDLAMsgy0DLYMuAzdC98L4wvxC/IL8wv0C/UL9gvtC/cL+Av5C9IL/Qv+C4AMggyDDMcIhQyGDI4MjwySDJMMlAyWDJkMkAyRDMYJxwmVDJcMmgzVAY4KjgrlC+YL5wvoC+kL6gvrC+wL7QvuC+8L8AuOCvoL+gv7C6cIpwj8C6cIjgqHDIgM+wvHCMcIiQyKDI4KhwyIDPsLxwjHCIkMigyOCosMjAz7C8cIxwiNDIoMjgqLDIwM+wvHCMcIjQyKDNUBjgqPCpAKkQrVAY4KkgqTCpUKjgqWCqQKqgqsCq4K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AEHVABANAAufAgEDfyMAQRBrIgIkACAAEAAiBDYCBCAAQZyW9wA2AgBByM8EEAEhACACIAEtAAA2AgggBCAAQZCH9wAgAkEIahAEIgMQAiADQQlPBEAgAxADCyAAQQlPBEAgABADC0HemAMQASEAIAIgAS0AATYCCCAEIABBkIf3ACACQQhqEAQiAxACIANBCU8EQCADEAMLIABBCU8EQCAAEAMLQYKeAxABIQAgAiABKQMINwMIIAQgAEH8h/cAIAJBCGoQBCIDEAIgA0EJTwRAIAMQAwsgAEEJTwRAIAAQAwtBqeYCEAEhACACIAEtABA2AgggBCAAQZCH9wAgAkEIahAEIgEQAiABQQlPBEAgARADCyAAQQlPBEAgABADCyACQRBqJAALmwIBA38jAEEQayIDJAAgABAAIgQ2AgQgAEGclvcANgIAIAEoAgAhAkHC6gIQASEAIAMgAjYCCCAEIABB5If3ACADQQhqEAQiAhACIAJBCU8EQCACEAMLIABBCU8EQCAAEAMLIANBCGogAUEIahAzIARB1owDEAEiACADKAIMIgIQAiAAQQlPBEAgABADCyACQQlPBEAgAhADC0H3jQMQASEAIAMgASkDIDcDCCAEIABB/If3ACADQQhqEAQiAhACIAJBCU8EQCACEAMLIABBCU8EQCAAEAMLQb46EAEhACADIAEuASg2AgggBCAAQaiH9wAgA0EIahAEIgEQAiABQQlPBEAgARADCyAAQQlPBEAgABADCyADQRBqJAALigQBBX8jAEEQayICJAAgABAAIgM2AgQgAEGclvcANgIAQY42EAEhBCACIAEuAQA2AgAgAyAEQaiH9wAgAhAEIgUQAiAFQQlPBEAgBRADCyAEQQlPBEAgBBADC0G/iwMQASEEIAIgAS8BAjYCACADIARBtIf3ACACEAQiBRACIAVBCU8EQCAFEAMLIARBCU8EQCAEEAMLQa2WBRABIQQgAiABKAIINgIAIAMgBEHMh/cAIAIQBCIFEAIgBUEJTwRAIAUQAwsgBEEJTwRAIAQQAwsCQCABKAIQIgUQ3AgiA0H4////B08NAAJAAkAgA0ELTwRAIANBB3IiBkEBahDYDCEEIAIgBkH/////B2s2AgggAiAENgIAIAIgAzYCBAwBCyACIAM6AAsgAiEEIANFDQELIANFDQAgBCAFIAP8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