@mlightcad/libredwg-web
Version:
A DWG/DXF JavaScript parser based on libredwg
962 lines • 9.17 MB
JavaScript
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/f38BfQL2CS8DZW52EV9lbXZhbF9uZXdfb2JqZWN0ABMDZW52El9lbXZhbF9uZXdfY3N0cmluZwAAA2VudhNfZW12YWxfc2V0X3Byb3BlcnR5AAYDZW52DV9lbXZhbF9kZWNyZWYAAgNlbnYRX2VtdmFsX3Rha2VfdmFsdWUAAwNlbnYRX2VtdmFsX2dldF9nbG9iYWwAAANlbnYYX2VtdmFsX2dldF9tZXRob2RfY2FsbGVyAAUDZW52C19lbXZhbF9jYWxsACwDZW52Fl9lbXZhbF9ydW5fZGVzdHJ1Y3RvcnMAAgNlbnYNX2VtdmFsX2luY3JlZgACA2VudhJfZW12YWxfY2FsbF9tZXRob2QALQNlbnYQX2VtdmFsX25ld19hcnJheQATA2VudhlfZW1iaW5kX3JlZ2lzdGVyX2Z1bmN0aW9uABgDZW52C19fY3hhX3Rocm93AAYDZW52FV9lbWJpbmRfcmVnaXN0ZXJfZW51bQAIA2VudhtfZW1iaW5kX3JlZ2lzdGVyX2VudW1fdmFsdWUABgNlbnYWX2VtYmluZF9yZWdpc3Rlcl9jbGFzcwAuA2Vudh9fZW1iaW5kX3JlZ2lzdGVyX2NsYXNzX3Byb3BlcnR5ABkDZW52DV9fYXNzZXJ0X2ZhaWwACANlbnYVX2VtYmluZF9yZWdpc3Rlcl92b2lkAAQDZW52FV9lbWJpbmRfcmVnaXN0ZXJfYm9vbAAIA2VudhhfZW1iaW5kX3JlZ2lzdGVyX2ludGVnZXIADANlbnYXX2VtYmluZF9yZWdpc3Rlcl9iaWdpbnQALwNlbnYWX2VtYmluZF9yZWdpc3Rlcl9mbG9hdAAGA2VudhtfZW1iaW5kX3JlZ2lzdGVyX3N0ZF9zdHJpbmcABANlbnYcX2VtYmluZF9yZWdpc3Rlcl9zdGRfd3N0cmluZwAGA2VudhZfZW1iaW5kX3JlZ2lzdGVyX2VtdmFsAAIDZW52HF9lbWJpbmRfcmVnaXN0ZXJfbWVtb3J5X3ZpZXcABgNlbnYTZW1zY3JpcHRlbl9kYXRlX25vdwAwA2VudhBfX3N5c2NhbGxfb3BlbmF0AAEDZW52EV9fc3lzY2FsbF9mY250bDY0AAUDZW52D19fc3lzY2FsbF9pb2N0bAAFFndhc2lfc25hcHNob3RfcHJldmlldzEIZmRfd3JpdGUAARZ3YXNpX3NuYXBzaG90X3ByZXZpZXcxB2ZkX3JlYWQAARZ3YXNpX3NuYXBzaG90X3ByZXZpZXcxCGZkX2Nsb3NlAAADZW52EV9fc3lzY2FsbF9mc3RhdDY0AAMDZW52EF9fc3lzY2FsbF9zdGF0NjQAAwNlbnYUX19zeXNjYWxsX25ld2ZzdGF0YXQAAQNlbnYRX19zeXNjYWxsX2xzdGF0NjQAAxZ3YXNpX3NuYXBzaG90X3ByZXZpZXcxB2ZkX3NlZWsAMQNlbnYJX3R6c2V0X2pzAAgDZW52Cl9ta3RpbWVfanMADgNlbnYKX2dtdGltZV9qcwAyA2VudhZlbXNjcmlwdGVuX3Jlc2l6ZV9oZWFwAAADZW52CV9hYm9ydF9qcwAKFndhc2lfc25hcHNob3RfcHJldmlldzERZW52aXJvbl9zaXplc19nZXQAAxZ3YXNpX3NuYXBzaG90X3ByZXZpZXcxC2Vudmlyb25fZ2V0AAMDzwzNDAoGBgoEBAQEBAQEBgYGBgYGBgYGBgYGBgYGBgYAAAAABAQABAAAAAAAAAAAAAQABAAABAAEBAQECwsAAAAAAAAAAAAAAAAABAMFAxERAwoDCgUKAwMKCgoVCgoFAR4AAAYIBQQEBAYGCAEJAQgKAwUBCQcBBAQEBAQKCgQAAAQABgUFCAMDBQUGBgsLCwsLCwsLCwsAAAAAAAADAAAAAAAAAAAAAAMAAAAODgADAAMAAAMDAwUAAAYCAgAUFAMRBAAAAAMIAAkEAwQEAwUDBQYFBgUVHwMFAwUODg4DAwoDAQEBBQUFIAQzBwACFTQAASE1BAAEAgACAAAABAAAAAAODgsAAA4LNgAOAAgCNwsDAwMFAwMEAAMAAwAAAAAAAAADAAMDAwMEBAUDAgYDAAAAAwMDAAMDAwAAAAUDAxMDAQUEAAMAAQMCAQMFAAMFBQIAAAAAAAAAAAAAAAAAAAAAAAAAAAMBAQMBAwEDAQMBAwEDAQMBAwEDAQAAAAADAwMDAwMCAwMDAwMDAwMDAwMDAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAwEBBAUGEAEBAQEBAwUAAQUGAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQUFAQUFBQgJOAIJAQgFAwMDEQAFEQMAAxQAAAAAAAAAAAAAAAADABQDEQMFBQUDBQMFAAACAAMFDg4aAgAGBAADAwMDAwMDAwMAAwMDBAQDOR4DAwADBAQDAwkHCQwFAgMAAgIAAgAAAAIAAgIAAAAAAAAAAAACAgIAAAACAgACAgACAgAAAgAAAAICAAACAAACAgACAgIAAgICAgIAAgICAgICAgICAgACAgIAAgICAgICAgICAgICAAACAAAAAgACAAACAAAAAAACAAIAAgACAAAAAAICAAIAAAIAAAICAAIAAAIAAAIAAgIAAgACAAICAgACAAAAAgACAAIAAAACAgACAAICAgIAAgAAAAICAAIAAAACAgICAgAAAgACAgIAAgACAAIAAgIAAgICAgICAAICAgICAgIAAgIAAAICAgAAAAIAAgICAgIAAgICAgIAAgICAAAAAAIAAAAAAgIEAwI6OzwJAAIKPQk+AAIABhsFBQAGBgACAgQFAAUBBQgAAwkDAwMABgIAAAAAAQUFAQoLBQQFGwMDAwMAAwAJAAYABQUDAxoAPxwSCAAgCEAAAEEJEAYACEIMIgQGAQVDBQUAAwMAAgMEAwASHERFEkYEBBwSEhJHSAoCAAIABAUdGggFAwYGAAAAAwUAAAMABQAAAAACAwMAAAICAwIEBQYGAAMABQAAAAQAAAAECAYEAAQAAAQFBgAABAADAAMDAB0DCgACCAACAAIAAgQEBAADAwAABAQEBAUKAwMAAwADBAQEAAIEAwADAAAAAAIBACMjAgkIBQkIBgUHAgAEBBADAwUEAwMAAgcABiQBCAclBwEHAQclBwwmSQchBwgHCBMFBQMCBwAQAwcDBiQHBwcHBwwmBwcHCAUAAAQDCQAAAwIACQgJBRYHFwkXJwUBFigJBQIJAAIJFgcXCRcnFigJBQQEDwMABwcHDQcNBwwJDw8DBwcHDQcNBwwJDxANBBADAAQEBAAEBBApBAYGABAMBAAEBAAAAwAEECkEEAQAAwwFAAQAAyoAGSsEBQcqGSsFBwUNDQADAwQAAgAGAwICAAACBAICAgIFAQEBAwUDBQMBBQkAAgMFAwUBBQkPCQkCDwUPCQkAAAkADw8JAA8PCQACAAIAAAQEBAQEBAQEAAIAAgQAAgACAAIAAgACAAIAAgACAAIAAgACAAICAAAABAAGAgYDBgYFAAAGAAAABgACBAAEAAAAAAICABgABgQYAAQFBQUDBggICAMIBQMIBgwNDAwMDQ0NAAACAgATBAcBcAHbBNsEBQcBAZ8CgIACBgkBfwFBsLv7AAsHtQEJBm1lbW9yeQIAEV9fd2FzbV9jYWxsX2N0b3JzAC8GbWFsbG9jAIAJGV9faW5kaXJlY3RfZnVuY3Rpb25fdGFibGUBAARmcmVlAIEJDV9fZ2V0VHlwZU5hbWUAoQgZX2Vtc2NyaXB0ZW5fc3RhY2tfcmVzdG9yZQD5DBdfZW1zY3JpcHRlbl9zdGFja19hbGxvYwD6DBxlbXNjcmlwdGVuX3N0YWNrX2dldF9jdXJyZW50APsMCfEIAQBBAQvaBH44OYABQUI7PD0+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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